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

Commit b4946343 authored by Fabrice Di Meglio's avatar Fabrice Di Meglio
Browse files

Make Toast widget aware of layout direction

- Toast will resolve its gravity (when START / END) from the System locale
- see bug #5429822 UI should be mirrored for RTL locales (Arabic, Hebrew, farsi)

Change-Id: I3fe810b87d708f2ee80ca6258ad25ab32ae85d82
parent 38d64c5a
Loading
Loading
Loading
Loading
+8 −1
Original line number Diff line number Diff line
@@ -24,6 +24,7 @@ import android.graphics.PixelFormat;
import android.os.Handler;
import android.os.RemoteException;
import android.os.ServiceManager;
import android.util.LocaleUtil;
import android.util.Log;
import android.view.Gravity;
import android.view.LayoutInflater;
@@ -33,6 +34,8 @@ import android.view.WindowManagerImpl;
import android.view.accessibility.AccessibilityEvent;
import android.view.accessibility.AccessibilityManager;

import java.util.Locale;

/**
 * A toast is a view containing a quick little message for the user.  The toast class
 * helps you create and show those.
@@ -371,7 +374,11 @@ public class Toast {
                handleHide();
                mView = mNextView;
                mWM = WindowManagerImpl.getDefault();
                final int gravity = mGravity;
                // We can resolve the Gravity here by using the Locale for getting
                // the layout direction
                final int layoutDirection = LocaleUtil.getLayoutDirectionFromLocale(
                        Locale.getDefault());
                final int gravity = Gravity.getAbsoluteGravity(mGravity, layoutDirection);
                mParams.gravity = gravity;
                if ((gravity & Gravity.HORIZONTAL_GRAVITY_MASK) == Gravity.FILL_HORIZONTAL) {
                    mParams.horizontalWeight = 1.0f;