diff --git a/PennMobile/src/main/java/com/pennapps/labs/pennmobile/laundry/adapters/LaundryMachineAdapter.kt b/PennMobile/src/main/java/com/pennapps/labs/pennmobile/laundry/adapters/LaundryMachineAdapter.kt index b5dd77c13..e69886305 100644 --- a/PennMobile/src/main/java/com/pennapps/labs/pennmobile/laundry/adapters/LaundryMachineAdapter.kt +++ b/PennMobile/src/main/java/com/pennapps/labs/pennmobile/laundry/adapters/LaundryMachineAdapter.kt @@ -72,11 +72,14 @@ class LaundryMachineAdapter( var timeTextView: TextView? = itemBinding.minLeftTime var notificationBell: LottieAnimationView = itemBinding.bellNotificationIcon var alarmSwitch: SwitchCompat = itemBinding.laundryAlarmSwitch + val animated = AnimatedVectorDrawableCompat.create(context, R.drawable.ic_washer_in_use) fun bind(position: Int) { with(itemBinding.root) { val detail = mMachineDetails[position] - alarmSwitch.visibility = View.GONE + if (alarmSwitch.visibility != View.GONE) { + alarmSwitch.visibility = View.GONE + } when (val timeRemaining = detail.timeRemaining) { NOT_AVAILABLE_LABEL -> { @@ -102,8 +105,6 @@ class LaundryMachineAdapter( } else -> { if (mMachineType == context.getString(R.string.washer)) { - // holder.machineView!!.setImageResource(R.drawable.ic_washer_in_use) - val animated = AnimatedVectorDrawableCompat.create(context, R.drawable.ic_washer_in_use) animated?.registerAnimationCallback( object : Animatable2Compat.AnimationCallback() { override fun onAnimationEnd(drawable: Drawable?) { diff --git a/PennMobile/src/main/java/com/pennapps/labs/pennmobile/laundry/adapters/LaundryRoomAdapter.java b/PennMobile/src/main/java/com/pennapps/labs/pennmobile/laundry/adapters/LaundryRoomAdapter.java index 3d952d44c..1571a42e4 100644 --- a/PennMobile/src/main/java/com/pennapps/labs/pennmobile/laundry/adapters/LaundryRoomAdapter.java +++ b/PennMobile/src/main/java/com/pennapps/labs/pennmobile/laundry/adapters/LaundryRoomAdapter.java @@ -63,28 +63,8 @@ public LaundryRoomAdapter.CustomViewHolder onCreateViewHolder(ViewGroup parent, @Override public void onBindViewHolder(LaundryRoomAdapter.CustomViewHolder holder, int position) { - LaundryRoom room = mRooms.get(position); - if (isHome) { - holder.name.setVisibility(View.GONE); - holder.title.setVisibility(View.GONE); - holder.lineChart.setVisibility(View.GONE); - holder.layout.setBackgroundResource(0); - LinearLayout.LayoutParams layoutParams = (LinearLayout.LayoutParams) holder.layout.getLayoutParams(); - layoutParams.setMargins(0, 0, 0, 0); - layoutParams.setMarginStart(0); - holder.layout.setLayoutParams(layoutParams); - CardView container = (CardView) holder.dryerRecyclerView.getParent(); - ConstraintLayout.LayoutParams params = (ConstraintLayout.LayoutParams) container.getLayoutParams(); - params.setMargins(0,0,0,0); - container.setLayoutParams(params); - container = (CardView) holder.washerRecyclerView.getParent(); - params = (ConstraintLayout.LayoutParams) container.getLayoutParams(); - params.setMargins(0,0,0,0); - container.setLayoutParams(params); - } - // update name of laundry room and type of machine int hall_no = room.getId(); String location = sp.getString(hall_no + mContext.getString(R.string.location), ""); @@ -109,13 +89,11 @@ public void onBindViewHolder(LaundryRoomAdapter.CustomViewHolder holder, int pos // add washer info // recycler view for the time remaining LaundryMachineAdapter washerAdapter = new LaundryMachineAdapter(mContext, washers, mContext.getString(R.string.washer), roomName); - holder.washerRecyclerView.setLayoutManager(new LinearLayoutManager(mContext, LinearLayoutManager.HORIZONTAL, false)); holder.washerRecyclerView.setAdapter(washerAdapter); // add dryer info // recycler view for the time remaining LaundryMachineAdapter adapter = new LaundryMachineAdapter(mContext, dryers, mContext.getString(R.string.dryer), roomName); - holder.dryerRecyclerView.setLayoutManager(new LinearLayoutManager(mContext, LinearLayoutManager.HORIZONTAL, false)); holder.dryerRecyclerView.setAdapter(adapter); // overview of how many machines are available @@ -135,7 +113,7 @@ public void onBindViewHolder(LaundryRoomAdapter.CustomViewHolder holder, int pos int totalDryers = openDryers + runningDryers + offlineDryers + outOfOrderDryers; holder.dryerAvailability.setText(openDryers + " of " + totalDryers + " Open"); - if (mRoomsData != null) { + if (!isHome && mRoomsData != null) { if (mRoomsData.size() > position) createLaundryChart(holder, position); } @@ -210,7 +188,6 @@ public int getItemCount() { public class CustomViewHolder extends RecyclerView.ViewHolder { Context mContext; - ArrayList mRooms; //@BindView(R.id.laundry_room_title) TextView name; @@ -233,7 +210,6 @@ public CustomViewHolder(View view, Context context, ArrayList rooms super(view); mContext = context; - mRooms = rooms; //@BindView(R.id.laundry_room_title) name = view.findViewById(R.id.laundry_room_title); @@ -251,6 +227,28 @@ public CustomViewHolder(View view, Context context, ArrayList rooms lineChart = view.findViewById(R.id.laundry_availability_chart); //@BindView(R.id.laundry_card) layout = view.findViewById(R.id.laundry_card); + + washerRecyclerView.setLayoutManager(new LinearLayoutManager(mContext, LinearLayoutManager.HORIZONTAL, false)); + dryerRecyclerView.setLayoutManager(new LinearLayoutManager(mContext, LinearLayoutManager.HORIZONTAL, false)); + + if (isHome) { + name.setVisibility(View.GONE); + title.setVisibility(View.GONE); + lineChart.setVisibility(View.GONE); + layout.setBackgroundResource(0); + LinearLayout.LayoutParams layoutParams = (LinearLayout.LayoutParams) layout.getLayoutParams(); + layoutParams.setMargins(0, 0, 0, 0); + layoutParams.setMarginStart(0); + layout.setLayoutParams(layoutParams); + CardView container = (CardView) dryerRecyclerView.getParent(); + ConstraintLayout.LayoutParams params = (ConstraintLayout.LayoutParams) container.getLayoutParams(); + params.setMargins(0,0,0,0); + container.setLayoutParams(params); + container = (CardView) washerRecyclerView.getParent(); + params = (ConstraintLayout.LayoutParams) container.getLayoutParams(); + params.setMargins(0,0,0,0); + container.setLayoutParams(params); + } } } } \ No newline at end of file diff --git a/PennMobile/src/main/java/com/pennapps/labs/pennmobile/laundry/fragments/LaundryFragment.kt b/PennMobile/src/main/java/com/pennapps/labs/pennmobile/laundry/fragments/LaundryFragment.kt index 37abc1f55..febcf62eb 100644 --- a/PennMobile/src/main/java/com/pennapps/labs/pennmobile/laundry/fragments/LaundryFragment.kt +++ b/PennMobile/src/main/java/com/pennapps/labs/pennmobile/laundry/fragments/LaundryFragment.kt @@ -13,6 +13,7 @@ import androidx.fragment.app.FragmentTransaction import androidx.fragment.app.activityViewModels import androidx.preference.PreferenceManager import androidx.recyclerview.widget.LinearLayoutManager +import androidx.recyclerview.widget.RecyclerView import com.pennapps.labs.pennmobile.MainActivity import com.pennapps.labs.pennmobile.R import com.pennapps.labs.pennmobile.components.collapsingtoolbar.ToolbarBehavior @@ -89,6 +90,12 @@ class LaundryFragment : Fragment() { mActivity.removeTabs() mActivity.setTitle(R.string.laundry) + binding.favoriteLaundryList.setRecycledViewPool(RecyclerView.RecycledViewPool().apply { + setMaxRecycledViews(0, LaundryViewModel.MAX_NUM_ROOMS) + }) + binding.favoriteLaundryList.itemAnimator = null + binding.favoriteLaundryList.isNestedScrollingEnabled = false + mAdapter = LaundryRoomAdapter( mContext, diff --git a/PennMobile/src/main/res/layout/fragment_laundry.xml b/PennMobile/src/main/res/layout/fragment_laundry.xml index 952d92495..0b416ff86 100644 --- a/PennMobile/src/main/res/layout/fragment_laundry.xml +++ b/PennMobile/src/main/res/layout/fragment_laundry.xml @@ -15,7 +15,7 @@ android:elevation="0dp" android:theme="@style/AppTheme.AppBarOverlay" app:elevation="0dp" - tools:targetApi="lollipop"> + > @@ -51,7 +49,7 @@ android:layout_gravity="center_vertical|end" android:layout_marginTop="10dp" android:layout_marginEnd="36dp" - android:layout_marginRight="36dp"> + >