package com.videogo.devicemgt;
|
|
import android.content.Context;
|
import android.content.Intent;
|
import android.os.Bundle;
|
import android.os.Handler;
|
import android.os.Message;
|
import android.text.Editable;
|
import android.text.InputFilter;
|
import android.text.InputFilter.LengthFilter;
|
import android.text.TextUtils;
|
import android.text.TextWatcher;
|
import android.view.KeyEvent;
|
import android.view.View;
|
import android.view.View.OnClickListener;
|
import android.view.ViewGroup;
|
import android.view.inputmethod.EditorInfo;
|
import android.view.inputmethod.InputMethodManager;
|
import android.widget.Button;
|
import android.widget.EditText;
|
import android.widget.GridView;
|
import android.widget.ImageButton;
|
import android.widget.TextView;
|
import android.widget.TextView.OnEditorActionListener;
|
|
import com.videogo.EzvizApplication;
|
import ezviz.ezopensdkcommon.common.RootActivity;
|
import com.videogo.constant.IntentConsts;
|
import com.videogo.device.PeripheralInfo;
|
import com.videogo.errorlayer.ErrorInfo;
|
import com.videogo.exception.BaseException;
|
import com.videogo.exception.ErrorCode;
|
import com.videogo.ui.util.ActivityUtils;
|
import com.videogo.util.ConnectionDetector;
|
import com.videogo.util.LogUtil;
|
import com.videogo.widget.TitleBar;
|
import com.videogo.widget.WaitDialog;
|
|
import ezviz.ezopensdk.R;
|
|
//import com.videogo.restful.exception.VideoGoNetSDKException;
|
//import com.videogo.util.ActivityUtils;
|
//import com.videogo.widget.inputfilter.BytesLengthFilter;
|
//import com.videogo.widget.inputfilter.IllegalWordFilter;
|
|
public class ModifyDeviceNameActivity extends RootActivity implements OnClickListener {
|
|
protected static final int MSG_UPDATA_DEVICE_NAME_FAIL = 1001;
|
|
protected static final int MSG_UPDATA_DEVICE_NAME_SUCCESS = 1002;
|
|
private final static int TYPE_DEVICE = 0x01;
|
private final static int TYPE_CAMERA = 0x02;
|
private final static int TYPE_DETECTOR = 0x04;
|
|
private TitleBar mTitleBar;
|
private EditText mNameText;
|
private TextView mDetectorTypeView;
|
private ImageButton mNameDelButton;
|
private TextView mInputHintView;
|
|
private ViewGroup mCommonNameLayout;
|
private GridView mCommonNameGridView;
|
|
private PeripheralInfo mDetector;
|
|
private WaitDialog mWaitDialog;
|
|
private String mDeviceNameString;
|
|
private Handler mHandler;
|
private int mType;
|
private Button mSaveButton = null;
|
|
private String mDeviceName;
|
private String mDeviceSerial;
|
|
@Override
|
protected void onCreate(Bundle savedInstanceState) {
|
super.onCreate(savedInstanceState);
|
setContentView(R.layout.modify_device_name_page);
|
|
findViews();
|
initData();
|
initTitleBar();
|
initViews();
|
}
|
|
private void findViews() {
|
mTitleBar = (TitleBar) findViewById(R.id.title_bar);
|
mTitleBar.setBackButton(R.drawable.common_title_cancel_selector);
|
mNameText = (EditText) findViewById(R.id.name_text);
|
mNameDelButton = (ImageButton) findViewById(R.id.name_del);
|
mDetectorTypeView = (TextView) findViewById(R.id.detector_type);
|
mInputHintView = (TextView) findViewById(R.id.input_hint);
|
mCommonNameLayout = (ViewGroup) findViewById(R.id.common_name_layout);
|
mSaveButton = (Button) findViewById(R.id.btn_id_save_name);
|
}
|
|
private void initData() {
|
mHandler = new MyHandler();
|
|
if (getIntent().hasExtra(IntentConsts.EXTRA_NAME)) {
|
mDeviceName = getIntent().getStringExtra(IntentConsts.EXTRA_NAME);
|
|
mType = TYPE_DEVICE;
|
|
mInputHintView.setText(getString(R.string.detail_modify_device_name_limit_tip, 50));
|
mNameText.setFilters(new InputFilter[] {
|
new LengthFilter(50)});
|
|
}
|
if (getIntent().hasExtra(IntentConsts.EXTRA_DEVICE_ID)){
|
mDeviceSerial = getIntent().getStringExtra(IntentConsts.EXTRA_DEVICE_ID);
|
}
|
|
mWaitDialog = new WaitDialog(ModifyDeviceNameActivity.this, android.R.style.Theme_Translucent_NoTitleBar);
|
mWaitDialog.setCancelable(false);
|
}
|
|
private void initTitleBar() {
|
mTitleBar.setTitle(R.string.ez_modify_name);
|
mTitleBar.addBackButton(new OnClickListener() {
|
|
@Override
|
public void onClick(View v) {
|
onBackPressed();
|
}
|
});
|
// mTitleBar.addRightButton(R.drawable.common_title_confirm_selector, new OnClickListener() {
|
//
|
// @Override
|
// public void onClick(View v) {
|
// modifyDeviceName();
|
// }
|
// });
|
}
|
|
private void initViews() {
|
mNameText.setText(TextUtils.isEmpty(mDeviceName)?"":mDeviceName);
|
mNameText.setSelection(mNameText.getText().length());
|
mNameText.addTextChangedListener(new TextWatcher() {
|
|
@Override
|
public void onTextChanged(CharSequence s, int start, int before, int count) {
|
}
|
|
@Override
|
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
|
}
|
|
@Override
|
public void afterTextChanged(Editable s) {
|
String str = s.toString();
|
setSelectLabel(str);
|
}
|
});
|
mNameText.setOnEditorActionListener(new OnEditorActionListener() {
|
@Override
|
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
|
if (actionId == EditorInfo.IME_ACTION_DONE) {
|
modifyDeviceName();
|
return true;
|
}
|
return false;
|
}
|
});
|
|
mNameDelButton.setOnClickListener(new OnClickListener() {
|
|
@Override
|
public void onClick(View v) {
|
mNameText.setText(null);
|
}
|
});
|
|
if (mType == TYPE_DETECTOR) {} else {
|
mCommonNameLayout.setVisibility(View.GONE);
|
}
|
mSaveButton.setOnClickListener(this);
|
}
|
|
@Override
|
public void onClick(View view) {
|
if(view.getId()==R.id.btn_id_save_name) {
|
modifyDeviceName();
|
}
|
}
|
|
private void setSelectLabel(String input) {}
|
|
private void modifyDeviceName() {
|
if(TextUtils.isEmpty(mDeviceName)) {
|
return;
|
}
|
mDeviceNameString = mNameText.getText().toString().trim();
|
|
if (TextUtils.isEmpty(mDeviceNameString)) {
|
showToast(R.string.company_addr_is_empty);
|
return;
|
}
|
|
// 本地网络检测
|
if (!ConnectionDetector.isNetworkAvailable(ModifyDeviceNameActivity.this)) {
|
showToast(R.string.offline_warn_text);
|
return;
|
}
|
|
mWaitDialog.show();
|
|
new Thread() {
|
@Override
|
public void run() {
|
int errorCode = 0;
|
|
try {
|
EzvizApplication.getOpenSDK().setDeviceName(mDeviceSerial, mDeviceNameString);
|
} catch (BaseException e) {
|
e.printStackTrace();
|
|
ErrorInfo errorInfo = (ErrorInfo) e.getObject();
|
LogUtil.d("TAG", errorInfo.toString());
|
}
|
|
if (errorCode != 0) {
|
mHandler.obtainMessage(MSG_UPDATA_DEVICE_NAME_FAIL, errorCode, 0).sendToTarget();
|
} else {
|
mHandler.obtainMessage(MSG_UPDATA_DEVICE_NAME_SUCCESS).sendToTarget();
|
}
|
}
|
}.start();
|
}
|
|
class MyHandler extends Handler {
|
@Override
|
public void handleMessage(Message msg) {
|
if (msg.what==MSG_UPDATA_DEVICE_NAME_FAIL) {
|
handleUpdateFail(msg.arg1);
|
}else if (msg.what==MSG_UPDATA_DEVICE_NAME_SUCCESS) {
|
handleUpdateSuccess();
|
}else{}
|
}
|
}
|
|
private void handleUpdateFail(int errorCode) {
|
mWaitDialog.dismiss();
|
if (errorCode == ErrorCode.ERROR_TRANSF_DEVICE_OFFLINE) {
|
showToast(R.string.camera_not_online);
|
} else if (errorCode == ErrorCode.ERROR_WEB_SESSION_ERROR) {
|
ActivityUtils.handleSessionException(ModifyDeviceNameActivity.this);
|
} else if (errorCode == ErrorCode.ERROR_WEB_HARDWARE_SIGNATURE_ERROR) {
|
ActivityUtils.handleSessionException(ModifyDeviceNameActivity.this);
|
} else {
|
// 修改失败,提示失败的消息
|
showToast(R.string.detail_modify_fail, errorCode);
|
}
|
}
|
|
private void handleUpdateSuccess() {
|
mWaitDialog.dismiss();
|
showToast(R.string.detail_modify_success);
|
Intent intent = new Intent();
|
intent.putExtra(IntentConsts.EXTRA_NAME, mDeviceNameString);
|
setResult(RESULT_OK, intent);
|
finish();
|
}
|
|
private void hideSoftInput() {
|
if (getCurrentFocus() != null) {
|
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
|
imm.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
|
}
|
}
|
|
@Override
|
public void finish() {
|
super.finish();
|
overridePendingTransition(0, R.anim.fade_down);
|
}
|
}
|