Lots of updates:
[zxing.git] / android / src / com / google / zxing / client / android / Intents.java
1 /*
2  * Copyright (C) 2008 ZXing authors
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16
17 package com.google.zxing.client.android;
18
19 /**
20  * This class provides the constants to use when sending an Intent to Barcode Scanner.
21  * These strings are effectively API and cannot be changed.
22  *
23  * @author dswitkin@google.com (Daniel Switkin)
24  */
25 public final class Intents {
26   private Intents() {
27   }
28
29   public static final class Scan {
30     /**
31      * Send this intent to open the Barcodes app in scanning mode, find a barcode, and return
32      * the results.
33      */
34     public static final String ACTION = "com.google.zxing.client.android.SCAN";
35
36     /**
37      * By default, sending Scan.ACTION will decode all barcodes that we understand. However it
38      * may be useful to limit scanning to certain formats. Use Intent.putExtra(MODE, value) with
39      * one of the values below (optional).
40      */
41     public static final String MODE = "SCAN_MODE";
42
43     /**
44      * Decode only UPC and EAN barcodes. This is the right choice for shopping apps which get
45      * prices, reviews, etc. for products.
46      */
47     public static final String PRODUCT_MODE = "PRODUCT_MODE";
48
49     /**
50      * Decode only 1D barcodes (currently UPC, EAN, Code 39, and Code 128).
51      */
52     public static final String ONE_D_MODE = "ONE_D_MODE";
53
54     /**
55      * Decode only QR codes.
56      */
57     public static final String QR_CODE_MODE = "QR_CODE_MODE";
58
59     /**
60      * If a barcode is found, Barcodes returns RESULT_OK to onActivityResult() of the app which
61      * requested the scan via startSubActivity(). The barcodes contents can be retrieved with
62      * intent.getStringExtra(RESULT). If the user presses Back, the result code will be
63      * RESULT_CANCELED.
64      */
65     public static final String RESULT = "SCAN_RESULT";
66
67     /**
68      * Call intent.getStringExtra(RESULT_FORMAT) to determine which barcode format was found.
69      * See Contents.Format for possible values.
70      */
71     public static final String RESULT_FORMAT = "SCAN_RESULT_FORMAT";
72
73     private Scan() {
74     }
75   }
76
77   public static final class Encode {
78     /**
79      * Send this intent to encode a piece of data as a QR code and display it full screen, so
80      * that another person can scan the barcode from your screen.
81      */
82     public static final String ACTION = "com.google.zxing.client.android.ENCODE";
83
84     /**
85      * The data to encode. Use Intent.putExtra(DATA, data) where data is either a String or a
86      * Bundle, depending on the type and format specified. Non-QR Code formats should
87      * just use a String here. For QR Code, see Contents for details.
88      */
89     public static final String DATA = "ENCODE_DATA";
90
91     /**
92      * The type of data being supplied if the format is QR Code. Use
93      * Intent.putExtra(TYPE, type) with one of Contents.Type.
94      */
95     public static final String TYPE = "ENCODE_TYPE";
96     
97     /**
98      * The barcode format to be displayed. If this isn't specified or is blank, 
99      * it defaults to QR Code. Use Intent.putExtra(FORMAT, format), where
100      * format is one of Contents.Format. 
101      */
102     public static final String FORMAT = "com.google.zxing.client.android.ENCODE_FORMAT";
103
104     private Encode() {
105     }
106   }
107
108   public static final class SearchBookContents {
109     /**
110      * Use Google Book Search to search the contents of the book provided.
111      */
112     public static final String ACTION = "com.google.zxing.client.android.SEARCH_BOOK_CONTENTS";
113
114     /**
115      * The book to search, identified by ISBN number.
116      */
117     public static final String ISBN = "ISBN";
118
119     /**
120      * An optional field which is the text to search for.
121      */
122     public static final String QUERY = "QUERY";
123
124     private SearchBookContents() {
125     }
126   }
127
128   public static final class Share {
129     /**
130      * Give the user a choice of items to encode as a barcode, then render it as a QR Code and
131      * display onscreen for a friend to scan with their phone.
132      */
133     public static final String ACTION = "com.google.zxing.client.android.SHARE";
134
135     private Share() {
136     }
137   }
138 }