| /* |
| * Licensed to the Apache Software Foundation (ASF) under one |
| * or more contributor license agreements. See the NOTICE file |
| * distributed with this work for additional information |
| * regarding copyright ownership. The ASF licenses this file |
| * to you 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 org.apache.taverna.mobile.utils; |
| |
| import com.bumptech.glide.request.RequestListener; |
| import com.bumptech.glide.request.target.ImageViewTarget; |
| import com.bumptech.glide.request.target.Target; |
| |
| import android.annotation.TargetApi; |
| import android.graphics.drawable.PictureDrawable; |
| import android.os.Build; |
| import android.widget.ImageView; |
| |
| /** |
| * Listener which updates the {@link ImageView} to be software rendered, |
| * because {@link com.caverock.androidsvg.SVG SVG}/{@link android.graphics.Picture Picture} |
| * can't render on a hardware backed {@link android.graphics.Canvas Canvas}. |
| * |
| * @param <T> not used, here to prevent unchecked warnings at usage |
| */ |
| @TargetApi(Build.VERSION_CODES.HONEYCOMB) |
| public class SvgSoftwareLayerSetter<T> implements RequestListener<T, PictureDrawable> { |
| |
| @Override |
| public boolean onException(Exception e, T model, Target<PictureDrawable> target, |
| boolean isFirstResource) { |
| ImageView view = ((ImageViewTarget<?>) target).getView(); |
| if (Build.VERSION_CODES.HONEYCOMB <= Build.VERSION.SDK_INT) { |
| view.setLayerType(ImageView.LAYER_TYPE_NONE, null); |
| } |
| return false; |
| } |
| |
| @Override |
| public boolean onResourceReady(PictureDrawable resource, T model |
| , Target<PictureDrawable> target, boolean isFromMemoryCache, boolean isFirstResource) { |
| ImageView view = ((ImageViewTarget<?>) target).getView(); |
| if (Build.VERSION_CODES.HONEYCOMB <= Build.VERSION.SDK_INT) { |
| view.setLayerType(ImageView.LAYER_TYPE_SOFTWARE, null); |
| } |
| return false; |
| } |
| } |