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

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

Make ListView's FastScroller aware of layout direction

- see bug #5429822 UI should be mirrored for RTL locales (Arabic, Hebrew, farsi)

Change-Id: Ia70836041150b5e305df1af57a68bcdb4969f78c
parent 3a4832aa
Loading
Loading
Loading
Loading
+4 −6
Original line number Original line Diff line number Diff line
@@ -181,10 +181,13 @@ class FastScroller {
    }
    }


    public void setScrollbarPosition(int position) {
    public void setScrollbarPosition(int position) {
        if (position == View.SCROLLBAR_POSITION_DEFAULT) {
            position = mList.isLayoutRtl() ?
                    View.SCROLLBAR_POSITION_LEFT : View.SCROLLBAR_POSITION_RIGHT;
        }
        mPosition = position;
        mPosition = position;
        switch (position) {
        switch (position) {
            default:
            default:
            case View.SCROLLBAR_POSITION_DEFAULT:
            case View.SCROLLBAR_POSITION_RIGHT:
            case View.SCROLLBAR_POSITION_RIGHT:
                mOverlayDrawable = mOverlayDrawableRight;
                mOverlayDrawable = mOverlayDrawableRight;
                break;
                break;
@@ -229,7 +232,6 @@ class FastScroller {
        final int viewWidth = mList.getWidth();
        final int viewWidth = mList.getWidth();
        // Bounds are always top right. Y coordinate get's translated during draw
        // Bounds are always top right. Y coordinate get's translated during draw
        switch (mPosition) {
        switch (mPosition) {
            case View.SCROLLBAR_POSITION_DEFAULT:
            case View.SCROLLBAR_POSITION_RIGHT:
            case View.SCROLLBAR_POSITION_RIGHT:
                mThumbDrawable.setBounds(viewWidth - mThumbW, 0, viewWidth, mThumbH);
                mThumbDrawable.setBounds(viewWidth - mThumbW, 0, viewWidth, mThumbH);
                break;
                break;
@@ -327,7 +329,6 @@ class FastScroller {
            }
            }
            int left = 0;
            int left = 0;
            switch (mPosition) {
            switch (mPosition) {
                case View.SCROLLBAR_POSITION_DEFAULT:
                case View.SCROLLBAR_POSITION_RIGHT:
                case View.SCROLLBAR_POSITION_RIGHT:
                    left = viewWidth - (mThumbW * alpha) / ScrollFade.ALPHA_MAX;
                    left = viewWidth - (mThumbW * alpha) / ScrollFade.ALPHA_MAX;
                    break;
                    break;
@@ -360,7 +361,6 @@ class FastScroller {
                int left = 0;
                int left = 0;
                switch (mPosition) {
                switch (mPosition) {
                    default:
                    default:
                    case View.SCROLLBAR_POSITION_DEFAULT:
                    case View.SCROLLBAR_POSITION_RIGHT:
                    case View.SCROLLBAR_POSITION_RIGHT:
                        left = Math.max(0,
                        left = Math.max(0,
                                mThumbDrawable.getBounds().left - mThumbW - mOverlaySize);
                                mThumbDrawable.getBounds().left - mThumbW - mOverlaySize);
@@ -410,7 +410,6 @@ class FastScroller {
        if (mThumbDrawable != null) {
        if (mThumbDrawable != null) {
            switch (mPosition) {
            switch (mPosition) {
                default:
                default:
                case View.SCROLLBAR_POSITION_DEFAULT:
                case View.SCROLLBAR_POSITION_RIGHT:
                case View.SCROLLBAR_POSITION_RIGHT:
                    mThumbDrawable.setBounds(w - mThumbW, 0, w, mThumbH);
                    mThumbDrawable.setBounds(w - mThumbW, 0, w, mThumbH);
                    break;
                    break;
@@ -820,7 +819,6 @@ class FastScroller {
        boolean inTrack = false;
        boolean inTrack = false;
        switch (mPosition) {
        switch (mPosition) {
            default:
            default:
            case View.SCROLLBAR_POSITION_DEFAULT:
            case View.SCROLLBAR_POSITION_RIGHT:
            case View.SCROLLBAR_POSITION_RIGHT:
                inTrack = x > mList.getWidth() - mThumbW;
                inTrack = x > mList.getWidth() - mThumbW;
                break;
                break;