Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3fb824ba authored by Fabrice Di Meglio's avatar Fabrice Di Meglio
Browse files

Fix bug #5217606 LocaleUtils constants TEXT_LAYOUT_DIRECTION_LTR_DO_NOT_USE...

Fix bug #5217606 LocaleUtils constants TEXT_LAYOUT_DIRECTION_LTR_DO_NOT_USE and TEXT_LAYOUT_DIRECTION_RTL_DO_NOT_USE should be renamed

- replace them by the View constants

Change-Id: I7c2bf0213319247d3db369b6f7c36771fdf3e509
parent f64dfccd
Loading
Loading
Loading
Loading
+12 −11
Original line number Original line Diff line number Diff line
@@ -20,6 +20,7 @@ import android.content.pm.ActivityInfo;
import android.os.Parcel;
import android.os.Parcel;
import android.os.Parcelable;
import android.os.Parcelable;
import android.util.LocaleUtil;
import android.util.LocaleUtil;
import android.view.View;


import java.util.Locale;
import java.util.Locale;


@@ -280,9 +281,9 @@ public final class Configuration implements Parcelable, Comparable<Configuration
    public int compatSmallestScreenWidthDp;
    public int compatSmallestScreenWidthDp;


    /**
    /**
     * @hide The text layout direction associated to the current Locale
     * @hide The layout direction associated to the current Locale
     */
     */
    public int textLayoutDirection;
    public int layoutDirection;


    /**
    /**
     * @hide Internal book-keeping.
     * @hide Internal book-keeping.
@@ -310,7 +311,7 @@ public final class Configuration implements Parcelable, Comparable<Configuration
        mnc = o.mnc;
        mnc = o.mnc;
        if (o.locale != null) {
        if (o.locale != null) {
            locale = (Locale) o.locale.clone();
            locale = (Locale) o.locale.clone();
            textLayoutDirection = o.textLayoutDirection;
            layoutDirection = o.layoutDirection;
        }
        }
        userSetLocale = o.userSetLocale;
        userSetLocale = o.userSetLocale;
        touchscreen = o.touchscreen;
        touchscreen = o.touchscreen;
@@ -346,10 +347,10 @@ public final class Configuration implements Parcelable, Comparable<Configuration
        } else {
        } else {
            sb.append(" (no locale)");
            sb.append(" (no locale)");
        }
        }
        switch (textLayoutDirection) {
        switch (layoutDirection) {
            case LocaleUtil.TEXT_LAYOUT_DIRECTION_LTR_DO_NOT_USE: /* ltr not interesting */ break;
            case View.LAYOUT_DIRECTION_LTR: /* ltr not interesting */ break;
            case LocaleUtil.TEXT_LAYOUT_DIRECTION_RTL_DO_NOT_USE: sb.append(" rtl"); break;
            case View.LAYOUT_DIRECTION_RTL: sb.append(" rtl"); break;
            default: sb.append(" layoutdir="); sb.append(textLayoutDirection); break;
            default: sb.append(" layoutDir="); sb.append(layoutDirection); break;
        }
        }
        if (smallestScreenWidthDp != SMALLEST_SCREEN_WIDTH_DP_UNDEFINED) {
        if (smallestScreenWidthDp != SMALLEST_SCREEN_WIDTH_DP_UNDEFINED) {
            sb.append(" sw"); sb.append(smallestScreenWidthDp); sb.append("dp");
            sb.append(" sw"); sb.append(smallestScreenWidthDp); sb.append("dp");
@@ -472,7 +473,7 @@ public final class Configuration implements Parcelable, Comparable<Configuration
        screenWidthDp = compatScreenWidthDp = SCREEN_WIDTH_DP_UNDEFINED;
        screenWidthDp = compatScreenWidthDp = SCREEN_WIDTH_DP_UNDEFINED;
        screenHeightDp = compatScreenHeightDp = SCREEN_HEIGHT_DP_UNDEFINED;
        screenHeightDp = compatScreenHeightDp = SCREEN_HEIGHT_DP_UNDEFINED;
        smallestScreenWidthDp = compatSmallestScreenWidthDp = SMALLEST_SCREEN_WIDTH_DP_UNDEFINED;
        smallestScreenWidthDp = compatSmallestScreenWidthDp = SMALLEST_SCREEN_WIDTH_DP_UNDEFINED;
        textLayoutDirection = LocaleUtil.TEXT_LAYOUT_DIRECTION_LTR_DO_NOT_USE;
        layoutDirection = View.LAYOUT_DIRECTION_LTR;
        seq = 0;
        seq = 0;
    }
    }


