Skip to content

Commit 1abd340

Browse files
feat: dates tab UI
1 parent 235b909 commit 1abd340

File tree

26 files changed

+681
-43
lines changed

26 files changed

+681
-43
lines changed

app/build.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,7 @@ dependencies {
125125
implementation project(path: ':profile')
126126
implementation project(path: ':discussion')
127127
implementation project(path: ':whatsnew')
128+
implementation project(path: ':dates')
128129

129130
ksp "androidx.room:room-compiler:$room_version"
130131

app/src/main/java/org/openedx/app/AppAnalytics.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,10 @@ enum class AppAnalyticsEvent(val eventName: String, val biValue: String) {
2020
"MainDashboard:Discover",
2121
"edx.bi.app.main_dashboard.discover"
2222
),
23+
DATES(
24+
"MainDashboard:DATES",
25+
"edx.bi.app.main_dashboard.dates"
26+
),
2327
PROFILE(
2428
"MainDashboard:Profile",
2529
"edx.bi.app.main_dashboard.profile"

app/src/main/java/org/openedx/app/AppRouter.kt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ import org.openedx.course.presentation.unit.video.YoutubeVideoFullScreenFragment
2929
import org.openedx.course.settings.download.DownloadQueueFragment
3030
import org.openedx.courses.presentation.AllEnrolledCoursesFragment
3131
import org.openedx.dashboard.presentation.DashboardRouter
32+
import org.openedx.dates.presentation.DatesRouter
3233
import org.openedx.discovery.presentation.DiscoveryRouter
3334
import org.openedx.discovery.presentation.NativeDiscoveryFragment
3435
import org.openedx.discovery.presentation.WebViewDiscoveryFragment
@@ -67,7 +68,8 @@ class AppRouter :
6768
ProfileRouter,
6869
AppUpgradeRouter,
6970
WhatsNewRouter,
70-
CalendarRouter {
71+
CalendarRouter,
72+
DatesRouter {
7173

7274
// region AuthRouter
7375
override fun navigateToMain(

app/src/main/java/org/openedx/app/MainFragment.kt

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ import org.openedx.app.deeplink.HomeTab
1616
import org.openedx.core.adapter.NavigationFragmentAdapter
1717
import org.openedx.core.presentation.global.appupgrade.UpgradeRequiredFragment
1818
import org.openedx.core.presentation.global.viewBinding
19+
import org.openedx.dates.presentation.dates.DatesFragment
1920
import org.openedx.discovery.presentation.DiscoveryRouter
2021
import org.openedx.learn.presentation.LearnFragment
2122
import org.openedx.learn.presentation.LearnTab
@@ -55,9 +56,14 @@ class MainFragment : Fragment(R.layout.fragment_main) {
5556
binding.viewPager.setCurrentItem(1, false)
5657
}
5758

59+
R.id.fragmentDates -> {
60+
viewModel.logDatesTabClickedEvent()
61+
binding.viewPager.setCurrentItem(2, false)
62+
}
63+
5864
R.id.fragmentProfile -> {
5965
viewModel.logProfileTabClickedEvent()
60-
binding.viewPager.setCurrentItem(2, false)
66+
binding.viewPager.setCurrentItem(3, false)
6167
}
6268
}
6369
true
@@ -100,6 +106,10 @@ class MainFragment : Fragment(R.layout.fragment_main) {
100106
binding.bottomNavView.selectedItemId = R.id.fragmentDiscover
101107
}
102108

109+
HomeTab.DATES.name -> {
110+
binding.bottomNavView.selectedItemId = R.id.fragmentDates
111+
}
112+
103113
HomeTab.PROFILE.name -> {
104114
binding.bottomNavView.selectedItemId = R.id.fragmentProfile
105115
}
@@ -122,6 +132,7 @@ class MainFragment : Fragment(R.layout.fragment_main) {
122132
adapter = NavigationFragmentAdapter(this).apply {
123133
addFragment(LearnFragment.newInstance(openTab = learnTab.name))
124134
addFragment(viewModel.getDiscoveryFragment)
135+
addFragment(DatesFragment())
125136
addFragment(ProfileFragment())
126137
}
127138
binding.viewPager.adapter = adapter

app/src/main/java/org/openedx/app/MainViewModel.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,10 @@ class MainViewModel(
5757
logScreenEvent(AppAnalyticsEvent.DISCOVER)
5858
}
5959

60+
fun logDatesTabClickedEvent() {
61+
logScreenEvent(AppAnalyticsEvent.DATES)
62+
}
63+
6064
fun logProfileTabClickedEvent() {
6165
logScreenEvent(AppAnalyticsEvent.PROFILE)
6266
}

app/src/main/java/org/openedx/app/deeplink/HomeTab.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,6 @@ enum class HomeTab {
44
LEARN,
55
PROGRAMS,
66
DISCOVER,
7+
DATES,
78
PROFILE
89
}

app/src/main/java/org/openedx/app/di/AppModule.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@ import org.openedx.course.utils.ImageProcessor
6363
import org.openedx.course.worker.OfflineProgressSyncScheduler
6464
import org.openedx.dashboard.presentation.DashboardAnalytics
6565
import org.openedx.dashboard.presentation.DashboardRouter
66+
import org.openedx.dates.presentation.DatesRouter
6667
import org.openedx.discovery.presentation.DiscoveryAnalytics
6768
import org.openedx.discovery.presentation.DiscoveryRouter
6869
import org.openedx.discussion.presentation.DiscussionAnalytics
@@ -127,6 +128,7 @@ val appModule = module {
127128
single<AppUpgradeRouter> { get<AppRouter>() }
128129
single { DeepLinkRouter(get(), get(), get(), get(), get(), get()) }
129130
single<CalendarRouter> { get<AppRouter>() }
131+
single<DatesRouter> { get<AppRouter>() }
130132

131133
single { NetworkConnection(get()) }
132134

app/src/main/java/org/openedx/app/di/ScreenModule.kt

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ import org.openedx.courses.presentation.DashboardGalleryViewModel
3737
import org.openedx.dashboard.data.repository.DashboardRepository
3838
import org.openedx.dashboard.domain.interactor.DashboardInteractor
3939
import org.openedx.dashboard.presentation.DashboardListViewModel
40+
import org.openedx.dates.presentation.dates.DatesViewModel
4041
import org.openedx.discovery.data.repository.DiscoveryRepository
4142
import org.openedx.discovery.domain.interactor.DiscoveryInteractor
4243
import org.openedx.discovery.presentation.NativeDiscoveryViewModel
@@ -190,7 +191,16 @@ val screenModule = module {
190191
profileRouter = get(),
191192
)
192193
}
193-
viewModel { (account: Account) -> EditProfileViewModel(get(), get(), get(), get(), get(), account) }
194+
viewModel { (account: Account) ->
195+
EditProfileViewModel(
196+
get(),
197+
get(),
198+
get(),
199+
get(),
200+
get(),
201+
account
202+
)
203+
}
194204
viewModel { VideoSettingsViewModel(get(), get(), get(), get()) }
195205
viewModel { (qualityType: String) -> VideoQualityViewModel(qualityType, get(), get(), get()) }
196206
viewModel { DeleteProfileViewModel(get(), get(), get(), get(), get()) }
@@ -482,4 +492,10 @@ val screenModule = module {
482492
get(),
483493
)
484494
}
495+
496+
viewModel {
497+
DatesViewModel(
498+
datesRouter = get(),
499+
)
500+
}
485501
}

app/src/main/res/menu/bottom_view_menu.xml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,12 @@
1313
android:icon="@drawable/app_ic_home"
1414
android:title="@string/app_navigation_discovery" />
1515

16+
<item
17+
android:id="@+id/fragmentDates"
18+
android:enabled="true"
19+
android:icon="@drawable/ic_calendar_month"
20+
android:title="@string/app_navigation_dates" />
21+
1622
<item
1723
android:id="@+id/fragmentProfile"
1824
android:enabled="true"

app/src/main/res/values/strings.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,5 @@
77
<string name="app_navigation_learn">Learn</string>
88
<string name="app_navigation_programs">Programs</string>
99
<string name="app_navigation_profile">Profile</string>
10+
<string name="app_navigation_dates">Dates</string>
1011
</resources>

0 commit comments

Comments
 (0)