Merge "Allow SimDialogActivity to be started for result"
This commit is contained in:
@@ -22,6 +22,7 @@ import android.app.Dialog;
|
|||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.DialogInterface;
|
import android.content.DialogInterface;
|
||||||
import android.content.res.Resources;
|
import android.content.res.Resources;
|
||||||
|
import android.content.Intent;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.telecom.PhoneAccount;
|
import android.telecom.PhoneAccount;
|
||||||
import android.telecom.PhoneAccountHandle;
|
import android.telecom.PhoneAccountHandle;
|
||||||
@@ -50,11 +51,15 @@ public class SimDialogActivity extends Activity {
|
|||||||
|
|
||||||
public static String PREFERRED_SIM = "preferred_sim";
|
public static String PREFERRED_SIM = "preferred_sim";
|
||||||
public static String DIALOG_TYPE_KEY = "dialog_type";
|
public static String DIALOG_TYPE_KEY = "dialog_type";
|
||||||
|
// sub ID returned from startActivityForResult
|
||||||
|
public static String RESULT_SUB_ID = "result_sub_id";
|
||||||
public static final int INVALID_PICK = -1;
|
public static final int INVALID_PICK = -1;
|
||||||
public static final int DATA_PICK = 0;
|
public static final int DATA_PICK = 0;
|
||||||
public static final int CALLS_PICK = 1;
|
public static final int CALLS_PICK = 1;
|
||||||
public static final int SMS_PICK = 2;
|
public static final int SMS_PICK = 2;
|
||||||
public static final int PREFERRED_PICK = 3;
|
public static final int PREFERRED_PICK = 3;
|
||||||
|
// Show the "select SMS subscription" dialog, but don't save as default, just return a result
|
||||||
|
public static final int SMS_PICK_FOR_MESSAGE = 4;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
@@ -65,6 +70,7 @@ public class SimDialogActivity extends Activity {
|
|||||||
case DATA_PICK:
|
case DATA_PICK:
|
||||||
case CALLS_PICK:
|
case CALLS_PICK:
|
||||||
case SMS_PICK:
|
case SMS_PICK:
|
||||||
|
case SMS_PICK_FOR_MESSAGE:
|
||||||
createDialog(this, dialogType).show();
|
createDialog(this, dialogType).show();
|
||||||
break;
|
break;
|
||||||
case PREFERRED_PICK:
|
case PREFERRED_PICK:
|
||||||
@@ -179,6 +185,14 @@ public class SimDialogActivity extends Activity {
|
|||||||
sir = subInfoList.get(value);
|
sir = subInfoList.get(value);
|
||||||
setDefaultSmsSubId(context, sir.getSubscriptionId());
|
setDefaultSmsSubId(context, sir.getSubscriptionId());
|
||||||
break;
|
break;
|
||||||
|
case SMS_PICK_FOR_MESSAGE:
|
||||||
|
sir = subInfoList.get(value);
|
||||||
|
// Don't set a default here.
|
||||||
|
// The caller has created this dialog waiting for a result.
|
||||||
|
Intent intent = new Intent();
|
||||||
|
intent.putExtra(RESULT_SUB_ID, sir.getSubscriptionId());
|
||||||
|
setResult(Activity.RESULT_OK, intent);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
throw new IllegalArgumentException("Invalid dialog type "
|
throw new IllegalArgumentException("Invalid dialog type "
|
||||||
+ id + " in SIM dialog.");
|
+ id + " in SIM dialog.");
|
||||||
@@ -250,8 +264,11 @@ public class SimDialogActivity extends Activity {
|
|||||||
builder.setTitle(R.string.select_sim_for_calls);
|
builder.setTitle(R.string.select_sim_for_calls);
|
||||||
break;
|
break;
|
||||||
case SMS_PICK:
|
case SMS_PICK:
|
||||||
|
// intentional fallthrough
|
||||||
|
case SMS_PICK_FOR_MESSAGE:
|
||||||
builder.setTitle(R.string.sim_card_select_title);
|
builder.setTitle(R.string.sim_card_select_title);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
throw new IllegalArgumentException("Invalid dialog type "
|
throw new IllegalArgumentException("Invalid dialog type "
|
||||||
+ id + " in SIM dialog.");
|
+ id + " in SIM dialog.");
|
||||||
|
Reference in New Issue
Block a user