/* * Copyright 2016 Flipkart Internet Pvt. Ltd. * * 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.flipkart.android.proteus.parser.custom; import android.graphics.drawable.Drawable; import android.view.ViewGroup; import android.widget.ImageView; import com.flipkart.android.proteus.parser.Attributes; import com.flipkart.android.proteus.parser.ParseHelper; import com.flipkart.android.proteus.parser.Parser; import com.flipkart.android.proteus.parser.WrappableParser; import com.flipkart.android.proteus.processor.DrawableResourceProcessor; import com.flipkart.android.proteus.processor.StringAttributeProcessor; import com.flipkart.android.proteus.toolbox.Styles; import com.flipkart.android.proteus.view.ProteusImageButton; import com.flipkart.android.proteus.view.ProteusImageView; import com.flipkart.android.proteus.view.ProteusView; import com.google.gson.JsonObject; /** * Created by kiran.kumar on 12/05/14. */ public class ImageViewParser<T extends ImageView> extends WrappableParser<T> { public ImageViewParser(Parser<T> parentParser) { super(parentParser); } @Override public ProteusView createView(ViewGroup parent, JsonObject layout, JsonObject data, Styles styles, int index) { return new ProteusImageView(parent.getContext()); } @Override protected void prepareHandlers() { super.prepareHandlers(); addHandler(Attributes.ImageView.Src, new DrawableResourceProcessor<T>() { @Override public void setDrawable(T view, Drawable drawable) { view.setImageDrawable(drawable); } }); addHandler(Attributes.ImageView.ScaleType, new StringAttributeProcessor<T>() { @Override public void handle(String attributeKey, String attributeValue, T view) { ProteusImageView.ScaleType scaleType = null; scaleType = ParseHelper.parseScaleType(attributeValue); if (scaleType != null) view.setScaleType(scaleType); } }); addHandler(Attributes.ImageView.AdjustViewBounds, new StringAttributeProcessor<T>() { @Override public void handle(String attributeKey, String attributeValue, T view) { if ("true".equals(attributeValue)) { view.setAdjustViewBounds(true); } else { view.setAdjustViewBounds(false); } } }); } }