Merge "Delete SmartAutoRotatePreference and move callback logic to controller"
diff --git a/res/layout/notification_history_app_layout.xml b/res/layout/notification_history_app_layout.xml
index 24a43c6..52c0e42 100644
--- a/res/layout/notification_history_app_layout.xml
+++ b/res/layout/notification_history_app_layout.xml
@@ -16,6 +16,7 @@
 
 <LinearLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:orientation="vertical">
@@ -78,14 +79,27 @@
         android:layout_height="1dp"
         android:background="?android:attr/listDivider"/>
 
-    <com.android.settings.notification.history.NotificationHistoryRecyclerView
-        android:id="@+id/notification_list"
+    <androidx.constraintlayout.widget.ConstraintLayout
+        android:id="@+id/notification_list_wrapper"
         android:layout_width="match_parent"
-        android:layout_height="500dp"
-        android:clipChildren="true"
-        android:clipToPadding="true"
-        android:clipToOutline="true"
-        android:importantForAccessibility="yes"
-        android:scrollbars="none"/>
+        android:layout_height="wrap_content">
+
+        <com.android.settings.notification.history.NotificationHistoryRecyclerView
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:id="@+id/notification_list"
+            android:clipChildren="true"
+            android:clipToPadding="true"
+            android:clipToOutline="true"
+            android:importantForAccessibility="yes"
+            app:layout_constrainedHeight="true"
+            app:layout_constraintHeight_min="48dp"
+            app:layout_constraintHeight_max="500dp"
+            app:layout_constraintTop_toTopOf="parent"
+            app:layout_constraintEnd_toEndOf="parent"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintBottom_toBottomOf="parent"/>
+
+    </androidx.constraintlayout.widget.ConstraintLayout>
 
 </LinearLayout>
\ No newline at end of file
diff --git a/src/com/android/settings/notification/history/NotificationHistoryActivity.java b/src/com/android/settings/notification/history/NotificationHistoryActivity.java
index 1d663fc..ec09a9f 100644
--- a/src/com/android/settings/notification/history/NotificationHistoryActivity.java
+++ b/src/com/android/settings/notification/history/NotificationHistoryActivity.java
@@ -163,7 +163,7 @@
             View viewForPackage = LayoutInflater.from(this)
                     .inflate(R.layout.notification_history_app_layout, null);
 
-            final View container = viewForPackage.findViewById(R.id.notification_list);
+            final View container = viewForPackage.findViewById(R.id.notification_list_wrapper);
             container.setVisibility(View.GONE);
             View header = viewForPackage.findViewById(R.id.app_header);
             NotificationExpandButton expand = viewForPackage.findViewById(
diff --git a/src/com/android/settings/sim/smartForwarding/DisableSmartForwardingTask.java b/src/com/android/settings/sim/smartForwarding/DisableSmartForwardingTask.java
index 7826522..d483dd1 100644
--- a/src/com/android/settings/sim/smartForwarding/DisableSmartForwardingTask.java
+++ b/src/com/android/settings/sim/smartForwarding/DisableSmartForwardingTask.java
@@ -19,6 +19,7 @@
 import static com.android.settings.sim.smartForwarding.SmartForwardingUtils.TAG;
 
 import android.telephony.CallForwardingInfo;
+import android.telephony.SubscriptionManager;
 import android.telephony.TelephonyManager;
 import android.util.Log;
 
@@ -37,16 +38,29 @@
     @Override
     public void run() {
         for (int i = 0; i < tm.getActiveModemCount(); i++) {
-            if (callWaitingStatus != null) {
+            int subId = getSubId(i);
+            if (callWaitingStatus != null
+                    && subId != SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
                 Log.d(TAG, "Restore call waiting to " + callWaitingStatus[i]);
-                tm.setCallWaitingEnabled(callWaitingStatus[i], null, null);
+                tm.createForSubscriptionId(subId)
+                        .setCallWaitingEnabled(callWaitingStatus[i], null, null);
             }
 
             if (callForwardingInfo != null
-                    && callForwardingInfo[i] != null) {
+                    && callForwardingInfo[i] != null
+                    && subId != SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
                 Log.d(TAG, "Restore call forwarding to " + callForwardingInfo[i]);
-                tm.setCallForwarding(callForwardingInfo[i], null, null);
+                tm.createForSubscriptionId(subId)
+                        .setCallForwarding(callForwardingInfo[i], null, null);
             }
         }
     }
+
+    private int getSubId(int slotIndex) {
+        int[] subId = SubscriptionManager.getSubId(slotIndex);
+        if (subId != null && subId.length > 0) {
+            return subId[0];
+        }
+        return SubscriptionManager.INVALID_SUBSCRIPTION_ID;
+    }
 }