Skip to content

Commit 9f1effd

Browse files
committed
Drop blocked-writes toast and preserve locked-action header on freemium
1 parent 1bd13fa commit 9f1effd

File tree

4 files changed

+12
-51
lines changed

4 files changed

+12
-51
lines changed

presentation/src/main/java/org/cryptomator/presentation/licensing/LicenseEnforcer.kt

Lines changed: 8 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -21,41 +21,16 @@ import javax.inject.Inject
2121
class LicenseEnforcer @Inject constructor(private val sharedPreferencesHandler: SharedPreferencesHandler) {
2222

2323
enum class LockedAction(
24-
@StringRes val toastMessageRes: Int,
2524
@StringRes val headerMessageRes: Int
2625
) {
27-
CREATE_VAULT(
28-
R.string.read_only_reason_create_vault,
29-
R.string.screen_license_check_locked_create_vault,
30-
),
31-
UPLOAD_FILES(
32-
R.string.read_only_reason_add_file,
33-
R.string.screen_license_check_locked_upload_files,
34-
),
35-
CREATE_FOLDER(
36-
R.string.read_only_reason_create_folder,
37-
R.string.screen_license_check_locked_create_folder,
38-
),
39-
CREATE_TEXT_FILE(
40-
R.string.read_only_reason_create_text_file,
41-
R.string.screen_license_check_locked_create_text_file,
42-
),
43-
SHARE_NODE(
44-
R.string.read_only_reason_share_node,
45-
R.string.screen_license_check_locked_share_node,
46-
),
47-
RENAME_NODE(
48-
R.string.read_only_reason_rename_node,
49-
R.string.screen_license_check_locked_rename_node,
50-
),
51-
MOVE_NODE(
52-
R.string.read_only_reason_move_node,
53-
R.string.screen_license_check_locked_move_node,
54-
),
55-
DELETE_NODE(
56-
R.string.read_only_reason_delete_node,
57-
R.string.screen_license_check_locked_delete_node,
58-
);
26+
CREATE_VAULT(R.string.screen_license_check_locked_create_vault),
27+
UPLOAD_FILES(R.string.screen_license_check_locked_upload_files),
28+
CREATE_FOLDER(R.string.screen_license_check_locked_create_folder),
29+
CREATE_TEXT_FILE(R.string.screen_license_check_locked_create_text_file),
30+
SHARE_NODE(R.string.screen_license_check_locked_share_node),
31+
RENAME_NODE(R.string.screen_license_check_locked_rename_node),
32+
MOVE_NODE(R.string.screen_license_check_locked_move_node),
33+
DELETE_NODE(R.string.screen_license_check_locked_delete_node);
5934

6035
companion object {
6136
fun fromName(name: String?): LockedAction? {
@@ -138,16 +113,11 @@ class LicenseEnforcer @Inject constructor(private val sharedPreferencesHandler:
138113
)
139114
}
140115

141-
@StringRes
142-
fun defaultReasonRes(): Int = R.string.read_only_banner
143-
144116
fun ensureWriteAccess(activity: Activity, action: LockedAction): Boolean {
145117
if (hasWriteAccess()) {
146118
return true
147119
}
148120

149-
Toast.makeText(activity, activity.getString(action.toastMessageRes), Toast.LENGTH_LONG).show()
150-
151121
if (FlavorConfig.isPremiumFlavor) {
152122
return false
153123
}

presentation/src/main/java/org/cryptomator/presentation/ui/activity/LicenseCheckActivity.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ class LicenseCheckActivity : BaseActivity<ActivityLicenseCheckBinding>(ActivityL
5555
licenseContentViewBinder.bindPurchaseState(hasWriteAccess, hasPaidLicense)
5656
}
5757
override fun onTrialStateChanged(active: Boolean, expired: Boolean, expirationText: String?) {
58-
licenseContentViewBinder.bindTrialState(active, expired, expirationText)
58+
licenseContentViewBinder.bindTrialState(active, expired, expirationText, hasLockedActionHeader = lockedAction != null)
5959
}
6060
},
6161
priceLoader = { licenseContentViewBinder.loadAndBindPrices(application as CryptomatorApp) }

presentation/src/main/java/org/cryptomator/presentation/ui/layout/LicenseContentViewBinder.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,7 @@ class LicenseContentViewBinder(
137137
}
138138

139139
/** Updates trial-related view visibility based on trial state. */
140-
fun bindTrialState(active: Boolean, expired: Boolean, expirationText: String?) {
140+
fun bindTrialState(active: Boolean, expired: Boolean, expirationText: String?, hasLockedActionHeader: Boolean = false) {
141141
if (active || expired) {
142142
binding.trialButtonGroup.visibility = View.GONE
143143
binding.tvTrialStatusBadge.visibility = View.VISIBLE
@@ -147,10 +147,10 @@ class LicenseContentViewBinder(
147147
)
148148
binding.tvTrialExpiration.visibility = View.VISIBLE
149149
binding.tvTrialExpiration.text = expirationText
150-
if (expired) {
150+
if (expired && !hasLockedActionHeader) {
151151
binding.tvInfoText.visibility = View.VISIBLE
152152
binding.tvInfoText.text = context.getString(R.string.screen_license_check_trial_expired_info)
153-
} else {
153+
} else if (!hasLockedActionHeader) {
154154
binding.tvInfoText.visibility = View.GONE
155155
}
156156
} else {

presentation/src/main/res/values/strings.xml

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -55,15 +55,6 @@
5555
<string name="error_hub_not_trustworthy">Hub is not trustworthy.</string>
5656

5757
<!-- # read-only & purchases -->
58-
<string name="read_only_banner">You are currently in read-only mode.</string>
59-
<string name="read_only_reason_create_vault">Creating new vaults requires an active license.</string>
60-
<string name="read_only_reason_add_file">Uploading files requires write access.</string>
61-
<string name="read_only_reason_create_folder">Folder creation is only available with a license.</string>
62-
<string name="read_only_reason_create_text_file">Creating files requires an active license.</string>
63-
<string name="read_only_reason_share_node">Sharing files or folders is only available with write access.</string>
64-
<string name="read_only_reason_rename_node">Renaming requires write access.</string>
65-
<string name="read_only_reason_move_node">Moving files or folders requires write access.</string>
66-
<string name="read_only_reason_delete_node">Deleting files or folders requires write access.</string>
6758
<string name="read_only_reason_hub_inactive">Upgrade your Hub license to enable writing for this vault.</string>
6859
<string name="toast_purchase_revoked_refunded">Your lifetime purchase was refunded. You now have read-only access.</string>
6960
<string name="toast_purchase_revoked_subscription_inactive">Your subscription is no longer active. You now have read-only access.</string>

0 commit comments

Comments
 (0)