1/*
2 * Copyright (C) 2014 Google Inc. All Rights Reserved.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 *      http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17package com.example.android.musicservicedemo;
18
19import android.graphics.Bitmap;
20import android.graphics.BitmapFactory;
21import android.util.Log;
22
23import java.io.IOException;
24import java.io.InputStream;
25import java.net.HttpURLConnection;
26import java.net.URL;
27
28public class Utils {
29
30    private static final String TAG = "Utils";
31
32    /**
33     * Utility method to check that parameters are not null
34     *
35     * @param object
36     */
37    public static final void checkNotNull(Object object) {
38        if (object == null) {
39            throw new NullPointerException();
40        }
41    }
42
43    /**
44     * Utility to download a bitmap
45     *
46     * @param source
47     * @return
48     */
49    public static Bitmap getBitmapFromURL(String source) {
50        try {
51            URL url = new URL(source);
52            HttpURLConnection httpConnection = (HttpURLConnection) url.openConnection();
53            httpConnection.setDoInput(true);
54            httpConnection.connect();
55            InputStream inputStream = httpConnection.getInputStream();
56            return BitmapFactory.decodeStream(inputStream);
57        } catch (IOException e) {
58            Log.e(TAG, "getBitmapFromUrl: " + source, e);
59        }
60        return null;
61    }
62
63    /**
64     * Utility method to wrap an index
65     *
66     * @param i
67     * @param size
68     * @return
69     */
70    public static int wrapIndex(int i, int size) {
71        int m = i % size;
72        if (m < 0) { // java modulus can be negative
73            m += size;
74        }
75        return m;
76    }
77}
78