diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/reminder/DefaultSmsReminder.java b/app/src/main/java/org/thoughtcrime/securesms/components/reminder/DefaultSmsReminder.java index eb7888221e..df9305cf86 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/reminder/DefaultSmsReminder.java +++ b/app/src/main/java/org/thoughtcrime/securesms/components/reminder/DefaultSmsReminder.java @@ -2,13 +2,12 @@ package org.thoughtcrime.securesms.components.reminder; import android.annotation.TargetApi; import android.content.Context; -import android.content.Intent; import android.os.Build.VERSION_CODES; -import android.provider.Telephony; import android.view.View; import android.view.View.OnClickListener; import org.thoughtcrime.securesms.R; +import org.thoughtcrime.securesms.util.SmsUtil; import org.thoughtcrime.securesms.util.TextSecurePreferences; import org.thoughtcrime.securesms.util.Util; @@ -23,9 +22,7 @@ public class DefaultSmsReminder extends Reminder { @Override public void onClick(View v) { TextSecurePreferences.setPromptedDefaultSmsProvider(context, true); - Intent intent = new Intent(Telephony.Sms.Intents.ACTION_CHANGE_DEFAULT); - intent.putExtra(Telephony.Sms.Intents.EXTRA_PACKAGE_NAME, context.getPackageName()); - context.startActivity(intent); + context.startActivity(SmsUtil.getSmsRoleIntent(context)); } }; final OnClickListener dismissListener = new OnClickListener() { diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationActivity.java b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationActivity.java index df227b5fe5..e3999c1af8 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationActivity.java +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationActivity.java @@ -243,6 +243,7 @@ import org.thoughtcrime.securesms.util.MediaUtil; import org.thoughtcrime.securesms.util.MessageUtil; import org.thoughtcrime.securesms.util.PlayStoreUtil; import org.thoughtcrime.securesms.util.ServiceUtil; +import org.thoughtcrime.securesms.util.SmsUtil; import org.thoughtcrime.securesms.util.TextSecurePreferences; import org.thoughtcrime.securesms.util.TextSecurePreferences.MediaKeyboardMode; import org.thoughtcrime.securesms.util.Util; @@ -1129,9 +1130,7 @@ public class ConversationActivity extends PassphraseRequiredActivity @TargetApi(Build.VERSION_CODES.KITKAT) private void handleMakeDefaultSms() { - Intent intent = new Intent(Telephony.Sms.Intents.ACTION_CHANGE_DEFAULT); - intent.putExtra(Telephony.Sms.Intents.EXTRA_PACKAGE_NAME, getPackageName()); - startActivityForResult(intent, SMS_DEFAULT); + startActivityForResult(SmsUtil.getSmsRoleIntent(this), SMS_DEFAULT); } private void handleRegisterForSignal() { diff --git a/app/src/main/java/org/thoughtcrime/securesms/preferences/SmsMmsPreferenceFragment.java b/app/src/main/java/org/thoughtcrime/securesms/preferences/SmsMmsPreferenceFragment.java index 424c89e86a..f1ca8d1d30 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/preferences/SmsMmsPreferenceFragment.java +++ b/app/src/main/java/org/thoughtcrime/securesms/preferences/SmsMmsPreferenceFragment.java @@ -6,7 +6,7 @@ import android.os.Build.VERSION; import android.os.Build.VERSION_CODES; import android.os.Bundle; import android.provider.Settings; -import android.provider.Telephony; + import androidx.annotation.Nullable; import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentManager; @@ -16,6 +16,7 @@ import androidx.preference.PreferenceScreen; import org.thoughtcrime.securesms.ApplicationPreferencesActivity; import org.thoughtcrime.securesms.R; +import org.thoughtcrime.securesms.util.SmsUtil; import org.thoughtcrime.securesms.util.TextSecurePreferences; import org.thoughtcrime.securesms.util.Util; @@ -78,9 +79,7 @@ public class SmsMmsPreferenceFragment extends CorrectedPreferenceFragment { defaultPreference.setTitle(getString(R.string.ApplicationPreferencesActivity_sms_enabled)); defaultPreference.setSummary(getString(R.string.ApplicationPreferencesActivity_touch_to_change_your_default_sms_app)); } else { - Intent intent = new Intent(Telephony.Sms.Intents.ACTION_CHANGE_DEFAULT); - intent.putExtra(Telephony.Sms.Intents.EXTRA_PACKAGE_NAME, getActivity().getPackageName()); - defaultPreference.setIntent(intent); + defaultPreference.setIntent(SmsUtil.getSmsRoleIntent(requireContext())); defaultPreference.setTitle(getString(R.string.ApplicationPreferencesActivity_sms_disabled)); defaultPreference.setSummary(getString(R.string.ApplicationPreferencesActivity_touch_to_make_signal_your_default_sms_app)); } diff --git a/app/src/main/java/org/thoughtcrime/securesms/util/SaveAttachmentTask.java b/app/src/main/java/org/thoughtcrime/securesms/util/SaveAttachmentTask.java index 626bff4ac2..59ee73029c 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/util/SaveAttachmentTask.java +++ b/app/src/main/java/org/thoughtcrime/securesms/util/SaveAttachmentTask.java @@ -159,6 +159,8 @@ public class SaveAttachmentTask extends ProgressDialogAsyncTask 28) { contentValues.put(MediaStore.MediaColumns.IS_PENDING, 1); diff --git a/app/src/main/java/org/thoughtcrime/securesms/util/SmsUtil.java b/app/src/main/java/org/thoughtcrime/securesms/util/SmsUtil.java new file mode 100644 index 0000000000..019e5bfc27 --- /dev/null +++ b/app/src/main/java/org/thoughtcrime/securesms/util/SmsUtil.java @@ -0,0 +1,27 @@ +package org.thoughtcrime.securesms.util; + +import android.app.role.RoleManager; +import android.content.Context; +import android.content.Intent; +import android.os.Build; +import android.provider.Telephony; + +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; + +public final class SmsUtil { + + private SmsUtil() { + } + + public static @NonNull Intent getSmsRoleIntent(@NonNull Context context) { + if (Build.VERSION.SDK_INT >= 29) { + RoleManager roleManager = ContextCompat.getSystemService(context, RoleManager.class); + return roleManager.createRequestRoleIntent(RoleManager.ROLE_SMS); + } else { + Intent intent = new Intent(Telephony.Sms.Intents.ACTION_CHANGE_DEFAULT); + intent.putExtra(Telephony.Sms.Intents.EXTRA_PACKAGE_NAME, context.getPackageName()); + return intent; + } + } +} diff --git a/app/src/main/res/drawable/primary_action_button_background.xml b/app/src/main/res/drawable/primary_action_button_background.xml index 02cce1012b..63855710d8 100644 --- a/app/src/main/res/drawable/primary_action_button_background.xml +++ b/app/src/main/res/drawable/primary_action_button_background.xml @@ -1,5 +1,5 @@ - + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_backups.xml b/app/src/main/res/layout/fragment_backups.xml index fd4c9b4f9d..ee2d424553 100644 --- a/app/src/main/res/layout/fragment_backups.xml +++ b/app/src/main/res/layout/fragment_backups.xml @@ -157,7 +157,8 @@ android:paddingStart="16dp" android:paddingEnd="16dp" android:text="@string/BackupsPreferenceFragment__turn_on" - android:textColor="@color/core_white" /> + android:textColor="@color/core_white" + app:backgroundTint="?colorAccent" />