186163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn/* 286163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn * Copyright (C) 2014 The Android Open Source Project 386163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn * 486163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 586163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn * in compliance with the License. You may obtain a copy of the License at 686163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn * 786163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn * http://www.apache.org/licenses/LICENSE-2.0 886163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn * 986163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn * Unless required by applicable law or agreed to in writing, software distributed under the License 1086163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 1186163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn * or implied. See the License for the specific language governing permissions and limitations under 1286163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn * the License. 1386163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn */ 1486163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn 15ad31f63f5843898de645f6ee1ac244c872ded8ccRobert Hahnpackage android.support.v17.leanback.supportleanbackshowcase.utils; 1686163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn 1786163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahnimport android.content.ContentResolver; 1886163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahnimport android.content.Context; 1986163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahnimport android.net.Uri; 2086163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn 2186163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahnimport java.io.IOException; 2286163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahnimport java.io.InputStream; 2386163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn 2486163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn/** 2586163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn * A collection of utility methods, all static. 2686163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn */ 2786163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahnpublic class Utils { 2886163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn 2986163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn public static int convertDpToPixel(Context ctx, int dp) { 3086163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn float density = ctx.getResources().getDisplayMetrics().density; 3186163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn return Math.round((float) dp * density); 3286163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn } 3386163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn 3486163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn /** 3586163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn * Will read the content from a given {@link InputStream} and return it as a {@link String}. 3686163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn * 3786163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn * @param inputStream The {@link InputStream} which should be read. 3886163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn * @return Returns <code>null</code> if the the {@link InputStream} could not be read. Else 3986163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn * returns the content of the {@link InputStream} as {@link String}. 4086163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn */ 4186163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn public static String inputStreamToString(InputStream inputStream) { 4286163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn try { 4386163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn byte[] bytes = new byte[inputStream.available()]; 4486163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn inputStream.read(bytes, 0, bytes.length); 4586163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn String json = new String(bytes); 4686163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn return json; 4786163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn } catch (IOException e) { 4886163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn return null; 4986163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn } 5086163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn } 5186163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn 5286163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn public static Uri getResourceUri(Context context, int resID) { 5386163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn return Uri.parse(ContentResolver.SCHEME_ANDROID_RESOURCE + "://" + 5486163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn context.getResources().getResourcePackageName(resID) + '/' + 5586163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn context.getResources().getResourceTypeName(resID) + '/' + 5686163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn context.getResources().getResourceEntryName(resID)); 5786163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn } 5886163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn} 59