mirror of
https://github.com/zxing/zxing.git
synced 2024-11-09 20:44:03 -08:00
Added 'shareText' integration code from Isaac
git-svn-id: https://zxing.googlecode.com/svn/trunk@928 59b500cc-1b3d-0410-9834-0bbf25fbcc57
This commit is contained in:
parent
361f4504a3
commit
89121c71bb
1
AUTHORS
1
AUTHORS
|
@ -8,6 +8,7 @@ Christian Brunschen (Google)
|
|||
Daniel Switkin (Google)
|
||||
David Albert (Bug Labs)
|
||||
Fred Lin (Anobiit)
|
||||
Isaac Potoczny-Jones
|
||||
John Connolly (Bug Labs)
|
||||
Joseph Wain (Google)
|
||||
Kevin O'Sullivan (SITA)
|
||||
|
|
|
@ -28,6 +28,8 @@ import android.net.Uri;
|
|||
* way to invoke barcode scanning and receive the result, without any need to integrate, modify, or learn the
|
||||
* project's source code.</p>
|
||||
*
|
||||
* <h2>Initiating a barcode can</h2>
|
||||
*
|
||||
* <p>Integration is essentially as easy as calling {@link #initiateScan(Activity)} and waiting
|
||||
* for the result in your app.</p>
|
||||
*
|
||||
|
@ -57,31 +59,40 @@ import android.net.Uri;
|
|||
* {@link #initiateScan(Activity, int, int, int, int)} to customize the download prompt with
|
||||
* different text labels.</p>
|
||||
*
|
||||
* <h2>Sharing text via barcode</h2>
|
||||
*
|
||||
* <p>To share text, encoded as a QR Code on-screen, similarly, see {@link #shareText(Activity, String)}.</p>
|
||||
*
|
||||
* <p>Some code, particularly download integration, was contributed from the Anobiit application.</p>
|
||||
*
|
||||
* @author Sean Owen
|
||||
* @author Fred Lin
|
||||
* @author Isaac Potoczny-Jones
|
||||
*/
|
||||
public final class IntentIntegrator {
|
||||
|
||||
public static final int REQUEST_CODE = 0x0ba7c0de; // get it?
|
||||
|
||||
private static final String DEFAULT_TITLE = "Install Barcode Scanner?";
|
||||
private static final String DEFAULT_MESSAGE =
|
||||
"This application requires Barcode Scanner. Would you like to install it?";
|
||||
private static final String DEFAULT_YES = "Yes";
|
||||
private static final String DEFAULT_NO = "No";
|
||||
|
||||
private IntentIntegrator() {
|
||||
}
|
||||
|
||||
/**
|
||||
* See {@link #initiateScan(Activity, String, String, String, String)} -- same, but uses default English labels.
|
||||
* See {@link #initiateScan(Activity, String, String, String, String)} --
|
||||
* same, but uses default English labels.
|
||||
*/
|
||||
public static void initiateScan(Activity activity) {
|
||||
initiateScan(activity,
|
||||
"Install Barcode Scanner?",
|
||||
"This application requires Barcode Scanner. Would you like to install it?",
|
||||
"Yes",
|
||||
"No");
|
||||
initiateScan(activity, DEFAULT_TITLE, DEFAULT_MESSAGE, DEFAULT_YES, DEFAULT_NO);
|
||||
}
|
||||
|
||||
/**
|
||||
* See {@link #initiateScan(Activity, String, String, String, String)} -- same, but takes string IDs which refer
|
||||
* See {@link #initiateScan(Activity, String, String, String, String)} --
|
||||
* same, but takes string IDs which refer
|
||||
* to the {@link Activity}'s resource bundle entries.
|
||||
*/
|
||||
public static void initiateScan(Activity activity,
|
||||
|
@ -101,8 +112,10 @@ public final class IntentIntegrator {
|
|||
*
|
||||
* @param stringTitle title of dialog prompting user to download Barcode Scanner
|
||||
* @param stringMessage text of dialog prompting user to download Barcode Scanner
|
||||
* @param stringButtonYes text of button user clicks when agreeing to download Barcode Scanner (e.g. "Yes")
|
||||
* @param stringButtonNo text of button user clicks when declining to download Barcode Scanner (e.g. "No")
|
||||
* @param stringButtonYes text of button user clicks when agreeing to download
|
||||
* Barcode Scanner (e.g. "Yes")
|
||||
* @param stringButtonNo text of button user clicks when declining to download
|
||||
* Barcode Scanner (e.g. "No")
|
||||
* @return the contents of the barcode that was scanned, or null if none was found
|
||||
* @throws InterruptedException if timeout expires before a scan completes
|
||||
*/
|
||||
|
@ -143,7 +156,8 @@ public final class IntentIntegrator {
|
|||
|
||||
|
||||
/**
|
||||
* <p>Call this from your {@link Activity}'s {@link Activity#onActivityResult(int, int, Intent)} method.</p>
|
||||
* <p>Call this from your {@link Activity}'s
|
||||
* {@link Activity#onActivityResult(int, int, Intent)} method.</p>
|
||||
*
|
||||
* @return null if the event handled here was not related to {@link IntentIntegrator}, or
|
||||
* else an {@link IntentResult} containing the result of the scan. If the user cancelled scanning,
|
||||
|
@ -162,4 +176,60 @@ public final class IntentIntegrator {
|
|||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* See {@link #shareText(Activity, String, String, String, String, String)} --
|
||||
* same, but uses default English labels.
|
||||
*/
|
||||
public static void shareText(Activity activity, String text) {
|
||||
shareText(activity, text, DEFAULT_TITLE, DEFAULT_MESSAGE, DEFAULT_YES, DEFAULT_NO);
|
||||
}
|
||||
|
||||
/**
|
||||
* See {@link #shareText(Activity, String, String, String, String, String)} --
|
||||
* same, but takes string IDs which refer to the {@link Activity}'s resource bundle entries.
|
||||
*/
|
||||
public static void shareText(Activity activity,
|
||||
String text,
|
||||
int stringTitle,
|
||||
int stringMessage,
|
||||
int stringButtonYes,
|
||||
int stringButtonNo) {
|
||||
shareText(activity,
|
||||
text,
|
||||
activity.getString(stringTitle),
|
||||
activity.getString(stringMessage),
|
||||
activity.getString(stringButtonYes),
|
||||
activity.getString(stringButtonNo));
|
||||
}
|
||||
|
||||
/**
|
||||
* Shares the given text by encoding it as a barcode, such that another user can
|
||||
* scan the text off the screen of the device.
|
||||
*
|
||||
* @param text the text string to encode as a barcode
|
||||
* @param stringTitle title of dialog prompting user to download Barcode Scanner
|
||||
* @param stringMessage text of dialog prompting user to download Barcode Scanner
|
||||
* @param stringButtonYes text of button user clicks when agreeing to download
|
||||
* Barcode Scanner (e.g. "Yes")
|
||||
* @param stringButtonNo text of button user clicks when declining to download
|
||||
* Barcode Scanner (e.g. "No")
|
||||
*/
|
||||
public static void shareText(Activity activity,
|
||||
String text,
|
||||
String stringTitle,
|
||||
String stringMessage,
|
||||
String stringButtonYes,
|
||||
String stringButtonNo) {
|
||||
|
||||
Intent intent = new Intent();
|
||||
intent.setAction("com.google.zxing.client.android.ENCODE");
|
||||
intent.putExtra("ENCODE_TYPE", "TEXT_TYPE");
|
||||
intent.putExtra("ENCODE_DATA", text);
|
||||
try {
|
||||
activity.startActivity(intent);
|
||||
} catch (ActivityNotFoundException e) {
|
||||
showDownloadDialog(activity, stringTitle, stringMessage, stringButtonYes, stringButtonNo);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue