diff --git a/app/src/androidTest/java/com/yonsz/z1/ExampleInstrumentedTest.java b/app/src/androidTest/java/com/yonsz/z1/ExampleInstrumentedTest.java
new file mode 100644
index 0000000..e228c3d
--- /dev/null
+++ b/app/src/androidTest/java/com/yonsz/z1/ExampleInstrumentedTest.java
@@ -0,0 +1,26 @@
+package com.yonsz.z1;
+
+import android.content.Context;
+import android.support.test.InstrumentationRegistry;
+import android.support.test.runner.AndroidJUnit4;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import static org.junit.Assert.*;
+
+/**
+ * Instrumentation test, which will execute on an Android device.
+ *
+ * @see Testing documentation
+ */
+@RunWith(AndroidJUnit4.class)
+public class ExampleInstrumentedTest {
+ @Test
+ public void useAppContext() throws Exception {
+ // Context of the app under test.
+ Context appContext = InstrumentationRegistry.getTargetContext();
+
+ assertEquals("com.administrator.unikong", appContext.getPackageName());
+ }
+}
diff --git a/app/src/ansunxan/java/com/ansunxan.z1/wxapi/WXEntryActivity.java b/app/src/ansunxan/java/com/ansunxan.z1/wxapi/WXEntryActivity.java
new file mode 100644
index 0000000..793e4aa
--- /dev/null
+++ b/app/src/ansunxan/java/com/ansunxan.z1/wxapi/WXEntryActivity.java
@@ -0,0 +1,101 @@
+package com.ansunxan.z1.wxapi;
+
+import android.app.Activity;
+import android.content.Intent;
+import android.graphics.Bitmap;
+import android.os.Bundle;
+import android.util.Log;
+
+import com.tencent.mm.opensdk.modelbase.BaseReq;
+import com.tencent.mm.opensdk.modelbase.BaseResp;
+import com.tencent.mm.opensdk.modelmsg.SendAuth;
+import com.tencent.mm.opensdk.openapi.IWXAPI;
+import com.tencent.mm.opensdk.openapi.IWXAPIEventHandler;
+import com.tencent.mm.opensdk.openapi.WXAPIFactory;
+import com.yonsz.z1.R;
+import com.yonsz.z1.database.entity.entitya2.WxLoginEvent;
+
+import java.io.ByteArrayOutputStream;
+
+import de.greenrobot.event.EventBus;
+
+import static com.yonsz.z1.difference.DifferConstans.WX_APP_ID;
+
+
+public class WXEntryActivity extends Activity implements IWXAPIEventHandler {
+ private IWXAPI iwxapi;
+
+ public static byte[] bmpToByteArray(final Bitmap bmp, final boolean needRecycle) {
+ ByteArrayOutputStream output = new ByteArrayOutputStream();
+ bmp.compress(Bitmap.CompressFormat.PNG, 100, output);
+ if (needRecycle) {
+ bmp.recycle();
+ }
+ byte[] result = output.toByteArray();
+ try {
+ output.close();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ return result;
+ }
+
+ @Override
+
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_wxentry);
+ iwxapi = WXAPIFactory.createWXAPI(this, WX_APP_ID, false);
+ iwxapi.handleIntent(getIntent(), this);
+ iwxapi.registerApp(WX_APP_ID);
+ }
+
+
+ @Override
+ protected void onNewIntent(Intent intent) {
+ super.onNewIntent(intent);
+ setIntent(intent);
+ iwxapi.handleIntent(intent, this);
+ }
+
+ @Override
+ public void onReq(BaseReq baseReq) {
+ Log.i("BaseReq", "" + baseReq.openId + "---" + baseReq.transaction);
+ }
+
+ @Override
+ public void onResp(BaseResp resp) {
+ Log.i("BaseReq", "" + resp.openId + "---" + resp.transaction + "===" + resp.errCode + "==" + resp.errStr);
+ String result;
+ switch (resp.errCode) {
+ case BaseResp.ErrCode.ERR_OK:
+ result = getString(R.string.Share_success);
+ if (resp instanceof SendAuth.Resp) {
+ String code = ((SendAuth.Resp) resp).code;
+ Log.i("BaseReq", "LoginActivity onResp()" + code);
+ EventBus.getDefault().post(
+ new WxLoginEvent(code));
+ } else {
+
+ }
+ break;
+ case BaseResp.ErrCode.ERR_USER_CANCEL:
+ result = "取消分享";
+ break;
+ case BaseResp.ErrCode.ERR_AUTH_DENIED:
+ result = "分享被拒绝";
+ break;
+ default:
+ result = "发送返回";
+ break;
+ }
+ finish();
+ }
+
+ private String buildTransaction(final String type) {
+ return (type == null) ? String.valueOf(System.currentTimeMillis()) : type + System.currentTimeMillis();
+ }
+
+ enum SHARE_TYPE {Type_WXSceneSession, Type_WXSceneTimeline}
+
+}
diff --git a/app/src/ansunxan/java/com/ansunxan.z1/wxapi/WXPayEntryActivity.java b/app/src/ansunxan/java/com/ansunxan.z1/wxapi/WXPayEntryActivity.java
new file mode 100644
index 0000000..6d08828
--- /dev/null
+++ b/app/src/ansunxan/java/com/ansunxan.z1/wxapi/WXPayEntryActivity.java
@@ -0,0 +1,55 @@
+package com.ansunxan.z1.wxapi;
+
+import android.app.Activity;
+import android.app.AlertDialog;
+import android.content.Intent;
+import android.os.Bundle;
+import android.util.Log;
+
+import com.tencent.mm.opensdk.constants.ConstantsAPI;
+import com.tencent.mm.opensdk.modelbase.BaseReq;
+import com.tencent.mm.opensdk.modelbase.BaseResp;
+import com.tencent.mm.opensdk.openapi.IWXAPI;
+import com.tencent.mm.opensdk.openapi.IWXAPIEventHandler;
+import com.tencent.mm.opensdk.openapi.WXAPIFactory;
+import com.yonsz.z1.R;
+import static com.yonsz.z1.difference.DifferConstans.WX_APP_ID;
+
+public class WXPayEntryActivity extends Activity implements IWXAPIEventHandler {
+
+ private final String TAG = "WXPayEntryActivity";
+
+ private IWXAPI api;
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_wxentry);
+ api = WXAPIFactory.createWXAPI(this, WX_APP_ID);
+ api.handleIntent(getIntent(), this);
+ }
+
+ @Override
+ protected void onNewIntent(Intent intent) {
+ super.onNewIntent(intent);
+ setIntent(intent);
+ api.handleIntent(intent, this);
+ }
+ @Override
+ public void onReq(BaseReq req) {
+ }
+
+ @Override
+ public void onResp(BaseResp resp) {
+ Log.i(TAG,"errCode = " + resp.errCode);
+ //最好依赖于商户后台的查询结果
+ if (resp.getType() == ConstantsAPI.COMMAND_PAY_BY_WX) {
+ //如果返回-1,很大可能是因为应用签名的问题。用官方的工具生成
+ //签名工具下载:https://open.weixin.qq.com/zh_CN/htmledition/res/dev/download/sdk/Gen_Signature_Android.apk
+ AlertDialog.Builder builder = new AlertDialog.Builder(this);
+ builder.setTitle("提示");
+ builder.setMessage(getString(R.string.pay_result_callback_msg, String.valueOf(resp.errCode)));
+ builder.show();
+ }
+ finish();
+ }
+}
\ No newline at end of file
diff --git a/app/src/ansunxan/java/com/yonsz/z1/difference/DifferConstans.java b/app/src/ansunxan/java/com/yonsz/z1/difference/DifferConstans.java
new file mode 100644
index 0000000..8e300da
--- /dev/null
+++ b/app/src/ansunxan/java/com/yonsz/z1/difference/DifferConstans.java
@@ -0,0 +1,20 @@
+package com.yonsz.z1.difference;
+
+/**
+ * Created by Administrator on 2018/6/21.
+ */
+
+public class DifferConstans {
+ //后台版本控制
+ public static final String VERSION_S = "v1";
+ public static final String APPID_S = "1103";
+ public static final String APPSECRET_S = "ysz666888";
+ public static final String APPID_S_VOICE = "110301";
+ public static final String WX_APP_ID = "wx809b2ddc1b72ecb6";
+ public static final String SERVER_BACKUP4 = "https://openapi.lechange.cn:443";//乐橙
+ public static final String TEPRINCIPLE_UPDATE = "teprinciple2.update";
+ public static String versionUrl = "http://a.app.qq.com/o/simple.jsp?pkgname=com.ansunxan.z1";
+ public static String LECHENG_KEY = "ysz123456";
+ public static String LECHENG_APPID = "lcc58705630dd248d1";
+ public static String LECHENG_APPSECRET = "91ac51eb533b4253ae2b917470ad27";
+}
diff --git a/app/src/ansunxan/java/com/yonsz/z1/login/LoginActivity.java b/app/src/ansunxan/java/com/yonsz/z1/login/LoginActivity.java
new file mode 100644
index 0000000..548b037
--- /dev/null
+++ b/app/src/ansunxan/java/com/yonsz/z1/login/LoginActivity.java
@@ -0,0 +1,509 @@
+package com.yonsz.z1.login;
+
+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.MotionEvent;
+import android.view.View;
+import android.widget.Button;
+import android.widget.EditText;
+import android.widget.ImageView;
+import android.widget.LinearLayout;
+import android.widget.RelativeLayout;
+import android.widget.TextView;
+import android.widget.Toast;
+
+import com.alibaba.fastjson.JSON;
+import com.tencent.mm.opensdk.modelbase.BaseReq;
+import com.tencent.mm.opensdk.modelbase.BaseResp;
+import com.tencent.mm.opensdk.modelmsg.SendAuth;
+import com.tencent.mm.opensdk.openapi.IWXAPI;
+import com.tencent.mm.opensdk.openapi.IWXAPIEventHandler;
+import com.tencent.mm.opensdk.openapi.WXAPIFactory;
+import com.yonsz.z1.R;
+import com.yonsz.z1.activity.BaseActivity;
+import com.yonsz.z1.database.entity.ResponeEntity;
+import com.yonsz.z1.database.entity.TokenEntity;
+import com.yonsz.z1.database.entity.entitya2.WxLoginEvent;
+import com.yonsz.z1.difference.DifferConstans;
+import com.yonsz.z1.listener.OnTitleItemClickListener;
+import com.yonsz.z1.login.forgetpw.ForgetPWActivity;
+import com.yonsz.z1.login.register.RegisterActivity;
+import com.yonsz.z1.login.register.WxRegisterActivity;
+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.KeyboardUtil;
+import com.yonsz.z1.utils.SharedpreferencesUtil;
+import com.yonsz.z1.utils.ToastUtil;
+import com.yonsz.z1.utils.VerificationUtils;
+import com.yonsz.z1.version4.MainActivity4;
+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.clean_password;
+import static com.yonsz.z1.R.id.iv_clean_phone;
+import static com.yonsz.z1.difference.DifferConstans.APPID_S;
+import static com.yonsz.z1.difference.DifferConstans.APPSECRET_S;
+import static com.yonsz.z1.difference.DifferConstans.WX_APP_ID;
+import static com.yonsz.z1.net.Constans.FAN_LEARN_WHAT;
+import static com.yonsz.z1.net.Constans.GET_PHONE_AREA;
+import static com.yonsz.z1.net.Constans.GET_TOKEN_FAIL;
+import static com.yonsz.z1.net.Constans.LOGIN_FAIL;
+import static com.yonsz.z1.net.Constans.LOGIN_SUCCESS;
+import static com.yonsz.z1.net.Constans.WX_LOGIN_FAIL;
+import static com.yonsz.z1.net.Constans.WX_LOGIN_REGISTER;
+import static com.yonsz.z1.net.Constans.WX_LOGIN_SUCCESS;
+
+/**
+ * Created by Administrator on 2017/5/16.
+ */
+
+public class LoginActivity extends BaseActivity implements IWXAPIEventHandler {
+ private TitleView mTitle;
+ private Button mLogin;
+ private TextView mRegister;
+ private TextView mForgetPw;
+ private EditText mUserName;
+ private EditText mPassWord;
+ private ImageView cleanPhoneIv;
+ private ImageView cleanPasswordIv;
+ private LoadingDialog mLoadingDialog;
+ private RelativeLayout rl_weixin_login;
+ private LinearLayout phoneAreaLl;
+
+ private IWXAPI iwxapi;
+ private TextView phoneArea;
+
+ @Override
+ public boolean dispatchTouchEvent(MotionEvent ev) {
+ switch (ev.getAction()) {
+ case MotionEvent.ACTION_DOWN:
+ View view = getCurrentFocus();
+ KeyboardUtil.hideKeyboard(ev, view, LoginActivity.this);//调用方法判断是否需要隐藏键盘
+ break;
+
+ default:
+ break;
+ }
+ return super.dispatchTouchEvent(ev);
+ }
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_login);
+ initView();
+ initListener();
+
+ iwxapi = WXAPIFactory.createWXAPI(this, WX_APP_ID, true);
+ iwxapi.handleIntent(this.getIntent(), this);
+ iwxapi.registerApp(WX_APP_ID);
+
+ if (TextUtils.isEmpty(SharedpreferencesUtil.get(Constans.SEESSIONID, ""))) {
+ getToken();
+ }
+ }
+
+ private void getToken() {
+ NetWorkUtil util = NetWorkUtil.instans();
+ HashMap map = new HashMap<>();
+ map.put("appId", APPID_S);
+ map.put("appSecret", APPSECRET_S);
+ util.requestPostByAsynewApi(NetWorkUrl.GET_TOKEN, map, new NetWorkUtil.ReqCallBack() {
+ @Override
+ public void onSuccess(String respone) {
+ Log.i("getToken", "onSuccess: " + respone);
+ TokenEntity entity = JSON.parseObject(respone, TokenEntity.class);
+ SharedpreferencesUtil.save(Constans.TOKENID, entity.getData().getToken().toString().trim());
+ }
+
+ @Override
+ public void onFail(String message) {
+ Log.i("getToken", "onSuccess: " + message);
+ Message msg = mHandler.obtainMessage(GET_TOKEN_FAIL);
+ msg.obj = message;
+ mHandler.sendMessage(msg);
+ }
+ });
+ }
+
+ @Override
+ public boolean enableSliding() {
+ return false;
+ }
+
+ public void onEventMainThread(WxLoginEvent event) {
+ String msg = event.getMsg();
+ Log.e("nettyUtil", msg);
+ Message message = new Message();
+ message.what = FAN_LEARN_WHAT;
+ message.obj = msg;
+ mHandler.sendMessage(message);
+ }
+
+
+ private void initView() {
+ phoneArea = (TextView) findViewById(R.id.tv_phone_area);
+ phoneAreaLl = (LinearLayout) findViewById(R.id.ll_phone_area);
+ cleanPhoneIv = (ImageView) findViewById(iv_clean_phone);
+ cleanPasswordIv = (ImageView) findViewById(clean_password);
+ mUserName = (EditText) findViewById(R.id.edit_username);
+ mUserName.setText(SharedpreferencesUtil.get(Constans.USERPHONE, ""));
+ if (!TextUtils.isEmpty(mUserName.getText().toString())) {
+ cleanPhoneIv.setVisibility(View.VISIBLE);
+ }
+ mPassWord = (EditText) findViewById(R.id.edit_pw);
+ mLogin = (Button) findViewById(R.id.bt_sure);
+ mLogin.setBackgroundDrawable(getResources().getDrawable(R.drawable.btn_round_9cc6f6));
+ mRegister = (TextView) findViewById(R.id.tv_register);
+ mForgetPw = (TextView) findViewById(R.id.txt_forget_pw);
+ rl_weixin_login = (RelativeLayout) findViewById(R.id.rl_weixin_login);
+ mLoadingDialog = new LoadingDialog(this);
+ mTitle = (TitleView) findViewById(R.id.title_login);
+ mTitle.setHead(R.string.login);
+ mTitle.setHeadBackGone();
+ mTitle.setHeadFuntionTxt(" ");
+ mTitle.setTitleListener(new OnTitleItemClickListener() {
+ @Override
+ public void onBack() {
+
+ }
+
+ @Override
+ public void onFunction() {
+ }
+
+ @Override
+ public void onFunctionText() {
+ }
+ });
+ }
+
+ private void initListener() {
+ rl_weixin_login.setOnClickListener(this);
+ mLogin.setOnClickListener(this);
+ mRegister.setOnClickListener(this);
+ mForgetPw.setOnClickListener(this);
+ cleanPasswordIv.setOnClickListener(this);
+ cleanPhoneIv.setOnClickListener(this);
+ phoneAreaLl.setOnClickListener(this);
+ mUserName.addTextChangedListener(new TextWatcher() {
+ @Override
+ public void beforeTextChanged(CharSequence s, int start, int count, int after) {
+
+ }
+
+ @Override
+ public void onTextChanged(CharSequence s, int start, int before, int count) {
+ int i = s.length();
+ if (i == 0 || TextUtils.isEmpty(mPassWord.getText())) {
+ mLogin.setBackgroundDrawable(getResources().getDrawable(R.drawable.btn_round_9cc6f6));
+ mLogin.setEnabled(false);
+ } else {
+ mLogin.setBackgroundDrawable(getResources().getDrawable(R.drawable.btn_round_398dee));
+ mLogin.setEnabled(true);
+ }
+ }
+
+ @Override
+ public void afterTextChanged(Editable s) {
+ if (!TextUtils.isEmpty(s) && cleanPhoneIv.getVisibility() == View.GONE) {
+ cleanPhoneIv.setVisibility(View.VISIBLE);
+ } else if (TextUtils.isEmpty(s)) {
+ cleanPhoneIv.setVisibility(View.GONE);
+ }
+ }
+ });
+ mPassWord.addTextChangedListener(new TextWatcher() {
+ @Override
+ public void beforeTextChanged(CharSequence s, int start, int count, int after) {
+
+ }
+
+ @Override
+ public void onTextChanged(CharSequence s, int start, int before, int count) {
+ int i = s.length();
+ if (i == 0 || TextUtils.isEmpty(mUserName.getText())) {
+ mLogin.setBackgroundDrawable(getResources().getDrawable(R.drawable.btn_round_9cc6f6));
+ mLogin.setEnabled(false);
+ } else {
+ mLogin.setBackgroundDrawable(getResources().getDrawable(R.drawable.btn_round_398dee));
+ mLogin.setEnabled(true);
+ }
+ }
+
+ @Override
+ public void afterTextChanged(Editable s) {
+ if (!TextUtils.isEmpty(s) && cleanPasswordIv.getVisibility() == View.GONE) {
+ cleanPasswordIv.setVisibility(View.VISIBLE);
+ } else if (TextUtils.isEmpty(s)) {
+ cleanPasswordIv.setVisibility(View.GONE);
+ }
+ if (s.toString().isEmpty())
+ return;
+ if (!s.toString().matches("[A-Za-z0-9]+")) {
+ String temp = s.toString();
+ Toast.makeText(LoginActivity.this, R.string.Enter_a_number, Toast.LENGTH_SHORT).show();
+ s.delete(temp.length() - 1, temp.length());
+ mPassWord.setSelection(s.length());
+
+ }
+ }
+ });
+ }
+
+ @Override
+ public void onClick(View v) {
+ super.onClick(v);
+ switch (v.getId()) {
+ case R.id.bt_sure:
+ if (DensityUtil.isNetworkConnected(this)) {
+ login();
+ } else {
+ ToastUtil.show(this, R.string.no_network_connection);
+ }
+ break;
+ case R.id.tv_register:
+ startActivity(new Intent(LoginActivity.this, RegisterActivity.class));
+ break;
+ case R.id.txt_forget_pw:
+ Intent intent = new Intent(LoginActivity.this, ForgetPWActivity.class);
+ intent.putExtra("tag", "LoginActivity");
+ startActivity(intent);
+ break;
+ case R.id.iv_clean_phone:
+ mUserName.setText("");
+ break;
+ case R.id.clean_password:
+ mPassWord.setText("");
+ break;
+ case R.id.rl_weixin_login:
+ if (!iwxapi.isWXAppInstalled()) {
+ Toast.makeText(this, getString(R.string.not_installed_Wechat), Toast.LENGTH_SHORT).show();
+ return;
+ }
+ wxLogin();
+ break;
+ case R.id.ll_phone_area:
+ Intent intent1 = new Intent(LoginActivity.this, PhoneAreaActivity.class);
+ intent1.putExtra("type", "login");
+ startActivityForResult(intent1, GET_PHONE_AREA);
+ break;
+ }
+ }
+
+ private void wxLogin() {
+ SendAuth.Req req1 = new SendAuth.Req();
+ req1.scope = "snsapi_userinfo";
+ req1.state = "wechat_sdk_demo_test";
+ iwxapi.sendReq(req1);
+ }
+
+ private void login() {
+ String name = mUserName.getText().toString();
+ String phoneCode = phoneArea.getText().toString();
+ SharedpreferencesUtil.save(Constans.USERPHONE, mUserName.getText().toString());
+ if (!VerificationUtils.isMobile(name.trim())) {
+ ToastUtil.show(this, R.string.phone_error);
+ return;
+ }
+ String password = mPassWord.getText().toString();
+ if (TextUtils.isEmpty(password.trim()) || password.length() < 6) {
+ ToastUtil.show(this, R.string.password_error);
+ return;
+ }
+ NetWorkUtil util = NetWorkUtil.instans();
+ HashMap map = new HashMap<>();
+ // mobileLogin=true&isValidatjeesiteLogin=false&username=admin&password=admin
+ map.put("appId", DifferConstans.APPID_S);
+ map.put("mobile", name);
+ map.put("password", password);
+ map.put("telAreaCode", phoneCode.substring(phoneCode.indexOf("+") + 1, phoneCode.length()));
+ map.put("mobileLogin", "true");
+ map.put("clientType", "1");
+ // map.put("isValidatjeesiteLogin", "false");
+ mLoadingDialog.show();
+ util.requestPostByAsynewApi(NetWorkUrl.LOGIN_URL, map, new NetWorkUtil.ReqCallBack() {
+ @Override
+ public void onSuccess(String respone) {
+ ResponeEntity entity = JSON.parseObject(respone, ResponeEntity.class);
+ Log.i("login111", "onSuccess: " + respone);
+ if (1 == entity.getFlag()) {
+ Message msg = mHandler.obtainMessage(LOGIN_SUCCESS);
+ msg.obj = entity;
+ mHandler.sendMessage(msg);
+ } else {
+ Message msg = mHandler.obtainMessage(LOGIN_FAIL);
+ msg.obj = entity.getMsg();
+ mHandler.sendMessage(msg);
+ }
+ }
+
+ @Override
+ public void onFail(String message) {
+ Message msg = mHandler.obtainMessage(LOGIN_FAIL);
+ msg.obj = message;
+ mHandler.sendMessage(msg);
+ }
+ });
+ }
+
+ @Override
+ public void callBackUiThread(Message msg) {
+ mLoadingDialog.dismiss();
+ switch (msg.what) {
+ case LOGIN_FAIL:
+ ToastUtil.show(this, (String) msg.obj);
+ break;
+ case WX_LOGIN_FAIL:
+ if (null != mLoadingDialog) {
+ mLoadingDialog.dismiss();
+ }
+ ToastUtil.show(this, (String) msg.obj);
+ break;
+ case LOGIN_SUCCESS:
+ ResponeEntity entity = (ResponeEntity) msg.obj;
+ // ToastUtil.show(this, entity.getMsg());
+ Toast.makeText(LoginActivity.this, R.string.login_success, Toast.LENGTH_SHORT).show();
+ SharedpreferencesUtil.save(Constans.SEESSIONID, entity.getData().getSession());
+ SharedpreferencesUtil.save(Constans.USERID, entity.getData().getUserId());
+ // SharedpreferencesUtil.save(Constans.USERNAME, entity.getObj().getUser().getName());
+ SharedpreferencesUtil.save(Constans.PASSWORD, mPassWord.getText().toString());
+ boolean isSetting = TextUtils.isEmpty(SharedpreferencesUtil.
+ get(SharedpreferencesUtil.get(Constans.USERID, ""), ""));
+ startActivity(new Intent(this, MainActivity4.class));
+ finish();
+ /*if (isSetting) {
+ Intent intent = new Intent(this, SetGestureCodeActivity.class);
+ intent.putExtra("isset", true);
+ intent.putExtra("SEESSIONID", entity.getObj().getLogininfo().getSessionId());
+ startActivity(intent);
+
+ } else {
+ startActivity(new Intent(this, MainActivity.class));
+ }*/
+ break;
+ case WX_LOGIN_SUCCESS:
+ ResponeEntity wxLoginEntity = (ResponeEntity) msg.obj;
+ Toast.makeText(LoginActivity.this, R.string.login_success, Toast.LENGTH_SHORT).show();
+// SharedpreferencesUtil.save(Constans.USERPHONE, wxLoginEntity.getObj().getUserInfo().getLoginName());
+ SharedpreferencesUtil.save(Constans.SEESSIONID, wxLoginEntity.getData().getSession());
+ SharedpreferencesUtil.save(Constans.USERID, wxLoginEntity.getData().getUserId());
+// SharedpreferencesUtil.save(Constans.USERNAME, wxLoginEntity.getObj().getUserInfo().getName());
+ startActivity(new Intent(this, MainActivity4.class));
+ finish();
+ break;
+ case WX_LOGIN_REGISTER:
+ //去注册
+ ResponeEntity entity1 = (ResponeEntity) msg.obj;
+ Intent intent = new Intent(LoginActivity.this, WxRegisterActivity.class);
+ intent.putExtra("wxId", entity1.getObj().getWxId());
+ intent.putExtra("headUrl", entity1.getObj().getHeadUrl());
+ intent.putExtra("userName", entity1.getObj().getUserName());
+ startActivity(intent);
+ break;
+
+ case FAN_LEARN_WHAT:
+ String code = (String) msg.obj;
+ quickLogin(code);
+ break;
+ }
+ }
+
+ /**
+ * 微信登录
+ *
+ * @param code
+ */
+ private synchronized void quickLogin(String code) {
+ if (mLoadingDialog.isShowing()) {
+ return;
+ }
+ mLoadingDialog.show();
+ NetWorkUtil util = NetWorkUtil.instans();
+ HashMap map = new HashMap<>();
+ map.put("code", code);
+ map.put("appId", DifferConstans.APPID_S);
+ util.requestPostByAsynewApi(NetWorkUrl.WX_QUICK_LOGIN, map, new NetWorkUtil.ReqCallBack() {
+ @Override
+ public void onSuccess(String respone) {
+ Log.i("quickLogin", "onSuccess: " + respone);
+ ResponeEntity entity = JSON.parseObject(respone, ResponeEntity.class);
+ if (1 == entity.getFlag()) {
+ Message msg = mHandler.obtainMessage(WX_LOGIN_SUCCESS);
+ msg.obj = entity;
+ mHandler.sendMessage(msg);
+ } else if (1011 == entity.getFlag()) {
+ Message msg = mHandler.obtainMessage(WX_LOGIN_REGISTER);
+ msg.obj = entity;
+ mHandler.sendMessage(msg);
+ } else if (1013 == entity.getFlag()) {
+ Message msg = mHandler.obtainMessage(WX_LOGIN_REGISTER);
+ msg.obj = entity;
+ mHandler.sendMessage(msg);
+ } else {
+ Message msg = mHandler.obtainMessage(WX_LOGIN_FAIL);
+ msg.obj = entity.getMsg();
+ mHandler.sendMessage(msg);
+ }
+ }
+
+ @Override
+ public void onFail(String message) {
+ Message msg = mHandler.obtainMessage(LOGIN_FAIL);
+ msg.obj = message;
+ mHandler.sendMessage(msg);
+ }
+ });
+ }
+
+ @Override
+ public void onReq(BaseReq baseReq) {
+
+ }
+
+ @Override
+ public void onResp(BaseResp resp) {
+ Log.i("BaseReq", "" + resp.openId + "---" + resp.transaction + "===" + resp.errCode + "==" + resp.errStr);
+ String code = ((SendAuth.Resp) resp).code;
+ Log.i("BaseReq", "LoginActivity onResp()" + code);
+ String result;
+ switch (resp.errCode) {
+ case BaseResp.ErrCode.ERR_OK:
+ result = getString(R.string.Share_success);
+ EventBus.getDefault().post(
+ new WxLoginEvent(code));
+ break;
+ case BaseResp.ErrCode.ERR_USER_CANCEL:
+ result = "取消分享";
+ break;
+ case BaseResp.ErrCode.ERR_AUTH_DENIED:
+ result = "分享被拒绝";
+ break;
+ default:
+ result = "发送返回";
+ break;
+ }
+ }
+
+ @Override
+ protected void onActivityResult(int requestCode, int resultCode, Intent data) {
+ switch (requestCode) {
+ case GET_PHONE_AREA:
+ if (data != null && data.getExtras().get("phoneArea") != null) {
+ phoneArea.setText(data.getExtras().get("phoneArea").toString());
+ }
+ break;
+ }
+ }
+}
diff --git a/app/src/ansunxan/java/com/yonsz/z1/login/WelcomeActivity.java b/app/src/ansunxan/java/com/yonsz/z1/login/WelcomeActivity.java
new file mode 100644
index 0000000..32fc9ba
--- /dev/null
+++ b/app/src/ansunxan/java/com/yonsz/z1/login/WelcomeActivity.java
@@ -0,0 +1,319 @@
+package com.yonsz.z1.login;
+
+import android.Manifest;
+import android.annotation.TargetApi;
+import android.content.Intent;
+import android.graphics.Rect;
+import android.os.Build;
+import android.os.Bundle;
+import android.os.Message;
+import android.text.TextUtils;
+import android.util.Log;
+import android.view.DisplayCutout;
+import android.view.Gravity;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.WindowInsets;
+import android.widget.Toast;
+
+import com.alibaba.fastjson.JSON;
+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.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.database.entity.TokenEntity;
+import com.yonsz.z1.fragment.person.WebViewActivity;
+import com.yonsz.z1.net.Constans;
+import com.yonsz.z1.net.NetWorkUrl;
+import com.yonsz.z1.net.NetWorkUtil;
+import com.yonsz.z1.utils.AppGenerUtil;
+import com.yonsz.z1.utils.DensityUtil;
+import com.yonsz.z1.utils.SharedpreferencesUtil;
+import com.yonsz.z1.version4.MainActivity4;
+import com.yonsz.z1.view.PrivacyPopupWindow;
+
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+
+import static com.yonsz.z1.UniKongApp.getActivity;
+import static com.yonsz.z1.difference.DifferConstans.APPID_S;
+import static com.yonsz.z1.difference.DifferConstans.APPSECRET_S;
+import static com.yonsz.z1.net.Constans.CLOSE_THIS_ACTIVITY;
+import static com.yonsz.z1.net.Constans.GET_TOKEN_FAIL;
+import static com.yonsz.z1.net.Constans.GET_TOKEN_SUCCESS;
+
+/**
+ * Created by Administrator on 2017/5/17.
+ */
+
+public class WelcomeActivity extends BaseActivity {
+
+ private final static int FLAG_TO_LOGIN = 1001;
+ private final static int FLAG_TO_GUIDER = 1002;
+ private final static int FLAG_TO_GESTURE = 1003;
+ private final static int FLAG_TO_MAIN = 1004;
+
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_welcome);
+ /*if (Build.VERSION.SDK_INT >= 28) {
+ getNotchParams();
+ }*/
+ }
+
+ @Override
+ public boolean enableSliding() {
+ return false;
+ }
+
+ @Override
+ public void onResume() {
+ super.onResume();
+ if (DensityUtil.isNetworkConnected(this) && DensityUtil.isNetConnected(this)) {
+ getToken();
+ } else {
+ initNext();
+ }
+ }
+
+ private void getToken() {
+ NetWorkUtil util = NetWorkUtil.instans();
+ HashMap map = new HashMap<>();
+ map.put("appId", APPID_S);
+ map.put("appSecret", APPSECRET_S);
+ util.requestPostByAsynewApi(NetWorkUrl.GET_TOKEN, map, new NetWorkUtil.ReqCallBack() {
+ @Override
+ public void onSuccess(String respone) {
+ Log.i("getToken", "onSuccess: " + respone);
+ TokenEntity entity = JSON.parseObject(respone, TokenEntity.class);
+ if (1 == entity.getFlag()) {
+ Message msg = mHandler.obtainMessage(GET_TOKEN_SUCCESS);
+ msg.obj = entity;
+ mHandler.sendMessage(msg);
+ } else {
+ Message msg = mHandler.obtainMessage(GET_TOKEN_FAIL);
+ msg.obj = entity.getMsg();
+ mHandler.sendMessage(msg);
+ }
+ }
+
+ @Override
+ public void onFail(String message) {
+ Log.i("getToken", "onSuccess: " + message);
+ Message msg = mHandler.obtainMessage(GET_TOKEN_FAIL);
+ msg.obj = message;
+ mHandler.sendMessage(msg);
+ }
+ });
+ }
+
+ private void initNext() {
+ /**
+ * 如果USERID不是空,进入手势页面,如果已经过了引导页,如果SEESSIONID不是空,进入主页面,如果
+ * 是空重新登录,都不是就进入引导页
+ */
+ if (null != SharedpreferencesUtil.get(Constans.PORT, null) && SharedpreferencesUtil.get(Constans.PORT, null).contains(":")) {
+
+ } else {
+ SharedpreferencesUtil.save(Constans.PORT, "wss.yonsz.net:25533");
+ }
+ /*if (!TextUtils.isEmpty(SharedpreferencesUtil.get(Constans.SEESSIONID, ""))) {
+ mHandler.sendEmptyMessageDelayed(FLAG_TO_MAIN, 1000);
+ } else {
+ mHandler.sendEmptyMessageDelayed(FLAG_TO_LOGIN, 1000);
+ }
+ boolean isSetting = TextUtils.isEmpty(SharedpreferencesUtil.
+ get(SharedpreferencesUtil.get(Constans.USERID, ""), ""));*/
+ SoulPermission.getInstance().checkAndRequestPermissions(
+ Permissions.build(Manifest.permission.ACCESS_FINE_LOCATION),
+ //if you want do noting or no need all the callbacks you may use SimplePermissionsAdapter instead
+ new CheckRequestPermissionsListener() {
+ @Override
+ public void onAllPermissionOk(Permission[] allPermissions) {
+ setPermission();
+ }
+
+ @Override
+ public void onPermissionDenied(Permission[] refusedPermissions) {
+ setPermission();
+ }
+ });
+ }
+
+ private void setPermission() {
+ SoulPermission.getInstance().checkAndRequestPermissions(
+ Permissions.build(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) {
+ if (SharedpreferencesUtil.get(Constans.ISOVER)) {
+ gotoNext();
+ } else {
+ showPrivacy();
+ }
+ }
+
+ @Override
+ public void onPermissionDenied(Permission[] refusedPermissions) {
+ if (SharedpreferencesUtil.get(Constans.ISOVER)) {
+ gotoNext();
+ } else {
+ showPrivacy();
+ }
+ }
+ });
+ }
+
+ private void gotoNext() {
+ if (!TextUtils.isEmpty(SharedpreferencesUtil.get(Constans.SEESSIONID, ""))) {
+ if (!TextUtils.isEmpty(SharedpreferencesUtil.get(Constans.ADIMAGEURL, ""))) {
+ mHandler.sendEmptyMessageDelayed(FLAG_TO_GESTURE, 1000);
+ } else {
+ mHandler.sendEmptyMessageDelayed(FLAG_TO_MAIN, 1000);
+ }
+ } else {
+ if (!TextUtils.isEmpty(SharedpreferencesUtil.get(Constans.ADIMAGEURL, ""))) {
+ mHandler.sendEmptyMessageDelayed(FLAG_TO_GESTURE, 1000);
+ } else {
+ mHandler.sendEmptyMessageDelayed(FLAG_TO_LOGIN, 1000);
+ }
+ }
+ }
+
+ private void showPrivacy() {
+ View rootview = LayoutInflater.from(getActivity()).inflate(R.layout.activity_child_device_a2, null);
+ PrivacyPopupWindow popupWindow = new PrivacyPopupWindow(getActivity(), new PrivacyPopupWindow.OnCompleteListener() {
+ @Override
+ public void onComplete() {
+ SharedpreferencesUtil.save(Constans.ISOVER, true);
+ gotoNext();
+ }
+
+ @Override
+ public void onFinish() {
+ finish();
+ }
+
+ @Override
+ public void onPrivacy() {
+ Intent intent = new Intent(getActivity(), WebViewActivity.class);
+ intent.putExtra("platform", "register");
+ startActivity(intent);
+ }
+ });
+ popupWindow.showAtLocation(rootview, Gravity.BOTTOM, 0, 0);
+ }
+
+ @Override
+ public void callBackUiThread(Message msg) {
+ switch (msg.what) {
+ case FLAG_TO_LOGIN:
+ startActivity(new Intent(this, LoginActivity.class));
+ finish();
+ break;
+ case FLAG_TO_GUIDER:
+ startActivity(new Intent(this, GuiderActivity.class));
+ overridePendingTransition(R.anim.activity_exit_in, R.anim.activity_exit_out);
+ finish();
+ break;
+ case FLAG_TO_GESTURE:
+ startActivity(new Intent(this, AdinfoActivity.class));
+ finish();
+ break;
+ case FLAG_TO_MAIN:
+ startActivity(new Intent(this, MainActivity4.class));
+ SharedpreferencesUtil.save("isShowMobilePlay", "0");
+ finish();
+ break;
+ case GET_TOKEN_SUCCESS:
+ TokenEntity entity = (TokenEntity) msg.obj;
+ if (SharedpreferencesUtil.get(Constans.TOKENID, "").equals(entity.getData().getToken().toString().trim())) {
+
+ } else {
+ SharedpreferencesUtil.save(Constans.SEESSIONID, "");
+ }
+ SharedpreferencesUtil.save(Constans.TOKENID, entity.getData().getToken().toString().trim());
+// SharedpreferencesUtil.save(Constans.ADIMAGEURL, entity.getData().getStartUpImgUrl());
+ String androidVersions = entity.getData().getAndroidVersions().toString();
+ if (null != androidVersions) {
+ String packageVersion = AppGenerUtil.getPackageVersion(this);
+ List result = Arrays.asList(androidVersions.split(","));
+ initNext();
+ /*if (result.contains(packageVersion)) {
+ initNext();
+ } else {
+ // initNext();
+ UpdateAppUtils.from(this)
+ .apkPath(versionUrl)
+ .downloadBy(DOWNLOAD_BY_BROWSER)
+ .isForce(true)
+ .update(true);
+ }*/
+ } else {
+ initNext();
+ }
+ /*if (null != SharedpreferencesUtil.get(Constans.TOKENID, "")) {
+ if (entity.getObj().toString().trim().equals(SharedpreferencesUtil.get(Constans.TOKENID, ""))) {
+ initNext();
+ } else {
+ ToastUtil.show(this, "token已过期");
+ mHandler.sendEmptyMessageDelayed(CLOSE_THIS_ACTIVITY, 1000);
+ }
+ } else {
+ SharedpreferencesUtil.save(Constans.TOKENID, entity.getObj().toString().trim());
+ initNext();
+ }*/
+ break;
+ case CLOSE_THIS_ACTIVITY:
+ finish();
+ break;
+ case GET_TOKEN_FAIL:
+ initNext();
+ break;
+ }
+ }
+
+ @TargetApi(28)
+ public void getNotchParams() {
+ final View decorView = getWindow().getDecorView();
+
+ decorView.post(new Runnable() {
+ @Override
+ public void run() {
+ WindowInsets rootWindowInsets = decorView.getRootWindowInsets();
+ if (rootWindowInsets == null) {
+ Log.e("TAG", "rootWindowInsets为空了");
+ return;
+ }
+ DisplayCutout displayCutout = rootWindowInsets.getDisplayCutout();
+ Log.e("TAG", "安全区域距离屏幕左边的距离 SafeInsetLeft:" + displayCutout.getSafeInsetLeft());
+ Log.e("TAG", "安全区域距离屏幕右部的距离 SafeInsetRight:" + displayCutout.getSafeInsetRight());
+ Log.e("TAG", "安全区域距离屏幕顶部的距离 SafeInsetTop:" + displayCutout.getSafeInsetTop());
+ Log.e("TAG", "安全区域距离屏幕底部的距离 SafeInsetBottom:" + displayCutout.getSafeInsetBottom());
+
+ List rects = displayCutout.getBoundingRects();
+ if (rects == null || rects.size() == 0) {
+ Log.e("TAG", "不是刘海屏");
+ } else {
+ if (displayCutout.getSafeInsetTop() > 140) {
+ SharedpreferencesUtil.save(Constans.ISALLSCREEN, "true");
+ } else {
+ SharedpreferencesUtil.save(Constans.ISALLSCREEN, "false");
+ }
+ Log.e("TAG", "刘海屏数量:" + rects.size());
+ for (Rect rect : rects) {
+ Log.e("TAG", "刘海屏区域:" + rect);
+ }
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/ansunxan/java/com/yonsz/z1/login/register/CopyRightActivity.java b/app/src/ansunxan/java/com/yonsz/z1/login/register/CopyRightActivity.java
new file mode 100644
index 0000000..42ccb7f
--- /dev/null
+++ b/app/src/ansunxan/java/com/yonsz/z1/login/register/CopyRightActivity.java
@@ -0,0 +1,46 @@
+package com.yonsz.z1.login.register;
+
+import android.os.Bundle;
+import android.os.Message;
+
+import com.yonsz.z1.R;
+import com.yonsz.z1.activity.BaseActivity;
+import com.yonsz.z1.listener.OnTitleItemClickListener;
+import com.yonsz.z1.view.TitleView;
+
+/**
+ * Created by Administrator on 2017/6/15.
+ */
+
+public class CopyRightActivity extends BaseActivity {
+ private TitleView mTitleView;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_copyright);
+ mTitleView = (TitleView) findViewById(R.id.title_text);
+ mTitleView.setHead("用户协议");
+ mTitleView.setTitleListener(new OnTitleItemClickListener() {
+ @Override
+ public void onBack() {
+ finish();
+ }
+
+ @Override
+ public void onFunction() {
+
+ }
+
+ @Override
+ public void onFunctionText() {
+
+ }
+ });
+ }
+
+ @Override
+ public void callBackUiThread(Message msg) {
+
+ }
+}
diff --git a/app/src/ansunxan/java/com/yonsz/z1/mine/aboutversion/AboutVersionActivity.java b/app/src/ansunxan/java/com/yonsz/z1/mine/aboutversion/AboutVersionActivity.java
new file mode 100644
index 0000000..09dcf5e
--- /dev/null
+++ b/app/src/ansunxan/java/com/yonsz/z1/mine/aboutversion/AboutVersionActivity.java
@@ -0,0 +1,353 @@
+package com.yonsz.z1.mine.aboutversion;
+
+import android.Manifest;
+import android.content.Intent;
+import android.content.pm.PackageManager;
+import android.graphics.Bitmap;
+import android.graphics.BitmapFactory;
+import android.net.Uri;
+import android.os.Bundle;
+import android.os.Message;
+import android.support.v4.app.ActivityCompat;
+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 android.widget.Toast;
+
+import com.alibaba.fastjson.JSON;
+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.tencent.mm.opensdk.modelbase.BaseReq;
+import com.tencent.mm.opensdk.modelbase.BaseResp;
+import com.tencent.mm.opensdk.modelmsg.SendMessageToWX;
+import com.tencent.mm.opensdk.modelmsg.WXImageObject;
+import com.tencent.mm.opensdk.modelmsg.WXMediaMessage;
+import com.tencent.mm.opensdk.openapi.IWXAPI;
+import com.tencent.mm.opensdk.openapi.IWXAPIEventHandler;
+import com.tencent.mm.opensdk.openapi.WXAPIFactory;
+import com.yonsz.z1.R;
+import com.yonsz.z1.activity.BaseActivity;
+import com.yonsz.z1.database.entity.VersionEntity;
+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.DeviceBottomDialog;
+import com.yonsz.z1.mine.aboutversion.feature.Callback;
+import com.yonsz.z1.mine.aboutversion.util.ScoreUtils;
+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.AppGenerUtil;
+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 static com.tencent.mm.opensdk.modelmsg.SendMessageToWX.Req.WXSceneSession;
+import static com.tencent.mm.opensdk.modelmsg.SendMessageToWX.Req.WXSceneTimeline;
+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.WX_APP_ID;
+import static com.yonsz.z1.difference.DifferConstans.versionUrl;
+import static com.yonsz.z1.fragment.person.PersonFragment.bmpToByteArray;
+import static com.yonsz.z1.mine.aboutversion.util.UpdateAppUtils.DOWNLOAD_BY_APP;
+import static com.yonsz.z1.net.Constans.GET_USER_SESSION_NULL;
+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.version4.MainActivity4.versionId;
+
+/**
+ * Created by Administrator on 2017/5/26.
+ */
+public class AboutVersionActivity extends BaseActivity implements IWXAPIEventHandler {
+ private TextView tv_version;
+ private TextView tv_public_goto;
+ private ImageView iv_code;
+ private IWXAPI iwxapi;
+ private RelativeLayout scoreRl, versionDecalreRl, versionUpdateRl;
+ private TextView serviceHotlineTv;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_about_version);
+ iwxapi = WXAPIFactory.createWXAPI(this, WX_APP_ID, false);
+ iwxapi.handleIntent(getIntent(), this);
+ iwxapi.registerApp(WX_APP_ID);
+
+ TitleView titleView = (TitleView) findViewById(R.id.title_about_version);
+ titleView.setHead(R.string.about_version);
+ titleView.setTitleListener(new OnTitleItemClickListener() {
+ @Override
+ public void onBack() {
+ finish();
+ }
+
+ @Override
+ public void onFunction() {
+
+ }
+
+ @Override
+ public void onFunctionText() {
+
+ }
+ });
+ scoreRl = (RelativeLayout) findViewById(R.id.rl_to_score);
+ serviceHotlineTv = (TextView) findViewById(R.id.tv_customer_service_hotline);
+ versionDecalreRl = (RelativeLayout) findViewById(R.id.rl_version_declare);
+ versionUpdateRl = (RelativeLayout) findViewById(R.id.rl_version_update);
+ iv_code = (ImageView) findViewById(R.id.iv_code);
+ tv_public_goto = (TextView) findViewById(R.id.tv_public_goto);
+ tv_version = (TextView) findViewById(R.id.tv_version);
+ tv_version.setText("V" + AppGenerUtil.getPackageVersion(this));
+
+ checkUpdate(1);
+
+
+ iv_code.setOnClickListener(new NoDoubleClickListener() {
+ @Override
+ protected void onNoDoubleClick(View v) {
+ // showDioalog();
+ }
+ });
+ tv_public_goto.setOnClickListener(new NoDoubleClickListener() {
+ @Override
+ public void onNoDoubleClick(View v) {
+ super.onClick(v);
+ // showDioalog();
+ }
+ });
+ scoreRl.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ ArrayList strings = ScoreUtils.SelectedInstalledAPPs(getApplicationContext(), ScoreUtils.InstalledAPPs(getApplicationContext()));
+ ScoreUtils.launchAppDetail(AboutVersionActivity.this, "com.yonsz.z1", strings.get(0));
+ }
+ });
+ versionDecalreRl.setOnClickListener(new NoDoubleClickListener() {
+ @Override
+ protected void onNoDoubleClick(View v) {
+ Intent intent = new Intent(AboutVersionActivity.this, VersionDecalreActivity.class);
+ intent.putExtra("activity", "AboutVersionActivity");
+ startActivity(intent);
+ }
+ });
+ versionUpdateRl.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ updataUserState();
+ }
+ });
+ serviceHotlineTv.setOnClickListener(new NoDoubleClickListener() {
+ @Override
+ protected void onNoDoubleClick(View v) {
+ callHotline();
+ }
+ });
+ }
+
+ private void callHotline() {
+ ConfirmDialog dialog = new ConfirmDialog(getActivity(), new Callback() {
+ @Override
+ public void callback(int position) {
+ switch (position) {
+ case 0:
+ break;
+ case 1:
+ callPhone("4001365663");
+ break;
+ }
+ }
+ });
+ dialog.setContent("400 136 5663");
+ dialog.setCancleBtn(R.string.cancel);
+ dialog.setSureBtn(R.string.call);
+ dialog.setCancelable(false);
+ dialog.show();
+ }
+
+ public void callPhone(String phoneNum) {
+ SoulPermission.getInstance().checkAndRequestPermissions(
+ Permissions.build(Manifest.permission.CALL_PHONE,
+ Manifest.permission.READ_PHONE_STATE,
+ 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) {
+ Intent intent = new Intent(Intent.ACTION_CALL);
+ Uri data = Uri.parse("tel:" + phoneNum);
+ intent.setData(data);
+ if (ActivityCompat.checkSelfPermission(AboutVersionActivity.this, Manifest.permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED) {
+ return;
+ }
+ startActivity(intent);
+ }
+
+ @Override
+ public void onPermissionDenied(Permission[] refusedPermissions) {
+ ToastUtil.show(AboutVersionActivity.this, "请开启权限");
+ }
+ });
+ }
+
+ private void checkUpdate(int tag) {
+ UpdateAppUtils.from(this)
+ .checkBy(UpdateAppUtils.CHECK_BY_VERSION_NAME)
+ .serverVersionName(versionId)
+ .serverVersionCode(5)
+ .apkPath(versionUrl)
+ .downloadBy(DOWNLOAD_BY_APP)
+ .isForce(false)
+ .update(tag);
+ }
+
+ private void showDioalog() {
+ if (!iwxapi.isWXAppInstalled()) {
+ Toast.makeText(this, getString(R.string.not_installed_Wechat), Toast.LENGTH_SHORT).show();
+ return;
+ }
+ //初始化一个WXImageObject对象
+ Bitmap thumb = BitmapFactory.decodeResource(getResources(), R.drawable.pic_public_code);
+ WXImageObject imageObject = new WXImageObject(thumb);
+ WXMediaMessage msg = new WXMediaMessage(); //这个对象是用来包裹发送信息的对象
+ msg.mediaObject = imageObject;
+ //设置缩略图
+ Bitmap thumbBitmap = Bitmap.createScaledBitmap(thumb, 60, 60, true);
+ msg.thumbData = bmpToByteArray(thumbBitmap, true);
+ final SendMessageToWX.Req req = new SendMessageToWX.Req(); //创建一个请求对象
+ req.message = msg; //把msg放入请求对象中
+ req.transaction = buildTransaction("Req");
+
+
+ /*WXWebpageObject webpageObject = new WXWebpageObject();
+ webpageObject.webpageUrl = "http://a.app.qq.com/o/simple.jsp?pkgname=com.yonsz.z1";
+ WXMediaMessage msg = new WXMediaMessage(webpageObject);
+ msg.title = "Unikong";
+ msg.description = "欢迎下载『语音遥控器APP』";
+ Bitmap thumb = BitmapFactory.decodeResource(getResources(), R.mipmap.app_lan);
+ msg.thumbData = bmpToByteArray(thumb, true);
+ final SendMessageToWX.Req req = new SendMessageToWX.Req();
+ req.transaction = buildTransaction("Req");
+ req.message = msg;*/
+ //分享到微信好友或者朋友圈
+ // startActivity(new Intent(getActivity(), WXEntryActivity.class));
+ DeviceBottomDialog dialog2 = new DeviceBottomDialog(this, new Callback() {
+ @Override
+ public void callback(int position1) {
+ switch (position1) {
+ case 0:
+ //取消
+ break;
+ case 1:
+ //微信朋友圈
+ req.scene = WXSceneTimeline;
+ iwxapi.sendReq(req);
+ break;
+ case 2:
+ //重新命名
+ break;
+ case 3:
+ //微信好友
+ req.scene = WXSceneSession;
+ iwxapi.sendReq(req);
+ break;
+ case 4:
+ break;
+ }
+ }
+ });
+ dialog2.setContent();
+ dialog2.setTop(getString(R.string.WeChat_friends));
+ dialog2.setBottom(getString(R.string.WeChat_friends_circle));
+ dialog2.setLearn();
+ 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();
+ }
+
+ private String buildTransaction(final String type) {
+ return (type == null) ? String.valueOf(System.currentTimeMillis()) : type + System.currentTimeMillis();
+ }
+
+
+ @Override
+ public void callBackUiThread(Message msg) {
+ switch (msg.what) {
+ case UPDATE_STATE_SUCCESS:
+ VersionEntity.ObjEntity versionEntity = (VersionEntity.ObjEntity) msg.obj;
+ versionId = versionEntity.getVersionInfo().getVersionId().substring(2, 7);
+ versionUrl = versionEntity.getVersionInfo().getServiceUrl();
+ checkUpdate(2);
+ break;
+ }
+ }
+
+ @Override
+ public void onReq(BaseReq baseReq) {
+
+ }
+
+ @Override
+ public void onResp(BaseResp baseResp) {
+
+ }
+
+ //上传用户经纬度信息
+ 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.requestPostByAsynewApi(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);
+ }
+ });
+ }
+}
diff --git a/app/src/ansunxan/res/anim/slide_left_in.xml b/app/src/ansunxan/res/anim/slide_left_in.xml
new file mode 100644
index 0000000..efac524
--- /dev/null
+++ b/app/src/ansunxan/res/anim/slide_left_in.xml
@@ -0,0 +1,5 @@
+
+
+
+
diff --git a/app/src/ansunxan/res/anim/slide_left_out.xml b/app/src/ansunxan/res/anim/slide_left_out.xml
new file mode 100644
index 0000000..2b1e672
--- /dev/null
+++ b/app/src/ansunxan/res/anim/slide_left_out.xml
@@ -0,0 +1,5 @@
+
+
+
+
diff --git a/app/src/ansunxan/res/anim/slide_right_in.xml b/app/src/ansunxan/res/anim/slide_right_in.xml
new file mode 100644
index 0000000..2fc61e8
--- /dev/null
+++ b/app/src/ansunxan/res/anim/slide_right_in.xml
@@ -0,0 +1,5 @@
+
+
+
+
diff --git a/app/src/ansunxan/res/anim/slide_right_out.xml b/app/src/ansunxan/res/anim/slide_right_out.xml
new file mode 100644
index 0000000..9934aa3
--- /dev/null
+++ b/app/src/ansunxan/res/anim/slide_right_out.xml
@@ -0,0 +1,5 @@
+
+
+
+
diff --git a/app/src/ansunxan/res/drawable-hdpi/Thumbs.db b/app/src/ansunxan/res/drawable-hdpi/Thumbs.db
new file mode 100644
index 0000000..9952f7a
Binary files /dev/null and b/app/src/ansunxan/res/drawable-hdpi/Thumbs.db differ
diff --git a/app/src/ansunxan/res/drawable-hdpi/common_icon_remind.png b/app/src/ansunxan/res/drawable-hdpi/common_icon_remind.png
new file mode 100644
index 0000000..b497932
Binary files /dev/null and b/app/src/ansunxan/res/drawable-hdpi/common_icon_remind.png differ
diff --git a/app/src/ansunxan/res/drawable-hdpi/common_switch_off.png b/app/src/ansunxan/res/drawable-hdpi/common_switch_off.png
new file mode 100644
index 0000000..39bccc0
Binary files /dev/null and b/app/src/ansunxan/res/drawable-hdpi/common_switch_off.png differ
diff --git a/app/src/ansunxan/res/drawable-hdpi/common_switch_on.png b/app/src/ansunxan/res/drawable-hdpi/common_switch_on.png
new file mode 100644
index 0000000..323435b
Binary files /dev/null and b/app/src/ansunxan/res/drawable-hdpi/common_switch_on.png differ
diff --git a/app/src/ansunxan/res/drawable-hdpi/device_btn_wiredadd.png b/app/src/ansunxan/res/drawable-hdpi/device_btn_wiredadd.png
new file mode 100644
index 0000000..4a5b09c
Binary files /dev/null and b/app/src/ansunxan/res/drawable-hdpi/device_btn_wiredadd.png differ
diff --git a/app/src/ansunxan/res/drawable-hdpi/device_icon_wifiadd.png b/app/src/ansunxan/res/drawable-hdpi/device_icon_wifiadd.png
new file mode 100644
index 0000000..fab8fa0
Binary files /dev/null and b/app/src/ansunxan/res/drawable-hdpi/device_icon_wifiadd.png differ
diff --git a/app/src/ansunxan/res/drawable-hdpi/list_bg_device.png b/app/src/ansunxan/res/drawable-hdpi/list_bg_device.png
new file mode 100644
index 0000000..5cec7e3
Binary files /dev/null and b/app/src/ansunxan/res/drawable-hdpi/list_bg_device.png differ
diff --git a/app/src/ansunxan/res/drawable-hdpi/list_bg_nomessage.png b/app/src/ansunxan/res/drawable-hdpi/list_bg_nomessage.png
new file mode 100644
index 0000000..6ee12f2
Binary files /dev/null and b/app/src/ansunxan/res/drawable-hdpi/list_bg_nomessage.png differ
diff --git a/app/src/ansunxan/res/drawable-hdpi/list_bg_norecord.png b/app/src/ansunxan/res/drawable-hdpi/list_bg_norecord.png
new file mode 100644
index 0000000..3be55b7
Binary files /dev/null and b/app/src/ansunxan/res/drawable-hdpi/list_bg_norecord.png differ
diff --git a/app/src/ansunxan/res/drawable-hdpi/list_bg_video.png b/app/src/ansunxan/res/drawable-hdpi/list_bg_video.png
new file mode 100644
index 0000000..acf7cc4
Binary files /dev/null and b/app/src/ansunxan/res/drawable-hdpi/list_bg_video.png differ
diff --git a/app/src/ansunxan/res/drawable-hdpi/list_btn_cloudvideo.png b/app/src/ansunxan/res/drawable-hdpi/list_btn_cloudvideo.png
new file mode 100644
index 0000000..7724ada
Binary files /dev/null and b/app/src/ansunxan/res/drawable-hdpi/list_btn_cloudvideo.png differ
diff --git a/app/src/ansunxan/res/drawable-hdpi/list_btn_deletedevice.png b/app/src/ansunxan/res/drawable-hdpi/list_btn_deletedevice.png
new file mode 100644
index 0000000..af8bbeb
Binary files /dev/null and b/app/src/ansunxan/res/drawable-hdpi/list_btn_deletedevice.png differ
diff --git a/app/src/ansunxan/res/drawable-hdpi/list_btn_deletemessage.png b/app/src/ansunxan/res/drawable-hdpi/list_btn_deletemessage.png
new file mode 100644
index 0000000..4753bc8
Binary files /dev/null and b/app/src/ansunxan/res/drawable-hdpi/list_btn_deletemessage.png differ
diff --git a/app/src/ansunxan/res/drawable-hdpi/list_btn_livevideo.png b/app/src/ansunxan/res/drawable-hdpi/list_btn_livevideo.png
new file mode 100644
index 0000000..5992c03
Binary files /dev/null and b/app/src/ansunxan/res/drawable-hdpi/list_btn_livevideo.png differ
diff --git a/app/src/ansunxan/res/drawable-hdpi/list_btn_localvideo.png b/app/src/ansunxan/res/drawable-hdpi/list_btn_localvideo.png
new file mode 100644
index 0000000..08e659e
Binary files /dev/null and b/app/src/ansunxan/res/drawable-hdpi/list_btn_localvideo.png differ
diff --git a/app/src/ansunxan/res/drawable-hdpi/list_btn_message.png b/app/src/ansunxan/res/drawable-hdpi/list_btn_message.png
new file mode 100644
index 0000000..ff83411
Binary files /dev/null and b/app/src/ansunxan/res/drawable-hdpi/list_btn_message.png differ
diff --git a/app/src/ansunxan/res/drawable-hdpi/list_btn_setting.png b/app/src/ansunxan/res/drawable-hdpi/list_btn_setting.png
new file mode 100644
index 0000000..6187aa7
Binary files /dev/null and b/app/src/ansunxan/res/drawable-hdpi/list_btn_setting.png differ
diff --git a/app/src/ansunxan/res/drawable-hdpi/list_icon_offline.png b/app/src/ansunxan/res/drawable-hdpi/list_icon_offline.png
new file mode 100644
index 0000000..c698996
Binary files /dev/null and b/app/src/ansunxan/res/drawable-hdpi/list_icon_offline.png differ
diff --git a/app/src/ansunxan/res/drawable-hdpi/live_btn_fluent.png b/app/src/ansunxan/res/drawable-hdpi/live_btn_fluent.png
new file mode 100644
index 0000000..9e452e1
Binary files /dev/null and b/app/src/ansunxan/res/drawable-hdpi/live_btn_fluent.png differ
diff --git a/app/src/ansunxan/res/drawable-hdpi/live_btn_fullscreen.png b/app/src/ansunxan/res/drawable-hdpi/live_btn_fullscreen.png
new file mode 100644
index 0000000..6abcf5f
Binary files /dev/null and b/app/src/ansunxan/res/drawable-hdpi/live_btn_fullscreen.png differ
diff --git a/app/src/ansunxan/res/drawable-hdpi/live_btn_hd.png b/app/src/ansunxan/res/drawable-hdpi/live_btn_hd.png
new file mode 100644
index 0000000..86b013c
Binary files /dev/null and b/app/src/ansunxan/res/drawable-hdpi/live_btn_hd.png differ
diff --git a/app/src/ansunxan/res/drawable-hdpi/live_btn_ptz_off.png b/app/src/ansunxan/res/drawable-hdpi/live_btn_ptz_off.png
new file mode 100644
index 0000000..53f67c6
Binary files /dev/null and b/app/src/ansunxan/res/drawable-hdpi/live_btn_ptz_off.png differ
diff --git a/app/src/ansunxan/res/drawable-hdpi/live_btn_ptz_on.png b/app/src/ansunxan/res/drawable-hdpi/live_btn_ptz_on.png
new file mode 100644
index 0000000..57fde53
Binary files /dev/null and b/app/src/ansunxan/res/drawable-hdpi/live_btn_ptz_on.png differ
diff --git a/app/src/ansunxan/res/drawable-hdpi/live_btn_record_click.png b/app/src/ansunxan/res/drawable-hdpi/live_btn_record_click.png
new file mode 100644
index 0000000..65e33c1
Binary files /dev/null and b/app/src/ansunxan/res/drawable-hdpi/live_btn_record_click.png differ
diff --git a/app/src/ansunxan/res/drawable-hdpi/live_btn_record_nor.png b/app/src/ansunxan/res/drawable-hdpi/live_btn_record_nor.png
new file mode 100644
index 0000000..9dab395
Binary files /dev/null and b/app/src/ansunxan/res/drawable-hdpi/live_btn_record_nor.png differ
diff --git a/app/src/ansunxan/res/drawable-hdpi/live_btn_screenshot_click.png b/app/src/ansunxan/res/drawable-hdpi/live_btn_screenshot_click.png
new file mode 100644
index 0000000..212135a
Binary files /dev/null and b/app/src/ansunxan/res/drawable-hdpi/live_btn_screenshot_click.png differ
diff --git a/app/src/ansunxan/res/drawable-hdpi/live_btn_screenshot_nor.png b/app/src/ansunxan/res/drawable-hdpi/live_btn_screenshot_nor.png
new file mode 100644
index 0000000..bd49937
Binary files /dev/null and b/app/src/ansunxan/res/drawable-hdpi/live_btn_screenshot_nor.png differ
diff --git a/app/src/ansunxan/res/drawable-hdpi/live_btn_smallscreen.png b/app/src/ansunxan/res/drawable-hdpi/live_btn_smallscreen.png
new file mode 100644
index 0000000..8fc3dee
Binary files /dev/null and b/app/src/ansunxan/res/drawable-hdpi/live_btn_smallscreen.png differ
diff --git a/app/src/ansunxan/res/drawable-hdpi/live_btn_sound_off.png b/app/src/ansunxan/res/drawable-hdpi/live_btn_sound_off.png
new file mode 100644
index 0000000..f0ba8d4
Binary files /dev/null and b/app/src/ansunxan/res/drawable-hdpi/live_btn_sound_off.png differ
diff --git a/app/src/ansunxan/res/drawable-hdpi/live_btn_sound_on.png b/app/src/ansunxan/res/drawable-hdpi/live_btn_sound_on.png
new file mode 100644
index 0000000..5930aba
Binary files /dev/null and b/app/src/ansunxan/res/drawable-hdpi/live_btn_sound_on.png differ
diff --git a/app/src/ansunxan/res/drawable-hdpi/live_btn_talk_click.png b/app/src/ansunxan/res/drawable-hdpi/live_btn_talk_click.png
new file mode 100644
index 0000000..1a036d2
Binary files /dev/null and b/app/src/ansunxan/res/drawable-hdpi/live_btn_talk_click.png differ
diff --git a/app/src/ansunxan/res/drawable-hdpi/live_btn_talk_nor.png b/app/src/ansunxan/res/drawable-hdpi/live_btn_talk_nor.png
new file mode 100644
index 0000000..b3d5575
Binary files /dev/null and b/app/src/ansunxan/res/drawable-hdpi/live_btn_talk_nor.png differ
diff --git a/app/src/ansunxan/res/drawable-hdpi/live_pic_record.png b/app/src/ansunxan/res/drawable-hdpi/live_pic_record.png
new file mode 100644
index 0000000..78315bc
Binary files /dev/null and b/app/src/ansunxan/res/drawable-hdpi/live_pic_record.png differ
diff --git a/app/src/ansunxan/res/drawable-hdpi/live_pic_talkback.png b/app/src/ansunxan/res/drawable-hdpi/live_pic_talkback.png
new file mode 100644
index 0000000..aa166e2
Binary files /dev/null and b/app/src/ansunxan/res/drawable-hdpi/live_pic_talkback.png differ
diff --git a/app/src/ansunxan/res/drawable-hdpi/record_btn_fullscreen.png b/app/src/ansunxan/res/drawable-hdpi/record_btn_fullscreen.png
new file mode 100644
index 0000000..f54118a
Binary files /dev/null and b/app/src/ansunxan/res/drawable-hdpi/record_btn_fullscreen.png differ
diff --git a/app/src/ansunxan/res/drawable-hdpi/record_btn_pause.png b/app/src/ansunxan/res/drawable-hdpi/record_btn_pause.png
new file mode 100644
index 0000000..b2499ad
Binary files /dev/null and b/app/src/ansunxan/res/drawable-hdpi/record_btn_pause.png differ
diff --git a/app/src/ansunxan/res/drawable-hdpi/record_btn_play.png b/app/src/ansunxan/res/drawable-hdpi/record_btn_play.png
new file mode 100644
index 0000000..49c834f
Binary files /dev/null and b/app/src/ansunxan/res/drawable-hdpi/record_btn_play.png differ
diff --git a/app/src/ansunxan/res/drawable-hdpi/record_btn_smallscreen.png b/app/src/ansunxan/res/drawable-hdpi/record_btn_smallscreen.png
new file mode 100644
index 0000000..8b8e290
Binary files /dev/null and b/app/src/ansunxan/res/drawable-hdpi/record_btn_smallscreen.png differ
diff --git a/app/src/ansunxan/res/drawable-hdpi/record_progress_point.png b/app/src/ansunxan/res/drawable-hdpi/record_progress_point.png
new file mode 100644
index 0000000..03eb09d
Binary files /dev/null and b/app/src/ansunxan/res/drawable-hdpi/record_progress_point.png differ
diff --git a/app/src/ansunxan/res/drawable-hdpi/splash_bg.png b/app/src/ansunxan/res/drawable-hdpi/splash_bg.png
new file mode 100644
index 0000000..dc375a8
Binary files /dev/null and b/app/src/ansunxan/res/drawable-hdpi/splash_bg.png differ
diff --git a/app/src/ansunxan/res/drawable-hdpi/splash_btn_admin.png b/app/src/ansunxan/res/drawable-hdpi/splash_btn_admin.png
new file mode 100644
index 0000000..801753b
Binary files /dev/null and b/app/src/ansunxan/res/drawable-hdpi/splash_btn_admin.png differ
diff --git a/app/src/ansunxan/res/drawable-hdpi/splash_btn_user.png b/app/src/ansunxan/res/drawable-hdpi/splash_btn_user.png
new file mode 100644
index 0000000..40677ee
Binary files /dev/null and b/app/src/ansunxan/res/drawable-hdpi/splash_btn_user.png differ
diff --git a/app/src/ansunxan/res/drawable-hdpi/title_btn_back.png b/app/src/ansunxan/res/drawable-hdpi/title_btn_back.png
new file mode 100644
index 0000000..ed6b962
Binary files /dev/null and b/app/src/ansunxan/res/drawable-hdpi/title_btn_back.png differ
diff --git a/app/src/ansunxan/res/drawable-hdpi/title_btn_deviceadd.png b/app/src/ansunxan/res/drawable-hdpi/title_btn_deviceadd.png
new file mode 100644
index 0000000..6df0fd9
Binary files /dev/null and b/app/src/ansunxan/res/drawable-hdpi/title_btn_deviceadd.png differ
diff --git a/app/src/ansunxan/res/drawable-hdpi/title_btn_search.png b/app/src/ansunxan/res/drawable-hdpi/title_btn_search.png
new file mode 100644
index 0000000..0384291
Binary files /dev/null and b/app/src/ansunxan/res/drawable-hdpi/title_btn_search.png differ
diff --git a/app/src/ansunxan/res/drawable-hdpi/video_btn_play.png b/app/src/ansunxan/res/drawable-hdpi/video_btn_play.png
new file mode 100644
index 0000000..0372032
Binary files /dev/null and b/app/src/ansunxan/res/drawable-hdpi/video_btn_play.png differ
diff --git a/app/src/ansunxan/res/drawable-xhdpi/Thumbs.db b/app/src/ansunxan/res/drawable-xhdpi/Thumbs.db
new file mode 100644
index 0000000..a0aa192
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xhdpi/Thumbs.db differ
diff --git a/app/src/ansunxan/res/drawable-xhdpi/custom_calendar_row_left.png b/app/src/ansunxan/res/drawable-xhdpi/custom_calendar_row_left.png
new file mode 100644
index 0000000..84efb1f
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xhdpi/custom_calendar_row_left.png differ
diff --git a/app/src/ansunxan/res/drawable-xhdpi/custom_calendar_row_right.png b/app/src/ansunxan/res/drawable-xhdpi/custom_calendar_row_right.png
new file mode 100644
index 0000000..f8af65c
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xhdpi/custom_calendar_row_right.png differ
diff --git a/app/src/ansunxan/res/drawable-xhdpi/list_btn_download.png b/app/src/ansunxan/res/drawable-xhdpi/list_btn_download.png
new file mode 100644
index 0000000..9355262
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xhdpi/list_btn_download.png differ
diff --git a/app/src/ansunxan/res/drawable-xhdpi/sdk_launcher.png b/app/src/ansunxan/res/drawable-xhdpi/sdk_launcher.png
new file mode 100644
index 0000000..50a9616
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xhdpi/sdk_launcher.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/bg.png b/app/src/ansunxan/res/drawable-xxhdpi/bg.png
new file mode 100644
index 0000000..1966b69
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/bg.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_airer.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_airer.png
new file mode 100644
index 0000000..869e562
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_airer.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_alone.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_alone.png
new file mode 100644
index 0000000..bd913a5
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_alone.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_autogate.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_autogate.png
new file mode 100644
index 0000000..1ff1717
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_autogate.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_bright.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_bright.png
new file mode 100644
index 0000000..04e3c22
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_bright.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_bungalow.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_bungalow.png
new file mode 100644
index 0000000..99c8af0
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_bungalow.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_camera.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_camera.png
new file mode 100644
index 0000000..bacf22b
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_camera.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_camera_set.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_camera_set.png
new file mode 100644
index 0000000..6de4c1f
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_camera_set.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_chandelier.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_chandelier.png
new file mode 100644
index 0000000..05d58c2
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_chandelier.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_chazuo.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_chazuo.png
new file mode 100644
index 0000000..3af7226
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_chazuo.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_choice_r.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_choice_r.png
new file mode 100644
index 0000000..b10d472
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_choice_r.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_clean.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_clean.png
new file mode 100644
index 0000000..3f24f66
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_clean.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_close_control.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_close_control.png
new file mode 100644
index 0000000..36d4c64
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_close_control.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_cloud_control_nor.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_cloud_control_nor.png
new file mode 100644
index 0000000..573f8e0
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_cloud_control_nor.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_cloud_control_per.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_cloud_control_per.png
new file mode 100644
index 0000000..92ec36e
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_cloud_control_per.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_cloud_video_nor.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_cloud_video_nor.png
new file mode 100644
index 0000000..e4a8a7c
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_cloud_video_nor.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_cloud_video_per.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_cloud_video_per.png
new file mode 100644
index 0000000..b3c05f2
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_cloud_video_per.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_column_control_nor.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_column_control_nor.png
new file mode 100644
index 0000000..79174cf
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_column_control_nor.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_column_control_pre.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_column_control_pre.png
new file mode 100644
index 0000000..086ee49
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_column_control_pre.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_column_lockscreen.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_column_lockscreen.png
new file mode 100644
index 0000000..eeec8e1
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_column_lockscreen.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_column_lockscreen_per.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_column_lockscreen_per.png
new file mode 100644
index 0000000..8ac8f92
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_column_lockscreen_per.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_column_photograph.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_column_photograph.png
new file mode 100644
index 0000000..1a99785
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_column_photograph.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_column_play.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_column_play.png
new file mode 100644
index 0000000..8a88067
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_column_play.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_column_screen.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_column_screen.png
new file mode 100644
index 0000000..189b18d
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_column_screen.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_column_suspend.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_column_suspend.png
new file mode 100644
index 0000000..eef96d6
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_column_suspend.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_column_suspend1.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_column_suspend1.png
new file mode 100644
index 0000000..603778f
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_column_suspend1.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_column_suspend_per.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_column_suspend_per.png
new file mode 100644
index 0000000..b7d2ec3
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_column_suspend_per.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_column_videotape.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_column_videotape.png
new file mode 100644
index 0000000..b8d0aeb
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_column_videotape.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_column_videotape_per.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_column_videotape_per.png
new file mode 100644
index 0000000..03019ed
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_column_videotape_per.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_combination.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_combination.png
new file mode 100644
index 0000000..089781c
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_combination.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_control_nor.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_control_nor.png
new file mode 100644
index 0000000..ec2ee6d
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_control_nor.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_control_pre.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_control_pre.png
new file mode 100644
index 0000000..31c30b0
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_control_pre.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_curtain_close.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_curtain_close.png
new file mode 100644
index 0000000..2507367
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_curtain_close.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_curtain_elevator.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_curtain_elevator.png
new file mode 100644
index 0000000..975fbc6
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_curtain_elevator.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_curtain_open.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_curtain_open.png
new file mode 100644
index 0000000..f15a2f5
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_curtain_open.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_curtain_stop.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_curtain_stop.png
new file mode 100644
index 0000000..44b1419
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_curtain_stop.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_curtaingauzecurtain.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_curtaingauzecurtain.png
new file mode 100644
index 0000000..87a4413
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_curtaingauzecurtain.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_curtains.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_curtains.png
new file mode 100644
index 0000000..69e9813
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_curtains.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_custom_room.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_custom_room.png
new file mode 100644
index 0000000..3fece95
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_custom_room.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_dark.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_dark.png
new file mode 100644
index 0000000..7342dff
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_dark.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_deletel_home.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_deletel_home.png
new file mode 100644
index 0000000..1c27f58
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_deletel_home.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_desklamp.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_desklamp.png
new file mode 100644
index 0000000..a16263c
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_desklamp.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_device_more.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_device_more.png
new file mode 100644
index 0000000..6a2c13c
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_device_more.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_device_plug_t1.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_device_plug_t1.png
new file mode 100644
index 0000000..97a9f37
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_device_plug_t1.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_device_plug_t4.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_device_plug_t4.png
new file mode 100644
index 0000000..3af7226
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_device_plug_t4.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_device_qingjing_t5.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_device_qingjing_t5.png
new file mode 100644
index 0000000..f10ff45
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_device_qingjing_t5.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_device_wallsocket_t2.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_device_wallsocket_t2.png
new file mode 100644
index 0000000..97affb0
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_device_wallsocket_t2.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_device_wifi_socket.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_device_wifi_socket.png
new file mode 100644
index 0000000..0eaedfe
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_device_wifi_socket.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_dialogue_nor.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_dialogue_nor.png
new file mode 100644
index 0000000..1611fe5
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_dialogue_nor.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_dialogue_pre.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_dialogue_pre.png
new file mode 100644
index 0000000..8b0cdf1
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_dialogue_pre.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_direction.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_direction.png
new file mode 100644
index 0000000..94ae68e
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_direction.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_direction_down.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_direction_down.png
new file mode 100644
index 0000000..9933da5
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_direction_down.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_direction_left.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_direction_left.png
new file mode 100644
index 0000000..546c249
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_direction_left.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_direction_right.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_direction_right.png
new file mode 100644
index 0000000..c986771
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_direction_right.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_direction_up.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_direction_up.png
new file mode 100644
index 0000000..8ee18ab
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_direction_up.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_dwx.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_dwx.png
new file mode 100644
index 0000000..b536425
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_dwx.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_elevator.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_elevator.png
new file mode 100644
index 0000000..11ba70e
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_elevator.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_exhaust.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_exhaust.png
new file mode 100644
index 0000000..694a4eb
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_exhaust.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_five_room.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_five_room.png
new file mode 100644
index 0000000..45d71e4
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_five_room.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_fork.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_fork.png
new file mode 100644
index 0000000..c090f77
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_fork.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_four_room.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_four_room.png
new file mode 100644
index 0000000..506fab8
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_four_room.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_fs.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_fs.png
new file mode 100644
index 0000000..3d03c15
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_fs.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_garage.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_garage.png
new file mode 100644
index 0000000..f4ca044
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_garage.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_gas.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_gas.png
new file mode 100644
index 0000000..03a186f
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_gas.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_gas_433.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_gas_433.png
new file mode 100644
index 0000000..9d33aaa
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_gas_433.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_gatemagnetic.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_gatemagnetic.png
new file mode 100644
index 0000000..8dc9ff4
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_gatemagnetic.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_gatemagnetic_433.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_gatemagnetic_433.png
new file mode 100644
index 0000000..fad7175
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_gatemagnetic_433.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_gateway_dh.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_gateway_dh.png
new file mode 100644
index 0000000..f8e24b2
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_gateway_dh.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_gauze.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_gauze.png
new file mode 100644
index 0000000..16731fc
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_gauze.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_goback_nor.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_goback_nor.png
new file mode 100644
index 0000000..88bb428
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_goback_nor.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_heater.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_heater.png
new file mode 100644
index 0000000..606f109
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_heater.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_implement_open.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_implement_open.png
new file mode 100644
index 0000000..ec43e5c
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_implement_open.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_implement_shut.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_implement_shut.png
new file mode 100644
index 0000000..b8d5ac6
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_implement_shut.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_index_nor.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_index_nor.png
new file mode 100644
index 0000000..1233bb7
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_index_nor.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_infrared.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_infrared.png
new file mode 100644
index 0000000..3fbcfc0
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_infrared.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_infrared_433.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_infrared_433.png
new file mode 100644
index 0000000..07c2e25
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_infrared_433.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_kettle.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_kettle.png
new file mode 100644
index 0000000..a09590d
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_kettle.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_kitchenpower.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_kitchenpower.png
new file mode 100644
index 0000000..90064a1
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_kitchenpower.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_kt.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_kt.png
new file mode 100644
index 0000000..590e5a6
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_kt.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_lamp.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_lamp.png
new file mode 100644
index 0000000..1460b04
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_lamp.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_leanhelp.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_leanhelp.png
new file mode 100644
index 0000000..3cf51fd
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_leanhelp.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_light.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_light.png
new file mode 100644
index 0000000..ff37835
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_light.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_lightbelt.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_lightbelt.png
new file mode 100644
index 0000000..9cafed8
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_lightbelt.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_local_video_nor.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_local_video_nor.png
new file mode 100644
index 0000000..2330b9f
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_local_video_nor.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_local_video_per.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_local_video_per.png
new file mode 100644
index 0000000..1be1d80
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_local_video_per.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_menu_nor.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_menu_nor.png
new file mode 100644
index 0000000..2c23ca4
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_menu_nor.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_message_alert.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_message_alert.png
new file mode 100644
index 0000000..f8e9089
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_message_alert.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_message_system.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_message_system.png
new file mode 100644
index 0000000..0ece579
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_message_system.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_multifunctional.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_multifunctional.png
new file mode 100644
index 0000000..797a013
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_multifunctional.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_music.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_music.png
new file mode 100644
index 0000000..369963a
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_music.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_music_mute.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_music_mute.png
new file mode 100644
index 0000000..a900531
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_music_mute.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_music_suspend.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_music_suspend.png
new file mode 100644
index 0000000..44b1419
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_music_suspend.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_nav_add.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_nav_add.png
new file mode 100644
index 0000000..9c2202d
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_nav_add.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_nav_reduce.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_nav_reduce.png
new file mode 100644
index 0000000..8a0dfd4
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_nav_reduce.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_new_home.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_new_home.png
new file mode 100644
index 0000000..d7c61dd
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_new_home.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_no_video.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_no_video.png
new file mode 100644
index 0000000..644f319
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_no_video.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_one_room.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_one_room.png
new file mode 100644
index 0000000..fbf89c2
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_one_room.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_photograph_nor.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_photograph_nor.png
new file mode 100644
index 0000000..bc646f9
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_photograph_nor.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_photograph_pre.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_photograph_pre.png
new file mode 100644
index 0000000..220dba3
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_photograph_pre.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_popup_attention_offline.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_popup_attention_offline.png
new file mode 100644
index 0000000..36b07ad
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_popup_attention_offline.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_porchlamp.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_porchlamp.png
new file mode 100644
index 0000000..7ee1bc7
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_porchlamp.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_quiet_nor.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_quiet_nor.png
new file mode 100644
index 0000000..6b69328
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_quiet_nor.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_quiet_press.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_quiet_press.png
new file mode 100644
index 0000000..a900531
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_quiet_press.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_room_three.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_room_three.png
new file mode 100644
index 0000000..d2da9f4
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_room_three.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_screen_cloud_control.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_screen_cloud_control.png
new file mode 100644
index 0000000..a6c4a08
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_screen_cloud_control.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_search_airer.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_search_airer.png
new file mode 100644
index 0000000..9c8df07
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_search_airer.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_set_top_box.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_set_top_box.png
new file mode 100644
index 0000000..c27bf4a
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_set_top_box.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_share_nor.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_share_nor.png
new file mode 100644
index 0000000..d165f16
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_share_nor.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_share_pre.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_share_pre.png
new file mode 100644
index 0000000..5158ac3
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_share_pre.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_smoke.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_smoke.png
new file mode 100644
index 0000000..09dfdce
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_smoke.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_smoke_433.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_smoke_433.png
new file mode 100644
index 0000000..7cd343f
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_smoke_433.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_spray.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_spray.png
new file mode 100644
index 0000000..1a77c1f
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_spray.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_step.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_step.png
new file mode 100644
index 0000000..222e529
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_step.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_step_three.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_step_three.png
new file mode 100644
index 0000000..ec08cf0
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_step_three.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_sterilizing_lamp.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_sterilizing_lamp.png
new file mode 100644
index 0000000..4e49d7e
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_sterilizing_lamp.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_style.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_style.png
new file mode 100644
index 0000000..49f0ebf
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_style.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_sunshade.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_sunshade.png
new file mode 100644
index 0000000..5b4af14
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_sunshade.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_switch_off.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_switch_off.png
new file mode 100644
index 0000000..ace3494
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_switch_off.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_switch_on.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_switch_on.png
new file mode 100644
index 0000000..075c903
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_switch_on.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_switch_open.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_switch_open.png
new file mode 100644
index 0000000..075c903
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_switch_open.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_tubelamp.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_tubelamp.png
new file mode 100644
index 0000000..168f488
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_tubelamp.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_tv.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_tv.png
new file mode 100644
index 0000000..ce5a501
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_tv.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_tv_ok.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_tv_ok.png
new file mode 100644
index 0000000..6fa7c9c
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_tv_ok.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_two_room.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_two_room.png
new file mode 100644
index 0000000..90e0eee
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_two_room.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_video_control.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_video_control.png
new file mode 100644
index 0000000..f757236
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_video_control.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_videotape_nor.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_videotape_nor.png
new file mode 100644
index 0000000..928c88b
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_videotape_nor.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_videotape_pre.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_videotape_pre.png
new file mode 100644
index 0000000..15c9620
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_videotape_pre.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_villa.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_villa.png
new file mode 100644
index 0000000..6535f0e
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_villa.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_voice_help.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_voice_help.png
new file mode 100644
index 0000000..6db4ce6
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_voice_help.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_voice_nor.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_voice_nor.png
new file mode 100644
index 0000000..0b529ef
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_voice_nor.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_voice_off.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_voice_off.png
new file mode 100644
index 0000000..0ae61f2
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_voice_off.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_voice_on.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_voice_on.png
new file mode 100644
index 0000000..bdfc4af
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_voice_on.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_voice_robot.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_voice_robot.png
new file mode 100644
index 0000000..23dc69a
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_voice_robot.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_vol_add.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_vol_add.png
new file mode 100644
index 0000000..9c2202d
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_vol_add.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_vol_reduce.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_vol_reduce.png
new file mode 100644
index 0000000..8a0dfd4
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_vol_reduce.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_walllamp.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_walllamp.png
new file mode 100644
index 0000000..b6ece2c
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_walllamp.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_wallsocket.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_wallsocket.png
new file mode 100644
index 0000000..96fe96b
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_wallsocket.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_waterimmersion.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_waterimmersion.png
new file mode 100644
index 0000000..4ed529f
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_waterimmersion.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_waterimmersion_433.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_waterimmersion_433.png
new file mode 100644
index 0000000..e0bfba5
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_waterimmersion_433.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_wifi.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_wifi.png
new file mode 100644
index 0000000..e8dded8
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_wifi.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/icon_window_opener.png b/app/src/ansunxan/res/drawable-xxhdpi/icon_window_opener.png
new file mode 100644
index 0000000..581dc5b
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/icon_window_opener.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/lecheng_icon.png b/app/src/ansunxan/res/drawable-xxhdpi/lecheng_icon.png
new file mode 100644
index 0000000..4047c62
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/lecheng_icon.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/loading_icon.png b/app/src/ansunxan/res/drawable-xxhdpi/loading_icon.png
new file mode 100644
index 0000000..c32340f
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/loading_icon.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/pic_add_finish_camera.png b/app/src/ansunxan/res/drawable-xxhdpi/pic_add_finish_camera.png
new file mode 100644
index 0000000..b43637f
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/pic_add_finish_camera.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/pic_add_socket.png b/app/src/ansunxan/res/drawable-xxhdpi/pic_add_socket.png
new file mode 100644
index 0000000..321ded9
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/pic_add_socket.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/pic_airer_decline.png b/app/src/ansunxan/res/drawable-xxhdpi/pic_airer_decline.png
new file mode 100644
index 0000000..25d108f
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/pic_airer_decline.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/pic_autogate.png b/app/src/ansunxan/res/drawable-xxhdpi/pic_autogate.png
new file mode 100644
index 0000000..1491d8c
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/pic_autogate.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/pic_camera_indicator.png b/app/src/ansunxan/res/drawable-xxhdpi/pic_camera_indicator.png
new file mode 100644
index 0000000..472c1d0
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/pic_camera_indicator.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/pic_camera_overtime.png b/app/src/ansunxan/res/drawable-xxhdpi/pic_camera_overtime.png
new file mode 100644
index 0000000..a8c5eaa
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/pic_camera_overtime.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/pic_chandelier.png b/app/src/ansunxan/res/drawable-xxhdpi/pic_chandelier.png
new file mode 100644
index 0000000..ab348a5
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/pic_chandelier.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/pic_chazuo.png b/app/src/ansunxan/res/drawable-xxhdpi/pic_chazuo.png
new file mode 100644
index 0000000..a236b11
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/pic_chazuo.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/pic_chazuo_2.png b/app/src/ansunxan/res/drawable-xxhdpi/pic_chazuo_2.png
new file mode 100644
index 0000000..94d076b
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/pic_chazuo_2.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/pic_chazuo_t4.png b/app/src/ansunxan/res/drawable-xxhdpi/pic_chazuo_t4.png
new file mode 100644
index 0000000..8ec0bad
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/pic_chazuo_t4.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/pic_close_back.png b/app/src/ansunxan/res/drawable-xxhdpi/pic_close_back.png
new file mode 100644
index 0000000..b8f7b41
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/pic_close_back.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/pic_close_window.png b/app/src/ansunxan/res/drawable-xxhdpi/pic_close_window.png
new file mode 100644
index 0000000..ae86722
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/pic_close_window.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/pic_control_scene.png b/app/src/ansunxan/res/drawable-xxhdpi/pic_control_scene.png
new file mode 100644
index 0000000..8304c79
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/pic_control_scene.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/pic_control_scene1.png b/app/src/ansunxan/res/drawable-xxhdpi/pic_control_scene1.png
new file mode 100644
index 0000000..a21cbf8
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/pic_control_scene1.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/pic_control_scene2.png b/app/src/ansunxan/res/drawable-xxhdpi/pic_control_scene2.png
new file mode 100644
index 0000000..11ef32b
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/pic_control_scene2.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/pic_control_scene3.png b/app/src/ansunxan/res/drawable-xxhdpi/pic_control_scene3.png
new file mode 100644
index 0000000..9cdf370
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/pic_control_scene3.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/pic_control_scene4.png b/app/src/ansunxan/res/drawable-xxhdpi/pic_control_scene4.png
new file mode 100644
index 0000000..ea9ac4e
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/pic_control_scene4.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/pic_control_scene6.png b/app/src/ansunxan/res/drawable-xxhdpi/pic_control_scene6.png
new file mode 100644
index 0000000..15b5469
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/pic_control_scene6.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/pic_curtain.png b/app/src/ansunxan/res/drawable-xxhdpi/pic_curtain.png
new file mode 100644
index 0000000..7e2afed
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/pic_curtain.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/pic_curtain_elevator.png b/app/src/ansunxan/res/drawable-xxhdpi/pic_curtain_elevator.png
new file mode 100644
index 0000000..1653027
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/pic_curtain_elevator.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/pic_dehumidify_back.png b/app/src/ansunxan/res/drawable-xxhdpi/pic_dehumidify_back.png
new file mode 100644
index 0000000..47d084b
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/pic_dehumidify_back.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/pic_desklamp.png b/app/src/ansunxan/res/drawable-xxhdpi/pic_desklamp.png
new file mode 100644
index 0000000..9fb36ab
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/pic_desklamp.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/pic_dwx.png b/app/src/ansunxan/res/drawable-xxhdpi/pic_dwx.png
new file mode 100644
index 0000000..2efbfc5
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/pic_dwx.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/pic_electricfan.png b/app/src/ansunxan/res/drawable-xxhdpi/pic_electricfan.png
new file mode 100644
index 0000000..d5e1f32
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/pic_electricfan.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/pic_elevator.png b/app/src/ansunxan/res/drawable-xxhdpi/pic_elevator.png
new file mode 100644
index 0000000..f5263fe
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/pic_elevator.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/pic_exhaust.png b/app/src/ansunxan/res/drawable-xxhdpi/pic_exhaust.png
new file mode 100644
index 0000000..050a8f2
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/pic_exhaust.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/pic_garage.png b/app/src/ansunxan/res/drawable-xxhdpi/pic_garage.png
new file mode 100644
index 0000000..14a24a0
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/pic_garage.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/pic_gauze.png b/app/src/ansunxan/res/drawable-xxhdpi/pic_gauze.png
new file mode 100644
index 0000000..9a25328
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/pic_gauze.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/pic_guidepage1.png b/app/src/ansunxan/res/drawable-xxhdpi/pic_guidepage1.png
new file mode 100644
index 0000000..817c7e5
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/pic_guidepage1.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/pic_guidepage2.png b/app/src/ansunxan/res/drawable-xxhdpi/pic_guidepage2.png
new file mode 100644
index 0000000..b6cc57b
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/pic_guidepage2.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/pic_guidepage3.png b/app/src/ansunxan/res/drawable-xxhdpi/pic_guidepage3.png
new file mode 100644
index 0000000..450958f
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/pic_guidepage3.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/pic_heater.png b/app/src/ansunxan/res/drawable-xxhdpi/pic_heater.png
new file mode 100644
index 0000000..e396f9c
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/pic_heater.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/pic_heating_back.png b/app/src/ansunxan/res/drawable-xxhdpi/pic_heating_back.png
new file mode 100644
index 0000000..fea82f8
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/pic_heating_back.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/pic_kettle.png b/app/src/ansunxan/res/drawable-xxhdpi/pic_kettle.png
new file mode 100644
index 0000000..fa65c88
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/pic_kettle.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/pic_kitchenpower.png b/app/src/ansunxan/res/drawable-xxhdpi/pic_kitchenpower.png
new file mode 100644
index 0000000..2e1d5be
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/pic_kitchenpower.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/pic_lamp.png b/app/src/ansunxan/res/drawable-xxhdpi/pic_lamp.png
new file mode 100644
index 0000000..c420a36
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/pic_lamp.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/pic_light_close.png b/app/src/ansunxan/res/drawable-xxhdpi/pic_light_close.png
new file mode 100644
index 0000000..8c6987a
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/pic_light_close.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/pic_light_open.png b/app/src/ansunxan/res/drawable-xxhdpi/pic_light_open.png
new file mode 100644
index 0000000..8c6987a
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/pic_light_open.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/pic_lightbelt.png b/app/src/ansunxan/res/drawable-xxhdpi/pic_lightbelt.png
new file mode 100644
index 0000000..f80a7e3
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/pic_lightbelt.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/pic_multifunctional.png b/app/src/ansunxan/res/drawable-xxhdpi/pic_multifunctional.png
new file mode 100644
index 0000000..74b68fc
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/pic_multifunctional.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/pic_music_add.png b/app/src/ansunxan/res/drawable-xxhdpi/pic_music_add.png
new file mode 100644
index 0000000..942c287
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/pic_music_add.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/pic_music_key.png b/app/src/ansunxan/res/drawable-xxhdpi/pic_music_key.png
new file mode 100644
index 0000000..ebb8b19
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/pic_music_key.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/pic_music_last.png b/app/src/ansunxan/res/drawable-xxhdpi/pic_music_last.png
new file mode 100644
index 0000000..7f979e0
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/pic_music_last.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/pic_music_next.png b/app/src/ansunxan/res/drawable-xxhdpi/pic_music_next.png
new file mode 100644
index 0000000..6c58cc3
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/pic_music_next.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/pic_music_reduce.png b/app/src/ansunxan/res/drawable-xxhdpi/pic_music_reduce.png
new file mode 100644
index 0000000..3e77433
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/pic_music_reduce.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/pic_plug_t1.png b/app/src/ansunxan/res/drawable-xxhdpi/pic_plug_t1.png
new file mode 100644
index 0000000..368ebc3
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/pic_plug_t1.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/pic_plug_t4.png b/app/src/ansunxan/res/drawable-xxhdpi/pic_plug_t4.png
new file mode 100644
index 0000000..a236b11
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/pic_plug_t4.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/pic_porchlamp.png b/app/src/ansunxan/res/drawable-xxhdpi/pic_porchlamp.png
new file mode 100644
index 0000000..1db220c
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/pic_porchlamp.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/pic_public_code.png b/app/src/ansunxan/res/drawable-xxhdpi/pic_public_code.png
new file mode 100644
index 0000000..fd3e863
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/pic_public_code.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/pic_refrigeration_back.png b/app/src/ansunxan/res/drawable-xxhdpi/pic_refrigeration_back.png
new file mode 100644
index 0000000..9670ec3
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/pic_refrigeration_back.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/pic_router.png b/app/src/ansunxan/res/drawable-xxhdpi/pic_router.png
new file mode 100644
index 0000000..4d59bc4
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/pic_router.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/pic_security.png b/app/src/ansunxan/res/drawable-xxhdpi/pic_security.png
new file mode 100644
index 0000000..7d77ac6
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/pic_security.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/pic_spray.png b/app/src/ansunxan/res/drawable-xxhdpi/pic_spray.png
new file mode 100644
index 0000000..59c5396
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/pic_spray.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/pic_sterilizing_lamp.png b/app/src/ansunxan/res/drawable-xxhdpi/pic_sterilizing_lamp.png
new file mode 100644
index 0000000..e58534e
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/pic_sterilizing_lamp.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/pic_storage.png b/app/src/ansunxan/res/drawable-xxhdpi/pic_storage.png
new file mode 100644
index 0000000..b602f1e
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/pic_storage.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/pic_sunshade.png b/app/src/ansunxan/res/drawable-xxhdpi/pic_sunshade.png
new file mode 100644
index 0000000..d4784ae
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/pic_sunshade.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/pic_tubelamp.png b/app/src/ansunxan/res/drawable-xxhdpi/pic_tubelamp.png
new file mode 100644
index 0000000..929507f
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/pic_tubelamp.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/pic_video_background.png b/app/src/ansunxan/res/drawable-xxhdpi/pic_video_background.png
new file mode 100644
index 0000000..7405cef
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/pic_video_background.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/pic_videotape.png b/app/src/ansunxan/res/drawable-xxhdpi/pic_videotape.png
new file mode 100644
index 0000000..1465176
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/pic_videotape.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/pic_walllamp.png b/app/src/ansunxan/res/drawable-xxhdpi/pic_walllamp.png
new file mode 100644
index 0000000..e69bd17
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/pic_walllamp.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/pic_wallsocket_t2.png b/app/src/ansunxan/res/drawable-xxhdpi/pic_wallsocket_t2.png
new file mode 100644
index 0000000..fb7ada8
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/pic_wallsocket_t2.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/pic_wifi_socket.png b/app/src/ansunxan/res/drawable-xxhdpi/pic_wifi_socket.png
new file mode 100644
index 0000000..97716a7
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/pic_wifi_socket.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/pic_window.png b/app/src/ansunxan/res/drawable-xxhdpi/pic_window.png
new file mode 100644
index 0000000..ae86722
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/pic_window.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/select_reveal_copy.png b/app/src/ansunxan/res/drawable-xxhdpi/select_reveal_copy.png
new file mode 100644
index 0000000..5375943
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/select_reveal_copy.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/select_unnor1.png b/app/src/ansunxan/res/drawable-xxhdpi/select_unnor1.png
new file mode 100644
index 0000000..ee4be75
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/select_unnor1.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/select_unnor2.png b/app/src/ansunxan/res/drawable-xxhdpi/select_unnor2.png
new file mode 100644
index 0000000..fb8a828
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/select_unnor2.png differ
diff --git a/app/src/ansunxan/res/drawable-xxhdpi/wode_icon_device_management.png b/app/src/ansunxan/res/drawable-xxhdpi/wode_icon_device_management.png
new file mode 100644
index 0000000..fde8da5
Binary files /dev/null and b/app/src/ansunxan/res/drawable-xxhdpi/wode_icon_device_management.png differ
diff --git a/app/src/ansunxan/res/drawable/alarm_message_underline.xml b/app/src/ansunxan/res/drawable/alarm_message_underline.xml
new file mode 100644
index 0000000..a43ef0f
--- /dev/null
+++ b/app/src/ansunxan/res/drawable/alarm_message_underline.xml
@@ -0,0 +1,16 @@
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+
+
+
diff --git a/app/src/ansunxan/res/drawable/bg_wheel.xml b/app/src/ansunxan/res/drawable/bg_wheel.xml
new file mode 100644
index 0000000..2e8ad22
--- /dev/null
+++ b/app/src/ansunxan/res/drawable/bg_wheel.xml
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/ansunxan/res/drawable/btn_moveplan_switch.xml b/app/src/ansunxan/res/drawable/btn_moveplan_switch.xml
new file mode 100644
index 0000000..6500b79
--- /dev/null
+++ b/app/src/ansunxan/res/drawable/btn_moveplan_switch.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
diff --git a/app/src/ansunxan/res/drawable/btn_round_360_bg.xml b/app/src/ansunxan/res/drawable/btn_round_360_bg.xml
new file mode 100644
index 0000000..369cd2d
--- /dev/null
+++ b/app/src/ansunxan/res/drawable/btn_round_360_bg.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/ansunxan/res/drawable/btn_round_360_bg_center.xml b/app/src/ansunxan/res/drawable/btn_round_360_bg_center.xml
new file mode 100644
index 0000000..bd7c76e
--- /dev/null
+++ b/app/src/ansunxan/res/drawable/btn_round_360_bg_center.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/ansunxan/res/drawable/btn_round_360_stroke.xml b/app/src/ansunxan/res/drawable/btn_round_360_stroke.xml
new file mode 100644
index 0000000..c2c23f8
--- /dev/null
+++ b/app/src/ansunxan/res/drawable/btn_round_360_stroke.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/ansunxan/res/drawable/icon_cloud_control.xml b/app/src/ansunxan/res/drawable/icon_cloud_control.xml
new file mode 100644
index 0000000..54fcd7c
--- /dev/null
+++ b/app/src/ansunxan/res/drawable/icon_cloud_control.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/ansunxan/res/drawable/select_lockscreen.xml b/app/src/ansunxan/res/drawable/select_lockscreen.xml
new file mode 100644
index 0000000..5cc57b7
--- /dev/null
+++ b/app/src/ansunxan/res/drawable/select_lockscreen.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/ansunxan/res/layout/activity_about_version.xml b/app/src/ansunxan/res/layout/activity_about_version.xml
new file mode 100644
index 0000000..6361880
--- /dev/null
+++ b/app/src/ansunxan/res/layout/activity_about_version.xml
@@ -0,0 +1,236 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/ansunxan/res/layout/activity_admin_login.xml b/app/src/ansunxan/res/layout/activity_admin_login.xml
new file mode 100644
index 0000000..c8718c6
--- /dev/null
+++ b/app/src/ansunxan/res/layout/activity_admin_login.xml
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/ansunxan/res/layout/activity_alarm_message.xml b/app/src/ansunxan/res/layout/activity_alarm_message.xml
new file mode 100644
index 0000000..ac81b72
--- /dev/null
+++ b/app/src/ansunxan/res/layout/activity_alarm_message.xml
@@ -0,0 +1,65 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/ansunxan/res/layout/activity_alarm_message_item.xml b/app/src/ansunxan/res/layout/activity_alarm_message_item.xml
new file mode 100644
index 0000000..5cc2c27
--- /dev/null
+++ b/app/src/ansunxan/res/layout/activity_alarm_message_item.xml
@@ -0,0 +1,56 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/ansunxan/res/layout/activity_asx_add_device_list.xml b/app/src/ansunxan/res/layout/activity_asx_add_device_list.xml
new file mode 100644
index 0000000..98975ff
--- /dev/null
+++ b/app/src/ansunxan/res/layout/activity_asx_add_device_list.xml
@@ -0,0 +1,105 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/ansunxan/res/layout/activity_camera_name.xml b/app/src/ansunxan/res/layout/activity_camera_name.xml
new file mode 100644
index 0000000..a2a4b16
--- /dev/null
+++ b/app/src/ansunxan/res/layout/activity_camera_name.xml
@@ -0,0 +1,144 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/ansunxan/res/layout/activity_copyright.xml b/app/src/ansunxan/res/layout/activity_copyright.xml
new file mode 100644
index 0000000..81f4ed2
--- /dev/null
+++ b/app/src/ansunxan/res/layout/activity_copyright.xml
@@ -0,0 +1,127 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/ansunxan/res/layout/activity_device_add.xml b/app/src/ansunxan/res/layout/activity_device_add.xml
new file mode 100644
index 0000000..4cf7e4d
--- /dev/null
+++ b/app/src/ansunxan/res/layout/activity_device_add.xml
@@ -0,0 +1,47 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/ansunxan/res/layout/activity_device_list.xml b/app/src/ansunxan/res/layout/activity_device_list.xml
new file mode 100644
index 0000000..78ebd17
--- /dev/null
+++ b/app/src/ansunxan/res/layout/activity_device_list.xml
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/ansunxan/res/layout/activity_device_list_item.xml b/app/src/ansunxan/res/layout/activity_device_list_item.xml
new file mode 100644
index 0000000..be7399d
--- /dev/null
+++ b/app/src/ansunxan/res/layout/activity_device_list_item.xml
@@ -0,0 +1,53 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/ansunxan/res/layout/activity_device_set.xml b/app/src/ansunxan/res/layout/activity_device_set.xml
new file mode 100644
index 0000000..cacbd82
--- /dev/null
+++ b/app/src/ansunxan/res/layout/activity_device_set.xml
@@ -0,0 +1,163 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/ansunxan/res/layout/activity_lecheng_login.xml b/app/src/ansunxan/res/layout/activity_lecheng_login.xml
new file mode 100644
index 0000000..d95a000
--- /dev/null
+++ b/app/src/ansunxan/res/layout/activity_lecheng_login.xml
@@ -0,0 +1,204 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/ansunxan/res/layout/activity_local_video_item.xml b/app/src/ansunxan/res/layout/activity_local_video_item.xml
new file mode 100644
index 0000000..2d85411
--- /dev/null
+++ b/app/src/ansunxan/res/layout/activity_local_video_item.xml
@@ -0,0 +1,66 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/ansunxan/res/layout/activity_login.xml b/app/src/ansunxan/res/layout/activity_login.xml
new file mode 100644
index 0000000..0948108
--- /dev/null
+++ b/app/src/ansunxan/res/layout/activity_login.xml
@@ -0,0 +1,231 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/ansunxan/res/layout/activity_media_video.xml b/app/src/ansunxan/res/layout/activity_media_video.xml
new file mode 100644
index 0000000..c376f18
--- /dev/null
+++ b/app/src/ansunxan/res/layout/activity_media_video.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/ansunxan/res/layout/activity_modify_camera_name.xml b/app/src/ansunxan/res/layout/activity_modify_camera_name.xml
new file mode 100644
index 0000000..bcd4b04
--- /dev/null
+++ b/app/src/ansunxan/res/layout/activity_modify_camera_name.xml
@@ -0,0 +1,391 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/ansunxan/res/layout/activity_record_list.xml b/app/src/ansunxan/res/layout/activity_record_list.xml
new file mode 100644
index 0000000..7dd17e1
--- /dev/null
+++ b/app/src/ansunxan/res/layout/activity_record_list.xml
@@ -0,0 +1,196 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/ansunxan/res/layout/activity_record_list_item.xml b/app/src/ansunxan/res/layout/activity_record_list_item.xml
new file mode 100644
index 0000000..08ab23e
--- /dev/null
+++ b/app/src/ansunxan/res/layout/activity_record_list_item.xml
@@ -0,0 +1,60 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/ansunxan/res/layout/activity_recover_sdcard.xml b/app/src/ansunxan/res/layout/activity_recover_sdcard.xml
new file mode 100644
index 0000000..8168c72
--- /dev/null
+++ b/app/src/ansunxan/res/layout/activity_recover_sdcard.xml
@@ -0,0 +1,45 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/ansunxan/res/layout/activity_splash.xml b/app/src/ansunxan/res/layout/activity_splash.xml
new file mode 100644
index 0000000..b854c9a
--- /dev/null
+++ b/app/src/ansunxan/res/layout/activity_splash.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/ansunxan/res/layout/activity_time_out.xml b/app/src/ansunxan/res/layout/activity_time_out.xml
new file mode 100644
index 0000000..df52e00
--- /dev/null
+++ b/app/src/ansunxan/res/layout/activity_time_out.xml
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/ansunxan/res/layout/activity_user_bind.xml b/app/src/ansunxan/res/layout/activity_user_bind.xml
new file mode 100644
index 0000000..b10013c
--- /dev/null
+++ b/app/src/ansunxan/res/layout/activity_user_bind.xml
@@ -0,0 +1,68 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/ansunxan/res/layout/activity_user_login.xml b/app/src/ansunxan/res/layout/activity_user_login.xml
new file mode 100644
index 0000000..ce9fddc
--- /dev/null
+++ b/app/src/ansunxan/res/layout/activity_user_login.xml
@@ -0,0 +1,84 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/ansunxan/res/layout/activity_video_container.xml b/app/src/ansunxan/res/layout/activity_video_container.xml
new file mode 100644
index 0000000..e3868bf
--- /dev/null
+++ b/app/src/ansunxan/res/layout/activity_video_container.xml
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/ansunxan/res/layout/activity_welcome.xml b/app/src/ansunxan/res/layout/activity_welcome.xml
new file mode 100644
index 0000000..9c6a263
--- /dev/null
+++ b/app/src/ansunxan/res/layout/activity_welcome.xml
@@ -0,0 +1,60 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/ansunxan/res/layout/city_group.xml b/app/src/ansunxan/res/layout/city_group.xml
new file mode 100644
index 0000000..0161946
--- /dev/null
+++ b/app/src/ansunxan/res/layout/city_group.xml
@@ -0,0 +1,39 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/ansunxan/res/layout/dialog_big_photo.xml b/app/src/ansunxan/res/layout/dialog_big_photo.xml
new file mode 100644
index 0000000..f64f666
--- /dev/null
+++ b/app/src/ansunxan/res/layout/dialog_big_photo.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
diff --git a/app/src/ansunxan/res/layout/dialog_modify_device_password.xml b/app/src/ansunxan/res/layout/dialog_modify_device_password.xml
new file mode 100644
index 0000000..eac4c5e
--- /dev/null
+++ b/app/src/ansunxan/res/layout/dialog_modify_device_password.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+
diff --git a/app/src/ansunxan/res/layout/fragment_media_live.xml b/app/src/ansunxan/res/layout/fragment_media_live.xml
new file mode 100644
index 0000000..e240148
--- /dev/null
+++ b/app/src/ansunxan/res/layout/fragment_media_live.xml
@@ -0,0 +1,426 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/ansunxan/res/layout/fragment_media_record.xml b/app/src/ansunxan/res/layout/fragment_media_record.xml
new file mode 100644
index 0000000..22c0d41
--- /dev/null
+++ b/app/src/ansunxan/res/layout/fragment_media_record.xml
@@ -0,0 +1,298 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/ansunxan/res/layout/fragment_splash_err.xml b/app/src/ansunxan/res/layout/fragment_splash_err.xml
new file mode 100644
index 0000000..56967c0
--- /dev/null
+++ b/app/src/ansunxan/res/layout/fragment_splash_err.xml
@@ -0,0 +1,88 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/ansunxan/res/layout/fragment_splash_normal.xml b/app/src/ansunxan/res/layout/fragment_splash_normal.xml
new file mode 100644
index 0000000..301a6fb
--- /dev/null
+++ b/app/src/ansunxan/res/layout/fragment_splash_normal.xml
@@ -0,0 +1,106 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/ansunxan/res/layout/fragment_video_live.xml b/app/src/ansunxan/res/layout/fragment_video_live.xml
new file mode 100644
index 0000000..6058253
--- /dev/null
+++ b/app/src/ansunxan/res/layout/fragment_video_live.xml
@@ -0,0 +1,249 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/ansunxan/res/layout/item_city.xml b/app/src/ansunxan/res/layout/item_city.xml
new file mode 100644
index 0000000..31df21d
--- /dev/null
+++ b/app/src/ansunxan/res/layout/item_city.xml
@@ -0,0 +1,44 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/ansunxan/res/layout/item_container.xml b/app/src/ansunxan/res/layout/item_container.xml
new file mode 100644
index 0000000..a3dd3f2
--- /dev/null
+++ b/app/src/ansunxan/res/layout/item_container.xml
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/ansunxan/res/layout/pop_calendar.xml b/app/src/ansunxan/res/layout/pop_calendar.xml
new file mode 100644
index 0000000..101d999
--- /dev/null
+++ b/app/src/ansunxan/res/layout/pop_calendar.xml
@@ -0,0 +1,55 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/ansunxan/res/layout/widget_common_datepicker.xml b/app/src/ansunxan/res/layout/widget_common_datepicker.xml
new file mode 100644
index 0000000..f29a74e
--- /dev/null
+++ b/app/src/ansunxan/res/layout/widget_common_datepicker.xml
@@ -0,0 +1,113 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/ansunxan/res/layout/widget_common_title.xml b/app/src/ansunxan/res/layout/widget_common_title.xml
new file mode 100644
index 0000000..518cbc3
--- /dev/null
+++ b/app/src/ansunxan/res/layout/widget_common_title.xml
@@ -0,0 +1,44 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/ansunxan/res/menu/main.xml b/app/src/ansunxan/res/menu/main.xml
new file mode 100644
index 0000000..ce7a68c
--- /dev/null
+++ b/app/src/ansunxan/res/menu/main.xml
@@ -0,0 +1,7 @@
+
diff --git a/app/src/ansunxan/res/mipmap-xhdpi/icon_nav_add_black.png b/app/src/ansunxan/res/mipmap-xhdpi/icon_nav_add_black.png
new file mode 100644
index 0000000..4bd67d1
Binary files /dev/null and b/app/src/ansunxan/res/mipmap-xhdpi/icon_nav_add_black.png differ
diff --git a/app/src/ansunxan/res/mipmap-xxhdpi/city1.png b/app/src/ansunxan/res/mipmap-xxhdpi/city1.png
new file mode 100644
index 0000000..f18717d
Binary files /dev/null and b/app/src/ansunxan/res/mipmap-xxhdpi/city1.png differ
diff --git a/app/src/ansunxan/res/mipmap-xxhdpi/city2.png b/app/src/ansunxan/res/mipmap-xxhdpi/city2.png
new file mode 100644
index 0000000..70504b4
Binary files /dev/null and b/app/src/ansunxan/res/mipmap-xxhdpi/city2.png differ
diff --git a/app/src/ansunxan/res/mipmap-xxhdpi/city3.png b/app/src/ansunxan/res/mipmap-xxhdpi/city3.png
new file mode 100644
index 0000000..78dd04c
Binary files /dev/null and b/app/src/ansunxan/res/mipmap-xxhdpi/city3.png differ
diff --git a/app/src/ansunxan/res/mipmap-xxhdpi/city4.png b/app/src/ansunxan/res/mipmap-xxhdpi/city4.png
new file mode 100644
index 0000000..2a205d5
Binary files /dev/null and b/app/src/ansunxan/res/mipmap-xxhdpi/city4.png differ
diff --git a/app/src/ansunxan/res/mipmap-xxhdpi/subject1.png b/app/src/ansunxan/res/mipmap-xxhdpi/subject1.png
new file mode 100644
index 0000000..de01ce0
Binary files /dev/null and b/app/src/ansunxan/res/mipmap-xxhdpi/subject1.png differ
diff --git a/app/src/ansunxan/res/mipmap-xxhdpi/subject2.png b/app/src/ansunxan/res/mipmap-xxhdpi/subject2.png
new file mode 100644
index 0000000..c3d61d2
Binary files /dev/null and b/app/src/ansunxan/res/mipmap-xxhdpi/subject2.png differ
diff --git a/app/src/ansunxan/res/mipmap-xxhdpi/subject3.png b/app/src/ansunxan/res/mipmap-xxhdpi/subject3.png
new file mode 100644
index 0000000..ae627de
Binary files /dev/null and b/app/src/ansunxan/res/mipmap-xxhdpi/subject3.png differ
diff --git a/app/src/ansunxan/res/mipmap-xxhdpi/subject4.png b/app/src/ansunxan/res/mipmap-xxhdpi/subject4.png
new file mode 100644
index 0000000..47e4fd1
Binary files /dev/null and b/app/src/ansunxan/res/mipmap-xxhdpi/subject4.png differ
diff --git a/app/src/ansunxan/res/mipmap-xxhdpi/subject5.png b/app/src/ansunxan/res/mipmap-xxhdpi/subject5.png
new file mode 100644
index 0000000..f216a60
Binary files /dev/null and b/app/src/ansunxan/res/mipmap-xxhdpi/subject5.png differ
diff --git a/app/src/ansunxan/res/mipmap-xxhdpi/vp_ic_full_screen.png b/app/src/ansunxan/res/mipmap-xxhdpi/vp_ic_full_screen.png
new file mode 100644
index 0000000..6eb712a
Binary files /dev/null and b/app/src/ansunxan/res/mipmap-xxhdpi/vp_ic_full_screen.png differ
diff --git a/app/src/ansunxan/res/mipmap-xxhdpi/vp_ic_res_add.png b/app/src/ansunxan/res/mipmap-xxhdpi/vp_ic_res_add.png
new file mode 100644
index 0000000..b50e921
Binary files /dev/null and b/app/src/ansunxan/res/mipmap-xxhdpi/vp_ic_res_add.png differ
diff --git a/app/src/ansunxan/res/mipmap-xxhdpi/vp_ic_stop_play.png b/app/src/ansunxan/res/mipmap-xxhdpi/vp_ic_stop_play.png
new file mode 100644
index 0000000..390dc99
Binary files /dev/null and b/app/src/ansunxan/res/mipmap-xxhdpi/vp_ic_stop_play.png differ
diff --git a/app/src/ansunxan/res/mipmap-xxxhdpi/app_lan.png b/app/src/ansunxan/res/mipmap-xxxhdpi/app_lan.png
new file mode 100644
index 0000000..ddd0e9a
Binary files /dev/null and b/app/src/ansunxan/res/mipmap-xxxhdpi/app_lan.png differ
diff --git a/app/src/ansunxan/res/values-en/strings.xml b/app/src/ansunxan/res/values-en/strings.xml
new file mode 100644
index 0000000..a39a654
--- /dev/null
+++ b/app/src/ansunxan/res/values-en/strings.xml
@@ -0,0 +1,151 @@
+
+
+
+ AndroidOpenDemo
+ Settings
+
+
+ admin login
+ user login
+ please enter appid and appsecret!note: the developers can get appid and appsecret by browsing the website.
+ loading
+ SMS has been sent to the phone
+ SMS sent failed
+ please enter a valid phone number
+ user bind
+ The phone number has been bound to this application.please click device list
+ The phone number has not been bound to the application.please bind first!
+
+ device list
+ device operation
+ device add
+ wifi config......
+ Warning
+ Delete this device?
+ No shared device
+ No authorized device
+
+
+ "Notice"
+ Click OK to config referring the device guide
+
+
+ local video
+ cloud video
+
+
+ alarm message list
+ Warning
+ Delete this message?
+ Input key
+
+
+ play live video
+ play record video
+ flow
+ bit rate
+ M
+ K/S
+ 00:00:00
+ disconnected from the network,please check it
+
+ the device does not support talking
+ start talking
+ close talking
+ loading or talking,sound could not open
+ sound open
+ sound close
+ screenshot success
+ screenshot failed
+ record successed
+ record failed
+ start recording
+ ready to talk
+ open talking failed
+ play failed!please check network and try !
+ seek failed
+ data loading
+ play video failed
+ switch to SD
+ switch to HD
+ startTime-hour:
+ No permission to write sd card! recording and capturing could not be used
+ please input sms code
+ get sms code
+ sms code has been sent to phone
+ bind
+ please input your phone number
+ please a valid phone number
+ enter device list
+ alarm time
+ please input device code
+ wifi ssid:
+ wifi password
+ alarm plan
+ download
+ cloud storage
+ cloud upgrade
+ upgrade
+ cancel
+ please select day
+ query
+ year
+ month
+ day
+ Device Password
+ modify
+
+
+ OK
+ Cancel
+
+
+ sms code can not be empty
+
+ cloud update success
+ cloud update failed
+ modify alarm plan success
+ modify alarm plan failed
+ storage strategy update success
+ storage strategy update failed
+
+ query alarm message failed, errorcode:
+ delete alarm message failed
+ load failed
+
+ no device
+ query device list failed
+ delete success
+ this device has no ptz ability
+ device not exist
+ get initialize info failed
+
+ SN/Password can not be empty!
+ SN can not be empty!
+ already binded by yourself
+ already binded by others
+ config timeout
+ Input device key
+ Input safe code
+ Please Input Device Key
+ Please Input Device Init Key
+
+ location service has been forbidden, go to permisson manager to open
+
+ device/record not exist
+ no I frame
+
+ download failed/error key
+ download end
+ only play/download one by one
+ query record failed, errorcode:
+
+ errorcode
+ business errorcode
+ HTTP errorcode
+ inner errorcode
+ error msg
+
+ new password
+ old password
+
diff --git a/app/src/ansunxan/res/values/array.xml b/app/src/ansunxan/res/values/array.xml
new file mode 100644
index 0000000..7b19524
--- /dev/null
+++ b/app/src/ansunxan/res/values/array.xml
@@ -0,0 +1,10 @@
+
+
+ - 8
+ - 8
+ - 8
+ - 4
+ - 4
+ - 4
+
+
diff --git a/app/src/ansunxan/res/values/attrs.xml b/app/src/ansunxan/res/values/attrs.xml
new file mode 100644
index 0000000..1598846
--- /dev/null
+++ b/app/src/ansunxan/res/values/attrs.xml
@@ -0,0 +1,38 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/ansunxan/res/values/colors.xml b/app/src/ansunxan/res/values/colors.xml
new file mode 100644
index 0000000..284397d
--- /dev/null
+++ b/app/src/ansunxan/res/values/colors.xml
@@ -0,0 +1,22 @@
+
+
+
+ #efeff4
+ #000000
+
+ #FFFFFF
+ #CFCFCF
+ #505166
+
+ #42CFBE
+ #57B1CC
+ #B888E5
+ #F695A8
+ #F9D461
+
+
+ #398DEE
+ #333333
+ #398DEE
+ #398dee//填写框文字颜色
+
diff --git a/app/src/ansunxan/res/values/dimens.xml b/app/src/ansunxan/res/values/dimens.xml
new file mode 100644
index 0000000..baa0459
--- /dev/null
+++ b/app/src/ansunxan/res/values/dimens.xml
@@ -0,0 +1,12 @@
+
+
+
+ 0.5dp
+
+
+ 10sp
+ 12sp
+ 15sp
+ 20sp
+
+
diff --git a/app/src/ansunxan/res/values/ids.xml b/app/src/ansunxan/res/values/ids.xml
new file mode 100644
index 0000000..bef5ac3
--- /dev/null
+++ b/app/src/ansunxan/res/values/ids.xml
@@ -0,0 +1,8 @@
+
+
+
+
\ No newline at end of file
diff --git a/app/src/ansunxan/res/values/spinner_data.xml b/app/src/ansunxan/res/values/spinner_data.xml
new file mode 100644
index 0000000..84bcbd7
--- /dev/null
+++ b/app/src/ansunxan/res/values/spinner_data.xml
@@ -0,0 +1,91 @@
+
+
+
+ - 00
+ - 01
+ - 02
+ - 03
+ - 04
+ - 05
+ - 06
+ - 07
+ - 08
+ - 09
+ - 10
+ - 11
+ - 12
+ - 13
+ - 14
+ - 15
+ - 16
+ - 17
+ - 18
+ - 19
+ - 20
+ - 21
+ - 22
+ - 23
+
+
+ - 00
+ - 01
+ - 02
+ - 03
+ - 04
+ - 05
+ - 06
+ - 07
+ - 08
+ - 09
+ - 10
+ - 11
+ - 12
+ - 13
+ - 14
+ - 15
+ - 16
+ - 17
+ - 18
+ - 19
+ - 20
+ - 21
+ - 22
+ - 23
+ - 24
+ - 25
+ - 26
+ - 27
+ - 28
+ - 29
+ - 30
+ - 31
+ - 32
+ - 33
+ - 34
+ - 35
+ - 36
+ - 37
+ - 38
+ - 39
+ - 40
+ - 41
+ - 42
+ - 43
+ - 44
+ - 45
+ - 46
+ - 47
+ - 48
+ - 49
+ - 50
+ - 51
+ - 52
+ - 53
+ - 54
+ - 55
+ - 56
+ - 57
+ - 58
+ - 59
+
+
diff --git a/app/src/ansunxan/res/values/strings.xml b/app/src/ansunxan/res/values/strings.xml
new file mode 100644
index 0000000..d9d64e5
--- /dev/null
+++ b/app/src/ansunxan/res/values/strings.xml
@@ -0,0 +1,8 @@
+
+ 安顺祥·智控
+ 深圳市安顺祥科技有限公司 版权所有
+ 关于
+ Copyright © 2017-2022 ansunxan All Right Reserved
+ 凡是通过安顺祥官方商城购买的产品,我们将严格按照国家三包政策,对所售产品提供7天(含)退货,15天(含)因质量问题换新服务。注意事项:1)客服初审核通过,仅表示安顺祥受理您的退换货申请,但不代表同意您的退换货,最终以商品检测报告为准,以此来判断您是否符合退换货条件。2)若您的申请为“审核不通过”,具体原因将会显示在您的退换货申请详情页面,若有疑问,可与安顺祥客服联系。3)签收时,请务必要求投递员在场共同检验包裹,若发现物流损坏、缺件或发错货等情况,请当场拒收并要求快递员存证,同时请您拍照存证,并打电话服务提出换货申请。4)若已签收,需要提供物流公司开具的凭据,并在退换货申请受理之后提交附件。若未提供物流开具的证明,公司无法处理退款或换货。
+ 您好,安顺祥产品支持七天退货15天换货服务;在您收到商品后,如有任何原因需要进行退换货,打客户服务热线进行退货申请;请在包裹内留下纸条,写上您的订单号、联系方式及退货理由,以便我们及时确认完成退款,谢谢您的配合;请确保配件完整并且无人为破坏的情况(如开过发票的需要和发票一块寄回),非产品质量问题的退货,导致的退货,寄回的运费需您自行承担,因产品质量问题的退货,财务将给您报销寄回的快递费(最高22元)运费您先垫付,不支持到付件哦,我们收到货后会尽快为您办理,请耐心等待;祝您生活愉快!
+
diff --git a/app/src/ansunxan/res/values/styles.xml b/app/src/ansunxan/res/values/styles.xml
new file mode 100644
index 0000000..dfbdec1
--- /dev/null
+++ b/app/src/ansunxan/res/values/styles.xml
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
diff --git a/app/src/ansunxan/res/values/wheel__attrs.xml b/app/src/ansunxan/res/values/wheel__attrs.xml
new file mode 100644
index 0000000..db64ba7
--- /dev/null
+++ b/app/src/ansunxan/res/values/wheel__attrs.xml
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/ansunxanwork/java/com/ansunxan.z1/wxapi/WXEntryActivity.java b/app/src/ansunxanwork/java/com/ansunxan.z1/wxapi/WXEntryActivity.java
new file mode 100644
index 0000000..793e4aa
--- /dev/null
+++ b/app/src/ansunxanwork/java/com/ansunxan.z1/wxapi/WXEntryActivity.java
@@ -0,0 +1,101 @@
+package com.ansunxan.z1.wxapi;
+
+import android.app.Activity;
+import android.content.Intent;
+import android.graphics.Bitmap;
+import android.os.Bundle;
+import android.util.Log;
+
+import com.tencent.mm.opensdk.modelbase.BaseReq;
+import com.tencent.mm.opensdk.modelbase.BaseResp;
+import com.tencent.mm.opensdk.modelmsg.SendAuth;
+import com.tencent.mm.opensdk.openapi.IWXAPI;
+import com.tencent.mm.opensdk.openapi.IWXAPIEventHandler;
+import com.tencent.mm.opensdk.openapi.WXAPIFactory;
+import com.yonsz.z1.R;
+import com.yonsz.z1.database.entity.entitya2.WxLoginEvent;
+
+import java.io.ByteArrayOutputStream;
+
+import de.greenrobot.event.EventBus;
+
+import static com.yonsz.z1.difference.DifferConstans.WX_APP_ID;
+
+
+public class WXEntryActivity extends Activity implements IWXAPIEventHandler {
+ private IWXAPI iwxapi;
+
+ public static byte[] bmpToByteArray(final Bitmap bmp, final boolean needRecycle) {
+ ByteArrayOutputStream output = new ByteArrayOutputStream();
+ bmp.compress(Bitmap.CompressFormat.PNG, 100, output);
+ if (needRecycle) {
+ bmp.recycle();
+ }
+ byte[] result = output.toByteArray();
+ try {
+ output.close();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ return result;
+ }
+
+ @Override
+
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_wxentry);
+ iwxapi = WXAPIFactory.createWXAPI(this, WX_APP_ID, false);
+ iwxapi.handleIntent(getIntent(), this);
+ iwxapi.registerApp(WX_APP_ID);
+ }
+
+
+ @Override
+ protected void onNewIntent(Intent intent) {
+ super.onNewIntent(intent);
+ setIntent(intent);
+ iwxapi.handleIntent(intent, this);
+ }
+
+ @Override
+ public void onReq(BaseReq baseReq) {
+ Log.i("BaseReq", "" + baseReq.openId + "---" + baseReq.transaction);
+ }
+
+ @Override
+ public void onResp(BaseResp resp) {
+ Log.i("BaseReq", "" + resp.openId + "---" + resp.transaction + "===" + resp.errCode + "==" + resp.errStr);
+ String result;
+ switch (resp.errCode) {
+ case BaseResp.ErrCode.ERR_OK:
+ result = getString(R.string.Share_success);
+ if (resp instanceof SendAuth.Resp) {
+ String code = ((SendAuth.Resp) resp).code;
+ Log.i("BaseReq", "LoginActivity onResp()" + code);
+ EventBus.getDefault().post(
+ new WxLoginEvent(code));
+ } else {
+
+ }
+ break;
+ case BaseResp.ErrCode.ERR_USER_CANCEL:
+ result = "取消分享";
+ break;
+ case BaseResp.ErrCode.ERR_AUTH_DENIED:
+ result = "分享被拒绝";
+ break;
+ default:
+ result = "发送返回";
+ break;
+ }
+ finish();
+ }
+
+ private String buildTransaction(final String type) {
+ return (type == null) ? String.valueOf(System.currentTimeMillis()) : type + System.currentTimeMillis();
+ }
+
+ enum SHARE_TYPE {Type_WXSceneSession, Type_WXSceneTimeline}
+
+}
diff --git a/app/src/ansunxanwork/java/com/yonsz/z1/difference/DifferConstans.java b/app/src/ansunxanwork/java/com/yonsz/z1/difference/DifferConstans.java
new file mode 100644
index 0000000..792a028
--- /dev/null
+++ b/app/src/ansunxanwork/java/com/yonsz/z1/difference/DifferConstans.java
@@ -0,0 +1,20 @@
+package com.yonsz.z1.difference;
+
+/**
+ * Created by Administrator on 2018/6/21.
+ */
+
+public class DifferConstans {
+ //后台版本控制
+ public static final String VERSION_S = "v1";
+ public static final String APPID_S = "1106";
+ public static final String APPSECRET_S = "ysz666888";
+ public static final String APPID_S_VOICE = "110601";
+ public static final String WX_APP_ID = "wx809b2ddc1b72ecb6";
+ public static final String SERVER_BACKUP4 = "https://openapi.lechange.cn:443/openapi/";//乐橙
+ public static final String TEPRINCIPLE_UPDATE = "teprinciple2.update";
+ public static String versionUrl = "http://a.app.qq.com/o/simple.jsp?pkgname=com.ansunxan.z1";
+ public static String LECHENG_KEY = "ysz123456";
+ public static String LECHENG_APPID = "lc6221566891bd4adc";
+ public static String LECHENG_APPSECRET = "ce6e7c580c7847d89cbd0d7c2d6900";
+}
diff --git a/app/src/ansunxanwork/java/com/yonsz/z1/login/LoginActivity.java b/app/src/ansunxanwork/java/com/yonsz/z1/login/LoginActivity.java
new file mode 100644
index 0000000..825fde4
--- /dev/null
+++ b/app/src/ansunxanwork/java/com/yonsz/z1/login/LoginActivity.java
@@ -0,0 +1,498 @@
+package com.yonsz.z1.login;
+
+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.MotionEvent;
+import android.view.View;
+import android.widget.Button;
+import android.widget.EditText;
+import android.widget.ImageView;
+import android.widget.LinearLayout;
+import android.widget.RelativeLayout;
+import android.widget.TextView;
+import android.widget.Toast;
+
+import com.alibaba.fastjson.JSON;
+import com.tencent.mm.opensdk.modelbase.BaseReq;
+import com.tencent.mm.opensdk.modelbase.BaseResp;
+import com.tencent.mm.opensdk.modelmsg.SendAuth;
+import com.tencent.mm.opensdk.openapi.IWXAPI;
+import com.tencent.mm.opensdk.openapi.IWXAPIEventHandler;
+import com.tencent.mm.opensdk.openapi.WXAPIFactory;
+import com.yonsz.z1.R;
+import com.yonsz.z1.activity.BaseActivity;
+import com.yonsz.z1.database.entity.ResponeEntity;
+import com.yonsz.z1.database.entity.TokenEntity;
+import com.yonsz.z1.database.entity.entitya2.WxLoginEntity;
+import com.yonsz.z1.database.entity.entitya2.WxLoginEvent;
+import com.yonsz.z1.listener.OnTitleItemClickListener;
+import com.yonsz.z1.login.forgetpw.ForgetPWActivity;
+import com.yonsz.z1.login.register.RegisterActivity;
+import com.yonsz.z1.login.register.WxRegisterActivity;
+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.KeyboardUtil;
+import com.yonsz.z1.utils.SharedpreferencesUtil;
+import com.yonsz.z1.utils.ToastUtil;
+import com.yonsz.z1.utils.VerificationUtils;
+import com.yonsz.z1.version4.MainActivity4;
+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.clean_password;
+import static com.yonsz.z1.R.id.iv_clean_phone;
+import static com.yonsz.z1.difference.DifferConstans.APPID_S;
+import static com.yonsz.z1.difference.DifferConstans.APPSECRET_S;
+import static com.yonsz.z1.difference.DifferConstans.WX_APP_ID;
+import static com.yonsz.z1.net.Constans.FAN_LEARN_WHAT;
+import static com.yonsz.z1.net.Constans.GET_PHONE_AREA;
+import static com.yonsz.z1.net.Constans.GET_TOKEN_FAIL;
+import static com.yonsz.z1.net.Constans.LOGIN_FAIL;
+import static com.yonsz.z1.net.Constans.LOGIN_SUCCESS;
+import static com.yonsz.z1.net.Constans.WX_LOGIN_FAIL;
+import static com.yonsz.z1.net.Constans.WX_LOGIN_REGISTER;
+import static com.yonsz.z1.net.Constans.WX_LOGIN_SUCCESS;
+
+/**
+ * Created by Administrator on 2017/5/16.
+ */
+
+public class LoginActivity extends BaseActivity implements IWXAPIEventHandler {
+ private TitleView mTitle;
+ private Button mLogin;
+ private TextView mRegister;
+ private TextView mForgetPw;
+ private EditText mUserName;
+ private EditText mPassWord;
+ private ImageView cleanPhoneIv;
+ private ImageView cleanPasswordIv;
+ private LoadingDialog mLoadingDialog;
+ private RelativeLayout rl_weixin_login;
+ private LinearLayout phoneAreaLl;
+
+ private IWXAPI iwxapi;
+ private TextView phoneArea;
+
+ @Override
+ public boolean dispatchTouchEvent(MotionEvent ev) {
+ switch (ev.getAction()) {
+ case MotionEvent.ACTION_DOWN:
+ View view = getCurrentFocus();
+ KeyboardUtil.hideKeyboard(ev, view, LoginActivity.this);//调用方法判断是否需要隐藏键盘
+ break;
+
+ default:
+ break;
+ }
+ return super.dispatchTouchEvent(ev);
+ }
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_login);
+ initView();
+ initListener();
+
+ iwxapi = WXAPIFactory.createWXAPI(this, WX_APP_ID, true);
+ iwxapi.handleIntent(this.getIntent(), this);
+ iwxapi.registerApp(WX_APP_ID);
+
+ if (TextUtils.isEmpty(SharedpreferencesUtil.get(Constans.SEESSIONID, ""))) {
+ getToken();
+ }
+ }
+
+ private void getToken() {
+ NetWorkUtil util = NetWorkUtil.instans();
+ HashMap map = new HashMap<>();
+ map.put("appId", APPID_S);
+ map.put("appSecret", APPSECRET_S);
+ util.requestPostByAsyn(NetWorkUrl.GET_TOKEN, map, new NetWorkUtil.ReqCallBack() {
+ @Override
+ public void onSuccess(String respone) {
+ Log.i("getToken", "onSuccess: " + respone);
+ TokenEntity entity = JSON.parseObject(respone, TokenEntity.class);
+ SharedpreferencesUtil.save(Constans.TOKENID, entity.getObj().getToken().toString().trim());
+ }
+
+ @Override
+ public void onFail(String message) {
+ Log.i("getToken", "onSuccess: " + message);
+ Message msg = mHandler.obtainMessage(GET_TOKEN_FAIL);
+ msg.obj = message;
+ mHandler.sendMessage(msg);
+ }
+ });
+ }
+
+ @Override
+ public boolean enableSliding() {
+ return false;
+ }
+
+ public void onEventMainThread(WxLoginEvent event) {
+ String msg = event.getMsg();
+ Log.e("nettyUtil", msg);
+ Message message = new Message();
+ message.what = FAN_LEARN_WHAT;
+ message.obj = msg;
+ mHandler.sendMessage(message);
+ }
+
+
+ private void initView() {
+ phoneArea = (TextView) findViewById(R.id.tv_phone_area);
+ phoneAreaLl = (LinearLayout) findViewById(R.id.ll_phone_area);
+ cleanPhoneIv = (ImageView) findViewById(iv_clean_phone);
+ cleanPasswordIv = (ImageView) findViewById(clean_password);
+ mUserName = (EditText) findViewById(R.id.edit_username);
+ mUserName.setText(SharedpreferencesUtil.get(Constans.USERPHONE, ""));
+ if (!TextUtils.isEmpty(mUserName.getText().toString())) {
+ cleanPhoneIv.setVisibility(View.VISIBLE);
+ }
+ mPassWord = (EditText) findViewById(R.id.edit_pw);
+ mLogin = (Button) findViewById(R.id.bt_sure);
+ mLogin.setBackgroundDrawable(getResources().getDrawable(R.drawable.btn_round_9cc6f6));
+ mRegister = (TextView) findViewById(R.id.tv_register);
+ mForgetPw = (TextView) findViewById(R.id.txt_forget_pw);
+ rl_weixin_login = (RelativeLayout) findViewById(R.id.rl_weixin_login);
+ mLoadingDialog = new LoadingDialog(this);
+ mTitle = (TitleView) findViewById(R.id.title_login);
+ mTitle.setHead(R.string.login);
+ mTitle.setHeadBackGone();
+ mTitle.setHeadFuntionTxt(" ");
+ mTitle.setTitleListener(new OnTitleItemClickListener() {
+ @Override
+ public void onBack() {
+
+ }
+
+ @Override
+ public void onFunction() {
+ }
+
+ @Override
+ public void onFunctionText() {
+ }
+ });
+ }
+
+ private void initListener() {
+ rl_weixin_login.setOnClickListener(this);
+ mLogin.setOnClickListener(this);
+ mRegister.setOnClickListener(this);
+ mForgetPw.setOnClickListener(this);
+ cleanPasswordIv.setOnClickListener(this);
+ cleanPhoneIv.setOnClickListener(this);
+ phoneAreaLl.setOnClickListener(this);
+ mUserName.addTextChangedListener(new TextWatcher() {
+ @Override
+ public void beforeTextChanged(CharSequence s, int start, int count, int after) {
+
+ }
+
+ @Override
+ public void onTextChanged(CharSequence s, int start, int before, int count) {
+ int i = s.length();
+ if (i == 0 || TextUtils.isEmpty(mPassWord.getText())) {
+ mLogin.setBackgroundDrawable(getResources().getDrawable(R.drawable.btn_round_9cc6f6));
+ mLogin.setEnabled(false);
+ } else {
+ mLogin.setBackgroundDrawable(getResources().getDrawable(R.drawable.btn_round_398dee));
+ mLogin.setEnabled(true);
+ }
+ }
+
+ @Override
+ public void afterTextChanged(Editable s) {
+ if (!TextUtils.isEmpty(s) && cleanPhoneIv.getVisibility() == View.GONE) {
+ cleanPhoneIv.setVisibility(View.VISIBLE);
+ } else if (TextUtils.isEmpty(s)) {
+ cleanPhoneIv.setVisibility(View.GONE);
+ }
+ }
+ });
+ mPassWord.addTextChangedListener(new TextWatcher() {
+ @Override
+ public void beforeTextChanged(CharSequence s, int start, int count, int after) {
+
+ }
+
+ @Override
+ public void onTextChanged(CharSequence s, int start, int before, int count) {
+ int i = s.length();
+ if (i == 0 || TextUtils.isEmpty(mUserName.getText())) {
+ mLogin.setBackgroundDrawable(getResources().getDrawable(R.drawable.btn_round_9cc6f6));
+ mLogin.setEnabled(false);
+ } else {
+ mLogin.setBackgroundDrawable(getResources().getDrawable(R.drawable.btn_round_398dee));
+ mLogin.setEnabled(true);
+ }
+ }
+
+ @Override
+ public void afterTextChanged(Editable s) {
+ if (!TextUtils.isEmpty(s) && cleanPasswordIv.getVisibility() == View.GONE) {
+ cleanPasswordIv.setVisibility(View.VISIBLE);
+ } else if (TextUtils.isEmpty(s)) {
+ cleanPasswordIv.setVisibility(View.GONE);
+ }
+ if (s.toString().isEmpty())
+ return;
+ if (!s.toString().matches("[A-Za-z0-9]+")) {
+ String temp = s.toString();
+ Toast.makeText(LoginActivity.this, R.string.Enter_a_number, Toast.LENGTH_SHORT).show();
+ s.delete(temp.length() - 1, temp.length());
+ mPassWord.setSelection(s.length());
+
+ }
+ }
+ });
+ }
+
+ @Override
+ public void onClick(View v) {
+ super.onClick(v);
+ switch (v.getId()) {
+ case R.id.bt_sure:
+ if (DensityUtil.isNetworkConnected(this)) {
+ login();
+ } else {
+ ToastUtil.show(this, R.string.no_network_connection);
+ }
+ break;
+ case R.id.tv_register:
+ startActivity(new Intent(LoginActivity.this, RegisterActivity.class));
+ break;
+ case R.id.txt_forget_pw:
+ Intent intent = new Intent(LoginActivity.this, ForgetPWActivity.class);
+ intent.putExtra("tag", "LoginActivity");
+ startActivity(intent);
+ break;
+ case R.id.iv_clean_phone:
+ mUserName.setText("");
+ break;
+ case R.id.clean_password:
+ mPassWord.setText("");
+ break;
+ case R.id.rl_weixin_login:
+ if (!iwxapi.isWXAppInstalled()) {
+ Toast.makeText(this, getString(R.string.not_installed_Wechat), Toast.LENGTH_SHORT).show();
+ return;
+ }
+ wxLogin();
+ break;
+ case R.id.ll_phone_area:
+ Intent intent1 = new Intent(LoginActivity.this, PhoneAreaActivity.class);
+ intent1.putExtra("type", "login");
+ startActivityForResult(intent1, GET_PHONE_AREA);
+ break;
+ }
+ }
+
+ private void wxLogin() {
+ SendAuth.Req req1 = new SendAuth.Req();
+ req1.scope = "snsapi_userinfo";
+ req1.state = "wechat_sdk_demo_test";
+ iwxapi.sendReq(req1);
+ }
+
+ private void login() {
+ String name = mUserName.getText().toString();
+ String phoneCode = phoneArea.getText().toString();
+ SharedpreferencesUtil.save(Constans.USERPHONE, mUserName.getText().toString());
+ if (!VerificationUtils.isMobile(name.trim())) {
+ ToastUtil.show(this, R.string.phone_error);
+ return;
+ }
+ String password = mPassWord.getText().toString();
+ if (TextUtils.isEmpty(password.trim()) || password.length() < 6) {
+ ToastUtil.show(this, R.string.password_error);
+ return;
+ }
+ NetWorkUtil util = NetWorkUtil.instans();
+ HashMap map = new HashMap<>();
+ // mobileLogin=true&isValidatjeesiteLogin=false&username=admin&password=admin
+ map.put("telAreaCode", phoneCode.substring(phoneCode.indexOf("+") + 1, phoneCode.length()));
+ map.put("mobileLogin", "true");
+ map.put("ismobile", "true");
+ map.put("isValidatjeesiteLogin", "false");
+ map.put("username", name);
+ map.put("password", password);
+ mLoadingDialog.show();
+ util.requestPostByAsyne(NetWorkUrl.LOGIN_URL, map, new NetWorkUtil.ReqCallBack() {
+ @Override
+ public void onSuccess(String respone) {
+ ResponeEntity entity = JSON.parseObject(respone, ResponeEntity.class);
+ Log.i("login111", "onSuccess: " + respone);
+ if (1 == entity.getFlag()) {
+ Message msg = mHandler.obtainMessage(LOGIN_SUCCESS);
+ msg.obj = entity;
+ mHandler.sendMessage(msg);
+ } else {
+ Message msg = mHandler.obtainMessage(LOGIN_FAIL);
+ msg.obj = entity.getMsg();
+ mHandler.sendMessage(msg);
+ }
+ }
+
+ @Override
+ public void onFail(String message) {
+ Message msg = mHandler.obtainMessage(LOGIN_FAIL);
+ msg.obj = message;
+ mHandler.sendMessage(msg);
+ }
+ });
+ }
+
+ @Override
+ public void callBackUiThread(Message msg) {
+ mLoadingDialog.dismiss();
+ switch (msg.what) {
+ case LOGIN_FAIL:
+ ToastUtil.show(this, (String) msg.obj);
+ break;
+ case LOGIN_SUCCESS:
+ ResponeEntity entity = (ResponeEntity) msg.obj;
+ // ToastUtil.show(this, entity.getMsg());
+ Toast.makeText(LoginActivity.this, R.string.login_success, Toast.LENGTH_SHORT).show();
+ SharedpreferencesUtil.save(Constans.SEESSIONID, entity.getObj().getLogininfo().getSessionId());
+ SharedpreferencesUtil.save(Constans.USERID, entity.getObj().getUser().getId());
+ SharedpreferencesUtil.save(Constans.USERNAME, entity.getObj().getUser().getName());
+ SharedpreferencesUtil.save(Constans.PASSWORD, mPassWord.getText().toString());
+ boolean isSetting = TextUtils.isEmpty(SharedpreferencesUtil.
+ get(SharedpreferencesUtil.get(Constans.USERID, ""), ""));
+ startActivity(new Intent(this, MainActivity4.class));
+ finish();
+ /*if (isSetting) {
+ Intent intent = new Intent(this, SetGestureCodeActivity.class);
+ intent.putExtra("isset", true);
+ intent.putExtra("SEESSIONID", entity.getObj().getLogininfo().getSessionId());
+ startActivity(intent);
+
+ } else {
+ startActivity(new Intent(this, MainActivity.class));
+ }*/
+ break;
+ case WX_LOGIN_SUCCESS:
+ WxLoginEntity wxLoginEntity = (WxLoginEntity) msg.obj;
+ Toast.makeText(LoginActivity.this, R.string.login_success, Toast.LENGTH_SHORT).show();
+ SharedpreferencesUtil.save(Constans.USERPHONE, wxLoginEntity.getObj().getUserInfo().getLoginName());
+ SharedpreferencesUtil.save(Constans.SEESSIONID, wxLoginEntity.getObj().getSession());
+ SharedpreferencesUtil.save(Constans.USERID, wxLoginEntity.getObj().getUserInfo().getId());
+ SharedpreferencesUtil.save(Constans.USERNAME, wxLoginEntity.getObj().getUserInfo().getName());
+ startActivity(new Intent(this, MainActivity4.class));
+ finish();
+ break;
+ case WX_LOGIN_REGISTER:
+ //去注册
+ WxLoginEntity entity1 = (WxLoginEntity) msg.obj;
+ Intent intent = new Intent(LoginActivity.this, WxRegisterActivity.class);
+ intent.putExtra("wxId", entity1.getObj().getWxId());
+ intent.putExtra("headUrl", entity1.getObj().getHeadUrl());
+ intent.putExtra("userName", entity1.getObj().getUserName());
+ startActivity(intent);
+ break;
+
+ case FAN_LEARN_WHAT:
+ String code = (String) msg.obj;
+ quickLogin(code);
+ break;
+ }
+ }
+
+ /**
+ * 微信登录
+ *
+ * @param code
+ */
+ private void quickLogin(String code) {
+ NetWorkUtil util = NetWorkUtil.instans();
+ HashMap map = new HashMap<>();
+ map.put("code", code);
+ mLoadingDialog.show();
+ util.requestPostByAsyne(NetWorkUrl.WX_QUICK_LOGIN, map, new NetWorkUtil.ReqCallBack() {
+ @Override
+ public void onSuccess(String respone) {
+ Log.i("quickLogin", "onSuccess: " + respone);
+ WxLoginEntity entity = JSON.parseObject(respone, WxLoginEntity.class);
+ if (1012 == entity.getFlag()) {
+ Message msg = mHandler.obtainMessage(WX_LOGIN_SUCCESS);
+ msg.obj = entity;
+ mHandler.sendMessage(msg);
+ } else if (1011 == entity.getFlag()) {
+ Message msg = mHandler.obtainMessage(WX_LOGIN_REGISTER);
+ msg.obj = entity;
+ mHandler.sendMessage(msg);
+ } else if (1013 == entity.getFlag()) {
+ Message msg = mHandler.obtainMessage(WX_LOGIN_REGISTER);
+ msg.obj = entity;
+ mHandler.sendMessage(msg);
+ } else {
+ Message msg = mHandler.obtainMessage(WX_LOGIN_FAIL);
+ msg.obj = entity.getMsg();
+ mHandler.sendMessage(msg);
+ }
+ }
+
+ @Override
+ public void onFail(String message) {
+ Message msg = mHandler.obtainMessage(LOGIN_FAIL);
+ msg.obj = message;
+ mHandler.sendMessage(msg);
+ }
+ });
+ }
+
+ @Override
+ public void onReq(BaseReq baseReq) {
+
+ }
+
+ @Override
+ public void onResp(BaseResp resp) {
+ Log.i("BaseReq", "" + resp.openId + "---" + resp.transaction + "===" + resp.errCode + "==" + resp.errStr);
+ String code = ((SendAuth.Resp) resp).code;
+ Log.i("BaseReq", "LoginActivity onResp()" + code);
+ String result;
+ switch (resp.errCode) {
+ case BaseResp.ErrCode.ERR_OK:
+ result = getString(R.string.Share_success);
+ EventBus.getDefault().post(
+ new WxLoginEvent(code));
+ break;
+ case BaseResp.ErrCode.ERR_USER_CANCEL:
+ result = "取消分享";
+ break;
+ case BaseResp.ErrCode.ERR_AUTH_DENIED:
+ result = "分享被拒绝";
+ break;
+ default:
+ result = "发送返回";
+ break;
+ }
+ }
+
+ @Override
+ protected void onActivityResult(int requestCode, int resultCode, Intent data) {
+ switch (requestCode) {
+ case GET_PHONE_AREA:
+ if (data != null && data.getExtras().get("phoneArea") != null) {
+ phoneArea.setText(data.getExtras().get("phoneArea").toString());
+ }
+ break;
+ }
+ }
+}
diff --git a/app/src/ansunxanwork/java/com/yonsz/z1/login/WelcomeActivity.java b/app/src/ansunxanwork/java/com/yonsz/z1/login/WelcomeActivity.java
new file mode 100644
index 0000000..390a876
--- /dev/null
+++ b/app/src/ansunxanwork/java/com/yonsz/z1/login/WelcomeActivity.java
@@ -0,0 +1,248 @@
+package com.yonsz.z1.login;
+
+import android.Manifest;
+import android.content.Intent;
+import android.os.Bundle;
+import android.os.Message;
+import android.text.TextUtils;
+import android.util.Log;
+import android.widget.Toast;
+
+import com.alibaba.fastjson.JSON;
+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.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.database.entity.TokenEntity;
+import com.yonsz.z1.net.Constans;
+import com.yonsz.z1.net.NetWorkUrl;
+import com.yonsz.z1.net.NetWorkUtil;
+import com.yonsz.z1.utils.AppGenerUtil;
+import com.yonsz.z1.utils.DensityUtil;
+import com.yonsz.z1.utils.SharedpreferencesUtil;
+import com.yonsz.z1.version4.MainActivity4;
+
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+
+import static com.yonsz.z1.difference.DifferConstans.APPID_S;
+import static com.yonsz.z1.difference.DifferConstans.APPSECRET_S;
+import static com.yonsz.z1.net.Constans.CLOSE_THIS_ACTIVITY;
+import static com.yonsz.z1.net.Constans.GET_TOKEN_FAIL;
+import static com.yonsz.z1.net.Constans.GET_TOKEN_SUCCESS;
+
+/**
+ * Created by Administrator on 2017/5/17.
+ */
+
+public class WelcomeActivity extends BaseActivity {
+
+ private final static int FLAG_TO_LOGIN = 1001;
+ private final static int FLAG_TO_GUIDER = 1002;
+ private final static int FLAG_TO_GESTURE = 1003;
+ private final static int FLAG_TO_MAIN = 1004;
+
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_welcome);
+ }
+
+ @Override
+ public boolean enableSliding() {
+ return false;
+ }
+
+ @Override
+ public void onResume() {
+ super.onResume();
+ if (DensityUtil.isNetworkConnected(this) && DensityUtil.isNetConnected(this)) {
+ getToken();
+ } else {
+ initNext();
+ }
+ }
+
+ private void getToken() {
+ NetWorkUtil util = NetWorkUtil.instans();
+ HashMap map = new HashMap<>();
+ map.put("appId", APPID_S);
+ map.put("appSecret", APPSECRET_S);
+ util.requestPostByAsyn(NetWorkUrl.GET_TOKEN, map, new NetWorkUtil.ReqCallBack() {
+ @Override
+ public void onSuccess(String respone) {
+ Log.i("getToken", "onSuccess: " + respone);
+ TokenEntity entity = JSON.parseObject(respone, TokenEntity.class);
+ if (1 == entity.getFlag()) {
+ Message msg = mHandler.obtainMessage(GET_TOKEN_SUCCESS);
+ msg.obj = entity;
+ mHandler.sendMessage(msg);
+ } else {
+ Message msg = mHandler.obtainMessage(GET_TOKEN_FAIL);
+ msg.obj = entity.getMsg();
+ mHandler.sendMessage(msg);
+ }
+ }
+
+ @Override
+ public void onFail(String message) {
+ Log.i("getToken", "onSuccess: " + message);
+ Message msg = mHandler.obtainMessage(GET_TOKEN_FAIL);
+ msg.obj = message;
+ mHandler.sendMessage(msg);
+ }
+ });
+ }
+
+ private void initNext() {
+ /**
+ * 如果USERID不是空,进入手势页面,如果已经过了引导页,如果SEESSIONID不是空,进入主页面,如果
+ * 是空重新登录,都不是就进入引导页
+ */
+ /*if (!TextUtils.isEmpty(SharedpreferencesUtil.get(Constans.SEESSIONID, ""))) {
+ mHandler.sendEmptyMessageDelayed(FLAG_TO_MAIN, 1000);
+ } else {
+ mHandler.sendEmptyMessageDelayed(FLAG_TO_LOGIN, 1000);
+ }
+ boolean isSetting = TextUtils.isEmpty(SharedpreferencesUtil.
+ get(SharedpreferencesUtil.get(Constans.USERID, ""), ""));*/
+ SoulPermission.getInstance().checkAndRequestPermissions(
+ Permissions.build(Manifest.permission.ACCESS_FINE_LOCATION),
+ //if you want do noting or no need all the callbacks you may use SimplePermissionsAdapter instead
+ new CheckRequestPermissionsListener() {
+ @Override
+ public void onAllPermissionOk(Permission[] allPermissions) {
+ setPermission();
+ }
+
+ @Override
+ public void onPermissionDenied(Permission[] refusedPermissions) {
+ setPermission();
+ }
+ });
+ }
+
+ private void setPermission() {
+ SoulPermission.getInstance().checkAndRequestPermissions(
+ Permissions.build(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) {
+ if (SharedpreferencesUtil.get(Constans.ISOVER)) {
+ if (!TextUtils.isEmpty(SharedpreferencesUtil.get(Constans.SEESSIONID, ""))) {
+ if (!TextUtils.isEmpty(SharedpreferencesUtil.get(Constans.ADIMAGEURL, ""))) {
+ mHandler.sendEmptyMessageDelayed(FLAG_TO_GESTURE, 1000);
+ } else {
+ mHandler.sendEmptyMessageDelayed(FLAG_TO_MAIN, 1000);
+ }
+ } else {
+ if (!TextUtils.isEmpty(SharedpreferencesUtil.get(Constans.ADIMAGEURL, ""))) {
+ mHandler.sendEmptyMessageDelayed(FLAG_TO_GESTURE, 1000);
+ } else {
+ mHandler.sendEmptyMessageDelayed(FLAG_TO_LOGIN, 1000);
+ }
+ }
+ } else {
+ mHandler.sendEmptyMessageDelayed(FLAG_TO_GUIDER, 1000);
+ }
+ }
+
+ @Override
+ public void onPermissionDenied(Permission[] refusedPermissions) {
+ if (SharedpreferencesUtil.get(Constans.ISOVER)) {
+ if (!TextUtils.isEmpty(SharedpreferencesUtil.get(Constans.SEESSIONID, ""))) {
+ if (!TextUtils.isEmpty(SharedpreferencesUtil.get(Constans.ADIMAGEURL, ""))) {
+ mHandler.sendEmptyMessageDelayed(FLAG_TO_GESTURE, 1000);
+ } else {
+ mHandler.sendEmptyMessageDelayed(FLAG_TO_MAIN, 1000);
+ }
+ } else {
+ if (!TextUtils.isEmpty(SharedpreferencesUtil.get(Constans.ADIMAGEURL, ""))) {
+ mHandler.sendEmptyMessageDelayed(FLAG_TO_GESTURE, 1000);
+ } else {
+ mHandler.sendEmptyMessageDelayed(FLAG_TO_LOGIN, 1000);
+ }
+ }
+ } else {
+ mHandler.sendEmptyMessageDelayed(FLAG_TO_GUIDER, 1000);
+ }
+ }
+ });
+ }
+
+ @Override
+ public void callBackUiThread(Message msg) {
+ switch (msg.what) {
+ case FLAG_TO_LOGIN:
+ startActivity(new Intent(this, LoginActivity.class));
+ finish();
+ break;
+ case FLAG_TO_GUIDER:
+ startActivity(new Intent(this, GuiderActivity.class));
+ overridePendingTransition(R.anim.activity_exit_in, R.anim.activity_exit_out);
+ finish();
+ break;
+ case FLAG_TO_GESTURE:
+ startActivity(new Intent(this, AdinfoActivity.class));
+ finish();
+ break;
+ case FLAG_TO_MAIN:
+ startActivity(new Intent(this, MainActivity4.class));
+ SharedpreferencesUtil.save("isShowMobilePlay", "0");
+ finish();
+ break;
+ case GET_TOKEN_SUCCESS:
+ TokenEntity entity = (TokenEntity) msg.obj;
+ if (SharedpreferencesUtil.get(Constans.TOKENID, "").equals(entity.getObj().getToken().toString().trim())) {
+
+ } else {
+ SharedpreferencesUtil.save(Constans.SEESSIONID, "");
+ }
+ SharedpreferencesUtil.save(Constans.TOKENID, entity.getObj().getToken().toString().trim());
+ SharedpreferencesUtil.save(Constans.ADIMAGEURL, entity.getObj().getStartUpImgUrl());
+ String androidVersions = entity.getObj().getAndroidVersions().toString();
+ if (null != androidVersions) {
+ String packageVersion = AppGenerUtil.getPackageVersion(this);
+ List result = Arrays.asList(androidVersions.split(","));
+ initNext();
+ /*if (result.contains(packageVersion)) {
+ initNext();
+ } else {
+ // initNext();
+ UpdateAppUtils.from(this)
+ .apkPath(versionUrl)
+ .downloadBy(DOWNLOAD_BY_BROWSER)
+ .isForce(true)
+ .update(true);
+ }*/
+ } else {
+ initNext();
+ }
+ /*if (null != SharedpreferencesUtil.get(Constans.TOKENID, "")) {
+ if (entity.getObj().toString().trim().equals(SharedpreferencesUtil.get(Constans.TOKENID, ""))) {
+ initNext();
+ } else {
+ ToastUtil.show(this, "token已过期");
+ mHandler.sendEmptyMessageDelayed(CLOSE_THIS_ACTIVITY, 1000);
+ }
+ } else {
+ SharedpreferencesUtil.save(Constans.TOKENID, entity.getObj().toString().trim());
+ initNext();
+ }*/
+ break;
+ case CLOSE_THIS_ACTIVITY:
+ finish();
+ break;
+ case GET_TOKEN_FAIL:
+ initNext();
+ break;
+ }
+ }
+}
diff --git a/app/src/ansunxanwork/java/com/yonsz/z1/login/register/CopyRightActivity.java b/app/src/ansunxanwork/java/com/yonsz/z1/login/register/CopyRightActivity.java
new file mode 100644
index 0000000..42ccb7f
--- /dev/null
+++ b/app/src/ansunxanwork/java/com/yonsz/z1/login/register/CopyRightActivity.java
@@ -0,0 +1,46 @@
+package com.yonsz.z1.login.register;
+
+import android.os.Bundle;
+import android.os.Message;
+
+import com.yonsz.z1.R;
+import com.yonsz.z1.activity.BaseActivity;
+import com.yonsz.z1.listener.OnTitleItemClickListener;
+import com.yonsz.z1.view.TitleView;
+
+/**
+ * Created by Administrator on 2017/6/15.
+ */
+
+public class CopyRightActivity extends BaseActivity {
+ private TitleView mTitleView;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_copyright);
+ mTitleView = (TitleView) findViewById(R.id.title_text);
+ mTitleView.setHead("用户协议");
+ mTitleView.setTitleListener(new OnTitleItemClickListener() {
+ @Override
+ public void onBack() {
+ finish();
+ }
+
+ @Override
+ public void onFunction() {
+
+ }
+
+ @Override
+ public void onFunctionText() {
+
+ }
+ });
+ }
+
+ @Override
+ public void callBackUiThread(Message msg) {
+
+ }
+}
diff --git a/app/src/ansunxanwork/java/com/yonsz/z1/mine/aboutversion/AboutVersionActivity.java b/app/src/ansunxanwork/java/com/yonsz/z1/mine/aboutversion/AboutVersionActivity.java
new file mode 100644
index 0000000..7dda8d0
--- /dev/null
+++ b/app/src/ansunxanwork/java/com/yonsz/z1/mine/aboutversion/AboutVersionActivity.java
@@ -0,0 +1,344 @@
+package com.yonsz.z1.mine.aboutversion;
+
+import android.content.Intent;
+import android.graphics.Bitmap;
+import android.graphics.BitmapFactory;
+import android.net.Uri;
+import android.os.Bundle;
+import android.os.Message;
+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 android.widget.Toast;
+
+import com.alibaba.fastjson.JSON;
+import com.tencent.mm.opensdk.modelbase.BaseReq;
+import com.tencent.mm.opensdk.modelbase.BaseResp;
+import com.tencent.mm.opensdk.modelmsg.SendMessageToWX;
+import com.tencent.mm.opensdk.modelmsg.WXImageObject;
+import com.tencent.mm.opensdk.modelmsg.WXMediaMessage;
+import com.tencent.mm.opensdk.openapi.IWXAPI;
+import com.tencent.mm.opensdk.openapi.IWXAPIEventHandler;
+import com.tencent.mm.opensdk.openapi.WXAPIFactory;
+import com.yonsz.z1.R;
+import com.yonsz.z1.activity.BaseActivity;
+import com.yonsz.z1.database.entity.VersionEntity;
+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.DeviceBottomDialog;
+import com.yonsz.z1.mine.aboutversion.feature.Callback;
+import com.yonsz.z1.mine.aboutversion.util.ScoreUtils;
+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.AppGenerUtil;
+import com.yonsz.z1.utils.SharedpreferencesUtil;
+import com.yonsz.z1.view.TitleView;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+
+import static com.tencent.mm.opensdk.modelmsg.SendMessageToWX.Req.WXSceneSession;
+import static com.tencent.mm.opensdk.modelmsg.SendMessageToWX.Req.WXSceneTimeline;
+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.WX_APP_ID;
+import static com.yonsz.z1.difference.DifferConstans.versionUrl;
+import static com.yonsz.z1.fragment.person.PersonFragment.bmpToByteArray;
+import static com.yonsz.z1.mine.aboutversion.util.UpdateAppUtils.DOWNLOAD_BY_APP;
+import static com.yonsz.z1.net.Constans.GET_USER_SESSION_NULL;
+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.version4.MainActivity4.versionId;
+
+/**
+ * Created by Administrator on 2017/5/26.
+ */
+public class AboutVersionActivity extends BaseActivity implements IWXAPIEventHandler {
+ private TextView tv_version;
+ private TextView tv_public_goto;
+ private ImageView iv_code;
+ private IWXAPI iwxapi;
+ private RelativeLayout scoreRl, versionDecalreRl, versionUpdateRl;
+ private TextView serviceHotlineTv;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_about_version);
+ iwxapi = WXAPIFactory.createWXAPI(this, WX_APP_ID, false);
+ iwxapi.handleIntent(getIntent(), this);
+ iwxapi.registerApp(WX_APP_ID);
+
+ TitleView titleView = (TitleView) findViewById(R.id.title_about_version);
+ titleView.setHead(R.string.about_version);
+ titleView.setTitleListener(new OnTitleItemClickListener() {
+ @Override
+ public void onBack() {
+ finish();
+ }
+
+ @Override
+ public void onFunction() {
+
+ }
+
+ @Override
+ public void onFunctionText() {
+
+ }
+ });
+ scoreRl = (RelativeLayout) findViewById(R.id.rl_to_score);
+ serviceHotlineTv = (TextView) findViewById(R.id.tv_customer_service_hotline);
+ versionDecalreRl = (RelativeLayout) findViewById(R.id.rl_version_declare);
+ versionUpdateRl = (RelativeLayout) findViewById(R.id.rl_version_update);
+ iv_code = (ImageView) findViewById(R.id.iv_code);
+ tv_public_goto = (TextView) findViewById(R.id.tv_public_goto);
+ tv_version = (TextView) findViewById(R.id.tv_version);
+ tv_version.setText("V" + AppGenerUtil.getPackageVersion(this));
+
+ checkUpdate(1);
+
+
+ iv_code.setOnClickListener(new NoDoubleClickListener() {
+ @Override
+ protected void onNoDoubleClick(View v) {
+ // showDioalog();
+ }
+ });
+ tv_public_goto.setOnClickListener(new NoDoubleClickListener() {
+ @Override
+ public void onNoDoubleClick(View v) {
+ super.onClick(v);
+ // showDioalog();
+ }
+ });
+ scoreRl.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ ArrayList strings = ScoreUtils.SelectedInstalledAPPs(getApplicationContext(), ScoreUtils.InstalledAPPs(getApplicationContext()));
+ ScoreUtils.launchAppDetail(AboutVersionActivity.this, "com.yonsz.z1", strings.get(0));
+ }
+ });
+ versionDecalreRl.setOnClickListener(new NoDoubleClickListener() {
+ @Override
+ protected void onNoDoubleClick(View v) {
+ Intent intent = new Intent(AboutVersionActivity.this, VersionDecalreActivity.class);
+ intent.putExtra("activity", "AboutVersionActivity");
+ startActivity(intent);
+ }
+ });
+ versionUpdateRl.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ updataUserState();
+ }
+ });
+ serviceHotlineTv.setOnClickListener(new NoDoubleClickListener() {
+ @Override
+ protected void onNoDoubleClick(View v) {
+ callHotline();
+ }
+ });
+ }
+
+ private void callHotline() {
+ ConfirmDialog dialog = new ConfirmDialog(getActivity(), new Callback() {
+ @Override
+ public void callback(int position) {
+ switch (position) {
+ case 0:
+ break;
+ case 1:
+ callPhone("4001365663");
+ break;
+ }
+ }
+ });
+ dialog.setContent("400 136 5663");
+ dialog.setCancleBtn(R.string.cancel);
+ dialog.setSureBtn(R.string.call);
+ dialog.setCancelable(false);
+ dialog.show();
+ }
+
+ public void callPhone(String phoneNum) {
+ SoulPermission.getInstance().checkAndRequestPermissions(
+ Permissions.build(Manifest.permission.CALL_PHONE,
+ Manifest.permission.READ_PHONE_STATE,
+ 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) {
+ Intent intent = new Intent(Intent.ACTION_CALL);
+ Uri data = Uri.parse("tel:" + phoneNum);
+ intent.setData(data);
+ if (ActivityCompat.checkSelfPermission(AboutVersionActivity.this, Manifest.permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED) {
+ return;
+ }
+ startActivity(intent);
+ }
+
+ @Override
+ public void onPermissionDenied(Permission[] refusedPermissions) {
+ ToastUtil.show(AboutVersionActivity.this, "请开启权限");
+ }
+ });
+ }
+
+ private void checkUpdate(int tag) {
+ UpdateAppUtils.from(this)
+ .checkBy(UpdateAppUtils.CHECK_BY_VERSION_NAME)
+ .serverVersionName(versionId)
+ .serverVersionCode(5)
+ .apkPath(versionUrl)
+ .downloadBy(DOWNLOAD_BY_APP)
+ .isForce(false)
+ .update(tag);
+ }
+
+ private void showDioalog() {
+ if (!iwxapi.isWXAppInstalled()) {
+ Toast.makeText(this, getString(R.string.not_installed_Wechat), Toast.LENGTH_SHORT).show();
+ return;
+ }
+ //初始化一个WXImageObject对象
+ Bitmap thumb = BitmapFactory.decodeResource(getResources(), R.drawable.pic_public_code);
+ WXImageObject imageObject = new WXImageObject(thumb);
+ WXMediaMessage msg = new WXMediaMessage(); //这个对象是用来包裹发送信息的对象
+ msg.mediaObject = imageObject;
+ //设置缩略图
+ Bitmap thumbBitmap = Bitmap.createScaledBitmap(thumb, 60, 60, true);
+ msg.thumbData = bmpToByteArray(thumbBitmap, true);
+ final SendMessageToWX.Req req = new SendMessageToWX.Req(); //创建一个请求对象
+ req.message = msg; //把msg放入请求对象中
+ req.transaction = buildTransaction("Req");
+
+
+ /*WXWebpageObject webpageObject = new WXWebpageObject();
+ webpageObject.webpageUrl = "http://a.app.qq.com/o/simple.jsp?pkgname=com.yonsz.z1";
+ WXMediaMessage msg = new WXMediaMessage(webpageObject);
+ msg.title = "Unikong";
+ msg.description = "欢迎下载『语音遥控器APP』";
+ Bitmap thumb = BitmapFactory.decodeResource(getResources(), R.mipmap.app_lan);
+ msg.thumbData = bmpToByteArray(thumb, true);
+ final SendMessageToWX.Req req = new SendMessageToWX.Req();
+ req.transaction = buildTransaction("Req");
+ req.message = msg;*/
+ //分享到微信好友或者朋友圈
+ // startActivity(new Intent(getActivity(), WXEntryActivity.class));
+ DeviceBottomDialog dialog2 = new DeviceBottomDialog(this, new Callback() {
+ @Override
+ public void callback(int position1) {
+ switch (position1) {
+ case 0:
+ //取消
+ break;
+ case 1:
+ //微信朋友圈
+ req.scene = WXSceneTimeline;
+ iwxapi.sendReq(req);
+ break;
+ case 2:
+ //重新命名
+ break;
+ case 3:
+ //微信好友
+ req.scene = WXSceneSession;
+ iwxapi.sendReq(req);
+ break;
+ case 4:
+ break;
+ }
+ }
+ });
+ dialog2.setContent();
+ dialog2.setTop(getString(R.string.WeChat_friends));
+ dialog2.setBottom(getString(R.string.WeChat_friends_circle));
+ 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();
+ }
+
+ private String buildTransaction(final String type) {
+ return (type == null) ? String.valueOf(System.currentTimeMillis()) : type + System.currentTimeMillis();
+ }
+
+
+ @Override
+ public void callBackUiThread(Message msg) {
+ switch (msg.what) {
+ case UPDATE_STATE_SUCCESS:
+ VersionEntity.ObjEntity versionEntity = (VersionEntity.ObjEntity) msg.obj;
+ versionId = versionEntity.getVersionInfo().getVersionId().substring(2, 7);
+ versionUrl = versionEntity.getVersionInfo().getServiceUrl();
+ checkUpdate(2);
+ break;
+ }
+ }
+
+ @Override
+ public void onReq(BaseReq baseReq) {
+
+ }
+
+ @Override
+ public void onResp(BaseResp baseResp) {
+
+ }
+
+ //上传用户经纬度信息
+ 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.requestPostByAsynewApi(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);
+ }
+ });
+ }
+}
diff --git a/app/src/ansunxanwork/res/anim/slide_left_in.xml b/app/src/ansunxanwork/res/anim/slide_left_in.xml
new file mode 100644
index 0000000..efac524
--- /dev/null
+++ b/app/src/ansunxanwork/res/anim/slide_left_in.xml
@@ -0,0 +1,5 @@
+
+
+
+
diff --git a/app/src/ansunxanwork/res/anim/slide_left_out.xml b/app/src/ansunxanwork/res/anim/slide_left_out.xml
new file mode 100644
index 0000000..2b1e672
--- /dev/null
+++ b/app/src/ansunxanwork/res/anim/slide_left_out.xml
@@ -0,0 +1,5 @@
+
+
+
+
diff --git a/app/src/ansunxanwork/res/anim/slide_right_in.xml b/app/src/ansunxanwork/res/anim/slide_right_in.xml
new file mode 100644
index 0000000..2fc61e8
--- /dev/null
+++ b/app/src/ansunxanwork/res/anim/slide_right_in.xml
@@ -0,0 +1,5 @@
+
+
+
+
diff --git a/app/src/ansunxanwork/res/anim/slide_right_out.xml b/app/src/ansunxanwork/res/anim/slide_right_out.xml
new file mode 100644
index 0000000..9934aa3
--- /dev/null
+++ b/app/src/ansunxanwork/res/anim/slide_right_out.xml
@@ -0,0 +1,5 @@
+
+
+
+
diff --git a/app/src/ansunxanwork/res/drawable-hdpi/Thumbs.db b/app/src/ansunxanwork/res/drawable-hdpi/Thumbs.db
new file mode 100644
index 0000000..9952f7a
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-hdpi/Thumbs.db differ
diff --git a/app/src/ansunxanwork/res/drawable-hdpi/common_icon_remind.png b/app/src/ansunxanwork/res/drawable-hdpi/common_icon_remind.png
new file mode 100644
index 0000000..b497932
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-hdpi/common_icon_remind.png differ
diff --git a/app/src/ansunxanwork/res/drawable-hdpi/common_switch_off.png b/app/src/ansunxanwork/res/drawable-hdpi/common_switch_off.png
new file mode 100644
index 0000000..39bccc0
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-hdpi/common_switch_off.png differ
diff --git a/app/src/ansunxanwork/res/drawable-hdpi/common_switch_on.png b/app/src/ansunxanwork/res/drawable-hdpi/common_switch_on.png
new file mode 100644
index 0000000..323435b
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-hdpi/common_switch_on.png differ
diff --git a/app/src/ansunxanwork/res/drawable-hdpi/device_btn_wiredadd.png b/app/src/ansunxanwork/res/drawable-hdpi/device_btn_wiredadd.png
new file mode 100644
index 0000000..4a5b09c
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-hdpi/device_btn_wiredadd.png differ
diff --git a/app/src/ansunxanwork/res/drawable-hdpi/device_icon_wifiadd.png b/app/src/ansunxanwork/res/drawable-hdpi/device_icon_wifiadd.png
new file mode 100644
index 0000000..fab8fa0
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-hdpi/device_icon_wifiadd.png differ
diff --git a/app/src/ansunxanwork/res/drawable-hdpi/list_bg_device.png b/app/src/ansunxanwork/res/drawable-hdpi/list_bg_device.png
new file mode 100644
index 0000000..5cec7e3
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-hdpi/list_bg_device.png differ
diff --git a/app/src/ansunxanwork/res/drawable-hdpi/list_bg_nomessage.png b/app/src/ansunxanwork/res/drawable-hdpi/list_bg_nomessage.png
new file mode 100644
index 0000000..6ee12f2
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-hdpi/list_bg_nomessage.png differ
diff --git a/app/src/ansunxanwork/res/drawable-hdpi/list_bg_norecord.png b/app/src/ansunxanwork/res/drawable-hdpi/list_bg_norecord.png
new file mode 100644
index 0000000..3be55b7
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-hdpi/list_bg_norecord.png differ
diff --git a/app/src/ansunxanwork/res/drawable-hdpi/list_bg_video.png b/app/src/ansunxanwork/res/drawable-hdpi/list_bg_video.png
new file mode 100644
index 0000000..acf7cc4
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-hdpi/list_bg_video.png differ
diff --git a/app/src/ansunxanwork/res/drawable-hdpi/list_btn_cloudvideo.png b/app/src/ansunxanwork/res/drawable-hdpi/list_btn_cloudvideo.png
new file mode 100644
index 0000000..7724ada
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-hdpi/list_btn_cloudvideo.png differ
diff --git a/app/src/ansunxanwork/res/drawable-hdpi/list_btn_deletedevice.png b/app/src/ansunxanwork/res/drawable-hdpi/list_btn_deletedevice.png
new file mode 100644
index 0000000..af8bbeb
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-hdpi/list_btn_deletedevice.png differ
diff --git a/app/src/ansunxanwork/res/drawable-hdpi/list_btn_deletemessage.png b/app/src/ansunxanwork/res/drawable-hdpi/list_btn_deletemessage.png
new file mode 100644
index 0000000..4753bc8
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-hdpi/list_btn_deletemessage.png differ
diff --git a/app/src/ansunxanwork/res/drawable-hdpi/list_btn_livevideo.png b/app/src/ansunxanwork/res/drawable-hdpi/list_btn_livevideo.png
new file mode 100644
index 0000000..5992c03
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-hdpi/list_btn_livevideo.png differ
diff --git a/app/src/ansunxanwork/res/drawable-hdpi/list_btn_localvideo.png b/app/src/ansunxanwork/res/drawable-hdpi/list_btn_localvideo.png
new file mode 100644
index 0000000..08e659e
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-hdpi/list_btn_localvideo.png differ
diff --git a/app/src/ansunxanwork/res/drawable-hdpi/list_btn_message.png b/app/src/ansunxanwork/res/drawable-hdpi/list_btn_message.png
new file mode 100644
index 0000000..ff83411
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-hdpi/list_btn_message.png differ
diff --git a/app/src/ansunxanwork/res/drawable-hdpi/list_btn_setting.png b/app/src/ansunxanwork/res/drawable-hdpi/list_btn_setting.png
new file mode 100644
index 0000000..6187aa7
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-hdpi/list_btn_setting.png differ
diff --git a/app/src/ansunxanwork/res/drawable-hdpi/list_icon_offline.png b/app/src/ansunxanwork/res/drawable-hdpi/list_icon_offline.png
new file mode 100644
index 0000000..c698996
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-hdpi/list_icon_offline.png differ
diff --git a/app/src/ansunxanwork/res/drawable-hdpi/live_btn_fluent.png b/app/src/ansunxanwork/res/drawable-hdpi/live_btn_fluent.png
new file mode 100644
index 0000000..9e452e1
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-hdpi/live_btn_fluent.png differ
diff --git a/app/src/ansunxanwork/res/drawable-hdpi/live_btn_fullscreen.png b/app/src/ansunxanwork/res/drawable-hdpi/live_btn_fullscreen.png
new file mode 100644
index 0000000..6abcf5f
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-hdpi/live_btn_fullscreen.png differ
diff --git a/app/src/ansunxanwork/res/drawable-hdpi/live_btn_hd.png b/app/src/ansunxanwork/res/drawable-hdpi/live_btn_hd.png
new file mode 100644
index 0000000..86b013c
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-hdpi/live_btn_hd.png differ
diff --git a/app/src/ansunxanwork/res/drawable-hdpi/live_btn_ptz_off.png b/app/src/ansunxanwork/res/drawable-hdpi/live_btn_ptz_off.png
new file mode 100644
index 0000000..53f67c6
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-hdpi/live_btn_ptz_off.png differ
diff --git a/app/src/ansunxanwork/res/drawable-hdpi/live_btn_ptz_on.png b/app/src/ansunxanwork/res/drawable-hdpi/live_btn_ptz_on.png
new file mode 100644
index 0000000..57fde53
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-hdpi/live_btn_ptz_on.png differ
diff --git a/app/src/ansunxanwork/res/drawable-hdpi/live_btn_record_click.png b/app/src/ansunxanwork/res/drawable-hdpi/live_btn_record_click.png
new file mode 100644
index 0000000..65e33c1
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-hdpi/live_btn_record_click.png differ
diff --git a/app/src/ansunxanwork/res/drawable-hdpi/live_btn_record_nor.png b/app/src/ansunxanwork/res/drawable-hdpi/live_btn_record_nor.png
new file mode 100644
index 0000000..9dab395
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-hdpi/live_btn_record_nor.png differ
diff --git a/app/src/ansunxanwork/res/drawable-hdpi/live_btn_screenshot_click.png b/app/src/ansunxanwork/res/drawable-hdpi/live_btn_screenshot_click.png
new file mode 100644
index 0000000..212135a
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-hdpi/live_btn_screenshot_click.png differ
diff --git a/app/src/ansunxanwork/res/drawable-hdpi/live_btn_screenshot_nor.png b/app/src/ansunxanwork/res/drawable-hdpi/live_btn_screenshot_nor.png
new file mode 100644
index 0000000..bd49937
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-hdpi/live_btn_screenshot_nor.png differ
diff --git a/app/src/ansunxanwork/res/drawable-hdpi/live_btn_smallscreen.png b/app/src/ansunxanwork/res/drawable-hdpi/live_btn_smallscreen.png
new file mode 100644
index 0000000..8fc3dee
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-hdpi/live_btn_smallscreen.png differ
diff --git a/app/src/ansunxanwork/res/drawable-hdpi/live_btn_sound_off.png b/app/src/ansunxanwork/res/drawable-hdpi/live_btn_sound_off.png
new file mode 100644
index 0000000..f0ba8d4
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-hdpi/live_btn_sound_off.png differ
diff --git a/app/src/ansunxanwork/res/drawable-hdpi/live_btn_sound_on.png b/app/src/ansunxanwork/res/drawable-hdpi/live_btn_sound_on.png
new file mode 100644
index 0000000..5930aba
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-hdpi/live_btn_sound_on.png differ
diff --git a/app/src/ansunxanwork/res/drawable-hdpi/live_btn_talk_click.png b/app/src/ansunxanwork/res/drawable-hdpi/live_btn_talk_click.png
new file mode 100644
index 0000000..1a036d2
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-hdpi/live_btn_talk_click.png differ
diff --git a/app/src/ansunxanwork/res/drawable-hdpi/live_btn_talk_nor.png b/app/src/ansunxanwork/res/drawable-hdpi/live_btn_talk_nor.png
new file mode 100644
index 0000000..b3d5575
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-hdpi/live_btn_talk_nor.png differ
diff --git a/app/src/ansunxanwork/res/drawable-hdpi/live_pic_record.png b/app/src/ansunxanwork/res/drawable-hdpi/live_pic_record.png
new file mode 100644
index 0000000..78315bc
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-hdpi/live_pic_record.png differ
diff --git a/app/src/ansunxanwork/res/drawable-hdpi/live_pic_talkback.png b/app/src/ansunxanwork/res/drawable-hdpi/live_pic_talkback.png
new file mode 100644
index 0000000..aa166e2
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-hdpi/live_pic_talkback.png differ
diff --git a/app/src/ansunxanwork/res/drawable-hdpi/loading_icon.png b/app/src/ansunxanwork/res/drawable-hdpi/loading_icon.png
new file mode 100644
index 0000000..a7f9e7e
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-hdpi/loading_icon.png differ
diff --git a/app/src/ansunxanwork/res/drawable-hdpi/pic_public_code.png b/app/src/ansunxanwork/res/drawable-hdpi/pic_public_code.png
new file mode 100644
index 0000000..f7f3971
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-hdpi/pic_public_code.png differ
diff --git a/app/src/ansunxanwork/res/drawable-hdpi/record_btn_fullscreen.png b/app/src/ansunxanwork/res/drawable-hdpi/record_btn_fullscreen.png
new file mode 100644
index 0000000..f54118a
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-hdpi/record_btn_fullscreen.png differ
diff --git a/app/src/ansunxanwork/res/drawable-hdpi/record_btn_pause.png b/app/src/ansunxanwork/res/drawable-hdpi/record_btn_pause.png
new file mode 100644
index 0000000..b2499ad
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-hdpi/record_btn_pause.png differ
diff --git a/app/src/ansunxanwork/res/drawable-hdpi/record_btn_play.png b/app/src/ansunxanwork/res/drawable-hdpi/record_btn_play.png
new file mode 100644
index 0000000..49c834f
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-hdpi/record_btn_play.png differ
diff --git a/app/src/ansunxanwork/res/drawable-hdpi/record_btn_smallscreen.png b/app/src/ansunxanwork/res/drawable-hdpi/record_btn_smallscreen.png
new file mode 100644
index 0000000..8b8e290
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-hdpi/record_btn_smallscreen.png differ
diff --git a/app/src/ansunxanwork/res/drawable-hdpi/record_progress_point.png b/app/src/ansunxanwork/res/drawable-hdpi/record_progress_point.png
new file mode 100644
index 0000000..03eb09d
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-hdpi/record_progress_point.png differ
diff --git a/app/src/ansunxanwork/res/drawable-hdpi/splash_bg.png b/app/src/ansunxanwork/res/drawable-hdpi/splash_bg.png
new file mode 100644
index 0000000..dc375a8
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-hdpi/splash_bg.png differ
diff --git a/app/src/ansunxanwork/res/drawable-hdpi/splash_btn_admin.png b/app/src/ansunxanwork/res/drawable-hdpi/splash_btn_admin.png
new file mode 100644
index 0000000..801753b
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-hdpi/splash_btn_admin.png differ
diff --git a/app/src/ansunxanwork/res/drawable-hdpi/splash_btn_user.png b/app/src/ansunxanwork/res/drawable-hdpi/splash_btn_user.png
new file mode 100644
index 0000000..40677ee
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-hdpi/splash_btn_user.png differ
diff --git a/app/src/ansunxanwork/res/drawable-hdpi/title_btn_back.png b/app/src/ansunxanwork/res/drawable-hdpi/title_btn_back.png
new file mode 100644
index 0000000..ed6b962
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-hdpi/title_btn_back.png differ
diff --git a/app/src/ansunxanwork/res/drawable-hdpi/title_btn_deviceadd.png b/app/src/ansunxanwork/res/drawable-hdpi/title_btn_deviceadd.png
new file mode 100644
index 0000000..6df0fd9
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-hdpi/title_btn_deviceadd.png differ
diff --git a/app/src/ansunxanwork/res/drawable-hdpi/title_btn_search.png b/app/src/ansunxanwork/res/drawable-hdpi/title_btn_search.png
new file mode 100644
index 0000000..0384291
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-hdpi/title_btn_search.png differ
diff --git a/app/src/ansunxanwork/res/drawable-hdpi/video_btn_play.png b/app/src/ansunxanwork/res/drawable-hdpi/video_btn_play.png
new file mode 100644
index 0000000..0372032
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-hdpi/video_btn_play.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xhdpi/Thumbs.db b/app/src/ansunxanwork/res/drawable-xhdpi/Thumbs.db
new file mode 100644
index 0000000..a0aa192
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xhdpi/Thumbs.db differ
diff --git a/app/src/ansunxanwork/res/drawable-xhdpi/custom_calendar_row_left.png b/app/src/ansunxanwork/res/drawable-xhdpi/custom_calendar_row_left.png
new file mode 100644
index 0000000..84efb1f
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xhdpi/custom_calendar_row_left.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xhdpi/custom_calendar_row_right.png b/app/src/ansunxanwork/res/drawable-xhdpi/custom_calendar_row_right.png
new file mode 100644
index 0000000..f8af65c
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xhdpi/custom_calendar_row_right.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xhdpi/list_btn_download.png b/app/src/ansunxanwork/res/drawable-xhdpi/list_btn_download.png
new file mode 100644
index 0000000..9355262
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xhdpi/list_btn_download.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xhdpi/loading_icon.png b/app/src/ansunxanwork/res/drawable-xhdpi/loading_icon.png
new file mode 100644
index 0000000..2c4667c
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xhdpi/loading_icon.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xhdpi/pic_public_code.png b/app/src/ansunxanwork/res/drawable-xhdpi/pic_public_code.png
new file mode 100644
index 0000000..f298447
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xhdpi/pic_public_code.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xhdpi/sdk_launcher.png b/app/src/ansunxanwork/res/drawable-xhdpi/sdk_launcher.png
new file mode 100644
index 0000000..50a9616
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xhdpi/sdk_launcher.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/bg.png b/app/src/ansunxanwork/res/drawable-xxhdpi/bg.png
new file mode 100644
index 0000000..1966b69
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/bg.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_autogate.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_autogate.png
new file mode 100644
index 0000000..86748f3
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_autogate.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_bungalow.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_bungalow.png
new file mode 100644
index 0000000..99c8af0
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_bungalow.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_camera.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_camera.png
new file mode 100644
index 0000000..bacf22b
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_camera.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_camera_set.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_camera_set.png
new file mode 100644
index 0000000..6de4c1f
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_camera_set.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_chandelier.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_chandelier.png
new file mode 100644
index 0000000..06e53ec
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_chandelier.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_chazuo.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_chazuo.png
new file mode 100644
index 0000000..a9f61e5
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_chazuo.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_clean.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_clean.png
new file mode 100644
index 0000000..e695e14
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_clean.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_close_control.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_close_control.png
new file mode 100644
index 0000000..36d4c64
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_close_control.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_cloud_control_nor.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_cloud_control_nor.png
new file mode 100644
index 0000000..573f8e0
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_cloud_control_nor.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_cloud_control_per.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_cloud_control_per.png
new file mode 100644
index 0000000..92ec36e
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_cloud_control_per.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_cloud_video_nor.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_cloud_video_nor.png
new file mode 100644
index 0000000..e4a8a7c
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_cloud_video_nor.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_cloud_video_per.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_cloud_video_per.png
new file mode 100644
index 0000000..b3c05f2
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_cloud_video_per.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_column_control_nor.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_column_control_nor.png
new file mode 100644
index 0000000..79174cf
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_column_control_nor.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_column_control_pre.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_column_control_pre.png
new file mode 100644
index 0000000..086ee49
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_column_control_pre.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_column_lockscreen.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_column_lockscreen.png
new file mode 100644
index 0000000..eeec8e1
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_column_lockscreen.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_column_lockscreen_per.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_column_lockscreen_per.png
new file mode 100644
index 0000000..8ac8f92
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_column_lockscreen_per.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_column_photograph.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_column_photograph.png
new file mode 100644
index 0000000..1a99785
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_column_photograph.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_column_play.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_column_play.png
new file mode 100644
index 0000000..8a88067
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_column_play.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_column_screen.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_column_screen.png
new file mode 100644
index 0000000..189b18d
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_column_screen.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_column_suspend.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_column_suspend.png
new file mode 100644
index 0000000..eef96d6
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_column_suspend.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_column_suspend1.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_column_suspend1.png
new file mode 100644
index 0000000..603778f
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_column_suspend1.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_column_suspend_per.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_column_suspend_per.png
new file mode 100644
index 0000000..b7d2ec3
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_column_suspend_per.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_column_videotape.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_column_videotape.png
new file mode 100644
index 0000000..b8d0aeb
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_column_videotape.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_column_videotape_per.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_column_videotape_per.png
new file mode 100644
index 0000000..03019ed
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_column_videotape_per.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_control_nor.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_control_nor.png
new file mode 100644
index 0000000..ec2ee6d
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_control_nor.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_control_pre.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_control_pre.png
new file mode 100644
index 0000000..31c30b0
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_control_pre.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_curtain_close.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_curtain_close.png
new file mode 100644
index 0000000..917c126
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_curtain_close.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_curtain_elevator.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_curtain_elevator.png
new file mode 100644
index 0000000..e0aa845
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_curtain_elevator.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_curtain_open.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_curtain_open.png
new file mode 100644
index 0000000..8f6530e
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_curtain_open.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_curtain_stop.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_curtain_stop.png
new file mode 100644
index 0000000..653582d
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_curtain_stop.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_curtaingauzecurtain.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_curtaingauzecurtain.png
new file mode 100644
index 0000000..87a4413
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_curtaingauzecurtain.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_curtains.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_curtains.png
new file mode 100644
index 0000000..593be55
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_curtains.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_custom_room.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_custom_room.png
new file mode 100644
index 0000000..3fece95
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_custom_room.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_deletel_home.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_deletel_home.png
new file mode 100644
index 0000000..2c7c5eb
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_deletel_home.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_desklamp.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_desklamp.png
new file mode 100644
index 0000000..c79ee4b
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_desklamp.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_device_more.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_device_more.png
new file mode 100644
index 0000000..6a2c13c
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_device_more.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_device_plug_t1.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_device_plug_t1.png
new file mode 100644
index 0000000..97a9f37
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_device_plug_t1.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_device_plug_t4.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_device_plug_t4.png
new file mode 100644
index 0000000..3af7226
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_device_plug_t4.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_device_qingjing_t5.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_device_qingjing_t5.png
new file mode 100644
index 0000000..26cff07
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_device_qingjing_t5.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_device_wallsocket_t2.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_device_wallsocket_t2.png
new file mode 100644
index 0000000..97affb0
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_device_wallsocket_t2.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_device_wifi_socket.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_device_wifi_socket.png
new file mode 100644
index 0000000..0eaedfe
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_device_wifi_socket.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_dialog_error1.9.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_dialog_error1.9.png
new file mode 100644
index 0000000..c4e5aed
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_dialog_error1.9.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_dialog_right1.9.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_dialog_right1.9.png
new file mode 100644
index 0000000..a542daa
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_dialog_right1.9.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_dialogue_nor.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_dialogue_nor.png
new file mode 100644
index 0000000..1611fe5
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_dialogue_nor.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_dialogue_pre.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_dialogue_pre.png
new file mode 100644
index 0000000..8b0cdf1
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_dialogue_pre.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_direction.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_direction.png
new file mode 100644
index 0000000..f139019
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_direction.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_direction_down.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_direction_down.png
new file mode 100644
index 0000000..ecbdbfc
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_direction_down.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_direction_down80.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_direction_down80.png
new file mode 100644
index 0000000..df63d71
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_direction_down80.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_direction_left.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_direction_left.png
new file mode 100644
index 0000000..da5e0b0
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_direction_left.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_direction_left80.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_direction_left80.png
new file mode 100644
index 0000000..1a80ce2
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_direction_left80.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_direction_right.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_direction_right.png
new file mode 100644
index 0000000..3f883f8
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_direction_right.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_direction_right80.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_direction_right80.png
new file mode 100644
index 0000000..aef974f
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_direction_right80.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_direction_up.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_direction_up.png
new file mode 100644
index 0000000..32f54b2
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_direction_up.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_direction_up80.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_direction_up80.png
new file mode 100644
index 0000000..4b09f67
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_direction_up80.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_dwx.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_dwx.png
new file mode 100644
index 0000000..8c84a8d
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_dwx.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_elevator.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_elevator.png
new file mode 100644
index 0000000..66a3fd2
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_elevator.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_exhaust.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_exhaust.png
new file mode 100644
index 0000000..740897f
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_exhaust.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_family.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_family.png
new file mode 100644
index 0000000..13b4fd2
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_family.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_five_room.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_five_room.png
new file mode 100644
index 0000000..45d71e4
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_five_room.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_four_room.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_four_room.png
new file mode 100644
index 0000000..506fab8
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_four_room.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_fs.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_fs.png
new file mode 100644
index 0000000..d5e82f6
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_fs.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_garage.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_garage.png
new file mode 100644
index 0000000..2862e2e
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_garage.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_gas.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_gas.png
new file mode 100644
index 0000000..c0e18bf
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_gas.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_gas_433.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_gas_433.png
new file mode 100644
index 0000000..9d33aaa
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_gas_433.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_gatemagnetic.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_gatemagnetic.png
new file mode 100644
index 0000000..03898f8
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_gatemagnetic.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_gatemagnetic_433.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_gatemagnetic_433.png
new file mode 100644
index 0000000..fad7175
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_gatemagnetic_433.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_gauze.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_gauze.png
new file mode 100644
index 0000000..6fbae70
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_gauze.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_goback_nor.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_goback_nor.png
new file mode 100644
index 0000000..2ba43a7
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_goback_nor.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_goback_nor80.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_goback_nor80.png
new file mode 100644
index 0000000..7238269
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_goback_nor80.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_heater.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_heater.png
new file mode 100644
index 0000000..688b3fc
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_heater.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_implement_open.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_implement_open.png
new file mode 100644
index 0000000..184b30a
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_implement_open.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_implement_shut.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_implement_shut.png
new file mode 100644
index 0000000..54c4c7b
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_implement_shut.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_index_nor.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_index_nor.png
new file mode 100644
index 0000000..138abc4
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_index_nor.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_index_nor80.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_index_nor80.png
new file mode 100644
index 0000000..b614ee9
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_index_nor80.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_infrared.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_infrared.png
new file mode 100644
index 0000000..814e7d2
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_infrared.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_infrared_433.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_infrared_433.png
new file mode 100644
index 0000000..07c2e25
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_infrared_433.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_kettle.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_kettle.png
new file mode 100644
index 0000000..b2bd115
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_kettle.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_kitchenpower.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_kitchenpower.png
new file mode 100644
index 0000000..aaaa1d9
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_kitchenpower.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_kt.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_kt.png
new file mode 100644
index 0000000..a159cc7
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_kt.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_lamp.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_lamp.png
new file mode 100644
index 0000000..7df920b
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_lamp.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_light.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_light.png
new file mode 100644
index 0000000..67e9c6a
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_light.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_lightbelt.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_lightbelt.png
new file mode 100644
index 0000000..64bc451
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_lightbelt.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_local_video_nor.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_local_video_nor.png
new file mode 100644
index 0000000..2330b9f
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_local_video_nor.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_local_video_per.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_local_video_per.png
new file mode 100644
index 0000000..1be1d80
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_local_video_per.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_menu_nor.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_menu_nor.png
new file mode 100644
index 0000000..00ccb92
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_menu_nor.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_menu_nor80.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_menu_nor80.png
new file mode 100644
index 0000000..d74837c
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_menu_nor80.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_music.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_music.png
new file mode 100644
index 0000000..20f7958
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_music.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_music_suspend.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_music_suspend.png
new file mode 100644
index 0000000..045894a
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_music_suspend.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_nav_add.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_nav_add.png
new file mode 100644
index 0000000..d71d973
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_nav_add.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_new_home.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_new_home.png
new file mode 100644
index 0000000..758e305
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_new_home.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_no_video.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_no_video.png
new file mode 100644
index 0000000..644f319
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_no_video.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_one_room.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_one_room.png
new file mode 100644
index 0000000..fbf89c2
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_one_room.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_pattern_hide.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_pattern_hide.png
new file mode 100644
index 0000000..e58e702
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_pattern_hide.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_pattern_more.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_pattern_more.png
new file mode 100644
index 0000000..9ea0611
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_pattern_more.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_photograph_nor.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_photograph_nor.png
new file mode 100644
index 0000000..bc646f9
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_photograph_nor.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_photograph_pre.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_photograph_pre.png
new file mode 100644
index 0000000..220dba3
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_photograph_pre.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_porchlamp.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_porchlamp.png
new file mode 100644
index 0000000..2866edc
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_porchlamp.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_quiet_pre80.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_quiet_pre80.png
new file mode 100644
index 0000000..c3fadda
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_quiet_pre80.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_quiet_press.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_quiet_press.png
new file mode 100644
index 0000000..450f32b
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_quiet_press.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_region.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_region.png
new file mode 100644
index 0000000..ec8b1e4
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_region.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_room.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_room.png
new file mode 100644
index 0000000..f4d4592
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_room.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_room_setup.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_room_setup.png
new file mode 100644
index 0000000..0a0838e
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_room_setup.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_room_three.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_room_three.png
new file mode 100644
index 0000000..d2da9f4
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_room_three.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_scene_custom.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_scene_custom.png
new file mode 100644
index 0000000..4a16abb
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_scene_custom.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_scene_delayed.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_scene_delayed.png
new file mode 100644
index 0000000..105e01f
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_scene_delayed.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_scene_linkage.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_scene_linkage.png
new file mode 100644
index 0000000..2a0b2ef
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_scene_linkage.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_screen_cloud_control.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_screen_cloud_control.png
new file mode 100644
index 0000000..a6c4a08
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_screen_cloud_control.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_set_top_box.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_set_top_box.png
new file mode 100644
index 0000000..2eb5358
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_set_top_box.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_share_nor.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_share_nor.png
new file mode 100644
index 0000000..d165f16
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_share_nor.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_share_pre.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_share_pre.png
new file mode 100644
index 0000000..5158ac3
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_share_pre.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_smoke.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_smoke.png
new file mode 100644
index 0000000..50f7820
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_smoke.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_smoke_433.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_smoke_433.png
new file mode 100644
index 0000000..7cd343f
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_smoke_433.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_step_three.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_step_three.png
new file mode 100644
index 0000000..9825795
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_step_three.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_style.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_style.png
new file mode 100644
index 0000000..49f0ebf
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_style.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_switch_on.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_switch_on.png
new file mode 100644
index 0000000..77b0e4c
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_switch_on.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_switch_open.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_switch_open.png
new file mode 100644
index 0000000..9e87afa
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_switch_open.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_switch_press80.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_switch_press80.png
new file mode 100644
index 0000000..a8c35c8
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_switch_press80.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_tv.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_tv.png
new file mode 100644
index 0000000..7ead417
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_tv.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_two_room.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_two_room.png
new file mode 100644
index 0000000..90e0eee
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_two_room.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_video_control.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_video_control.png
new file mode 100644
index 0000000..f757236
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_video_control.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_videotape_nor.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_videotape_nor.png
new file mode 100644
index 0000000..928c88b
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_videotape_nor.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_videotape_pre.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_videotape_pre.png
new file mode 100644
index 0000000..15c9620
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_videotape_pre.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_villa.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_villa.png
new file mode 100644
index 0000000..8768f76
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_villa.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_voice.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_voice.png
new file mode 100644
index 0000000..7f100d3
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_voice.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_voice_off.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_voice_off.png
new file mode 100644
index 0000000..0ae61f2
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_voice_off.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_voice_on.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_voice_on.png
new file mode 100644
index 0000000..0c23588
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_voice_on.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_voice_switch_cantonese.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_voice_switch_cantonese.png
new file mode 100644
index 0000000..652c461
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_voice_switch_cantonese.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_voice_switch_mandarin.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_voice_switch_mandarin.png
new file mode 100644
index 0000000..c494e23
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_voice_switch_mandarin.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_vol_add.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_vol_add.png
new file mode 100644
index 0000000..d71d973
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_vol_add.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_vol_add80.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_vol_add80.png
new file mode 100644
index 0000000..679aa94
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_vol_add80.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_vol_reduce.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_vol_reduce.png
new file mode 100644
index 0000000..d7f4ab4
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_vol_reduce.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_vol_reduce80.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_vol_reduce80.png
new file mode 100644
index 0000000..e7f90bb
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_vol_reduce80.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_walllamp.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_walllamp.png
new file mode 100644
index 0000000..9f0844e
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_walllamp.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_wallsocket.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_wallsocket.png
new file mode 100644
index 0000000..96fe96b
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_wallsocket.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_waterimmersion.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_waterimmersion.png
new file mode 100644
index 0000000..97fc5d8
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_waterimmersion.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_waterimmersion_433.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_waterimmersion_433.png
new file mode 100644
index 0000000..e0bfba5
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_waterimmersion_433.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_wifi.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_wifi.png
new file mode 100644
index 0000000..2a1d98d
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_wifi.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/icon_window_opener.png b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_window_opener.png
new file mode 100644
index 0000000..6d96ecd
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/icon_window_opener.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/index_icon_index_pre.png b/app/src/ansunxanwork/res/drawable-xxhdpi/index_icon_index_pre.png
new file mode 100644
index 0000000..22c34d7
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/index_icon_index_pre.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/index_icon_interactive_pre.png b/app/src/ansunxanwork/res/drawable-xxhdpi/index_icon_interactive_pre.png
new file mode 100644
index 0000000..3271ea6
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/index_icon_interactive_pre.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/index_icon_scene_pre.png b/app/src/ansunxanwork/res/drawable-xxhdpi/index_icon_scene_pre.png
new file mode 100644
index 0000000..330b2f0
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/index_icon_scene_pre.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/index_icon_wode_pre.png b/app/src/ansunxanwork/res/drawable-xxhdpi/index_icon_wode_pre.png
new file mode 100644
index 0000000..84cf65f
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/index_icon_wode_pre.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/lecheng_icon.png b/app/src/ansunxanwork/res/drawable-xxhdpi/lecheng_icon.png
new file mode 100644
index 0000000..4047c62
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/lecheng_icon.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/loading_icon.png b/app/src/ansunxanwork/res/drawable-xxhdpi/loading_icon.png
new file mode 100644
index 0000000..b376d51
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/loading_icon.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/pic_add_finish_camera.png b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_add_finish_camera.png
new file mode 100644
index 0000000..b43637f
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_add_finish_camera.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/pic_autogate.png b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_autogate.png
new file mode 100644
index 0000000..344b8ea
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_autogate.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/pic_camera_indicator.png b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_camera_indicator.png
new file mode 100644
index 0000000..472c1d0
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_camera_indicator.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/pic_camera_overtime.png b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_camera_overtime.png
new file mode 100644
index 0000000..a8c5eaa
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_camera_overtime.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/pic_chandelier.png b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_chandelier.png
new file mode 100644
index 0000000..ab348a5
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_chandelier.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/pic_chazuo.png b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_chazuo.png
new file mode 100644
index 0000000..df780b8
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_chazuo.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/pic_close_back.png b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_close_back.png
new file mode 100644
index 0000000..b8f7b41
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_close_back.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/pic_close_window.png b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_close_window.png
new file mode 100644
index 0000000..9acbdb3
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_close_window.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/pic_control_scene.png b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_control_scene.png
new file mode 100644
index 0000000..8304c79
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_control_scene.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/pic_control_scene1.png b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_control_scene1.png
new file mode 100644
index 0000000..a21cbf8
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_control_scene1.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/pic_control_scene2.png b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_control_scene2.png
new file mode 100644
index 0000000..11ef32b
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_control_scene2.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/pic_control_scene3.png b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_control_scene3.png
new file mode 100644
index 0000000..9cdf370
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_control_scene3.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/pic_control_scene4.png b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_control_scene4.png
new file mode 100644
index 0000000..ea9ac4e
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_control_scene4.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/pic_control_scene6.png b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_control_scene6.png
new file mode 100644
index 0000000..15b5469
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_control_scene6.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/pic_curtain.png b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_curtain.png
new file mode 100644
index 0000000..a089c5d
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_curtain.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/pic_curtain_elevator.png b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_curtain_elevator.png
new file mode 100644
index 0000000..c705645
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_curtain_elevator.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/pic_curtains_close.png b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_curtains_close.png
new file mode 100644
index 0000000..593be55
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_curtains_close.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/pic_dehumidify_back.png b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_dehumidify_back.png
new file mode 100644
index 0000000..47d084b
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_dehumidify_back.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/pic_desklamp.png b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_desklamp.png
new file mode 100644
index 0000000..9fb36ab
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_desklamp.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/pic_dwx.png b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_dwx.png
new file mode 100644
index 0000000..2efbfc5
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_dwx.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/pic_electricfan.png b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_electricfan.png
new file mode 100644
index 0000000..c4a5c57
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_electricfan.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/pic_elevator.png b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_elevator.png
new file mode 100644
index 0000000..954d475
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_elevator.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/pic_exhaust.png b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_exhaust.png
new file mode 100644
index 0000000..050a8f2
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_exhaust.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/pic_garage.png b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_garage.png
new file mode 100644
index 0000000..13f7036
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_garage.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/pic_gauze.png b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_gauze.png
new file mode 100644
index 0000000..9a25328
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_gauze.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/pic_guidepage1.png b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_guidepage1.png
new file mode 100644
index 0000000..817c7e5
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_guidepage1.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/pic_guidepage2.png b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_guidepage2.png
new file mode 100644
index 0000000..b6cc57b
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_guidepage2.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/pic_guidepage3.png b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_guidepage3.png
new file mode 100644
index 0000000..450958f
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_guidepage3.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/pic_heater.png b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_heater.png
new file mode 100644
index 0000000..e396f9c
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_heater.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/pic_heating_back.png b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_heating_back.png
new file mode 100644
index 0000000..fea82f8
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_heating_back.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/pic_kettle.png b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_kettle.png
new file mode 100644
index 0000000..fa65c88
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_kettle.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/pic_kitchenpower.png b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_kitchenpower.png
new file mode 100644
index 0000000..2e1d5be
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_kitchenpower.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/pic_lamp.png b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_lamp.png
new file mode 100644
index 0000000..c420a36
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_lamp.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/pic_light_close.png b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_light_close.png
new file mode 100644
index 0000000..8c6987a
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_light_close.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/pic_light_open.png b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_light_open.png
new file mode 100644
index 0000000..8c6987a
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_light_open.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/pic_lightbelt.png b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_lightbelt.png
new file mode 100644
index 0000000..f80a7e3
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_lightbelt.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/pic_multifunctional.png b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_multifunctional.png
new file mode 100644
index 0000000..919340a
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_multifunctional.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/pic_music_add.png b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_music_add.png
new file mode 100644
index 0000000..8fbe1db
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_music_add.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/pic_music_key.png b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_music_key.png
new file mode 100644
index 0000000..1561757
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_music_key.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/pic_music_last.png b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_music_last.png
new file mode 100644
index 0000000..e8bcb2c
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_music_last.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/pic_music_next.png b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_music_next.png
new file mode 100644
index 0000000..39ef3d7
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_music_next.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/pic_music_reduce.png b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_music_reduce.png
new file mode 100644
index 0000000..7804f15
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_music_reduce.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/pic_plug_t1.png b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_plug_t1.png
new file mode 100644
index 0000000..368ebc3
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_plug_t1.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/pic_plug_t4.png b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_plug_t4.png
new file mode 100644
index 0000000..a236b11
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_plug_t4.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/pic_porchlamp.png b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_porchlamp.png
new file mode 100644
index 0000000..1db220c
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_porchlamp.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/pic_public_code.png b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_public_code.png
new file mode 100644
index 0000000..55fc6f2
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_public_code.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/pic_refrigeration_back.png b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_refrigeration_back.png
new file mode 100644
index 0000000..9670ec3
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_refrigeration_back.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/pic_router.png b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_router.png
new file mode 100644
index 0000000..4d59bc4
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_router.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/pic_spray.png b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_spray.png
new file mode 100644
index 0000000..59c5396
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_spray.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/pic_sterilizing_lamp.png b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_sterilizing_lamp.png
new file mode 100644
index 0000000..e58534e
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_sterilizing_lamp.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/pic_storage.png b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_storage.png
new file mode 100644
index 0000000..b602f1e
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_storage.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/pic_sunshade.png b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_sunshade.png
new file mode 100644
index 0000000..d4784ae
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_sunshade.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/pic_tubelamp.png b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_tubelamp.png
new file mode 100644
index 0000000..929507f
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_tubelamp.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/pic_video_background.png b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_video_background.png
new file mode 100644
index 0000000..7405cef
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_video_background.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/pic_videotape.png b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_videotape.png
new file mode 100644
index 0000000..1465176
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_videotape.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/pic_walllamp.png b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_walllamp.png
new file mode 100644
index 0000000..e69bd17
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_walllamp.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/pic_wallpaper01.png b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_wallpaper01.png
new file mode 100644
index 0000000..cc57954
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_wallpaper01.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/pic_wallpaper02.png b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_wallpaper02.png
new file mode 100644
index 0000000..0159725
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_wallpaper02.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/pic_wallpaper03.png b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_wallpaper03.png
new file mode 100644
index 0000000..00e200f
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_wallpaper03.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/pic_wallpaper04.png b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_wallpaper04.png
new file mode 100644
index 0000000..0c21ffd
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_wallpaper04.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/pic_wallsocket_t2.png b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_wallsocket_t2.png
new file mode 100644
index 0000000..fb7ada8
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_wallsocket_t2.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/pic_wifi_socket.png b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_wifi_socket.png
new file mode 100644
index 0000000..97716a7
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_wifi_socket.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/pic_window.png b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_window.png
new file mode 100644
index 0000000..9acbdb3
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_window.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/pic_wode.png b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_wode.png
new file mode 100644
index 0000000..433482a
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/pic_wode.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/select_reveal_copy.png b/app/src/ansunxanwork/res/drawable-xxhdpi/select_reveal_copy.png
new file mode 100644
index 0000000..d7c4232
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/select_reveal_copy.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/select_unnor1.png b/app/src/ansunxanwork/res/drawable-xxhdpi/select_unnor1.png
new file mode 100644
index 0000000..79fa587
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/select_unnor1.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/select_unnor2.png b/app/src/ansunxanwork/res/drawable-xxhdpi/select_unnor2.png
new file mode 100644
index 0000000..efef07e
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/select_unnor2.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/wode_icon_news.png b/app/src/ansunxanwork/res/drawable-xxhdpi/wode_icon_news.png
new file mode 100644
index 0000000..93ce27f
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/wode_icon_news.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/wode_icon_setting.png b/app/src/ansunxanwork/res/drawable-xxhdpi/wode_icon_setting.png
new file mode 100644
index 0000000..99fbed6
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/wode_icon_setting.png differ
diff --git a/app/src/ansunxanwork/res/drawable-xxhdpi/wode_icon_update.png b/app/src/ansunxanwork/res/drawable-xxhdpi/wode_icon_update.png
new file mode 100644
index 0000000..fa2b3e7
Binary files /dev/null and b/app/src/ansunxanwork/res/drawable-xxhdpi/wode_icon_update.png differ
diff --git a/app/src/ansunxanwork/res/drawable/alarm_message_underline.xml b/app/src/ansunxanwork/res/drawable/alarm_message_underline.xml
new file mode 100644
index 0000000..a43ef0f
--- /dev/null
+++ b/app/src/ansunxanwork/res/drawable/alarm_message_underline.xml
@@ -0,0 +1,16 @@
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+
+
+
diff --git a/app/src/ansunxanwork/res/drawable/bg_wheel.xml b/app/src/ansunxanwork/res/drawable/bg_wheel.xml
new file mode 100644
index 0000000..2e8ad22
--- /dev/null
+++ b/app/src/ansunxanwork/res/drawable/bg_wheel.xml
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/ansunxanwork/res/drawable/btn_moveplan_switch.xml b/app/src/ansunxanwork/res/drawable/btn_moveplan_switch.xml
new file mode 100644
index 0000000..6500b79
--- /dev/null
+++ b/app/src/ansunxanwork/res/drawable/btn_moveplan_switch.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
diff --git a/app/src/ansunxanwork/res/drawable/btn_round_360_bg.xml b/app/src/ansunxanwork/res/drawable/btn_round_360_bg.xml
new file mode 100644
index 0000000..369cd2d
--- /dev/null
+++ b/app/src/ansunxanwork/res/drawable/btn_round_360_bg.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/ansunxanwork/res/drawable/btn_round_360_stroke.xml b/app/src/ansunxanwork/res/drawable/btn_round_360_stroke.xml
new file mode 100644
index 0000000..c2c23f8
--- /dev/null
+++ b/app/src/ansunxanwork/res/drawable/btn_round_360_stroke.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/ansunxanwork/res/drawable/btn_round_360dp_strok_7ed321.xml b/app/src/ansunxanwork/res/drawable/btn_round_360dp_strok_7ed321.xml
new file mode 100644
index 0000000..2424f9c
--- /dev/null
+++ b/app/src/ansunxanwork/res/drawable/btn_round_360dp_strok_7ed321.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/ansunxanwork/res/drawable/btn_round_398dee.xml b/app/src/ansunxanwork/res/drawable/btn_round_398dee.xml
new file mode 100644
index 0000000..9ddf64d
--- /dev/null
+++ b/app/src/ansunxanwork/res/drawable/btn_round_398dee.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/ansunxanwork/res/drawable/btn_round_398dee_20dp.xml b/app/src/ansunxanwork/res/drawable/btn_round_398dee_20dp.xml
new file mode 100644
index 0000000..9ddf64d
--- /dev/null
+++ b/app/src/ansunxanwork/res/drawable/btn_round_398dee_20dp.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/ansunxanwork/res/drawable/icon_cloud_control.xml b/app/src/ansunxanwork/res/drawable/icon_cloud_control.xml
new file mode 100644
index 0000000..54fcd7c
--- /dev/null
+++ b/app/src/ansunxanwork/res/drawable/icon_cloud_control.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/ansunxanwork/res/drawable/kuang_house_type.xml b/app/src/ansunxanwork/res/drawable/kuang_house_type.xml
new file mode 100644
index 0000000..7af770f
--- /dev/null
+++ b/app/src/ansunxanwork/res/drawable/kuang_house_type.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/ansunxanwork/res/drawable/select_lockscreen.xml b/app/src/ansunxanwork/res/drawable/select_lockscreen.xml
new file mode 100644
index 0000000..5cc57b7
--- /dev/null
+++ b/app/src/ansunxanwork/res/drawable/select_lockscreen.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/ansunxanwork/res/drawable/text_42cee7_12a9d5.xml b/app/src/ansunxanwork/res/drawable/text_42cee7_12a9d5.xml
new file mode 100644
index 0000000..1031858
--- /dev/null
+++ b/app/src/ansunxanwork/res/drawable/text_42cee7_12a9d5.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/ansunxanwork/res/layout/activity_about_version.xml b/app/src/ansunxanwork/res/layout/activity_about_version.xml
new file mode 100644
index 0000000..eed8189
--- /dev/null
+++ b/app/src/ansunxanwork/res/layout/activity_about_version.xml
@@ -0,0 +1,238 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/ansunxanwork/res/layout/activity_admin_login.xml b/app/src/ansunxanwork/res/layout/activity_admin_login.xml
new file mode 100644
index 0000000..c8718c6
--- /dev/null
+++ b/app/src/ansunxanwork/res/layout/activity_admin_login.xml
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/ansunxanwork/res/layout/activity_alarm_message.xml b/app/src/ansunxanwork/res/layout/activity_alarm_message.xml
new file mode 100644
index 0000000..ac81b72
--- /dev/null
+++ b/app/src/ansunxanwork/res/layout/activity_alarm_message.xml
@@ -0,0 +1,65 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/ansunxanwork/res/layout/activity_alarm_message_item.xml b/app/src/ansunxanwork/res/layout/activity_alarm_message_item.xml
new file mode 100644
index 0000000..5cc2c27
--- /dev/null
+++ b/app/src/ansunxanwork/res/layout/activity_alarm_message_item.xml
@@ -0,0 +1,56 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/ansunxanwork/res/layout/activity_asx_add_device_list.xml b/app/src/ansunxanwork/res/layout/activity_asx_add_device_list.xml
new file mode 100644
index 0000000..8294b3c
--- /dev/null
+++ b/app/src/ansunxanwork/res/layout/activity_asx_add_device_list.xml
@@ -0,0 +1,90 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/ansunxanwork/res/layout/activity_camera_name.xml b/app/src/ansunxanwork/res/layout/activity_camera_name.xml
new file mode 100644
index 0000000..a2a4b16
--- /dev/null
+++ b/app/src/ansunxanwork/res/layout/activity_camera_name.xml
@@ -0,0 +1,144 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/ansunxanwork/res/layout/activity_copyright.xml b/app/src/ansunxanwork/res/layout/activity_copyright.xml
new file mode 100644
index 0000000..9a06053
--- /dev/null
+++ b/app/src/ansunxanwork/res/layout/activity_copyright.xml
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/ansunxanwork/res/layout/activity_device_add.xml b/app/src/ansunxanwork/res/layout/activity_device_add.xml
new file mode 100644
index 0000000..4cf7e4d
--- /dev/null
+++ b/app/src/ansunxanwork/res/layout/activity_device_add.xml
@@ -0,0 +1,47 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/ansunxanwork/res/layout/activity_device_list.xml b/app/src/ansunxanwork/res/layout/activity_device_list.xml
new file mode 100644
index 0000000..78ebd17
--- /dev/null
+++ b/app/src/ansunxanwork/res/layout/activity_device_list.xml
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/ansunxanwork/res/layout/activity_device_list_item.xml b/app/src/ansunxanwork/res/layout/activity_device_list_item.xml
new file mode 100644
index 0000000..ac9e0e1
--- /dev/null
+++ b/app/src/ansunxanwork/res/layout/activity_device_list_item.xml
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/ansunxanwork/res/layout/activity_device_set.xml b/app/src/ansunxanwork/res/layout/activity_device_set.xml
new file mode 100644
index 0000000..cacbd82
--- /dev/null
+++ b/app/src/ansunxanwork/res/layout/activity_device_set.xml
@@ -0,0 +1,163 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/ansunxanwork/res/layout/activity_lecheng_login.xml b/app/src/ansunxanwork/res/layout/activity_lecheng_login.xml
new file mode 100644
index 0000000..d95a000
--- /dev/null
+++ b/app/src/ansunxanwork/res/layout/activity_lecheng_login.xml
@@ -0,0 +1,204 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/ansunxanwork/res/layout/activity_local_video_item.xml b/app/src/ansunxanwork/res/layout/activity_local_video_item.xml
new file mode 100644
index 0000000..2d85411
--- /dev/null
+++ b/app/src/ansunxanwork/res/layout/activity_local_video_item.xml
@@ -0,0 +1,66 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/ansunxanwork/res/layout/activity_login.xml b/app/src/ansunxanwork/res/layout/activity_login.xml
new file mode 100644
index 0000000..01fcb6b
--- /dev/null
+++ b/app/src/ansunxanwork/res/layout/activity_login.xml
@@ -0,0 +1,231 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/ansunxanwork/res/layout/activity_media_video.xml b/app/src/ansunxanwork/res/layout/activity_media_video.xml
new file mode 100644
index 0000000..c376f18
--- /dev/null
+++ b/app/src/ansunxanwork/res/layout/activity_media_video.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/ansunxanwork/res/layout/activity_modify_camera_name.xml b/app/src/ansunxanwork/res/layout/activity_modify_camera_name.xml
new file mode 100644
index 0000000..bcd4b04
--- /dev/null
+++ b/app/src/ansunxanwork/res/layout/activity_modify_camera_name.xml
@@ -0,0 +1,391 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/ansunxanwork/res/layout/activity_record_list.xml b/app/src/ansunxanwork/res/layout/activity_record_list.xml
new file mode 100644
index 0000000..7dd17e1
--- /dev/null
+++ b/app/src/ansunxanwork/res/layout/activity_record_list.xml
@@ -0,0 +1,196 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/ansunxanwork/res/layout/activity_record_list_item.xml b/app/src/ansunxanwork/res/layout/activity_record_list_item.xml
new file mode 100644
index 0000000..08ab23e
--- /dev/null
+++ b/app/src/ansunxanwork/res/layout/activity_record_list_item.xml
@@ -0,0 +1,60 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/ansunxanwork/res/layout/activity_recover_sdcard.xml b/app/src/ansunxanwork/res/layout/activity_recover_sdcard.xml
new file mode 100644
index 0000000..8168c72
--- /dev/null
+++ b/app/src/ansunxanwork/res/layout/activity_recover_sdcard.xml
@@ -0,0 +1,45 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/ansunxanwork/res/layout/activity_splash.xml b/app/src/ansunxanwork/res/layout/activity_splash.xml
new file mode 100644
index 0000000..b854c9a
--- /dev/null
+++ b/app/src/ansunxanwork/res/layout/activity_splash.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/ansunxanwork/res/layout/activity_time_out.xml b/app/src/ansunxanwork/res/layout/activity_time_out.xml
new file mode 100644
index 0000000..df52e00
--- /dev/null
+++ b/app/src/ansunxanwork/res/layout/activity_time_out.xml
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/ansunxanwork/res/layout/activity_user_bind.xml b/app/src/ansunxanwork/res/layout/activity_user_bind.xml
new file mode 100644
index 0000000..b10013c
--- /dev/null
+++ b/app/src/ansunxanwork/res/layout/activity_user_bind.xml
@@ -0,0 +1,68 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/ansunxanwork/res/layout/activity_user_login.xml b/app/src/ansunxanwork/res/layout/activity_user_login.xml
new file mode 100644
index 0000000..ce9fddc
--- /dev/null
+++ b/app/src/ansunxanwork/res/layout/activity_user_login.xml
@@ -0,0 +1,84 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/ansunxanwork/res/layout/activity_video_container.xml b/app/src/ansunxanwork/res/layout/activity_video_container.xml
new file mode 100644
index 0000000..e3868bf
--- /dev/null
+++ b/app/src/ansunxanwork/res/layout/activity_video_container.xml
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/ansunxanwork/res/layout/activity_welcome.xml b/app/src/ansunxanwork/res/layout/activity_welcome.xml
new file mode 100644
index 0000000..364b7b1
--- /dev/null
+++ b/app/src/ansunxanwork/res/layout/activity_welcome.xml
@@ -0,0 +1,51 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/ansunxanwork/res/layout/city_group.xml b/app/src/ansunxanwork/res/layout/city_group.xml
new file mode 100644
index 0000000..0161946
--- /dev/null
+++ b/app/src/ansunxanwork/res/layout/city_group.xml
@@ -0,0 +1,39 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/ansunxanwork/res/layout/dialog_big_photo.xml b/app/src/ansunxanwork/res/layout/dialog_big_photo.xml
new file mode 100644
index 0000000..f64f666
--- /dev/null
+++ b/app/src/ansunxanwork/res/layout/dialog_big_photo.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
diff --git a/app/src/ansunxanwork/res/layout/dialog_modify_device_password.xml b/app/src/ansunxanwork/res/layout/dialog_modify_device_password.xml
new file mode 100644
index 0000000..eac4c5e
--- /dev/null
+++ b/app/src/ansunxanwork/res/layout/dialog_modify_device_password.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+
diff --git a/app/src/ansunxanwork/res/layout/fragment_media_live.xml b/app/src/ansunxanwork/res/layout/fragment_media_live.xml
new file mode 100644
index 0000000..e240148
--- /dev/null
+++ b/app/src/ansunxanwork/res/layout/fragment_media_live.xml
@@ -0,0 +1,426 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/ansunxanwork/res/layout/fragment_media_record.xml b/app/src/ansunxanwork/res/layout/fragment_media_record.xml
new file mode 100644
index 0000000..22c0d41
--- /dev/null
+++ b/app/src/ansunxanwork/res/layout/fragment_media_record.xml
@@ -0,0 +1,298 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/ansunxanwork/res/layout/fragment_splash_err.xml b/app/src/ansunxanwork/res/layout/fragment_splash_err.xml
new file mode 100644
index 0000000..56967c0
--- /dev/null
+++ b/app/src/ansunxanwork/res/layout/fragment_splash_err.xml
@@ -0,0 +1,88 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/ansunxanwork/res/layout/fragment_splash_normal.xml b/app/src/ansunxanwork/res/layout/fragment_splash_normal.xml
new file mode 100644
index 0000000..301a6fb
--- /dev/null
+++ b/app/src/ansunxanwork/res/layout/fragment_splash_normal.xml
@@ -0,0 +1,106 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/ansunxanwork/res/layout/fragment_video_live.xml b/app/src/ansunxanwork/res/layout/fragment_video_live.xml
new file mode 100644
index 0000000..6058253
--- /dev/null
+++ b/app/src/ansunxanwork/res/layout/fragment_video_live.xml
@@ -0,0 +1,249 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/ansunxanwork/res/layout/item_city.xml b/app/src/ansunxanwork/res/layout/item_city.xml
new file mode 100644
index 0000000..31df21d
--- /dev/null
+++ b/app/src/ansunxanwork/res/layout/item_city.xml
@@ -0,0 +1,44 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/ansunxanwork/res/layout/item_container.xml b/app/src/ansunxanwork/res/layout/item_container.xml
new file mode 100644
index 0000000..a3dd3f2
--- /dev/null
+++ b/app/src/ansunxanwork/res/layout/item_container.xml
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/ansunxanwork/res/layout/pop_calendar.xml b/app/src/ansunxanwork/res/layout/pop_calendar.xml
new file mode 100644
index 0000000..101d999
--- /dev/null
+++ b/app/src/ansunxanwork/res/layout/pop_calendar.xml
@@ -0,0 +1,55 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/ansunxanwork/res/layout/widget_common_datepicker.xml b/app/src/ansunxanwork/res/layout/widget_common_datepicker.xml
new file mode 100644
index 0000000..f29a74e
--- /dev/null
+++ b/app/src/ansunxanwork/res/layout/widget_common_datepicker.xml
@@ -0,0 +1,113 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/ansunxanwork/res/layout/widget_common_title.xml b/app/src/ansunxanwork/res/layout/widget_common_title.xml
new file mode 100644
index 0000000..518cbc3
--- /dev/null
+++ b/app/src/ansunxanwork/res/layout/widget_common_title.xml
@@ -0,0 +1,44 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/ansunxanwork/res/menu/main.xml b/app/src/ansunxanwork/res/menu/main.xml
new file mode 100644
index 0000000..ce7a68c
--- /dev/null
+++ b/app/src/ansunxanwork/res/menu/main.xml
@@ -0,0 +1,7 @@
+
diff --git a/app/src/ansunxanwork/res/mipmap-xxhdpi/city1.png b/app/src/ansunxanwork/res/mipmap-xxhdpi/city1.png
new file mode 100644
index 0000000..f18717d
Binary files /dev/null and b/app/src/ansunxanwork/res/mipmap-xxhdpi/city1.png differ
diff --git a/app/src/ansunxanwork/res/mipmap-xxhdpi/city2.png b/app/src/ansunxanwork/res/mipmap-xxhdpi/city2.png
new file mode 100644
index 0000000..70504b4
Binary files /dev/null and b/app/src/ansunxanwork/res/mipmap-xxhdpi/city2.png differ
diff --git a/app/src/ansunxanwork/res/mipmap-xxhdpi/city3.png b/app/src/ansunxanwork/res/mipmap-xxhdpi/city3.png
new file mode 100644
index 0000000..78dd04c
Binary files /dev/null and b/app/src/ansunxanwork/res/mipmap-xxhdpi/city3.png differ
diff --git a/app/src/ansunxanwork/res/mipmap-xxhdpi/city4.png b/app/src/ansunxanwork/res/mipmap-xxhdpi/city4.png
new file mode 100644
index 0000000..2a205d5
Binary files /dev/null and b/app/src/ansunxanwork/res/mipmap-xxhdpi/city4.png differ
diff --git a/app/src/ansunxanwork/res/mipmap-xxhdpi/subject1.png b/app/src/ansunxanwork/res/mipmap-xxhdpi/subject1.png
new file mode 100644
index 0000000..de01ce0
Binary files /dev/null and b/app/src/ansunxanwork/res/mipmap-xxhdpi/subject1.png differ
diff --git a/app/src/ansunxanwork/res/mipmap-xxhdpi/subject2.png b/app/src/ansunxanwork/res/mipmap-xxhdpi/subject2.png
new file mode 100644
index 0000000..c3d61d2
Binary files /dev/null and b/app/src/ansunxanwork/res/mipmap-xxhdpi/subject2.png differ
diff --git a/app/src/ansunxanwork/res/mipmap-xxhdpi/subject3.png b/app/src/ansunxanwork/res/mipmap-xxhdpi/subject3.png
new file mode 100644
index 0000000..ae627de
Binary files /dev/null and b/app/src/ansunxanwork/res/mipmap-xxhdpi/subject3.png differ
diff --git a/app/src/ansunxanwork/res/mipmap-xxhdpi/subject4.png b/app/src/ansunxanwork/res/mipmap-xxhdpi/subject4.png
new file mode 100644
index 0000000..47e4fd1
Binary files /dev/null and b/app/src/ansunxanwork/res/mipmap-xxhdpi/subject4.png differ
diff --git a/app/src/ansunxanwork/res/mipmap-xxhdpi/subject5.png b/app/src/ansunxanwork/res/mipmap-xxhdpi/subject5.png
new file mode 100644
index 0000000..f216a60
Binary files /dev/null and b/app/src/ansunxanwork/res/mipmap-xxhdpi/subject5.png differ
diff --git a/app/src/ansunxanwork/res/mipmap-xxhdpi/vp_ic_full_screen.png b/app/src/ansunxanwork/res/mipmap-xxhdpi/vp_ic_full_screen.png
new file mode 100644
index 0000000..6eb712a
Binary files /dev/null and b/app/src/ansunxanwork/res/mipmap-xxhdpi/vp_ic_full_screen.png differ
diff --git a/app/src/ansunxanwork/res/mipmap-xxhdpi/vp_ic_res_add.png b/app/src/ansunxanwork/res/mipmap-xxhdpi/vp_ic_res_add.png
new file mode 100644
index 0000000..b50e921
Binary files /dev/null and b/app/src/ansunxanwork/res/mipmap-xxhdpi/vp_ic_res_add.png differ
diff --git a/app/src/ansunxanwork/res/mipmap-xxhdpi/vp_ic_stop_play.png b/app/src/ansunxanwork/res/mipmap-xxhdpi/vp_ic_stop_play.png
new file mode 100644
index 0000000..390dc99
Binary files /dev/null and b/app/src/ansunxanwork/res/mipmap-xxhdpi/vp_ic_stop_play.png differ
diff --git a/app/src/ansunxanwork/res/mipmap-xxxhdpi/app_lan.png b/app/src/ansunxanwork/res/mipmap-xxxhdpi/app_lan.png
new file mode 100644
index 0000000..3cf1808
Binary files /dev/null and b/app/src/ansunxanwork/res/mipmap-xxxhdpi/app_lan.png differ
diff --git a/app/src/ansunxanwork/res/values-en/strings.xml b/app/src/ansunxanwork/res/values-en/strings.xml
new file mode 100644
index 0000000..a39a654
--- /dev/null
+++ b/app/src/ansunxanwork/res/values-en/strings.xml
@@ -0,0 +1,151 @@
+
+
+
+ AndroidOpenDemo
+ Settings
+
+
+ admin login
+ user login
+ please enter appid and appsecret!note: the developers can get appid and appsecret by browsing the website.
+ loading
+ SMS has been sent to the phone
+ SMS sent failed
+ please enter a valid phone number
+ user bind
+ The phone number has been bound to this application.please click device list
+ The phone number has not been bound to the application.please bind first!
+
+ device list
+ device operation
+ device add
+ wifi config......
+ Warning
+ Delete this device?
+ No shared device
+ No authorized device
+
+
+ "Notice"
+ Click OK to config referring the device guide
+
+
+ local video
+ cloud video
+
+
+ alarm message list
+ Warning
+ Delete this message?
+ Input key
+
+
+ play live video
+ play record video
+ flow
+ bit rate
+ M
+ K/S
+ 00:00:00
+ disconnected from the network,please check it
+
+ the device does not support talking
+ start talking
+ close talking
+ loading or talking,sound could not open
+ sound open
+ sound close
+ screenshot success
+ screenshot failed
+ record successed
+ record failed
+ start recording
+ ready to talk
+ open talking failed
+ play failed!please check network and try !
+ seek failed
+ data loading
+ play video failed
+ switch to SD
+ switch to HD
+ startTime-hour:
+ No permission to write sd card! recording and capturing could not be used
+ please input sms code
+ get sms code
+ sms code has been sent to phone
+ bind
+ please input your phone number
+ please a valid phone number
+ enter device list
+ alarm time
+ please input device code
+ wifi ssid:
+ wifi password
+ alarm plan
+ download
+ cloud storage
+ cloud upgrade
+ upgrade
+ cancel
+ please select day
+ query
+ year
+ month
+ day
+ Device Password
+ modify
+
+
+ OK
+ Cancel
+
+
+ sms code can not be empty
+
+ cloud update success
+ cloud update failed
+ modify alarm plan success
+ modify alarm plan failed
+ storage strategy update success
+ storage strategy update failed
+
+ query alarm message failed, errorcode:
+ delete alarm message failed
+ load failed
+
+ no device
+ query device list failed
+ delete success
+ this device has no ptz ability
+ device not exist
+ get initialize info failed
+
+ SN/Password can not be empty!
+ SN can not be empty!
+ already binded by yourself
+ already binded by others
+ config timeout
+ Input device key
+ Input safe code
+ Please Input Device Key
+ Please Input Device Init Key
+
+ location service has been forbidden, go to permisson manager to open
+
+ device/record not exist
+ no I frame
+
+ download failed/error key
+ download end
+ only play/download one by one
+ query record failed, errorcode:
+
+ errorcode
+ business errorcode
+ HTTP errorcode
+ inner errorcode
+ error msg
+
+ new password
+ old password
+
diff --git a/app/src/ansunxanwork/res/values/array.xml b/app/src/ansunxanwork/res/values/array.xml
new file mode 100644
index 0000000..7b19524
--- /dev/null
+++ b/app/src/ansunxanwork/res/values/array.xml
@@ -0,0 +1,10 @@
+
+
+ - 8
+ - 8
+ - 8
+ - 4
+ - 4
+ - 4
+
+
diff --git a/app/src/ansunxanwork/res/values/attrs.xml b/app/src/ansunxanwork/res/values/attrs.xml
new file mode 100644
index 0000000..1598846
--- /dev/null
+++ b/app/src/ansunxanwork/res/values/attrs.xml
@@ -0,0 +1,38 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/ansunxanwork/res/values/colors.xml b/app/src/ansunxanwork/res/values/colors.xml
new file mode 100644
index 0000000..a376d63
--- /dev/null
+++ b/app/src/ansunxanwork/res/values/colors.xml
@@ -0,0 +1,25 @@
+
+
+
+ #efeff4
+ #000000
+
+ #FFFFFF
+ #CFCFCF
+ #505166
+
+ #42CFBE
+ #57B1CC
+ #B888E5
+ #F695A8
+ #F9D461
+
+ #42CEE7//标准色,应用于顶部栏,底部栏图标的选中状态,按钮的可用状态
+ #E2E2E2//应用于按钮不可用状态的按钮颜色
+ #24C1DA//填写框文字颜色
+
+
+ #24C1DA
+ #24C1DA
+ #24C1DA
+
diff --git a/app/src/ansunxanwork/res/values/dimens.xml b/app/src/ansunxanwork/res/values/dimens.xml
new file mode 100644
index 0000000..baa0459
--- /dev/null
+++ b/app/src/ansunxanwork/res/values/dimens.xml
@@ -0,0 +1,12 @@
+
+
+
+ 0.5dp
+
+
+ 10sp
+ 12sp
+ 15sp
+ 20sp
+
+
diff --git a/app/src/ansunxanwork/res/values/ids.xml b/app/src/ansunxanwork/res/values/ids.xml
new file mode 100644
index 0000000..bef5ac3
--- /dev/null
+++ b/app/src/ansunxanwork/res/values/ids.xml
@@ -0,0 +1,8 @@
+
+
+
+
\ No newline at end of file
diff --git a/app/src/ansunxanwork/res/values/spinner_data.xml b/app/src/ansunxanwork/res/values/spinner_data.xml
new file mode 100644
index 0000000..84bcbd7
--- /dev/null
+++ b/app/src/ansunxanwork/res/values/spinner_data.xml
@@ -0,0 +1,91 @@
+
+
+
+ - 00
+ - 01
+ - 02
+ - 03
+ - 04
+ - 05
+ - 06
+ - 07
+ - 08
+ - 09
+ - 10
+ - 11
+ - 12
+ - 13
+ - 14
+ - 15
+ - 16
+ - 17
+ - 18
+ - 19
+ - 20
+ - 21
+ - 22
+ - 23
+
+
+ - 00
+ - 01
+ - 02
+ - 03
+ - 04
+ - 05
+ - 06
+ - 07
+ - 08
+ - 09
+ - 10
+ - 11
+ - 12
+ - 13
+ - 14
+ - 15
+ - 16
+ - 17
+ - 18
+ - 19
+ - 20
+ - 21
+ - 22
+ - 23
+ - 24
+ - 25
+ - 26
+ - 27
+ - 28
+ - 29
+ - 30
+ - 31
+ - 32
+ - 33
+ - 34
+ - 35
+ - 36
+ - 37
+ - 38
+ - 39
+ - 40
+ - 41
+ - 42
+ - 43
+ - 44
+ - 45
+ - 46
+ - 47
+ - 48
+ - 49
+ - 50
+ - 51
+ - 52
+ - 53
+ - 54
+ - 55
+ - 56
+ - 57
+ - 58
+ - 59
+
+
diff --git a/app/src/ansunxanwork/res/values/strings.xml b/app/src/ansunxanwork/res/values/strings.xml
new file mode 100644
index 0000000..f1238d4
--- /dev/null
+++ b/app/src/ansunxanwork/res/values/strings.xml
@@ -0,0 +1,12 @@
+
+ 智慧办公
+ 深圳永顺智信息科技有限公司 版权所有
+ 关于
+ Copyright © 2014-2022 ansunxan.All Rights Reserved
+ 凡是通过安顺祥官方商城购买的产品,我们将严格按照国家三包政策,对所售产品提供7天(含)退货,15天(含)因质量问题换新服务。注意事项:1)客服初审核通过,仅表示安顺祥受理您的退换货申请,但不代表同意您的退换货,最终以商品检测报告为准,以此来判断您是否符合退换货条件。2)若您的申请为“审核不通过”,具体原因将会显示在您的退换货申请详情页面,若有疑问,可与安顺祥客服联系。3)签收时,请务必要求投递员在场共同检验包裹,若发现物流损坏、缺件或发错货等情况,请当场拒收并要求快递员存证,同时请您拍照存证,并打电话服务提出换货申请。4)若已签收,需要提供物流公司开具的凭据,并在退换货申请受理之后提交附件。若未提供物流开具的证明,公司无法处理退款或换货。
+ 您好,安顺祥产品支持七天退货15天换货服务;在您收到商品后,如有任何原因需要进行退换货,打客户服务热线进行退货申请;请在包裹内留下纸条,写上您的订单号、联系方式及退货理由,以便我们及时确认完成退款,谢谢您的配合;请确保配件完整并且无人为破坏的情况(如开过发票的需要和发票一块寄回),非产品质量问题的退货,导致的退货,寄回的运费需您自行承担,因产品质量问题的退货,财务将给您报销寄回的快递费(最高22元)运费您先垫付,不支持到付件哦,我们收到货后会尽快为您办理,请耐心等待;祝您生活愉快!
+ 办公成员
+ 办公区域的壁纸
+ 创建办公区域
+ 办公成员共享使用办公设备及场景
+
diff --git a/app/src/ansunxanwork/res/values/styles.xml b/app/src/ansunxanwork/res/values/styles.xml
new file mode 100644
index 0000000..dfbdec1
--- /dev/null
+++ b/app/src/ansunxanwork/res/values/styles.xml
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
diff --git a/app/src/ansunxanwork/res/values/wheel__attrs.xml b/app/src/ansunxanwork/res/values/wheel__attrs.xml
new file mode 100644
index 0000000..db64ba7
--- /dev/null
+++ b/app/src/ansunxanwork/res/values/wheel__attrs.xml
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/intelligentvoice/java/com/intelligentvoice/z1/wxapi/WXEntryActivity.java b/app/src/intelligentvoice/java/com/intelligentvoice/z1/wxapi/WXEntryActivity.java
new file mode 100644
index 0000000..bf75361
--- /dev/null
+++ b/app/src/intelligentvoice/java/com/intelligentvoice/z1/wxapi/WXEntryActivity.java
@@ -0,0 +1,101 @@
+package com.intelligentvoice.z1.wxapi;
+
+import android.app.Activity;
+import android.content.Intent;
+import android.graphics.Bitmap;
+import android.os.Bundle;
+import android.util.Log;
+
+import com.tencent.mm.opensdk.modelbase.BaseReq;
+import com.tencent.mm.opensdk.modelbase.BaseResp;
+import com.tencent.mm.opensdk.modelmsg.SendAuth;
+import com.tencent.mm.opensdk.openapi.IWXAPI;
+import com.tencent.mm.opensdk.openapi.IWXAPIEventHandler;
+import com.tencent.mm.opensdk.openapi.WXAPIFactory;
+import com.yonsz.z1.R;
+import com.yonsz.z1.database.entity.entitya2.WxLoginEvent;
+
+import java.io.ByteArrayOutputStream;
+
+import de.greenrobot.event.EventBus;
+
+import static com.yonsz.z1.difference.DifferConstans.WX_APP_ID;
+
+
+public class WXEntryActivity extends Activity implements IWXAPIEventHandler {
+ private IWXAPI iwxapi;
+
+ public static byte[] bmpToByteArray(final Bitmap bmp, final boolean needRecycle) {
+ ByteArrayOutputStream output = new ByteArrayOutputStream();
+ bmp.compress(Bitmap.CompressFormat.PNG, 100, output);
+ if (needRecycle) {
+ bmp.recycle();
+ }
+ byte[] result = output.toByteArray();
+ try {
+ output.close();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ return result;
+ }
+
+ @Override
+
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_wxentry);
+ iwxapi = WXAPIFactory.createWXAPI(this, WX_APP_ID, false);
+ iwxapi.handleIntent(getIntent(), this);
+ iwxapi.registerApp(WX_APP_ID);
+ }
+
+
+ @Override
+ protected void onNewIntent(Intent intent) {
+ super.onNewIntent(intent);
+ setIntent(intent);
+ iwxapi.handleIntent(intent, this);
+ }
+
+ @Override
+ public void onReq(BaseReq baseReq) {
+ Log.i("BaseReq", "" + baseReq.openId + "---" + baseReq.transaction);
+ }
+
+ @Override
+ public void onResp(BaseResp resp) {
+ Log.i("BaseReq", "" + resp.openId + "---" + resp.transaction + "===" + resp.errCode + "==" + resp.errStr);
+ String result;
+ switch (resp.errCode) {
+ case BaseResp.ErrCode.ERR_OK:
+ result = getString(R.string.Share_success);
+ if (resp instanceof SendAuth.Resp) {
+ String code = ((SendAuth.Resp) resp).code;
+ Log.i("BaseReq", "LoginActivity onResp()" + code);
+ EventBus.getDefault().post(
+ new WxLoginEvent(code));
+ } else {
+
+ }
+ break;
+ case BaseResp.ErrCode.ERR_USER_CANCEL:
+ result = "取消分享";
+ break;
+ case BaseResp.ErrCode.ERR_AUTH_DENIED:
+ result = "分享被拒绝";
+ break;
+ default:
+ result = "发送返回";
+ break;
+ }
+ finish();
+ }
+
+ private String buildTransaction(final String type) {
+ return (type == null) ? String.valueOf(System.currentTimeMillis()) : type + System.currentTimeMillis();
+ }
+
+ enum SHARE_TYPE {Type_WXSceneSession, Type_WXSceneTimeline}
+
+}
diff --git a/app/src/intelligentvoice/java/com/yonsz/z1/difference/DifferConstans.java b/app/src/intelligentvoice/java/com/yonsz/z1/difference/DifferConstans.java
new file mode 100644
index 0000000..6ffbe51
--- /dev/null
+++ b/app/src/intelligentvoice/java/com/yonsz/z1/difference/DifferConstans.java
@@ -0,0 +1,20 @@
+package com.yonsz.z1.difference;
+
+/**
+ * Created by Administrator on 2018/6/21.
+ */
+
+public class DifferConstans {
+ //后台版本控制
+ public static final String VERSION_S = "v1";
+ public static final String APPID_S = "1202";
+ public static final String APPSECRET_S = "ysz_yyzs_2018";
+ public static final String APPID_S_VOICE = "120201";
+ public static final String WX_APP_ID = "wxbe236878e7d94ca4";
+ public static String versionUrl = "http://a.app.qq.com/o/simple.jsp?pkgname=com.intelligentvoice.z1";
+ public static String LECHENG_KEY = "ysz123456";
+ public static String LECHENG_APPID = "lcc58705630dd248d1";
+ public static String LECHENG_APPSECRET = "91ac51eb533b4253ae2b917470ad27";
+ public static final String SERVER_BACKUP4 = "https://openapi.lechange.cn:443/openapi/";//乐橙
+ public static final String TEPRINCIPLE_UPDATE = "teprinciple2.update";
+}
diff --git a/app/src/intelligentvoice/java/com/yonsz/z1/login/LoginActivity.java b/app/src/intelligentvoice/java/com/yonsz/z1/login/LoginActivity.java
new file mode 100644
index 0000000..527c336
--- /dev/null
+++ b/app/src/intelligentvoice/java/com/yonsz/z1/login/LoginActivity.java
@@ -0,0 +1,457 @@
+package com.yonsz.z1.login;
+
+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.Button;
+import android.widget.EditText;
+import android.widget.ImageView;
+import android.widget.RelativeLayout;
+import android.widget.TextView;
+import android.widget.Toast;
+
+import com.alibaba.fastjson.JSON;
+import com.tencent.mm.opensdk.modelbase.BaseReq;
+import com.tencent.mm.opensdk.modelbase.BaseResp;
+import com.tencent.mm.opensdk.modelmsg.SendAuth;
+import com.tencent.mm.opensdk.openapi.IWXAPI;
+import com.tencent.mm.opensdk.openapi.IWXAPIEventHandler;
+import com.tencent.mm.opensdk.openapi.WXAPIFactory;
+import com.yonsz.z1.R;
+import com.yonsz.z1.activity.BaseActivity;
+import com.yonsz.z1.database.entity.ResponeEntity;
+import com.yonsz.z1.database.entity.entitya2.WxLoginEntity;
+import com.yonsz.z1.database.entity.entitya2.WxLoginEvent;
+import com.yonsz.z1.listener.OnTitleItemClickListener;
+import com.yonsz.z1.login.forgetpw.ForgetPWActivity;
+import com.yonsz.z1.login.register.RegisterActivity;
+import com.yonsz.z1.login.register.WxRegisterActivity;
+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.utils.VerificationUtils;
+import com.yonsz.z1.version4.MainActivity4;
+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.clean_password;
+import static com.yonsz.z1.R.id.iv_clean_phone;
+import static com.yonsz.z1.difference.DifferConstans.WX_APP_ID;
+import static com.yonsz.z1.net.Constans.FAN_LEARN_WHAT;
+import static com.yonsz.z1.net.Constans.LOGIN_FAIL;
+import static com.yonsz.z1.net.Constans.LOGIN_SUCCESS;
+import static com.yonsz.z1.net.Constans.WX_LOGIN_FAIL;
+import static com.yonsz.z1.net.Constans.WX_LOGIN_REGISTER;
+import static com.yonsz.z1.net.Constans.WX_LOGIN_SUCCESS;
+
+/**
+ * Created by Administrator on 2017/5/16.
+ */
+
+public class LoginActivity extends BaseActivity implements IWXAPIEventHandler {
+ private TitleView mTitle;
+ private Button mLogin;
+ private TextView mRegister;
+ private TextView mForgetPw;
+ private EditText mUserName;
+ private EditText mPassWord;
+ private ImageView cleanPhoneIv;
+ private ImageView cleanPasswordIv;
+ private LoadingDialog mLoadingDialog;
+ private RelativeLayout rl_weixin_login;
+
+ private IWXAPI iwxapi;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_login);
+ initView();
+ initListener();
+
+ iwxapi = WXAPIFactory.createWXAPI(this, WX_APP_ID, true);
+ iwxapi.handleIntent(this.getIntent(), this);
+ iwxapi.registerApp(WX_APP_ID);
+ }
+
+ public void onEventMainThread(WxLoginEvent event) {
+ String msg = event.getMsg();
+ Log.e("nettyUtil", msg);
+ Message message = new Message();
+ message.what = FAN_LEARN_WHAT;
+ message.obj = msg;
+ mHandler.sendMessage(message);
+ }
+
+
+ private void initView() {
+ cleanPhoneIv = (ImageView) findViewById(iv_clean_phone);
+ cleanPasswordIv = (ImageView) findViewById(clean_password);
+ mUserName = (EditText) findViewById(R.id.edit_username);
+ mUserName.setText(SharedpreferencesUtil.get(Constans.USERPHONE, ""));
+ if (!TextUtils.isEmpty(mUserName.getText().toString())) {
+ cleanPhoneIv.setVisibility(View.VISIBLE);
+ }
+ mPassWord = (EditText) findViewById(R.id.edit_pw);
+ mLogin = (Button) findViewById(R.id.bt_sure);
+ mLogin.setBackgroundDrawable(getResources().getDrawable(R.drawable.btn_round_9cc6f6));
+ mRegister = (TextView) findViewById(R.id.tv_register);
+ mForgetPw = (TextView) findViewById(R.id.txt_forget_pw);
+ rl_weixin_login = (RelativeLayout) findViewById(R.id.rl_weixin_login);
+ mLoadingDialog = new LoadingDialog(this);
+ mTitle = (TitleView) findViewById(R.id.title_login);
+ mTitle.setHead(R.string.login);
+ mTitle.setHeadBackGone();
+ mTitle.setHeadFuntionTxt(" ");
+ mTitle.setTitleListener(new OnTitleItemClickListener() {
+ @Override
+ public void onBack() {
+
+ }
+
+ @Override
+ public void onFunction() {
+ }
+
+ @Override
+ public void onFunctionText() {
+ }
+ });
+ }
+
+ private void initListener() {
+ rl_weixin_login.setOnClickListener(this);
+ mLogin.setOnClickListener(this);
+ mRegister.setOnClickListener(this);
+ mForgetPw.setOnClickListener(this);
+ cleanPasswordIv.setOnClickListener(this);
+ cleanPhoneIv.setOnClickListener(this);
+ mUserName.addTextChangedListener(new TextWatcher() {
+ @Override
+ public void beforeTextChanged(CharSequence s, int start, int count, int after) {
+
+ }
+
+ @Override
+ public void onTextChanged(CharSequence s, int start, int before, int count) {
+ int i = s.length();
+ if (i == 0 || TextUtils.isEmpty(mPassWord.getText())) {
+ mLogin.setBackgroundDrawable(getResources().getDrawable(R.drawable.btn_round_9cc6f6));
+ mLogin.setEnabled(false);
+ } else {
+ mLogin.setBackgroundDrawable(getResources().getDrawable(R.drawable.btn_round_398dee));
+ mLogin.setEnabled(true);
+ }
+ }
+
+ @Override
+ public void afterTextChanged(Editable s) {
+ if (!TextUtils.isEmpty(s) && cleanPhoneIv.getVisibility() == View.GONE) {
+ cleanPhoneIv.setVisibility(View.VISIBLE);
+ } else if (TextUtils.isEmpty(s)) {
+ cleanPhoneIv.setVisibility(View.GONE);
+ }
+ }
+ });
+ mPassWord.addTextChangedListener(new TextWatcher() {
+ @Override
+ public void beforeTextChanged(CharSequence s, int start, int count, int after) {
+
+ }
+
+ @Override
+ public void onTextChanged(CharSequence s, int start, int before, int count) {
+ int i = s.length();
+ if (i == 0 || TextUtils.isEmpty(mUserName.getText())) {
+ mLogin.setBackgroundDrawable(getResources().getDrawable(R.drawable.btn_round_9cc6f6));
+ mLogin.setEnabled(false);
+ } else {
+ mLogin.setBackgroundDrawable(getResources().getDrawable(R.drawable.btn_round_398dee));
+ mLogin.setEnabled(true);
+ }
+ }
+
+ @Override
+ public void afterTextChanged(Editable s) {
+ if (!TextUtils.isEmpty(s) && cleanPasswordIv.getVisibility() == View.GONE) {
+ cleanPasswordIv.setVisibility(View.VISIBLE);
+ } else if (TextUtils.isEmpty(s)) {
+ cleanPasswordIv.setVisibility(View.GONE);
+ }
+ if (s.toString().isEmpty())
+ return;
+ if (!s.toString().matches("[A-Za-z0-9]+")) {
+ String temp = s.toString();
+ Toast.makeText(LoginActivity.this, R.string.Enter_a_number, Toast.LENGTH_SHORT).show();
+ s.delete(temp.length() - 1, temp.length());
+ mPassWord.setSelection(s.length());
+
+ }
+ }
+ });
+ }
+
+ @Override
+ public void onClick(View v) {
+ super.onClick(v);
+ switch (v.getId()) {
+ case R.id.bt_sure:
+ if (DensityUtil.isNetworkConnected(this)) {
+ login();
+ } else {
+ ToastUtil.show(this, R.string.no_network_connection);
+ }
+ break;
+ case R.id.tv_register:
+ startActivity(new Intent(LoginActivity.this, RegisterActivity.class));
+ break;
+ case R.id.txt_forget_pw:
+ Intent intent = new Intent(LoginActivity.this, ForgetPWActivity.class);
+ intent.putExtra("tag", "LoginActivity");
+ startActivity(intent);
+ break;
+ case R.id.iv_clean_phone:
+ mUserName.setText("");
+ break;
+ case R.id.clean_password:
+ mPassWord.setText("");
+ break;
+ case R.id.rl_weixin_login:
+ if (!iwxapi.isWXAppInstalled()) {
+ Toast.makeText(this, getString(R.string.not_installed_Wechat), Toast.LENGTH_SHORT).show();
+ return;
+ }
+ wxLogin();
+ break;
+ }
+ }
+
+ private void wxLogin() {
+ SendAuth.Req req1 = new SendAuth.Req();
+ req1.scope = "snsapi_userinfo";
+ req1.state = "wechat_sdk_demo_test";
+ iwxapi.sendReq(req1);
+ }
+
+ private void login() {
+ String name = mUserName.getText().toString();
+ SharedpreferencesUtil.save(Constans.USERPHONE, mUserName.getText().toString());
+ if (!VerificationUtils.isMobile(name.trim())) {
+ ToastUtil.show(this, R.string.phone_error);
+ return;
+ }
+ String password = mPassWord.getText().toString();
+ if (TextUtils.isEmpty(password.trim()) || password.length() < 6) {
+ ToastUtil.show(this, R.string.password_error);
+ return;
+ }
+ NetWorkUtil util = NetWorkUtil.instans();
+ HashMap map = new HashMap<>();
+ // mobileLogin=true&isValidatjeesiteLogin=false&username=admin&password=admin
+ map.put("mobileLogin", "true");
+ map.put("ismobile", "true");
+ map.put("isValidatjeesiteLogin", "false");
+ map.put("username", name);
+ map.put("password", password);
+ mLoadingDialog.show();
+ util.requestPostByAsyne(NetWorkUrl.LOGIN_URL, map, new NetWorkUtil.ReqCallBack() {
+ @Override
+ public void onSuccess(String respone) {
+ ResponeEntity entity = JSON.parseObject(respone, ResponeEntity.class);
+ Log.i("login111", "onSuccess: " + respone);
+ if (1 == entity.getFlag()) {
+ Message msg = mHandler.obtainMessage(LOGIN_SUCCESS);
+ msg.obj = entity;
+ mHandler.sendMessage(msg);
+ } else {
+ Message msg = mHandler.obtainMessage(LOGIN_FAIL);
+ msg.obj = entity.getMsg();
+ mHandler.sendMessage(msg);
+ }
+ }
+
+ @Override
+ public void onFail(String message) {
+ Message msg = mHandler.obtainMessage(LOGIN_FAIL);
+ msg.obj = message;
+ mHandler.sendMessage(msg);
+ }
+ });
+ }
+
+ @Override
+ public void callBackUiThread(Message msg) {
+ mLoadingDialog.dismiss();
+ switch (msg.what) {
+ case LOGIN_FAIL:
+ Log.i("login111", "LoginActivity callBackUiThread()" + msg.obj.toString());
+ ToastUtil.show(this, (String) msg.obj);
+ break;
+ case LOGIN_SUCCESS:
+ ResponeEntity entity = (ResponeEntity) msg.obj;
+ // ToastUtil.show(this, entity.getMsg());
+ Toast.makeText(LoginActivity.this, R.string.login_success, Toast.LENGTH_SHORT).show();
+ SharedpreferencesUtil.save(Constans.SEESSIONID, entity.getObj().getLogininfo().getSessionId());
+ SharedpreferencesUtil.save(Constans.USERID, entity.getObj().getUser().getId());
+ SharedpreferencesUtil.save(Constans.USERNAME, entity.getObj().getUser().getName());
+ SharedpreferencesUtil.save(Constans.PASSWORD, mPassWord.getText().toString());
+ boolean isSetting = TextUtils.isEmpty(SharedpreferencesUtil.
+ get(SharedpreferencesUtil.get(Constans.USERID, ""), ""));
+ startActivity(new Intent(this, MainActivity4.class));
+ finish();
+ /*if (isSetting) {
+ Intent intent = new Intent(this, SetGestureCodeActivity.class);
+ intent.putExtra("isset", true);
+ intent.putExtra("SEESSIONID", entity.getObj().getLogininfo().getSessionId());
+ startActivity(intent);
+
+ } else {
+ startActivity(new Intent(this, MainActivity.class));
+ }*/
+ break;
+ case WX_LOGIN_SUCCESS:
+ WxLoginEntity wxLoginEntity = (WxLoginEntity) msg.obj;
+ Toast.makeText(LoginActivity.this, R.string.login_success, Toast.LENGTH_SHORT).show();
+ SharedpreferencesUtil.save(Constans.USERPHONE, wxLoginEntity.getObj().getUserInfo().getLoginName());
+ SharedpreferencesUtil.save(Constans.SEESSIONID, wxLoginEntity.getObj().getSession());
+ SharedpreferencesUtil.save(Constans.USERID, wxLoginEntity.getObj().getUserInfo().getId());
+ SharedpreferencesUtil.save(Constans.USERNAME, wxLoginEntity.getObj().getUserInfo().getName());
+ startActivity(new Intent(this, MainActivity4.class));
+ finish();
+ break;
+ case WX_LOGIN_REGISTER:
+ //去注册
+ WxLoginEntity entity1 = (WxLoginEntity) msg.obj;
+ Intent intent = new Intent(LoginActivity.this, WxRegisterActivity.class);
+ intent.putExtra("wxId", entity1.getObj().getWxId());
+ intent.putExtra("headUrl", entity1.getObj().getHeadUrl());
+ intent.putExtra("userName", entity1.getObj().getUserName());
+ startActivity(intent);
+ break;
+
+ case FAN_LEARN_WHAT:
+ String code = (String) msg.obj;
+ quickLogin(code);
+ break;
+ }
+ }
+
+ /**
+ * 微信登录
+ *
+ * @param code
+ */
+ private void quickLogin(String code) {
+ NetWorkUtil util = NetWorkUtil.instans();
+ HashMap map = new HashMap<>();
+ map.put("code", code);
+ mLoadingDialog.show();
+ util.requestPostByAsyne(NetWorkUrl.WX_QUICK_LOGIN, map, new NetWorkUtil.ReqCallBack() {
+ @Override
+ public void onSuccess(String respone) {
+ Log.i("quickLogin", "onSuccess: " + respone);
+ WxLoginEntity entity = JSON.parseObject(respone, WxLoginEntity.class);
+ if (1012 == entity.getFlag()) {
+ Message msg = mHandler.obtainMessage(WX_LOGIN_SUCCESS);
+ msg.obj = entity;
+ mHandler.sendMessage(msg);
+ } else if (1011 == entity.getFlag()) {
+ Message msg = mHandler.obtainMessage(WX_LOGIN_REGISTER);
+ msg.obj = entity;
+ mHandler.sendMessage(msg);
+ } else if (1013 == entity.getFlag()) {
+ Message msg = mHandler.obtainMessage(WX_LOGIN_REGISTER);
+ msg.obj = entity;
+ mHandler.sendMessage(msg);
+ } else {
+ Message msg = mHandler.obtainMessage(WX_LOGIN_FAIL);
+ msg.obj = entity.getMsg();
+ mHandler.sendMessage(msg);
+ }
+ }
+
+ @Override
+ public void onFail(String message) {
+ Message msg = mHandler.obtainMessage(LOGIN_FAIL);
+ msg.obj = message;
+ mHandler.sendMessage(msg);
+ }
+ });
+ }
+
+ @Override
+ public void onReq(BaseReq baseReq) {
+
+ }
+
+ @Override
+ public void onResp(BaseResp resp) {
+ Log.i("BaseReq", "" + resp.openId + "---" + resp.transaction + "===" + resp.errCode + "==" + resp.errStr);
+ String code = ((SendAuth.Resp) resp).code;
+ Log.i("BaseReq", "LoginActivity onResp()" + code);
+ String result;
+ switch (resp.errCode) {
+ case BaseResp.ErrCode.ERR_OK:
+ result = getString(R.string.Share_success);
+ EventBus.getDefault().post(
+ new WxLoginEvent(code));
+ break;
+ case BaseResp.ErrCode.ERR_USER_CANCEL:
+ result = "取消分享";
+ break;
+ case BaseResp.ErrCode.ERR_AUTH_DENIED:
+ result = "分享被拒绝";
+ break;
+ default:
+ result = "发送返回";
+ break;
+ }
+ }
+
+ private void login(String s, String s1) {
+ NetWorkUtil util = NetWorkUtil.instans();
+ HashMap map = new HashMap<>();
+ // mobileLogin=true&isValidatjeesiteLogin=false&username=admin&password=admin
+ map.put("mobileLogin", "true");
+ map.put("ismobile", "true");
+ map.put("isValidatjeesiteLogin", "false");
+ map.put("username", s);
+ map.put("password", s1);
+ mLoadingDialog.show();
+ util.requestPostByAsyne(NetWorkUrl.LOGIN_URL, map, new NetWorkUtil.ReqCallBack() {
+ @Override
+ public void onSuccess(String respone) {
+ ResponeEntity entity = JSON.parseObject(respone, ResponeEntity.class);
+ Log.i("login111", "onSuccess: " + respone);
+ if (1 == entity.getFlag()) {
+ Message msg = mHandler.obtainMessage(LOGIN_SUCCESS);
+ msg.obj = entity;
+ mHandler.sendMessage(msg);
+ } else {
+ Message msg = mHandler.obtainMessage(LOGIN_FAIL);
+ msg.obj = entity.getMsg();
+ mHandler.sendMessage(msg);
+ }
+ }
+
+ @Override
+ public void onFail(String message) {
+ Message msg = mHandler.obtainMessage(LOGIN_FAIL);
+ msg.obj = message;
+ mHandler.sendMessage(msg);
+ }
+ });
+ }
+}
diff --git a/app/src/intelligentvoice/java/com/yonsz/z1/login/WelcomeActivity.java b/app/src/intelligentvoice/java/com/yonsz/z1/login/WelcomeActivity.java
new file mode 100644
index 0000000..5081bc5
--- /dev/null
+++ b/app/src/intelligentvoice/java/com/yonsz/z1/login/WelcomeActivity.java
@@ -0,0 +1,177 @@
+package com.yonsz.z1.login;
+
+import android.content.Intent;
+import android.os.Bundle;
+import android.os.Message;
+import android.text.TextUtils;
+import android.util.Log;
+
+import com.alibaba.fastjson.JSON;
+import com.yonsz.z1.R;
+import com.yonsz.z1.activity.BaseActivity;
+import com.yonsz.z1.database.entity.TokenEntity;
+import com.yonsz.z1.net.Constans;
+import com.yonsz.z1.net.NetWorkUrl;
+import com.yonsz.z1.net.NetWorkUtil;
+import com.yonsz.z1.utils.AppGenerUtil;
+import com.yonsz.z1.utils.DensityUtil;
+import com.yonsz.z1.utils.SharedpreferencesUtil;
+import com.yonsz.z1.version4.MainActivity4;
+
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+
+import static com.yonsz.z1.difference.DifferConstans.APPID_S;
+import static com.yonsz.z1.difference.DifferConstans.APPSECRET_S;
+import static com.yonsz.z1.net.Constans.CLOSE_THIS_ACTIVITY;
+import static com.yonsz.z1.net.Constans.GET_TOKEN_FAIL;
+import static com.yonsz.z1.net.Constans.GET_TOKEN_SUCCESS;
+
+/**
+ * Created by Administrator on 2017/5/17.
+ */
+
+public class WelcomeActivity extends BaseActivity {
+
+ private final static int FLAG_TO_LOGIN = 1001;
+ private final static int FLAG_TO_GUIDER = 1002;
+ private final static int FLAG_TO_GESTURE = 1003;
+ private final static int FLAG_TO_MAIN = 1004;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_welcome);
+ /*if (DensityUtil.isNetworkConnected(this)) {
+ getToken();
+ } else {
+ initNext();
+ }*/
+ }
+
+ @Override
+ public void onResume() {
+ super.onResume();
+ if (DensityUtil.isNetworkConnected(this) && DensityUtil.isNetConnected(this)) {
+ getToken();
+ } else {
+ initNext();
+ }
+ }
+
+ private void getToken() {
+ NetWorkUtil util = NetWorkUtil.instans();
+ HashMap map = new HashMap<>();
+ map.put("appId", APPID_S);
+ map.put("appSecret", APPSECRET_S);
+ util.requestPostByAsyn(NetWorkUrl.GET_TOKEN, map, new NetWorkUtil.ReqCallBack() {
+ @Override
+ public void onSuccess(String respone) {
+ Log.i("getToken", "onSuccess: " + respone);
+ TokenEntity entity = JSON.parseObject(respone, TokenEntity.class);
+ if (1 == entity.getFlag()) {
+ Message msg = mHandler.obtainMessage(GET_TOKEN_SUCCESS);
+ msg.obj = entity;
+ mHandler.sendMessage(msg);
+ } else {
+ Message msg = mHandler.obtainMessage(GET_TOKEN_FAIL);
+ msg.obj = entity.getMsg();
+ mHandler.sendMessage(msg);
+ }
+ }
+
+ @Override
+ public void onFail(String message) {
+ Log.i("getToken", "onSuccess: " + message);
+ Message msg = mHandler.obtainMessage(GET_TOKEN_FAIL);
+ msg.obj = message;
+ mHandler.sendMessage(msg);
+ }
+ });
+ }
+
+ private void initNext() {
+ /**
+ * 如果USERID不是空,进入手势页面,如果已经过了引导页,如果SEESSIONID不是空,进入主页面,如果
+ * 是空重新登录,都不是就进入引导页
+ */
+ /*if (!TextUtils.isEmpty(SharedpreferencesUtil.get(Constans.SEESSIONID, ""))) {
+ mHandler.sendEmptyMessageDelayed(FLAG_TO_MAIN, 1000);
+ } else {
+ mHandler.sendEmptyMessageDelayed(FLAG_TO_LOGIN, 1000);
+ }
+ boolean isSetting = TextUtils.isEmpty(SharedpreferencesUtil.
+ get(SharedpreferencesUtil.get(Constans.USERID, ""), ""));*/
+ if (SharedpreferencesUtil.get(Constans.ISOVER)) {
+ if (!TextUtils.isEmpty(SharedpreferencesUtil.get(Constans.SEESSIONID, ""))) {
+ mHandler.sendEmptyMessageDelayed(FLAG_TO_MAIN, 1000);
+ } else {
+ mHandler.sendEmptyMessageDelayed(FLAG_TO_LOGIN, 1000);
+ }
+ } else {
+ mHandler.sendEmptyMessageDelayed(FLAG_TO_GUIDER, 1000);
+ }
+ }
+
+ @Override
+ public void callBackUiThread(Message msg) {
+ switch (msg.what) {
+ case FLAG_TO_LOGIN:
+ startActivity(new Intent(this, LoginActivity.class));
+ finish();
+ break;
+ case FLAG_TO_GUIDER:
+ startActivity(new Intent(this, GuiderActivity.class));
+ finish();
+ break;
+ /*case FLAG_TO_GESTURE:
+ startActivity(new Intent(this,CreateGestureActivity.class));
+ finish();
+ break;*/
+ case FLAG_TO_MAIN:
+ startActivity(new Intent(this, MainActivity4.class));
+ finish();
+ break;
+ case GET_TOKEN_SUCCESS:
+ TokenEntity entity = (TokenEntity) msg.obj;
+ SharedpreferencesUtil.save(Constans.TOKENID, entity.getObj().getToken().toString().trim());
+ String androidVersions = entity.getObj().getAndroidVersions().toString();
+ if (null != androidVersions) {
+ String packageVersion = AppGenerUtil.getPackageVersion(this);
+ List result = Arrays.asList(androidVersions.split(","));
+ initNext();
+ /*if (result.contains(packageVersion)) {
+ initNext();
+ } else {
+ // initNext();
+ UpdateAppUtils.from(this)
+ .apkPath(versionUrl)
+ .downloadBy(DOWNLOAD_BY_BROWSER)
+ .isForce(true)
+ .update(true);
+ }*/
+ } else {
+ initNext();
+ }
+ /*if (null != SharedpreferencesUtil.get(Constans.TOKENID, "")) {
+ if (entity.getObj().toString().trim().equals(SharedpreferencesUtil.get(Constans.TOKENID, ""))) {
+ initNext();
+ } else {
+ ToastUtil.show(this, "token已过期");
+ mHandler.sendEmptyMessageDelayed(CLOSE_THIS_ACTIVITY, 1000);
+ }
+ } else {
+ SharedpreferencesUtil.save(Constans.TOKENID, entity.getObj().toString().trim());
+ initNext();
+ }*/
+ break;
+ case CLOSE_THIS_ACTIVITY:
+ finish();
+ break;
+ case GET_TOKEN_FAIL:
+ initNext();
+ break;
+ }
+ }
+}
diff --git a/app/src/intelligentvoice/java/com/yonsz/z1/login/register/CopyRightActivity.java b/app/src/intelligentvoice/java/com/yonsz/z1/login/register/CopyRightActivity.java
new file mode 100644
index 0000000..7c7381c
--- /dev/null
+++ b/app/src/intelligentvoice/java/com/yonsz/z1/login/register/CopyRightActivity.java
@@ -0,0 +1,45 @@
+package com.yonsz.z1.login.register;
+
+import android.os.Bundle;
+import android.os.Message;
+
+import com.yonsz.z1.R;
+import com.yonsz.z1.activity.BaseActivity;
+import com.yonsz.z1.listener.OnTitleItemClickListener;
+import com.yonsz.z1.view.TitleView;
+
+/**
+ * Created by Administrator on 2017/6/15.
+ */
+
+public class CopyRightActivity extends BaseActivity{
+ private TitleView mTitleView;
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_copyright);
+ mTitleView = (TitleView)findViewById(R.id.title_text);
+ mTitleView.setHead("用户协议");
+ mTitleView.setTitleListener(new OnTitleItemClickListener() {
+ @Override
+ public void onBack() {
+ finish();
+ }
+
+ @Override
+ public void onFunction() {
+
+ }
+
+ @Override
+ public void onFunctionText() {
+
+ }
+ });
+ }
+
+ @Override
+ public void callBackUiThread(Message msg) {
+
+ }
+}
diff --git a/app/src/intelligentvoice/java/com/yonsz/z1/mine/aboutversion/AboutVersionActivity.java b/app/src/intelligentvoice/java/com/yonsz/z1/mine/aboutversion/AboutVersionActivity.java
new file mode 100644
index 0000000..bfc0780
--- /dev/null
+++ b/app/src/intelligentvoice/java/com/yonsz/z1/mine/aboutversion/AboutVersionActivity.java
@@ -0,0 +1,229 @@
+package com.yonsz.z1.mine.aboutversion;
+
+import android.content.Intent;
+import android.graphics.Bitmap;
+import android.graphics.BitmapFactory;
+import android.os.Bundle;
+import android.os.Message;
+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 android.widget.Toast;
+
+import com.tencent.mm.opensdk.modelbase.BaseReq;
+import com.tencent.mm.opensdk.modelbase.BaseResp;
+import com.tencent.mm.opensdk.modelmsg.SendMessageToWX;
+import com.tencent.mm.opensdk.modelmsg.WXImageObject;
+import com.tencent.mm.opensdk.modelmsg.WXMediaMessage;
+import com.tencent.mm.opensdk.openapi.IWXAPI;
+import com.tencent.mm.opensdk.openapi.IWXAPIEventHandler;
+import com.tencent.mm.opensdk.openapi.WXAPIFactory;
+import com.yonsz.z1.R;
+import com.yonsz.z1.activity.BaseActivity;
+import com.yonsz.z1.listener.NoDoubleClickListener;
+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.mine.aboutversion.util.ScoreUtils;
+import com.yonsz.z1.mine.aboutversion.util.UpdateAppUtils;
+import com.yonsz.z1.utils.AppGenerUtil;
+import com.yonsz.z1.view.TitleView;
+
+import java.util.ArrayList;
+
+import static com.tencent.mm.opensdk.modelmsg.SendMessageToWX.Req.WXSceneSession;
+import static com.tencent.mm.opensdk.modelmsg.SendMessageToWX.Req.WXSceneTimeline;
+import static com.yonsz.z1.difference.DifferConstans.WX_APP_ID;
+import static com.yonsz.z1.difference.DifferConstans.versionUrl;
+import static com.yonsz.z1.fragment.person.PersonFragment.bmpToByteArray;
+import static com.yonsz.z1.mine.aboutversion.util.UpdateAppUtils.DOWNLOAD_BY_BROWSER;
+import static com.yonsz.z1.version4.MainActivity4.versionId;
+
+/**
+ * Created by Administrator on 2017/5/26.
+ */
+public class AboutVersionActivity extends BaseActivity implements IWXAPIEventHandler {
+ private TextView tv_version;
+ private TextView tv_public_goto;
+ private ImageView iv_code;
+ private IWXAPI iwxapi;
+ private RelativeLayout scoreRl, versionDecalreRl, versionUpdateRl;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_about_version);
+ iwxapi = WXAPIFactory.createWXAPI(this, WX_APP_ID, false);
+ iwxapi.handleIntent(getIntent(), this);
+ iwxapi.registerApp(WX_APP_ID);
+
+ TitleView titleView = (TitleView) findViewById(R.id.title_about_version);
+ titleView.setHead(R.string.about_version);
+ titleView.setTitleListener(new OnTitleItemClickListener() {
+ @Override
+ public void onBack() {
+ finish();
+ }
+
+ @Override
+ public void onFunction() {
+
+ }
+
+ @Override
+ public void onFunctionText() {
+
+ }
+ });
+ scoreRl = (RelativeLayout) findViewById(R.id.rl_to_score);
+ versionDecalreRl = (RelativeLayout) findViewById(R.id.rl_version_declare);
+ versionUpdateRl = (RelativeLayout) findViewById(R.id.rl_version_update);
+ iv_code = (ImageView) findViewById(R.id.iv_code);
+ tv_public_goto = (TextView) findViewById(R.id.tv_public_goto);
+ tv_version = (TextView) findViewById(R.id.tv_version);
+ tv_version.setText("V" + AppGenerUtil.getPackageVersion(this));
+
+ checkUpdate(1);
+
+
+ iv_code.setOnClickListener(new NoDoubleClickListener() {
+ @Override
+ protected void onNoDoubleClick(View v) {
+ showDioalog();
+ }
+ });
+ tv_public_goto.setOnClickListener(new NoDoubleClickListener() {
+ @Override
+ public void onNoDoubleClick(View v) {
+ super.onClick(v);
+ showDioalog();
+ }
+ });
+ scoreRl.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ ArrayList strings = ScoreUtils.SelectedInstalledAPPs(getApplicationContext(), ScoreUtils.InstalledAPPs(getApplicationContext()));
+ ScoreUtils.launchAppDetail(AboutVersionActivity.this, "com.yonsz.z1", strings.get(0));
+ }
+ });
+ versionDecalreRl.setOnClickListener(new NoDoubleClickListener() {
+ @Override
+ protected void onNoDoubleClick(View v) {
+ Intent intent = new Intent(AboutVersionActivity.this, VersionDecalreActivity.class);
+ intent.putExtra("activity","AboutVersionActivity");
+ startActivity(intent);
+ }
+ });
+ versionUpdateRl.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ checkUpdate(2);
+ }
+ });
+ }
+
+ private void checkUpdate(int tag) {
+ UpdateAppUtils.from(this)
+ .checkBy(UpdateAppUtils.CHECK_BY_VERSION_NAME)
+ .serverVersionName(versionId)
+ .serverVersionCode(5)
+ .apkPath(versionUrl)
+ .downloadBy(DOWNLOAD_BY_BROWSER)
+ .isForce(false)
+ .update(tag);
+ }
+
+ private void showDioalog() {
+ if (!iwxapi.isWXAppInstalled()) {
+ Toast.makeText(this, getString(R.string.not_installed_Wechat), Toast.LENGTH_SHORT).show();
+ return;
+ }
+ //初始化一个WXImageObject对象
+ Bitmap thumb = BitmapFactory.decodeResource(getResources(), R.drawable.pic_public_code);
+ WXImageObject imageObject = new WXImageObject(thumb);
+ WXMediaMessage msg = new WXMediaMessage(); //这个对象是用来包裹发送信息的对象
+ msg.mediaObject = imageObject;
+ //设置缩略图
+ Bitmap thumbBitmap = Bitmap.createScaledBitmap(thumb, 60, 60, true);
+ msg.thumbData = bmpToByteArray(thumbBitmap, true);
+ final SendMessageToWX.Req req = new SendMessageToWX.Req(); //创建一个请求对象
+ req.message = msg; //把msg放入请求对象中
+ req.transaction = buildTransaction("Req");
+
+
+ /*WXWebpageObject webpageObject = new WXWebpageObject();
+ webpageObject.webpageUrl = "http://a.app.qq.com/o/simple.jsp?pkgname=com.yonsz.z1";
+ WXMediaMessage msg = new WXMediaMessage(webpageObject);
+ msg.title = "Unikong";
+ msg.description = "欢迎下载『语音遥控器APP』";
+ Bitmap thumb = BitmapFactory.decodeResource(getResources(), R.mipmap.app_lan);
+ msg.thumbData = bmpToByteArray(thumb, true);
+ final SendMessageToWX.Req req = new SendMessageToWX.Req();
+ req.transaction = buildTransaction("Req");
+ req.message = msg;*/
+ //分享到微信好友或者朋友圈
+ // startActivity(new Intent(getActivity(), WXEntryActivity.class));
+ DeviceBottomDialog dialog2 = new DeviceBottomDialog(this, new Callback() {
+ @Override
+ public void callback(int position1) {
+ switch (position1) {
+ case 0:
+ //取消
+ break;
+ case 1:
+ //微信朋友圈
+ req.scene = WXSceneTimeline;
+ iwxapi.sendReq(req);
+ break;
+ case 2:
+ //重新命名
+ break;
+ case 3:
+ //微信好友
+ req.scene = WXSceneSession;
+ iwxapi.sendReq(req);
+ break;
+ case 4:
+ break;
+ }
+ }
+ });
+ dialog2.setContent();
+ dialog2.setTop(getString(R.string.WeChat_friends));
+ dialog2.setBottom(getString(R.string.WeChat_friends_circle));
+ 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();
+ }
+
+ private String buildTransaction(final String type) {
+ return (type == null) ? String.valueOf(System.currentTimeMillis()) : type + System.currentTimeMillis();
+ }
+
+
+ @Override
+ public void callBackUiThread(Message msg) {
+
+ }
+
+ @Override
+ public void onReq(BaseReq baseReq) {
+
+ }
+
+ @Override
+ public void onResp(BaseResp baseResp) {
+
+ }
+}
\ No newline at end of file
diff --git a/app/src/intelligentvoice/res/anim/slide_left_in.xml b/app/src/intelligentvoice/res/anim/slide_left_in.xml
new file mode 100644
index 0000000..efac524
--- /dev/null
+++ b/app/src/intelligentvoice/res/anim/slide_left_in.xml
@@ -0,0 +1,5 @@
+
+
+
+
diff --git a/app/src/intelligentvoice/res/anim/slide_left_out.xml b/app/src/intelligentvoice/res/anim/slide_left_out.xml
new file mode 100644
index 0000000..2b1e672
--- /dev/null
+++ b/app/src/intelligentvoice/res/anim/slide_left_out.xml
@@ -0,0 +1,5 @@
+
+
+
+
diff --git a/app/src/intelligentvoice/res/anim/slide_right_in.xml b/app/src/intelligentvoice/res/anim/slide_right_in.xml
new file mode 100644
index 0000000..2fc61e8
--- /dev/null
+++ b/app/src/intelligentvoice/res/anim/slide_right_in.xml
@@ -0,0 +1,5 @@
+
+
+
+
diff --git a/app/src/intelligentvoice/res/anim/slide_right_out.xml b/app/src/intelligentvoice/res/anim/slide_right_out.xml
new file mode 100644
index 0000000..9934aa3
--- /dev/null
+++ b/app/src/intelligentvoice/res/anim/slide_right_out.xml
@@ -0,0 +1,5 @@
+
+
+
+
diff --git a/app/src/intelligentvoice/res/drawable-hdpi/Thumbs.db b/app/src/intelligentvoice/res/drawable-hdpi/Thumbs.db
new file mode 100644
index 0000000..9952f7a
Binary files /dev/null and b/app/src/intelligentvoice/res/drawable-hdpi/Thumbs.db differ
diff --git a/app/src/intelligentvoice/res/drawable-hdpi/live_btn_hd.png b/app/src/intelligentvoice/res/drawable-hdpi/live_btn_hd.png
new file mode 100644
index 0000000..86b013c
Binary files /dev/null and b/app/src/intelligentvoice/res/drawable-hdpi/live_btn_hd.png differ
diff --git a/app/src/intelligentvoice/res/drawable-hdpi/loading_icon.png b/app/src/intelligentvoice/res/drawable-hdpi/loading_icon.png
new file mode 100644
index 0000000..db7f608
Binary files /dev/null and b/app/src/intelligentvoice/res/drawable-hdpi/loading_icon.png differ
diff --git a/app/src/intelligentvoice/res/drawable-hdpi/pic_public_code.png b/app/src/intelligentvoice/res/drawable-hdpi/pic_public_code.png
new file mode 100644
index 0000000..a8f88c8
Binary files /dev/null and b/app/src/intelligentvoice/res/drawable-hdpi/pic_public_code.png differ
diff --git a/app/src/intelligentvoice/res/drawable-hdpi/splash_bg.png b/app/src/intelligentvoice/res/drawable-hdpi/splash_bg.png
new file mode 100644
index 0000000..dc375a8
Binary files /dev/null and b/app/src/intelligentvoice/res/drawable-hdpi/splash_bg.png differ
diff --git a/app/src/intelligentvoice/res/drawable-xhdpi/loading_icon.png b/app/src/intelligentvoice/res/drawable-xhdpi/loading_icon.png
new file mode 100644
index 0000000..83289be
Binary files /dev/null and b/app/src/intelligentvoice/res/drawable-xhdpi/loading_icon.png differ
diff --git a/app/src/intelligentvoice/res/drawable-xhdpi/pic_public_code.png b/app/src/intelligentvoice/res/drawable-xhdpi/pic_public_code.png
new file mode 100644
index 0000000..a2d6cd6
Binary files /dev/null and b/app/src/intelligentvoice/res/drawable-xhdpi/pic_public_code.png differ
diff --git a/app/src/intelligentvoice/res/drawable-xxhdpi/loading_icon.png b/app/src/intelligentvoice/res/drawable-xxhdpi/loading_icon.png
new file mode 100644
index 0000000..3e7e3ac
Binary files /dev/null and b/app/src/intelligentvoice/res/drawable-xxhdpi/loading_icon.png differ
diff --git a/app/src/intelligentvoice/res/drawable-xxhdpi/pic_guidepage1.png b/app/src/intelligentvoice/res/drawable-xxhdpi/pic_guidepage1.png
new file mode 100644
index 0000000..8283746
Binary files /dev/null and b/app/src/intelligentvoice/res/drawable-xxhdpi/pic_guidepage1.png differ
diff --git a/app/src/intelligentvoice/res/drawable-xxhdpi/pic_guidepage2.png b/app/src/intelligentvoice/res/drawable-xxhdpi/pic_guidepage2.png
new file mode 100644
index 0000000..7936644
Binary files /dev/null and b/app/src/intelligentvoice/res/drawable-xxhdpi/pic_guidepage2.png differ
diff --git a/app/src/intelligentvoice/res/drawable-xxhdpi/pic_guidepage3.png b/app/src/intelligentvoice/res/drawable-xxhdpi/pic_guidepage3.png
new file mode 100644
index 0000000..c18ab6d
Binary files /dev/null and b/app/src/intelligentvoice/res/drawable-xxhdpi/pic_guidepage3.png differ
diff --git a/app/src/intelligentvoice/res/drawable-xxhdpi/pic_public_code.png b/app/src/intelligentvoice/res/drawable-xxhdpi/pic_public_code.png
new file mode 100644
index 0000000..43408c9
Binary files /dev/null and b/app/src/intelligentvoice/res/drawable-xxhdpi/pic_public_code.png differ
diff --git a/app/src/intelligentvoice/res/drawable/alarm_message_underline.xml b/app/src/intelligentvoice/res/drawable/alarm_message_underline.xml
new file mode 100644
index 0000000..a43ef0f
--- /dev/null
+++ b/app/src/intelligentvoice/res/drawable/alarm_message_underline.xml
@@ -0,0 +1,16 @@
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+
+
+
diff --git a/app/src/intelligentvoice/res/drawable/bg_wheel.xml b/app/src/intelligentvoice/res/drawable/bg_wheel.xml
new file mode 100644
index 0000000..2e8ad22
--- /dev/null
+++ b/app/src/intelligentvoice/res/drawable/bg_wheel.xml
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/intelligentvoice/res/drawable/btn_moveplan_switch.xml b/app/src/intelligentvoice/res/drawable/btn_moveplan_switch.xml
new file mode 100644
index 0000000..6500b79
--- /dev/null
+++ b/app/src/intelligentvoice/res/drawable/btn_moveplan_switch.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
diff --git a/app/src/intelligentvoice/res/drawable/icon_cloud_control.xml b/app/src/intelligentvoice/res/drawable/icon_cloud_control.xml
new file mode 100644
index 0000000..54fcd7c
--- /dev/null
+++ b/app/src/intelligentvoice/res/drawable/icon_cloud_control.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/intelligentvoice/res/drawable/select_lockscreen.xml b/app/src/intelligentvoice/res/drawable/select_lockscreen.xml
new file mode 100644
index 0000000..5cc57b7
--- /dev/null
+++ b/app/src/intelligentvoice/res/drawable/select_lockscreen.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/intelligentvoice/res/layout/activity_about_version.xml b/app/src/intelligentvoice/res/layout/activity_about_version.xml
new file mode 100644
index 0000000..7e5e421
--- /dev/null
+++ b/app/src/intelligentvoice/res/layout/activity_about_version.xml
@@ -0,0 +1,227 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/intelligentvoice/res/layout/activity_admin_login.xml b/app/src/intelligentvoice/res/layout/activity_admin_login.xml
new file mode 100644
index 0000000..c8718c6
--- /dev/null
+++ b/app/src/intelligentvoice/res/layout/activity_admin_login.xml
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/intelligentvoice/res/layout/activity_alarm_message.xml b/app/src/intelligentvoice/res/layout/activity_alarm_message.xml
new file mode 100644
index 0000000..ac81b72
--- /dev/null
+++ b/app/src/intelligentvoice/res/layout/activity_alarm_message.xml
@@ -0,0 +1,65 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/intelligentvoice/res/layout/activity_alarm_message_item.xml b/app/src/intelligentvoice/res/layout/activity_alarm_message_item.xml
new file mode 100644
index 0000000..5cc2c27
--- /dev/null
+++ b/app/src/intelligentvoice/res/layout/activity_alarm_message_item.xml
@@ -0,0 +1,56 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/intelligentvoice/res/layout/activity_asx_add_device_list.xml b/app/src/intelligentvoice/res/layout/activity_asx_add_device_list.xml
new file mode 100644
index 0000000..80a71a8
--- /dev/null
+++ b/app/src/intelligentvoice/res/layout/activity_asx_add_device_list.xml
@@ -0,0 +1,90 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/intelligentvoice/res/layout/activity_camera_name.xml b/app/src/intelligentvoice/res/layout/activity_camera_name.xml
new file mode 100644
index 0000000..a2a4b16
--- /dev/null
+++ b/app/src/intelligentvoice/res/layout/activity_camera_name.xml
@@ -0,0 +1,144 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/intelligentvoice/res/layout/activity_copyright.xml b/app/src/intelligentvoice/res/layout/activity_copyright.xml
new file mode 100644
index 0000000..52b12fd
--- /dev/null
+++ b/app/src/intelligentvoice/res/layout/activity_copyright.xml
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/intelligentvoice/res/layout/activity_device_add.xml b/app/src/intelligentvoice/res/layout/activity_device_add.xml
new file mode 100644
index 0000000..4cf7e4d
--- /dev/null
+++ b/app/src/intelligentvoice/res/layout/activity_device_add.xml
@@ -0,0 +1,47 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/intelligentvoice/res/layout/activity_device_list.xml b/app/src/intelligentvoice/res/layout/activity_device_list.xml
new file mode 100644
index 0000000..78ebd17
--- /dev/null
+++ b/app/src/intelligentvoice/res/layout/activity_device_list.xml
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/intelligentvoice/res/layout/activity_device_list_item.xml b/app/src/intelligentvoice/res/layout/activity_device_list_item.xml
new file mode 100644
index 0000000..ac9e0e1
--- /dev/null
+++ b/app/src/intelligentvoice/res/layout/activity_device_list_item.xml
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/intelligentvoice/res/layout/activity_device_set.xml b/app/src/intelligentvoice/res/layout/activity_device_set.xml
new file mode 100644
index 0000000..cacbd82
--- /dev/null
+++ b/app/src/intelligentvoice/res/layout/activity_device_set.xml
@@ -0,0 +1,163 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/intelligentvoice/res/layout/activity_lecheng_login.xml b/app/src/intelligentvoice/res/layout/activity_lecheng_login.xml
new file mode 100644
index 0000000..d95a000
--- /dev/null
+++ b/app/src/intelligentvoice/res/layout/activity_lecheng_login.xml
@@ -0,0 +1,204 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/intelligentvoice/res/layout/activity_local_video_item.xml b/app/src/intelligentvoice/res/layout/activity_local_video_item.xml
new file mode 100644
index 0000000..2d85411
--- /dev/null
+++ b/app/src/intelligentvoice/res/layout/activity_local_video_item.xml
@@ -0,0 +1,66 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/intelligentvoice/res/layout/activity_login.xml b/app/src/intelligentvoice/res/layout/activity_login.xml
new file mode 100644
index 0000000..f711707
--- /dev/null
+++ b/app/src/intelligentvoice/res/layout/activity_login.xml
@@ -0,0 +1,193 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/intelligentvoice/res/layout/activity_media_video.xml b/app/src/intelligentvoice/res/layout/activity_media_video.xml
new file mode 100644
index 0000000..c376f18
--- /dev/null
+++ b/app/src/intelligentvoice/res/layout/activity_media_video.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/intelligentvoice/res/layout/activity_modify_camera_name.xml b/app/src/intelligentvoice/res/layout/activity_modify_camera_name.xml
new file mode 100644
index 0000000..a754d55
--- /dev/null
+++ b/app/src/intelligentvoice/res/layout/activity_modify_camera_name.xml
@@ -0,0 +1,390 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/intelligentvoice/res/layout/activity_record_list.xml b/app/src/intelligentvoice/res/layout/activity_record_list.xml
new file mode 100644
index 0000000..7dd17e1
--- /dev/null
+++ b/app/src/intelligentvoice/res/layout/activity_record_list.xml
@@ -0,0 +1,196 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/intelligentvoice/res/layout/activity_record_list_item.xml b/app/src/intelligentvoice/res/layout/activity_record_list_item.xml
new file mode 100644
index 0000000..08ab23e
--- /dev/null
+++ b/app/src/intelligentvoice/res/layout/activity_record_list_item.xml
@@ -0,0 +1,60 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/intelligentvoice/res/layout/activity_recover_sdcard.xml b/app/src/intelligentvoice/res/layout/activity_recover_sdcard.xml
new file mode 100644
index 0000000..8168c72
--- /dev/null
+++ b/app/src/intelligentvoice/res/layout/activity_recover_sdcard.xml
@@ -0,0 +1,45 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/intelligentvoice/res/layout/activity_splash.xml b/app/src/intelligentvoice/res/layout/activity_splash.xml
new file mode 100644
index 0000000..b854c9a
--- /dev/null
+++ b/app/src/intelligentvoice/res/layout/activity_splash.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/intelligentvoice/res/layout/activity_time_out.xml b/app/src/intelligentvoice/res/layout/activity_time_out.xml
new file mode 100644
index 0000000..0be4def
--- /dev/null
+++ b/app/src/intelligentvoice/res/layout/activity_time_out.xml
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/intelligentvoice/res/layout/activity_user_bind.xml b/app/src/intelligentvoice/res/layout/activity_user_bind.xml
new file mode 100644
index 0000000..b10013c
--- /dev/null
+++ b/app/src/intelligentvoice/res/layout/activity_user_bind.xml
@@ -0,0 +1,68 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/intelligentvoice/res/layout/activity_user_login.xml b/app/src/intelligentvoice/res/layout/activity_user_login.xml
new file mode 100644
index 0000000..ce9fddc
--- /dev/null
+++ b/app/src/intelligentvoice/res/layout/activity_user_login.xml
@@ -0,0 +1,84 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/intelligentvoice/res/layout/activity_video_container.xml b/app/src/intelligentvoice/res/layout/activity_video_container.xml
new file mode 100644
index 0000000..e3868bf
--- /dev/null
+++ b/app/src/intelligentvoice/res/layout/activity_video_container.xml
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/intelligentvoice/res/layout/activity_welcome.xml b/app/src/intelligentvoice/res/layout/activity_welcome.xml
new file mode 100644
index 0000000..f2f4520
--- /dev/null
+++ b/app/src/intelligentvoice/res/layout/activity_welcome.xml
@@ -0,0 +1,53 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/intelligentvoice/res/layout/city_group.xml b/app/src/intelligentvoice/res/layout/city_group.xml
new file mode 100644
index 0000000..0161946
--- /dev/null
+++ b/app/src/intelligentvoice/res/layout/city_group.xml
@@ -0,0 +1,39 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/intelligentvoice/res/layout/dialog_big_photo.xml b/app/src/intelligentvoice/res/layout/dialog_big_photo.xml
new file mode 100644
index 0000000..f64f666
--- /dev/null
+++ b/app/src/intelligentvoice/res/layout/dialog_big_photo.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
diff --git a/app/src/intelligentvoice/res/layout/dialog_modify_device_password.xml b/app/src/intelligentvoice/res/layout/dialog_modify_device_password.xml
new file mode 100644
index 0000000..eac4c5e
--- /dev/null
+++ b/app/src/intelligentvoice/res/layout/dialog_modify_device_password.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+
diff --git a/app/src/intelligentvoice/res/layout/fragment_media_live.xml b/app/src/intelligentvoice/res/layout/fragment_media_live.xml
new file mode 100644
index 0000000..e240148
--- /dev/null
+++ b/app/src/intelligentvoice/res/layout/fragment_media_live.xml
@@ -0,0 +1,426 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/intelligentvoice/res/layout/fragment_media_record.xml b/app/src/intelligentvoice/res/layout/fragment_media_record.xml
new file mode 100644
index 0000000..22c0d41
--- /dev/null
+++ b/app/src/intelligentvoice/res/layout/fragment_media_record.xml
@@ -0,0 +1,298 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/intelligentvoice/res/layout/fragment_splash_err.xml b/app/src/intelligentvoice/res/layout/fragment_splash_err.xml
new file mode 100644
index 0000000..56967c0
--- /dev/null
+++ b/app/src/intelligentvoice/res/layout/fragment_splash_err.xml
@@ -0,0 +1,88 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/intelligentvoice/res/layout/fragment_splash_normal.xml b/app/src/intelligentvoice/res/layout/fragment_splash_normal.xml
new file mode 100644
index 0000000..301a6fb
--- /dev/null
+++ b/app/src/intelligentvoice/res/layout/fragment_splash_normal.xml
@@ -0,0 +1,106 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/intelligentvoice/res/layout/fragment_video_live.xml b/app/src/intelligentvoice/res/layout/fragment_video_live.xml
new file mode 100644
index 0000000..6058253
--- /dev/null
+++ b/app/src/intelligentvoice/res/layout/fragment_video_live.xml
@@ -0,0 +1,249 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/intelligentvoice/res/layout/item_city.xml b/app/src/intelligentvoice/res/layout/item_city.xml
new file mode 100644
index 0000000..31df21d
--- /dev/null
+++ b/app/src/intelligentvoice/res/layout/item_city.xml
@@ -0,0 +1,44 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/intelligentvoice/res/layout/item_container.xml b/app/src/intelligentvoice/res/layout/item_container.xml
new file mode 100644
index 0000000..a3dd3f2
--- /dev/null
+++ b/app/src/intelligentvoice/res/layout/item_container.xml
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/intelligentvoice/res/layout/pop_calendar.xml b/app/src/intelligentvoice/res/layout/pop_calendar.xml
new file mode 100644
index 0000000..101d999
--- /dev/null
+++ b/app/src/intelligentvoice/res/layout/pop_calendar.xml
@@ -0,0 +1,55 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/intelligentvoice/res/layout/widget_common_datepicker.xml b/app/src/intelligentvoice/res/layout/widget_common_datepicker.xml
new file mode 100644
index 0000000..f29a74e
--- /dev/null
+++ b/app/src/intelligentvoice/res/layout/widget_common_datepicker.xml
@@ -0,0 +1,113 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/intelligentvoice/res/layout/widget_common_title.xml b/app/src/intelligentvoice/res/layout/widget_common_title.xml
new file mode 100644
index 0000000..518cbc3
--- /dev/null
+++ b/app/src/intelligentvoice/res/layout/widget_common_title.xml
@@ -0,0 +1,44 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/intelligentvoice/res/mipmap-xxxhdpi/app_lan.png b/app/src/intelligentvoice/res/mipmap-xxxhdpi/app_lan.png
new file mode 100644
index 0000000..066c895
Binary files /dev/null and b/app/src/intelligentvoice/res/mipmap-xxxhdpi/app_lan.png differ
diff --git a/app/src/intelligentvoice/res/values-en/strings.xml b/app/src/intelligentvoice/res/values-en/strings.xml
new file mode 100644
index 0000000..a39a654
--- /dev/null
+++ b/app/src/intelligentvoice/res/values-en/strings.xml
@@ -0,0 +1,151 @@
+
+
+
+ AndroidOpenDemo
+ Settings
+
+
+ admin login
+ user login
+ please enter appid and appsecret!note: the developers can get appid and appsecret by browsing the website.
+ loading
+ SMS has been sent to the phone
+ SMS sent failed
+ please enter a valid phone number
+ user bind
+ The phone number has been bound to this application.please click device list
+ The phone number has not been bound to the application.please bind first!
+
+ device list
+ device operation
+ device add
+ wifi config......
+ Warning
+ Delete this device?
+ No shared device
+ No authorized device
+
+
+ "Notice"
+ Click OK to config referring the device guide
+
+
+ local video
+ cloud video
+
+
+ alarm message list
+ Warning
+ Delete this message?
+ Input key
+
+
+ play live video
+ play record video
+ flow
+ bit rate
+ M
+ K/S
+ 00:00:00
+ disconnected from the network,please check it
+
+ the device does not support talking
+ start talking
+ close talking
+ loading or talking,sound could not open
+ sound open
+ sound close
+ screenshot success
+ screenshot failed
+ record successed
+ record failed
+ start recording
+ ready to talk
+ open talking failed
+ play failed!please check network and try !
+ seek failed
+ data loading
+ play video failed
+ switch to SD
+ switch to HD
+ startTime-hour:
+ No permission to write sd card! recording and capturing could not be used
+ please input sms code
+ get sms code
+ sms code has been sent to phone
+ bind
+ please input your phone number
+ please a valid phone number
+ enter device list
+ alarm time
+ please input device code
+ wifi ssid:
+ wifi password
+ alarm plan
+ download
+ cloud storage
+ cloud upgrade
+ upgrade
+ cancel
+ please select day
+ query
+ year
+ month
+ day
+ Device Password
+ modify
+
+
+ OK
+ Cancel
+
+
+ sms code can not be empty
+
+ cloud update success
+ cloud update failed
+ modify alarm plan success
+ modify alarm plan failed
+ storage strategy update success
+ storage strategy update failed
+
+ query alarm message failed, errorcode:
+ delete alarm message failed
+ load failed
+
+ no device
+ query device list failed
+ delete success
+ this device has no ptz ability
+ device not exist
+ get initialize info failed
+
+ SN/Password can not be empty!
+ SN can not be empty!
+ already binded by yourself
+ already binded by others
+ config timeout
+ Input device key
+ Input safe code
+ Please Input Device Key
+ Please Input Device Init Key
+
+ location service has been forbidden, go to permisson manager to open
+
+ device/record not exist
+ no I frame
+
+ download failed/error key
+ download end
+ only play/download one by one
+ query record failed, errorcode:
+
+ errorcode
+ business errorcode
+ HTTP errorcode
+ inner errorcode
+ error msg
+
+ new password
+ old password
+
diff --git a/app/src/intelligentvoice/res/values/array.xml b/app/src/intelligentvoice/res/values/array.xml
new file mode 100644
index 0000000..7b19524
--- /dev/null
+++ b/app/src/intelligentvoice/res/values/array.xml
@@ -0,0 +1,10 @@
+
+
+ - 8
+ - 8
+ - 8
+ - 4
+ - 4
+ - 4
+
+
diff --git a/app/src/intelligentvoice/res/values/attrs.xml b/app/src/intelligentvoice/res/values/attrs.xml
new file mode 100644
index 0000000..1598846
--- /dev/null
+++ b/app/src/intelligentvoice/res/values/attrs.xml
@@ -0,0 +1,38 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/intelligentvoice/res/values/colors.xml b/app/src/intelligentvoice/res/values/colors.xml
new file mode 100644
index 0000000..ce7f55d
--- /dev/null
+++ b/app/src/intelligentvoice/res/values/colors.xml
@@ -0,0 +1,16 @@
+
+
+
+ #efeff4
+ #000000
+
+ #FFFFFF
+ #CFCFCF
+ #505166
+
+ #42CFBE
+ #57B1CC
+ #B888E5
+ #F695A8
+ #F9D461
+
diff --git a/app/src/intelligentvoice/res/values/dimens.xml b/app/src/intelligentvoice/res/values/dimens.xml
new file mode 100644
index 0000000..baa0459
--- /dev/null
+++ b/app/src/intelligentvoice/res/values/dimens.xml
@@ -0,0 +1,12 @@
+
+
+
+ 0.5dp
+
+
+ 10sp
+ 12sp
+ 15sp
+ 20sp
+
+
diff --git a/app/src/intelligentvoice/res/values/ids.xml b/app/src/intelligentvoice/res/values/ids.xml
new file mode 100644
index 0000000..bef5ac3
--- /dev/null
+++ b/app/src/intelligentvoice/res/values/ids.xml
@@ -0,0 +1,8 @@
+
+
+
+
\ No newline at end of file
diff --git a/app/src/intelligentvoice/res/values/spinner_data.xml b/app/src/intelligentvoice/res/values/spinner_data.xml
new file mode 100644
index 0000000..84bcbd7
--- /dev/null
+++ b/app/src/intelligentvoice/res/values/spinner_data.xml
@@ -0,0 +1,91 @@
+
+
+
+ - 00
+ - 01
+ - 02
+ - 03
+ - 04
+ - 05
+ - 06
+ - 07
+ - 08
+ - 09
+ - 10
+ - 11
+ - 12
+ - 13
+ - 14
+ - 15
+ - 16
+ - 17
+ - 18
+ - 19
+ - 20
+ - 21
+ - 22
+ - 23
+
+
+ - 00
+ - 01
+ - 02
+ - 03
+ - 04
+ - 05
+ - 06
+ - 07
+ - 08
+ - 09
+ - 10
+ - 11
+ - 12
+ - 13
+ - 14
+ - 15
+ - 16
+ - 17
+ - 18
+ - 19
+ - 20
+ - 21
+ - 22
+ - 23
+ - 24
+ - 25
+ - 26
+ - 27
+ - 28
+ - 29
+ - 30
+ - 31
+ - 32
+ - 33
+ - 34
+ - 35
+ - 36
+ - 37
+ - 38
+ - 39
+ - 40
+ - 41
+ - 42
+ - 43
+ - 44
+ - 45
+ - 46
+ - 47
+ - 48
+ - 49
+ - 50
+ - 51
+ - 52
+ - 53
+ - 54
+ - 55
+ - 56
+ - 57
+ - 58
+ - 59
+
+
diff --git a/app/src/intelligentvoice/res/values/strings.xml b/app/src/intelligentvoice/res/values/strings.xml
new file mode 100644
index 0000000..4b27a99
--- /dev/null
+++ b/app/src/intelligentvoice/res/values/strings.xml
@@ -0,0 +1,8 @@
+
+ 语音生活助手
+ 语音生活助手 版权所有
+ 关于
+ Copyright © 2014-2022 Yonsz All Right Reserved
+ 凡是通过语音生活助手官方商城购买的产品,我们将严格按照国家三包政策,对所售产品提供7天(含)退货,15天(含)因质量问题换新服务。注意事项:1)客服初审核通过,仅表示语音生活助手受理您的退换货申请,但不代表同意您的退换货,最终以商品检测报告为准,以此来判断您是否符合退换货条件。2)若您的申请为“审核不通过”,具体原因将会显示在您的退换货申请详情页面,若有疑问,可与百美达客服联系。3)签收时,请务必要求投递员在场共同检验包裹,若发现物流损坏、缺件或发错货等情况,请当场拒收并要求快递员存证,同时请您拍照存证,并打电话服务提出换货申请。4)若已签收,需要提供物流公司开具的凭据,并在退换货申请受理之后提交附件。若未提供物流开具的证明,公司无法处理退款或换货。
+ 您好,语音生活助手产品支持七天退货15天换货服务;在您收到商品后,如有任何原因需要进行退换货,打客户服务热线进行退货申请;请在包裹内留下纸条,写上您的订单号、联系方式及退货理由,以便我们及时确认完成退款,谢谢您的配合;请确保配件完整并且无人为破坏的情况(如开过发票的需要和发票一块寄回),非产品质量问题的退货,导致的退货,寄回的运费需您自行承担,因产品质量问题的退货,财务将给您报销寄回的快递费(最高22元)运费您先垫付,不支持到付件哦,我们收到货后会尽快为您办理,请耐心等待;祝您生活愉快!
+
diff --git a/app/src/intelligentvoice/res/values/styles.xml b/app/src/intelligentvoice/res/values/styles.xml
new file mode 100644
index 0000000..dfbdec1
--- /dev/null
+++ b/app/src/intelligentvoice/res/values/styles.xml
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
diff --git a/app/src/intelligentvoice/res/values/wheel__attrs.xml b/app/src/intelligentvoice/res/values/wheel__attrs.xml
new file mode 100644
index 0000000..db64ba7
--- /dev/null
+++ b/app/src/intelligentvoice/res/values/wheel__attrs.xml
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/skyworth/java/com/skyworth/z1/wxapi/WXEntryActivity.java b/app/src/skyworth/java/com/skyworth/z1/wxapi/WXEntryActivity.java
new file mode 100644
index 0000000..6106502
--- /dev/null
+++ b/app/src/skyworth/java/com/skyworth/z1/wxapi/WXEntryActivity.java
@@ -0,0 +1,101 @@
+package com.skyworth.z1.wxapi;
+
+import android.app.Activity;
+import android.content.Intent;
+import android.graphics.Bitmap;
+import android.os.Bundle;
+import android.util.Log;
+
+import com.tencent.mm.opensdk.modelbase.BaseReq;
+import com.tencent.mm.opensdk.modelbase.BaseResp;
+import com.tencent.mm.opensdk.modelmsg.SendAuth;
+import com.tencent.mm.opensdk.openapi.IWXAPI;
+import com.tencent.mm.opensdk.openapi.IWXAPIEventHandler;
+import com.tencent.mm.opensdk.openapi.WXAPIFactory;
+import com.yonsz.z1.R;
+import com.yonsz.z1.database.entity.entitya2.WxLoginEvent;
+
+import java.io.ByteArrayOutputStream;
+
+import de.greenrobot.event.EventBus;
+
+import static com.yonsz.z1.difference.DifferConstans.WX_APP_ID;
+
+
+public class WXEntryActivity extends Activity implements IWXAPIEventHandler {
+ private IWXAPI iwxapi;
+
+ public static byte[] bmpToByteArray(final Bitmap bmp, final boolean needRecycle) {
+ ByteArrayOutputStream output = new ByteArrayOutputStream();
+ bmp.compress(Bitmap.CompressFormat.PNG, 100, output);
+ if (needRecycle) {
+ bmp.recycle();
+ }
+ byte[] result = output.toByteArray();
+ try {
+ output.close();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ return result;
+ }
+
+ @Override
+
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_wxentry);
+ iwxapi = WXAPIFactory.createWXAPI(this, WX_APP_ID, false);
+ iwxapi.handleIntent(getIntent(), this);
+ iwxapi.registerApp(WX_APP_ID);
+ }
+
+
+ @Override
+ protected void onNewIntent(Intent intent) {
+ super.onNewIntent(intent);
+ setIntent(intent);
+ iwxapi.handleIntent(intent, this);
+ }
+
+ @Override
+ public void onReq(BaseReq baseReq) {
+ Log.i("BaseReq", "" + baseReq.openId + "---" + baseReq.transaction);
+ }
+
+ @Override
+ public void onResp(BaseResp resp) {
+ Log.i("BaseReq", "" + resp.openId + "---" + resp.transaction + "===" + resp.errCode + "==" + resp.errStr);
+ String result;
+ switch (resp.errCode) {
+ case BaseResp.ErrCode.ERR_OK:
+ result = getString(R.string.Share_success);
+ if (resp instanceof SendAuth.Resp) {
+ String code = ((SendAuth.Resp) resp).code;
+ Log.i("BaseReq", "LoginActivity onResp()" + code);
+ EventBus.getDefault().post(
+ new WxLoginEvent(code));
+ } else {
+
+ }
+ break;
+ case BaseResp.ErrCode.ERR_USER_CANCEL:
+ result = "取消分享";
+ break;
+ case BaseResp.ErrCode.ERR_AUTH_DENIED:
+ result = "分享被拒绝";
+ break;
+ default:
+ result = "发送返回";
+ break;
+ }
+ finish();
+ }
+
+ private String buildTransaction(final String type) {
+ return (type == null) ? String.valueOf(System.currentTimeMillis()) : type + System.currentTimeMillis();
+ }
+
+ enum SHARE_TYPE {Type_WXSceneSession, Type_WXSceneTimeline}
+
+}
diff --git a/app/src/skyworth/java/com/skyworth/z1/wxapi/WXPayEntryActivity.java b/app/src/skyworth/java/com/skyworth/z1/wxapi/WXPayEntryActivity.java
new file mode 100644
index 0000000..fa57cf3
--- /dev/null
+++ b/app/src/skyworth/java/com/skyworth/z1/wxapi/WXPayEntryActivity.java
@@ -0,0 +1,55 @@
+package com.skyworth.z1.wxapi;
+
+import android.app.Activity;
+import android.app.AlertDialog;
+import android.content.Intent;
+import android.os.Bundle;
+import android.util.Log;
+
+import com.tencent.mm.opensdk.constants.ConstantsAPI;
+import com.tencent.mm.opensdk.modelbase.BaseReq;
+import com.tencent.mm.opensdk.modelbase.BaseResp;
+import com.tencent.mm.opensdk.openapi.IWXAPI;
+import com.tencent.mm.opensdk.openapi.IWXAPIEventHandler;
+import com.tencent.mm.opensdk.openapi.WXAPIFactory;
+import com.yonsz.z1.R;
+import static com.yonsz.z1.difference.DifferConstans.WX_APP_ID;
+
+public class WXPayEntryActivity extends Activity implements IWXAPIEventHandler {
+
+ private final String TAG = "WXPayEntryActivity";
+
+ private IWXAPI api;
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_wxentry);
+ api = WXAPIFactory.createWXAPI(this, WX_APP_ID);
+ api.handleIntent(getIntent(), this);
+ }
+
+ @Override
+ protected void onNewIntent(Intent intent) {
+ super.onNewIntent(intent);
+ setIntent(intent);
+ api.handleIntent(intent, this);
+ }
+ @Override
+ public void onReq(BaseReq req) {
+ }
+
+ @Override
+ public void onResp(BaseResp resp) {
+ Log.i(TAG,"errCode = " + resp.errCode);
+ //最好依赖于商户后台的查询结果
+ if (resp.getType() == ConstantsAPI.COMMAND_PAY_BY_WX) {
+ //如果返回-1,很大可能是因为应用签名的问题。用官方的工具生成
+ //签名工具下载:https://open.weixin.qq.com/zh_CN/htmledition/res/dev/download/sdk/Gen_Signature_Android.apk
+ AlertDialog.Builder builder = new AlertDialog.Builder(this);
+ builder.setTitle("提示");
+ builder.setMessage(getString(R.string.pay_result_callback_msg, String.valueOf(resp.errCode)));
+ builder.show();
+ }
+ finish();
+ }
+}
\ No newline at end of file
diff --git a/app/src/skyworth/java/com/yonsz.z1/aboutversion/AboutVersionActivity.java b/app/src/skyworth/java/com/yonsz.z1/aboutversion/AboutVersionActivity.java
new file mode 100644
index 0000000..d34c8e9
--- /dev/null
+++ b/app/src/skyworth/java/com/yonsz.z1/aboutversion/AboutVersionActivity.java
@@ -0,0 +1,357 @@
+package com.yonsz.z1.mine.aboutversion;
+
+import android.Manifest;
+import android.content.Intent;
+import android.content.pm.PackageManager;
+import android.graphics.Bitmap;
+import android.graphics.BitmapFactory;
+import android.net.Uri;
+import android.os.Bundle;
+import android.os.Message;
+import android.support.v4.app.ActivityCompat;
+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 android.widget.Toast;
+
+import com.alibaba.fastjson.JSON;
+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.tencent.mm.opensdk.modelbase.BaseReq;
+import com.tencent.mm.opensdk.modelbase.BaseResp;
+import com.tencent.mm.opensdk.modelmsg.SendMessageToWX;
+import com.tencent.mm.opensdk.modelmsg.WXImageObject;
+import com.tencent.mm.opensdk.modelmsg.WXMediaMessage;
+import com.tencent.mm.opensdk.openapi.IWXAPI;
+import com.tencent.mm.opensdk.openapi.IWXAPIEventHandler;
+import com.tencent.mm.opensdk.openapi.WXAPIFactory;
+import com.yonsz.z1.R;
+import com.yonsz.z1.activity.BaseActivity;
+import com.yonsz.z1.database.entity.VersionEntity;
+import com.yonsz.z1.difference.DifferConstans;
+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.DeviceBottomDialog;
+import com.yonsz.z1.mine.aboutversion.feature.Callback;
+import com.yonsz.z1.mine.aboutversion.util.UpdateAppUtils;
+import com.yonsz.z1.mine.feedback.FeedBackActivity;
+import com.yonsz.z1.net.Constans;
+import com.yonsz.z1.net.NetWorkUrl;
+import com.yonsz.z1.net.NetWorkUtil;
+import com.yonsz.z1.utils.AppGenerUtil;
+import com.yonsz.z1.utils.SharedpreferencesUtil;
+import com.yonsz.z1.utils.ToastUtil;
+import com.yonsz.z1.view.TitleView;
+
+import java.util.HashMap;
+
+import static com.tencent.mm.opensdk.modelmsg.SendMessageToWX.Req.WXSceneSession;
+import static com.tencent.mm.opensdk.modelmsg.SendMessageToWX.Req.WXSceneTimeline;
+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.WX_APP_ID;
+import static com.yonsz.z1.difference.DifferConstans.versionUrl;
+import static com.yonsz.z1.fragment.person.PersonFragment.bmpToByteArray;
+import static com.yonsz.z1.mine.aboutversion.util.UpdateAppUtils.DOWNLOAD_BY_APP;
+import static com.yonsz.z1.mine.aboutversion.util.UpdateAppUtils.DOWNLOAD_BY_BROWSER;
+import static com.yonsz.z1.net.Constans.GET_USER_SESSION_NULL;
+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.version4.MainActivity4.versionId;
+
+/**
+ * Created by Administrator on 2017/5/26.
+ */
+public class AboutVersionActivity extends BaseActivity implements IWXAPIEventHandler {
+ private TextView tv_version;
+ private TextView tv_public_goto;
+ private ImageView iv_code;
+ private IWXAPI iwxapi;
+ private RelativeLayout scoreRl, versionDecalreRl, versionUpdateRl;
+ private TextView serviceHotlineTv;
+
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_about_version);
+ iwxapi = WXAPIFactory.createWXAPI(this, WX_APP_ID, false);
+ iwxapi.handleIntent(getIntent(), this);
+ iwxapi.registerApp(WX_APP_ID);
+
+ TitleView titleView = (TitleView) findViewById(R.id.title_about_version);
+ titleView.setHead(R.string.about_version);
+ titleView.setTitleListener(new OnTitleItemClickListener() {
+ @Override
+ public void onBack() {
+ finish();
+ }
+
+ @Override
+ public void onFunction() {
+
+ }
+
+ @Override
+ public void onFunctionText() {
+
+ }
+ });
+ scoreRl = (RelativeLayout) findViewById(R.id.rl_to_score);
+ serviceHotlineTv = (TextView) findViewById(R.id.tv_customer_service_hotline);
+ versionDecalreRl = (RelativeLayout) findViewById(R.id.rl_version_declare);
+ versionUpdateRl = (RelativeLayout) findViewById(R.id.rl_version_update);
+ iv_code = (ImageView) findViewById(R.id.iv_code);
+ tv_public_goto = (TextView) findViewById(R.id.tv_public_goto);
+ tv_version = (TextView) findViewById(R.id.tv_version);
+ tv_version.setText("V" + AppGenerUtil.getPackageVersion(this));
+
+ checkUpdate(1);
+
+
+ iv_code.setOnClickListener(new NoDoubleClickListener() {
+ @Override
+ protected void onNoDoubleClick(View v) {
+ showDioalog();
+ }
+ });
+ tv_public_goto.setOnClickListener(new NoDoubleClickListener() {
+ @Override
+ public void onNoDoubleClick(View v) {
+ super.onClick(v);
+ showDioalog();
+ }
+ });
+ scoreRl.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ /*ArrayList strings = ScoreUtils.SelectedInstalledAPPs(getApplicationContext(), ScoreUtils.InstalledAPPs(getApplicationContext()));
+ ScoreUtils.launchAppDetail(AboutVersionActivity.this, "com.yonsz.z1", strings.get(0));*/
+
+ startActivity(new Intent(AboutVersionActivity.this, FeedBackActivity.class));
+ }
+ });
+ versionDecalreRl.setOnClickListener(new NoDoubleClickListener() {
+ @Override
+ protected void onNoDoubleClick(View v) {
+ Intent intent = new Intent(AboutVersionActivity.this, VersionDecalreActivity.class);
+ intent.putExtra("activity", "AboutVersionActivity");
+ startActivity(intent);
+ }
+ });
+ versionUpdateRl.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ updataUserState();
+ }
+ });
+ serviceHotlineTv.setOnClickListener(new NoDoubleClickListener() {
+ @Override
+ protected void onNoDoubleClick(View v) {
+ callHotline();
+ }
+ });
+ }
+
+ private void callHotline() {
+ ConfirmDialog dialog = new ConfirmDialog(getActivity(), new Callback() {
+ @Override
+ public void callback(int position) {
+ switch (position) {
+ case 0:
+ break;
+ case 1:
+ callPhone("4001365663");
+ break;
+ }
+ }
+ });
+ dialog.setContent("400 136 5663");
+ dialog.setCancleBtn(R.string.cancel);
+ dialog.setSureBtn(R.string.call);
+ dialog.setCancelable(false);
+ dialog.show();
+ }
+
+ public void callPhone(String phoneNum) {
+ SoulPermission.getInstance().checkAndRequestPermissions(
+ Permissions.build(Manifest.permission.CALL_PHONE,
+ Manifest.permission.READ_PHONE_STATE,
+ 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) {
+ Intent intent = new Intent(Intent.ACTION_CALL);
+ Uri data = Uri.parse("tel:" + phoneNum);
+ intent.setData(data);
+ if (ActivityCompat.checkSelfPermission(AboutVersionActivity.this, Manifest.permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED) {
+ return;
+ }
+ startActivity(intent);
+ }
+
+ @Override
+ public void onPermissionDenied(Permission[] refusedPermissions) {
+ ToastUtil.show(AboutVersionActivity.this, "请开启权限");
+ }
+ });
+ }
+
+ private void checkUpdate(int tag) {
+ UpdateAppUtils.from(this)
+ .checkBy(UpdateAppUtils.CHECK_BY_VERSION_NAME)
+ .serverVersionName(versionId)
+ .serverVersionCode(5)
+ .apkPath(versionUrl)
+ .downloadBy(DOWNLOAD_BY_APP)
+ .isForce(false)
+ .update(tag);
+ }
+
+ private void showDioalog() {
+ if (!iwxapi.isWXAppInstalled()) {
+ Toast.makeText(this, getString(R.string.not_installed_Wechat), Toast.LENGTH_SHORT).show();
+ return;
+ }
+ //初始化一个WXImageObject对象
+ Bitmap thumb = BitmapFactory.decodeResource(getResources(), R.drawable.pic_public_code);
+ WXImageObject imageObject = new WXImageObject(thumb);
+ WXMediaMessage msg = new WXMediaMessage(); //这个对象是用来包裹发送信息的对象
+ msg.mediaObject = imageObject;
+ //设置缩略图
+ Bitmap thumbBitmap = Bitmap.createScaledBitmap(thumb, 60, 60, true);
+ msg.thumbData = bmpToByteArray(thumbBitmap, true);
+ final SendMessageToWX.Req req = new SendMessageToWX.Req(); //创建一个请求对象
+ req.message = msg; //把msg放入请求对象中
+ req.transaction = buildTransaction("Req");
+
+
+ /*WXWebpageObject webpageObject = new WXWebpageObject();
+ webpageObject.webpageUrl = "http://a.app.qq.com/o/simple.jsp?pkgname=com.yonsz.z1";
+ WXMediaMessage msg = new WXMediaMessage(webpageObject);
+ msg.title = "Unikong";
+ msg.description = "欢迎下载『语音遥控器APP』";
+ Bitmap thumb = BitmapFactory.decodeResource(getResources(), R.mipmap.app_lan);
+ msg.thumbData = bmpToByteArray(thumb, true);
+ final SendMessageToWX.Req req = new SendMessageToWX.Req();
+ req.transaction = buildTransaction("Req");
+ req.message = msg;*/
+ //分享到微信好友或者朋友圈
+ // startActivity(new Intent(getActivity(), WXEntryActivity.class));
+ DeviceBottomDialog dialog2 = new DeviceBottomDialog(this, new Callback() {
+ @Override
+ public void callback(int position1) {
+ switch (position1) {
+ case 0:
+ //取消
+ break;
+ case 1:
+ //微信朋友圈
+ req.scene = WXSceneTimeline;
+ iwxapi.sendReq(req);
+ break;
+ case 2:
+ //重新命名
+ break;
+ case 3:
+ //微信好友
+ req.scene = WXSceneSession;
+ iwxapi.sendReq(req);
+ break;
+ case 4:
+ break;
+ }
+ }
+ });
+ dialog2.setContent();
+ dialog2.setTop(getString(R.string.WeChat_friends));
+ dialog2.setBottom(getString(R.string.WeChat_friends_circle));
+ 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();
+ }
+
+ private String buildTransaction(final String type) {
+ return (type == null) ? String.valueOf(System.currentTimeMillis()) : type + System.currentTimeMillis();
+ }
+
+
+ @Override
+ public void callBackUiThread(Message msg) {
+ switch (msg.what) {
+ case UPDATE_STATE_SUCCESS:
+ VersionEntity.ObjEntity versionEntity = (VersionEntity.ObjEntity) msg.obj;
+ versionId = versionEntity.getVersionInfo().getVersionId().substring(2, 7);
+ versionUrl = versionEntity.getVersionInfo().getServiceUrl();
+ checkUpdate(2);
+ break;
+ }
+ }
+
+ @Override
+ public void onReq(BaseReq baseReq) {
+
+ }
+
+ @Override
+ public void onResp(BaseResp baseResp) {
+
+ }
+
+ //上传用户经纬度信息
+ 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);
+ }
+ });
+ }
+}
diff --git a/app/src/skyworth/java/com/yonsz.z1/difference/DifferConstans.java b/app/src/skyworth/java/com/yonsz.z1/difference/DifferConstans.java
new file mode 100644
index 0000000..bc1aec4
--- /dev/null
+++ b/app/src/skyworth/java/com/yonsz.z1/difference/DifferConstans.java
@@ -0,0 +1,20 @@
+package com.yonsz.z1.difference;
+
+/**
+ * Created by Administrator on 2018/6/21.
+ */
+
+public class DifferConstans {
+ //后台版本控制
+ public static final String VERSION_S = "v1";
+ public static final String APPID_S = "1103";
+ public static final String APPSECRET_S = "ysz666888";
+ public static final String APPID_S_VOICE = "110302";
+ public static final String WX_APP_ID = "wxd90e963f4ac02eb7";
+ public static final String SERVER_BACKUP4 = "https://openapi.lechange.cn:443";//乐橙
+ public static final String TEPRINCIPLE_UPDATE = "teprinciple.update";
+ public static String versionUrl = "http://a.app.qq.com/o/simple.jsp?pkgname=com.ansunxan.z1";
+ public static String LECHENG_KEY = "ysz123456";
+ public static String LECHENG_APPID = "lcc58705630dd248d1";
+ public static String LECHENG_APPSECRET = "91ac51eb533b4253ae2b917470ad27";
+}
diff --git a/app/src/skyworth/java/com/yonsz.z1/login/LoginActivity.java b/app/src/skyworth/java/com/yonsz.z1/login/LoginActivity.java
new file mode 100644
index 0000000..e7e0a31
--- /dev/null
+++ b/app/src/skyworth/java/com/yonsz.z1/login/LoginActivity.java
@@ -0,0 +1,511 @@
+package com.yonsz.z1.login;
+
+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.MotionEvent;
+import android.view.View;
+import android.widget.Button;
+import android.widget.EditText;
+import android.widget.ImageView;
+import android.widget.LinearLayout;
+import android.widget.RelativeLayout;
+import android.widget.TextView;
+import android.widget.Toast;
+
+import com.alibaba.fastjson.JSON;
+import com.tencent.mm.opensdk.modelbase.BaseReq;
+import com.tencent.mm.opensdk.modelbase.BaseResp;
+import com.tencent.mm.opensdk.modelmsg.SendAuth;
+import com.tencent.mm.opensdk.openapi.IWXAPI;
+import com.tencent.mm.opensdk.openapi.IWXAPIEventHandler;
+import com.tencent.mm.opensdk.openapi.WXAPIFactory;
+import com.yonsz.z1.R;
+import com.yonsz.z1.activity.BaseActivity;
+import com.yonsz.z1.database.entity.ResponeEntity;
+import com.yonsz.z1.database.entity.TokenEntity;
+import com.yonsz.z1.database.entity.entitya2.WxLoginEvent;
+import com.yonsz.z1.difference.DifferConstans;
+import com.yonsz.z1.listener.OnTitleItemClickListener;
+import com.yonsz.z1.login.forgetpw.ForgetPWActivity;
+import com.yonsz.z1.login.register.RegisterActivity;
+import com.yonsz.z1.login.register.WxRegisterActivity;
+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.KeyboardUtil;
+import com.yonsz.z1.utils.SharedpreferencesUtil;
+import com.yonsz.z1.utils.ToastUtil;
+import com.yonsz.z1.utils.VerificationUtils;
+import com.yonsz.z1.version4.MainActivity4;
+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.clean_password;
+import static com.yonsz.z1.R.id.iv_clean_phone;
+import static com.yonsz.z1.difference.DifferConstans.APPID_S;
+import static com.yonsz.z1.difference.DifferConstans.APPSECRET_S;
+import static com.yonsz.z1.difference.DifferConstans.WX_APP_ID;
+import static com.yonsz.z1.net.Constans.FAN_LEARN_WHAT;
+import static com.yonsz.z1.net.Constans.GET_PHONE_AREA;
+import static com.yonsz.z1.net.Constans.GET_TOKEN_FAIL;
+import static com.yonsz.z1.net.Constans.LOGIN_FAIL;
+import static com.yonsz.z1.net.Constans.LOGIN_SUCCESS;
+import static com.yonsz.z1.net.Constans.WX_LOGIN_FAIL;
+import static com.yonsz.z1.net.Constans.WX_LOGIN_REGISTER;
+import static com.yonsz.z1.net.Constans.WX_LOGIN_SUCCESS;
+
+/**
+ * Created by Administrator on 2017/5/16.
+ */
+
+public class LoginActivity extends BaseActivity implements IWXAPIEventHandler {
+ private TitleView mTitle;
+ private Button mLogin;
+ private TextView mRegister;
+ private TextView mForgetPw;
+ private EditText mUserName;
+ private EditText mPassWord;
+ private ImageView cleanPhoneIv;
+ private ImageView cleanPasswordIv;
+ private LoadingDialog mLoadingDialog;
+ private RelativeLayout rl_weixin_login;
+ private LinearLayout phoneAreaLl;
+
+ private IWXAPI iwxapi;
+ private TextView phoneArea;
+
+ @Override
+ public boolean dispatchTouchEvent(MotionEvent ev) {
+ switch (ev.getAction()) {
+ case MotionEvent.ACTION_DOWN:
+ View view = getCurrentFocus();
+ KeyboardUtil.hideKeyboard(ev, view, LoginActivity.this);//调用方法判断是否需要隐藏键盘
+ break;
+
+ default:
+ break;
+ }
+ return super.dispatchTouchEvent(ev);
+ }
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_login);
+ initView();
+ initListener();
+
+ iwxapi = WXAPIFactory.createWXAPI(this, WX_APP_ID, true);
+ iwxapi.handleIntent(this.getIntent(), this);
+ iwxapi.registerApp(WX_APP_ID);
+
+ if (TextUtils.isEmpty(SharedpreferencesUtil.get(Constans.SEESSIONID, ""))) {
+ getToken();
+ }
+ }
+
+ private void getToken() {
+ NetWorkUtil util = NetWorkUtil.instans();
+ HashMap map = new HashMap<>();
+ map.put("appId", APPID_S);
+ map.put("appSecret", APPSECRET_S);
+ util.requestPostByAsynewApi(NetWorkUrl.GET_TOKEN, map, new NetWorkUtil.ReqCallBack() {
+ @Override
+ public void onSuccess(String respone) {
+ Log.i("getToken", "onSuccess: " + respone);
+ TokenEntity entity = JSON.parseObject(respone, TokenEntity.class);
+ SharedpreferencesUtil.save(Constans.TOKENID, entity.getData().getToken().toString().trim());
+ }
+
+ @Override
+ public void onFail(String message) {
+ Log.i("getToken", "onSuccess: " + message);
+ Message msg = mHandler.obtainMessage(GET_TOKEN_FAIL);
+ msg.obj = message;
+ mHandler.sendMessage(msg);
+ }
+ });
+ }
+
+ @Override
+ public boolean enableSliding() {
+ return false;
+ }
+
+ public void onEventMainThread(WxLoginEvent event) {
+ String msg = event.getMsg();
+ Log.e("nettyUtil", msg);
+ Message message = new Message();
+ message.what = FAN_LEARN_WHAT;
+ message.obj = msg;
+ mHandler.sendMessage(message);
+ }
+
+
+ private void initView() {
+ phoneArea = (TextView) findViewById(R.id.tv_phone_area);
+ phoneAreaLl = (LinearLayout) findViewById(R.id.ll_phone_area);
+ cleanPhoneIv = (ImageView) findViewById(iv_clean_phone);
+ cleanPasswordIv = (ImageView) findViewById(clean_password);
+ mUserName = (EditText) findViewById(R.id.edit_username);
+ mUserName.setText(SharedpreferencesUtil.get(Constans.USERPHONE, ""));
+ if (!TextUtils.isEmpty(mUserName.getText().toString())) {
+ cleanPhoneIv.setVisibility(View.VISIBLE);
+ }
+ mPassWord = (EditText) findViewById(R.id.edit_pw);
+ mLogin = (Button) findViewById(R.id.bt_sure);
+ mLogin.setBackgroundDrawable(getResources().getDrawable(R.drawable.btn_round_9cc6f6));
+ mRegister = (TextView) findViewById(R.id.tv_register);
+ mForgetPw = (TextView) findViewById(R.id.txt_forget_pw);
+ rl_weixin_login = (RelativeLayout) findViewById(R.id.rl_weixin_login);
+ mLoadingDialog = new LoadingDialog(this);
+ mTitle = (TitleView) findViewById(R.id.title_login);
+ mTitle.setHead(R.string.login);
+ mTitle.setHeadBackGone();
+ mTitle.setHeadFuntionTxt(" ");
+ mTitle.setTitleListener(new OnTitleItemClickListener() {
+ @Override
+ public void onBack() {
+
+ }
+
+ @Override
+ public void onFunction() {
+ }
+
+ @Override
+ public void onFunctionText() {
+ }
+ });
+ }
+
+ private void initListener() {
+ rl_weixin_login.setOnClickListener(this);
+ mLogin.setOnClickListener(this);
+ mRegister.setOnClickListener(this);
+ mForgetPw.setOnClickListener(this);
+ cleanPasswordIv.setOnClickListener(this);
+ cleanPhoneIv.setOnClickListener(this);
+ phoneAreaLl.setOnClickListener(this);
+ mUserName.addTextChangedListener(new TextWatcher() {
+ @Override
+ public void beforeTextChanged(CharSequence s, int start, int count, int after) {
+
+ }
+
+ @Override
+ public void onTextChanged(CharSequence s, int start, int before, int count) {
+ int i = s.length();
+ if (i == 0 || TextUtils.isEmpty(mPassWord.getText())) {
+ mLogin.setBackgroundDrawable(getResources().getDrawable(R.drawable.btn_round_9cc6f6));
+ mLogin.setEnabled(false);
+ } else {
+ mLogin.setBackgroundDrawable(getResources().getDrawable(R.drawable.btn_round_398dee));
+ mLogin.setEnabled(true);
+ }
+ }
+
+ @Override
+ public void afterTextChanged(Editable s) {
+ if (!TextUtils.isEmpty(s) && cleanPhoneIv.getVisibility() == View.GONE) {
+ cleanPhoneIv.setVisibility(View.VISIBLE);
+ } else if (TextUtils.isEmpty(s)) {
+ cleanPhoneIv.setVisibility(View.GONE);
+ }
+ }
+ });
+ mPassWord.addTextChangedListener(new TextWatcher() {
+ @Override
+ public void beforeTextChanged(CharSequence s, int start, int count, int after) {
+
+ }
+
+ @Override
+ public void onTextChanged(CharSequence s, int start, int before, int count) {
+ int i = s.length();
+ if (i == 0 || TextUtils.isEmpty(mUserName.getText())) {
+ mLogin.setBackgroundDrawable(getResources().getDrawable(R.drawable.btn_round_9cc6f6));
+ mLogin.setEnabled(false);
+ } else {
+ mLogin.setBackgroundDrawable(getResources().getDrawable(R.drawable.btn_round_398dee));
+ mLogin.setEnabled(true);
+ }
+ }
+
+ @Override
+ public void afterTextChanged(Editable s) {
+ if (!TextUtils.isEmpty(s) && cleanPasswordIv.getVisibility() == View.GONE) {
+ cleanPasswordIv.setVisibility(View.VISIBLE);
+ } else if (TextUtils.isEmpty(s)) {
+ cleanPasswordIv.setVisibility(View.GONE);
+ }
+ if (s.toString().isEmpty())
+ return;
+ if (!s.toString().matches("[A-Za-z0-9]+")) {
+ String temp = s.toString();
+ Toast.makeText(LoginActivity.this, R.string.Enter_a_number, Toast.LENGTH_SHORT).show();
+ s.delete(temp.length() - 1, temp.length());
+ mPassWord.setSelection(s.length());
+
+ }
+ }
+ });
+ }
+
+ @Override
+ public void onClick(View v) {
+ super.onClick(v);
+ switch (v.getId()) {
+ case R.id.bt_sure:
+ if (DensityUtil.isNetworkConnected(this)) {
+ login();
+ } else {
+ ToastUtil.show(this, R.string.no_network_connection);
+ }
+ break;
+ case R.id.tv_register:
+ startActivity(new Intent(LoginActivity.this, RegisterActivity.class));
+ break;
+ case R.id.txt_forget_pw:
+ Intent intent = new Intent(LoginActivity.this, ForgetPWActivity.class);
+ intent.putExtra("tag", "LoginActivity");
+ startActivity(intent);
+ break;
+ case R.id.iv_clean_phone:
+ mUserName.setText("");
+ break;
+ case R.id.clean_password:
+ mPassWord.setText("");
+ break;
+ case R.id.rl_weixin_login:
+ if (!iwxapi.isWXAppInstalled()) {
+ Toast.makeText(this, getString(R.string.not_installed_Wechat), Toast.LENGTH_SHORT).show();
+ return;
+ }
+ wxLogin();
+ break;
+ case R.id.ll_phone_area:
+ Intent intent1 = new Intent(LoginActivity.this, PhoneAreaActivity.class);
+ intent1.putExtra("type", "login");
+ startActivityForResult(intent1, GET_PHONE_AREA);
+ break;
+ }
+ }
+
+ private void wxLogin() {
+ SendAuth.Req req1 = new SendAuth.Req();
+ req1.scope = "snsapi_userinfo";
+ req1.state = "wechat_sdk_demo_test";
+ iwxapi.sendReq(req1);
+ }
+
+ private void login() {
+ String name = mUserName.getText().toString();
+ String phoneCode = phoneArea.getText().toString();
+ if (!VerificationUtils.checkPhoneNumber(name.trim(), phoneCode.trim())) {
+ ToastUtil.show(this, R.string.phone_error);
+ return;
+ }
+ String password = mPassWord.getText().toString();
+ if (TextUtils.isEmpty(password.trim()) || password.length() < 6) {
+ ToastUtil.show(this, R.string.password_error);
+ return;
+ }
+ NetWorkUtil util = NetWorkUtil.instans();
+ HashMap map = new HashMap<>();
+ // mobileLogin=true&isValidatjeesiteLogin=false&username=admin&password=admin
+ map.put("appId", DifferConstans.APPID_S);
+ map.put("mobile", name);
+ map.put("password", password);
+ map.put("telAreaCode", phoneCode.substring(phoneCode.indexOf("+") + 1, phoneCode.length()));
+ map.put("mobileLogin", "true");
+ map.put("clientType", "1");
+ // map.put("isValidatjeesiteLogin", "false");
+ mLoadingDialog.show();
+ util.requestPostByAsynewApi(NetWorkUrl.LOGIN_URL, map, new NetWorkUtil.ReqCallBack() {
+ @Override
+ public void onSuccess(String respone) {
+ ResponeEntity entity = JSON.parseObject(respone, ResponeEntity.class);
+ Log.i("login111", "onSuccess: " + respone);
+ if (1 == entity.getFlag()) {
+ Message msg = mHandler.obtainMessage(LOGIN_SUCCESS);
+ msg.obj = entity;
+ mHandler.sendMessage(msg);
+ } else {
+ Message msg = mHandler.obtainMessage(LOGIN_FAIL);
+ msg.obj = entity.getMsg();
+ mHandler.sendMessage(msg);
+ }
+ }
+
+ @Override
+ public void onFail(String message) {
+ Message msg = mHandler.obtainMessage(LOGIN_FAIL);
+ msg.obj = message;
+ mHandler.sendMessage(msg);
+ }
+ });
+ }
+
+ @Override
+ public void callBackUiThread(Message msg) {
+ if (null != mLoadingDialog && mLoadingDialog.isShowing()) {
+ mLoadingDialog.dismiss();
+ }
+ switch (msg.what) {
+ case LOGIN_FAIL:
+ ToastUtil.show(this, (String) msg.obj);
+ break;
+ case WX_LOGIN_FAIL:
+ if (null != mLoadingDialog) {
+ mLoadingDialog.dismiss();
+ }
+ String obj = (String) msg.obj;
+ if (!obj.equals("获取openid或token失败")) {
+ ToastUtil.show(this, (String) msg.obj);
+ }
+ break;
+ case LOGIN_SUCCESS:
+ ResponeEntity entity = (ResponeEntity) msg.obj;
+ // ToastUtil.show(this, entity.getMsg());
+ Toast.makeText(LoginActivity.this, R.string.login_success, Toast.LENGTH_SHORT).show();
+ SharedpreferencesUtil.save(Constans.USERPHONE, mUserName.getText().toString());
+ SharedpreferencesUtil.save(Constans.SEESSIONID, entity.getData().getSession());
+ SharedpreferencesUtil.save(Constans.USERID, entity.getData().getUserId());
+ // SharedpreferencesUtil.save(Constans.USERNAME, entity.getObj().getUser().getName());
+ SharedpreferencesUtil.save(Constans.PASSWORD, mPassWord.getText().toString());
+ boolean isSetting = TextUtils.isEmpty(SharedpreferencesUtil.
+ get(SharedpreferencesUtil.get(Constans.USERID, ""), ""));
+ startActivity(new Intent(this, MainActivity4.class));
+ finish();
+ /*if (isSetting) {
+ Intent intent = new Intent(this, SetGestureCodeActivity.class);
+ intent.putExtra("isset", true);
+ intent.putExtra("SEESSIONID", entity.getObj().getLogininfo().getSessionId());
+ startActivity(intent);
+
+ } else {
+ startActivity(new Intent(this, MainActivity.class));
+ }*/
+ break;
+ case WX_LOGIN_SUCCESS:
+ ResponeEntity wxLoginEntity = (ResponeEntity) msg.obj;
+ Toast.makeText(LoginActivity.this, R.string.login_success, Toast.LENGTH_SHORT).show();
+// SharedpreferencesUtil.save(Constans.USERPHONE, wxLoginEntity.getObj().getUserInfo().getLoginName());
+ SharedpreferencesUtil.save(Constans.SEESSIONID, wxLoginEntity.getData().getSession());
+ SharedpreferencesUtil.save(Constans.USERID, wxLoginEntity.getData().getUserId());
+// SharedpreferencesUtil.save(Constans.USERNAME, wxLoginEntity.getObj().getUserInfo().getName());
+ startActivity(new Intent(this, MainActivity4.class));
+ finish();
+ break;
+ case WX_LOGIN_REGISTER:
+ //去注册
+ ResponeEntity entity1 = (ResponeEntity) msg.obj;
+ Intent intent = new Intent(LoginActivity.this, WxRegisterActivity.class);
+ intent.putExtra("wxId", entity1.getObj().getWxId());
+ intent.putExtra("headUrl", entity1.getObj().getHeadUrl());
+ intent.putExtra("userName", entity1.getObj().getUserName());
+ startActivity(intent);
+ break;
+
+ case FAN_LEARN_WHAT:
+ String code = (String) msg.obj;
+ quickLogin(code);
+ break;
+ }
+ }
+
+ /**
+ * 微信登录
+ *
+ * @param code
+ */
+ private void quickLogin(String code) {
+ NetWorkUtil util = NetWorkUtil.instans();
+ HashMap map = new HashMap<>();
+ map.put("code", code);
+ map.put("appId", DifferConstans.APPID_S);
+ mLoadingDialog.show();
+ util.requestPostByAsynewApi(NetWorkUrl.WX_QUICK_LOGIN, map, new NetWorkUtil.ReqCallBack() {
+ @Override
+ public void onSuccess(String respone) {
+ Log.i("quickLogin", "onSuccess: " + respone);
+ ResponeEntity entity = JSON.parseObject(respone, ResponeEntity.class);
+ if (1 == entity.getFlag()) {
+ Message msg = mHandler.obtainMessage(WX_LOGIN_SUCCESS);
+ msg.obj = entity;
+ mHandler.sendMessage(msg);
+ } else if (1011 == entity.getFlag()) {
+ Message msg = mHandler.obtainMessage(WX_LOGIN_REGISTER);
+ msg.obj = entity;
+ mHandler.sendMessage(msg);
+ } else if (1013 == entity.getFlag()) {
+ Message msg = mHandler.obtainMessage(WX_LOGIN_REGISTER);
+ msg.obj = entity;
+ mHandler.sendMessage(msg);
+ } else {
+ Message msg = mHandler.obtainMessage(WX_LOGIN_FAIL);
+ msg.obj = entity.getMsg();
+ mHandler.sendMessage(msg);
+ }
+ }
+
+ @Override
+ public void onFail(String message) {
+ Message msg = mHandler.obtainMessage(LOGIN_FAIL);
+ msg.obj = message;
+ mHandler.sendMessage(msg);
+ }
+ });
+ }
+
+ @Override
+ public void onReq(BaseReq baseReq) {
+
+ }
+
+ @Override
+ public void onResp(BaseResp resp) {
+ Log.i("BaseReq", "" + resp.openId + "---" + resp.transaction + "===" + resp.errCode + "==" + resp.errStr);
+ String code = ((SendAuth.Resp) resp).code;
+ Log.i("BaseReq", "LoginActivity onResp()" + code);
+ String result;
+ switch (resp.errCode) {
+ case BaseResp.ErrCode.ERR_OK:
+ result = getString(R.string.Share_success);
+ EventBus.getDefault().post(
+ new WxLoginEvent(code));
+ break;
+ case BaseResp.ErrCode.ERR_USER_CANCEL:
+ result = "取消分享";
+ break;
+ case BaseResp.ErrCode.ERR_AUTH_DENIED:
+ result = "分享被拒绝";
+ break;
+ default:
+ result = "发送返回";
+ break;
+ }
+ }
+
+ @Override
+ protected void onActivityResult(int requestCode, int resultCode, Intent data) {
+ switch (requestCode) {
+ case GET_PHONE_AREA:
+ if (data != null && data.getExtras().get("phoneArea") != null) {
+ phoneArea.setText(data.getExtras().get("phoneArea").toString());
+ }
+ break;
+ }
+ }
+}
diff --git a/app/src/skyworth/java/com/yonsz.z1/login/WelcomeActivity.java b/app/src/skyworth/java/com/yonsz.z1/login/WelcomeActivity.java
new file mode 100644
index 0000000..d39fcdd
--- /dev/null
+++ b/app/src/skyworth/java/com/yonsz.z1/login/WelcomeActivity.java
@@ -0,0 +1,287 @@
+package com.yonsz.z1.login;
+
+import android.Manifest;
+import android.content.Intent;
+import android.os.Bundle;
+import android.os.Message;
+import android.text.TextUtils;
+import android.util.Log;
+import android.view.Gravity;
+import android.view.LayoutInflater;
+import android.view.View;
+
+import com.alibaba.fastjson.JSON;
+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.TokenEntity;
+import com.yonsz.z1.fragment.person.WebViewActivity;
+import com.yonsz.z1.net.Constans;
+import com.yonsz.z1.net.NetWorkUrl;
+import com.yonsz.z1.net.NetWorkUtil;
+import com.yonsz.z1.utils.AppGenerUtil;
+import com.yonsz.z1.utils.DensityUtil;
+import com.yonsz.z1.utils.SharedpreferencesUtil;
+import com.yonsz.z1.version4.MainActivity4;
+import com.yonsz.z1.view.PrivacyPopupWindow;
+
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+
+import static com.yonsz.z1.UniKongApp.getActivity;
+import static com.yonsz.z1.difference.DifferConstans.APPID_S;
+import static com.yonsz.z1.difference.DifferConstans.APPSECRET_S;
+import static com.yonsz.z1.net.Constans.CLOSE_THIS_ACTIVITY;
+import static com.yonsz.z1.net.Constans.GET_TOKEN_FAIL;
+import static com.yonsz.z1.net.Constans.GET_TOKEN_SUCCESS;
+
+/**
+ * Created by Administrator on 2017/5/17.
+ */
+
+public class WelcomeActivity extends BaseActivity {
+
+ private final static int FLAG_TO_LOGIN = 1001;
+ private final static int FLAG_TO_GUIDER = 1002;
+ private final static int FLAG_TO_GESTURE = 1003;
+ private final static int FLAG_TO_MAIN = 1004;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_welcome);
+ }
+
+ @Override
+ public boolean enableSliding() {
+ return false;
+ }
+
+ @Override
+ public void onResume() {
+ super.onResume();
+ if (DensityUtil.isNetworkConnected(this) && DensityUtil.isNetConnected(this)) {
+ getToken();
+ } else {
+ initNext();
+ }
+ }
+
+ private void getToken() {
+ NetWorkUtil util = NetWorkUtil.instans();
+ HashMap map = new HashMap<>();
+ map.put("appId", APPID_S);
+ map.put("appSecret", APPSECRET_S);
+ util.requestPostByAsynewApi(NetWorkUrl.GET_TOKEN, map, new NetWorkUtil.ReqCallBack() {
+ @Override
+ public void onSuccess(String respone) {
+ Log.i("getToken", "onSuccess: " + respone);
+ TokenEntity entity = JSON.parseObject(respone, TokenEntity.class);
+ if (1 == entity.getFlag()) {
+ Message msg = mHandler.obtainMessage(GET_TOKEN_SUCCESS);
+ msg.obj = entity;
+ mHandler.sendMessage(msg);
+ } else {
+ Message msg = mHandler.obtainMessage(GET_TOKEN_FAIL);
+ msg.obj = entity.getMsg();
+ mHandler.sendMessage(msg);
+ }
+ }
+
+ @Override
+ public void onFail(String message) {
+ Log.i("getToken", "onSuccess: " + message);
+ Message msg = mHandler.obtainMessage(GET_TOKEN_FAIL);
+ msg.obj = message;
+ mHandler.sendMessage(msg);
+ }
+ });
+ }
+
+ private synchronized void initNext() {
+ if (null != SharedpreferencesUtil.get(Constans.PORT, null)) {
+
+ } else {
+ SharedpreferencesUtil.save(Constans.PORT, "25533");
+ }
+ /**
+ * 如果USERID不是空,进入手势页面,如果已经过了引导页,如果SEESSIONID不是空,进入主页面,如果
+ * 是空重新登录,都不是就进入引导页
+ */
+ /*if (!TextUtils.isEmpty(SharedpreferencesUtil.get(Constans.SEESSIONID, ""))) {
+ mHandler.sendEmptyMessageDelayed(FLAG_TO_MAIN, 1000);
+ } else {
+ mHandler.sendEmptyMessageDelayed(FLAG_TO_LOGIN, 1000);
+ }
+ boolean isSetting = TextUtils.isEmpty(SharedpreferencesUtil.
+ get(SharedpreferencesUtil.get(Constans.USERID, ""), ""));*/
+ // if (SharedpreferencesUtil.get(Constans.ISOVER)) {
+ /*if (!TextUtils.isEmpty(SharedpreferencesUtil.get(Constans.SEESSIONID, ""))) {
+ if (!TextUtils.isEmpty(SharedpreferencesUtil.get(Constans.ADIMAGEURL, ""))) {
+ mHandler.sendEmptyMessageDelayed(FLAG_TO_GESTURE, 1000);
+ } else {
+ mHandler.sendEmptyMessageDelayed(FLAG_TO_MAIN, 1000);
+ }
+ } else {
+ if (!TextUtils.isEmpty(SharedpreferencesUtil.get(Constans.ADIMAGEURL, ""))) {
+ mHandler.sendEmptyMessageDelayed(FLAG_TO_GESTURE, 1000);
+ } else {
+ mHandler.sendEmptyMessageDelayed(FLAG_TO_LOGIN, 1000);
+ }
+ }*/
+ /*} else {
+ mHandler.sendEmptyMessageDelayed(FLAG_TO_GUIDER, 1000);
+ }*/
+ SoulPermission.getInstance().checkAndRequestPermissions(
+ Permissions.build(Manifest.permission.ACCESS_FINE_LOCATION),
+ //if you want do noting or no need all the callbacks you may use SimplePermissionsAdapter instead
+ new CheckRequestPermissionsListener() {
+ @Override
+ public void onAllPermissionOk(Permission[] allPermissions) {
+ setPermission();
+ }
+
+ @Override
+ public void onPermissionDenied(Permission[] refusedPermissions) {
+ setPermission();
+ }
+ });
+ }
+
+ private void setPermission() {
+ SoulPermission.getInstance().checkAndRequestPermissions(
+ Permissions.build(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) {
+ if (SharedpreferencesUtil.get(Constans.ISOVER)) {
+ gotoNext();
+ } else {
+ showPrivacy();
+ }
+ }
+
+ @Override
+ public void onPermissionDenied(Permission[] refusedPermissions) {
+ if (SharedpreferencesUtil.get(Constans.ISOVER)) {
+ gotoNext();
+ } else {
+ showPrivacy();
+ }
+ }
+ });
+ }
+
+ private void gotoNext() {
+ if (!TextUtils.isEmpty(SharedpreferencesUtil.get(Constans.SEESSIONID, ""))) {
+ if (!TextUtils.isEmpty(SharedpreferencesUtil.get(Constans.ADIMAGEURL, ""))) {
+ mHandler.sendEmptyMessageDelayed(FLAG_TO_GESTURE, 1000);
+ } else {
+ mHandler.sendEmptyMessageDelayed(FLAG_TO_MAIN, 1000);
+ }
+ } else {
+ if (!TextUtils.isEmpty(SharedpreferencesUtil.get(Constans.ADIMAGEURL, ""))) {
+ mHandler.sendEmptyMessageDelayed(FLAG_TO_GESTURE, 1000);
+ } else {
+ mHandler.sendEmptyMessageDelayed(FLAG_TO_LOGIN, 1000);
+ }
+ }
+ }
+
+ private void showPrivacy() {
+ View rootview = LayoutInflater.from(getActivity()).inflate(R.layout.activity_child_device_a2, null);
+ PrivacyPopupWindow popupWindow = new PrivacyPopupWindow(getActivity(), new PrivacyPopupWindow.OnCompleteListener() {
+ @Override
+ public void onComplete() {
+ SharedpreferencesUtil.save(Constans.ISOVER, true);
+ gotoNext();
+ }
+
+ @Override
+ public void onFinish() {
+ finish();
+ }
+
+ @Override
+ public void onPrivacy() {
+ Intent intent = new Intent(getActivity(), WebViewActivity.class);
+ intent.putExtra("platform", "register");
+ startActivity(intent);
+ }
+ });
+ popupWindow.showAtLocation(rootview, Gravity.BOTTOM, 0, 0);
+ }
+
+ @Override
+ public void callBackUiThread(Message msg) {
+ switch (msg.what) {
+ case FLAG_TO_LOGIN:
+ startActivity(new Intent(this, LoginActivity.class));
+ finish();
+ break;
+ case FLAG_TO_GUIDER:
+ startActivity(new Intent(this, GuiderActivity.class));
+ overridePendingTransition(R.anim.activity_exit_in, R.anim.activity_exit_out);
+ finish();
+ break;
+ case FLAG_TO_GESTURE:
+ startActivity(new Intent(this, AdinfoActivity.class));
+ finish();
+ break;
+ case FLAG_TO_MAIN:
+ startActivity(new Intent(this, MainActivity4.class));
+ finish();
+ break;
+ case GET_TOKEN_SUCCESS:
+ TokenEntity entity = (TokenEntity) msg.obj;
+ if (SharedpreferencesUtil.get(Constans.TOKENID, "").equals(entity.getData().getToken().toString().trim())) {
+
+ } else {
+ SharedpreferencesUtil.save(Constans.SEESSIONID, "");
+ }
+ SharedpreferencesUtil.save(Constans.TOKENID, entity.getData().getToken().toString().trim());
+ // SharedpreferencesUtil.save(Constans.ADIMAGEURL, entity.getData().getStartUpImgUrl());
+ String androidVersions = entity.getData().getAndroidVersions().toString();
+ if (null != androidVersions) {
+ String packageVersion = AppGenerUtil.getPackageVersion(this);
+ List result = Arrays.asList(androidVersions.split(","));
+ initNext();
+ /*if (result.contains(packageVersion)) {
+ initNext();
+ } else {
+ // initNext();
+ UpdateAppUtils.from(this)
+ .apkPath(versionUrl)
+ .downloadBy(DOWNLOAD_BY_BROWSER)
+ .isForce(true)
+ .update(true);
+ }*/
+ } else {
+ initNext();
+ }
+ /*if (null != SharedpreferencesUtil.get(Constans.TOKENID, "")) {
+ if (entity.getObj().toString().trim().equals(SharedpreferencesUtil.get(Constans.TOKENID, ""))) {
+ initNext();
+ } else {
+ ToastUtil.show(this, "token已过期");
+ mHandler.sendEmptyMessageDelayed(CLOSE_THIS_ACTIVITY, 1000);
+ }
+ } else {
+ SharedpreferencesUtil.save(Constans.TOKENID, entity.getObj().toString().trim());
+ initNext();
+ }*/
+ break;
+ case CLOSE_THIS_ACTIVITY:
+ finish();
+ break;
+ case GET_TOKEN_FAIL:
+ initNext();
+ break;
+ }
+ }
+}
diff --git a/app/src/skyworth/java/com/yonsz.z1/login/register/CopyRightActivity.java b/app/src/skyworth/java/com/yonsz.z1/login/register/CopyRightActivity.java
new file mode 100644
index 0000000..7c7381c
--- /dev/null
+++ b/app/src/skyworth/java/com/yonsz.z1/login/register/CopyRightActivity.java
@@ -0,0 +1,45 @@
+package com.yonsz.z1.login.register;
+
+import android.os.Bundle;
+import android.os.Message;
+
+import com.yonsz.z1.R;
+import com.yonsz.z1.activity.BaseActivity;
+import com.yonsz.z1.listener.OnTitleItemClickListener;
+import com.yonsz.z1.view.TitleView;
+
+/**
+ * Created by Administrator on 2017/6/15.
+ */
+
+public class CopyRightActivity extends BaseActivity{
+ private TitleView mTitleView;
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_copyright);
+ mTitleView = (TitleView)findViewById(R.id.title_text);
+ mTitleView.setHead("用户协议");
+ mTitleView.setTitleListener(new OnTitleItemClickListener() {
+ @Override
+ public void onBack() {
+ finish();
+ }
+
+ @Override
+ public void onFunction() {
+
+ }
+
+ @Override
+ public void onFunctionText() {
+
+ }
+ });
+ }
+
+ @Override
+ public void callBackUiThread(Message msg) {
+
+ }
+}
diff --git a/app/src/skyworth/res/anim/slide_left_in.xml b/app/src/skyworth/res/anim/slide_left_in.xml
new file mode 100644
index 0000000..efac524
--- /dev/null
+++ b/app/src/skyworth/res/anim/slide_left_in.xml
@@ -0,0 +1,5 @@
+
+
+
+
diff --git a/app/src/skyworth/res/anim/slide_left_out.xml b/app/src/skyworth/res/anim/slide_left_out.xml
new file mode 100644
index 0000000..2b1e672
--- /dev/null
+++ b/app/src/skyworth/res/anim/slide_left_out.xml
@@ -0,0 +1,5 @@
+
+
+
+
diff --git a/app/src/skyworth/res/anim/slide_right_in.xml b/app/src/skyworth/res/anim/slide_right_in.xml
new file mode 100644
index 0000000..2fc61e8
--- /dev/null
+++ b/app/src/skyworth/res/anim/slide_right_in.xml
@@ -0,0 +1,5 @@
+
+
+
+
diff --git a/app/src/skyworth/res/anim/slide_right_out.xml b/app/src/skyworth/res/anim/slide_right_out.xml
new file mode 100644
index 0000000..9934aa3
--- /dev/null
+++ b/app/src/skyworth/res/anim/slide_right_out.xml
@@ -0,0 +1,5 @@
+
+
+
+
diff --git a/app/src/skyworth/res/drawable-hdpi/Thumbs.db b/app/src/skyworth/res/drawable-hdpi/Thumbs.db
new file mode 100644
index 0000000..9952f7a
Binary files /dev/null and b/app/src/skyworth/res/drawable-hdpi/Thumbs.db differ
diff --git a/app/src/skyworth/res/drawable-hdpi/common_icon_remind.png b/app/src/skyworth/res/drawable-hdpi/common_icon_remind.png
new file mode 100644
index 0000000..b497932
Binary files /dev/null and b/app/src/skyworth/res/drawable-hdpi/common_icon_remind.png differ
diff --git a/app/src/skyworth/res/drawable-hdpi/common_switch_off.png b/app/src/skyworth/res/drawable-hdpi/common_switch_off.png
new file mode 100644
index 0000000..39bccc0
Binary files /dev/null and b/app/src/skyworth/res/drawable-hdpi/common_switch_off.png differ
diff --git a/app/src/skyworth/res/drawable-hdpi/common_switch_on.png b/app/src/skyworth/res/drawable-hdpi/common_switch_on.png
new file mode 100644
index 0000000..323435b
Binary files /dev/null and b/app/src/skyworth/res/drawable-hdpi/common_switch_on.png differ
diff --git a/app/src/skyworth/res/drawable-hdpi/device_btn_wiredadd.png b/app/src/skyworth/res/drawable-hdpi/device_btn_wiredadd.png
new file mode 100644
index 0000000..4a5b09c
Binary files /dev/null and b/app/src/skyworth/res/drawable-hdpi/device_btn_wiredadd.png differ
diff --git a/app/src/skyworth/res/drawable-hdpi/device_icon_wifiadd.png b/app/src/skyworth/res/drawable-hdpi/device_icon_wifiadd.png
new file mode 100644
index 0000000..fab8fa0
Binary files /dev/null and b/app/src/skyworth/res/drawable-hdpi/device_icon_wifiadd.png differ
diff --git a/app/src/skyworth/res/drawable-hdpi/list_bg_device.png b/app/src/skyworth/res/drawable-hdpi/list_bg_device.png
new file mode 100644
index 0000000..5cec7e3
Binary files /dev/null and b/app/src/skyworth/res/drawable-hdpi/list_bg_device.png differ
diff --git a/app/src/skyworth/res/drawable-hdpi/list_bg_nomessage.png b/app/src/skyworth/res/drawable-hdpi/list_bg_nomessage.png
new file mode 100644
index 0000000..6ee12f2
Binary files /dev/null and b/app/src/skyworth/res/drawable-hdpi/list_bg_nomessage.png differ
diff --git a/app/src/skyworth/res/drawable-hdpi/list_bg_norecord.png b/app/src/skyworth/res/drawable-hdpi/list_bg_norecord.png
new file mode 100644
index 0000000..3be55b7
Binary files /dev/null and b/app/src/skyworth/res/drawable-hdpi/list_bg_norecord.png differ
diff --git a/app/src/skyworth/res/drawable-hdpi/list_bg_video.png b/app/src/skyworth/res/drawable-hdpi/list_bg_video.png
new file mode 100644
index 0000000..acf7cc4
Binary files /dev/null and b/app/src/skyworth/res/drawable-hdpi/list_bg_video.png differ
diff --git a/app/src/skyworth/res/drawable-hdpi/list_btn_cloudvideo.png b/app/src/skyworth/res/drawable-hdpi/list_btn_cloudvideo.png
new file mode 100644
index 0000000..7724ada
Binary files /dev/null and b/app/src/skyworth/res/drawable-hdpi/list_btn_cloudvideo.png differ
diff --git a/app/src/skyworth/res/drawable-hdpi/list_btn_deletedevice.png b/app/src/skyworth/res/drawable-hdpi/list_btn_deletedevice.png
new file mode 100644
index 0000000..af8bbeb
Binary files /dev/null and b/app/src/skyworth/res/drawable-hdpi/list_btn_deletedevice.png differ
diff --git a/app/src/skyworth/res/drawable-hdpi/list_btn_deletemessage.png b/app/src/skyworth/res/drawable-hdpi/list_btn_deletemessage.png
new file mode 100644
index 0000000..4753bc8
Binary files /dev/null and b/app/src/skyworth/res/drawable-hdpi/list_btn_deletemessage.png differ
diff --git a/app/src/skyworth/res/drawable-hdpi/list_btn_livevideo.png b/app/src/skyworth/res/drawable-hdpi/list_btn_livevideo.png
new file mode 100644
index 0000000..5992c03
Binary files /dev/null and b/app/src/skyworth/res/drawable-hdpi/list_btn_livevideo.png differ
diff --git a/app/src/skyworth/res/drawable-hdpi/list_btn_localvideo.png b/app/src/skyworth/res/drawable-hdpi/list_btn_localvideo.png
new file mode 100644
index 0000000..08e659e
Binary files /dev/null and b/app/src/skyworth/res/drawable-hdpi/list_btn_localvideo.png differ
diff --git a/app/src/skyworth/res/drawable-hdpi/list_btn_message.png b/app/src/skyworth/res/drawable-hdpi/list_btn_message.png
new file mode 100644
index 0000000..ff83411
Binary files /dev/null and b/app/src/skyworth/res/drawable-hdpi/list_btn_message.png differ
diff --git a/app/src/skyworth/res/drawable-hdpi/list_btn_setting.png b/app/src/skyworth/res/drawable-hdpi/list_btn_setting.png
new file mode 100644
index 0000000..6187aa7
Binary files /dev/null and b/app/src/skyworth/res/drawable-hdpi/list_btn_setting.png differ
diff --git a/app/src/skyworth/res/drawable-hdpi/list_icon_offline.png b/app/src/skyworth/res/drawable-hdpi/list_icon_offline.png
new file mode 100644
index 0000000..c698996
Binary files /dev/null and b/app/src/skyworth/res/drawable-hdpi/list_icon_offline.png differ
diff --git a/app/src/skyworth/res/drawable-hdpi/live_btn_fluent.png b/app/src/skyworth/res/drawable-hdpi/live_btn_fluent.png
new file mode 100644
index 0000000..9e452e1
Binary files /dev/null and b/app/src/skyworth/res/drawable-hdpi/live_btn_fluent.png differ
diff --git a/app/src/skyworth/res/drawable-hdpi/live_btn_fullscreen.png b/app/src/skyworth/res/drawable-hdpi/live_btn_fullscreen.png
new file mode 100644
index 0000000..6abcf5f
Binary files /dev/null and b/app/src/skyworth/res/drawable-hdpi/live_btn_fullscreen.png differ
diff --git a/app/src/skyworth/res/drawable-hdpi/live_btn_hd.png b/app/src/skyworth/res/drawable-hdpi/live_btn_hd.png
new file mode 100644
index 0000000..86b013c
Binary files /dev/null and b/app/src/skyworth/res/drawable-hdpi/live_btn_hd.png differ
diff --git a/app/src/skyworth/res/drawable-hdpi/live_btn_ptz_off.png b/app/src/skyworth/res/drawable-hdpi/live_btn_ptz_off.png
new file mode 100644
index 0000000..53f67c6
Binary files /dev/null and b/app/src/skyworth/res/drawable-hdpi/live_btn_ptz_off.png differ
diff --git a/app/src/skyworth/res/drawable-hdpi/live_btn_ptz_on.png b/app/src/skyworth/res/drawable-hdpi/live_btn_ptz_on.png
new file mode 100644
index 0000000..57fde53
Binary files /dev/null and b/app/src/skyworth/res/drawable-hdpi/live_btn_ptz_on.png differ
diff --git a/app/src/skyworth/res/drawable-hdpi/live_btn_record_click.png b/app/src/skyworth/res/drawable-hdpi/live_btn_record_click.png
new file mode 100644
index 0000000..65e33c1
Binary files /dev/null and b/app/src/skyworth/res/drawable-hdpi/live_btn_record_click.png differ
diff --git a/app/src/skyworth/res/drawable-hdpi/live_btn_record_nor.png b/app/src/skyworth/res/drawable-hdpi/live_btn_record_nor.png
new file mode 100644
index 0000000..9dab395
Binary files /dev/null and b/app/src/skyworth/res/drawable-hdpi/live_btn_record_nor.png differ
diff --git a/app/src/skyworth/res/drawable-hdpi/live_btn_screenshot_click.png b/app/src/skyworth/res/drawable-hdpi/live_btn_screenshot_click.png
new file mode 100644
index 0000000..212135a
Binary files /dev/null and b/app/src/skyworth/res/drawable-hdpi/live_btn_screenshot_click.png differ
diff --git a/app/src/skyworth/res/drawable-hdpi/live_btn_screenshot_nor.png b/app/src/skyworth/res/drawable-hdpi/live_btn_screenshot_nor.png
new file mode 100644
index 0000000..bd49937
Binary files /dev/null and b/app/src/skyworth/res/drawable-hdpi/live_btn_screenshot_nor.png differ
diff --git a/app/src/skyworth/res/drawable-hdpi/live_btn_smallscreen.png b/app/src/skyworth/res/drawable-hdpi/live_btn_smallscreen.png
new file mode 100644
index 0000000..8fc3dee
Binary files /dev/null and b/app/src/skyworth/res/drawable-hdpi/live_btn_smallscreen.png differ
diff --git a/app/src/skyworth/res/drawable-hdpi/live_btn_sound_off.png b/app/src/skyworth/res/drawable-hdpi/live_btn_sound_off.png
new file mode 100644
index 0000000..f0ba8d4
Binary files /dev/null and b/app/src/skyworth/res/drawable-hdpi/live_btn_sound_off.png differ
diff --git a/app/src/skyworth/res/drawable-hdpi/live_btn_sound_on.png b/app/src/skyworth/res/drawable-hdpi/live_btn_sound_on.png
new file mode 100644
index 0000000..5930aba
Binary files /dev/null and b/app/src/skyworth/res/drawable-hdpi/live_btn_sound_on.png differ
diff --git a/app/src/skyworth/res/drawable-hdpi/live_btn_talk_click.png b/app/src/skyworth/res/drawable-hdpi/live_btn_talk_click.png
new file mode 100644
index 0000000..1a036d2
Binary files /dev/null and b/app/src/skyworth/res/drawable-hdpi/live_btn_talk_click.png differ
diff --git a/app/src/skyworth/res/drawable-hdpi/live_btn_talk_nor.png b/app/src/skyworth/res/drawable-hdpi/live_btn_talk_nor.png
new file mode 100644
index 0000000..b3d5575
Binary files /dev/null and b/app/src/skyworth/res/drawable-hdpi/live_btn_talk_nor.png differ
diff --git a/app/src/skyworth/res/drawable-hdpi/live_pic_record.png b/app/src/skyworth/res/drawable-hdpi/live_pic_record.png
new file mode 100644
index 0000000..78315bc
Binary files /dev/null and b/app/src/skyworth/res/drawable-hdpi/live_pic_record.png differ
diff --git a/app/src/skyworth/res/drawable-hdpi/live_pic_talkback.png b/app/src/skyworth/res/drawable-hdpi/live_pic_talkback.png
new file mode 100644
index 0000000..aa166e2
Binary files /dev/null and b/app/src/skyworth/res/drawable-hdpi/live_pic_talkback.png differ
diff --git a/app/src/skyworth/res/drawable-hdpi/pic_public_code.png b/app/src/skyworth/res/drawable-hdpi/pic_public_code.png
new file mode 100644
index 0000000..f7f3971
Binary files /dev/null and b/app/src/skyworth/res/drawable-hdpi/pic_public_code.png differ
diff --git a/app/src/skyworth/res/drawable-hdpi/record_btn_fullscreen.png b/app/src/skyworth/res/drawable-hdpi/record_btn_fullscreen.png
new file mode 100644
index 0000000..f54118a
Binary files /dev/null and b/app/src/skyworth/res/drawable-hdpi/record_btn_fullscreen.png differ
diff --git a/app/src/skyworth/res/drawable-hdpi/record_btn_pause.png b/app/src/skyworth/res/drawable-hdpi/record_btn_pause.png
new file mode 100644
index 0000000..b2499ad
Binary files /dev/null and b/app/src/skyworth/res/drawable-hdpi/record_btn_pause.png differ
diff --git a/app/src/skyworth/res/drawable-hdpi/record_btn_play.png b/app/src/skyworth/res/drawable-hdpi/record_btn_play.png
new file mode 100644
index 0000000..49c834f
Binary files /dev/null and b/app/src/skyworth/res/drawable-hdpi/record_btn_play.png differ
diff --git a/app/src/skyworth/res/drawable-hdpi/record_btn_smallscreen.png b/app/src/skyworth/res/drawable-hdpi/record_btn_smallscreen.png
new file mode 100644
index 0000000..8b8e290
Binary files /dev/null and b/app/src/skyworth/res/drawable-hdpi/record_btn_smallscreen.png differ
diff --git a/app/src/skyworth/res/drawable-hdpi/record_progress_point.png b/app/src/skyworth/res/drawable-hdpi/record_progress_point.png
new file mode 100644
index 0000000..03eb09d
Binary files /dev/null and b/app/src/skyworth/res/drawable-hdpi/record_progress_point.png differ
diff --git a/app/src/skyworth/res/drawable-hdpi/splash_bg.png b/app/src/skyworth/res/drawable-hdpi/splash_bg.png
new file mode 100644
index 0000000..dc375a8
Binary files /dev/null and b/app/src/skyworth/res/drawable-hdpi/splash_bg.png differ
diff --git a/app/src/skyworth/res/drawable-hdpi/splash_btn_admin.png b/app/src/skyworth/res/drawable-hdpi/splash_btn_admin.png
new file mode 100644
index 0000000..801753b
Binary files /dev/null and b/app/src/skyworth/res/drawable-hdpi/splash_btn_admin.png differ
diff --git a/app/src/skyworth/res/drawable-hdpi/splash_btn_user.png b/app/src/skyworth/res/drawable-hdpi/splash_btn_user.png
new file mode 100644
index 0000000..40677ee
Binary files /dev/null and b/app/src/skyworth/res/drawable-hdpi/splash_btn_user.png differ
diff --git a/app/src/skyworth/res/drawable-hdpi/title_btn_back.png b/app/src/skyworth/res/drawable-hdpi/title_btn_back.png
new file mode 100644
index 0000000..ed6b962
Binary files /dev/null and b/app/src/skyworth/res/drawable-hdpi/title_btn_back.png differ
diff --git a/app/src/skyworth/res/drawable-hdpi/title_btn_deviceadd.png b/app/src/skyworth/res/drawable-hdpi/title_btn_deviceadd.png
new file mode 100644
index 0000000..6df0fd9
Binary files /dev/null and b/app/src/skyworth/res/drawable-hdpi/title_btn_deviceadd.png differ
diff --git a/app/src/skyworth/res/drawable-hdpi/title_btn_search.png b/app/src/skyworth/res/drawable-hdpi/title_btn_search.png
new file mode 100644
index 0000000..0384291
Binary files /dev/null and b/app/src/skyworth/res/drawable-hdpi/title_btn_search.png differ
diff --git a/app/src/skyworth/res/drawable-hdpi/video_btn_play.png b/app/src/skyworth/res/drawable-hdpi/video_btn_play.png
new file mode 100644
index 0000000..0372032
Binary files /dev/null and b/app/src/skyworth/res/drawable-hdpi/video_btn_play.png differ
diff --git a/app/src/skyworth/res/drawable-xhdpi/Thumbs.db b/app/src/skyworth/res/drawable-xhdpi/Thumbs.db
new file mode 100644
index 0000000..a0aa192
Binary files /dev/null and b/app/src/skyworth/res/drawable-xhdpi/Thumbs.db differ
diff --git a/app/src/skyworth/res/drawable-xhdpi/custom_calendar_row_left.png b/app/src/skyworth/res/drawable-xhdpi/custom_calendar_row_left.png
new file mode 100644
index 0000000..84efb1f
Binary files /dev/null and b/app/src/skyworth/res/drawable-xhdpi/custom_calendar_row_left.png differ
diff --git a/app/src/skyworth/res/drawable-xhdpi/custom_calendar_row_right.png b/app/src/skyworth/res/drawable-xhdpi/custom_calendar_row_right.png
new file mode 100644
index 0000000..f8af65c
Binary files /dev/null and b/app/src/skyworth/res/drawable-xhdpi/custom_calendar_row_right.png differ
diff --git a/app/src/skyworth/res/drawable-xhdpi/list_btn_download.png b/app/src/skyworth/res/drawable-xhdpi/list_btn_download.png
new file mode 100644
index 0000000..9355262
Binary files /dev/null and b/app/src/skyworth/res/drawable-xhdpi/list_btn_download.png differ
diff --git a/app/src/skyworth/res/drawable-xhdpi/pic_public_code.png b/app/src/skyworth/res/drawable-xhdpi/pic_public_code.png
new file mode 100644
index 0000000..f298447
Binary files /dev/null and b/app/src/skyworth/res/drawable-xhdpi/pic_public_code.png differ
diff --git a/app/src/skyworth/res/drawable-xhdpi/sdk_launcher.png b/app/src/skyworth/res/drawable-xhdpi/sdk_launcher.png
new file mode 100644
index 0000000..50a9616
Binary files /dev/null and b/app/src/skyworth/res/drawable-xhdpi/sdk_launcher.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/bg.png b/app/src/skyworth/res/drawable-xxhdpi/bg.png
new file mode 100644
index 0000000..1966b69
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/bg.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/device_icon_find_nor.png b/app/src/skyworth/res/drawable-xxhdpi/device_icon_find_nor.png
new file mode 100644
index 0000000..3afef8b
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/device_icon_find_nor.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_airer.png b/app/src/skyworth/res/drawable-xxhdpi/icon_airer.png
new file mode 100644
index 0000000..869e562
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_airer.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_alone.png b/app/src/skyworth/res/drawable-xxhdpi/icon_alone.png
new file mode 100644
index 0000000..27f8086
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_alone.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_autogate.png b/app/src/skyworth/res/drawable-xxhdpi/icon_autogate.png
new file mode 100644
index 0000000..1ff1717
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_autogate.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_bright.png b/app/src/skyworth/res/drawable-xxhdpi/icon_bright.png
new file mode 100644
index 0000000..04e3c22
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_bright.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_bungalow.png b/app/src/skyworth/res/drawable-xxhdpi/icon_bungalow.png
new file mode 100644
index 0000000..99c8af0
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_bungalow.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_camera.png b/app/src/skyworth/res/drawable-xxhdpi/icon_camera.png
new file mode 100644
index 0000000..caa0981
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_camera.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_camera_set.png b/app/src/skyworth/res/drawable-xxhdpi/icon_camera_set.png
new file mode 100644
index 0000000..6de4c1f
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_camera_set.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_chandelier.png b/app/src/skyworth/res/drawable-xxhdpi/icon_chandelier.png
new file mode 100644
index 0000000..05d58c2
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_chandelier.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_chazuo.png b/app/src/skyworth/res/drawable-xxhdpi/icon_chazuo.png
new file mode 100644
index 0000000..3af7226
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_chazuo.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_choice_r.png b/app/src/skyworth/res/drawable-xxhdpi/icon_choice_r.png
new file mode 100644
index 0000000..b10d472
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_choice_r.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_clean.png b/app/src/skyworth/res/drawable-xxhdpi/icon_clean.png
new file mode 100644
index 0000000..3f24f66
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_clean.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_close_control.png b/app/src/skyworth/res/drawable-xxhdpi/icon_close_control.png
new file mode 100644
index 0000000..36d4c64
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_close_control.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_cloud_control_nor.png b/app/src/skyworth/res/drawable-xxhdpi/icon_cloud_control_nor.png
new file mode 100644
index 0000000..573f8e0
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_cloud_control_nor.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_cloud_control_per.png b/app/src/skyworth/res/drawable-xxhdpi/icon_cloud_control_per.png
new file mode 100644
index 0000000..92ec36e
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_cloud_control_per.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_cloud_video_nor.png b/app/src/skyworth/res/drawable-xxhdpi/icon_cloud_video_nor.png
new file mode 100644
index 0000000..e4a8a7c
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_cloud_video_nor.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_cloud_video_per.png b/app/src/skyworth/res/drawable-xxhdpi/icon_cloud_video_per.png
new file mode 100644
index 0000000..b3c05f2
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_cloud_video_per.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_column_control_nor.png b/app/src/skyworth/res/drawable-xxhdpi/icon_column_control_nor.png
new file mode 100644
index 0000000..79174cf
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_column_control_nor.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_column_control_pre.png b/app/src/skyworth/res/drawable-xxhdpi/icon_column_control_pre.png
new file mode 100644
index 0000000..086ee49
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_column_control_pre.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_column_lockscreen.png b/app/src/skyworth/res/drawable-xxhdpi/icon_column_lockscreen.png
new file mode 100644
index 0000000..eeec8e1
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_column_lockscreen.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_column_lockscreen_per.png b/app/src/skyworth/res/drawable-xxhdpi/icon_column_lockscreen_per.png
new file mode 100644
index 0000000..8ac8f92
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_column_lockscreen_per.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_column_photograph.png b/app/src/skyworth/res/drawable-xxhdpi/icon_column_photograph.png
new file mode 100644
index 0000000..1a99785
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_column_photograph.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_column_play.png b/app/src/skyworth/res/drawable-xxhdpi/icon_column_play.png
new file mode 100644
index 0000000..8a88067
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_column_play.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_column_screen.png b/app/src/skyworth/res/drawable-xxhdpi/icon_column_screen.png
new file mode 100644
index 0000000..189b18d
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_column_screen.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_column_suspend.png b/app/src/skyworth/res/drawable-xxhdpi/icon_column_suspend.png
new file mode 100644
index 0000000..eef96d6
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_column_suspend.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_column_suspend1.png b/app/src/skyworth/res/drawable-xxhdpi/icon_column_suspend1.png
new file mode 100644
index 0000000..603778f
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_column_suspend1.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_column_suspend_per.png b/app/src/skyworth/res/drawable-xxhdpi/icon_column_suspend_per.png
new file mode 100644
index 0000000..b7d2ec3
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_column_suspend_per.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_column_videotape.png b/app/src/skyworth/res/drawable-xxhdpi/icon_column_videotape.png
new file mode 100644
index 0000000..b8d0aeb
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_column_videotape.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_column_videotape_per.png b/app/src/skyworth/res/drawable-xxhdpi/icon_column_videotape_per.png
new file mode 100644
index 0000000..03019ed
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_column_videotape_per.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_combination.png b/app/src/skyworth/res/drawable-xxhdpi/icon_combination.png
new file mode 100644
index 0000000..63681b3
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_combination.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_control_nor.png b/app/src/skyworth/res/drawable-xxhdpi/icon_control_nor.png
new file mode 100644
index 0000000..ec2ee6d
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_control_nor.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_control_pre.png b/app/src/skyworth/res/drawable-xxhdpi/icon_control_pre.png
new file mode 100644
index 0000000..31c30b0
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_control_pre.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_curtain_close.png b/app/src/skyworth/res/drawable-xxhdpi/icon_curtain_close.png
new file mode 100644
index 0000000..2507367
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_curtain_close.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_curtain_elevator.png b/app/src/skyworth/res/drawable-xxhdpi/icon_curtain_elevator.png
new file mode 100644
index 0000000..975fbc6
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_curtain_elevator.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_curtain_open.png b/app/src/skyworth/res/drawable-xxhdpi/icon_curtain_open.png
new file mode 100644
index 0000000..f15a2f5
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_curtain_open.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_curtain_stop.png b/app/src/skyworth/res/drawable-xxhdpi/icon_curtain_stop.png
new file mode 100644
index 0000000..44b1419
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_curtain_stop.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_curtaingauzecurtain.png b/app/src/skyworth/res/drawable-xxhdpi/icon_curtaingauzecurtain.png
new file mode 100644
index 0000000..87a4413
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_curtaingauzecurtain.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_curtains.png b/app/src/skyworth/res/drawable-xxhdpi/icon_curtains.png
new file mode 100644
index 0000000..69e9813
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_curtains.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_custom_room.png b/app/src/skyworth/res/drawable-xxhdpi/icon_custom_room.png
new file mode 100644
index 0000000..3fece95
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_custom_room.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_dark.png b/app/src/skyworth/res/drawable-xxhdpi/icon_dark.png
new file mode 100644
index 0000000..7342dff
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_dark.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_deletel_home.png b/app/src/skyworth/res/drawable-xxhdpi/icon_deletel_home.png
new file mode 100644
index 0000000..1c27f58
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_deletel_home.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_desklamp.png b/app/src/skyworth/res/drawable-xxhdpi/icon_desklamp.png
new file mode 100644
index 0000000..a16263c
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_desklamp.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_device_more.png b/app/src/skyworth/res/drawable-xxhdpi/icon_device_more.png
new file mode 100644
index 0000000..6a2c13c
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_device_more.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_device_plug_t1.png b/app/src/skyworth/res/drawable-xxhdpi/icon_device_plug_t1.png
new file mode 100644
index 0000000..97a9f37
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_device_plug_t1.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_device_plug_t4.png b/app/src/skyworth/res/drawable-xxhdpi/icon_device_plug_t4.png
new file mode 100644
index 0000000..3af7226
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_device_plug_t4.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_device_qingjing_t5.png b/app/src/skyworth/res/drawable-xxhdpi/icon_device_qingjing_t5.png
new file mode 100644
index 0000000..f10ff45
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_device_qingjing_t5.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_device_wallsocket_t2.png b/app/src/skyworth/res/drawable-xxhdpi/icon_device_wallsocket_t2.png
new file mode 100644
index 0000000..97affb0
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_device_wallsocket_t2.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_device_wifi_socket.png b/app/src/skyworth/res/drawable-xxhdpi/icon_device_wifi_socket.png
new file mode 100644
index 0000000..0eaedfe
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_device_wifi_socket.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_dialogue_nor.png b/app/src/skyworth/res/drawable-xxhdpi/icon_dialogue_nor.png
new file mode 100644
index 0000000..1611fe5
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_dialogue_nor.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_dialogue_pre.png b/app/src/skyworth/res/drawable-xxhdpi/icon_dialogue_pre.png
new file mode 100644
index 0000000..8b0cdf1
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_dialogue_pre.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_direction.png b/app/src/skyworth/res/drawable-xxhdpi/icon_direction.png
new file mode 100644
index 0000000..94ae68e
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_direction.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_direction_down.png b/app/src/skyworth/res/drawable-xxhdpi/icon_direction_down.png
new file mode 100644
index 0000000..9933da5
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_direction_down.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_direction_left.png b/app/src/skyworth/res/drawable-xxhdpi/icon_direction_left.png
new file mode 100644
index 0000000..546c249
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_direction_left.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_direction_right.png b/app/src/skyworth/res/drawable-xxhdpi/icon_direction_right.png
new file mode 100644
index 0000000..c986771
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_direction_right.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_direction_up.png b/app/src/skyworth/res/drawable-xxhdpi/icon_direction_up.png
new file mode 100644
index 0000000..8ee18ab
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_direction_up.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_dwx.png b/app/src/skyworth/res/drawable-xxhdpi/icon_dwx.png
new file mode 100644
index 0000000..b536425
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_dwx.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_elevator.png b/app/src/skyworth/res/drawable-xxhdpi/icon_elevator.png
new file mode 100644
index 0000000..11ba70e
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_elevator.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_exhaust.png b/app/src/skyworth/res/drawable-xxhdpi/icon_exhaust.png
new file mode 100644
index 0000000..694a4eb
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_exhaust.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_five_room.png b/app/src/skyworth/res/drawable-xxhdpi/icon_five_room.png
new file mode 100644
index 0000000..45d71e4
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_five_room.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_fork.png b/app/src/skyworth/res/drawable-xxhdpi/icon_fork.png
new file mode 100644
index 0000000..c090f77
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_fork.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_four_room.png b/app/src/skyworth/res/drawable-xxhdpi/icon_four_room.png
new file mode 100644
index 0000000..506fab8
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_four_room.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_fs.png b/app/src/skyworth/res/drawable-xxhdpi/icon_fs.png
new file mode 100644
index 0000000..3d03c15
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_fs.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_garage.png b/app/src/skyworth/res/drawable-xxhdpi/icon_garage.png
new file mode 100644
index 0000000..f4ca044
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_garage.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_gas.png b/app/src/skyworth/res/drawable-xxhdpi/icon_gas.png
new file mode 100644
index 0000000..03a186f
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_gas.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_gas_433.png b/app/src/skyworth/res/drawable-xxhdpi/icon_gas_433.png
new file mode 100644
index 0000000..9d33aaa
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_gas_433.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_gatemagnetic.png b/app/src/skyworth/res/drawable-xxhdpi/icon_gatemagnetic.png
new file mode 100644
index 0000000..8dc9ff4
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_gatemagnetic.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_gatemagnetic_433.png b/app/src/skyworth/res/drawable-xxhdpi/icon_gatemagnetic_433.png
new file mode 100644
index 0000000..fad7175
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_gatemagnetic_433.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_gateway_dh.png b/app/src/skyworth/res/drawable-xxhdpi/icon_gateway_dh.png
new file mode 100644
index 0000000..f8e24b2
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_gateway_dh.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_gauze.png b/app/src/skyworth/res/drawable-xxhdpi/icon_gauze.png
new file mode 100644
index 0000000..16731fc
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_gauze.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_goback_nor.png b/app/src/skyworth/res/drawable-xxhdpi/icon_goback_nor.png
new file mode 100644
index 0000000..88bb428
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_goback_nor.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_heater.png b/app/src/skyworth/res/drawable-xxhdpi/icon_heater.png
new file mode 100644
index 0000000..606f109
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_heater.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_implement_open.png b/app/src/skyworth/res/drawable-xxhdpi/icon_implement_open.png
new file mode 100644
index 0000000..ec43e5c
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_implement_open.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_implement_shut.png b/app/src/skyworth/res/drawable-xxhdpi/icon_implement_shut.png
new file mode 100644
index 0000000..b8d5ac6
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_implement_shut.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_index_nor.png b/app/src/skyworth/res/drawable-xxhdpi/icon_index_nor.png
new file mode 100644
index 0000000..1233bb7
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_index_nor.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_infrared.png b/app/src/skyworth/res/drawable-xxhdpi/icon_infrared.png
new file mode 100644
index 0000000..3fbcfc0
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_infrared.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_infrared_433.png b/app/src/skyworth/res/drawable-xxhdpi/icon_infrared_433.png
new file mode 100644
index 0000000..07c2e25
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_infrared_433.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_kettle.png b/app/src/skyworth/res/drawable-xxhdpi/icon_kettle.png
new file mode 100644
index 0000000..a09590d
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_kettle.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_kitchenpower.png b/app/src/skyworth/res/drawable-xxhdpi/icon_kitchenpower.png
new file mode 100644
index 0000000..90064a1
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_kitchenpower.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_kt.png b/app/src/skyworth/res/drawable-xxhdpi/icon_kt.png
new file mode 100644
index 0000000..927f601
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_kt.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_lamp.png b/app/src/skyworth/res/drawable-xxhdpi/icon_lamp.png
new file mode 100644
index 0000000..1460b04
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_lamp.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_leanhelp.png b/app/src/skyworth/res/drawable-xxhdpi/icon_leanhelp.png
new file mode 100644
index 0000000..3cf51fd
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_leanhelp.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_light.png b/app/src/skyworth/res/drawable-xxhdpi/icon_light.png
new file mode 100644
index 0000000..ff37835
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_light.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_lightbelt.png b/app/src/skyworth/res/drawable-xxhdpi/icon_lightbelt.png
new file mode 100644
index 0000000..9cafed8
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_lightbelt.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_local_video_nor.png b/app/src/skyworth/res/drawable-xxhdpi/icon_local_video_nor.png
new file mode 100644
index 0000000..2330b9f
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_local_video_nor.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_local_video_per.png b/app/src/skyworth/res/drawable-xxhdpi/icon_local_video_per.png
new file mode 100644
index 0000000..1be1d80
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_local_video_per.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_menu_nor.png b/app/src/skyworth/res/drawable-xxhdpi/icon_menu_nor.png
new file mode 100644
index 0000000..2c23ca4
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_menu_nor.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_message_alert.png b/app/src/skyworth/res/drawable-xxhdpi/icon_message_alert.png
new file mode 100644
index 0000000..f8e9089
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_message_alert.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_message_system.png b/app/src/skyworth/res/drawable-xxhdpi/icon_message_system.png
new file mode 100644
index 0000000..0ece579
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_message_system.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_multifunctional.png b/app/src/skyworth/res/drawable-xxhdpi/icon_multifunctional.png
new file mode 100644
index 0000000..797a013
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_multifunctional.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_music.png b/app/src/skyworth/res/drawable-xxhdpi/icon_music.png
new file mode 100644
index 0000000..369963a
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_music.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_music_mute.png b/app/src/skyworth/res/drawable-xxhdpi/icon_music_mute.png
new file mode 100644
index 0000000..a900531
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_music_mute.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_music_suspend.png b/app/src/skyworth/res/drawable-xxhdpi/icon_music_suspend.png
new file mode 100644
index 0000000..44b1419
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_music_suspend.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_nav_add.png b/app/src/skyworth/res/drawable-xxhdpi/icon_nav_add.png
new file mode 100644
index 0000000..9c2202d
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_nav_add.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_nav_add_black.png b/app/src/skyworth/res/drawable-xxhdpi/icon_nav_add_black.png
new file mode 100644
index 0000000..4aefa18
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_nav_add_black.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_nav_reduce.png b/app/src/skyworth/res/drawable-xxhdpi/icon_nav_reduce.png
new file mode 100644
index 0000000..8a0dfd4
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_nav_reduce.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_new_home.png b/app/src/skyworth/res/drawable-xxhdpi/icon_new_home.png
new file mode 100644
index 0000000..d7c61dd
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_new_home.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_no_video.png b/app/src/skyworth/res/drawable-xxhdpi/icon_no_video.png
new file mode 100644
index 0000000..644f319
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_no_video.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_one_room.png b/app/src/skyworth/res/drawable-xxhdpi/icon_one_room.png
new file mode 100644
index 0000000..fbf89c2
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_one_room.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_photograph_nor.png b/app/src/skyworth/res/drawable-xxhdpi/icon_photograph_nor.png
new file mode 100644
index 0000000..bc646f9
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_photograph_nor.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_photograph_pre.png b/app/src/skyworth/res/drawable-xxhdpi/icon_photograph_pre.png
new file mode 100644
index 0000000..220dba3
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_photograph_pre.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_popup_attention_offline.png b/app/src/skyworth/res/drawable-xxhdpi/icon_popup_attention_offline.png
new file mode 100644
index 0000000..36b07ad
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_popup_attention_offline.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_porchlamp.png b/app/src/skyworth/res/drawable-xxhdpi/icon_porchlamp.png
new file mode 100644
index 0000000..7ee1bc7
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_porchlamp.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_quiet_nor.png b/app/src/skyworth/res/drawable-xxhdpi/icon_quiet_nor.png
new file mode 100644
index 0000000..6b69328
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_quiet_nor.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_quiet_press.png b/app/src/skyworth/res/drawable-xxhdpi/icon_quiet_press.png
new file mode 100644
index 0000000..a900531
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_quiet_press.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_room_three.png b/app/src/skyworth/res/drawable-xxhdpi/icon_room_three.png
new file mode 100644
index 0000000..d2da9f4
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_room_three.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_screen_cloud_control.png b/app/src/skyworth/res/drawable-xxhdpi/icon_screen_cloud_control.png
new file mode 100644
index 0000000..a6c4a08
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_screen_cloud_control.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_search_airer.png b/app/src/skyworth/res/drawable-xxhdpi/icon_search_airer.png
new file mode 100644
index 0000000..9c8df07
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_search_airer.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_set_top_box.png b/app/src/skyworth/res/drawable-xxhdpi/icon_set_top_box.png
new file mode 100644
index 0000000..c27bf4a
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_set_top_box.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_share_nor.png b/app/src/skyworth/res/drawable-xxhdpi/icon_share_nor.png
new file mode 100644
index 0000000..d165f16
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_share_nor.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_share_pre.png b/app/src/skyworth/res/drawable-xxhdpi/icon_share_pre.png
new file mode 100644
index 0000000..5158ac3
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_share_pre.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_smoke.png b/app/src/skyworth/res/drawable-xxhdpi/icon_smoke.png
new file mode 100644
index 0000000..09dfdce
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_smoke.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_smoke_433.png b/app/src/skyworth/res/drawable-xxhdpi/icon_smoke_433.png
new file mode 100644
index 0000000..7cd343f
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_smoke_433.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_spray.png b/app/src/skyworth/res/drawable-xxhdpi/icon_spray.png
new file mode 100644
index 0000000..1a77c1f
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_spray.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_step.png b/app/src/skyworth/res/drawable-xxhdpi/icon_step.png
new file mode 100644
index 0000000..222e529
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_step.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_step_three.png b/app/src/skyworth/res/drawable-xxhdpi/icon_step_three.png
new file mode 100644
index 0000000..ec08cf0
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_step_three.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_sterilizing_lamp.png b/app/src/skyworth/res/drawable-xxhdpi/icon_sterilizing_lamp.png
new file mode 100644
index 0000000..4e49d7e
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_sterilizing_lamp.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_style.png b/app/src/skyworth/res/drawable-xxhdpi/icon_style.png
new file mode 100644
index 0000000..49f0ebf
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_style.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_sunshade.png b/app/src/skyworth/res/drawable-xxhdpi/icon_sunshade.png
new file mode 100644
index 0000000..5b4af14
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_sunshade.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_switch_off.png b/app/src/skyworth/res/drawable-xxhdpi/icon_switch_off.png
new file mode 100644
index 0000000..ace3494
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_switch_off.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_switch_on.png b/app/src/skyworth/res/drawable-xxhdpi/icon_switch_on.png
new file mode 100644
index 0000000..075c903
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_switch_on.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_switch_open.png b/app/src/skyworth/res/drawable-xxhdpi/icon_switch_open.png
new file mode 100644
index 0000000..075c903
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_switch_open.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_tubelamp.png b/app/src/skyworth/res/drawable-xxhdpi/icon_tubelamp.png
new file mode 100644
index 0000000..168f488
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_tubelamp.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_tv.png b/app/src/skyworth/res/drawable-xxhdpi/icon_tv.png
new file mode 100644
index 0000000..ce5a501
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_tv.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_tv_ok.png b/app/src/skyworth/res/drawable-xxhdpi/icon_tv_ok.png
new file mode 100644
index 0000000..6fa7c9c
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_tv_ok.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_two_room.png b/app/src/skyworth/res/drawable-xxhdpi/icon_two_room.png
new file mode 100644
index 0000000..90e0eee
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_two_room.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_video_control.png b/app/src/skyworth/res/drawable-xxhdpi/icon_video_control.png
new file mode 100644
index 0000000..f757236
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_video_control.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_videotape_nor.png b/app/src/skyworth/res/drawable-xxhdpi/icon_videotape_nor.png
new file mode 100644
index 0000000..928c88b
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_videotape_nor.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_videotape_pre.png b/app/src/skyworth/res/drawable-xxhdpi/icon_videotape_pre.png
new file mode 100644
index 0000000..15c9620
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_videotape_pre.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_villa.png b/app/src/skyworth/res/drawable-xxhdpi/icon_villa.png
new file mode 100644
index 0000000..6535f0e
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_villa.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_voice_help.png b/app/src/skyworth/res/drawable-xxhdpi/icon_voice_help.png
new file mode 100644
index 0000000..6db4ce6
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_voice_help.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_voice_nor.png b/app/src/skyworth/res/drawable-xxhdpi/icon_voice_nor.png
new file mode 100644
index 0000000..9c4b1fc
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_voice_nor.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_voice_off.png b/app/src/skyworth/res/drawable-xxhdpi/icon_voice_off.png
new file mode 100644
index 0000000..0ae61f2
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_voice_off.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_voice_on.png b/app/src/skyworth/res/drawable-xxhdpi/icon_voice_on.png
new file mode 100644
index 0000000..bdfc4af
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_voice_on.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_voice_robot.png b/app/src/skyworth/res/drawable-xxhdpi/icon_voice_robot.png
new file mode 100644
index 0000000..23dc69a
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_voice_robot.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_vol_add.png b/app/src/skyworth/res/drawable-xxhdpi/icon_vol_add.png
new file mode 100644
index 0000000..9c2202d
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_vol_add.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_vol_reduce.png b/app/src/skyworth/res/drawable-xxhdpi/icon_vol_reduce.png
new file mode 100644
index 0000000..8a0dfd4
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_vol_reduce.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_walllamp.png b/app/src/skyworth/res/drawable-xxhdpi/icon_walllamp.png
new file mode 100644
index 0000000..b6ece2c
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_walllamp.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_wallsocket.png b/app/src/skyworth/res/drawable-xxhdpi/icon_wallsocket.png
new file mode 100644
index 0000000..96fe96b
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_wallsocket.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_waterimmersion.png b/app/src/skyworth/res/drawable-xxhdpi/icon_waterimmersion.png
new file mode 100644
index 0000000..4ed529f
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_waterimmersion.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_waterimmersion_433.png b/app/src/skyworth/res/drawable-xxhdpi/icon_waterimmersion_433.png
new file mode 100644
index 0000000..e0bfba5
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_waterimmersion_433.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_wifi.png b/app/src/skyworth/res/drawable-xxhdpi/icon_wifi.png
new file mode 100644
index 0000000..e8dded8
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_wifi.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/icon_window_opener.png b/app/src/skyworth/res/drawable-xxhdpi/icon_window_opener.png
new file mode 100644
index 0000000..581dc5b
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/icon_window_opener.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/index_icon_find_pre.png b/app/src/skyworth/res/drawable-xxhdpi/index_icon_find_pre.png
new file mode 100644
index 0000000..735ec68
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/index_icon_find_pre.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/index_icon_index_nor.png b/app/src/skyworth/res/drawable-xxhdpi/index_icon_index_nor.png
new file mode 100644
index 0000000..fb9c730
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/index_icon_index_nor.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/index_icon_index_pre.png b/app/src/skyworth/res/drawable-xxhdpi/index_icon_index_pre.png
new file mode 100644
index 0000000..99e214d
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/index_icon_index_pre.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/index_icon_scene_nor.png b/app/src/skyworth/res/drawable-xxhdpi/index_icon_scene_nor.png
new file mode 100644
index 0000000..36599bb
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/index_icon_scene_nor.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/index_icon_scene_pre.png b/app/src/skyworth/res/drawable-xxhdpi/index_icon_scene_pre.png
new file mode 100644
index 0000000..537ea53
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/index_icon_scene_pre.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/index_icon_voice_nor.png b/app/src/skyworth/res/drawable-xxhdpi/index_icon_voice_nor.png
new file mode 100644
index 0000000..63d8778
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/index_icon_voice_nor.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/index_icon_wode_nor.png b/app/src/skyworth/res/drawable-xxhdpi/index_icon_wode_nor.png
new file mode 100644
index 0000000..d7f5db9
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/index_icon_wode_nor.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/index_icon_wode_pre.png b/app/src/skyworth/res/drawable-xxhdpi/index_icon_wode_pre.png
new file mode 100644
index 0000000..5908458
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/index_icon_wode_pre.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/lecheng_icon.png b/app/src/skyworth/res/drawable-xxhdpi/lecheng_icon.png
new file mode 100644
index 0000000..4047c62
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/lecheng_icon.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/loading_icon.png b/app/src/skyworth/res/drawable-xxhdpi/loading_icon.png
new file mode 100644
index 0000000..43e45d3
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/loading_icon.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/pic_add_finish_camera.png b/app/src/skyworth/res/drawable-xxhdpi/pic_add_finish_camera.png
new file mode 100644
index 0000000..b43637f
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/pic_add_finish_camera.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/pic_add_socket.png b/app/src/skyworth/res/drawable-xxhdpi/pic_add_socket.png
new file mode 100644
index 0000000..321ded9
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/pic_add_socket.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/pic_airer_decline.png b/app/src/skyworth/res/drawable-xxhdpi/pic_airer_decline.png
new file mode 100644
index 0000000..25d108f
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/pic_airer_decline.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/pic_autogate.png b/app/src/skyworth/res/drawable-xxhdpi/pic_autogate.png
new file mode 100644
index 0000000..1491d8c
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/pic_autogate.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/pic_camera_background.png b/app/src/skyworth/res/drawable-xxhdpi/pic_camera_background.png
new file mode 100644
index 0000000..235cef5
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/pic_camera_background.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/pic_camera_indicator.png b/app/src/skyworth/res/drawable-xxhdpi/pic_camera_indicator.png
new file mode 100644
index 0000000..472c1d0
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/pic_camera_indicator.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/pic_camera_overtime.png b/app/src/skyworth/res/drawable-xxhdpi/pic_camera_overtime.png
new file mode 100644
index 0000000..a8c5eaa
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/pic_camera_overtime.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/pic_chandelier.png b/app/src/skyworth/res/drawable-xxhdpi/pic_chandelier.png
new file mode 100644
index 0000000..ab348a5
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/pic_chandelier.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/pic_chazuo.png b/app/src/skyworth/res/drawable-xxhdpi/pic_chazuo.png
new file mode 100644
index 0000000..a236b11
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/pic_chazuo.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/pic_chazuo_2.png b/app/src/skyworth/res/drawable-xxhdpi/pic_chazuo_2.png
new file mode 100644
index 0000000..94d076b
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/pic_chazuo_2.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/pic_chazuo_t4.png b/app/src/skyworth/res/drawable-xxhdpi/pic_chazuo_t4.png
new file mode 100644
index 0000000..8ec0bad
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/pic_chazuo_t4.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/pic_close_back.png b/app/src/skyworth/res/drawable-xxhdpi/pic_close_back.png
new file mode 100644
index 0000000..b8f7b41
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/pic_close_back.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/pic_close_window.png b/app/src/skyworth/res/drawable-xxhdpi/pic_close_window.png
new file mode 100644
index 0000000..ae86722
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/pic_close_window.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/pic_control_scene.png b/app/src/skyworth/res/drawable-xxhdpi/pic_control_scene.png
new file mode 100644
index 0000000..8304c79
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/pic_control_scene.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/pic_control_scene1.png b/app/src/skyworth/res/drawable-xxhdpi/pic_control_scene1.png
new file mode 100644
index 0000000..a21cbf8
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/pic_control_scene1.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/pic_control_scene2.png b/app/src/skyworth/res/drawable-xxhdpi/pic_control_scene2.png
new file mode 100644
index 0000000..11ef32b
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/pic_control_scene2.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/pic_control_scene3.png b/app/src/skyworth/res/drawable-xxhdpi/pic_control_scene3.png
new file mode 100644
index 0000000..9cdf370
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/pic_control_scene3.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/pic_control_scene4.png b/app/src/skyworth/res/drawable-xxhdpi/pic_control_scene4.png
new file mode 100644
index 0000000..ea9ac4e
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/pic_control_scene4.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/pic_control_scene6.png b/app/src/skyworth/res/drawable-xxhdpi/pic_control_scene6.png
new file mode 100644
index 0000000..15b5469
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/pic_control_scene6.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/pic_curtain.png b/app/src/skyworth/res/drawable-xxhdpi/pic_curtain.png
new file mode 100644
index 0000000..7e2afed
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/pic_curtain.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/pic_curtain_elevator.png b/app/src/skyworth/res/drawable-xxhdpi/pic_curtain_elevator.png
new file mode 100644
index 0000000..1653027
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/pic_curtain_elevator.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/pic_dehumidify_back.png b/app/src/skyworth/res/drawable-xxhdpi/pic_dehumidify_back.png
new file mode 100644
index 0000000..47d084b
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/pic_dehumidify_back.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/pic_desklamp.png b/app/src/skyworth/res/drawable-xxhdpi/pic_desklamp.png
new file mode 100644
index 0000000..9fb36ab
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/pic_desklamp.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/pic_dwx.png b/app/src/skyworth/res/drawable-xxhdpi/pic_dwx.png
new file mode 100644
index 0000000..2efbfc5
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/pic_dwx.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/pic_electricfan.png b/app/src/skyworth/res/drawable-xxhdpi/pic_electricfan.png
new file mode 100644
index 0000000..d5e1f32
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/pic_electricfan.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/pic_elevator.png b/app/src/skyworth/res/drawable-xxhdpi/pic_elevator.png
new file mode 100644
index 0000000..f5263fe
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/pic_elevator.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/pic_exhaust.png b/app/src/skyworth/res/drawable-xxhdpi/pic_exhaust.png
new file mode 100644
index 0000000..050a8f2
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/pic_exhaust.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/pic_garage.png b/app/src/skyworth/res/drawable-xxhdpi/pic_garage.png
new file mode 100644
index 0000000..14a24a0
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/pic_garage.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/pic_gauze.png b/app/src/skyworth/res/drawable-xxhdpi/pic_gauze.png
new file mode 100644
index 0000000..9a25328
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/pic_gauze.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/pic_guidepage1.png b/app/src/skyworth/res/drawable-xxhdpi/pic_guidepage1.png
new file mode 100644
index 0000000..817c7e5
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/pic_guidepage1.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/pic_guidepage2.png b/app/src/skyworth/res/drawable-xxhdpi/pic_guidepage2.png
new file mode 100644
index 0000000..b6cc57b
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/pic_guidepage2.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/pic_guidepage3.png b/app/src/skyworth/res/drawable-xxhdpi/pic_guidepage3.png
new file mode 100644
index 0000000..450958f
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/pic_guidepage3.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/pic_heater.png b/app/src/skyworth/res/drawable-xxhdpi/pic_heater.png
new file mode 100644
index 0000000..e396f9c
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/pic_heater.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/pic_heating_back.png b/app/src/skyworth/res/drawable-xxhdpi/pic_heating_back.png
new file mode 100644
index 0000000..fea82f8
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/pic_heating_back.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/pic_kettle.png b/app/src/skyworth/res/drawable-xxhdpi/pic_kettle.png
new file mode 100644
index 0000000..fa65c88
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/pic_kettle.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/pic_kitchenpower.png b/app/src/skyworth/res/drawable-xxhdpi/pic_kitchenpower.png
new file mode 100644
index 0000000..2e1d5be
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/pic_kitchenpower.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/pic_lamp.png b/app/src/skyworth/res/drawable-xxhdpi/pic_lamp.png
new file mode 100644
index 0000000..c420a36
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/pic_lamp.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/pic_light_close.png b/app/src/skyworth/res/drawable-xxhdpi/pic_light_close.png
new file mode 100644
index 0000000..8c6987a
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/pic_light_close.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/pic_light_open.png b/app/src/skyworth/res/drawable-xxhdpi/pic_light_open.png
new file mode 100644
index 0000000..8c6987a
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/pic_light_open.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/pic_lightbelt.png b/app/src/skyworth/res/drawable-xxhdpi/pic_lightbelt.png
new file mode 100644
index 0000000..f80a7e3
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/pic_lightbelt.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/pic_multifunctional.png b/app/src/skyworth/res/drawable-xxhdpi/pic_multifunctional.png
new file mode 100644
index 0000000..74b68fc
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/pic_multifunctional.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/pic_music_add.png b/app/src/skyworth/res/drawable-xxhdpi/pic_music_add.png
new file mode 100644
index 0000000..942c287
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/pic_music_add.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/pic_music_key.png b/app/src/skyworth/res/drawable-xxhdpi/pic_music_key.png
new file mode 100644
index 0000000..ebb8b19
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/pic_music_key.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/pic_music_last.png b/app/src/skyworth/res/drawable-xxhdpi/pic_music_last.png
new file mode 100644
index 0000000..7f979e0
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/pic_music_last.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/pic_music_next.png b/app/src/skyworth/res/drawable-xxhdpi/pic_music_next.png
new file mode 100644
index 0000000..6c58cc3
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/pic_music_next.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/pic_music_reduce.png b/app/src/skyworth/res/drawable-xxhdpi/pic_music_reduce.png
new file mode 100644
index 0000000..3e77433
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/pic_music_reduce.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/pic_no_device.png b/app/src/skyworth/res/drawable-xxhdpi/pic_no_device.png
new file mode 100644
index 0000000..cc5ecbd
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/pic_no_device.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/pic_nointeractive.png b/app/src/skyworth/res/drawable-xxhdpi/pic_nointeractive.png
new file mode 100644
index 0000000..eb09441
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/pic_nointeractive.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/pic_plug_t1.png b/app/src/skyworth/res/drawable-xxhdpi/pic_plug_t1.png
new file mode 100644
index 0000000..368ebc3
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/pic_plug_t1.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/pic_plug_t4.png b/app/src/skyworth/res/drawable-xxhdpi/pic_plug_t4.png
new file mode 100644
index 0000000..a236b11
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/pic_plug_t4.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/pic_porchlamp.png b/app/src/skyworth/res/drawable-xxhdpi/pic_porchlamp.png
new file mode 100644
index 0000000..1db220c
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/pic_porchlamp.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/pic_public_code.png b/app/src/skyworth/res/drawable-xxhdpi/pic_public_code.png
new file mode 100644
index 0000000..55fc6f2
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/pic_public_code.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/pic_refrigeration_back.png b/app/src/skyworth/res/drawable-xxhdpi/pic_refrigeration_back.png
new file mode 100644
index 0000000..9670ec3
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/pic_refrigeration_back.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/pic_router.png b/app/src/skyworth/res/drawable-xxhdpi/pic_router.png
new file mode 100644
index 0000000..4d59bc4
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/pic_router.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/pic_security.png b/app/src/skyworth/res/drawable-xxhdpi/pic_security.png
new file mode 100644
index 0000000..7d77ac6
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/pic_security.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/pic_spray.png b/app/src/skyworth/res/drawable-xxhdpi/pic_spray.png
new file mode 100644
index 0000000..59c5396
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/pic_spray.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/pic_sterilizing_lamp.png b/app/src/skyworth/res/drawable-xxhdpi/pic_sterilizing_lamp.png
new file mode 100644
index 0000000..e58534e
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/pic_sterilizing_lamp.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/pic_storage.png b/app/src/skyworth/res/drawable-xxhdpi/pic_storage.png
new file mode 100644
index 0000000..b602f1e
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/pic_storage.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/pic_sunshade.png b/app/src/skyworth/res/drawable-xxhdpi/pic_sunshade.png
new file mode 100644
index 0000000..d4784ae
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/pic_sunshade.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/pic_tubelamp.png b/app/src/skyworth/res/drawable-xxhdpi/pic_tubelamp.png
new file mode 100644
index 0000000..929507f
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/pic_tubelamp.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/pic_video_background.png b/app/src/skyworth/res/drawable-xxhdpi/pic_video_background.png
new file mode 100644
index 0000000..7405cef
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/pic_video_background.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/pic_videotape.png b/app/src/skyworth/res/drawable-xxhdpi/pic_videotape.png
new file mode 100644
index 0000000..1465176
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/pic_videotape.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/pic_walllamp.png b/app/src/skyworth/res/drawable-xxhdpi/pic_walllamp.png
new file mode 100644
index 0000000..e69bd17
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/pic_walllamp.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/pic_wallsocket_t2.png b/app/src/skyworth/res/drawable-xxhdpi/pic_wallsocket_t2.png
new file mode 100644
index 0000000..fb7ada8
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/pic_wallsocket_t2.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/pic_wifi_socket.png b/app/src/skyworth/res/drawable-xxhdpi/pic_wifi_socket.png
new file mode 100644
index 0000000..97716a7
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/pic_wifi_socket.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/pic_window.png b/app/src/skyworth/res/drawable-xxhdpi/pic_window.png
new file mode 100644
index 0000000..ae86722
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/pic_window.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/select_reveal_copy.png b/app/src/skyworth/res/drawable-xxhdpi/select_reveal_copy.png
new file mode 100644
index 0000000..5375943
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/select_reveal_copy.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/select_unnor1.png b/app/src/skyworth/res/drawable-xxhdpi/select_unnor1.png
new file mode 100644
index 0000000..ee4be75
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/select_unnor1.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/select_unnor2.png b/app/src/skyworth/res/drawable-xxhdpi/select_unnor2.png
new file mode 100644
index 0000000..fb8a828
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/select_unnor2.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/wode_icon_code.png b/app/src/skyworth/res/drawable-xxhdpi/wode_icon_code.png
new file mode 100644
index 0000000..da5dcf6
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/wode_icon_code.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/wode_icon_device_management.png b/app/src/skyworth/res/drawable-xxhdpi/wode_icon_device_management.png
new file mode 100644
index 0000000..8eebcfd
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/wode_icon_device_management.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/wode_icon_news.png b/app/src/skyworth/res/drawable-xxhdpi/wode_icon_news.png
new file mode 100644
index 0000000..8053b2a
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/wode_icon_news.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/wode_icon_servicecenter.png b/app/src/skyworth/res/drawable-xxhdpi/wode_icon_servicecenter.png
new file mode 100644
index 0000000..7330ae4
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/wode_icon_servicecenter.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/wode_icon_setting.png b/app/src/skyworth/res/drawable-xxhdpi/wode_icon_setting.png
new file mode 100644
index 0000000..12670b5
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/wode_icon_setting.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/wode_icon_timing.png b/app/src/skyworth/res/drawable-xxhdpi/wode_icon_timing.png
new file mode 100644
index 0000000..b3b99c9
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/wode_icon_timing.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/wode_icon_update.png b/app/src/skyworth/res/drawable-xxhdpi/wode_icon_update.png
new file mode 100644
index 0000000..91c8478
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/wode_icon_update.png differ
diff --git a/app/src/skyworth/res/drawable-xxhdpi/wode_icon_xiaoai.png b/app/src/skyworth/res/drawable-xxhdpi/wode_icon_xiaoai.png
new file mode 100644
index 0000000..c837a86
Binary files /dev/null and b/app/src/skyworth/res/drawable-xxhdpi/wode_icon_xiaoai.png differ
diff --git a/app/src/skyworth/res/drawable/alarm_message_underline.xml b/app/src/skyworth/res/drawable/alarm_message_underline.xml
new file mode 100644
index 0000000..a43ef0f
--- /dev/null
+++ b/app/src/skyworth/res/drawable/alarm_message_underline.xml
@@ -0,0 +1,16 @@
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+
+
+
diff --git a/app/src/skyworth/res/drawable/bg_wheel.xml b/app/src/skyworth/res/drawable/bg_wheel.xml
new file mode 100644
index 0000000..2e8ad22
--- /dev/null
+++ b/app/src/skyworth/res/drawable/bg_wheel.xml
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/skyworth/res/drawable/btn_moveplan_switch.xml b/app/src/skyworth/res/drawable/btn_moveplan_switch.xml
new file mode 100644
index 0000000..6500b79
--- /dev/null
+++ b/app/src/skyworth/res/drawable/btn_moveplan_switch.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
diff --git a/app/src/skyworth/res/drawable/btn_round_360_bg.xml b/app/src/skyworth/res/drawable/btn_round_360_bg.xml
new file mode 100644
index 0000000..369cd2d
--- /dev/null
+++ b/app/src/skyworth/res/drawable/btn_round_360_bg.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/skyworth/res/drawable/btn_round_360_bg_center.xml b/app/src/skyworth/res/drawable/btn_round_360_bg_center.xml
new file mode 100644
index 0000000..bd7c76e
--- /dev/null
+++ b/app/src/skyworth/res/drawable/btn_round_360_bg_center.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/skyworth/res/drawable/btn_round_360_stroke.xml b/app/src/skyworth/res/drawable/btn_round_360_stroke.xml
new file mode 100644
index 0000000..c2c23f8
--- /dev/null
+++ b/app/src/skyworth/res/drawable/btn_round_360_stroke.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/skyworth/res/drawable/icon_cloud_control.xml b/app/src/skyworth/res/drawable/icon_cloud_control.xml
new file mode 100644
index 0000000..54fcd7c
--- /dev/null
+++ b/app/src/skyworth/res/drawable/icon_cloud_control.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/skyworth/res/drawable/select_lockscreen.xml b/app/src/skyworth/res/drawable/select_lockscreen.xml
new file mode 100644
index 0000000..5cc57b7
--- /dev/null
+++ b/app/src/skyworth/res/drawable/select_lockscreen.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/skyworth/res/layout/activity_about_version.xml b/app/src/skyworth/res/layout/activity_about_version.xml
new file mode 100644
index 0000000..07a7686
--- /dev/null
+++ b/app/src/skyworth/res/layout/activity_about_version.xml
@@ -0,0 +1,236 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/skyworth/res/layout/activity_admin_login.xml b/app/src/skyworth/res/layout/activity_admin_login.xml
new file mode 100644
index 0000000..c8718c6
--- /dev/null
+++ b/app/src/skyworth/res/layout/activity_admin_login.xml
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/skyworth/res/layout/activity_alarm_message.xml b/app/src/skyworth/res/layout/activity_alarm_message.xml
new file mode 100644
index 0000000..ac81b72
--- /dev/null
+++ b/app/src/skyworth/res/layout/activity_alarm_message.xml
@@ -0,0 +1,65 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/skyworth/res/layout/activity_alarm_message_item.xml b/app/src/skyworth/res/layout/activity_alarm_message_item.xml
new file mode 100644
index 0000000..5cc2c27
--- /dev/null
+++ b/app/src/skyworth/res/layout/activity_alarm_message_item.xml
@@ -0,0 +1,56 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/skyworth/res/layout/activity_asx_add_device_list.xml b/app/src/skyworth/res/layout/activity_asx_add_device_list.xml
new file mode 100644
index 0000000..98975ff
--- /dev/null
+++ b/app/src/skyworth/res/layout/activity_asx_add_device_list.xml
@@ -0,0 +1,105 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/skyworth/res/layout/activity_camera_detail.xml b/app/src/skyworth/res/layout/activity_camera_detail.xml
new file mode 100644
index 0000000..dc116c7
--- /dev/null
+++ b/app/src/skyworth/res/layout/activity_camera_detail.xml
@@ -0,0 +1,676 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/skyworth/res/layout/activity_camera_name.xml b/app/src/skyworth/res/layout/activity_camera_name.xml
new file mode 100644
index 0000000..a2a4b16
--- /dev/null
+++ b/app/src/skyworth/res/layout/activity_camera_name.xml
@@ -0,0 +1,144 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/skyworth/res/layout/activity_copyright.xml b/app/src/skyworth/res/layout/activity_copyright.xml
new file mode 100644
index 0000000..5fc13b4
--- /dev/null
+++ b/app/src/skyworth/res/layout/activity_copyright.xml
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/skyworth/res/layout/activity_device_add.xml b/app/src/skyworth/res/layout/activity_device_add.xml
new file mode 100644
index 0000000..4cf7e4d
--- /dev/null
+++ b/app/src/skyworth/res/layout/activity_device_add.xml
@@ -0,0 +1,47 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/skyworth/res/layout/activity_device_list.xml b/app/src/skyworth/res/layout/activity_device_list.xml
new file mode 100644
index 0000000..78ebd17
--- /dev/null
+++ b/app/src/skyworth/res/layout/activity_device_list.xml
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/skyworth/res/layout/activity_device_list_item.xml b/app/src/skyworth/res/layout/activity_device_list_item.xml
new file mode 100644
index 0000000..2fb699a
--- /dev/null
+++ b/app/src/skyworth/res/layout/activity_device_list_item.xml
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/skyworth/res/layout/activity_device_set.xml b/app/src/skyworth/res/layout/activity_device_set.xml
new file mode 100644
index 0000000..cacbd82
--- /dev/null
+++ b/app/src/skyworth/res/layout/activity_device_set.xml
@@ -0,0 +1,163 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/skyworth/res/layout/activity_lecheng_login.xml b/app/src/skyworth/res/layout/activity_lecheng_login.xml
new file mode 100644
index 0000000..d95a000
--- /dev/null
+++ b/app/src/skyworth/res/layout/activity_lecheng_login.xml
@@ -0,0 +1,204 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/skyworth/res/layout/activity_local_video_item.xml b/app/src/skyworth/res/layout/activity_local_video_item.xml
new file mode 100644
index 0000000..2d85411
--- /dev/null
+++ b/app/src/skyworth/res/layout/activity_local_video_item.xml
@@ -0,0 +1,66 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/skyworth/res/layout/activity_login.xml b/app/src/skyworth/res/layout/activity_login.xml
new file mode 100644
index 0000000..0948108
--- /dev/null
+++ b/app/src/skyworth/res/layout/activity_login.xml
@@ -0,0 +1,231 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/skyworth/res/layout/activity_media_video.xml b/app/src/skyworth/res/layout/activity_media_video.xml
new file mode 100644
index 0000000..c376f18
--- /dev/null
+++ b/app/src/skyworth/res/layout/activity_media_video.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/skyworth/res/layout/activity_modify_camera_name.xml b/app/src/skyworth/res/layout/activity_modify_camera_name.xml
new file mode 100644
index 0000000..a754d55
--- /dev/null
+++ b/app/src/skyworth/res/layout/activity_modify_camera_name.xml
@@ -0,0 +1,390 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/skyworth/res/layout/activity_record_list.xml b/app/src/skyworth/res/layout/activity_record_list.xml
new file mode 100644
index 0000000..7dd17e1
--- /dev/null
+++ b/app/src/skyworth/res/layout/activity_record_list.xml
@@ -0,0 +1,196 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/skyworth/res/layout/activity_record_list_item.xml b/app/src/skyworth/res/layout/activity_record_list_item.xml
new file mode 100644
index 0000000..08ab23e
--- /dev/null
+++ b/app/src/skyworth/res/layout/activity_record_list_item.xml
@@ -0,0 +1,60 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/skyworth/res/layout/activity_recover_sdcard.xml b/app/src/skyworth/res/layout/activity_recover_sdcard.xml
new file mode 100644
index 0000000..8168c72
--- /dev/null
+++ b/app/src/skyworth/res/layout/activity_recover_sdcard.xml
@@ -0,0 +1,45 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/skyworth/res/layout/activity_splash.xml b/app/src/skyworth/res/layout/activity_splash.xml
new file mode 100644
index 0000000..b854c9a
--- /dev/null
+++ b/app/src/skyworth/res/layout/activity_splash.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/skyworth/res/layout/activity_time_out.xml b/app/src/skyworth/res/layout/activity_time_out.xml
new file mode 100644
index 0000000..0be4def
--- /dev/null
+++ b/app/src/skyworth/res/layout/activity_time_out.xml
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/skyworth/res/layout/activity_user_bind.xml b/app/src/skyworth/res/layout/activity_user_bind.xml
new file mode 100644
index 0000000..b10013c
--- /dev/null
+++ b/app/src/skyworth/res/layout/activity_user_bind.xml
@@ -0,0 +1,68 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/skyworth/res/layout/activity_user_login.xml b/app/src/skyworth/res/layout/activity_user_login.xml
new file mode 100644
index 0000000..ce9fddc
--- /dev/null
+++ b/app/src/skyworth/res/layout/activity_user_login.xml
@@ -0,0 +1,84 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/skyworth/res/layout/activity_video_container.xml b/app/src/skyworth/res/layout/activity_video_container.xml
new file mode 100644
index 0000000..e3868bf
--- /dev/null
+++ b/app/src/skyworth/res/layout/activity_video_container.xml
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/skyworth/res/layout/activity_welcome.xml b/app/src/skyworth/res/layout/activity_welcome.xml
new file mode 100644
index 0000000..f1a9f74
--- /dev/null
+++ b/app/src/skyworth/res/layout/activity_welcome.xml
@@ -0,0 +1,51 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/skyworth/res/layout/city_group.xml b/app/src/skyworth/res/layout/city_group.xml
new file mode 100644
index 0000000..0161946
--- /dev/null
+++ b/app/src/skyworth/res/layout/city_group.xml
@@ -0,0 +1,39 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/skyworth/res/layout/dialog_big_photo.xml b/app/src/skyworth/res/layout/dialog_big_photo.xml
new file mode 100644
index 0000000..f64f666
--- /dev/null
+++ b/app/src/skyworth/res/layout/dialog_big_photo.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
diff --git a/app/src/skyworth/res/layout/dialog_modify_device_password.xml b/app/src/skyworth/res/layout/dialog_modify_device_password.xml
new file mode 100644
index 0000000..eac4c5e
--- /dev/null
+++ b/app/src/skyworth/res/layout/dialog_modify_device_password.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+
diff --git a/app/src/skyworth/res/layout/fragment_media_live.xml b/app/src/skyworth/res/layout/fragment_media_live.xml
new file mode 100644
index 0000000..e240148
--- /dev/null
+++ b/app/src/skyworth/res/layout/fragment_media_live.xml
@@ -0,0 +1,426 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/skyworth/res/layout/fragment_media_record.xml b/app/src/skyworth/res/layout/fragment_media_record.xml
new file mode 100644
index 0000000..22c0d41
--- /dev/null
+++ b/app/src/skyworth/res/layout/fragment_media_record.xml
@@ -0,0 +1,298 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/skyworth/res/layout/fragment_person.xml b/app/src/skyworth/res/layout/fragment_person.xml
new file mode 100644
index 0000000..74f75d3
--- /dev/null
+++ b/app/src/skyworth/res/layout/fragment_person.xml
@@ -0,0 +1,938 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/skyworth/res/layout/fragment_splash_err.xml b/app/src/skyworth/res/layout/fragment_splash_err.xml
new file mode 100644
index 0000000..56967c0
--- /dev/null
+++ b/app/src/skyworth/res/layout/fragment_splash_err.xml
@@ -0,0 +1,88 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/skyworth/res/layout/fragment_splash_normal.xml b/app/src/skyworth/res/layout/fragment_splash_normal.xml
new file mode 100644
index 0000000..301a6fb
--- /dev/null
+++ b/app/src/skyworth/res/layout/fragment_splash_normal.xml
@@ -0,0 +1,106 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/skyworth/res/layout/fragment_video_live.xml b/app/src/skyworth/res/layout/fragment_video_live.xml
new file mode 100644
index 0000000..6058253
--- /dev/null
+++ b/app/src/skyworth/res/layout/fragment_video_live.xml
@@ -0,0 +1,249 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/skyworth/res/layout/item_ad_pic.xml b/app/src/skyworth/res/layout/item_ad_pic.xml
new file mode 100644
index 0000000..a47e8e9
--- /dev/null
+++ b/app/src/skyworth/res/layout/item_ad_pic.xml
@@ -0,0 +1,119 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/skyworth/res/layout/item_city.xml b/app/src/skyworth/res/layout/item_city.xml
new file mode 100644
index 0000000..31df21d
--- /dev/null
+++ b/app/src/skyworth/res/layout/item_city.xml
@@ -0,0 +1,44 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/skyworth/res/layout/item_container.xml b/app/src/skyworth/res/layout/item_container.xml
new file mode 100644
index 0000000..a3dd3f2
--- /dev/null
+++ b/app/src/skyworth/res/layout/item_container.xml
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/skyworth/res/layout/item_model_exec.xml b/app/src/skyworth/res/layout/item_model_exec.xml
new file mode 100644
index 0000000..f3b6c15
--- /dev/null
+++ b/app/src/skyworth/res/layout/item_model_exec.xml
@@ -0,0 +1,81 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/skyworth/res/layout/item_safe_device_detail.xml b/app/src/skyworth/res/layout/item_safe_device_detail.xml
new file mode 100644
index 0000000..be88aff
--- /dev/null
+++ b/app/src/skyworth/res/layout/item_safe_device_detail.xml
@@ -0,0 +1,122 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/skyworth/res/layout/pop_calendar.xml b/app/src/skyworth/res/layout/pop_calendar.xml
new file mode 100644
index 0000000..101d999
--- /dev/null
+++ b/app/src/skyworth/res/layout/pop_calendar.xml
@@ -0,0 +1,55 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/skyworth/res/layout/widget_common_datepicker.xml b/app/src/skyworth/res/layout/widget_common_datepicker.xml
new file mode 100644
index 0000000..f29a74e
--- /dev/null
+++ b/app/src/skyworth/res/layout/widget_common_datepicker.xml
@@ -0,0 +1,113 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/skyworth/res/layout/widget_common_title.xml b/app/src/skyworth/res/layout/widget_common_title.xml
new file mode 100644
index 0000000..518cbc3
--- /dev/null
+++ b/app/src/skyworth/res/layout/widget_common_title.xml
@@ -0,0 +1,44 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/skyworth/res/menu/main.xml b/app/src/skyworth/res/menu/main.xml
new file mode 100644
index 0000000..ce7a68c
--- /dev/null
+++ b/app/src/skyworth/res/menu/main.xml
@@ -0,0 +1,7 @@
+
diff --git a/app/src/skyworth/res/mipmap-xxhdpi/city1.png b/app/src/skyworth/res/mipmap-xxhdpi/city1.png
new file mode 100644
index 0000000..f18717d
Binary files /dev/null and b/app/src/skyworth/res/mipmap-xxhdpi/city1.png differ
diff --git a/app/src/skyworth/res/mipmap-xxhdpi/city2.png b/app/src/skyworth/res/mipmap-xxhdpi/city2.png
new file mode 100644
index 0000000..70504b4
Binary files /dev/null and b/app/src/skyworth/res/mipmap-xxhdpi/city2.png differ
diff --git a/app/src/skyworth/res/mipmap-xxhdpi/city3.png b/app/src/skyworth/res/mipmap-xxhdpi/city3.png
new file mode 100644
index 0000000..78dd04c
Binary files /dev/null and b/app/src/skyworth/res/mipmap-xxhdpi/city3.png differ
diff --git a/app/src/skyworth/res/mipmap-xxhdpi/city4.png b/app/src/skyworth/res/mipmap-xxhdpi/city4.png
new file mode 100644
index 0000000..2a205d5
Binary files /dev/null and b/app/src/skyworth/res/mipmap-xxhdpi/city4.png differ
diff --git a/app/src/skyworth/res/mipmap-xxhdpi/subject1.png b/app/src/skyworth/res/mipmap-xxhdpi/subject1.png
new file mode 100644
index 0000000..de01ce0
Binary files /dev/null and b/app/src/skyworth/res/mipmap-xxhdpi/subject1.png differ
diff --git a/app/src/skyworth/res/mipmap-xxhdpi/subject2.png b/app/src/skyworth/res/mipmap-xxhdpi/subject2.png
new file mode 100644
index 0000000..c3d61d2
Binary files /dev/null and b/app/src/skyworth/res/mipmap-xxhdpi/subject2.png differ
diff --git a/app/src/skyworth/res/mipmap-xxhdpi/subject3.png b/app/src/skyworth/res/mipmap-xxhdpi/subject3.png
new file mode 100644
index 0000000..ae627de
Binary files /dev/null and b/app/src/skyworth/res/mipmap-xxhdpi/subject3.png differ
diff --git a/app/src/skyworth/res/mipmap-xxhdpi/subject4.png b/app/src/skyworth/res/mipmap-xxhdpi/subject4.png
new file mode 100644
index 0000000..47e4fd1
Binary files /dev/null and b/app/src/skyworth/res/mipmap-xxhdpi/subject4.png differ
diff --git a/app/src/skyworth/res/mipmap-xxhdpi/subject5.png b/app/src/skyworth/res/mipmap-xxhdpi/subject5.png
new file mode 100644
index 0000000..f216a60
Binary files /dev/null and b/app/src/skyworth/res/mipmap-xxhdpi/subject5.png differ
diff --git a/app/src/skyworth/res/mipmap-xxhdpi/vp_ic_full_screen.png b/app/src/skyworth/res/mipmap-xxhdpi/vp_ic_full_screen.png
new file mode 100644
index 0000000..6eb712a
Binary files /dev/null and b/app/src/skyworth/res/mipmap-xxhdpi/vp_ic_full_screen.png differ
diff --git a/app/src/skyworth/res/mipmap-xxhdpi/vp_ic_res_add.png b/app/src/skyworth/res/mipmap-xxhdpi/vp_ic_res_add.png
new file mode 100644
index 0000000..b50e921
Binary files /dev/null and b/app/src/skyworth/res/mipmap-xxhdpi/vp_ic_res_add.png differ
diff --git a/app/src/skyworth/res/mipmap-xxhdpi/vp_ic_stop_play.png b/app/src/skyworth/res/mipmap-xxhdpi/vp_ic_stop_play.png
new file mode 100644
index 0000000..390dc99
Binary files /dev/null and b/app/src/skyworth/res/mipmap-xxhdpi/vp_ic_stop_play.png differ
diff --git a/app/src/skyworth/res/mipmap-xxxhdpi/app_lan.png b/app/src/skyworth/res/mipmap-xxxhdpi/app_lan.png
new file mode 100644
index 0000000..db7dcdd
Binary files /dev/null and b/app/src/skyworth/res/mipmap-xxxhdpi/app_lan.png differ
diff --git a/app/src/skyworth/res/values-en/strings.xml b/app/src/skyworth/res/values-en/strings.xml
new file mode 100644
index 0000000..a39a654
--- /dev/null
+++ b/app/src/skyworth/res/values-en/strings.xml
@@ -0,0 +1,151 @@
+
+
+
+ AndroidOpenDemo
+ Settings
+
+
+ admin login
+ user login
+ please enter appid and appsecret!note: the developers can get appid and appsecret by browsing the website.
+ loading
+ SMS has been sent to the phone
+ SMS sent failed
+ please enter a valid phone number
+ user bind
+ The phone number has been bound to this application.please click device list
+ The phone number has not been bound to the application.please bind first!
+
+ device list
+ device operation
+ device add
+ wifi config......
+ Warning
+ Delete this device?
+ No shared device
+ No authorized device
+
+
+ "Notice"
+ Click OK to config referring the device guide
+
+
+ local video
+ cloud video
+
+
+ alarm message list
+ Warning
+ Delete this message?
+ Input key
+
+
+ play live video
+ play record video
+ flow
+ bit rate
+ M
+ K/S
+ 00:00:00
+ disconnected from the network,please check it
+
+ the device does not support talking
+ start talking
+ close talking
+ loading or talking,sound could not open
+ sound open
+ sound close
+ screenshot success
+ screenshot failed
+ record successed
+ record failed
+ start recording
+ ready to talk
+ open talking failed
+ play failed!please check network and try !
+ seek failed
+ data loading
+ play video failed
+ switch to SD
+ switch to HD
+ startTime-hour:
+ No permission to write sd card! recording and capturing could not be used
+ please input sms code
+ get sms code
+ sms code has been sent to phone
+ bind
+ please input your phone number
+ please a valid phone number
+ enter device list
+ alarm time
+ please input device code
+ wifi ssid:
+ wifi password
+ alarm plan
+ download
+ cloud storage
+ cloud upgrade
+ upgrade
+ cancel
+ please select day
+ query
+ year
+ month
+ day
+ Device Password
+ modify
+
+
+ OK
+ Cancel
+
+
+ sms code can not be empty
+
+ cloud update success
+ cloud update failed
+ modify alarm plan success
+ modify alarm plan failed
+ storage strategy update success
+ storage strategy update failed
+
+ query alarm message failed, errorcode:
+ delete alarm message failed
+ load failed
+
+ no device
+ query device list failed
+ delete success
+ this device has no ptz ability
+ device not exist
+ get initialize info failed
+
+ SN/Password can not be empty!
+ SN can not be empty!
+ already binded by yourself
+ already binded by others
+ config timeout
+ Input device key
+ Input safe code
+ Please Input Device Key
+ Please Input Device Init Key
+
+ location service has been forbidden, go to permisson manager to open
+
+ device/record not exist
+ no I frame
+
+ download failed/error key
+ download end
+ only play/download one by one
+ query record failed, errorcode:
+
+ errorcode
+ business errorcode
+ HTTP errorcode
+ inner errorcode
+ error msg
+
+ new password
+ old password
+
diff --git a/app/src/skyworth/res/values/array.xml b/app/src/skyworth/res/values/array.xml
new file mode 100644
index 0000000..7b19524
--- /dev/null
+++ b/app/src/skyworth/res/values/array.xml
@@ -0,0 +1,10 @@
+
+
+ - 8
+ - 8
+ - 8
+ - 4
+ - 4
+ - 4
+
+
diff --git a/app/src/skyworth/res/values/attrs.xml b/app/src/skyworth/res/values/attrs.xml
new file mode 100644
index 0000000..1598846
--- /dev/null
+++ b/app/src/skyworth/res/values/attrs.xml
@@ -0,0 +1,38 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/skyworth/res/values/colors.xml b/app/src/skyworth/res/values/colors.xml
new file mode 100644
index 0000000..284397d
--- /dev/null
+++ b/app/src/skyworth/res/values/colors.xml
@@ -0,0 +1,22 @@
+
+
+
+ #efeff4
+ #000000
+
+ #FFFFFF
+ #CFCFCF
+ #505166
+
+ #42CFBE
+ #57B1CC
+ #B888E5
+ #F695A8
+ #F9D461
+
+
+ #398DEE
+ #333333
+ #398DEE
+ #398dee//填写框文字颜色
+
diff --git a/app/src/skyworth/res/values/dimens.xml b/app/src/skyworth/res/values/dimens.xml
new file mode 100644
index 0000000..baa0459
--- /dev/null
+++ b/app/src/skyworth/res/values/dimens.xml
@@ -0,0 +1,12 @@
+
+
+
+ 0.5dp
+
+
+ 10sp
+ 12sp
+ 15sp
+ 20sp
+
+
diff --git a/app/src/skyworth/res/values/ids.xml b/app/src/skyworth/res/values/ids.xml
new file mode 100644
index 0000000..bef5ac3
--- /dev/null
+++ b/app/src/skyworth/res/values/ids.xml
@@ -0,0 +1,8 @@
+
+
+
+
\ No newline at end of file
diff --git a/app/src/skyworth/res/values/spinner_data.xml b/app/src/skyworth/res/values/spinner_data.xml
new file mode 100644
index 0000000..84bcbd7
--- /dev/null
+++ b/app/src/skyworth/res/values/spinner_data.xml
@@ -0,0 +1,91 @@
+
+
+
+ - 00
+ - 01
+ - 02
+ - 03
+ - 04
+ - 05
+ - 06
+ - 07
+ - 08
+ - 09
+ - 10
+ - 11
+ - 12
+ - 13
+ - 14
+ - 15
+ - 16
+ - 17
+ - 18
+ - 19
+ - 20
+ - 21
+ - 22
+ - 23
+
+
+ - 00
+ - 01
+ - 02
+ - 03
+ - 04
+ - 05
+ - 06
+ - 07
+ - 08
+ - 09
+ - 10
+ - 11
+ - 12
+ - 13
+ - 14
+ - 15
+ - 16
+ - 17
+ - 18
+ - 19
+ - 20
+ - 21
+ - 22
+ - 23
+ - 24
+ - 25
+ - 26
+ - 27
+ - 28
+ - 29
+ - 30
+ - 31
+ - 32
+ - 33
+ - 34
+ - 35
+ - 36
+ - 37
+ - 38
+ - 39
+ - 40
+ - 41
+ - 42
+ - 43
+ - 44
+ - 45
+ - 46
+ - 47
+ - 48
+ - 49
+ - 50
+ - 51
+ - 52
+ - 53
+ - 54
+ - 55
+ - 56
+ - 57
+ - 58
+ - 59
+
+
diff --git a/app/src/skyworth/res/values/strings.xml b/app/src/skyworth/res/values/strings.xml
new file mode 100644
index 0000000..185147c
--- /dev/null
+++ b/app/src/skyworth/res/values/strings.xml
@@ -0,0 +1,10 @@
+
+ Swaiot智控
+ 深圳创维-RGB电子有限公司 版权所有
+ 关于智控
+ 关于智控
+ 反馈问题
+ Copyright © 2020-2022 Skyworth All Rights Reserved
+ 凡是通过永顺智官方商城购买的产品,我们将严格 按照国家三包政策,对所售产品提供7天(含)退货,15天(含)因质量问题换新服务。\n注意事项: \n1)客服初审核通过,仅表示永顺智受理您的退换货申请,但不代表同意您的退换货,最终以商品检测报告为准,以此来判断您是否符合退换货条件。\n2)若您的申请为“审核不通过”,具体原因将会显示在您的退换货申请详情页面,若有疑问,可与永顺智客服联系。\n3)签收时,请务必要求投递员在场共同检验包裹,若发现物流损坏、缺件或发错货等情况,请当场拒收并要求快递员存证,同时请您拍照存证,并打电话服务提出换货申请。 \n4)若已签收,需要提供物流公司开具的凭据,并在退换货申请受理之后提交附件。若未提供物流开具的证明,公司无法处理退款或换货。
+ 您好,永顺智产品支持七天退货15天换货服务;在 您收到商品后,如有任何原因需要进行退换货,打 客户服务热线进行退货申请;请在包裹内留下纸条, 写上您的订单号、联系方式及退货理由,以便我们 及时确认完成退款,谢谢您的配合;请确保配件完 整并且无人为破坏的情况(如开过发票的需要和发 票一块寄回),非产品质量问题的退货,导致的退 货,寄回的运费需您自行承担,因产品质量问题的 退货,财务将给您报销寄回的快递费(最高22元) 运费您先垫付,不支持到付件哦,我们收到货后会 尽快为您办理,请耐心等待;祝您生活愉快!
+
diff --git a/app/src/skyworth/res/values/styles.xml b/app/src/skyworth/res/values/styles.xml
new file mode 100644
index 0000000..dfbdec1
--- /dev/null
+++ b/app/src/skyworth/res/values/styles.xml
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
diff --git a/app/src/skyworth/res/values/wheel__attrs.xml b/app/src/skyworth/res/values/wheel__attrs.xml
new file mode 100644
index 0000000..db64ba7
--- /dev/null
+++ b/app/src/skyworth/res/values/wheel__attrs.xml
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/standard/java/com/standard.z1/wxapi/WXEntryActivity.java b/app/src/standard/java/com/standard.z1/wxapi/WXEntryActivity.java
new file mode 100644
index 0000000..ec7e68d
--- /dev/null
+++ b/app/src/standard/java/com/standard.z1/wxapi/WXEntryActivity.java
@@ -0,0 +1,101 @@
+package com.standard.z1.wxapi;
+
+import android.app.Activity;
+import android.content.Intent;
+import android.graphics.Bitmap;
+import android.os.Bundle;
+import android.util.Log;
+
+import com.tencent.mm.opensdk.modelbase.BaseReq;
+import com.tencent.mm.opensdk.modelbase.BaseResp;
+import com.tencent.mm.opensdk.modelmsg.SendAuth;
+import com.tencent.mm.opensdk.openapi.IWXAPI;
+import com.tencent.mm.opensdk.openapi.IWXAPIEventHandler;
+import com.tencent.mm.opensdk.openapi.WXAPIFactory;
+import com.yonsz.z1.R;
+import com.yonsz.z1.database.entity.entitya2.WxLoginEvent;
+
+import java.io.ByteArrayOutputStream;
+
+import de.greenrobot.event.EventBus;
+
+import static com.yonsz.z1.difference.DifferConstans.WX_APP_ID;
+
+
+public class WXEntryActivity extends Activity implements IWXAPIEventHandler {
+ private IWXAPI iwxapi;
+
+ public static byte[] bmpToByteArray(final Bitmap bmp, final boolean needRecycle) {
+ ByteArrayOutputStream output = new ByteArrayOutputStream();
+ bmp.compress(Bitmap.CompressFormat.PNG, 100, output);
+ if (needRecycle) {
+ bmp.recycle();
+ }
+ byte[] result = output.toByteArray();
+ try {
+ output.close();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ return result;
+ }
+
+ @Override
+
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_wxentry);
+ iwxapi = WXAPIFactory.createWXAPI(this, WX_APP_ID, false);
+ iwxapi.handleIntent(getIntent(), this);
+ iwxapi.registerApp(WX_APP_ID);
+ }
+
+
+ @Override
+ protected void onNewIntent(Intent intent) {
+ super.onNewIntent(intent);
+ setIntent(intent);
+ iwxapi.handleIntent(intent, this);
+ }
+
+ @Override
+ public void onReq(BaseReq baseReq) {
+ Log.i("BaseReq", "" + baseReq.openId + "---" + baseReq.transaction);
+ }
+
+ @Override
+ public void onResp(BaseResp resp) {
+ Log.i("BaseReq", "" + resp.openId + "---" + resp.transaction + "===" + resp.errCode + "==" + resp.errStr);
+ String result;
+ switch (resp.errCode) {
+ case BaseResp.ErrCode.ERR_OK:
+ result = getString(R.string.Share_success);
+ if (resp instanceof SendAuth.Resp) {
+ String code = ((SendAuth.Resp) resp).code;
+ Log.i("BaseReq", "LoginActivity onResp()" + code);
+ EventBus.getDefault().post(
+ new WxLoginEvent(code));
+ } else {
+
+ }
+ break;
+ case BaseResp.ErrCode.ERR_USER_CANCEL:
+ result = "取消分享";
+ break;
+ case BaseResp.ErrCode.ERR_AUTH_DENIED:
+ result = "分享被拒绝";
+ break;
+ default:
+ result = "发送返回";
+ break;
+ }
+ finish();
+ }
+
+ private String buildTransaction(final String type) {
+ return (type == null) ? String.valueOf(System.currentTimeMillis()) : type + System.currentTimeMillis();
+ }
+
+ enum SHARE_TYPE {Type_WXSceneSession, Type_WXSceneTimeline}
+
+}
diff --git a/app/src/standard/java/com/standard.z1/wxapi/WXPayEntryActivity.java b/app/src/standard/java/com/standard.z1/wxapi/WXPayEntryActivity.java
new file mode 100644
index 0000000..99763ad
--- /dev/null
+++ b/app/src/standard/java/com/standard.z1/wxapi/WXPayEntryActivity.java
@@ -0,0 +1,55 @@
+package com.standard.z1.wxapi;
+
+import android.app.Activity;
+import android.app.AlertDialog;
+import android.content.Intent;
+import android.os.Bundle;
+import android.util.Log;
+
+import com.tencent.mm.opensdk.constants.ConstantsAPI;
+import com.tencent.mm.opensdk.modelbase.BaseReq;
+import com.tencent.mm.opensdk.modelbase.BaseResp;
+import com.tencent.mm.opensdk.openapi.IWXAPI;
+import com.tencent.mm.opensdk.openapi.IWXAPIEventHandler;
+import com.tencent.mm.opensdk.openapi.WXAPIFactory;
+import com.yonsz.z1.R;
+import static com.yonsz.z1.difference.DifferConstans.WX_APP_ID;
+
+public class WXPayEntryActivity extends Activity implements IWXAPIEventHandler {
+
+ private final String TAG = "WXPayEntryActivity";
+
+ private IWXAPI api;
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_wxentry);
+ api = WXAPIFactory.createWXAPI(this, WX_APP_ID);
+ api.handleIntent(getIntent(), this);
+ }
+
+ @Override
+ protected void onNewIntent(Intent intent) {
+ super.onNewIntent(intent);
+ setIntent(intent);
+ api.handleIntent(intent, this);
+ }
+ @Override
+ public void onReq(BaseReq req) {
+ }
+
+ @Override
+ public void onResp(BaseResp resp) {
+ Log.i(TAG,"errCode = " + resp.errCode);
+ //最好依赖于商户后台的查询结果
+ if (resp.getType() == ConstantsAPI.COMMAND_PAY_BY_WX) {
+ //如果返回-1,很大可能是因为应用签名的问题。用官方的工具生成
+ //签名工具下载:https://open.weixin.qq.com/zh_CN/htmledition/res/dev/download/sdk/Gen_Signature_Android.apk
+ AlertDialog.Builder builder = new AlertDialog.Builder(this);
+ builder.setTitle("提示");
+ builder.setMessage(getString(R.string.pay_result_callback_msg, String.valueOf(resp.errCode)));
+ builder.show();
+ }
+ finish();
+ }
+}
\ No newline at end of file
diff --git a/app/src/standard/java/com/yonsz/z1/difference/DifferConstans.java b/app/src/standard/java/com/yonsz/z1/difference/DifferConstans.java
new file mode 100644
index 0000000..e187751
--- /dev/null
+++ b/app/src/standard/java/com/yonsz/z1/difference/DifferConstans.java
@@ -0,0 +1,23 @@
+package com.yonsz.z1.difference;
+
+/**
+ * Created by Administrator on 2018/6/21.
+ */
+
+public class DifferConstans {
+ //后台版本控制
+ /*public static final String VERSION_S = "v1";
+ public static final String APPID_S = "1201";
+ public static final String APPSECRET_S = "ysz666888";*/
+ public static final String VERSION_S = "v1";
+ public static final String APPID_S = "1101";
+ public static final String APPID_S_VOICE = "110101";
+ public static final String APPSECRET_S = "123456";
+ public static final String WX_APP_ID = "wxbe236878e7d94ca4";
+ public static String versionUrl = "http://a.app.qq.com/o/simple.jsp?pkgname=com.standard.z1";
+ public static String LECHENG_KEY = "ysz123456";
+ public static String LECHENG_APPID = "ysz123456";
+ public static String LECHENG_APPSECRET = "ysz123456";
+ public static final String SERVER_BACKUP4 = "https://openapi.lechange.cn:443/openapi/";//乐橙
+ public static final String TEPRINCIPLE_UPDATE = "teprinciple1.update";
+}
diff --git a/app/src/standard/java/com/yonsz/z1/login/LoginActivity.java b/app/src/standard/java/com/yonsz/z1/login/LoginActivity.java
new file mode 100644
index 0000000..ced6b73
--- /dev/null
+++ b/app/src/standard/java/com/yonsz/z1/login/LoginActivity.java
@@ -0,0 +1,513 @@
+package com.yonsz.z1.login;
+
+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.MotionEvent;
+import android.view.View;
+import android.widget.Button;
+import android.widget.EditText;
+import android.widget.ImageView;
+import android.widget.LinearLayout;
+import android.widget.RelativeLayout;
+import android.widget.TextView;
+import android.widget.Toast;
+
+import com.alibaba.fastjson.JSON;
+import com.tencent.mm.opensdk.modelbase.BaseReq;
+import com.tencent.mm.opensdk.modelbase.BaseResp;
+import com.tencent.mm.opensdk.modelmsg.SendAuth;
+import com.tencent.mm.opensdk.openapi.IWXAPI;
+import com.tencent.mm.opensdk.openapi.IWXAPIEventHandler;
+import com.tencent.mm.opensdk.openapi.WXAPIFactory;
+import com.yonsz.z1.R;
+import com.yonsz.z1.activity.BaseActivity;
+import com.yonsz.z1.database.entity.ResponeEntity;
+import com.yonsz.z1.database.entity.TokenEntity;
+import com.yonsz.z1.database.entity.entitya2.WxLoginEvent;
+import com.yonsz.z1.difference.DifferConstans;
+import com.yonsz.z1.listener.OnTitleItemClickListener;
+import com.yonsz.z1.login.forgetpw.ForgetPWActivity;
+import com.yonsz.z1.login.register.RegisterActivity;
+import com.yonsz.z1.login.register.WxRegisterActivity;
+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.KeyboardUtil;
+import com.yonsz.z1.utils.SharedpreferencesUtil;
+import com.yonsz.z1.utils.ToastUtil;
+import com.yonsz.z1.utils.VerificationUtils;
+import com.yonsz.z1.version4.MainActivity4;
+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.clean_password;
+import static com.yonsz.z1.R.id.iv_clean_phone;
+import static com.yonsz.z1.difference.DifferConstans.APPID_S;
+import static com.yonsz.z1.difference.DifferConstans.APPSECRET_S;
+import static com.yonsz.z1.difference.DifferConstans.WX_APP_ID;
+import static com.yonsz.z1.net.Constans.FAN_LEARN_WHAT;
+import static com.yonsz.z1.net.Constans.GET_PHONE_AREA;
+import static com.yonsz.z1.net.Constans.GET_TOKEN_FAIL;
+import static com.yonsz.z1.net.Constans.LOGIN_FAIL;
+import static com.yonsz.z1.net.Constans.LOGIN_SUCCESS;
+import static com.yonsz.z1.net.Constans.WX_LOGIN_FAIL;
+import static com.yonsz.z1.net.Constans.WX_LOGIN_REGISTER;
+import static com.yonsz.z1.net.Constans.WX_LOGIN_SUCCESS;
+
+/**
+ * Created by Administrator on 2017/5/16.
+ */
+
+public class LoginActivity extends BaseActivity implements IWXAPIEventHandler {
+ private TitleView mTitle;
+ private Button mLogin;
+ private TextView mRegister;
+ private TextView mForgetPw;
+ private EditText mUserName;
+ private EditText mPassWord;
+ private ImageView cleanPhoneIv;
+ private ImageView cleanPasswordIv;
+ private LoadingDialog mLoadingDialog;
+ private RelativeLayout rl_weixin_login;
+ private LinearLayout phoneAreaLl;
+
+ private IWXAPI iwxapi;
+ private TextView phoneArea;
+
+ @Override
+ public boolean dispatchTouchEvent(MotionEvent ev) {
+ switch (ev.getAction()) {
+ case MotionEvent.ACTION_DOWN:
+ View view = getCurrentFocus();
+ KeyboardUtil.hideKeyboard(ev, view, LoginActivity.this);//调用方法判断是否需要隐藏键盘
+ break;
+
+ default:
+ break;
+ }
+ return super.dispatchTouchEvent(ev);
+ }
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_login);
+ initView();
+ initListener();
+
+ iwxapi = WXAPIFactory.createWXAPI(this, WX_APP_ID, true);
+ iwxapi.handleIntent(this.getIntent(), this);
+ iwxapi.registerApp(WX_APP_ID);
+
+ if (TextUtils.isEmpty(SharedpreferencesUtil.get(Constans.SEESSIONID, ""))) {
+ getToken();
+ }
+ }
+
+ private void getToken() {
+ NetWorkUtil util = NetWorkUtil.instans();
+ HashMap map = new HashMap<>();
+ map.put("appId", APPID_S);
+ map.put("appSecret", APPSECRET_S);
+ util.requestPostByAsynewApi(NetWorkUrl.GET_TOKEN, map, new NetWorkUtil.ReqCallBack() {
+ @Override
+ public void onSuccess(String respone) {
+ Log.i("getToken", "onSuccess: " + respone);
+ TokenEntity entity = JSON.parseObject(respone, TokenEntity.class);
+ if (null != entity.getData()) {
+ SharedpreferencesUtil.save(Constans.TOKENID, entity.getData().getToken().toString().trim());
+ }
+ }
+
+ @Override
+ public void onFail(String message) {
+ Log.i("getToken", "onSuccess: " + message);
+ Message msg = mHandler.obtainMessage(GET_TOKEN_FAIL);
+ msg.obj = message;
+ mHandler.sendMessage(msg);
+ }
+ });
+ }
+
+ @Override
+ public boolean enableSliding() {
+ return false;
+ }
+
+ public void onEventMainThread(WxLoginEvent event) {
+ String msg = event.getMsg();
+ Log.e("nettyUtil", msg);
+ Message message = new Message();
+ message.what = FAN_LEARN_WHAT;
+ message.obj = msg;
+ mHandler.sendMessage(message);
+ }
+
+
+ private void initView() {
+ phoneArea = (TextView) findViewById(R.id.tv_phone_area);
+ phoneAreaLl = (LinearLayout) findViewById(R.id.ll_phone_area);
+ cleanPhoneIv = (ImageView) findViewById(iv_clean_phone);
+ cleanPasswordIv = (ImageView) findViewById(clean_password);
+ mUserName = (EditText) findViewById(R.id.edit_username);
+ mUserName.setText(SharedpreferencesUtil.get(Constans.USERPHONE, ""));
+ if (!TextUtils.isEmpty(mUserName.getText().toString())) {
+ cleanPhoneIv.setVisibility(View.VISIBLE);
+ }
+ mPassWord = (EditText) findViewById(R.id.edit_pw);
+ mLogin = (Button) findViewById(R.id.bt_sure);
+ mLogin.setBackgroundDrawable(getResources().getDrawable(R.drawable.btn_round_9cc6f6));
+ mRegister = (TextView) findViewById(R.id.tv_register);
+ mForgetPw = (TextView) findViewById(R.id.txt_forget_pw);
+ rl_weixin_login = (RelativeLayout) findViewById(R.id.rl_weixin_login);
+ mLoadingDialog = new LoadingDialog(this);
+ mTitle = (TitleView) findViewById(R.id.title_login);
+ mTitle.setHead(R.string.login);
+ mTitle.setHeadBackGone();
+ mTitle.setHeadFuntionTxt(" ");
+ mTitle.setTitleListener(new OnTitleItemClickListener() {
+ @Override
+ public void onBack() {
+
+ }
+
+ @Override
+ public void onFunction() {
+ }
+
+ @Override
+ public void onFunctionText() {
+ }
+ });
+ }
+
+ private void initListener() {
+ rl_weixin_login.setOnClickListener(this);
+ mLogin.setOnClickListener(this);
+ mRegister.setOnClickListener(this);
+ mForgetPw.setOnClickListener(this);
+ cleanPasswordIv.setOnClickListener(this);
+ cleanPhoneIv.setOnClickListener(this);
+ phoneAreaLl.setOnClickListener(this);
+ mUserName.addTextChangedListener(new TextWatcher() {
+ @Override
+ public void beforeTextChanged(CharSequence s, int start, int count, int after) {
+
+ }
+
+ @Override
+ public void onTextChanged(CharSequence s, int start, int before, int count) {
+ int i = s.length();
+ if (i == 0 || TextUtils.isEmpty(mPassWord.getText())) {
+ mLogin.setBackgroundDrawable(getResources().getDrawable(R.drawable.btn_round_9cc6f6));
+ mLogin.setEnabled(false);
+ } else {
+ mLogin.setBackgroundDrawable(getResources().getDrawable(R.drawable.btn_round_398dee));
+ mLogin.setEnabled(true);
+ }
+ }
+
+ @Override
+ public void afterTextChanged(Editable s) {
+ if (!TextUtils.isEmpty(s) && cleanPhoneIv.getVisibility() == View.GONE) {
+ cleanPhoneIv.setVisibility(View.VISIBLE);
+ } else if (TextUtils.isEmpty(s)) {
+ cleanPhoneIv.setVisibility(View.GONE);
+ }
+ }
+ });
+ mPassWord.addTextChangedListener(new TextWatcher() {
+ @Override
+ public void beforeTextChanged(CharSequence s, int start, int count, int after) {
+
+ }
+
+ @Override
+ public void onTextChanged(CharSequence s, int start, int before, int count) {
+ int i = s.length();
+ if (i == 0 || TextUtils.isEmpty(mUserName.getText())) {
+ mLogin.setBackgroundDrawable(getResources().getDrawable(R.drawable.btn_round_9cc6f6));
+ mLogin.setEnabled(false);
+ } else {
+ mLogin.setBackgroundDrawable(getResources().getDrawable(R.drawable.btn_round_398dee));
+ mLogin.setEnabled(true);
+ }
+ }
+
+ @Override
+ public void afterTextChanged(Editable s) {
+ if (!TextUtils.isEmpty(s) && cleanPasswordIv.getVisibility() == View.GONE) {
+ cleanPasswordIv.setVisibility(View.VISIBLE);
+ } else if (TextUtils.isEmpty(s)) {
+ cleanPasswordIv.setVisibility(View.GONE);
+ }
+ if (s.toString().isEmpty())
+ return;
+ if (!s.toString().matches("[A-Za-z0-9]+")) {
+ String temp = s.toString();
+ Toast.makeText(LoginActivity.this, R.string.Enter_a_number, Toast.LENGTH_SHORT).show();
+ s.delete(temp.length() - 1, temp.length());
+ mPassWord.setSelection(s.length());
+
+ }
+ }
+ });
+ }
+
+ @Override
+ public void onClick(View v) {
+ super.onClick(v);
+ switch (v.getId()) {
+ case R.id.bt_sure:
+ if (DensityUtil.isNetworkConnected(this)) {
+ login();
+ } else {
+ ToastUtil.show(this, R.string.no_network_connection);
+ }
+ break;
+ case R.id.tv_register:
+ startActivity(new Intent(LoginActivity.this, RegisterActivity.class));
+ break;
+ case R.id.txt_forget_pw:
+ Intent intent = new Intent(LoginActivity.this, ForgetPWActivity.class);
+ intent.putExtra("tag", "LoginActivity");
+ startActivity(intent);
+ break;
+ case R.id.iv_clean_phone:
+ mUserName.setText("");
+ break;
+ case R.id.clean_password:
+ mPassWord.setText("");
+ break;
+ case R.id.rl_weixin_login:
+ if (!iwxapi.isWXAppInstalled()) {
+ Toast.makeText(this, getString(R.string.not_installed_Wechat), Toast.LENGTH_SHORT).show();
+ return;
+ }
+ wxLogin();
+ break;
+ case R.id.ll_phone_area:
+ Intent intent1 = new Intent(LoginActivity.this, PhoneAreaActivity.class);
+ intent1.putExtra("type", "login");
+ startActivityForResult(intent1, GET_PHONE_AREA);
+ break;
+ }
+ }
+
+ private void wxLogin() {
+ SendAuth.Req req1 = new SendAuth.Req();
+ req1.scope = "snsapi_userinfo";
+ req1.state = "wechat_sdk_demo_test";
+ iwxapi.sendReq(req1);
+ }
+
+ private void login() {
+ String name = mUserName.getText().toString();
+ String phoneCode = phoneArea.getText().toString();
+ if (!VerificationUtils.checkPhoneNumber(name.trim(), phoneCode.trim())) {
+ ToastUtil.show(this, R.string.phone_error);
+ return;
+ }
+ String password = mPassWord.getText().toString();
+ if (TextUtils.isEmpty(password.trim()) || password.length() < 6) {
+ ToastUtil.show(this, R.string.password_error);
+ return;
+ }
+ NetWorkUtil util = NetWorkUtil.instans();
+ HashMap map = new HashMap<>();
+ // mobileLogin=true&isValidatjeesiteLogin=false&username=admin&password=admin
+ map.put("appId", DifferConstans.APPID_S);
+ map.put("mobile", name);
+ map.put("password", password);
+ map.put("telAreaCode", phoneCode.substring(phoneCode.indexOf("+") + 1, phoneCode.length()));
+ map.put("mobileLogin", "true");
+ map.put("clientType", "1");
+ // map.put("isValidatjeesiteLogin", "false");
+ mLoadingDialog.show();
+ util.requestPostByAsynewApi(NetWorkUrl.LOGIN_URL, map, new NetWorkUtil.ReqCallBack() {
+ @Override
+ public void onSuccess(String respone) {
+ ResponeEntity entity = JSON.parseObject(respone, ResponeEntity.class);
+ Log.i("login111", "onSuccess: " + respone);
+ if (1 == entity.getFlag()) {
+ Message msg = mHandler.obtainMessage(LOGIN_SUCCESS);
+ msg.obj = entity;
+ mHandler.sendMessage(msg);
+ } else {
+ Message msg = mHandler.obtainMessage(LOGIN_FAIL);
+ msg.obj = entity.getMsg();
+ mHandler.sendMessage(msg);
+ }
+ }
+
+ @Override
+ public void onFail(String message) {
+ Message msg = mHandler.obtainMessage(LOGIN_FAIL);
+ msg.obj = message;
+ mHandler.sendMessage(msg);
+ }
+ });
+ }
+
+ @Override
+ public void callBackUiThread(Message msg) {
+ if (null != mLoadingDialog && mLoadingDialog.isShowing()) {
+ mLoadingDialog.dismiss();
+ }
+ switch (msg.what) {
+ case LOGIN_FAIL:
+ ToastUtil.show(this, (String) msg.obj);
+ break;
+ case WX_LOGIN_FAIL:
+ if (null != mLoadingDialog) {
+ mLoadingDialog.dismiss();
+ }
+ String obj = (String) msg.obj;
+ if (!obj.equals("获取openid或token失败")) {
+ ToastUtil.show(this, (String) msg.obj);
+ }
+ break;
+ case LOGIN_SUCCESS:
+ ResponeEntity entity = (ResponeEntity) msg.obj;
+ // ToastUtil.show(this, entity.getMsg());
+ Toast.makeText(LoginActivity.this, R.string.login_success, Toast.LENGTH_SHORT).show();
+ SharedpreferencesUtil.save(Constans.USERPHONE, mUserName.getText().toString());
+ SharedpreferencesUtil.save(Constans.SEESSIONID, entity.getData().getSession());
+ SharedpreferencesUtil.save(Constans.USERID, entity.getData().getUserId());
+ // SharedpreferencesUtil.save(Constans.USERNAME, entity.getObj().getUser().getName());
+ SharedpreferencesUtil.save(Constans.PASSWORD, mPassWord.getText().toString());
+ boolean isSetting = TextUtils.isEmpty(SharedpreferencesUtil.
+ get(SharedpreferencesUtil.get(Constans.USERID, ""), ""));
+ startActivity(new Intent(this, MainActivity4.class));
+ finish();
+ /*if (isSetting) {
+ Intent intent = new Intent(this, SetGestureCodeActivity.class);
+ intent.putExtra("isset", true);
+ intent.putExtra("SEESSIONID", entity.getObj().getLogininfo().getSessionId());
+ startActivity(intent);
+
+ } else {
+ startActivity(new Intent(this, MainActivity.class));
+ }*/
+ break;
+ case WX_LOGIN_SUCCESS:
+ ResponeEntity wxLoginEntity = (ResponeEntity) msg.obj;
+ Toast.makeText(LoginActivity.this, R.string.login_success, Toast.LENGTH_SHORT).show();
+// SharedpreferencesUtil.save(Constans.USERPHONE, wxLoginEntity.getObj().getUserInfo().getLoginName());
+ SharedpreferencesUtil.save(Constans.SEESSIONID, wxLoginEntity.getData().getSession());
+ SharedpreferencesUtil.save(Constans.USERID, wxLoginEntity.getData().getUserId());
+// SharedpreferencesUtil.save(Constans.USERNAME, wxLoginEntity.getObj().getUserInfo().getName());
+ startActivity(new Intent(this, MainActivity4.class));
+ finish();
+ break;
+ case WX_LOGIN_REGISTER:
+ //去注册
+ ResponeEntity entity1 = (ResponeEntity) msg.obj;
+ Intent intent = new Intent(LoginActivity.this, WxRegisterActivity.class);
+ intent.putExtra("wxId", entity1.getObj().getWxId());
+ intent.putExtra("headUrl", entity1.getObj().getHeadUrl());
+ intent.putExtra("userName", entity1.getObj().getUserName());
+ startActivity(intent);
+ break;
+
+ case FAN_LEARN_WHAT:
+ String code = (String) msg.obj;
+ quickLogin(code);
+ break;
+ }
+ }
+
+ /**
+ * 微信登录
+ *
+ * @param code
+ */
+ private void quickLogin(String code) {
+ NetWorkUtil util = NetWorkUtil.instans();
+ HashMap map = new HashMap<>();
+ map.put("code", code);
+ map.put("appId", DifferConstans.APPID_S);
+ mLoadingDialog.show();
+ util.requestPostByAsynewApi(NetWorkUrl.WX_QUICK_LOGIN, map, new NetWorkUtil.ReqCallBack() {
+ @Override
+ public void onSuccess(String respone) {
+ Log.i("quickLogin", "onSuccess: " + respone);
+ ResponeEntity entity = JSON.parseObject(respone, ResponeEntity.class);
+ if (1 == entity.getFlag()) {
+ Message msg = mHandler.obtainMessage(WX_LOGIN_SUCCESS);
+ msg.obj = entity;
+ mHandler.sendMessage(msg);
+ } else if (1011 == entity.getFlag()) {
+ Message msg = mHandler.obtainMessage(WX_LOGIN_REGISTER);
+ msg.obj = entity;
+ mHandler.sendMessage(msg);
+ } else if (1013 == entity.getFlag()) {
+ Message msg = mHandler.obtainMessage(WX_LOGIN_REGISTER);
+ msg.obj = entity;
+ mHandler.sendMessage(msg);
+ } else {
+ Message msg = mHandler.obtainMessage(WX_LOGIN_FAIL);
+ msg.obj = entity.getMsg();
+ mHandler.sendMessage(msg);
+ }
+ }
+
+ @Override
+ public void onFail(String message) {
+ Message msg = mHandler.obtainMessage(LOGIN_FAIL);
+ msg.obj = message;
+ mHandler.sendMessage(msg);
+ }
+ });
+ }
+
+ @Override
+ public void onReq(BaseReq baseReq) {
+
+ }
+
+ @Override
+ public void onResp(BaseResp resp) {
+ Log.i("BaseReq", "" + resp.openId + "---" + resp.transaction + "===" + resp.errCode + "==" + resp.errStr);
+ String code = ((SendAuth.Resp) resp).code;
+ Log.i("BaseReq", "LoginActivity onResp()" + code);
+ String result;
+ switch (resp.errCode) {
+ case BaseResp.ErrCode.ERR_OK:
+ result = getString(R.string.Share_success);
+ EventBus.getDefault().post(
+ new WxLoginEvent(code));
+ break;
+ case BaseResp.ErrCode.ERR_USER_CANCEL:
+ result = "取消分享";
+ break;
+ case BaseResp.ErrCode.ERR_AUTH_DENIED:
+ result = "分享被拒绝";
+ break;
+ default:
+ result = "发送返回";
+ break;
+ }
+ }
+
+ @Override
+ protected void onActivityResult(int requestCode, int resultCode, Intent data) {
+ switch (requestCode) {
+ case GET_PHONE_AREA:
+ if (data != null && data.getExtras().get("phoneArea") != null) {
+ phoneArea.setText(data.getExtras().get("phoneArea").toString());
+ }
+ break;
+ }
+ }
+}
diff --git a/app/src/standard/java/com/yonsz/z1/login/WelcomeActivity.java b/app/src/standard/java/com/yonsz/z1/login/WelcomeActivity.java
new file mode 100644
index 0000000..8fdf788
--- /dev/null
+++ b/app/src/standard/java/com/yonsz/z1/login/WelcomeActivity.java
@@ -0,0 +1,264 @@
+package com.yonsz.z1.login;
+
+import android.Manifest;
+import android.content.Intent;
+import android.os.Bundle;
+import android.os.Message;
+import android.text.TextUtils;
+import android.util.Log;
+import android.view.Gravity;
+import android.view.LayoutInflater;
+import android.view.View;
+
+import com.alibaba.fastjson.JSON;
+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.TokenEntity;
+import com.yonsz.z1.fragment.person.WebViewActivity;
+import com.yonsz.z1.net.Constans;
+import com.yonsz.z1.net.NetWorkUrl;
+import com.yonsz.z1.net.NetWorkUtil;
+import com.yonsz.z1.utils.AppGenerUtil;
+import com.yonsz.z1.utils.DensityUtil;
+import com.yonsz.z1.utils.SharedpreferencesUtil;
+import com.yonsz.z1.version4.MainActivity4;
+import com.yonsz.z1.view.PrivacyPopupWindow;
+
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+
+import static com.yonsz.z1.UniKongApp.getActivity;
+import static com.yonsz.z1.difference.DifferConstans.APPID_S;
+import static com.yonsz.z1.difference.DifferConstans.APPSECRET_S;
+import static com.yonsz.z1.net.Constans.CLOSE_THIS_ACTIVITY;
+import static com.yonsz.z1.net.Constans.GET_TOKEN_FAIL;
+import static com.yonsz.z1.net.Constans.GET_TOKEN_SUCCESS;
+
+/**
+ * Created by Administrator on 2017/5/17.
+ */
+
+public class WelcomeActivity extends BaseActivity {
+
+ private final static int FLAG_TO_LOGIN = 1001;
+ private final static int FLAG_TO_GUIDER = 1002;
+ private final static int FLAG_TO_GESTURE = 1003;
+ private final static int FLAG_TO_MAIN = 1004;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_welcome);
+ }
+
+ @Override
+ public boolean enableSliding() {
+ return false;
+ }
+
+ @Override
+ public void onResume() {
+ super.onResume();
+ if (DensityUtil.isNetworkConnected(this) && DensityUtil.isNetConnected(this)) {
+ getToken();
+ } else {
+ initNext();
+ }
+ }
+
+ private void getToken() {
+ NetWorkUtil util = NetWorkUtil.instans();
+ HashMap map = new HashMap<>();
+ map.put("appId", APPID_S);
+ map.put("appSecret", APPSECRET_S);
+ util.requestPostByAsynewApi(NetWorkUrl.GET_TOKEN, map, new NetWorkUtil.ReqCallBack() {
+ @Override
+ public void onSuccess(String respone) {
+ Log.i("getToken", "onSuccess: " + respone);
+ TokenEntity entity = JSON.parseObject(respone, TokenEntity.class);
+ if (1 == entity.getFlag()) {
+ Message msg = mHandler.obtainMessage(GET_TOKEN_SUCCESS);
+ msg.obj = entity;
+ mHandler.sendMessage(msg);
+ } else {
+ Message msg = mHandler.obtainMessage(GET_TOKEN_FAIL);
+ msg.obj = entity.getMsg();
+ mHandler.sendMessage(msg);
+ }
+ }
+
+ @Override
+ public void onFail(String message) {
+ Log.i("getToken", "onSuccess: " + message);
+ Message msg = mHandler.obtainMessage(GET_TOKEN_FAIL);
+ msg.obj = message;
+ mHandler.sendMessage(msg);
+ }
+ });
+ }
+
+ private synchronized void initNext() {
+ if (null != SharedpreferencesUtil.get(Constans.PORT, null)) {
+
+ } else {
+ SharedpreferencesUtil.save(Constans.PORT, "25533");
+ }
+ /**
+ * 如果USERID不是空,进入手势页面,如果已经过了引导页,如果SEESSIONID不是空,进入主页面,如果
+ * 是空重新登录,都不是就进入引导页
+ */
+
+ SoulPermission.getInstance().checkAndRequestPermissions(
+ Permissions.build(Manifest.permission.ACCESS_FINE_LOCATION),
+ //if you want do noting or no need all the callbacks you may use SimplePermissionsAdapter instead
+ new CheckRequestPermissionsListener() {
+ @Override
+ public void onAllPermissionOk(Permission[] allPermissions) {
+ setPermission();
+ }
+
+ @Override
+ public void onPermissionDenied(Permission[] refusedPermissions) {
+ setPermission();
+ }
+ });
+ }
+
+ private void setPermission() {
+ SoulPermission.getInstance().checkAndRequestPermissions(
+ Permissions.build(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) {
+ if (SharedpreferencesUtil.get(Constans.ISOVER)) {
+ gotoNext();
+ } else {
+ showPrivacy();
+ }
+ }
+
+ @Override
+ public void onPermissionDenied(Permission[] refusedPermissions) {
+ if (SharedpreferencesUtil.get(Constans.ISOVER)) {
+ gotoNext();
+ } else {
+ showPrivacy();
+ }
+ }
+ });
+ }
+
+ private void gotoNext() {
+ if (!TextUtils.isEmpty(SharedpreferencesUtil.get(Constans.SEESSIONID, ""))) {
+ if (!TextUtils.isEmpty(SharedpreferencesUtil.get(Constans.ADIMAGEURL, ""))) {
+ mHandler.sendEmptyMessageDelayed(FLAG_TO_GESTURE, 1000);
+ } else {
+ mHandler.sendEmptyMessageDelayed(FLAG_TO_MAIN, 1000);
+ }
+ } else {
+ if (!TextUtils.isEmpty(SharedpreferencesUtil.get(Constans.ADIMAGEURL, ""))) {
+ mHandler.sendEmptyMessageDelayed(FLAG_TO_GESTURE, 1000);
+ } else {
+ mHandler.sendEmptyMessageDelayed(FLAG_TO_LOGIN, 1000);
+ }
+ }
+ }
+
+ private void showPrivacy() {
+ View rootview = LayoutInflater.from(getActivity()).inflate(R.layout.activity_child_device_a2, null);
+ PrivacyPopupWindow popupWindow = new PrivacyPopupWindow(getActivity(), new PrivacyPopupWindow.OnCompleteListener() {
+ @Override
+ public void onComplete() {
+ SharedpreferencesUtil.save(Constans.ISOVER, true);
+ gotoNext();
+ }
+
+ @Override
+ public void onFinish() {
+ finish();
+ }
+
+ @Override
+ public void onPrivacy() {
+ Intent intent = new Intent(getActivity(), WebViewActivity.class);
+ intent.putExtra("platform", "register");
+ startActivity(intent);
+ }
+ });
+ popupWindow.showAtLocation(rootview, Gravity.BOTTOM, 0, 0);
+ }
+
+ @Override
+ public void callBackUiThread(Message msg) {
+ switch (msg.what) {
+ case FLAG_TO_LOGIN:
+ startActivity(new Intent(this, LoginActivity.class));
+ finish();
+ break;
+ case FLAG_TO_GUIDER:
+ startActivity(new Intent(this, GuiderActivity.class));
+ overridePendingTransition(R.anim.activity_exit_in, R.anim.activity_exit_out);
+ finish();
+ break;
+ case FLAG_TO_GESTURE:
+ startActivity(new Intent(this, AdinfoActivity.class));
+ finish();
+ break;
+ case FLAG_TO_MAIN:
+ startActivity(new Intent(this, MainActivity4.class));
+ finish();
+ break;
+ case GET_TOKEN_SUCCESS:
+ TokenEntity entity = (TokenEntity) msg.obj;
+ if (SharedpreferencesUtil.get(Constans.TOKENID, "").equals(entity.getData().getToken().toString().trim())) {
+
+ } else {
+ SharedpreferencesUtil.save(Constans.SEESSIONID, "");
+ }
+ SharedpreferencesUtil.save(Constans.TOKENID, entity.getData().getToken().toString().trim());
+ // SharedpreferencesUtil.save(Constans.ADIMAGEURL, entity.getData().getStartUpImgUrl());
+ String androidVersions = entity.getData().getAndroidVersions().toString();
+ if (null != androidVersions) {
+ String packageVersion = AppGenerUtil.getPackageVersion(this);
+ List result = Arrays.asList(androidVersions.split(","));
+ initNext();
+ /*if (result.contains(packageVersion)) {
+ initNext();
+ } else {
+ // initNext();
+ UpdateAppUtils.from(this)
+ .apkPath(versionUrl)
+ .downloadBy(DOWNLOAD_BY_BROWSER)
+ .isForce(true)
+ .update(true);
+ }*/
+ } else {
+ initNext();
+ }
+ /*if (null != SharedpreferencesUtil.get(Constans.TOKENID, "")) {
+ if (entity.getObj().toString().trim().equals(SharedpreferencesUtil.get(Constans.TOKENID, ""))) {
+ initNext();
+ } else {
+ ToastUtil.show(this, "token已过期");
+ mHandler.sendEmptyMessageDelayed(CLOSE_THIS_ACTIVITY, 1000);
+ }
+ } else {
+ SharedpreferencesUtil.save(Constans.TOKENID, entity.getObj().toString().trim());
+ initNext();
+ }*/
+ break;
+ case CLOSE_THIS_ACTIVITY:
+ finish();
+ break;
+ case GET_TOKEN_FAIL:
+ initNext();
+ break;
+ }
+ }
+}
diff --git a/app/src/standard/java/com/yonsz/z1/login/register/CopyRightActivity.java b/app/src/standard/java/com/yonsz/z1/login/register/CopyRightActivity.java
new file mode 100644
index 0000000..7c7381c
--- /dev/null
+++ b/app/src/standard/java/com/yonsz/z1/login/register/CopyRightActivity.java
@@ -0,0 +1,45 @@
+package com.yonsz.z1.login.register;
+
+import android.os.Bundle;
+import android.os.Message;
+
+import com.yonsz.z1.R;
+import com.yonsz.z1.activity.BaseActivity;
+import com.yonsz.z1.listener.OnTitleItemClickListener;
+import com.yonsz.z1.view.TitleView;
+
+/**
+ * Created by Administrator on 2017/6/15.
+ */
+
+public class CopyRightActivity extends BaseActivity{
+ private TitleView mTitleView;
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_copyright);
+ mTitleView = (TitleView)findViewById(R.id.title_text);
+ mTitleView.setHead("用户协议");
+ mTitleView.setTitleListener(new OnTitleItemClickListener() {
+ @Override
+ public void onBack() {
+ finish();
+ }
+
+ @Override
+ public void onFunction() {
+
+ }
+
+ @Override
+ public void onFunctionText() {
+
+ }
+ });
+ }
+
+ @Override
+ public void callBackUiThread(Message msg) {
+
+ }
+}
diff --git a/app/src/standard/java/com/yonsz/z1/mine/aboutversion/AboutVersionActivity.java b/app/src/standard/java/com/yonsz/z1/mine/aboutversion/AboutVersionActivity.java
new file mode 100644
index 0000000..6dc398b
--- /dev/null
+++ b/app/src/standard/java/com/yonsz/z1/mine/aboutversion/AboutVersionActivity.java
@@ -0,0 +1,354 @@
+package com.yonsz.z1.mine.aboutversion;
+
+import android.Manifest;
+import android.content.Intent;
+import android.content.pm.PackageManager;
+import android.graphics.Bitmap;
+import android.graphics.BitmapFactory;
+import android.net.Uri;
+import android.os.Bundle;
+import android.os.Message;
+import android.support.v4.app.ActivityCompat;
+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 android.widget.Toast;
+
+import com.alibaba.fastjson.JSON;
+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.tencent.mm.opensdk.modelbase.BaseReq;
+import com.tencent.mm.opensdk.modelbase.BaseResp;
+import com.tencent.mm.opensdk.modelmsg.SendMessageToWX;
+import com.tencent.mm.opensdk.modelmsg.WXImageObject;
+import com.tencent.mm.opensdk.modelmsg.WXMediaMessage;
+import com.tencent.mm.opensdk.openapi.IWXAPI;
+import com.tencent.mm.opensdk.openapi.IWXAPIEventHandler;
+import com.tencent.mm.opensdk.openapi.WXAPIFactory;
+import com.yonsz.z1.R;
+import com.yonsz.z1.activity.BaseActivity;
+import com.yonsz.z1.database.entity.VersionEntity;
+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.DeviceBottomDialog;
+import com.yonsz.z1.mine.aboutversion.feature.Callback;
+import com.yonsz.z1.mine.aboutversion.util.UpdateAppUtils;
+import com.yonsz.z1.mine.feedback.FeedBackActivity;
+import com.yonsz.z1.net.Constans;
+import com.yonsz.z1.net.NetWorkUrl;
+import com.yonsz.z1.net.NetWorkUtil;
+import com.yonsz.z1.utils.AppGenerUtil;
+import com.yonsz.z1.utils.SharedpreferencesUtil;
+import com.yonsz.z1.utils.ToastUtil;
+import com.yonsz.z1.view.TitleView;
+
+import java.util.HashMap;
+
+import static com.tencent.mm.opensdk.modelmsg.SendMessageToWX.Req.WXSceneSession;
+import static com.tencent.mm.opensdk.modelmsg.SendMessageToWX.Req.WXSceneTimeline;
+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.WX_APP_ID;
+import static com.yonsz.z1.difference.DifferConstans.versionUrl;
+import static com.yonsz.z1.fragment.person.PersonFragment.bmpToByteArray;
+import static com.yonsz.z1.mine.aboutversion.util.UpdateAppUtils.DOWNLOAD_BY_APP;
+import static com.yonsz.z1.net.Constans.GET_USER_SESSION_NULL;
+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.version4.MainActivity4.versionId;
+
+/**
+ * Created by Administrator on 2017/5/26.
+ */
+public class AboutVersionActivity extends BaseActivity implements IWXAPIEventHandler {
+ private TextView tv_version;
+ private TextView tv_public_goto;
+ private ImageView iv_code;
+ private IWXAPI iwxapi;
+ private RelativeLayout scoreRl, versionDecalreRl, versionUpdateRl;
+ private TextView serviceHotlineTv;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_about_version);
+ iwxapi = WXAPIFactory.createWXAPI(this, WX_APP_ID, false);
+ iwxapi.handleIntent(getIntent(), this);
+ iwxapi.registerApp(WX_APP_ID);
+
+ TitleView titleView = (TitleView) findViewById(R.id.title_about_version);
+ titleView.setHead(R.string.about_version);
+ titleView.setTitleListener(new OnTitleItemClickListener() {
+ @Override
+ public void onBack() {
+ finish();
+ }
+
+ @Override
+ public void onFunction() {
+
+ }
+
+ @Override
+ public void onFunctionText() {
+
+ }
+ });
+ scoreRl = (RelativeLayout) findViewById(R.id.rl_to_score);
+ serviceHotlineTv = (TextView) findViewById(R.id.tv_customer_service_hotline);
+ versionDecalreRl = (RelativeLayout) findViewById(R.id.rl_version_declare);
+ versionUpdateRl = (RelativeLayout) findViewById(R.id.rl_version_update);
+ iv_code = (ImageView) findViewById(R.id.iv_code);
+ tv_public_goto = (TextView) findViewById(R.id.tv_public_goto);
+ tv_version = (TextView) findViewById(R.id.tv_version);
+ tv_version.setText("V" + AppGenerUtil.getPackageVersion(this));
+
+ checkUpdate(1);
+
+
+ iv_code.setOnClickListener(new NoDoubleClickListener() {
+ @Override
+ protected void onNoDoubleClick(View v) {
+ showDioalog();
+ }
+ });
+ tv_public_goto.setOnClickListener(new NoDoubleClickListener() {
+ @Override
+ public void onNoDoubleClick(View v) {
+ super.onClick(v);
+ showDioalog();
+ }
+ });
+ scoreRl.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ /*ArrayList strings = ScoreUtils.SelectedInstalledAPPs(getApplicationContext(), ScoreUtils.InstalledAPPs(getApplicationContext()));
+ ScoreUtils.launchAppDetail(AboutVersionActivity.this, "com.yonsz.z1", strings.get(0));*/
+
+ startActivity(new Intent(AboutVersionActivity.this, FeedBackActivity.class));
+ }
+ });
+ versionDecalreRl.setOnClickListener(new NoDoubleClickListener() {
+ @Override
+ protected void onNoDoubleClick(View v) {
+ Intent intent = new Intent(AboutVersionActivity.this, VersionDecalreActivity.class);
+ intent.putExtra("activity", "AboutVersionActivity");
+ startActivity(intent);
+ }
+ });
+ versionUpdateRl.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ updataUserState();
+ }
+ });
+ serviceHotlineTv.setOnClickListener(new NoDoubleClickListener() {
+ @Override
+ protected void onNoDoubleClick(View v) {
+ callHotline();
+ }
+ });
+ }
+
+ private void callHotline() {
+ ConfirmDialog dialog = new ConfirmDialog(getActivity(), new Callback() {
+ @Override
+ public void callback(int position) {
+ switch (position) {
+ case 0:
+ break;
+ case 1:
+ callPhone("4001365663");
+ break;
+ }
+ }
+ });
+ dialog.setContent("400 136 5663");
+ dialog.setCancleBtn(R.string.cancel);
+ dialog.setSureBtn(R.string.call);
+ dialog.setCancelable(false);
+ dialog.show();
+ }
+
+ public void callPhone(String phoneNum) {
+
+ SoulPermission.getInstance().checkAndRequestPermissions(
+ Permissions.build(Manifest.permission.CALL_PHONE,
+ Manifest.permission.READ_PHONE_STATE,
+ 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) {
+ Intent intent = new Intent(Intent.ACTION_CALL);
+ Uri data = Uri.parse("tel:" + phoneNum);
+ intent.setData(data);
+ if (ActivityCompat.checkSelfPermission(AboutVersionActivity.this, Manifest.permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED) {
+ return;
+ }
+ startActivity(intent);
+ }
+
+ @Override
+ public void onPermissionDenied(Permission[] refusedPermissions) {
+ ToastUtil.show(AboutVersionActivity.this, "请开启权限");
+ }
+ });
+
+ }
+
+ private void checkUpdate(int tag) {
+ UpdateAppUtils.from(this)
+ .checkBy(UpdateAppUtils.CHECK_BY_VERSION_NAME)
+ .serverVersionName(versionId)
+ .serverVersionCode(5)
+ .apkPath(versionUrl)
+ .downloadBy(DOWNLOAD_BY_APP)
+ .isForce(false)
+ .update(tag);
+ }
+
+ private void showDioalog() {
+ if (!iwxapi.isWXAppInstalled()) {
+ Toast.makeText(this, getString(R.string.not_installed_Wechat), Toast.LENGTH_SHORT).show();
+ return;
+ }
+ //初始化一个WXImageObject对象
+ Bitmap thumb = BitmapFactory.decodeResource(getResources(), R.drawable.pic_public_code1);
+ WXImageObject imageObject = new WXImageObject(thumb);
+ WXMediaMessage msg = new WXMediaMessage(); //这个对象是用来包裹发送信息的对象
+ msg.mediaObject = imageObject;
+ //设置缩略图
+ Bitmap thumbBitmap = Bitmap.createScaledBitmap(thumb, 60, 60, true);
+ msg.thumbData = bmpToByteArray(thumbBitmap, true);
+ final SendMessageToWX.Req req = new SendMessageToWX.Req(); //创建一个请求对象
+ req.message = msg; //把msg放入请求对象中
+ req.transaction = buildTransaction("Req");
+
+ /*WXWebpageObject webpageObject = new WXWebpageObject();
+ webpageObject.webpageUrl = "http://a.app.qq.com/o/simple.jsp?pkgname=com.yonsz.z1";
+ WXMediaMessage msg = new WXMediaMessage(webpageObject);
+ msg.title = "Unikong";
+ msg.description = "欢迎下载『语音遥控器APP』";
+ Bitmap thumb = BitmapFactory.decodeResource(getResources(), R.mipmap.app_lan);
+ msg.thumbData = bmpToByteArray(thumb, true);
+ final SendMessageToWX.Req req = new SendMessageToWX.Req();
+ req.transaction = buildTransaction("Req");
+ req.message = msg;*/
+ //分享到微信好友或者朋友圈
+ // startActivity(new Intent(getActivity(), WXEntryActivity.class));
+ DeviceBottomDialog dialog2 = new DeviceBottomDialog(this, new Callback() {
+ @Override
+ public void callback(int position1) {
+ switch (position1) {
+ case 0:
+ //取消
+ break;
+ case 1:
+ //微信朋友圈
+ req.scene = WXSceneTimeline;
+ iwxapi.sendReq(req);
+ break;
+ case 2:
+ //重新命名
+ break;
+ case 3:
+ //微信好友
+ req.scene = WXSceneSession;
+ iwxapi.sendReq(req);
+ break;
+ case 4:
+ break;
+ }
+ }
+ });
+ dialog2.setContent();
+ dialog2.setTop(getString(R.string.WeChat_friends));
+ dialog2.setBottom(getString(R.string.WeChat_friends_circle));
+ 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();
+ }
+
+ private String buildTransaction(final String type) {
+ return (type == null) ? String.valueOf(System.currentTimeMillis()) : type + System.currentTimeMillis();
+ }
+
+
+ @Override
+ public void callBackUiThread(Message msg) {
+ switch (msg.what) {
+ case UPDATE_STATE_SUCCESS:
+ VersionEntity.ObjEntity versionEntity = (VersionEntity.ObjEntity) msg.obj;
+ versionId = versionEntity.getVersionInfo().getVersionId().substring(2, 7);
+ versionUrl = versionEntity.getVersionInfo().getServiceUrl();
+ checkUpdate(2);
+ break;
+ }
+ }
+
+ @Override
+ public void onReq(BaseReq baseReq) {
+
+ }
+
+ @Override
+ public void onResp(BaseResp baseResp) {
+
+ }
+
+ //上传用户经纬度信息
+ 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.requestPostByAsynewApi(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);
+ }
+ });
+ }
+}
diff --git a/app/src/standard/res/drawable-hdpi/loading_icon.png b/app/src/standard/res/drawable-hdpi/loading_icon.png
new file mode 100644
index 0000000..c84c207
Binary files /dev/null and b/app/src/standard/res/drawable-hdpi/loading_icon.png differ
diff --git a/app/src/standard/res/drawable-xhdpi/loading_icon.png b/app/src/standard/res/drawable-xhdpi/loading_icon.png
new file mode 100644
index 0000000..7c657c8
Binary files /dev/null and b/app/src/standard/res/drawable-xhdpi/loading_icon.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/bg.png b/app/src/standard/res/drawable-xxhdpi/bg.png
new file mode 100644
index 0000000..1966b69
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/bg.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/icon_airer.png b/app/src/standard/res/drawable-xxhdpi/icon_airer.png
new file mode 100644
index 0000000..1e4c067
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/icon_airer.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/icon_autogate.png b/app/src/standard/res/drawable-xxhdpi/icon_autogate.png
new file mode 100644
index 0000000..1ff1717
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/icon_autogate.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/icon_bright.png b/app/src/standard/res/drawable-xxhdpi/icon_bright.png
new file mode 100644
index 0000000..a4bd377
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/icon_bright.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/icon_chandelier.png b/app/src/standard/res/drawable-xxhdpi/icon_chandelier.png
new file mode 100644
index 0000000..05d58c2
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/icon_chandelier.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/icon_chazuo.png b/app/src/standard/res/drawable-xxhdpi/icon_chazuo.png
new file mode 100644
index 0000000..3af7226
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/icon_chazuo.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/icon_clean.png b/app/src/standard/res/drawable-xxhdpi/icon_clean.png
new file mode 100644
index 0000000..3f24f66
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/icon_clean.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/icon_curtain_close.png b/app/src/standard/res/drawable-xxhdpi/icon_curtain_close.png
new file mode 100644
index 0000000..cbf35b2
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/icon_curtain_close.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/icon_curtain_elevator.png b/app/src/standard/res/drawable-xxhdpi/icon_curtain_elevator.png
new file mode 100644
index 0000000..975fbc6
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/icon_curtain_elevator.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/icon_curtain_open.png b/app/src/standard/res/drawable-xxhdpi/icon_curtain_open.png
new file mode 100644
index 0000000..6187ddf
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/icon_curtain_open.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/icon_curtain_stop.png b/app/src/standard/res/drawable-xxhdpi/icon_curtain_stop.png
new file mode 100644
index 0000000..adb8f92
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/icon_curtain_stop.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/icon_curtains.png b/app/src/standard/res/drawable-xxhdpi/icon_curtains.png
new file mode 100644
index 0000000..69e9813
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/icon_curtains.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/icon_dark.png b/app/src/standard/res/drawable-xxhdpi/icon_dark.png
new file mode 100644
index 0000000..0d40d57
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/icon_dark.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/icon_desklamp.png b/app/src/standard/res/drawable-xxhdpi/icon_desklamp.png
new file mode 100644
index 0000000..a16263c
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/icon_desklamp.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/icon_device_more.png b/app/src/standard/res/drawable-xxhdpi/icon_device_more.png
new file mode 100644
index 0000000..6a2c13c
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/icon_device_more.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/icon_device_plug_t1.png b/app/src/standard/res/drawable-xxhdpi/icon_device_plug_t1.png
new file mode 100644
index 0000000..97a9f37
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/icon_device_plug_t1.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/icon_device_plug_t4.png b/app/src/standard/res/drawable-xxhdpi/icon_device_plug_t4.png
new file mode 100644
index 0000000..3af7226
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/icon_device_plug_t4.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/icon_device_qingjing_t5.png b/app/src/standard/res/drawable-xxhdpi/icon_device_qingjing_t5.png
new file mode 100644
index 0000000..f10ff45
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/icon_device_qingjing_t5.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/icon_device_wallsocket_t2.png b/app/src/standard/res/drawable-xxhdpi/icon_device_wallsocket_t2.png
new file mode 100644
index 0000000..97affb0
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/icon_device_wallsocket_t2.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/icon_device_wifi_socket.png b/app/src/standard/res/drawable-xxhdpi/icon_device_wifi_socket.png
new file mode 100644
index 0000000..0eaedfe
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/icon_device_wifi_socket.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/icon_direction.png b/app/src/standard/res/drawable-xxhdpi/icon_direction.png
new file mode 100644
index 0000000..e888eb2
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/icon_direction.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/icon_direction_down.png b/app/src/standard/res/drawable-xxhdpi/icon_direction_down.png
new file mode 100644
index 0000000..e61e420
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/icon_direction_down.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/icon_direction_left.png b/app/src/standard/res/drawable-xxhdpi/icon_direction_left.png
new file mode 100644
index 0000000..81d5205
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/icon_direction_left.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/icon_direction_right.png b/app/src/standard/res/drawable-xxhdpi/icon_direction_right.png
new file mode 100644
index 0000000..1f80dc2
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/icon_direction_right.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/icon_direction_up.png b/app/src/standard/res/drawable-xxhdpi/icon_direction_up.png
new file mode 100644
index 0000000..2a31fe0
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/icon_direction_up.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/icon_dwx.png b/app/src/standard/res/drawable-xxhdpi/icon_dwx.png
new file mode 100644
index 0000000..b536425
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/icon_dwx.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/icon_dwx_close.png b/app/src/standard/res/drawable-xxhdpi/icon_dwx_close.png
new file mode 100644
index 0000000..288a6c3
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/icon_dwx_close.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/icon_dwx_open.png b/app/src/standard/res/drawable-xxhdpi/icon_dwx_open.png
new file mode 100644
index 0000000..cdc6401
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/icon_dwx_open.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/icon_elevator.png b/app/src/standard/res/drawable-xxhdpi/icon_elevator.png
new file mode 100644
index 0000000..11ba70e
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/icon_elevator.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/icon_exhaust.png b/app/src/standard/res/drawable-xxhdpi/icon_exhaust.png
new file mode 100644
index 0000000..694a4eb
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/icon_exhaust.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/icon_fs.png b/app/src/standard/res/drawable-xxhdpi/icon_fs.png
new file mode 100644
index 0000000..8936c29
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/icon_fs.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/icon_garage.png b/app/src/standard/res/drawable-xxhdpi/icon_garage.png
new file mode 100644
index 0000000..f4ca044
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/icon_garage.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/icon_gas.png b/app/src/standard/res/drawable-xxhdpi/icon_gas.png
new file mode 100644
index 0000000..03a186f
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/icon_gas.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/icon_gatemagnetic.png b/app/src/standard/res/drawable-xxhdpi/icon_gatemagnetic.png
new file mode 100644
index 0000000..8dc9ff4
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/icon_gatemagnetic.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/icon_gateway_dh.png b/app/src/standard/res/drawable-xxhdpi/icon_gateway_dh.png
new file mode 100644
index 0000000..f8e24b2
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/icon_gateway_dh.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/icon_gauze.png b/app/src/standard/res/drawable-xxhdpi/icon_gauze.png
new file mode 100644
index 0000000..16731fc
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/icon_gauze.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/icon_goback_nor.png b/app/src/standard/res/drawable-xxhdpi/icon_goback_nor.png
new file mode 100644
index 0000000..4a35b01
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/icon_goback_nor.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/icon_heater.png b/app/src/standard/res/drawable-xxhdpi/icon_heater.png
new file mode 100644
index 0000000..606f109
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/icon_heater.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/icon_implement_open.png b/app/src/standard/res/drawable-xxhdpi/icon_implement_open.png
new file mode 100644
index 0000000..ec43e5c
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/icon_implement_open.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/icon_implement_shut.png b/app/src/standard/res/drawable-xxhdpi/icon_implement_shut.png
new file mode 100644
index 0000000..b8d5ac6
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/icon_implement_shut.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/icon_index_nor.png b/app/src/standard/res/drawable-xxhdpi/icon_index_nor.png
new file mode 100644
index 0000000..37ffdd6
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/icon_index_nor.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/icon_infrared.png b/app/src/standard/res/drawable-xxhdpi/icon_infrared.png
new file mode 100644
index 0000000..3fbcfc0
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/icon_infrared.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/icon_kettle.png b/app/src/standard/res/drawable-xxhdpi/icon_kettle.png
new file mode 100644
index 0000000..a09590d
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/icon_kettle.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/icon_kitchenpower.png b/app/src/standard/res/drawable-xxhdpi/icon_kitchenpower.png
new file mode 100644
index 0000000..90064a1
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/icon_kitchenpower.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/icon_kitchenpower_close.png b/app/src/standard/res/drawable-xxhdpi/icon_kitchenpower_close.png
new file mode 100644
index 0000000..281d641
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/icon_kitchenpower_close.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/icon_kt.png b/app/src/standard/res/drawable-xxhdpi/icon_kt.png
new file mode 100644
index 0000000..590e5a6
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/icon_kt.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/icon_lamp.png b/app/src/standard/res/drawable-xxhdpi/icon_lamp.png
new file mode 100644
index 0000000..1460b04
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/icon_lamp.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/icon_light.png b/app/src/standard/res/drawable-xxhdpi/icon_light.png
new file mode 100644
index 0000000..ff37835
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/icon_light.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/icon_lightbelt.png b/app/src/standard/res/drawable-xxhdpi/icon_lightbelt.png
new file mode 100644
index 0000000..9cafed8
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/icon_lightbelt.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/icon_menu_nor.png b/app/src/standard/res/drawable-xxhdpi/icon_menu_nor.png
new file mode 100644
index 0000000..b4d79d7
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/icon_menu_nor.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/icon_multifunctional.png b/app/src/standard/res/drawable-xxhdpi/icon_multifunctional.png
new file mode 100644
index 0000000..797a013
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/icon_multifunctional.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/icon_music.png b/app/src/standard/res/drawable-xxhdpi/icon_music.png
new file mode 100644
index 0000000..369963a
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/icon_music.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/icon_music_mute.png b/app/src/standard/res/drawable-xxhdpi/icon_music_mute.png
new file mode 100644
index 0000000..cdb9b17
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/icon_music_mute.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/icon_music_suspend.png b/app/src/standard/res/drawable-xxhdpi/icon_music_suspend.png
new file mode 100644
index 0000000..a6c9afe
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/icon_music_suspend.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/icon_nav_add.png b/app/src/standard/res/drawable-xxhdpi/icon_nav_add.png
new file mode 100644
index 0000000..aade07f
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/icon_nav_add.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/icon_nav_reduce.png b/app/src/standard/res/drawable-xxhdpi/icon_nav_reduce.png
new file mode 100644
index 0000000..fc6e0dd
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/icon_nav_reduce.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/icon_new_home.png b/app/src/standard/res/drawable-xxhdpi/icon_new_home.png
new file mode 100644
index 0000000..20525b1
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/icon_new_home.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/icon_not_set.png b/app/src/standard/res/drawable-xxhdpi/icon_not_set.png
new file mode 100644
index 0000000..365594b
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/icon_not_set.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/icon_porchlamp.png b/app/src/standard/res/drawable-xxhdpi/icon_porchlamp.png
new file mode 100644
index 0000000..7ee1bc7
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/icon_porchlamp.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/icon_quiet_nor.png b/app/src/standard/res/drawable-xxhdpi/icon_quiet_nor.png
new file mode 100644
index 0000000..cdb9b17
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/icon_quiet_nor.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/icon_quiet_press.png b/app/src/standard/res/drawable-xxhdpi/icon_quiet_press.png
new file mode 100644
index 0000000..cdb9b17
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/icon_quiet_press.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/icon_screen_cloud_control.png b/app/src/standard/res/drawable-xxhdpi/icon_screen_cloud_control.png
new file mode 100644
index 0000000..a6c4a08
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/icon_screen_cloud_control.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/icon_search_airer.png b/app/src/standard/res/drawable-xxhdpi/icon_search_airer.png
new file mode 100644
index 0000000..9c8df07
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/icon_search_airer.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/icon_set_top_box.png b/app/src/standard/res/drawable-xxhdpi/icon_set_top_box.png
new file mode 100644
index 0000000..c27bf4a
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/icon_set_top_box.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/icon_smoke.png b/app/src/standard/res/drawable-xxhdpi/icon_smoke.png
new file mode 100644
index 0000000..09dfdce
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/icon_smoke.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/icon_spray.png b/app/src/standard/res/drawable-xxhdpi/icon_spray.png
new file mode 100644
index 0000000..1a77c1f
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/icon_spray.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/icon_step.png b/app/src/standard/res/drawable-xxhdpi/icon_step.png
new file mode 100644
index 0000000..222e529
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/icon_step.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/icon_step_three.png b/app/src/standard/res/drawable-xxhdpi/icon_step_three.png
new file mode 100644
index 0000000..ec08cf0
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/icon_step_three.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/icon_sterilizing_lamp.png b/app/src/standard/res/drawable-xxhdpi/icon_sterilizing_lamp.png
new file mode 100644
index 0000000..4e49d7e
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/icon_sterilizing_lamp.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/icon_style.png b/app/src/standard/res/drawable-xxhdpi/icon_style.png
new file mode 100644
index 0000000..49f0ebf
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/icon_style.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/icon_sunshade.png b/app/src/standard/res/drawable-xxhdpi/icon_sunshade.png
new file mode 100644
index 0000000..5b4af14
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/icon_sunshade.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/icon_switch_nor.png b/app/src/standard/res/drawable-xxhdpi/icon_switch_nor.png
new file mode 100644
index 0000000..c08a57f
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/icon_switch_nor.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/icon_switch_off.png b/app/src/standard/res/drawable-xxhdpi/icon_switch_off.png
new file mode 100644
index 0000000..ace3494
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/icon_switch_off.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/icon_switch_on.png b/app/src/standard/res/drawable-xxhdpi/icon_switch_on.png
new file mode 100644
index 0000000..075c903
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/icon_switch_on.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/icon_switch_open.png b/app/src/standard/res/drawable-xxhdpi/icon_switch_open.png
new file mode 100644
index 0000000..075c903
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/icon_switch_open.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/icon_tubelamp.png b/app/src/standard/res/drawable-xxhdpi/icon_tubelamp.png
new file mode 100644
index 0000000..168f488
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/icon_tubelamp.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/icon_tv.png b/app/src/standard/res/drawable-xxhdpi/icon_tv.png
new file mode 100644
index 0000000..ce5a501
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/icon_tv.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/icon_tv_ok.png b/app/src/standard/res/drawable-xxhdpi/icon_tv_ok.png
new file mode 100644
index 0000000..cd79063
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/icon_tv_ok.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/icon_voice_off.png b/app/src/standard/res/drawable-xxhdpi/icon_voice_off.png
new file mode 100644
index 0000000..0ae61f2
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/icon_voice_off.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/icon_voice_on.png b/app/src/standard/res/drawable-xxhdpi/icon_voice_on.png
new file mode 100644
index 0000000..bdfc4af
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/icon_voice_on.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/icon_vol_add.png b/app/src/standard/res/drawable-xxhdpi/icon_vol_add.png
new file mode 100644
index 0000000..aade07f
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/icon_vol_add.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/icon_vol_reduce.png b/app/src/standard/res/drawable-xxhdpi/icon_vol_reduce.png
new file mode 100644
index 0000000..fc6e0dd
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/icon_vol_reduce.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/icon_walllamp.png b/app/src/standard/res/drawable-xxhdpi/icon_walllamp.png
new file mode 100644
index 0000000..b6ece2c
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/icon_walllamp.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/icon_waterimmersion.png b/app/src/standard/res/drawable-xxhdpi/icon_waterimmersion.png
new file mode 100644
index 0000000..4ed529f
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/icon_waterimmersion.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/icon_wifi.png b/app/src/standard/res/drawable-xxhdpi/icon_wifi.png
new file mode 100644
index 0000000..e8dded8
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/icon_wifi.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/icon_window_opener.png b/app/src/standard/res/drawable-xxhdpi/icon_window_opener.png
new file mode 100644
index 0000000..581dc5b
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/icon_window_opener.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/index_bigadd.png b/app/src/standard/res/drawable-xxhdpi/index_bigadd.png
new file mode 100644
index 0000000..a966d63
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/index_bigadd.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/loading_icon.png b/app/src/standard/res/drawable-xxhdpi/loading_icon.png
new file mode 100644
index 0000000..1c931c2
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/loading_icon.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/pic_airer_decline.png b/app/src/standard/res/drawable-xxhdpi/pic_airer_decline.png
new file mode 100644
index 0000000..25d108f
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/pic_airer_decline.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/pic_autogate.png b/app/src/standard/res/drawable-xxhdpi/pic_autogate.png
new file mode 100644
index 0000000..1491d8c
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/pic_autogate.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/pic_chandelier.png b/app/src/standard/res/drawable-xxhdpi/pic_chandelier.png
new file mode 100644
index 0000000..ab348a5
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/pic_chandelier.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/pic_chandelier_close.png b/app/src/standard/res/drawable-xxhdpi/pic_chandelier_close.png
new file mode 100644
index 0000000..1aee19e
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/pic_chandelier_close.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/pic_chandelier_open.png b/app/src/standard/res/drawable-xxhdpi/pic_chandelier_open.png
new file mode 100644
index 0000000..d34a8d3
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/pic_chandelier_open.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/pic_chazuo.png b/app/src/standard/res/drawable-xxhdpi/pic_chazuo.png
new file mode 100644
index 0000000..a236b11
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/pic_chazuo.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/pic_chazuo_close.png b/app/src/standard/res/drawable-xxhdpi/pic_chazuo_close.png
new file mode 100644
index 0000000..a832f4b
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/pic_chazuo_close.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/pic_chazuo_open.png b/app/src/standard/res/drawable-xxhdpi/pic_chazuo_open.png
new file mode 100644
index 0000000..90acdb1
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/pic_chazuo_open.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/pic_chazuo_t4.png b/app/src/standard/res/drawable-xxhdpi/pic_chazuo_t4.png
new file mode 100644
index 0000000..8ec0bad
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/pic_chazuo_t4.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/pic_close_back.png b/app/src/standard/res/drawable-xxhdpi/pic_close_back.png
new file mode 100644
index 0000000..b8f7b41
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/pic_close_back.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/pic_close_window.png b/app/src/standard/res/drawable-xxhdpi/pic_close_window.png
new file mode 100644
index 0000000..ae86722
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/pic_close_window.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/pic_control_scene.png b/app/src/standard/res/drawable-xxhdpi/pic_control_scene.png
new file mode 100644
index 0000000..8304c79
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/pic_control_scene.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/pic_control_scene1.png b/app/src/standard/res/drawable-xxhdpi/pic_control_scene1.png
new file mode 100644
index 0000000..a21cbf8
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/pic_control_scene1.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/pic_control_scene2.png b/app/src/standard/res/drawable-xxhdpi/pic_control_scene2.png
new file mode 100644
index 0000000..11ef32b
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/pic_control_scene2.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/pic_control_scene3.png b/app/src/standard/res/drawable-xxhdpi/pic_control_scene3.png
new file mode 100644
index 0000000..9cdf370
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/pic_control_scene3.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/pic_control_scene4.png b/app/src/standard/res/drawable-xxhdpi/pic_control_scene4.png
new file mode 100644
index 0000000..ea9ac4e
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/pic_control_scene4.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/pic_control_scene6.png b/app/src/standard/res/drawable-xxhdpi/pic_control_scene6.png
new file mode 100644
index 0000000..15b5469
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/pic_control_scene6.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/pic_curtain.png b/app/src/standard/res/drawable-xxhdpi/pic_curtain.png
new file mode 100644
index 0000000..49d35a3
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/pic_curtain.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/pic_curtain_close.png b/app/src/standard/res/drawable-xxhdpi/pic_curtain_close.png
new file mode 100644
index 0000000..52d4497
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/pic_curtain_close.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/pic_curtain_elevator.png b/app/src/standard/res/drawable-xxhdpi/pic_curtain_elevator.png
new file mode 100644
index 0000000..1653027
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/pic_curtain_elevator.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/pic_dehumidify_back.png b/app/src/standard/res/drawable-xxhdpi/pic_dehumidify_back.png
new file mode 100644
index 0000000..47d084b
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/pic_dehumidify_back.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/pic_desklamp.png b/app/src/standard/res/drawable-xxhdpi/pic_desklamp.png
new file mode 100644
index 0000000..9fb36ab
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/pic_desklamp.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/pic_desklamp_close.png b/app/src/standard/res/drawable-xxhdpi/pic_desklamp_close.png
new file mode 100644
index 0000000..535fc12
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/pic_desklamp_close.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/pic_desklamp_open.png b/app/src/standard/res/drawable-xxhdpi/pic_desklamp_open.png
new file mode 100644
index 0000000..4fd25bc
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/pic_desklamp_open.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/pic_disinfection_lamp_close.png b/app/src/standard/res/drawable-xxhdpi/pic_disinfection_lamp_close.png
new file mode 100644
index 0000000..e87c7d9
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/pic_disinfection_lamp_close.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/pic_disinfection_lamp_open.png b/app/src/standard/res/drawable-xxhdpi/pic_disinfection_lamp_open.png
new file mode 100644
index 0000000..21ecbbb
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/pic_disinfection_lamp_open.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/pic_dwx.png b/app/src/standard/res/drawable-xxhdpi/pic_dwx.png
new file mode 100644
index 0000000..2efbfc5
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/pic_dwx.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/pic_electricfan.png b/app/src/standard/res/drawable-xxhdpi/pic_electricfan.png
new file mode 100644
index 0000000..c4a5c57
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/pic_electricfan.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/pic_elevator.png b/app/src/standard/res/drawable-xxhdpi/pic_elevator.png
new file mode 100644
index 0000000..f5263fe
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/pic_elevator.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/pic_exhaust.png b/app/src/standard/res/drawable-xxhdpi/pic_exhaust.png
new file mode 100644
index 0000000..050a8f2
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/pic_exhaust.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/pic_exhaust_close.png b/app/src/standard/res/drawable-xxhdpi/pic_exhaust_close.png
new file mode 100644
index 0000000..773a72c
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/pic_exhaust_close.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/pic_exhaust_open.png b/app/src/standard/res/drawable-xxhdpi/pic_exhaust_open.png
new file mode 100644
index 0000000..15c7b18
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/pic_exhaust_open.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/pic_garage.png b/app/src/standard/res/drawable-xxhdpi/pic_garage.png
new file mode 100644
index 0000000..14a24a0
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/pic_garage.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/pic_gauze.png b/app/src/standard/res/drawable-xxhdpi/pic_gauze.png
new file mode 100644
index 0000000..9a25328
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/pic_gauze.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/pic_guidepage1.png b/app/src/standard/res/drawable-xxhdpi/pic_guidepage1.png
new file mode 100644
index 0000000..02c4b55
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/pic_guidepage1.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/pic_guidepage2.png b/app/src/standard/res/drawable-xxhdpi/pic_guidepage2.png
new file mode 100644
index 0000000..d39521c
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/pic_guidepage2.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/pic_guidepage3.png b/app/src/standard/res/drawable-xxhdpi/pic_guidepage3.png
new file mode 100644
index 0000000..d907ac1
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/pic_guidepage3.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/pic_heater.png b/app/src/standard/res/drawable-xxhdpi/pic_heater.png
new file mode 100644
index 0000000..e396f9c
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/pic_heater.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/pic_heater_close.png b/app/src/standard/res/drawable-xxhdpi/pic_heater_close.png
new file mode 100644
index 0000000..a0de406
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/pic_heater_close.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/pic_heater_open.png b/app/src/standard/res/drawable-xxhdpi/pic_heater_open.png
new file mode 100644
index 0000000..0a7d6a8
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/pic_heater_open.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/pic_heating_back.png b/app/src/standard/res/drawable-xxhdpi/pic_heating_back.png
new file mode 100644
index 0000000..fea82f8
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/pic_heating_back.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/pic_index_custom.png b/app/src/standard/res/drawable-xxhdpi/pic_index_custom.png
new file mode 100644
index 0000000..e6a37f2
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/pic_index_custom.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/pic_kettle.png b/app/src/standard/res/drawable-xxhdpi/pic_kettle.png
new file mode 100644
index 0000000..fa65c88
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/pic_kettle.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/pic_kettle_close.png b/app/src/standard/res/drawable-xxhdpi/pic_kettle_close.png
new file mode 100644
index 0000000..40265e3
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/pic_kettle_close.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/pic_kettle_open.png b/app/src/standard/res/drawable-xxhdpi/pic_kettle_open.png
new file mode 100644
index 0000000..c3ae666
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/pic_kettle_open.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/pic_kitchenpower.png b/app/src/standard/res/drawable-xxhdpi/pic_kitchenpower.png
new file mode 100644
index 0000000..2e1d5be
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/pic_kitchenpower.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/pic_kitchenpower_open.png b/app/src/standard/res/drawable-xxhdpi/pic_kitchenpower_open.png
new file mode 100644
index 0000000..01c70ca
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/pic_kitchenpower_open.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/pic_lamp.png b/app/src/standard/res/drawable-xxhdpi/pic_lamp.png
new file mode 100644
index 0000000..c420a36
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/pic_lamp.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/pic_lamp_close.png b/app/src/standard/res/drawable-xxhdpi/pic_lamp_close.png
new file mode 100644
index 0000000..1744609
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/pic_lamp_close.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/pic_lamp_open.png b/app/src/standard/res/drawable-xxhdpi/pic_lamp_open.png
new file mode 100644
index 0000000..a4f660e
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/pic_lamp_open.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/pic_light_close.png b/app/src/standard/res/drawable-xxhdpi/pic_light_close.png
new file mode 100644
index 0000000..dbb61a8
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/pic_light_close.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/pic_light_open.png b/app/src/standard/res/drawable-xxhdpi/pic_light_open.png
new file mode 100644
index 0000000..6290762
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/pic_light_open.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/pic_lightbelt.png b/app/src/standard/res/drawable-xxhdpi/pic_lightbelt.png
new file mode 100644
index 0000000..f80a7e3
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/pic_lightbelt.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/pic_lightbelt_close.png b/app/src/standard/res/drawable-xxhdpi/pic_lightbelt_close.png
new file mode 100644
index 0000000..cf7b146
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/pic_lightbelt_close.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/pic_lightbelt_open.png b/app/src/standard/res/drawable-xxhdpi/pic_lightbelt_open.png
new file mode 100644
index 0000000..ca77751
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/pic_lightbelt_open.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/pic_multifunctional.png b/app/src/standard/res/drawable-xxhdpi/pic_multifunctional.png
new file mode 100644
index 0000000..74b68fc
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/pic_multifunctional.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/pic_music_add.png b/app/src/standard/res/drawable-xxhdpi/pic_music_add.png
new file mode 100644
index 0000000..96a1ec9
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/pic_music_add.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/pic_music_key.png b/app/src/standard/res/drawable-xxhdpi/pic_music_key.png
new file mode 100644
index 0000000..0fae609
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/pic_music_key.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/pic_music_last.png b/app/src/standard/res/drawable-xxhdpi/pic_music_last.png
new file mode 100644
index 0000000..53ca4e8
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/pic_music_last.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/pic_music_next.png b/app/src/standard/res/drawable-xxhdpi/pic_music_next.png
new file mode 100644
index 0000000..7f24b99
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/pic_music_next.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/pic_music_reduce.png b/app/src/standard/res/drawable-xxhdpi/pic_music_reduce.png
new file mode 100644
index 0000000..3808fa9
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/pic_music_reduce.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/pic_plug_t1.png b/app/src/standard/res/drawable-xxhdpi/pic_plug_t1.png
new file mode 100644
index 0000000..368ebc3
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/pic_plug_t1.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/pic_plug_t4.png b/app/src/standard/res/drawable-xxhdpi/pic_plug_t4.png
new file mode 100644
index 0000000..a236b11
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/pic_plug_t4.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/pic_porchlamp.png b/app/src/standard/res/drawable-xxhdpi/pic_porchlamp.png
new file mode 100644
index 0000000..1db220c
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/pic_porchlamp.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/pic_porchlamp_close.png b/app/src/standard/res/drawable-xxhdpi/pic_porchlamp_close.png
new file mode 100644
index 0000000..25b0f3a
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/pic_porchlamp_close.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/pic_porchlamp_open.png b/app/src/standard/res/drawable-xxhdpi/pic_porchlamp_open.png
new file mode 100644
index 0000000..63bcf4d
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/pic_porchlamp_open.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/pic_public_code1.png b/app/src/standard/res/drawable-xxhdpi/pic_public_code1.png
new file mode 100644
index 0000000..b96341f
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/pic_public_code1.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/pic_refrigeration_back.png b/app/src/standard/res/drawable-xxhdpi/pic_refrigeration_back.png
new file mode 100644
index 0000000..9670ec3
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/pic_refrigeration_back.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/pic_sterilizing_lamp.png b/app/src/standard/res/drawable-xxhdpi/pic_sterilizing_lamp.png
new file mode 100644
index 0000000..e58534e
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/pic_sterilizing_lamp.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/pic_sunshade.png b/app/src/standard/res/drawable-xxhdpi/pic_sunshade.png
new file mode 100644
index 0000000..d4784ae
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/pic_sunshade.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/pic_tubelamp.png b/app/src/standard/res/drawable-xxhdpi/pic_tubelamp.png
new file mode 100644
index 0000000..929507f
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/pic_tubelamp.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/pic_tubelamp_close.png b/app/src/standard/res/drawable-xxhdpi/pic_tubelamp_close.png
new file mode 100644
index 0000000..f356242
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/pic_tubelamp_close.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/pic_tubelamp_open.png b/app/src/standard/res/drawable-xxhdpi/pic_tubelamp_open.png
new file mode 100644
index 0000000..49ee27f
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/pic_tubelamp_open.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/pic_walllamp.png b/app/src/standard/res/drawable-xxhdpi/pic_walllamp.png
new file mode 100644
index 0000000..e69bd17
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/pic_walllamp.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/pic_walllamp_close.png b/app/src/standard/res/drawable-xxhdpi/pic_walllamp_close.png
new file mode 100644
index 0000000..d94d36a
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/pic_walllamp_close.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/pic_walllamp_open.png b/app/src/standard/res/drawable-xxhdpi/pic_walllamp_open.png
new file mode 100644
index 0000000..025a746
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/pic_walllamp_open.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/pic_wallpaper01.png b/app/src/standard/res/drawable-xxhdpi/pic_wallpaper01.png
new file mode 100644
index 0000000..9b0f097
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/pic_wallpaper01.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/pic_wallpaper02.png b/app/src/standard/res/drawable-xxhdpi/pic_wallpaper02.png
new file mode 100644
index 0000000..660ee93
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/pic_wallpaper02.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/pic_wallpaper03.png b/app/src/standard/res/drawable-xxhdpi/pic_wallpaper03.png
new file mode 100644
index 0000000..2118819
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/pic_wallpaper03.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/pic_wallpaper04.png b/app/src/standard/res/drawable-xxhdpi/pic_wallpaper04.png
new file mode 100644
index 0000000..989acbe
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/pic_wallpaper04.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/pic_wallsocket_t2.png b/app/src/standard/res/drawable-xxhdpi/pic_wallsocket_t2.png
new file mode 100644
index 0000000..fb7ada8
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/pic_wallsocket_t2.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/pic_wifi_socket.png b/app/src/standard/res/drawable-xxhdpi/pic_wifi_socket.png
new file mode 100644
index 0000000..97716a7
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/pic_wifi_socket.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/pic_window.png b/app/src/standard/res/drawable-xxhdpi/pic_window.png
new file mode 100644
index 0000000..ae86722
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/pic_window.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/select_reveal_copy.png b/app/src/standard/res/drawable-xxhdpi/select_reveal_copy.png
new file mode 100644
index 0000000..5375943
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/select_reveal_copy.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/select_unnor1.png b/app/src/standard/res/drawable-xxhdpi/select_unnor1.png
new file mode 100644
index 0000000..ee4be75
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/select_unnor1.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/select_unnor2.png b/app/src/standard/res/drawable-xxhdpi/select_unnor2.png
new file mode 100644
index 0000000..fb8a828
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/select_unnor2.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/wode_icon_invitation.png b/app/src/standard/res/drawable-xxhdpi/wode_icon_invitation.png
new file mode 100644
index 0000000..4fb002f
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/wode_icon_invitation.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/wode_icon_linkage.png b/app/src/standard/res/drawable-xxhdpi/wode_icon_linkage.png
new file mode 100644
index 0000000..8d7bc7e
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/wode_icon_linkage.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/wode_icon_news.png b/app/src/standard/res/drawable-xxhdpi/wode_icon_news.png
new file mode 100644
index 0000000..43c6312
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/wode_icon_news.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/wode_icon_setting.png b/app/src/standard/res/drawable-xxhdpi/wode_icon_setting.png
new file mode 100644
index 0000000..835f61d
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/wode_icon_setting.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/wode_icon_update.png b/app/src/standard/res/drawable-xxhdpi/wode_icon_update.png
new file mode 100644
index 0000000..1f751e1
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/wode_icon_update.png differ
diff --git a/app/src/standard/res/drawable-xxhdpi/wode_icon_upgrade.png b/app/src/standard/res/drawable-xxhdpi/wode_icon_upgrade.png
new file mode 100644
index 0000000..f4141a1
Binary files /dev/null and b/app/src/standard/res/drawable-xxhdpi/wode_icon_upgrade.png differ
diff --git a/app/src/standard/res/drawable/btn_round_360_bg.xml b/app/src/standard/res/drawable/btn_round_360_bg.xml
new file mode 100644
index 0000000..bfcdce4
--- /dev/null
+++ b/app/src/standard/res/drawable/btn_round_360_bg.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/standard/res/drawable/btn_round_360_bg_center.xml b/app/src/standard/res/drawable/btn_round_360_bg_center.xml
new file mode 100644
index 0000000..086a116
--- /dev/null
+++ b/app/src/standard/res/drawable/btn_round_360_bg_center.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/standard/res/drawable/btn_round_360_stroke.xml b/app/src/standard/res/drawable/btn_round_360_stroke.xml
new file mode 100644
index 0000000..6953b15
--- /dev/null
+++ b/app/src/standard/res/drawable/btn_round_360_stroke.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/standard/res/drawable/kuang_house_type.xml b/app/src/standard/res/drawable/kuang_house_type.xml
new file mode 100644
index 0000000..a17645f
--- /dev/null
+++ b/app/src/standard/res/drawable/kuang_house_type.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/standard/res/layout/activity_about_version.xml b/app/src/standard/res/layout/activity_about_version.xml
new file mode 100644
index 0000000..9131ca7
--- /dev/null
+++ b/app/src/standard/res/layout/activity_about_version.xml
@@ -0,0 +1,232 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/standard/res/layout/activity_copyright.xml b/app/src/standard/res/layout/activity_copyright.xml
new file mode 100644
index 0000000..9c6303c
--- /dev/null
+++ b/app/src/standard/res/layout/activity_copyright.xml
@@ -0,0 +1,119 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/standard/res/layout/activity_login.xml b/app/src/standard/res/layout/activity_login.xml
new file mode 100644
index 0000000..0948108
--- /dev/null
+++ b/app/src/standard/res/layout/activity_login.xml
@@ -0,0 +1,231 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/standard/res/layout/activity_welcome.xml b/app/src/standard/res/layout/activity_welcome.xml
new file mode 100644
index 0000000..19deb09
--- /dev/null
+++ b/app/src/standard/res/layout/activity_welcome.xml
@@ -0,0 +1,53 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/standard/res/mipmap-xxxhdpi/app_lan.png b/app/src/standard/res/mipmap-xxxhdpi/app_lan.png
new file mode 100644
index 0000000..afa5cfc
Binary files /dev/null and b/app/src/standard/res/mipmap-xxxhdpi/app_lan.png differ
diff --git a/app/src/standard/res/values/array.xml b/app/src/standard/res/values/array.xml
new file mode 100644
index 0000000..7b19524
--- /dev/null
+++ b/app/src/standard/res/values/array.xml
@@ -0,0 +1,10 @@
+
+
+ - 8
+ - 8
+ - 8
+ - 4
+ - 4
+ - 4
+
+
diff --git a/app/src/standard/res/values/attrs.xml b/app/src/standard/res/values/attrs.xml
new file mode 100644
index 0000000..1598846
--- /dev/null
+++ b/app/src/standard/res/values/attrs.xml
@@ -0,0 +1,38 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/standard/res/values/colors.xml b/app/src/standard/res/values/colors.xml
new file mode 100644
index 0000000..94fbf8a
--- /dev/null
+++ b/app/src/standard/res/values/colors.xml
@@ -0,0 +1,22 @@
+
+
+
+ #efeff4
+ #000000
+
+ #FFFFFF
+ #CFCFCF
+ #505166
+
+ #42CFBE
+ #57B1CC
+ #B888E5
+ #F695A8
+ #F9D461
+
+ #333333
+ #333333
+ #333333
+ #398DEE
+ #398dee//填写框文字颜色
+
diff --git a/app/src/standard/res/values/dimens.xml b/app/src/standard/res/values/dimens.xml
new file mode 100644
index 0000000..baa0459
--- /dev/null
+++ b/app/src/standard/res/values/dimens.xml
@@ -0,0 +1,12 @@
+
+
+
+ 0.5dp
+
+
+ 10sp
+ 12sp
+ 15sp
+ 20sp
+
+
diff --git a/app/src/standard/res/values/ids.xml b/app/src/standard/res/values/ids.xml
new file mode 100644
index 0000000..bef5ac3
--- /dev/null
+++ b/app/src/standard/res/values/ids.xml
@@ -0,0 +1,8 @@
+
+
+
+
\ No newline at end of file
diff --git a/app/src/standard/res/values/spinner_data.xml b/app/src/standard/res/values/spinner_data.xml
new file mode 100644
index 0000000..84bcbd7
--- /dev/null
+++ b/app/src/standard/res/values/spinner_data.xml
@@ -0,0 +1,91 @@
+
+
+
+ - 00
+ - 01
+ - 02
+ - 03
+ - 04
+ - 05
+ - 06
+ - 07
+ - 08
+ - 09
+ - 10
+ - 11
+ - 12
+ - 13
+ - 14
+ - 15
+ - 16
+ - 17
+ - 18
+ - 19
+ - 20
+ - 21
+ - 22
+ - 23
+
+
+ - 00
+ - 01
+ - 02
+ - 03
+ - 04
+ - 05
+ - 06
+ - 07
+ - 08
+ - 09
+ - 10
+ - 11
+ - 12
+ - 13
+ - 14
+ - 15
+ - 16
+ - 17
+ - 18
+ - 19
+ - 20
+ - 21
+ - 22
+ - 23
+ - 24
+ - 25
+ - 26
+ - 27
+ - 28
+ - 29
+ - 30
+ - 31
+ - 32
+ - 33
+ - 34
+ - 35
+ - 36
+ - 37
+ - 38
+ - 39
+ - 40
+ - 41
+ - 42
+ - 43
+ - 44
+ - 45
+ - 46
+ - 47
+ - 48
+ - 49
+ - 50
+ - 51
+ - 52
+ - 53
+ - 54
+ - 55
+ - 56
+ - 57
+ - 58
+ - 59
+
+
diff --git a/app/src/standard/res/values/strings.xml b/app/src/standard/res/values/strings.xml
new file mode 100644
index 0000000..37ebed6
--- /dev/null
+++ b/app/src/standard/res/values/strings.xml
@@ -0,0 +1,8 @@
+
+ 语音遥控器
+ 深圳永顺智信息科技有限公司 版权所有
+ 关于
+ Copyright © 2017-2022 Yonsz All Right Reserved
+ 凡是通过语音遥控器官方商城购买的产品,我们将严格按照国家三包政策,对所售产品提供7天(含)退货,15天(含)因质量问题换新服务。注意事项:1)客服初审核通过,仅表示语音遥控器受理您的退换货申请,但不代表同意您的退换货,最终以商品检测报告为准,以此来判断您是否符合退换货条件。2)若您的申请为“审核不通过”,具体原因将会显示在您的退换货申请详情页面,若有疑问,可与语音遥控器服联系。3)签收时,请务必要求投递员在场共同检验包裹,若发现物流损坏、缺件或发错货等情况,请当场拒收并要求快递员存证,同时请您拍照存证,并打电话服务提出换货申请。4)若已签收,需要提供物流公司开具的凭据,并在退换货申请受理之后提交附件。若未提供物流开具的证明,公司无法处理退款或换货。
+ 您好,语音遥控器产品支持七天退货15天换货服务;在您收到商品后,如有任何原因需要进行退换货,打客户服务热线进行退货申请;请在包裹内留下纸条,写上您的订单号、联系方式及退货理由,以便我们及时确认完成退款,谢谢您的配合;请确保配件完整并且无人为破坏的情况(如开过发票的需要和发票一块寄回),非产品质量问题的退货,导致的退货,寄回的运费需您自行承担,因产品质量问题的退货,财务将给您报销寄回的快递费(最高22元)运费您先垫付,不支持到付件哦,我们收到货后会尽快为您办理,请耐心等待;祝您生活愉快!
+
diff --git a/app/src/standard/res/values/styles.xml b/app/src/standard/res/values/styles.xml
new file mode 100644
index 0000000..dfbdec1
--- /dev/null
+++ b/app/src/standard/res/values/styles.xml
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
diff --git a/app/src/standard/res/values/wheel__attrs.xml b/app/src/standard/res/values/wheel__attrs.xml
new file mode 100644
index 0000000..db64ba7
--- /dev/null
+++ b/app/src/standard/res/values/wheel__attrs.xml
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/test/java/com/yonsz/z1/ExampleUnitTest.java b/app/src/test/java/com/yonsz/z1/ExampleUnitTest.java
new file mode 100644
index 0000000..fb7c753
--- /dev/null
+++ b/app/src/test/java/com/yonsz/z1/ExampleUnitTest.java
@@ -0,0 +1,35 @@
+package com.yonsz.z1;
+
+import org.junit.Test;
+
+import java.util.LinkedHashSet;
+import java.util.Set;
+
+/**
+ * Example local unit test, which will execute on the development machine (host).
+ *
+ * @see Testing documentation
+ */
+public class ExampleUnitTest {
+ @Test
+ public void addition_isCorrect() throws Exception {
+ // assertEquals(4, 2 + 2);
+
+
+ YblEntity a1 = new YblEntity();
+ a1.setYblId("1111");
+ YblEntity a2 = new YblEntity();
+ a2.setYblId("1111");
+
+ System.out.println(a1.equals(a2));
+
+ Set list = new LinkedHashSet<>();
+ list.add(a2);
+ list.add(a2);
+
+ System.out.println(list.size());
+
+
+
+ }
+}
\ No newline at end of file
diff --git a/app/src/test/java/com/yonsz/z1/YblEntity.java b/app/src/test/java/com/yonsz/z1/YblEntity.java
new file mode 100644
index 0000000..16abb5d
--- /dev/null
+++ b/app/src/test/java/com/yonsz/z1/YblEntity.java
@@ -0,0 +1,127 @@
+package com.yonsz.z1;
+
+import java.io.Serializable;
+
+/**
+ * Created by Administrator on 2017/7/5.
+ */
+
+public class YblEntity implements Serializable {
+ /**
+ * 易百珑
+ * lightCount : 2
+ * yblId : b105417e
+ * yblLabel : 双路控制设备
+ * yblType : 03
+ */
+
+ private int lightCount;
+ private String yblId;
+ private String yblLabel;
+ private String yblType;
+ private String ziId;
+ private int flag;
+ private String cmdType;
+ private String cmd;
+ private String addressId;
+ private String lightType;
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o)
+ return true;
+ if (o == null || getClass() != o.getClass())
+ return false;
+
+ YblEntity yblEntity = (YblEntity) o;
+
+ return yblId != null ? yblId.equals(yblEntity.yblId) : yblEntity.yblId == null;
+ }
+
+ @Override
+ public int hashCode() {
+ return yblId != null ? yblId.hashCode() : 0;
+ }
+
+
+
+ public String getAddressId() {
+ return addressId == null ? "" : addressId;
+ }
+
+ public void setAddressId(String addressId) {
+ this.addressId = addressId;
+ }
+
+ public String getLightType() {
+ return lightType == null ? "" : lightType;
+ }
+
+ public void setLightType(String lightType) {
+ this.lightType = lightType;
+ }
+
+ 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;
+ }
+}
diff --git a/app/src/xiaoxun/java/com/xiaoxun/z1/wxapi/WXEntryActivity.java b/app/src/xiaoxun/java/com/xiaoxun/z1/wxapi/WXEntryActivity.java
new file mode 100644
index 0000000..f7ef02b
--- /dev/null
+++ b/app/src/xiaoxun/java/com/xiaoxun/z1/wxapi/WXEntryActivity.java
@@ -0,0 +1,101 @@
+package com.xiaoxun.z1.wxapi;
+
+import android.app.Activity;
+import android.content.Intent;
+import android.graphics.Bitmap;
+import android.os.Bundle;
+import android.util.Log;
+
+import com.tencent.mm.opensdk.modelbase.BaseReq;
+import com.tencent.mm.opensdk.modelbase.BaseResp;
+import com.tencent.mm.opensdk.modelmsg.SendAuth;
+import com.tencent.mm.opensdk.openapi.IWXAPI;
+import com.tencent.mm.opensdk.openapi.IWXAPIEventHandler;
+import com.tencent.mm.opensdk.openapi.WXAPIFactory;
+import com.yonsz.z1.R;
+import com.yonsz.z1.database.entity.entitya2.WxLoginEvent;
+
+import java.io.ByteArrayOutputStream;
+
+import de.greenrobot.event.EventBus;
+
+import static com.yonsz.z1.difference.DifferConstans.WX_APP_ID;
+
+
+public class WXEntryActivity extends Activity implements IWXAPIEventHandler {
+ private IWXAPI iwxapi;
+
+ public static byte[] bmpToByteArray(final Bitmap bmp, final boolean needRecycle) {
+ ByteArrayOutputStream output = new ByteArrayOutputStream();
+ bmp.compress(Bitmap.CompressFormat.PNG, 100, output);
+ if (needRecycle) {
+ bmp.recycle();
+ }
+ byte[] result = output.toByteArray();
+ try {
+ output.close();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ return result;
+ }
+
+ @Override
+
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_wxentry);
+ iwxapi = WXAPIFactory.createWXAPI(this, WX_APP_ID, false);
+ iwxapi.handleIntent(getIntent(), this);
+ iwxapi.registerApp(WX_APP_ID);
+ }
+
+
+ @Override
+ protected void onNewIntent(Intent intent) {
+ super.onNewIntent(intent);
+ setIntent(intent);
+ iwxapi.handleIntent(intent, this);
+ }
+
+ @Override
+ public void onReq(BaseReq baseReq) {
+ Log.i("BaseReq", "" + baseReq.openId + "---" + baseReq.transaction);
+ }
+
+ @Override
+ public void onResp(BaseResp resp) {
+ Log.i("BaseReq", "" + resp.openId + "---" + resp.transaction + "===" + resp.errCode + "==" + resp.errStr);
+ String result;
+ switch (resp.errCode) {
+ case BaseResp.ErrCode.ERR_OK:
+ result = getString(R.string.Share_success);
+ if (resp instanceof SendAuth.Resp) {
+ String code = ((SendAuth.Resp) resp).code;
+ Log.i("BaseReq", "LoginActivity onResp()" + code);
+ EventBus.getDefault().post(
+ new WxLoginEvent(code));
+ } else {
+
+ }
+ break;
+ case BaseResp.ErrCode.ERR_USER_CANCEL:
+ result = "取消分享";
+ break;
+ case BaseResp.ErrCode.ERR_AUTH_DENIED:
+ result = "分享被拒绝";
+ break;
+ default:
+ result = "发送返回";
+ break;
+ }
+ finish();
+ }
+
+ private String buildTransaction(final String type) {
+ return (type == null) ? String.valueOf(System.currentTimeMillis()) : type + System.currentTimeMillis();
+ }
+
+ enum SHARE_TYPE {Type_WXSceneSession, Type_WXSceneTimeline}
+
+}
diff --git a/app/src/xiaoxun/java/com/yonsz/z1/difference/DifferConstans.java b/app/src/xiaoxun/java/com/yonsz/z1/difference/DifferConstans.java
new file mode 100644
index 0000000..7482029
--- /dev/null
+++ b/app/src/xiaoxun/java/com/yonsz/z1/difference/DifferConstans.java
@@ -0,0 +1,15 @@
+package com.yonsz.z1.difference;
+
+/**
+ * Created by Administrator on 2018/6/21.
+ */
+
+public class DifferConstans {
+ //后台版本控制
+ public static final String VERSION_S = "v1";
+ public static final String APPID_S = "1104";
+ public static final String APPSECRET_S = "xxzn_2018";
+ public static final String APPID_S_VOICE = "110401";
+ public static final String WX_APP_ID = "wx750428352c1b1178";
+ public static String versionUrl = "http://a.app.qq.com/o/simple.jsp?pkgname=com.xiaoxun.z1";
+}
diff --git a/app/src/xiaoxun/java/com/yonsz/z1/login/LoginActivity.java b/app/src/xiaoxun/java/com/yonsz/z1/login/LoginActivity.java
new file mode 100644
index 0000000..3c52630
--- /dev/null
+++ b/app/src/xiaoxun/java/com/yonsz/z1/login/LoginActivity.java
@@ -0,0 +1,456 @@
+package com.yonsz.z1.login;
+
+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.Button;
+import android.widget.EditText;
+import android.widget.ImageView;
+import android.widget.RelativeLayout;
+import android.widget.TextView;
+import android.widget.Toast;
+
+import com.alibaba.fastjson.JSON;
+import com.tencent.mm.opensdk.modelbase.BaseReq;
+import com.tencent.mm.opensdk.modelbase.BaseResp;
+import com.tencent.mm.opensdk.modelmsg.SendAuth;
+import com.tencent.mm.opensdk.openapi.IWXAPI;
+import com.tencent.mm.opensdk.openapi.IWXAPIEventHandler;
+import com.tencent.mm.opensdk.openapi.WXAPIFactory;
+import com.yonsz.z1.R;
+import com.yonsz.z1.activity.BaseActivity;
+import com.yonsz.z1.database.entity.ResponeEntity;
+import com.yonsz.z1.database.entity.entitya2.WxLoginEntity;
+import com.yonsz.z1.database.entity.entitya2.WxLoginEvent;
+import com.yonsz.z1.listener.OnTitleItemClickListener;
+import com.yonsz.z1.login.forgetpw.ForgetPWActivity;
+import com.yonsz.z1.login.register.RegisterActivity;
+import com.yonsz.z1.login.register.WxRegisterActivity;
+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.utils.VerificationUtils;
+import com.yonsz.z1.version4.MainActivity4;
+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.clean_password;
+import static com.yonsz.z1.R.id.iv_clean_phone;
+import static com.yonsz.z1.net.Constans.FAN_LEARN_WHAT;
+import static com.yonsz.z1.net.Constans.LOGIN_FAIL;
+import static com.yonsz.z1.net.Constans.LOGIN_SUCCESS;
+import static com.yonsz.z1.net.Constans.WX_LOGIN_FAIL;
+import static com.yonsz.z1.net.Constans.WX_LOGIN_REGISTER;
+import static com.yonsz.z1.net.Constans.WX_LOGIN_SUCCESS;
+
+/**
+ * Created by Administrator on 2017/5/16.
+ */
+
+public class LoginActivity extends BaseActivity implements IWXAPIEventHandler {
+ private TitleView mTitle;
+ private Button mLogin;
+ private TextView mRegister;
+ private TextView mForgetPw;
+ private EditText mUserName;
+ private EditText mPassWord;
+ private ImageView cleanPhoneIv;
+ private ImageView cleanPasswordIv;
+ private LoadingDialog mLoadingDialog;
+ private RelativeLayout rl_weixin_login;
+
+ private IWXAPI iwxapi;
+ private String APP_ID = "wx93fc1edef0e5fc70";
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_login);
+ initView();
+ initListener();
+
+ iwxapi = WXAPIFactory.createWXAPI(this, APP_ID, true);
+ iwxapi.handleIntent(this.getIntent(), this);
+ iwxapi.registerApp(APP_ID);
+ }
+
+ public void onEventMainThread(WxLoginEvent event) {
+ String msg = event.getMsg();
+ Log.e("nettyUtil", msg);
+ Message message = new Message();
+ message.what = FAN_LEARN_WHAT;
+ message.obj = msg;
+ mHandler.sendMessage(message);
+ }
+
+
+ private void initView() {
+ cleanPhoneIv = (ImageView) findViewById(iv_clean_phone);
+ cleanPasswordIv = (ImageView) findViewById(clean_password);
+ mUserName = (EditText) findViewById(R.id.edit_username);
+ mUserName.setText(SharedpreferencesUtil.get(Constans.USERPHONE, ""));
+ if (!TextUtils.isEmpty(mUserName.getText().toString())) {
+ cleanPhoneIv.setVisibility(View.VISIBLE);
+ }
+ mPassWord = (EditText) findViewById(R.id.edit_pw);
+ mLogin = (Button) findViewById(R.id.bt_sure);
+ mLogin.setBackgroundDrawable(getResources().getDrawable(R.drawable.btn_round_9cc6f6));
+ mRegister = (TextView) findViewById(R.id.tv_register);
+ mForgetPw = (TextView) findViewById(R.id.txt_forget_pw);
+ rl_weixin_login = (RelativeLayout) findViewById(R.id.rl_weixin_login);
+ mLoadingDialog = new LoadingDialog(this);
+ mTitle = (TitleView) findViewById(R.id.title_login);
+ mTitle.setHead(R.string.login);
+ mTitle.setHeadBackGone();
+ mTitle.setHeadFuntionTxt(" ");
+ mTitle.setTitleListener(new OnTitleItemClickListener() {
+ @Override
+ public void onBack() {
+
+ }
+
+ @Override
+ public void onFunction() {
+ }
+
+ @Override
+ public void onFunctionText() {
+ }
+ });
+ }
+
+ private void initListener() {
+ rl_weixin_login.setOnClickListener(this);
+ mLogin.setOnClickListener(this);
+ mRegister.setOnClickListener(this);
+ mForgetPw.setOnClickListener(this);
+ cleanPasswordIv.setOnClickListener(this);
+ cleanPhoneIv.setOnClickListener(this);
+ mUserName.addTextChangedListener(new TextWatcher() {
+ @Override
+ public void beforeTextChanged(CharSequence s, int start, int count, int after) {
+
+ }
+
+ @Override
+ public void onTextChanged(CharSequence s, int start, int before, int count) {
+ int i = s.length();
+ if (i == 0 || TextUtils.isEmpty(mPassWord.getText())) {
+ mLogin.setBackgroundDrawable(getResources().getDrawable(R.drawable.btn_round_9cc6f6));
+ mLogin.setEnabled(false);
+ } else {
+ mLogin.setBackgroundDrawable(getResources().getDrawable(R.drawable.btn_round_398dee));
+ mLogin.setEnabled(true);
+ }
+ }
+
+ @Override
+ public void afterTextChanged(Editable s) {
+ if (!TextUtils.isEmpty(s) && cleanPhoneIv.getVisibility() == View.GONE) {
+ cleanPhoneIv.setVisibility(View.VISIBLE);
+ } else if (TextUtils.isEmpty(s)) {
+ cleanPhoneIv.setVisibility(View.GONE);
+ }
+ }
+ });
+ mPassWord.addTextChangedListener(new TextWatcher() {
+ @Override
+ public void beforeTextChanged(CharSequence s, int start, int count, int after) {
+
+ }
+
+ @Override
+ public void onTextChanged(CharSequence s, int start, int before, int count) {
+ int i = s.length();
+ if (i == 0 || TextUtils.isEmpty(mUserName.getText())) {
+ mLogin.setBackgroundDrawable(getResources().getDrawable(R.drawable.btn_round_9cc6f6));
+ mLogin.setEnabled(false);
+ } else {
+ mLogin.setBackgroundDrawable(getResources().getDrawable(R.drawable.btn_round_398dee));
+ mLogin.setEnabled(true);
+ }
+ }
+
+ @Override
+ public void afterTextChanged(Editable s) {
+ if (!TextUtils.isEmpty(s) && cleanPasswordIv.getVisibility() == View.GONE) {
+ cleanPasswordIv.setVisibility(View.VISIBLE);
+ } else if (TextUtils.isEmpty(s)) {
+ cleanPasswordIv.setVisibility(View.GONE);
+ }
+ if (s.toString().isEmpty())
+ return;
+ if (!s.toString().matches("[A-Za-z0-9]+")) {
+ String temp = s.toString();
+ s.delete(temp.length() - 1, temp.length());
+ mPassWord.setSelection(s.length());
+
+ }
+ }
+ });
+ }
+
+ @Override
+ public void onClick(View v) {
+ super.onClick(v);
+ switch (v.getId()) {
+ case R.id.bt_sure:
+ if (DensityUtil.isNetworkConnected(this)) {
+ login();
+ } else {
+ ToastUtil.show(this, R.string.no_network_connection);
+ }
+ break;
+ case R.id.tv_register:
+ startActivity(new Intent(LoginActivity.this, RegisterActivity.class));
+ break;
+ case R.id.txt_forget_pw:
+ Intent intent = new Intent(LoginActivity.this, ForgetPWActivity.class);
+ intent.putExtra("tag", "LoginActivity");
+ startActivity(intent);
+ break;
+ case R.id.iv_clean_phone:
+ mUserName.setText("");
+ break;
+ case R.id.clean_password:
+ mPassWord.setText("");
+ break;
+ case R.id.rl_weixin_login:
+ if (!iwxapi.isWXAppInstalled()) {
+ Toast.makeText(this, getString(R.string.not_installed_Wechat), Toast.LENGTH_SHORT).show();
+ return;
+ }
+ wxLogin();
+ break;
+ }
+ }
+
+ private void wxLogin() {
+ SendAuth.Req req1 = new SendAuth.Req();
+ req1.scope = "snsapi_userinfo";
+ req1.state = "wechat_sdk_demo_test";
+ iwxapi.sendReq(req1);
+ }
+
+ private void login() {
+ String name = mUserName.getText().toString();
+ SharedpreferencesUtil.save(Constans.USERPHONE, mUserName.getText().toString());
+ if (!VerificationUtils.isMobile(name.trim())) {
+ ToastUtil.show(this, R.string.phone_error);
+ return;
+ }
+ String password = mPassWord.getText().toString();
+ if (TextUtils.isEmpty(password.trim()) || password.length() < 6) {
+ ToastUtil.show(this, R.string.password_error);
+ return;
+ }
+ NetWorkUtil util = NetWorkUtil.instans();
+ HashMap map = new HashMap<>();
+ // mobileLogin=true&isValidatjeesiteLogin=false&username=admin&password=admin
+ map.put("mobileLogin", "true");
+ map.put("ismobile", "true");
+ map.put("isValidatjeesiteLogin", "false");
+ map.put("username", name);
+ map.put("password", password);
+ mLoadingDialog.show();
+ util.requestPostByAsyne(NetWorkUrl.LOGIN_URL, map, new NetWorkUtil.ReqCallBack() {
+ @Override
+ public void onSuccess(String respone) {
+ ResponeEntity entity = JSON.parseObject(respone, ResponeEntity.class);
+ Log.i("login111", "onSuccess: " + respone);
+ if (1 == entity.getFlag()) {
+ Message msg = mHandler.obtainMessage(LOGIN_SUCCESS);
+ msg.obj = entity;
+ mHandler.sendMessage(msg);
+ } else {
+ Message msg = mHandler.obtainMessage(LOGIN_FAIL);
+ msg.obj = entity.getMsg();
+ mHandler.sendMessage(msg);
+ }
+ }
+
+ @Override
+ public void onFail(String message) {
+ Message msg = mHandler.obtainMessage(LOGIN_FAIL);
+ msg.obj = message;
+ mHandler.sendMessage(msg);
+ }
+ });
+ }
+
+ @Override
+ public void callBackUiThread(Message msg) {
+ mLoadingDialog.dismiss();
+ switch (msg.what) {
+ case LOGIN_FAIL:
+ Log.i("login111", "LoginActivity callBackUiThread()" + msg.obj.toString());
+ ToastUtil.show(this, (String) msg.obj);
+ break;
+ case LOGIN_SUCCESS:
+ ResponeEntity entity = (ResponeEntity) msg.obj;
+ // ToastUtil.show(this, entity.getMsg());
+ Toast.makeText(LoginActivity.this, R.string.login_success, Toast.LENGTH_SHORT).show();
+ SharedpreferencesUtil.save(Constans.SEESSIONID, entity.getObj().getLogininfo().getSessionId());
+ SharedpreferencesUtil.save(Constans.USERID, entity.getObj().getUser().getId());
+ SharedpreferencesUtil.save(Constans.USERNAME, entity.getObj().getUser().getName());
+ SharedpreferencesUtil.save(Constans.PASSWORD, mPassWord.getText().toString());
+ boolean isSetting = TextUtils.isEmpty(SharedpreferencesUtil.
+ get(SharedpreferencesUtil.get(Constans.USERID, ""), ""));
+ startActivity(new Intent(this, MainActivity4.class));
+ finish();
+ /*if (isSetting) {
+ Intent intent = new Intent(this, SetGestureCodeActivity.class);
+ intent.putExtra("isset", true);
+ intent.putExtra("SEESSIONID", entity.getObj().getLogininfo().getSessionId());
+ startActivity(intent);
+
+ } else {
+ startActivity(new Intent(this, MainActivity.class));
+ }*/
+ break;
+ case WX_LOGIN_SUCCESS:
+ WxLoginEntity wxLoginEntity = (WxLoginEntity) msg.obj;
+ Toast.makeText(LoginActivity.this, R.string.login_success, Toast.LENGTH_SHORT).show();
+ SharedpreferencesUtil.save(Constans.USERPHONE, wxLoginEntity.getObj().getUserInfo().getLoginName());
+ SharedpreferencesUtil.save(Constans.SEESSIONID, wxLoginEntity.getObj().getSession());
+ SharedpreferencesUtil.save(Constans.USERID, wxLoginEntity.getObj().getUserInfo().getId());
+ SharedpreferencesUtil.save(Constans.USERNAME, wxLoginEntity.getObj().getUserInfo().getName());
+ startActivity(new Intent(this, MainActivity4.class));
+ finish();
+ break;
+ case WX_LOGIN_REGISTER:
+ //去注册
+ WxLoginEntity entity1 = (WxLoginEntity) msg.obj;
+ Intent intent = new Intent(LoginActivity.this, WxRegisterActivity.class);
+ intent.putExtra("wxId", entity1.getObj().getWxId());
+ intent.putExtra("headUrl", entity1.getObj().getHeadUrl());
+ intent.putExtra("userName", entity1.getObj().getUserName());
+ startActivity(intent);
+ break;
+
+ case FAN_LEARN_WHAT:
+ String code = (String) msg.obj;
+ quickLogin(code);
+ break;
+ }
+ }
+
+ /**
+ * 微信登录
+ *
+ * @param code
+ */
+ private void quickLogin(String code) {
+ NetWorkUtil util = NetWorkUtil.instans();
+ HashMap map = new HashMap<>();
+ map.put("code", code);
+ mLoadingDialog.show();
+ util.requestPostByAsyne(NetWorkUrl.WX_QUICK_LOGIN, map, new NetWorkUtil.ReqCallBack() {
+ @Override
+ public void onSuccess(String respone) {
+ Log.i("quickLogin", "onSuccess: " + respone);
+ WxLoginEntity entity = JSON.parseObject(respone, WxLoginEntity.class);
+ if (1012 == entity.getFlag()) {
+ Message msg = mHandler.obtainMessage(WX_LOGIN_SUCCESS);
+ msg.obj = entity;
+ mHandler.sendMessage(msg);
+ } else if (1011 == entity.getFlag()) {
+ Message msg = mHandler.obtainMessage(WX_LOGIN_REGISTER);
+ msg.obj = entity;
+ mHandler.sendMessage(msg);
+ } else if (1013 == entity.getFlag()) {
+ Message msg = mHandler.obtainMessage(WX_LOGIN_REGISTER);
+ msg.obj = entity;
+ mHandler.sendMessage(msg);
+ } else {
+ Message msg = mHandler.obtainMessage(WX_LOGIN_FAIL);
+ msg.obj = entity.getMsg();
+ mHandler.sendMessage(msg);
+ }
+ }
+
+ @Override
+ public void onFail(String message) {
+ Message msg = mHandler.obtainMessage(LOGIN_FAIL);
+ msg.obj = message;
+ mHandler.sendMessage(msg);
+ }
+ });
+ }
+
+ @Override
+ public void onReq(BaseReq baseReq) {
+
+ }
+
+ @Override
+ public void onResp(BaseResp resp) {
+ Log.i("BaseReq", "" + resp.openId + "---" + resp.transaction + "===" + resp.errCode + "==" + resp.errStr);
+ String code = ((SendAuth.Resp) resp).code;
+ Log.i("BaseReq", "LoginActivity onResp()" + code);
+ String result;
+ switch (resp.errCode) {
+ case BaseResp.ErrCode.ERR_OK:
+ result = getString(R.string.Share_success);
+ EventBus.getDefault().post(
+ new WxLoginEvent(code));
+ break;
+ case BaseResp.ErrCode.ERR_USER_CANCEL:
+ result = "取消分享";
+ break;
+ case BaseResp.ErrCode.ERR_AUTH_DENIED:
+ result = "分享被拒绝";
+ break;
+ default:
+ result = "发送返回";
+ break;
+ }
+ }
+
+ private void login(String s, String s1) {
+ NetWorkUtil util = NetWorkUtil.instans();
+ HashMap map = new HashMap<>();
+ // mobileLogin=true&isValidatjeesiteLogin=false&username=admin&password=admin
+ map.put("mobileLogin", "true");
+ map.put("ismobile", "true");
+ map.put("isValidatjeesiteLogin", "false");
+ map.put("username", s);
+ map.put("password", s1);
+ mLoadingDialog.show();
+ util.requestPostByAsyne(NetWorkUrl.LOGIN_URL, map, new NetWorkUtil.ReqCallBack() {
+ @Override
+ public void onSuccess(String respone) {
+ ResponeEntity entity = JSON.parseObject(respone, ResponeEntity.class);
+ Log.i("login111", "onSuccess: " + respone);
+ if (1 == entity.getFlag()) {
+ Message msg = mHandler.obtainMessage(LOGIN_SUCCESS);
+ msg.obj = entity;
+ mHandler.sendMessage(msg);
+ } else {
+ Message msg = mHandler.obtainMessage(LOGIN_FAIL);
+ msg.obj = entity.getMsg();
+ mHandler.sendMessage(msg);
+ }
+ }
+
+ @Override
+ public void onFail(String message) {
+ Message msg = mHandler.obtainMessage(LOGIN_FAIL);
+ msg.obj = message;
+ mHandler.sendMessage(msg);
+ }
+ });
+ }
+}
diff --git a/app/src/xiaoxun/java/com/yonsz/z1/login/WelcomeActivity.java b/app/src/xiaoxun/java/com/yonsz/z1/login/WelcomeActivity.java
new file mode 100644
index 0000000..5081bc5
--- /dev/null
+++ b/app/src/xiaoxun/java/com/yonsz/z1/login/WelcomeActivity.java
@@ -0,0 +1,177 @@
+package com.yonsz.z1.login;
+
+import android.content.Intent;
+import android.os.Bundle;
+import android.os.Message;
+import android.text.TextUtils;
+import android.util.Log;
+
+import com.alibaba.fastjson.JSON;
+import com.yonsz.z1.R;
+import com.yonsz.z1.activity.BaseActivity;
+import com.yonsz.z1.database.entity.TokenEntity;
+import com.yonsz.z1.net.Constans;
+import com.yonsz.z1.net.NetWorkUrl;
+import com.yonsz.z1.net.NetWorkUtil;
+import com.yonsz.z1.utils.AppGenerUtil;
+import com.yonsz.z1.utils.DensityUtil;
+import com.yonsz.z1.utils.SharedpreferencesUtil;
+import com.yonsz.z1.version4.MainActivity4;
+
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+
+import static com.yonsz.z1.difference.DifferConstans.APPID_S;
+import static com.yonsz.z1.difference.DifferConstans.APPSECRET_S;
+import static com.yonsz.z1.net.Constans.CLOSE_THIS_ACTIVITY;
+import static com.yonsz.z1.net.Constans.GET_TOKEN_FAIL;
+import static com.yonsz.z1.net.Constans.GET_TOKEN_SUCCESS;
+
+/**
+ * Created by Administrator on 2017/5/17.
+ */
+
+public class WelcomeActivity extends BaseActivity {
+
+ private final static int FLAG_TO_LOGIN = 1001;
+ private final static int FLAG_TO_GUIDER = 1002;
+ private final static int FLAG_TO_GESTURE = 1003;
+ private final static int FLAG_TO_MAIN = 1004;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_welcome);
+ /*if (DensityUtil.isNetworkConnected(this)) {
+ getToken();
+ } else {
+ initNext();
+ }*/
+ }
+
+ @Override
+ public void onResume() {
+ super.onResume();
+ if (DensityUtil.isNetworkConnected(this) && DensityUtil.isNetConnected(this)) {
+ getToken();
+ } else {
+ initNext();
+ }
+ }
+
+ private void getToken() {
+ NetWorkUtil util = NetWorkUtil.instans();
+ HashMap map = new HashMap<>();
+ map.put("appId", APPID_S);
+ map.put("appSecret", APPSECRET_S);
+ util.requestPostByAsyn(NetWorkUrl.GET_TOKEN, map, new NetWorkUtil.ReqCallBack() {
+ @Override
+ public void onSuccess(String respone) {
+ Log.i("getToken", "onSuccess: " + respone);
+ TokenEntity entity = JSON.parseObject(respone, TokenEntity.class);
+ if (1 == entity.getFlag()) {
+ Message msg = mHandler.obtainMessage(GET_TOKEN_SUCCESS);
+ msg.obj = entity;
+ mHandler.sendMessage(msg);
+ } else {
+ Message msg = mHandler.obtainMessage(GET_TOKEN_FAIL);
+ msg.obj = entity.getMsg();
+ mHandler.sendMessage(msg);
+ }
+ }
+
+ @Override
+ public void onFail(String message) {
+ Log.i("getToken", "onSuccess: " + message);
+ Message msg = mHandler.obtainMessage(GET_TOKEN_FAIL);
+ msg.obj = message;
+ mHandler.sendMessage(msg);
+ }
+ });
+ }
+
+ private void initNext() {
+ /**
+ * 如果USERID不是空,进入手势页面,如果已经过了引导页,如果SEESSIONID不是空,进入主页面,如果
+ * 是空重新登录,都不是就进入引导页
+ */
+ /*if (!TextUtils.isEmpty(SharedpreferencesUtil.get(Constans.SEESSIONID, ""))) {
+ mHandler.sendEmptyMessageDelayed(FLAG_TO_MAIN, 1000);
+ } else {
+ mHandler.sendEmptyMessageDelayed(FLAG_TO_LOGIN, 1000);
+ }
+ boolean isSetting = TextUtils.isEmpty(SharedpreferencesUtil.
+ get(SharedpreferencesUtil.get(Constans.USERID, ""), ""));*/
+ if (SharedpreferencesUtil.get(Constans.ISOVER)) {
+ if (!TextUtils.isEmpty(SharedpreferencesUtil.get(Constans.SEESSIONID, ""))) {
+ mHandler.sendEmptyMessageDelayed(FLAG_TO_MAIN, 1000);
+ } else {
+ mHandler.sendEmptyMessageDelayed(FLAG_TO_LOGIN, 1000);
+ }
+ } else {
+ mHandler.sendEmptyMessageDelayed(FLAG_TO_GUIDER, 1000);
+ }
+ }
+
+ @Override
+ public void callBackUiThread(Message msg) {
+ switch (msg.what) {
+ case FLAG_TO_LOGIN:
+ startActivity(new Intent(this, LoginActivity.class));
+ finish();
+ break;
+ case FLAG_TO_GUIDER:
+ startActivity(new Intent(this, GuiderActivity.class));
+ finish();
+ break;
+ /*case FLAG_TO_GESTURE:
+ startActivity(new Intent(this,CreateGestureActivity.class));
+ finish();
+ break;*/
+ case FLAG_TO_MAIN:
+ startActivity(new Intent(this, MainActivity4.class));
+ finish();
+ break;
+ case GET_TOKEN_SUCCESS:
+ TokenEntity entity = (TokenEntity) msg.obj;
+ SharedpreferencesUtil.save(Constans.TOKENID, entity.getObj().getToken().toString().trim());
+ String androidVersions = entity.getObj().getAndroidVersions().toString();
+ if (null != androidVersions) {
+ String packageVersion = AppGenerUtil.getPackageVersion(this);
+ List result = Arrays.asList(androidVersions.split(","));
+ initNext();
+ /*if (result.contains(packageVersion)) {
+ initNext();
+ } else {
+ // initNext();
+ UpdateAppUtils.from(this)
+ .apkPath(versionUrl)
+ .downloadBy(DOWNLOAD_BY_BROWSER)
+ .isForce(true)
+ .update(true);
+ }*/
+ } else {
+ initNext();
+ }
+ /*if (null != SharedpreferencesUtil.get(Constans.TOKENID, "")) {
+ if (entity.getObj().toString().trim().equals(SharedpreferencesUtil.get(Constans.TOKENID, ""))) {
+ initNext();
+ } else {
+ ToastUtil.show(this, "token已过期");
+ mHandler.sendEmptyMessageDelayed(CLOSE_THIS_ACTIVITY, 1000);
+ }
+ } else {
+ SharedpreferencesUtil.save(Constans.TOKENID, entity.getObj().toString().trim());
+ initNext();
+ }*/
+ break;
+ case CLOSE_THIS_ACTIVITY:
+ finish();
+ break;
+ case GET_TOKEN_FAIL:
+ initNext();
+ break;
+ }
+ }
+}
diff --git a/app/src/xiaoxun/java/com/yonsz/z1/login/register/CopyRightActivity.java b/app/src/xiaoxun/java/com/yonsz/z1/login/register/CopyRightActivity.java
new file mode 100644
index 0000000..42ccb7f
--- /dev/null
+++ b/app/src/xiaoxun/java/com/yonsz/z1/login/register/CopyRightActivity.java
@@ -0,0 +1,46 @@
+package com.yonsz.z1.login.register;
+
+import android.os.Bundle;
+import android.os.Message;
+
+import com.yonsz.z1.R;
+import com.yonsz.z1.activity.BaseActivity;
+import com.yonsz.z1.listener.OnTitleItemClickListener;
+import com.yonsz.z1.view.TitleView;
+
+/**
+ * Created by Administrator on 2017/6/15.
+ */
+
+public class CopyRightActivity extends BaseActivity {
+ private TitleView mTitleView;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_copyright);
+ mTitleView = (TitleView) findViewById(R.id.title_text);
+ mTitleView.setHead("用户协议");
+ mTitleView.setTitleListener(new OnTitleItemClickListener() {
+ @Override
+ public void onBack() {
+ finish();
+ }
+
+ @Override
+ public void onFunction() {
+
+ }
+
+ @Override
+ public void onFunctionText() {
+
+ }
+ });
+ }
+
+ @Override
+ public void callBackUiThread(Message msg) {
+
+ }
+}
diff --git a/app/src/xiaoxun/java/com/yonsz/z1/mine/aboutversion/AboutVersionActivity.java b/app/src/xiaoxun/java/com/yonsz/z1/mine/aboutversion/AboutVersionActivity.java
new file mode 100644
index 0000000..272683a
--- /dev/null
+++ b/app/src/xiaoxun/java/com/yonsz/z1/mine/aboutversion/AboutVersionActivity.java
@@ -0,0 +1,231 @@
+package com.yonsz.z1.mine.aboutversion;
+
+import android.content.Intent;
+import android.graphics.Bitmap;
+import android.graphics.BitmapFactory;
+import android.os.Bundle;
+import android.os.Message;
+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 android.widget.Toast;
+
+import com.tencent.mm.opensdk.modelbase.BaseReq;
+import com.tencent.mm.opensdk.modelbase.BaseResp;
+import com.tencent.mm.opensdk.modelmsg.SendMessageToWX;
+import com.tencent.mm.opensdk.modelmsg.WXImageObject;
+import com.tencent.mm.opensdk.modelmsg.WXMediaMessage;
+import com.tencent.mm.opensdk.openapi.IWXAPI;
+import com.tencent.mm.opensdk.openapi.IWXAPIEventHandler;
+import com.tencent.mm.opensdk.openapi.WXAPIFactory;
+import com.yonsz.z1.R;
+import com.yonsz.z1.activity.BaseActivity;
+import com.yonsz.z1.listener.NoDoubleClickListener;
+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.mine.aboutversion.util.ScoreUtils;
+import com.yonsz.z1.mine.aboutversion.util.UpdateAppUtils;
+import com.yonsz.z1.utils.AppGenerUtil;
+import com.yonsz.z1.view.TitleView;
+
+import java.util.ArrayList;
+
+import static com.tencent.mm.opensdk.modelmsg.SendMessageToWX.Req.WXSceneSession;
+import static com.tencent.mm.opensdk.modelmsg.SendMessageToWX.Req.WXSceneTimeline;
+import static com.yonsz.z1.difference.DifferConstans.WX_APP_ID;
+import static com.yonsz.z1.difference.DifferConstans.versionUrl;
+import static com.yonsz.z1.fragment.person.PersonFragment.bmpToByteArray;
+import static com.yonsz.z1.mine.aboutversion.util.UpdateAppUtils.DOWNLOAD_BY_BROWSER;
+import static com.yonsz.z1.version4.MainActivity4.versionId;
+
+/**
+ * Created by Administrator on 2017/5/26.
+ */
+public class AboutVersionActivity extends BaseActivity implements IWXAPIEventHandler {
+ private TextView tv_version;
+ private TextView tv_public_goto;
+ private ImageView iv_code;
+ private IWXAPI iwxapi;
+ private RelativeLayout scoreRl, versionDecalreRl, versionUpdateRl;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_about_version);
+ iwxapi = WXAPIFactory.createWXAPI(this, WX_APP_ID, false);
+ iwxapi.handleIntent(getIntent(), this);
+ iwxapi.registerApp(WX_APP_ID);
+
+ TitleView titleView = (TitleView) findViewById(R.id.title_about_version);
+ titleView.setHead(R.string.about_version);
+ titleView.setTitleListener(new OnTitleItemClickListener() {
+ @Override
+ public void onBack() {
+ finish();
+ }
+
+ @Override
+ public void onFunction() {
+
+ }
+
+ @Override
+ public void onFunctionText() {
+
+ }
+ });
+ scoreRl = (RelativeLayout) findViewById(R.id.rl_to_score);
+ versionDecalreRl = (RelativeLayout) findViewById(R.id.rl_version_declare);
+ versionUpdateRl = (RelativeLayout) findViewById(R.id.rl_version_update);
+ iv_code = (ImageView) findViewById(R.id.iv_code);
+ tv_public_goto = (TextView) findViewById(R.id.tv_public_goto);
+ tv_version = (TextView) findViewById(R.id.tv_version);
+ tv_version.setText("V" + AppGenerUtil.getPackageVersion(this));
+
+ checkUpdate(1);
+
+
+ iv_code.setOnClickListener(new NoDoubleClickListener() {
+ @Override
+ protected void onNoDoubleClick(View v) {
+ showDioalog();
+ }
+ });
+ tv_public_goto.setOnClickListener(new NoDoubleClickListener() {
+ @Override
+ public void onNoDoubleClick(View v) {
+ super.onClick(v);
+ showDioalog();
+ }
+ });
+ scoreRl.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ ArrayList strings = ScoreUtils.SelectedInstalledAPPs(getApplicationContext(), ScoreUtils.InstalledAPPs(getApplicationContext()));
+ ScoreUtils.launchAppDetail(AboutVersionActivity.this, "com.yonsz.z1", strings.get(0));
+ }
+ });
+ versionDecalreRl.setOnClickListener(new NoDoubleClickListener() {
+ @Override
+ protected void onNoDoubleClick(View v) {
+ Intent intent = new Intent(AboutVersionActivity.this, VersionDecalreActivity.class);
+ intent.putExtra("activity","AboutVersionActivity");
+ startActivity(intent);
+ }
+ });
+ versionUpdateRl.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ checkUpdate(2);
+ }
+ });
+ }
+
+ private void checkUpdate(int tag) {
+ UpdateAppUtils.from(this)
+ .checkBy(UpdateAppUtils.CHECK_BY_VERSION_NAME)
+ .serverVersionName(versionId)
+ .serverVersionCode(5)
+ .apkPath(versionUrl)
+ .downloadBy(DOWNLOAD_BY_BROWSER)
+ .isForce(false)
+ .update(tag);
+ }
+
+ private void showDioalog() {
+ if (!iwxapi.isWXAppInstalled()) {
+ Toast.makeText(this, getString(R.string.not_installed_Wechat), Toast.LENGTH_SHORT).show();
+ return;
+ }
+ //初始化一个WXImageObject对象
+ Bitmap thumb = BitmapFactory.decodeResource(getResources(), R.drawable.pic_public_code);
+ WXImageObject imageObject = new WXImageObject(thumb);
+ WXMediaMessage msg = new WXMediaMessage(); //这个对象是用来包裹发送信息的对象
+ msg.mediaObject = imageObject;
+ //设置缩略图
+ Bitmap thumbBitmap = Bitmap.createScaledBitmap(thumb, 60, 60, true);
+ msg.thumbData = bmpToByteArray(thumbBitmap, true);
+ final SendMessageToWX.Req req = new SendMessageToWX.Req(); //创建一个请求对象
+ req.message = msg; //把msg放入请求对象中
+ req.transaction = buildTransaction("Req");
+
+
+ /*WXWebpageObject webpageObject = new WXWebpageObject();
+ webpageObject.webpageUrl = "http://a.app.qq.com/o/simple.jsp?pkgname=com.yonsz.z1";
+ WXMediaMessage msg = new WXMediaMessage(webpageObject);
+ msg.title = "Unikong";
+ msg.description = "欢迎下载『语音遥控器APP』";
+ Bitmap thumb = BitmapFactory.decodeResource(getResources(), R.mipmap.app_lan);
+ msg.thumbData = bmpToByteArray(thumb, true);
+ final SendMessageToWX.Req req = new SendMessageToWX.Req();
+ req.transaction = buildTransaction("Req");
+ req.message = msg;*/
+ //分享到微信好友或者朋友圈
+ // startActivity(new Intent(getActivity(), WXEntryActivity.class));
+ DeviceBottomDialog dialog2 = new DeviceBottomDialog(this, new Callback() {
+ @Override
+ public void callback(int position1) {
+ switch (position1) {
+ case 0:
+ //取消
+ break;
+ case 1:
+ //微信朋友圈
+ req.scene = WXSceneTimeline;
+ iwxapi.sendReq(req);
+ break;
+ case 2:
+ //重新命名
+ break;
+ case 3:
+ //微信好友
+ req.scene = WXSceneSession;
+ iwxapi.sendReq(req);
+ break;
+ case 4:
+ break;
+ }
+ }
+ });
+ dialog2.setContent();
+ dialog2.setTop(getString(R.string.WeChat_friends));
+ dialog2.setBottom(getString(R.string.WeChat_friends_circle));
+ 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();
+ }
+
+ private String buildTransaction(final String type) {
+ return (type == null) ? String.valueOf(System.currentTimeMillis()) : type + System.currentTimeMillis();
+ }
+
+
+ @Override
+ public void callBackUiThread(Message msg) {
+
+ }
+
+ @Override
+ public void onReq(BaseReq baseReq) {
+
+ }
+
+ @Override
+ public void onResp(BaseResp baseResp) {
+
+ }
+
+
+}
diff --git a/app/src/xiaoxun/res/drawable-hdpi/loading_icon.png b/app/src/xiaoxun/res/drawable-hdpi/loading_icon.png
new file mode 100644
index 0000000..2559c52
Binary files /dev/null and b/app/src/xiaoxun/res/drawable-hdpi/loading_icon.png differ
diff --git a/app/src/xiaoxun/res/drawable-hdpi/pic_public_code.png b/app/src/xiaoxun/res/drawable-hdpi/pic_public_code.png
new file mode 100644
index 0000000..84f6d2c
Binary files /dev/null and b/app/src/xiaoxun/res/drawable-hdpi/pic_public_code.png differ
diff --git a/app/src/xiaoxun/res/drawable-xhdpi/loading_icon.png b/app/src/xiaoxun/res/drawable-xhdpi/loading_icon.png
new file mode 100644
index 0000000..8d30be2
Binary files /dev/null and b/app/src/xiaoxun/res/drawable-xhdpi/loading_icon.png differ
diff --git a/app/src/xiaoxun/res/drawable-xhdpi/pic_public_code.png b/app/src/xiaoxun/res/drawable-xhdpi/pic_public_code.png
new file mode 100644
index 0000000..5de135a
Binary files /dev/null and b/app/src/xiaoxun/res/drawable-xhdpi/pic_public_code.png differ
diff --git a/app/src/xiaoxun/res/drawable-xxhdpi/loading_icon.png b/app/src/xiaoxun/res/drawable-xxhdpi/loading_icon.png
new file mode 100644
index 0000000..e6b4a72
Binary files /dev/null and b/app/src/xiaoxun/res/drawable-xxhdpi/loading_icon.png differ
diff --git a/app/src/xiaoxun/res/drawable-xxhdpi/pic_binding_guide.png b/app/src/xiaoxun/res/drawable-xxhdpi/pic_binding_guide.png
new file mode 100644
index 0000000..9b566c3
Binary files /dev/null and b/app/src/xiaoxun/res/drawable-xxhdpi/pic_binding_guide.png differ
diff --git a/app/src/xiaoxun/res/drawable-xxhdpi/pic_guidepage1.png b/app/src/xiaoxun/res/drawable-xxhdpi/pic_guidepage1.png
new file mode 100644
index 0000000..7488786
Binary files /dev/null and b/app/src/xiaoxun/res/drawable-xxhdpi/pic_guidepage1.png differ
diff --git a/app/src/xiaoxun/res/drawable-xxhdpi/pic_guidepage2.png b/app/src/xiaoxun/res/drawable-xxhdpi/pic_guidepage2.png
new file mode 100644
index 0000000..fb4da9a
Binary files /dev/null and b/app/src/xiaoxun/res/drawable-xxhdpi/pic_guidepage2.png differ
diff --git a/app/src/xiaoxun/res/drawable-xxhdpi/pic_guidepage3.png b/app/src/xiaoxun/res/drawable-xxhdpi/pic_guidepage3.png
new file mode 100644
index 0000000..93c654a
Binary files /dev/null and b/app/src/xiaoxun/res/drawable-xxhdpi/pic_guidepage3.png differ
diff --git a/app/src/xiaoxun/res/drawable-xxhdpi/pic_public_code.png b/app/src/xiaoxun/res/drawable-xxhdpi/pic_public_code.png
new file mode 100644
index 0000000..aed7735
Binary files /dev/null and b/app/src/xiaoxun/res/drawable-xxhdpi/pic_public_code.png differ
diff --git a/app/src/xiaoxun/res/layout/activity_about_version.xml b/app/src/xiaoxun/res/layout/activity_about_version.xml
new file mode 100644
index 0000000..280d529
--- /dev/null
+++ b/app/src/xiaoxun/res/layout/activity_about_version.xml
@@ -0,0 +1,226 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/xiaoxun/res/layout/activity_copyright.xml b/app/src/xiaoxun/res/layout/activity_copyright.xml
new file mode 100644
index 0000000..28736db
--- /dev/null
+++ b/app/src/xiaoxun/res/layout/activity_copyright.xml
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/xiaoxun/res/layout/activity_login.xml b/app/src/xiaoxun/res/layout/activity_login.xml
new file mode 100644
index 0000000..e20e554
--- /dev/null
+++ b/app/src/xiaoxun/res/layout/activity_login.xml
@@ -0,0 +1,194 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/xiaoxun/res/layout/activity_welcome.xml b/app/src/xiaoxun/res/layout/activity_welcome.xml
new file mode 100644
index 0000000..9bbe9f9
--- /dev/null
+++ b/app/src/xiaoxun/res/layout/activity_welcome.xml
@@ -0,0 +1,52 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/xiaoxun/res/mipmap-xxxhdpi/app_lan.png b/app/src/xiaoxun/res/mipmap-xxxhdpi/app_lan.png
new file mode 100644
index 0000000..a7dec23
Binary files /dev/null and b/app/src/xiaoxun/res/mipmap-xxxhdpi/app_lan.png differ
diff --git a/app/src/xiaoxun/res/values/strings.xml b/app/src/xiaoxun/res/values/strings.xml
new file mode 100644
index 0000000..a8e99ed
--- /dev/null
+++ b/app/src/xiaoxun/res/values/strings.xml
@@ -0,0 +1,8 @@
+
+ 小讯智能
+ 中亿(深圳)信息科技有限公司 版权所有
+ 关于
+ Copyright © 2014-2022 ZHONGYI. All Rights Reserved
+ 凡是通过安顺祥官方商城购买的产品,我们将严格按照国家三包政策,对所售产品提供7天(含)退货,15天(含)因质量问题换新服务。注意事项:1)客服初审核通过,仅表示安顺祥受理您的退换货申请,但不代表同意您的退换货,最终以商品检测报告为准,以此来判断您是否符合退换货条件。2)若您的申请为“审核不通过”,具体原因将会显示在您的退换货申请详情页面,若有疑问,可与安顺祥客服联系。3)签收时,请务必要求投递员在场共同检验包裹,若发现物流损坏、缺件或发错货等情况,请当场拒收并要求快递员存证,同时请您拍照存证,并打电话服务提出换货申请。4)若已签收,需要提供物流公司开具的凭据,并在退换货申请受理之后提交附件。若未提供物流开具的证明,公司无法处理退款或换货。
+ 您好,安顺祥产品支持七天退货15天换货服务;在您收到商品后,如有任何原因需要进行退换货,打客户服务热线进行退货申请;请在包裹内留下纸条,写上您的订单号、联系方式及退货理由,以便我们及时确认完成退款,谢谢您的配合;请确保配件完整并且无人为破坏的情况(如开过发票的需要和发票一块寄回),非产品质量问题的退货,导致的退货,寄回的运费需您自行承担,因产品质量问题的退货,财务将给您报销寄回的快递费(最高22元)运费您先垫付,不支持到付件哦,我们收到货后会尽快为您办理,请耐心等待;祝您生活愉快!
+
diff --git a/app/src/yagene/java/com/ansunxan.z1/wxapi/WXEntryActivity.java b/app/src/yagene/java/com/ansunxan.z1/wxapi/WXEntryActivity.java
new file mode 100644
index 0000000..793e4aa
--- /dev/null
+++ b/app/src/yagene/java/com/ansunxan.z1/wxapi/WXEntryActivity.java
@@ -0,0 +1,101 @@
+package com.ansunxan.z1.wxapi;
+
+import android.app.Activity;
+import android.content.Intent;
+import android.graphics.Bitmap;
+import android.os.Bundle;
+import android.util.Log;
+
+import com.tencent.mm.opensdk.modelbase.BaseReq;
+import com.tencent.mm.opensdk.modelbase.BaseResp;
+import com.tencent.mm.opensdk.modelmsg.SendAuth;
+import com.tencent.mm.opensdk.openapi.IWXAPI;
+import com.tencent.mm.opensdk.openapi.IWXAPIEventHandler;
+import com.tencent.mm.opensdk.openapi.WXAPIFactory;
+import com.yonsz.z1.R;
+import com.yonsz.z1.database.entity.entitya2.WxLoginEvent;
+
+import java.io.ByteArrayOutputStream;
+
+import de.greenrobot.event.EventBus;
+
+import static com.yonsz.z1.difference.DifferConstans.WX_APP_ID;
+
+
+public class WXEntryActivity extends Activity implements IWXAPIEventHandler {
+ private IWXAPI iwxapi;
+
+ public static byte[] bmpToByteArray(final Bitmap bmp, final boolean needRecycle) {
+ ByteArrayOutputStream output = new ByteArrayOutputStream();
+ bmp.compress(Bitmap.CompressFormat.PNG, 100, output);
+ if (needRecycle) {
+ bmp.recycle();
+ }
+ byte[] result = output.toByteArray();
+ try {
+ output.close();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ return result;
+ }
+
+ @Override
+
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_wxentry);
+ iwxapi = WXAPIFactory.createWXAPI(this, WX_APP_ID, false);
+ iwxapi.handleIntent(getIntent(), this);
+ iwxapi.registerApp(WX_APP_ID);
+ }
+
+
+ @Override
+ protected void onNewIntent(Intent intent) {
+ super.onNewIntent(intent);
+ setIntent(intent);
+ iwxapi.handleIntent(intent, this);
+ }
+
+ @Override
+ public void onReq(BaseReq baseReq) {
+ Log.i("BaseReq", "" + baseReq.openId + "---" + baseReq.transaction);
+ }
+
+ @Override
+ public void onResp(BaseResp resp) {
+ Log.i("BaseReq", "" + resp.openId + "---" + resp.transaction + "===" + resp.errCode + "==" + resp.errStr);
+ String result;
+ switch (resp.errCode) {
+ case BaseResp.ErrCode.ERR_OK:
+ result = getString(R.string.Share_success);
+ if (resp instanceof SendAuth.Resp) {
+ String code = ((SendAuth.Resp) resp).code;
+ Log.i("BaseReq", "LoginActivity onResp()" + code);
+ EventBus.getDefault().post(
+ new WxLoginEvent(code));
+ } else {
+
+ }
+ break;
+ case BaseResp.ErrCode.ERR_USER_CANCEL:
+ result = "取消分享";
+ break;
+ case BaseResp.ErrCode.ERR_AUTH_DENIED:
+ result = "分享被拒绝";
+ break;
+ default:
+ result = "发送返回";
+ break;
+ }
+ finish();
+ }
+
+ private String buildTransaction(final String type) {
+ return (type == null) ? String.valueOf(System.currentTimeMillis()) : type + System.currentTimeMillis();
+ }
+
+ enum SHARE_TYPE {Type_WXSceneSession, Type_WXSceneTimeline}
+
+}
diff --git a/app/src/yagene/java/com/ansunxan.z1/wxapi/WXPayEntryActivity.java b/app/src/yagene/java/com/ansunxan.z1/wxapi/WXPayEntryActivity.java
new file mode 100644
index 0000000..6d08828
--- /dev/null
+++ b/app/src/yagene/java/com/ansunxan.z1/wxapi/WXPayEntryActivity.java
@@ -0,0 +1,55 @@
+package com.ansunxan.z1.wxapi;
+
+import android.app.Activity;
+import android.app.AlertDialog;
+import android.content.Intent;
+import android.os.Bundle;
+import android.util.Log;
+
+import com.tencent.mm.opensdk.constants.ConstantsAPI;
+import com.tencent.mm.opensdk.modelbase.BaseReq;
+import com.tencent.mm.opensdk.modelbase.BaseResp;
+import com.tencent.mm.opensdk.openapi.IWXAPI;
+import com.tencent.mm.opensdk.openapi.IWXAPIEventHandler;
+import com.tencent.mm.opensdk.openapi.WXAPIFactory;
+import com.yonsz.z1.R;
+import static com.yonsz.z1.difference.DifferConstans.WX_APP_ID;
+
+public class WXPayEntryActivity extends Activity implements IWXAPIEventHandler {
+
+ private final String TAG = "WXPayEntryActivity";
+
+ private IWXAPI api;
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_wxentry);
+ api = WXAPIFactory.createWXAPI(this, WX_APP_ID);
+ api.handleIntent(getIntent(), this);
+ }
+
+ @Override
+ protected void onNewIntent(Intent intent) {
+ super.onNewIntent(intent);
+ setIntent(intent);
+ api.handleIntent(intent, this);
+ }
+ @Override
+ public void onReq(BaseReq req) {
+ }
+
+ @Override
+ public void onResp(BaseResp resp) {
+ Log.i(TAG,"errCode = " + resp.errCode);
+ //最好依赖于商户后台的查询结果
+ if (resp.getType() == ConstantsAPI.COMMAND_PAY_BY_WX) {
+ //如果返回-1,很大可能是因为应用签名的问题。用官方的工具生成
+ //签名工具下载:https://open.weixin.qq.com/zh_CN/htmledition/res/dev/download/sdk/Gen_Signature_Android.apk
+ AlertDialog.Builder builder = new AlertDialog.Builder(this);
+ builder.setTitle("提示");
+ builder.setMessage(getString(R.string.pay_result_callback_msg, String.valueOf(resp.errCode)));
+ builder.show();
+ }
+ finish();
+ }
+}
\ No newline at end of file
diff --git a/app/src/yagene/java/com/yonsz/z1/difference/DifferConstans.java b/app/src/yagene/java/com/yonsz/z1/difference/DifferConstans.java
new file mode 100644
index 0000000..d684f4b
--- /dev/null
+++ b/app/src/yagene/java/com/yonsz/z1/difference/DifferConstans.java
@@ -0,0 +1,20 @@
+package com.yonsz.z1.difference;
+
+/**
+ * Created by Administrator on 2018/6/21.
+ */
+
+public class DifferConstans {
+ //后台版本控制
+ public static final String VERSION_S = "v1";
+ public static final String APPID_S = "1103";
+ public static final String APPSECRET_S = "yajin666888";
+ public static final String APPID_S_VOICE = "110303";
+ public static final String WX_APP_ID = "wx809b2ddc1b72ecb6";
+ public static final String SERVER_BACKUP4 = "https://openapi.lechange.cn:443";//乐橙
+ public static final String TEPRINCIPLE_UPDATE = "teprinciple2.update";
+ public static String versionUrl = "http://a.app.qq.com/o/simple.jsp?pkgname=com.ansunxan.z1";
+ public static String LECHENG_KEY = "ysz123456";
+ public static String LECHENG_APPID = "lcc58705630dd248d1";
+ public static String LECHENG_APPSECRET = "91ac51eb533b4253ae2b917470ad27";
+}
diff --git a/app/src/yagene/java/com/yonsz/z1/login/LoginActivity.java b/app/src/yagene/java/com/yonsz/z1/login/LoginActivity.java
new file mode 100644
index 0000000..548b037
--- /dev/null
+++ b/app/src/yagene/java/com/yonsz/z1/login/LoginActivity.java
@@ -0,0 +1,509 @@
+package com.yonsz.z1.login;
+
+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.MotionEvent;
+import android.view.View;
+import android.widget.Button;
+import android.widget.EditText;
+import android.widget.ImageView;
+import android.widget.LinearLayout;
+import android.widget.RelativeLayout;
+import android.widget.TextView;
+import android.widget.Toast;
+
+import com.alibaba.fastjson.JSON;
+import com.tencent.mm.opensdk.modelbase.BaseReq;
+import com.tencent.mm.opensdk.modelbase.BaseResp;
+import com.tencent.mm.opensdk.modelmsg.SendAuth;
+import com.tencent.mm.opensdk.openapi.IWXAPI;
+import com.tencent.mm.opensdk.openapi.IWXAPIEventHandler;
+import com.tencent.mm.opensdk.openapi.WXAPIFactory;
+import com.yonsz.z1.R;
+import com.yonsz.z1.activity.BaseActivity;
+import com.yonsz.z1.database.entity.ResponeEntity;
+import com.yonsz.z1.database.entity.TokenEntity;
+import com.yonsz.z1.database.entity.entitya2.WxLoginEvent;
+import com.yonsz.z1.difference.DifferConstans;
+import com.yonsz.z1.listener.OnTitleItemClickListener;
+import com.yonsz.z1.login.forgetpw.ForgetPWActivity;
+import com.yonsz.z1.login.register.RegisterActivity;
+import com.yonsz.z1.login.register.WxRegisterActivity;
+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.KeyboardUtil;
+import com.yonsz.z1.utils.SharedpreferencesUtil;
+import com.yonsz.z1.utils.ToastUtil;
+import com.yonsz.z1.utils.VerificationUtils;
+import com.yonsz.z1.version4.MainActivity4;
+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.clean_password;
+import static com.yonsz.z1.R.id.iv_clean_phone;
+import static com.yonsz.z1.difference.DifferConstans.APPID_S;
+import static com.yonsz.z1.difference.DifferConstans.APPSECRET_S;
+import static com.yonsz.z1.difference.DifferConstans.WX_APP_ID;
+import static com.yonsz.z1.net.Constans.FAN_LEARN_WHAT;
+import static com.yonsz.z1.net.Constans.GET_PHONE_AREA;
+import static com.yonsz.z1.net.Constans.GET_TOKEN_FAIL;
+import static com.yonsz.z1.net.Constans.LOGIN_FAIL;
+import static com.yonsz.z1.net.Constans.LOGIN_SUCCESS;
+import static com.yonsz.z1.net.Constans.WX_LOGIN_FAIL;
+import static com.yonsz.z1.net.Constans.WX_LOGIN_REGISTER;
+import static com.yonsz.z1.net.Constans.WX_LOGIN_SUCCESS;
+
+/**
+ * Created by Administrator on 2017/5/16.
+ */
+
+public class LoginActivity extends BaseActivity implements IWXAPIEventHandler {
+ private TitleView mTitle;
+ private Button mLogin;
+ private TextView mRegister;
+ private TextView mForgetPw;
+ private EditText mUserName;
+ private EditText mPassWord;
+ private ImageView cleanPhoneIv;
+ private ImageView cleanPasswordIv;
+ private LoadingDialog mLoadingDialog;
+ private RelativeLayout rl_weixin_login;
+ private LinearLayout phoneAreaLl;
+
+ private IWXAPI iwxapi;
+ private TextView phoneArea;
+
+ @Override
+ public boolean dispatchTouchEvent(MotionEvent ev) {
+ switch (ev.getAction()) {
+ case MotionEvent.ACTION_DOWN:
+ View view = getCurrentFocus();
+ KeyboardUtil.hideKeyboard(ev, view, LoginActivity.this);//调用方法判断是否需要隐藏键盘
+ break;
+
+ default:
+ break;
+ }
+ return super.dispatchTouchEvent(ev);
+ }
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_login);
+ initView();
+ initListener();
+
+ iwxapi = WXAPIFactory.createWXAPI(this, WX_APP_ID, true);
+ iwxapi.handleIntent(this.getIntent(), this);
+ iwxapi.registerApp(WX_APP_ID);
+
+ if (TextUtils.isEmpty(SharedpreferencesUtil.get(Constans.SEESSIONID, ""))) {
+ getToken();
+ }
+ }
+
+ private void getToken() {
+ NetWorkUtil util = NetWorkUtil.instans();
+ HashMap map = new HashMap<>();
+ map.put("appId", APPID_S);
+ map.put("appSecret", APPSECRET_S);
+ util.requestPostByAsynewApi(NetWorkUrl.GET_TOKEN, map, new NetWorkUtil.ReqCallBack() {
+ @Override
+ public void onSuccess(String respone) {
+ Log.i("getToken", "onSuccess: " + respone);
+ TokenEntity entity = JSON.parseObject(respone, TokenEntity.class);
+ SharedpreferencesUtil.save(Constans.TOKENID, entity.getData().getToken().toString().trim());
+ }
+
+ @Override
+ public void onFail(String message) {
+ Log.i("getToken", "onSuccess: " + message);
+ Message msg = mHandler.obtainMessage(GET_TOKEN_FAIL);
+ msg.obj = message;
+ mHandler.sendMessage(msg);
+ }
+ });
+ }
+
+ @Override
+ public boolean enableSliding() {
+ return false;
+ }
+
+ public void onEventMainThread(WxLoginEvent event) {
+ String msg = event.getMsg();
+ Log.e("nettyUtil", msg);
+ Message message = new Message();
+ message.what = FAN_LEARN_WHAT;
+ message.obj = msg;
+ mHandler.sendMessage(message);
+ }
+
+
+ private void initView() {
+ phoneArea = (TextView) findViewById(R.id.tv_phone_area);
+ phoneAreaLl = (LinearLayout) findViewById(R.id.ll_phone_area);
+ cleanPhoneIv = (ImageView) findViewById(iv_clean_phone);
+ cleanPasswordIv = (ImageView) findViewById(clean_password);
+ mUserName = (EditText) findViewById(R.id.edit_username);
+ mUserName.setText(SharedpreferencesUtil.get(Constans.USERPHONE, ""));
+ if (!TextUtils.isEmpty(mUserName.getText().toString())) {
+ cleanPhoneIv.setVisibility(View.VISIBLE);
+ }
+ mPassWord = (EditText) findViewById(R.id.edit_pw);
+ mLogin = (Button) findViewById(R.id.bt_sure);
+ mLogin.setBackgroundDrawable(getResources().getDrawable(R.drawable.btn_round_9cc6f6));
+ mRegister = (TextView) findViewById(R.id.tv_register);
+ mForgetPw = (TextView) findViewById(R.id.txt_forget_pw);
+ rl_weixin_login = (RelativeLayout) findViewById(R.id.rl_weixin_login);
+ mLoadingDialog = new LoadingDialog(this);
+ mTitle = (TitleView) findViewById(R.id.title_login);
+ mTitle.setHead(R.string.login);
+ mTitle.setHeadBackGone();
+ mTitle.setHeadFuntionTxt(" ");
+ mTitle.setTitleListener(new OnTitleItemClickListener() {
+ @Override
+ public void onBack() {
+
+ }
+
+ @Override
+ public void onFunction() {
+ }
+
+ @Override
+ public void onFunctionText() {
+ }
+ });
+ }
+
+ private void initListener() {
+ rl_weixin_login.setOnClickListener(this);
+ mLogin.setOnClickListener(this);
+ mRegister.setOnClickListener(this);
+ mForgetPw.setOnClickListener(this);
+ cleanPasswordIv.setOnClickListener(this);
+ cleanPhoneIv.setOnClickListener(this);
+ phoneAreaLl.setOnClickListener(this);
+ mUserName.addTextChangedListener(new TextWatcher() {
+ @Override
+ public void beforeTextChanged(CharSequence s, int start, int count, int after) {
+
+ }
+
+ @Override
+ public void onTextChanged(CharSequence s, int start, int before, int count) {
+ int i = s.length();
+ if (i == 0 || TextUtils.isEmpty(mPassWord.getText())) {
+ mLogin.setBackgroundDrawable(getResources().getDrawable(R.drawable.btn_round_9cc6f6));
+ mLogin.setEnabled(false);
+ } else {
+ mLogin.setBackgroundDrawable(getResources().getDrawable(R.drawable.btn_round_398dee));
+ mLogin.setEnabled(true);
+ }
+ }
+
+ @Override
+ public void afterTextChanged(Editable s) {
+ if (!TextUtils.isEmpty(s) && cleanPhoneIv.getVisibility() == View.GONE) {
+ cleanPhoneIv.setVisibility(View.VISIBLE);
+ } else if (TextUtils.isEmpty(s)) {
+ cleanPhoneIv.setVisibility(View.GONE);
+ }
+ }
+ });
+ mPassWord.addTextChangedListener(new TextWatcher() {
+ @Override
+ public void beforeTextChanged(CharSequence s, int start, int count, int after) {
+
+ }
+
+ @Override
+ public void onTextChanged(CharSequence s, int start, int before, int count) {
+ int i = s.length();
+ if (i == 0 || TextUtils.isEmpty(mUserName.getText())) {
+ mLogin.setBackgroundDrawable(getResources().getDrawable(R.drawable.btn_round_9cc6f6));
+ mLogin.setEnabled(false);
+ } else {
+ mLogin.setBackgroundDrawable(getResources().getDrawable(R.drawable.btn_round_398dee));
+ mLogin.setEnabled(true);
+ }
+ }
+
+ @Override
+ public void afterTextChanged(Editable s) {
+ if (!TextUtils.isEmpty(s) && cleanPasswordIv.getVisibility() == View.GONE) {
+ cleanPasswordIv.setVisibility(View.VISIBLE);
+ } else if (TextUtils.isEmpty(s)) {
+ cleanPasswordIv.setVisibility(View.GONE);
+ }
+ if (s.toString().isEmpty())
+ return;
+ if (!s.toString().matches("[A-Za-z0-9]+")) {
+ String temp = s.toString();
+ Toast.makeText(LoginActivity.this, R.string.Enter_a_number, Toast.LENGTH_SHORT).show();
+ s.delete(temp.length() - 1, temp.length());
+ mPassWord.setSelection(s.length());
+
+ }
+ }
+ });
+ }
+
+ @Override
+ public void onClick(View v) {
+ super.onClick(v);
+ switch (v.getId()) {
+ case R.id.bt_sure:
+ if (DensityUtil.isNetworkConnected(this)) {
+ login();
+ } else {
+ ToastUtil.show(this, R.string.no_network_connection);
+ }
+ break;
+ case R.id.tv_register:
+ startActivity(new Intent(LoginActivity.this, RegisterActivity.class));
+ break;
+ case R.id.txt_forget_pw:
+ Intent intent = new Intent(LoginActivity.this, ForgetPWActivity.class);
+ intent.putExtra("tag", "LoginActivity");
+ startActivity(intent);
+ break;
+ case R.id.iv_clean_phone:
+ mUserName.setText("");
+ break;
+ case R.id.clean_password:
+ mPassWord.setText("");
+ break;
+ case R.id.rl_weixin_login:
+ if (!iwxapi.isWXAppInstalled()) {
+ Toast.makeText(this, getString(R.string.not_installed_Wechat), Toast.LENGTH_SHORT).show();
+ return;
+ }
+ wxLogin();
+ break;
+ case R.id.ll_phone_area:
+ Intent intent1 = new Intent(LoginActivity.this, PhoneAreaActivity.class);
+ intent1.putExtra("type", "login");
+ startActivityForResult(intent1, GET_PHONE_AREA);
+ break;
+ }
+ }
+
+ private void wxLogin() {
+ SendAuth.Req req1 = new SendAuth.Req();
+ req1.scope = "snsapi_userinfo";
+ req1.state = "wechat_sdk_demo_test";
+ iwxapi.sendReq(req1);
+ }
+
+ private void login() {
+ String name = mUserName.getText().toString();
+ String phoneCode = phoneArea.getText().toString();
+ SharedpreferencesUtil.save(Constans.USERPHONE, mUserName.getText().toString());
+ if (!VerificationUtils.isMobile(name.trim())) {
+ ToastUtil.show(this, R.string.phone_error);
+ return;
+ }
+ String password = mPassWord.getText().toString();
+ if (TextUtils.isEmpty(password.trim()) || password.length() < 6) {
+ ToastUtil.show(this, R.string.password_error);
+ return;
+ }
+ NetWorkUtil util = NetWorkUtil.instans();
+ HashMap map = new HashMap<>();
+ // mobileLogin=true&isValidatjeesiteLogin=false&username=admin&password=admin
+ map.put("appId", DifferConstans.APPID_S);
+ map.put("mobile", name);
+ map.put("password", password);
+ map.put("telAreaCode", phoneCode.substring(phoneCode.indexOf("+") + 1, phoneCode.length()));
+ map.put("mobileLogin", "true");
+ map.put("clientType", "1");
+ // map.put("isValidatjeesiteLogin", "false");
+ mLoadingDialog.show();
+ util.requestPostByAsynewApi(NetWorkUrl.LOGIN_URL, map, new NetWorkUtil.ReqCallBack() {
+ @Override
+ public void onSuccess(String respone) {
+ ResponeEntity entity = JSON.parseObject(respone, ResponeEntity.class);
+ Log.i("login111", "onSuccess: " + respone);
+ if (1 == entity.getFlag()) {
+ Message msg = mHandler.obtainMessage(LOGIN_SUCCESS);
+ msg.obj = entity;
+ mHandler.sendMessage(msg);
+ } else {
+ Message msg = mHandler.obtainMessage(LOGIN_FAIL);
+ msg.obj = entity.getMsg();
+ mHandler.sendMessage(msg);
+ }
+ }
+
+ @Override
+ public void onFail(String message) {
+ Message msg = mHandler.obtainMessage(LOGIN_FAIL);
+ msg.obj = message;
+ mHandler.sendMessage(msg);
+ }
+ });
+ }
+
+ @Override
+ public void callBackUiThread(Message msg) {
+ mLoadingDialog.dismiss();
+ switch (msg.what) {
+ case LOGIN_FAIL:
+ ToastUtil.show(this, (String) msg.obj);
+ break;
+ case WX_LOGIN_FAIL:
+ if (null != mLoadingDialog) {
+ mLoadingDialog.dismiss();
+ }
+ ToastUtil.show(this, (String) msg.obj);
+ break;
+ case LOGIN_SUCCESS:
+ ResponeEntity entity = (ResponeEntity) msg.obj;
+ // ToastUtil.show(this, entity.getMsg());
+ Toast.makeText(LoginActivity.this, R.string.login_success, Toast.LENGTH_SHORT).show();
+ SharedpreferencesUtil.save(Constans.SEESSIONID, entity.getData().getSession());
+ SharedpreferencesUtil.save(Constans.USERID, entity.getData().getUserId());
+ // SharedpreferencesUtil.save(Constans.USERNAME, entity.getObj().getUser().getName());
+ SharedpreferencesUtil.save(Constans.PASSWORD, mPassWord.getText().toString());
+ boolean isSetting = TextUtils.isEmpty(SharedpreferencesUtil.
+ get(SharedpreferencesUtil.get(Constans.USERID, ""), ""));
+ startActivity(new Intent(this, MainActivity4.class));
+ finish();
+ /*if (isSetting) {
+ Intent intent = new Intent(this, SetGestureCodeActivity.class);
+ intent.putExtra("isset", true);
+ intent.putExtra("SEESSIONID", entity.getObj().getLogininfo().getSessionId());
+ startActivity(intent);
+
+ } else {
+ startActivity(new Intent(this, MainActivity.class));
+ }*/
+ break;
+ case WX_LOGIN_SUCCESS:
+ ResponeEntity wxLoginEntity = (ResponeEntity) msg.obj;
+ Toast.makeText(LoginActivity.this, R.string.login_success, Toast.LENGTH_SHORT).show();
+// SharedpreferencesUtil.save(Constans.USERPHONE, wxLoginEntity.getObj().getUserInfo().getLoginName());
+ SharedpreferencesUtil.save(Constans.SEESSIONID, wxLoginEntity.getData().getSession());
+ SharedpreferencesUtil.save(Constans.USERID, wxLoginEntity.getData().getUserId());
+// SharedpreferencesUtil.save(Constans.USERNAME, wxLoginEntity.getObj().getUserInfo().getName());
+ startActivity(new Intent(this, MainActivity4.class));
+ finish();
+ break;
+ case WX_LOGIN_REGISTER:
+ //去注册
+ ResponeEntity entity1 = (ResponeEntity) msg.obj;
+ Intent intent = new Intent(LoginActivity.this, WxRegisterActivity.class);
+ intent.putExtra("wxId", entity1.getObj().getWxId());
+ intent.putExtra("headUrl", entity1.getObj().getHeadUrl());
+ intent.putExtra("userName", entity1.getObj().getUserName());
+ startActivity(intent);
+ break;
+
+ case FAN_LEARN_WHAT:
+ String code = (String) msg.obj;
+ quickLogin(code);
+ break;
+ }
+ }
+
+ /**
+ * 微信登录
+ *
+ * @param code
+ */
+ private synchronized void quickLogin(String code) {
+ if (mLoadingDialog.isShowing()) {
+ return;
+ }
+ mLoadingDialog.show();
+ NetWorkUtil util = NetWorkUtil.instans();
+ HashMap map = new HashMap<>();
+ map.put("code", code);
+ map.put("appId", DifferConstans.APPID_S);
+ util.requestPostByAsynewApi(NetWorkUrl.WX_QUICK_LOGIN, map, new NetWorkUtil.ReqCallBack() {
+ @Override
+ public void onSuccess(String respone) {
+ Log.i("quickLogin", "onSuccess: " + respone);
+ ResponeEntity entity = JSON.parseObject(respone, ResponeEntity.class);
+ if (1 == entity.getFlag()) {
+ Message msg = mHandler.obtainMessage(WX_LOGIN_SUCCESS);
+ msg.obj = entity;
+ mHandler.sendMessage(msg);
+ } else if (1011 == entity.getFlag()) {
+ Message msg = mHandler.obtainMessage(WX_LOGIN_REGISTER);
+ msg.obj = entity;
+ mHandler.sendMessage(msg);
+ } else if (1013 == entity.getFlag()) {
+ Message msg = mHandler.obtainMessage(WX_LOGIN_REGISTER);
+ msg.obj = entity;
+ mHandler.sendMessage(msg);
+ } else {
+ Message msg = mHandler.obtainMessage(WX_LOGIN_FAIL);
+ msg.obj = entity.getMsg();
+ mHandler.sendMessage(msg);
+ }
+ }
+
+ @Override
+ public void onFail(String message) {
+ Message msg = mHandler.obtainMessage(LOGIN_FAIL);
+ msg.obj = message;
+ mHandler.sendMessage(msg);
+ }
+ });
+ }
+
+ @Override
+ public void onReq(BaseReq baseReq) {
+
+ }
+
+ @Override
+ public void onResp(BaseResp resp) {
+ Log.i("BaseReq", "" + resp.openId + "---" + resp.transaction + "===" + resp.errCode + "==" + resp.errStr);
+ String code = ((SendAuth.Resp) resp).code;
+ Log.i("BaseReq", "LoginActivity onResp()" + code);
+ String result;
+ switch (resp.errCode) {
+ case BaseResp.ErrCode.ERR_OK:
+ result = getString(R.string.Share_success);
+ EventBus.getDefault().post(
+ new WxLoginEvent(code));
+ break;
+ case BaseResp.ErrCode.ERR_USER_CANCEL:
+ result = "取消分享";
+ break;
+ case BaseResp.ErrCode.ERR_AUTH_DENIED:
+ result = "分享被拒绝";
+ break;
+ default:
+ result = "发送返回";
+ break;
+ }
+ }
+
+ @Override
+ protected void onActivityResult(int requestCode, int resultCode, Intent data) {
+ switch (requestCode) {
+ case GET_PHONE_AREA:
+ if (data != null && data.getExtras().get("phoneArea") != null) {
+ phoneArea.setText(data.getExtras().get("phoneArea").toString());
+ }
+ break;
+ }
+ }
+}
diff --git a/app/src/yagene/java/com/yonsz/z1/login/WelcomeActivity.java b/app/src/yagene/java/com/yonsz/z1/login/WelcomeActivity.java
new file mode 100644
index 0000000..468905d
--- /dev/null
+++ b/app/src/yagene/java/com/yonsz/z1/login/WelcomeActivity.java
@@ -0,0 +1,299 @@
+package com.yonsz.z1.login;
+
+import android.Manifest;
+import android.annotation.TargetApi;
+import android.content.Intent;
+import android.graphics.Rect;
+import android.os.Build;
+import android.os.Bundle;
+import android.os.Message;
+import android.text.TextUtils;
+import android.util.Log;
+import android.view.DisplayCutout;
+import android.view.View;
+import android.view.WindowInsets;
+import android.widget.Toast;
+
+import com.alibaba.fastjson.JSON;
+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.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.database.entity.TokenEntity;
+import com.yonsz.z1.net.Constans;
+import com.yonsz.z1.net.NetWorkUrl;
+import com.yonsz.z1.net.NetWorkUtil;
+import com.yonsz.z1.utils.AppGenerUtil;
+import com.yonsz.z1.utils.DensityUtil;
+import com.yonsz.z1.utils.SharedpreferencesUtil;
+import com.yonsz.z1.version4.MainActivity4;
+
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+
+import static com.yonsz.z1.difference.DifferConstans.APPID_S;
+import static com.yonsz.z1.difference.DifferConstans.APPSECRET_S;
+import static com.yonsz.z1.net.Constans.CLOSE_THIS_ACTIVITY;
+import static com.yonsz.z1.net.Constans.GET_TOKEN_FAIL;
+import static com.yonsz.z1.net.Constans.GET_TOKEN_SUCCESS;
+
+/**
+ * Created by Administrator on 2017/5/17.
+ */
+
+public class WelcomeActivity extends BaseActivity {
+
+ private final static int FLAG_TO_LOGIN = 1001;
+ private final static int FLAG_TO_GUIDER = 1002;
+ private final static int FLAG_TO_GESTURE = 1003;
+ private final static int FLAG_TO_MAIN = 1004;
+
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_welcome);
+ /*if (Build.VERSION.SDK_INT >= 28) {
+ getNotchParams();
+ }*/
+ }
+
+ @Override
+ public boolean enableSliding() {
+ return false;
+ }
+
+ @Override
+ public void onResume() {
+ super.onResume();
+ if (DensityUtil.isNetworkConnected(this) && DensityUtil.isNetConnected(this)) {
+ getToken();
+ } else {
+ initNext();
+ }
+ }
+
+ private void getToken() {
+ NetWorkUtil util = NetWorkUtil.instans();
+ HashMap map = new HashMap<>();
+ map.put("appId", APPID_S);
+ map.put("appSecret", APPSECRET_S);
+ util.requestPostByAsynewApi(NetWorkUrl.GET_TOKEN, map, new NetWorkUtil.ReqCallBack() {
+ @Override
+ public void onSuccess(String respone) {
+ Log.i("getToken", "onSuccess: " + respone);
+ TokenEntity entity = JSON.parseObject(respone, TokenEntity.class);
+ if (1 == entity.getFlag()) {
+ Message msg = mHandler.obtainMessage(GET_TOKEN_SUCCESS);
+ msg.obj = entity;
+ mHandler.sendMessage(msg);
+ } else {
+ Message msg = mHandler.obtainMessage(GET_TOKEN_FAIL);
+ msg.obj = entity.getMsg();
+ mHandler.sendMessage(msg);
+ }
+ }
+
+ @Override
+ public void onFail(String message) {
+ Log.i("getToken", "onSuccess: " + message);
+ Message msg = mHandler.obtainMessage(GET_TOKEN_FAIL);
+ msg.obj = message;
+ mHandler.sendMessage(msg);
+ }
+ });
+ }
+
+ private void initNext() {
+ /**
+ * 如果USERID不是空,进入手势页面,如果已经过了引导页,如果SEESSIONID不是空,进入主页面,如果
+ * 是空重新登录,都不是就进入引导页
+ */
+ if (null != SharedpreferencesUtil.get(Constans.PORT, null) && SharedpreferencesUtil.get(Constans.PORT, null).contains(":")) {
+
+ } else {
+ SharedpreferencesUtil.save(Constans.PORT, "wss.yonsz.net:25533");
+ }
+ /*if (!TextUtils.isEmpty(SharedpreferencesUtil.get(Constans.SEESSIONID, ""))) {
+ mHandler.sendEmptyMessageDelayed(FLAG_TO_MAIN, 1000);
+ } else {
+ mHandler.sendEmptyMessageDelayed(FLAG_TO_LOGIN, 1000);
+ }
+ boolean isSetting = TextUtils.isEmpty(SharedpreferencesUtil.
+ get(SharedpreferencesUtil.get(Constans.USERID, ""), ""));*/
+ SoulPermission.getInstance().checkAndRequestPermissions(
+ Permissions.build(Manifest.permission.ACCESS_FINE_LOCATION),
+ //if you want do noting or no need all the callbacks you may use SimplePermissionsAdapter instead
+ new CheckRequestPermissionsListener() {
+ @Override
+ public void onAllPermissionOk(Permission[] allPermissions) {
+ setPermission();
+ }
+
+ @Override
+ public void onPermissionDenied(Permission[] refusedPermissions) {
+ setPermission();
+ }
+ });
+ }
+
+ private void setPermission() {
+ SoulPermission.getInstance().checkAndRequestPermissions(
+ Permissions.build(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) {
+ if (!TextUtils.isEmpty(SharedpreferencesUtil.get(Constans.SEESSIONID, ""))) {
+ if (!TextUtils.isEmpty(SharedpreferencesUtil.get(Constans.ADIMAGEURL, ""))) {
+ mHandler.sendEmptyMessageDelayed(FLAG_TO_GESTURE, 1000);
+ } else {
+ mHandler.sendEmptyMessageDelayed(FLAG_TO_MAIN, 1000);
+ }
+ } else {
+ if (!TextUtils.isEmpty(SharedpreferencesUtil.get(Constans.ADIMAGEURL, ""))) {
+ mHandler.sendEmptyMessageDelayed(FLAG_TO_GESTURE, 1000);
+ } else {
+ mHandler.sendEmptyMessageDelayed(FLAG_TO_LOGIN, 1000);
+ }
+ }
+ /*if (SharedpreferencesUtil.get(Constans.ISOVER)) {
+
+ } else {
+ mHandler.sendEmptyMessageDelayed(FLAG_TO_GUIDER, 1000);
+ }*/
+ }
+
+ @Override
+ public void onPermissionDenied(Permission[] refusedPermissions) {
+ if (!TextUtils.isEmpty(SharedpreferencesUtil.get(Constans.SEESSIONID, ""))) {
+ if (!TextUtils.isEmpty(SharedpreferencesUtil.get(Constans.ADIMAGEURL, ""))) {
+ mHandler.sendEmptyMessageDelayed(FLAG_TO_GESTURE, 1000);
+ } else {
+ mHandler.sendEmptyMessageDelayed(FLAG_TO_MAIN, 1000);
+ }
+ } else {
+ if (!TextUtils.isEmpty(SharedpreferencesUtil.get(Constans.ADIMAGEURL, ""))) {
+ mHandler.sendEmptyMessageDelayed(FLAG_TO_GESTURE, 1000);
+ } else {
+ mHandler.sendEmptyMessageDelayed(FLAG_TO_LOGIN, 1000);
+ }
+ }
+ /*if (SharedpreferencesUtil.get(Constans.ISOVER)) {
+ } else {
+ mHandler.sendEmptyMessageDelayed(FLAG_TO_GUIDER, 1000);
+ }*/
+ }
+ });
+ }
+
+ @Override
+ public void callBackUiThread(Message msg) {
+ switch (msg.what) {
+ case FLAG_TO_LOGIN:
+ startActivity(new Intent(this, LoginActivity.class));
+ finish();
+ break;
+ case FLAG_TO_GUIDER:
+ startActivity(new Intent(this, GuiderActivity.class));
+ overridePendingTransition(R.anim.activity_exit_in, R.anim.activity_exit_out);
+ finish();
+ break;
+ case FLAG_TO_GESTURE:
+ startActivity(new Intent(this, AdinfoActivity.class));
+ finish();
+ break;
+ case FLAG_TO_MAIN:
+ startActivity(new Intent(this, MainActivity4.class));
+ SharedpreferencesUtil.save("isShowMobilePlay", "0");
+ finish();
+ break;
+ case GET_TOKEN_SUCCESS:
+ TokenEntity entity = (TokenEntity) msg.obj;
+ if (SharedpreferencesUtil.get(Constans.TOKENID, "").equals(entity.getData().getToken().toString().trim())) {
+
+ } else {
+ SharedpreferencesUtil.save(Constans.SEESSIONID, "");
+ }
+ SharedpreferencesUtil.save(Constans.TOKENID, entity.getData().getToken().toString().trim());
+// SharedpreferencesUtil.save(Constans.ADIMAGEURL, entity.getData().getStartUpImgUrl());
+ String androidVersions = entity.getData().getAndroidVersions().toString();
+ if (null != androidVersions) {
+ String packageVersion = AppGenerUtil.getPackageVersion(this);
+ List result = Arrays.asList(androidVersions.split(","));
+ initNext();
+ /*if (result.contains(packageVersion)) {
+ initNext();
+ } else {
+ // initNext();
+ UpdateAppUtils.from(this)
+ .apkPath(versionUrl)
+ .downloadBy(DOWNLOAD_BY_BROWSER)
+ .isForce(true)
+ .update(true);
+ }*/
+ } else {
+ initNext();
+ }
+ /*if (null != SharedpreferencesUtil.get(Constans.TOKENID, "")) {
+ if (entity.getObj().toString().trim().equals(SharedpreferencesUtil.get(Constans.TOKENID, ""))) {
+ initNext();
+ } else {
+ ToastUtil.show(this, "token已过期");
+ mHandler.sendEmptyMessageDelayed(CLOSE_THIS_ACTIVITY, 1000);
+ }
+ } else {
+ SharedpreferencesUtil.save(Constans.TOKENID, entity.getObj().toString().trim());
+ initNext();
+ }*/
+ break;
+ case CLOSE_THIS_ACTIVITY:
+ finish();
+ break;
+ case GET_TOKEN_FAIL:
+ initNext();
+ break;
+ }
+ }
+
+ @TargetApi(28)
+ public void getNotchParams() {
+ final View decorView = getWindow().getDecorView();
+
+ decorView.post(new Runnable() {
+ @Override
+ public void run() {
+ WindowInsets rootWindowInsets = decorView.getRootWindowInsets();
+ if (rootWindowInsets == null) {
+ Log.e("TAG", "rootWindowInsets为空了");
+ return;
+ }
+ DisplayCutout displayCutout = rootWindowInsets.getDisplayCutout();
+ Log.e("TAG", "安全区域距离屏幕左边的距离 SafeInsetLeft:" + displayCutout.getSafeInsetLeft());
+ Log.e("TAG", "安全区域距离屏幕右部的距离 SafeInsetRight:" + displayCutout.getSafeInsetRight());
+ Log.e("TAG", "安全区域距离屏幕顶部的距离 SafeInsetTop:" + displayCutout.getSafeInsetTop());
+ Log.e("TAG", "安全区域距离屏幕底部的距离 SafeInsetBottom:" + displayCutout.getSafeInsetBottom());
+
+ List rects = displayCutout.getBoundingRects();
+ if (rects == null || rects.size() == 0) {
+ Log.e("TAG", "不是刘海屏");
+ } else {
+ if (displayCutout.getSafeInsetTop() > 140) {
+ SharedpreferencesUtil.save(Constans.ISALLSCREEN, "true");
+ } else {
+ SharedpreferencesUtil.save(Constans.ISALLSCREEN, "false");
+ }
+ Log.e("TAG", "刘海屏数量:" + rects.size());
+ for (Rect rect : rects) {
+ Log.e("TAG", "刘海屏区域:" + rect);
+ }
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/yagene/java/com/yonsz/z1/login/register/CopyRightActivity.java b/app/src/yagene/java/com/yonsz/z1/login/register/CopyRightActivity.java
new file mode 100644
index 0000000..42ccb7f
--- /dev/null
+++ b/app/src/yagene/java/com/yonsz/z1/login/register/CopyRightActivity.java
@@ -0,0 +1,46 @@
+package com.yonsz.z1.login.register;
+
+import android.os.Bundle;
+import android.os.Message;
+
+import com.yonsz.z1.R;
+import com.yonsz.z1.activity.BaseActivity;
+import com.yonsz.z1.listener.OnTitleItemClickListener;
+import com.yonsz.z1.view.TitleView;
+
+/**
+ * Created by Administrator on 2017/6/15.
+ */
+
+public class CopyRightActivity extends BaseActivity {
+ private TitleView mTitleView;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_copyright);
+ mTitleView = (TitleView) findViewById(R.id.title_text);
+ mTitleView.setHead("用户协议");
+ mTitleView.setTitleListener(new OnTitleItemClickListener() {
+ @Override
+ public void onBack() {
+ finish();
+ }
+
+ @Override
+ public void onFunction() {
+
+ }
+
+ @Override
+ public void onFunctionText() {
+
+ }
+ });
+ }
+
+ @Override
+ public void callBackUiThread(Message msg) {
+
+ }
+}
diff --git a/app/src/yagene/java/com/yonsz/z1/mine/aboutversion/AboutVersionActivity.java b/app/src/yagene/java/com/yonsz/z1/mine/aboutversion/AboutVersionActivity.java
new file mode 100644
index 0000000..055ad09
--- /dev/null
+++ b/app/src/yagene/java/com/yonsz/z1/mine/aboutversion/AboutVersionActivity.java
@@ -0,0 +1,353 @@
+package com.yonsz.z1.mine.aboutversion;
+
+import android.Manifest;
+import android.content.Intent;
+import android.content.pm.PackageManager;
+import android.graphics.Bitmap;
+import android.graphics.BitmapFactory;
+import android.net.Uri;
+import android.os.Bundle;
+import android.os.Message;
+import android.support.v4.app.ActivityCompat;
+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 android.widget.Toast;
+
+import com.alibaba.fastjson.JSON;
+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.tencent.mm.opensdk.modelbase.BaseReq;
+import com.tencent.mm.opensdk.modelbase.BaseResp;
+import com.tencent.mm.opensdk.modelmsg.SendMessageToWX;
+import com.tencent.mm.opensdk.modelmsg.WXImageObject;
+import com.tencent.mm.opensdk.modelmsg.WXMediaMessage;
+import com.tencent.mm.opensdk.openapi.IWXAPI;
+import com.tencent.mm.opensdk.openapi.IWXAPIEventHandler;
+import com.tencent.mm.opensdk.openapi.WXAPIFactory;
+import com.yonsz.z1.R;
+import com.yonsz.z1.activity.BaseActivity;
+import com.yonsz.z1.database.entity.VersionEntity;
+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.DeviceBottomDialog;
+import com.yonsz.z1.mine.aboutversion.feature.Callback;
+import com.yonsz.z1.mine.aboutversion.util.ScoreUtils;
+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.AppGenerUtil;
+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 static com.tencent.mm.opensdk.modelmsg.SendMessageToWX.Req.WXSceneSession;
+import static com.tencent.mm.opensdk.modelmsg.SendMessageToWX.Req.WXSceneTimeline;
+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.WX_APP_ID;
+import static com.yonsz.z1.difference.DifferConstans.versionUrl;
+import static com.yonsz.z1.fragment.person.PersonFragment.bmpToByteArray;
+import static com.yonsz.z1.mine.aboutversion.util.UpdateAppUtils.DOWNLOAD_BY_APP;
+import static com.yonsz.z1.net.Constans.GET_USER_SESSION_NULL;
+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.version4.MainActivity4.versionId;
+
+/**
+ * Created by Administrator on 2017/5/26.
+ */
+public class AboutVersionActivity extends BaseActivity implements IWXAPIEventHandler {
+ private TextView tv_version;
+ private TextView tv_public_goto;
+ private ImageView iv_code;
+ private IWXAPI iwxapi;
+ private RelativeLayout scoreRl, versionDecalreRl, versionUpdateRl;
+ private TextView serviceHotlineTv;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_about_version);
+ iwxapi = WXAPIFactory.createWXAPI(this, WX_APP_ID, false);
+ iwxapi.handleIntent(getIntent(), this);
+ iwxapi.registerApp(WX_APP_ID);
+
+ TitleView titleView = (TitleView) findViewById(R.id.title_about_version);
+ titleView.setHead(R.string.about_version);
+ titleView.setTitleListener(new OnTitleItemClickListener() {
+ @Override
+ public void onBack() {
+ finish();
+ }
+
+ @Override
+ public void onFunction() {
+
+ }
+
+ @Override
+ public void onFunctionText() {
+
+ }
+ });
+ scoreRl = (RelativeLayout) findViewById(R.id.rl_to_score);
+ serviceHotlineTv = (TextView) findViewById(R.id.tv_customer_service_hotline);
+ versionDecalreRl = (RelativeLayout) findViewById(R.id.rl_version_declare);
+ versionUpdateRl = (RelativeLayout) findViewById(R.id.rl_version_update);
+ iv_code = (ImageView) findViewById(R.id.iv_code);
+ tv_public_goto = (TextView) findViewById(R.id.tv_public_goto);
+ tv_version = (TextView) findViewById(R.id.tv_version);
+ tv_version.setText("V" + AppGenerUtil.getPackageVersion(this));
+
+ checkUpdate(1);
+
+
+ iv_code.setOnClickListener(new NoDoubleClickListener() {
+ @Override
+ protected void onNoDoubleClick(View v) {
+ // showDioalog();
+ }
+ });
+ tv_public_goto.setOnClickListener(new NoDoubleClickListener() {
+ @Override
+ public void onNoDoubleClick(View v) {
+ super.onClick(v);
+ // showDioalog();
+ }
+ });
+ scoreRl.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ ArrayList strings = ScoreUtils.SelectedInstalledAPPs(getApplicationContext(), ScoreUtils.InstalledAPPs(getApplicationContext()));
+ ScoreUtils.launchAppDetail(AboutVersionActivity.this, "com.yonsz.z1", strings.get(0));
+ }
+ });
+ versionDecalreRl.setOnClickListener(new NoDoubleClickListener() {
+ @Override
+ protected void onNoDoubleClick(View v) {
+ Intent intent = new Intent(AboutVersionActivity.this, VersionDecalreActivity.class);
+ intent.putExtra("activity", "AboutVersionActivity");
+ startActivity(intent);
+ }
+ });
+ versionUpdateRl.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ updataUserState();
+ }
+ });
+ serviceHotlineTv.setOnClickListener(new NoDoubleClickListener() {
+ @Override
+ protected void onNoDoubleClick(View v) {
+ callHotline();
+ }
+ });
+ }
+
+ private void callHotline() {
+ ConfirmDialog dialog = new ConfirmDialog(getActivity(), new Callback() {
+ @Override
+ public void callback(int position) {
+ switch (position) {
+ case 0:
+ break;
+ case 1:
+ callPhone("075589963668");
+ break;
+ }
+ }
+ });
+ dialog.setContent("0755-89963668");
+ dialog.setCancleBtn(R.string.cancel);
+ dialog.setSureBtn(R.string.call);
+ dialog.setCancelable(false);
+ dialog.show();
+ }
+
+ public void callPhone(String phoneNum) {
+ SoulPermission.getInstance().checkAndRequestPermissions(
+ Permissions.build(Manifest.permission.CALL_PHONE,
+ Manifest.permission.READ_PHONE_STATE,
+ 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) {
+ Intent intent = new Intent(Intent.ACTION_CALL);
+ Uri data = Uri.parse("tel:" + phoneNum);
+ intent.setData(data);
+ if (ActivityCompat.checkSelfPermission(AboutVersionActivity.this, Manifest.permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED) {
+ return;
+ }
+ startActivity(intent);
+ }
+
+ @Override
+ public void onPermissionDenied(Permission[] refusedPermissions) {
+ ToastUtil.show(AboutVersionActivity.this, "请开启权限");
+ }
+ });
+ }
+
+ private void checkUpdate(int tag) {
+ UpdateAppUtils.from(this)
+ .checkBy(UpdateAppUtils.CHECK_BY_VERSION_NAME)
+ .serverVersionName(versionId)
+ .serverVersionCode(5)
+ .apkPath(versionUrl)
+ .downloadBy(DOWNLOAD_BY_APP)
+ .isForce(false)
+ .update(tag);
+ }
+
+ private void showDioalog() {
+ if (!iwxapi.isWXAppInstalled()) {
+ Toast.makeText(this, getString(R.string.not_installed_Wechat), Toast.LENGTH_SHORT).show();
+ return;
+ }
+ //初始化一个WXImageObject对象
+ Bitmap thumb = BitmapFactory.decodeResource(getResources(), R.drawable.pic_public_code);
+ WXImageObject imageObject = new WXImageObject(thumb);
+ WXMediaMessage msg = new WXMediaMessage(); //这个对象是用来包裹发送信息的对象
+ msg.mediaObject = imageObject;
+ //设置缩略图
+ Bitmap thumbBitmap = Bitmap.createScaledBitmap(thumb, 60, 60, true);
+ msg.thumbData = bmpToByteArray(thumbBitmap, true);
+ final SendMessageToWX.Req req = new SendMessageToWX.Req(); //创建一个请求对象
+ req.message = msg; //把msg放入请求对象中
+ req.transaction = buildTransaction("Req");
+
+
+ /*WXWebpageObject webpageObject = new WXWebpageObject();
+ webpageObject.webpageUrl = "http://a.app.qq.com/o/simple.jsp?pkgname=com.yonsz.z1";
+ WXMediaMessage msg = new WXMediaMessage(webpageObject);
+ msg.title = "Unikong";
+ msg.description = "欢迎下载『语音遥控器APP』";
+ Bitmap thumb = BitmapFactory.decodeResource(getResources(), R.mipmap.app_lan);
+ msg.thumbData = bmpToByteArray(thumb, true);
+ final SendMessageToWX.Req req = new SendMessageToWX.Req();
+ req.transaction = buildTransaction("Req");
+ req.message = msg;*/
+ //分享到微信好友或者朋友圈
+ // startActivity(new Intent(getActivity(), WXEntryActivity.class));
+ DeviceBottomDialog dialog2 = new DeviceBottomDialog(this, new Callback() {
+ @Override
+ public void callback(int position1) {
+ switch (position1) {
+ case 0:
+ //取消
+ break;
+ case 1:
+ //微信朋友圈
+ req.scene = WXSceneTimeline;
+ iwxapi.sendReq(req);
+ break;
+ case 2:
+ //重新命名
+ break;
+ case 3:
+ //微信好友
+ req.scene = WXSceneSession;
+ iwxapi.sendReq(req);
+ break;
+ case 4:
+ break;
+ }
+ }
+ });
+ dialog2.setContent();
+ dialog2.setTop(getString(R.string.WeChat_friends));
+ dialog2.setBottom(getString(R.string.WeChat_friends_circle));
+ dialog2.setLearn();
+ 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();
+ }
+
+ private String buildTransaction(final String type) {
+ return (type == null) ? String.valueOf(System.currentTimeMillis()) : type + System.currentTimeMillis();
+ }
+
+
+ @Override
+ public void callBackUiThread(Message msg) {
+ switch (msg.what) {
+ case UPDATE_STATE_SUCCESS:
+ VersionEntity.ObjEntity versionEntity = (VersionEntity.ObjEntity) msg.obj;
+ versionId = versionEntity.getVersionInfo().getVersionId().substring(2, 7);
+ versionUrl = versionEntity.getVersionInfo().getServiceUrl();
+ checkUpdate(2);
+ break;
+ }
+ }
+
+ @Override
+ public void onReq(BaseReq baseReq) {
+
+ }
+
+ @Override
+ public void onResp(BaseResp baseResp) {
+
+ }
+
+ //上传用户经纬度信息
+ 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.requestPostByAsynewApi(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);
+ }
+ });
+ }
+}
diff --git a/app/src/yagene/res/anim/slide_left_in.xml b/app/src/yagene/res/anim/slide_left_in.xml
new file mode 100644
index 0000000..efac524
--- /dev/null
+++ b/app/src/yagene/res/anim/slide_left_in.xml
@@ -0,0 +1,5 @@
+
+
+
+
diff --git a/app/src/yagene/res/anim/slide_left_out.xml b/app/src/yagene/res/anim/slide_left_out.xml
new file mode 100644
index 0000000..2b1e672
--- /dev/null
+++ b/app/src/yagene/res/anim/slide_left_out.xml
@@ -0,0 +1,5 @@
+
+
+
+
diff --git a/app/src/yagene/res/anim/slide_right_in.xml b/app/src/yagene/res/anim/slide_right_in.xml
new file mode 100644
index 0000000..2fc61e8
--- /dev/null
+++ b/app/src/yagene/res/anim/slide_right_in.xml
@@ -0,0 +1,5 @@
+
+
+
+
diff --git a/app/src/yagene/res/anim/slide_right_out.xml b/app/src/yagene/res/anim/slide_right_out.xml
new file mode 100644
index 0000000..9934aa3
--- /dev/null
+++ b/app/src/yagene/res/anim/slide_right_out.xml
@@ -0,0 +1,5 @@
+
+
+
+
diff --git a/app/src/yagene/res/drawable-hdpi/common_icon_remind.png b/app/src/yagene/res/drawable-hdpi/common_icon_remind.png
new file mode 100644
index 0000000..b497932
Binary files /dev/null and b/app/src/yagene/res/drawable-hdpi/common_icon_remind.png differ
diff --git a/app/src/yagene/res/drawable-hdpi/common_switch_off.png b/app/src/yagene/res/drawable-hdpi/common_switch_off.png
new file mode 100644
index 0000000..39bccc0
Binary files /dev/null and b/app/src/yagene/res/drawable-hdpi/common_switch_off.png differ
diff --git a/app/src/yagene/res/drawable-hdpi/common_switch_on.png b/app/src/yagene/res/drawable-hdpi/common_switch_on.png
new file mode 100644
index 0000000..323435b
Binary files /dev/null and b/app/src/yagene/res/drawable-hdpi/common_switch_on.png differ
diff --git a/app/src/yagene/res/drawable-hdpi/device_btn_wiredadd.png b/app/src/yagene/res/drawable-hdpi/device_btn_wiredadd.png
new file mode 100644
index 0000000..4a5b09c
Binary files /dev/null and b/app/src/yagene/res/drawable-hdpi/device_btn_wiredadd.png differ
diff --git a/app/src/yagene/res/drawable-hdpi/device_icon_wifiadd.png b/app/src/yagene/res/drawable-hdpi/device_icon_wifiadd.png
new file mode 100644
index 0000000..fab8fa0
Binary files /dev/null and b/app/src/yagene/res/drawable-hdpi/device_icon_wifiadd.png differ
diff --git a/app/src/yagene/res/drawable-hdpi/list_bg_device.png b/app/src/yagene/res/drawable-hdpi/list_bg_device.png
new file mode 100644
index 0000000..5cec7e3
Binary files /dev/null and b/app/src/yagene/res/drawable-hdpi/list_bg_device.png differ
diff --git a/app/src/yagene/res/drawable-hdpi/list_bg_nomessage.png b/app/src/yagene/res/drawable-hdpi/list_bg_nomessage.png
new file mode 100644
index 0000000..6ee12f2
Binary files /dev/null and b/app/src/yagene/res/drawable-hdpi/list_bg_nomessage.png differ
diff --git a/app/src/yagene/res/drawable-hdpi/list_bg_norecord.png b/app/src/yagene/res/drawable-hdpi/list_bg_norecord.png
new file mode 100644
index 0000000..3be55b7
Binary files /dev/null and b/app/src/yagene/res/drawable-hdpi/list_bg_norecord.png differ
diff --git a/app/src/yagene/res/drawable-hdpi/list_bg_video.png b/app/src/yagene/res/drawable-hdpi/list_bg_video.png
new file mode 100644
index 0000000..acf7cc4
Binary files /dev/null and b/app/src/yagene/res/drawable-hdpi/list_bg_video.png differ
diff --git a/app/src/yagene/res/drawable-hdpi/list_btn_cloudvideo.png b/app/src/yagene/res/drawable-hdpi/list_btn_cloudvideo.png
new file mode 100644
index 0000000..7724ada
Binary files /dev/null and b/app/src/yagene/res/drawable-hdpi/list_btn_cloudvideo.png differ
diff --git a/app/src/yagene/res/drawable-hdpi/list_btn_deletedevice.png b/app/src/yagene/res/drawable-hdpi/list_btn_deletedevice.png
new file mode 100644
index 0000000..af8bbeb
Binary files /dev/null and b/app/src/yagene/res/drawable-hdpi/list_btn_deletedevice.png differ
diff --git a/app/src/yagene/res/drawable-hdpi/list_btn_deletemessage.png b/app/src/yagene/res/drawable-hdpi/list_btn_deletemessage.png
new file mode 100644
index 0000000..4753bc8
Binary files /dev/null and b/app/src/yagene/res/drawable-hdpi/list_btn_deletemessage.png differ
diff --git a/app/src/yagene/res/drawable-hdpi/list_btn_livevideo.png b/app/src/yagene/res/drawable-hdpi/list_btn_livevideo.png
new file mode 100644
index 0000000..5992c03
Binary files /dev/null and b/app/src/yagene/res/drawable-hdpi/list_btn_livevideo.png differ
diff --git a/app/src/yagene/res/drawable-hdpi/list_btn_localvideo.png b/app/src/yagene/res/drawable-hdpi/list_btn_localvideo.png
new file mode 100644
index 0000000..08e659e
Binary files /dev/null and b/app/src/yagene/res/drawable-hdpi/list_btn_localvideo.png differ
diff --git a/app/src/yagene/res/drawable-hdpi/list_btn_message.png b/app/src/yagene/res/drawable-hdpi/list_btn_message.png
new file mode 100644
index 0000000..ff83411
Binary files /dev/null and b/app/src/yagene/res/drawable-hdpi/list_btn_message.png differ
diff --git a/app/src/yagene/res/drawable-hdpi/list_btn_setting.png b/app/src/yagene/res/drawable-hdpi/list_btn_setting.png
new file mode 100644
index 0000000..6187aa7
Binary files /dev/null and b/app/src/yagene/res/drawable-hdpi/list_btn_setting.png differ
diff --git a/app/src/yagene/res/drawable-hdpi/list_icon_offline.png b/app/src/yagene/res/drawable-hdpi/list_icon_offline.png
new file mode 100644
index 0000000..c698996
Binary files /dev/null and b/app/src/yagene/res/drawable-hdpi/list_icon_offline.png differ
diff --git a/app/src/yagene/res/drawable-hdpi/live_btn_fluent.png b/app/src/yagene/res/drawable-hdpi/live_btn_fluent.png
new file mode 100644
index 0000000..9e452e1
Binary files /dev/null and b/app/src/yagene/res/drawable-hdpi/live_btn_fluent.png differ
diff --git a/app/src/yagene/res/drawable-hdpi/live_btn_fullscreen.png b/app/src/yagene/res/drawable-hdpi/live_btn_fullscreen.png
new file mode 100644
index 0000000..6abcf5f
Binary files /dev/null and b/app/src/yagene/res/drawable-hdpi/live_btn_fullscreen.png differ
diff --git a/app/src/yagene/res/drawable-hdpi/live_btn_hd.png b/app/src/yagene/res/drawable-hdpi/live_btn_hd.png
new file mode 100644
index 0000000..86b013c
Binary files /dev/null and b/app/src/yagene/res/drawable-hdpi/live_btn_hd.png differ
diff --git a/app/src/yagene/res/drawable-hdpi/live_btn_ptz_off.png b/app/src/yagene/res/drawable-hdpi/live_btn_ptz_off.png
new file mode 100644
index 0000000..53f67c6
Binary files /dev/null and b/app/src/yagene/res/drawable-hdpi/live_btn_ptz_off.png differ
diff --git a/app/src/yagene/res/drawable-hdpi/live_btn_ptz_on.png b/app/src/yagene/res/drawable-hdpi/live_btn_ptz_on.png
new file mode 100644
index 0000000..57fde53
Binary files /dev/null and b/app/src/yagene/res/drawable-hdpi/live_btn_ptz_on.png differ
diff --git a/app/src/yagene/res/drawable-hdpi/live_btn_record_click.png b/app/src/yagene/res/drawable-hdpi/live_btn_record_click.png
new file mode 100644
index 0000000..65e33c1
Binary files /dev/null and b/app/src/yagene/res/drawable-hdpi/live_btn_record_click.png differ
diff --git a/app/src/yagene/res/drawable-hdpi/live_btn_record_nor.png b/app/src/yagene/res/drawable-hdpi/live_btn_record_nor.png
new file mode 100644
index 0000000..9dab395
Binary files /dev/null and b/app/src/yagene/res/drawable-hdpi/live_btn_record_nor.png differ
diff --git a/app/src/yagene/res/drawable-hdpi/live_btn_screenshot_click.png b/app/src/yagene/res/drawable-hdpi/live_btn_screenshot_click.png
new file mode 100644
index 0000000..212135a
Binary files /dev/null and b/app/src/yagene/res/drawable-hdpi/live_btn_screenshot_click.png differ
diff --git a/app/src/yagene/res/drawable-hdpi/live_btn_screenshot_nor.png b/app/src/yagene/res/drawable-hdpi/live_btn_screenshot_nor.png
new file mode 100644
index 0000000..bd49937
Binary files /dev/null and b/app/src/yagene/res/drawable-hdpi/live_btn_screenshot_nor.png differ
diff --git a/app/src/yagene/res/drawable-hdpi/live_btn_smallscreen.png b/app/src/yagene/res/drawable-hdpi/live_btn_smallscreen.png
new file mode 100644
index 0000000..8fc3dee
Binary files /dev/null and b/app/src/yagene/res/drawable-hdpi/live_btn_smallscreen.png differ
diff --git a/app/src/yagene/res/drawable-hdpi/live_btn_sound_off.png b/app/src/yagene/res/drawable-hdpi/live_btn_sound_off.png
new file mode 100644
index 0000000..f0ba8d4
Binary files /dev/null and b/app/src/yagene/res/drawable-hdpi/live_btn_sound_off.png differ
diff --git a/app/src/yagene/res/drawable-hdpi/live_btn_sound_on.png b/app/src/yagene/res/drawable-hdpi/live_btn_sound_on.png
new file mode 100644
index 0000000..5930aba
Binary files /dev/null and b/app/src/yagene/res/drawable-hdpi/live_btn_sound_on.png differ
diff --git a/app/src/yagene/res/drawable-hdpi/live_btn_talk_click.png b/app/src/yagene/res/drawable-hdpi/live_btn_talk_click.png
new file mode 100644
index 0000000..1a036d2
Binary files /dev/null and b/app/src/yagene/res/drawable-hdpi/live_btn_talk_click.png differ
diff --git a/app/src/yagene/res/drawable-hdpi/live_btn_talk_nor.png b/app/src/yagene/res/drawable-hdpi/live_btn_talk_nor.png
new file mode 100644
index 0000000..b3d5575
Binary files /dev/null and b/app/src/yagene/res/drawable-hdpi/live_btn_talk_nor.png differ
diff --git a/app/src/yagene/res/drawable-hdpi/live_pic_record.png b/app/src/yagene/res/drawable-hdpi/live_pic_record.png
new file mode 100644
index 0000000..78315bc
Binary files /dev/null and b/app/src/yagene/res/drawable-hdpi/live_pic_record.png differ
diff --git a/app/src/yagene/res/drawable-hdpi/live_pic_talkback.png b/app/src/yagene/res/drawable-hdpi/live_pic_talkback.png
new file mode 100644
index 0000000..aa166e2
Binary files /dev/null and b/app/src/yagene/res/drawable-hdpi/live_pic_talkback.png differ
diff --git a/app/src/yagene/res/drawable-hdpi/pic_public_code.png b/app/src/yagene/res/drawable-hdpi/pic_public_code.png
new file mode 100644
index 0000000..f7f3971
Binary files /dev/null and b/app/src/yagene/res/drawable-hdpi/pic_public_code.png differ
diff --git a/app/src/yagene/res/drawable-hdpi/record_btn_fullscreen.png b/app/src/yagene/res/drawable-hdpi/record_btn_fullscreen.png
new file mode 100644
index 0000000..f54118a
Binary files /dev/null and b/app/src/yagene/res/drawable-hdpi/record_btn_fullscreen.png differ
diff --git a/app/src/yagene/res/drawable-hdpi/record_btn_pause.png b/app/src/yagene/res/drawable-hdpi/record_btn_pause.png
new file mode 100644
index 0000000..b2499ad
Binary files /dev/null and b/app/src/yagene/res/drawable-hdpi/record_btn_pause.png differ
diff --git a/app/src/yagene/res/drawable-hdpi/record_btn_play.png b/app/src/yagene/res/drawable-hdpi/record_btn_play.png
new file mode 100644
index 0000000..49c834f
Binary files /dev/null and b/app/src/yagene/res/drawable-hdpi/record_btn_play.png differ
diff --git a/app/src/yagene/res/drawable-hdpi/record_btn_smallscreen.png b/app/src/yagene/res/drawable-hdpi/record_btn_smallscreen.png
new file mode 100644
index 0000000..8b8e290
Binary files /dev/null and b/app/src/yagene/res/drawable-hdpi/record_btn_smallscreen.png differ
diff --git a/app/src/yagene/res/drawable-hdpi/record_progress_point.png b/app/src/yagene/res/drawable-hdpi/record_progress_point.png
new file mode 100644
index 0000000..03eb09d
Binary files /dev/null and b/app/src/yagene/res/drawable-hdpi/record_progress_point.png differ
diff --git a/app/src/yagene/res/drawable-hdpi/splash_bg.png b/app/src/yagene/res/drawable-hdpi/splash_bg.png
new file mode 100644
index 0000000..dc375a8
Binary files /dev/null and b/app/src/yagene/res/drawable-hdpi/splash_bg.png differ
diff --git a/app/src/yagene/res/drawable-hdpi/splash_btn_admin.png b/app/src/yagene/res/drawable-hdpi/splash_btn_admin.png
new file mode 100644
index 0000000..801753b
Binary files /dev/null and b/app/src/yagene/res/drawable-hdpi/splash_btn_admin.png differ
diff --git a/app/src/yagene/res/drawable-hdpi/splash_btn_user.png b/app/src/yagene/res/drawable-hdpi/splash_btn_user.png
new file mode 100644
index 0000000..40677ee
Binary files /dev/null and b/app/src/yagene/res/drawable-hdpi/splash_btn_user.png differ
diff --git a/app/src/yagene/res/drawable-hdpi/title_btn_back.png b/app/src/yagene/res/drawable-hdpi/title_btn_back.png
new file mode 100644
index 0000000..ed6b962
Binary files /dev/null and b/app/src/yagene/res/drawable-hdpi/title_btn_back.png differ
diff --git a/app/src/yagene/res/drawable-hdpi/title_btn_deviceadd.png b/app/src/yagene/res/drawable-hdpi/title_btn_deviceadd.png
new file mode 100644
index 0000000..6df0fd9
Binary files /dev/null and b/app/src/yagene/res/drawable-hdpi/title_btn_deviceadd.png differ
diff --git a/app/src/yagene/res/drawable-hdpi/title_btn_search.png b/app/src/yagene/res/drawable-hdpi/title_btn_search.png
new file mode 100644
index 0000000..0384291
Binary files /dev/null and b/app/src/yagene/res/drawable-hdpi/title_btn_search.png differ
diff --git a/app/src/yagene/res/drawable-hdpi/video_btn_play.png b/app/src/yagene/res/drawable-hdpi/video_btn_play.png
new file mode 100644
index 0000000..0372032
Binary files /dev/null and b/app/src/yagene/res/drawable-hdpi/video_btn_play.png differ
diff --git a/app/src/yagene/res/drawable-xhdpi/custom_calendar_row_left.png b/app/src/yagene/res/drawable-xhdpi/custom_calendar_row_left.png
new file mode 100644
index 0000000..84efb1f
Binary files /dev/null and b/app/src/yagene/res/drawable-xhdpi/custom_calendar_row_left.png differ
diff --git a/app/src/yagene/res/drawable-xhdpi/custom_calendar_row_right.png b/app/src/yagene/res/drawable-xhdpi/custom_calendar_row_right.png
new file mode 100644
index 0000000..f8af65c
Binary files /dev/null and b/app/src/yagene/res/drawable-xhdpi/custom_calendar_row_right.png differ
diff --git a/app/src/yagene/res/drawable-xhdpi/list_btn_download.png b/app/src/yagene/res/drawable-xhdpi/list_btn_download.png
new file mode 100644
index 0000000..9355262
Binary files /dev/null and b/app/src/yagene/res/drawable-xhdpi/list_btn_download.png differ
diff --git a/app/src/yagene/res/drawable-xhdpi/pic_public_code.png b/app/src/yagene/res/drawable-xhdpi/pic_public_code.png
new file mode 100644
index 0000000..f298447
Binary files /dev/null and b/app/src/yagene/res/drawable-xhdpi/pic_public_code.png differ
diff --git a/app/src/yagene/res/drawable-xhdpi/sdk_launcher.png b/app/src/yagene/res/drawable-xhdpi/sdk_launcher.png
new file mode 100644
index 0000000..50a9616
Binary files /dev/null and b/app/src/yagene/res/drawable-xhdpi/sdk_launcher.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/bg.png b/app/src/yagene/res/drawable-xxhdpi/bg.png
new file mode 100644
index 0000000..1966b69
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/bg.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/device_icon_find_nor.png b/app/src/yagene/res/drawable-xxhdpi/device_icon_find_nor.png
new file mode 100644
index 0000000..3afef8b
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/device_icon_find_nor.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_airer.png b/app/src/yagene/res/drawable-xxhdpi/icon_airer.png
new file mode 100644
index 0000000..869e562
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_airer.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_alone.png b/app/src/yagene/res/drawable-xxhdpi/icon_alone.png
new file mode 100644
index 0000000..27f8086
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_alone.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_autogate.png b/app/src/yagene/res/drawable-xxhdpi/icon_autogate.png
new file mode 100644
index 0000000..1ff1717
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_autogate.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_bright.png b/app/src/yagene/res/drawable-xxhdpi/icon_bright.png
new file mode 100644
index 0000000..04e3c22
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_bright.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_bungalow.png b/app/src/yagene/res/drawable-xxhdpi/icon_bungalow.png
new file mode 100644
index 0000000..99c8af0
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_bungalow.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_camera.png b/app/src/yagene/res/drawable-xxhdpi/icon_camera.png
new file mode 100644
index 0000000..caa0981
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_camera.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_camera_set.png b/app/src/yagene/res/drawable-xxhdpi/icon_camera_set.png
new file mode 100644
index 0000000..6de4c1f
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_camera_set.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_chandelier.png b/app/src/yagene/res/drawable-xxhdpi/icon_chandelier.png
new file mode 100644
index 0000000..05d58c2
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_chandelier.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_chazuo.png b/app/src/yagene/res/drawable-xxhdpi/icon_chazuo.png
new file mode 100644
index 0000000..3af7226
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_chazuo.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_choice_r.png b/app/src/yagene/res/drawable-xxhdpi/icon_choice_r.png
new file mode 100644
index 0000000..b10d472
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_choice_r.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_clean.png b/app/src/yagene/res/drawable-xxhdpi/icon_clean.png
new file mode 100644
index 0000000..3f24f66
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_clean.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_close_control.png b/app/src/yagene/res/drawable-xxhdpi/icon_close_control.png
new file mode 100644
index 0000000..36d4c64
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_close_control.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_cloud_control_nor.png b/app/src/yagene/res/drawable-xxhdpi/icon_cloud_control_nor.png
new file mode 100644
index 0000000..573f8e0
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_cloud_control_nor.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_cloud_control_per.png b/app/src/yagene/res/drawable-xxhdpi/icon_cloud_control_per.png
new file mode 100644
index 0000000..92ec36e
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_cloud_control_per.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_cloud_video_nor.png b/app/src/yagene/res/drawable-xxhdpi/icon_cloud_video_nor.png
new file mode 100644
index 0000000..e4a8a7c
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_cloud_video_nor.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_cloud_video_per.png b/app/src/yagene/res/drawable-xxhdpi/icon_cloud_video_per.png
new file mode 100644
index 0000000..b3c05f2
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_cloud_video_per.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_column_control_nor.png b/app/src/yagene/res/drawable-xxhdpi/icon_column_control_nor.png
new file mode 100644
index 0000000..79174cf
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_column_control_nor.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_column_control_pre.png b/app/src/yagene/res/drawable-xxhdpi/icon_column_control_pre.png
new file mode 100644
index 0000000..086ee49
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_column_control_pre.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_column_lockscreen.png b/app/src/yagene/res/drawable-xxhdpi/icon_column_lockscreen.png
new file mode 100644
index 0000000..eeec8e1
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_column_lockscreen.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_column_lockscreen_per.png b/app/src/yagene/res/drawable-xxhdpi/icon_column_lockscreen_per.png
new file mode 100644
index 0000000..8ac8f92
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_column_lockscreen_per.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_column_photograph.png b/app/src/yagene/res/drawable-xxhdpi/icon_column_photograph.png
new file mode 100644
index 0000000..1a99785
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_column_photograph.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_column_play.png b/app/src/yagene/res/drawable-xxhdpi/icon_column_play.png
new file mode 100644
index 0000000..8a88067
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_column_play.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_column_screen.png b/app/src/yagene/res/drawable-xxhdpi/icon_column_screen.png
new file mode 100644
index 0000000..189b18d
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_column_screen.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_column_suspend.png b/app/src/yagene/res/drawable-xxhdpi/icon_column_suspend.png
new file mode 100644
index 0000000..eef96d6
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_column_suspend.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_column_suspend1.png b/app/src/yagene/res/drawable-xxhdpi/icon_column_suspend1.png
new file mode 100644
index 0000000..603778f
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_column_suspend1.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_column_suspend_per.png b/app/src/yagene/res/drawable-xxhdpi/icon_column_suspend_per.png
new file mode 100644
index 0000000..b7d2ec3
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_column_suspend_per.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_column_videotape.png b/app/src/yagene/res/drawable-xxhdpi/icon_column_videotape.png
new file mode 100644
index 0000000..b8d0aeb
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_column_videotape.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_column_videotape_per.png b/app/src/yagene/res/drawable-xxhdpi/icon_column_videotape_per.png
new file mode 100644
index 0000000..03019ed
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_column_videotape_per.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_combination.png b/app/src/yagene/res/drawable-xxhdpi/icon_combination.png
new file mode 100644
index 0000000..63681b3
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_combination.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_control_nor.png b/app/src/yagene/res/drawable-xxhdpi/icon_control_nor.png
new file mode 100644
index 0000000..ec2ee6d
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_control_nor.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_control_pre.png b/app/src/yagene/res/drawable-xxhdpi/icon_control_pre.png
new file mode 100644
index 0000000..31c30b0
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_control_pre.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_curtain_close.png b/app/src/yagene/res/drawable-xxhdpi/icon_curtain_close.png
new file mode 100644
index 0000000..2507367
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_curtain_close.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_curtain_elevator.png b/app/src/yagene/res/drawable-xxhdpi/icon_curtain_elevator.png
new file mode 100644
index 0000000..975fbc6
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_curtain_elevator.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_curtain_open.png b/app/src/yagene/res/drawable-xxhdpi/icon_curtain_open.png
new file mode 100644
index 0000000..f15a2f5
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_curtain_open.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_curtain_stop.png b/app/src/yagene/res/drawable-xxhdpi/icon_curtain_stop.png
new file mode 100644
index 0000000..44b1419
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_curtain_stop.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_curtaingauzecurtain.png b/app/src/yagene/res/drawable-xxhdpi/icon_curtaingauzecurtain.png
new file mode 100644
index 0000000..87a4413
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_curtaingauzecurtain.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_curtains.png b/app/src/yagene/res/drawable-xxhdpi/icon_curtains.png
new file mode 100644
index 0000000..69e9813
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_curtains.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_custom_room.png b/app/src/yagene/res/drawable-xxhdpi/icon_custom_room.png
new file mode 100644
index 0000000..3fece95
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_custom_room.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_dark.png b/app/src/yagene/res/drawable-xxhdpi/icon_dark.png
new file mode 100644
index 0000000..7342dff
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_dark.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_deletel_home.png b/app/src/yagene/res/drawable-xxhdpi/icon_deletel_home.png
new file mode 100644
index 0000000..1c27f58
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_deletel_home.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_desklamp.png b/app/src/yagene/res/drawable-xxhdpi/icon_desklamp.png
new file mode 100644
index 0000000..a16263c
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_desklamp.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_device_more.png b/app/src/yagene/res/drawable-xxhdpi/icon_device_more.png
new file mode 100644
index 0000000..6a2c13c
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_device_more.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_device_plug_t1.png b/app/src/yagene/res/drawable-xxhdpi/icon_device_plug_t1.png
new file mode 100644
index 0000000..97a9f37
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_device_plug_t1.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_device_plug_t4.png b/app/src/yagene/res/drawable-xxhdpi/icon_device_plug_t4.png
new file mode 100644
index 0000000..3af7226
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_device_plug_t4.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_device_qingjing_t5.png b/app/src/yagene/res/drawable-xxhdpi/icon_device_qingjing_t5.png
new file mode 100644
index 0000000..f10ff45
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_device_qingjing_t5.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_device_wallsocket_t2.png b/app/src/yagene/res/drawable-xxhdpi/icon_device_wallsocket_t2.png
new file mode 100644
index 0000000..97affb0
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_device_wallsocket_t2.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_device_wifi_socket.png b/app/src/yagene/res/drawable-xxhdpi/icon_device_wifi_socket.png
new file mode 100644
index 0000000..0eaedfe
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_device_wifi_socket.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_dialogue_nor.png b/app/src/yagene/res/drawable-xxhdpi/icon_dialogue_nor.png
new file mode 100644
index 0000000..1611fe5
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_dialogue_nor.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_dialogue_pre.png b/app/src/yagene/res/drawable-xxhdpi/icon_dialogue_pre.png
new file mode 100644
index 0000000..8b0cdf1
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_dialogue_pre.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_direction.png b/app/src/yagene/res/drawable-xxhdpi/icon_direction.png
new file mode 100644
index 0000000..94ae68e
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_direction.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_direction_down.png b/app/src/yagene/res/drawable-xxhdpi/icon_direction_down.png
new file mode 100644
index 0000000..9933da5
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_direction_down.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_direction_left.png b/app/src/yagene/res/drawable-xxhdpi/icon_direction_left.png
new file mode 100644
index 0000000..546c249
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_direction_left.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_direction_right.png b/app/src/yagene/res/drawable-xxhdpi/icon_direction_right.png
new file mode 100644
index 0000000..c986771
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_direction_right.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_direction_up.png b/app/src/yagene/res/drawable-xxhdpi/icon_direction_up.png
new file mode 100644
index 0000000..8ee18ab
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_direction_up.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_dwx.png b/app/src/yagene/res/drawable-xxhdpi/icon_dwx.png
new file mode 100644
index 0000000..b536425
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_dwx.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_elevator.png b/app/src/yagene/res/drawable-xxhdpi/icon_elevator.png
new file mode 100644
index 0000000..11ba70e
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_elevator.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_exhaust.png b/app/src/yagene/res/drawable-xxhdpi/icon_exhaust.png
new file mode 100644
index 0000000..694a4eb
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_exhaust.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_five_room.png b/app/src/yagene/res/drawable-xxhdpi/icon_five_room.png
new file mode 100644
index 0000000..45d71e4
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_five_room.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_fork.png b/app/src/yagene/res/drawable-xxhdpi/icon_fork.png
new file mode 100644
index 0000000..c090f77
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_fork.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_four_room.png b/app/src/yagene/res/drawable-xxhdpi/icon_four_room.png
new file mode 100644
index 0000000..506fab8
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_four_room.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_fs.png b/app/src/yagene/res/drawable-xxhdpi/icon_fs.png
new file mode 100644
index 0000000..3d03c15
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_fs.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_garage.png b/app/src/yagene/res/drawable-xxhdpi/icon_garage.png
new file mode 100644
index 0000000..f4ca044
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_garage.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_gas.png b/app/src/yagene/res/drawable-xxhdpi/icon_gas.png
new file mode 100644
index 0000000..03a186f
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_gas.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_gas_433.png b/app/src/yagene/res/drawable-xxhdpi/icon_gas_433.png
new file mode 100644
index 0000000..9d33aaa
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_gas_433.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_gatemagnetic.png b/app/src/yagene/res/drawable-xxhdpi/icon_gatemagnetic.png
new file mode 100644
index 0000000..8dc9ff4
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_gatemagnetic.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_gatemagnetic_433.png b/app/src/yagene/res/drawable-xxhdpi/icon_gatemagnetic_433.png
new file mode 100644
index 0000000..fad7175
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_gatemagnetic_433.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_gateway_dh.png b/app/src/yagene/res/drawable-xxhdpi/icon_gateway_dh.png
new file mode 100644
index 0000000..f8e24b2
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_gateway_dh.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_gauze.png b/app/src/yagene/res/drawable-xxhdpi/icon_gauze.png
new file mode 100644
index 0000000..16731fc
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_gauze.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_goback_nor.png b/app/src/yagene/res/drawable-xxhdpi/icon_goback_nor.png
new file mode 100644
index 0000000..88bb428
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_goback_nor.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_heater.png b/app/src/yagene/res/drawable-xxhdpi/icon_heater.png
new file mode 100644
index 0000000..606f109
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_heater.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_implement_open.png b/app/src/yagene/res/drawable-xxhdpi/icon_implement_open.png
new file mode 100644
index 0000000..ec43e5c
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_implement_open.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_implement_shut.png b/app/src/yagene/res/drawable-xxhdpi/icon_implement_shut.png
new file mode 100644
index 0000000..b8d5ac6
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_implement_shut.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_index_nor.png b/app/src/yagene/res/drawable-xxhdpi/icon_index_nor.png
new file mode 100644
index 0000000..1233bb7
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_index_nor.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_infrared.png b/app/src/yagene/res/drawable-xxhdpi/icon_infrared.png
new file mode 100644
index 0000000..3fbcfc0
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_infrared.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_infrared_433.png b/app/src/yagene/res/drawable-xxhdpi/icon_infrared_433.png
new file mode 100644
index 0000000..07c2e25
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_infrared_433.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_kettle.png b/app/src/yagene/res/drawable-xxhdpi/icon_kettle.png
new file mode 100644
index 0000000..a09590d
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_kettle.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_kitchenpower.png b/app/src/yagene/res/drawable-xxhdpi/icon_kitchenpower.png
new file mode 100644
index 0000000..90064a1
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_kitchenpower.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_kt.png b/app/src/yagene/res/drawable-xxhdpi/icon_kt.png
new file mode 100644
index 0000000..590e5a6
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_kt.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_lamp.png b/app/src/yagene/res/drawable-xxhdpi/icon_lamp.png
new file mode 100644
index 0000000..1460b04
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_lamp.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_leanhelp.png b/app/src/yagene/res/drawable-xxhdpi/icon_leanhelp.png
new file mode 100644
index 0000000..3cf51fd
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_leanhelp.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_light.png b/app/src/yagene/res/drawable-xxhdpi/icon_light.png
new file mode 100644
index 0000000..ff37835
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_light.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_lightbelt.png b/app/src/yagene/res/drawable-xxhdpi/icon_lightbelt.png
new file mode 100644
index 0000000..9cafed8
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_lightbelt.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_local_video_nor.png b/app/src/yagene/res/drawable-xxhdpi/icon_local_video_nor.png
new file mode 100644
index 0000000..2330b9f
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_local_video_nor.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_local_video_per.png b/app/src/yagene/res/drawable-xxhdpi/icon_local_video_per.png
new file mode 100644
index 0000000..1be1d80
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_local_video_per.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_menu_nor.png b/app/src/yagene/res/drawable-xxhdpi/icon_menu_nor.png
new file mode 100644
index 0000000..2c23ca4
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_menu_nor.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_message_alert.png b/app/src/yagene/res/drawable-xxhdpi/icon_message_alert.png
new file mode 100644
index 0000000..f8e9089
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_message_alert.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_message_system.png b/app/src/yagene/res/drawable-xxhdpi/icon_message_system.png
new file mode 100644
index 0000000..0ece579
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_message_system.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_multifunctional.png b/app/src/yagene/res/drawable-xxhdpi/icon_multifunctional.png
new file mode 100644
index 0000000..797a013
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_multifunctional.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_music.png b/app/src/yagene/res/drawable-xxhdpi/icon_music.png
new file mode 100644
index 0000000..369963a
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_music.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_music_mute.png b/app/src/yagene/res/drawable-xxhdpi/icon_music_mute.png
new file mode 100644
index 0000000..a900531
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_music_mute.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_music_suspend.png b/app/src/yagene/res/drawable-xxhdpi/icon_music_suspend.png
new file mode 100644
index 0000000..44b1419
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_music_suspend.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_nav_add.png b/app/src/yagene/res/drawable-xxhdpi/icon_nav_add.png
new file mode 100644
index 0000000..9c2202d
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_nav_add.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_nav_add_black.png b/app/src/yagene/res/drawable-xxhdpi/icon_nav_add_black.png
new file mode 100644
index 0000000..4aefa18
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_nav_add_black.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_nav_reduce.png b/app/src/yagene/res/drawable-xxhdpi/icon_nav_reduce.png
new file mode 100644
index 0000000..8a0dfd4
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_nav_reduce.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_new_home.png b/app/src/yagene/res/drawable-xxhdpi/icon_new_home.png
new file mode 100644
index 0000000..d7c61dd
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_new_home.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_no_video.png b/app/src/yagene/res/drawable-xxhdpi/icon_no_video.png
new file mode 100644
index 0000000..644f319
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_no_video.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_one_room.png b/app/src/yagene/res/drawable-xxhdpi/icon_one_room.png
new file mode 100644
index 0000000..fbf89c2
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_one_room.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_photograph_nor.png b/app/src/yagene/res/drawable-xxhdpi/icon_photograph_nor.png
new file mode 100644
index 0000000..bc646f9
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_photograph_nor.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_photograph_pre.png b/app/src/yagene/res/drawable-xxhdpi/icon_photograph_pre.png
new file mode 100644
index 0000000..220dba3
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_photograph_pre.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_popup_attention_offline.png b/app/src/yagene/res/drawable-xxhdpi/icon_popup_attention_offline.png
new file mode 100644
index 0000000..36b07ad
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_popup_attention_offline.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_porchlamp.png b/app/src/yagene/res/drawable-xxhdpi/icon_porchlamp.png
new file mode 100644
index 0000000..7ee1bc7
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_porchlamp.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_quiet_nor.png b/app/src/yagene/res/drawable-xxhdpi/icon_quiet_nor.png
new file mode 100644
index 0000000..6b69328
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_quiet_nor.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_quiet_press.png b/app/src/yagene/res/drawable-xxhdpi/icon_quiet_press.png
new file mode 100644
index 0000000..a900531
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_quiet_press.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_room_three.png b/app/src/yagene/res/drawable-xxhdpi/icon_room_three.png
new file mode 100644
index 0000000..d2da9f4
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_room_three.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_screen_cloud_control.png b/app/src/yagene/res/drawable-xxhdpi/icon_screen_cloud_control.png
new file mode 100644
index 0000000..a6c4a08
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_screen_cloud_control.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_search_airer.png b/app/src/yagene/res/drawable-xxhdpi/icon_search_airer.png
new file mode 100644
index 0000000..9c8df07
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_search_airer.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_set_top_box.png b/app/src/yagene/res/drawable-xxhdpi/icon_set_top_box.png
new file mode 100644
index 0000000..c27bf4a
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_set_top_box.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_share_nor.png b/app/src/yagene/res/drawable-xxhdpi/icon_share_nor.png
new file mode 100644
index 0000000..d165f16
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_share_nor.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_share_pre.png b/app/src/yagene/res/drawable-xxhdpi/icon_share_pre.png
new file mode 100644
index 0000000..5158ac3
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_share_pre.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_smoke.png b/app/src/yagene/res/drawable-xxhdpi/icon_smoke.png
new file mode 100644
index 0000000..09dfdce
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_smoke.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_smoke_433.png b/app/src/yagene/res/drawable-xxhdpi/icon_smoke_433.png
new file mode 100644
index 0000000..7cd343f
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_smoke_433.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_spray.png b/app/src/yagene/res/drawable-xxhdpi/icon_spray.png
new file mode 100644
index 0000000..1a77c1f
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_spray.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_step.png b/app/src/yagene/res/drawable-xxhdpi/icon_step.png
new file mode 100644
index 0000000..222e529
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_step.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_step_three.png b/app/src/yagene/res/drawable-xxhdpi/icon_step_three.png
new file mode 100644
index 0000000..ec08cf0
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_step_three.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_sterilizing_lamp.png b/app/src/yagene/res/drawable-xxhdpi/icon_sterilizing_lamp.png
new file mode 100644
index 0000000..4e49d7e
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_sterilizing_lamp.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_style.png b/app/src/yagene/res/drawable-xxhdpi/icon_style.png
new file mode 100644
index 0000000..49f0ebf
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_style.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_sunshade.png b/app/src/yagene/res/drawable-xxhdpi/icon_sunshade.png
new file mode 100644
index 0000000..5b4af14
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_sunshade.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_switch_off.png b/app/src/yagene/res/drawable-xxhdpi/icon_switch_off.png
new file mode 100644
index 0000000..ace3494
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_switch_off.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_switch_on.png b/app/src/yagene/res/drawable-xxhdpi/icon_switch_on.png
new file mode 100644
index 0000000..075c903
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_switch_on.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_switch_open.png b/app/src/yagene/res/drawable-xxhdpi/icon_switch_open.png
new file mode 100644
index 0000000..075c903
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_switch_open.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_tubelamp.png b/app/src/yagene/res/drawable-xxhdpi/icon_tubelamp.png
new file mode 100644
index 0000000..168f488
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_tubelamp.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_tv.png b/app/src/yagene/res/drawable-xxhdpi/icon_tv.png
new file mode 100644
index 0000000..ce5a501
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_tv.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_tv_ok.png b/app/src/yagene/res/drawable-xxhdpi/icon_tv_ok.png
new file mode 100644
index 0000000..6fa7c9c
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_tv_ok.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_two_room.png b/app/src/yagene/res/drawable-xxhdpi/icon_two_room.png
new file mode 100644
index 0000000..90e0eee
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_two_room.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_video_control.png b/app/src/yagene/res/drawable-xxhdpi/icon_video_control.png
new file mode 100644
index 0000000..f757236
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_video_control.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_videotape_nor.png b/app/src/yagene/res/drawable-xxhdpi/icon_videotape_nor.png
new file mode 100644
index 0000000..928c88b
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_videotape_nor.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_videotape_pre.png b/app/src/yagene/res/drawable-xxhdpi/icon_videotape_pre.png
new file mode 100644
index 0000000..15c9620
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_videotape_pre.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_villa.png b/app/src/yagene/res/drawable-xxhdpi/icon_villa.png
new file mode 100644
index 0000000..6535f0e
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_villa.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_voice_help.png b/app/src/yagene/res/drawable-xxhdpi/icon_voice_help.png
new file mode 100644
index 0000000..6db4ce6
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_voice_help.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_voice_nor.png b/app/src/yagene/res/drawable-xxhdpi/icon_voice_nor.png
new file mode 100644
index 0000000..9c4b1fc
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_voice_nor.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_voice_off.png b/app/src/yagene/res/drawable-xxhdpi/icon_voice_off.png
new file mode 100644
index 0000000..0ae61f2
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_voice_off.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_voice_on.png b/app/src/yagene/res/drawable-xxhdpi/icon_voice_on.png
new file mode 100644
index 0000000..bdfc4af
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_voice_on.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_voice_robot.png b/app/src/yagene/res/drawable-xxhdpi/icon_voice_robot.png
new file mode 100644
index 0000000..23dc69a
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_voice_robot.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_vol_add.png b/app/src/yagene/res/drawable-xxhdpi/icon_vol_add.png
new file mode 100644
index 0000000..9c2202d
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_vol_add.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_vol_reduce.png b/app/src/yagene/res/drawable-xxhdpi/icon_vol_reduce.png
new file mode 100644
index 0000000..8a0dfd4
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_vol_reduce.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_walllamp.png b/app/src/yagene/res/drawable-xxhdpi/icon_walllamp.png
new file mode 100644
index 0000000..b6ece2c
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_walllamp.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_wallsocket.png b/app/src/yagene/res/drawable-xxhdpi/icon_wallsocket.png
new file mode 100644
index 0000000..96fe96b
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_wallsocket.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_waterimmersion.png b/app/src/yagene/res/drawable-xxhdpi/icon_waterimmersion.png
new file mode 100644
index 0000000..4ed529f
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_waterimmersion.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_waterimmersion_433.png b/app/src/yagene/res/drawable-xxhdpi/icon_waterimmersion_433.png
new file mode 100644
index 0000000..e0bfba5
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_waterimmersion_433.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_wifi.png b/app/src/yagene/res/drawable-xxhdpi/icon_wifi.png
new file mode 100644
index 0000000..e8dded8
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_wifi.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/icon_window_opener.png b/app/src/yagene/res/drawable-xxhdpi/icon_window_opener.png
new file mode 100644
index 0000000..581dc5b
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/icon_window_opener.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/index_icon_find_pre.png b/app/src/yagene/res/drawable-xxhdpi/index_icon_find_pre.png
new file mode 100644
index 0000000..735ec68
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/index_icon_find_pre.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/index_icon_index_nor.png b/app/src/yagene/res/drawable-xxhdpi/index_icon_index_nor.png
new file mode 100644
index 0000000..fb9c730
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/index_icon_index_nor.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/index_icon_index_pre.png b/app/src/yagene/res/drawable-xxhdpi/index_icon_index_pre.png
new file mode 100644
index 0000000..99e214d
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/index_icon_index_pre.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/index_icon_scene_nor.png b/app/src/yagene/res/drawable-xxhdpi/index_icon_scene_nor.png
new file mode 100644
index 0000000..36599bb
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/index_icon_scene_nor.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/index_icon_scene_pre.png b/app/src/yagene/res/drawable-xxhdpi/index_icon_scene_pre.png
new file mode 100644
index 0000000..537ea53
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/index_icon_scene_pre.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/index_icon_voice_nor.png b/app/src/yagene/res/drawable-xxhdpi/index_icon_voice_nor.png
new file mode 100644
index 0000000..63d8778
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/index_icon_voice_nor.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/index_icon_wode_nor.png b/app/src/yagene/res/drawable-xxhdpi/index_icon_wode_nor.png
new file mode 100644
index 0000000..d7f5db9
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/index_icon_wode_nor.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/index_icon_wode_pre.png b/app/src/yagene/res/drawable-xxhdpi/index_icon_wode_pre.png
new file mode 100644
index 0000000..5908458
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/index_icon_wode_pre.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/lecheng_icon.png b/app/src/yagene/res/drawable-xxhdpi/lecheng_icon.png
new file mode 100644
index 0000000..4047c62
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/lecheng_icon.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/loading_icon.png b/app/src/yagene/res/drawable-xxhdpi/loading_icon.png
new file mode 100644
index 0000000..885e9ef
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/loading_icon.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/pic_add_finish_camera.png b/app/src/yagene/res/drawable-xxhdpi/pic_add_finish_camera.png
new file mode 100644
index 0000000..b43637f
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/pic_add_finish_camera.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/pic_add_socket.png b/app/src/yagene/res/drawable-xxhdpi/pic_add_socket.png
new file mode 100644
index 0000000..321ded9
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/pic_add_socket.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/pic_airer_decline.png b/app/src/yagene/res/drawable-xxhdpi/pic_airer_decline.png
new file mode 100644
index 0000000..25d108f
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/pic_airer_decline.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/pic_autogate.png b/app/src/yagene/res/drawable-xxhdpi/pic_autogate.png
new file mode 100644
index 0000000..1491d8c
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/pic_autogate.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/pic_camera_background.png b/app/src/yagene/res/drawable-xxhdpi/pic_camera_background.png
new file mode 100644
index 0000000..235cef5
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/pic_camera_background.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/pic_camera_indicator.png b/app/src/yagene/res/drawable-xxhdpi/pic_camera_indicator.png
new file mode 100644
index 0000000..472c1d0
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/pic_camera_indicator.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/pic_camera_overtime.png b/app/src/yagene/res/drawable-xxhdpi/pic_camera_overtime.png
new file mode 100644
index 0000000..a8c5eaa
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/pic_camera_overtime.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/pic_chandelier.png b/app/src/yagene/res/drawable-xxhdpi/pic_chandelier.png
new file mode 100644
index 0000000..ab348a5
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/pic_chandelier.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/pic_chazuo.png b/app/src/yagene/res/drawable-xxhdpi/pic_chazuo.png
new file mode 100644
index 0000000..a236b11
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/pic_chazuo.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/pic_chazuo_2.png b/app/src/yagene/res/drawable-xxhdpi/pic_chazuo_2.png
new file mode 100644
index 0000000..94d076b
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/pic_chazuo_2.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/pic_chazuo_t4.png b/app/src/yagene/res/drawable-xxhdpi/pic_chazuo_t4.png
new file mode 100644
index 0000000..8ec0bad
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/pic_chazuo_t4.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/pic_close_back.png b/app/src/yagene/res/drawable-xxhdpi/pic_close_back.png
new file mode 100644
index 0000000..b8f7b41
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/pic_close_back.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/pic_close_window.png b/app/src/yagene/res/drawable-xxhdpi/pic_close_window.png
new file mode 100644
index 0000000..ae86722
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/pic_close_window.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/pic_control_scene.png b/app/src/yagene/res/drawable-xxhdpi/pic_control_scene.png
new file mode 100644
index 0000000..8304c79
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/pic_control_scene.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/pic_control_scene1.png b/app/src/yagene/res/drawable-xxhdpi/pic_control_scene1.png
new file mode 100644
index 0000000..a21cbf8
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/pic_control_scene1.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/pic_control_scene2.png b/app/src/yagene/res/drawable-xxhdpi/pic_control_scene2.png
new file mode 100644
index 0000000..11ef32b
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/pic_control_scene2.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/pic_control_scene3.png b/app/src/yagene/res/drawable-xxhdpi/pic_control_scene3.png
new file mode 100644
index 0000000..9cdf370
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/pic_control_scene3.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/pic_control_scene4.png b/app/src/yagene/res/drawable-xxhdpi/pic_control_scene4.png
new file mode 100644
index 0000000..ea9ac4e
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/pic_control_scene4.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/pic_control_scene6.png b/app/src/yagene/res/drawable-xxhdpi/pic_control_scene6.png
new file mode 100644
index 0000000..15b5469
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/pic_control_scene6.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/pic_curtain.png b/app/src/yagene/res/drawable-xxhdpi/pic_curtain.png
new file mode 100644
index 0000000..7e2afed
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/pic_curtain.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/pic_curtain_elevator.png b/app/src/yagene/res/drawable-xxhdpi/pic_curtain_elevator.png
new file mode 100644
index 0000000..1653027
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/pic_curtain_elevator.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/pic_dehumidify_back.png b/app/src/yagene/res/drawable-xxhdpi/pic_dehumidify_back.png
new file mode 100644
index 0000000..47d084b
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/pic_dehumidify_back.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/pic_desklamp.png b/app/src/yagene/res/drawable-xxhdpi/pic_desklamp.png
new file mode 100644
index 0000000..9fb36ab
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/pic_desklamp.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/pic_dwx.png b/app/src/yagene/res/drawable-xxhdpi/pic_dwx.png
new file mode 100644
index 0000000..2efbfc5
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/pic_dwx.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/pic_electricfan.png b/app/src/yagene/res/drawable-xxhdpi/pic_electricfan.png
new file mode 100644
index 0000000..d5e1f32
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/pic_electricfan.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/pic_elevator.png b/app/src/yagene/res/drawable-xxhdpi/pic_elevator.png
new file mode 100644
index 0000000..f5263fe
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/pic_elevator.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/pic_exhaust.png b/app/src/yagene/res/drawable-xxhdpi/pic_exhaust.png
new file mode 100644
index 0000000..050a8f2
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/pic_exhaust.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/pic_garage.png b/app/src/yagene/res/drawable-xxhdpi/pic_garage.png
new file mode 100644
index 0000000..14a24a0
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/pic_garage.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/pic_gauze.png b/app/src/yagene/res/drawable-xxhdpi/pic_gauze.png
new file mode 100644
index 0000000..9a25328
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/pic_gauze.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/pic_guidepage1.png b/app/src/yagene/res/drawable-xxhdpi/pic_guidepage1.png
new file mode 100644
index 0000000..817c7e5
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/pic_guidepage1.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/pic_guidepage2.png b/app/src/yagene/res/drawable-xxhdpi/pic_guidepage2.png
new file mode 100644
index 0000000..b6cc57b
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/pic_guidepage2.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/pic_guidepage3.png b/app/src/yagene/res/drawable-xxhdpi/pic_guidepage3.png
new file mode 100644
index 0000000..450958f
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/pic_guidepage3.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/pic_heater.png b/app/src/yagene/res/drawable-xxhdpi/pic_heater.png
new file mode 100644
index 0000000..e396f9c
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/pic_heater.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/pic_heating_back.png b/app/src/yagene/res/drawable-xxhdpi/pic_heating_back.png
new file mode 100644
index 0000000..fea82f8
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/pic_heating_back.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/pic_kettle.png b/app/src/yagene/res/drawable-xxhdpi/pic_kettle.png
new file mode 100644
index 0000000..fa65c88
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/pic_kettle.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/pic_kitchenpower.png b/app/src/yagene/res/drawable-xxhdpi/pic_kitchenpower.png
new file mode 100644
index 0000000..2e1d5be
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/pic_kitchenpower.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/pic_lamp.png b/app/src/yagene/res/drawable-xxhdpi/pic_lamp.png
new file mode 100644
index 0000000..c420a36
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/pic_lamp.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/pic_light_close.png b/app/src/yagene/res/drawable-xxhdpi/pic_light_close.png
new file mode 100644
index 0000000..8c6987a
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/pic_light_close.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/pic_light_open.png b/app/src/yagene/res/drawable-xxhdpi/pic_light_open.png
new file mode 100644
index 0000000..8c6987a
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/pic_light_open.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/pic_lightbelt.png b/app/src/yagene/res/drawable-xxhdpi/pic_lightbelt.png
new file mode 100644
index 0000000..f80a7e3
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/pic_lightbelt.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/pic_multifunctional.png b/app/src/yagene/res/drawable-xxhdpi/pic_multifunctional.png
new file mode 100644
index 0000000..74b68fc
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/pic_multifunctional.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/pic_music_add.png b/app/src/yagene/res/drawable-xxhdpi/pic_music_add.png
new file mode 100644
index 0000000..942c287
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/pic_music_add.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/pic_music_key.png b/app/src/yagene/res/drawable-xxhdpi/pic_music_key.png
new file mode 100644
index 0000000..ebb8b19
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/pic_music_key.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/pic_music_last.png b/app/src/yagene/res/drawable-xxhdpi/pic_music_last.png
new file mode 100644
index 0000000..7f979e0
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/pic_music_last.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/pic_music_next.png b/app/src/yagene/res/drawable-xxhdpi/pic_music_next.png
new file mode 100644
index 0000000..6c58cc3
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/pic_music_next.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/pic_music_reduce.png b/app/src/yagene/res/drawable-xxhdpi/pic_music_reduce.png
new file mode 100644
index 0000000..3e77433
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/pic_music_reduce.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/pic_no_device.png b/app/src/yagene/res/drawable-xxhdpi/pic_no_device.png
new file mode 100644
index 0000000..cc5ecbd
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/pic_no_device.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/pic_nointeractive.png b/app/src/yagene/res/drawable-xxhdpi/pic_nointeractive.png
new file mode 100644
index 0000000..eb09441
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/pic_nointeractive.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/pic_plug_t1.png b/app/src/yagene/res/drawable-xxhdpi/pic_plug_t1.png
new file mode 100644
index 0000000..368ebc3
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/pic_plug_t1.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/pic_plug_t4.png b/app/src/yagene/res/drawable-xxhdpi/pic_plug_t4.png
new file mode 100644
index 0000000..a236b11
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/pic_plug_t4.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/pic_porchlamp.png b/app/src/yagene/res/drawable-xxhdpi/pic_porchlamp.png
new file mode 100644
index 0000000..1db220c
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/pic_porchlamp.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/pic_public_code.png b/app/src/yagene/res/drawable-xxhdpi/pic_public_code.png
new file mode 100644
index 0000000..55fc6f2
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/pic_public_code.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/pic_refrigeration_back.png b/app/src/yagene/res/drawable-xxhdpi/pic_refrigeration_back.png
new file mode 100644
index 0000000..9670ec3
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/pic_refrigeration_back.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/pic_router.png b/app/src/yagene/res/drawable-xxhdpi/pic_router.png
new file mode 100644
index 0000000..4d59bc4
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/pic_router.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/pic_security.png b/app/src/yagene/res/drawable-xxhdpi/pic_security.png
new file mode 100644
index 0000000..7d77ac6
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/pic_security.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/pic_spray.png b/app/src/yagene/res/drawable-xxhdpi/pic_spray.png
new file mode 100644
index 0000000..59c5396
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/pic_spray.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/pic_sterilizing_lamp.png b/app/src/yagene/res/drawable-xxhdpi/pic_sterilizing_lamp.png
new file mode 100644
index 0000000..e58534e
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/pic_sterilizing_lamp.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/pic_storage.png b/app/src/yagene/res/drawable-xxhdpi/pic_storage.png
new file mode 100644
index 0000000..b602f1e
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/pic_storage.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/pic_sunshade.png b/app/src/yagene/res/drawable-xxhdpi/pic_sunshade.png
new file mode 100644
index 0000000..d4784ae
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/pic_sunshade.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/pic_tubelamp.png b/app/src/yagene/res/drawable-xxhdpi/pic_tubelamp.png
new file mode 100644
index 0000000..929507f
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/pic_tubelamp.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/pic_video_background.png b/app/src/yagene/res/drawable-xxhdpi/pic_video_background.png
new file mode 100644
index 0000000..7405cef
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/pic_video_background.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/pic_videotape.png b/app/src/yagene/res/drawable-xxhdpi/pic_videotape.png
new file mode 100644
index 0000000..1465176
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/pic_videotape.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/pic_walllamp.png b/app/src/yagene/res/drawable-xxhdpi/pic_walllamp.png
new file mode 100644
index 0000000..e69bd17
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/pic_walllamp.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/pic_wallsocket_t2.png b/app/src/yagene/res/drawable-xxhdpi/pic_wallsocket_t2.png
new file mode 100644
index 0000000..fb7ada8
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/pic_wallsocket_t2.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/pic_wifi_socket.png b/app/src/yagene/res/drawable-xxhdpi/pic_wifi_socket.png
new file mode 100644
index 0000000..97716a7
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/pic_wifi_socket.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/pic_window.png b/app/src/yagene/res/drawable-xxhdpi/pic_window.png
new file mode 100644
index 0000000..ae86722
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/pic_window.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/select_reveal_copy.png b/app/src/yagene/res/drawable-xxhdpi/select_reveal_copy.png
new file mode 100644
index 0000000..5375943
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/select_reveal_copy.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/select_unnor1.png b/app/src/yagene/res/drawable-xxhdpi/select_unnor1.png
new file mode 100644
index 0000000..ee4be75
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/select_unnor1.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/select_unnor2.png b/app/src/yagene/res/drawable-xxhdpi/select_unnor2.png
new file mode 100644
index 0000000..fb8a828
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/select_unnor2.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/wode_icon_aboutedition.png b/app/src/yagene/res/drawable-xxhdpi/wode_icon_aboutedition.png
new file mode 100644
index 0000000..e32a560
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/wode_icon_aboutedition.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/wode_icon_code.png b/app/src/yagene/res/drawable-xxhdpi/wode_icon_code.png
new file mode 100644
index 0000000..da5dcf6
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/wode_icon_code.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/wode_icon_device_management.png b/app/src/yagene/res/drawable-xxhdpi/wode_icon_device_management.png
new file mode 100644
index 0000000..8eebcfd
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/wode_icon_device_management.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/wode_icon_news.png b/app/src/yagene/res/drawable-xxhdpi/wode_icon_news.png
new file mode 100644
index 0000000..8053b2a
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/wode_icon_news.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/wode_icon_servicecenter.png b/app/src/yagene/res/drawable-xxhdpi/wode_icon_servicecenter.png
new file mode 100644
index 0000000..7330ae4
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/wode_icon_servicecenter.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/wode_icon_setting.png b/app/src/yagene/res/drawable-xxhdpi/wode_icon_setting.png
new file mode 100644
index 0000000..12670b5
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/wode_icon_setting.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/wode_icon_timing.png b/app/src/yagene/res/drawable-xxhdpi/wode_icon_timing.png
new file mode 100644
index 0000000..b3b99c9
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/wode_icon_timing.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/wode_icon_update.png b/app/src/yagene/res/drawable-xxhdpi/wode_icon_update.png
new file mode 100644
index 0000000..91c8478
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/wode_icon_update.png differ
diff --git a/app/src/yagene/res/drawable-xxhdpi/wode_icon_xiaoai.png b/app/src/yagene/res/drawable-xxhdpi/wode_icon_xiaoai.png
new file mode 100644
index 0000000..c837a86
Binary files /dev/null and b/app/src/yagene/res/drawable-xxhdpi/wode_icon_xiaoai.png differ
diff --git a/app/src/yagene/res/drawable/alarm_message_underline.xml b/app/src/yagene/res/drawable/alarm_message_underline.xml
new file mode 100644
index 0000000..a43ef0f
--- /dev/null
+++ b/app/src/yagene/res/drawable/alarm_message_underline.xml
@@ -0,0 +1,16 @@
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+
+
+
diff --git a/app/src/yagene/res/drawable/bg_wheel.xml b/app/src/yagene/res/drawable/bg_wheel.xml
new file mode 100644
index 0000000..2e8ad22
--- /dev/null
+++ b/app/src/yagene/res/drawable/bg_wheel.xml
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/yagene/res/drawable/btn_moveplan_switch.xml b/app/src/yagene/res/drawable/btn_moveplan_switch.xml
new file mode 100644
index 0000000..6500b79
--- /dev/null
+++ b/app/src/yagene/res/drawable/btn_moveplan_switch.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
diff --git a/app/src/yagene/res/drawable/btn_round_360_bg.xml b/app/src/yagene/res/drawable/btn_round_360_bg.xml
new file mode 100644
index 0000000..369cd2d
--- /dev/null
+++ b/app/src/yagene/res/drawable/btn_round_360_bg.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/yagene/res/drawable/btn_round_360_bg_center.xml b/app/src/yagene/res/drawable/btn_round_360_bg_center.xml
new file mode 100644
index 0000000..bd7c76e
--- /dev/null
+++ b/app/src/yagene/res/drawable/btn_round_360_bg_center.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/yagene/res/drawable/btn_round_360_stroke.xml b/app/src/yagene/res/drawable/btn_round_360_stroke.xml
new file mode 100644
index 0000000..c2c23f8
--- /dev/null
+++ b/app/src/yagene/res/drawable/btn_round_360_stroke.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/yagene/res/drawable/icon_cloud_control.xml b/app/src/yagene/res/drawable/icon_cloud_control.xml
new file mode 100644
index 0000000..54fcd7c
--- /dev/null
+++ b/app/src/yagene/res/drawable/icon_cloud_control.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/yagene/res/drawable/select_lockscreen.xml b/app/src/yagene/res/drawable/select_lockscreen.xml
new file mode 100644
index 0000000..5cc57b7
--- /dev/null
+++ b/app/src/yagene/res/drawable/select_lockscreen.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/yagene/res/layout/activity_about_version.xml b/app/src/yagene/res/layout/activity_about_version.xml
new file mode 100644
index 0000000..843a62f
--- /dev/null
+++ b/app/src/yagene/res/layout/activity_about_version.xml
@@ -0,0 +1,236 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/yagene/res/layout/activity_admin_login.xml b/app/src/yagene/res/layout/activity_admin_login.xml
new file mode 100644
index 0000000..c8718c6
--- /dev/null
+++ b/app/src/yagene/res/layout/activity_admin_login.xml
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/yagene/res/layout/activity_alarm_message.xml b/app/src/yagene/res/layout/activity_alarm_message.xml
new file mode 100644
index 0000000..ac81b72
--- /dev/null
+++ b/app/src/yagene/res/layout/activity_alarm_message.xml
@@ -0,0 +1,65 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/yagene/res/layout/activity_alarm_message_item.xml b/app/src/yagene/res/layout/activity_alarm_message_item.xml
new file mode 100644
index 0000000..5cc2c27
--- /dev/null
+++ b/app/src/yagene/res/layout/activity_alarm_message_item.xml
@@ -0,0 +1,56 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/yagene/res/layout/activity_asx_add_device_list.xml b/app/src/yagene/res/layout/activity_asx_add_device_list.xml
new file mode 100644
index 0000000..98975ff
--- /dev/null
+++ b/app/src/yagene/res/layout/activity_asx_add_device_list.xml
@@ -0,0 +1,105 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/yagene/res/layout/activity_camera_detail.xml b/app/src/yagene/res/layout/activity_camera_detail.xml
new file mode 100644
index 0000000..dc116c7
--- /dev/null
+++ b/app/src/yagene/res/layout/activity_camera_detail.xml
@@ -0,0 +1,676 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/yagene/res/layout/activity_camera_name.xml b/app/src/yagene/res/layout/activity_camera_name.xml
new file mode 100644
index 0000000..a2a4b16
--- /dev/null
+++ b/app/src/yagene/res/layout/activity_camera_name.xml
@@ -0,0 +1,144 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/yagene/res/layout/activity_copyright.xml b/app/src/yagene/res/layout/activity_copyright.xml
new file mode 100644
index 0000000..5fc13b4
--- /dev/null
+++ b/app/src/yagene/res/layout/activity_copyright.xml
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/yagene/res/layout/activity_device_add.xml b/app/src/yagene/res/layout/activity_device_add.xml
new file mode 100644
index 0000000..4cf7e4d
--- /dev/null
+++ b/app/src/yagene/res/layout/activity_device_add.xml
@@ -0,0 +1,47 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/yagene/res/layout/activity_device_list.xml b/app/src/yagene/res/layout/activity_device_list.xml
new file mode 100644
index 0000000..78ebd17
--- /dev/null
+++ b/app/src/yagene/res/layout/activity_device_list.xml
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/yagene/res/layout/activity_device_list_item.xml b/app/src/yagene/res/layout/activity_device_list_item.xml
new file mode 100644
index 0000000..2fb699a
--- /dev/null
+++ b/app/src/yagene/res/layout/activity_device_list_item.xml
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/yagene/res/layout/activity_device_set.xml b/app/src/yagene/res/layout/activity_device_set.xml
new file mode 100644
index 0000000..cacbd82
--- /dev/null
+++ b/app/src/yagene/res/layout/activity_device_set.xml
@@ -0,0 +1,163 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/yagene/res/layout/activity_lecheng_login.xml b/app/src/yagene/res/layout/activity_lecheng_login.xml
new file mode 100644
index 0000000..d95a000
--- /dev/null
+++ b/app/src/yagene/res/layout/activity_lecheng_login.xml
@@ -0,0 +1,204 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/yagene/res/layout/activity_local_video_item.xml b/app/src/yagene/res/layout/activity_local_video_item.xml
new file mode 100644
index 0000000..2d85411
--- /dev/null
+++ b/app/src/yagene/res/layout/activity_local_video_item.xml
@@ -0,0 +1,66 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/yagene/res/layout/activity_login.xml b/app/src/yagene/res/layout/activity_login.xml
new file mode 100644
index 0000000..2fc2a1e
--- /dev/null
+++ b/app/src/yagene/res/layout/activity_login.xml
@@ -0,0 +1,231 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/yagene/res/layout/activity_media_video.xml b/app/src/yagene/res/layout/activity_media_video.xml
new file mode 100644
index 0000000..c376f18
--- /dev/null
+++ b/app/src/yagene/res/layout/activity_media_video.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/yagene/res/layout/activity_modify_camera_name.xml b/app/src/yagene/res/layout/activity_modify_camera_name.xml
new file mode 100644
index 0000000..a754d55
--- /dev/null
+++ b/app/src/yagene/res/layout/activity_modify_camera_name.xml
@@ -0,0 +1,390 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/yagene/res/layout/activity_record_list.xml b/app/src/yagene/res/layout/activity_record_list.xml
new file mode 100644
index 0000000..7dd17e1
--- /dev/null
+++ b/app/src/yagene/res/layout/activity_record_list.xml
@@ -0,0 +1,196 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/yagene/res/layout/activity_record_list_item.xml b/app/src/yagene/res/layout/activity_record_list_item.xml
new file mode 100644
index 0000000..08ab23e
--- /dev/null
+++ b/app/src/yagene/res/layout/activity_record_list_item.xml
@@ -0,0 +1,60 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/yagene/res/layout/activity_recover_sdcard.xml b/app/src/yagene/res/layout/activity_recover_sdcard.xml
new file mode 100644
index 0000000..8168c72
--- /dev/null
+++ b/app/src/yagene/res/layout/activity_recover_sdcard.xml
@@ -0,0 +1,45 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/yagene/res/layout/activity_splash.xml b/app/src/yagene/res/layout/activity_splash.xml
new file mode 100644
index 0000000..b854c9a
--- /dev/null
+++ b/app/src/yagene/res/layout/activity_splash.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/yagene/res/layout/activity_time_out.xml b/app/src/yagene/res/layout/activity_time_out.xml
new file mode 100644
index 0000000..0be4def
--- /dev/null
+++ b/app/src/yagene/res/layout/activity_time_out.xml
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/yagene/res/layout/activity_user_bind.xml b/app/src/yagene/res/layout/activity_user_bind.xml
new file mode 100644
index 0000000..b10013c
--- /dev/null
+++ b/app/src/yagene/res/layout/activity_user_bind.xml
@@ -0,0 +1,68 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/yagene/res/layout/activity_user_login.xml b/app/src/yagene/res/layout/activity_user_login.xml
new file mode 100644
index 0000000..ce9fddc
--- /dev/null
+++ b/app/src/yagene/res/layout/activity_user_login.xml
@@ -0,0 +1,84 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/yagene/res/layout/activity_video_container.xml b/app/src/yagene/res/layout/activity_video_container.xml
new file mode 100644
index 0000000..e3868bf
--- /dev/null
+++ b/app/src/yagene/res/layout/activity_video_container.xml
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/yagene/res/layout/activity_welcome.xml b/app/src/yagene/res/layout/activity_welcome.xml
new file mode 100644
index 0000000..44934e3
--- /dev/null
+++ b/app/src/yagene/res/layout/activity_welcome.xml
@@ -0,0 +1,51 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/yagene/res/layout/city_group.xml b/app/src/yagene/res/layout/city_group.xml
new file mode 100644
index 0000000..0161946
--- /dev/null
+++ b/app/src/yagene/res/layout/city_group.xml
@@ -0,0 +1,39 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/yagene/res/layout/dialog_big_photo.xml b/app/src/yagene/res/layout/dialog_big_photo.xml
new file mode 100644
index 0000000..f64f666
--- /dev/null
+++ b/app/src/yagene/res/layout/dialog_big_photo.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
diff --git a/app/src/yagene/res/layout/dialog_modify_device_password.xml b/app/src/yagene/res/layout/dialog_modify_device_password.xml
new file mode 100644
index 0000000..eac4c5e
--- /dev/null
+++ b/app/src/yagene/res/layout/dialog_modify_device_password.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+
diff --git a/app/src/yagene/res/layout/fragment_media_live.xml b/app/src/yagene/res/layout/fragment_media_live.xml
new file mode 100644
index 0000000..e240148
--- /dev/null
+++ b/app/src/yagene/res/layout/fragment_media_live.xml
@@ -0,0 +1,426 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/yagene/res/layout/fragment_media_record.xml b/app/src/yagene/res/layout/fragment_media_record.xml
new file mode 100644
index 0000000..22c0d41
--- /dev/null
+++ b/app/src/yagene/res/layout/fragment_media_record.xml
@@ -0,0 +1,298 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/yagene/res/layout/fragment_person.xml b/app/src/yagene/res/layout/fragment_person.xml
new file mode 100644
index 0000000..4c6e62a
--- /dev/null
+++ b/app/src/yagene/res/layout/fragment_person.xml
@@ -0,0 +1,938 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/yagene/res/layout/fragment_splash_err.xml b/app/src/yagene/res/layout/fragment_splash_err.xml
new file mode 100644
index 0000000..56967c0
--- /dev/null
+++ b/app/src/yagene/res/layout/fragment_splash_err.xml
@@ -0,0 +1,88 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/yagene/res/layout/fragment_splash_normal.xml b/app/src/yagene/res/layout/fragment_splash_normal.xml
new file mode 100644
index 0000000..301a6fb
--- /dev/null
+++ b/app/src/yagene/res/layout/fragment_splash_normal.xml
@@ -0,0 +1,106 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/yagene/res/layout/fragment_video_live.xml b/app/src/yagene/res/layout/fragment_video_live.xml
new file mode 100644
index 0000000..6058253
--- /dev/null
+++ b/app/src/yagene/res/layout/fragment_video_live.xml
@@ -0,0 +1,249 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/yagene/res/layout/item_ad_pic.xml b/app/src/yagene/res/layout/item_ad_pic.xml
new file mode 100644
index 0000000..a47e8e9
--- /dev/null
+++ b/app/src/yagene/res/layout/item_ad_pic.xml
@@ -0,0 +1,119 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/yagene/res/layout/item_city.xml b/app/src/yagene/res/layout/item_city.xml
new file mode 100644
index 0000000..31df21d
--- /dev/null
+++ b/app/src/yagene/res/layout/item_city.xml
@@ -0,0 +1,44 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/yagene/res/layout/item_container.xml b/app/src/yagene/res/layout/item_container.xml
new file mode 100644
index 0000000..a3dd3f2
--- /dev/null
+++ b/app/src/yagene/res/layout/item_container.xml
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/yagene/res/layout/item_model_exec.xml b/app/src/yagene/res/layout/item_model_exec.xml
new file mode 100644
index 0000000..f3b6c15
--- /dev/null
+++ b/app/src/yagene/res/layout/item_model_exec.xml
@@ -0,0 +1,81 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/yagene/res/layout/item_safe_device_detail.xml b/app/src/yagene/res/layout/item_safe_device_detail.xml
new file mode 100644
index 0000000..be88aff
--- /dev/null
+++ b/app/src/yagene/res/layout/item_safe_device_detail.xml
@@ -0,0 +1,122 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/yagene/res/layout/pop_calendar.xml b/app/src/yagene/res/layout/pop_calendar.xml
new file mode 100644
index 0000000..101d999
--- /dev/null
+++ b/app/src/yagene/res/layout/pop_calendar.xml
@@ -0,0 +1,55 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/yagene/res/layout/widget_common_datepicker.xml b/app/src/yagene/res/layout/widget_common_datepicker.xml
new file mode 100644
index 0000000..f29a74e
--- /dev/null
+++ b/app/src/yagene/res/layout/widget_common_datepicker.xml
@@ -0,0 +1,113 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/yagene/res/layout/widget_common_title.xml b/app/src/yagene/res/layout/widget_common_title.xml
new file mode 100644
index 0000000..518cbc3
--- /dev/null
+++ b/app/src/yagene/res/layout/widget_common_title.xml
@@ -0,0 +1,44 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/yagene/res/menu/main.xml b/app/src/yagene/res/menu/main.xml
new file mode 100644
index 0000000..ce7a68c
--- /dev/null
+++ b/app/src/yagene/res/menu/main.xml
@@ -0,0 +1,7 @@
+
diff --git a/app/src/yagene/res/mipmap-xhdpi/icon_nav_add_black.png b/app/src/yagene/res/mipmap-xhdpi/icon_nav_add_black.png
new file mode 100644
index 0000000..4bd67d1
Binary files /dev/null and b/app/src/yagene/res/mipmap-xhdpi/icon_nav_add_black.png differ
diff --git a/app/src/yagene/res/mipmap-xxhdpi/city1.png b/app/src/yagene/res/mipmap-xxhdpi/city1.png
new file mode 100644
index 0000000..f18717d
Binary files /dev/null and b/app/src/yagene/res/mipmap-xxhdpi/city1.png differ
diff --git a/app/src/yagene/res/mipmap-xxhdpi/city2.png b/app/src/yagene/res/mipmap-xxhdpi/city2.png
new file mode 100644
index 0000000..70504b4
Binary files /dev/null and b/app/src/yagene/res/mipmap-xxhdpi/city2.png differ
diff --git a/app/src/yagene/res/mipmap-xxhdpi/city3.png b/app/src/yagene/res/mipmap-xxhdpi/city3.png
new file mode 100644
index 0000000..78dd04c
Binary files /dev/null and b/app/src/yagene/res/mipmap-xxhdpi/city3.png differ
diff --git a/app/src/yagene/res/mipmap-xxhdpi/city4.png b/app/src/yagene/res/mipmap-xxhdpi/city4.png
new file mode 100644
index 0000000..2a205d5
Binary files /dev/null and b/app/src/yagene/res/mipmap-xxhdpi/city4.png differ
diff --git a/app/src/yagene/res/mipmap-xxhdpi/subject1.png b/app/src/yagene/res/mipmap-xxhdpi/subject1.png
new file mode 100644
index 0000000..de01ce0
Binary files /dev/null and b/app/src/yagene/res/mipmap-xxhdpi/subject1.png differ
diff --git a/app/src/yagene/res/mipmap-xxhdpi/subject2.png b/app/src/yagene/res/mipmap-xxhdpi/subject2.png
new file mode 100644
index 0000000..c3d61d2
Binary files /dev/null and b/app/src/yagene/res/mipmap-xxhdpi/subject2.png differ
diff --git a/app/src/yagene/res/mipmap-xxhdpi/subject3.png b/app/src/yagene/res/mipmap-xxhdpi/subject3.png
new file mode 100644
index 0000000..ae627de
Binary files /dev/null and b/app/src/yagene/res/mipmap-xxhdpi/subject3.png differ
diff --git a/app/src/yagene/res/mipmap-xxhdpi/subject4.png b/app/src/yagene/res/mipmap-xxhdpi/subject4.png
new file mode 100644
index 0000000..47e4fd1
Binary files /dev/null and b/app/src/yagene/res/mipmap-xxhdpi/subject4.png differ
diff --git a/app/src/yagene/res/mipmap-xxhdpi/subject5.png b/app/src/yagene/res/mipmap-xxhdpi/subject5.png
new file mode 100644
index 0000000..f216a60
Binary files /dev/null and b/app/src/yagene/res/mipmap-xxhdpi/subject5.png differ
diff --git a/app/src/yagene/res/mipmap-xxhdpi/vp_ic_full_screen.png b/app/src/yagene/res/mipmap-xxhdpi/vp_ic_full_screen.png
new file mode 100644
index 0000000..6eb712a
Binary files /dev/null and b/app/src/yagene/res/mipmap-xxhdpi/vp_ic_full_screen.png differ
diff --git a/app/src/yagene/res/mipmap-xxhdpi/vp_ic_res_add.png b/app/src/yagene/res/mipmap-xxhdpi/vp_ic_res_add.png
new file mode 100644
index 0000000..b50e921
Binary files /dev/null and b/app/src/yagene/res/mipmap-xxhdpi/vp_ic_res_add.png differ
diff --git a/app/src/yagene/res/mipmap-xxhdpi/vp_ic_stop_play.png b/app/src/yagene/res/mipmap-xxhdpi/vp_ic_stop_play.png
new file mode 100644
index 0000000..390dc99
Binary files /dev/null and b/app/src/yagene/res/mipmap-xxhdpi/vp_ic_stop_play.png differ
diff --git a/app/src/yagene/res/mipmap-xxxhdpi/app_lan.png b/app/src/yagene/res/mipmap-xxxhdpi/app_lan.png
new file mode 100644
index 0000000..12e5489
Binary files /dev/null and b/app/src/yagene/res/mipmap-xxxhdpi/app_lan.png differ
diff --git a/app/src/yagene/res/values-en/strings.xml b/app/src/yagene/res/values-en/strings.xml
new file mode 100644
index 0000000..a39a654
--- /dev/null
+++ b/app/src/yagene/res/values-en/strings.xml
@@ -0,0 +1,151 @@
+
+
+
+ AndroidOpenDemo
+ Settings
+
+
+ admin login
+ user login
+ please enter appid and appsecret!note: the developers can get appid and appsecret by browsing the website.
+ loading
+ SMS has been sent to the phone
+ SMS sent failed
+ please enter a valid phone number
+ user bind
+ The phone number has been bound to this application.please click device list
+ The phone number has not been bound to the application.please bind first!
+
+ device list
+ device operation
+ device add
+ wifi config......
+ Warning
+ Delete this device?
+ No shared device
+ No authorized device
+
+
+ "Notice"
+ Click OK to config referring the device guide
+
+
+ local video
+ cloud video
+
+
+ alarm message list
+ Warning
+ Delete this message?
+ Input key
+
+
+ play live video
+ play record video
+ flow
+ bit rate
+ M
+ K/S
+ 00:00:00
+ disconnected from the network,please check it
+
+ the device does not support talking
+ start talking
+ close talking
+ loading or talking,sound could not open
+ sound open
+ sound close
+ screenshot success
+ screenshot failed
+ record successed
+ record failed
+ start recording
+ ready to talk
+ open talking failed
+ play failed!please check network and try !
+ seek failed
+ data loading
+ play video failed
+ switch to SD
+ switch to HD
+ startTime-hour:
+ No permission to write sd card! recording and capturing could not be used
+ please input sms code
+ get sms code
+ sms code has been sent to phone
+ bind
+ please input your phone number
+ please a valid phone number
+ enter device list
+ alarm time
+ please input device code
+ wifi ssid:
+ wifi password
+ alarm plan
+ download
+ cloud storage
+ cloud upgrade
+ upgrade
+ cancel
+ please select day
+ query
+ year
+ month
+ day
+ Device Password
+ modify
+
+
+ OK
+ Cancel
+
+
+ sms code can not be empty
+
+ cloud update success
+ cloud update failed
+ modify alarm plan success
+ modify alarm plan failed
+ storage strategy update success
+ storage strategy update failed
+
+ query alarm message failed, errorcode:
+ delete alarm message failed
+ load failed
+
+ no device
+ query device list failed
+ delete success
+ this device has no ptz ability
+ device not exist
+ get initialize info failed
+
+ SN/Password can not be empty!
+ SN can not be empty!
+ already binded by yourself
+ already binded by others
+ config timeout
+ Input device key
+ Input safe code
+ Please Input Device Key
+ Please Input Device Init Key
+
+ location service has been forbidden, go to permisson manager to open
+
+ device/record not exist
+ no I frame
+
+ download failed/error key
+ download end
+ only play/download one by one
+ query record failed, errorcode:
+
+ errorcode
+ business errorcode
+ HTTP errorcode
+ inner errorcode
+ error msg
+
+ new password
+ old password
+
diff --git a/app/src/yagene/res/values/array.xml b/app/src/yagene/res/values/array.xml
new file mode 100644
index 0000000..7b19524
--- /dev/null
+++ b/app/src/yagene/res/values/array.xml
@@ -0,0 +1,10 @@
+
+
+ - 8
+ - 8
+ - 8
+ - 4
+ - 4
+ - 4
+
+
diff --git a/app/src/yagene/res/values/attrs.xml b/app/src/yagene/res/values/attrs.xml
new file mode 100644
index 0000000..1598846
--- /dev/null
+++ b/app/src/yagene/res/values/attrs.xml
@@ -0,0 +1,38 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/yagene/res/values/colors.xml b/app/src/yagene/res/values/colors.xml
new file mode 100644
index 0000000..284397d
--- /dev/null
+++ b/app/src/yagene/res/values/colors.xml
@@ -0,0 +1,22 @@
+
+
+
+ #efeff4
+ #000000
+
+ #FFFFFF
+ #CFCFCF
+ #505166
+
+ #42CFBE
+ #57B1CC
+ #B888E5
+ #F695A8
+ #F9D461
+
+
+ #398DEE
+ #333333
+ #398DEE
+ #398dee//填写框文字颜色
+
diff --git a/app/src/yagene/res/values/dimens.xml b/app/src/yagene/res/values/dimens.xml
new file mode 100644
index 0000000..baa0459
--- /dev/null
+++ b/app/src/yagene/res/values/dimens.xml
@@ -0,0 +1,12 @@
+
+
+
+ 0.5dp
+
+
+ 10sp
+ 12sp
+ 15sp
+ 20sp
+
+
diff --git a/app/src/yagene/res/values/ids.xml b/app/src/yagene/res/values/ids.xml
new file mode 100644
index 0000000..bef5ac3
--- /dev/null
+++ b/app/src/yagene/res/values/ids.xml
@@ -0,0 +1,8 @@
+
+
+
+
\ No newline at end of file
diff --git a/app/src/yagene/res/values/spinner_data.xml b/app/src/yagene/res/values/spinner_data.xml
new file mode 100644
index 0000000..84bcbd7
--- /dev/null
+++ b/app/src/yagene/res/values/spinner_data.xml
@@ -0,0 +1,91 @@
+
+
+
+ - 00
+ - 01
+ - 02
+ - 03
+ - 04
+ - 05
+ - 06
+ - 07
+ - 08
+ - 09
+ - 10
+ - 11
+ - 12
+ - 13
+ - 14
+ - 15
+ - 16
+ - 17
+ - 18
+ - 19
+ - 20
+ - 21
+ - 22
+ - 23
+
+
+ - 00
+ - 01
+ - 02
+ - 03
+ - 04
+ - 05
+ - 06
+ - 07
+ - 08
+ - 09
+ - 10
+ - 11
+ - 12
+ - 13
+ - 14
+ - 15
+ - 16
+ - 17
+ - 18
+ - 19
+ - 20
+ - 21
+ - 22
+ - 23
+ - 24
+ - 25
+ - 26
+ - 27
+ - 28
+ - 29
+ - 30
+ - 31
+ - 32
+ - 33
+ - 34
+ - 35
+ - 36
+ - 37
+ - 38
+ - 39
+ - 40
+ - 41
+ - 42
+ - 43
+ - 44
+ - 45
+ - 46
+ - 47
+ - 48
+ - 49
+ - 50
+ - 51
+ - 52
+ - 53
+ - 54
+ - 55
+ - 56
+ - 57
+ - 58
+ - 59
+
+
diff --git a/app/src/yagene/res/values/strings.xml b/app/src/yagene/res/values/strings.xml
new file mode 100644
index 0000000..c0b82af
--- /dev/null
+++ b/app/src/yagene/res/values/strings.xml
@@ -0,0 +1,8 @@
+
+ 雅今智慧生活
+ 深圳市雅今实业有限公司 版权所有
+ 关于
+ 2017-2022 yagene industry. All Rights Reserved
+ 凡是通过雅今官方商城购买的产品,我们将严格按照国家三包政策,对所售产品提供7天(含)退货,15天(含)因质量问题换新服务。注意事项:1)客服初审核通过,仅表示雅今受理您的退换货申请,但不代表同意您的退换货,最终以商品检测报告为准,以此来判断您是否符合退换货条件。2)若您的申请为“审核不通过”,具体原因将会显示在您的退换货申请详情页面,若有疑问,可与雅今客服联系。3)签收时,请务必要求投递员在场共同检验包裹,若发现物流损坏、缺件或发错货等情况,请当场拒收并要求快递员存证,同时请您拍照存证,并打电话服务提出换货申请。4)若已签收,需要提供物流公司开具的凭据,并在退换货申请受理之后提交附件。若未提供物流开具的证明,公司无法处理退款或换货。
+ 您好,雅今产品支持七天退货15天换货服务;在您收到商品后,如有任何原因需要进行退换货,打客户服务热线进行退货申请;请在包裹内留下纸条,写上您的订单号、联系方式及退货理由,以便我们及时确认完成退款,谢谢您的配合;请确保配件完整并且无人为破坏的情况(如开过发票的需要和发票一块寄回),非产品质量问题的退货,导致的退货,寄回的运费需您自行承担,因产品质量问题的退货,财务将给您报销寄回的快递费(最高22元)运费您先垫付,不支持到付件哦,我们收到货后会尽快为您办理,请耐心等待;祝您生活愉快!
+
diff --git a/app/src/yagene/res/values/styles.xml b/app/src/yagene/res/values/styles.xml
new file mode 100644
index 0000000..dfbdec1
--- /dev/null
+++ b/app/src/yagene/res/values/styles.xml
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
diff --git a/app/src/yagene/res/values/wheel__attrs.xml b/app/src/yagene/res/values/wheel__attrs.xml
new file mode 100644
index 0000000..db64ba7
--- /dev/null
+++ b/app/src/yagene/res/values/wheel__attrs.xml
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/yonsz/java/com/yonsz.z1/aboutversion/AboutVersionActivity.java b/app/src/yonsz/java/com/yonsz.z1/aboutversion/AboutVersionActivity.java
new file mode 100644
index 0000000..c3d984b
--- /dev/null
+++ b/app/src/yonsz/java/com/yonsz.z1/aboutversion/AboutVersionActivity.java
@@ -0,0 +1,335 @@
+package com.yonsz.z1.mine.aboutversion;
+
+import android.content.Intent;
+import android.graphics.Bitmap;
+import android.graphics.BitmapFactory;
+import android.net.Uri;
+import android.os.Bundle;
+import android.os.Message;
+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 android.widget.Toast;
+
+import com.alibaba.fastjson.JSON;
+import com.tencent.mm.opensdk.modelbase.BaseReq;
+import com.tencent.mm.opensdk.modelbase.BaseResp;
+import com.tencent.mm.opensdk.modelmsg.SendMessageToWX;
+import com.tencent.mm.opensdk.modelmsg.WXImageObject;
+import com.tencent.mm.opensdk.modelmsg.WXMediaMessage;
+import com.tencent.mm.opensdk.openapi.IWXAPI;
+import com.tencent.mm.opensdk.openapi.IWXAPIEventHandler;
+import com.tencent.mm.opensdk.openapi.WXAPIFactory;
+import com.yonsz.z1.R;
+import com.yonsz.z1.activity.BaseActivity;
+import com.yonsz.z1.database.entity.VersionEntity;
+import com.yonsz.z1.difference.DifferConstans;
+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.DeviceBottomDialog;
+import com.yonsz.z1.mine.aboutversion.feature.Callback;
+import com.yonsz.z1.mine.aboutversion.util.UpdateAppUtils;
+import com.yonsz.z1.mine.feedback.FeedBackActivity;
+import com.yonsz.z1.net.Constans;
+import com.yonsz.z1.net.NetWorkUrl;
+import com.yonsz.z1.net.NetWorkUtil;
+import com.yonsz.z1.utils.AppGenerUtil;
+import com.yonsz.z1.utils.SharedpreferencesUtil;
+import com.yonsz.z1.view.TitleView;
+
+import java.util.HashMap;
+
+import static com.tencent.mm.opensdk.modelmsg.SendMessageToWX.Req.WXSceneSession;
+import static com.tencent.mm.opensdk.modelmsg.SendMessageToWX.Req.WXSceneTimeline;
+import static com.yonsz.z1.UniKongApp.getActivity;
+import static com.yonsz.z1.difference.DifferConstans.WX_APP_ID;
+import static com.yonsz.z1.difference.DifferConstans.versionUrl;
+import static com.yonsz.z1.fragment.person.PersonFragment.bmpToByteArray;
+import static com.yonsz.z1.mine.aboutversion.util.UpdateAppUtils.DOWNLOAD_BY_APP;
+import static com.yonsz.z1.mine.aboutversion.util.UpdateAppUtils.DOWNLOAD_BY_BROWSER;
+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.version4.MainActivity4.versionId;
+
+/**
+ * Created by Administrator on 2017/5/26.
+ */
+public class AboutVersionActivity extends BaseActivity implements IWXAPIEventHandler {
+ private TextView tv_version;
+ private TextView tv_public_goto;
+ private ImageView iv_code;
+ private IWXAPI iwxapi;
+ private RelativeLayout scoreRl, versionDecalreRl, versionUpdateRl;
+ private TextView serviceHotlineTv;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_about_version);
+ iwxapi = WXAPIFactory.createWXAPI(this, WX_APP_ID, false);
+ iwxapi.handleIntent(getIntent(), this);
+ iwxapi.registerApp(WX_APP_ID);
+
+ TitleView titleView = (TitleView) findViewById(R.id.title_about_version);
+ titleView.setHead(R.string.about_version);
+ titleView.setTitleListener(new OnTitleItemClickListener() {
+ @Override
+ public void onBack() {
+ finish();
+ }
+
+ @Override
+ public void onFunction() {
+
+ }
+
+ @Override
+ public void onFunctionText() {
+
+ }
+ });
+ scoreRl = (RelativeLayout) findViewById(R.id.rl_to_score);
+ serviceHotlineTv = (TextView) findViewById(R.id.tv_customer_service_hotline);
+ versionDecalreRl = (RelativeLayout) findViewById(R.id.rl_version_declare);
+ versionUpdateRl = (RelativeLayout) findViewById(R.id.rl_version_update);
+ iv_code = (ImageView) findViewById(R.id.iv_code);
+ tv_public_goto = (TextView) findViewById(R.id.tv_public_goto);
+ tv_version = (TextView) findViewById(R.id.tv_version);
+ tv_version.setText("V" + AppGenerUtil.getPackageVersion(this));
+
+ checkUpdate(1);
+
+
+ iv_code.setOnClickListener(new NoDoubleClickListener() {
+ @Override
+ protected void onNoDoubleClick(View v) {
+ showDioalog();
+ }
+ });
+ tv_public_goto.setOnClickListener(new NoDoubleClickListener() {
+ @Override
+ public void onNoDoubleClick(View v) {
+ super.onClick(v);
+ showDioalog();
+ }
+ });
+ scoreRl.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ /*ArrayList strings = ScoreUtils.SelectedInstalledAPPs(getApplicationContext(), ScoreUtils.InstalledAPPs(getApplicationContext()));
+ ScoreUtils.launchAppDetail(AboutVersionActivity.this, "com.yonsz.z1", strings.get(0));*/
+
+ startActivity(new Intent(AboutVersionActivity.this, FeedBackActivity.class));
+ }
+ });
+ versionDecalreRl.setOnClickListener(new NoDoubleClickListener() {
+ @Override
+ protected void onNoDoubleClick(View v) {
+ Intent intent = new Intent(AboutVersionActivity.this, VersionDecalreActivity.class);
+ intent.putExtra("activity", "AboutVersionActivity");
+ startActivity(intent);
+ }
+ });
+ versionUpdateRl.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ updataUserState();
+ }
+ });
+ serviceHotlineTv.setOnClickListenernew NoDoubleClickListener() {
+ @Override
+ protected void onNoDoubleClick(View v) {
+ callHotline();
+ }
+ });
+ }
+
+ private void callHotline() {
+ ConfirmDialog dialog = new ConfirmDialog(getActivity(), new Callback() {
+ @Override
+ public void callback(int position) {
+ switch (position) {
+ case 0:
+ break;
+ case 1:
+ callPhone("4001365663");
+ break;
+ }
+ }
+ });
+ dialog.setContent("400 136 5663");
+ dialog.setCancleBtn(R.string.cancel);
+ dialog.setSureBtn(R.string.call);
+ dialog.setCancelable(false);
+ dialog.show();
+ }
+
+ public void callPhone(String phoneNum) {
+ SoulPermission.getInstance().checkAndRequestPermissions(
+ Permissions.build(Manifest.permission.CALL_PHONE,
+ Manifest.permission.READ_PHONE_STATE,
+ 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) {
+ Intent intent = new Intent(Intent.ACTION_CALL);
+ Uri data = Uri.parse("tel:" + phoneNum);
+ intent.setData(data);
+ if (ActivityCompat.checkSelfPermission(AboutVersionActivity.this, Manifest.permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED) {
+ return;
+ }
+ startActivity(intent);
+ }
+
+ @Override
+ public void onPermissionDenied(Permission[] refusedPermissions) {
+ ToastUtil.show(AboutVersionActivity.this, "请开启权限");
+ }
+ });
+ }
+
+ private void checkUpdate(int tag) {
+ UpdateAppUtils.from(this)
+ .checkBy(UpdateAppUtils.CHECK_BY_VERSION_NAME)
+ .serverVersionName(versionId)
+ .serverVersionCode(5)
+ .apkPath(versionUrl)
+ .downloadBy(DOWNLOAD_BY_APP)
+ .isForce(false)
+ .update(tag);
+ }
+
+ private void showDioalog() {
+ if (!iwxapi.isWXAppInstalled()) {
+ Toast.makeText(this, getString(R.string.not_installed_Wechat), Toast.LENGTH_SHORT).show();
+ return;
+ }
+ //初始化一个WXImageObject对象
+ Bitmap thumb = BitmapFactory.decodeResource(getResources(), R.drawable.pic_public_code);
+ WXImageObject imageObject = new WXImageObject(thumb);
+ WXMediaMessage msg = new WXMediaMessage(); //这个对象是用来包裹发送信息的对象
+ msg.mediaObject = imageObject;
+ //设置缩略图
+ Bitmap thumbBitmap = Bitmap.createScaledBitmap(thumb, 60, 60, true);
+ msg.thumbData = bmpToByteArray(thumbBitmap, true);
+ final SendMessageToWX.Req req = new SendMessageToWX.Req(); //创建一个请求对象
+ req.message = msg; //把msg放入请求对象中
+ req.transaction = buildTransaction("Req");
+
+
+ /*WXWebpageObject webpageObject = new WXWebpageObject();
+ webpageObject.webpageUrl = "http://a.app.qq.com/o/simple.jsp?pkgname=com.yonsz.z1";
+ WXMediaMessage msg = new WXMediaMessage(webpageObject);
+ msg.title = "Unikong";
+ msg.description = "欢迎下载『语音遥控器APP』";
+ Bitmap thumb = BitmapFactory.decodeResource(getResources(), R.mipmap.app_lan);
+ msg.thumbData = bmpToByteArray(thumb, true);
+ final SendMessageToWX.Req req = new SendMessageToWX.Req();
+ req.transaction = buildTransaction("Req");
+ req.message = msg;*/
+ //分享到微信好友或者朋友圈
+ // startActivity(new Intent(getActivity(), WXEntryActivity.class));
+ DeviceBottomDialog dialog2 = new DeviceBottomDialog(this, new Callback() {
+ @Override
+ public void callback(int position1) {
+ switch (position1) {
+ case 0:
+ //取消
+ break;
+ case 1:
+ //微信朋友圈
+ req.scene = WXSceneTimeline;
+ iwxapi.sendReq(req);
+ break;
+ case 2:
+ //重新命名
+ break;
+ case 3:
+ //微信好友
+ req.scene = WXSceneSession;
+ iwxapi.sendReq(req);
+ break;
+ case 4:
+ break;
+ }
+ }
+ });
+ dialog2.setContent();
+ dialog2.setTop(getString(R.string.WeChat_friends));
+ dialog2.setBottom(getString(R.string.WeChat_friends_circle));
+ 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();
+ }
+
+ private String buildTransaction(final String type) {
+ return (type == null) ? String.valueOf(System.currentTimeMillis()) : type + System.currentTimeMillis();
+ }
+
+
+ @Override
+ public void callBackUiThread(Message msg) {
+ switch (msg.what) {
+ case UPDATE_STATE_SUCCESS:
+ VersionEntity.ObjEntity versionEntity = (VersionEntity.ObjEntity) msg.obj;
+ versionId = versionEntity.getVersionInfo().getVersionId().substring(2, 7);
+ versionUrl = versionEntity.getVersionInfo().getServiceUrl();
+ checkUpdate(2);
+ break;
+ }
+ }
+
+ @Override
+ public void onReq(BaseReq baseReq) {
+
+ }
+
+ @Override
+ public void onResp(BaseResp baseResp) {
+
+ }
+
+ //上传用户经纬度信息
+ private void updataUserState() {
+ NetWorkUtil util = NetWorkUtil.instans();
+ HashMap map = new HashMap<>();
+ map.put("userId", SharedpreferencesUtil.get(Constans.USERPHONE, ""));
+ util.requestPostByAsynewApi(NetWorkUrl.UPDATE_USERINFO_STATE, map, new NetWorkUtil.ReqCallBack() {
+ @Override
+ public void onSuccess(String respone) {
+ Log.i("updataUserState", "onSuccess: " + respone);
+ VersionEntity entity = JSON.parseObject(respone, VersionEntity.class);
+ 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);
+ }
+ });
+ }
+}
diff --git a/app/src/yonsz/java/com/yonsz.z1/difference/DifferConstans.java b/app/src/yonsz/java/com/yonsz.z1/difference/DifferConstans.java
new file mode 100644
index 0000000..306226c
--- /dev/null
+++ b/app/src/yonsz/java/com/yonsz.z1/difference/DifferConstans.java
@@ -0,0 +1,15 @@
+package com.yonsz.z1.difference;
+
+/**
+ * Created by Administrator on 2018/6/21.
+ */
+
+public class DifferConstans {
+ //后台版本控制
+ public static final String VERSION_S = "v1";
+ public static final String APPID_S = "1101";
+ public static final String APPSECRET_S = "123456";
+ public static final String APPID_S_VOICE = "110101";
+ public static final String WX_APP_ID = "wx93fc1edef0e5fc70";
+ public static String versionUrl = "http://a.app.qq.com/o/simple.jsp?pkgname=com.yonsz.z1";
+}
diff --git a/app/src/yonsz/java/com/yonsz.z1/login/LoginActivity.java b/app/src/yonsz/java/com/yonsz.z1/login/LoginActivity.java
new file mode 100644
index 0000000..aa1d204
--- /dev/null
+++ b/app/src/yonsz/java/com/yonsz.z1/login/LoginActivity.java
@@ -0,0 +1,482 @@
+package com.yonsz.z1.login;
+
+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.Button;
+import android.widget.EditText;
+import android.widget.ImageView;
+import android.widget.LinearLayout;
+import android.widget.RelativeLayout;
+import android.widget.TextView;
+import android.widget.Toast;
+
+import com.alibaba.fastjson.JSON;
+import com.tencent.mm.opensdk.modelbase.BaseReq;
+import com.tencent.mm.opensdk.modelbase.BaseResp;
+import com.tencent.mm.opensdk.modelmsg.SendAuth;
+import com.tencent.mm.opensdk.openapi.IWXAPI;
+import com.tencent.mm.opensdk.openapi.IWXAPIEventHandler;
+import com.tencent.mm.opensdk.openapi.WXAPIFactory;
+import com.yonsz.z1.R;
+import com.yonsz.z1.activity.BaseActivity;
+import com.yonsz.z1.database.entity.ResponeEntity;
+import com.yonsz.z1.database.entity.TokenEntity;
+import com.yonsz.z1.database.entity.entitya2.WxLoginEntity;
+import com.yonsz.z1.database.entity.entitya2.WxLoginEvent;
+import com.yonsz.z1.listener.OnTitleItemClickListener;
+import com.yonsz.z1.login.forgetpw.ForgetPWActivity;
+import com.yonsz.z1.login.register.RegisterActivity;
+import com.yonsz.z1.login.register.WxRegisterActivity;
+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.utils.VerificationUtils;
+import com.yonsz.z1.version4.MainActivity4;
+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.clean_password;
+import static com.yonsz.z1.R.id.iv_clean_phone;
+import static com.yonsz.z1.difference.DifferConstans.APPID_S;
+import static com.yonsz.z1.difference.DifferConstans.APPSECRET_S;
+import static com.yonsz.z1.difference.DifferConstans.WX_APP_ID;
+import static com.yonsz.z1.net.Constans.FAN_LEARN_WHAT;
+import static com.yonsz.z1.net.Constans.GET_PHONE_AREA;
+import static com.yonsz.z1.net.Constans.GET_TOKEN_FAIL;
+import static com.yonsz.z1.net.Constans.LOGIN_FAIL;
+import static com.yonsz.z1.net.Constans.LOGIN_SUCCESS;
+import static com.yonsz.z1.net.Constans.WX_LOGIN_FAIL;
+import static com.yonsz.z1.net.Constans.WX_LOGIN_REGISTER;
+import static com.yonsz.z1.net.Constans.WX_LOGIN_SUCCESS;
+
+/**
+ * Created by Administrator on 2017/5/16.
+ */
+
+public class LoginActivity extends BaseActivity implements IWXAPIEventHandler {
+ private TitleView mTitle;
+ private Button mLogin;
+ private TextView mRegister;
+ private TextView mForgetPw;
+ private EditText mUserName;
+ private EditText mPassWord;
+ private ImageView cleanPhoneIv;
+ private ImageView cleanPasswordIv;
+ private LoadingDialog mLoadingDialog;
+ private RelativeLayout rl_weixin_login;
+ private LinearLayout phoneAreaLl;
+
+ private IWXAPI iwxapi;
+ private TextView phoneArea;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_login);
+ initView();
+ initListener();
+
+ iwxapi = WXAPIFactory.createWXAPI(this, WX_APP_ID, true);
+ iwxapi.handleIntent(this.getIntent(), this);
+ iwxapi.registerApp(WX_APP_ID);
+ if (TextUtils.isEmpty(SharedpreferencesUtil.get(Constans.SEESSIONID, ""))) {
+ getToken();
+ }
+ }
+
+ private void getToken() {
+ NetWorkUtil util = NetWorkUtil.instans();
+ HashMap map = new HashMap<>();
+ map.put("appId", APPID_S);
+ map.put("appSecret", APPSECRET_S);
+ util.requestPostByAsyn(NetWorkUrl.GET_TOKEN, map, new NetWorkUtil.ReqCallBack() {
+ @Override
+ public void onSuccess(String respone) {
+ Log.i("getToken", "onSuccess: " + respone);
+ TokenEntity entity = JSON.parseObject(respone, TokenEntity.class);
+ SharedpreferencesUtil.save(Constans.TOKENID, entity.getObj().getToken().toString().trim());
+ }
+
+ @Override
+ public void onFail(String message) {
+ Log.i("getToken", "onSuccess: " + message);
+ Message msg = mHandler.obtainMessage(GET_TOKEN_FAIL);
+ msg.obj = message;
+ mHandler.sendMessage(msg);
+ }
+ });
+ }
+
+ @Override
+ public boolean enableSliding() {
+ return false;
+ }
+
+ public void onEventMainThread(WxLoginEvent event) {
+ String msg = event.getMsg();
+ Log.e("nettyUtil", msg);
+ Message message = new Message();
+ message.what = FAN_LEARN_WHAT;
+ message.obj = msg;
+ mHandler.sendMessage(message);
+ }
+
+
+ private void initView() {
+ phoneArea = (TextView) findViewById(R.id.tv_phone_area);
+ phoneAreaLl = (LinearLayout) findViewById(R.id.ll_phone_area);
+ cleanPhoneIv = (ImageView) findViewById(iv_clean_phone);
+ cleanPasswordIv = (ImageView) findViewById(clean_password);
+ mUserName = (EditText) findViewById(R.id.edit_username);
+ mUserName.setText(SharedpreferencesUtil.get(Constans.USERPHONE, ""));
+ if (!TextUtils.isEmpty(mUserName.getText().toString())) {
+ cleanPhoneIv.setVisibility(View.VISIBLE);
+ }
+ mPassWord = (EditText) findViewById(R.id.edit_pw);
+ mLogin = (Button) findViewById(R.id.bt_sure);
+ mLogin.setBackgroundDrawable(getResources().getDrawable(R.drawable.btn_round_9cc6f6));
+ mRegister = (TextView) findViewById(R.id.tv_register);
+ mForgetPw = (TextView) findViewById(R.id.txt_forget_pw);
+ rl_weixin_login = (RelativeLayout) findViewById(R.id.rl_weixin_login);
+ mLoadingDialog = new LoadingDialog(this);
+ mTitle = (TitleView) findViewById(R.id.title_login);
+ mTitle.setHead(R.string.login);
+ mTitle.setHeadBackGone();
+ mTitle.setHeadFuntionTxt(" ");
+ mTitle.setTitleListener(new OnTitleItemClickListener() {
+ @Override
+ public void onBack() {
+
+ }
+
+ @Override
+ public void onFunction() {
+ }
+
+ @Override
+ public void onFunctionText() {
+ }
+ });
+ }
+
+ private void initListener() {
+ rl_weixin_login.setOnClickListener(this);
+ mLogin.setOnClickListener(this);
+ mRegister.setOnClickListener(this);
+ mForgetPw.setOnClickListener(this);
+ cleanPasswordIv.setOnClickListener(this);
+ cleanPhoneIv.setOnClickListener(this);
+ phoneAreaLl.setOnClickListener(this);
+ mUserName.addTextChangedListener(new TextWatcher() {
+ @Override
+ public void beforeTextChanged(CharSequence s, int start, int count, int after) {
+
+ }
+
+ @Override
+ public void onTextChanged(CharSequence s, int start, int before, int count) {
+ int i = s.length();
+ if (i == 0 || TextUtils.isEmpty(mPassWord.getText())) {
+ mLogin.setBackgroundDrawable(getResources().getDrawable(R.drawable.btn_round_9cc6f6));
+ mLogin.setEnabled(false);
+ } else {
+ mLogin.setBackgroundDrawable(getResources().getDrawable(R.drawable.btn_round_398dee));
+ mLogin.setEnabled(true);
+ }
+ }
+
+ @Override
+ public void afterTextChanged(Editable s) {
+ if (!TextUtils.isEmpty(s) && cleanPhoneIv.getVisibility() == View.GONE) {
+ cleanPhoneIv.setVisibility(View.VISIBLE);
+ } else if (TextUtils.isEmpty(s)) {
+ cleanPhoneIv.setVisibility(View.GONE);
+ }
+ }
+ });
+ mPassWord.addTextChangedListener(new TextWatcher() {
+ @Override
+ public void beforeTextChanged(CharSequence s, int start, int count, int after) {
+
+ }
+
+ @Override
+ public void onTextChanged(CharSequence s, int start, int before, int count) {
+ int i = s.length();
+ if (i == 0 || TextUtils.isEmpty(mUserName.getText())) {
+ mLogin.setBackgroundDrawable(getResources().getDrawable(R.drawable.btn_round_9cc6f6));
+ mLogin.setEnabled(false);
+ } else {
+ mLogin.setBackgroundDrawable(getResources().getDrawable(R.drawable.btn_round_398dee));
+ mLogin.setEnabled(true);
+ }
+ }
+
+ @Override
+ public void afterTextChanged(Editable s) {
+ if (!TextUtils.isEmpty(s) && cleanPasswordIv.getVisibility() == View.GONE) {
+ cleanPasswordIv.setVisibility(View.VISIBLE);
+ } else if (TextUtils.isEmpty(s)) {
+ cleanPasswordIv.setVisibility(View.GONE);
+ }
+ if (s.toString().isEmpty())
+ return;
+ if (!s.toString().matches("[A-Za-z0-9]+")) {
+ String temp = s.toString();
+ Toast.makeText(LoginActivity.this, R.string.Enter_a_number, Toast.LENGTH_SHORT).show();
+ s.delete(temp.length() - 1, temp.length());
+ mPassWord.setSelection(s.length());
+
+ }
+ }
+ });
+ }
+
+ @Override
+ public void onClick(View v) {
+ super.onClick(v);
+ switch (v.getId()) {
+ case R.id.bt_sure:
+ if (DensityUtil.isNetworkConnected(this)) {
+ login();
+ } else {
+ ToastUtil.show(this, R.string.no_network_connection);
+ }
+ break;
+ case R.id.tv_register:
+ startActivity(new Intent(LoginActivity.this, RegisterActivity.class));
+ break;
+ case R.id.txt_forget_pw:
+ Intent intent = new Intent(LoginActivity.this, ForgetPWActivity.class);
+ intent.putExtra("tag", "LoginActivity");
+ startActivity(intent);
+ break;
+ case R.id.iv_clean_phone:
+ mUserName.setText("");
+ break;
+ case R.id.clean_password:
+ mPassWord.setText("");
+ break;
+ case R.id.rl_weixin_login:
+ if (!iwxapi.isWXAppInstalled()) {
+ Toast.makeText(this, getString(R.string.not_installed_Wechat), Toast.LENGTH_SHORT).show();
+ return;
+ }
+ wxLogin();
+ break;
+ case R.id.ll_phone_area:
+ Intent intent1 = new Intent(LoginActivity.this, PhoneAreaActivity.class);
+ intent1.putExtra("type", "login");
+ startActivityForResult(intent1, GET_PHONE_AREA);
+ break;
+ }
+ }
+
+ private void wxLogin() {
+ SendAuth.Req req1 = new SendAuth.Req();
+ req1.scope = "snsapi_userinfo";
+ req1.state = "wechat_sdk_demo_test";
+ iwxapi.sendReq(req1);
+ }
+
+ private void login() {
+ String name = mUserName.getText().toString();
+ String phoneCode = phoneArea.getText().toString();
+ SharedpreferencesUtil.save(Constans.USERPHONE, mUserName.getText().toString());
+ if (!VerificationUtils.isMobile(name.trim())) {
+ ToastUtil.show(this, R.string.phone_error);
+ return;
+ }
+ String password = mPassWord.getText().toString();
+ if (TextUtils.isEmpty(password.trim()) || password.length() < 6) {
+ ToastUtil.show(this, R.string.password_error);
+ return;
+ }
+ NetWorkUtil util = NetWorkUtil.instans();
+ HashMap map = new HashMap<>();
+ // mobileLogin=true&isValidatjeesiteLogin=false&username=admin&password=admin
+ map.put("telAreaCode", phoneCode.substring(phoneCode.indexOf("+") + 1, phoneCode.length()));
+ map.put("mobileLogin", "true");
+ map.put("ismobile", "true");
+ map.put("isValidatjeesiteLogin", "false");
+ map.put("username", name);
+ map.put("password", password);
+ mLoadingDialog.show();
+ util.requestPostByAsyne(NetWorkUrl.LOGIN_URL, map, new NetWorkUtil.ReqCallBack() {
+ @Override
+ public void onSuccess(String respone) {
+ ResponeEntity entity = JSON.parseObject(respone, ResponeEntity.class);
+ Log.i("login111", "onSuccess: " + respone);
+ if (1 == entity.getFlag()) {
+ Message msg = mHandler.obtainMessage(LOGIN_SUCCESS);
+ msg.obj = entity;
+ mHandler.sendMessage(msg);
+ } else {
+ Message msg = mHandler.obtainMessage(LOGIN_FAIL);
+ msg.obj = entity.getMsg();
+ mHandler.sendMessage(msg);
+ }
+ }
+
+ @Override
+ public void onFail(String message) {
+ Message msg = mHandler.obtainMessage(LOGIN_FAIL);
+ msg.obj = message;
+ mHandler.sendMessage(msg);
+ }
+ });
+ }
+
+ @Override
+ public void callBackUiThread(Message msg) {
+ mLoadingDialog.dismiss();
+ switch (msg.what) {
+ case LOGIN_FAIL:
+ Log.i("login111", "LoginActivity callBackUiThread()" + msg.obj.toString());
+ ToastUtil.show(this, (String) msg.obj);
+ break;
+ case LOGIN_SUCCESS:
+ ResponeEntity entity = (ResponeEntity) msg.obj;
+ // ToastUtil.show(this, entity.getMsg());
+ Toast.makeText(LoginActivity.this, R.string.login_success, Toast.LENGTH_SHORT).show();
+ SharedpreferencesUtil.save(Constans.SEESSIONID, entity.getObj().getLogininfo().getSessionId());
+ SharedpreferencesUtil.save(Constans.USERID, entity.getObj().getUser().getId());
+ SharedpreferencesUtil.save(Constans.USERNAME, entity.getObj().getUser().getName());
+ SharedpreferencesUtil.save(Constans.PASSWORD, mPassWord.getText().toString());
+ boolean isSetting = TextUtils.isEmpty(SharedpreferencesUtil.
+ get(SharedpreferencesUtil.get(Constans.USERID, ""), ""));
+ startActivity(new Intent(this, MainActivity4.class));
+ finish();
+ /*if (isSetting) {
+ Intent intent = new Intent(this, SetGestureCodeActivity.class);
+ intent.putExtra("isset", true);
+ intent.putExtra("SEESSIONID", entity.getObj().getLogininfo().getSessionId());
+ startActivity(intent);
+
+ } else {
+ startActivity(new Intent(this, MainActivity.class));
+ }*/
+ break;
+ case WX_LOGIN_SUCCESS:
+ WxLoginEntity wxLoginEntity = (WxLoginEntity) msg.obj;
+ Toast.makeText(LoginActivity.this, R.string.login_success, Toast.LENGTH_SHORT).show();
+ SharedpreferencesUtil.save(Constans.USERPHONE, wxLoginEntity.getObj().getUserInfo().getLoginName());
+ SharedpreferencesUtil.save(Constans.SEESSIONID, wxLoginEntity.getObj().getSession());
+ SharedpreferencesUtil.save(Constans.USERID, wxLoginEntity.getObj().getUserInfo().getId());
+ SharedpreferencesUtil.save(Constans.USERNAME, wxLoginEntity.getObj().getUserInfo().getName());
+ startActivity(new Intent(this, MainActivity4.class));
+ finish();
+ break;
+ case WX_LOGIN_REGISTER:
+ //去注册
+ WxLoginEntity entity1 = (WxLoginEntity) msg.obj;
+ Intent intent = new Intent(LoginActivity.this, WxRegisterActivity.class);
+ intent.putExtra("wxId", entity1.getObj().getWxId());
+ intent.putExtra("headUrl", entity1.getObj().getHeadUrl());
+ intent.putExtra("userName", entity1.getObj().getUserName());
+ startActivity(intent);
+ break;
+
+ case FAN_LEARN_WHAT:
+ String code = (String) msg.obj;
+ quickLogin(code);
+ break;
+ }
+ }
+
+ /**
+ * 微信登录
+ *
+ * @param code
+ */
+ private void quickLogin(String code) {
+ NetWorkUtil util = NetWorkUtil.instans();
+ HashMap map = new HashMap<>();
+ map.put("code", code);
+ mLoadingDialog.show();
+ util.requestPostByAsyne(NetWorkUrl.WX_QUICK_LOGIN, map, new NetWorkUtil.ReqCallBack() {
+ @Override
+ public void onSuccess(String respone) {
+ Log.i("quickLogin", "onSuccess: " + respone);
+ WxLoginEntity entity = JSON.parseObject(respone, WxLoginEntity.class);
+ if (1012 == entity.getFlag()) {
+ Message msg = mHandler.obtainMessage(WX_LOGIN_SUCCESS);
+ msg.obj = entity;
+ mHandler.sendMessage(msg);
+ } else if (1011 == entity.getFlag()) {
+ Message msg = mHandler.obtainMessage(WX_LOGIN_REGISTER);
+ msg.obj = entity;
+ mHandler.sendMessage(msg);
+ } else if (1013 == entity.getFlag()) {
+ Message msg = mHandler.obtainMessage(WX_LOGIN_REGISTER);
+ msg.obj = entity;
+ mHandler.sendMessage(msg);
+ } else {
+ Message msg = mHandler.obtainMessage(WX_LOGIN_FAIL);
+ msg.obj = entity.getMsg();
+ mHandler.sendMessage(msg);
+ }
+ }
+
+ @Override
+ public void onFail(String message) {
+ Message msg = mHandler.obtainMessage(LOGIN_FAIL);
+ msg.obj = message;
+ mHandler.sendMessage(msg);
+ }
+ });
+ }
+
+ @Override
+ public void onReq(BaseReq baseReq) {
+
+ }
+
+ @Override
+ public void onResp(BaseResp resp) {
+ Log.i("BaseReq", "" + resp.openId + "---" + resp.transaction + "===" + resp.errCode + "==" + resp.errStr);
+ String code = ((SendAuth.Resp) resp).code;
+ Log.i("BaseReq", "LoginActivity onResp()" + code);
+ String result;
+ switch (resp.errCode) {
+ case BaseResp.ErrCode.ERR_OK:
+ result = getString(R.string.Share_success);
+ EventBus.getDefault().post(
+ new WxLoginEvent(code));
+ break;
+ case BaseResp.ErrCode.ERR_USER_CANCEL:
+ result = "取消分享";
+ break;
+ case BaseResp.ErrCode.ERR_AUTH_DENIED:
+ result = "分享被拒绝";
+ break;
+ default:
+ result = "发送返回";
+ break;
+ }
+ }
+
+ @Override
+ protected void onActivityResult(int requestCode, int resultCode, Intent data) {
+ switch (requestCode) {
+ case GET_PHONE_AREA:
+ if (data != null && data.getExtras().get("phoneArea") != null) {
+ phoneArea.setText(data.getExtras().get("phoneArea").toString());
+ }
+ break;
+ }
+ }
+}
diff --git a/app/src/yonsz/java/com/yonsz.z1/login/WelcomeActivity.java b/app/src/yonsz/java/com/yonsz.z1/login/WelcomeActivity.java
new file mode 100644
index 0000000..55734e4
--- /dev/null
+++ b/app/src/yonsz/java/com/yonsz.z1/login/WelcomeActivity.java
@@ -0,0 +1,192 @@
+package com.yonsz.z1.login;
+
+import android.content.Intent;
+import android.os.Bundle;
+import android.os.Message;
+import android.text.TextUtils;
+import android.util.Log;
+
+import com.alibaba.fastjson.JSON;
+import com.yonsz.z1.R;
+import com.yonsz.z1.activity.BaseActivity;
+import com.yonsz.z1.database.entity.TokenEntity;
+import com.yonsz.z1.net.Constans;
+import com.yonsz.z1.net.NetWorkUrl;
+import com.yonsz.z1.net.NetWorkUtil;
+import com.yonsz.z1.utils.AppGenerUtil;
+import com.yonsz.z1.utils.DensityUtil;
+import com.yonsz.z1.utils.SharedpreferencesUtil;
+import com.yonsz.z1.version4.MainActivity4;
+
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+
+import static com.yonsz.z1.difference.DifferConstans.APPID_S;
+import static com.yonsz.z1.difference.DifferConstans.APPSECRET_S;
+import static com.yonsz.z1.net.Constans.CLOSE_THIS_ACTIVITY;
+import static com.yonsz.z1.net.Constans.GET_TOKEN_FAIL;
+import static com.yonsz.z1.net.Constans.GET_TOKEN_SUCCESS;
+
+/**
+ * Created by Administrator on 2017/5/17.
+ */
+
+public class WelcomeActivity extends BaseActivity {
+
+ private final static int FLAG_TO_LOGIN = 1001;
+ private final static int FLAG_TO_GUIDER = 1002;
+ private final static int FLAG_TO_GESTURE = 1003;
+ private final static int FLAG_TO_MAIN = 1004;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_welcome);
+ }
+
+ @Override
+ public boolean enableSliding() {
+ return false;
+ }
+
+ @Override
+ public void onResume() {
+ super.onResume();
+ if (DensityUtil.isNetworkConnected(this) && DensityUtil.isNetConnected(this)) {
+ getToken();
+ } else {
+ initNext();
+ }
+ }
+
+ private void getToken() {
+ NetWorkUtil util = NetWorkUtil.instans();
+ HashMap map = new HashMap<>();
+ map.put("appId", APPID_S);
+ map.put("appSecret", APPSECRET_S);
+ util.requestPostByAsyn(NetWorkUrl.GET_TOKEN, map, new NetWorkUtil.ReqCallBack() {
+ @Override
+ public void onSuccess(String respone) {
+ Log.i("getToken", "onSuccess: " + respone);
+ TokenEntity entity = JSON.parseObject(respone, TokenEntity.class);
+ if (1 == entity.getFlag()) {
+ Message msg = mHandler.obtainMessage(GET_TOKEN_SUCCESS);
+ msg.obj = entity;
+ mHandler.sendMessage(msg);
+ } else {
+ Message msg = mHandler.obtainMessage(GET_TOKEN_FAIL);
+ msg.obj = entity.getMsg();
+ mHandler.sendMessage(msg);
+ }
+ }
+
+ @Override
+ public void onFail(String message) {
+ Log.i("getToken", "onSuccess: " + message);
+ Message msg = mHandler.obtainMessage(GET_TOKEN_FAIL);
+ msg.obj = message;
+ mHandler.sendMessage(msg);
+ }
+ });
+ }
+
+ private synchronized void initNext() {
+ /**
+ * 如果USERID不是空,进入手势页面,如果已经过了引导页,如果SEESSIONID不是空,进入主页面,如果
+ * 是空重新登录,都不是就进入引导页
+ */
+ /*if (!TextUtils.isEmpty(SharedpreferencesUtil.get(Constans.SEESSIONID, ""))) {
+ mHandler.sendEmptyMessageDelayed(FLAG_TO_MAIN, 1000);
+ } else {
+ mHandler.sendEmptyMessageDelayed(FLAG_TO_LOGIN, 1000);
+ }
+ boolean isSetting = TextUtils.isEmpty(SharedpreferencesUtil.
+ get(SharedpreferencesUtil.get(Constans.USERID, ""), ""));*/
+ if (SharedpreferencesUtil.get(Constans.ISOVER)) {
+ if (!TextUtils.isEmpty(SharedpreferencesUtil.get(Constans.SEESSIONID, ""))) {
+ if (!TextUtils.isEmpty(SharedpreferencesUtil.get(Constans.ADIMAGEURL, ""))) {
+ mHandler.sendEmptyMessageDelayed(FLAG_TO_GESTURE, 1000);
+ } else {
+ mHandler.sendEmptyMessageDelayed(FLAG_TO_MAIN, 1000);
+ }
+ } else {
+ if (!TextUtils.isEmpty(SharedpreferencesUtil.get(Constans.ADIMAGEURL, ""))) {
+ mHandler.sendEmptyMessageDelayed(FLAG_TO_GESTURE, 1000);
+ } else {
+ mHandler.sendEmptyMessageDelayed(FLAG_TO_LOGIN, 1000);
+ }
+ }
+ } else {
+ mHandler.sendEmptyMessageDelayed(FLAG_TO_GUIDER, 1000);
+ }
+ }
+
+ @Override
+ public void callBackUiThread(Message msg) {
+ switch (msg.what) {
+ case FLAG_TO_LOGIN:
+ startActivity(new Intent(this, LoginActivity.class));
+ finish();
+ break;
+ case FLAG_TO_GUIDER:
+ startActivity(new Intent(this, GuiderActivity.class));
+ overridePendingTransition(R.anim.activity_exit_in, R.anim.activity_exit_out);
+ finish();
+ break;
+ case FLAG_TO_GESTURE:
+ startActivity(new Intent(this, AdinfoActivity.class));
+ finish();
+ break;
+ case FLAG_TO_MAIN:
+ startActivity(new Intent(this, MainActivity4.class));
+ finish();
+ break;
+ case GET_TOKEN_SUCCESS:
+ TokenEntity entity = (TokenEntity) msg.obj;
+ if (SharedpreferencesUtil.get(Constans.TOKENID, "").equals(entity.getObj().getToken().toString().trim())) {
+
+ } else {
+ SharedpreferencesUtil.save(Constans.SEESSIONID, "");
+ }
+ SharedpreferencesUtil.save(Constans.TOKENID, entity.getObj().getToken().toString().trim());
+ SharedpreferencesUtil.save(Constans.ADIMAGEURL, entity.getObj().getStartUpImgUrl());
+ String androidVersions = entity.getObj().getAndroidVersions().toString();
+ if (null != androidVersions) {
+ String packageVersion = AppGenerUtil.getPackageVersion(this);
+ List result = Arrays.asList(androidVersions.split(","));
+ initNext();
+ /*if (result.contains(packageVersion)) {
+ initNext();
+ } else {
+ // initNext();
+ UpdateAppUtils.from(this)
+ .apkPath(versionUrl)
+ .downloadBy(DOWNLOAD_BY_BROWSER)
+ .isForce(true)
+ .update(true);
+ }*/
+ } else {
+ initNext();
+ }
+ /*if (null != SharedpreferencesUtil.get(Constans.TOKENID, "")) {
+ if (entity.getObj().toString().trim().equals(SharedpreferencesUtil.get(Constans.TOKENID, ""))) {
+ initNext();
+ } else {
+ ToastUtil.show(this, "token已过期");
+ mHandler.sendEmptyMessageDelayed(CLOSE_THIS_ACTIVITY, 1000);
+ }
+ } else {
+ SharedpreferencesUtil.save(Constans.TOKENID, entity.getObj().toString().trim());
+ initNext();
+ }*/
+ break;
+ case CLOSE_THIS_ACTIVITY:
+ finish();
+ break;
+ case GET_TOKEN_FAIL:
+ initNext();
+ break;
+ }
+ }
+}
diff --git a/app/src/yonsz/java/com/yonsz.z1/login/register/CopyRightActivity.java b/app/src/yonsz/java/com/yonsz.z1/login/register/CopyRightActivity.java
new file mode 100644
index 0000000..7c7381c
--- /dev/null
+++ b/app/src/yonsz/java/com/yonsz.z1/login/register/CopyRightActivity.java
@@ -0,0 +1,45 @@
+package com.yonsz.z1.login.register;
+
+import android.os.Bundle;
+import android.os.Message;
+
+import com.yonsz.z1.R;
+import com.yonsz.z1.activity.BaseActivity;
+import com.yonsz.z1.listener.OnTitleItemClickListener;
+import com.yonsz.z1.view.TitleView;
+
+/**
+ * Created by Administrator on 2017/6/15.
+ */
+
+public class CopyRightActivity extends BaseActivity{
+ private TitleView mTitleView;
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_copyright);
+ mTitleView = (TitleView)findViewById(R.id.title_text);
+ mTitleView.setHead("用户协议");
+ mTitleView.setTitleListener(new OnTitleItemClickListener() {
+ @Override
+ public void onBack() {
+ finish();
+ }
+
+ @Override
+ public void onFunction() {
+
+ }
+
+ @Override
+ public void onFunctionText() {
+
+ }
+ });
+ }
+
+ @Override
+ public void callBackUiThread(Message msg) {
+
+ }
+}
diff --git a/app/src/yonsz/java/com/yonsz.z1/wxapi/WXEntryActivity.java b/app/src/yonsz/java/com/yonsz.z1/wxapi/WXEntryActivity.java
new file mode 100644
index 0000000..6106502
--- /dev/null
+++ b/app/src/yonsz/java/com/yonsz.z1/wxapi/WXEntryActivity.java
@@ -0,0 +1,101 @@
+package com.skyworth.z1.wxapi;
+
+import android.app.Activity;
+import android.content.Intent;
+import android.graphics.Bitmap;
+import android.os.Bundle;
+import android.util.Log;
+
+import com.tencent.mm.opensdk.modelbase.BaseReq;
+import com.tencent.mm.opensdk.modelbase.BaseResp;
+import com.tencent.mm.opensdk.modelmsg.SendAuth;
+import com.tencent.mm.opensdk.openapi.IWXAPI;
+import com.tencent.mm.opensdk.openapi.IWXAPIEventHandler;
+import com.tencent.mm.opensdk.openapi.WXAPIFactory;
+import com.yonsz.z1.R;
+import com.yonsz.z1.database.entity.entitya2.WxLoginEvent;
+
+import java.io.ByteArrayOutputStream;
+
+import de.greenrobot.event.EventBus;
+
+import static com.yonsz.z1.difference.DifferConstans.WX_APP_ID;
+
+
+public class WXEntryActivity extends Activity implements IWXAPIEventHandler {
+ private IWXAPI iwxapi;
+
+ public static byte[] bmpToByteArray(final Bitmap bmp, final boolean needRecycle) {
+ ByteArrayOutputStream output = new ByteArrayOutputStream();
+ bmp.compress(Bitmap.CompressFormat.PNG, 100, output);
+ if (needRecycle) {
+ bmp.recycle();
+ }
+ byte[] result = output.toByteArray();
+ try {
+ output.close();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ return result;
+ }
+
+ @Override
+
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_wxentry);
+ iwxapi = WXAPIFactory.createWXAPI(this, WX_APP_ID, false);
+ iwxapi.handleIntent(getIntent(), this);
+ iwxapi.registerApp(WX_APP_ID);
+ }
+
+
+ @Override
+ protected void onNewIntent(Intent intent) {
+ super.onNewIntent(intent);
+ setIntent(intent);
+ iwxapi.handleIntent(intent, this);
+ }
+
+ @Override
+ public void onReq(BaseReq baseReq) {
+ Log.i("BaseReq", "" + baseReq.openId + "---" + baseReq.transaction);
+ }
+
+ @Override
+ public void onResp(BaseResp resp) {
+ Log.i("BaseReq", "" + resp.openId + "---" + resp.transaction + "===" + resp.errCode + "==" + resp.errStr);
+ String result;
+ switch (resp.errCode) {
+ case BaseResp.ErrCode.ERR_OK:
+ result = getString(R.string.Share_success);
+ if (resp instanceof SendAuth.Resp) {
+ String code = ((SendAuth.Resp) resp).code;
+ Log.i("BaseReq", "LoginActivity onResp()" + code);
+ EventBus.getDefault().post(
+ new WxLoginEvent(code));
+ } else {
+
+ }
+ break;
+ case BaseResp.ErrCode.ERR_USER_CANCEL:
+ result = "取消分享";
+ break;
+ case BaseResp.ErrCode.ERR_AUTH_DENIED:
+ result = "分享被拒绝";
+ break;
+ default:
+ result = "发送返回";
+ break;
+ }
+ finish();
+ }
+
+ private String buildTransaction(final String type) {
+ return (type == null) ? String.valueOf(System.currentTimeMillis()) : type + System.currentTimeMillis();
+ }
+
+ enum SHARE_TYPE {Type_WXSceneSession, Type_WXSceneTimeline}
+
+}
diff --git a/app/src/yonsz/java/com/yonsz.z1/wxapi/WXPayEntryActivity.java b/app/src/yonsz/java/com/yonsz.z1/wxapi/WXPayEntryActivity.java
new file mode 100644
index 0000000..fa57cf3
--- /dev/null
+++ b/app/src/yonsz/java/com/yonsz.z1/wxapi/WXPayEntryActivity.java
@@ -0,0 +1,55 @@
+package com.skyworth.z1.wxapi;
+
+import android.app.Activity;
+import android.app.AlertDialog;
+import android.content.Intent;
+import android.os.Bundle;
+import android.util.Log;
+
+import com.tencent.mm.opensdk.constants.ConstantsAPI;
+import com.tencent.mm.opensdk.modelbase.BaseReq;
+import com.tencent.mm.opensdk.modelbase.BaseResp;
+import com.tencent.mm.opensdk.openapi.IWXAPI;
+import com.tencent.mm.opensdk.openapi.IWXAPIEventHandler;
+import com.tencent.mm.opensdk.openapi.WXAPIFactory;
+import com.yonsz.z1.R;
+import static com.yonsz.z1.difference.DifferConstans.WX_APP_ID;
+
+public class WXPayEntryActivity extends Activity implements IWXAPIEventHandler {
+
+ private final String TAG = "WXPayEntryActivity";
+
+ private IWXAPI api;
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_wxentry);
+ api = WXAPIFactory.createWXAPI(this, WX_APP_ID);
+ api.handleIntent(getIntent(), this);
+ }
+
+ @Override
+ protected void onNewIntent(Intent intent) {
+ super.onNewIntent(intent);
+ setIntent(intent);
+ api.handleIntent(intent, this);
+ }
+ @Override
+ public void onReq(BaseReq req) {
+ }
+
+ @Override
+ public void onResp(BaseResp resp) {
+ Log.i(TAG,"errCode = " + resp.errCode);
+ //最好依赖于商户后台的查询结果
+ if (resp.getType() == ConstantsAPI.COMMAND_PAY_BY_WX) {
+ //如果返回-1,很大可能是因为应用签名的问题。用官方的工具生成
+ //签名工具下载:https://open.weixin.qq.com/zh_CN/htmledition/res/dev/download/sdk/Gen_Signature_Android.apk
+ AlertDialog.Builder builder = new AlertDialog.Builder(this);
+ builder.setTitle("提示");
+ builder.setMessage(getString(R.string.pay_result_callback_msg, String.valueOf(resp.errCode)));
+ builder.show();
+ }
+ finish();
+ }
+}
\ No newline at end of file
diff --git a/app/src/yonsz/res/drawable-hdpi/loading_icon.png b/app/src/yonsz/res/drawable-hdpi/loading_icon.png
new file mode 100644
index 0000000..1415a74
Binary files /dev/null and b/app/src/yonsz/res/drawable-hdpi/loading_icon.png differ
diff --git a/app/src/yonsz/res/drawable-xhdpi/loading_icon.png b/app/src/yonsz/res/drawable-xhdpi/loading_icon.png
new file mode 100644
index 0000000..cda3eef
Binary files /dev/null and b/app/src/yonsz/res/drawable-xhdpi/loading_icon.png differ
diff --git a/app/src/yonsz/res/drawable-xxhdpi/loading_icon.png b/app/src/yonsz/res/drawable-xxhdpi/loading_icon.png
new file mode 100644
index 0000000..841ead8
Binary files /dev/null and b/app/src/yonsz/res/drawable-xxhdpi/loading_icon.png differ
diff --git a/app/src/yonsz/res/mipmap-xxxhdpi/app_lan.png b/app/src/yonsz/res/mipmap-xxxhdpi/app_lan.png
new file mode 100644
index 0000000..26375bc
Binary files /dev/null and b/app/src/yonsz/res/mipmap-xxxhdpi/app_lan.png differ
diff --git a/app/src/yonsz/res/values-en-rUS/strings.xml b/app/src/yonsz/res/values-en-rUS/strings.xml
new file mode 100644
index 0000000..c3f7d59
--- /dev/null
+++ b/app/src/yonsz/res/values-en-rUS/strings.xml
@@ -0,0 +1,8 @@
+
+ Unikong
+ 深圳永順智信息科技有限公司 版權所有
+ About
+ Copyright © 2014-2022 Yonsz All Right Reserved
+ 凡是通過永順智官方商城購買的產品,我們將嚴格 按照國家三包政策,對所售產品提供7天(含)退貨,15天(含)因質量問題換新服務。\n注意事項: \n1)客服初審核通過,僅表示永順智受理您的退換貨申請,但不代表同意您的退換貨,最終以商品檢測報告為準,以此來判斷您是否符合退換貨條件。\n2)若您的申請為「審核不通過」,具體原因將會顯示在您的退換貨申請詳情頁面,若有疑問,可與永順智客服聯繫。\n3)簽收時,請務必要求投遞員在場共同檢驗包裹,若發現物流損壞、缺件或發錯貨等情況,請當場拒收並要求快遞員存證,同時請您拍照存證,並打電話服務提出換貨申請。 \n4)若已簽收,需要提供物流公司開具的憑據,並在退換貨申請受理之後提交附件。若未提供物流開具的證明,公司無法處理退款或換貨。
+ 您好,永順智產品支持七天退貨15天換貨服務;在 您收到商品後,如有任何原因需要進行退換貨,打 客戶服務熱線進行退貨申請;請在包裹內留下紙條, 寫上您的訂單號、聯繫方式及退貨理由,以便我們 及時確認完成退款,謝謝您的配合;請確保配件完 整並且無人為破壞的情況(如開過發票的需要和發 票一塊寄回),非產品質量問題的退貨,導致的退 貨,寄回的運費需您自行承擔,因產品質量問題的 退貨,財務將給您報銷寄回的快遞費(最高22元) 運費您先墊付,不支持到付件哦,我們收到貨後會 儘快為您辦理,請耐心等待;祝您生活愉快!
+
\ No newline at end of file
diff --git a/app/src/yonsz/res/values-zh-rTW/strings.xml b/app/src/yonsz/res/values-zh-rTW/strings.xml
new file mode 100644
index 0000000..ded8e24
--- /dev/null
+++ b/app/src/yonsz/res/values-zh-rTW/strings.xml
@@ -0,0 +1,8 @@
+
+ 由你控
+ 深圳永順智信息科技有限公司 版權所有
+ 關於
+ Copyright © 2014-2022 Yonsz All Right Reserved
+ 凡是通過永順智官方商城購買的產品,我們將嚴格 按照國家三包政策,對所售產品提供7天(含)退貨,15天(含)因質量問題換新服務。\n注意事項: \n1)客服初審核通過,僅表示永順智受理您的退換貨申請,但不代表同意您的退換貨,最終以商品檢測報告為準,以此來判斷您是否符合退換貨條件。\n2)若您的申請為「審核不通過」,具體原因將會顯示在您的退換貨申請詳情頁面,若有疑問,可與永順智客服聯繫。\n3)簽收時,請務必要求投遞員在場共同檢驗包裹,若發現物流損壞、缺件或發錯貨等情況,請當場拒收並要求快遞員存證,同時請您拍照存證,並打電話服務提出換貨申請。 \n4)若已簽收,需要提供物流公司開具的憑據,並在退換貨申請受理之後提交附件。若未提供物流開具的證明,公司無法處理退款或換貨。
+ 您好,永順智產品支持七天退貨15天換貨服務;在 您收到商品後,如有任何原因需要進行退換貨,打 客戶服務熱線進行退貨申請;請在包裹內留下紙條, 寫上您的訂單號、聯繫方式及退貨理由,以便我們 及時確認完成退款,謝謝您的配合;請確保配件完 整並且無人為破壞的情況(如開過發票的需要和發 票一塊寄回),非產品質量問題的退貨,導致的退 貨,寄回的運費需您自行承擔,因產品質量問題的 退貨,財務將給您報銷寄回的快遞費(最高22元) 運費您先墊付,不支持到付件哦,我們收到貨後會 儘快為您辦理,請耐心等待;祝您生活愉快!
+
\ No newline at end of file
diff --git a/app/src/yonsz/res/values/strings.xml b/app/src/yonsz/res/values/strings.xml
new file mode 100644
index 0000000..3db1278
--- /dev/null
+++ b/app/src/yonsz/res/values/strings.xml
@@ -0,0 +1,8 @@
+
+ 由你控
+ 深圳永顺智信息科技有限公司 版权所有
+ 关于
+ Copyright © 2014-2022 Yonsz All Right Reserved
+ 凡是通过永顺智官方商城购买的产品,我们将严格 按照国家三包政策,对所售产品提供7天(含)退货,15天(含)因质量问题换新服务。\n注意事项: \n1)客服初审核通过,仅表示永顺智受理您的退换货申请,但不代表同意您的退换货,最终以商品检测报告为准,以此来判断您是否符合退换货条件。\n2)若您的申请为“审核不通过”,具体原因将会显示在您的退换货申请详情页面,若有疑问,可与永顺智客服联系。\n3)签收时,请务必要求投递员在场共同检验包裹,若发现物流损坏、缺件或发错货等情况,请当场拒收并要求快递员存证,同时请您拍照存证,并打电话服务提出换货申请。 \n4)若已签收,需要提供物流公司开具的凭据,并在退换货申请受理之后提交附件。若未提供物流开具的证明,公司无法处理退款或换货。
+ 您好,永顺智产品支持七天退货15天换货服务;在 您收到商品后,如有任何原因需要进行退换货,打 客户服务热线进行退货申请;请在包裹内留下纸条, 写上您的订单号、联系方式及退货理由,以便我们 及时确认完成退款,谢谢您的配合;请确保配件完 整并且无人为破坏的情况(如开过发票的需要和发 票一块寄回),非产品质量问题的退货,导致的退 货,寄回的运费需您自行承担,因产品质量问题的 退货,财务将给您报销寄回的快递费(最高22元) 运费您先垫付,不支持到付件哦,我们收到货后会 尽快为您办理,请耐心等待;祝您生活愉快!
+