Merge "RequestManageCredentials support RTL languages" into sc-dev
diff --git a/res/layout/app_authentication_item.xml b/res/layout/app_authentication_item.xml
index 423722e..16d6fbd 100644
--- a/res/layout/app_authentication_item.xml
+++ b/res/layout/app_authentication_item.xml
@@ -26,7 +26,8 @@
         android:layout_width="24dp"
         android:layout_height="24dp"/>
 
-    <LinearLayout
+    <RelativeLayout
+        android:id="@+id/app_details"
         android:layout_width="fill_parent"
         android:layout_height="wrap_content"
         android:layout_toRightOf="@id/app_icon"
@@ -44,16 +45,18 @@
         <TextView
             android:id="@+id/number_of_uris"
             style="@style/AppAuthenticationPolicyNumberOfUrisText"
+            android:layout_below="@id/app_name"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:visibility="gone"/>
 
         <androidx.recyclerview.widget.RecyclerView
             android:id="@+id/uris"
+            android:layout_below="@id/app_name"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"/>
 
-    </LinearLayout>
+    </RelativeLayout>
 
     <ImageView
         android:id="@+id/expand"
diff --git a/src/com/android/settings/security/CredentialManagementAppAdapter.java b/src/com/android/settings/security/CredentialManagementAppAdapter.java
index e56fc63..6b37f7f 100644
--- a/src/com/android/settings/security/CredentialManagementAppAdapter.java
+++ b/src/com/android/settings/security/CredentialManagementAppAdapter.java
@@ -25,6 +25,7 @@
 import android.view.View;
 import android.view.ViewGroup;
 import android.widget.ImageView;
+import android.widget.RelativeLayout;
 import android.widget.TextView;
 
 import androidx.annotation.NonNull;
@@ -61,6 +62,7 @@
 
     private final boolean mIncludeHeader;
     private final boolean mIncludeExpander;
+    private final boolean mIsLayoutRtl;
 
     /**
      * View holder for the header in the request manage credentials screen.
@@ -113,6 +115,15 @@
             mChildRecyclerView = view.findViewById(R.id.uris);
             mExpandedApps = new ArrayList<>();
 
+            if (mIsLayoutRtl) {
+                RelativeLayout appDetails = view.findViewById(R.id.app_details);
+                RelativeLayout.LayoutParams params =
+                        (RelativeLayout.LayoutParams) appDetails.getLayoutParams();
+                params.addRule(RelativeLayout.LEFT_OF, R.id.app_icon);
+                params.addRule(RelativeLayout.RIGHT_OF, R.id.expand);
+                view.setLayoutParams(params);
+            }
+
             mExpanderIconView.setOnClickListener(view1 -> {
                 final String appName = mSortedAppNames.get(getBindingAdapterPosition());
                 if (mExpandedApps.contains(appName)) {
@@ -195,6 +206,8 @@
         mViewPool = new RecyclerView.RecycledViewPool();
         mIncludeHeader = includeHeader;
         mIncludeExpander = includeExpander;
+        mIsLayoutRtl = context.getResources().getConfiguration().getLayoutDirection()
+                == View.LAYOUT_DIRECTION_RTL;
     }
 
     /**