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

Commit 829ad708 authored by Tadashi G. Takaoka's avatar Tadashi G. Takaoka Committed by Android (Google) Code Review
Browse files

Merge "Revert "Use ViewCompat support library""

parents 5cf70a1d e4692c00
Loading
Loading
Loading
Loading
+71 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2013 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package com.android.inputmethod.compat;

import android.view.View;

import java.lang.reflect.Method;

// TODO: Use {@link android.support.v4.view.ViewCompat} instead of this utility class.
// Currently {@link #getPaddingEnd(View)} and {@link #setPaddingRelative(View,int,int,int,int)}
// are missing from android-support-v4 static library in KitKat SDK.
public final class ViewCompatUtils {
    // Note that View.LAYOUT_DIRECTION_LTR and View.LAYOUT_DIRECTION_RTL have been introduced in
    // API level 17 (Build.VERSION_CODE.JELLY_BEAN_MR1).
    public static final int LAYOUT_DIRECTION_LTR = (Integer)CompatUtils.getFieldValue(null, 0x0,
            CompatUtils.getField(View.class, "LAYOUT_DIRECTION_LTR"));
    public static final int LAYOUT_DIRECTION_RTL = (Integer)CompatUtils.getFieldValue(null, 0x1,
            CompatUtils.getField(View.class, "LAYOUT_DIRECTION_RTL"));

    // Note that View.getPaddingEnd(), View.setPaddingRelative(int,int,int,int), and
    // View.getLayoutDirection() have been introduced in API level 17
    // (Build.VERSION_CODE.JELLY_BEAN_MR1).
    private static final Method METHOD_getPaddingEnd = CompatUtils.getMethod(
            View.class, "getPaddingEnd");
    private static final Method METHOD_setPaddingRelative = CompatUtils.getMethod(
            View.class, "setPaddingRelative",
            Integer.TYPE, Integer.TYPE, Integer.TYPE, Integer.TYPE);
    private static final Method METHOD_getLayoutDirection = CompatUtils.getMethod(
            View.class, "getLayoutDirection");

    private ViewCompatUtils() {
        // This utility class is not publicly instantiable.
    }

    public static int getPaddingEnd(final View view) {
        if (METHOD_getPaddingEnd == null) {
            return view.getPaddingRight();
        }
        return (Integer)CompatUtils.invoke(view, 0, METHOD_getPaddingEnd);
    }

    public static void setPaddingRelative(final View view, final int start, final int top,
            final int end, final int bottom) {
        if (METHOD_setPaddingRelative == null) {
            view.setPadding(start, top, end, bottom);
            return;
        }
        CompatUtils.invoke(view, null, METHOD_setPaddingRelative, start, top, end, bottom);
    }

    public static int getLayoutDirection(final View view) {
        if (METHOD_getLayoutDirection == null) {
            return LAYOUT_DIRECTION_LTR;
        }
        return (Integer)CompatUtils.invoke(view, 0, METHOD_getLayoutDirection);
    }
}
+3 −3
Original line number Diff line number Diff line
@@ -21,13 +21,13 @@ import android.content.res.ColorStateList;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.Path;
import android.support.v4.view.ViewCompat;
import android.util.AttributeSet;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.LinearLayout;
import android.widget.TextView;

import com.android.inputmethod.compat.ViewCompatUtils;
import com.android.inputmethod.latin.R;

public final class SetupStartIndicatorView extends LinearLayout {
@@ -96,13 +96,13 @@ public final class SetupStartIndicatorView extends LinearLayout {
        @Override
        protected void onDraw(final Canvas canvas) {
            super.onDraw(canvas);
            final int layoutDirection = ViewCompat.getLayoutDirection(this);
            final int layoutDirection = ViewCompatUtils.getLayoutDirection(this);
            final int width = getWidth();
            final int height = getHeight();
            final float halfHeight = height / 2.0f;
            final Path path = mIndicatorPath;
            path.rewind();
            if (layoutDirection == ViewCompat.LAYOUT_DIRECTION_RTL) {
            if (layoutDirection == ViewCompatUtils.LAYOUT_DIRECTION_RTL) {
                // Left arrow
                path.moveTo(width, 0.0f);
                path.lineTo(0.0f, halfHeight);
+3 −3
Original line number Diff line number Diff line
@@ -20,10 +20,10 @@ import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.Path;
import android.support.v4.view.ViewCompat;
import android.util.AttributeSet;
import android.view.View;

import com.android.inputmethod.compat.ViewCompatUtils;
import com.android.inputmethod.latin.R;

public final class SetupStepIndicatorView extends View {
@@ -38,12 +38,12 @@ public final class SetupStepIndicatorView extends View {
    }

    public void setIndicatorPosition(final int stepPos, final int totalStepNum) {
        final int layoutDirection = ViewCompat.getLayoutDirection(this);
        final int layoutDirection = ViewCompatUtils.getLayoutDirection(this);
        // The indicator position is the center of the partition that is equally divided into
        // the total step number.
        final float partionWidth = 1.0f / totalStepNum;
        final float pos = stepPos * partionWidth + partionWidth / 2.0f;
        mXRatio = (layoutDirection == ViewCompat.LAYOUT_DIRECTION_RTL) ? 1.0f - pos : pos;
        mXRatio = (layoutDirection == ViewCompatUtils.LAYOUT_DIRECTION_RTL) ? 1.0f - pos : pos;
        invalidate();
    }

+3 −3
Original line number Diff line number Diff line
@@ -25,7 +25,6 @@ import android.net.Uri;
import android.os.Bundle;
import android.os.Message;
import android.provider.Settings;
import android.support.v4.view.ViewCompat;
import android.util.Log;
import android.view.View;
import android.view.inputmethod.InputMethodInfo;
@@ -35,6 +34,7 @@ import android.widget.TextView;
import android.widget.VideoView;

import com.android.inputmethod.compat.TextViewCompatUtils;
import com.android.inputmethod.compat.ViewCompatUtils;
import com.android.inputmethod.latin.R;
import com.android.inputmethod.latin.settings.SettingsActivity;
import com.android.inputmethod.latin.utils.CollectionUtils;
@@ -449,8 +449,8 @@ public final class SetupWizardActivity extends Activity implements View.OnClickL
            mActionLabel = (TextView)mStepView.findViewById(R.id.setup_step_action_label);
            mActionLabel.setText(res.getString(actionLabel));
            if (actionIcon == 0) {
                final int paddingEnd = ViewCompat.getPaddingEnd(mActionLabel);
                ViewCompat.setPaddingRelative(mActionLabel, paddingEnd, 0, paddingEnd, 0);
                final int paddingEnd = ViewCompatUtils.getPaddingEnd(mActionLabel);
                ViewCompatUtils.setPaddingRelative(mActionLabel, paddingEnd, 0, paddingEnd, 0);
            } else {
                TextViewCompatUtils.setCompoundDrawablesRelativeWithIntrinsicBounds(
                        mActionLabel, res.getDrawable(actionIcon), null, null, null);