Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions app/BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -658,6 +658,7 @@ kt_android_library(
"//app/src/main/java/org/oppia/android/app/fragment:injectable_fragment",
"//app/src/main/java/org/oppia/android/app/shim:prod_modules",
"//app/src/main/java/org/oppia/android/app/testing/activity:test_activity",
"//app/src/main/java/org/oppia/android/app/utility/edgetoedge:edge_to_edge_helper",
"//domain/src/main/java/org/oppia/android/domain/onboarding:state_controller",
"//domain/src/main/java/org/oppia/android/domain/oppialogger:startup_listener",
"//domain/src/main/java/org/oppia/android/domain/profile:profile_management_controller",
Expand Down Expand Up @@ -758,6 +759,7 @@ TEST_DEPS = [
"//app/src/main/java/org/oppia/android/app/application/testing:testing_build_flavor_module",
"//app/src/main/java/org/oppia/android/app/testing/activity:test_activity",
"//app/src/main/java/org/oppia/android/app/translation/testing:test_module",
"//app/src/main/java/org/oppia/android/app/utility/edgetoedge:edge_to_edge_helper",
"//app/src/main/java/org/oppia/android/app/utility/math:math_expression_accessibility_util",
"//config/src/java/org/oppia/android/config:all_languages_config",
"//data/src/main/java/org/oppia/android/data/backends/gae/testing:network_config_test_module",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,15 +16,19 @@ import org.oppia.android.app.settings.profile.ProfileEditFragment
import org.oppia.android.app.settings.profile.ProfileListFragment
import org.oppia.android.app.translation.AppLanguageResourceHandler
import org.oppia.android.app.ui.R
import org.oppia.android.app.utility.edgetoedge.EdgeToEdgeHelper
import org.oppia.android.util.extensions.putProto
import org.oppia.android.util.platformparameter.EnableEdgeToEdge
import org.oppia.android.util.platformparameter.PlatformParameterValue
import org.oppia.android.util.profile.CurrentUserProfileIdIntentDecorator.decorateWithUserProfileId
import javax.inject.Inject

/** The presenter for [AdministratorControlsActivity]. */
@ActivityScope
class AdministratorControlsActivityPresenter @Inject constructor(
private val activity: AppCompatActivity,
private val resourceHandler: AppLanguageResourceHandler
private val resourceHandler: AppLanguageResourceHandler,
@EnableEdgeToEdge private val enableEdgeToEdge: PlatformParameterValue<Boolean>
) {
private lateinit var navigationDrawerFragment: NavigationDrawerFragment
private var isMultipane = false
Expand All @@ -42,11 +46,21 @@ class AdministratorControlsActivityPresenter @Inject constructor(
selectedProfileId: LegacyProfileId,
isProfileDeletionDialogVisible: Boolean
) {
if (enableEdgeToEdge.value) {
EdgeToEdgeHelper.enableEdgeToEdgeDispatch(activity)
}
binding = DataBindingUtil.setContentView(
activity,
R.layout.administrator_controls_activity
)
setUpNavigationDrawer()
if (enableEdgeToEdge.value) {
EdgeToEdgeHelper.applyToToolbarContainer(
activity,
binding.administratorControlsActivityToolbar,
R.color.component_color_shared_activity_status_bar_color
)
}
this.lastLoadedFragment = lastLoadedFragment
this.selectedProfileId = selectedProfileId
this.isProfileDeletionDialogVisible = isProfileDeletionDialogVisible
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,16 +4,32 @@ import androidx.appcompat.app.AppCompatActivity
import androidx.appcompat.widget.Toolbar
import org.oppia.android.app.activity.ActivityScope
import org.oppia.android.app.ui.R
import org.oppia.android.app.utility.edgetoedge.EdgeToEdgeHelper
import org.oppia.android.util.platformparameter.EnableEdgeToEdge
import org.oppia.android.util.platformparameter.PlatformParameterValue
import javax.inject.Inject

/** The presenter for [AppVersionActivity]. */
@ActivityScope
class AppVersionActivityPresenter @Inject constructor(private val activity: AppCompatActivity) {
class AppVersionActivityPresenter @Inject constructor(
private val activity: AppCompatActivity,
@EnableEdgeToEdge private val enableEdgeToEdge: PlatformParameterValue<Boolean>
) {

/** Initializes the [AppVersionActivity] views and binds [AppVersionFragment]. */
fun handleOnCreate() {
if (enableEdgeToEdge.value) {
EdgeToEdgeHelper.enableEdgeToEdgeDispatch(activity)
}
activity.setContentView(R.layout.app_version_activity)
setToolbar()
val toolbar = setToolbar()
if (enableEdgeToEdge.value) {
EdgeToEdgeHelper.applyToAppBarLayout(
activity,
toolbar,
R.color.component_color_shared_activity_status_bar_color
)
}
if (getAppVersionFragment() == null) {
activity.supportFragmentManager.beginTransaction().add(
R.id.app_version_fragment_placeholder,
Expand All @@ -22,10 +38,11 @@ class AppVersionActivityPresenter @Inject constructor(private val activity: AppC
}
}

private fun setToolbar() {
private fun setToolbar(): Toolbar {
val appVersionToolbar: Toolbar = activity.findViewById(R.id.app_version_toolbar) as Toolbar
activity.setSupportActionBar(appVersionToolbar)
activity.supportActionBar?.setDisplayHomeAsUpEnabled(true)
return appVersionToolbar
}

private fun getAppVersionFragment(): AppVersionFragment? {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,16 +3,30 @@ package org.oppia.android.app.administratorcontrols.learneranalytics
import androidx.appcompat.app.AppCompatActivity
import androidx.appcompat.widget.Toolbar
import org.oppia.android.app.ui.R
import org.oppia.android.app.utility.edgetoedge.EdgeToEdgeHelper
import org.oppia.android.util.platformparameter.EnableEdgeToEdge
import org.oppia.android.util.platformparameter.PlatformParameterValue
import javax.inject.Inject

/** The presenter for arranging the UI of [ProfileAndDeviceIdActivity]. */
class ProfileAndDeviceIdActivityPresenter @Inject constructor(
private val activity: AppCompatActivity
private val activity: AppCompatActivity,
@EnableEdgeToEdge private val enableEdgeToEdge: PlatformParameterValue<Boolean>
) {
/** Handles [ProfileAndDeviceIdActivity]'s creation flow. */
fun handleOnCreate() {
if (enableEdgeToEdge.value) {
EdgeToEdgeHelper.enableEdgeToEdgeDispatch(activity)
}
activity.setContentView(R.layout.profile_and_device_id_activity)
setToolbar()
val toolbar = setToolbar()
if (enableEdgeToEdge.value) {
EdgeToEdgeHelper.applyToAppBarLayout(
activity,
toolbar,
R.color.component_color_shared_activity_status_bar_color
)
}
if (getProfileAndDeviceIdFragment() == null) {
activity.supportFragmentManager.beginTransaction().add(
R.id.profile_and_device_id_fragment_placeholder,
Expand All @@ -21,10 +35,11 @@ class ProfileAndDeviceIdActivityPresenter @Inject constructor(
}
}

private fun setToolbar() {
val appVersionToolbar = activity.findViewById(R.id.profile_and_device_id_toolbar) as Toolbar
activity.setSupportActionBar(appVersionToolbar)
private fun setToolbar(): Toolbar {
val toolbar = activity.findViewById(R.id.profile_and_device_id_toolbar) as Toolbar
activity.setSupportActionBar(toolbar)
activity.supportActionBar?.setDisplayHomeAsUpEnabled(true)
return toolbar
}

private fun getProfileAndDeviceIdFragment(): ProfileAndDeviceIdFragment? {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,22 +6,38 @@ import androidx.appcompat.widget.Toolbar
import androidx.drawerlayout.widget.DrawerLayout
import org.oppia.android.app.drawer.NavigationDrawerFragment
import org.oppia.android.app.ui.R
import org.oppia.android.app.utility.edgetoedge.EdgeToEdgeHelper
import org.oppia.android.util.platformparameter.EnableEdgeToEdge
import org.oppia.android.util.platformparameter.PlatformParameterValue
import javax.inject.Inject

/** Tag for identifying the [ClassroomListFragment] in transactions. */
private const val TAG_CLASSROOM_LIST_FRAGMENT = "CLASSROOM_LIST_FRAGMENT"

/** The presenter for [ClassroomListActivity]. */
class ClassroomListActivityPresenter @Inject constructor(private val activity: AppCompatActivity) {
class ClassroomListActivityPresenter @Inject constructor(
private val activity: AppCompatActivity,
@EnableEdgeToEdge private val enableEdgeToEdge: PlatformParameterValue<Boolean>
) {
private var navigationDrawerFragment: NavigationDrawerFragment? = null

/**
* Handles the creation of the activity. Sets the content view, sets up the navigation drawer,
* and adds the [ClassroomListFragment] if it's not already added.
*/
fun handleOnCreate() {
if (enableEdgeToEdge.value) {
EdgeToEdgeHelper.enableEdgeToEdgeDispatch(activity)
}
activity.setContentView(R.layout.classroom_list_activity)
setUpNavigationDrawer()
val toolbar = setUpNavigationDrawer()
if (enableEdgeToEdge.value) {
EdgeToEdgeHelper.applyToToolbarContainer(
activity,
toolbar,
R.color.component_color_shared_activity_status_bar_color
)
}
if (getClassroomListFragment() == null) {
activity.supportFragmentManager.beginTransaction().add(
R.id.classroom_list_fragment_placeholder,
Expand All @@ -31,7 +47,7 @@ class ClassroomListActivityPresenter @Inject constructor(private val activity: A
}
}

private fun setUpNavigationDrawer() {
private fun setUpNavigationDrawer(): Toolbar {
val toolbar = activity.findViewById<View>(R.id.classroom_list_activity_toolbar) as Toolbar
activity.setSupportActionBar(toolbar)
activity.supportActionBar!!.setDisplayShowHomeEnabled(true)
Expand All @@ -44,6 +60,7 @@ class ClassroomListActivityPresenter @Inject constructor(private val activity: A
activity.findViewById<View>(R.id.classroom_list_activity_drawer_layout) as DrawerLayout,
toolbar, R.id.nav_home
)
return toolbar
}

private fun getClassroomListFragment(): ClassroomListFragment? {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,16 +4,23 @@ import androidx.appcompat.app.AppCompatActivity
import org.oppia.android.app.activity.ActivityScope
import org.oppia.android.app.model.LegacyProfileId
import org.oppia.android.app.ui.R
import org.oppia.android.app.utility.edgetoedge.EdgeToEdgeHelper
import org.oppia.android.util.platformparameter.EnableEdgeToEdge
import org.oppia.android.util.platformparameter.PlatformParameterValue
import javax.inject.Inject

/** The presenter for [CompletedStoryListActivity]. */
@ActivityScope
class CompletedStoryListActivityPresenter @Inject constructor(
private val activity: AppCompatActivity
private val activity: AppCompatActivity,
@EnableEdgeToEdge private val enableEdgeToEdge: PlatformParameterValue<Boolean>
) {

/** Initializes views for [CompletedStoryListActivity] and binds [CompletedStoryListFragment]. */
fun handleOnCreate(profileId: LegacyProfileId) {
if (enableEdgeToEdge.value) {
EdgeToEdgeHelper.enableEdgeToEdgeDispatch(activity)
}
activity.setContentView(R.layout.completed_story_list_activity)
if (getCompletedStoryListFragment() == null) {
activity
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,14 +11,18 @@ import org.oppia.android.app.databinding.databinding.CompletedStoryListFragmentB
import org.oppia.android.app.model.LegacyProfileId
import org.oppia.android.app.recyclerview.BindableAdapter
import org.oppia.android.app.ui.R
import org.oppia.android.app.utility.edgetoedge.EdgeToEdgeHelper
import org.oppia.android.util.platformparameter.EnableEdgeToEdge
import org.oppia.android.util.platformparameter.PlatformParameterValue
import javax.inject.Inject

/** The presenter for [CompletedStoryListFragment]. */
class CompletedStoryListFragmentPresenter @Inject constructor(
private val activity: AppCompatActivity,
private val fragment: Fragment,
private val viewModel: CompletedStoryListViewModel,
private val singleTypeBuilderFactory: BindableAdapter.SingleTypeBuilder.Factory
private val singleTypeBuilderFactory: BindableAdapter.SingleTypeBuilder.Factory,
@EnableEdgeToEdge private val enableEdgeToEdge: PlatformParameterValue<Boolean>
) {

private lateinit var binding: CompletedStoryListFragmentBinding
Expand Down Expand Up @@ -49,6 +53,14 @@ class CompletedStoryListFragmentPresenter @Inject constructor(
it.lifecycleOwner = fragment
it.viewModel = viewModel
}

if (enableEdgeToEdge.value) {
EdgeToEdgeHelper.applyToAppBarLayout(
activity,
binding.completedStoryListToolbar,
R.color.component_color_shared_activity_status_bar_color
)
}
return binding.root
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,9 @@ import org.oppia.android.app.databinding.databinding.DeveloperOptionsActivityBin
import org.oppia.android.app.drawer.NavigationDrawerFragment
import org.oppia.android.app.splash.SplashActivity
import org.oppia.android.app.ui.R
import org.oppia.android.app.utility.edgetoedge.EdgeToEdgeHelper
import org.oppia.android.util.platformparameter.EnableEdgeToEdge
import org.oppia.android.util.platformparameter.PlatformParameterValue
import javax.inject.Inject
import kotlin.system.exitProcess

Expand All @@ -17,17 +20,28 @@ const val TAG_FORCE_DOWNLOAD_DIALOG = "FORCE_DOWNLOAD_DIALOG_TAG"
/** The presenter for [DeveloperOptionsActivity]. */
@ActivityScope
class DeveloperOptionsActivityPresenter @Inject constructor(
private val activity: AppCompatActivity
private val activity: AppCompatActivity,
@EnableEdgeToEdge private val enableEdgeToEdge: PlatformParameterValue<Boolean>
) {
private lateinit var navigationDrawerFragment: NavigationDrawerFragment
private lateinit var binding: DeveloperOptionsActivityBinding

fun handleOnCreate() {
if (enableEdgeToEdge.value) {
EdgeToEdgeHelper.enableEdgeToEdgeDispatch(activity)
}
binding = DataBindingUtil.setContentView(
activity,
R.layout.developer_options_activity
)
setUpNavigationDrawer()
if (enableEdgeToEdge.value) {
EdgeToEdgeHelper.applyToToolbarContainer(
activity,
binding.developerOptionsActivityToolbar,
R.color.component_color_shared_activity_status_bar_color
)
}
val previousFragment = getDeveloperOptionsFragment()
if (previousFragment == null) {
activity.supportFragmentManager.beginTransaction().add(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,16 +3,23 @@ package org.oppia.android.app.devoptions.featureflags
import androidx.appcompat.app.AppCompatActivity
import org.oppia.android.app.activity.ActivityScope
import org.oppia.android.app.ui.R
import org.oppia.android.app.utility.edgetoedge.EdgeToEdgeHelper
import org.oppia.android.util.platformparameter.EnableEdgeToEdge
import org.oppia.android.util.platformparameter.PlatformParameterValue
import javax.inject.Inject

/** The presenter for [FeatureFlagsActivity]. */
@ActivityScope
class FeatureFlagsActivityPresenter @Inject constructor(
private val activity: AppCompatActivity
private val activity: AppCompatActivity,
@EnableEdgeToEdge private val enableEdgeToEdge: PlatformParameterValue<Boolean>
) {

/** Called when [FeatureFlagsActivity] is created. Handles UI for the activity. */
fun handleOnCreate() {
if (enableEdgeToEdge.value) {
EdgeToEdgeHelper.enableEdgeToEdgeDispatch(activity)
}
activity.supportActionBar?.setDisplayHomeAsUpEnabled(true)
activity.supportActionBar?.setHomeAsUpIndicator(R.drawable.ic_arrow_back_white_24dp)
activity.setContentView(R.layout.feature_flags_activity)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,14 @@ import org.oppia.android.app.model.OverriddenFeatureFlag
import org.oppia.android.app.model.SyncStatus
import org.oppia.android.app.recyclerview.BindableAdapter
import org.oppia.android.app.splash.SplashActivity
import org.oppia.android.app.utility.edgetoedge.EdgeToEdgeHelper
import org.oppia.android.app.view.models.R
import org.oppia.android.domain.oppialogger.OppiaLogger
import org.oppia.android.domain.platformparameter.PlatformParameterControllerDebugImpl
import org.oppia.android.util.data.AsyncResult
import org.oppia.android.util.data.DataProviders.Companion.toLiveData
import org.oppia.android.util.platformparameter.EnableEdgeToEdge
import org.oppia.android.util.platformparameter.PlatformParameterValue
import javax.inject.Inject
import kotlin.system.exitProcess

Expand All @@ -41,7 +44,8 @@ class FeatureFlagsFragmentPresenter @Inject constructor(
private val oppiaLogger: OppiaLogger,
private val featureFlagsViewModel: FeatureFlagsViewModel,
private val platformParameterControllerDebugImpl: PlatformParameterControllerDebugImpl,
private val singleTypeBuilderFactory: BindableAdapter.SingleTypeBuilder.Factory
private val singleTypeBuilderFactory: BindableAdapter.SingleTypeBuilder.Factory,
@EnableEdgeToEdge private val enableEdgeToEdge: PlatformParameterValue<Boolean>
) {
private lateinit var binding: FeatureFlagsFragmentBinding
private lateinit var linearLayoutManager: LinearLayoutManager
Expand Down Expand Up @@ -95,6 +99,14 @@ class FeatureFlagsFragmentPresenter @Inject constructor(
}
}

if (enableEdgeToEdge.value) {
EdgeToEdgeHelper.applyToAppBarLayout(
activity,
binding.featureFlagsToolbar,
R.color.component_color_shared_activity_status_bar_color
)
}

return binding.root
}

Expand Down
Loading
Loading