Merge "[RCS]Make rcsProfile selectable"
diff --git a/testapps/TestRcsApp/TestApp/res/layout/provision_layout.xml b/testapps/TestRcsApp/TestApp/res/layout/provision_layout.xml
index d98dde2..a70cd4a 100644
--- a/testapps/TestRcsApp/TestApp/res/layout/provision_layout.xml
+++ b/testapps/TestRcsApp/TestApp/res/layout/provision_layout.xml
@@ -11,12 +11,30 @@
android:layout_height="wrap_content"
android:orientation="vertical">
+ <LinearLayout
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:orientation="horizontal">
+
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="@string/rcs_profile"
+ android:textSize="15dp"
+ android:textStyle="bold" />
+
+ <Spinner
+ android:id="@+id/rcs_profile_list"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content" />
+ </LinearLayout>
+
<Button
android:id="@+id/provisioning_register_btn"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
- android:text="register"
+ android:text="@string/register_provisioning_callback"
android:textAllCaps="false" />
<Button
@@ -24,7 +42,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
- android:text="unregister"
+ android:text="@string/unregister_provisioning_callback"
android:textAllCaps="false" />
<Button
@@ -33,7 +51,7 @@
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"
- android:text="isRcsVolteSingleRegCapable"
+ android:text="@string/isRcsVolteSingleRegCapable"
android:textAllCaps="false" />
<TextView
diff --git a/testapps/TestRcsApp/TestApp/res/values/donottranslate_strings.xml b/testapps/TestRcsApp/TestApp/res/values/donottranslate_strings.xml
index a193b46..502874f 100644
--- a/testapps/TestRcsApp/TestApp/res/values/donottranslate_strings.xml
+++ b/testapps/TestRcsApp/TestApp/res/values/donottranslate_strings.xml
@@ -6,6 +6,10 @@
<string name="gba_test">GBA Test</string>
<string name="test_msg_client">TestMessageClient</string>
<string name="db_client">DBClient</string>
+ <string name="rcs_profile">RcsProfile:</string>
+ <string name="register_provisioning_callback">registerProvisioningCallback</string>
+ <string name="unregister_provisioning_callback">unRegisterProvisioningCallback</string>
+ <string name="isRcsVolteSingleRegCapable">isRcsVolteSingleRegCapable</string>
<string name="result">Result:</string>
<string name="callback_result">Callback Result:</string>
<string name="initialize_delegate">initializeSipDelegate</string>
@@ -49,6 +53,10 @@
<string name="registration_failed">Registration failed</string>
<string name="version_info">Version: %s</string>
+ <string-array name="rcs_profile">
+ <item>UP_1.0</item>
+ <item>UP_2.3</item>
+ </string-array>
<string-array name="organization">
<item>NONE</item>
<item>3GPP</item>
diff --git a/testapps/TestRcsApp/TestApp/src/com/google/android/sample/rcsclient/ProvisioningActivity.java b/testapps/TestRcsApp/TestApp/src/com/google/android/sample/rcsclient/ProvisioningActivity.java
index bae4a1a..0c2996c 100644
--- a/testapps/TestRcsApp/TestApp/src/com/google/android/sample/rcsclient/ProvisioningActivity.java
+++ b/testapps/TestRcsApp/TestApp/src/com/google/android/sample/rcsclient/ProvisioningActivity.java
@@ -20,6 +20,7 @@
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
+import android.content.SharedPreferences;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
@@ -32,7 +33,11 @@
import android.text.method.ScrollingMovementMethod;
import android.util.Log;
import android.view.MenuItem;
+import android.view.View;
+import android.widget.AdapterView;
+import android.widget.ArrayAdapter;
import android.widget.Button;
+import android.widget.Spinner;
import android.widget.TextView;
import androidx.annotation.NonNull;
@@ -47,15 +52,27 @@
public class ProvisioningActivity extends AppCompatActivity {
private static final String TAG = "TestRcsApp.ProvisioningActivity";
+ private static final String UP_10 = "UP_1.0";
+ private static final String UP_23 = "UP_2.3";
+ private static final String V_6 = "6.0";
+ private static final String V_9 = "9.0";
+ private static final String RCS_CONFIG = "CONFIG";
+ private static final String RCS_PROFILE = "RCS_PROFILE";
+ private static final String RCS_VERSION = "RCS_VERSION";
private static final int MSG_RESULT = 1;
+
private final ExecutorService mExecutorService = Executors.newSingleThreadExecutor();
private int mDefaultSmsSubId;
private ProvisioningManager mProvisioningManager;
+ private Spinner mRcsProfileSpinner;
+ private String mRcsVersion;
+ private String mRcsProfile;
private Button mRegisterButton;
private Button mUnRegisterButton;
private Button mIsCapableButton;
private TextView mSingleRegResult;
private TextView mCallbackResult;
+ private SharedPreferences mPref;
private SingleRegCapabilityReceiver mSingleRegCapabilityReceiver;
private boolean mIsRegistered = false;
private Handler mHandler;
@@ -85,10 +102,10 @@
};
// Static configuration.
- private static RcsClientConfiguration getDefaultClientConfiguration() {
+ private RcsClientConfiguration getDefaultClientConfiguration() {
return new RcsClientConfiguration(
- /*rcsVersion=*/ "6.0",
- /*rcsProfile=*/ "UP_1.0",
+ /*rcsVersion=*/ mRcsVersion,
+ /*rcsProfile=*/ mRcsProfile,
/*clientVendor=*/ "Goog",
/*clientVersion=*/ "RCSAndrd-1.0");
}
@@ -112,6 +129,8 @@
}
}
};
+ mPref = getSharedPreferences(RCS_CONFIG, MODE_PRIVATE);
+ initRcsProfile();
}
@Override
@@ -206,6 +225,44 @@
return SubscriptionManager.isValidSubscriptionId(mDefaultSmsSubId);
}
+ private void initRcsProfile() {
+ mRcsProfileSpinner = findViewById(R.id.rcs_profile_list);
+ ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,
+ R.array.rcs_profile, android.R.layout.simple_spinner_item);
+ adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
+ mRcsProfileSpinner.setAdapter(adapter);
+ mRcsProfileSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
+ @Override
+ public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
+ Log.i(TAG, "rcs profile position:" + position);
+ switch (position) {
+ case 0:
+ mRcsProfile = UP_10;
+ mRcsVersion = V_6;
+ break;
+ case 1:
+ mRcsProfile = UP_23;
+ mRcsVersion = V_9;
+ break;
+ default:
+ Log.e(TAG, "invalid position:" + position);
+ return;
+ }
+ mPref.edit().putString(RCS_PROFILE, mRcsProfile)
+ .putString(RCS_VERSION, mRcsVersion)
+ .commit();
+ }
+
+ @Override
+ public void onNothingSelected(AdapterView<?> parent) {
+ // TODO Auto-generated method stub
+ }
+ });
+ mRcsProfile = mPref.getString(RCS_PROFILE, UP_10);
+ mRcsVersion = mPref.getString(RCS_VERSION, V_6);
+ mRcsProfileSpinner.setSelection(mRcsProfile.equals(UP_10) ? 0 : 1);
+ }
+
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId() == android.R.id.home) {
diff --git a/testapps/TestRcsApp/TestApp/src/com/google/android/sample/rcsclient/UceActivity.java b/testapps/TestRcsApp/TestApp/src/com/google/android/sample/rcsclient/UceActivity.java
index bbecbc2..6835fea 100644
--- a/testapps/TestRcsApp/TestApp/src/com/google/android/sample/rcsclient/UceActivity.java
+++ b/testapps/TestRcsApp/TestApp/src/com/google/android/sample/rcsclient/UceActivity.java
@@ -106,7 +106,7 @@
public void onComplete() {
Log.i(TAG, "onComplete()");
- mCapabilityResult.append("complete");
+ mCapabilityResult.append("onComplete");
}
diff --git a/testapps/TestRcsApp/TestApp/src/com/google/android/sample/rcsclient/util/ChatManager.java b/testapps/TestRcsApp/TestApp/src/com/google/android/sample/rcsclient/util/ChatManager.java
index 4489349..ec048b8 100644
--- a/testapps/TestRcsApp/TestApp/src/com/google/android/sample/rcsclient/util/ChatManager.java
+++ b/testapps/TestRcsApp/TestApp/src/com/google/android/sample/rcsclient/util/ChatManager.java
@@ -71,7 +71,8 @@
private ChatManager(Context context, int subId) {
mContext = context;
mSubId = subId;
- mProvisioningController = StaticConfigProvisioningController.createForSubscriptionId(subId);
+ mProvisioningController = StaticConfigProvisioningController.createForSubscriptionId(subId,
+ context);
ImsManager imsManager = mContext.getSystemService(ImsManager.class);
mRegistrationController = new RegistrationControllerImpl(subId, mFixedThreadPool,
imsManager);
diff --git a/testapps/TestRcsApp/aosp_test_rcsclient/src/com/android/libraries/rcs/simpleclient/provisioning/StaticConfigProvisioningController.java b/testapps/TestRcsApp/aosp_test_rcsclient/src/com/android/libraries/rcs/simpleclient/provisioning/StaticConfigProvisioningController.java
index 83f41d4..b8b1f21 100644
--- a/testapps/TestRcsApp/aosp_test_rcsclient/src/com/android/libraries/rcs/simpleclient/provisioning/StaticConfigProvisioningController.java
+++ b/testapps/TestRcsApp/aosp_test_rcsclient/src/com/android/libraries/rcs/simpleclient/provisioning/StaticConfigProvisioningController.java
@@ -16,6 +16,8 @@
package com.android.libraries.rcs.simpleclient.provisioning;
+import android.content.Context;
+import android.content.SharedPreferences;
import android.os.Build.VERSION_CODES;
import android.telephony.SubscriptionManager;
import android.telephony.ims.ImsException;
@@ -45,29 +47,35 @@
private Optional<RcsProvisioningCallback> storedCallback = Optional.empty();
private Optional<ProvisioningStateChangeCallback> stateChangeCallback = Optional.empty();
private Optional<byte[]> configXmlData = Optional.empty();
+ private Context context;
- private StaticConfigProvisioningController(int subId) {
+ private StaticConfigProvisioningController(int subId, Context context) {
this.provisioningManager = ProvisioningManager.createForSubscriptionId(subId);
+ this.context = context;
}
@RequiresApi(api = VERSION_CODES.R)
- public static StaticConfigProvisioningController createWithDefaultSubscriptionId() {
+ public static StaticConfigProvisioningController createWithDefaultSubscriptionId(
+ Context context) {
return new StaticConfigProvisioningController(
- SubscriptionManager.getActiveDataSubscriptionId());
+ SubscriptionManager.getActiveDataSubscriptionId(), context);
}
- public static StaticConfigProvisioningController createForSubscriptionId(int subscriptionId) {
- return new StaticConfigProvisioningController(subscriptionId);
+ /** Create ProvisioningController */
+ public static StaticConfigProvisioningController createForSubscriptionId(int subscriptionId,
+ Context context) {
+ return new StaticConfigProvisioningController(subscriptionId, context);
}
// Static configuration.
- private static RcsClientConfiguration getDefaultClientConfiguration() {
+ private RcsClientConfiguration getDefaultClientConfiguration() {
+ SharedPreferences pref = context.getSharedPreferences("CONFIG", context.MODE_PRIVATE);
return new RcsClientConfiguration(
- /*rcsVersion=*/ "6.0",
- /*rcsProfile=*/ "UP_2.3",
+ /*rcsVersion=*/ pref.getString("RCS_VERSION", "6.0"),
+ /*rcsProfile=*/ pref.getString("RCS_PROFILE", "UP_1.0"),
/*clientVendor=*/ "Goog",
- /*clientVersion=*/ "RCSAndrd-1.0");//"RCS fake library 1.0");
+ /*clientVersion=*/ "RCSAndrd-1.0");
}
@Override