@@ -508,7 +509,7 @@ public final class Configuration implements Parcelable, Comparable<Configuration
            changed |= ActivityInfo.CONFIG_LOCALE;
            changed |= ActivityInfo.CONFIG_LOCALE;
            locale = delta.locale != null
            locale = delta.locale != null
                    ? (Locale) delta.locale.clone() : null;
                    ? (Locale) delta.locale.clone() : null;
            textLayoutDirection = LocaleUtil.getLayoutDirectionFromLocale(locale);
            layoutDirection = LocaleUtil.getLayoutDirectionFromLocale(locale);
        }
        }
        if (delta.userSetLocale && (!userSetLocale || ((changed & ActivityInfo.CONFIG_LOCALE) != 0)))
        if (delta.userSetLocale && (!userSetLocale || ((changed & ActivityInfo.CONFIG_LOCALE) != 0)))
        {
        {
@@ -776,7 +777,7 @@ public final class Configuration implements Parcelable, Comparable<Configuration
        dest.writeInt(compatScreenWidthDp);
        dest.writeInt(compatScreenWidthDp);
        dest.writeInt(compatScreenHeightDp);
        dest.writeInt(compatScreenHeightDp);
        dest.writeInt(compatSmallestScreenWidthDp);
        dest.writeInt(compatSmallestScreenWidthDp);
        dest.writeInt(textLayoutDirection);
        dest.writeInt(layoutDirection);
        dest.writeInt(seq);
        dest.writeInt(seq);
    }
    }


@@ -804,7 +805,7 @@ public final class Configuration implements Parcelable, Comparable<Configuration
        compatScreenWidthDp = source.readInt();
        compatScreenWidthDp = source.readInt();
        compatScreenHeightDp = source.readInt();
        compatScreenHeightDp = source.readInt();
        compatSmallestScreenWidthDp = source.readInt();
        compatSmallestScreenWidthDp = source.readInt();
        textLayoutDirection = source.readInt();
        layoutDirection = source.readInt();
        seq = source.readInt();
        seq = source.readInt();
    }
    }
    
    
+2 −1
Original line number Original line Diff line number Diff line
@@ -18,6 +18,7 @@ package android.text;




import android.util.LocaleUtil;
import android.util.LocaleUtil;
import android.view.View;


/**
/**
 * Some objects that implement TextDirectionHeuristic.
 * Some objects that implement TextDirectionHeuristic.
@@ -240,7 +241,7 @@ public class TextDirectionHeuristics {
        @Override
        @Override
        protected boolean defaultIsRtl() {
        protected boolean defaultIsRtl() {
            final int dir = LocaleUtil.getLayoutDirectionFromLocale(java.util.Locale.getDefault());
            final int dir = LocaleUtil.getLayoutDirectionFromLocale(java.util.Locale.getDefault());
            return (dir == LocaleUtil.TEXT_LAYOUT_DIRECTION_RTL_DO_NOT_USE);
            return (dir == View.LAYOUT_DIRECTION_RTL);
        }
        }


        public static final TextDirectionHeuristicLocale INSTANCE =
        public static final TextDirectionHeuristicLocale INSTANCE =
+9 −18
Original line number Original line Diff line number Diff line
@@ -18,6 +18,7 @@ package android.util;


import java.util.Locale;
import java.util.Locale;


import android.view.View;
import libcore.icu.ICU;
import libcore.icu.ICU;


/**
/**
@@ -29,16 +30,6 @@ public class LocaleUtil {


    private LocaleUtil() { /* cannot be instantiated */ }
    private LocaleUtil() { /* cannot be instantiated */ }


    /**
     * @hide Do not use. Implementation not finished.
     */
    public static final int TEXT_LAYOUT_DIRECTION_LTR_DO_NOT_USE = 0;

    /**
     * @hide Do not use. Implementation not finished.
     */
    public static final int TEXT_LAYOUT_DIRECTION_RTL_DO_NOT_USE = 1;

    private static String ARAB_SCRIPT_SUBTAG = "Arab";
    private static String ARAB_SCRIPT_SUBTAG = "Arab";
    private static String HEBR_SCRIPT_SUBTAG = "Hebr";
    private static String HEBR_SCRIPT_SUBTAG = "Hebr";


