diff --git a/app/src/main/java/com/infomaniak/drive/data/api/ApiRoutes.kt b/app/src/main/java/com/infomaniak/drive/data/api/ApiRoutes.kt index 5cae1b3448..18b4dad992 100644 --- a/app/src/main/java/com/infomaniak/drive/data/api/ApiRoutes.kt +++ b/app/src/main/java/com/infomaniak/drive/data/api/ApiRoutes.kt @@ -422,8 +422,6 @@ object ApiRoutes { /** Others */ //region Others - fun upgradeDrive(driveId: Int) = "${SHOP_URL}drive/$driveId" - fun orderDrive() = "${SHOP_URL}drive" fun renewDrive(accountId: Int) = "${MANAGER_URL}$accountId/accounts/accounting/renewal" diff --git a/app/src/main/java/com/infomaniak/drive/data/models/drive/Drive.kt b/app/src/main/java/com/infomaniak/drive/data/models/drive/Drive.kt index 955ce2a62e..6b9b512edd 100644 --- a/app/src/main/java/com/infomaniak/drive/data/models/drive/Drive.kt +++ b/app/src/main/java/com/infomaniak/drive/data/models/drive/Drive.kt @@ -112,6 +112,7 @@ open class Drive( inline val isMyKSuitePack get() = pack?.type == DrivePack.DrivePackType.MY_KSUITE inline val isMyKSuitePlusPack get() = pack?.type == DrivePack.DrivePackType.MY_KSUITE_PLUS inline val isFreeTier get() = isFreePack || isMyKSuitePack + inline val isSingleUserDrive get() = isFreeTier || isMyKSuitePlusPack || isSoloPack inline val isTechnicalMaintenance get() = maintenanceReason == MaintenanceReason.TECHNICAL.value diff --git a/app/src/main/java/com/infomaniak/drive/utils/AccountUtils.kt b/app/src/main/java/com/infomaniak/drive/utils/AccountUtils.kt index ced6ba4971..bc0b21921f 100644 --- a/app/src/main/java/com/infomaniak/drive/utils/AccountUtils.kt +++ b/app/src/main/java/com/infomaniak/drive/utils/AccountUtils.kt @@ -276,12 +276,12 @@ object AccountUtils : CredentialManager() { fun isEnableAppSync(): Boolean = UploadFile.getAppSyncSettings() != null fun getPersonalFolderTitle(context: Context): String { - val isSingleUserDrive = getCurrentDrive()?.let { it.isFreeTier || it.isMyKSuitePlusPack || it.isSoloPack } ?: false - - return if (isSingleUserDrive) { - context.getString(R.string.localizedFilenamePrivateSpace) + val folderTitle = if (getCurrentDrive()?.isSingleUserDrive == true) { + R.string.localizedFilenamePrivateSpace } else { - context.getString(R.string.localizedFilenamePrivateTeamSpace) + R.string.localizedFilenamePrivateTeamSpace } + + return context.getString(folderTitle) } } diff --git a/app/src/main/java/com/infomaniak/drive/views/NotEnoughStorageView.kt b/app/src/main/java/com/infomaniak/drive/views/NotEnoughStorageView.kt index 78329c59af..f63a6c7e77 100644 --- a/app/src/main/java/com/infomaniak/drive/views/NotEnoughStorageView.kt +++ b/app/src/main/java/com/infomaniak/drive/views/NotEnoughStorageView.kt @@ -24,14 +24,13 @@ import android.view.LayoutInflater import android.widget.FrameLayout import androidx.core.view.isGone import androidx.core.view.isVisible +import androidx.navigation.findNavController +import com.infomaniak.core.myksuite.ui.screens.KSuiteApp +import com.infomaniak.core.myksuite.ui.utils.MyKSuiteUiUtils.openMyKSuiteUpgradeBottomSheet import com.infomaniak.drive.R -import com.infomaniak.drive.data.api.ApiRoutes import com.infomaniak.drive.data.models.drive.Drive -import com.infomaniak.drive.data.models.drive.DrivePack import com.infomaniak.drive.databinding.ViewNotEnoughStorageBinding -import com.infomaniak.drive.utils.AccountUtils import com.infomaniak.drive.utils.formatShortBinarySize -import com.infomaniak.lib.core.utils.UtilsUi.openUrl class NotEnoughStorageView @JvmOverloads constructor( context: Context, @@ -44,7 +43,7 @@ class NotEnoughStorageView @JvmOverloads constructor( @SuppressLint("SetTextI18n") fun setup(currentDrive: Drive) = with(binding) { currentDrive.apply { - val storagePercentage = if (size > 0L) (usedSize.toFloat() / size) * 100.0f else 0.0f + val storagePercentage = if (size > 0L) (usedSize.toDouble() / size).toFloat() * 100.0f else 0.0f if (storagePercentage > STORAGE_ALERT_MIN_PERCENTAGE) { this@NotEnoughStorageView.isVisible = true @@ -53,18 +52,13 @@ class NotEnoughStorageView @JvmOverloads constructor( progressIndicator.progress = (storagePercentage).toInt() title.text = "$usedStorage / $totalStorage" - when (pack?.type) { - DrivePack.DrivePackType.SOLO, DrivePack.DrivePackType.FREE -> { - description.setText(R.string.notEnoughStorageDescription1) - upgradeOffer.isVisible = true - upgradeOffer.setOnClickListener { - context.openUrl(ApiRoutes.upgradeDrive(AccountUtils.currentDriveId)) - } - } - else -> { - description.setText(R.string.notEnoughStorageDescription2) - upgradeOffer.isGone = true - } + if (isSingleUserDrive) { + description.setText(R.string.notEnoughStorageDescription1) + upgradeOffer.isVisible = true + upgradeOffer.setOnClickListener { findNavController().openMyKSuiteUpgradeBottomSheet(KSuiteApp.Drive) } + } else { + description.setText(R.string.notEnoughStorageDescription2) + upgradeOffer.isGone = true } close.setOnClickListener {