// Path: app/src/main/java/io/apptik/multiview/common/BitmapLruCache.java
// public class BitmapLruCache extends LruCache<Uri, Bitmap> {
// 
//     private static BitmapLruCache inst;
// 
//     public static BitmapLruCache get() {
//         if(inst==null) {
//             inst = new BitmapLruCache();
//         }
//         return inst;
//     }
// 
//     public BitmapLruCache(int maxSize) {
//         super(maxSize);
//     }
// 
// 
//     public static int getDefaultLruCacheSize() {
//         final int maxMemory = (int) (Runtime.getRuntime().maxMemory() / 1024);
//         final int cacheSize = maxMemory / 8;
//         return cacheSize;
//     }
// 
//     public BitmapLruCache() {
//         this(getDefaultLruCacheSize());
//     }
// 
//     @Override
//     protected int sizeOf(Uri key, Bitmap value) {
//         return value.getByteCount() / 1024;
//     }
// 
// 
//     public Bitmap getBitmap(Uri uri, Context ctx, int maxW, int maxH) {
//         Bitmap res = get(uri);
//         if (res == null) {
//             InputStream stream = null;
//             try {
//                 stream = ctx.getContentResolver().openInputStream(uri);
// 
//                 res = DecodeUtils.decode(ctx, uri, maxW, maxH);
//             } catch (Exception e) {
//                 Log.w("BitmapLruCache", "Unable to open content: " + uri, e);
//             } finally {
//                 if (stream != null) {
//                     try {
//                         stream.close();
//                     } catch (IOException e) {
//                         Log.w("BitmapLruCache", "Unable to close content: " + uri, e);
//                     }
//                 }
//             }
// 
//             putBitmap(uri, res);
//         }
//         return res;
//     }
// 
// 
//     public void putBitmap(Uri url, Bitmap bitmap) {
//         if(url==null || bitmap==null) return;
//         put(url, bitmap);
//     }
// 
// 
// }
// 
// Path: common/src/main/java/io/apptik/multiview/common/Log.java
// public class Log {
// 
//     private static final int CALL_STACK_INDEX = 5;
//     private static final Pattern ANONYMOUS_CLASS = Pattern.compile("(\\$\\d+)+$");
//     private static boolean DEBUG = false;
// 
//     public static void on() {
//         DEBUG = true;
//     }
//     public static void off() {
//         DEBUG = false;
//     }
//     public static void v(String msg) {
//         if(DEBUG) {
//             android.util.Log.v(getTag(), msg);
//         }
//     }
// 
//     public static void d(String msg) {
//         if(DEBUG) {
//             android.util.Log.d(getTag(), msg);
//         }
//     }
// 
//     public static void i(String msg) {
//         if(DEBUG) {
//             android.util.Log.i(getTag(), msg);
//         }
//     }
// 
//     public static void w(String msg) {
//         if(DEBUG) {
//             android.util.Log.w(getTag(), msg);
//         }
//     }
// 
//     public static void e(String msg) {
//         if(DEBUG) {
//             android.util.Log.e(getTag(), msg);
//         }
//     }
// 
//     public static void wtf(String msg) {
//         if(DEBUG) {
//             android.util.Log.wtf(getTag(), msg);
//         }
//     }
// 
//     private static String getTag() {
//         StackTraceElement[] stackTrace = new Throwable().getStackTrace();
//         if (stackTrace.length <= CALL_STACK_INDEX) {
//             throw new IllegalStateException(
//                     "Synthetic stacktrace didn't have enough elements: are you using proguard?");
//         }
//         return createStackElementTag(stackTrace[CALL_STACK_INDEX]);
//     }
// 
//     protected static String createStackElementTag(StackTraceElement element) {
//         String tag = element.getClassName();
//         Matcher m = ANONYMOUS_CLASS.matcher(tag);
//         if (m.find()) {
//             tag = m.replaceAll("");
//         }
//         return tag.substring(tag.lastIndexOf('.') + 1);
//     }
// }


