Skip to content
Snippets Groups Projects
Commit f3ca92dd authored by Tadashi G. Takaoka's avatar Tadashi G. Takaoka Committed by Android (Google) Code Review
Browse files

Merge "Use ViewCompat support library"

parents 03283b63 e7ee4fa8
No related branches found
No related tags found
No related merge requests found
/*
* 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;
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);
}
}
...@@ -21,13 +21,13 @@ import android.content.res.ColorStateList; ...@@ -21,13 +21,13 @@ import android.content.res.ColorStateList;
import android.graphics.Canvas; import android.graphics.Canvas;
import android.graphics.Paint; import android.graphics.Paint;
import android.graphics.Path; import android.graphics.Path;
import android.support.v4.view.ViewCompat;
import android.util.AttributeSet; import android.util.AttributeSet;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.widget.LinearLayout; import android.widget.LinearLayout;
import android.widget.TextView; import android.widget.TextView;
import com.android.inputmethod.compat.ViewCompatUtils;
import com.android.inputmethod.latin.R; import com.android.inputmethod.latin.R;
public final class SetupStartIndicatorView extends LinearLayout { public final class SetupStartIndicatorView extends LinearLayout {
...@@ -96,13 +96,13 @@ public final class SetupStartIndicatorView extends LinearLayout { ...@@ -96,13 +96,13 @@ public final class SetupStartIndicatorView extends LinearLayout {
@Override @Override
protected void onDraw(final Canvas canvas) { protected void onDraw(final Canvas canvas) {
super.onDraw(canvas); super.onDraw(canvas);
final int layoutDirection = ViewCompatUtils.getLayoutDirection(this); final int layoutDirection = ViewCompat.getLayoutDirection(this);
final int width = getWidth(); final int width = getWidth();
final int height = getHeight(); final int height = getHeight();
final float halfHeight = height / 2.0f; final float halfHeight = height / 2.0f;
final Path path = mIndicatorPath; final Path path = mIndicatorPath;
path.rewind(); path.rewind();
if (layoutDirection == ViewCompatUtils.LAYOUT_DIRECTION_RTL) { if (layoutDirection == ViewCompat.LAYOUT_DIRECTION_RTL) {
// Left arrow // Left arrow
path.moveTo(width, 0.0f); path.moveTo(width, 0.0f);
path.lineTo(0.0f, halfHeight); path.lineTo(0.0f, halfHeight);
......
...@@ -20,10 +20,10 @@ import android.content.Context; ...@@ -20,10 +20,10 @@ import android.content.Context;
import android.graphics.Canvas; import android.graphics.Canvas;
import android.graphics.Paint; import android.graphics.Paint;
import android.graphics.Path; import android.graphics.Path;
import android.support.v4.view.ViewCompat;
import android.util.AttributeSet; import android.util.AttributeSet;
import android.view.View; import android.view.View;
import com.android.inputmethod.compat.ViewCompatUtils;
import com.android.inputmethod.latin.R; import com.android.inputmethod.latin.R;
public final class SetupStepIndicatorView extends View { public final class SetupStepIndicatorView extends View {
...@@ -38,12 +38,12 @@ 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) { public void setIndicatorPosition(final int stepPos, final int totalStepNum) {
final int layoutDirection = ViewCompatUtils.getLayoutDirection(this); final int layoutDirection = ViewCompat.getLayoutDirection(this);
// The indicator position is the center of the partition that is equally divided into // The indicator position is the center of the partition that is equally divided into
// the total step number. // the total step number.
final float partionWidth = 1.0f / totalStepNum; final float partionWidth = 1.0f / totalStepNum;
final float pos = stepPos * partionWidth + partionWidth / 2.0f; final float pos = stepPos * partionWidth + partionWidth / 2.0f;
mXRatio = (layoutDirection == ViewCompatUtils.LAYOUT_DIRECTION_RTL) ? 1.0f - pos : pos; mXRatio = (layoutDirection == ViewCompat.LAYOUT_DIRECTION_RTL) ? 1.0f - pos : pos;
invalidate(); invalidate();
} }
......
...@@ -25,6 +25,7 @@ import android.net.Uri; ...@@ -25,6 +25,7 @@ import android.net.Uri;
import android.os.Bundle; import android.os.Bundle;
import android.os.Message; import android.os.Message;
import android.provider.Settings; import android.provider.Settings;
import android.support.v4.view.ViewCompat;
import android.util.Log; import android.util.Log;
import android.view.View; import android.view.View;
import android.view.inputmethod.InputMethodInfo; import android.view.inputmethod.InputMethodInfo;
...@@ -34,7 +35,6 @@ import android.widget.TextView; ...@@ -34,7 +35,6 @@ import android.widget.TextView;
import android.widget.VideoView; import android.widget.VideoView;
import com.android.inputmethod.compat.TextViewCompatUtils; import com.android.inputmethod.compat.TextViewCompatUtils;
import com.android.inputmethod.compat.ViewCompatUtils;
import com.android.inputmethod.latin.R; import com.android.inputmethod.latin.R;
import com.android.inputmethod.latin.settings.SettingsActivity; import com.android.inputmethod.latin.settings.SettingsActivity;
import com.android.inputmethod.latin.utils.CollectionUtils; import com.android.inputmethod.latin.utils.CollectionUtils;
...@@ -449,8 +449,8 @@ public final class SetupWizardActivity extends Activity implements View.OnClickL ...@@ -449,8 +449,8 @@ public final class SetupWizardActivity extends Activity implements View.OnClickL
mActionLabel = (TextView)mStepView.findViewById(R.id.setup_step_action_label); mActionLabel = (TextView)mStepView.findViewById(R.id.setup_step_action_label);
mActionLabel.setText(res.getString(actionLabel)); mActionLabel.setText(res.getString(actionLabel));
if (actionIcon == 0) { if (actionIcon == 0) {
final int paddingEnd = ViewCompatUtils.getPaddingEnd(mActionLabel); final int paddingEnd = ViewCompat.getPaddingEnd(mActionLabel);
ViewCompatUtils.setPaddingRelative(mActionLabel, paddingEnd, 0, paddingEnd, 0); ViewCompat.setPaddingRelative(mActionLabel, paddingEnd, 0, paddingEnd, 0);
} else { } else {
TextViewCompatUtils.setCompoundDrawablesRelativeWithIntrinsicBounds( TextViewCompatUtils.setCompoundDrawablesRelativeWithIntrinsicBounds(
mActionLabel, res.getDrawable(actionIcon), null, null, null); mActionLabel, res.getDrawable(actionIcon), null, null, null);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment