package iShamrock.Postal.commons.utils; import android.app.Activity; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.FrameLayout; import android.widget.LinearLayout; import android.widget.RelativeLayout; public final class Views { @SuppressWarnings("unchecked") public static <T extends View> T find(View parent, int viewId) { return (T) parent.findViewById(viewId); } @SuppressWarnings("unchecked") public static <T extends View> T find(Activity activity, int viewId) { return (T) activity.findViewById(viewId); } @SuppressWarnings("unchecked") public static <T extends ViewGroup.LayoutParams> T getParams(View view) { return (T) view.getLayoutParams(); } public static ViewGroup.MarginLayoutParams getMarginParams(View view) { return getParams(view); } public static FrameLayout.LayoutParams getFrameParams(View view) { return getParams(view); } public static RelativeLayout.LayoutParams getRelativeParams(View view) { return getParams(view); } public static LinearLayout.LayoutParams getLinearParams(View view) { return getParams(view); } @SuppressWarnings("unchecked") public static <T extends View> T inflate(Context context, int layoutId) { return (T) LayoutInflater.from(context).inflate(layoutId, null, false); } public static <T extends View> T inflate(View root, int layoutId) { return inflateInternal(root, layoutId, false); } public static <T extends View> T inflateAndAttach(View root, int layoutId) { return inflateInternal(root, layoutId, true); } @SuppressWarnings("unchecked") private static <T extends View> T inflateInternal(View root, int layoutId, boolean attach) { if (root == null) throw new NullPointerException("Root view cannot be null"); return (T) LayoutInflater.from(root.getContext()).inflate(layoutId, (ViewGroup) root, attach); } private Views() { } }