Fix SMS role bug introduced for pre-Q devices.

This commit is contained in:
Cody Henthorne
2020-10-30 17:45:28 -04:00
parent f84595e1e8
commit 6a4ce1b658
4 changed files with 12 additions and 23 deletions

View File

@@ -1,41 +1,30 @@
package org.thoughtcrime.securesms.util;
import android.app.Activity;
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;
import androidx.fragment.app.Fragment;
public final class SmsUtil {
private SmsUtil() {
}
public static void startActivityToRequestSmsRole(@NonNull Activity activity, int requestCode) {
/**
* Must be used with {@code startActivityForResult}
*/
public static @NonNull Intent getSmsRoleIntent(@NonNull Context context) {
if (Build.VERSION.SDK_INT >= 29) {
RoleManager roleManager = ContextCompat.getSystemService(activity, RoleManager.class);
Intent intent = roleManager.createRequestRoleIntent(RoleManager.ROLE_SMS);
activity.startActivityForResult(intent, requestCode);
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, activity.getPackageName());
activity.startActivity(intent);
}
}
public static void startActivityToRequestSmsRole(@NonNull Fragment fragment, int requestCode) {
if (Build.VERSION.SDK_INT >= 29) {
RoleManager roleManager = ContextCompat.getSystemService(fragment.requireContext(), RoleManager.class);
Intent intent = roleManager.createRequestRoleIntent(RoleManager.ROLE_SMS);
fragment.startActivityForResult(intent, requestCode);
} else {
Intent intent = new Intent(Telephony.Sms.Intents.ACTION_CHANGE_DEFAULT);
intent.putExtra(Telephony.Sms.Intents.EXTRA_PACKAGE_NAME, fragment.requireContext().getPackageName());
fragment.startActivity(intent);
intent.putExtra(Telephony.Sms.Intents.EXTRA_PACKAGE_NAME, context.getPackageName());
return intent;
}
}
}