Я хочу поделиться скачанным 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"));
}
}