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

Commit b8a9f128 authored by Dianne Hackborn's avatar Dianne Hackborn
Browse files

Fix #2101821: Cut labels of menu items in "SnapTell" market app.

Ummmm...  this turns out to be pretty bad.  NinePatchDrawable was not
scaling its reported padding for compatibility mode, causing spacing
to be off.  All over the place.  This change should improve things quite
a bit (and magically makes nearly all of the menu flaws go away).

Change-Id: I94a8310d95b908b6f087db97d9afaed654ca6de5
parent c413d54c
Loading
Loading
Loading
Loading
+20 −6
Original line number Diff line number Diff line
@@ -156,10 +156,24 @@ public class NinePatchDrawable extends Drawable {
    private void computeBitmapSize() {
        final int sdensity = mNinePatch.getDensity();
        final int tdensity = mTargetDensity;
        if (sdensity == tdensity) {
            mBitmapWidth = mNinePatch.getWidth();
            mBitmapHeight = mNinePatch.getHeight();
        } else {
            mBitmapWidth = Bitmap.scaleFromDensity(mNinePatch.getWidth(),
                    sdensity, tdensity);
            mBitmapHeight = Bitmap.scaleFromDensity(mNinePatch.getHeight(),
                    sdensity, tdensity);
            Rect dest = mPadding;
            Rect src = mNinePatchState.mPadding;
            if (dest == src) {
                mPadding = dest = new Rect(src);
            }
            dest.left = Bitmap.scaleFromDensity(src.left, sdensity, tdensity);
            dest.top = Bitmap.scaleFromDensity(src.top, sdensity, tdensity);
            dest.right = Bitmap.scaleFromDensity(src.right, sdensity, tdensity);
            dest.bottom = Bitmap.scaleFromDensity(src.bottom, sdensity, tdensity);
        }
    }
    
    // overrides
@@ -320,7 +334,6 @@ public class NinePatchDrawable extends Drawable {
        if (!mMutated && super.mutate() == this) {
            mNinePatchState = new NinePatchState(mNinePatchState);
            mNinePatch = mNinePatchState.mNinePatch;
            mPadding = mNinePatchState.mPadding;
            mMutated = true;
        }
        return this;
@@ -345,7 +358,8 @@ public class NinePatchDrawable extends Drawable {

        NinePatchState(NinePatchState state) {
            mNinePatch = new NinePatch(state.mNinePatch);
            mPadding = new Rect(state.mPadding);
            // Note we don't copy the padding because it is immutable.
            mPadding = state.mPadding;
            mDither = state.mDither;
            mChangingConfigurations = state.mChangingConfigurations;
            mTargetDensity = state.mTargetDensity;