/* * Copyright 2013, Edmodo, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this work except in compliance with the License. * You may obtain a copy of the License in the LICENSE file, or 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.edmodo.rangebar; import android.view.View; /** * Helper enum class for transforming a measureSpec mode integer value into a * human-readable String. The human-readable String is simply the name of the * enum value. */ public enum MeasureSpecMode { AT_MOST(View.MeasureSpec.AT_MOST), EXACTLY(View.MeasureSpec.EXACTLY), UNSPECIFIED(View.MeasureSpec.UNSPECIFIED); // Member Variables //////////////////////////////////////////////////////// private final int mModeValue; // Constructor ///////////////////////////////////////////////////////////// private MeasureSpecMode(int modeValue) { mModeValue = modeValue; } // Public Methods ////////////////////////////////////////////////////////// /** * Gets the int value associated with this mode. * * @return the int value associated with this mode */ public int getModeValue() { return mModeValue; } /** * Gets the MeasureSpecMode value that corresponds with the given * measureSpec int value. * * @param measureSpec the measure specification passed by the platform to * {@link View#onMeasure(int, int)} * @return the MeasureSpecMode that matches with that measure spec */ public static MeasureSpecMode getMode(int measureSpec) { final int modeValue = View.MeasureSpec.getMode(measureSpec); for (MeasureSpecMode mode : MeasureSpecMode.values()) { if (mode.getModeValue() == modeValue) { return mode; } } return null; } }