Untitled
unknown
plain_text
3 years ago
18 kB
8
Indexable
class FilteredAssetsFragment : BaseFragment(R.layout.fragent_view_all_assets),
DialogScanMode.ItemClickListener,
DialogUpdateBuildingAndRoom.ItemClickListener, DialogVerifyStatus.ItemClickListener,
FilteredSubListingAdapter.ItemClickListener {
private var finalPosition: Int = -1
private val assetsViewListingAdapter: FilteredAssetsViewListingAdapter by lazy {
FilteredAssetsViewListingAdapter(
requireActivity(),
this, filteredBuildingsWithAssets
)
}
private lateinit var listAllAssetsData: List<ExeclImportTable>
private val assetListData: List<AssetDataObject> by argument(ARG_ASSETS_LIST_DATA)
private lateinit var dao: DaoAccess
private lateinit var layoutManager: LinearLayoutManager
private lateinit var listAllBuildingData: List<BuildingDataObject>
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
dao = AgentDatabase.getInstance(activity).daoAccess()
}
private lateinit var agentDatabase: AgentDatabase
private lateinit var listRoomData: List<RoomDataObject>
private lateinit var filteredRoomsWithAssets: FilteredRoomsOject
private var filteredBuildingsWithAssets: ArrayList<FilteredBuildings> = ArrayList()
var buildingId: String? = ""
var buildingName: String? = ""
private lateinit var buildingObj: BuildingDataObject
private var buildingPosition = -1
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
agentDatabase = AgentDatabase.getInstance(activity)
dao.makeNullItems()
assetListData.mapIndexed { index, syncRowX ->
buildingId = syncRowX.originalBuildingId.toString()
/*Log.e(
"buildingiD",
"" + buildingId
)*/
Log.e(
"assetListData ROOK ID", "" + assetListData[index].originalRoomId
)
}
rl_menuitem.setOnClickListener {
rl_menuitem.visibility = View.GONE
}
if (assetListData.isEmpty()) {
rv_assets_listing.isVisible = false
tv_no_assets_found.isVisible = true
} else {
rv_assets_listing.isVisible = true
tv_no_assets_found.isVisible = false
}
tv_action_continue.isVisible = false
layoutManager = LinearLayoutManager(activity, LinearLayoutManager.VERTICAL, false)
rv_assets_listing.layoutManager = layoutManager
AppExecutors.getInstance().diskIO()
.execute {
try {
listAllBuildingData =
agentDatabase.daoAccess().getAllBuildingData()
listAllBuildingData.mapIndexed { POSITION, data ->
/*Log.e(
"listAllBuildingData",
"" + data.buildingId + " " + buildingId
)*/
if (data.buildingId == buildingId) {
Log.e(
"listAllBuildingData",
"" + data.buildingId + " " + buildingId
)
//buildingName = syncRow.data.buildingName
buildingPosition = POSITION
buildingObj = data
}
}
try {
listRoomData = agentDatabase.daoAccess().getAllRoomsData()
} catch (e: Exception) {
Log.e("Exception", "" + e.printStackTrace())
}
listRoomData.mapIndexed { roomPosition, roomDataObject ->
var isRoomFound = false
val filteredAssets: ArrayList<AssetDataObject> = ArrayList()
assetListData.mapIndexed { _, syncRowX ->
if (syncRowX.updatedRoomId != null) {
if (syncRowX.updatedRoomId == roomDataObject.roomId) {
isRoomFound = true
filteredAssets.add(syncRowX)
Log.e(
"rooms",
"" + syncRowX
)
}
}
}
if (isRoomFound) {
filteredRoomsWithAssets = FilteredRoomsOject(
roomDataObject
)
filteredBuildingsWithAssets.add(
FilteredBuildings(
buildingObj,
filteredRoomsWithAssets,
filteredAssets,
buildingPosition,
roomPosition
)
)
}
}
Log.e(
"all data",
"" + filteredBuildingsWithAssets.size
)
activity?.runOnUiThread {
if (filteredBuildingsWithAssets.isNotEmpty()) {
rv_assets_listing.isVisible = true
tv_no_assets_found.isVisible = false
// tv_action_continue.isVisible = true
rv_assets_listing.adapter = assetsViewListingAdapter
} else {
tv_no_assets_found.isVisible = true
rv_assets_listing.isVisible = false
// tv_action_continue.isVisible = false
}
// progressBar.isVisible = false
}
} catch (e: Exception) {
Log.e("Exception", "" + e.printStackTrace())
}
}
rl_more.setOnClickListener(listener)
iv_back.setOnClickListener(listener)
tv_action_continue.setOnClickListener(listener)
included.tv_verify_menu.setOnClickListener(listener)
included.tv_update_building_room_menu.setOnClickListener(listener)
included.tv_export_menu.setOnClickListener(listener)
included.tv_add_assets_menu.setOnClickListener(listener)
included.tv_edit_filter_menu.setOnClickListener(listener)
included.tv_scan_mode_menu.setOnClickListener(listener)
included.tv_change_status_menu.setOnClickListener(listener)
included.tv_assets_summary_menu.setOnClickListener(listener)
included.tv_update_room_status_menu.setOnClickListener(listener)
}
private val listener = View.OnClickListener { view ->
when (view.id) {
R.id.tv_verify_menu -> {
if (finalPosition > -1) {
val dialogVerifyStatus =
DialogVerifyStatus.newInstance(
this,
latestBuildingPos,
latestRoomPos,
assetListData,
finalPosition,
latestBuildingObj,
latestRoomObj,
STATE_VERIFY
)
dialogVerifyStatus.show(childFragmentManager, "CustomDialog")
rl_menuitem.visibility = View.GONE
} else {
Utils.showToastForFragments(
requireActivity(),
"Please select atleast one asset"
)
}
}
R.id.tv_update_building_room_menu -> {
if (finalPosition > -1) {
var dialog = DialogUpdateBuildingAndRoom.newInstance(
this,
latestBuildingPos,
latestRoomPos,
assetListData,
finalPosition,
latestBuildingObj,
latestRoomObj
).show(childFragmentManager, "CustomDialog")
rl_menuitem.visibility = View.GONE
} else {
Utils.showToastForFragments(
requireActivity(),
"Please select atleast one asset"
)
}
}
R.id.tv_export_menu -> {
listAllAssetsData = agentDatabase.daoAccess().getExcelData()
if (listAllAssetsData.isNullOrEmpty()) {
Utils.showToastForFragments(
requireActivity(),
getString(R.string.please_select_atleast_one_asset)
)
} else {
val customDialogFragment = CustomDialogFragment()
customDialogFragment.isCancelable = false
customDialogFragment.show(requireActivity().supportFragmentManager, "dialog")
rl_menuitem.visibility = View.GONE
}
}
R.id.tv_add_assets_menu -> {
val intent = Intent(activity, CreateAssetsScreenActivity::class.java)
startActivity(intent)
rl_menuitem.visibility = View.GONE
}
R.id.tv_edit_filter_menu -> {}
R.id.tv_scan_mode_menu -> {}
R.id.tv_change_status_menu -> {
if (finalPosition > -1) {
val dialogVerifyStatus =
DialogVerifyStatus.newInstance(
this,
latestBuildingPos,
latestRoomPos,
assetListData,
finalPosition,
latestBuildingObj,
latestRoomObj,
STATE_CHANGE
)
dialogVerifyStatus.show(childFragmentManager, "CustomDialog")
rl_menuitem.visibility = View.GONE
} else {
Utils.showToastForFragments(
requireActivity(),
"Please select atleast one asset"
)
}
}
R.id.tv_assets_summary_menu -> {
parentFragmentManager?.doTransaction {
add(
R.id.fl_dashboard,
AssetsSummaryFragment.newInstance()
)
}
rl_menuitem.visibility = View.GONE
}
R.id.tv_update_room_status_menu -> {
parentFragmentManager?.doTransaction {
add(
R.id.fl_dashboard,
AssetsRoomStatusListingFragment.newInstance()
)
}
rl_menuitem.visibility = View.GONE
}
R.id.rl_more -> {
if (rl_menuitem.isVisible) {
rl_menuitem.visibility = View.GONE
} else {
rl_menuitem.visibility = View.VISIBLE
}
}
R.id.iv_back -> {
parentFragmentManager.popBackStack()
}
R.id.tv_action_continue -> {
var dialog = DialogScanMode.newInstance(
this
).show(childFragmentManager, "CustomDialog")
}
}
}
fun FragmentManager.doTransaction(
func: FragmentTransaction.() ->
FragmentTransaction
) {
beginTransaction().func().addToBackStack(null).commit()
}
override fun onViewDetailsClick(
position: Int,
name: String,
assetDataObject: AssetDataObject,
assets: ArrayList<AssetDataObject>
) {
var mFinalVal: String = ""
AppExecutors.getInstance().diskIO()
.execute {
try {
val originalBuildingDataObject =
dao.getBuildingName(assetDataObject.updatedBuildingId.toString())
val originalRoomDataObject =
dao.getRoomData(assetDataObject.updatedRoomId.toString())
mFinalVal =
originalBuildingDataObject.buildingName + " " + originalRoomDataObject.roomNumber
activity?.runOnUiThread {
parentFragmentManager?.doTransaction {
add(
R.id.fl_dashboard,
AssetsViewFragment.newInstance(
mFinalVal,
assetDataObject,
assets
)
)
}
}
} catch (e: Exception) {
e.printStackTrace()
}
}
}
lateinit var latestBuildingObj: BuildingDataObject
lateinit var latestRoomObj: RoomDataObject
var latestBuildingPos: Int = -1
var latestRoomPos: Int = -1
override fun onCheckBoxClick(
position: Int,
buildingObj: BuildingDataObject,
roomObj: FilteredRoomsOject,
buildingPosition: Int,
roomPosition: Int,
shouldRefresh: Boolean
) {
finalPosition = position
latestBuildingObj = buildingObj
latestRoomObj = roomObj.filteredRoomObject
latestBuildingPos = buildingPosition
latestRoomPos = roomPosition
if (shouldRefresh) {
filteredBuildingsWithAssets.mapIndexed { index, filteredBuildings ->
if (index != latestBuildingPos) {
//filteredBuildings.isExpended = false
filteredBuildings.assets.mapIndexed { _, assetDataObject ->
if (assetDataObject.isSelected != null) {
assetDataObject.isSelected = null
}
}
}
}
assetsViewListingAdapter.notifyDataSetChanged()
}
}
override fun onScannerViaRFIDClick() {
parentFragmentManager?.doTransaction {
add(
R.id.fl_scanner,
ScannerModeFragment.newInstance()
)
}
}
override fun onBarCodeClick() {
val intent = Intent(activity, ScannerSelfAssignmentActivity::class.java)
startActivity(intent)
}
override fun onPhoneScannerClick() {
val intent = Intent(activity, ScannerSelfAssignmentActivity::class.java)
startActivity(intent)
}
companion object {
private const val ARG_ASSETS_LIST_DATA = "assetData"
fun newInstance(
arrayList: List<AssetDataObject>
) =
FilteredAssetsFragment().apply {
arguments = bundleOf(
ARG_ASSETS_LIST_DATA to arrayList
)
}
}
override fun onCancel() {
}
override fun onSave(
buildingDataObj: BuildingDataObject,
roomDataObj: RoomDataObject,
assetListData: List<AssetDataObject>
) {
}
private lateinit var dataList: List<AssetDataObject>
/* override fun onSave(
buildingDataObj: BuildingDataObject,
roomDataObj: RoomDataObject,
assetListData: List<AssetDataObject>
) {
activity?.runOnUiThread {
progressBar.isVisible = true
}
Log.d("building_obj", "" + buildingDataObj + " " + roomDataObj + " " + assetListData.size)
AppExecutors.getInstance().diskIO()
.execute {
try {
dataList = AgentDatabase.getInstance(activity).daoAccess()
.getAssetAccordingToBuildingAndRoom(
"%" + buildingDataObj.buildingId + "%",
"%" + roomDataObj.roomId.toString() + "%"
)
Log.d("dataList", "dataList" + dataList.size)
activity?.runOnUiThread {
progressBar.isVisible = false
if (!dataList.isNullOrEmpty()) {
rv_assets_listing.isVisible = true
tv_no_assets_found.isVisible = false
tv_action_continue.isVisible = true
assetsViewListingAdapter = FilteredAssetsViewListingAdapter(
requireActivity(),
this, filteredBuildingsWithAssets
)
rv_assets_listing.adapter = assetsViewListingAdapter
} else {
rv_assets_listing.isVisible = false
tv_no_assets_found.isVisible = true
// tv_action_continue.isVisible = false
}
}
} catch (e: Exception) {
e.printStackTrace()
}
}
}*/
override fun onResume() {
super.onResume()
}
override fun onCancelClick() {
}
override fun onVerifyClick() {
}
}
Editor is loading...