Merge "DO NOT MERGE - Merge pi-dev@5234907 into stage-aosp-master" into stage-aosp-master
diff --git a/res/values/strings.xml b/res/values/strings.xml
index aa77e63..c55bcfc 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -2337,7 +2337,7 @@
         <item>"1"</item>
     </string-array>
     <!-- Wi-Fi Calling settings. Text displayed when Wi-Fi Calling is off -->
-    <string name="wifi_calling_off_explanation">When Wi-Fi calling is on, your phone can route calls via Wi-Fi networks or your carrier\u2019s network, depending on your preference and which signal is stronger. Before turning on this feature, check with your carrier regarding fees and other details.</string>
+    <string name="wifi_calling_off_explanation">When Wi-Fi calling is on, your phone can route calls via Wi-Fi networks or your carrier\u2019s network, depending on your preference and which signal is stronger. Before turning on this feature, check with your carrier regarding fees and other details.<xliff:g id="additional_text" example="Learn More">%1$s</xliff:g></string>
     <!-- Wi-Fi Calling settings. Additional text displayed when Wi-Fi Calling is off. Default empty. [CHAR LIMIT=NONE] -->
     <string name="wifi_calling_off_explanation_2"></string>
     <!-- Title of a preference for updating emergency address [CHAR LIMIT=40] -->
diff --git a/src/com/android/settings/wifi/calling/WifiCallingSettings.java b/src/com/android/settings/wifi/calling/WifiCallingSettings.java
index a9c0ee9..5d11c55 100644
--- a/src/com/android/settings/wifi/calling/WifiCallingSettings.java
+++ b/src/com/android/settings/wifi/calling/WifiCallingSettings.java
@@ -29,6 +29,7 @@
 
 import com.android.ims.ImsManager;
 import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
+import com.android.internal.util.CollectionUtils;
 import com.android.settings.R;
 import com.android.settings.core.InstrumentedFragment;
 import com.android.settings.search.actionbar.SearchMenuController;
@@ -52,6 +53,24 @@
     private WifiCallingViewPagerAdapter mPagerAdapter;
     private SlidingTabLayout mTabLayout;
 
+    private final class InternalViewPagerListener implements
+            RtlCompatibleViewPager.OnPageChangeListener {
+        @Override
+        public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
+            // Do nothing.
+        }
+
+        @Override
+        public void onPageSelected(int position) {
+            updateTitleForCurrentSub();
+        }
+
+        @Override
+        public void onPageScrollStateChanged(int state) {
+            // Do nothing.
+        }
+    }
+
     @Override
     public int getMetricsCategory() {
         return MetricsEvent.WIFI_CALLING;
@@ -67,6 +86,7 @@
 
         mPagerAdapter = new WifiCallingViewPagerAdapter(getChildFragmentManager(), mViewPager);
         mViewPager.setAdapter(mPagerAdapter);
+        mViewPager.addOnPageChangeListener(new InternalViewPagerListener());
 
         return view;
     }
@@ -92,6 +112,8 @@
         } else {
             mTabLayout.setVisibility(View.GONE);
         }
+
+        updateTitleForCurrentSub();
     }
 
     @Override
@@ -162,4 +184,13 @@
             }
         }
     }
+
+    private void updateTitleForCurrentSub() {
+        if (CollectionUtils.size(mSil) > 1) {
+            final int subId = mSil.get(mViewPager.getCurrentItem()).getSubscriptionId();
+            final String title = SubscriptionManager.getResourcesForSubId(getContext(), subId)
+                    .getString(R.string.wifi_calling_settings_title);
+            getActivity().getActionBar().setTitle(title);
+        }
+    }
 }
diff --git a/src/com/android/settings/wifi/calling/WifiCallingSettingsForSub.java b/src/com/android/settings/wifi/calling/WifiCallingSettingsForSub.java
index c0cb4fc..33e8d85 100644
--- a/src/com/android/settings/wifi/calling/WifiCallingSettingsForSub.java
+++ b/src/com/android/settings/wifi/calling/WifiCallingSettingsForSub.java
@@ -23,6 +23,7 @@
 import android.content.Context;
 import android.content.Intent;
 import android.content.IntentFilter;
+import android.content.res.Resources;
 import android.os.Bundle;
 import android.os.PersistableBundle;
 import androidx.preference.ListPreference;
@@ -174,8 +175,9 @@
 
         mEmptyView = getView().findViewById(android.R.id.empty);
         setEmptyView(mEmptyView);
-        String emptyViewText = activity.getString(R.string.wifi_calling_off_explanation)
-                + activity.getString(R.string.wifi_calling_off_explanation_2);
+        final Resources res = SubscriptionManager.getResourcesForSubId(getActivity(), mSubId);
+        String emptyViewText = res.getString(R.string.wifi_calling_off_explanation,
+                res.getString(R.string.wifi_calling_off_explanation_2));
         mEmptyView.setText(emptyViewText);
 
         mSwitchBar = getView().findViewById(R.id.switch_bar);