Untitled
unknown
plain_text
2 years ago
45 kB
1
Indexable
class FilterFragment : BaseFragment(R.layout.fragment_filters), FiltersAdapter.ItemClickListener { private var isDataForAssetClass: Boolean = false private var isDataForUpdatedBuilding: Boolean = false private var isDataForUpdatedRoom: Boolean = false private var spinnerFilterSelected: Boolean? = false private var spinnerFilterName: String? = "" private var filtersObjListing: ArrayList<FiltersObject> = ArrayList() private lateinit var listAllBuildingData: List<BuildingDataObject> private lateinit var listAllRoomData: List<RoomDataObject> private var isSpinnerTouched = false private lateinit var agentDatabase: AgentDatabase private var roomPosition: Int? = null private var updatedRoomPosition: Int? = null private var updatedBuildingPosition: Int? = null private var buildingPosition: Int? = null private var roomDataObj: RoomDataObject? = null private var buildingDataObj: BuildingDataObject? = null private var updatedRoomDataObj: RoomDataObject? = null private var updatedBuildingDataObj: BuildingDataObject? = null private var roomNumber: String? = "" private var roomName: String? = "" private lateinit var buildingName: String private lateinit var updatedBuildingName: String private var isDataForBuilding: Boolean = false private var isDataForRoom: Boolean = false private lateinit var buildingId: String private lateinit var updatedBuildingId: String private var departmentDataObj: DepartmentDataObject? = null private var custodiansDataObj: CustodiansDataObject? = null private var departmentID: String? = "" private var departmentName: String? = "" private var custodiansID: String? = "" private var custodiansName: String? = "" private var isDataForCustodians: Boolean = false private var isDataForDepartment: Boolean = false private lateinit var listingSyncAllDepartment: List<DepartmentDataObject> private lateinit var listingSyncAllCustodians: List<CustodiansDataObject> private var statusObjListing: java.util.ArrayList<StatusObj> = java.util.ArrayList() private var isSpinnerTouchedForStatus = false private var spinnerStatusKey: String? = "" private var spinnerStatusVal: String? = "" private val filtersAdapter: FiltersAdapter by lazy { FiltersAdapter(requireActivity(), filtersObjListing, this) } private val adapter: CustomRoomAdapter by lazy { CustomRoomAdapter(requireActivity(), R.id.tv_spinner_item, listAllRoomData) } private val updatedRoomsAdapter: UpdatedRoomAdapter by lazy { UpdatedRoomAdapter(requireActivity(), R.id.tv_spinner_item, listAllRoomData) } private val buildingAdapter: BuildingAdapter by lazy { BuildingAdapter(requireActivity(), R.id.tv_spinner_item, listAllBuildingData) } private val updatedBuildingAdapter: UpdatedBuildingAdapter by lazy { UpdatedBuildingAdapter(requireActivity(), R.id.tv_spinner_item, listAllBuildingData) } private val departmentAdapter: DepartmentAdapter by lazy { DepartmentAdapter(requireActivity(), R.id.tv_spinner_item, listingSyncAllDepartment) } private val custodiansAdapter: CustodiansAdapter by lazy { CustodiansAdapter(requireActivity(), R.id.tv_spinner_item, listingSyncAllCustodians) } private val verifyAssetStatusAdapter: VerifyAssetStatusAdapter by lazy { VerifyAssetStatusAdapter(requireActivity(), statusObjListing) } override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) addValuesToList() addDataToList() increaseCursorSize() setClickListeners() addTextWatcherListener() agentDatabase = AgentDatabase.getInstance(activity) AppExecutors.getInstance().diskIO() .execute { try { listAllBuildingData = agentDatabase.daoAccess().getAllBuildingData() activity?.runOnUiThread { autocompletetextview.setAdapter(buildingAdapter) } activity?.runOnUiThread { autocompletetextviewUpdatedBuild.setAdapter(updatedBuildingAdapter) } } catch (e: Exception) { Log.e("Exception", "" + e.printStackTrace()) } try { listAllRoomData = agentDatabase.daoAccess().getAllRoomsData() activity?.runOnUiThread { autocompletetextviewRoom.setAdapter(adapter) } activity?.runOnUiThread { autocompletetextviewRoomUpdated.setAdapter(updatedRoomsAdapter) } } catch (e: Exception) { Log.e("Exception", "" + e.printStackTrace()) } try { listingSyncAllDepartment = agentDatabase.daoAccess().getAllDepartments() activity?.runOnUiThread { autocompletetextviewDepartments.setAdapter(departmentAdapter) } } catch (e: Exception) { Log.e("Exception", "" + e.printStackTrace()) } try { listingSyncAllCustodians = agentDatabase.daoAccess().getAllCustodians() activity?.runOnUiThread { autocompletetextviewCustodians.setAdapter(custodiansAdapter) } } catch (e: Exception) { Log.e("Exception", "" + e.printStackTrace()) } } sp_filters.setOnTouchListener { _, _ -> sp_filters.adapter = filtersAdapter isSpinnerTouched = true false } sp_filters.adapter = filtersAdapter sp_filters?.onItemSelectedListener = object : AdapterView.OnItemSelectedListener { override fun onNothingSelected(parent: AdapterView<*>?) { } override fun onItemSelected( parent: AdapterView<*>?, view: View?, position: Int, id: Long ) { if (!isSpinnerTouched) return sp_filters.setSelection(0) val filtersObject: FiltersObject = filtersAdapter.getItem(position) spinnerFilterName = filtersObject.filterName spinnerFilterSelected = filtersObject.isSelected checkAllTheMandatoryFieldsAreFilledOrNot() } } } private fun addDataToList() { statusObjListing.clear() statusObjListing.add(StatusObj("Please select", "Please select")) statusObjListing.add(StatusObj(" ", "Not Accounted For")) statusObjListing.add(StatusObj("Y", "Accounted")) statusObjListing.add(StatusObj("NA", "Not Active")) statusObjListing.add(StatusObj("PS", "Pending Surplus")) statusObjListing.add(StatusObj("VNS", "Verified Not Scanned")) statusObjListing.add(StatusObj("W/T", "Wrong Tag")) statusObjListing.add(StatusObj("NT", "Not Tagged")) statusObjListing.add(StatusObj("UT", "Untaggable")) statusObjListing.add(StatusObj("OS", "Off-Site")) } private fun setClickListeners() { tv_remove_building.setOnClickListener(listener) tv_remove_room.setOnClickListener(listener) tv_remove_accounted_for.setOnClickListener(listener) tv_remove_custodians.setOnClickListener(listener) tv_remove_department.setOnClickListener(listener) tv_remove_updated_building.setOnClickListener(listener) tv_remove_updated_room.setOnClickListener(listener) tv_remove_asset_class.setOnClickListener(listener) tv_action_search.setOnClickListener(listener) autocompletetextview.setOnItemClickListener { _, _, position, _ -> buildingDataObj = (buildingAdapter?.getItem(position) as BuildingDataObject?)!! buildingPosition = position Utils.hideSoftKeyboard(requireActivity(), autocompletetextview) autocompletetextview.setText(buildingDataObj?.buildingName) buildingName = buildingDataObj?.buildingName.toString() buildingId = buildingDataObj?.buildingId.toString() Log.e("building id", "" + buildingId) autocompletetextview.setSelection(autocompletetextview.length()) isDataForBuilding = true checkAllTheMandatoryFieldsAreFilledOrNot() } autocompletetextviewRoom.setOnItemClickListener { _, _, position, _ -> roomDataObj = (adapter.getItem(position) as RoomDataObject?)!! roomPosition = position Utils.hideSoftKeyboard(requireActivity(), autocompletetextview) roomName = roomDataObj?.roomName roomNumber = roomDataObj?.roomNumber autocompletetextviewRoom.setText("(#$roomNumber)$roomName") autocompletetextviewRoom.setSelection(autocompletetextviewRoom.length()) isDataForRoom = true textInputLayoutRooms.endIconMode = TextInputLayout.END_ICON_DROPDOWN_MENU // may be set in xml checkAllTheMandatoryFieldsAreFilledOrNot() textInputLayoutRooms.setEndIconOnClickListener { autocompletetextviewRoom.showDropDown() } } autocompletetextviewCustodians.setOnItemClickListener { _, _, position, _ -> custodiansDataObj = (custodiansAdapter.getItem(position) as CustodiansDataObject?)!! Utils.hideSoftKeyboard(requireActivity(), autocompletetextviewCustodians) custodiansName = custodiansDataObj?.name custodiansID = custodiansDataObj?.custodianId autocompletetextviewCustodians.setText(custodiansName) isDataForCustodians = true checkAllTheMandatoryFieldsAreFilledOrNot() autocompletetextviewCustodians.setSelection(autocompletetextviewCustodians.length()) } autocompletetextviewDepartments.setOnItemClickListener { _, _, position, _ -> departmentDataObj = (departmentAdapter.getItem(position) as DepartmentDataObject?)!! Utils.hideSoftKeyboard(requireActivity(), autocompletetextviewDepartments) departmentName = departmentDataObj?.departmentName departmentID = departmentDataObj?.departmentId autocompletetextviewDepartments.setText(departmentName) isDataForDepartment = true checkAllTheMandatoryFieldsAreFilledOrNot() autocompletetextviewDepartments.setSelection(autocompletetextviewDepartments.length()) } autocompletetextviewUpdatedBuild.setOnItemClickListener { _, _, position, _ -> updatedBuildingDataObj = (updatedBuildingAdapter?.getItem(position) as BuildingDataObject?)!! updatedBuildingPosition = position Utils.hideSoftKeyboard(requireActivity(), autocompletetextviewUpdatedBuild) autocompletetextviewUpdatedBuild.setText(updatedBuildingDataObj?.buildingName) updatedBuildingName = updatedBuildingDataObj?.buildingName.toString() updatedBuildingId = updatedBuildingDataObj?.buildingId.toString() autocompletetextviewUpdatedBuild.setSelection(autocompletetextviewUpdatedBuild.length()) isDataForUpdatedBuilding = true checkAllTheMandatoryFieldsAreFilledOrNot() } autocompletetextviewRoomUpdated.setOnItemClickListener { _, _, position, _ -> updatedRoomDataObj = (updatedRoomsAdapter.getItem(position) as RoomDataObject?)!! updatedRoomPosition = position Utils.hideSoftKeyboard(requireActivity(), autocompletetextviewRoomUpdated) roomName = updatedRoomDataObj?.roomName roomNumber = updatedRoomDataObj?.roomNumber autocompletetextviewRoomUpdated.setText("(#$roomNumber)$roomName") autocompletetextviewRoomUpdated.setSelection(autocompletetextviewRoomUpdated.length()) isDataForUpdatedRoom = true textInputLayoutUpdatedRooms.endIconMode = TextInputLayout.END_ICON_DROPDOWN_MENU // may be set in xml textInputLayoutUpdatedRooms.setEndIconOnClickListener { autocompletetextviewRoomUpdated.showDropDown() } checkAllTheMandatoryFieldsAreFilledOrNot() } sp_status.setOnTouchListener { _, _ -> isSpinnerTouchedForStatus = true false } sp_status.adapter = verifyAssetStatusAdapter sp_status?.onItemSelectedListener = object : AdapterView.OnItemSelectedListener { override fun onNothingSelected(parent: AdapterView<*>?) { } override fun onItemSelected( parent: AdapterView<*>?, view: View?, position: Int, id: Long ) { if (!isSpinnerTouched) return val spinnerStatus: StatusObj = verifyAssetStatusAdapter.getItem(position) spinnerStatusKey = spinnerStatus.statusKey spinnerStatusVal = spinnerStatus.statusValue checkAllTheMandatoryFieldsAreFilledOrNot() } } } private fun checkAllTheMandatoryFieldsAreFilledOrNot() { if (ll_parent_building.isVisible && isDataForBuilding) { tv_action_search.alpha = 1f } if (ll_parent_room.isVisible && isDataForRoom) { tv_action_search.alpha = 1f } if (ll_parent_department.isVisible && isDataForDepartment) { tv_action_search.alpha = 1f } if (ll_parent_custodians.isVisible && isDataForCustodians) { tv_action_search.alpha = 1f } if (ll_parent_accounted_for.isVisible && !spinnerStatusKey.equals("")) { tv_action_search.alpha = 1f } if (ll_parent_asset_class.isVisible && !et_asset_class.text.toString().trim().equals("")) { tv_action_search.alpha = 1f } if (ll_parent_updated_building.isVisible && isDataForUpdatedBuilding) { tv_action_search.alpha = 1f } if (ll_parent_updated_room.isVisible && isDataForUpdatedRoom) { tv_action_search.alpha = 1f } } private fun addTextWatcherListener() { autocompletetextview.addTextChangedListener(object : TextWatcher { override fun afterTextChanged(s: Editable?) { } override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) { } override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) { if (s?.length!! > 0) { isDataForBuilding = false tv_action_search.alpha = 0.5f checkAllTheMandatoryFieldsAreFilledOrNot() } else { isDataForBuilding = false tv_action_search.alpha = 0.5f checkAllTheMandatoryFieldsAreFilledOrNot() } } }) autocompletetextviewRoom.addTextChangedListener(object : TextWatcher { override fun afterTextChanged(s: Editable?) { } override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) { } override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) { if (s?.length!! > 0) { tv_action_search.alpha = 0.5f isDataForRoom = false checkAllTheMandatoryFieldsAreFilledOrNot() } else { tv_action_search.alpha = 0.5f isDataForRoom = false checkAllTheMandatoryFieldsAreFilledOrNot() } } }) autocompletetextviewUpdatedBuild.addTextChangedListener(object : TextWatcher { override fun afterTextChanged(s: Editable?) { } override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) { } override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) { if (s?.length!! > 0) { isDataForUpdatedBuilding = false tv_action_search.alpha = 0.5f checkAllTheMandatoryFieldsAreFilledOrNot() } else { isDataForUpdatedBuilding = false checkAllTheMandatoryFieldsAreFilledOrNot() tv_action_search.alpha = 0.5f } } }) autocompletetextviewRoomUpdated.addTextChangedListener(object : TextWatcher { override fun afterTextChanged(s: Editable?) { } override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) { } override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) { if (s?.length!! > 0) { tv_action_search.alpha = 0.5f isDataForUpdatedRoom = false checkAllTheMandatoryFieldsAreFilledOrNot() } else { tv_action_search.alpha = 0.5f isDataForUpdatedRoom = false checkAllTheMandatoryFieldsAreFilledOrNot() } } }) autocompletetextviewDepartments.addTextChangedListener(object : TextWatcher { override fun afterTextChanged(s: Editable?) { } override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) { } override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) { isDataForDepartment = false checkAllTheMandatoryFieldsAreFilledOrNot() } }) et_asset_class.addTextChangedListener(object : TextWatcher { override fun afterTextChanged(s: Editable?) { } override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) { } override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) { if (s?.length!! > 0) { tv_action_search.alpha = 0.5f isDataForAssetClass = true checkAllTheMandatoryFieldsAreFilledOrNot() } else { tv_action_search.alpha = 0.5f isDataForAssetClass = false checkAllTheMandatoryFieldsAreFilledOrNot() } } }) autocompletetextviewCustodians.addTextChangedListener(object : TextWatcher { override fun afterTextChanged(s: Editable?) { } override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) { } override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) { isDataForCustodians = false checkAllTheMandatoryFieldsAreFilledOrNot() } }) } private fun updateObjForAsset(filterType: String) { filtersObjListing.mapIndexed { _, filtersObject -> if (filtersObject.filterName == resources.getString(R.string.building) && filtersObject.isSelected && filterType == resources.getString( R.string.building ) ) { filtersObject.isSelected = false } else if (filtersObject.filterName == resources.getString(R.string.label_room_small) && filtersObject.isSelected && filterType == resources.getString( R.string.label_room_small ) ) { filtersObject.isSelected = false } else if (filtersObject.filterName == resources.getString(R.string.department_small) && filtersObject.isSelected && filterType == resources.getString( R.string.department_small ) ) { filtersObject.isSelected = false } else if (filtersObject.filterName == resources.getString(R.string.custodian_small) && filtersObject.isSelected && filterType == resources.getString( R.string.custodian_small ) ) { filtersObject.isSelected = false } else if (filtersObject.filterName == resources.getString(R.string.asset_class) && filtersObject.isSelected && filterType == resources.getString( R.string.asset_class ) ) { filtersObject.isSelected = false } else if (filtersObject.filterName == resources.getString(R.string.accounted_for) && filtersObject.isSelected && filterType == resources.getString( R.string.accounted_for ) ) { filtersObject.isSelected = false } else if (filtersObject.filterName == resources.getString(R.string.updated_building) && filtersObject.isSelected && filterType == resources.getString( R.string.updated_building ) ) { filtersObject.isSelected = false } else if (filtersObject.filterName == resources.getString(R.string.updated_room) && filtersObject.isSelected && filterType == resources.getString( R.string.updated_room ) ) { filtersObject.isSelected = false } } filtersAdapter.updateList(filtersObjListing) } private val listener = View.OnClickListener { view -> when (view.id) { R.id.tv_action_search -> { if (tv_action_search.alpha == 1f) { if (checkValidation()) { fetchResultBasedOnFilters() } } } R.id.tv_remove_building -> { ll_parent_building.isVisible = false autocompletetextview.setText("") mFinalBuildingId = "" buildingDataObj = null filtersObjListing.mapIndexed { _, filtersObject -> if (filtersObject.filterName == resources.getString(R.string.building) && filtersObject.isSelected) { filtersObject.isSelected = false } } filtersAdapter.updateList(filtersObjListing) checkAllTheMandatoryFieldsAreFilledOrNot() //updateObjForAsset(resources.getString(R.string.building)) } R.id.tv_remove_room -> { ll_parent_room.isVisible = false autocompletetextviewRoom.setText("") mFinalRoomId = "" roomDataObj = null filtersObjListing.mapIndexed { _, filtersObject -> if (filtersObject.filterName == resources.getString(R.string.label_room_small) && filtersObject.isSelected) { filtersObject.isSelected = false } } checkAllTheMandatoryFieldsAreFilledOrNot() filtersAdapter.updateList(filtersObjListing) //updateObjForAsset(resources.getString(R.string.label_room_small)) } R.id.tv_remove_department -> { autocompletetextviewDepartments.setText("") ll_parent_department.isVisible = false departmentID = "" departmentDataObj = null filtersObjListing.mapIndexed { _, filtersObject -> if (filtersObject.filterName == resources.getString(R.string.department_small) && filtersObject.isSelected) { filtersObject.isSelected = false } } checkAllTheMandatoryFieldsAreFilledOrNot() filtersAdapter.updateList(filtersObjListing) ///updateObjForAsset(resources.getString(R.string.department_small)) } R.id.tv_remove_custodians -> { autocompletetextviewCustodians.setText("") ll_parent_custodians.isVisible = false custodiansID = "" custodiansDataObj = null filtersObjListing.mapIndexed { _, filtersObject -> if (filtersObject.filterName == resources.getString(R.string.custodian_small) && filtersObject.isSelected) { filtersObject.isSelected = false } } checkAllTheMandatoryFieldsAreFilledOrNot() filtersAdapter.updateList(filtersObjListing) // updateObjForAsset(resources.getString(R.string.custodian_small)) } R.id.tv_remove_asset_class -> { et_asset_class.setText("") ll_parent_asset_class.isVisible = false filtersObjListing.mapIndexed { _, filtersObject -> if (filtersObject.filterName == resources.getString(R.string.asset_class) && filtersObject.isSelected) { filtersObject.isSelected = false } } filtersAdapter.updateList(filtersObjListing) checkAllTheMandatoryFieldsAreFilledOrNot() //updateObjForAsset(resources.getString(R.string.asset_class)) } R.id.tv_remove_accounted_for -> { sp_status.setSelection(0) ll_parent_accounted_for.isVisible = false spinnerStatusKey = "" filtersObjListing.mapIndexed { _, filtersObject -> if (filtersObject.filterName == resources.getString(R.string.accounted_for) && filtersObject.isSelected) { filtersObject.isSelected = false } } filtersAdapter.updateList(filtersObjListing) checkAllTheMandatoryFieldsAreFilledOrNot() // updateObjForAsset(resources.getString(R.string.accounted_for)) } R.id.tv_remove_updated_building -> { autocompletetextviewUpdatedBuild.setText("") ll_parent_updated_building.isVisible = false mFinalUpdatedBuildingId = "" updatedBuildingDataObj = null filtersObjListing.mapIndexed { _, filtersObject -> if (filtersObject.filterName == resources.getString(R.string.updated_building) && filtersObject.isSelected) { filtersObject.isSelected = false } } filtersAdapter.updateList(filtersObjListing) checkAllTheMandatoryFieldsAreFilledOrNot() //updateObjForAsset(resources.getString(R.string.updated_building)) } R.id.tv_remove_updated_room -> { autocompletetextviewRoomUpdated.setText("") ll_parent_updated_room.isVisible = false mFinalUpdatedRoomId = "" updatedRoomDataObj = null filtersObjListing.mapIndexed { _, filtersObject -> if (filtersObject.filterName == resources.getString(R.string.updated_room) && filtersObject.isSelected) { filtersObject.isSelected = false } } filtersAdapter.updateList(filtersObjListing) checkAllTheMandatoryFieldsAreFilledOrNot() //updateObjForAsset(resources.getString(R.string.updated_room)) } } } private lateinit var dataList: List<AssetDataObject> private fun checkValidation(): Boolean { if (buildingDataObj != null) { mFinalBuildingId = if (buildingDataObj?.buildingId == null) { buildingDataObj?.buildingId.toString().replace("null", "") } else { buildingDataObj?.buildingId.toString() } } if (roomDataObj != null) { mFinalRoomId = if (roomDataObj?.roomId == null) { roomDataObj?.roomId.toString().replace("null", "") } else { roomDataObj?.roomId.toString() } } if (updatedBuildingDataObj != null) { mFinalUpdatedBuildingId = if (updatedBuildingDataObj?.buildingId == null) { updatedBuildingDataObj?.buildingId.toString().replace("null", "") } else { updatedBuildingDataObj?.buildingId.toString() } } if (updatedRoomDataObj != null) { mFinalUpdatedRoomId = if (updatedRoomDataObj?.roomId == null) { updatedRoomDataObj?.roomId.toString().replace("null", "") } else { updatedRoomDataObj?.roomId.toString() } } if (ll_parent_building.visibility == VISIBLE && mFinalBuildingId == "") { Utils.showToastForFragments(requireActivity(), "Please select building") tv_action_search.alpha = 0.5f return false } else if (ll_parent_room.visibility == VISIBLE && mFinalRoomId == "") { Utils.showToastForFragments(requireActivity(), "Please select room") tv_action_search.alpha = 0.5f return false } else if (ll_parent_department.visibility == VISIBLE && departmentID == "") { Utils.showToastForFragments(requireActivity(), "Please select department") tv_action_search.alpha = 0.5f return false } else if (ll_parent_custodians.visibility == VISIBLE && custodiansID == "") { Utils.showToastForFragments(requireActivity(), "Please select custodian") tv_action_search.alpha = 0.5f return false } else if (ll_parent_asset_class.visibility == VISIBLE && et_asset_class.text.toString() .trim() == "" ) { Utils.showToastForFragments(requireActivity(), "Please enter asset class") tv_action_search.alpha = 0.5f return false } else if (ll_parent_accounted_for.visibility == VISIBLE && spinnerStatusKey == "Please select") { Utils.showToastForFragments(requireActivity(), "Please select accounted for") tv_action_search.alpha = 0.5f return false } else if (ll_parent_updated_building.visibility == VISIBLE && mFinalUpdatedBuildingId == "") { Utils.showToastForFragments(requireActivity(), "Please select updated building") tv_action_search.alpha = 0.5f return false } else if (ll_parent_updated_room.visibility == VISIBLE && mFinalUpdatedRoomId == "") { Utils.showToastForFragments(requireActivity(), "Please select updated room") tv_action_search.alpha = 0.5f return false } /*else { tv_action_search.alpha = 0.5f return false }*/ return true } var mFinalBuildingId: String = "" var mFinalRoomId: String = "" var mFinalUpdatedBuildingId: String = "" var mFinalUpdatedRoomId: String = "" private fun fetchResultBasedOnFilters() { if (buildingDataObj != null) { mFinalBuildingId = if (buildingDataObj?.buildingId == null) { buildingDataObj?.buildingId.toString().replace("null", "") } else { buildingDataObj?.buildingId.toString() } } if (roomDataObj != null) { mFinalRoomId = if (roomDataObj?.roomId == null) { roomDataObj?.roomId.toString().replace("null", "") } else { roomDataObj?.roomId.toString() } } if (updatedBuildingDataObj != null) { mFinalUpdatedBuildingId = if (updatedBuildingDataObj?.buildingId == null) { updatedBuildingDataObj?.buildingId.toString().replace("null", "") } else { updatedBuildingDataObj?.buildingId.toString() } } if (updatedRoomDataObj != null) { mFinalUpdatedRoomId = if (updatedRoomDataObj?.roomId == null) { updatedRoomDataObj?.roomId.toString().replace("null", "") } else { updatedRoomDataObj?.roomId.toString() } } activity?.runOnUiThread { progressBar.isVisible = true } AppExecutors.getInstance().diskIO() .execute { try { // Query string var queryString = String() val args = ArrayList<String>() var containsCondition = false queryString += "SELECT * FROM all_assets WHERE 1" // Optional parts are added to query string and to args upon here if (mFinalBuildingId.isNotEmpty()) { queryString += " AND originalBuildingId = ? " args.add(mFinalBuildingId) containsCondition = true } if (mFinalRoomId.isNotEmpty()) { if (containsCondition) { queryString += " AND" } else { queryString += " AND" containsCondition = true } queryString += " originalRoomId = ? " args.add(mFinalRoomId) } if (departmentID.toString().isNotEmpty()) { if (containsCondition) { queryString += " AND" } else { queryString += " AND" containsCondition = true } queryString += " departmentId = ? " args.add(departmentID.toString()) } if (custodiansID.toString().isNotEmpty()) { if (containsCondition) { queryString += " AND" } else { queryString += " AND" containsCondition = true } queryString += " custodianId = ? " args.add(departmentID.toString()) } if (et_asset_class.text.toString().trim().isNotEmpty()) { if (containsCondition) { queryString += " AND" } else { queryString += " AND" containsCondition = true } queryString += " assetClass = ? " args.add(et_asset_class.text.toString().trim()) } if (spinnerStatusKey?.isNotEmpty()!!) { if (containsCondition) { queryString += " AND" } else { queryString += " AND" containsCondition = true } queryString += " accountedForStatus = ? " args.add(spinnerStatusKey!!) } if (mFinalUpdatedBuildingId.isNotEmpty()) { if (containsCondition) { queryString += " AND" } else { queryString += " AND" containsCondition = true } queryString += " updatedBuildingId = ? " args.add(departmentID.toString()) } if (mFinalUpdatedRoomId.isNotEmpty()) { if (containsCondition) { queryString += " AND" } else { queryString += " AND" containsCondition = true } queryString += " updatedRoomId = ? " args.add(departmentID.toString()) } // End of query string Log.d("tags:", "" + queryString) Log.d("args:", "" + args.toString()) Log.d("args:", "" + args.toArray()) val query = SimpleSQLiteQuery(queryString, args.toArray()) Log.d("query:", "" + query.sql.toString()) dataList = AgentDatabase.getInstance(activity).daoAccess() .getAssetsAccordingToFilter(query) Log.d("dataList", "dataList" + dataList.size) Log.d( "dataList", "dataList" + "mFinalRoomId " + mFinalRoomId + "mFinalBuildingId " + mFinalBuildingId + "mFinalDepartmentId " + departmentID.toString() + "mFinalCustodians " + custodiansID.toString() + "mSpinnerStiatusKeyId " + spinnerStatusKey + "mFinalUpdatedBuildId " + mFinalUpdatedBuildingId + "mFinalUpdatedRoomId " + mFinalUpdatedRoomId + " asset class " + et_asset_class.text.toString().trim() ) if (dataList.isNotEmpty()) { activity?.runOnUiThread(Runnable { progressBar.isVisible = false AgentDatabase.getInstance(requireActivity()).daoAccess().makeNullItems() parentFragmentManager.doTransaction { add( R.id.fl_dashboard, FilteredAssetsFragment.newInstance(dataList) ) } }) } else { activity?.runOnUiThread { progressBar.isVisible = false Utils.showToastForFragments( requireActivity(), "No Assets found, please choose different filter" ) } } } catch (e: Exception) { e.printStackTrace() } } } private fun increaseCursorSize() { try { val field: Field = CursorWindow::class.java.getDeclaredField("sCursorWindowSize") field.isAccessible = true field.set(null, 500 * 1024 * 1024) //the 100MB is the new size } catch (e: java.lang.Exception) { e.printStackTrace() } } fun FragmentManager.doTransaction( func: FragmentTransaction.() -> FragmentTransaction ) { beginTransaction().func().addToBackStack(null).commit() } private fun addValuesToList() { filtersObjListing.add(FiltersObject("Please select", false)) filtersObjListing.add(FiltersObject("Building", false)) filtersObjListing.add(FiltersObject("Room", false)) filtersObjListing.add(FiltersObject("Department", false)) filtersObjListing.add(FiltersObject("Custodian", false)) filtersObjListing.add(FiltersObject("Asset Class", false)) filtersObjListing.add(FiltersObject("Accounted For", false)) filtersObjListing.add(FiltersObject("Updated Building", false)) filtersObjListing.add(FiltersObject("Updated Room", false)) } //2 companion object { fun newInstance(): FilterFragment { return FilterFragment() } } private fun hideSpinnerDropDown(spinner: Spinner?) { try { val method: Method = Spinner::class.java.getDeclaredMethod("onDetachedFromWindow") method.isAccessible = true method.invoke(spinner) } catch (e: Exception) { e.printStackTrace() } } override fun onItemClick(position: Int, filtersObject: FiltersObject) { hideSpinnerDropDown(sp_filters) checkAllTheMandatoryFieldsAreFilledOrNot() if (filtersObject.isSelected) { when (filtersObject.filterName) { activity?.resources?.getString(R.string.building) -> { ll_parent_building.isVisible = true } activity?.resources?.getString(R.string.label_room_small) -> { ll_parent_room.isVisible = true } activity?.resources?.getString(R.string.department_small) -> { ll_parent_department.isVisible = true } activity?.resources?.getString(R.string.custodian_small) -> { ll_parent_custodians.isVisible = true } activity?.resources?.getString(R.string.asset_class) -> { ll_parent_asset_class.isVisible = true } activity?.resources?.getString(R.string.accounted_for) -> { ll_parent_accounted_for.isVisible = true } activity?.resources?.getString(R.string.updated_building) -> { ll_parent_updated_building.isVisible = true } activity?.resources?.getString(R.string.updated_room) -> { ll_parent_updated_room.isVisible = true } } } else { when (filtersObject.filterName) { activity?.resources?.getString(R.string.building) -> { ll_parent_building.isVisible = false } activity?.resources?.getString(R.string.label_room_small) -> { ll_parent_room.isVisible = false } activity?.resources?.getString(R.string.department_small) -> { ll_parent_department.isVisible = false } activity?.resources?.getString(R.string.custodian_small) -> { ll_parent_custodians.isVisible = false } activity?.resources?.getString(R.string.asset_class) -> { ll_parent_asset_class.isVisible = false } activity?.resources?.getString(R.string.accounted_for) -> { ll_parent_accounted_for.isVisible = false } activity?.resources?.getString(R.string.updated_building) -> { ll_parent_updated_building.isVisible = false } activity?.resources?.getString(R.string.updated_room) -> { ll_parent_updated_room.isVisible = false } } } } }
Editor is loading...