RequestManageCredentials support RTL languages
* App name and URIs should be displayed to the
left of the app icon for right-to-left
languages e.g. arabic.
Manual testing steps:
* Set language as Arabic
* Install TestDPC and select 'Request to
manage credentials'.
* Verify app name and URLs are correctly displayed.
* Go to Settings > Security > Encryption & Credentials
> Credential management app and verify apps and URIs
are displayed corretly.
Bug: 170627997
Test: Manual testing
Change-Id: Id383e5d92022fc2e40494fadb12c64a46b1f6a65
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;
}
/**