Reputation: 13
Currently, I am getting this error: cannot find symbol Bitmap bm = BitmapFactory.decodeResource(context.getResources(), R.drawable.bg);
I am trying to add Share to Instagram Story button. I had success with share to Whatsapp button. but stuck at this... does anyone can help me? I want to add "Share to Instagram story" button on onExitButtonClicked
public class CustomDialogClass extends Dialog implements
android.view.View.OnClickListener {
public CustomDialogListener listener;
public Dialog d;
public Button yes, no, exit;
public CustomDialogClass(@NonNull Context context,
CustomDialogListener listener) {
super(context);
this.listener = listener ;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.custom_dialog);
yes = (Button) findViewById(R.id.btn_yes);
no = (Button) findViewById(R.id.btn_no);
exit = (Button) findViewById(R.id.btn_exit);
yes.setOnClickListener(this);
no.setOnClickListener(this);
exit.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.btn_yes:
listener.onYesButtonClicked();
break;
case R.id.btn_no:
listener.onNoButtonClicked();
break;
case R.id.btn_exit:
listener.onExitButtonClicked();
break;
default:
break;
}
dismiss();
}
public interface CustomDialogListener {
public void onYesButtonClicked() ;
public void onNoButtonClicked() ;
public void onExitButtonClicked() ;
}
}
public void onBackPressed() {
CustomDialogClass cd = new CustomDialogClass(this, new CustomDialogClass.CustomDialogListener() {
@Override
public void onYesButtonClicked() {
try {
Intent sendIntent = new Intent();
sendIntent.setAction(Intent.ACTION_SEND);
sendIntent.putExtra(Intent.EXTRA_TEXT, "sample text");
sendIntent.setType("text/plain");
sendIntent.setPackage("com.whatsapp");
startActivity(sendIntent);
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
public void onNoButtonClicked() {
try {
Intent shareIntent = new Intent(Intent.ACTION_SEND);
shareIntent.setType("text/plain");
shareIntent.putExtra(Intent.EXTRA_TEXT, "URLyouWantToShare");
startActivity(Intent.createChooser(shareIntent, "Share..."));
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
public void onExitButtonClicked() {
Bitmap bm = BitmapFactory.decodeResource(context.getResources(), R.drawable.bg);
File extStorageDirectory = context.getExternalCacheDir();
File stickerFile = new File(extStorageDirectory, "bg.png");
try {
FileOutputStream outStream = new FileOutputStream(stickerFile);
bm.compress(Bitmap.CompressFormat.PNG, 100, outStream);
outStream.flush();
outStream.close();
} catch (IOException e) {
Log.e("TEST", e.getMessage());
}
Uri stickerUri = FileProvider.getUriForFile(this, "con.pixoid.upsend.fileprovider", stickerFile);
// Uri stickerUri = Uri.fromFile(stickerFile);
String linkUrl = "https://stackoverflow.com";
Intent intent = new Intent("com.instagram.share.ADD_TO_STORY");
intent.setType("image/*");
intent.putExtra("interactive_asset_uri", stickerUri);
intent.putExtra("content_url", linkUrl);
intent.putExtra("top_background_color", "#33FF33");
intent.putExtra("bottom_background_color", "#FF00FF");
grantUriPermission("com.instagram.android", stickerUri, Intent.FLAG_GRANT_READ_URI_PERMISSION);
if (getPackageManager().resolveActivity(intent, 0) != null) {
startActivityForResult(intent, 0);
}
}
});
cd.show();
}
Upvotes: 0
Views: 1237
Reputation: 61
Here's a Kotlin example:
private fun shareStory(){
val sticker = BitmapFactory.decodeResource(resources,
R.drawable.your_logo)
val savedImageURL: String = MediaStore.Images.Media.insertImage(
requireContext().contentResolver,
sticker,
"test_image",
"image_description"
)
val savedImageURI = Uri.parse(savedImageURL)
val storiesIntent = Intent("com.instagram.share.ADD_TO_STORY").apply {
type = "image/jpeg"
addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION)
setPackage("com.instagram.android")
putExtra("interactive_asset_uri", savedImageURI)
putExtra("content_url", "something");
putExtra("top_background_color", "#33FF33");
putExtra("bottom_background_color", "#FF00FF")
}
requireContext().grantUriPermission("com.instagram.android", savedImageURI, Intent.FLAG_GRANT_READ_URI_PERMISSION)
this.startActivity(storiesIntent)
}
Also here's a link for the official doc: Instagram Stories
Upvotes: 4