diff --git a/PennMobile/src/main/java/com/pennapps/labs/pennmobile/AboutFragment.kt b/PennMobile/src/main/java/com/pennapps/labs/pennmobile/AboutFragment.kt index f5ece132..6fe10686 100644 --- a/PennMobile/src/main/java/com/pennapps/labs/pennmobile/AboutFragment.kt +++ b/PennMobile/src/main/java/com/pennapps/labs/pennmobile/AboutFragment.kt @@ -78,8 +78,16 @@ class AboutFragment : Fragment() { binding.ourTeamRv.layoutManager = GridLayoutManager(context, 3) binding.alumniRv.layoutManager = GridLayoutManager(context, 3) val members = - arrayListOf("Rohan Chhaya", "Julius Snipes", "Aaron Mei", "Trini Feng", "Vedha Avali", - "Joe MacDougall", "Baron Ping-Yeh Hsieh", "David Fu") + arrayListOf( + "Rohan Chhaya", + "Julius Snipes", + "Aaron Mei", + "Trini Feng", + "Vedha Avali", + "Joe MacDougall", + "Baron Ping-Yeh Hsieh", + "David Fu", + ) val alumni = arrayListOf( "Marta GarcĂ­a Ferreiro", diff --git a/PennMobile/src/main/java/com/pennapps/labs/pennmobile/GsrFragment.kt b/PennMobile/src/main/java/com/pennapps/labs/pennmobile/GsrFragment.kt index a447a054..5dd1a1ef 100644 --- a/PennMobile/src/main/java/com/pennapps/labs/pennmobile/GsrFragment.kt +++ b/PennMobile/src/main/java/com/pennapps/labs/pennmobile/GsrFragment.kt @@ -392,7 +392,7 @@ class GsrFragment : Fragment() { sortByTime, ) } - ) + ) mGSRS = ArrayList() selectDateButton.isClickable = true @@ -592,7 +592,7 @@ class GsrFragment : Fragment() { ( gsrLocationDropDown.selectedItem.toString() == "Huntsman" || gsrLocationDropDown.selectedItem.toString() == "Academic Research" - ) + ) ) { durationPos = 2 } else if (durationPos > 3 && gsrLocationDropDown.selectedItem.toString() != "Biotech Commons") { diff --git a/PennMobile/src/main/java/com/pennapps/labs/pennmobile/HomeFragment.kt b/PennMobile/src/main/java/com/pennapps/labs/pennmobile/HomeFragment.kt index 4e3c753e..af8bbb07 100644 --- a/PennMobile/src/main/java/com/pennapps/labs/pennmobile/HomeFragment.kt +++ b/PennMobile/src/main/java/com/pennapps/labs/pennmobile/HomeFragment.kt @@ -232,7 +232,7 @@ class HomeFragment : Fragment() { ( view.appbar_home.layoutParams as CoordinatorLayout.LayoutParams - ).behavior = ToolbarBehavior() + ).behavior = ToolbarBehavior() view.profile.setOnClickListener { // TODO: Account Settings } diff --git a/PennMobile/src/main/java/com/pennapps/labs/pennmobile/adapters/LaundryMachineAdapter.kt b/PennMobile/src/main/java/com/pennapps/labs/pennmobile/adapters/LaundryMachineAdapter.kt index 08cc23d0..06896b6a 100644 --- a/PennMobile/src/main/java/com/pennapps/labs/pennmobile/adapters/LaundryMachineAdapter.kt +++ b/PennMobile/src/main/java/com/pennapps/labs/pennmobile/adapters/LaundryMachineAdapter.kt @@ -115,8 +115,8 @@ class LaundryMachineAdapter( var context: Context, var machineDetails: List, ) : RecyclerView.ViewHolder( - view, - ) { + view, + ) { var machineView: ImageView? = view.laundry_machine_image_view var timeTextView: TextView? = view.min_left_time var notificationBell: LottieAnimationView = view.bell_notification_icon @@ -176,7 +176,7 @@ class LaundryMachineAdapter( null, R.color.sneakerBlurColorOverlay, ) - ) + ) } else { holder.notificationBell.visibility = View.INVISIBLE // cancel alarm if exists @@ -202,7 +202,7 @@ class LaundryMachineAdapter( null, R.color.sneakerBlurColorOverlay, ) - ) + ) } } } diff --git a/PennMobile/src/main/java/com/pennapps/labs/pennmobile/adapters/PhoneSaveAdapter.kt b/PennMobile/src/main/java/com/pennapps/labs/pennmobile/adapters/PhoneSaveAdapter.kt index b34c9ec3..b4cc3bb5 100644 --- a/PennMobile/src/main/java/com/pennapps/labs/pennmobile/adapters/PhoneSaveAdapter.kt +++ b/PennMobile/src/main/java/com/pennapps/labs/pennmobile/adapters/PhoneSaveAdapter.kt @@ -18,10 +18,10 @@ class PhoneSaveAdapter( s: MutableList, size: Int, ) : ArrayAdapter( - context, - R.layout.phone_save_list_item, - contacts, - ) { + context, + R.layout.phone_save_list_item, + contacts, +) { private val inflater: LayoutInflater = LayoutInflater.from(context) private val selections: MutableList = s private val state: BooleanArray = BooleanArray(size) diff --git a/PennMobile/src/main/java/com/pennapps/labs/pennmobile/adapters/RegistrationsAdapter.kt b/PennMobile/src/main/java/com/pennapps/labs/pennmobile/adapters/RegistrationsAdapter.kt index bf4a1ac8..508ac3a0 100644 --- a/PennMobile/src/main/java/com/pennapps/labs/pennmobile/adapters/RegistrationsAdapter.kt +++ b/PennMobile/src/main/java/com/pennapps/labs/pennmobile/adapters/RegistrationsAdapter.kt @@ -16,8 +16,8 @@ import com.pennapps.labs.pennmobile.classes.PennCourseAlertRegistration class RegistrationsAdapter( private val listener: OnItemClickListener, ) : ListAdapter< - PennCourseAlertRegistration, - RegistrationsAdapter.ViewHolder, + PennCourseAlertRegistration, + RegistrationsAdapter.ViewHolder, >(RegistrationDiffCallBack()) { override fun onCreateViewHolder( parent: ViewGroup, @@ -75,7 +75,7 @@ class RegistrationsAdapter( notifyClosedSwitch.isChecked = ( registration.closeNotification && !registration.cancelled - ) + ) if (registration.lastNotificationSentAt.isNotEmpty()) { lastNotified.text = formatDate(registration.lastNotificationSentAt) } diff --git a/PennMobile/src/main/java/com/pennapps/labs/pennmobile/classes/Post.kt b/PennMobile/src/main/java/com/pennapps/labs/pennmobile/classes/Post.kt index 323fcbc4..63947cfa 100644 --- a/PennMobile/src/main/java/com/pennapps/labs/pennmobile/classes/Post.kt +++ b/PennMobile/src/main/java/com/pennapps/labs/pennmobile/classes/Post.kt @@ -113,6 +113,6 @@ class Post { createdDateHash + startDateHash + expireDateHash + clubCommentHash + adminCommentHash + statusHash + targetPopulationsHash - ).hashCode() + ).hashCode() } } diff --git a/PennMobile/src/main/java/com/pennapps/labs/pennmobile/components/collapsingtoolbar/ToolbarBehavior.kt b/PennMobile/src/main/java/com/pennapps/labs/pennmobile/components/collapsingtoolbar/ToolbarBehavior.kt index 65d2a13c..ba629d4a 100644 --- a/PennMobile/src/main/java/com/pennapps/labs/pennmobile/components/collapsingtoolbar/ToolbarBehavior.kt +++ b/PennMobile/src/main/java/com/pennapps/labs/pennmobile/components/collapsingtoolbar/ToolbarBehavior.kt @@ -128,7 +128,7 @@ class ToolbarBehavior : CoordinatorLayout.Behavior() { ( (title.layoutParams as FrameLayout.LayoutParams).marginStart + title.measuredWidth / 2 - ).toFloat() + ).toFloat() // Maps the x translation to the shifting toolbar height title.translationX = (toolbarOriginalHeight - toolbar.layoutParams.height) / @@ -167,7 +167,7 @@ class ToolbarBehavior : CoordinatorLayout.Behavior() { ( (title.layoutParams as FrameLayout.LayoutParams).marginStart + title.measuredWidth / 2 - ).toFloat() + ).toFloat() // Maps the x translation to the shifting toolbar height title.translationX = (toolbarOriginalHeight - toolbar.layoutParams.height) / diff --git a/PennMobile/src/main/java/com/pennapps/labs/pennmobile/components/customloadingicon/AvdLoadingProgressBar.kt b/PennMobile/src/main/java/com/pennapps/labs/pennmobile/components/customloadingicon/AvdLoadingProgressBar.kt index 426c13dc..6b1c650b 100644 --- a/PennMobile/src/main/java/com/pennapps/labs/pennmobile/components/customloadingicon/AvdLoadingProgressBar.kt +++ b/PennMobile/src/main/java/com/pennapps/labs/pennmobile/components/customloadingicon/AvdLoadingProgressBar.kt @@ -12,23 +12,23 @@ import com.pennapps.labs.pennmobile.R * Davies Lumumba - 25th Feb 2021 */ class AvdLoadingProgressBar - @JvmOverloads - constructor( - context: Context, - attrs: AttributeSet? = null, - defStyleAttr: Int = 0, - ) : AppCompatImageView(context, attrs, defStyleAttr) { - private val avd = AnimatedVectorDrawableCompat.create(context, R.drawable.ic_labs_loading_icon)!! +@JvmOverloads +constructor( + context: Context, + attrs: AttributeSet? = null, + defStyleAttr: Int = 0, +) : AppCompatImageView(context, attrs, defStyleAttr) { + private val avd = AnimatedVectorDrawableCompat.create(context, R.drawable.ic_labs_loading_icon)!! - init { - setImageDrawable(avd) - avd.registerAnimationCallback( - object : Animatable2Compat.AnimationCallback() { - override fun onAnimationEnd(drawable: Drawable?) { - post { avd.start() } - } - }, - ) - avd.start() - } + init { + setImageDrawable(avd) + avd.registerAnimationCallback( + object : Animatable2Compat.AnimationCallback() { + override fun onAnimationEnd(drawable: Drawable?) { + post { avd.start() } + } + }, + ) + avd.start() } +} diff --git a/PennMobile/src/main/java/com/pennapps/labs/pennmobile/components/floatingbottombar/ExpandableBottomBar.kt b/PennMobile/src/main/java/com/pennapps/labs/pennmobile/components/floatingbottombar/ExpandableBottomBar.kt index 52b400e4..cff59ab3 100644 --- a/PennMobile/src/main/java/com/pennapps/labs/pennmobile/components/floatingbottombar/ExpandableBottomBar.kt +++ b/PennMobile/src/main/java/com/pennapps/labs/pennmobile/components/floatingbottombar/ExpandableBottomBar.kt @@ -32,298 +32,298 @@ typealias OnItemClickListener = (v: View, menuItem: ExpandableBottomBarMenuItem) * Widget, which implements bottom bar navigation pattern */ class ExpandableBottomBar - @JvmOverloads - constructor( - context: Context, - attrs: AttributeSet? = null, - defStyleAttr: Int = R.attr.exb_expandableButtonBarDefaultStyle, - ) : ConstraintLayout(context, attrs, defStyleAttr), - CoordinatorLayout.AttachedBehavior { - @FloatRange(from = 0.0, to = 1.0) - private var backgroundOpacity: Float = 0F - - @FloatRange(from = 0.0) - private var backgroundCornerRadius: Float = 0F - - @IntRange(from = 0) - private var menuItemHorizontalMargin: Int = 0 - - @IntRange(from = 0) - private var menuItemVerticalMargin: Int = 0 - - @IntRange(from = 0) - private var menuHorizontalPadding: Int = 0 - - @IntRange(from = 0) - private var menuVerticalPadding: Int = 0 - - @ColorInt - private var itemInactiveColor: Int = Color.parseColor("#aeadad") - private val backgroundStates = - arrayOf( - intArrayOf(android.R.attr.state_selected), - intArrayOf(-android.R.attr.state_selected), - ) +@JvmOverloads +constructor( + context: Context, + attrs: AttributeSet? = null, + defStyleAttr: Int = R.attr.exb_expandableButtonBarDefaultStyle, +) : ConstraintLayout(context, attrs, defStyleAttr), + CoordinatorLayout.AttachedBehavior { + @FloatRange(from = 0.0, to = 1.0) + private var backgroundOpacity: Float = 0F - private var transitionDuration: Int = 0 + @FloatRange(from = 0.0) + private var backgroundCornerRadius: Float = 0F - @IdRes - private var selectedItemId: Int = ITEM_NOT_SELECTED + @IntRange(from = 0) + private var menuItemHorizontalMargin: Int = 0 - private val viewControllers: MutableMap = mutableMapOf() - private val stateController = ExpandableBottomBarStateController(this) + @IntRange(from = 0) + private var menuItemVerticalMargin: Int = 0 - internal var onItemSelectedListener: OnItemClickListener? = null - private var onItemReselectedListener: OnItemClickListener? = null + @IntRange(from = 0) + private var menuHorizontalPadding: Int = 0 - init { - initAttrs(context, attrs, defStyleAttr) - } + @IntRange(from = 0) + private var menuVerticalPadding: Int = 0 - override fun getBehavior(): CoordinatorLayout.Behavior<*> = ExpandableBottomBarBehavior() + @ColorInt + private var itemInactiveColor: Int = Color.parseColor("#aeadad") + private val backgroundStates = + arrayOf( + intArrayOf(android.R.attr.state_selected), + intArrayOf(-android.R.attr.state_selected), + ) - private fun initAttrs( - context: Context, - attrs: AttributeSet?, - defStyleAttr: Int, - ) { - if (attrs == null) { - return - } + private var transitionDuration: Int = 0 - contentDescription = resources.getString(R.string.accessibility_description) - - val typedArray = - context.obtainStyledAttributes( - attrs, - R.styleable.ExpandableBottomBar, - defStyleAttr, - R.style.ExpandableBottomBar, - ) - - backgroundOpacity = - typedArray.getFloat(R.styleable.ExpandableBottomBar_exb_itemBackgroundOpacity, 0.2F) - backgroundCornerRadius = - typedArray.getDimension( - R.styleable.ExpandableBottomBar_exb_itemBackgroundCornerRadius, - 30F.toPx(), - ) - transitionDuration = - typedArray.getInt(R.styleable.ExpandableBottomBar_exb_transitionDuration, 100) - itemInactiveColor = - typedArray.getColor(R.styleable.ExpandableBottomBar_exb_itemInactiveColor, Color.BLACK) - menuItemHorizontalMargin = - typedArray - .getDimension( - R.styleable.ExpandableBottomBar_exb_item_horizontal_margin, - 5F.toPx(), - ).toInt() - menuItemVerticalMargin = - typedArray - .getDimension( - R.styleable.ExpandableBottomBar_exb_item_vertical_margin, - 5F.toPx(), - ).toInt() - menuHorizontalPadding = - typedArray - .getDimension( - R.styleable.ExpandableBottomBar_exb_item_horizontal_padding, - 15F.toPx(), - ).toInt() - menuVerticalPadding = - typedArray - .getDimension( - R.styleable.ExpandableBottomBar_exb_item_vertical_padding, - 10F.toPx(), - ).toInt() - - val backgroundColor = - typedArray.getColor(R.styleable.ExpandableBottomBar_exb_backgroundColor, Color.WHITE) - val backgroundCornerRadius = - typedArray.getDimension(R.styleable.ExpandableBottomBar_exb_backgroundCornerRadius, 0F) - - background = - DrawableHelper.createShapeDrawable(backgroundColor, backgroundCornerRadius, 1.0F) - - applyForApiLAndHigher { - elevation = 6F - } + @IdRes + private var selectedItemId: Int = ITEM_NOT_SELECTED - val menuId = typedArray.getResourceId(R.styleable.ExpandableBottomBar_exb_items, View.NO_ID) - if (menuId != View.NO_ID) { - val barParser = ExpandableBottomBarParser(context) - val items = barParser.inflate(menuId) - addItems(items) - } + private val viewControllers: MutableMap = mutableMapOf() + private val stateController = ExpandableBottomBarStateController(this) - typedArray.recycle() + internal var onItemSelectedListener: OnItemClickListener? = null + private var onItemReselectedListener: OnItemClickListener? = null + + init { + initAttrs(context, attrs, defStyleAttr) + } + + override fun getBehavior(): CoordinatorLayout.Behavior<*> = ExpandableBottomBarBehavior() + + private fun initAttrs( + context: Context, + attrs: AttributeSet?, + defStyleAttr: Int, + ) { + if (attrs == null) { + return } - override fun onAttachedToWindow() { - super.onAttachedToWindow() + contentDescription = resources.getString(R.string.accessibility_description) - val lp = layoutParams - if (lp is CoordinatorLayout.LayoutParams) { - lp.insetEdge = Gravity.BOTTOM - } + val typedArray = + context.obtainStyledAttributes( + attrs, + R.styleable.ExpandableBottomBar, + defStyleAttr, + R.style.ExpandableBottomBar, + ) + + backgroundOpacity = + typedArray.getFloat(R.styleable.ExpandableBottomBar_exb_itemBackgroundOpacity, 0.2F) + backgroundCornerRadius = + typedArray.getDimension( + R.styleable.ExpandableBottomBar_exb_itemBackgroundCornerRadius, + 30F.toPx(), + ) + transitionDuration = + typedArray.getInt(R.styleable.ExpandableBottomBar_exb_transitionDuration, 100) + itemInactiveColor = + typedArray.getColor(R.styleable.ExpandableBottomBar_exb_itemInactiveColor, Color.BLACK) + menuItemHorizontalMargin = + typedArray + .getDimension( + R.styleable.ExpandableBottomBar_exb_item_horizontal_margin, + 5F.toPx(), + ).toInt() + menuItemVerticalMargin = + typedArray + .getDimension( + R.styleable.ExpandableBottomBar_exb_item_vertical_margin, + 5F.toPx(), + ).toInt() + menuHorizontalPadding = + typedArray + .getDimension( + R.styleable.ExpandableBottomBar_exb_item_horizontal_padding, + 15F.toPx(), + ).toInt() + menuVerticalPadding = + typedArray + .getDimension( + R.styleable.ExpandableBottomBar_exb_item_vertical_padding, + 10F.toPx(), + ).toInt() + + val backgroundColor = + typedArray.getColor(R.styleable.ExpandableBottomBar_exb_backgroundColor, Color.WHITE) + val backgroundCornerRadius = + typedArray.getDimension(R.styleable.ExpandableBottomBar_exb_backgroundCornerRadius, 0F) + + background = + DrawableHelper.createShapeDrawable(backgroundColor, backgroundCornerRadius, 1.0F) + + applyForApiLAndHigher { + elevation = 6F } - override fun onSaveInstanceState(): Parcelable? { - val superState = super.onSaveInstanceState() - return stateController.store(superState) + val menuId = typedArray.getResourceId(R.styleable.ExpandableBottomBar_exb_items, View.NO_ID) + if (menuId != View.NO_ID) { + val barParser = ExpandableBottomBarParser(context) + val items = barParser.inflate(menuId) + addItems(items) } - override fun onRestoreInstanceState(state: Parcelable?) { - if (state !is SavedState) { - super.onRestoreInstanceState(state) - return - } - super.onRestoreInstanceState(state.superState) - stateController.restore(state) + typedArray.recycle() + } + + override fun onAttachedToWindow() { + super.onAttachedToWindow() + + val lp = layoutParams + if (lp is CoordinatorLayout.LayoutParams) { + lp.insetEdge = Gravity.BOTTOM } + } - /** - * Adds passed items to widget - * - * @param items - bottom bar menu items - */ - fun addItems(items: List) { - val firstItemId = items.first().itemId - val lastItemId = items.last().itemId - selectedItemId = firstItemId - - for ((i, item) in items.withIndex()) { - val viewController = createItem(item) - viewControllers[item.itemId] = viewController - - val prevIconId = if (i - 1 < 0) firstItemId else items[i - 1].itemId - val nextIconId = if (i + 1 >= items.size) lastItemId else items[i + 1].itemId - when (item.itemId) { - firstItemId -> { - viewController.attachTo( - this, - prevIconId, - nextIconId, - 80, - menuItemHorizontalMargin, - menuItemVerticalMargin, - menuItemVerticalMargin, - ) - } - lastItemId -> { - viewController.attachTo( - this, - prevIconId, - nextIconId, - menuItemHorizontalMargin, - 80, - menuItemVerticalMargin, - menuItemVerticalMargin, - ) - } - else -> { - viewController.attachTo( - this, - prevIconId, - nextIconId, - menuItemHorizontalMargin, - menuItemHorizontalMargin, - menuItemVerticalMargin, - menuItemVerticalMargin, - ) - } + override fun onSaveInstanceState(): Parcelable? { + val superState = super.onSaveInstanceState() + return stateController.store(superState) + } + + override fun onRestoreInstanceState(state: Parcelable?) { + if (state !is SavedState) { + super.onRestoreInstanceState(state) + return + } + super.onRestoreInstanceState(state.superState) + stateController.restore(state) + } + + /** + * Adds passed items to widget + * + * @param items - bottom bar menu items + */ + fun addItems(items: List) { + val firstItemId = items.first().itemId + val lastItemId = items.last().itemId + selectedItemId = firstItemId + + for ((i, item) in items.withIndex()) { + val viewController = createItem(item) + viewControllers[item.itemId] = viewController + + val prevIconId = if (i - 1 < 0) firstItemId else items[i - 1].itemId + val nextIconId = if (i + 1 >= items.size) lastItemId else items[i + 1].itemId + when (item.itemId) { + firstItemId -> { + viewController.attachTo( + this, + prevIconId, + nextIconId, + 80, + menuItemHorizontalMargin, + menuItemVerticalMargin, + menuItemVerticalMargin, + ) + } + lastItemId -> { + viewController.attachTo( + this, + prevIconId, + nextIconId, + menuItemHorizontalMargin, + 80, + menuItemVerticalMargin, + menuItemVerticalMargin, + ) + } + else -> { + viewController.attachTo( + this, + prevIconId, + nextIconId, + menuItemHorizontalMargin, + menuItemHorizontalMargin, + menuItemVerticalMargin, + menuItemVerticalMargin, + ) } } - madeMenuItemsAccessible(items) } + madeMenuItemsAccessible(items) + } - /** - * Programmatically select item - * - * @param id - identifier of menu item, which should be selected - */ - fun select( - @IdRes id: Int, - ) { - val itemToSelect = viewControllers.getValue(id) - onItemSelected(itemToSelect.menuItem) - } + /** + * Programmatically select item + * + * @param id - identifier of menu item, which should be selected + */ + fun select( + @IdRes id: Int, + ) { + val itemToSelect = viewControllers.getValue(id) + onItemSelected(itemToSelect.menuItem) + } - /** - * Returns currently selected item - */ - fun getSelected(): ExpandableBottomBarMenuItem = viewControllers.getValue(selectedItemId).menuItem + /** + * Returns currently selected item + */ + fun getSelected(): ExpandableBottomBarMenuItem = viewControllers.getValue(selectedItemId).menuItem - private fun madeMenuItemsAccessible(items: List) { - for ((i, item) in items.withIndex()) { - val prev = viewControllers[items.getOrNull(i - 1)?.itemId] - val next = viewControllers[items.getOrNull(i + 1)?.itemId] + private fun madeMenuItemsAccessible(items: List) { + for ((i, item) in items.withIndex()) { + val prev = viewControllers[items.getOrNull(i - 1)?.itemId] + val next = viewControllers[items.getOrNull(i + 1)?.itemId] - viewControllers[item.itemId]?.setAccessibleWith(prev = prev, next = next) - } + viewControllers[item.itemId]?.setAccessibleWith(prev = prev, next = next) } + } + + private fun createItem(menuItem: ExpandableBottomBarMenuItem): ExpandableItemViewController { + val colors = intArrayOf(menuItem.activeColor, itemInactiveColor) + val selectedStateColorList = ColorStateList(backgroundStates, colors) + + val viewController = + ExpandableItemViewController + .Builder(menuItem) + .itemMargins(menuHorizontalPadding, menuVerticalPadding) + .itemBackground(backgroundCornerRadius, backgroundOpacity) + .itemsColors(selectedStateColorList) + .onItemClickListener { v: View -> + if (!v.isSelected) { + onItemSelected(menuItem) + onItemSelectedListener?.invoke(v, menuItem) + } else { + onItemReselectedListener?.invoke(v, menuItem) + } + }.build(context) - private fun createItem(menuItem: ExpandableBottomBarMenuItem): ExpandableItemViewController { - val colors = intArrayOf(menuItem.activeColor, itemInactiveColor) - val selectedStateColorList = ColorStateList(backgroundStates, colors) + if (selectedItemId == menuItem.itemId) { + viewController.select() + } - val viewController = - ExpandableItemViewController - .Builder(menuItem) - .itemMargins(menuHorizontalPadding, menuVerticalPadding) - .itemBackground(backgroundCornerRadius, backgroundOpacity) - .itemsColors(selectedStateColorList) - .onItemClickListener { v: View -> - if (!v.isSelected) { - onItemSelected(menuItem) - onItemSelectedListener?.invoke(v, menuItem) - } else { - onItemReselectedListener?.invoke(v, menuItem) - } - }.build(context) - - if (selectedItemId == menuItem.itemId) { - viewController.select() - } + return viewController + } - return viewController + private fun onItemSelected(activeMenuItem: ExpandableBottomBarMenuItem) { + if (selectedItemId == activeMenuItem.itemId) { + return } - private fun onItemSelected(activeMenuItem: ExpandableBottomBarMenuItem) { - if (selectedItemId == activeMenuItem.itemId) { - return - } + applyTransition() - applyTransition() + val set = ConstraintSet() + set.clone(this) - val set = ConstraintSet() - set.clone(this) + viewControllers.getValue(activeMenuItem.itemId).select() + viewControllers.getValue(selectedItemId).deselect() + selectedItemId = activeMenuItem.itemId - viewControllers.getValue(activeMenuItem.itemId).select() - viewControllers.getValue(selectedItemId).deselect() - selectedItemId = activeMenuItem.itemId + set.applyTo(this) + } - set.applyTo(this) - } + private fun applyTransition() { + val autoTransition = AutoTransition() + autoTransition.duration = transitionDuration.toLong() + TransitionManager.beginDelayedTransition(this, autoTransition) + } - private fun applyTransition() { - val autoTransition = AutoTransition() - autoTransition.duration = transitionDuration.toLong() - TransitionManager.beginDelayedTransition(this, autoTransition) - } + internal class ExpandableBottomBarStateController( + private val expandableBottomBar: ExpandableBottomBar, + ) { + fun store(superState: Parcelable?) = SavedState(expandableBottomBar.selectedItemId, superState) - internal class ExpandableBottomBarStateController( - private val expandableBottomBar: ExpandableBottomBar, - ) { - fun store(superState: Parcelable?) = SavedState(expandableBottomBar.selectedItemId, superState) - - fun restore(state: SavedState) { - val selectedItemId = state.selectedItem - val viewController = - expandableBottomBar - .viewControllers - .getValue(selectedItemId) - expandableBottomBar.onItemSelected(viewController.menuItem) - } + fun restore(state: SavedState) { + val selectedItemId = state.selectedItem + val viewController = + expandableBottomBar + .viewControllers + .getValue(selectedItemId) + expandableBottomBar.onItemSelected(viewController.menuItem) } } +} diff --git a/PennMobile/src/main/java/com/pennapps/labs/pennmobile/morefragments/MoreFragment.kt b/PennMobile/src/main/java/com/pennapps/labs/pennmobile/morefragments/MoreFragment.kt index bf073268..0ed35a8b 100644 --- a/PennMobile/src/main/java/com/pennapps/labs/pennmobile/morefragments/MoreFragment.kt +++ b/PennMobile/src/main/java/com/pennapps/labs/pennmobile/morefragments/MoreFragment.kt @@ -56,7 +56,7 @@ class MoreFragment : Fragment() { ( view.appbar_home.layoutParams as CoordinatorLayout.LayoutParams - ).behavior = ToolbarBehavior() + ).behavior = ToolbarBehavior() } override fun onResume() {