Browse Source

fix(android): fix multisim issues on old phones

pull/19/head
isra el 2 years ago
parent
commit
923da3bd7e
  1. 8
      android/app/src/main/java/com/vernu/sms/activities/MainActivity.java
  2. 8
      android/app/src/main/java/com/vernu/sms/services/FCMService.java

8
android/app/src/main/java/com/vernu/sms/activities/MainActivity.java

@ -96,8 +96,9 @@ public class MainActivity extends AppCompatActivity {
defaultSimSlotRadioGroup = findViewById(R.id.defaultSimSlotRadioGroup);
try {
getAvailableSimSlots().forEach(subscriptionInfo -> {
try{
RadioButton radioButton = new RadioButton(mContext);
radioButton.setText(subscriptionInfo.getDisplayName().toString());
radioButton.setId(subscriptionInfo.getSubscriptionId());
@ -106,11 +107,12 @@ public class MainActivity extends AppCompatActivity {
});
radioButton.setChecked(subscriptionInfo.getSubscriptionId() == SharedPreferenceHelper.getSharedPreferenceInt(mContext, "PREFERED_SIM", 0));
defaultSimSlotRadioGroup.addView(radioButton);
});
} catch (Exception e) {
Snackbar.make(defaultSimSlotRadioGroup.getRootView(), "Error: " + e.getMessage(), Snackbar.LENGTH_LONG).show();
Log.e("SIM_SLOT_ERROR", e.getMessage());
}
});
deviceIdTxt.setText(deviceId);
deviceBrandAndModelTxt.setText(Build.BRAND + " " + Build.MODEL);
@ -302,11 +304,11 @@ public class MainActivity extends AppCompatActivity {
private List<SubscriptionInfo> getAvailableSimSlots() {
SubscriptionManager subscriptionManager = SubscriptionManager.from(mContext);
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED) {
return new ArrayList<>();
}
SubscriptionManager subscriptionManager = SubscriptionManager.from(mContext);
return subscriptionManager.getActiveSubscriptionInfoList();
}

8
android/app/src/main/java/com/vernu/sms/services/FCMService.java

@ -37,14 +37,16 @@ public class FCMService extends FirebaseMessagingService {
// Check if message contains a data payload.
if (remoteMessage.getData().size() > 0) {
int preferedSim = SharedPreferenceHelper.getSharedPreferenceInt(this, "PREFERED_SIM", -1);
for (String receiver : smsPayload.getReceivers()) {
int preferedSim = SharedPreferenceHelper.getSharedPreferenceInt(this, "PREFERED_SIM", 0);
if(preferedSim == -1) {
SMSHelper.sendSMS(receiver, smsPayload.getSmsBody());
continue;
}
try {
SMSHelper.sendSMSFromSpecificSim(receiver, smsPayload.getSmsBody(), preferedSim);
} catch(Exception e) {
Log.d("SMS_SEND_ERROR", e.getMessage());
SMSHelper.sendSMS(receiver, smsPayload.getSmsBody());
}
}
}

Loading…
Cancel
Save