NVRSettingDiskInfoActivity.java 源代码
package main.NVR.Setting;
import activity.cloud.bean.PieData;
import activity.cloud.utils.DesUtils;
import activity.cloud.view.MyChart;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.LinearLayout;
import android.widget.Spinner;
import android.widget.SpinnerAdapter;
import android.widget.TextView;
import base.HiActivity;
import bean.MyCamera;
import com.hichip.NVR.content.HiChipNVRDefines;
import com.hichip.base.HiLog;
import com.hichip.callback.ICameraIOSessionCallback;
import com.hichip.campro.R;
import com.hichip.control.HiCamera;
import com.hichip.tools.Packet;
import com.xiaomi.mipush.sdk.Constants;
import common.ConstantCommand;
import common.HiDataValue;
import common.TitleView;
import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.Iterator;
import main.MainActivity;
import utils.DialogUtilsCamHiPro;
import utils.HiLogcatUtil;
import utils.HiTools;
import utils.MyToast;
import utils.SharePreUtils;
public class NVRSettingDiskInfoActivity extends HiActivity implements ICameraIOSessionCallback {
private TextView available_isdiskmount;
private TextView available_space_size;
private TextView format_sd_card;
private LinearLayout ll_chart;
private LinearLayout ll_normal;
private MyCamera mCamera;
private String oldResolution;
private boolean percentageShow;
private MyChart pieChart;
private HiChipNVRDefines.PLATFORM_S_DISKINFO sd_info;
Spinner spinner;
private TextView storage_space_size;
private TextView storage_type;
private TextView tvLastSpacePre;
private TextView tvUseSpacePer;
private DecimalFormat numberFormat = new DecimalFormat("#0.00");
private boolean showEditText = false;
SpinnerAdapter adapter = null;
private Handler handler = new Handler() {
@Override
public void handleMessage(Message message) {
MyCamera myCamera = (MyCamera) message.obj;
switch (message.what) {
case HiDataValue.HANDLE_MESSAGE_SESSION_STATE:
NVRSettingDiskInfoActivity.this.handSessionState(message, myCamera);
return;
case HiDataValue.HANDLE_MESSAGE_RECEIVE_IOCTRL:
if (message.arg2 == 0) {
byte[] byteArray = message.getData().getByteArray("data");
if (message.arg1 == 268435490 && !NVRSettingDiskInfoActivity.this.isformatSDCard) {
NVRSettingDiskInfoActivity.this.dismissjuHuaDialog();
if (byteArray.length >= 32) {
NVRSettingDiskInfoActivity.this.sd_info = new HiChipNVRDefines.PLATFORM_S_DISKINFO(byteArray);
HiLogcatUtil.e("HI_NVR_P2P_PLATFORM_DISKINFO" + NVRSettingDiskInfoActivity.this.sd_info.u32UsbDisk + Constants.COLON_SEPARATOR + NVRSettingDiskInfoActivity.this.sd_info.u32Mount + Constants.COLON_SEPARATOR + NVRSettingDiskInfoActivity.this.sd_info.u32Saturation + Constants.COLON_SEPARATOR + NVRSettingDiskInfoActivity.this.sd_info.u64AvailSize);
HiLogcatUtil.e("HI_NVR_P2P_PLATFORM_DISKINFO" + NVRSettingDiskInfoActivity.this.sd_info.u32UsbDisk + Constants.COLON_SEPARATOR + NVRSettingDiskInfoActivity.this.sd_info.u32Mount + Constants.COLON_SEPARATOR + Packet.byteArrayToInt_Little(byteArray, 8) + Constants.COLON_SEPARATOR + Packet.byteArrayToInt_Little(byteArray, 16));
HiLogcatUtil.e("HI_NVR_P2P_PLATFORM_DISKINFO" + NVRSettingDiskInfoActivity.this.sd_info.u32UsbDisk + Constants.COLON_SEPARATOR + NVRSettingDiskInfoActivity.this.sd_info.u32Mount + Constants.COLON_SEPARATOR + Packet.byteArrayToLong_Little(byteArray, 8) + Constants.COLON_SEPARATOR + Packet.byteArrayToLong_Little(byteArray, 16));
HiLogcatUtil.e("HI_NVR_P2P_PLATFORM_DISKINFO" + NVRSettingDiskInfoActivity.this.sd_info.u32UsbDisk + Constants.COLON_SEPARATOR + NVRSettingDiskInfoActivity.this.sd_info.u32Mount + Constants.COLON_SEPARATOR + Packet.readUnsignedInt(byteArray, 8) + Constants.COLON_SEPARATOR + Packet.readUnsignedInt(byteArray, 16));
NVRSettingDiskInfoActivity.this.sd_info.u32Saturation = Packet.readUnsignedInt(byteArray, 8);
NVRSettingDiskInfoActivity.this.sd_info.u64AvailSize = Packet.readUnsignedInt(byteArray, 16);
NVRSettingDiskInfoActivity.this.sd_info.u32Saturation = (long) Math.ceil((double) (NVRSettingDiskInfoActivity.this.sd_info.u32Saturation / 996000));
NVRSettingDiskInfoActivity.this.sd_info.u64AvailSize = (long) Math.ceil((double) (NVRSettingDiskInfoActivity.this.sd_info.u64AvailSize / 996000));
NVRSettingDiskInfoActivity.this.storage_space_size.setText("" + NVRSettingDiskInfoActivity.this.sd_info.u32Saturation + "GB");
NVRSettingDiskInfoActivity.this.available_space_size.setText("" + NVRSettingDiskInfoActivity.this.sd_info.u64AvailSize + "GB");
return;
}
return;
}
return;
}
NVRSettingDiskInfoActivity.this.dismissjuHuaDialog();
return;
case ConstantCommand.HI_P2P_GET_DEVICE_WORKING_MODE:
NVRSettingDiskInfoActivity.this.dismissjuHuaDialog();
NVRSettingDiskInfoActivity.this.dismissLoadDialog();
MyToast.showToast(NVRSettingDiskInfoActivity.this.getApplicationContext(), NVRSettingDiskInfoActivity.this.getString(R.string.netword_abnormal));
NVRSettingDiskInfoActivity.this.startActivity(new Intent(NVRSettingDiskInfoActivity.this, (Class<?>) MainActivity.class), true);
return;
case ConstantCommand.HI_P2P_SET_DEVICE_WORKING_MODE:
NVRSettingDiskInfoActivity.this.dismissjuHuaDialog();
NVRSettingDiskInfoActivity.this.dismissLoadDialog();
HiDataValue.isNeedkillNoMain = false;
NVRSettingDiskInfoActivity.this.startActivity(new Intent(NVRSettingDiskInfoActivity.this, (Class<?>) MainActivity.class), true);
return;
default:
return;
}
}
};
private boolean isformatSDCard = false;
@Override
protected int setLayoutId() {
return R.layout.activity_nvr_diskinfosetting;
}
@Override
protected void init(Bundle bundle) {
String stringExtra = getIntent().getStringExtra(HiDataValue.EXTRAS_KEY_UID);
Iterator<MyCamera> it = HiDataValue.CameraList.iterator();
while (true) {
if (!it.hasNext()) {
break;
}
MyCamera next = it.next();
if (stringExtra.equals(next.getUid())) {
this.mCamera = next;
break;
}
}
initView();
initSpinner();
initSpinnerSelect();
}
private void initView() {
TitleView titleView = (TitleView) findViewById(R.id.title_top);
titleView.setTitle(getResources().getString(R.string.nvrsetting_diskfun));
titleView.setButton(0);
titleView.setNavigationBarButtonListener(new TitleView.NavigationBarButtonListener() {
@Override
public void OnNavigationButtonClick(int i) {
if (i != 0) {
return;
}
NVRSettingDiskInfoActivity.this.finish();
}
});
this.available_space_size = (TextView) findViewById(R.id.available_space_size);
this.storage_space_size = (TextView) findViewById(R.id.storage_space_size);
this.storage_type = (TextView) findViewById(R.id.storage_type);
this.available_isdiskmount = (TextView) findViewById(R.id.available_isdiskmount);
this.ll_normal = (LinearLayout) findViewById(R.id.ll_normal);
this.ll_chart = (LinearLayout) findViewById(R.id.ll_chart);
this.pieChart = (MyChart) findViewById(R.id.pie_chart);
this.tvUseSpacePer = (TextView) findViewById(R.id.tv_use_space_per);
this.tvLastSpacePre = (TextView) findViewById(R.id.tv_last_space_pre);
TextView textView = (TextView) findViewById(R.id.format_sd_card);
this.format_sd_card = textView;
textView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
NVRSettingDiskInfoActivity.this.formatSDCard();
}
});
}
private void initSpinner() {
this.spinner.setDropDownVerticalOffset(HiTools.dip2px(this, 40.0f));
ArrayAdapter<CharSequence> createFromResource = ArrayAdapter.createFromResource(this, R.array.Disk_array, android.R.layout.simple_spinner_dropdown_item);
this.adapter = createFromResource;
this.spinner.setAdapter((SpinnerAdapter) createFromResource);
this.spinner.setSelection(0, false);
this.oldResolution = getResources().getStringArray(R.array.Disk_array)[0];
}
private void initSpinnerSelect() {
this.spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onNothingSelected(AdapterView<?> adapterView) {
}
@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int i, long j) {
if (NVRSettingDiskInfoActivity.this.spinner.getSelectedItem().toString().equals(NVRSettingDiskInfoActivity.this.oldResolution)) {
return;
}
NVRSettingDiskInfoActivity.this.setDiskResolution(1);
}
});
}
public void setDiskResolution(int i) {
String[] stringArray = getResources().getStringArray(R.array.Disk_array);
HiLog.e(this.mCamera.getUid() + Constants.COLON_SEPARATOR + this.spinner.getSelectedItem().toString() + "::" + this.oldResolution + "::" + i);
if (this.sd_info == null) {
return;
}
if (this.spinner.getSelectedItem().toString().equals(stringArray[0])) {
this.sd_info.u32UsbDisk = 1;
this.oldResolution = stringArray[0];
} else if (this.spinner.getSelectedItem().toString().equals(stringArray[1])) {
this.sd_info.u32UsbDisk = 2;
this.oldResolution = stringArray[1];
} else {
this.sd_info.u32UsbDisk = 1;
this.oldResolution = stringArray[0];
}
this.sd_info.u8mode = 0;
showjuHuaDialog();
this.mCamera.sendIOCtrl(HiChipNVRDefines.HI_NVR_P2P_PLATFORM_DISKINFO, this.sd_info.parseContent());
}
public void formatSDCard() {
new DialogUtilsCamHiPro(this).title(getText(R.string.tips_warning)).message(getText(R.string.nvrtips_format_disk)).sureText(getString(R.string.sure)).cancelText(getString(R.string.cancel)).setSureOnClickListener(new View.OnClickListener() {
@Override
public final void onClick(View view) {
NVRSettingDiskInfoActivity.this.lambda$formatSDCard$0$NVRSettingDiskInfoActivity(view);
}
}).build().show();
}
public void lambda$formatSDCard$0$NVRSettingDiskInfoActivity(View view) {
showPwd();
}
public void handSessionState(Message message, MyCamera myCamera) {
if (message.arg1 == 0 && myCamera != null) {
HiLogcatUtil.i("--CameraFragment p2p DISCONNECTED--:" + myCamera.getUid());
this.handler.sendEmptyMessageDelayed(ConstantCommand.HI_P2P_GET_DEVICE_WORKING_MODE, 1000L);
}
}
private void initPieChart(int i, int i2) {
ArrayList arrayList = new ArrayList();
arrayList.add(new PieData(i, R.color.use_color));
arrayList.add(new PieData(i2, R.color.color_state_onling));
this.pieChart.setmStartAngle(270.0f);
this.pieChart.setData(arrayList);
HiLogcatUtil.i("usedSpace: " + i, " u32LeftSpace: " + i2);
double doubleValue = new BigDecimal(i).divide(new BigDecimal(i + i2), 4, 4).doubleValue();
double d = 1.0d - doubleValue;
HiLogcatUtil.d("d: " + doubleValue, " c: " + d);
String str = this.numberFormat.format(doubleValue * 100.0d) + "%";
String str2 = this.numberFormat.format(d * 100.0d) + "%";
this.tvUseSpacePer.setText(str);
this.tvLastSpacePre.setText(str2);
}
@Override
public void onResume() {
super.onResume();
MyCamera myCamera = this.mCamera;
if (myCamera != null) {
myCamera.registerIOSessionListener(this);
this.mCamera.sendIOCtrl(HiChipNVRDefines.HI_NVR_P2P_PLATFORM_DISKINFO, HiChipNVRDefines.PLATFORM_S_DISKINFO.parseContent(0, 1, 1, 24));
}
}
@Override
public void onPause() {
super.onPause();
MyCamera myCamera = this.mCamera;
if (myCamera != null) {
myCamera.unregisterIOSessionListener(this);
}
}
@Override
public void receiveIOCtrlData(HiCamera hiCamera, int i, byte[] bArr, int i2) {
if (hiCamera != this.mCamera) {
return;
}
Bundle bundle = new Bundle();
bundle.putByteArray("data", bArr);
Message obtainMessage = this.handler.obtainMessage();
obtainMessage.what = HiDataValue.HANDLE_MESSAGE_RECEIVE_IOCTRL;
obtainMessage.obj = hiCamera;
obtainMessage.arg1 = i;
obtainMessage.arg2 = i2;
obtainMessage.setData(bundle);
this.handler.sendMessage(obtainMessage);
}
@Override
public void receiveSessionState(HiCamera hiCamera, int i) {
Message obtainMessage = this.handler.obtainMessage();
obtainMessage.what = HiDataValue.HANDLE_MESSAGE_SESSION_STATE;
obtainMessage.arg1 = i;
obtainMessage.obj = hiCamera;
this.handler.sendMessage(obtainMessage);
}
private void showPwd() {
this.isformatSDCard = false;
final DialogUtilsCamHiPro dialogUtilsCamHiPro = new DialogUtilsCamHiPro(this);
dialogUtilsCamHiPro.setVisibilityMessage(8);
dialogUtilsCamHiPro.title(getString(R.string.nvraccount_input_pwd)).message("").showEditText(true).cancelText(getString(R.string.cancel)).sureText(getString(R.string.sure)).setSureOnClickListener(new View.OnClickListener() {
@Override
public final void onClick(View view) {
NVRSettingDiskInfoActivity.this.lambda$showPwd$1$NVRSettingDiskInfoActivity(dialogUtilsCamHiPro, view);
}
}).build().show();
}
public void lambda$showPwd$1$NVRSettingDiskInfoActivity(DialogUtilsCamHiPro dialogUtilsCamHiPro, View view) {
String trim = SharePreUtils.getString(HiDataValue.CACHEACC, this, HiDataValue.gAccountPsw1).trim();
String trim2 = DesUtils.EncryptAsDoNet(DesUtils.desKey, dialogUtilsCamHiPro.getResult()).trim();
HiLogcatUtil.e(trim2 + "::::" + trim + "::");
if (trim2.equalsIgnoreCase(trim) || trim2.equals(trim)) {
if (this.sd_info != null) {
this.handler.postDelayed(new Runnable() {
@Override
public void run() {
NVRSettingDiskInfoActivity.this.showjuHuaDialog(false);
}
}, 10L);
this.sd_info.u8mode = 1;
this.isformatSDCard = true;
byte[] bArr = new byte[32];
System.arraycopy(Packet.intToByteArray_Little(1), 0, bArr, 0, 4);
bArr[24] = 1;
this.mCamera.sendIOCtrl(HiChipNVRDefines.HI_NVR_P2P_PLATFORM_DISKINFO, bArr);
this.handler.postDelayed(new Runnable() {
@Override
public void run() {
NVRSettingDiskInfoActivity.this.finish();
}
}, 10000L);
return;
}
return;
}
MyToast.showToast(getApplicationContext(), getString(R.string.account_pass_error));
}
}