private int getStateTxtDrawable(CameraInfo info) { if (info.getPwdIsRight()) { return info.getIsOnline() ? R.string.online : R.string.offline; } else { return R.string.pwd_wrong; } }
private int getStateDrawable(CameraInfo info) { if (info.getPwdIsRight()) { return info.getIsOnline() ? R.drawable.avs_status_connected : R.drawable.avs_status_unknow; } else { return R.drawable.avs_status_pwderror; } }
// 添加采集端 public void addStreamer(long streamerCid, String user, String pass) { boolean ret = mViewer.connectStreamer(streamerCid, user, pass); CameraInfo info = mMyViewerHelper.getCameraInfo(streamerCid); if (ret) { if (null == info) { StreamerInfo sinfo = mViewer.getStreamerInfoMgr().getStreamerInfo(streamerCid); info = new CameraInfo(); info.setCid(streamerCid); String name = sinfo.getDeviceName(); info.setCameraName((null == name) ? "" : name); info.setCameraUser(user); info.setCameraPwd(pass); info.setCameraThumb(mCameraDefaulThumb); info.setIsOnline(false); info.setPwdIsRight(true); info.setOS(sinfo.getOsVersion()); mCameraInfoManager.addCameraInfo(info); mMyViewerHelper.addCameraInfo(info); mCameraListAdapter.notifyDataSetChanged(); } } else { if (null != info) { info.setPwdIsRight(false); mCameraListAdapter.notifyDataSetChanged(); } } }
@Override protected void onDestroy() { super.onDestroy(); for (CameraInfo info : mCameraInfos) { removeStreamer(info.getCid()); } mMyViewerHelper.removeCameraStateListener(this); mMyViewerHelper.logout(); android.os.Process.killProcess(android.os.Process.myPid()); }
@Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { CameraInfo cameraInfo = mCameraInfos.get(position); if (cameraInfo.getIsOnline()) { Intent intent = new Intent(this, WatchActivity.class); intent.putExtra(Constants.INTENT_CID, cameraInfo.getCid()); intent.putExtra(Constants.INTENT_CAMERA_NAME, cameraInfo.getCameraName()); startActivity(intent); } else { Toast.makeText(this, R.string.camera_offline, Toast.LENGTH_LONG).show(); } }
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.camera_list); mLayoutInflater = LayoutInflater.from(this); mCameraListView = (ListView) findViewById(R.id.cameraList); TextView titleView = (TextView) findViewById(R.id.title); titleView.setText(R.string.app_name); mMenuView = (ImageView) findViewById(R.id.menu); mMenuView.setVisibility(View.VISIBLE); mMenuView.setOnClickListener(this); mMenu = new PopupMenu(this, mMenuView); MenuInflater inflater = mMenu.getMenuInflater(); inflater.inflate(R.menu.popup_menu, mMenu.getMenu()); mMenu.setOnMenuItemClickListener(this); mViewer = Viewer.getViewer(); mMyViewerHelper = MyViewerHelper.getInstance(getApplicationContext()); mMyViewerHelper.addCameraStateListener(this); mCameraDefaulThumb = BitmapFactory.decodeResource(getResources(), R.drawable.avs_type_android); mCameraInfoManager = new CameraInfoManager(this); mCameraInfos = mMyViewerHelper.getAllCameraInfos(); for (CameraInfo info : mCameraInfos) { addStreamer(info.getCid(), info.getCameraUser(), info.getCameraPwd()); } mCameraListAdapter = new CameraListAdapter(this, mCameraInfos); mCameraListView.setAdapter(mCameraListAdapter); mCameraListView.setOnItemClickListener(this); mShowChinese = "zh".equals(Locale.getDefault().getLanguage().toLowerCase()); // update UmengUpdateAgent.setUpdateOnlyWifi(false); UmengUpdateAgent.update(this); // admob ad RelativeLayout adContainer = (RelativeLayout) findViewById(R.id.adLayout); AdView ad = new AdView(this, AdSize.BANNER, AD_UNIT_ID); // .addTestDevice("703C305FC29B7ED91BD7625874CFDEBC") ad.loadAd(new AdRequest()); adContainer.addView(ad); }
@Override public View getView(int position, View convertView, ViewGroup parent) { View view = null; if (null == convertView) { view = mLayoutInflater.inflate(R.layout.camera_list_item, null); } else { view = convertView; } ImageView thumbView = (ImageView) view.findViewById(R.id.thumb); TextView cameraName = (TextView) view.findViewById(R.id.cameraName); ImageView cameraStateView = (ImageView) view.findViewById(R.id.cameraState); TextView cameraStateTxtView = (TextView) view.findViewById(R.id.cameraStateTxt); ImageView editView = (ImageView) view.findViewById(R.id.edit); ImageView deleteView = (ImageView) view.findViewById(R.id.delete); final CameraInfo info = mCameraInfos.get(position); thumbView.setImageBitmap(info.getCameraThumb()); cameraName.setText(info.getCameraName()); cameraStateView.setImageResource(getStateDrawable(info)); cameraStateTxtView.setText(getStateTxtDrawable(info)); editView.setOnClickListener( new OnClickListener() { @Override public void onClick(View v) { if (info.getIsOnline()) { Intent intent = new Intent(); intent.setClass(getApplicationContext(), CameraInfoSettingActivity.class); intent.putExtra(Constants.INTENT_CID, info.getCid()); startActivity(intent); } else { Toast.makeText(CameraListActivity.this, R.string.camera_offline, Toast.LENGTH_LONG) .show(); } } }); deleteView.setOnClickListener( new OnClickListener() { @Override public void onClick(View v) { new AlertDialog.Builder(CameraListActivity.this) .setTitle(R.string.delete_camera_dlg_title) .setPositiveButton( R.string.confirm, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { removeStreamer(info.getCid()); mCameraInfoManager.delete(info); mMyViewerHelper.removeCameraInfo(info); mCameraListAdapter.notifyDataSetChanged(); } }) .setNegativeButton( R.string.cancel, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); } }) .create() .show(); } }); return view; }