MDMConfig.kt 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. /*
  2. * Nextcloud - Android Client
  3. *
  4. * SPDX-FileCopyrightText: 2024 Alper Ozturk <alper.ozturk@nextcloud.com>
  5. * SPDX-License-Identifier: AGPL-3.0-or-later
  6. */
  7. package com.nextcloud.utils.mdm
  8. import android.content.Context
  9. import com.nextcloud.utils.extensions.getRestriction
  10. import com.owncloud.android.BuildConfig
  11. import com.owncloud.android.R
  12. import com.owncloud.android.utils.appConfig.AppConfigKeys
  13. object MDMConfig {
  14. fun multiAccountSupport(context: Context): Boolean {
  15. val multiAccountSupport = context.resources.getBoolean(R.bool.multiaccount_support)
  16. val disableMultiAccountViaMDM = context.getRestriction(
  17. AppConfigKeys.DisableMultiAccount,
  18. context.resources.getBoolean(R.bool.disable_multiaccount)
  19. )
  20. return multiAccountSupport && !disableMultiAccountViaMDM
  21. }
  22. fun shareViaLink(context: Context): Boolean {
  23. val disableShareViaMDM = context.getRestriction(
  24. AppConfigKeys.DisableSharing,
  25. context.resources.getBoolean(R.bool.disable_sharing)
  26. )
  27. val shareViaLink = context.resources.getBoolean(R.bool.share_via_link_feature)
  28. return shareViaLink && disableShareViaMDM
  29. }
  30. fun shareViaUser(context: Context): Boolean {
  31. val disableShareViaMDM = context.getRestriction(
  32. AppConfigKeys.DisableSharing,
  33. context.resources.getBoolean(R.bool.disable_sharing)
  34. )
  35. val shareViaUsers = context.resources.getBoolean(R.bool.share_with_users_feature)
  36. return shareViaUsers && disableShareViaMDM
  37. }
  38. fun clipBoardSupport(context: Context): Boolean {
  39. val disableClipboardSupport = context.getRestriction(
  40. AppConfigKeys.DisableClipboard,
  41. context.resources.getBoolean(R.bool.disable_clipboard)
  42. )
  43. return !disableClipboardSupport
  44. }
  45. fun externalSiteSupport(context: Context): Boolean {
  46. val disableMoreExternalSiteViaMDM = context.getRestriction(
  47. AppConfigKeys.DisableMoreExternalSite,
  48. context.resources.getBoolean(R.bool.disable_more_external_site)
  49. )
  50. val showExternalLinks = context.resources.getBoolean(R.bool.show_external_links)
  51. return showExternalLinks && !disableMoreExternalSiteViaMDM
  52. }
  53. fun showIntro(context: Context): Boolean {
  54. val disableIntroViaMDM =
  55. context.getRestriction(AppConfigKeys.DisableIntro, context.resources.getBoolean(R.bool.disable_intro))
  56. val isProviderOrOwnInstallationVisible = context.resources.getBoolean(R.bool.show_provider_or_own_installation)
  57. return isProviderOrOwnInstallationVisible && !disableIntroViaMDM
  58. }
  59. fun enableLog(context: Context): Boolean {
  60. val disableLogViaMDM =
  61. context.getRestriction(AppConfigKeys.DisableLog, context.resources.getBoolean(R.bool.disable_log))
  62. val loggerEnabled = context.resources.getBoolean(R.bool.logger_enabled)
  63. return loggerEnabled && !disableLogViaMDM && BuildConfig.DEBUG
  64. }
  65. }