package com.dbs.mplus.knuh.fragment; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.appcompat.app.AppCompatActivity; import androidx.fragment.app.Fragment; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; import android.content.Context; import android.os.Bundle; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.EditText; import android.widget.LinearLayout; import android.widget.Spinner; import android.widget.TextView; import com.dbs.mplus.knuh.BuildConfig; import com.dbs.mplus.knuh.R; import com.dbs.mplus.knuh.adapter.CategoryAdapter; import com.dbs.mplus.knuh.adapter.ConsentListAdapter; import com.dbs.mplus.knuh.customView.LoadingProgress; import com.dbs.mplus.knuh.httpTask.CallBack; import com.dbs.mplus.knuh.httpTask.SoapParser; import com.dbs.mplus.knuh.model.CategoryVO; import com.dbs.mplus.knuh.model.ConsentFormListVO; import com.dbs.mplus.knuh.util.ConsentConfig; import com.dbs.mplus.knuh.util.Util; import org.ksoap2.serialization.SoapObject; import java.util.ArrayList; import java.util.HashMap; public class SearchFragment extends Fragment { private static final String TAG = "SearchFragment"; private AppCompatActivity mActivity; private Context mContext; private CategoryAdapter categoryAdapter; private RecyclerView searchRecyclerView; private LinearLayout searchClickLayout; private Spinner searchDeptSpinner; private TextView tvHospitalName; private TextView etPatientId; private String keyWord = ""; private String categoryId = ""; public SearchFragment() { } // 테스트 @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mContext = getActivity(); mActivity = (AppCompatActivity) getActivity(); progress = new LoadingProgress(mActivity); } @Nullable @Override public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view = (View) inflater.inflate(R.layout.activity_search_fragment, container, false); searchDeptSpinner = (Spinner) view.findViewById(R.id.searchDeptSpinner); tvHospitalName = (TextView) view.findViewById(R.id.tvHospitalName); etPatientId = (EditText) view.findViewById(R.id.etPatientId); searchRecyclerView = (RecyclerView) view.findViewById(R.id.searchRecyclerView); searchClickLayout = (LinearLayout) view.findViewById(R.id.searchClickLayout); // 조회 버튼 getCategoryList(BuildConfig.INST_CD); setEvent(); return view; } private void setEvent() { searchClickLayout.setOnClickListener(onClickListener); } private View.OnClickListener onClickListener = new View.OnClickListener() { @Override public void onClick(View v) { if (v == searchClickLayout) { progress.show(); keyWord = etPatientId.getText().toString(); getConsentList(BuildConfig.INST_CD, keyWord, categoryId); } } }; /** Spinner List API **/ private void getCategoryList(final String instCd) { CallBack callBack = new CallBack() { @Override public void result(SoapObject result) { Log.e(TAG, "RowListResult --> " + result); if (result == null || result.toString().indexOf("null") > 0) { stop(); } else { categoryArray = SoapParser.getHospitalList(result); setSpinnerAdapter(categoryArray); } } @Override public void stop() { } @Override public void error() { } }; if (instCd.equals(BuildConfig.INST_CD)) { tvHospitalName.setText(getText(R.string.knuh)); } else { tvHospitalName.setText(getText(R.string.chilgok)); } HashMap mData = new HashMap(); mData.put("instCd", instCd); Util.callHttp(mContext, ConsentConfig.HOST_CONSENT, ConsentConfig.GET_CONSENT_CATEGORYY, mData, callBack); } private void setSpinnerAdapter(final ArrayList arrayList) { mActivity.runOnUiThread(new Runnable() { @Override public void run() { categoryAdapter = new CategoryAdapter(mActivity, arrayList); searchDeptSpinner.setAdapter(categoryAdapter); searchDeptSpinner.setOnItemSelectedListener(onItemSelectedListener); } }); } private Spinner.OnItemSelectedListener onItemSelectedListener = new Spinner.OnItemSelectedListener() { @Override public void onItemSelected(AdapterView parent, View view, int position, long id) { CategoryVO categoryVO = categoryArray.get(position); categoryId = categoryVO.getCategoryId(); Log.e(TAG, "categoryId -- > " + categoryId); } @Override public void onNothingSelected(AdapterView parent) { } }; /** 동의서 찾기 카테고리 리스트 **/ private void getConsentList(final String instCd, String keyWord) { CallBack callBack = new CallBack() { @Override public void result(SoapObject result) { progress.dismiss(); if (result == null || result.toString().indexOf("null") > 0 ) { } else { ArrayList arrayList = SoapParser.getConsentList(result); setConsentAdapter(arrayList); } } @Override public void stop() { } @Override public void error() { } }; HashMap mData = new HashMap(); mData.put("instCd", instCd); mData.put("keyWord", keyWord); mData.put("categoryId", categoryId); Util.callHttp(mContext, ConsentConfig.HOST_CONSENT, ConsentConfig.GET_CONSENT_SEARCH, mData, callBack); } }