1ad6ca3f895022ded1a11f3eedc50d70ea90cd4daMark Wei/* 2ad6ca3f895022ded1a11f3eedc50d70ea90cd4daMark Wei * Copyright (C) 2014 The Android Open Source Project 3ad6ca3f895022ded1a11f3eedc50d70ea90cd4daMark Wei * 4ad6ca3f895022ded1a11f3eedc50d70ea90cd4daMark Wei * Licensed under the Apache License, Version 2.0 (the "License"); 5ad6ca3f895022ded1a11f3eedc50d70ea90cd4daMark Wei * you may not use this file except in compliance with the License. 6ad6ca3f895022ded1a11f3eedc50d70ea90cd4daMark Wei * You may obtain a copy of the License at 7ad6ca3f895022ded1a11f3eedc50d70ea90cd4daMark Wei * 8ad6ca3f895022ded1a11f3eedc50d70ea90cd4daMark Wei * http://www.apache.org/licenses/LICENSE-2.0 9ad6ca3f895022ded1a11f3eedc50d70ea90cd4daMark Wei * 10ad6ca3f895022ded1a11f3eedc50d70ea90cd4daMark Wei * Unless required by applicable law or agreed to in writing, software 11ad6ca3f895022ded1a11f3eedc50d70ea90cd4daMark Wei * distributed under the License is distributed on an "AS IS" BASIS, 12ad6ca3f895022ded1a11f3eedc50d70ea90cd4daMark Wei * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13ad6ca3f895022ded1a11f3eedc50d70ea90cd4daMark Wei * See the License for the specific language governing permissions and 14ad6ca3f895022ded1a11f3eedc50d70ea90cd4daMark Wei * limitations under the License. 15ad6ca3f895022ded1a11f3eedc50d70ea90cd4daMark Wei */ 16ad6ca3f895022ded1a11f3eedc50d70ea90cd4daMark Wei 17ad6ca3f895022ded1a11f3eedc50d70ea90cd4daMark Weipackage com.android.bitmap; 18ad6ca3f895022ded1a11f3eedc50d70ea90cd4daMark Wei 19ad6ca3f895022ded1a11f3eedc50d70ea90cd4daMark Weiimport android.content.res.Resources; 20ad6ca3f895022ded1a11f3eedc50d70ea90cd4daMark Wei 21ad6ca3f895022ded1a11f3eedc50d70ea90cd4daMark Weiimport java.io.IOException; 22ad6ca3f895022ded1a11f3eedc50d70ea90cd4daMark Weiimport java.io.InputStream; 23ad6ca3f895022ded1a11f3eedc50d70ea90cd4daMark Wei 24ad6ca3f895022ded1a11f3eedc50d70ea90cd4daMark Wei/** 25ad6ca3f895022ded1a11f3eedc50d70ea90cd4daMark Wei * Simple RequestKey for decoding from a resource id. 26ad6ca3f895022ded1a11f3eedc50d70ea90cd4daMark Wei */ 27ad6ca3f895022ded1a11f3eedc50d70ea90cd4daMark Weipublic class ResourceRequestKey implements RequestKey { 28ad6ca3f895022ded1a11f3eedc50d70ea90cd4daMark Wei 29ad6ca3f895022ded1a11f3eedc50d70ea90cd4daMark Wei private Resources mResources; 30ad6ca3f895022ded1a11f3eedc50d70ea90cd4daMark Wei private int mResId; 31ad6ca3f895022ded1a11f3eedc50d70ea90cd4daMark Wei 32ad6ca3f895022ded1a11f3eedc50d70ea90cd4daMark Wei /** 33ad6ca3f895022ded1a11f3eedc50d70ea90cd4daMark Wei * Create a new request key with the given resource id. A resId of 0 will 34ad6ca3f895022ded1a11f3eedc50d70ea90cd4daMark Wei * return a null request key. 35ad6ca3f895022ded1a11f3eedc50d70ea90cd4daMark Wei */ 36ad6ca3f895022ded1a11f3eedc50d70ea90cd4daMark Wei public static ResourceRequestKey from(Resources res, int resId) { 37ad6ca3f895022ded1a11f3eedc50d70ea90cd4daMark Wei if (resId != 0) { 38ad6ca3f895022ded1a11f3eedc50d70ea90cd4daMark Wei return new ResourceRequestKey(res, resId); 39ad6ca3f895022ded1a11f3eedc50d70ea90cd4daMark Wei } 40ad6ca3f895022ded1a11f3eedc50d70ea90cd4daMark Wei return null; 41ad6ca3f895022ded1a11f3eedc50d70ea90cd4daMark Wei } 42ad6ca3f895022ded1a11f3eedc50d70ea90cd4daMark Wei 43ad6ca3f895022ded1a11f3eedc50d70ea90cd4daMark Wei private ResourceRequestKey(Resources res, int resId) { 44ad6ca3f895022ded1a11f3eedc50d70ea90cd4daMark Wei mResources = res; 45ad6ca3f895022ded1a11f3eedc50d70ea90cd4daMark Wei mResId = resId; 46ad6ca3f895022ded1a11f3eedc50d70ea90cd4daMark Wei } 47ad6ca3f895022ded1a11f3eedc50d70ea90cd4daMark Wei 48ad6ca3f895022ded1a11f3eedc50d70ea90cd4daMark Wei @Override 49ad6ca3f895022ded1a11f3eedc50d70ea90cd4daMark Wei public Cancelable createFileDescriptorFactoryAsync(RequestKey requestKey, Callback callback) { 50ad6ca3f895022ded1a11f3eedc50d70ea90cd4daMark Wei return null; 51ad6ca3f895022ded1a11f3eedc50d70ea90cd4daMark Wei } 52ad6ca3f895022ded1a11f3eedc50d70ea90cd4daMark Wei 53ad6ca3f895022ded1a11f3eedc50d70ea90cd4daMark Wei @Override 54ad6ca3f895022ded1a11f3eedc50d70ea90cd4daMark Wei public InputStream createInputStream() throws IOException { 55ad6ca3f895022ded1a11f3eedc50d70ea90cd4daMark Wei return mResources.openRawResource(mResId); 56ad6ca3f895022ded1a11f3eedc50d70ea90cd4daMark Wei } 57ad6ca3f895022ded1a11f3eedc50d70ea90cd4daMark Wei 58ad6ca3f895022ded1a11f3eedc50d70ea90cd4daMark Wei @Override 59ad6ca3f895022ded1a11f3eedc50d70ea90cd4daMark Wei public boolean hasOrientationExif() throws IOException { 60ad6ca3f895022ded1a11f3eedc50d70ea90cd4daMark Wei return false; 61ad6ca3f895022ded1a11f3eedc50d70ea90cd4daMark Wei } 62ad6ca3f895022ded1a11f3eedc50d70ea90cd4daMark Wei 63ad6ca3f895022ded1a11f3eedc50d70ea90cd4daMark Wei // START AUTO-GENERATED CODE 64ad6ca3f895022ded1a11f3eedc50d70ea90cd4daMark Wei 65ad6ca3f895022ded1a11f3eedc50d70ea90cd4daMark Wei @Override 66ad6ca3f895022ded1a11f3eedc50d70ea90cd4daMark Wei public boolean equals(Object o) { 67ad6ca3f895022ded1a11f3eedc50d70ea90cd4daMark Wei if (this == o) { 68ad6ca3f895022ded1a11f3eedc50d70ea90cd4daMark Wei return true; 69ad6ca3f895022ded1a11f3eedc50d70ea90cd4daMark Wei } 70ad6ca3f895022ded1a11f3eedc50d70ea90cd4daMark Wei if (o == null || getClass() != o.getClass()) { 71ad6ca3f895022ded1a11f3eedc50d70ea90cd4daMark Wei return false; 72ad6ca3f895022ded1a11f3eedc50d70ea90cd4daMark Wei } 73ad6ca3f895022ded1a11f3eedc50d70ea90cd4daMark Wei 74ad6ca3f895022ded1a11f3eedc50d70ea90cd4daMark Wei ResourceRequestKey that = (ResourceRequestKey) o; 75ad6ca3f895022ded1a11f3eedc50d70ea90cd4daMark Wei 76ad6ca3f895022ded1a11f3eedc50d70ea90cd4daMark Wei if (mResId != that.mResId) { 77ad6ca3f895022ded1a11f3eedc50d70ea90cd4daMark Wei return false; 78ad6ca3f895022ded1a11f3eedc50d70ea90cd4daMark Wei } 79ad6ca3f895022ded1a11f3eedc50d70ea90cd4daMark Wei 80ad6ca3f895022ded1a11f3eedc50d70ea90cd4daMark Wei return true; 81ad6ca3f895022ded1a11f3eedc50d70ea90cd4daMark Wei } 82ad6ca3f895022ded1a11f3eedc50d70ea90cd4daMark Wei 83ad6ca3f895022ded1a11f3eedc50d70ea90cd4daMark Wei @Override 84ad6ca3f895022ded1a11f3eedc50d70ea90cd4daMark Wei public int hashCode() { 85ad6ca3f895022ded1a11f3eedc50d70ea90cd4daMark Wei return mResId; 86ad6ca3f895022ded1a11f3eedc50d70ea90cd4daMark Wei } 87ad6ca3f895022ded1a11f3eedc50d70ea90cd4daMark Wei 88ad6ca3f895022ded1a11f3eedc50d70ea90cd4daMark Wei // END AUTO-GENERATED CODE 89ad6ca3f895022ded1a11f3eedc50d70ea90cd4daMark Wei 90ad6ca3f895022ded1a11f3eedc50d70ea90cd4daMark Wei @Override 91ad6ca3f895022ded1a11f3eedc50d70ea90cd4daMark Wei public String toString() { 92ad6ca3f895022ded1a11f3eedc50d70ea90cd4daMark Wei return String.format("ResourceRequestKey: %d", mResId); 93ad6ca3f895022ded1a11f3eedc50d70ea90cd4daMark Wei } 94ad6ca3f895022ded1a11f3eedc50d70ea90cd4daMark Wei} 95