public void initShareIntent() { String path = MediaStore.Images.Media.insertImage( mContext.getContentResolver(), mBitmap, "Image Description", null); Intent shareIntent = new Intent(Intent.ACTION_SEND); // shareIntent.setType("image/*"); try { shareIntent.putExtra( Intent.EXTRA_TEXT, mCharacter.getName() + "\n" + mCharacter.getDescription()); Uri bmpUri = Uri.parse(path); shareIntent.putExtra(Intent.EXTRA_STREAM, bmpUri); // startActivity(Intent.createChooser(shareIntent, "How do you want to share?")); // return shareIntent; } catch (NullPointerException e) { // return shareIntent; startActivity(Intent.createChooser(shareIntent, "How do you want to share?")); } }
@Override public View onCreateView( LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { mContext = getActivity(); final View view = inflater.inflate(R.layout.fragment_detail_info, container, false); Intent intent = getActivity().getIntent(); int hero_id = -2; if (intent != null) { hero_id = intent.getIntExtra(MainActivityFragment.TAG_HERO_ID, -1); } HeroesDBAdapter adapter = new HeroesDBAdapter(getActivity()); adapter.open(); try { mCharacter = adapter.getItem(hero_id); } catch (EmptyCursorException e) { Log.e(LOG_TAG, " EmptyCursorException"); Crashlytics.log(Log.ERROR, LOG_TAG, " EmptyCursorException"); e.printStackTrace(); } ImagePipeline imagePipeline = Fresco.getImagePipeline(); final ImageItem imageItem = mCharacter.getThumbnail(); Uri uri = Uri.parse(imageItem.toString()); ImageRequest imageRequest = ImageRequestBuilder.newBuilderWithSource(uri) .setRequestPriority(Priority.HIGH) .setLowestPermittedRequestLevel(ImageRequest.RequestLevel.FULL_FETCH) .build(); DataSource<CloseableReference<CloseableImage>> dataSource = imagePipeline.fetchDecodedImage(imageRequest, getActivity()); try { dataSource.subscribe( new BaseBitmapDataSubscriber() { @Override public void onNewResultImpl(@Nullable Bitmap bitmap) { if (bitmap == null) { Crashlytics.log( Log.ERROR, LOG_TAG, "Bitmap data source returned success, but bitmap null."); return; } else { mBitmap = bitmap; ImageView imageView = (ImageView) view.findViewById(R.id.imageView_detail); imageView.setImageBitmap(mBitmap); } } @Override public void onFailureImpl(DataSource dataSource) { Crashlytics.log(Log.ERROR, LOG_TAG, "Bitmap data source returned error"); } }, CallerThreadExecutor.getInstance()); } finally { if (dataSource != null) { dataSource.close(); } } TextView textView = (TextView) view.findViewById(R.id.heroe_name); textView.setText(mCharacter.getName()); textView = (TextView) view.findViewById(R.id.heroe_description); textView.setText(mCharacter.getDescription()); adapter.close(); return view; }