From ac785d3d77f33e6d9a0e53b3a7802e2f4a1daa3e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 20 Nov 2024 11:19:40 +0000 Subject: [PATCH 01/27] Update dependency androidx.compose:compose-bom to v2024.11.00 Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- app/build.gradle | 2 +- gradle/verification-metadata.xml | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/app/build.gradle b/app/build.gradle index ac1c78d255..d8fb9060b4 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -269,7 +269,7 @@ dependencies { } // Jetpack Compose - implementation(platform("androidx.compose:compose-bom:2024.10.01")) + implementation(platform("androidx.compose:compose-bom:2024.11.00")) implementation("androidx.compose.ui:ui") implementation("androidx.compose.ui:ui-graphics") implementation("androidx.compose.material3:material3") diff --git a/gradle/verification-metadata.xml b/gradle/verification-metadata.xml index ebebfb0f1d..37a37b2a12 100644 --- a/gradle/verification-metadata.xml +++ b/gradle/verification-metadata.xml @@ -1025,6 +1025,11 @@ + + + + + From d763717daaa9f15366ad1fc3d1b72dec7b9365dc Mon Sep 17 00:00:00 2001 From: tobiasKaminsky Date: Tue, 12 Nov 2024 10:32:50 +0100 Subject: [PATCH 02/27] Fix power check dialog added test Signed-off-by: tobiasKaminsky --- ...FoldersActivityIT_showPowerCheckDialog.png | Bin 0 -> 32413 bytes .../client/SyncedFoldersActivityIT.java | 23 ++++++++++++++++- .../ui/activity/SyncedFoldersActivity.kt | 24 +++++++++--------- 3 files changed, 34 insertions(+), 13 deletions(-) create mode 100644 app/screenshots/gplay/debug/com.nextcloud.client.SyncedFoldersActivityIT_showPowerCheckDialog.png diff --git a/app/screenshots/gplay/debug/com.nextcloud.client.SyncedFoldersActivityIT_showPowerCheckDialog.png b/app/screenshots/gplay/debug/com.nextcloud.client.SyncedFoldersActivityIT_showPowerCheckDialog.png new file mode 100644 index 0000000000000000000000000000000000000000..f7a9b2a92df60850c8f6f099a4f82a7211dda54d GIT binary patch literal 32413 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 literal 0 HcmV?d00001 diff --git a/app/src/androidTest/java/com/nextcloud/client/SyncedFoldersActivityIT.java b/app/src/androidTest/java/com/nextcloud/client/SyncedFoldersActivityIT.java index e1770a1d38..4bc1377a7f 100644 --- a/app/src/androidTest/java/com/nextcloud/client/SyncedFoldersActivityIT.java +++ b/app/src/androidTest/java/com/nextcloud/client/SyncedFoldersActivityIT.java @@ -7,8 +7,8 @@ */ package com.nextcloud.client; -import android.app.Activity; import android.content.Intent; +import android.os.Looper; import com.nextcloud.client.preferences.SubFolderRule; import com.owncloud.android.AbstractIT; @@ -25,6 +25,7 @@ import org.junit.Test; import java.util.Objects; +import androidx.appcompat.app.AlertDialog; import androidx.test.espresso.intent.rule.IntentsTestRule; import static androidx.test.platform.app.InstrumentationRegistry.getInstrumentation; @@ -78,4 +79,24 @@ public class SyncedFoldersActivityIT extends AbstractIT { screenshot(Objects.requireNonNull(sut.requireDialog().getWindow()).getDecorView()); } + + @Test + @ScreenshotTest + public void showPowerCheckDialog() { + if (Looper.myLooper() == null) { + Looper.prepare(); + } + + Intent intent = new Intent(targetContext, SyncedFoldersActivity.class); + SyncedFoldersActivity activity = activityRule.launchActivity(intent); + + AlertDialog sut = activity.buildPowerCheckDialog(); + + activity.runOnUiThread(sut::show); + + getInstrumentation().waitForIdleSync(); + shortSleep(); + + screenshot(Objects.requireNonNull(sut.getWindow()).getDecorView()); + } } diff --git a/app/src/main/java/com/owncloud/android/ui/activity/SyncedFoldersActivity.kt b/app/src/main/java/com/owncloud/android/ui/activity/SyncedFoldersActivity.kt index 23486394a2..9ce6684472 100644 --- a/app/src/main/java/com/owncloud/android/ui/activity/SyncedFoldersActivity.kt +++ b/app/src/main/java/com/owncloud/android/ui/activity/SyncedFoldersActivity.kt @@ -20,6 +20,7 @@ import android.text.TextUtils import android.view.Menu import android.view.MenuItem import android.view.View +import androidx.annotation.VisibleForTesting import androidx.appcompat.app.AlertDialog import androidx.drawerlayout.widget.DrawerLayout import androidx.lifecycle.Lifecycle @@ -31,7 +32,6 @@ import com.nextcloud.client.di.Injectable import com.nextcloud.client.jobs.MediaFoldersDetectionWork import com.nextcloud.client.jobs.NotificationWork import com.nextcloud.client.jobs.upload.FileUploadWorker -import com.nextcloud.client.preferences.AppPreferences import com.nextcloud.client.preferences.SubFolderRule import com.nextcloud.utils.extensions.getParcelableArgument import com.nextcloud.utils.extensions.isDialogFragmentReady @@ -56,7 +56,6 @@ import com.owncloud.android.ui.dialog.SyncedFolderPreferencesDialogFragment.OnSy import com.owncloud.android.ui.dialog.parcel.SyncedFolderParcelable import com.owncloud.android.utils.PermissionUtil import com.owncloud.android.utils.SyncedFolderUtils -import com.owncloud.android.utils.theme.ViewThemeUtils import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Job @@ -135,18 +134,12 @@ class SyncedFoldersActivity : } } - @Inject - lateinit var preferences: AppPreferences - @Inject lateinit var powerManagementService: PowerManagementService @Inject lateinit var clock: Clock - @Inject - lateinit var viewThemeUtils: ViewThemeUtils - @Inject lateinit var syncedFolderProvider: SyncedFolderProvider @@ -220,17 +213,23 @@ class SyncedFoldersActivity : powerCheck.isChecked = !powerCheck.isChecked return true } - - private fun showPowerCheckDialog() { + + fun buildPowerCheckDialog(): AlertDialog { val builder = MaterialAlertDialogBuilder(this) - .setView(R.id.root_layout) .setPositiveButton(R.string.common_ok) { dialog, _ -> dialog.dismiss() } .setTitle(R.string.autoupload_disable_power_save_check) .setMessage(getString(R.string.power_save_check_dialog_message)) viewThemeUtils.dialog.colorMaterialAlertDialogBackground(this, builder) - builder.create().show() + return builder.create() + } + + @VisibleForTesting + fun showPowerCheckDialog() { + buildPowerCheckDialog().show() + + } /** @@ -636,6 +635,7 @@ class SyncedFoldersActivity : binding.emptyList.emptyListIcon.visibility = View.VISIBLE } + @Deprecated("Deprecated in Java") override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { if (requestCode == SyncedFolderPreferencesDialogFragment.REQUEST_CODE__SELECT_REMOTE_FOLDER && resultCode == RESULT_OK && dialogFragment != null From 03b83c4a0ae95e932200e2e003482042322641a4 Mon Sep 17 00:00:00 2001 From: tobiasKaminsky Date: Tue, 12 Nov 2024 10:34:14 +0100 Subject: [PATCH 03/27] Fix power check dialog added test Signed-off-by: tobiasKaminsky --- .../com/owncloud/android/ui/activity/SyncedFoldersActivity.kt | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/app/src/main/java/com/owncloud/android/ui/activity/SyncedFoldersActivity.kt b/app/src/main/java/com/owncloud/android/ui/activity/SyncedFoldersActivity.kt index 9ce6684472..98e11ff314 100644 --- a/app/src/main/java/com/owncloud/android/ui/activity/SyncedFoldersActivity.kt +++ b/app/src/main/java/com/owncloud/android/ui/activity/SyncedFoldersActivity.kt @@ -213,7 +213,7 @@ class SyncedFoldersActivity : powerCheck.isChecked = !powerCheck.isChecked return true } - + fun buildPowerCheckDialog(): AlertDialog { val builder = MaterialAlertDialogBuilder(this) .setPositiveButton(R.string.common_ok) { dialog, _ -> dialog.dismiss() } @@ -228,8 +228,6 @@ class SyncedFoldersActivity : @VisibleForTesting fun showPowerCheckDialog() { buildPowerCheckDialog().show() - - } /** From 851221245c8605061ed78d2df71428ee9053e7ed Mon Sep 17 00:00:00 2001 From: tobiasKaminsky Date: Wed, 20 Nov 2024 14:38:17 +0100 Subject: [PATCH 04/27] update screenshots Signed-off-by: tobiasKaminsky --- ...FoldersActivityIT_showPowerCheckDialog.png | Bin 32413 -> 9383 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/app/screenshots/gplay/debug/com.nextcloud.client.SyncedFoldersActivityIT_showPowerCheckDialog.png b/app/screenshots/gplay/debug/com.nextcloud.client.SyncedFoldersActivityIT_showPowerCheckDialog.png index f7a9b2a92df60850c8f6f099a4f82a7211dda54d..c99e6641857dfb2a86a8123d68fb61960a6faea9 100644 GIT binary patch literal 9383 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 literal 32413 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 From d631131f4d68c61ad028fb3471e65e60f9524abc Mon Sep 17 00:00:00 2001 From: alperozturk Date: Wed, 20 Nov 2024 16:42:55 +0100 Subject: [PATCH 05/27] add enforce mdm Signed-off-by: alperozturk --- .../java/com/nextcloud/utils/mdm/MDMConfig.kt | 3 ++ .../com/nmc/android/ui/LauncherActivity.kt | 8 ++- .../authentication/AuthenticatorActivity.java | 16 ++++-- .../android/ui/ListPreferenceDialog.kt | 46 ++++++++++++++++ .../android/ui/activity/SettingsActivity.java | 52 +++++++++++++------ .../android/utils/appConfig/AppConfigKeys.kt | 3 +- app/src/main/res/values/setup.xml | 1 + app/src/main/res/values/strings.xml | 1 + app/src/main/res/xml/app_config.xml | 6 +++ app/src/main/res/xml/preferences.xml | 2 +- 10 files changed, 116 insertions(+), 22 deletions(-) create mode 100644 app/src/main/java/com/owncloud/android/ui/ListPreferenceDialog.kt diff --git a/app/src/main/java/com/nextcloud/utils/mdm/MDMConfig.kt b/app/src/main/java/com/nextcloud/utils/mdm/MDMConfig.kt index 126dcf3404..3670e84484 100644 --- a/app/src/main/java/com/nextcloud/utils/mdm/MDMConfig.kt +++ b/app/src/main/java/com/nextcloud/utils/mdm/MDMConfig.kt @@ -119,6 +119,9 @@ object MDMConfig { fun getPort(context: Context): Int = context.getRestriction(AppConfigKeys.ProxyPort, context.resources.getInteger(R.integer.proxy_port)) + fun enforceProtection(context: Context): Boolean = + context.getRestriction(AppConfigKeys.EnforceProtection, context.resources.getBoolean(R.bool.enforce_protection)) + @Suppress("UNCHECKED_CAST") private fun Context.getRestriction(appConfigKey: AppConfigKeys, defaultValue: T): T { val restrictionsManager = getSystemService(Context.RESTRICTIONS_SERVICE) as? RestrictionsManager diff --git a/app/src/main/java/com/nmc/android/ui/LauncherActivity.kt b/app/src/main/java/com/nmc/android/ui/LauncherActivity.kt index b3858c03d1..b39b3f8122 100644 --- a/app/src/main/java/com/nmc/android/ui/LauncherActivity.kt +++ b/app/src/main/java/com/nmc/android/ui/LauncherActivity.kt @@ -17,11 +17,13 @@ import android.view.View import androidx.annotation.VisibleForTesting import androidx.core.splashscreen.SplashScreen.Companion.installSplashScreen import com.nextcloud.client.preferences.AppPreferences +import com.nextcloud.utils.mdm.MDMConfig import com.owncloud.android.R import com.owncloud.android.authentication.AuthenticatorActivity import com.owncloud.android.databinding.ActivitySplashBinding import com.owncloud.android.ui.activity.BaseActivity import com.owncloud.android.ui.activity.FileDisplayActivity +import com.owncloud.android.ui.activity.SettingsActivity import javax.inject.Inject class LauncherActivity : BaseActivity() { @@ -65,7 +67,11 @@ class LauncherActivity : BaseActivity() { private fun scheduleSplashScreen() { Handler(Looper.getMainLooper()).postDelayed({ if (user.isPresent) { - startActivity(Intent(this, FileDisplayActivity::class.java)) + if (MDMConfig.enforceProtection(this) && appPreferences.lockPreference == SettingsActivity.LOCK_NONE) { + startActivity(Intent(this, SettingsActivity::class.java)) + } else { + startActivity(Intent(this, FileDisplayActivity::class.java)) + } } else { startActivity(Intent(this, AuthenticatorActivity::class.java)) } diff --git a/app/src/main/java/com/owncloud/android/authentication/AuthenticatorActivity.java b/app/src/main/java/com/owncloud/android/authentication/AuthenticatorActivity.java index 10f63668bc..7f12948467 100644 --- a/app/src/main/java/com/owncloud/android/authentication/AuthenticatorActivity.java +++ b/app/src/main/java/com/owncloud/android/authentication/AuthenticatorActivity.java @@ -105,6 +105,7 @@ import com.owncloud.android.services.OperationsService; import com.owncloud.android.services.OperationsService.OperationsServiceBinder; import com.owncloud.android.ui.NextcloudWebViewClient; import com.owncloud.android.ui.activity.FileDisplayActivity; +import com.owncloud.android.ui.activity.SettingsActivity; import com.owncloud.android.ui.dialog.IndeterminateProgressDialog; import com.owncloud.android.ui.dialog.SslUntrustedCertDialog; import com.owncloud.android.ui.dialog.SslUntrustedCertDialog.OnSslUntrustedCertListener; @@ -123,6 +124,7 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.Locale; import java.util.Map; +import java.util.Objects; import java.util.Optional; import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; @@ -1361,11 +1363,17 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity private void endSuccess() { if (!onlyAdd) { - Intent i = new Intent(this, FileDisplayActivity.class); - i.setAction(FileDisplayActivity.RESTART); - i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); - startActivity(i); + if (MDMConfig.INSTANCE.enforceProtection(this) && Objects.equals(preferences.getLockPreference(), SettingsActivity.LOCK_NONE)) { + Intent i = new Intent(this, SettingsActivity.class); + startActivity(i); + } else { + Intent i = new Intent(this, FileDisplayActivity.class); + i.setAction(FileDisplayActivity.RESTART); + i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); + startActivity(i); + } } + finish(); } diff --git a/app/src/main/java/com/owncloud/android/ui/ListPreferenceDialog.kt b/app/src/main/java/com/owncloud/android/ui/ListPreferenceDialog.kt new file mode 100644 index 0000000000..57c67d56ea --- /dev/null +++ b/app/src/main/java/com/owncloud/android/ui/ListPreferenceDialog.kt @@ -0,0 +1,46 @@ +/* + * Nextcloud - Android Client + * + * SPDX-FileCopyrightText: 2024 Alper Ozturk + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + +package com.owncloud.android.ui + +import android.app.AlertDialog +import android.app.Dialog +import android.content.Context +import android.preference.ListPreference +import android.util.AttributeSet +import com.nextcloud.utils.extensions.setVisibleIf + +@Suppress("DEPRECATION") +class ListPreferenceDialog(context: Context?, attrs: AttributeSet?) : ListPreference(context, attrs) { + + fun showDialog() { + if (!isDialogCreated()) { + onClick() + } + } + + fun dismissible(value: Boolean) { + if (isDialogCreated()) { + dialog.setCancelable(value) + dialog.setCanceledOnTouchOutside(value) + } + } + + fun enableCancelButton(value: Boolean) { + if (isDialogCreated()) { + (dialog as? AlertDialog)?.let { + val cancelButton = it.getButton(Dialog.BUTTON_NEGATIVE) + cancelButton?.setVisibleIf(value) + cancelButton?.isEnabled = value + } + } + } + + private fun isDialogCreated(): Boolean { + return dialog != null + } +} diff --git a/app/src/main/java/com/owncloud/android/ui/activity/SettingsActivity.java b/app/src/main/java/com/owncloud/android/ui/activity/SettingsActivity.java index 77d2675752..91b7081773 100644 --- a/app/src/main/java/com/owncloud/android/ui/activity/SettingsActivity.java +++ b/app/src/main/java/com/owncloud/android/ui/activity/SettingsActivity.java @@ -61,6 +61,7 @@ import com.owncloud.android.lib.common.ExternalLink; import com.owncloud.android.lib.common.ExternalLinkType; import com.owncloud.android.lib.common.utils.Log_OC; import com.owncloud.android.providers.DocumentsStorageProvider; +import com.owncloud.android.ui.ListPreferenceDialog; import com.owncloud.android.ui.ThemeableSwitchPreference; import com.owncloud.android.ui.asynctasks.LoadingVersionNumberTask; import com.owncloud.android.ui.dialog.setupEncryption.SetupEncryptionDialogFragment; @@ -75,6 +76,7 @@ import com.owncloud.android.utils.theme.ViewThemeUtils; import java.util.ArrayList; import java.util.List; +import java.util.Objects; import javax.inject.Inject; @@ -122,7 +124,7 @@ public class SettingsActivity extends PreferenceActivity private Uri serverBaseUri; - private ListPreference lock; + private ListPreferenceDialog lock; private ThemeableSwitchPreference showHiddenFiles; private ThemeableSwitchPreference showEcosystemApps; private AppCompatDelegate delegate; @@ -139,7 +141,6 @@ public class SettingsActivity extends PreferenceActivity @Inject ViewThemeUtils viewThemeUtils; @Inject ConnectivityService connectivityService; - @SuppressWarnings("deprecation") @Override public void onCreate(Bundle savedInstanceState) { @@ -185,6 +186,15 @@ public class SettingsActivity extends PreferenceActivity // workaround for mismatched color when app dark mode and system dark mode don't agree setListBackground(); + showPasscodeDialogIfEnforceAppProtection(); + } + + private void showPasscodeDialogIfEnforceAppProtection() { + if (MDMConfig.INSTANCE.enforceProtection(this) && Objects.equals(preferences.getLockPreference(), SettingsActivity.LOCK_NONE) && lock != null) { + lock.showDialog(); + lock.dismissible(false); + lock.enableCancelButton(false); + } } private void setupDevCategory(PreferenceScreen preferenceScreen) { @@ -678,26 +688,35 @@ public class SettingsActivity extends PreferenceActivity private void setupLockPreference(PreferenceCategory preferenceCategoryDetails, boolean passCodeEnabled, boolean deviceCredentialsEnabled) { - lock = (ListPreference) findPreference(PREFERENCE_LOCK); + boolean enforceProtection = MDMConfig.INSTANCE.enforceProtection(this); + lock = (ListPreferenceDialog) findPreference(PREFERENCE_LOCK); + int optionSize = 3; + if (enforceProtection) { + optionSize = 2; + } + if (lock != null && (passCodeEnabled || deviceCredentialsEnabled)) { - ArrayList lockEntries = new ArrayList<>(3); - lockEntries.add(getString(R.string.prefs_lock_none)); + ArrayList lockEntries = new ArrayList<>(optionSize); lockEntries.add(getString(R.string.prefs_lock_using_passcode)); lockEntries.add(getString(R.string.prefs_lock_using_device_credentials)); - ArrayList lockValues = new ArrayList<>(3); - lockValues.add(LOCK_NONE); + ArrayList lockValues = new ArrayList<>(optionSize); lockValues.add(LOCK_PASSCODE); lockValues.add(LOCK_DEVICE_CREDENTIALS); - if (!passCodeEnabled) { - lockEntries.remove(1); - lockValues.remove(1); - } else if (!deviceCredentialsEnabled || - !DeviceCredentialUtils.areCredentialsAvailable(getApplicationContext())) { - lockEntries.remove(2); - lockValues.remove(2); + if (!enforceProtection) { + lockEntries.add(getString(R.string.prefs_lock_none)); + lockValues.add(LOCK_NONE); } + + if (!passCodeEnabled) { + lockEntries.remove(getString(R.string.prefs_lock_using_passcode)); + lockValues.remove(LOCK_PASSCODE); + } else if (!deviceCredentialsEnabled || !DeviceCredentialUtils.areCredentialsAvailable(getApplicationContext())) { + lockEntries.remove(getString(R.string.prefs_lock_using_device_credentials)); + lockValues.remove(LOCK_DEVICE_CREDENTIALS); + } + String[] lockEntriesArr = new String[lockEntries.size()]; lockEntriesArr = lockEntries.toArray(lockEntriesArr); String[] lockValuesArr = new String[lockValues.size()]; @@ -706,6 +725,7 @@ public class SettingsActivity extends PreferenceActivity lock.setEntries(lockEntriesArr); lock.setEntryValues(lockValuesArr); lock.setSummary(lock.getEntry()); + lock.setOnPreferenceChangeListener((preference, o) -> { pendingLock = LOCK_NONE; String oldValue = ((ListPreference) preference).getValue(); @@ -935,7 +955,9 @@ public class SettingsActivity extends PreferenceActivity protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); - if (requestCode == ACTION_REQUEST_PASSCODE && resultCode == RESULT_OK) { + if (requestCode == ACTION_REQUEST_PASSCODE && resultCode == RESULT_CANCELED) { + showPasscodeDialogIfEnforceAppProtection(); + } else if (requestCode == ACTION_REQUEST_PASSCODE && resultCode == RESULT_OK) { String passcode = data.getStringExtra(PassCodeActivity.KEY_PASSCODE); if (passcode != null && passcode.length() == 4) { SharedPreferences.Editor appPrefs = PreferenceManager diff --git a/app/src/main/java/com/owncloud/android/utils/appConfig/AppConfigKeys.kt b/app/src/main/java/com/owncloud/android/utils/appConfig/AppConfigKeys.kt index 30a86e413a..dd7e7c465e 100644 --- a/app/src/main/java/com/owncloud/android/utils/appConfig/AppConfigKeys.kt +++ b/app/src/main/java/com/owncloud/android/utils/appConfig/AppConfigKeys.kt @@ -19,5 +19,6 @@ enum class AppConfigKeys(val key: String) { DisableClipboard("disable_clipboard"), DisableMoreExternalSite("disable_more_external_site"), DisableIntro("disable_intro"), - DisableLog("disable_log") + DisableLog("disable_log"), + EnforceProtection("enforce_protection") } diff --git a/app/src/main/res/values/setup.xml b/app/src/main/res/values/setup.xml index aa6be51253..139e8b2e8d 100644 --- a/app/src/main/res/values/setup.xml +++ b/app/src/main/res/values/setup.xml @@ -42,6 +42,7 @@ false false false + false on diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index bbf49635e8..5acf54124e 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -35,6 +35,7 @@ Base URL Proxy Hostname Proxy Port + Enforce Protection File does not exists, yet. Please upload the file first. Delete Offline Folder Conflicted Folder: %s diff --git a/app/src/main/res/xml/app_config.xml b/app/src/main/res/xml/app_config.xml index a8475a9d28..179efd1776 100644 --- a/app/src/main/res/xml/app_config.xml +++ b/app/src/main/res/xml/app_config.xml @@ -61,4 +61,10 @@ android:restrictionType="bool" android:title="@string/app_config_disable_log_title" /> + + \ No newline at end of file diff --git a/app/src/main/res/xml/preferences.xml b/app/src/main/res/xml/preferences.xml index 90599ffb49..63a1902c52 100644 --- a/app/src/main/res/xml/preferences.xml +++ b/app/src/main/res/xml/preferences.xml @@ -35,7 +35,7 @@ - Date: Tue, 12 Nov 2024 10:46:56 +0100 Subject: [PATCH 06/27] fix Signed-off-by: alperozturk --- .../android/ui/adapter/OCFileListAdapter.java | 86 ++++++++----------- .../android/ui/adapter/OCFileListDelegate.kt | 49 ++++++----- 2 files changed, 63 insertions(+), 72 deletions(-) diff --git a/app/src/main/java/com/owncloud/android/ui/adapter/OCFileListAdapter.java b/app/src/main/java/com/owncloud/android/ui/adapter/OCFileListAdapter.java index 8725dd6ac5..4e9bc9bd1d 100644 --- a/app/src/main/java/com/owncloud/android/ui/adapter/OCFileListAdapter.java +++ b/app/src/main/java/com/owncloud/android/ui/adapter/OCFileListAdapter.java @@ -18,7 +18,6 @@ import android.content.ContentValues; import android.content.res.Resources; import android.graphics.Bitmap; import android.graphics.Color; -import android.graphics.PorterDuff; import android.graphics.drawable.Drawable; import android.os.Build; import android.os.Handler; @@ -97,6 +96,7 @@ import java.util.stream.Collectors; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.annotation.VisibleForTesting; +import androidx.core.content.ContextCompat; import androidx.recyclerview.widget.RecyclerView; import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import me.zhanghai.android.fastscroll.PopupTextProvider; @@ -141,6 +141,7 @@ public class OCFileListAdapter extends RecyclerView.Adapter { - OfflineOperationEntity entity = mStorageManager.offlineOperationDao.getByPath(file.getDecryptedRemotePath()); + if (file.isOfflineOperation()) { + if (file.isFolder()) { + Drawable icon = ContextCompat.getDrawable(context, R.drawable.ic_folder_offline); + holder.getThumbnail().setImageDrawable(icon); + } else { + executorService.execute(() -> { + OfflineOperationEntity entity = mStorageManager.offlineOperationDao.getByPath(file.getDecryptedRemotePath()); - if (entity != null && entity.getType() != null && entity.getType() instanceof OfflineOperationType.CreateFile createFileOperation) { - Bitmap bitmap = BitmapUtils.decodeSampledBitmapFromFile(createFileOperation.getLocalPath(), holder.getThumbnail().getWidth(), holder.getThumbnail().getHeight()); - if (bitmap == null) return; + if (entity != null && entity.getType() != null && entity.getType() instanceof OfflineOperationType.CreateFile createFileOperation) { + Bitmap bitmap = BitmapUtils.decodeSampledBitmapFromFile(createFileOperation.getLocalPath(), holder.getThumbnail().getWidth(), holder.getThumbnail().getHeight()); + if (bitmap == null) return; - Bitmap thumbnail = BitmapUtils.addColorFilter(bitmap, Color.GRAY,100); - mainHandler.post(() -> holder.getThumbnail().setImageBitmap(thumbnail)); + Bitmap thumbnail = BitmapUtils.addColorFilter(bitmap, Color.GRAY,100); + mainHandler.post(() -> holder.getThumbnail().setImageBitmap(thumbnail)); + } + }); } - }); + } else { + boolean isAutoUpload = SyncedFolderProvider.isAutoUploadFolder(syncedFolderProvider, file, user); + boolean isDarkModeActive = preferences.isDarkModeEnabled(); + Drawable icon = MimeTypeUtil.getOCFileIcon(file, context, viewThemeUtils, isAutoUpload, isDarkModeActive); + holder.getThumbnail().setImageDrawable(icon); + + if (!file.isFolder()) { + ViewExtensionsKt.makeRounded(holder.getThumbnail(), context, 4); + } + } } public void onDestroy() { executorService.shutdown(); } - private void setColorFilterForOfflineCreateFolderOperations(ListViewHolder holder, OCFile file) { - if (file.isOfflineOperation()) { - holder.getThumbnail().setColorFilter(Color.GRAY, PorterDuff.Mode.SRC_IN); - } else { - Drawable drawable = viewThemeUtils.platform.tintDrawable(MainApp.getAppContext(), holder.getThumbnail().getDrawable(), ColorRole.PRIMARY); - holder.getThumbnail().setImageDrawable(drawable); - } - } - @Override public void onViewAttachedToWindow(@NonNull RecyclerView.ViewHolder holder) { if (holder instanceof ListViewHolder) { diff --git a/app/src/main/java/com/owncloud/android/ui/adapter/OCFileListDelegate.kt b/app/src/main/java/com/owncloud/android/ui/adapter/OCFileListDelegate.kt index a81f92b5d5..cd74ec3e47 100644 --- a/app/src/main/java/com/owncloud/android/ui/adapter/OCFileListDelegate.kt +++ b/app/src/main/java/com/owncloud/android/ui/adapter/OCFileListDelegate.kt @@ -250,7 +250,7 @@ class OCFileListDelegate( if (shouldHideShare) { gridViewHolder.shared.visibility = View.GONE } else { - showShareIcon(gridViewHolder, file) + configureSharedIconView(gridViewHolder, file) } } @@ -367,34 +367,37 @@ class OCFileListDelegate( } } - private fun showShareIcon(gridViewHolder: ListViewHolder, file: OCFile) { - val sharedIconView = gridViewHolder.shared + private fun configureSharedIconView(gridViewHolder: ListViewHolder, file: OCFile) { + val result = getShareIconIdAndContentDescriptionId(gridViewHolder, file) - if (!MDMConfig.sharingSupport(context)) { - sharedIconView.visibility = View.GONE - return + gridViewHolder.shared.run { + if (result == null) { + visibility = View.GONE + return + } + + setImageResource(result.first) + contentDescription = context.getString(result.second) + visibility = View.VISIBLE + setOnClickListener { ocFileListFragmentInterface.onShareIconClick(file) } + } + } + + private fun getShareIconIdAndContentDescriptionId(holder: ListViewHolder, file: OCFile): Pair? { + if (!MDMConfig.sharingSupport(context) || file.isOfflineOperation || holder !is OCFileListItemViewHolder || file.unreadCommentsCount != 0) { + return null } - if (gridViewHolder is OCFileListItemViewHolder || file.unreadCommentsCount == 0) { - sharedIconView.visibility = View.VISIBLE - if (file.isSharedWithSharee || file.isSharedWithMe) { - if (showShareAvatar) { - sharedIconView.visibility = View.GONE - } else { - sharedIconView.visibility = View.VISIBLE - sharedIconView.setImageResource(R.drawable.shared_via_users) - sharedIconView.contentDescription = context.getString(R.string.shared_icon_shared) - } - } else if (file.isSharedViaLink) { - sharedIconView.setImageResource(R.drawable.shared_via_link) - sharedIconView.contentDescription = context.getString(R.string.shared_icon_shared_via_link) + return if (file.isSharedWithSharee || file.isSharedWithMe) { + if (showShareAvatar) { + null } else { - sharedIconView.setImageResource(R.drawable.ic_unshared) - sharedIconView.contentDescription = context.getString(R.string.shared_icon_share) + R.drawable.shared_via_users to R.string.shared_icon_shared } - sharedIconView.setOnClickListener { ocFileListFragmentInterface.onShareIconClick(file) } + } else if (file.isSharedViaLink) { + R.drawable.shared_via_link to R.string.shared_icon_shared_via_link } else { - sharedIconView.visibility = View.GONE + R.drawable.ic_unshared to R.string.shared_icon_share } } From d554f01407bc0a5aa3d21fe718b4745ab33f2c4b Mon Sep 17 00:00:00 2001 From: alperozturk Date: Thu, 14 Nov 2024 15:55:33 +0100 Subject: [PATCH 07/27] fix getShareIconIdAndContentDescriptionId logic Signed-off-by: alperozturk --- .../android/ui/adapter/OCFileListDelegate.kt | 20 ++++++++----------- 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/app/src/main/java/com/owncloud/android/ui/adapter/OCFileListDelegate.kt b/app/src/main/java/com/owncloud/android/ui/adapter/OCFileListDelegate.kt index cd74ec3e47..e6844e3e8e 100644 --- a/app/src/main/java/com/owncloud/android/ui/adapter/OCFileListDelegate.kt +++ b/app/src/main/java/com/owncloud/android/ui/adapter/OCFileListDelegate.kt @@ -384,20 +384,16 @@ class OCFileListDelegate( } private fun getShareIconIdAndContentDescriptionId(holder: ListViewHolder, file: OCFile): Pair? { - if (!MDMConfig.sharingSupport(context) || file.isOfflineOperation || holder !is OCFileListItemViewHolder || file.unreadCommentsCount != 0) { - return null - } + if (file.isOfflineOperation) return null - return if (file.isSharedWithSharee || file.isSharedWithMe) { - if (showShareAvatar) { - null - } else { - R.drawable.shared_via_users to R.string.shared_icon_shared + if (holder !is OCFileListItemViewHolder && file.unreadCommentsCount != 0) return null + + return when { + file.isSharedWithSharee || file.isSharedWithMe -> { + if (showShareAvatar) null else R.drawable.shared_via_users to R.string.shared_icon_shared } - } else if (file.isSharedViaLink) { - R.drawable.shared_via_link to R.string.shared_icon_shared_via_link - } else { - R.drawable.ic_unshared to R.string.shared_icon_share + file.isSharedViaLink -> R.drawable.shared_via_link to R.string.shared_icon_shared_via_link + else -> R.drawable.ic_unshared to R.string.shared_icon_share } } From 2db2d4cf2f7c788b5384e184dad3e994e0a28dae Mon Sep 17 00:00:00 2001 From: alperozturk Date: Fri, 15 Nov 2024 09:55:31 +0100 Subject: [PATCH 08/27] Fix SS test Signed-off-by: alperozturk --- .../ui/fragment/OCFileListFragmentStaticServerIT.kt | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/app/src/androidTest/java/com/owncloud/android/ui/fragment/OCFileListFragmentStaticServerIT.kt b/app/src/androidTest/java/com/owncloud/android/ui/fragment/OCFileListFragmentStaticServerIT.kt index 90b6e5db6f..36df6af436 100644 --- a/app/src/androidTest/java/com/owncloud/android/ui/fragment/OCFileListFragmentStaticServerIT.kt +++ b/app/src/androidTest/java/com/owncloud/android/ui/fragment/OCFileListFragmentStaticServerIT.kt @@ -300,6 +300,14 @@ class OCFileListFragmentStaticServerIT : AbstractIT() { sut.storageManager.saveFile(this) } + OCFile("/offlineOperation/").apply { + mimeType = MimeType.DIRECTORY + decryptedRemotePath = "/offlineOperation/" + modificationTimestamp = System.currentTimeMillis() + parentId = sut.storageManager.getFileByEncryptedRemotePath("/").fileId + sut.storageManager.saveFile(this) + } + sut.addFragment(fragment) shortSleep() From aecb574b0587f6ae7f8b6eb0f391aba49e8f6b0c Mon Sep 17 00:00:00 2001 From: alperozturk Date: Fri, 15 Nov 2024 09:59:13 +0100 Subject: [PATCH 09/27] update ss Signed-off-by: alperozturk --- ...FragmentStaticServerIT_showSharedFiles.png | Bin 39450 -> 38404 bytes ...t.SharedListFragmentIT_showSharedFiles.png | Bin 25586 -> 20183 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/app/screenshots/gplay/debug/com.owncloud.android.ui.fragment.OCFileListFragmentStaticServerIT_showSharedFiles.png b/app/screenshots/gplay/debug/com.owncloud.android.ui.fragment.OCFileListFragmentStaticServerIT_showSharedFiles.png index f475ade73dd94152f0d7a849996db2f4d77a58df..0fc03e42b5ad64c40717c0154da8d643b0bbec99 100644 GIT binary patch literal 38404 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%0DV64r@8^1WrjKn-pL28W93(N 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 A5C8xG diff --git a/app/screenshots/gplay/debug/com.owncloud.android.ui.fragment.SharedListFragmentIT_showSharedFiles.png b/app/screenshots/gplay/debug/com.owncloud.android.ui.fragment.SharedListFragmentIT_showSharedFiles.png index 37662fd8a43d5bb8646e09aa4bb66cb2cd2c3137..041ecedad09e35b37a0659790fceafba9b2a15b4 100644 GIT binary patch literal 20183 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 From b4b5fae8aa05ae2d27c50f57931f3fac40ca51aa Mon Sep 17 00:00:00 2001 From: alperozturk Date: Fri, 15 Nov 2024 10:27:38 +0100 Subject: [PATCH 10/27] update ss Signed-off-by: alperozturk --- ...FragmentStaticServerIT_showFolderTypes.png | Bin 17970 -> 20919 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/app/screenshots/gplay/debug/com.owncloud.android.ui.fragment.OCFileListFragmentStaticServerIT_showFolderTypes.png b/app/screenshots/gplay/debug/com.owncloud.android.ui.fragment.OCFileListFragmentStaticServerIT_showFolderTypes.png index 6befb0a7219d6e99fd4056d95f1208842c94fbe6..9785c00d4226fc4e97187c72a9a6324af9ea96e9 100644 GIT binary patch literal 20919 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"w^Wu9pNnpiryiGo=YbSGF#)T z0zhcu6JpFU+fwwlWyRf}jba*);V-5Ocm0i;0_e+g6;$ra zzUEXroNBorIhuUN)=Z~6Pc||)tnbvzRK+cz3M%02KiJZa>b|tNyXm zATdVh1%k*-?~~53NZHb{t2I5EtY$HK8`;*MHJte~GS56aMEr1jIdkPC zh@5$Y;~$OeJly)kPBk6HB*%e$-91rZB6-9KS(^7z0Z%R%qS;lnE^!O~^hR$Nwgzfn zxAB-#Xsa>9ZV8r|%x}FRg%(f)dW^VEgDKZ9DAg_ZH@(Ny$8tUY1Aj?TY+N$Cc|dAD!ICpsL^qBHm(oY~wd7 z3gen{85JU@Ko`>56un(nc&|)A#a>rUsK)C0X9YjoBWbK!ldCT$qrETXH$?kWkhWMWg~k$WE?`sMgCHaA{cNX#bNlZyJ)Mq1D998LoxO8w3Gawh?%DektZ>B8$92q_b<4&Uo3B>I`w ze2T`kpd(7o*D*SWa}j7!%Xg8 z9Bq9hD(!^x%M;eKyP6he;2J^}{*axp|^(I5u!#|Imt&wu$hpevN{h z(b+8bVdu>QMJbiix)=Nxtl*?eiTjMO94kE=w9XV0ZzBxMFKJv7DT$beeQ42d?#I#y zXb-P(vf%l{w)D#R|M-Vloqwyn&X4qf3iAJRShX@jVxL2dDQGhSfiq^*)w;Glz!YoF zO)%x^=pu>!iD=SfxRr;UzZo}D@LV&(B7G^O+WlAe%!k+0Od1Tr4@ky*-i|5{4K{n7 z5B>=Cq3GPZl?hV}E?pI+n;+?AT zZT|H(8jcLPoN5pmyZ|qYB^GxBV`U&o?HL+ZLUN@(C-J&XA=5?4iGxOb;5vFSrldL!<-(QpBDHN8j?O);FwUT zL*bJ{PER|LzDwyaL?g+)2I0=DM2ExTP8@ruUgX`Fl5Qeo1p`qFU!4Vo+!}Z4@%~0y z$Z&1XQG^M5IrhP`cG=S*4A55cV1}VA&<})RW%bJ70gLw=;|^X~-xJ7SJlKEO9L*rWQ8tI^FjM1xKOJ-L}q9~(5=GEh&bvJ1ux935> zO76TIUKHhP%hUZ-iZ0J(RVz3JLsHWdgUw5d8M>~N3nTxaxKeJzd4IDMMrV9tlyvhY z!!v^x*}=>L$TH8if_wASe-hM}lG6jUF4^0T{r>yL^`+3OQy#4zh;f^b64Jhg9o(?N zl(p5DHgk$cW@c{;fYwlX%XNoX)ELblolL>$@{N9ay;#c`gtA1FxyftmLq<m9 za3&MT=Iq_kU^)c{;yZ3Ma+1ey?&o&oZUyNF(c&b@FtYX}6?`?;c_I6)x~}F_ntQOXJX|=<|d5_r`{W`m4LGdM9Y2s_Ws1>@!1OyR%@BwBr<_Gm3bxP zD@Vp*Lcg(&B~fu)O-Zs>X25CxO)yw?qq<4rkoehp@%y{8-FjnXnE61#B&`gc;)odC z6I$}QW;ES->~qeVp!#AsWtYPb%sh9eeveo%5~rJ#AL>AlGEXZa`1%-AY}Sks3a z*+!Gl5%Q_3-%|Rq4MGq#9G#q;s4a>TJ6D0WyB^T^P_Y6c{Yn(2u5ES8_4{F=F=iel zAnA@cO=r)ksi}SbUHc)Hf-dy{OLtTfkC@kPLkS+)uJjIOH~>{p&tTMU+SY8<)y*(w zCS1K=GffO3A4(kUCyCJIOv7dfIE}C7m-mgbh+ncTdg{cu`XHA3$ub;o&G`#ENMfP4 z!lG%Acs3^up72rLXUpGB0cGS`najbg>#AtPAxMg{d4EWs@R6J6Bq=maI^#ZrQF20QQa)mt+|7$|x1J$QB0B-vy;Doup|6nlUBZ+qGetWli zU5|Oa-&vB)voOBGdr&1gTHZ>A~3Sd-h`2Ugd7Ot*eN6VM`CkgvRl7W_D z%b>B(CpybQ1KxW?iiY*zG$j#;Lv6by(YDi_O=A#%zg~9AgUg)d?MEQaui;plC3QZl zE8Zyq53>{RR!Jd`L{&tH@shy?XmhDuK@Ca9#o(_oU+Do*){yA0y;zgk5@Sii#m38sjoxjh?#L8jU@AbYT8CmI{ z^nzjENnzz2GH55LrrTLW*G41tm7JG&++%$Q@V<99IP7A8-ZXey47GB`Z80Ke3&YGU zdhGRf=X|l`sSd+ z`s42k_U@Ammr6p0XcJy#5^>VWmNe2+*+YFTN#0Ej!KCygzifnNB7h;NcQV*LqQ}Qc zvOH!56&iB>)R-(SqOA}nWI)p%np8%7Rgx0FyXV#F{$lK;4Bq49(WI?K124jbrkm|n zlVBydEA)}k*fciZz zW0&r1*E6%V4rzuLzcGx&6V1oh;{VJh7PrtPo}s)IjKS)}JP^Hd&h}Kff)eIk*1Joj z_>vs373C(ZQmb#|g@kPY%KI61k0Omf)F)Q@Yr8%FLh39$?+(E}Y_><_aXgv{Nn^1{ zSPXi7JlTx*mb>2w=_b&+n71x&or9p3S!X1W80XdEjIq=>^_p7sk2vx&#)TCj~5{GV^mokrKvq8#yopr2lu*1`F z3bYRP{z6w6Ix4DyNu7e?EYuYDc~8j&_pXoT=aOs`IWNbbc@)NW47k$qTag*d5k49p zQn{VQIU3y_Zv^@bU?LC8L?g4om*nWoQ7qM0B6SOm?p`{*F5{+?rd6a_0eEm1q|u+q zCY>Il zw9_5h+_=Q=^OEceVkbltK36r*Q{i>YJQd#OT7BiuQ(@?`FvvZbq0W98>0N^pl6fw3 z#DOQFwM1i&+WQO>H&EB)PndIT>I_`JZlg6Y*K@j`mOu`obo|cHhx5RW>WtJX8}|mE z44>B0ZJzLGg7#=O+`p^*lQBb1ecka|=zK6BN|dwHm(M+OIxFCuroxbRsXZ0d;`4;8 zicZ-^yJbVF0S(snT*9e?6N z_cwvWo1n;BZX;n&#Az8fPy6`o$l4q1?Eb?j*P86ex}?!UrBvrC-tN8?5d8&$rJF_1 zoyGvb<(FZtc`kjQy0fOjGzSk)I@Q%E4G1Zkkl4Bz@!q@pQe-EBt8G5C>?&?^6kj_t z)rcG)#cwpXYf(hEFG2a7_Yr^m;Iwjhd&z~qqwjgSaL13JI2ra2h>I?9eI9DunG;pc zb)p6L-rMa$+4I7Z6YDhvsP!D$`>dYa2m5f7%M;4Hi#6_f`4-nB*OsQRx(86tM;N}M zOb`1QS$*)Vn|GyFIlgppa!n^wu&J&N0W&T+7;{pjAa(Nx`=Z{nbFrW5sz3gHz+o|TS@_jPLwcW%4y%2vx3OR0f z+>IVmBZ=M275A^kwEM@&^S4$G#qO9s)pLHmCK*?#1*jyDNAu4sacn&M+uoSz`7zR& zlW*oMib9O*i({O}Tv#+oFcc<}hDIX0usnEhhE-+Qz1|k|Y(wO%&ftj)sB4gdSizA# zMkz9;bmhOvL486Kw2NAwd_f6k>$2v)K4`@-Es^ilCZpwpeF9pX#% zo+lnBVVtt>@%7>|sKOwJT@7wDR=why_9Q)iY0y}UqB8Pqss?_T81bbGrx&i}`rG`F z`VHqwdzfA&PPed&iKD%5LZBOeyXCleq8%bjE>2}3*#y!J;n%p@CY^fRF@3hxw&TS= zF;}%5c0Yu&5Mo)HXXPChcKoTtQe+<(6h3oDAQ?560 zAmaBtlyJTJuNm`PU%t!yIR%oL`EVf8w??_zPgWI;ywCZ4+`YE0t{~67W;%j&pSH1i zVP39DW%&4W!u)7@zF$|#Zl43lA{b8parKqG=TAj(m}=lp^g=4eG-Ce)+HQYbz_lgv z&F8o$KmWc1KQQ`X0)y{5q^tM^9@p?t?(cz$du5k3M{;*#KP+r`|NfK@0dElog?2M* zV^Kg)cZ?mx$~uY0pfm@ezjlPQ#a_EnwfCU}@gJ~dVVYPDoAWG!&Y?UpBvMf~i|*ct zD?O&kfc5m)KTPMKp1`0|wqxGrjN$DY?cyC;4zaR=h!p-XpwCh9ZwwyHVLFsNIrG~# zXUWqK+KJE)SN#e3O@2~#Rn--AlZLl%1N%5WcI5dGMO!iSReV+ z34J(Wb|$>EUqMCxJ{AFm1qOz7zYQ4AorhqfmT(H(1IeR;w1$}aFf(%FVj5*!5)9xA zfKA^ln}8m!y>eEdEdp@%0}o4kEr*-vfQIIySVCM4uH|8$iZX-%MMdC6&>Gw-E}oZ+ zDUbu;Q7{nxST&1SAf@sGx?pttG_>t?L{JWQ!}D@3dqBG})?WvYE85sp+o}(vIQbCR zlZ2;+z==Wa@3Z?<_lna#1X;@lIIGESKNX2 zvjakol4LssA&G4j(i<63_#>OZd~f=#hm6ZY2n=BqP^O&Li}X1m@yI4YzDhTVoZ#G* z_nyo5aUw)f`UPU}owoF7>r( zD1(K%DvCl0$WGlQ@E)Q|0;wR#r<gwDW zP*x-lDH3iu*f$3;KT@}ip78#5n_ev#36{ZuMp&nrW?#l?nv_CyJIkc7GA;HpVDA*x7D8t(%A9|mX0J$DYR0D=?-YQFi138X+r^OJbG)L^{1ehCaj&~yWOkXAkFPk z=jZ`F80bGGZ}+&8FzxUFqY{VenF{(Qi3NJuHoeLDj+Pd?uQba!IJA2m8j7bKn#~_TA6s6CX1E zg6dec5pE+ME}7Uz{i;JjEZ{eIUU*I#9s_j~63e!rft$MgPp zJVjnMGZNV>@&-cIVDJ=r@zo9O%11MI?L5u5y*zT_wCbzJ_uY0Ke0=}ju4AI7?h5|C zMSMr|mJd%d?`0oRS3A+g?2VJ345R~#A(nM*}{l__r(=KEcBBj{0`8o|LKd};ib?| zqV%nx1OC$&|9tfS>Z#1mT;$V_kSA=?&lKR}m*Lw%t=%bu43#5LYRCceA>*ZltTRNOV!$IwISn19(RrX zS)nZVeT4aJ>Q)3_c)I_F?-3DMi$pGSU~k7UoRG@Jlp5IGYP;st(|#ly*R=Sh*&zkO zrc-nJa1=W*`6RR8Rz%Ph4!m5whA|ke8@!aeObvrS*{gQgG)+sRNu@nWRj$OQ;&6#W z{YlfL;|EMrPpP8UW@;80{cmoXB%ioxjGC>RA_>WcJYAX@w7PiquNau$-=7vIODFFN|w)<&Uoa>i<9dCU?2Os>BCN;!QTGja+ zb{5MdX^`zLwl)i62fgZ*c&G35zeX@iYVs?(^t927y;gZz2dBf9>#2E7+{H3Fy&%I( zb2!iiI~JwjdqEO;uI}5rZ5D~j4!-x&gJW zo}c1nY_2nRPOsFj^K`*(N|(;UCG0|{wqGWE{-fOKk(33rWvTs(WxtI@asl`pI=sF3 zV}wmwKA9}|U3FwVt76wy_O7G6A&)bhwfm;45$8PU#2h0mxG>#+$QjMA(Ha}4-?Wjw zeu^`>u|Lb|ckkk5Je;elyVzrqrv4@Mfc%>T3)vdj5 z5Am4$ZgrAlQd>l%uc2hahl{MrNIo(;fya4Lk7Xqv+B(ddqBBYz>hryZuz3a%qVchd zrS-ErX?*+}J)2R_+q{zF8J4U|cudB+xD!*H4k#s6vS4-LJkg;@D&M^`PC*<@8@5AKx6qq%#V1bmrw4Y5)z zuL~tw*+|&XtoWpC*t!pP3Kc~eIr|}gyuCJ}V z6%hM+b;H}IU^_egK|-!T$??Kc;g4>st>?<;ce)Teeqt{&$x~X+cd&=TVM8p{1erMM z7Sa7l_=>jPt?Zz7 zJ|lFLFmCWKT-dq9v3*hldaiCF2j5 z#|xnpd1KKkzG)fgB^&PO@!LHwNm_F@cVsj6j5ENK;4|JjfpTupYo)lP!p}Np3RL1~ z7oYr$$!^2N3+UcQO!t?c7L?oX;yaLo(X;jWVrvl&Q=*Q(kC^K7=@GvHBR`Uq-pcM* zJ{$b?;~$H9(fXLum85vbm+{}sRCK@msfe`Rr8zbK;bqyt&CCo@;&oZg(85K5%)Z=Hd|K6_+HD(; zwDm4}G*TVB>#Zfu$mXeSK~ZLu__eXLBKh|}A?~SJMWjtMhD^k6sYz3vnzGk&$;5ZK zIg6`MGaXn<$yItZwkGqb|E5l0#?F$2d~+GL03q*^CqiNuA>y*2al_#Y@*p~ zeN|i*9)FjsNj_QBt4!FGDN{qx^c;4&oyGc6^iY&f<}krd>ycxlm%$nEQ`$!@w&HS? z#;v-t64f?`Oo6-k%x}xSVgBzJ>S1$}_UVDuOGuixxm|{V?&le_MEV9Eu=Pak> zij`lNfeRjNz*=`RWpxmWB75t`o(rL-)t1n2#w3b~5A7e9j|jgJuCxt@mGsjbW92gq zUtW(`$~R3hc9A18JTK`CsM})qoxJmM<;)IqUxl!2TNh@Hr9+3V*b|ut`a-m~;h}8W zoVsV9d4UeWC8L}bR|R%Fb+8|i*4+L$|FlK0930zRBbqFJ2iiU8K~oO{5$=kZs~hYJ z-|`Hpir86(ulVCGI4`7v>|KIQ_Jc`lZwVJAGz;iXb0#iJ>*dcre;72au=GW`uh_;y z71rQ_kJYIw!cI7NY}dVYA0wrj-Le*gy}cnNJdVe7?dnRd5B2En?Fn+b1Lv0++5Quo za$=*ZYQ4J^?H)9=bW*7tBUeH=p>l3pW$^NB-WSH)+vm0i9As!jTNzyx0yX|b)3&ln z_+#WQ`96v=wq|Xajn%Vtx#;D z(LRT%hmwvLtQ?T>aiWC10vjXEIqpMZ_1%dI0qQpXGkVjPYA*l&%{y#u5CNnCSpn2( zu0;`xoa#wu!xIr-nyUYI};V0`Uc%R%-CFS^*2tN z6Zcss_<_CC=ra@Li)9V-#w}b}$hT%l^~4WDyKPXI<`BXHH5MsPLXsU4J5NugRwC#m ziOnd#*a9uWcty5C)5@%sy^mo_0JYY~1v~#)p}RwqntDD)>JJPn*`xI6L)2p3rc8k? z9Ik+oMa`O?c9uT;k9jIiBDYDU|9RMj$^>mzgBlR1N-|mqniKr0D6GBtnhdRm;%j2q zrd}PrD7ydDH`Z`ePN7p%D7|%`_a&p){q9#Xml?f9m8Ru9AVEtG667ve6sH!nIC==fwSZwiK!STzS^2}~lMX_mYNQ><(bFm4Qt9~-;T8h~-C0+)NeHd1yQ(Gz;_6fF$z=W(M5 zeW3wkag^ypXQX?ZrMJi9^e*A~BUp;vX+jQC+l`P(>c89GKTB;2bC0RbB1GAICBBJ$ z9X*qMNIPWZ8%c3t2RWR#SQgfiVe}O5^eb53%*~v);Q|XW3u97a3vMzszYtRVbb7;K z8M^D=-tVF6R)a?>X-Ln1y8kN9=b}T;mC!HA`a*)JHPTT5+zz$j=<-Bx4<}5jlI4_F z2O5I>4DVV-@0}1qJL)}x9oSpKj3cIwyHD3^{(}8tXRD%bCx|kd^@Zo~Z!GC;>(1|3 zGeLe}TKi-9H_`%zKRJvN-zi}YvIkeeTGlxvj{_R-Ug!QXk@&Of`nRh{;2F!#Uz!EwNKxGxM+fJ@rCftfU(CJqmDT~$%F3>;(Cf)RTbYDNFh5|+ zP45g|{2v!F&YTtH7{k00<#V=g~W!mG`FN0d?ZrFHz7Dn zm_7L_U545hu7{uz)Pv@~UbC`F^bVH3VW;#?$t+Z7`nTr$n}gC;Ol+D$(a}p)-qgmP z8gD9l4li3!*2L9fm04cE>_7cReQ8%fY_uIwkGH_rPy{ zetx*g<4;w)nsp+8;$xKJFTN?29zJ})wQhNT?Wx2u)chFQBCj?Sw~n^kjM90iI9uXa zd0s9vc#+ZjYi1&~@>f#s#h{ZnO+vuOqnFeSAH!jOeUj4ue6SH6+#+y&Y|}B3s`etX z6X@Yu3>^AO9a1+(ATmG17Hsi#+wh$_6mb?2)_l#q||v?Wf-7wyTel0G0AhrbOjXt$1| z5lwfYU5)-;3|?%lV%t-$V=Q>-z@GG6fL#^~LH#Pd|TzDb&7s1GW~0u6_jev1>7VSpDU4=IgJ# zg2>Va7@IM<^D%B;>ISM5YOvdgQBBLk!6qy`Mm9q}Z;$g~Gyp>ijK_FvYi&@;Vzf)i zqDxL8Yk&aMYi67v%IgJpz?SPi-bm_j9(eUZFShb*Tf>f$ZsB(4YEH3D#qCE3WTuhH zNo+GUaQunHjCb#=>p`t3RWBK}$&A3U$g50ky&|rv>fMpIAwhPJU(ERoITu@aYy`@< z%vZ%0m9qx=p)>8;j53ng)j9U8M7Z-vRcm9kJ_|6US$@oyQKD8UEX*r5Nmz0%`Xchd z77=5hrph9E+tai)orD~fTHm-7>&7Z6`#nzZH(=tcXg;Yv?)E`P&(>zK2711W@Bm@r z*%FQN;*t;6Yw5bd#}Zm5?uh8NX~vcvV%8L}w*Ju9|5|`UditW-Y!MB|^Y|L`iqh_+{=b z?W7rDVCLPoHhQLys~Gd-6DBRu!6IyjdjGsai-LSrm)6{)7WuhKcGW$D$_Xv5ki_PU zJP;!R_9eZYU1C==$!P@p0qMp@oL5efid%>MgY{~^#2wq}e_olLQpvt406}nu{CO2_4bRpda z$xcY-4uDF6)2G(?xpEtT9-zMs4_mx+hf=HR08jyaGR4~rJkl4)4gn6>$z%`XEZ7=n z#yc#fw28}MuZ&}+;5nh;qWUR<|56QK&!hqpT4<7}oc9gLRyPK@%t>@Y&M5Zl&1H(8 zITnA8j0D; zKJur?rD&C~=k+m{V~=ml*0YZFMM@wPGc-IbZL4ly??8Sw{B}MusF)14jjJYly9dd~ zfDlI7R@^eB<3W@EQc2nfd@3_Bop1Web6N>VHfy&5u7(;K4E4%d=QIBjA%2l$rJ=^D z%tLg21=CjwV(jcgj(UzT=c{%^U(h(>^*!biQvNz=^x(WA^Bo6-7wEIqe$`rJ?)`z$5euFkJNZ<8#zJA zEofJ=K0b{?DmSi-vB7(r{NxoasnS_736CR_f2)bs=S?LD)ID@8>TPsi;QEWxREu=qo#NNDoggO1?y_%3 zsn~XZ*IWnN0RZeEP4$wqjNI@mf$I?x<8;+}G{B;H=u}_;tV%___*Py<%RbuL=Uq3E z&;Sn?6=uhZ)5O2_;$@c=3Po3|AvJu!=TrY=M~cGz2HOycappwau(eb58ZmYsW|oRADe-6oKdoaYca5geh+rp^>Lsm?kBcCybU+i zWH+fKJ_zb~_%KmmgS*D+(iN(D^wTQ=+)$UVB#p1qGSjF?BmM4PmkwgDqh7r(sEhL5 zZ#-x8G53@|^qPRy%R}pCxSmUAS00lvUZpRTsVYut`MrGdx%DzaFt|i{IcY>9uTXhe zbT6%D*~XfqOPPZ-=#Tn6YYAfl)-I29ZuVZL-RA;AKj z^Fj@k5F9LPfC;X^qx&I3TIoj24k_xpT|N!4NXJb^PvL6wF}vzJr?WO%#;=SwHu{t; z)mC{>UX%_%YE(pctB*kPA(Mo!DTHet(-jP?^k9I?R92yj7ek8AtTpn{Dm}?slANIF zKc3R+bmsPP>NFI-T;;7HGL#I1}iPj4rveh;AIv=J2aMTkPfCZ^;rPX`gfe(a<6kI zO+E))U(CLi%4-&wYn~8Y%6JMSyiHrH{1yzu~ z0rrW72X>!5sg1a?GshREy37HsGso!6U%m3Jg)o)SnZZ{3b|757(@;!DP4o)W3h1CanFHDb=S^R6!WA+ zk_fu*vP18h*KCj*Eh$Ayk8dF8FUXp0*mc7D$#5c zgS`KCZx+tIJO8Src_nJ!F7scb6J{TY>^l~^W4qMxpW$j7zX{;Vv9FegC<~XFNt=OW z-SO9Mjrc5}yR>&r&!#O=#r*vv5d|DZ!d=kj(vG4%w7K5^b!uK}SL=G79_IKMpWQlt zL_A6)a^pi15@D4XtslZ&owDoM>P@S7#CTQ3noNy&6l;?ykh&=x_QOvN`20?1Y0ugn z5s$v&LMgG~au=g?%Jrf7QjJG2wPvFjDdHIVyhBy!_TT5m@l%nmCE~Oy#%(vMX<9_< z_d^{BPq)i&s!j+Ss8vxa8ywC*wB(b!$9D3eTR13dICVSS^ec7>xkUoHwnboL@tS+c z6Mwo(-mJLJ0pY#OqBb>`FDD41N`5?-5b-77(pv7s0qQErnyb@x~0|EU9EMwq=L zME+8kidSRV^`PcuSq1As4afgE_fb`LcMzY9*d~Rv_)XJM-9N&r9TarL!&L|S7 zoV#dFnTKoT%k9BS3a+-90t82XGyvNY5kbM*7XcK_1xh~`JYo4i?K+$bD0aSg(?<0$ z3J^JC(59M#hVP<9{-ukcKonYa{jjh}eqFkW{4FMs`VKs0RWdojbJtL z^h}f0kE(!|*leU@OjG7VTVrKXfK8CF#GdJEj*`bQ;T|*;finftjed0SN3x zF};;vr2)q;9mg_DO@I*toYG3KOse+Xxr>`QpPp}epO9BYWqDQU14+p2o*m-7VtxEW zj*baicR?`<3yhf*p#M(iitRu3lq#!>QU?vH$`EK^f;O_#?Y!#p4kF|TYixR4tc-R7 z6<9GxzAMlB+mtUrzFrBrDU7$ClTD~_?V@~E0jeTYxIOi>1@OE8X?w2V^&)L)T9aE)Uo@I*au&C+Hnjo;zs*Tecs0=!L);-3zMl@&&AMgblYmos!5!$ypbPWiLa>jA9Pw|Kl%>O4 zR3$~uhI2jW@H;jsLMY-+6ufT;rVLc z^_4lwh9lZw@4ZeKO{NZbnl*7?lb$hX$h!JC(!0u*US5ndk5YroPGR;5amwGUtsPPk zX(uRM>bL5^4Ga(6a{SNVVwXkSM1N}*T0LV!yy-BEmT4QSur8*ARc8JU~b`Dm{L&v#iR`eIWYE@i53H%8mv3z=WL4lQH&>dqcrg54Xd!PWgQP-eEMUoC2?^mlql-b1;@5ZAzc*x3Ki1{@Zn$`u5 z4f58zc)5v=sH12Oy+nWN%Pgs~ueMLIi0u_4dK>4_XzJ!Q+Go zQJG|KoGk>arZ_-%_u9$xD*|5i^yYV7HRi}v+OvEg6#Fm~*pU`+qaJ%t`~K!WJyk_^ zGyyJw8APCPvoC5BL-q&j{G=QUfl>F@rNB|k(?fG|A@`>*17vdIfO46U*4E<-cl-oC z`Brw|Ra*dbO_Vx?Y4gFgRzj#%(`{p)Tvb!v)C^J{PBYe@|$Sd4N=MY&i8qTH_VlrkGmh)N~k_se>B+A$+NNY03oPc6^r( zq&4Au;n`Z(U>D$__BB5cn(|ukop4yF!p`Ot>B3&^j8o6nka1YR7A5tL9r>2X)a)d5q!)w@SR+1`39V=_I0@%_VSUC4xM-{^H0W1o5yR}L&6$`7-a zA(XxQPq%g!s2|ZP24T3;-J&qMAkYl8I7NH~1GSHGG>t0h}ZGx>e=u4?>j&P6_R>J7{gp>Wn3QjLWIL|ADdq)vcpUu0K6!@&y~D zFZw*f@sPCW&DL-ju96Ag3m1(dJkgISU$lKCpjQ24?=$gMA04pu__tslJYqz#q{b(R z*N2}iT=oEl#@#J~s6giX#R8>vU|)E2Bx~#$Z`Sso{-`v}NC+rVWhecl=ltQZ#Eiw+D7W{YTgq&U@mEEq#wv{~*}FEqeIZLTiiMfO*DE#Ab-qS% zH>Xr0z!@rQ^x^)~fzr#28hTS{8nKwlZev@!zWeGZNY2>*OM{V4y3YfUt_ts@Q zgwTZtfUeLK*?;P|?&{Y#I%MBM#RzaRrOg~u&7tSK{U`5OV;B4Ey1%$)q&0FFMOS5@ zz!9gzJ2Vb5Zy^$ln5iP?GfV4B52m`T9k~()vUVg8aY#MsMM)}cnE#Ae=+G<>mplK} zv$SqfI!p9zp%@z`Adzu7GvflCOUPzp_6(8$6I#xb(>Hn|eI4Zl>L}!jLV3cgJDdPE zfl_;`8z4nTlI5-7**zBK@zrzyQoN9o*^6jk6z76ai=`k33d@Q2{bj(GszIv2!T-xm z_xZ1%xE_Kd?IP?WiM$~HBD3Op;LCM`D*M8&?IECBiP#~JCs`2frh_PBk(Je*T{jv* z=;6DBOLPjYJ4k3_egXa}$Xa<1H$-WrhjQo$zzA2$#P6wT6LKyEqD_m?bdh~0b7zO@ zr|#nBTK6rSS_Q&Mdi&V%U*F#Aff9QFTpbVmHbR*R{d6ett7rB@J&={z!i=0__q&$( zf-vJ+nfS=|N+64V7_7kbTn-L#FA7_AyN(Y;#dte~%(bkd{XlOuK|Ca@wB(#^R|~RY z`$X6)(J|jZwe#lyH$=fW$a@o?Yb+FQTi$LId6~rqN zyQZcBAtzRN61eoa?4X!PCj`;($rear{MIn%pi-Ue#{ zIr?O?&!QB{{+&c(M#~bB5&Lr!(A>wc7PotMDXrFe>7LcCe&VwXQV%^hJ@^o*`b}dA zU)*Pw>rECRqY?0o9h&zeXBXyEK3ASY#Nn5EHJ`hCnKuJ+(+xt0>sG@0Ya(o62E%fN z7P(k2?fiufLbq-nGNB2`?AuSf(_6#opM3;+sqoat$+EcXdXL_-jL~9*x+4Q!MH0oMMX83xGC6<8FL3_Rh zg(x#B3gM1*)O}!1IyN3AY#LD)L?NGg50Jj)In3EuxX=N)j-|!aC9Z*_*va}~i1yq) zeA;DpVwmttovrhbg*fnbVC~DEVH5FIq-?|J+rvh>2{;fst-AzrzVOR=fq`w2AnS0s zQO<#KIp3C|w*+L*r?T;Im2yYQ!bZ0_+!QQ$&p52KwwS4m0Y%F7)3ZYw%VKYNTHrLW z#B#&Sng#0q@0(b{7-T61z0Rr9eB$SV*FF;aNA#~bwlZ3trpy%c@MbLaZLL< z-CVrxF=EVh8b} zdr$n*1jQw#Ay!fWb%dcCoGO&V6L6Z?8{GBPRsR~mN*?PAxyfreWR_W%AJkpycgb58 zzXSy9!y#)xx{%*Sn(3eod}&?Q;L(_6lzHA^jxPZ~aODV3q_BC)Nu`b#Y6X+k-vJ4^ z?^RLVR92trZs2$ciLqT<%f7o^cSHbA?{N6|P-zlJJ|PpDh&#HC{u>PDZc)!AgTgNVnyjJ7O7q(M9~R;YRO) z{oyO1$s`Xd$11ee<^ZGTy@VjasR#TU{pI8Clp<>So8uS|$+UZ)tl@F2^+CXN z{~z)J*J~O;UBqAd1`0To=hI==vl{CWBF^Bf^VW+EK@0O!Ac`o*5QmlMTosU9JU4&hqqzjo>X}|D}$-5Iw&S6 z$Z?k}A=t*@&GLZaD9SeBA$tBVqa&PBEaMd$#C)q$#)C#5O3tf31R~*BM+Us98QBD? ze&w&t_t#M%Tkk&cIbLbNs<`R5PtVSiPyc}$Ul|YPBXs^pP8lfQP_K&UvvJMK2;~$G zqd>&zqND@j3IskwsX*ANgH(yc3=?n}QwV9~FjFt!fIBI(g;VMznm6jgAcZ+-=h);e zj~sGe=o8?_?cqn0OC9K-yEKiHH!rPmtSpwBPE@k9+`0l1j8!PG)k6nJ+sq;6;JYhr z;2PTP(Ij4EUfp%7BiIrS6-RmTFt;h+O>pXy8tS_NC6uSqZ%Z*Yg$FuD$;%T;l} zfUE22?FGk`0yZ`lg#8&ZUE>&dI`>-y{CQ(rK}M);*;)gj!e*IP%}kJ?c`kzjX>U#&F* zl+Iau*Zv>ops@oDxUHr`SfmMPm_M_iz??uOh|=1`#3x1sR3?vWpJO&=jd*sdX1HZ) zA{(RhF@EBsvUyln{(EXbw*DQSYd|(a&qexd!$K#;R$1&*b`iEuien(A`y6(<qdS$b|Vsj6E z2~FD1TfP`M{D`*MO))UVuU%f6W|~%JEgyS2w4HMIy-41u5TDkSOrs#qYCN4V+UK6< z-T(SP!1DRP^JMQz1gM%sH~p4cWSJw*m^F@n3u4QDl1qmY?Vr^|_RZ#AjFT>wZ|!!; zsQL^n&NO`1IEa%JrEF(Q1uOSGu?$6Yhpmi8JlW#y7h6}wkK=^2X!*qWv;z>}IhU(- zFZLKWEp#MY$hVNYj02da>x>C0+%o-|q*9NRIVNES8Xcf&%4Z&o$&Nm4n>nG>0p?p8 zKz_REqi`kUJeJPQ@4T@OuKu~63(_S!;ODcqp+VI6bZ)dV%eHxt;^Nf?W*{~;SYcfY zlEAS<@)8Bo-hn)5M)0GYzb7R60LbbFB+)NW0{kyg-p4dU4`;J!5Axi%(D_gDd0o*S zZ=v+cMWdwn0G|ljET(i}WdZC#Wy`BzF#z}k#U%DWQ_WJb9e%Re+YeKxB=DC*xj-PL zbn_w3spi@WqJFQ}_s-MD5Ms)w+zMNZ7m|_|L0Ou3y~bgdr3{_Lluxag*aE-Rw#Lh$ zk!TFEYVMXLDBvuD(H)hVS2>0sJoO}p|~_Fy>` z^ePR+5zkpwJV$jw_mR*m6ID52Na%((umKJ28pbdgo6fe&a)wx;iCh+MqlpgZj>C@` zAFX_qfCq`HMM}=nFDO^Jk2y47?-qSA@od$jrBY2?a1Arcws~LFZ#iV+vkFEtN;-s# zlIk3W)29h!a5 zygI>K6M3=#T&j#anGq|hyB4+#yjlB+cFNh=8)>a6PiQmgA-+I@!3%Wa#+siMJJO60 zm2m5h6WT9fa%uOS;fA_q=Ib!93@B&4J>~t{`8<11VD!0g-W2a^QK+r&o=e6126tx- zr`s`PP7uaVRDk}hprEz%QjUCS=gs~KB)t!|037d@dF!d!(2RoUGTzE_AuYZFr|oLz zrHqbeygb;GQ@WH7;%`kWoEP-bg2qb=5*unIjui^%`q@N#3B}=5Sm3lQ5W3E*noSAj zaB3=;O;hv+o}^Zy+Y2KptD5$GOh*;gBNbalOA;!$`vwU7)vXn{w~)0-_Yb9XQyo{d zbm!TL^iQft`kZT{@z5+!F)aMjQ=V?qwH@|oqNd5d;PC7< z)rJsL4eZWJSz`x~zym=(kjyJ}Xwv@keLG*ZMuA{+PiN@e2H7zHmyRg}H{WHbKOaZ6 z&VN7Lrh7kVx{aD!)-)7S@((uNZeK+_0WP}^NtTB=O7T!aRvYRvv={3L2EGvg(QFUXT^ zm|4Hfy-lh;7Vdc)qtywP3^r z#K``!OTZTi;MSLl=B~Z@yGQsMTxnD&%C6nR1linqW=phW!Ihlz@p^WEe1<-~_`Nfz zE`eOs4&L!(J1du|(cdte?pc&|Z{|epQ6RZsbeEc_Q{-QxMq+2bwSvC8WbQEu;y=!~ z`O;Nehh;;Dx#Mv^nuJWyB$PD&B=cv7aMs|)00o;I3^V&G#YY45`x~KL{kN}CU_cH8 zIF>)zViE4MXO%x#-xai3d~Xc4JIgx=m4KN6jR;$$oA*Fvq58?4CBwGPshmZ!Q&$-< z5gF0)aV-_3qLy8svTxdRry1KTKtWH4gjx*sHe63=LNGZ0!a&ICbIfK|G(n&`<2w%tQnC zK)C><$IQ;Z19w8-19!7O0(UP)puioGJ9c^$io?^TKY-E1iE;**JDlhOxjUz_ZF)-% zOuT``je%#_WGyjy)OJ2Zrhb=Fx078P+>?@+K=$vCXC3`*njHo&q8d_MW?0%D{u=Limd_{v7YoHau?LfCtqLIU8cl=3{P}2 zG;-it2-3D(elUh3&jf>I?$G)MUL~}?Bm51Zq^*R|YkeV*-{%Jt!k3^Gr3E5oIZQCg z7T^vzW+7PFb;w2#10cB)k-*kqQ*c~>q&1~!3Rb0;z(4~pjys15%LNIrzHMw;ItB|_ z29-dyH2~G`5|l9)3T7MJfnW++1#Wydz;Z8`YwT`wKXZYf30W4$&Ky6(DM&t#s_`US1S3&^D;9fnG zX)v`@i3&-1M;s~-tRp?BxjFq5g7SVFZZbyqB!H2eA)tpH+eUoW2x6$+z)4ZyM^hWo zr!(8gPh@u(X5u+>t6=ELIK${yqZP?;7+hzo>a`thAVqA)QO-I4 zjhKzLl>^ZUAX^1&ldiHhFo{~c3oe?i(AdxbO0~!qR3&2^|B=dFs-eWoGL70~cF+ig zA9CM-zHD-C;T=G3eu1;YxcX1}kT1X}sRs>W!!&5XUJ0{7uU0;c1({*^G3f!wa$N*q z`}&+7;~2{m1Wysts#%I>QBa$gzXq8jhwfBe6GE;390<(zg_Fb+u_u7P6g2~;Rgpp> z($D2PTTsLy*0??R9WevK=Gt+oAOB z(TDy(KgKcCPyRClH>dai?N9vYUc~o5Jn(;VChoucCl3D0p36V}U4;Mji_A9t|1=l) zufr?f|MbKEsQ~nUVpjc|3pcy_`>pza56_S5^7n=Ko>BjQ56}PVG5!1DAxLw>ES`py WUOnkc27e2N@1mjExze-0-v1x^h-EJT From 72ef3f34cf4b7be213d511727394089aa16aa09d Mon Sep 17 00:00:00 2001 From: alperozturk Date: Fri, 15 Nov 2024 11:46:47 +0100 Subject: [PATCH 11/27] fix folder thumbnail appereance Signed-off-by: alperozturk --- app/src/main/res/drawable/ic_folder_offline.xml | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 app/src/main/res/drawable/ic_folder_offline.xml diff --git a/app/src/main/res/drawable/ic_folder_offline.xml b/app/src/main/res/drawable/ic_folder_offline.xml new file mode 100644 index 0000000000..1b287775ca --- /dev/null +++ b/app/src/main/res/drawable/ic_folder_offline.xml @@ -0,0 +1,16 @@ + + + + From 97b4d0d6ae005364a50dfc5ed38d247d318a1e05 Mon Sep 17 00:00:00 2001 From: alperozturk Date: Fri, 15 Nov 2024 11:55:45 +0100 Subject: [PATCH 12/27] extract logic to MimeTypeUtil Signed-off-by: alperozturk --- .../java/com/nextcloud/utils/ShortcutUtil.kt | 2 +- .../android/ui/activity/EditorWebView.java | 2 +- .../android/ui/activity/ShareActivity.java | 2 +- .../ui/adapter/GroupfolderListAdapter.kt | 2 +- .../ui/adapter/ReceiveExternalFilesAdapter.kt | 2 +- .../owncloud/android/utils/DisplayUtils.java | 2 +- .../owncloud/android/utils/MimeTypeUtil.java | 20 +++++++++++++++++-- 7 files changed, 24 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/com/nextcloud/utils/ShortcutUtil.kt b/app/src/main/java/com/nextcloud/utils/ShortcutUtil.kt index 439d2b6c75..82fdbaab16 100644 --- a/app/src/main/java/com/nextcloud/utils/ShortcutUtil.kt +++ b/app/src/main/java/com/nextcloud/utils/ShortcutUtil.kt @@ -62,7 +62,7 @@ class ShortcutUtil @Inject constructor(private val mContext: Context) { val isDarkModeActive = syncedFolderProvider.preferences.isDarkModeEnabled val overlayIconId = file.getFileOverlayIconId(isAutoUploadFolder) - val drawable = MimeTypeUtil.getFileIcon(isDarkModeActive, overlayIconId, mContext, viewThemeUtils) + val drawable = MimeTypeUtil.getFolderIcon(isDarkModeActive, overlayIconId, mContext, viewThemeUtils) val bitmapIcon = drawable.toBitmap() icon = IconCompat.createWithBitmap(bitmapIcon) } else { diff --git a/app/src/main/java/com/owncloud/android/ui/activity/EditorWebView.java b/app/src/main/java/com/owncloud/android/ui/activity/EditorWebView.java index 0375d2506e..c21c2596bb 100644 --- a/app/src/main/java/com/owncloud/android/ui/activity/EditorWebView.java +++ b/app/src/main/java/com/owncloud/android/ui/activity/EditorWebView.java @@ -250,7 +250,7 @@ public abstract class EditorWebView extends ExternalSiteWebView { boolean isAutoUploadFolder = SyncedFolderProvider.isAutoUploadFolder(syncedFolderProvider, file, user); Integer overlayIconId = file.getFileOverlayIconId(isAutoUploadFolder); - LayerDrawable drawable = MimeTypeUtil.getFileIcon(preferences.isDarkModeEnabled(), overlayIconId, this, viewThemeUtils); + LayerDrawable drawable = MimeTypeUtil.getFolderIcon(preferences.isDarkModeEnabled(), overlayIconId, this, viewThemeUtils); binding.thumbnail.setImageDrawable(drawable); } else { if ((MimeTypeUtil.isImage(file) || MimeTypeUtil.isVideo(file)) && file.getRemoteId() != null) { diff --git a/app/src/main/java/com/owncloud/android/ui/activity/ShareActivity.java b/app/src/main/java/com/owncloud/android/ui/activity/ShareActivity.java index e51fd0869b..3c6b724e55 100644 --- a/app/src/main/java/com/owncloud/android/ui/activity/ShareActivity.java +++ b/app/src/main/java/com/owncloud/android/ui/activity/ShareActivity.java @@ -73,7 +73,7 @@ public class ShareActivity extends FileActivity { boolean isAutoUploadFolder = SyncedFolderProvider.isAutoUploadFolder(syncedFolderProvider, file, optionalUser.get()); Integer overlayIconId = file.getFileOverlayIconId(isAutoUploadFolder); - LayerDrawable drawable = MimeTypeUtil.getFileIcon(preferences.isDarkModeEnabled(), overlayIconId, this, viewThemeUtils); + LayerDrawable drawable = MimeTypeUtil.getFolderIcon(preferences.isDarkModeEnabled(), overlayIconId, this, viewThemeUtils); binding.shareFileIcon.setImageDrawable(drawable); } else { binding.shareFileIcon.setImageDrawable(MimeTypeUtil.getFileTypeIcon(file.getMimeType(), diff --git a/app/src/main/java/com/owncloud/android/ui/adapter/GroupfolderListAdapter.kt b/app/src/main/java/com/owncloud/android/ui/adapter/GroupfolderListAdapter.kt index 9c62cb642a..232a0bb4f8 100644 --- a/app/src/main/java/com/owncloud/android/ui/adapter/GroupfolderListAdapter.kt +++ b/app/src/main/java/com/owncloud/android/ui/adapter/GroupfolderListAdapter.kt @@ -35,7 +35,7 @@ class GroupfolderListAdapter( private fun getFolderIcon(): LayerDrawable? { val overlayDrawableId = R.drawable.ic_folder_overlay_account_group - return MimeTypeUtil.getFileIcon(false, overlayDrawableId, context, viewThemeUtils) + return MimeTypeUtil.getFolderIcon(false, overlayDrawableId, context, viewThemeUtils) } override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder { diff --git a/app/src/main/java/com/owncloud/android/ui/adapter/ReceiveExternalFilesAdapter.kt b/app/src/main/java/com/owncloud/android/ui/adapter/ReceiveExternalFilesAdapter.kt index 11bbd4bf86..12736f80f6 100644 --- a/app/src/main/java/com/owncloud/android/ui/adapter/ReceiveExternalFilesAdapter.kt +++ b/app/src/main/java/com/owncloud/android/ui/adapter/ReceiveExternalFilesAdapter.kt @@ -115,7 +115,7 @@ class ReceiveExternalFilesAdapter( val isAutoUploadFolder = SyncedFolderProvider.isAutoUploadFolder(syncedFolderProvider, file, user) val isDarkModeActive = syncedFolderProvider.preferences.isDarkModeEnabled val overlayIconId = file.getFileOverlayIconId(isAutoUploadFolder) - val icon = MimeTypeUtil.getFileIcon(isDarkModeActive, overlayIconId, context, viewThemeUtils) + val icon = MimeTypeUtil.getFolderIcon(isDarkModeActive, overlayIconId, context, viewThemeUtils) thumbnailImageView.setImageDrawable(icon) } diff --git a/app/src/main/java/com/owncloud/android/utils/DisplayUtils.java b/app/src/main/java/com/owncloud/android/utils/DisplayUtils.java index 106916fb6e..750aa057b4 100644 --- a/app/src/main/java/com/owncloud/android/utils/DisplayUtils.java +++ b/app/src/main/java/com/owncloud/android/utils/DisplayUtils.java @@ -868,7 +868,7 @@ public final class DisplayUtils { boolean isDarkModeActive = preferences.isDarkModeEnabled(); Integer overlayIconId = file.getFileOverlayIconId(isAutoUploadFolder); - LayerDrawable fileIcon = MimeTypeUtil.getFileIcon(isDarkModeActive, overlayIconId, context, viewThemeUtils); + LayerDrawable fileIcon = MimeTypeUtil.getFolderIcon(isDarkModeActive, overlayIconId, context, viewThemeUtils); thumbnailView.setImageDrawable(fileIcon); } else { if (file.getRemoteId() != null && file.isPreviewAvailable()) { diff --git a/app/src/main/java/com/owncloud/android/utils/MimeTypeUtil.java b/app/src/main/java/com/owncloud/android/utils/MimeTypeUtil.java index 3160e1480b..4f8bbd860d 100644 --- a/app/src/main/java/com/owncloud/android/utils/MimeTypeUtil.java +++ b/app/src/main/java/com/owncloud/android/utils/MimeTypeUtil.java @@ -95,9 +95,12 @@ public final class MimeTypeUtil { if (context != null) { int iconId = MimeTypeUtil.getFileTypeIconId(mimetype, filename); Drawable icon = ContextCompat.getDrawable(context, iconId); + if (icon == null) { + return null; + } if (R.drawable.file_zip == iconId) { - viewThemeUtils.platform.tintPrimaryDrawable(context, icon); + viewThemeUtils.platform.tintDrawable(context, icon, ColorRole.PRIMARY); } return icon; @@ -141,6 +144,19 @@ public final class MimeTypeUtil { return determineIconIdByMimeTypeList(possibleMimeTypes); } + public static Drawable getOCFileIcon(OCFile file, Context context, ViewThemeUtils viewThemeUtils, boolean isAutoUpload, boolean isDarkModeActive) { + Drawable result; + + if (file.isFolder()) { + Integer overlayIconId = file.getFileOverlayIconId(isAutoUpload); + result = MimeTypeUtil.getFolderIcon(isDarkModeActive, overlayIconId, context, viewThemeUtils); + } else { + result = MimeTypeUtil.getFileTypeIcon(file.getMimeType(), file.getFileName(), context, viewThemeUtils); + } + + return result; + } + public static Drawable getDefaultFolderIcon(Context context, ViewThemeUtils viewThemeUtils) { Drawable drawable = ContextCompat.getDrawable(context, R.drawable.folder); assert(drawable != null); @@ -149,7 +165,7 @@ public final class MimeTypeUtil { return drawable; } - public static LayerDrawable getFileIcon(Boolean isDarkModeActive, Integer overlayIconId, Context context, ViewThemeUtils viewThemeUtils) { + public static LayerDrawable getFolderIcon(boolean isDarkModeActive, Integer overlayIconId, Context context, ViewThemeUtils viewThemeUtils) { Drawable folderDrawable = getDefaultFolderIcon(context, viewThemeUtils); assert(folderDrawable != null); From bfddd8b34ee05b2e64ee75905412a152cd36074b Mon Sep 17 00:00:00 2001 From: alperozturk Date: Fri, 15 Nov 2024 12:08:39 +0100 Subject: [PATCH 13/27] fix code analytics Signed-off-by: alperozturk --- .../java/com/owncloud/android/ui/adapter/OCFileListDelegate.kt | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/main/java/com/owncloud/android/ui/adapter/OCFileListDelegate.kt b/app/src/main/java/com/owncloud/android/ui/adapter/OCFileListDelegate.kt index e6844e3e8e..16f5f15e73 100644 --- a/app/src/main/java/com/owncloud/android/ui/adapter/OCFileListDelegate.kt +++ b/app/src/main/java/com/owncloud/android/ui/adapter/OCFileListDelegate.kt @@ -383,6 +383,7 @@ class OCFileListDelegate( } } + @Suppress("ReturnCount") private fun getShareIconIdAndContentDescriptionId(holder: ListViewHolder, file: OCFile): Pair? { if (file.isOfflineOperation) return null From 5d269d00f719d8e8a0df2988ae42d16e1a17dfe3 Mon Sep 17 00:00:00 2001 From: alperozturk Date: Fri, 15 Nov 2024 15:20:14 +0100 Subject: [PATCH 14/27] update ss Signed-off-by: alperozturk --- ...FragmentStaticServerIT_showFolderTypes.png | Bin 20919 -> 20922 bytes ...FragmentStaticServerIT_showSharedFiles.png | Bin 38404 -> 38760 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/app/screenshots/gplay/debug/com.owncloud.android.ui.fragment.OCFileListFragmentStaticServerIT_showFolderTypes.png b/app/screenshots/gplay/debug/com.owncloud.android.ui.fragment.OCFileListFragmentStaticServerIT_showFolderTypes.png index 9785c00d4226fc4e97187c72a9a6324af9ea96e9..5403225f8ec548acc63425e0cb78808f2c25f137 100644 GIT binary patch literal 20922 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 literal 20919 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"w^Wu9pNnpiryiGo=YbSGF#)T z0zhcu6JpFU+fwwlWyRf}jba*);V-5Ocm0i;0_e+g6;$ra zzUEXroNBorIhuUN)=Z~6Pc||)tnbvzRK+cz3M%02KiJZa>b|tNyXm zATdVh1%k*-?~~53NZHb{t2I5EtY$HK8`;*MHJte~GS56aMEr1jIdkPC zh@5$Y;~$OeJly)kPBk6HB*%e$-91rZB6-9KS(^7z0Z%R%qS;lnE^!O~^hR$Nwgzfn zxAB-#Xsa>9ZV8r|%x}FRg%(f)dW^VEgDKZ9DAg_ZH@(Ny$8tUY1Aj?TY+N$Cc|dAD!ICpsL^qBHm(oY~wd7 z3gen{85JU@Ko`>56un(nc&|)A#a>rUsK)C0X9YjoBWbK!ldCT$qrETXH$?kWkhWMWg~k$WE?`sMgCHaA{cNX#bNlZyJ)Mq1D998LoxO8w3Gawh?%DektZ>B8$92q_b<4&Uo3B>I`w ze2T`kpd(7o*D*SWa}j7!%Xg8 z9Bq9hD(!^x%M;eKyP6he;2J^}{*axp|^(I5u!#|Imt&wu$hpevN{h z(b+8bVdu>QMJbiix)=Nxtl*?eiTjMO94kE=w9XV0ZzBxMFKJv7DT$beeQ42d?#I#y zXb-P(vf%l{w)D#R|M-Vloqwyn&X4qf3iAJRShX@jVxL2dDQGhSfiq^*)w;Glz!YoF zO)%x^=pu>!iD=SfxRr;UzZo}D@LV&(B7G^O+WlAe%!k+0Od1Tr4@ky*-i|5{4K{n7 z5B>=Cq3GPZl?hV}E?pI+n;+?AT zZT|H(8jcLPoN5pmyZ|qYB^GxBV`U&o?HL+ZLUN@(C-J&XA=5?4iGxOb;5vFSrldL!<-(QpBDHN8j?O);FwUT zL*bJ{PER|LzDwyaL?g+)2I0=DM2ExTP8@ruUgX`Fl5Qeo1p`qFU!4Vo+!}Z4@%~0y z$Z&1XQG^M5IrhP`cG=S*4A55cV1}VA&<})RW%bJ70gLw=;|^X~-xJ7SJlKEO9L*rWQ8tI^FjM1xKOJ-L}q9~(5=GEh&bvJ1ux935> zO76TIUKHhP%hUZ-iZ0J(RVz3JLsHWdgUw5d8M>~N3nTxaxKeJzd4IDMMrV9tlyvhY z!!v^x*}=>L$TH8if_wASe-hM}lG6jUF4^0T{r>yL^`+3OQy#4zh;f^b64Jhg9o(?N zl(p5DHgk$cW@c{;fYwlX%XNoX)ELblolL>$@{N9ay;#c`gtA1FxyftmLq<m9 za3&MT=Iq_kU^)c{;yZ3Ma+1ey?&o&oZUyNF(c&b@FtYX}6?`?;c_I6)x~}F_ntQOXJX|=<|d5_r`{W`m4LGdM9Y2s_Ws1>@!1OyR%@BwBr<_Gm3bxP zD@Vp*Lcg(&B~fu)O-Zs>X25CxO)yw?qq<4rkoehp@%y{8-FjnXnE61#B&`gc;)odC z6I$}QW;ES->~qeVp!#AsWtYPb%sh9eeveo%5~rJ#AL>AlGEXZa`1%-AY}Sks3a z*+!Gl5%Q_3-%|Rq4MGq#9G#q;s4a>TJ6D0WyB^T^P_Y6c{Yn(2u5ES8_4{F=F=iel zAnA@cO=r)ksi}SbUHc)Hf-dy{OLtTfkC@kPLkS+)uJjIOH~>{p&tTMU+SY8<)y*(w zCS1K=GffO3A4(kUCyCJIOv7dfIE}C7m-mgbh+ncTdg{cu`XHA3$ub;o&G`#ENMfP4 z!lG%Acs3^up72rLXUpGB0cGS`najbg>#AtPAxMg{d4EWs@R6J6Bq=maI^#ZrQF20QQa)mt+|7$|x1J$QB0B-vy;Doup|6nlUBZ+qGetWli zU5|Oa-&vB)voOBGdr&1gTHZ>A~3Sd-h`2Ugd7Ot*eN6VM`CkgvRl7W_D z%b>B(CpybQ1KxW?iiY*zG$j#;Lv6by(YDi_O=A#%zg~9AgUg)d?MEQaui;plC3QZl zE8Zyq53>{RR!Jd`L{&tH@shy?XmhDuK@Ca9#o(_oU+Do*){yA0y;zgk5@Sii#m38sjoxjh?#L8jU@AbYT8CmI{ z^nzjENnzz2GH55LrrTLW*G41tm7JG&++%$Q@V<99IP7A8-ZXey47GB`Z80Ke3&YGU zdhGRf=X|l`sSd+ z`s42k_U@Ammr6p0XcJy#5^>VWmNe2+*+YFTN#0Ej!KCygzifnNB7h;NcQV*LqQ}Qc zvOH!56&iB>)R-(SqOA}nWI)p%np8%7Rgx0FyXV#F{$lK;4Bq49(WI?K124jbrkm|n zlVBydEA)}k*fciZz zW0&r1*E6%V4rzuLzcGx&6V1oh;{VJh7PrtPo}s)IjKS)}JP^Hd&h}Kff)eIk*1Joj z_>vs373C(ZQmb#|g@kPY%KI61k0Omf)F)Q@Yr8%FLh39$?+(E}Y_><_aXgv{Nn^1{ zSPXi7JlTx*mb>2w=_b&+n71x&or9p3S!X1W80XdEjIq=>^_p7sk2vx&#)TCj~5{GV^mokrKvq8#yopr2lu*1`F z3bYRP{z6w6Ix4DyNu7e?EYuYDc~8j&_pXoT=aOs`IWNbbc@)NW47k$qTag*d5k49p zQn{VQIU3y_Zv^@bU?LC8L?g4om*nWoQ7qM0B6SOm?p`{*F5{+?rd6a_0eEm1q|u+q zCY>Il zw9_5h+_=Q=^OEceVkbltK36r*Q{i>YJQd#OT7BiuQ(@?`FvvZbq0W98>0N^pl6fw3 z#DOQFwM1i&+WQO>H&EB)PndIT>I_`JZlg6Y*K@j`mOu`obo|cHhx5RW>WtJX8}|mE z44>B0ZJzLGg7#=O+`p^*lQBb1ecka|=zK6BN|dwHm(M+OIxFCuroxbRsXZ0d;`4;8 zicZ-^yJbVF0S(snT*9e?6N z_cwvWo1n;BZX;n&#Az8fPy6`o$l4q1?Eb?j*P86ex}?!UrBvrC-tN8?5d8&$rJF_1 zoyGvb<(FZtc`kjQy0fOjGzSk)I@Q%E4G1Zkkl4Bz@!q@pQe-EBt8G5C>?&?^6kj_t z)rcG)#cwpXYf(hEFG2a7_Yr^m;Iwjhd&z~qqwjgSaL13JI2ra2h>I?9eI9DunG;pc zb)p6L-rMa$+4I7Z6YDhvsP!D$`>dYa2m5f7%M;4Hi#6_f`4-nB*OsQRx(86tM;N}M zOb`1QS$*)Vn|GyFIlgppa!n^wu&J&N0W&T+7;{pjAa(Nx`=Z{nbFrW5sz3gHz+o|TS@_jPLwcW%4y%2vx3OR0f z+>IVmBZ=M275A^kwEM@&^S4$G#qO9s)pLHmCK*?#1*jyDNAu4sacn&M+uoSz`7zR& zlW*oMib9O*i({O}Tv#+oFcc<}hDIX0usnEhhE-+Qz1|k|Y(wO%&ftj)sB4gdSizA# zMkz9;bmhOvL486Kw2NAwd_f6k>$2v)K4`@-Es^ilCZpwpeF9pX#% zo+lnBVVtt>@%7>|sKOwJT@7wDR=why_9Q)iY0y}UqB8Pqss?_T81bbGrx&i}`rG`F z`VHqwdzfA&PPed&iKD%5LZBOeyXCleq8%bjE>2}3*#y!J;n%p@CY^fRF@3hxw&TS= zF;}%5c0Yu&5Mo)HXXPChcKoTtQe+<(6h3oDAQ?560 zAmaBtlyJTJuNm`PU%t!yIR%oL`EVf8w??_zPgWI;ywCZ4+`YE0t{~67W;%j&pSH1i zVP39DW%&4W!u)7@zF$|#Zl43lA{b8parKqG=TAj(m}=lp^g=4eG-Ce)+HQYbz_lgv z&F8o$KmWc1KQQ`X0)y{5q^tM^9@p?t?(cz$du5k3M{;*#KP+r`|NfK@0dElog?2M* zV^Kg)cZ?mx$~uY0pfm@ezjlPQ#a_EnwfCU}@gJ~dVVYPDoAWG!&Y?UpBvMf~i|*ct zD?O&kfc5m)KTPMKp1`0|wqxGrjN$DY?cyC;4zaR=h!p-XpwCh9ZwwyHVLFsNIrG~# zXUWqK+KJE)SN#e3O@2~#Rn--AlZLl%1N%5WcI5dGMO!iSReV+ z34J(Wb|$>EUqMCxJ{AFm1qOz7zYQ4AorhqfmT(H(1IeR;w1$}aFf(%FVj5*!5)9xA zfKA^ln}8m!y>eEdEdp@%0}o4kEr*-vfQIIySVCM4uH|8$iZX-%MMdC6&>Gw-E}oZ+ zDUbu;Q7{nxST&1SAf@sGx?pttG_>t?L{JWQ!}D@3dqBG})?WvYE85sp+o}(vIQbCR zlZ2;+z==Wa@3Z?<_lna#1X;@lIIGESKNX2 zvjakol4LssA&G4j(i<63_#>OZd~f=#hm6ZY2n=BqP^O&Li}X1m@yI4YzDhTVoZ#G* z_nyo5aUw)f`UPU}owoF7>r( zD1(K%DvCl0$WGlQ@E)Q|0;wR#r<gwDW zP*x-lDH3iu*f$3;KT@}ip78#5n_ev#36{ZuMp&nrW?#l?nv_CyJIkc7GA;HpVDA*x7D8t(%A9|mX0J$DYR0D=?-YQFi138X+r^OJbG)L^{1ehCaj&~yWOkXAkFPk z=jZ`F80bGGZ}+&8FzxUFqY{VenF{(Qi3NJuHoeLDj+Pd?uQba!IJA2m8j7bKn#~_TA6s6CX1E zg6dec5pE+ME}7Uz{i;JjEZNb|Q4}nIGyw$x1p-ET2SJc7A~h6&(3?gS>C&4(=tz}LLbHH$ z2sLz+8WJE|!TmlTRJP;K{-#bl4D^G)ajpW~!4(HBJCYLdY1Q~eqe z%oq7{s|{r!G#BlusHnJTaMhovc}~hapCtL*N1Qxv`rhZFh@RYgpCOV@`_;+DMH3fQ z7q`diF6wUG^9(DE9dJu?b8}LE)v8BIM=hbKd+_3^Z?{i<3mU^wk`JUYcmB&4XfycW z?NfjELdilt$?d;;ISVI$>D%AE{I`GX7M%rXAS4coIYL2k77mUdkdG*!C&3>|mVZ0? z*W3R(`k#I9LDC*Nv#8N{)}j@)_7fTMrf_ zToSg?{!;Go``6D()sI{P0-|1OJO@-8vwoF*CFqF-5y*h_cROZO#IRN!x9vpooq{swayH z6A?ubo@piUg-3lz=rQM?U*9ysh;^hCkJ%XAj;*zMhT^4>iuN(LNgs>eOhs8<+(f`R z3JR`s(C(^u@!;U5V5X$JJf5}YtA6o48S+VY%)USA*>IlgxFlrRb!BajG--g{Dlu!O zC+_{84$pQYPUv7ZK51%dnwm5m?C*58M6kj7HwJV~68MeK{b%77Y(|&!^7EHae!qX7 zEPL_uq4Pp-7Bluncxzh>?-JGa`a<8P3q+$MNwmAt2>Zk5^VuB|QFQuyXj!ETVK4+y z|GbsH4BTboWbg&PQsbz$HYKluB2&`xxNumX$M-N6Si9|5bq{NX$T12EgfWcWu()9# zy*FHJBGs4on78kf>9@=$RsOh@=BuIt^}o{>CL0>8$I%rYKVF^esI(hh+>s5 zr-*UATk2qprWOMes9S&Z@JU|nrWx#uB3?i+~p{ zEuh1|q0amai`ersS0!yzJmxN~jlhZ%jvPBNWR~K$zt!l7e(Oc7!@fNM?$gXqa&NuQ z`nZw#2|CsfziX`fvMV9zxAi_dBhF(!r18L$m)%$^CcRi$qLwAV=tj!Z!vot<&hv|t zO3%EOQS%*G6Tf6GHq+P##`WIA`##g(PhURiw>2AQ=W%YvX|l$x*aQDDM+LN9XVs)H zO#YLYNRkK~-_Ol$Ul>3cIHxYP7p<+{9?KUcQ!gEGCfjFcGtf29M_ppYKS9EybZ=*= zYO=CqFJHHKq+wRgVYJfjIaD|7rFe4;udc1%0XOd3G>}nkL z>F)0pZo+-XDSycP>TG)y{`XvxgRQs82F|BqT={04*L&p7XfaHCT&#Jx%<@=wh8cN; zQbH^d6J?g_;#23Hyp%(B6E^7W>x$f+#Gs^fF~fqrI1^v$@e|jv9(sBSE(TJYLuQ*7 zLotj|YLCOG7Q}SlLv|L+L@bCtT!C7c@nhj#X@oOkbciz)!|6wY%aI0E_Jiv+#=P+8 z>6wv&$#d%xG-!sKOag9Kq$-kgFuI|W z%9HiD5u(7>r5I+w<;oWk`Q$kDc2~0a(qzNlra`E)?`kWjh#tS~WwjIuYr^&h)`Wq` zYdoH*7*&oasl&_I42BIFL6qq|8nwbfg`K= zI2(@QEaP~_?pK@&@j8ym6B$pV`YrMo_l3d*SfUe06$!Ll0#`;)wT$jCj#*auwz%7} zZM(I<_c~7Va(JpREY>9kb}o^N4c^qwNYY79&i41&UdY+>Hoks3Pd@$QN%}V@qTx9` zD15|^pmS_;PfCnRp1tuYjcJBr@r?RLRievR*>RrL8dtfltNS3u>db5BBiz_bR$b-m6ex)X5K*Xnef7Yh|yu#e*dy!$%*k8lYS?z9?lA}y>*oWSx@CzpBsl@ zJ+6xCRS@UmUzY1-_Sx2b)JI_6vw@pjzKf6B8E-(UT2KFu+~oKS2~#jou_@nB4OFD+|^(kReOiHE^d7A%iv*Pms~7%h*;G+sBwdYhA1 zOeiViV-?MTb;d2!NZs&~rz-KIiVr6zqG(oL_&_h?7m_4uH=>=PW*!9k8O0AqCu-O1 zdo@Bah239SYmi<{Y!M1Ovg39_%>MqYyn)3wwK>pGc zpYQs};&54EXM#|(Cu_Nnb)^-5m0(>3M)|D%$m4`*$2hEI`tQi1$GqM5EA7VveZIXt?aE>r*MKy`7U)IY zE*zgIG7@)QnQFrLP=XoVGCOzB2}>nmkC<9;L?-u&x!|Lp)Tta@GLjk>z)i@~mbWJ~ z-r<>@opoK%DI~G7WAsM`Y8I3YXDdDhUvP3%=#RNe?=Rw%AZV_XDS4FQ<=5*Mpxt-H zx=#!w&_X9`J<1ja@^z;isMGunV3j!x@KD3{wzkFPXU4TfTPpSo+DGfa3S7eo8=IX) zkT#RXR_O7_04B(N^!tZH4;<27#TyM+bz98p{H6VN+wb1%A! zx33YLPf{-f2x3iiZjj!bqdt@sBDMfQVe3|YbAhKoA}}3dVFU zl@7$5y1?G+3yr%rxcTL)KsCL-d0GyA+ej=aJ-PR;s8&*;djxDewf|yeI6#&y$BnGM z#CwPIyM$FoEtdyr#PJ&y?C4!MzvGH1x>!Ed(6gf{Rv(V5$k_I zr~eVq9=`qG|6nrz-+4V&f!Z3@sbXQr?-X0z(fC}gi?od!< zvE%563~5o5G@2@<=hgufiw7|0?)rVWZN5%nZ)~8xr3hl8*27r{j?>sTqo7by#N?d-K7b{*UU2Yw5@(@V1*#K>z?jR|KFx5!pcwU__A zHs3AEBw!rEj@uUlueN!4dA0`q*#KF`8`ZdGF|JQHhbP^4o{LWwcRP_{)*8uSu{PHk zv8}N<*)SQxB0d;9Tv<#z6F_@;gZZoz5SXLK_sBTC7BB~)I02J067ry7I(~e4&9;#? zwH?YVT-v<3(AT`*e@9G|g5nykglc<-*x+C^Fa<#VTw&Ej>5YqzF(zJ175-Ftl1*hC z$SV7B8V($pmlXD)I%Y=(U%zUs6G8B=NVqKGhxzI=fsI&U(-oi&2=RwX$J_laH@TXcZRz8+;*N* z;l(eo-U3Z(bd`tc0anC!_jjh?q~8GqTs4&#f;AN>YTesdVA3#g6Jafu*x1bbq^->t z(2GU5fa*ddj$3O?0N1uSc=uL}CdBVxXR;Hlgjzv`2M($v&-EVprGC*0bI@Hx2tHpB z$El&ZCs1Q+zRDYzvyU+`pRsjbZb?RdfK={`0QhgGB9V-=#D4?GaR?i&i`>^V{(Ov1 z;wAFfgKKT5o;{+}!J1U3k=uC8bLyVex}s9C@2SOF3N4-cfEeq4n@u?eJ(!77?*K#5 zZv3kt^~M`oCVKO`qJ~nZ+*S7pG6x1ribLSHX3#O2GcSUFU>-vkrDW`1#fDcf_F zVu5V8b1X3~E<2r_e8q)GTJuIJGFAAV;g0s@IVMHEIBCcWtK;G%UqGK!0Zd%ObGg08ryqRPFZoe05`y#yvO%vKJxpV8B6qX1cpE0Ku zw|?QyvMxbK9Wpy99hD8*i&#p_* zq6LxT=Sx1Np8-?xNq*7|rggw9Iq*@RVD*BaD`_0OP;_*PgV}}WDmse2&8)scjh<70 zF-Ob&gc4z06<5vO$(V72A-j+f`46aQw7j9MfIA1Lc)2b9D6W01ss9@lx(y%y(Bw%r zZqP|LGATG%{I0$_sXi6H0%+mOXBmGW#T|#89;a;2e*wj`joyl_Hh>cuyyCoiU}cuw zl_EgJAb4Q#j>GAwv9@(d&vmOGJ78X~{1YmEv_$LJU6~$2yTGQlYhCgEAIZ>-f`bdU zP)Wf!!CtMB8I;p3OPr`%y2(Q?%vXb-ydrCL=e)}@ zMYC|W=$!i)WmDhugHcZ#Ro5!d1j><`?Cq?|*K1LNq#O?ZE0t>Lc;-zah8hb-&A(mCas9#I{h z@EO8bMY%yoTl)!9sdR~DV2li}0*2$IlO;^|j-A>R(-Iz!mob!K8_h)&ZI?47y2X`N zx8>Whh`|+RM67mtuR*bcITQPbSN9T$O+f1E=!~#5Tw!)mD%c$+sbLtqu|#@VyBPc? zx0{ujL&(}$S2`3K8RDBM86zDJ_xgZJ}kK(=xMu=7C#Ejl}O)}X_s z>)!hpF2o7QN>wR3MrH1*$H^v4%o613=a&WDEbP^6@?qsA%Z4#b%zDbvF~3DT*KwJo z8DrA->5O$CiJeCwPc~IK+c`EZ2)AjARJH5q3O;$Sumd>zlhKp34L_8uV&0@Eals5G zf?bvR(oc-oHU%3J_A|eK`V(e8r2Rf)mRaQ7m<+FSoR;g$Qf4Cf#vX5~Pe$^dD6B3U z8)Rm|-V9r0GHfcJ?@Wp-TYWZJ?~`rT941mTUbFYn>o#Ge0(K(_Vnem8F(fvoPSnf_aj>=mJP~ctiol9R--g!JmH}{p;<29sT9)zyBbdES&!R zTmO4Mrs05c{1#8k6nfvIEuO78 zqKS$#E(Q2Q6pUABQ6FQqJ3tAb-|wipSj`xl__F|x`7)AzHTtXZ)UrDn7vrN1szUDj z3i@6rB>}{F9Vc1oFlnEynq=|z)TKzRzWeYZ@7@AEAt9UoT*TIU05a`I*=rEmu?)ywoyRo17;=-e(2?Av`1o;5!ac|I zOLw06>s8w7MSi*m)lK+Q@Fm02f!qu<`cT2%{q>E`0?5d7y;;hNL|8Ph!*{ZD+p>Bn z-J%*n&$X;S*!KeZ@CRmoCsa*y=w(Yg!eF5u?RJ8YrR|t)t|2@UiNbMz#)M7?TvxTh207I)ej+@k0y#ToTBDXG9UAs354{DT9xP2d2`S^!X|`*K^{}fq_)Y3}u~L}R zeE_npt+oqrcJZxv17Xtc-Z$9l6L;A%SBCdX zIUX{B)an#o-J&7bW~KDrk0o{86VQ{n;`rWyo_?ubEvIE(XSo4KttPweAF7g{Rtwd!|>f#0r?CXg32f)l43hCr{*UA5+$j zt1%qUYv%2E_J;xufcmtHk@4mGPR}E)PHepK?+^aU6fUu&TVX4bN1D@r`0t{)^QhwuTq2~@_Bp>o|9WsLAQC$z);EMC?g@iZ#2;>4L6E<=5O z`c+2+KJReY#lfQ3mbsMww^4RaKG8 zcg1ue^f%Hzn$llaU3k=Clwlp{-Jf~y%{lmosg1;-)%AF`1WC`hkv{+9Rr57GI; z7FU1PY(GJ2^a#I$9JoX2uRtqUn$PX<+(@npsgjyaYw1s=crUJ&8h8`8?L#2Osp=88 z(wYp-T|ydCRI)2)X;8ybyT7Di)njI^C}o+L^Yc?!rMcePU+{;E;c2{Tg|-eX#hO+A zO2Y#|5t;e&Y>zwJV{-{lnqoMf@iQ1_5XgwWN5s4phJKHunNYFmqL*HMZYrX>SbS0+aJ%ExUKYMDvt(3!6$o5tACUeI1XZwvQOzsS42B#5TDWts9cHhy0(OTiJQOv}B zYOmd97=0V^B*ERG<=1NF#Tu}hD-w6;@elbo{EQg6%D1PzgE6?`F8TrDC^A|FXyxcwK>QY^PXH}Ax{?4jQ z$lfMwA&lC&tM2~T(^6yhChI6Bj?C-0_h&j4e$U34*eu@2DSRG&rFD@r${qH+$YuIl z^vRcF*Ln&Hku@K!+MdNNkW^;RtzV%hDEKqF0RMCGP9q6`Y=Yu)l^f=? zFnZeqaWiw9bfhxZCH8iv$Hm_3&UY;zqNSIBfLKxGayMgxjpH)4SA)+>Hp9F&`V5(M$j|XkiRh z2Fy;?&_W58k=t_0z2Ef!4>DK#g9j0)YW~TC#^H9{`JpynH_uT#&{q3!3gu&SD!oYT zt8J?1sfhA!?}zI7eX@F zU8(Zd_*y93-A9d03@Lq0YMwR2wFayq}#gr1HE@C#FecrWmZZj=fu;15a^bAW>nUS|33u;kaJ9LoT^2kAICQ-VDIr|- z$*^EvwPMZeQj}38I`RubW<&r--#8-qHTSsL>YYc}`%`LYAZTWQR6($dR6F9?B%qD2b;k7U zVWD9#2Ki0eqGuyOPHoroC~=sS>?<*oPa0ny_w0wnyDW_eM|84Qfc|Y0Y%gU>QVjnF zV0%zf^NmAIo(X^NrJ&jO5cW9Vv03G`a0;a4Sa>Ml5u|6nyN$`tF+6T7kAZ3O@BxF9 z6UW?qSDf#`bwI;3Zd;YUm+N)BC7B_nt;>(KmM2q~-WPk{lg*!%opWW$xV1?T#p|XX zei&m#9l}s`eEY>la;WwuOEuew;9e1SJw>KgQXuZt|5w!Re~-WYNBTMQju6+K)aS+1 zkycUGnX3FYA=!C5zH_?fNgvT~Ut+92M^LoL@DEle*C>!I9DwZ>61N};#$=4hmL@yz zB;rrg+Om-O>jM_*t+WB5&g_!p8$jaMZcY;xQZ^ncyRg1AT9pK*l!WWjZ)f`9XOekS z@4^N^>?I2*mWnEakZD3Lw7+CeXe%AUu1clExyHoBB|*G4Us#^>m$>Qt)pvSzD{`@>;2-fENeA0Ew{SqL7v-;B;+rSST7r=o4NKV3SQv?dk$pwfBFy{-o|N6l^ zyGfjMV7_bhRHslsCa(J*5uUN1X%jC9b1u$LXQPMSj5&ZL(HrEX#oyCB9H4n^Ft2Hu z40GxNxvnfOT!oLu5w4r|hN!2me80u!0W+HKy-%n^&i@VDOF((7S)BeC-=jo7osCVA z^g(X{J+%WgNGE8x$O)5L_mT~ZmN)qkgA08*O9ZFDZjjRPKG-8!fE7g8aE3n2ar(R7 zD3Hnq5xzjoHE8I{aAg&Dy~PU+&!}6#D-5VFY?A<#zgy=;syvz>P!|*wG&BOhMxRf3 zX`Ov@B!_Yba9WJo9*XdF_%m#>W8Fcq+b;tdS6US#-n<&j0c&OTy&snmM|b zq6B=6MIep%4r>!y*_!cU7cYVlBjDsRG;a z^2o8pJ75{{p1Rjmk$kyUJymjZzE53>MGxbmWF@Ip6?oNC^l)ZPw`s5 zzXpIfXV^mjN3BQRS{c0KhJOFzdo6A_%$IV9$%#Sk8Ghft<$DbFSm3nD0VG};GwKrXRQR0RdzWXN!1Fad4(TItB@w#VaUh%K zn_f?*c->@LpuRm;hn;V`hSSLXFjSx3)i^f1FitqP{)}-QP`18_-**vCxbMqjSgu``gNsF$y(Th>M_ z3mgCrKe~n+=}LiIcJ~oG0S$O4b7?8*yK8|nbW)@u0OheHh%gR8`2P5Oqz@SPUTb~t z9+$Le<)~$yf7U||9*M1@BY>k`;I;NA_ggsResTCexu1K%U%8*ZdNHraMal-G|6CXN*%E0 z@m^w5oo+svba&5;>FKQ!c}0 z^XS7^gP7VKLsgT$bq-Wf129Zw5^n1)ANDjT+xqRj8lblM(~gDCOj{Mp{m9eJfG3-< z*+V37uO41nGHsC8EH+4uky~G&G_u3E5WLa$M!{7fr0toA*7dz3xxDO+KqX0#5*^v@ zV%e>Gdfdo@&0dJLd@0C9Z7QNZ7)_YdM2dcI*BpWlKgDsZi6O_sOQhVT<01<2-}2^AO04Xyb7 zf!y^_(Fp|=qu??>4!mb~jMwj<0ZT2q^QU$oL7wAik+|D&N|=oYX(~Q$Y7h;AtwEVi|7kH5rlrC{^?-D z9I*)ymU^Q81?Y=Wl!L*7vBHP~mk)USK>2*DC3$S99^lLR6#5(T^bPm&r|YPrhP}hT z8drsp1|#_276lyjFn;v2PO>lyx!_Fk=4+3tRMQPyz+hL&hLOZ(&Ynl6(>a8($#E8> zMvwGM`o#}kN*UV!FS(B{GK8cHIz_aj|2jPPAWMzT5X3m;0 z1{{ay62@c~ZI$9{^vM>{(d^BF3MA~!eaBx_)|PyA}VA;mRgc9gOz6Jpt zbY3dyd%v$sHH@h{K1o*~p>tY{v(9xI-;{}cftrV6>IiR?hhm^104zpJ>NjSIJgX;S z#f7}?ns@GOw3|2orVw64~M*+izLwcJs(o@fVhi9n+(+346RZ zZ>s1mPkrqfr}DglST?#SO=hK4o#x2PbCsCGZ>ZWuPF1QdnA(q5$L>>B*(b7;c`^2X z6_l-tt%)3~rF9tMEE&z%fD?BVnbd(EKb0fWHyCDHE5s#H<`y+R*5sfRG{$OtxxeFtG!0NJQCXREp;5N3!6f+XkQpql6Bn!UfoyvFAEhLIjkZDNB* z*`QV)TIP3}jf_(Rv!M(672Ao@UT!snwL}9M4i(^=JeRh+5R39w^3og=1Q3GCc+_W( z$<^O?=_@xS!~kT!1{VIA{lbmcRFR{wjKX|7_uZDqn9a*?2Z$M8PHd4)7qquq$yG_b z+iL&22UrKp1_ol~Jpr-wp=Gs2&~{%XjHvC`EP`7rTLuq) z$+q?8on`F-X0OGF&;z9g_QgcK%CX@+1BIYqp8vxAgLSR}@hAcYQnTX=ZNXUK)Km6SFo##i^~oEsm)8_ zH*k6C;wTTdj-dS7kwKub%h^(&fxBIrRG)cD1-t*~pC*KCku?*(i`r^leg7O-5 zj(Y7X`DA)tzs))j#aP>@k#WQzp%x%hpg3FJk!>8e<+e-1hS~NS`eb^aSD^dV*sN1e zKHa$Q#KcKT4^|Mhxj_PAg5AAZd;2f%P!cCL9$|#{ZcRQba{m6xKOexHz=oKC!smhq zE#h2ni)@J?yZzi}`Pvtj`%ammF7tV{m=^u?g2pN^b#c~llF*{8SF^~3@wE}UA~yef zQ)%&bBOSv|9#$Mm7vwNMG8NPZi~eY9A6HoP{L{6FOcyF&0gj$HH*+uKg^<=}1*7?Q;tTe`Ajt+Q z`{3R!+8`g0pgX1SXo)Hm7AsP{GAvLXWDQWcfaPoxNLHx;>D$h=#*J5v^mMQShLsWV z>IVe;-D@z_7v)&-r(ddV= z;!@iy8MIB_)m(g7Z)Zd2yxkoXxg>h{jWeojee^{!8I$=H?;V)?dbC0Q$lh3BX@DQ7 zWPg@s{2xTh4(m1kUnb)In`t&KV4mEb`zmXumLfRUa>wipD+rVCi)T-6Bu;20B#Dym z<0XQAMJvaFcJsQ~=3=M?y$4Ia82PSViqWq!RLPI}EeG?@_-e5*qp(b-WL*H6=`WG> zDXvkFMf{g z?d_ewzNlt6dj7uBGjYRYuRCtp&M`JqhB^rTSDh8_clc68i4QNVuS_>5UEtGaFEIV~ zHXEc}6^mIU+;79jX_@%%f~c3EK=y93fGNQ}zadz&YR=RI!;h z1bYKdSLeAo0NkDWnC=hv%?MbJ{w{DO9CZgE7ncZt;t08*XZ~o7wfv%(LpH1xeg?I= zM|T1Q3XWJW;rdUfgfZ#=ZXOgIVk+e_#{-ZyctR2OBldj}^ zanSN2*Ki<+iheZ-;$Cx6>XLUrK17rbvi_c|mZDa$VbWmN3tt9 zsrrF@Riz!6WM9=y75q2oYc=q$6Ub#K=&l`d8Hy4-g9hzS_(w%d-FINwB%Ne+|2#-^ z2dC}?9F1WF_Ol`O_PqOIN%P{n$>433WgmGU;o2R1>;|DZ*v`yy4N-)Vk&$~e!}pSe z`-@DmetsW|iTZ&%AGa@1IK8&7K($zO-`uH-&MqHNhQ_`0Y%pfqn*uA&$ zJNw)sxOvO^{cS?y9T3V^3i@f&$a7>1w0fk>C-e4L#T%1p(kJ`C#MYSm8^{uKft)Fy zsI8|!or(ytb}bC$xskVLP&9kUU)KSR#?laH+v5(lPohmhg_ON92*h~VCln1Qi-sU~ ziaGl3r~hF`-kSpscI5=9r-4KwE%T(8HZ}`+fde=b$5pf`Oi)jF6HJQFYNxZjl`qJX zZ}xT2FWuje2$qgX?=@8~XROum^`CHi(jPwM2lj`?r1D0?B8yO+nDRMBr~?E9?LOT= zdvC2~irrQ61>7G16#2XgJ&>2nNN39GNE#-Cz=4*$054gPbM!1eWp4 zTF~(CZs7L!_kl%e2LUN5IZWSxVh{E)LT(q+#PSkVbjz%>-tz?m;-K34-akQ;G*XsQawtKRKp~HwwlTP zU4~tMiTsO~S^9^Usks5Nd(1eOv#S>~8P-3|x9DI7PUgw`L>3~w2pR_`Huw-{-kY4c zLNjkcM{i{*{WgxX4Nrobe+%gy$TqxD{OR8~t>Qz+l_}Yz^=y>|fcM4N&ou0B=QoGK z{~)x?bv&2439(F0Bv@lXsuIsy!@;=Qq%1ug)dz%+edZ0W`eN4_jn`B2+u~f8C8Cf4 zkYWB=ZmrZf~q~e zR$J`?4JsfVkLD&A_qCjNz2`LZZi#MyTmqI|2l}6e$d;Bm#C&{Drv;}2kRmDk=@dRZ%YW|iqYuF*QmZX&uEy?SE33^IM(NnIc=u2=$4pzUP6)dZ zgt-+qftE39<_RmLyc-AMkJuyE@7P8C@CA8_h~q|==53Kn-idTu-sEWYg*QwRJCiV6tQVhlEdIPaBkCEKAg$#V35pc5fMAP7O}KD zZK_4nd$eu-8|SY;Jj>sH7K@H4Jm+cGbG{HhzfvVXA2M>)v@6Z|N}nHM2%;nOI<4-em_>gOG0gfN=448E51i3@pdex9 zDPOw3x4MA?0m-&|u3C|Q5LN-xIi$F5P3()MgKiGjrm8`^w@GxKYE^#W$>rCx2uA#F zF^}&9VT$0{JZntbcW9Tcz5a(?x*+qo)ow{FTwVNhXU(&*_vd(FRIUV(Z#L17lReK~ zIv zM4x7jfB$;KW-xk;@bUd0G*%JwRnRF_IlAoJns(oCZy{@r^KsOobKNJE9uUD~7d?2C z%v_k`HK~qvC-ZOtsB%O0h(AYO>+!3uJ|v{7!IOVCUgZ`O6qwY*X_KW1m9W0|fW3|$ zf3}OO0Obk>NkW!k8xqx>2BkYUOv(}l^j~sN@m2Y z=$Wa|}K@c&kxvrQbVrOGJxqx|lM?X@eYZZNh&yEK=`N{OPk?X*$ z0B%SaHps35%YrHE*=aM7Yh2Qurk?+#-fq=G)y<{rw;Qqjs-^~^*H^Ab`t+ylD{fPl zyM?+oAid&D1`-$On{%V%;znmprT)mFu9i%kRs{t0jduBqpnnq7viN@x)LbhTPU2A^ z7e1U#yGa!~o%6q}U?N2Pvx3Rq_}?m+%HRvVL+$OyiA$oWX^wsCaOq8BGFXrAB}I0XXd9f;$!-pd(;O_$+{Q`V8tzo~Kx`L`;kVW<6v~P`I22yUhh4EY8%Oa7+%1je;$5*@$Mq-@TkDoXo8`$pXyk`W-TbIh z>wqx`-u$=usY*8Br>MZc^3&(~XGEBEe9G_ctQOhQ^&{?VUHnM6;>bB}2db~Z<7h&s znnOz*z^y}hmv2>7$Te34vh5t#y|V<0w`U7#hpHS>7lukQI_*jJqIlL0wChr0i$(Yd z$gft&R;A|dWMaSnFPg6tO_rs?18Ha{l$to1$-aL}5M92-kQDlfaM8TPq(QS``xKdQ zA>@>weyHZd1mqKKGfRn|S$bj@-0HGP>{A;as8feURp4X)iJtxkqDt}q^9PlJE{les zUi8FA<%HaK>WF_G5IS6Q5O#Pc+H-TN#@QrmCS_+T*7=r2_fWyWUPiK9&%fT~HKxqMtdFv%m!y18?^4+c80<5DGI0>B% z2YU`$V9>oV=?Cv#`x`WA~rO*FX()Jn$Gt8|FI_v@}fm!6pD-$pt%sFmK?8sQ{l&gXcR ze$%V+&wU#du=x68VgYTqD`Ik~M;?59v1|xGmm=bow1u39_n|v~vG>9H92%G^BrAZ| z=>)}wt^iZ>POA56AbG0>53tF?A{X(yiSuRll;Yaepu?RVc-iSs1DiOV9lL($=H5IK z?KQyLC1#wxJ?Tl{a|YF@&cA<|u5}1?$77AXI!|4^{h4(QY(l^prd2S6iv1T2ru_Ne zrNIR_PtDZUI-=D``Nt)x4G*$)n@ZldAv-<&Ml_O82B+gNCASGIs%wk9|3#d!XKSS* zof|#?;PfQYgjY9uZvzua7>s34N`mdfmB?4 zKvHai9G#mo3>1fH{w4BDx|y%}$-aYG`2I?->iU>TxC4DK2tIdt0}C$Dj2wtMe|g~D zW6`-(-)(M1N?>~@u&;u8i%*UwoDaaT__XqrBQp@}4l!E0)+Ig%Dr2bQ!0@wUqdkoK zz99hv*l+LH_-&B578PjNErnF6U>CbUs%{S(xo}03k}Tb*UvZvoV>BQViW^dNfVQKv zw|ZB`S}R`AMhn!!(x+VZVf8%g1t^XkeHy5mWK~=`#fD2Ldc3sed(!X{B?~?&-)CX< z+Z;J-N`sn&hlHJW4*P2mI4S!u2wX$1*8pDSH2b+#bPmUy)38l{PNr}JVZw2$k(xLC z&>NP{cpkc`9X_FZp(-wy-|fv&?eK@x#xvW4gl+CSeMF!PDbzMt_ub_E(3P!{5V@-V z^#fZFa%X2}KGm;s;~utNIcTR@YTs0KDvva)=SX)6Jj2Rys9mqygJ+Afrb)ngV~<4U z)C_{+p%cC*;inL1vRF_oyp8Ksc7HxW>J z+m2>*87ZTCIBj@SOSGw*T~;Ndxwx zc`+9kh{#(66$I<%6{VYN-QQx9Kpms8`YVmM2jndBbTbseKNCBMy1U13OTOkfVAbny zuxNakn3Oc1X2WSLS_vxMbd0gWUbL3FWS?m#zo{O3T$1X!m`I$E3J8T#qc0CHd@oS3 zYch$+T4a2Co4jWRhi4)!AGBXV)5YCk5W0c;ehV4_(^Yh1PR?f??|+l6u<*A2Srg4= zXY4!88&`$7)l4Z_a@^~(t*r4;a_!{0u1GH49@QdSRW_}mpP;_IQc9Z$Msd<6=+4r5 zBkGWiXqS1|c?nS1x$|p=2@W|`2ue47Sreg1$zL?4?~w#&jkoC4>thnzpvP$41pO^} z^)paTRIvEHGr8S@J|`)H-t<`t(t5tX7NGjVIh}RJvm5?lBvv`@AA53i@Vf=(%6x7r zj_J?z__@&7epOoc)*y$4bwA&A-R#n5>?0r4!oF-1F^anh4T8vF3JQ|e@glc`B4jZ3W`G~rXqQ9eC9 z)02SGWZ{R!e2Lr9%M$yWxDT2;Y#sNbVej!i#qRhc(iwB!hHgXkfr#y{QNM*}U@{xn zVZnG(B`#BGbUfFes{o>nu>U6 z)tCSnysgz&K6s|gA%ow&^MHTI?{?i;Ua-SJXUbA<(f*>_fRS#X<0=~c8wG^2b8wJ# zikI@MKi%4rOf(X?*HOW9%;fr+H;8quG@98PzvFPnxkLmD&&)HetK7I^Y2-zkUq%xS zOF1=1ydG&~JIk!RK?zwgP^KkQ3G`Hg6 z79c^tp(KsF=X^^T`AO+#;i{LM6^4X~7Y?(^(e84O43}F1k+49m&XPec37k*irDgdw zyFa+Q*0*#ugLd{t6@&IPP|i63%H?Ds<2q6Fo&ahh?|v+MW1dp5^Ts^Lp3jW~g{rQW z{;NmKLC7*ml6$gU!L8gdsE-k*ciRd0WABg2ns7J|*dAp1;XDStG;;SjNZ19MOV|A! zv%b`>-@;C2)~9fX%=$df-!bdwN+D6gdkyukE*C~`=)L!JjvXatjkxedAEH~n^^W-+hb1XBVVEKrOeyoQY}9m%~(-X23{wox%^<0kLK zA_>SN27SbYO}Xy!>5>0TyZd?p?Plcvf1=%?P{3G^E0tdh{9D@Xlc_@6(Q<)*B3Y+D zBN0yv%Cc6mg+;hPS&UFA>HQs;^)0$pKOUfaYXPRi554gF|&?3-C(7wtIIic!(L#Ci(Drf9OqV5 z_?J4-%Uz&O^g_y?b)v(_yxe>L~sVNI^< z)-QHJ1*O`+0tkqJfPj>M6h(UPB#87bkWdlJ9`udT4N;B8GN?Rd)+=(eOyS(82aCLkS}Tc%|XuQtKPF5=7OpBRw?s1vjwHFNM4*lWKU6j1@a`^ zblWvrAVB)?v+XA`qO(6+M}xLj7(6@maz`5tsDW90NUfzcGA3ElY(!kg<2Rll z?%tFjf%+QvN7Gdoy1`O$pLHIuwS#Ki$98~B4qF03c+;@|R}Q={?43htLAR$asIh`_ z*k5Ei=TgR>GQG130DhL_NMeacWa%FLHzc|m^>y>Xawn4>S8%Krlk`}+4L~3KIRf5) z)?BrwPp!%8UU4xlwGI3D^30{U8)|VJIEXEvxuI-J!coS*xI*r76_7Nl zz-{aR`b5PT4|3Et?jUtM;;;{FXL`au@GdyMB0;kCDG;%!n?&HViUI7v43>^lMY?g6 zcj4r=nd+Y?L;ypGXbQd*50Hh{dWHU(p!=y*Xop0AraLqu0BAxLZT!qkB?M8aui`>A zl6?WFkav|-4f3^!Ma#Hhnr)DzsGO2-4F`U-k6XPBClNr1Y+SYV^sH{EC)hrCd)^!{ zQlgMk001NeVPZgMK=4<%JkWU;$npxgtI-9SN?u`-2IFr55M)^EzsOVnm3)|g4BiXV z{YRiWEhPwo!~p*^2K)=UflwjL>JnnHp`S}NHgZFNMoQC9eqp97vo+1I230^Wi8=Rq z#e_A>(d9q>vsrtgP-l5yYhxIUVw_ghfcvq&g)u6&d_4r6Rk2pS&;vf=&E4S!yxAM7t8vesp}#D z$&q}s2k428Bh$r^m_CgAz=}}+!GMWNEO^mkKL^sqLztS{&0z=Y-=7`Yi~-6_+BM;E zdFPq&ER8EWYrqc%Jv4m@HaZ6y`SD8>?YJI&0dOHS z$!gkZkEmlFz(`F6@!!DfLyt8GCjQ0NcCs(cytD}67dfc-Ov+WOjd=M-e${Xpy10_O z8dQ^{hV}uv#U=2P#wcLEBT52|v32 z*_6fhzGm}b7Q);&CcQ+Bd$hxSn6e;?&3Gphfo|Z*te9TSStAQ!pcG@xLu>1LH9~B;v#;czi|3 zZJ!HZ;NbJ&s7!y}qCv3+9$b77Cg)CDlRLMjeJO*WA}jOc+cP@?HW9aCr;vR&UAj+K z%=uSBTWGaf9li=!NHFVA*Vp3%z@Tn>nz;=D&&Am9Za5?9}7px>zGuo79R57a@)4*hi`aJr-e$#J^cEWg99Dc8?4WMKl=QP zb2(`0j(LfE&`ua|puh1tg}|2xx`k^$=QL|9#l+C6Gj4Rbyn69E8wSp> zZ`oxQTSF=a5hY`%1>JbJ*HTdkdAtQZ(#H$*n@h!H0v~fLmunw)J%7y=J7DIwC$dua zz&DOANgcnzn5`gKC^=a5LBvN{Ci48O-vMZZ2XPSJFgR>S*0VK6f)F>GIe;?7>r{Q{ z-EbY;Y}^q48DR9GU~OmaL-mQ9bJtqHSF6c@8n;r(A%Cpa(4H)5Uln?B`+WuC&bUta zP=+?M`O8}UXgLpECu$P74KhU=@&bLhrhR)cWjP}B#}tH-v?G9i8au@O@BbXRvBGiH;H7DHK+{5@=^;3htpXz=OVH@bI3|^0v)D z-)*bmJeko^vg&gZRz4{Z&|HQVO#zH>PZiMX&KiQ-hOVFO(PVJ7elPajLt~_^wib6L z`KI=0TNlITC6B%nSify{sT+Wh9F%1V;3-K)^ICrW2e*i=qzx{n#pzh}bA~-s>am5O zd4K{p?JX_*%0-mYz4vzc=as6_cb+3p#Sje}F{sa;vAx^cKEEV2Pu?~dy1cnXL=Pj` zwFnRTr}lbYGOepR(N=e=`drTRarL2 zYlhbmbQriL*)`sHH1aK1G)6jFIr);z7rseP@A2SW!NW(Rs{35d1O-(Ngfo1a{& zQhggi=>KQ%TW)QdN%cVbopjj>=S--9EX29|CWHWyJfZuE-> zKSK{bW=^~qotI79LOOer`(`S0Sd?6ig-u$uL8?ROYbBx6Wj}GPwCJte(OAeX$CeR6 zk+|hVY!pV%tMzr^D7h@w0&9Wef7+jD_uGY|FcqB}Sd;TI`Ptxzyh3kHTkU_hMTA5@ z%6N(rS_?g4NvrFL3p8twp0(kaGv`%lscU9CK;(uhL!~-G+mhFj(y6{SWR zg5X|tNdGqTKIP6#gq_2+V`DYkFQH5CR+uFx7YYT;Z^)i%JIYze;{faZ`Xsg;c9z?f zU$q$i9}VS++lar3dfRz}g0r#q{>#ZKY>lQ;FkAmZ_u_SjivYkix@@wn*k-=q6Fev! z#t#f_iNJx80n%e|qoXxdG${mu#gSofPR^hERP)AA_fD4Kg=S+_Anr|aPtX1#?zw@u z*K@b^bAxR2*d+5`rQZE7l~+G?l%>>c4<&F0q-2fAY5&bLAF)yHD|O8Bb3a4j$O$35 zyyg~`{nkWS>L%#({i={TfgyiUL56&MtZh}_-8Mk?oX+}#?wOROE1Ie2N$PvMpDkdZGm9C@;u( z4}XI)-t~XUc!&Ff$k%U&mnRrNTx$V~mIU=R}OB}!e=wc$Ssud(;0G(??Mt}FxWF&%Xb&Icj=Fb0HsLod`8}xjQ3Y`$$zMGsehx+ zxr@5W*Fs{J!6<|A=YI1I&k^>BX5b3; zcCGTwO4wX}SP7BQf0}66g6XbI#VK4!d)=PFtC2+{8zar75$fv4_&1VmP6gerPLnOZpHRI#ZhDBNk%}(l z(qOlB1*YOVlFk}L_s*DVUV~Z;eau!dStDF9XCT1)N4yMt_UPx2oKe2j#sxVXZu8CX zU(nEn6V-%i<93xjUk?^DfD+?A%1CO9j3ET3BOtGr=6C?r)a8OatSPoP1gaLN%NC)m zKG+DG!JCPL+D3prkrc2TNejm=76h+ zUD@8>+ff6ab~`X|SKWO6p^Vj!Yj#z+uDy({_E7pY9gv@s197l_>uLvFCxX9h>eshC znJM0y&EgSfakr6(?ldAFgZ zt8>R>MUPoV@;y8Gs)gR;-Tel7(a&s0AKW;FqQ<^kc+~Ad>IiN zYexd?oTi~VpPFE6?$QD_TcBlqOs}ng3UM67R(<>SE%P-uY80SLl_yAf3z?@H=;;k@ zqgZjBKrD0IS~px~LTYpmf4auY+s4SqsIWg??i3%~a#_-&eY|G;#pLAU2|^BrAh@-) zwRstSib}$ytM-$sgM6&yeL_CvY1FlK^&3bZ;xCa34$8uIc6PI1kRc2X)nz$_g`p?+ z0E+XY48W{9N`o`(rD17+CrzhqC4o@$ZICMt_HlwROlMeY?q{y)>G}Z}X$Ke0Uowh_Tti5+760{%7JaLL35k|3IvU!sD7`4vD$Kq`4##TeGJ+^#Uh5EpHeXzy1O9r-P-P)H zF}xFCj^n8JfatNmu?60X@xVmx8L<1TDk3r)X@C%fvI>5bh5oj6(%6WU*N@-#3!Wf> zl|IG14P?Lbj5isf^H6D(Rr+bAHyHV_6KHwYQ#NU;x#~Sm(r<%2GyBF^z2C%m8x+f5 z+8zWf4zNP=bPe)EXhth%_d+woLS{Zv12NY+2OU?lM{LH+!Y%jrFU1{INidD>1Z zx-+busZ&4HP|3kLwPq2jR$U(jTE9dBg7pH#kIiED+Sl8j3@$Bj`9ryisjgyxYgQDx zXd@*T+K-T>Fc!dG_>*A1VB)bUVV^cq;j&X6(J4!$N(>yK*tb8^lPRykD_XY;Qx@5- zu6J^;gX&H!6gp9sh3N-(k5{93b6+(=jOxN}S+`3dKYC`TZoNlk^YR9M%xz;J&D9d# zTL^_$JraibMim0EsfYTf5-+4Am9PmSyQ>hdDOEF3RcVm>;VYB@nMhQJAA)zq<^10X0d3M1Y`eQ1hp{n^5m|)Wng69r?Yn~dCwJdC5!-316 z7VphnuVb}cu$%h%B)qLTljgqo*s)YDB_hb#Sp%50{%P8>vNF+mwV{40SyFDCoPtVteo}n1sQi&YWNhissb5=zEf97SbnAd+UerR zrgc65m^HFxZ7s<{AJo@0aI?pw+*1cRSxLnfGr2oMHpxz|YF2~n$Y-6OieHS#@gEoN zz4f*8jtLEITmcuYXi~-4X%mY3H}5G?KB4)c_$gx{=2TCiRF&h(tJ-Aap#kN-;c8SK z(;%p<$Wibj2&~{_csRXe27m%;mD5(d+Fb}ka+n0*B9U21`3qqm{WAlU^ufrkVybsR zO=WcjB&=^?*Y1=7?`r(hI0S6+DG~(Rdo*G#<8=TAL}}o#3O7x4dQFKK08Xfwvf^@PkvjKmwejAT0G0;PBzyGH-THQ zritFNHAt;s8bbpS`H4Gy^xe0H!`mk^)^H$W9n1*YH@JXDtnXV3*w7B$rC39P>#3f^ z^Dz%G$HpRFbb1obIh=-@(J-37dRdcLYW*y;>(ISsYejSQ6jKd^o$`WS%-GJT07mTm z8RA$rb{!_hUT-&`rsN&FSG6~7?myliK)W1Tca-~6Cv_JlfGv2!cc&vCEJ!G>3=Uso zbaQFre17PvU{8tgks0*-01C6zg&Ek9_AARB)t$%_ktcN8tt2R5$8k+vWCH9o)47Kk zcqSC83ABmj6p8QdcAC=z%lrNUI;b?+bs_``%R2;B68Q>ZZEaZ1rGZ;a(N9 zsf0~v2cI~DLHYLkf;K1e-cnhR+J>pKu_$^Iivs*8ZQ}6seQN!aILwFkEpRq08)Q{C z`2yNfd_SJHn!wy=4*83-QAr%1uxh7!zerbqaM5V#J`UxSbMZzEoVV+>h@!_(JqzpL zDuLxi?@5@RoIzA^gcpd0YwPCp!joaCjGs+@6kpBfqp`)>lEHk#;(DGA?PGzI zj+FkAI9O)87sbMVG=dvRInGL7Bb0XzFscZOL6u(^9we8!7l=RIe_!Q8sTYQGc({c6 zv|ce;c8@Eb_1z71SG(j;&@rZ_ZCWcwa7&2`%|}#DtU+dgR@N*%JK$ttHDbhx-EY!; z_B?vuCNM+?#lsA|W}f>z?TUR`GKmj)s1;SC>2f8t`5Kb){91Ua!2(U8qWlL%pnu`< zDd~4R*bORuc4r&wxhH&kPi0xM!Ywe%wt#Jxz-@DUdc$+ics8>N1<!=9#f--DgqCTpLqqm9uBE*6-B(qer}EKB$75M}28e zI61xYYHA)AY3T}ylZ&fax{wWXwy3E$0^FxjEno$XHK2Dg8o7@KvzdVRE#HL;7erUT zIgW>)jB_b)bmXg@42%lZ^YAPVC15_xn^zkYIM1cPIudu>S!`TmZ##h+>`8OxsIZS4 zRcU8yDB^0e4qkna3|{malRImXKFVribv+f*8=I)kf?<1qHV!0NKM^si^h8$Sl7=vwu&PMl!RB?*lnaVe3Io z{Rr<`l5AV5G7*He$`(&bf(kR`$M?@+A2#~S?&pdks7D@9QN2EEof^HhBRYKFoMWSe zAP}3cqv$ALy4JH%`9%L&d~8|MzE9QagLa9;w_CR7p6hn!08}%b)X>l1EG|%O76sJZ z78(osQcSQ%A%3i_(7prNDu^g9DOoPg0d2btrqU=KluKNA{#4n|H_Rrk@A`UsdY+o4 ziRv4b+3T4?7lzxMe(FvLwnOg@yhF`fEz&5tLd-2e=v%;qP!Z{ayT4d$NP6X6^xW$d z37u=}&z~QL)>SF)N1fz!F7RekAud#ffIuaQYPN|rj*dn}kpXFKojEphYp9v`DA`#o zV2abeUO-@bmUx=S-wA}L6^uNQo~D?{gTcX51fh@J^fTdFXVF|H+adx2T`%9U-r2lm z^vn%mSuj%hs{B+% zL&Ie=p<$7<^3!V=6qH45Uk`X01gqS?Q0}a5Irh_;3t7LitQ&0^+?y8-`p#S?@YYAZ z;hQvYImcy|Q-x1B!4?fg1}le9&$O}j((KD+O**r4)a?>H!u zehp#C$jF$50PaJ}BtGRt0c$8#X<5lg^d*cBm5HH%c}Z_B;#S z9!@S?TIlF`F`~`C)_9_P*a0Q->tSxU&Sas9eNnOb>sMk0yQU+PmW!8PLbcw{slf)N zx()}CGNs1TW(C{bj?%urJ68=yf|DYkGykd_gC9(F6)Hd9`ycigJ|nwOEHiT;=8Z{{ zX^naNOkUG_Q^%Xz@X&d2)?WNG=u%0%|Kg%2O0)Aua86~CH@vn}j}>}WDTxY*@xhTg z&5QLdxcjK=xpDZH5a@!ayq3xxtns?bmI}t3HLJuhK{4KN0XLU!5hR~K={tZ4TZ2%~ zEI8LI+kwXl%BN)xwnB|6pO^=FM}PpgjakG`!0+h*R+vQ;Sa;x`O966V7Wm_QY=t>F zMH{2F-ojQCT|>jcC6Oy&Z^HYiD36~9w}*y?W`XDV^zac5YR)1!p9=W5@WBBE(&YaB z{GT$7r^kDuu6$rMB7$?e2-u2jT{M>uk9d^65i zk)qHBOF3K|>yRYu2*4&u$howFC#g~5wKD0y;N+6}iz>y&%fllG6}LM;KXuIf;Iq`z zpYJrxpK)|En{OI^_w*lsXwo*y)0&>0-EzyUZWN+lf~(Mcr}FXb5Ijm1jjlEV2D^)G zb$)(3h?_OFCrT15t*zq#^73y81Vf^}3DLPA2u{wUeHK6_3m%MFT3N+DfBxKh<0cvmwgh*i=O+y%FxKP?r^Cz(oo&A>IBT!`B=9+iu}2YJK2X^M21P$-J-JsS%^ z)+;oyY}|8FYa#1nYB&Kz2Tu81F(>Ph!?5C3Um4c`);YGB4b$#x)awurxNq}-IE^C% zD)fWBiZsgSF>7_)HU;WrVaT~+0s;bVZxMm}1(g#zi44oIW5fkw8oQ(DPOA<@bvV>$ zcFRC9o-64Ja|sdPSv58>25~(Dd;$DJl``-9PYs-?LK}rVTTeCFBM`(|XFzBB4hT#H zB>-0SGi!^S1=PZervL`g;lB@-!H7gaCHLjKMeMgYQ|xxV!0>64jKHB|p;ushfjVl)Ajx zgIZy6&FS$E?nvhthxeYTcuWQ3HZW?fWi0zkknip$(qZZa*TGO^;PeHd^!soLMInP% z1~>)I0&jT=Em)GJ?+@P04*JdD-r+>n+#q^e`P94?o5rS6^{3%0LEo-(uz5q6Ew$Mm zNUk>nN$T382m9oM;pJf|pI)f|!ZhH%*cBE~*1%rR zI&uzB_ITEA&xw!UH*Vur4RIUo%Z+2X(c^ppzVkhtYaos=NN2n;d57c;i09eYnE~R* zar3)C71%m8{8GC=uTOj-wPt3aKyj+2I@8P>L=To?uqJXqzseuUZI%?i2eW};UB7wx zv*m%e7EctOa|Ntn8DqxLmL>0~$j9uwnnUc3>yV@G+-K^`EI3!aW+g|?LPSqs-r!Sf z+|r~>yQHGpC$@-+Yf8yxj@{&cpL*0{GQY%%G;2L^u^^GL-WS9POVnu$^FargH}$gfei{plA>Vc5+02U^LE2APxB8 z)NI0`%+|?5>}{7jas88*VWQ}U%3XUpOxEWe?}+hK*;jjyAP!YJ_|(ir_JL75H686P zZB(Vq=-xv2iK?UNnjgbSeGz)F@Mrkn?i&!ERsW0f7%0)6%bTaPT zxeeCuv=cs^&7g?4k)F*-oZU1F|Icc7u10cK`) zcDTIzcEGp{MUX_%4SSJ7VNA)>He$Mkl(`1QxYJ22XgUdvLcYjr6oA|rmTQ5vUh||@ z?0M3Jjy#$n-dCis1Y*&H1raS7Y`F^9cI)7Q zywS;75u+?>#O>9zA!_xVZ1wy6qvsgrP9?7;-Hab^6{I5a+fJ;eC{!w-3FDJ2zGkc- zvAx~VIZ^l5c|hI5{e`FG=R)S}$BZZYcnwcjDdq)^8{g5pIe;4NapgLGqX!yLE$p1c z6t1LTP!lfsf=Hj=wEVAL1XpJ9l5Osld!E;AV+o(w2TIQtO~iO>c8iarIksZjJ|X0Z ziN-{#6<=x{p%mfwXA9=YGay|r3_j68x4xt)NC%9LxQSal3;DgVt>}J!KFUQD^FgHs zT{5BPiQ#PGSy*@rP}Ke*_*B-RQo9J&$69wMaHpS~Pvt#g_L=r#E?$F^(Z2Dn4M2yH z8=8+CnysaI$tFJX(U;}H2$H7_P^ft%&J;Tf_*kYbwV617GC^oo32^Gyqhq2@(c_j}$ks058qn(f@H3M#2ojR9KbRdmXiyO9P5HsRz4 zylGs{A$8&^Q|{d!@Kf{>@g-hwJa?1@NF0?{KY-sF1oiJYr8!0T&Q$~Zkh$6R+*y%Y z(Jjqa3e9&NDw^BCZnmWd+&;FBbZ;2tpSXK05d-Rr z54+=LhOg^gD*Pn{y?6?5Q@a#TcKRNqcS)J7WANidSxKzksPZz*6ZpIRM>Irzr{-Jl z)wrAidkBl|qmM2l(#Cj^l+`?AVYu7d=%ppc8pj3Dz4JL%Frzzm={3iq7oY8iW2%=q zHcCtHOc1hz^#Bo;$pFZsFF^x3G{%n}aJpk$Rdbq6bdx7g>&E-r*^BEO_ldH&H3iMY zoU>?I+25e5AG@E5KYhi(p-@ibhAEKnPM-a4Q?wl?0y5I5C4_~0Np4X~Q%ui2E8-hg z=*uReS$y1)FBu!kftP$eTk*2!CqCn!uyJ}m6X|~3nmX5dCrE1}5J_jQN!l(M6|Xvf zoID9Xtb5m_#?DTMwy+fNFRxEs?;IalISJpeBM4APrmYf)!UDg8{jkyFP9yVNNT;oN z=ZTNMW*Ng|ZrlF5E+0%|#;ZfRi{d^EP!=pC0`+A@H=H1bOWb1Czqx zB{kWUWw9>PRyX=u_qP=9WM3@`1E^G&m9?WfEU&trxgssK`p0IVW$&F}kk`h5&K9-V zh(_fp=35^v#&RSO**1JUyeoV#7;ea&rm&`YYRV4G1qRNFt|z_eiIiI|ps$|z>5;2a z+%(_c26hBR0P5Fm86`{r|F!bXpa6qP`hsG7+Uw%7=9+F=bK|~y@oy`&Y{%lkF3Dgj zDq|JA+s7PkD?*L6$v$5V1;@zi}gyPU0syh2Bh8qA2sT+k4-lW%Bg1$u2Ax|=od((|pis`U*n zifO#TOG+-x43w@>eFbTx_<;2YpQi@4>{LYBKa1?Ca6J=%nBW|diNZAU81hLM}H^k@$fiNa2!gNA)tFbXN-?q34>GrPb z9VL}-d(XI=aVH_fF1wz=a}QM}k~xX|jb|*@t`lowuYPN{ds_X9Rgf>i08rDsAF<41c^3mvS{Uol)3Ub+?+nxMi{W#iRr9?D7q4b<<(5Q)S zAXw@3Si_JA28f~{r6Ve{x2~fcgiUoQ<2=~v@`K>flI`(#T*jq#;=Vx3>_L{8wPdu4 zf&V=UP<7pb!NVL%=<6FqgPi-2`S4Xq$q^8SPtve^CdycqJV=-!2}SeYQhC#|_rrnZClzp%tl6D8`(pbgdd)#yzX$xpHoAPl zxscj;WUA!M*Vdfbhr<<0EY&*vjwUW_{RDR83b0_ytML6gibTGxIhg}HW&uQkCN5El zNOwhgy7%JM<02Gt?7XCYhUu)jQrqqjBO6-4O1u8uNY~|9iMv+X0;UpKMOouz^mFv| z=zp)@@7yUpTOFdLp&bHD_rXGZ5k2VvXgv$|RF z`T4hWG&Rp|VL-ZH)ZQIP^ATxu@|&O_AM*X>G>g@>wPkTMj0&D-GyW*EEVVsR$gcOa z&igePo(S~H6`WdUdTLI@cDVSgmONoT$5SPB@yH%jqy~x3L?sm!;eYJ!RNFJVcD{A( z|DW@H>VL=irXTu$b-v{_6A^v1Btk9$D@xdbc5h)iAgw+7O(e4m~ef)^A@tTiSNY5bI#ivo0kvGf3B~t=3y_! zVmqPToDd8l%>DT3^LR&91Draw)xYTP4$!`{TP!s%j=Q+_mA5bkY68?_HWsX)ei@sT z*I8;2%JPVqb1LXN%;_glNFp7ak=y`D{+~qn^M%vw>%Sd2@c`?6ufM601UjY zf(t^H4}+?aA(q%Dq>b<4kDD7dT*LWDv`%AAg_doggk6-wUs(!j*D6)_Kr>ZW6$(?v@3-BhQ z={r3t0z>Y7@}6z|CZSDXD7E@ku+DZ+(5m7IaIjy3#Y>*n&(NJ{)2Z&2lQ4Zql9Xmy~5=TrS~ z_R7iuzNBxGJWSP5p=wNT9#)@{(+J0dy&>(OX|)tsC-3A`poZ3&1z(*<+xi&5ti$F+ zqVj$TWVT}ZPe34Z_3aY7*&*`w_#A+}u}0%XocF=HvWjfQsU7rKh;5{QW|5Oi3`G0Y{|x#Pfcs(@#c%Zv{EjknfGtNFz%)*O~c~TS&A_ZbD6O{Q#hYSQ@8vqpZ%}% zVXi8BZXQwauVuD-ZV|$q+YQ2sJrCkOoZ;=5*{c^zD(Pjk!3rwcygl_^0&+tLCvfz| zeKq>!W%OlWbG!YqU&}aQ$lz#)x0UJXU(};Pf#-d}XTA&dXb#3!eRCJiu^g^EGzWVs zk12gO2%jwfEJgQ*Kdn`Ar7>TW3U+eXj>~kkvwgJtb0y58?+C#`UjR-?9WQE1*Z_To zIr9--Vp8q$*-Uku^TxIXHM~$*OpK6J`2A2>{LXn#lbaIf`oIl>np*7PN0oy?>*gU` zpLC^5v|BLBdA~6;r#cH8^@VeNI5#u)1|i7ir?Qa{i)Wt37e1sIowLDEhheR@bcJ1+ zw_&f_Yr;0hbNQz0@-<|@5ZF9mf9e{ABXE@SGN+}u1rF*!CCam^d>I!+2J1NFMs*s{ z>0LK?S=RLMaerD;?QDU{GYNw!5&**nSw742gju)8v^eO{p}|%g*Hdt#Wwcr+YW<>K zXv797sv7&}P{Dh6M#6@Iu5lavye&~OrNvRe&OQc`7(3az_Z)2dZ$#inrPgo3`4y828--L(ua|Mi|6{Za9-~+&66`II<=uN zN8Vi-!mV-~vS!D43YOeuIx;Kg!dtxok=C?+iVZx!QH1w92};kJHyqQyfou-n(Z!To zP8)cWpiIZc>JSs(qVS%EQt*@-b+Yz7WSF5Gz-7h&kOSZ=!#>L#JcP9NV4OYrbz?d* zGu<#?2-me&?D?Ym*YI@fFd^WC|nNQ$cJEZcfEV`UjQhEP5WvJlWIDP-*u4>7H&+qW)WVu<(kQ-`--(%1wB#GPhJz#c4D7RX@2HRke&u#(5Ow zB(QSX4ZY6qgSX)HZqeef8!69U+ z*iS&><4mEz@hr&%JZ`41xGL<}<31AudefLC5C8G6A5L3xt=!D-J4E$+Orac>HtUSZ z8yC~p30X(0gsn0>E}E3O=aL3uYUs%EvUxTl7}eMnQnSPdeBv2{Tmks2(GvRUTz7GNl% zR({hfY?>5|G1#ff=+PE!;#2yviCV_}<3TSIl) zb-upV5qOs?4rO=|)UvfKw!_%qaYDoLv9-*duiHOIb41w@JIRWR8Cm~6^KewdB)-_G z3Pw_%>Bw%j`KFt@Zi14W$XHeVg!P%oEPb|xjMw4sq2DSMEDQDU*Q^KwsVhppsKc;xL=nR*1oCXVGs1*wnH_gZlpSPT13*Ptt9dkxn+bYTD39rj*W{ z868{ik_Kmdpe=*h3vZP`ec5af5rBuDvN={6Yviyr5zXuJg^m4y*FxIZ|Mzo+3?44o zHDiMoT|yPuUHe>@UFU^M2h1Xofegd0YL`k(w=61h>ISDTQA@cD_`iBr)|VIcBC;<} zC8(oc9<%(CKQ7w&N^}tI(qldfc(wi|vaw+P?;;!YS${@0r2mX;e0;;K{cj>0%Zf2y z?gpnhxHG94xa%NvtOn+mgD+>D_WE9-nqNb_{9P?`jb`sD36oiTD^2TLWQUBwCCqXK zHeax@3I>D{$Maz?naKNDPJ?4E!^ZtvB_7qrB`uEqd^**_CGgCGGA5;SXic)zIbEBZ z{s>LYM_>`{PRj&+>X*H5g)T1Lz^z&Yb^B!!!g(}xE9E2dj;xKf^)S3M+^1IV2gyU{ zF5<)H&guu3kj{530GCr3B#i ztefrZv|!llD~-I!|F4nRa@)(@J=O=arz%b>=d^2Jcj|c}y_E(s)ep$muBAF`8=173 z5>$`V6F?w{-H$iVq}6gfsbT_J{|3yIxF2PE{xy$29hMwO%$*8A4}^pDZ#})e@vy8P z)fg%1B^_v-2ys$V-`^MS_nQ=kIo|oyWv*5fJoPTIy*`Fjyy9G{1FeR$=5l5DCjyhARlT~ct4j=IgYlL zA1RYiGqEPdnO%*qmcBO@k3Zb9?;AkB%v5mWRNldo3Nm?<%yhFw@wMa&!36e%n1AE;EfsDx02L@M@gi)l>9*2YeOuh<=8 zP-~oj&c9O!1@ib`i6XkS3-%25@%CYUWebWWTR#ug%;d_;`xNlhS5|6$A(tX%tH^P0 z+ITzCULL5k_TISZku#t)QEogfuJbZp1yeDytWzTd#X_h+>f=8R{r*QkmSUo1U|_Sb zxOgO#myb^byr?4JrhXelG!#qbp#9-k1WwuFFv#ybJO&tgVj$>e4VF;wC4s4n5NH9U zfqQ=_ADATH_9Tx7-&}+IcEE{`1*UAw*4msHrp~P1_lB5Q^zjoQ{`1a}V+_y_n_Nc&ue96dE+Hd$nV2+yp3Q+#zz!rDMAL($GH-8#4Q9rDV9xUhkk201pTB(f$?r*dYtZ&9Jt9rL%Sd_0F0col1__9py}+j9}L@os9u0)^6-3@vM~rUR&lKHk&#xw{t*Z1Sb zA?UIx5FsMnsz+$7LxO4O7WDw{4_i5dpNPX$POI80^WndlM23 zG&mqO2l8A!1kg+1A9}|=nALn_l7f<35AP8hV#_nx+<+**0M3TcCiOgjtm_Kcix&&V zcEjk%{yI-Gq6F+IbDwHDvm^0dgnZJ6h))%jqJ#cEdPX$h;(&=+Nzhkr)qSvC&Zwy3 z0a32EPq%QPZwmaA4YsUuus4O`8&ha$7!1~T6Ga8`S68V5CUgWtmTwtO-3P0TqAiv# w|I0`0S4iuB$YX!x-TrTW-0yKs9vu1k-S^2Ni6;}>iKvwBt1DpT9zFkm0M1j^wEzGB literal 38404 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%0DV64r@8^1WrjKn-pL28W93(N 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 Date: Fri, 15 Nov 2024 16:37:08 +0100 Subject: [PATCH 15/27] fix size of overlay drawable Signed-off-by: alperozturk --- .../android/utils/DrawableUtilTests.kt | 12 ++--------- .../owncloud/android/utils/DrawableUtil.kt | 21 +++++++++++-------- .../owncloud/android/utils/MimeTypeUtil.java | 6 ++---- 3 files changed, 16 insertions(+), 23 deletions(-) diff --git a/app/src/androidTest/java/com/owncloud/android/utils/DrawableUtilTests.kt b/app/src/androidTest/java/com/owncloud/android/utils/DrawableUtilTests.kt index 5958ff4ef6..d750163270 100644 --- a/app/src/androidTest/java/com/owncloud/android/utils/DrawableUtilTests.kt +++ b/app/src/androidTest/java/com/owncloud/android/utils/DrawableUtilTests.kt @@ -12,18 +12,15 @@ import android.graphics.Bitmap import android.graphics.drawable.BitmapDrawable import androidx.test.platform.app.InstrumentationRegistry import org.junit.After -import org.junit.Assert.fail import org.junit.Before import org.junit.Test class DrawableUtilTests { - private var sut: DrawableUtil? = null private var context: Context? = null @Before fun setUp() { - sut = DrawableUtil() context = InstrumentationRegistry.getInstrumentation().context } @@ -32,18 +29,13 @@ class DrawableUtilTests { val bitmap: Bitmap = Bitmap.createBitmap(2, 2, Bitmap.Config.ARGB_8888) val drawable = BitmapDrawable(context?.resources, bitmap) - val layerDrawable = sut?.addDrawableAsOverlay(drawable, drawable) + val layerDrawable = DrawableUtil.addDrawableAsOverlay(drawable, drawable) - if (layerDrawable == null) { - fail("Layer drawable expected to be not null") - } - - assert(layerDrawable?.numberOfLayers == 2) + assert(layerDrawable.numberOfLayers == 2) } @After fun destroy() { - sut = null context = null } } diff --git a/app/src/main/java/com/owncloud/android/utils/DrawableUtil.kt b/app/src/main/java/com/owncloud/android/utils/DrawableUtil.kt index c8aa15fb5a..d7469b0979 100644 --- a/app/src/main/java/com/owncloud/android/utils/DrawableUtil.kt +++ b/app/src/main/java/com/owncloud/android/utils/DrawableUtil.kt @@ -7,12 +7,12 @@ */ package com.owncloud.android.utils -import android.graphics.Rect import android.graphics.drawable.Drawable +import android.graphics.drawable.InsetDrawable import android.graphics.drawable.LayerDrawable import androidx.core.graphics.drawable.DrawableCompat -class DrawableUtil { +object DrawableUtil { fun changeColor(source: Drawable, color: Int): Drawable { val drawable = DrawableCompat.wrap(source) @@ -21,13 +21,16 @@ class DrawableUtil { } fun addDrawableAsOverlay(backgroundDrawable: Drawable, overlayDrawable: Drawable): LayerDrawable { - val overlayBounds = Rect() - val overlayIconSize = backgroundDrawable.intrinsicWidth / 2 - val topMargin = overlayIconSize.div(2) - overlayBounds.set(overlayIconSize, overlayIconSize + topMargin, overlayIconSize, overlayIconSize) + val overlaySizeFraction = 0.1f + val baseWidth = backgroundDrawable.intrinsicWidth + val baseHeight = backgroundDrawable.intrinsicHeight + val overlayWidth = (baseWidth * overlaySizeFraction).toInt() + val overlayHeight = (baseHeight * overlaySizeFraction).toInt() - val layerDrawable = LayerDrawable(arrayOf(backgroundDrawable, overlayDrawable)) - layerDrawable.setLayerInset(1, overlayBounds.left, overlayBounds.top, overlayBounds.right, overlayBounds.bottom) - return layerDrawable + val insetLeft = (baseWidth - overlayWidth) / 2 + val insetTop = (baseHeight - overlayHeight) / 2 + + val insetOverlay = InsetDrawable(overlayDrawable, insetLeft, overlayHeight + insetTop, insetLeft, insetTop) + return LayerDrawable(arrayOf(backgroundDrawable, insetOverlay)) } } diff --git a/app/src/main/java/com/owncloud/android/utils/MimeTypeUtil.java b/app/src/main/java/com/owncloud/android/utils/MimeTypeUtil.java index 4f8bbd860d..a9c835ffe1 100644 --- a/app/src/main/java/com/owncloud/android/utils/MimeTypeUtil.java +++ b/app/src/main/java/com/owncloud/android/utils/MimeTypeUtil.java @@ -175,16 +175,14 @@ public final class MimeTypeUtil { return folderLayerDrawable; } - DrawableUtil drawableUtil = new DrawableUtil(); - Drawable overlayDrawable = ContextCompat.getDrawable(context, overlayIconId); assert(overlayDrawable != null); if (isDarkModeActive) { - overlayDrawable = drawableUtil.changeColor(overlayDrawable, R.color.dark); + overlayDrawable = DrawableUtil.INSTANCE.changeColor(overlayDrawable, R.color.dark); } - return drawableUtil.addDrawableAsOverlay(folderDrawable, overlayDrawable); + return DrawableUtil.INSTANCE.addDrawableAsOverlay(folderDrawable, overlayDrawable); } /** From d137b7102456a912a7c091564990722d32957c2d Mon Sep 17 00:00:00 2001 From: alperozturk Date: Fri, 15 Nov 2024 16:58:38 +0100 Subject: [PATCH 16/27] fix file thumbnails Signed-off-by: alperozturk --- .../owncloud/android/utils/MimeTypeUtil.java | 31 ++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/owncloud/android/utils/MimeTypeUtil.java b/app/src/main/java/com/owncloud/android/utils/MimeTypeUtil.java index a9c835ffe1..0db732aa0c 100644 --- a/app/src/main/java/com/owncloud/android/utils/MimeTypeUtil.java +++ b/app/src/main/java/com/owncloud/android/utils/MimeTypeUtil.java @@ -11,6 +11,8 @@ package com.owncloud.android.utils; import android.content.Context; +import android.graphics.Bitmap; +import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.Drawable; import android.graphics.drawable.LayerDrawable; import android.net.Uri; @@ -19,6 +21,7 @@ import android.webkit.MimeTypeMap; import com.nextcloud.android.common.ui.theme.utils.ColorRole; import com.owncloud.android.R; import com.owncloud.android.datamodel.OCFile; +import com.owncloud.android.datamodel.ThumbnailsCacheManager; import com.owncloud.android.lib.resources.files.model.ServerFileInterface; import com.owncloud.android.utils.theme.ViewThemeUtils; @@ -144,6 +147,17 @@ public final class MimeTypeUtil { return determineIconIdByMimeTypeList(possibleMimeTypes); } + /** + * Returns a drawable representing a file or folder. + *

+ * + * - For folders: Returns a folder icon. If an overlay is needed, it includes an overlay icon on the folder. + * + *

+ * - For files: Returns the file's thumbnail if it exists. Otherwise, it provides a thumbnail based on the file's MIME type. + * + * @return A drawable for the file or folder. + */ public static Drawable getOCFileIcon(OCFile file, Context context, ViewThemeUtils viewThemeUtils, boolean isAutoUpload, boolean isDarkModeActive) { Drawable result; @@ -151,7 +165,22 @@ public final class MimeTypeUtil { Integer overlayIconId = file.getFileOverlayIconId(isAutoUpload); result = MimeTypeUtil.getFolderIcon(isDarkModeActive, overlayIconId, context, viewThemeUtils); } else { - result = MimeTypeUtil.getFileTypeIcon(file.getMimeType(), file.getFileName(), context, viewThemeUtils); + if ((MimeTypeUtil.isImage(file) || MimeTypeUtil.isVideo(file)) && file.getRemoteId() != null) { + Bitmap thumbnail = ThumbnailsCacheManager.getBitmapFromDiskCache(ThumbnailsCacheManager.PREFIX_THUMBNAIL + file.getRemoteId()); + + if (thumbnail != null && !file.isUpdateThumbnailNeeded()) { + if (MimeTypeUtil.isVideo(file)) { + Bitmap withOverlay = ThumbnailsCacheManager.addVideoOverlay(thumbnail, context); + result = new BitmapDrawable(context.getResources(), withOverlay); + } else { + result = new BitmapDrawable(context.getResources(), thumbnail); + } + } else { + result = MimeTypeUtil.getFileTypeIcon(file.getMimeType(), file.getFileName(), context, viewThemeUtils); + } + } else { + result = MimeTypeUtil.getFileTypeIcon(file.getMimeType(), file.getFileName(), context, viewThemeUtils); + } } return result; From 64443475cba3362b262595e3a5ba72e9e925d9c6 Mon Sep 17 00:00:00 2001 From: alperozturk Date: Fri, 15 Nov 2024 17:29:09 +0100 Subject: [PATCH 17/27] fix addDrawableAsOverlay Signed-off-by: alperozturk --- .../owncloud/android/utils/DrawableUtil.kt | 28 ++++++++++++------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/app/src/main/java/com/owncloud/android/utils/DrawableUtil.kt b/app/src/main/java/com/owncloud/android/utils/DrawableUtil.kt index d7469b0979..08a226d05a 100644 --- a/app/src/main/java/com/owncloud/android/utils/DrawableUtil.kt +++ b/app/src/main/java/com/owncloud/android/utils/DrawableUtil.kt @@ -7,8 +7,8 @@ */ package com.owncloud.android.utils +import android.graphics.drawable.BitmapDrawable import android.graphics.drawable.Drawable -import android.graphics.drawable.InsetDrawable import android.graphics.drawable.LayerDrawable import androidx.core.graphics.drawable.DrawableCompat @@ -21,16 +21,24 @@ object DrawableUtil { } fun addDrawableAsOverlay(backgroundDrawable: Drawable, overlayDrawable: Drawable): LayerDrawable { - val overlaySizeFraction = 0.1f - val baseWidth = backgroundDrawable.intrinsicWidth - val baseHeight = backgroundDrawable.intrinsicHeight - val overlayWidth = (baseWidth * overlaySizeFraction).toInt() - val overlayHeight = (baseHeight * overlaySizeFraction).toInt() + val containerDrawable = LayerDrawable(arrayOf(backgroundDrawable, overlayDrawable)) - val insetLeft = (baseWidth - overlayWidth) / 2 - val insetTop = (baseHeight - overlayHeight) / 2 + val overlayWidth = overlayDrawable.intrinsicWidth + val overlayHeight = overlayDrawable.intrinsicHeight + val backgroundWidth = backgroundDrawable.intrinsicWidth + val backgroundHeight = backgroundDrawable.intrinsicHeight - val insetOverlay = InsetDrawable(overlayDrawable, insetLeft, overlayHeight + insetTop, insetLeft, insetTop) - return LayerDrawable(arrayOf(backgroundDrawable, insetOverlay)) + val scaleFactor = 2f / maxOf(overlayWidth, overlayHeight) + val scaledOverlayWidth = (overlayWidth * scaleFactor).toInt() + val scaledOverlayHeight = (overlayHeight * scaleFactor).toInt() + + val left = (backgroundWidth - scaledOverlayWidth) / 2 + val top = (backgroundHeight - scaledOverlayHeight) / 2 + val topMargin = 2 + + containerDrawable.setLayerInset(1, left, top + topMargin, left, top) + (overlayDrawable as? BitmapDrawable)?.setBounds(0, 0, scaledOverlayWidth, scaledOverlayHeight) + + return containerDrawable } } From 93bc3076406fd8bff3a29217c8371abbf6777874 Mon Sep 17 00:00:00 2001 From: Andy Scherzinger Date: Sat, 16 Nov 2024 12:06:33 +0100 Subject: [PATCH 18/27] ci(tests): Update screenshots Signed-off-by: Andy Scherzinger --- ...pfolderListFragmentIT_showGroupfolders.png | Bin 6036 -> 5897 bytes ...FragmentStaticServerIT_showFolderTypes.png | Bin 20922 -> 20911 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/app/screenshots/gplay/debug/com.owncloud.android.ui.fragment.GroupfolderListFragmentIT_showGroupfolders.png b/app/screenshots/gplay/debug/com.owncloud.android.ui.fragment.GroupfolderListFragmentIT_showGroupfolders.png index 2d2571f8dd055f6d6a46f4130bd8734db5b0b800..939279deac257ab028412cdbf02630ed263e1b8f 100644 GIT binary patch delta 3446 zcmZved0bNI+s1LqtW3+ytPB|Aoffs6#$0m2s3|K`$1F2VozXU2LMmKPI1RmxCMwh0 zVrmLyYU+rgCZ-}SB9`NZ`vxkhh%161pzu4+pTBp`Kj(9vbDnd~{XExoeeWmM4-fr` z0JgWC`5AQ~wtr^mA;x5E*M||ctB(2jR)Y=gZ`${_(?VXgL-v&I|M`kv%IPSbO~*g& zNh(YF&HJj+FIx_M%}?6@iygT!f7=$_jg9glHSx=fc>l8jZ=d+)?29`Q@0jhw_(I80 zwqyV+Q(XpMc7&!JE=gGaVf9S9m2$XY2g-g=19(L<14mA^rT#PWUjqoyqx1`UnZIp? zw23!7{(bWafcQha+&8bpL~oZZA@5JKWvJ5TntU4b^&8AU<-wubO$R4O65*buYzRHE43akF`s(JKx4PNbQx;!EPb@*AqD zQue~cjn99Pz$;6&eOdGUoBToq+*u=|E5NiS||^Y{kk~%hGR% zspo#p$k_Se&i8jF@b_WG{lZ4av`(SApNXOJ0sK@6uSl__)O`-rqXz%K%MVP0PPe)! z2Ct#uj(2b3#f1fDT~8#q(79`lkvHJ$@ojIl80O2g^cS4av6r{b4QE-19{5R!GEw`o zBnwlQp^{B@yqP1X*Fcd8Ri_%m$z9@0D!kHG=5U;nOMu+;Mrm*3PND}WeM*LR<@8U6N}krN9Y6@ z(N?W>+QY|Q)yyyj`2r%KF1f7b#mo-&O}B2iN3(aVV&GZPG;-9$#o1ibu>-#EdyucJ zJwMy`*xrR~k>Ov#dN@LVeCYNzjvXWN1s)?Biy#?7nzzZSgUTw00Y;kQH%fXjr=BbE zOPD!T8({#dDTl_k86j6_2EH!e2-N3`e+r*f?GiX$|1?1Y3?cRwqA>}5N)<~;o|=9T zf=dYBtjcpw=RGvuw?KuoS&)M0@~I}X^R+=NIg%dJW@%|DO_qim%?-ik+KE44Yr107 zt76@%N1MaNTQOE0tawE@-Vkzgfrcq@_$7068(tZ@=z&eH`)4*cW#?o0%s@;a2?=`j z2mqG8PJs|XD&EkT&uU6c(x6Vh!h8!!G+mG&^-zIMcX#XT>gt*VU2YX=jA^eXsO7sD zsgXT@UG@=b#Mo9@EJXnZ5xatrRIY3^qW zRJn*(v+o9#@XYHoH}cZdMpZ8(v_sUM+fhIzW(E-!yLO={!1will!FWcfB1s8_ah+f zMo!#b?G?$hO2~SZhq26o2mR^l>B-sa*t_cK^44d36;3+dj8@DJ8LVT0d9Q3l)(3X) z`Ab5%zXda+8cPozr+_!JN()TY6vPUj6+fYSXADINS1|%5FsUTYNai30Bpg%sU~&NS z)RJ%_3CQ|d|Hu(S;@>nFIyQ#)bdK>!>JUEO>rrI1wA1GLw_h8)@%7F}w#oW?n8HTn z>?dC*5mqa!nhAUFph~0WI*YK?z-ax$yvVOq#B3i-4Yv)ukYj{6^^Mw$i-yn-h+g{D zcfT-h?YoeFF5~|&ZRZ2(ZTSN(pI|+?rF%sZfI4rNLt9|O@bkkTZG+5UXFA@$U-C8l0W0Dre?0r{r)-wiy5Y~$Vf?CQ9VuL3*p89Hq6Dd zHC@l;J7|G~d@>GuHMqWd$=?~1bdn%>0oquw5g%?+Ko1=Wc%KwyYdLPp7p!f36Ta4N`7B1ZRevx!SJLmc$O&OuLKp4FhlWG4Ld=5* zA(AVMUOJsnA5u*=wN}mO4v!mvEyT^o*;`>iP;WWYBC^Dx?F|}D)F>y8gf^tyogI9? zo#h3oqNCu4@!r+!DW}vNhB5o5x3=B#68&6cf5n*s&+M>v_1b$=+hr!&!m6U@%!)VG zm&^Vqb;sd7+!*goyv-2#P%9{)Q7z3}Y|x(g_}I62B8 z8_XI*{I9m@vFzqDN&NG#kkQk|{Kwdi#1n~zdFt63YZrNMD7y2F_bTlt zf7gTUKS}5-yH*G~8!c*kiT>93s1WQZ&>!yUOn!Qxe`#RXlkB^H#IEw>C~{qSyc-1#u(L zuXLl|3FB8;p#+&19-)vAU<$ylYMfFNGnYg8Bs^WWMSnQCW0qtHhVku?!~DhdDlo33 z6F3hL$x=JDV$KT;xE9K4Z{d;cXuG0O&n?1$#WnY6J%=TOJqVFg^mHS&)Q_=eW`J4R z@C5!S5p28?Tv)69QJT|iBUOLZZ{LCJZ6GlxI|_P0trrGY-#q|zindDKX|oreXIfNT z>@!dq*}=h*b?|RvxS)}S8LT?YjTx%OO)g1ag zb*zSVd)yUQs$HbNVZ2qcnM2gCjS zq1PdBD7|~v*W+h~8*tLmU3jH89=8~r7u5qG@$Af%HIN>2(ZBN(T=T&XG}Do^sZs1f z)?s~7NLH_%C(B-T+ivxh8}WhGmjmY6eq8liZc|sts4&*5E*cS3xenBgSDPSX{-nP) z@|vccu8YBC*v1f2=b$ztcfhG;CbEUt9sozEMRIWR;|#~3HXT~V{r}I*j+ShvmFWs}WX9sGu-n}fOsHCgtVlj`TtG`UuJJuFZ4)$vKxo#9yxx|pX een-VNt?m(%vx9xbKaD`ZG5G1PDy8~e=Z@C!rQHiH8;!pPX6NoH@mc{S076XtWZQzr(Uqcg3%a38eSIjXlO^hM`a21~O>%Ek5a;6)3 zQC*FBwAmV3pJ=*2;t1aZMt>+>o%L_RFVZDfSdyVoLaDDL3-Tgn$T#r z^G3OM(FY)^#5uucb&-$w^WnqilrUDvY4(O_`b>ZYATKXY`~V&f(20}%)vST~OP?Ae zmJMAJMOUwZumm!aZe?!paf|ef6sTl8d3`+ZI(?g^-#`FNi^P2vbE9=V$@h?A|`=Y|`) zeD*?sk3?q2%@7SWE#r6XJ1m}GaA&W4F=!2eYMD5l4Q0u$r9$~W*TeV>eDZ!J9g+0$ z;hW|o$s6(^hFjo0 zQ84@XnSr?3YU&kIx$9;Jd5*s!1XCW}7n7$m!a)E0{C0;0x0{K@5U1oKg3 zHmcG0;+D)?V@gvO&1sry$He4)LB68JaT*I)k)NO7WvrG;U%U|6p1(Pt}WGex_ zpkvX}`9#E}ggLxNNK3u%D&M|hD0<*M=Bs$U;yW3VL*d2V&mB(weC9sfpsS;f?0p7= z?<~P}W*&@}{GRKWa5zDZgr#V;d6|mTMd>q&;uj{n2^%xM#v1_^iY>%_TCdz%LRp)$ zq*m`%xikXEkw04;B0qayq6a~?J|(gWsPd=uCA4Li&G1{PCXK>O9^Oz?)pj;}ts6Ok z0GfO)vWrA#qQ@GR9Untavq<-$C?;MQKo0O{D-n07z$bG0qR(_b2~CSZEi{M&%yTp2 z3#3*FAWW*oMbO@2$JLB_QAS<;I)T2DzXmuhR4xAEh*Y~hs{>wG?Iveih^gt}1%8^| zH=DiC4D=;#fW=_7<+8&iHY~U)JIlm5SM~$M!IQmWJGhd=tE>V@2|>E6f}Cl4#bWnb znYwggghsLLA)QFV;F3<@E(mT^3HQYc)8p3faDq=I)p}0$6p>~QLx`tSin~&Q(O(-_ zS<#h5!uErE{>;mBIK`gqev~uOQxvp_Q8D=rznt{3%N#)5N~SUPCAE3>&cD@?etmN% zBKYiHm!8!s65|vqc^!R`(A?bYgjdKUX=s62AT^TbXVyrboB31~5sZS@Jc5=8UC>RWi?ZaR*j!1Aw~rnT zUfa7XWwbhodL5?d_d$FdRD8?vsbexW7HD?Zr7v?c;Sqx`-!A|eUC*>Y`ooL4Vcd&r zO>;A)DK6IrDnuZKmxC1UNSDr39ZG?=?&?_Sv=0GU=B%GzF5Z-NWW`gA?{pjf%dRO0 zFLtO;!k4z+(y9tON9QRlm!P#N4p{T07igGIJ4GS%L^MvkyQa?IVkS!KSW^9L9lEQI zB$?yp(1GIOXoOgV6HVPOI^b_C!g?WcyAYu+QIkjlU2cd&@<+}x+H5U(n zBxCtA`fa61Vxw1JH6aWZKIWVnTO5h{Aa9_-Cxx;&Egxm#PF%~X81wy0W0Zk0HZ@{oagJRd{ z0meTQ=nDcO^G57DneX?2>MlF}nC;V&44Z-k$FpzZx-2zJ4f+H0Sh3cfz>{euWz_*} zH1_dX1CA?8JB*co&eAVKDNg2&WsO%M_`HLe%dQE)`8rcR#ZIm{Pcl_v5RBJeAugG^HcY1u)Xp;UC*Kn zRM_V$lPnI+3v#s)so>16>@;3EHc+xXXS9&FW$c)} z(5jG&*2W0sAaj(1;`v<7G^ti+wKK!894!8FWU6ZE#W#PHHUg2nG6sI5?B-<8r&nH( zwXQ9)YZI@5d){U+C%fFsJeV<-DTI!J(H(8W$g}TKAf{a#0 z5)fm*Q^6a43b4_7foh7`ZQ_#T2xNjh%=2KK^Y<^$wGJvfo?-BV6C@=Wp27g}v0_AU zYP`;!JIBQf{Tl2eho6HD%kxlX78*Axl&%lFI76vry2r|-s~#JYMOIG|!Im4k6OBg4 zN9jRS=(?%NU=o3=%G-I}#~zQkByX-+&BOv#e${;uB)T7#7YL}h01<(nG|YUR&Y;x!{tJ-yHb}@U_G8{mRSaa z1kxB|c1Ikjd5I|@ec{0~2yDpA=ZG5^XPZ7>9s#$%j(O=(fc>Cu9OSAwl5n)7!llUC z@Via}{}gJljsN1Lh97KMHJnd_1)azA+7Ct#6~V>*qY6}-_24#erz*0n_&v6?23g465>H=JMq z*4GF7&^Lh)_k;>&n@9}3uPP=0q{fwP#y0J~;E%;8eQN>?y|ZZ#u~xb1=+L47YRx+h zCy3qY|5tqbL5<$j2Z8I%=}P@Cd1Y?#7nog8I?B!{Q$(!Pz32NB^J}8FnjSb4Mf_Tquh!)= zZ+6}cu>`ZtN6*}Isa3n}qlu`}>{IwqMc=@avHTN+TkjFf(q6sX%dA_~o&|RMB1f7( zDO?~93ID>utKDjU-JWfN0e_@gcOa_+$a|~^MP&(WnP>1m+f|j3Z)nm;wg5k^%w+v+>d+zQgiHYDgOZ1qoL0L diff --git a/app/screenshots/gplay/debug/com.owncloud.android.ui.fragment.OCFileListFragmentStaticServerIT_showFolderTypes.png b/app/screenshots/gplay/debug/com.owncloud.android.ui.fragment.OCFileListFragmentStaticServerIT_showFolderTypes.png index 5403225f8ec548acc63425e0cb78808f2c25f137..2cac83f41d885ffc6d02b00aebf92f780b2c197b 100644 GIT binary patch literal 20911 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 literal 20922 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 From e10f3b1afd1b80e7309a5d0ed36f98808bfc4630 Mon Sep 17 00:00:00 2001 From: alperozturk Date: Wed, 20 Nov 2024 11:58:20 +0100 Subject: [PATCH 19/27] solve git conflicts Signed-off-by: alperozturk --- .../com/owncloud/android/ui/adapter/OCFileListDelegate.kt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/app/src/main/java/com/owncloud/android/ui/adapter/OCFileListDelegate.kt b/app/src/main/java/com/owncloud/android/ui/adapter/OCFileListDelegate.kt index 16f5f15e73..3f8543dda2 100644 --- a/app/src/main/java/com/owncloud/android/ui/adapter/OCFileListDelegate.kt +++ b/app/src/main/java/com/owncloud/android/ui/adapter/OCFileListDelegate.kt @@ -385,6 +385,10 @@ class OCFileListDelegate( @Suppress("ReturnCount") private fun getShareIconIdAndContentDescriptionId(holder: ListViewHolder, file: OCFile): Pair? { + if (!MDMConfig.sharingSupport(context)) { + return null + } + if (file.isOfflineOperation) return null if (holder !is OCFileListItemViewHolder && file.unreadCommentsCount != 0) return null From c8510275bbac1cb5886005ae796cdf42337824d9 Mon Sep 17 00:00:00 2001 From: alperozturk Date: Wed, 20 Nov 2024 12:01:45 +0100 Subject: [PATCH 20/27] add comment for topMargin Signed-off-by: alperozturk --- app/src/main/java/com/owncloud/android/utils/DrawableUtil.kt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/app/src/main/java/com/owncloud/android/utils/DrawableUtil.kt b/app/src/main/java/com/owncloud/android/utils/DrawableUtil.kt index 08a226d05a..fcd2434c1b 100644 --- a/app/src/main/java/com/owncloud/android/utils/DrawableUtil.kt +++ b/app/src/main/java/com/owncloud/android/utils/DrawableUtil.kt @@ -34,6 +34,9 @@ object DrawableUtil { val left = (backgroundWidth - scaledOverlayWidth) / 2 val top = (backgroundHeight - scaledOverlayHeight) / 2 + + // Icons are centered on the folder icon. However, some icons take up more vertical space, + // so adding a top margin to all icons helps center the overlay icon better. val topMargin = 2 containerDrawable.setLayerInset(1, left, top + topMargin, left, top) From cbd2b64e0dc59ca1d795a68c3dc9b1be1e71e07d Mon Sep 17 00:00:00 2001 From: alperozturk Date: Wed, 20 Nov 2024 12:39:48 +0100 Subject: [PATCH 21/27] add rounded corner to the thumbnails Signed-off-by: alperozturk --- .../com/nextcloud/utils/extensions/ViewExtensions.kt | 9 +++++++++ .../owncloud/android/ui/adapter/OCFileListDelegate.kt | 7 +++---- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/com/nextcloud/utils/extensions/ViewExtensions.kt b/app/src/main/java/com/nextcloud/utils/extensions/ViewExtensions.kt index 3717f72697..c024fd4f65 100644 --- a/app/src/main/java/com/nextcloud/utils/extensions/ViewExtensions.kt +++ b/app/src/main/java/com/nextcloud/utils/extensions/ViewExtensions.kt @@ -18,6 +18,15 @@ fun View?.setVisibleIf(condition: Boolean) { visibility = if (condition) View.VISIBLE else View.GONE } +fun View?.makeRounded(context: Context, cornerRadius: Float) { + this?.let { + it.apply { + outlineProvider = createRoundedOutline(context, cornerRadius) + clipToOutline = true + } + } +} + fun createRoundedOutline(context: Context, cornerRadiusValue: Float): ViewOutlineProvider { return object : ViewOutlineProvider() { override fun getOutline(view: View, outline: Outline) { diff --git a/app/src/main/java/com/owncloud/android/ui/adapter/OCFileListDelegate.kt b/app/src/main/java/com/owncloud/android/ui/adapter/OCFileListDelegate.kt index 3f8543dda2..00254dfc15 100644 --- a/app/src/main/java/com/owncloud/android/ui/adapter/OCFileListDelegate.kt +++ b/app/src/main/java/com/owncloud/android/ui/adapter/OCFileListDelegate.kt @@ -21,7 +21,7 @@ import com.nextcloud.client.account.User import com.nextcloud.client.jobs.download.FileDownloadHelper import com.nextcloud.client.jobs.upload.FileUploadHelper import com.nextcloud.client.preferences.AppPreferences -import com.nextcloud.utils.extensions.createRoundedOutline +import com.nextcloud.utils.extensions.makeRounded import com.nextcloud.utils.mdm.MDMConfig import com.owncloud.android.R import com.owncloud.android.datamodel.FileDataStorageManager @@ -307,9 +307,8 @@ class OCFileListDelegate( R.color.bg_default } - gridViewHolder.itemLayout.apply { - outlineProvider = createRoundedOutline(context, cornerRadius) - clipToOutline = true + gridViewHolder.itemLayout.run { + makeRounded(context, cornerRadius) setBackgroundColor(ContextCompat.getColor(context, itemLayoutBackgroundColorId)) } } From c0b3ec8b808624aa70d04ca873666c2edeffa727 Mon Sep 17 00:00:00 2001 From: alperozturk Date: Wed, 20 Nov 2024 13:06:06 +0100 Subject: [PATCH 22/27] fix video overlay placement Signed-off-by: alperozturk --- .../owncloud/android/utils/MimeTypeUtil.java | 42 +++++++++---------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/app/src/main/java/com/owncloud/android/utils/MimeTypeUtil.java b/app/src/main/java/com/owncloud/android/utils/MimeTypeUtil.java index 0db732aa0c..7404c33d16 100644 --- a/app/src/main/java/com/owncloud/android/utils/MimeTypeUtil.java +++ b/app/src/main/java/com/owncloud/android/utils/MimeTypeUtil.java @@ -159,31 +159,31 @@ public final class MimeTypeUtil { * @return A drawable for the file or folder. */ public static Drawable getOCFileIcon(OCFile file, Context context, ViewThemeUtils viewThemeUtils, boolean isAutoUpload, boolean isDarkModeActive) { - Drawable result; - if (file.isFolder()) { Integer overlayIconId = file.getFileOverlayIconId(isAutoUpload); - result = MimeTypeUtil.getFolderIcon(isDarkModeActive, overlayIconId, context, viewThemeUtils); - } else { - if ((MimeTypeUtil.isImage(file) || MimeTypeUtil.isVideo(file)) && file.getRemoteId() != null) { - Bitmap thumbnail = ThumbnailsCacheManager.getBitmapFromDiskCache(ThumbnailsCacheManager.PREFIX_THUMBNAIL + file.getRemoteId()); - - if (thumbnail != null && !file.isUpdateThumbnailNeeded()) { - if (MimeTypeUtil.isVideo(file)) { - Bitmap withOverlay = ThumbnailsCacheManager.addVideoOverlay(thumbnail, context); - result = new BitmapDrawable(context.getResources(), withOverlay); - } else { - result = new BitmapDrawable(context.getResources(), thumbnail); - } - } else { - result = MimeTypeUtil.getFileTypeIcon(file.getMimeType(), file.getFileName(), context, viewThemeUtils); - } - } else { - result = MimeTypeUtil.getFileTypeIcon(file.getMimeType(), file.getFileName(), context, viewThemeUtils); - } + return MimeTypeUtil.getFolderIcon(isDarkModeActive, overlayIconId, context, viewThemeUtils); } - return result; + if (!(MimeTypeUtil.isImage(file) || MimeTypeUtil.isVideo(file)) || file.getRemoteId() == null) { + return MimeTypeUtil.getFileTypeIcon(file.getMimeType(), file.getFileName(), context, viewThemeUtils); + } + + Bitmap thumbnail = ThumbnailsCacheManager.getBitmapFromDiskCache(ThumbnailsCacheManager.PREFIX_THUMBNAIL + file.getRemoteId()); + if (thumbnail == null || file.isUpdateThumbnailNeeded()) { + return MimeTypeUtil.getFileTypeIcon(file.getMimeType(), file.getFileName(), context, viewThemeUtils); + } + + Drawable background = new BitmapDrawable(context.getResources(), thumbnail); + if (!MimeTypeUtil.isVideo(file)) { + return background; + } + + Drawable videoOverlay = ContextCompat.getDrawable(context, R.drawable.video_white); + if (videoOverlay == null) { + return background; + } + + return DrawableUtil.INSTANCE.addDrawableAsOverlay(background, videoOverlay); } public static Drawable getDefaultFolderIcon(Context context, ViewThemeUtils viewThemeUtils) { From 633d8de28cafe1e2f7e5588bfd245bd168ab23de Mon Sep 17 00:00:00 2001 From: ZetaTom <70907959+ZetaTom@users.noreply.github.com> Date: Thu, 21 Nov 2024 09:57:43 +0100 Subject: [PATCH 23/27] Fix exception when closing choose storage location dialogue - read storagePath from shared preferences - check if storagePath is null Signed-off-by: ZetaTom <70907959+ZetaTom@users.noreply.github.com> --- .../owncloud/android/ui/activity/SettingsActivity.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/owncloud/android/ui/activity/SettingsActivity.java b/app/src/main/java/com/owncloud/android/ui/activity/SettingsActivity.java index 77d2675752..b4de48361d 100644 --- a/app/src/main/java/com/owncloud/android/ui/activity/SettingsActivity.java +++ b/app/src/main/java/com/owncloud/android/ui/activity/SettingsActivity.java @@ -799,6 +799,8 @@ public class SettingsActivity extends PreferenceActivity final PreferenceCategory preferenceCategoryGeneral = (PreferenceCategory) findPreference("general"); viewThemeUtils.files.themePreferenceCategory(preferenceCategoryGeneral); + readStoragePath(); + prefDataLoc = findPreference(AppPreferencesImpl.DATA_STORAGE_LOCATION); if (prefDataLoc != null) { prefDataLoc.setOnPreferenceClickListener(p -> { @@ -978,7 +980,7 @@ public class SettingsActivity extends PreferenceActivity } else if (requestCode == ACTION_SET_STORAGE_LOCATION && data != null) { String newPath = data.getStringExtra(ChooseStorageLocationActivity.KEY_RESULT_STORAGE_LOCATION); - if (!storagePath.equals(newPath)) { + if (storagePath != null && !storagePath.equals(newPath)) { StorageMigration storageMigration = new StorageMigration(this, user, storagePath, newPath, viewThemeUtils); storageMigration.setStorageMigrationProgressListener(this); storageMigration.migrate(); @@ -1128,6 +1130,12 @@ public class SettingsActivity extends PreferenceActivity editor.apply(); } + private void readStoragePath() { + SharedPreferences appPrefs = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()); + // Load storage path from shared preferences. Use private internal storage by default. + storagePath = appPrefs.getString(AppPreferencesImpl.STORAGE_PATH, getApplicationContext().getFilesDir().getAbsolutePath()); + } + @Override public void onStorageMigrationFinished(String storagePath, boolean succeed) { if (succeed) { From 46b56c43f791c73846024681d41c35fae16e1eb2 Mon Sep 17 00:00:00 2001 From: Nextcloud bot Date: Mon, 25 Nov 2024 02:56:28 +0000 Subject: [PATCH 24/27] Fix(l10n): Update translations from Transifex Signed-off-by: Nextcloud bot --- app/src/main/res/values-fr/strings.xml | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index cf024e69ad..9e2b2faeae 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -35,6 +35,13 @@ Paramètres avancés Autoriser le repartage URL de base + Désactiver le Presse-papiers + Désactiver l\'introduction + Désactiver les logs + Désactiver les sites externes + Désactiver le Multi-comptes + Désactiver le partage + Nom d\'hôte du proxy Port Proxy Affiche un widget du tableau de bord Recherche dans %s @@ -55,6 +62,7 @@ Tâche supprimée avec succès Impossible de récupérer la liste des tâches, veuillez vérifier votre connexion Internet. Supprimer la tâche + Le résultat de la tâche n\'est pas encore prêt. Impossible de récupérer les types des tâches, veuillez vérifier votre connexion Internet. Assistant Inconnu @@ -360,6 +368,7 @@ Ce nom de fichier existe déjà Supprimer Erreur lors de la récupération de l\'activité du fichier + Aucune application disponible pour sélectionner des contacts Impossible de charger les détails Fichier Conserver @@ -387,6 +396,7 @@ Autorisations d\'accès au stockage %1$s fonctionne mieux avec les autorisations d\'accès au stockage. Vous pouvez choisir un accès complet à tous les fichiers ou un accès en lecture seule aux photos et vidéos. %1$s a besoin d\'autorisations concernant la gestion des fichiers afin de téléverser des fichiers. Vous pouvez choisir un accès complet à tous les fichiers ou un accès en lecture seule aux photos et vidéos. + Autoriser l\'accès à partir d\'autres applications Vérification de la destination… Nettoyage… Mise à jour du dossier de stockage des données @@ -397,6 +407,7 @@ Le fichier de destination n\'est pas modifiable Échec lors de la migration Échec lors de la mise à jour de l\'index + %1$s\n(%2$s / %3$s) Déplacement des données… Terminé Remplacer @@ -592,6 +603,7 @@ Aucune notification Veuillez revenir plus tard. Opération en attente + Opération de suppression en attente Aucune connexion Internet Même sans connexion Internet, vous pouvez organiser vos dossiers, créer des fichiers. Dès que vous êtes de nouveau en ligne, vos actions en cours sont automatiquement synchronisées. Vous êtes hors ligne, mais le travail continue @@ -654,6 +666,8 @@ Synchroniser Sauvegarde quotidienne de votre agenda et des contacts Sauvegarde quotidienne de vos contacts + Emplacement de stockage des données + Gérer l\'emplacement de stockage des données Erreur inattendue lors de la configuration de DAVx5 (anciennement connu sous le nom de DAVdroid) Le chiffrement de bout en bout est configuré ! Phrase secrète E2E @@ -760,6 +774,7 @@ Synchroniser avec DAVx5 Erreur lors de l\'obtention des résultats de recherche Le partage sécurité n\'est pas configuré pour cet utilisateur + Partage sécurisé… Tout sélectionner Paramétrer le dossier média Veuillez sélectionner un modèle @@ -803,6 +818,7 @@ Autorisations pour le partage %1$s (distant) %1$s (conversation) + Nom, identifiant de Cloud fédéré ou adresse e-mail… Envoyer un nouvel e-mail Note au destinataire Paramètres From 9e45aedc7aaa1f09adadfdc95e2db2000a5016af Mon Sep 17 00:00:00 2001 From: tobiasKaminsky Date: Thu, 10 Oct 2024 10:05:51 +0200 Subject: [PATCH 25/27] Warn when file extension is renamed Signed-off-by: tobiasKaminsky --- .../ui/dialog/RenameFileDialogFragment.kt | 16 ++++++++++++++++ app/src/main/res/values/strings.xml | 3 +-- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/owncloud/android/ui/dialog/RenameFileDialogFragment.kt b/app/src/main/java/com/owncloud/android/ui/dialog/RenameFileDialogFragment.kt index 0ca1cde470..bdedacdc75 100644 --- a/app/src/main/java/com/owncloud/android/ui/dialog/RenameFileDialogFragment.kt +++ b/app/src/main/java/com/owncloud/android/ui/dialog/RenameFileDialogFragment.kt @@ -37,6 +37,7 @@ import com.owncloud.android.ui.activity.FileDisplayActivity import com.owncloud.android.utils.DisplayUtils import com.owncloud.android.utils.KeyboardUtils import com.owncloud.android.utils.theme.ViewThemeUtils +import java.io.File import javax.inject.Inject /** @@ -178,9 +179,13 @@ class RenameFileDialogFragment : DialogFragment(), DialogInterface.OnClickListen if (isFileHidden(newFileName)) { binding.userInputContainer.error = getText(R.string.hidden_file_name_warning) + positiveButton?.isEnabled = true } else if (errorMessage != null) { binding.userInputContainer.error = errorMessage positiveButton?.isEnabled = false + } else if (checkExtensionRenamed(newFileName)) { + binding.userInputContainer.error = getText(R.string.warn_rename_extension) + positiveButton?.isEnabled = true } else if (binding.userInputContainer.error != null) { binding.userInputContainer.error = null // Called to remove extra padding @@ -191,6 +196,17 @@ class RenameFileDialogFragment : DialogFragment(), DialogInterface.OnClickListen override fun afterTextChanged(s: Editable) = Unit + private fun checkExtensionRenamed(newFileName: String): Boolean { + mTargetFile?.fileName?.let { + val previousExtension = File(it).extension + val newExtension = File(newFileName).extension + + return previousExtension != newExtension + } + + return false + } + companion object { private const val ARG_TARGET_FILE = "TARGET_FILE" private const val ARG_PARENT_FOLDER = "PARENT_FOLDER" diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index bbf49635e8..83c91ed75f 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1268,11 +1268,10 @@ Please select a server… Unread notifications exist Remove folder from internal two way sync - Two way sync not set up To set up a two way sync folder, please enable it in the details tab of the folder in question. Internal two way sync Disable for all folders - Pending Remove Operation + Renaming extension might make the file unusable From dc1d5dfa19e327412ab4dde53b56c4c26b19c971 Mon Sep 17 00:00:00 2001 From: Tobias Kaminsky Date: Thu, 24 Oct 2024 09:48:14 +0200 Subject: [PATCH 26/27] Update app/src/main/java/com/owncloud/android/ui/dialog/RenameFileDialogFragment.kt Co-authored-by: Tom <70907959+ZetaTom@users.noreply.github.com> Signed-off-by: Tobias Kaminsky Signed-off-by: tobiasKaminsky --- .../owncloud/android/ui/dialog/RenameFileDialogFragment.kt | 4 ++-- app/src/main/res/values/strings.xml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/owncloud/android/ui/dialog/RenameFileDialogFragment.kt b/app/src/main/java/com/owncloud/android/ui/dialog/RenameFileDialogFragment.kt index bdedacdc75..38c74ca57e 100644 --- a/app/src/main/java/com/owncloud/android/ui/dialog/RenameFileDialogFragment.kt +++ b/app/src/main/java/com/owncloud/android/ui/dialog/RenameFileDialogFragment.kt @@ -197,8 +197,8 @@ class RenameFileDialogFragment : DialogFragment(), DialogInterface.OnClickListen override fun afterTextChanged(s: Editable) = Unit private fun checkExtensionRenamed(newFileName: String): Boolean { - mTargetFile?.fileName?.let { - val previousExtension = File(it).extension + mTargetFile?.fileName?.let { previousFileName -> + val previousExtension = File(previousFileName).extension val newExtension = File(newFileName).extension return previousExtension != newExtension diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 83c91ed75f..60a5c33418 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1273,5 +1273,5 @@ Internal two way sync Disable for all folders Pending Remove Operation - Renaming extension might make the file unusable + Changing the extension might cause this file to open in a different application From 05e1d69f943f3de027b61a663b72d2cbf04b09f3 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 20 Nov 2024 17:23:36 +0000 Subject: [PATCH 27/27] fix(deps): update dependency commons-io:commons-io to v2.18.0 Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- app/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle b/app/build.gradle index 24590c04ab..a6432ec0e2 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -295,7 +295,7 @@ dependencies { implementation "androidx.fragment:fragment-ktx:1.8.5" implementation 'com.github.albfernandez:juniversalchardet:2.0.3' // need this version for Android <7 compileOnly 'com.google.code.findbugs:annotations:3.0.1u2' - implementation 'commons-io:commons-io:2.17.0' + implementation 'commons-io:commons-io:2.18.0' implementation 'org.greenrobot:eventbus:3.3.1' implementation 'com.googlecode.ez-vcard:ez-vcard:0.12.1' implementation 'org.lukhnos:nnio:0.3.1'