package cz.destil.wearsquare.util; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.os.AsyncTask; import com.google.android.gms.common.api.GoogleApiClient; import com.google.android.gms.wearable.Asset; import com.google.android.gms.wearable.Wearable; import java.io.InputStream; /** * Workaround for: https://github.com/Mariuxtheone/Teleport/issues/14 */ public abstract class ImageFromAssetTask extends AsyncTask<Object, Void, Bitmap> { @Override protected Bitmap doInBackground(Object... params) { Asset asset = (Asset) params[0]; GoogleApiClient apiClient = (GoogleApiClient) params[1]; if (asset == null || apiClient == null || !apiClient.isConnected()) { return null; } try { InputStream assetInputStream = Wearable.DataApi.getFdForAsset( apiClient, asset).await().getInputStream(); if (assetInputStream == null) { return null; } return BitmapFactory.decodeStream(assetInputStream); } catch (NullPointerException e) { // workaround return null; } } @Override protected abstract void onPostExecute(Bitmap bitmap); }