123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363 |
- package kr.co.icontrols.iotplatform;
- import android.app.Activity;
- import android.content.Intent;
- import android.graphics.drawable.BitmapDrawable;
- import android.os.Bundle;
- import android.text.Editable;
- import android.text.TextWatcher;
- import android.view.View;
- import android.widget.EditText;
- import android.widget.ImageView;
- import android.widget.LinearLayout;
- import android.widget.TextView;
- import androidx.annotation.Nullable;
- import androidx.appcompat.app.AppCompatActivity;
- import org.json.JSONException;
- import org.json.JSONObject;
- import java.io.IOException;
- import java.util.ArrayList;
- import kr.co.icontrols.iotplatform.DataClass.DeviceGroupInfo;
- import kr.co.icontrols.iotplatform.DataClass.UserInfo;
- import kr.co.icontrols.iotplatform.utils.HttpApi;
- import okhttp3.Call;
- import okhttp3.Callback;
- import okhttp3.Response;
- import static kr.co.icontrols.iotplatform.PopupActivity.POPUP_BUNDLE;
- import static kr.co.icontrols.iotplatform.PopupActivity.POPUP_IMG_INDEX;
- import static kr.co.icontrols.iotplatform.utils.CommonUtils.DismissConnectDialog;
- import static kr.co.icontrols.iotplatform.utils.CommonUtils.ErrorLogOutput;
- import static kr.co.icontrols.iotplatform.utils.CommonUtils.ForceDismissConnectDialog;
- import static kr.co.icontrols.iotplatform.utils.CommonUtils.WarnLogOutput;
- import static kr.co.icontrols.iotplatform.utils.CommonUtils.displayProgress;
- import static kr.co.icontrols.iotplatform.utils.CommonUtils.getCircleBitmap;
- import static kr.co.icontrols.iotplatform.utils.CommonUtils.getGroupImageResource;
- import static kr.co.icontrols.iotplatform.utils.CommonUtils.showNotiMsg;
- import static kr.co.icontrols.iotplatform.utils.Constants.EXTRA_BEFORE_ACTIVITY;
- import static kr.co.icontrols.iotplatform.utils.Constants.EXTRA_GROUP_LIST;
- import static kr.co.icontrols.iotplatform.utils.Constants.GROUP_01;
- import static kr.co.icontrols.iotplatform.utils.Constants.GROUP_BACKGROUND_00_STRING;
- import static kr.co.icontrols.iotplatform.utils.Constants.GROUP_BACKGROUND_01_STRING;
- import static kr.co.icontrols.iotplatform.utils.Constants.GROUP_BACKGROUND_02_STRING;
- import static kr.co.icontrols.iotplatform.utils.Constants.GROUP_BACKGROUND_03_STRING;
- import static kr.co.icontrols.iotplatform.utils.Constants.GROUP_BACKGROUND_04_STRING;
- import static kr.co.icontrols.iotplatform.utils.Constants.GROUP_BACKGROUND_05_STRING;
- import static kr.co.icontrols.iotplatform.utils.Constants.GROUP_BACKGROUND_06_STRING;
- import static kr.co.icontrols.iotplatform.utils.Constants.GROUP_BACKGROUND_07_STRING;
- import static kr.co.icontrols.iotplatform.utils.Constants.GROUP_BACKGROUND_08_STRING;
- import static kr.co.icontrols.iotplatform.utils.Constants.GROUP_BACKGROUND_09_STRING;
- import static kr.co.icontrols.iotplatform.utils.Constants.GROUP_IMG_00_STRING;
- import static kr.co.icontrols.iotplatform.utils.Constants.GROUP_IMG_01_STRING;
- import static kr.co.icontrols.iotplatform.utils.Constants.GROUP_IMG_02_STRING;
- import static kr.co.icontrols.iotplatform.utils.Constants.GROUP_IMG_03_STRING;
- import static kr.co.icontrols.iotplatform.utils.Constants.GROUP_IMG_04_STRING;
- import static kr.co.icontrols.iotplatform.utils.Constants.GROUP_IMG_05_STRING;
- import static kr.co.icontrols.iotplatform.utils.Constants.GROUP_IMG_06_STRING;
- import static kr.co.icontrols.iotplatform.utils.Constants.GROUP_IMG_07_STRING;
- import static kr.co.icontrols.iotplatform.utils.Constants.GROUP_IMG_08_STRING;
- import static kr.co.icontrols.iotplatform.utils.Constants.GROUP_IMG_09_STRING;
- import static kr.co.icontrols.iotplatform.utils.Constants.GROUP_LIST_COUNT_LINE;
- import static kr.co.icontrols.iotplatform.utils.Constants.RESULT_CHANGE_GROUP_IMG;
- import static kr.co.icontrols.iotplatform.utils.Constants.RESULT_INPUT_GROUP_NAME;
- public class AddGroupActivity extends AppCompatActivity implements View.OnClickListener,
- TextWatcher {
- private final String TAG = "AddGroupActivity";
- private LinearLayout mLayoutGroups;
- private EditText mTxtGroupName;
- private ArrayList<DeviceGroupInfo> mGroupList;
- private int mSelectedImgIndex = GROUP_01;
- private String mBeforeActivity;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_add_group);
- mLayoutGroups = findViewById(R.id.layoutGroups);
- mTxtGroupName = findViewById(R.id.txtGroupName);
- mTxtGroupName.addTextChangedListener(this);
- mGroupList = (ArrayList<DeviceGroupInfo>) getIntent().getSerializableExtra(EXTRA_GROUP_LIST);
- mBeforeActivity = getIntent().getStringExtra(EXTRA_BEFORE_ACTIVITY);
- shwoGroupList();
- changeGroupImage(mSelectedImgIndex);
- }
- @Override
- protected void onResume() {
- super.onResume();
- }
- @Override
- protected void onPause() {
- ForceDismissConnectDialog();
- super.onPause();
- }
- @Override
- protected void onDestroy() {
- if(mGroupList!=null) {
- mGroupList.clear();
- }
- super.onDestroy();
- }
- @Override
- protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
- super.onActivityResult(requestCode, resultCode, data);
- switch (requestCode) {
- /*
- case RESULT_INPUT_GROUP_NAME:
- if (resultCode == Activity.RESULT_OK) {
- Bundle b = data.getBundleExtra(POPUP_BUNDLE);
- if(b != null) {
- ((TextView)findViewById(R.id.txtGroupName)).setText(b.getString(PopupActivity.POPUP_INPUT));
- }
- }
- break;
- */
- case RESULT_CHANGE_GROUP_IMG:
- if (resultCode == RESULT_OK) {
- int selected_index = data.getIntExtra(POPUP_IMG_INDEX, 1);
- changeGroupImage(selected_index);
- }
- break;
- }
- }
- @Override
- public void onClick(View v) {
- /*
- final View fv = v;
- fv.setEnabled(false);
- Timer buttonTimer = new Timer();
- buttonTimer.schedule(new TimerTask() {
- @Override
- public void run() {
- runOnUiThread(new Runnable() {
- @Override
- public void run() {
- try {
- fv.setEnabled(true);
- } catch (Exception e) {
- e.printStackTrace();
- } finally {
- }
- }
- });
- }
- }, 500);
- */
- switch (v.getId()) {
- case R.id.btnBack:
- case R.id.btnBackText:
- onBackPressed();
- break;
- case R.id.imgGroup:{
- Intent intent = new Intent(this, PopupActivity.class);
- intent.putExtra(PopupActivity.POPUP_MODE, PopupActivity.MODE_SELECT_GROUP_IMG);
- intent.putExtra(PopupActivity.POPUP_TITLE_TEXT, getString(R.string.group_image));
- intent.putExtra(POPUP_IMG_INDEX, mSelectedImgIndex);
- startActivityForResult(intent, RESULT_CHANGE_GROUP_IMG);
- }
- break;
- /*
- case R.id.txtGroupName: {
- Intent intent = new Intent(this, PopupActivity.class);
- intent.putExtra(PopupActivity.POPUP_MODE, PopupActivity.MODE_INPUT);
- Bundle b = new Bundle();
- if (isEmptyGroupName()) {
- b.putString(PopupActivity.POPUP_INPUT, "");
- } else {
- b.putString(PopupActivity.POPUP_INPUT, ((TextView) findViewById(R.id.txtGroupName)).getText().toString());
- }
- intent.putExtra(POPUP_BUNDLE, b);
- intent.putExtra(PopupActivity.POPUP_TITLE_TEXT, getString(R.string.group_name));
- startActivityForResult(intent, RESULT_INPUT_GROUP_NAME);
- }
- break;
- */
- case R.id.btnRight:
- boolean isExistName = false;
- for(DeviceGroupInfo d : mGroupList) {
- if(d.friendlyName.equals(mTxtGroupName.getText().toString())) {
- isExistName = true;
- break;
- }
- }
- if(isEmptyGroupName()) {
- showNotiMsg(AddGroupActivity.this,getString(R.string.snackbar_error_need_groupname));
- } else if(isExistName) {
- showNotiMsg(AddGroupActivity.this,getString(R.string.snackbar_error_exist_groupname));
- } else {
- String groupImgString[] = {GROUP_IMG_00_STRING,
- GROUP_IMG_01_STRING,GROUP_IMG_02_STRING,GROUP_IMG_03_STRING,
- GROUP_IMG_04_STRING,GROUP_IMG_05_STRING,GROUP_IMG_06_STRING,
- GROUP_IMG_07_STRING,GROUP_IMG_08_STRING,GROUP_IMG_09_STRING,
- };
- String groupBackgroundString[] = {GROUP_BACKGROUND_00_STRING,
- GROUP_BACKGROUND_01_STRING,GROUP_BACKGROUND_02_STRING,GROUP_BACKGROUND_03_STRING,
- GROUP_BACKGROUND_04_STRING,GROUP_BACKGROUND_05_STRING,GROUP_BACKGROUND_06_STRING,
- GROUP_BACKGROUND_07_STRING,GROUP_BACKGROUND_08_STRING,GROUP_BACKGROUND_09_STRING,
- };
- displayProgress(this,"","");
- try {
- HttpApi.registerDeviceGroup(mTxtGroupName.getText().toString(),
- groupImgString[mSelectedImgIndex],
- groupBackgroundString[mSelectedImgIndex],
- new Callback() {
- @Override
- public void onFailure(Call call, IOException e) {
- e.printStackTrace();
- ErrorLogOutput(TAG, "HttpApi.registerDeviceGroup(onFailure)\n" + e.toString());
- showNotiMsg(AddGroupActivity.this,"그룹 추가를 실패하였습니다.");
- DismissConnectDialog();
- }
- @Override
- public void onResponse(Call call, Response response) throws IOException {
- if(response.code() == HttpApi.HTTP_NO_CONTENT) {
- UserInfo.dgroups.clear();
- WarnLogOutput(TAG, "HttpApi.registerDeviceGroup(onResponse) HTTP_NO_CONTENT");
- if(mBeforeActivity != null && mBeforeActivity.equals("LightRegisterDeviceFinishActivity")) {
- showNotiMsg(AddGroupActivity.this,"그룹를 추가하였습니다.",true);
- } else {
- showNotiMsg(AddGroupActivity.this,"그룹를 추가하였습니다.",MyGroupActivity.class);
- }
- DismissConnectDialog();
- } else {
- ErrorLogOutput(TAG, "HttpApi.registerDeviceGroup(onResponse) Error code : " + response.code() + "\nresponse : " + response.toString());
- showNotiMsg(AddGroupActivity.this,"그룹 추가를 실패하였습니다.");
- DismissConnectDialog();
- try {
- JSONObject json_data = new JSONObject(response.body().string());
- ErrorLogOutput(TAG, "HttpApi.registerDeviceGroup(onResponse) body : " + json_data.toString());
- } catch (JSONException e) {
- ErrorLogOutput(TAG, "HttpApi.registerDeviceGroup(onResponse) JSONException : " + e.toString());
- }
- }
- }
- });
- } catch (Exception e) {
- e.printStackTrace();
- ErrorLogOutput(TAG, "HttpApi.registerDeviceGroup(Exception)\n" + e.toString());
- showNotiMsg(AddGroupActivity.this,"그룹 추가를 실패하였습니다.");
- DismissConnectDialog();
- }
- }
- break;
- }
- }
- private boolean isEmptyGroupName() {
- return (mTxtGroupName.getText().toString().length() == 0 || mTxtGroupName.getText().toString().equals(getString(R.string.hint_input_text)));
- }
- private void changeGroupImage(final int index) {
- int groupImgResource[] = {R.drawable.invisiableimage,
- R.drawable.img_group_01,R.drawable.img_group_02,R.drawable.img_group_03,
- R.drawable.img_group_04,R.drawable.img_group_05,R.drawable.img_group_06,
- R.drawable.img_group_07,R.drawable.img_group_08,R.drawable.img_group_09
- };
- mSelectedImgIndex = index;
- ((ImageView)findViewById(R.id.imgGroup)).setImageBitmap(getCircleBitmap(groupImgResource[mSelectedImgIndex]));
- }
- private void shwoGroupList() {
- LinearLayout layoutHorizontal = null;
- int lineCount = 0;
- for(int i = 0; i < mGroupList.size(); i++){
- if(i%GROUP_LIST_COUNT_LINE==0) {
- lineCount = 0;
- layoutHorizontal = new LinearLayout(this);
- LinearLayout.LayoutParams lparam = new LinearLayout.LayoutParams(
- LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);
- layoutHorizontal.setLayoutParams(lparam);
- layoutHorizontal.setOrientation(LinearLayout.HORIZONTAL);
- mLayoutGroups.addView(layoutHorizontal);
- LinearLayout spacelayout = new LinearLayout(this);
- LinearLayout.LayoutParams slparam = new LinearLayout.LayoutParams(
- LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);
- slparam.weight = 1;
- spacelayout.setLayoutParams(slparam);
- spacelayout.setOrientation(LinearLayout.HORIZONTAL);
- layoutHorizontal.addView(spacelayout);
- }
-
- if(layoutHorizontal != null) {
- lineCount++;
- final View child = getLayoutInflater().inflate(R.layout.listview_horizontal_group_item, null);
- final TextView txtGroupName = child.findViewById(R.id.txtGroup);
- final ImageView imgGroup = child.findViewById(R.id.imgGroup);
- txtGroupName.setText(mGroupList.get(i).friendlyName);
- imgGroup.setImageBitmap(getCircleBitmap(getGroupImageResource(mGroupList.get(i).icon)));
- layoutHorizontal.addView(child);
- LinearLayout spacelayout = new LinearLayout(this);
- LinearLayout.LayoutParams slparam = new LinearLayout.LayoutParams(
- LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);
- slparam.weight = 1;
- spacelayout.setLayoutParams(slparam);
- spacelayout.setOrientation(LinearLayout.HORIZONTAL);
- layoutHorizontal.addView(spacelayout);
- }
- if(i == mGroupList.size()-1 && lineCount < GROUP_LIST_COUNT_LINE) {
- while(lineCount < GROUP_LIST_COUNT_LINE) {
- lineCount++;
- final View child = getLayoutInflater().inflate(R.layout.listview_horizontal_group_item, null);
- final TextView txtGroupName = child.findViewById(R.id.txtGroup);
- final ImageView imgGroup = child.findViewById(R.id.imgGroup);
- txtGroupName.setVisibility(View.INVISIBLE);
- imgGroup.setVisibility(View.INVISIBLE);
- layoutHorizontal.addView(child);
- LinearLayout spacelayout = new LinearLayout(this);
- LinearLayout.LayoutParams slparam = new LinearLayout.LayoutParams(
- LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);
- slparam.weight = 1;
- spacelayout.setLayoutParams(slparam);
- spacelayout.setOrientation(LinearLayout.HORIZONTAL);
- layoutHorizontal.addView(spacelayout);
- }
- }
- }
- }
- @Override
- public void beforeTextChanged(CharSequence s, int start, int count, int after) {
- }
- @Override
- public void onTextChanged(CharSequence s, int start, int before, int count) {
- }
- @Override
- public void afterTextChanged(Editable s) {
- if(mTxtGroupName.length() > 0) {
- findViewById(R.id.btnBack).setVisibility(View.GONE);
- findViewById(R.id.btnBackText).setVisibility(View.VISIBLE);
- findViewById(R.id.btnRight).setVisibility(View.VISIBLE);
- } else {
- findViewById(R.id.btnBack).setVisibility(View.VISIBLE);
- findViewById(R.id.btnBackText).setVisibility(View.GONE);
- findViewById(R.id.btnRight).setVisibility(View.INVISIBLE);
- }
- }
- }
|