diff --git a/app/build.gradle b/app/build.gradle index 76f22adb..961d46d5 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -62,7 +62,7 @@ android { } dependencies { - implementation 'com.github.SimpleMobileTools:Simple-Commons:e5f2606198' + implementation 'com.github.SimpleMobileTools:Simple-Commons:5b5a6b083f' implementation 'com.github.tibbi:IndicatorFastScroll:4524cd0b61' implementation 'me.grantland:autofittextview:0.2.1' } diff --git a/app/src/main/kotlin/com/simplemobiletools/dialer/activities/SettingsActivity.kt b/app/src/main/kotlin/com/simplemobiletools/dialer/activities/SettingsActivity.kt index dcb65e0c..7d6e339c 100644 --- a/app/src/main/kotlin/com/simplemobiletools/dialer/activities/SettingsActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/dialer/activities/SettingsActivity.kt @@ -7,6 +7,7 @@ import android.os.Bundle import android.view.Menu import com.simplemobiletools.commons.activities.ManageBlockedNumbersActivity import com.simplemobiletools.commons.dialogs.ChangeDateTimeFormatDialog +import com.simplemobiletools.commons.dialogs.FeatureLockedDialog import com.simplemobiletools.commons.dialogs.RadioGroupDialog import com.simplemobiletools.commons.extensions.* import com.simplemobiletools.commons.helpers.* @@ -120,6 +121,7 @@ class SettingsActivity : SimpleActivity() { // support for device-wise blocking came on Android 7, rely only on that @TargetApi(Build.VERSION_CODES.N) private fun setupManageBlockedNumbers() { + settings_manage_blocked_numbers_label.text = addLockedLabelIfNeeded(R.string.manage_blocked_numbers) settings_manage_blocked_numbers_holder.beVisibleIf(isNougatPlus()) if (settings_use_english_holder.isGone() && settings_purchase_thank_you_holder.isGone() && settings_manage_blocked_numbers_holder.isGone()) { @@ -127,8 +129,12 @@ class SettingsActivity : SimpleActivity() { } settings_manage_blocked_numbers_holder.setOnClickListener { - Intent(this, ManageBlockedNumbersActivity::class.java).apply { - startActivity(this) + if (isOrWasThankYouInstalled()) { + Intent(this, ManageBlockedNumbersActivity::class.java).apply { + startActivity(this) + } + } else { + FeatureLockedDialog(this) { } } } } diff --git a/app/src/main/kotlin/com/simplemobiletools/dialer/adapters/ContactsAdapter.kt b/app/src/main/kotlin/com/simplemobiletools/dialer/adapters/ContactsAdapter.kt index 8968fc22..1383b3ae 100644 --- a/app/src/main/kotlin/com/simplemobiletools/dialer/adapters/ContactsAdapter.kt +++ b/app/src/main/kotlin/com/simplemobiletools/dialer/adapters/ContactsAdapter.kt @@ -19,6 +19,7 @@ import androidx.recyclerview.widget.RecyclerView import com.bumptech.glide.Glide import com.simplemobiletools.commons.adapters.MyRecyclerViewAdapter import com.simplemobiletools.commons.dialogs.ConfirmationDialog +import com.simplemobiletools.commons.dialogs.FeatureLockedDialog import com.simplemobiletools.commons.extensions.* import com.simplemobiletools.commons.helpers.PERMISSION_CALL_PHONE import com.simplemobiletools.commons.helpers.PERMISSION_WRITE_CONTACTS @@ -83,6 +84,7 @@ class ContactsAdapter( findItem(R.id.cab_remove_default_sim).isVisible = isOneItemSelected && activity.config.getCustomSIM(selectedNumber) != "" findItem(R.id.cab_delete).isVisible = showDeleteButton + findItem(R.id.cab_create_shortcut).title = activity.addLockedLabelIfNeeded(R.string.create_shortcut) findItem(R.id.cab_create_shortcut).isVisible = isOneItemSelected && isOreoPlus() findItem(R.id.cab_view_details).isVisible = isOneItemSelected } @@ -100,7 +102,7 @@ class ContactsAdapter( R.id.cab_delete -> askConfirmDelete() R.id.cab_send_sms -> sendSMS() R.id.cab_view_details -> viewContactDetails() - R.id.cab_create_shortcut -> createShortcut() + R.id.cab_create_shortcut -> tryCreateShortcut() R.id.cab_select_all -> selectAll() } } @@ -227,6 +229,14 @@ class ContactsAdapter( return primaryNumber?.normalizedNumber ?: numbers?.firstOrNull()?.normalizedNumber } + private fun tryCreateShortcut() { + if (activity.isOrWasThankYouInstalled()) { + createShortcut() + } else { + FeatureLockedDialog(activity) { } + } + } + @SuppressLint("NewApi") private fun createShortcut() { val contact = contacts.firstOrNull { selectedKeys.contains(it.rawId) } ?: return diff --git a/app/src/main/kotlin/com/simplemobiletools/dialer/adapters/RecentCallsAdapter.kt b/app/src/main/kotlin/com/simplemobiletools/dialer/adapters/RecentCallsAdapter.kt index 12b11b31..421a6091 100644 --- a/app/src/main/kotlin/com/simplemobiletools/dialer/adapters/RecentCallsAdapter.kt +++ b/app/src/main/kotlin/com/simplemobiletools/dialer/adapters/RecentCallsAdapter.kt @@ -11,6 +11,7 @@ import android.widget.PopupMenu import com.bumptech.glide.Glide import com.simplemobiletools.commons.adapters.MyRecyclerViewAdapter import com.simplemobiletools.commons.dialogs.ConfirmationDialog +import com.simplemobiletools.commons.dialogs.FeatureLockedDialog import com.simplemobiletools.commons.extensions.* import com.simplemobiletools.commons.helpers.* import com.simplemobiletools.commons.models.SimpleContact @@ -61,6 +62,7 @@ class RecentCallsAdapter( findItem(R.id.cab_call_sim_2).isVisible = hasMultipleSIMs && isOneItemSelected findItem(R.id.cab_remove_default_sim).isVisible = isOneItemSelected && activity.config.getCustomSIM(selectedNumber) != "" + findItem(R.id.cab_block_number).title = activity.addLockedLabelIfNeeded(R.string.block_number) findItem(R.id.cab_block_number).isVisible = isNougatPlus() findItem(R.id.cab_add_number).isVisible = isOneItemSelected findItem(R.id.cab_copy_number).isVisible = isOneItemSelected @@ -78,7 +80,7 @@ class RecentCallsAdapter( R.id.cab_call_sim_1 -> callContact(true) R.id.cab_call_sim_2 -> callContact(false) R.id.cab_remove_default_sim -> removeDefaultSIM() - R.id.cab_block_number -> askConfirmBlock() + R.id.cab_block_number -> tryBlocking() R.id.cab_add_number -> addNumberToContact() R.id.cab_send_sms -> sendSMS() R.id.cab_show_call_details -> showCallDetails() @@ -142,6 +144,14 @@ class RecentCallsAdapter( finishActMode() } + private fun tryBlocking() { + if (activity.isOrWasThankYouInstalled()) { + askConfirmBlock() + } else { + FeatureLockedDialog(activity) { } + } + } + private fun askConfirmBlock() { val numbers = TextUtils.join(", ", getSelectedItems().distinctBy { it.phoneNumber }.map { it.phoneNumber }) val baseString = R.string.block_confirmation