diff --git a/build.gradle b/build.gradle index c5e2549796c..4722cbdb6c6 100644 --- a/build.gradle +++ b/build.gradle @@ -2,7 +2,7 @@ buildscript { ext { // SDK sdkCompileVersion = 36 - sdkMinVersion = 24 + sdkMinVersion = 28 sdkTargetVersion = 36 } diff --git a/changelog/unreleased/4885 b/changelog/unreleased/4885 new file mode 100644 index 00000000000..9641157aafb --- /dev/null +++ b/changelog/unreleased/4885 @@ -0,0 +1,6 @@ +Change: Upgrade minimum SDK version to API 28 (Android 9) + +The minimum SDK version has been upgraded to API 28 (Android 9) +and previous versions will not be supported anymore + +https://github.com/owncloud/android/pull/4885 diff --git a/owncloudApp/src/androidTest/java/com/owncloud/android/utils/OCTestAndroidJUnitRunner.kt b/owncloudApp/src/androidTest/java/com/owncloud/android/utils/OCTestAndroidJUnitRunner.kt index 3c8820dbc04..d13700fe7d8 100644 --- a/owncloudApp/src/androidTest/java/com/owncloud/android/utils/OCTestAndroidJUnitRunner.kt +++ b/owncloudApp/src/androidTest/java/com/owncloud/android/utils/OCTestAndroidJUnitRunner.kt @@ -1,7 +1,7 @@ /** * ownCloud Android client application * - * Copyright (C) 2022 ownCloud GmbH. + * Copyright (C) 2026 ownCloud GmbH. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2, @@ -30,9 +30,7 @@ import com.github.tmurakami.dexopener.DexOpener */ class OCTestAndroidJUnitRunner : AndroidJUnitRunner() { override fun newApplication(cl: ClassLoader, className: String, context: Context): Application { - if (Build.VERSION.SDK_INT < Build.VERSION_CODES.P) { - DexOpener.install(this) - } + DexOpener.install(this) return super.newApplication(cl, className, context) } } diff --git a/owncloudApp/src/main/java/com/owncloud/android/MainApp.kt b/owncloudApp/src/main/java/com/owncloud/android/MainApp.kt index 49b8f2270e5..5380e207840 100644 --- a/owncloudApp/src/main/java/com/owncloud/android/MainApp.kt +++ b/owncloudApp/src/main/java/com/owncloud/android/MainApp.kt @@ -10,7 +10,7 @@ * @author Aitor Ballesteros Pavón * @author Jorge Aguado Recio * - * Copyright (C) 2025 ownCloud GmbH. + * Copyright (C) 2026 ownCloud GmbH. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2, @@ -33,7 +33,6 @@ import android.app.NotificationManager.IMPORTANCE_LOW import android.content.Context import android.content.pm.PackageInfo import android.content.pm.PackageManager -import android.os.Build import android.os.Bundle import android.view.WindowManager import android.widget.CheckBox @@ -272,10 +271,6 @@ class MainApp : Application() { } private fun createNotificationChannels() { - if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O) { - return - } - createNotificationChannel( id = DOWNLOAD_NOTIFICATION_CHANNEL_ID, name = getString(R.string.download_notification_channel_name), diff --git a/owncloudApp/src/main/java/com/owncloud/android/presentation/files/details/FileDetailsFragment.kt b/owncloudApp/src/main/java/com/owncloud/android/presentation/files/details/FileDetailsFragment.kt index 3ca53ce215c..ccd628b96a0 100644 --- a/owncloudApp/src/main/java/com/owncloud/android/presentation/files/details/FileDetailsFragment.kt +++ b/owncloudApp/src/main/java/com/owncloud/android/presentation/files/details/FileDetailsFragment.kt @@ -27,7 +27,6 @@ import android.accounts.Account import android.content.Intent import android.graphics.Bitmap import android.net.Uri -import android.os.Build import android.os.Bundle import android.view.LayoutInflater import android.view.Menu @@ -259,11 +258,9 @@ class FileDetailsFragment : FileFragment() { } private fun setRolesAccessibilityToMenuItems(menu: Menu) { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { - val roleAccessibilityDescription = getString(R.string.button_role_accessibility) - menu.findItem(R.id.action_rename_file)?.contentDescription = "${getString(R.string.common_rename)} $roleAccessibilityDescription" - menu.findItem(R.id.action_remove_file)?.contentDescription = "${getString(R.string.common_remove)} $roleAccessibilityDescription" - } + val roleAccessibilityDescription = getString(R.string.button_role_accessibility) + menu.findItem(R.id.action_rename_file)?.contentDescription = "${getString(R.string.common_rename)} $roleAccessibilityDescription" + menu.findItem(R.id.action_remove_file)?.contentDescription = "${getString(R.string.common_remove)} $roleAccessibilityDescription" } override fun onOptionsItemSelected(item: MenuItem): Boolean { diff --git a/owncloudApp/src/main/java/com/owncloud/android/presentation/files/filelist/MainFileListFragment.kt b/owncloudApp/src/main/java/com/owncloud/android/presentation/files/filelist/MainFileListFragment.kt index cbcc73f3cad..9ea97f407ab 100644 --- a/owncloudApp/src/main/java/com/owncloud/android/presentation/files/filelist/MainFileListFragment.kt +++ b/owncloudApp/src/main/java/com/owncloud/android/presentation/files/filelist/MainFileListFragment.kt @@ -32,7 +32,6 @@ import android.content.res.ColorStateList import android.content.res.Configuration import android.graphics.drawable.Drawable import android.net.Uri -import android.os.Build import android.os.Bundle import android.view.LayoutInflater import android.view.Menu @@ -266,28 +265,26 @@ class MainFileListFragment : Fragment(), } private fun setRolesAccessibilityToMenuItems() { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { - val roleAccessibilityDescription = getString(R.string.button_role_accessibility) - menu?.apply { - findItem(R.id.file_action_select_all)?.contentDescription = - "${getString(R.string.actionbar_select_all)} $roleAccessibilityDescription" - findItem(R.id.action_select_inverse)?.contentDescription = - "${getString(R.string.actionbar_select_inverse)} $roleAccessibilityDescription" - findItem(R.id.action_open_file_with)?.contentDescription = - "${getString(R.string.actionbar_open_with)} $roleAccessibilityDescription" - findItem(R.id.action_rename_file)?.contentDescription = "${getString(R.string.common_rename)} $roleAccessibilityDescription" - findItem(R.id.action_move)?.contentDescription = "${getString(R.string.actionbar_move)} $roleAccessibilityDescription" - findItem(R.id.action_copy)?.contentDescription = "${getString(R.string.copy)} $roleAccessibilityDescription" - findItem(R.id.action_send_file)?.contentDescription = - "${getString(R.string.actionbar_send_file)} $roleAccessibilityDescription" - findItem(R.id.action_set_available_offline)?.contentDescription = - "${getString(R.string.set_available_offline)} $roleAccessibilityDescription" - findItem(R.id.action_unset_available_offline)?.contentDescription = - "${getString(R.string.unset_available_offline)} $roleAccessibilityDescription" - findItem(R.id.action_see_details)?.contentDescription = - "${getString(R.string.actionbar_see_details)} $roleAccessibilityDescription" - findItem(R.id.action_remove_file)?.contentDescription = "${getString(R.string.common_remove)} $roleAccessibilityDescription" - } + val roleAccessibilityDescription = getString(R.string.button_role_accessibility) + menu?.apply { + findItem(R.id.file_action_select_all)?.contentDescription = + "${getString(R.string.actionbar_select_all)} $roleAccessibilityDescription" + findItem(R.id.action_select_inverse)?.contentDescription = + "${getString(R.string.actionbar_select_inverse)} $roleAccessibilityDescription" + findItem(R.id.action_open_file_with)?.contentDescription = + "${getString(R.string.actionbar_open_with)} $roleAccessibilityDescription" + findItem(R.id.action_rename_file)?.contentDescription = "${getString(R.string.common_rename)} $roleAccessibilityDescription" + findItem(R.id.action_move)?.contentDescription = "${getString(R.string.actionbar_move)} $roleAccessibilityDescription" + findItem(R.id.action_copy)?.contentDescription = "${getString(R.string.copy)} $roleAccessibilityDescription" + findItem(R.id.action_send_file)?.contentDescription = + "${getString(R.string.actionbar_send_file)} $roleAccessibilityDescription" + findItem(R.id.action_set_available_offline)?.contentDescription = + "${getString(R.string.set_available_offline)} $roleAccessibilityDescription" + findItem(R.id.action_unset_available_offline)?.contentDescription = + "${getString(R.string.unset_available_offline)} $roleAccessibilityDescription" + findItem(R.id.action_see_details)?.contentDescription = + "${getString(R.string.actionbar_see_details)} $roleAccessibilityDescription" + findItem(R.id.action_remove_file)?.contentDescription = "${getString(R.string.common_remove)} $roleAccessibilityDescription" } } diff --git a/owncloudApp/src/main/java/com/owncloud/android/presentation/settings/SettingsFragment.kt b/owncloudApp/src/main/java/com/owncloud/android/presentation/settings/SettingsFragment.kt index b5471eec0d0..8e4b3a574a9 100644 --- a/owncloudApp/src/main/java/com/owncloud/android/presentation/settings/SettingsFragment.kt +++ b/owncloudApp/src/main/java/com/owncloud/android/presentation/settings/SettingsFragment.kt @@ -2,8 +2,9 @@ * ownCloud Android client application * * @author Juan Carlos Garrote Gascón + * @author Jorge Aguado Recio * - * Copyright (C) 2021 ownCloud GmbH. + * Copyright (C) 2026 ownCloud GmbH. *
* This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2, @@ -24,7 +25,6 @@ import android.content.ClipData import android.content.ClipboardManager import android.content.Context import android.content.Intent -import android.os.Build import android.os.Bundle import android.provider.Settings import androidx.preference.Preference @@ -93,16 +93,12 @@ class SettingsFragment : PreferenceFragmentCompat() { true } - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { - subsectionNotifications?.setOnPreferenceClickListener { - val intent = Intent(Settings.ACTION_APP_NOTIFICATION_SETTINGS).apply { - putExtra(Settings.EXTRA_APP_PACKAGE, requireContext().packageName) - } - startActivity(intent) - true + subsectionNotifications?.setOnPreferenceClickListener { + val intent = Intent(Settings.ACTION_APP_NOTIFICATION_SETTINGS).apply { + putExtra(Settings.EXTRA_APP_PACKAGE, requireContext().packageName) } - } else { - settingsScreen.removePreferenceFromScreen(subsectionNotifications) + startActivity(intent) + true } prefAboutApp?.apply { diff --git a/owncloudApp/src/main/java/com/owncloud/android/presentation/settings/automaticuploads/SettingsPictureUploadsFragment.kt b/owncloudApp/src/main/java/com/owncloud/android/presentation/settings/automaticuploads/SettingsPictureUploadsFragment.kt index e8c16ddbf49..071dc186a0c 100644 --- a/owncloudApp/src/main/java/com/owncloud/android/presentation/settings/automaticuploads/SettingsPictureUploadsFragment.kt +++ b/owncloudApp/src/main/java/com/owncloud/android/presentation/settings/automaticuploads/SettingsPictureUploadsFragment.kt @@ -5,7 +5,7 @@ * @author Aitor Ballesteros Pavón * @author Jorge Aguado Recio * - * Copyright (C) 2024 ownCloud GmbH. + * Copyright (C) 2026 ownCloud GmbH. *
* This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2, @@ -25,7 +25,6 @@ package com.owncloud.android.presentation.settings.automaticuploads import android.app.Activity import android.content.DialogInterface import android.content.Intent -import android.os.Build import android.os.Bundle import android.provider.DocumentsContract import android.view.View @@ -209,9 +208,7 @@ class SettingsPictureUploadsFragment : PreferenceFragmentCompat() { currentSourcePath.takeUnless { it.endsWith(File.separator) } ?: currentSourcePath.plus(File.separator) } val intent = Intent(Intent.ACTION_OPEN_DOCUMENT_TREE).apply { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { - putExtra(DocumentsContract.EXTRA_INITIAL_URI, sourcePath) - } + putExtra(DocumentsContract.EXTRA_INITIAL_URI, sourcePath) addFlags( Intent.FLAG_GRANT_READ_URI_PERMISSION or Intent.FLAG_GRANT_WRITE_URI_PERMISSION diff --git a/owncloudApp/src/main/java/com/owncloud/android/presentation/settings/automaticuploads/SettingsVideoUploadsFragment.kt b/owncloudApp/src/main/java/com/owncloud/android/presentation/settings/automaticuploads/SettingsVideoUploadsFragment.kt index 312c958d438..d01ca2682d3 100644 --- a/owncloudApp/src/main/java/com/owncloud/android/presentation/settings/automaticuploads/SettingsVideoUploadsFragment.kt +++ b/owncloudApp/src/main/java/com/owncloud/android/presentation/settings/automaticuploads/SettingsVideoUploadsFragment.kt @@ -5,7 +5,7 @@ * @author Aitor Ballesteros Pavón * @author Jorge Aguado Recio * - * Copyright (C) 2024 ownCloud GmbH. + * Copyright (C) 2026 ownCloud GmbH. *
* This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2, @@ -25,7 +25,6 @@ package com.owncloud.android.presentation.settings.automaticuploads import android.app.Activity import android.content.DialogInterface import android.content.Intent -import android.os.Build import android.os.Bundle import android.provider.DocumentsContract import android.view.View @@ -207,9 +206,7 @@ class SettingsVideoUploadsFragment : PreferenceFragmentCompat() { currentSourcePath.takeUnless { it.endsWith(File.separator) } ?: currentSourcePath.plus(File.separator) } val intent = Intent(Intent.ACTION_OPEN_DOCUMENT_TREE).apply { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { - putExtra(DocumentsContract.EXTRA_INITIAL_URI, sourcePath) - } + putExtra(DocumentsContract.EXTRA_INITIAL_URI, sourcePath) addFlags( Intent.FLAG_GRANT_READ_URI_PERMISSION or Intent.FLAG_GRANT_WRITE_URI_PERMISSION diff --git a/owncloudApp/src/main/java/com/owncloud/android/ui/activity/DrawerActivity.kt b/owncloudApp/src/main/java/com/owncloud/android/ui/activity/DrawerActivity.kt index dc1f0070bc4..fa1dd9807eb 100644 --- a/owncloudApp/src/main/java/com/owncloud/android/ui/activity/DrawerActivity.kt +++ b/owncloudApp/src/main/java/com/owncloud/android/ui/activity/DrawerActivity.kt @@ -33,7 +33,6 @@ import android.accounts.AccountManagerFuture import android.content.Intent import android.content.res.ColorStateList import android.content.res.Configuration -import android.os.Build import android.os.Bundle import android.os.Handler import android.provider.DocumentsContract @@ -137,11 +136,9 @@ abstract class DrawerActivity : ToolbarActivity() { // Notch support getNavView()?.addOnAttachStateChangeListener(object : View.OnAttachStateChangeListener { override fun onViewAttachedToWindow(v: View) { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) { - v.rootWindowInsets.displayCutout?.let { - getDrawerActiveUser()?.layoutParams?.height = - DisplayUtils.getDrawerHeaderHeight(it.safeInsetTop, resources) - } + v.rootWindowInsets.displayCutout?.let { + getDrawerActiveUser()?.layoutParams?.height = + DisplayUtils.getDrawerHeaderHeight(it.safeInsetTop, resources) } } @@ -499,16 +496,14 @@ abstract class DrawerActivity : ToolbarActivity() { } private fun setRolesAccessibilityToMenuItems() { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { - val navViewMenu = getNavView()?.menu ?: return - val roleAccessibilityDescription = getString(R.string.button_role_accessibility) - navViewMenu.apply { - findItem(R.id.nav_settings)?.contentDescription = "${getString(R.string.actionbar_settings)} $roleAccessibilityDescription" - findItem(R.id.drawer_menu_feedback)?.contentDescription = "${getString(R.string.drawer_feedback)} $roleAccessibilityDescription" - findItem(R.id.drawer_menu_help)?.contentDescription = "${getString(R.string.prefs_help)} $roleAccessibilityDescription" - findItem(R.id.drawer_menu_privacy_policy)?.contentDescription = - "${getString(R.string.prefs_privacy_policy)} $roleAccessibilityDescription" - } + val navViewMenu = getNavView()?.menu ?: return + val roleAccessibilityDescription = getString(R.string.button_role_accessibility) + navViewMenu.apply { + findItem(R.id.nav_settings)?.contentDescription = "${getString(R.string.actionbar_settings)} $roleAccessibilityDescription" + findItem(R.id.drawer_menu_feedback)?.contentDescription = "${getString(R.string.drawer_feedback)} $roleAccessibilityDescription" + findItem(R.id.drawer_menu_help)?.contentDescription = "${getString(R.string.prefs_help)} $roleAccessibilityDescription" + findItem(R.id.drawer_menu_privacy_policy)?.contentDescription = + "${getString(R.string.prefs_privacy_policy)} $roleAccessibilityDescription" } } diff --git a/owncloudApp/src/main/java/com/owncloud/android/ui/activity/FileDisplayActivity.kt b/owncloudApp/src/main/java/com/owncloud/android/ui/activity/FileDisplayActivity.kt index 7b7d2b4a56b..9968da1c99c 100644 --- a/owncloudApp/src/main/java/com/owncloud/android/ui/activity/FileDisplayActivity.kt +++ b/owncloudApp/src/main/java/com/owncloud/android/ui/activity/FileDisplayActivity.kt @@ -588,9 +588,7 @@ class FileDisplayActivity : FileActivity(), } private fun setRolesAccessibilityToMenuItems() { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { - selectAllMenuItem?.contentDescription = "${getString(R.string.actionbar_select_all)} ${getString(R.string.button_role_accessibility)}" - } + selectAllMenuItem?.contentDescription = "${getString(R.string.actionbar_select_all)} ${getString(R.string.button_role_accessibility)}" } override fun onOptionsItemSelected(item: MenuItem): Boolean { diff --git a/owncloudApp/src/main/java/com/owncloud/android/ui/fragment/FileFragment.java b/owncloudApp/src/main/java/com/owncloud/android/ui/fragment/FileFragment.java index 9d5f3fd7b7a..e9c97eb1fa9 100644 --- a/owncloudApp/src/main/java/com/owncloud/android/ui/fragment/FileFragment.java +++ b/owncloudApp/src/main/java/com/owncloud/android/ui/fragment/FileFragment.java @@ -5,8 +5,9 @@ * @author Christian Schabesberger * @author David González Verdugo * @author Aitor Ballesteros Pavón + * @author Jorge Aguado Recio * - * Copyright (C) 2024 ownCloud GmbH. + * Copyright (C) 2026 ownCloud GmbH. *
* This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2, @@ -157,12 +158,10 @@ public void onCreateOptionsMenu(@NonNull Menu menu, @NonNull MenuInflater inflat super.onCreateOptionsMenu(menu, inflater); inflater.inflate(R.menu.file_actions_menu, menu); - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { - String roleAccessibilityDescription = getString(R.string.button_role_accessibility); - menu.findItem(R.id.action_open_file_with).setContentDescription(getString(R.string.actionbar_open_with) + " " + roleAccessibilityDescription); - menu.findItem(R.id.action_send_file).setContentDescription(getString(R.string.actionbar_send_file) + " " + roleAccessibilityDescription); - menu.findItem(R.id.action_set_available_offline).setContentDescription(getString(R.string.set_available_offline) + " " + roleAccessibilityDescription); - menu.findItem(R.id.action_unset_available_offline).setContentDescription(getString(R.string.set_available_offline) + " " + roleAccessibilityDescription); - } + String roleAccessibilityDescription = getString(R.string.button_role_accessibility); + menu.findItem(R.id.action_open_file_with).setContentDescription(getString(R.string.actionbar_open_with) + " " + roleAccessibilityDescription); + menu.findItem(R.id.action_send_file).setContentDescription(getString(R.string.actionbar_send_file) + " " + roleAccessibilityDescription); + menu.findItem(R.id.action_set_available_offline).setContentDescription(getString(R.string.set_available_offline) + " " + roleAccessibilityDescription); + menu.findItem(R.id.action_unset_available_offline).setContentDescription(getString(R.string.set_available_offline) + " " + roleAccessibilityDescription); } } diff --git a/owncloudApp/src/main/java/com/owncloud/android/ui/preview/PreviewAudioFragment.kt b/owncloudApp/src/main/java/com/owncloud/android/ui/preview/PreviewAudioFragment.kt index 32c43d02615..3ffafb67d5f 100644 --- a/owncloudApp/src/main/java/com/owncloud/android/ui/preview/PreviewAudioFragment.kt +++ b/owncloudApp/src/main/java/com/owncloud/android/ui/preview/PreviewAudioFragment.kt @@ -34,7 +34,6 @@ import android.content.Intent import android.content.ServiceConnection import android.graphics.BitmapFactory import android.media.MediaMetadataRetriever -import android.os.Build import android.os.Bundle import android.os.IBinder import android.view.LayoutInflater @@ -264,10 +263,8 @@ class PreviewAudioFragment : FileFragment() { } private fun setRolesAccessibilityToMenuItems(menu: Menu) { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { - menu.findItem(R.id.action_see_details)?.contentDescription = - "${getString(R.string.actionbar_see_details)} ${getString(R.string.button_role_accessibility)}" - } + menu.findItem(R.id.action_see_details)?.contentDescription = + "${getString(R.string.actionbar_see_details)} ${getString(R.string.button_role_accessibility)}" } /** diff --git a/owncloudApp/src/main/java/com/owncloud/android/ui/preview/PreviewImageFragment.kt b/owncloudApp/src/main/java/com/owncloud/android/ui/preview/PreviewImageFragment.kt index 61a1503e040..162ab6aa852 100644 --- a/owncloudApp/src/main/java/com/owncloud/android/ui/preview/PreviewImageFragment.kt +++ b/owncloudApp/src/main/java/com/owncloud/android/ui/preview/PreviewImageFragment.kt @@ -10,7 +10,7 @@ * @author Aitor Ballesteros Pavón * @author Jorge Aguado Recio * - * Copyright (C) 2025 ownCloud GmbH. + * Copyright (C) 2026 ownCloud GmbH. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2, @@ -31,7 +31,6 @@ import android.accounts.Account import android.graphics.Bitmap import android.graphics.Color import android.graphics.drawable.Drawable -import android.os.Build import android.os.Bundle import android.view.LayoutInflater import android.view.Menu @@ -207,10 +206,8 @@ class PreviewImageFragment : FileFragment() { } private fun setRolesAccessibilityToMenuItems(menu: Menu) { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { - menu.findItem(R.id.action_see_details)?.contentDescription = - "${getString(R.string.actionbar_see_details)} ${getString(R.string.button_role_accessibility)}" - } + menu.findItem(R.id.action_see_details)?.contentDescription = + "${getString(R.string.actionbar_see_details)} ${getString(R.string.button_role_accessibility)}" } /** diff --git a/owncloudApp/src/main/java/com/owncloud/android/ui/preview/PreviewVideoActivity.kt b/owncloudApp/src/main/java/com/owncloud/android/ui/preview/PreviewVideoActivity.kt index bc0619a4372..c61b3d97476 100644 --- a/owncloudApp/src/main/java/com/owncloud/android/ui/preview/PreviewVideoActivity.kt +++ b/owncloudApp/src/main/java/com/owncloud/android/ui/preview/PreviewVideoActivity.kt @@ -357,20 +357,18 @@ class PreviewVideoActivity : FileActivity(), Player.Listener, OnPrepareVideoPlay } private fun setRolesAccessibilityToMenuItems(menu: Menu) { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { - val roleAccessibilityDescription = getString(R.string.button_role_accessibility) - menu.apply { - menu.findItem(R.id.action_open_file_with)?.contentDescription = - "${getString(R.string.actionbar_open_with)} $roleAccessibilityDescription" - menu.findItem(R.id.action_send_file)?.contentDescription = "${getString(R.string.actionbar_send_file)} $roleAccessibilityDescription" - menu.findItem(R.id.action_set_available_offline)?.contentDescription = - "${getString(R.string.set_available_offline)} $roleAccessibilityDescription" - menu.findItem(R.id.action_unset_available_offline)?.contentDescription = - "${getString(R.string.unset_available_offline)} $roleAccessibilityDescription" - menu.findItem(R.id.action_see_details)?.contentDescription = - "${getString(R.string.actionbar_see_details)} $roleAccessibilityDescription" - menu.findItem(R.id.action_remove_file)?.contentDescription = "${getString(R.string.common_remove)} $roleAccessibilityDescription" - } + val roleAccessibilityDescription = getString(R.string.button_role_accessibility) + menu.apply { + menu.findItem(R.id.action_open_file_with)?.contentDescription = + "${getString(R.string.actionbar_open_with)} $roleAccessibilityDescription" + menu.findItem(R.id.action_send_file)?.contentDescription = "${getString(R.string.actionbar_send_file)} $roleAccessibilityDescription" + menu.findItem(R.id.action_set_available_offline)?.contentDescription = + "${getString(R.string.set_available_offline)} $roleAccessibilityDescription" + menu.findItem(R.id.action_unset_available_offline)?.contentDescription = + "${getString(R.string.unset_available_offline)} $roleAccessibilityDescription" + menu.findItem(R.id.action_see_details)?.contentDescription = + "${getString(R.string.actionbar_see_details)} $roleAccessibilityDescription" + menu.findItem(R.id.action_remove_file)?.contentDescription = "${getString(R.string.common_remove)} $roleAccessibilityDescription" } } diff --git a/owncloudComLibrary/src/test/java/com/owncloud/android/lib/GetRemoteStatusOperationTest.kt b/owncloudComLibrary/src/test/java/com/owncloud/android/lib/GetRemoteStatusOperationTest.kt index 375e9aa52fb..9c3d9261239 100644 --- a/owncloudComLibrary/src/test/java/com/owncloud/android/lib/GetRemoteStatusOperationTest.kt +++ b/owncloudComLibrary/src/test/java/com/owncloud/android/lib/GetRemoteStatusOperationTest.kt @@ -1,5 +1,5 @@ /* ownCloud Android Library is available under MIT license - * Copyright (C) 2021 ownCloud GmbH. + * Copyright (C) 2026 ownCloud GmbH. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -37,7 +37,7 @@ import org.robolectric.RobolectricTestRunner import org.robolectric.annotation.Config @RunWith(RobolectricTestRunner::class) -@Config(sdk = [Build.VERSION_CODES.O], manifest = Config.NONE) +@Config(sdk = [Build.VERSION_CODES.P], manifest = Config.NONE) class GetRemoteStatusOperationTest { @Test diff --git a/owncloudComLibrary/src/test/java/com/owncloud/android/lib/RemoteFileTest.kt b/owncloudComLibrary/src/test/java/com/owncloud/android/lib/RemoteFileTest.kt index 6cd8febe028..cd7c0991ecd 100644 --- a/owncloudComLibrary/src/test/java/com/owncloud/android/lib/RemoteFileTest.kt +++ b/owncloudComLibrary/src/test/java/com/owncloud/android/lib/RemoteFileTest.kt @@ -1,5 +1,5 @@ /* ownCloud Android Library is available under MIT license - * Copyright (C) 2023 ownCloud GmbH. + * Copyright (C) 2026 ownCloud GmbH. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -33,7 +33,7 @@ import org.robolectric.RobolectricTestRunner import org.robolectric.annotation.Config @RunWith(RobolectricTestRunner::class) -@Config(sdk = [Build.VERSION_CODES.O], manifest = Config.NONE) +@Config(sdk = [Build.VERSION_CODES.P], manifest = Config.NONE) class RemoteFileTest { @Test