private void setupDetailsOverviewRow() { Log.d(TAG, "doInBackground: " + mSelectedMovie.toString()); final DetailsOverviewRow row = new DetailsOverviewRow(mSelectedMovie); row.setImageDrawable(getResources().getDrawable(R.drawable.default_background)); int width = Utils.convertDpToPixel(getActivity().getApplicationContext(), DETAIL_THUMB_WIDTH); int height = Utils.convertDpToPixel(getActivity().getApplicationContext(), DETAIL_THUMB_HEIGHT); Glide.with(getActivity()) .load(mSelectedMovie.getCardImageUrl()) .centerCrop() .error(R.drawable.default_background) .into( new SimpleTarget<GlideDrawable>(width, height) { @Override public void onResourceReady( GlideDrawable resource, GlideAnimation<? super GlideDrawable> glideAnimation) { Log.d(TAG, "details overview card image url ready: " + resource); row.setImageDrawable(resource); mAdapter.notifyArrayItemRangeChanged(0, mAdapter.size()); } }); SparseArrayObjectAdapter adapter = new SparseArrayObjectAdapter(); adapter.set( ACTION_WATCH_TRAILER, new Action( ACTION_WATCH_TRAILER, getResources().getString(R.string.watch_trailer_1), getResources().getString(R.string.watch_trailer_2))); adapter.set( ACTION_RENT, new Action( ACTION_RENT, getResources().getString(R.string.rent_1), getResources().getString(R.string.rent_2))); adapter.set( ACTION_BUY, new Action( ACTION_BUY, getResources().getString(R.string.buy_1), getResources().getString(R.string.buy_2))); row.setActionsAdapter(adapter); mAdapter.add(row); }