From f648ac29fc352dec4a3c2f24b7c8f0020ad1550a Mon Sep 17 00:00:00 2001 From: meiron03 Date: Sun, 21 Apr 2024 15:59:39 -0400 Subject: [PATCH] Code cleanup, ui fixes, and added padding to end of rv for fragment_subletter_posted_listings.xml to fix the cutoff issue (needs more investigation tho). --- .../SubletterPostedListingsFragment.kt | 34 +++++++++++++------ .../pennmobile/SublettingHolderFragment.kt | 12 ------- .../adapters/PostedSubletsListAdapter.kt | 25 +++++--------- .../fragment_subletter_posted_listings.xml | 20 ++++++----- .../main/res/layout/subletting_cardview.xml | 2 +- 5 files changed, 45 insertions(+), 48 deletions(-) diff --git a/PennMobile/src/main/java/com/pennapps/labs/pennmobile/Subletting/SubletterPostedListingsFragment.kt b/PennMobile/src/main/java/com/pennapps/labs/pennmobile/Subletting/SubletterPostedListingsFragment.kt index c34f974be..6684f8c53 100644 --- a/PennMobile/src/main/java/com/pennapps/labs/pennmobile/Subletting/SubletterPostedListingsFragment.kt +++ b/PennMobile/src/main/java/com/pennapps/labs/pennmobile/Subletting/SubletterPostedListingsFragment.kt @@ -31,7 +31,6 @@ class SubletterPostedListingsFragment() : Fragment() { //api manager private lateinit var mStudentLife: StudentLife - private lateinit var mActivity: MainActivity override fun onCreate(savedInstanceState: Bundle?) { @@ -40,17 +39,12 @@ class SubletterPostedListingsFragment() : Fragment() { mActivity = activity as MainActivity mActivity.closeKeyboard() dataModel = SublettingViewModel(mActivity, mStudentLife) - - val bundle = Bundle() } override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { // Inflate the layout for this fragment _binding = FragmentSubletterPostedListingsBinding.inflate(inflater, container, false) - binding.postedAddListingButton.setOnClickListener{ - navigateCreateNewListing() - } return binding.root } @@ -60,17 +54,33 @@ class SubletterPostedListingsFragment() : Fragment() { newLayoutManager = GridLayoutManager(context, 2, LinearLayoutManager.VERTICAL, false) sublettingRecyclerView.layoutManager = newLayoutManager - dataModel.getPostedSublets(mActivity) myAdapter = PostedSubletsListAdapter(dataModel) - dataModel.postedSubletsList.observe(viewLifecycleOwner, { sublets -> + dataModel.postedSubletsList.observe(viewLifecycleOwner) { sublets -> + binding.listingsRefreshLayout.isRefreshing = false + sublettingList = sublets myAdapter.notifyDataSetChanged() - }) + + if (sublets.size > 0) { + binding.postedHouseImage.visibility = View.GONE + binding.postedNoListingsText.visibility = View.GONE + } else { + binding.postedHouseImage.visibility = View.VISIBLE + binding.postedNoListingsText.visibility = View.VISIBLE + } + } + sublettingRecyclerView.adapter = myAdapter - } + binding.listingsRefreshLayout.setOnRefreshListener { + dataModel.getPostedSublets(mActivity) + } + binding.postedAddListingButton.setOnClickListener{ + navigateCreateNewListing() + } + } private fun navigateCreateNewListing() { val mainActivity = context as MainActivity @@ -85,4 +95,8 @@ class SubletterPostedListingsFragment() : Fragment() { .commitAllowingStateLoss() } + override fun onDestroy() { + super.onDestroy() + _binding = null + } } \ No newline at end of file diff --git a/PennMobile/src/main/java/com/pennapps/labs/pennmobile/SublettingHolderFragment.kt b/PennMobile/src/main/java/com/pennapps/labs/pennmobile/SublettingHolderFragment.kt index 8a55bb243..5df6ab725 100644 --- a/PennMobile/src/main/java/com/pennapps/labs/pennmobile/SublettingHolderFragment.kt +++ b/PennMobile/src/main/java/com/pennapps/labs/pennmobile/SublettingHolderFragment.kt @@ -51,17 +51,5 @@ class SublettingFragment : Fragment() { tab.text = "Sublessee" } }.attach() - - - } - - - private fun initAppBar(view: View) { - (view.appbar_home_holder.layoutParams as CoordinatorLayout.LayoutParams).behavior = ToolbarBehavior() } - - - - - } \ No newline at end of file diff --git a/PennMobile/src/main/java/com/pennapps/labs/pennmobile/adapters/PostedSubletsListAdapter.kt b/PennMobile/src/main/java/com/pennapps/labs/pennmobile/adapters/PostedSubletsListAdapter.kt index e88127623..cab0c3e26 100644 --- a/PennMobile/src/main/java/com/pennapps/labs/pennmobile/adapters/PostedSubletsListAdapter.kt +++ b/PennMobile/src/main/java/com/pennapps/labs/pennmobile/adapters/PostedSubletsListAdapter.kt @@ -29,14 +29,11 @@ class PostedSubletsListAdapter(private val dataModel: SublettingViewModel): private lateinit var mActivity: MainActivity class SublettingCardViewHolder(itemView: View): RecyclerView.ViewHolder(itemView) { - - var listingImage = itemView.findViewById(R.id.subletting_cardview_image) - var listingTitle = itemView.findViewById(R.id.subletting_cardview_title) - var listingPrice = itemView.findViewById(R.id.subletting_cardview_price) - var listingRooms = itemView.findViewById(R.id.subletting_cardview_rooms) - var listingDates = itemView.findViewById(R.id.subletting_cardview_dates) - - + var listingImage: ImageView = itemView.findViewById(R.id.subletting_cardview_image) + var listingTitle: TextView = itemView.findViewById(R.id.subletting_cardview_title) + var listingPrice: TextView = itemView.findViewById(R.id.subletting_cardview_price) + var listingRooms: TextView = itemView.findViewById(R.id.subletting_cardview_rooms) + var listingDates: TextView = itemView.findViewById(R.id.subletting_cardview_dates) } override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): SublettingCardViewHolder { @@ -47,9 +44,7 @@ class PostedSubletsListAdapter(private val dataModel: SublettingViewModel): } override fun onBindViewHolder(holder: SublettingCardViewHolder, position: Int) { - - var mSublettingCard: Sublet = dataModel.getSublet(position) // dataModel.getSblet(position) - //holder.listingImage.setImageResource(mSublettingCard.listingImage!!) + val mSublettingCard: Sublet = dataModel.getSublet(position) // dataModel.getSublet(position) Glide.with(mContext) // Use mContext here instead of context .load(mSublettingCard.images?.get(0)?.imageUrl) // Access the first image URL from the list @@ -57,11 +52,9 @@ class PostedSubletsListAdapter(private val dataModel: SublettingViewModel): .transition(DrawableTransitionOptions.withCrossFade()) .into(holder.listingImage) - holder.listingTitle.text = mSublettingCard.title - var price = "$" + mSublettingCard.price.toString() - + val price = "$" + mSublettingCard.price.toString() holder.listingPrice.text = price val rooms = mSublettingCard.beds.toString() + " bd | " + @@ -75,11 +68,11 @@ class PostedSubletsListAdapter(private val dataModel: SublettingViewModel): .addToBackStack(null) .commit() } - holder.listingDates.setSingleLine(false); + + holder.listingDates.isSingleLine = false; holder.listingDates.text = mSublettingCard.startDate + " to \n" + mSublettingCard.endDate } - override fun getItemCount(): Int { return dataModel.postedSubletsList.value?.size ?: 0 } diff --git a/PennMobile/src/main/res/layout/fragment_subletter_posted_listings.xml b/PennMobile/src/main/res/layout/fragment_subletter_posted_listings.xml index d00f58aa6..0c031ff89 100644 --- a/PennMobile/src/main/res/layout/fragment_subletter_posted_listings.xml +++ b/PennMobile/src/main/res/layout/fragment_subletter_posted_listings.xml @@ -1,11 +1,9 @@ - + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" /> + app:layout_constraintTop_toBottomOf="@+id/posted_add_listing_button" + app:layout_constraintVertical_bias="0.0"> - + app:layout_constraintTop_toTopOf="@+id/posted_add_listing_button" + android:paddingBottom="50dp"/> + \ No newline at end of file diff --git a/PennMobile/src/main/res/layout/subletting_cardview.xml b/PennMobile/src/main/res/layout/subletting_cardview.xml index d739681a2..18def14c1 100644 --- a/PennMobile/src/main/res/layout/subletting_cardview.xml +++ b/PennMobile/src/main/res/layout/subletting_cardview.xml @@ -4,7 +4,7 @@ xmlns:tools="http://schemas.android.com/tools" android:id="@+id/subletting_cardview_item" android:layout_width="200dp" - android:layout_height="340dp" + android:layout_height="wrap_content" app:cardCornerRadius="8dp" app:cardElevation="5dp" app:cardPreventCornerOverlap="true"