Merge "Fix RTL display problem in Open by default" into udc-dev
diff --git a/res/layout/supported_links_dialog_item.xml b/res/layout/supported_links_dialog_item.xml
index bbd2857..8a18935 100644
--- a/res/layout/supported_links_dialog_item.xml
+++ b/res/layout/supported_links_dialog_item.xml
@@ -19,6 +19,7 @@
android:id="@android:id/text1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
+ android:textDirection="locale"
android:minHeight="?android:attr/listPreferredItemHeightSmall"
android:ellipsize="marquee"
android:gravity="center_vertical"
diff --git a/src/com/android/settings/applications/intentpicker/AppLaunchSettings.java b/src/com/android/settings/applications/intentpicker/AppLaunchSettings.java
index b1ab1cc..cc662aa 100644
--- a/src/com/android/settings/applications/intentpicker/AppLaunchSettings.java
+++ b/src/com/android/settings/applications/intentpicker/AppLaunchSettings.java
@@ -281,12 +281,18 @@
final List<String> verifiedLinksList = IntentPickerUtils.getLinksList(
mDomainVerificationManager, mPackageName, DOMAIN_STATE_VERIFIED);
- return new AlertDialog.Builder(mContext)
+ AlertDialog dialog = new AlertDialog.Builder(mContext)
.setCustomTitle(titleView)
.setCancelable(true)
.setItems(verifiedLinksList.toArray(new String[0]), /* listener= */ null)
.setPositiveButton(R.string.app_launch_dialog_ok, /* listener= */ null)
.create();
+ if (dialog.getListView() != null) {
+ dialog.getListView().setTextDirection(View.TEXT_DIRECTION_LOCALE);
+ } else {
+ Log.w(TAG, "createVerifiedLinksDialog: dialog.getListView() is null, please check it.");
+ }
+ return dialog;
}
@VisibleForTesting
diff --git a/src/com/android/settings/applications/intentpicker/SupportedLinksAdapter.java b/src/com/android/settings/applications/intentpicker/SupportedLinksAdapter.java
index 9288d52..0716971 100644
--- a/src/com/android/settings/applications/intentpicker/SupportedLinksAdapter.java
+++ b/src/com/android/settings/applications/intentpicker/SupportedLinksAdapter.java
@@ -17,6 +17,8 @@
package com.android.settings.applications.intentpicker;
import android.content.Context;
+import android.graphics.drawable.Drawable;
+import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@@ -29,6 +31,7 @@
/** This adapter is for supported links dialog. */
public class SupportedLinksAdapter extends BaseAdapter {
+ private static final String TAG = "SupportedLinksAdapter";
private final Context mContext;
private final List<SupportedLinkWrapper> mWrapperList;
@@ -62,6 +65,14 @@
R.layout.supported_links_dialog_item, /* root= */ null);
}
final CheckedTextView textView = convertView.findViewById(android.R.id.text1);
+ Drawable[] drawables = textView.getCompoundDrawables();
+ if (mContext.getResources().getConfiguration().getLayoutDirection()
+ == View.LAYOUT_DIRECTION_RTL && drawables[0] != null) {
+ Log.d(TAG, "getView: RTL direction.");
+ // Set a checkbox position. It is same as the android:drawableRight attribute.
+ textView.setCompoundDrawables(/* left= */ null, /* top= */ null, drawables[0],
+ /* bottom= */ null);
+ }
textView.setText(mWrapperList.get(position).getDisplayTitle(mContext));
textView.setEnabled(mWrapperList.get(position).isEnabled());
textView.setChecked(mWrapperList.get(position).isChecked());