package yuku.alkitab.imagesharer;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.net.Uri;
import android.os.Bundle;
import android.support.v4.app.ShareCompat;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
public class ShareVerseActivity extends AppCompatActivity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_share_verse);
// get the selected verse and its text
Intent intent = getIntent();
int[] aris = intent.getIntArrayExtra("aris");
String[] verseTexts = intent.getStringArrayExtra("verseTexts");
// safety check
if (aris == null || aris.length < 1 || verseTexts == null || verseTexts.length < 1) {
finish();
return;
}
// this example does not support multiple verses
// so use the first one only
int book = (aris[0] & 0xff0000) >> 16;
int chapter = (aris[0] & 0xff00) >> 8;
int verse = aris[0] & 0xff;
// get the name of book
String bookName = "unknown";
if (book < 66) {
bookName = new String[] {"Genesis", "Exodus", "Leviticus", "Numbers", "Deuteronomy", "Joshua", "Judges", "Ruth", "1 Samuel", "2 Samuel", "1 Kings", "2 Kings", "1 Chronicles", "2 Chronicles", "Ezra", "Nehemiah", "Esther", "Job", "Psalms", "Proverbs", "Ecclesiastes", "Song of Solomon", "Isaiah", "Jeremiah", "Lamentations", "Ezekiel", "Daniel", "Hosea", "Joel", "Amos", "Obadiah", "Jonah", "Micah", "Nahum", "Habakkuk", "Zephaniah", "Haggai", "Zechariah", "Malachi", "Matthew", "Mark", "Luke", "John", "Acts", "Romans", "1 Corinthians", "2 Corinthians", "Galatians", "Ephesians", "Philippians", "Colossians", "1 Thessalonians", "2 Thessalonians", "1 Timothy", "2 Timothy", "Titus", "Philemon", "Hebrews", "James", "1 Peter", "2 Peter", "1 John", "2 John", "3 John", "Jude", "Revelation"}[book];
}
// construct a reference string: Bookname chapter:verse
String reference = bookName + " " + chapter + ":" + verse;
// draw on a bitmap
Bitmap b = Bitmap.createBitmap(800, 800, Bitmap.Config.ARGB_8888);
Canvas c = new Canvas(b);
Paint p = new Paint();
p.setColor(0xff0000ff); // blue
c.drawText(reference, 40, 200, p);
c.drawText(verseTexts[0], 40, 240, p);
// save as image and share
try {
FileOutputStream f = new FileOutputStream("/sdcard/tmp.png");
b.compress(Bitmap.CompressFormat.PNG, 100, f);
f.close();
ShareCompat.IntentBuilder.from(this)
.setType("image/png")
.addStream(Uri.fromFile(new File("/sdcard/tmp.png")))
.startChooser();
} catch (IOException e) {
Log.e("Error", "error saving image", e); // do something
}
}
}