@@ -47,8 +38,8 @@ public class LocaleUtil {
     *
     *
     * @param locale the Locale for which we want the layout direction. Can be null.
     * @param locale the Locale for which we want the layout direction. Can be null.
     * @return the layout direction. This may be one of:
     * @return the layout direction. This may be one of:
     * {@link #TEXT_LAYOUT_DIRECTION_LTR_DO_NOT_USE} or
     * {@link View#LAYOUT_DIRECTION_LTR} or
     * {@link #TEXT_LAYOUT_DIRECTION_RTL_DO_NOT_USE}.
     * {@link View#LAYOUT_DIRECTION_RTL}.
     *
     *
     * Be careful: this code will need to be changed when vertical scripts will be supported
     * Be careful: this code will need to be changed when vertical scripts will be supported
     *
     *
@@ -61,11 +52,11 @@ public class LocaleUtil {


            if (scriptSubtag.equalsIgnoreCase(ARAB_SCRIPT_SUBTAG) ||
            if (scriptSubtag.equalsIgnoreCase(ARAB_SCRIPT_SUBTAG) ||
                    scriptSubtag.equalsIgnoreCase(HEBR_SCRIPT_SUBTAG)) {
                    scriptSubtag.equalsIgnoreCase(HEBR_SCRIPT_SUBTAG)) {
                return TEXT_LAYOUT_DIRECTION_RTL_DO_NOT_USE;
                return View.LAYOUT_DIRECTION_RTL;
            }
            }
        }
        }


        return TEXT_LAYOUT_DIRECTION_LTR_DO_NOT_USE;
        return View.LAYOUT_DIRECTION_LTR;
    }
    }


    /**
    /**
@@ -75,8 +66,8 @@ public class LocaleUtil {
     *
     *
     * @param locale
     * @param locale
     * @return the layout direction. This may be one of:
     * @return the layout direction. This may be one of:
     * {@link #TEXT_LAYOUT_DIRECTION_LTR_DO_NOT_USE} or
     * {@link View#LAYOUT_DIRECTION_LTR} or
     * {@link #TEXT_LAYOUT_DIRECTION_RTL_DO_NOT_USE}.
     * {@link View#LAYOUT_DIRECTION_RTL}.
     *
     *
     * Be careful: this code will need to be changed when vertical scripts will be supported
     * Be careful: this code will need to be changed when vertical scripts will be supported
     *
     *
@@ -86,11 +77,11 @@ public class LocaleUtil {
        switch(Character.getDirectionality(locale.getDisplayName(locale).charAt(0))) {
        switch(Character.getDirectionality(locale.getDisplayName(locale).charAt(0))) {
            case Character.DIRECTIONALITY_RIGHT_TO_LEFT:
            case Character.DIRECTIONALITY_RIGHT_TO_LEFT:
            case Character.DIRECTIONALITY_RIGHT_TO_LEFT_ARABIC:
            case Character.DIRECTIONALITY_RIGHT_TO_LEFT_ARABIC:
                return TEXT_LAYOUT_DIRECTION_RTL_DO_NOT_USE;
                return View.LAYOUT_DIRECTION_RTL;


            case Character.DIRECTIONALITY_LEFT_TO_RIGHT:
            case Character.DIRECTIONALITY_LEFT_TO_RIGHT:
            default:
            default:
                return TEXT_LAYOUT_DIRECTION_LTR_DO_NOT_USE;
                return View.LAYOUT_DIRECTION_LTR;
        }
        }
    }
    }
}
}
+1 −3
Original line number Original line Diff line number Diff line
@@ -40,7 +40,6 @@ import android.graphics.drawable.ColorDrawable;
import android.graphics.drawable.Drawable;
import android.graphics.drawable.Drawable;
import android.os.Handler;
import android.os.Handler;
import android.os.IBinder;
import android.os.IBinder;
import android.os.Message;
import android.os.Parcel;
import android.os.Parcel;
import android.os.Parcelable;
import android.os.Parcelable;
import android.os.RemoteException;
import android.os.RemoteException;
@@ -9711,8 +9710,7 @@ public class View implements Drawable.Callback, Drawable.Callback2, KeyEvent.Cal
     * @hide
     * @hide
     */
     */
    protected static boolean isLayoutDirectionRtl(Locale locale) {
    protected static boolean isLayoutDirectionRtl(Locale locale) {
        return (LocaleUtil.TEXT_LAYOUT_DIRECTION_RTL_DO_NOT_USE ==
        return (LAYOUT_DIRECTION_RTL == LocaleUtil.getLayoutDirectionFromLocale(locale));
                LocaleUtil.getLayoutDirectionFromLocale(locale));
    }
    }
    /**
    /**
+60 −59
Original line number Original line Diff line number Diff line
@@ -22,7 +22,8 @@ import android.test.AndroidTestCase;
import dalvik.annotation.TestLevel;
import dalvik.annotation.TestLevel;
import dalvik.annotation.TestTargetNew;
import dalvik.annotation.TestTargetNew;


import static android.util.LocaleUtil.TEXT_LAYOUT_DIRECTION_LTR_DO_NOT_USE;
import static android.view.View.LAYOUT_DIRECTION_LTR;
import static android.view.View.LAYOUT_DIRECTION_RTL;


public class LocaleUtilTest extends AndroidTestCase {
public class LocaleUtilTest extends AndroidTestCase {


@@ -32,168 +33,168 @@ public class LocaleUtilTest extends AndroidTestCase {
        args = {Locale.class}
        args = {Locale.class}
    )
    )
    public void testGetLayoutDirectionFromLocale() {
    public void testGetLayoutDirectionFromLocale() {
        assertEquals(TEXT_LAYOUT_DIRECTION_LTR_DO_NOT_USE,
        assertEquals(LAYOUT_DIRECTION_LTR,
                LocaleUtil.getLayoutDirectionFromLocale(null));
                LocaleUtil.getLayoutDirectionFromLocale(null));


        assertEquals(TEXT_LAYOUT_DIRECTION_LTR_DO_NOT_USE,
        assertEquals(LAYOUT_DIRECTION_LTR,
            LocaleUtil.getLayoutDirectionFromLocale(Locale.ENGLISH));
            LocaleUtil.getLayoutDirectionFromLocale(Locale.ENGLISH));
        assertEquals(LocaleUtil.TEXT_LAYOUT_DIRECTION_LTR_DO_NOT_USE,
        assertEquals(LAYOUT_DIRECTION_LTR,
            LocaleUtil.getLayoutDirectionFromLocale(Locale.CANADA));
            LocaleUtil.getLayoutDirectionFromLocale(Locale.CANADA));
        assertEquals(LocaleUtil.TEXT_LAYOUT_DIRECTION_LTR_DO_NOT_USE,
        assertEquals(LAYOUT_DIRECTION_LTR,
            LocaleUtil.getLayoutDirectionFromLocale(Locale.CANADA_FRENCH));
            LocaleUtil.getLayoutDirectionFromLocale(Locale.CANADA_FRENCH));
        assertEquals(LocaleUtil.TEXT_LAYOUT_DIRECTION_LTR_DO_NOT_USE,
        assertEquals(LAYOUT_DIRECTION_LTR,
            LocaleUtil.getLayoutDirectionFromLocale(Locale.FRANCE));
            LocaleUtil.getLayoutDirectionFromLocale(Locale.FRANCE));
        assertEquals(LocaleUtil.TEXT_LAYOUT_DIRECTION_LTR_DO_NOT_USE,
        assertEquals(LAYOUT_DIRECTION_LTR,
            LocaleUtil.getLayoutDirectionFromLocale(Locale.FRENCH));
            LocaleUtil.getLayoutDirectionFromLocale(Locale.FRENCH));
        assertEquals(LocaleUtil.TEXT_LAYOUT_DIRECTION_LTR_DO_NOT_USE,
        assertEquals(LAYOUT_DIRECTION_LTR,
            LocaleUtil.getLayoutDirectionFromLocale(Locale.GERMAN));
            LocaleUtil.getLayoutDirectionFromLocale(Locale.GERMAN));
        assertEquals(LocaleUtil.TEXT_LAYOUT_DIRECTION_LTR_DO_NOT_USE,
        assertEquals(LAYOUT_DIRECTION_LTR,
            LocaleUtil.getLayoutDirectionFromLocale(Locale.GERMANY));
            LocaleUtil.getLayoutDirectionFromLocale(Locale.GERMANY));
        assertEquals(LocaleUtil.TEXT_LAYOUT_DIRECTION_LTR_DO_NOT_USE,
        assertEquals(LAYOUT_DIRECTION_LTR,
            LocaleUtil.getLayoutDirectionFromLocale(Locale.ITALIAN));
            LocaleUtil.getLayoutDirectionFromLocale(Locale.ITALIAN));
        assertEquals(LocaleUtil.TEXT_LAYOUT_DIRECTION_LTR_DO_NOT_USE,
        assertEquals(LAYOUT_DIRECTION_LTR,
            LocaleUtil.getLayoutDirectionFromLocale(Locale.ITALY));
            LocaleUtil.getLayoutDirectionFromLocale(Locale.ITALY));
        assertEquals(LocaleUtil.TEXT_LAYOUT_DIRECTION_LTR_DO_NOT_USE,
        assertEquals(LAYOUT_DIRECTION_LTR,
            LocaleUtil.getLayoutDirectionFromLocale(Locale.UK));
            LocaleUtil.getLayoutDirectionFromLocale(Locale.UK));
        assertEquals(LocaleUtil.TEXT_LAYOUT_DIRECTION_LTR_DO_NOT_USE,
        assertEquals(LAYOUT_DIRECTION_LTR,
            LocaleUtil.getLayoutDirectionFromLocale(Locale.US));
            LocaleUtil.getLayoutDirectionFromLocale(Locale.US));


        assertEquals(LocaleUtil.TEXT_LAYOUT_DIRECTION_LTR_DO_NOT_USE,
        assertEquals(LAYOUT_DIRECTION_LTR,
            LocaleUtil.getLayoutDirectionFromLocale(Locale.ROOT));
            LocaleUtil.getLayoutDirectionFromLocale(Locale.ROOT));


        assertEquals(LocaleUtil.TEXT_LAYOUT_DIRECTION_LTR_DO_NOT_USE,
        assertEquals(LAYOUT_DIRECTION_LTR,
            LocaleUtil.getLayoutDirectionFromLocale(Locale.CHINA));
            LocaleUtil.getLayoutDirectionFromLocale(Locale.CHINA));
        assertEquals(LocaleUtil.TEXT_LAYOUT_DIRECTION_LTR_DO_NOT_USE,
        assertEquals(LAYOUT_DIRECTION_LTR,
            LocaleUtil.getLayoutDirectionFromLocale(Locale.CHINESE));
            LocaleUtil.getLayoutDirectionFromLocale(Locale.CHINESE));
        assertEquals(LocaleUtil.TEXT_LAYOUT_DIRECTION_LTR_DO_NOT_USE,
        assertEquals(LAYOUT_DIRECTION_LTR,
            LocaleUtil.getLayoutDirectionFromLocale(Locale.JAPAN));
            LocaleUtil.getLayoutDirectionFromLocale(Locale.JAPAN));
        assertEquals(LocaleUtil.TEXT_LAYOUT_DIRECTION_LTR_DO_NOT_USE,
        assertEquals(LAYOUT_DIRECTION_LTR,
            LocaleUtil.getLayoutDirectionFromLocale(Locale.JAPANESE));
            LocaleUtil.getLayoutDirectionFromLocale(Locale.JAPANESE));
        assertEquals(LocaleUtil.TEXT_LAYOUT_DIRECTION_LTR_DO_NOT_USE,
        assertEquals(LAYOUT_DIRECTION_LTR,
            LocaleUtil.getLayoutDirectionFromLocale(Locale.KOREA));
            LocaleUtil.getLayoutDirectionFromLocale(Locale.KOREA));
        assertEquals(LocaleUtil.TEXT_LAYOUT_DIRECTION_LTR_DO_NOT_USE,
        assertEquals(LAYOUT_DIRECTION_LTR,
            LocaleUtil.getLayoutDirectionFromLocale(Locale.KOREAN));
            LocaleUtil.getLayoutDirectionFromLocale(Locale.KOREAN));
        assertEquals(LocaleUtil.TEXT_LAYOUT_DIRECTION_LTR_DO_NOT_USE,
        assertEquals(LAYOUT_DIRECTION_LTR,
            LocaleUtil.getLayoutDirectionFromLocale(Locale.PRC));
            LocaleUtil.getLayoutDirectionFromLocale(Locale.PRC));
        assertEquals(LocaleUtil.TEXT_LAYOUT_DIRECTION_LTR_DO_NOT_USE,
        assertEquals(LAYOUT_DIRECTION_LTR,
            LocaleUtil.getLayoutDirectionFromLocale(Locale.SIMPLIFIED_CHINESE));
            LocaleUtil.getLayoutDirectionFromLocale(Locale.SIMPLIFIED_CHINESE));
        assertEquals(LocaleUtil.TEXT_LAYOUT_DIRECTION_LTR_DO_NOT_USE,
        assertEquals(LAYOUT_DIRECTION_LTR,
            LocaleUtil.getLayoutDirectionFromLocale(Locale.TAIWAN));
            LocaleUtil.getLayoutDirectionFromLocale(Locale.TAIWAN));
        assertEquals(LocaleUtil.TEXT_LAYOUT_DIRECTION_LTR_DO_NOT_USE,
        assertEquals(LAYOUT_DIRECTION_LTR,
            LocaleUtil.getLayoutDirectionFromLocale(Locale.TRADITIONAL_CHINESE));
            LocaleUtil.getLayoutDirectionFromLocale(Locale.TRADITIONAL_CHINESE));


        Locale locale = new Locale("ar");
        Locale locale = new Locale("ar");
        assertEquals(LocaleUtil.TEXT_LAYOUT_DIRECTION_RTL_DO_NOT_USE,
        assertEquals(LAYOUT_DIRECTION_RTL,
            LocaleUtil.getLayoutDirectionFromLocale(locale));
            LocaleUtil.getLayoutDirectionFromLocale(locale));
        locale = new Locale("ar", "AE");
        locale = new Locale("ar", "AE");
        assertEquals(LocaleUtil.TEXT_LAYOUT_DIRECTION_RTL_DO_NOT_USE,
        assertEquals(LAYOUT_DIRECTION_RTL,
            LocaleUtil.getLayoutDirectionFromLocale(locale));
            LocaleUtil.getLayoutDirectionFromLocale(locale));
        locale = new Locale("ar", "BH");
        locale = new Locale("ar", "BH");
        assertEquals(LocaleUtil.TEXT_LAYOUT_DIRECTION_RTL_DO_NOT_USE,
        assertEquals(LAYOUT_DIRECTION_RTL,
            LocaleUtil.getLayoutDirectionFromLocale(locale));
            LocaleUtil.getLayoutDirectionFromLocale(locale));
        locale = new Locale("ar", "DZ");
        locale = new Locale("ar", "DZ");
        assertEquals(LocaleUtil.TEXT_LAYOUT_DIRECTION_RTL_DO_NOT_USE,
        assertEquals(LAYOUT_DIRECTION_RTL,
            LocaleUtil.getLayoutDirectionFromLocale(locale));
            LocaleUtil.getLayoutDirectionFromLocale(locale));
        locale = new Locale("ar", "EG");
        locale = new Locale("ar", "EG");
        assertEquals(LocaleUtil.TEXT_LAYOUT_DIRECTION_RTL_DO_NOT_USE,
        assertEquals(LAYOUT_DIRECTION_RTL,
            LocaleUtil.getLayoutDirectionFromLocale(locale));
            LocaleUtil.getLayoutDirectionFromLocale(locale));
        locale = new Locale("ar", "IQ");
        locale = new Locale("ar", "IQ");
        assertEquals(LocaleUtil.TEXT_LAYOUT_DIRECTION_RTL_DO_NOT_USE,
        assertEquals(LAYOUT_DIRECTION_RTL,
            LocaleUtil.getLayoutDirectionFromLocale(locale));
            LocaleUtil.getLayoutDirectionFromLocale(locale));
        locale = new Locale("ar", "JO");
        locale = new Locale("ar", "JO");
        assertEquals(LocaleUtil.TEXT_LAYOUT_DIRECTION_RTL_DO_NOT_USE,
        assertEquals(LAYOUT_DIRECTION_RTL,
            LocaleUtil.getLayoutDirectionFromLocale(locale));
            LocaleUtil.getLayoutDirectionFromLocale(locale));
        locale = new Locale("ar", "KW");
        locale = new Locale("ar", "KW");
        assertEquals(LocaleUtil.TEXT_LAYOUT_DIRECTION_RTL_DO_NOT_USE,
        assertEquals(LAYOUT_DIRECTION_RTL,
            LocaleUtil.getLayoutDirectionFromLocale(locale));
            LocaleUtil.getLayoutDirectionFromLocale(locale));
        locale = new Locale("ar", "LB");
        locale = new Locale("ar", "LB");
        assertEquals(LocaleUtil.TEXT_LAYOUT_DIRECTION_RTL_DO_NOT_USE,
        assertEquals(LAYOUT_DIRECTION_RTL,
            LocaleUtil.getLayoutDirectionFromLocale(locale));
            LocaleUtil.getLayoutDirectionFromLocale(locale));
        locale = new Locale("ar", "LY");
        locale = new Locale("ar", "LY");
        assertEquals(LocaleUtil.TEXT_LAYOUT_DIRECTION_RTL_DO_NOT_USE,
        assertEquals(LAYOUT_DIRECTION_RTL,
            LocaleUtil.getLayoutDirectionFromLocale(locale));
            LocaleUtil.getLayoutDirectionFromLocale(locale));
        locale = new Locale("ar", "MA");
        locale = new Locale("ar", "MA");
        assertEquals(LocaleUtil.TEXT_LAYOUT_DIRECTION_RTL_DO_NOT_USE,
        assertEquals(LAYOUT_DIRECTION_RTL,
            LocaleUtil.getLayoutDirectionFromLocale(locale));
            LocaleUtil.getLayoutDirectionFromLocale(locale));
        locale = new Locale("ar", "OM");
        locale = new Locale("ar", "OM");
        assertEquals(LocaleUtil.TEXT_LAYOUT_DIRECTION_RTL_DO_NOT_USE,
        assertEquals(LAYOUT_DIRECTION_RTL,
            LocaleUtil.getLayoutDirectionFromLocale(locale));
            LocaleUtil.getLayoutDirectionFromLocale(locale));
        locale = new Locale("ar", "QA");
        locale = new Locale("ar", "QA");
        assertEquals(LocaleUtil.TEXT_LAYOUT_DIRECTION_RTL_DO_NOT_USE,
        assertEquals(LAYOUT_DIRECTION_RTL,
            LocaleUtil.getLayoutDirectionFromLocale(locale));
            LocaleUtil.getLayoutDirectionFromLocale(locale));
        locale = new Locale("ar", "SA");
        locale = new Locale("ar", "SA");
        assertEquals(LocaleUtil.TEXT_LAYOUT_DIRECTION_RTL_DO_NOT_USE,
        assertEquals(LAYOUT_DIRECTION_RTL,
            LocaleUtil.getLayoutDirectionFromLocale(locale));
            LocaleUtil.getLayoutDirectionFromLocale(locale));
        locale = new Locale("ar", "SD");
        locale = new Locale("ar", "SD");
        assertEquals(LocaleUtil.TEXT_LAYOUT_DIRECTION_RTL_DO_NOT_USE,
        assertEquals(LAYOUT_DIRECTION_RTL,
            LocaleUtil.getLayoutDirectionFromLocale(locale));
            LocaleUtil.getLayoutDirectionFromLocale(locale));
        locale = new Locale("ar", "SY");
        locale = new Locale("ar", "SY");
        assertEquals(LocaleUtil.TEXT_LAYOUT_DIRECTION_RTL_DO_NOT_USE,
        assertEquals(LAYOUT_DIRECTION_RTL,
            LocaleUtil.getLayoutDirectionFromLocale(locale));
            LocaleUtil.getLayoutDirectionFromLocale(locale));
        locale = new Locale("ar", "TN");
        locale = new Locale("ar", "TN");
        assertEquals(LocaleUtil.TEXT_LAYOUT_DIRECTION_RTL_DO_NOT_USE,
        assertEquals(LAYOUT_DIRECTION_RTL,
            LocaleUtil.getLayoutDirectionFromLocale(locale));
            LocaleUtil.getLayoutDirectionFromLocale(locale));
        locale = new Locale("ar", "YE");
        locale = new Locale("ar", "YE");
        assertEquals(LocaleUtil.TEXT_LAYOUT_DIRECTION_RTL_DO_NOT_USE,
        assertEquals(LAYOUT_DIRECTION_RTL,
            LocaleUtil.getLayoutDirectionFromLocale(locale));
            LocaleUtil.getLayoutDirectionFromLocale(locale));


        locale = new Locale("fa");
        locale = new Locale("fa");
        assertEquals(LocaleUtil.TEXT_LAYOUT_DIRECTION_RTL_DO_NOT_USE,
        assertEquals(LAYOUT_DIRECTION_RTL,
            LocaleUtil.getLayoutDirectionFromLocale(locale));
            LocaleUtil.getLayoutDirectionFromLocale(locale));
        locale = new Locale("fa", "AF");
        locale = new Locale("fa", "AF");
        assertEquals(LocaleUtil.TEXT_LAYOUT_DIRECTION_RTL_DO_NOT_USE,
        assertEquals(LAYOUT_DIRECTION_RTL,
            LocaleUtil.getLayoutDirectionFromLocale(locale));
            LocaleUtil.getLayoutDirectionFromLocale(locale));
        locale = new Locale("fa", "IR");
        locale = new Locale("fa", "IR");
        assertEquals(LocaleUtil.TEXT_LAYOUT_DIRECTION_RTL_DO_NOT_USE,
        assertEquals(LAYOUT_DIRECTION_RTL,
            LocaleUtil.getLayoutDirectionFromLocale(locale));
            LocaleUtil.getLayoutDirectionFromLocale(locale));


        locale = new Locale("iw");
        locale = new Locale("iw");
        assertEquals(LocaleUtil.TEXT_LAYOUT_DIRECTION_RTL_DO_NOT_USE,
        assertEquals(LAYOUT_DIRECTION_RTL,
            LocaleUtil.getLayoutDirectionFromLocale(locale));
            LocaleUtil.getLayoutDirectionFromLocale(locale));
        locale = new Locale("iw", "IL");
        locale = new Locale("iw", "IL");
        assertEquals(LocaleUtil.TEXT_LAYOUT_DIRECTION_RTL_DO_NOT_USE,
        assertEquals(LAYOUT_DIRECTION_RTL,
            LocaleUtil.getLayoutDirectionFromLocale(locale));
            LocaleUtil.getLayoutDirectionFromLocale(locale));
        locale = new Locale("he");
        locale = new Locale("he");
        assertEquals(LocaleUtil.TEXT_LAYOUT_DIRECTION_RTL_DO_NOT_USE,
        assertEquals(LAYOUT_DIRECTION_RTL,
            LocaleUtil.getLayoutDirectionFromLocale(locale));
            LocaleUtil.getLayoutDirectionFromLocale(locale));
        locale = new Locale("he", "IL");
        locale = new Locale("he", "IL");
        assertEquals(LocaleUtil.TEXT_LAYOUT_DIRECTION_RTL_DO_NOT_USE,
        assertEquals(LAYOUT_DIRECTION_RTL,
            LocaleUtil.getLayoutDirectionFromLocale(locale));
            LocaleUtil.getLayoutDirectionFromLocale(locale));


        locale = new Locale("pa_Arab");
        locale = new Locale("pa_Arab");
        assertEquals(LocaleUtil.TEXT_LAYOUT_DIRECTION_RTL_DO_NOT_USE,
        assertEquals(LAYOUT_DIRECTION_RTL,
            LocaleUtil.getLayoutDirectionFromLocale(locale));
            LocaleUtil.getLayoutDirectionFromLocale(locale));
        locale = new Locale("pa_Arab", "PK");
        locale = new Locale("pa_Arab", "PK");
        assertEquals(LocaleUtil.TEXT_LAYOUT_DIRECTION_RTL_DO_NOT_USE,
        assertEquals(LAYOUT_DIRECTION_RTL,
            LocaleUtil.getLayoutDirectionFromLocale(locale));
            LocaleUtil.getLayoutDirectionFromLocale(locale));


        locale = new Locale("ps");
        locale = new Locale("ps");
        assertEquals(LocaleUtil.TEXT_LAYOUT_DIRECTION_RTL_DO_NOT_USE,
        assertEquals(LAYOUT_DIRECTION_RTL,
            LocaleUtil.getLayoutDirectionFromLocale(locale));
            LocaleUtil.getLayoutDirectionFromLocale(locale));
        locale = new Locale("ps", "AF");
        locale = new Locale("ps", "AF");
        assertEquals(LocaleUtil.TEXT_LAYOUT_DIRECTION_RTL_DO_NOT_USE,
        assertEquals(LAYOUT_DIRECTION_RTL,
            LocaleUtil.getLayoutDirectionFromLocale(locale));
            LocaleUtil.getLayoutDirectionFromLocale(locale));


        locale = new Locale("ur");
        locale = new Locale("ur");
        assertEquals(LocaleUtil.TEXT_LAYOUT_DIRECTION_RTL_DO_NOT_USE,
        assertEquals(LAYOUT_DIRECTION_RTL,
            LocaleUtil.getLayoutDirectionFromLocale(locale));
            LocaleUtil.getLayoutDirectionFromLocale(locale));
        locale = new Locale("ur", "IN");
        locale = new Locale("ur", "IN");
        assertEquals(LocaleUtil.TEXT_LAYOUT_DIRECTION_RTL_DO_NOT_USE,
        assertEquals(LAYOUT_DIRECTION_RTL,
            LocaleUtil.getLayoutDirectionFromLocale(locale));
            LocaleUtil.getLayoutDirectionFromLocale(locale));
        locale = new Locale("ur", "PK");
        locale = new Locale("ur", "PK");
        assertEquals(LocaleUtil.TEXT_LAYOUT_DIRECTION_RTL_DO_NOT_USE,
        assertEquals(LAYOUT_DIRECTION_RTL,
            LocaleUtil.getLayoutDirectionFromLocale(locale));
            LocaleUtil.getLayoutDirectionFromLocale(locale));


        locale = new Locale("uz_Arab");
        locale = new Locale("uz_Arab");
        assertEquals(LocaleUtil.TEXT_LAYOUT_DIRECTION_RTL_DO_NOT_USE,
        assertEquals(LAYOUT_DIRECTION_RTL,
            LocaleUtil.getLayoutDirectionFromLocale(locale));
            LocaleUtil.getLayoutDirectionFromLocale(locale));
        locale = new Locale("uz_Arab", "AF");
        locale = new Locale("uz_Arab", "AF");
        assertEquals(LocaleUtil.TEXT_LAYOUT_DIRECTION_RTL_DO_NOT_USE,
        assertEquals(LAYOUT_DIRECTION_RTL,
            LocaleUtil.getLayoutDirectionFromLocale(locale));
            LocaleUtil.getLayoutDirectionFromLocale(locale));


        // Locale without a real language
        // Locale without a real language
        locale = new Locale("zz");
        locale = new Locale("zz");
        assertEquals(LocaleUtil.TEXT_LAYOUT_DIRECTION_LTR_DO_NOT_USE,
        assertEquals(LAYOUT_DIRECTION_LTR,
            LocaleUtil.getLayoutDirectionFromLocale(locale));
            LocaleUtil.getLayoutDirectionFromLocale(locale));
    }
    }
}
}