
This app needs to be able to generate QR Codes regardless of what other app might be installed, so zxing's core.jar needs to be embedded in this app. This also includes two classes which are modified versions of ZXing classes that allow the generation of QR Codes without the Barcode Scanner app being installed: https://stackoverflow.com/questions/4782543/integration-zxing-library-directly-into-my-android-application The classes are src/com/google/zxing/encode/Contents.java which is a copy of zxing/android/src/com/google/zxing/client/android/Contents.java; and src/com/google/zxing/encode/QRCodeEncoder.java which is a heavily stripped and modified version of zxing/android/src/com/google/zxing/client/android/encode/QRCodeEncoder.java refs #3204 https://dev.guardianproject.info/issues/3204 refs #2470 https://dev.guardianproject.info/issues/2470
115 lines
3.7 KiB
Java
Executable File
115 lines
3.7 KiB
Java
Executable File
/*
|
|
* Copyright (C) 2008 ZXing authors
|
|
*
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* https://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*/
|
|
|
|
package com.google.zxing.encode;
|
|
|
|
import android.provider.ContactsContract;
|
|
|
|
/**
|
|
* The set of constants to use when sending Barcode Scanner an Intent which requests a barcode
|
|
* to be encoded.
|
|
*
|
|
* @author dswitkin@google.com (Daniel Switkin)
|
|
*/
|
|
public final class Contents {
|
|
private Contents() {
|
|
}
|
|
|
|
public static final class Type {
|
|
/**
|
|
* Plain text. Use Intent.putExtra(DATA, string). This can be used for URLs too, but string
|
|
* must include "http://" or "https://".
|
|
*/
|
|
public static final String TEXT = "TEXT_TYPE";
|
|
|
|
/**
|
|
* An email type. Use Intent.putExtra(DATA, string) where string is the email address.
|
|
*/
|
|
public static final String EMAIL = "EMAIL_TYPE";
|
|
|
|
/**
|
|
* Use Intent.putExtra(DATA, string) where string is the phone number to call.
|
|
*/
|
|
public static final String PHONE = "PHONE_TYPE";
|
|
|
|
/**
|
|
* An SMS type. Use Intent.putExtra(DATA, string) where string is the number to SMS.
|
|
*/
|
|
public static final String SMS = "SMS_TYPE";
|
|
|
|
/**
|
|
* A contact. Send a request to encode it as follows:
|
|
* <p/>
|
|
* import android.provider.Contacts;
|
|
* <p/>
|
|
* Intent intent = new Intent(Intents.Encode.ACTION);
|
|
* intent.putExtra(Intents.Encode.TYPE, CONTACT);
|
|
* Bundle bundle = new Bundle();
|
|
* bundle.putString(Contacts.Intents.Insert.NAME, "Jenny");
|
|
* bundle.putString(Contacts.Intents.Insert.PHONE, "8675309");
|
|
* bundle.putString(Contacts.Intents.Insert.EMAIL, "jenny@the80s.com");
|
|
* bundle.putString(Contacts.Intents.Insert.POSTAL, "123 Fake St. San Francisco, CA 94102");
|
|
* intent.putExtra(Intents.Encode.DATA, bundle);
|
|
*/
|
|
public static final String CONTACT = "CONTACT_TYPE";
|
|
|
|
/**
|
|
* A geographic location. Use as follows:
|
|
* Bundle bundle = new Bundle();
|
|
* bundle.putFloat("LAT", latitude);
|
|
* bundle.putFloat("LONG", longitude);
|
|
* intent.putExtra(Intents.Encode.DATA, bundle);
|
|
*/
|
|
public static final String LOCATION = "LOCATION_TYPE";
|
|
|
|
private Type() {
|
|
}
|
|
}
|
|
|
|
public static final String URL_KEY = "URL_KEY";
|
|
|
|
public static final String NOTE_KEY = "NOTE_KEY";
|
|
|
|
/**
|
|
* When using Type.CONTACT, these arrays provide the keys for adding or retrieving multiple
|
|
* phone numbers and addresses.
|
|
*/
|
|
public static final String[] PHONE_KEYS = {
|
|
ContactsContract.Intents.Insert.PHONE,
|
|
ContactsContract.Intents.Insert.SECONDARY_PHONE,
|
|
ContactsContract.Intents.Insert.TERTIARY_PHONE
|
|
};
|
|
|
|
public static final String[] PHONE_TYPE_KEYS = {
|
|
ContactsContract.Intents.Insert.PHONE_TYPE,
|
|
ContactsContract.Intents.Insert.SECONDARY_PHONE_TYPE,
|
|
ContactsContract.Intents.Insert.TERTIARY_PHONE_TYPE
|
|
};
|
|
|
|
public static final String[] EMAIL_KEYS = {
|
|
ContactsContract.Intents.Insert.EMAIL,
|
|
ContactsContract.Intents.Insert.SECONDARY_EMAIL,
|
|
ContactsContract.Intents.Insert.TERTIARY_EMAIL
|
|
};
|
|
|
|
public static final String[] EMAIL_TYPE_KEYS = {
|
|
ContactsContract.Intents.Insert.EMAIL_TYPE,
|
|
ContactsContract.Intents.Insert.SECONDARY_EMAIL_TYPE,
|
|
ContactsContract.Intents.Insert.TERTIARY_EMAIL_TYPE
|
|
};
|
|
|
|
}
|