diff --git a/app/src/main/java/io/github/wulkanowy/ui/modules/Destination.kt b/app/src/main/java/io/github/wulkanowy/ui/modules/Destination.kt index f8c456fe6..73a680cfe 100644 --- a/app/src/main/java/io/github/wulkanowy/ui/modules/Destination.kt +++ b/app/src/main/java/io/github/wulkanowy/ui/modules/Destination.kt @@ -21,15 +21,15 @@ import kotlinx.serialization.Serializable import java.time.LocalDate @Serializable -sealed class Destination private constructor() : Parcelable { +sealed class Destination : Parcelable { /* Type in children classes have to be as getter to avoid null in enums https://stackoverflow.com/questions/68866453/kotlin-enum-val-is-returning-null-despite-being-set-at-compile-time */ - abstract val type: Type + abstract val destinationType: Type - abstract val fragment: Fragment + abstract val destinationFragment: Fragment enum class Type(val defaultDestination: Destination) { DASHBOARD(Dashboard), @@ -50,29 +50,29 @@ sealed class Destination private constructor() : Parcelable { @Parcelize @Serializable object Dashboard : Destination() { - override val type get() = Type.DASHBOARD - override val fragment get() = DashboardFragment.newInstance() + override val destinationType get() = Type.DASHBOARD + override val destinationFragment get() = DashboardFragment.newInstance() } @Parcelize @Serializable object Grade : Destination() { - override val type get() = Type.GRADE - override val fragment get() = GradeFragment.newInstance() + override val destinationType get() = Type.GRADE + override val destinationFragment get() = GradeFragment.newInstance() } @Parcelize @Serializable object Attendance : Destination() { - override val type get() = Type.ATTENDANCE - override val fragment get() = AttendanceFragment.newInstance() + override val destinationType get() = Type.ATTENDANCE + override val destinationFragment get() = AttendanceFragment.newInstance() } @Parcelize @Serializable object Exam : Destination() { - override val type get() = Type.EXAM - override val fragment get() = ExamFragment.newInstance() + override val destinationType get() = Type.EXAM + override val destinationFragment get() = ExamFragment.newInstance() } @Parcelize @@ -81,63 +81,63 @@ sealed class Destination private constructor() : Parcelable { @Serializable(with = LocalDateSerializer::class) private val date: LocalDate? = null ) : Destination() { - override val type get() = Type.TIMETABLE - override val fragment get() = TimetableFragment.newInstance(date) + override val destinationType get() = Type.TIMETABLE + override val destinationFragment get() = TimetableFragment.newInstance(date) } @Parcelize @Serializable object Homework : Destination() { - override val type get() = Type.HOMEWORK - override val fragment get() = HomeworkFragment.newInstance() + override val destinationType get() = Type.HOMEWORK + override val destinationFragment get() = HomeworkFragment.newInstance() } @Parcelize @Serializable object Note : Destination() { - override val type get() = Type.NOTE - override val fragment get() = NoteFragment.newInstance() + override val destinationType get() = Type.NOTE + override val destinationFragment get() = NoteFragment.newInstance() } @Parcelize @Serializable object Conference : Destination() { - override val type get() = Type.CONFERENCE - override val fragment get() = ConferenceFragment.newInstance() + override val destinationType get() = Type.CONFERENCE + override val destinationFragment get() = ConferenceFragment.newInstance() } @Parcelize @Serializable object SchoolAnnouncement : Destination() { - override val type get() = Type.SCHOOL_ANNOUNCEMENT - override val fragment get() = SchoolAnnouncementFragment.newInstance() + override val destinationType get() = Type.SCHOOL_ANNOUNCEMENT + override val destinationFragment get() = SchoolAnnouncementFragment.newInstance() } @Parcelize @Serializable object School : Destination() { - override val type get() = Type.SCHOOL - override val fragment get() = SchoolFragment.newInstance() + override val destinationType get() = Type.SCHOOL + override val destinationFragment get() = SchoolFragment.newInstance() } @Parcelize @Serializable object LuckyNumber : Destination() { - override val type get() = Type.LUCKY_NUMBER - override val fragment get() = LuckyNumberFragment.newInstance() + override val destinationType get() = Type.LUCKY_NUMBER + override val destinationFragment get() = LuckyNumberFragment.newInstance() } @Parcelize @Serializable object More : Destination() { - override val type get() = Type.MORE - override val fragment get() = MoreFragment.newInstance() + override val destinationType get() = Type.MORE + override val destinationFragment get() = MoreFragment.newInstance() } @Parcelize @Serializable object Message : Destination() { - override val type get() = Type.MESSAGE - override val fragment get() = MessageFragment.newInstance() + override val destinationType get() = Type.MESSAGE + override val destinationFragment get() = MessageFragment.newInstance() } } diff --git a/app/src/main/java/io/github/wulkanowy/ui/modules/main/MainActivity.kt b/app/src/main/java/io/github/wulkanowy/ui/modules/main/MainActivity.kt index d1f324475..b6d41e2c1 100644 --- a/app/src/main/java/io/github/wulkanowy/ui/modules/main/MainActivity.kt +++ b/app/src/main/java/io/github/wulkanowy/ui/modules/main/MainActivity.kt @@ -129,7 +129,7 @@ class MainActivity : BaseActivity(), MainVie ) } fragmentHideStrategy = HIDE - rootFragments = rootDestinations.map { it.fragment } + rootFragments = rootDestinations.map { it.destinationFragment } initialize(startMenuIndex, savedInstanceState) } @@ -230,7 +230,7 @@ class MainActivity : BaseActivity(), MainVie } override fun openMoreDestination(destination: Destination) { - pushView(destination.fragment) + pushView(destination.destinationFragment) } override fun notifyMenuViewReselected() { diff --git a/app/src/main/java/io/github/wulkanowy/ui/modules/main/MainPresenter.kt b/app/src/main/java/io/github/wulkanowy/ui/modules/main/MainPresenter.kt index e01497b9a..cb414fcbc 100644 --- a/app/src/main/java/io/github/wulkanowy/ui/modules/main/MainPresenter.kt +++ b/app/src/main/java/io/github/wulkanowy/ui/modules/main/MainPresenter.kt @@ -45,8 +45,8 @@ class MainPresenter @Inject constructor( private val Destination?.startMenuIndex get() = when { this == null -> prefRepository.startMenuIndex - type in rootDestinationTypeList -> { - rootDestinationTypeList.indexOf(type) + destinationType in rootDestinationTypeList -> { + rootDestinationTypeList.indexOf(destinationType) } else -> 4 } @@ -56,7 +56,7 @@ class MainPresenter @Inject constructor( val startMenuIndex = initDestination.startMenuIndex val destinations = rootDestinationTypeList.map { - if (it == initDestination?.type) initDestination else it.defaultDestination + if (it == initDestination?.destinationType) initDestination else it.defaultDestination } view.initView(startMenuIndex, destinations) diff --git a/app/src/main/java/io/github/wulkanowy/ui/modules/notificationscenter/NotificationsCenterFragment.kt b/app/src/main/java/io/github/wulkanowy/ui/modules/notificationscenter/NotificationsCenterFragment.kt index 4f1943f48..ca71910a4 100644 --- a/app/src/main/java/io/github/wulkanowy/ui/modules/notificationscenter/NotificationsCenterFragment.kt +++ b/app/src/main/java/io/github/wulkanowy/ui/modules/notificationscenter/NotificationsCenterFragment.kt @@ -43,7 +43,7 @@ class NotificationsCenterFragment : override fun initView() { notificationsCenterAdapter.onItemClickListener = { notification -> - (requireActivity() as MainActivity).pushView(notification.destination.fragment) + (requireActivity() as MainActivity).pushView(notification.destination.destinationFragment) } with(binding.notificationsCenterRecycler) {