show warning when call integration accounts exceed 10
This commit is contained in:
parent
d2d76322b9
commit
a04dc6e4ad
|
@ -211,6 +211,25 @@ public class CallIntegrationConnectionService extends ConnectionService {
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void registerPhoneAccount(final Context context, final Account account) {
|
public static void registerPhoneAccount(final Context context, final Account account) {
|
||||||
|
try {
|
||||||
|
registerPhoneAccountOrThrow(context, account);
|
||||||
|
} catch (final IllegalArgumentException e) {
|
||||||
|
Toast.makeText(context, R.string.call_integration_not_available, Toast.LENGTH_LONG)
|
||||||
|
.show();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void registerPhoneAccountOrThrow(final Context context, final Account account) {
|
||||||
|
final var handle = getHandle(context, account);
|
||||||
|
final var telecomManager = context.getSystemService(TelecomManager.class);
|
||||||
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
|
||||||
|
if (telecomManager.getOwnSelfManagedPhoneAccounts().contains(handle)) {
|
||||||
|
Log.d(
|
||||||
|
Config.LOGTAG,
|
||||||
|
"a phone account for " + account.getJid().asBareJid() + " already exists");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
final var builder =
|
final var builder =
|
||||||
PhoneAccount.builder(getHandle(context, account), account.getJid().asBareJid());
|
PhoneAccount.builder(getHandle(context, account), account.getJid().asBareJid());
|
||||||
builder.setSupportedUriSchemes(Collections.singletonList("xmpp"));
|
builder.setSupportedUriSchemes(Collections.singletonList("xmpp"));
|
||||||
|
@ -220,14 +239,21 @@ public class CallIntegrationConnectionService extends ConnectionService {
|
||||||
| PhoneAccount.CAPABILITY_SUPPORTS_VIDEO_CALLING);
|
| PhoneAccount.CAPABILITY_SUPPORTS_VIDEO_CALLING);
|
||||||
}
|
}
|
||||||
final var phoneAccount = builder.build();
|
final var phoneAccount = builder.build();
|
||||||
|
telecomManager.registerPhoneAccount(phoneAccount);
|
||||||
context.getSystemService(TelecomManager.class).registerPhoneAccount(phoneAccount);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void registerPhoneAccounts(
|
public static void registerPhoneAccounts(
|
||||||
final Context context, final Collection<Account> accounts) {
|
final Context context, final Collection<Account> accounts) {
|
||||||
for (final Account account : accounts) {
|
for (final Account account : accounts) {
|
||||||
registerPhoneAccount(context, account);
|
try {
|
||||||
|
registerPhoneAccountOrThrow(context, account);
|
||||||
|
} catch (final IllegalArgumentException e) {
|
||||||
|
Log.w(
|
||||||
|
Config.LOGTAG,
|
||||||
|
"could not register phone account for " + account.getJid().asBareJid(),
|
||||||
|
e);
|
||||||
|
return;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1027,4 +1027,5 @@
|
||||||
<string name="report_spam_and_block">Report spam and block spammer</string>
|
<string name="report_spam_and_block">Report spam and block spammer</string>
|
||||||
<string name="privacy_policy">Privacy policy</string>
|
<string name="privacy_policy">Privacy policy</string>
|
||||||
<string name="contact_list_integration_not_available">Contact list integration is not available</string>
|
<string name="contact_list_integration_not_available">Contact list integration is not available</string>
|
||||||
|
<string name="call_integration_not_available">Call integration not available!</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
Loading…
Reference in a new issue