Как поделиться загруженными GIF-файлами с Glide на Android? - PullRequest
1 голос
/ 07 марта 2019

Я хочу поделиться скачанным GIF с Glide. Но если я поделюсь GIF, он отправит только файл, а не GIF. Я не знаю, как решить проблему, можете ли вы мне помочь?

Это мой код:

class ShareTask extends AsyncTask<String, Void, File> {

    private final Context context;
    Uri uri;
    public ShareTask(Context context) {
        this.context = context;
    }

    @Override protected File doInBackground(String... params) {
        String url = params[0]; // should be easy to extend to share multiple images at once
        try {
            // Glide v3
            return Glide
                    .with(context)
                    .load(url)
                    .downloadOnly(Target.SIZE_ORIGINAL, Target.SIZE_ORIGINAL)
                    .get() // needs to be called on background thread
                    ;
        } catch (Exception ex) {
            Log.w("SHARE", "Sharing " + uri + " failed", ex);
            return null;
        }
    }
    @Override protected void onPostExecute(File result) {
        if (result == null) { return; }

        uri = getUriForFile(ViewFeedActivity.this, "com.codepath.fileprovider", result);
        runOnUiThread(new Runnable() {

            @Override
            public void run() {
                share(uri); // startActivity probably needs UI thread
            }
        });

    }

    private void share(Uri result) {
        Intent intent = new Intent(Intent.ACTION_SEND);
        intent.setType("image/GIF");
        intent.putExtra(Intent.EXTRA_TEXT, "Share");
        intent.putExtra(Intent.EXTRA_STREAM, result);
        context.startActivity(Intent.createChooser(intent, "Share image"));
    }
}
...