import android.app.Application;
import io.apptik.multiview.common.BitmapLruCache;
import io.apptik.multiview.common.Log;
/*
 * Copyright (C) 2015 AppTik Project
 *
 * 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 io.apptik.multiview;




public class SampleApp extends Application {

    BitmapLruCache bitmapLruCache;
    @Override
    public void onCreate() {
        super.onCreate();
// Path: app/src/main/java/io/apptik/multiview/common/BitmapLruCache.java
// public class BitmapLruCache extends LruCache<Uri, Bitmap> {
// 
//     private static BitmapLruCache inst;
// 
//     public static BitmapLruCache get() {
//         if(inst==null) {
//             inst = new BitmapLruCache();
//         }
//         return inst;
//     }
// 
//     public BitmapLruCache(int maxSize) {
//         super(maxSize);
//     }
// 
// 
//     public static int getDefaultLruCacheSize() {
//         final int maxMemory = (int) (Runtime.getRuntime().maxMemory() / 1024);
//         final int cacheSize = maxMemory / 8;
//         return cacheSize;
//     }
// 
//     public BitmapLruCache() {
//         this(getDefaultLruCacheSize());
//     }
// 
//     @Override
//     protected int sizeOf(Uri key, Bitmap value) {
//         return value.getByteCount() / 1024;
//     }
// 
// 
//     public Bitmap getBitmap(Uri uri, Context ctx, int maxW, int maxH) {
//         Bitmap res = get(uri);
//         if (res == null) {
//             InputStream stream = null;
//             try {
//                 stream = ctx.getContentResolver().openInputStream(uri);
// 
//                 res = DecodeUtils.decode(ctx, uri, maxW, maxH);
//             } catch (Exception e) {
//                 Log.w("BitmapLruCache", "Unable to open content: " + uri, e);
//             } finally {
//                 if (stream != null) {
//                     try {
//                         stream.close();
//                     } catch (IOException e) {
//                         Log.w("BitmapLruCache", "Unable to close content: " + uri, e);
//                     }
//                 }
//             }
// 
//             putBitmap(uri, res);
//         }
//         return res;
//     }
// 
// 
//     public void putBitmap(Uri url, Bitmap bitmap) {
//         if(url==null || bitmap==null) return;
//         put(url, bitmap);
//     }
// 
// 
// }
// 
// Path: common/src/main/java/io/apptik/multiview/common/Log.java
// public class Log {
// 
//     private static final int CALL_STACK_INDEX = 5;
//     private static final Pattern ANONYMOUS_CLASS = Pattern.compile("(\\$\\d+)+$");
//     private static boolean DEBUG = false;
// 
//     public static void on() {
//         DEBUG = true;
//     }
//     public static void off() {
//         DEBUG = false;
//     }
//     public static void v(String msg) {
//         if(DEBUG) {
//             android.util.Log.v(getTag(), msg);
//         }
//     }
// 
//     public static void d(String msg) {
//         if(DEBUG) {
//             android.util.Log.d(getTag(), msg);
//         }
//     }
// 
//     public static void i(String msg) {
//         if(DEBUG) {
//             android.util.Log.i(getTag(), msg);
//         }
//     }
// 
//     public static void w(String msg) {
//         if(DEBUG) {
//             android.util.Log.w(getTag(), msg);
//         }
//     }
// 
//     public static void e(String msg) {
//         if(DEBUG) {
//             android.util.Log.e(getTag(), msg);
//         }
//     }
// 
//     public static void wtf(String msg) {
//         if(DEBUG) {
//             android.util.Log.wtf(getTag(), msg);
//         }
//     }
// 
//     private static String getTag() {
//         StackTraceElement[] stackTrace = new Throwable().getStackTrace();
//         if (stackTrace.length <= CALL_STACK_INDEX) {
//             throw new IllegalStateException(
//                     "Synthetic stacktrace didn't have enough elements: are you using proguard?");
//         }
//         return createStackElementTag(stackTrace[CALL_STACK_INDEX]);
//     }
// 
//     protected static String createStackElementTag(StackTraceElement element) {
//         String tag = element.getClassName();
//         Matcher m = ANONYMOUS_CLASS.matcher(tag);
//         if (m.find()) {
//             tag = m.replaceAll("");
//         }
//         return tag.substring(tag.lastIndexOf('.') + 1);
//     }
// }


// Path: app/src/main/java/io/apptik/multiview/SampleApp.java
import android.app.Application;
import io.apptik.multiview.common.BitmapLruCache;
import io.apptik.multiview.common.Log;

/*
 * Copyright (C) 2015 AppTik Project
 *
 * 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 io.apptik.multiview;




public class SampleApp extends Application {

    BitmapLruCache bitmapLruCache;
    @Override
    public void onCreate() {
        super.onCreate();
        Log.on();