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
This commit is contained in:
Alex Johnston
2021-03-29 18:28:17 +00:00
parent caf50d1203
commit b7867817d0
2 changed files with 18 additions and 2 deletions

View File

@@ -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"

View File

@@ -25,6 +25,7 @@ import android.view.LayoutInflater;
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 @@ public class CredentialManagementAppAdapter extends RecyclerView.Adapter<Recycle
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 @@ public class CredentialManagementAppAdapter extends RecyclerView.Adapter<Recycle
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 @@ public class CredentialManagementAppAdapter extends RecyclerView.Adapter<Recycle
mViewPool = new RecyclerView.RecycledViewPool();
mIncludeHeader = includeHeader;
mIncludeExpander = includeExpander;
mIsLayoutRtl = context.getResources().getConfiguration().getLayoutDirection()
== View.LAYOUT_DIRECTION_RTL;
}
/**