diff options
author | Dominik Schürmann <dominik@dominikschuermann.de> | 2013-09-10 23:19:34 +0200 |
---|---|---|
committer | Dominik Schürmann <dominik@dominikschuermann.de> | 2013-09-10 23:19:34 +0200 |
commit | 9a5707c41526f5fbcb45f72ec50c6f2efdd83056 (patch) | |
tree | 7d12d96c5f842d33e4a83f7f2316e05986e5d731 /OpenPGP-Keychain-API-Demo | |
parent | aa449d2d4f3bfab8befc41631846ec8623781d6b (diff) | |
download | open-keychain-9a5707c41526f5fbcb45f72ec50c6f2efdd83056.tar.gz open-keychain-9a5707c41526f5fbcb45f72ec50c6f2efdd83056.tar.bz2 open-keychain-9a5707c41526f5fbcb45f72ec50c6f2efdd83056.zip |
rename api to openpgp api
Diffstat (limited to 'OpenPGP-Keychain-API-Demo')
-rw-r--r-- | OpenPGP-Keychain-API-Demo/AndroidManifest.xml | 19 | ||||
-rw-r--r-- | OpenPGP-Keychain-API-Demo/src/org/openintents/openpgp/IOpenPgpCallback.aidl (renamed from OpenPGP-Keychain-API-Demo/src/org/openintents/crypto/ICryptoCallback.aidl) | 13 | ||||
-rw-r--r-- | OpenPGP-Keychain-API-Demo/src/org/openintents/openpgp/IOpenPgpService.aidl (renamed from OpenPGP-Keychain-API-Demo/src/org/openintents/crypto/ICryptoService.aidl) | 14 | ||||
-rw-r--r-- | OpenPGP-Keychain-API-Demo/src/org/openintents/openpgp/OpenPgpError.aidl (renamed from OpenPGP-Keychain-API-Demo/src/org/openintents/crypto/CryptoError.aidl) | 6 | ||||
-rw-r--r-- | OpenPGP-Keychain-API-Demo/src/org/openintents/openpgp/OpenPgpError.java (renamed from OpenPGP-Keychain-API-Demo/src/org/openintents/crypto/CryptoError.java) | 23 | ||||
-rw-r--r-- | OpenPGP-Keychain-API-Demo/src/org/openintents/openpgp/OpenPgpServiceConnection.java (renamed from OpenPGP-Keychain-API-Demo/src/org/openintents/crypto/CryptoServiceConnection.java) | 18 | ||||
-rw-r--r-- | OpenPGP-Keychain-API-Demo/src/org/openintents/openpgp/OpenPgpSignatureResult.aidl (renamed from OpenPGP-Keychain-API-Demo/src/org/openintents/crypto/CryptoSignatureResult.aidl) | 6 | ||||
-rw-r--r-- | OpenPGP-Keychain-API-Demo/src/org/openintents/openpgp/OpenPgpSignatureResult.java (renamed from OpenPGP-Keychain-API-Demo/src/org/openintents/crypto/CryptoSignatureResult.java) | 20 | ||||
-rw-r--r-- | OpenPGP-Keychain-API-Demo/src/org/sufficientlysecure/keychain/demo/BaseActivity.java | 2 | ||||
-rw-r--r-- | OpenPGP-Keychain-API-Demo/src/org/sufficientlysecure/keychain/demo/OpenPGPProviderActivity.java (renamed from OpenPGP-Keychain-API-Demo/src/org/sufficientlysecure/keychain/demo/CryptoProviderDemoActivity.java) | 50 |
10 files changed, 79 insertions, 92 deletions
diff --git a/OpenPGP-Keychain-API-Demo/AndroidManifest.xml b/OpenPGP-Keychain-API-Demo/AndroidManifest.xml index 75d02482b..074e6caa7 100644 --- a/OpenPGP-Keychain-API-Demo/AndroidManifest.xml +++ b/OpenPGP-Keychain-API-Demo/AndroidManifest.xml @@ -4,9 +4,6 @@ android:versionCode="1" android:versionName="1.0" > - <uses-permission android:name="org.sufficientlysecure.keychain.permission.ACCESS_API" /> - <uses-permission android:name="org.sufficientlysecure.keychain.permission.ACCESS_KEYS" /> - <uses-sdk android:minSdkVersion="7" android:targetSdkVersion="14" /> @@ -25,25 +22,13 @@ </intent-filter> </activity> <activity - android:name=".IntentDemoActivity" - android:label="Intent Demo 1" - android:windowSoftInputMode="stateHidden" /> - <activity - android:name=".CryptoProviderDemoActivity" - android:label="Crypto Provider" - android:windowSoftInputMode="stateHidden" /> - <activity - android:name=".AidlDemoActivity" - android:label="Aidl Demo (ACCESS_API permission)" + android:name=".OpenPGPProviderActivity" + android:label="OpenPGP Provider" android:windowSoftInputMode="stateHidden" /> <activity android:name=".AidlDemoActivity2" android:label="Aidl Demo (ACCESS_KEYS permission)" android:windowSoftInputMode="stateHidden" /> - <activity - android:name=".ContentProviderDemoActivity" - android:label="Content Provider Demo" - android:windowSoftInputMode="stateHidden" /> </application> </manifest>
\ No newline at end of file diff --git a/OpenPGP-Keychain-API-Demo/src/org/openintents/crypto/ICryptoCallback.aidl b/OpenPGP-Keychain-API-Demo/src/org/openintents/openpgp/IOpenPgpCallback.aidl index 1f910d4c6..e0ac43d22 100644 --- a/OpenPGP-Keychain-API-Demo/src/org/openintents/crypto/ICryptoCallback.aidl +++ b/OpenPGP-Keychain-API-Demo/src/org/openintents/openpgp/IOpenPgpCallback.aidl @@ -14,19 +14,18 @@ * limitations under the License. */ -package org.openintents.crypto; +package org.openintents.openpgp; -import org.openintents.crypto.CryptoSignatureResult; -import org.openintents.crypto.CryptoError; +import org.openintents.openpgp.OpenPgpSignatureResult; +import org.openintents.openpgp.OpenPgpError; -interface ICryptoCallback { +interface IOpenPgpCallback { /** * CryptoSignatureResult is only returned if the Callback was used from decryptAndVerify * */ - oneway void onSuccess(in byte[] outputBytes, in CryptoSignatureResult signatureResult); + oneway void onSuccess(in byte[] outputBytes, in OpenPgpSignatureResult signatureResult); - - oneway void onError(in CryptoError error); + oneway void onError(in OpenPgpError error); }
\ No newline at end of file diff --git a/OpenPGP-Keychain-API-Demo/src/org/openintents/crypto/ICryptoService.aidl b/OpenPGP-Keychain-API-Demo/src/org/openintents/openpgp/IOpenPgpService.aidl index 854ca0b05..1d54ac77f 100644 --- a/OpenPGP-Keychain-API-Demo/src/org/openintents/crypto/ICryptoService.aidl +++ b/OpenPGP-Keychain-API-Demo/src/org/openintents/openpgp/IOpenPgpService.aidl @@ -14,15 +14,15 @@ * limitations under the License. */ -package org.openintents.crypto; +package org.openintents.openpgp; -import org.openintents.crypto.ICryptoCallback; +import org.openintents.openpgp.IOpenPgpCallback; /** * All methods are oneway, which means they are asynchronous and non-blocking. * Results are returned to the callback, which has to be implemented on client side. */ -interface ICryptoService { +interface IOpenPgpService { /** * Encrypt @@ -36,7 +36,7 @@ interface ICryptoService { * @param callback * Callback where to return results */ - oneway void encrypt(in byte[] inputBytes, in String[] encryptionUserIds, in boolean asciiArmor, in ICryptoCallback callback); + oneway void encrypt(in byte[] inputBytes, in String[] encryptionUserIds, in boolean asciiArmor, in IOpenPgpCallback callback); /** * Sign @@ -48,7 +48,7 @@ interface ICryptoService { * @param callback * Callback where to return results */ - oneway void sign(in byte[] inputBytes, in boolean asciiArmor, in ICryptoCallback callback); + oneway void sign(in byte[] inputBytes, in boolean asciiArmor, in IOpenPgpCallback callback); /** * Encrypt and sign @@ -64,7 +64,7 @@ interface ICryptoService { * @param callback * Callback where to return results */ - oneway void encryptAndSign(in byte[] inputBytes, in String[] encryptionUserIds, in boolean asciiArmor, in ICryptoCallback callback); + oneway void encryptAndSign(in byte[] inputBytes, in String[] encryptionUserIds, in boolean asciiArmor, in IOpenPgpCallback callback); /** * Decrypts and verifies given input bytes. If no signature is present this method @@ -75,6 +75,6 @@ interface ICryptoService { * @param callback * Callback where to return results */ - oneway void decryptAndVerify(in byte[] inputBytes, in ICryptoCallback callback); + oneway void decryptAndVerify(in byte[] inputBytes, in IOpenPgpCallback callback); }
\ No newline at end of file diff --git a/OpenPGP-Keychain-API-Demo/src/org/openintents/crypto/CryptoError.aidl b/OpenPGP-Keychain-API-Demo/src/org/openintents/openpgp/OpenPgpError.aidl index 7b67c8995..7a6bed1e6 100644 --- a/OpenPGP-Keychain-API-Demo/src/org/openintents/crypto/CryptoError.aidl +++ b/OpenPGP-Keychain-API-Demo/src/org/openintents/openpgp/OpenPgpError.aidl @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.openintents.crypto; +package org.openintents.openpgp; -// Declare CryptoError so AIDL can find it and knows that it implements the parcelable protocol. -parcelable CryptoError;
\ No newline at end of file +// Declare OpenPgpError so AIDL can find it and knows that it implements the parcelable protocol. +parcelable OpenPgpError;
\ No newline at end of file diff --git a/OpenPGP-Keychain-API-Demo/src/org/openintents/crypto/CryptoError.java b/OpenPGP-Keychain-API-Demo/src/org/openintents/openpgp/OpenPgpError.java index 265fe2633..66f168d89 100644 --- a/OpenPGP-Keychain-API-Demo/src/org/openintents/crypto/CryptoError.java +++ b/OpenPGP-Keychain-API-Demo/src/org/openintents/openpgp/OpenPgpError.java @@ -14,24 +14,27 @@ * limitations under the License. */ -package org.openintents.crypto; +package org.openintents.openpgp; import android.os.Parcel; import android.os.Parcelable; -public class CryptoError implements Parcelable { +public class OpenPgpError implements Parcelable { + public static final int ID_NO_OR_WRONG_PASSPHRASE = 1; + public static final int ID_NO_USER_IDS = 2; + int errorId; String message; - public CryptoError() { + public OpenPgpError() { } - public CryptoError(int errorId, String message) { + public OpenPgpError(int errorId, String message) { this.errorId = errorId; this.message = message; } - public CryptoError(CryptoError b) { + public OpenPgpError(OpenPgpError b) { this.errorId = b.errorId; this.message = b.message; } @@ -61,16 +64,16 @@ public class CryptoError implements Parcelable { dest.writeString(message); } - public static final Creator<CryptoError> CREATOR = new Creator<CryptoError>() { - public CryptoError createFromParcel(final Parcel source) { - CryptoError error = new CryptoError(); + public static final Creator<OpenPgpError> CREATOR = new Creator<OpenPgpError>() { + public OpenPgpError createFromParcel(final Parcel source) { + OpenPgpError error = new OpenPgpError(); error.errorId = source.readInt(); error.message = source.readString(); return error; } - public CryptoError[] newArray(final int size) { - return new CryptoError[size]; + public OpenPgpError[] newArray(final int size) { + return new OpenPgpError[size]; } }; } diff --git a/OpenPGP-Keychain-API-Demo/src/org/openintents/crypto/CryptoServiceConnection.java b/OpenPGP-Keychain-API-Demo/src/org/openintents/openpgp/OpenPgpServiceConnection.java index d9e91f772..9f4fec470 100644 --- a/OpenPGP-Keychain-API-Demo/src/org/openintents/crypto/CryptoServiceConnection.java +++ b/OpenPGP-Keychain-API-Demo/src/org/openintents/openpgp/OpenPgpServiceConnection.java @@ -14,9 +14,9 @@ * limitations under the License. */ -package org.openintents.crypto; +package org.openintents.openpgp; -import org.openintents.crypto.ICryptoService; +import org.openintents.openpgp.IOpenPgpService; import android.content.ComponentName; import android.content.Context; @@ -25,27 +25,27 @@ import android.content.ServiceConnection; import android.os.IBinder; import android.util.Log; -public class CryptoServiceConnection { +public class OpenPgpServiceConnection { private Context mApplicationContext; - private ICryptoService mService; + private IOpenPgpService mService; private boolean bound; private String cryptoProviderPackageName; - private static final String TAG = "CryptoConnection"; + private static final String TAG = "OpenPgpServiceConnection"; - public CryptoServiceConnection(Context context, String cryptoProviderPackageName) { + public OpenPgpServiceConnection(Context context, String cryptoProviderPackageName) { mApplicationContext = context.getApplicationContext(); this.cryptoProviderPackageName = cryptoProviderPackageName; } - public ICryptoService getService() { + public IOpenPgpService getService() { return mService; } private ServiceConnection mCryptoServiceConnection = new ServiceConnection() { public void onServiceConnected(ComponentName name, IBinder service) { - mService = ICryptoService.Stub.asInterface(service); + mService = IOpenPgpService.Stub.asInterface(service); Log.d(TAG, "connected to service"); bound = true; } @@ -68,7 +68,7 @@ public class CryptoServiceConnection { Log.d(TAG, "not bound yet"); Intent serviceIntent = new Intent(); - serviceIntent.setAction("org.openintents.crypto.ICryptoService"); + serviceIntent.setAction(IOpenPgpService.class.getName()); serviceIntent.setPackage(cryptoProviderPackageName); mApplicationContext.bindService(serviceIntent, mCryptoServiceConnection, Context.BIND_AUTO_CREATE); diff --git a/OpenPGP-Keychain-API-Demo/src/org/openintents/crypto/CryptoSignatureResult.aidl b/OpenPGP-Keychain-API-Demo/src/org/openintents/openpgp/OpenPgpSignatureResult.aidl index 1d39bac70..e246792d0 100644 --- a/OpenPGP-Keychain-API-Demo/src/org/openintents/crypto/CryptoSignatureResult.aidl +++ b/OpenPGP-Keychain-API-Demo/src/org/openintents/openpgp/OpenPgpSignatureResult.aidl @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.openintents.crypto; +package org.openintents.openpgp; -// Declare CryptoSignatureResult so AIDL can find it and knows that it implements the parcelable protocol. -parcelable CryptoSignatureResult;
\ No newline at end of file +// Declare OpenPgpSignatureResult so AIDL can find it and knows that it implements the parcelable protocol. +parcelable OpenPgpSignatureResult;
\ No newline at end of file diff --git a/OpenPGP-Keychain-API-Demo/src/org/openintents/crypto/CryptoSignatureResult.java b/OpenPGP-Keychain-API-Demo/src/org/openintents/openpgp/OpenPgpSignatureResult.java index d3aaa52d9..d8642664f 100644 --- a/OpenPGP-Keychain-API-Demo/src/org/openintents/crypto/CryptoSignatureResult.java +++ b/OpenPGP-Keychain-API-Demo/src/org/openintents/openpgp/OpenPgpSignatureResult.java @@ -14,23 +14,23 @@ * limitations under the License. */ -package org.openintents.crypto; +package org.openintents.openpgp; import android.os.Parcel; import android.os.Parcelable; -public class CryptoSignatureResult implements Parcelable { +public class OpenPgpSignatureResult implements Parcelable { String signatureUserId; boolean signature; boolean signatureSuccess; boolean signatureUnknown; - public CryptoSignatureResult() { + public OpenPgpSignatureResult() { } - public CryptoSignatureResult(String signatureUserId, boolean signature, + public OpenPgpSignatureResult(String signatureUserId, boolean signature, boolean signatureSuccess, boolean signatureUnknown) { this.signatureUserId = signatureUserId; @@ -39,7 +39,7 @@ public class CryptoSignatureResult implements Parcelable { this.signatureUnknown = signatureUnknown; } - public CryptoSignatureResult(CryptoSignatureResult b) { + public OpenPgpSignatureResult(OpenPgpSignatureResult b) { this.signatureUserId = b.signatureUserId; this.signature = b.signature; @@ -59,9 +59,9 @@ public class CryptoSignatureResult implements Parcelable { dest.writeByte((byte) (signatureUnknown ? 1 : 0)); } - public static final Creator<CryptoSignatureResult> CREATOR = new Creator<CryptoSignatureResult>() { - public CryptoSignatureResult createFromParcel(final Parcel source) { - CryptoSignatureResult vr = new CryptoSignatureResult(); + public static final Creator<OpenPgpSignatureResult> CREATOR = new Creator<OpenPgpSignatureResult>() { + public OpenPgpSignatureResult createFromParcel(final Parcel source) { + OpenPgpSignatureResult vr = new OpenPgpSignatureResult(); vr.signatureUserId = source.readString(); vr.signature = source.readByte() == 1; vr.signatureSuccess = source.readByte() == 1; @@ -69,8 +69,8 @@ public class CryptoSignatureResult implements Parcelable { return vr; } - public CryptoSignatureResult[] newArray(final int size) { - return new CryptoSignatureResult[size]; + public OpenPgpSignatureResult[] newArray(final int size) { + return new OpenPgpSignatureResult[size]; } }; diff --git a/OpenPGP-Keychain-API-Demo/src/org/sufficientlysecure/keychain/demo/BaseActivity.java b/OpenPGP-Keychain-API-Demo/src/org/sufficientlysecure/keychain/demo/BaseActivity.java index 06483727c..84e65c6d8 100644 --- a/OpenPGP-Keychain-API-Demo/src/org/sufficientlysecure/keychain/demo/BaseActivity.java +++ b/OpenPGP-Keychain-API-Demo/src/org/sufficientlysecure/keychain/demo/BaseActivity.java @@ -67,7 +67,7 @@ public class BaseActivity extends PreferenceActivity { mCryptoProvider.setOnPreferenceClickListener(new OnPreferenceClickListener() { @Override public boolean onPreferenceClick(Preference preference) { - startActivity(new Intent(mActivity, CryptoProviderDemoActivity.class)); + startActivity(new Intent(mActivity, OpenPGPProviderActivity.class)); return false; } diff --git a/OpenPGP-Keychain-API-Demo/src/org/sufficientlysecure/keychain/demo/CryptoProviderDemoActivity.java b/OpenPGP-Keychain-API-Demo/src/org/sufficientlysecure/keychain/demo/OpenPGPProviderActivity.java index 7bfd72540..b0181eab2 100644 --- a/OpenPGP-Keychain-API-Demo/src/org/sufficientlysecure/keychain/demo/CryptoProviderDemoActivity.java +++ b/OpenPGP-Keychain-API-Demo/src/org/sufficientlysecure/keychain/demo/OpenPGPProviderActivity.java @@ -19,11 +19,11 @@ package org.sufficientlysecure.keychain.demo; import java.util.ArrayList; import java.util.List; -import org.openintents.crypto.CryptoError; -import org.openintents.crypto.CryptoServiceConnection; -import org.openintents.crypto.CryptoSignatureResult; -import org.openintents.crypto.ICryptoCallback; -import org.openintents.crypto.ICryptoService; +import org.openintents.openpgp.OpenPgpError; +import org.openintents.openpgp.OpenPgpServiceConnection; +import org.openintents.openpgp.OpenPgpSignatureResult; +import org.openintents.openpgp.IOpenPgpCallback; +import org.openintents.openpgp.IOpenPgpService; import android.app.Activity; import android.app.AlertDialog; @@ -42,14 +42,14 @@ import android.widget.ListAdapter; import android.widget.TextView; import android.widget.Toast; -public class CryptoProviderDemoActivity extends Activity { +public class OpenPGPProviderActivity extends Activity { Activity mActivity; EditText mMessage; EditText mCiphertext; EditText mEncryptUserIds; - private CryptoServiceConnection mCryptoServiceConnection; + private OpenPgpServiceConnection mCryptoServiceConnection; @Override public void onCreate(Bundle icicle) { @@ -68,10 +68,10 @@ public class CryptoProviderDemoActivity extends Activity { /** * Callback from remote crypto service */ - final ICryptoCallback.Stub encryptCallback = new ICryptoCallback.Stub() { + final IOpenPgpCallback.Stub encryptCallback = new IOpenPgpCallback.Stub() { @Override - public void onSuccess(final byte[] outputBytes, CryptoSignatureResult signatureResult) + public void onSuccess(final byte[] outputBytes, OpenPgpSignatureResult signatureResult) throws RemoteException { Log.d(Constants.TAG, "encryptCallback"); @@ -85,16 +85,16 @@ public class CryptoProviderDemoActivity extends Activity { } @Override - public void onError(CryptoError error) throws RemoteException { + public void onError(OpenPgpError error) throws RemoteException { handleError(error); } }; - final ICryptoCallback.Stub decryptAndVerifyCallback = new ICryptoCallback.Stub() { + final IOpenPgpCallback.Stub decryptAndVerifyCallback = new IOpenPgpCallback.Stub() { @Override - public void onSuccess(final byte[] outputBytes, final CryptoSignatureResult signatureResult) + public void onSuccess(final byte[] outputBytes, final OpenPgpSignatureResult signatureResult) throws RemoteException { Log.d(Constants.TAG, "decryptAndVerifyCallback"); @@ -104,7 +104,7 @@ public class CryptoProviderDemoActivity extends Activity { public void run() { mMessage.setText(new String(outputBytes)); if (signatureResult != null) { - Toast.makeText(CryptoProviderDemoActivity.this, + Toast.makeText(OpenPGPProviderActivity.this, "signature result:\n" + signatureResult.toString(), Toast.LENGTH_LONG).show(); } @@ -114,13 +114,13 @@ public class CryptoProviderDemoActivity extends Activity { } @Override - public void onError(CryptoError error) throws RemoteException { + public void onError(OpenPgpError error) throws RemoteException { handleError(error); } }; - private void handleError(final CryptoError error) { + private void handleError(final OpenPgpError error) { mActivity.runOnUiThread(new Runnable() { @Override @@ -186,12 +186,12 @@ public class CryptoProviderDemoActivity extends Activity { } } - private static class CryptoProviderElement { + private static class OpenPGPProviderElement { private String packageName; private String simpleName; private Drawable icon; - public CryptoProviderElement(String packageName, String simpleName, Drawable icon) { + public OpenPGPProviderElement(String packageName, String simpleName, Drawable icon) { this.packageName = packageName; this.simpleName = simpleName; this.icon = icon; @@ -204,9 +204,9 @@ public class CryptoProviderDemoActivity extends Activity { } private void selectCryptoProvider() { - Intent intent = new Intent(ICryptoService.class.getName()); + Intent intent = new Intent(IOpenPgpService.class.getName()); - final ArrayList<CryptoProviderElement> providerList = new ArrayList<CryptoProviderElement>(); + final ArrayList<OpenPGPProviderElement> providerList = new ArrayList<OpenPGPProviderElement>(); List<ResolveInfo> resInfo = getPackageManager().queryIntentServices(intent, 0); if (!resInfo.isEmpty()) { @@ -218,17 +218,17 @@ public class CryptoProviderDemoActivity extends Activity { String simpleName = String.valueOf(resolveInfo.serviceInfo .loadLabel(getPackageManager())); Drawable icon = resolveInfo.serviceInfo.loadIcon(getPackageManager()); - providerList.add(new CryptoProviderElement(packageName, simpleName, icon)); + providerList.add(new OpenPGPProviderElement(packageName, simpleName, icon)); } AlertDialog.Builder alert = new AlertDialog.Builder(this); - alert.setTitle("Select Crypto Provider!"); + alert.setTitle("Select OpenPGP Provider!"); alert.setCancelable(false); if (!providerList.isEmpty()) { // Init ArrayAdapter with Crypto Providers - ListAdapter adapter = new ArrayAdapter<CryptoProviderElement>(this, + ListAdapter adapter = new ArrayAdapter<OpenPGPProviderElement>(this, android.R.layout.select_dialog_item, android.R.id.text1, providerList) { public View getView(int position, View convertView, ViewGroup parent) { // User super class to create the View @@ -253,15 +253,15 @@ public class CryptoProviderDemoActivity extends Activity { String packageName = providerList.get(position).packageName; // bind to service - mCryptoServiceConnection = new CryptoServiceConnection( - CryptoProviderDemoActivity.this, packageName); + mCryptoServiceConnection = new OpenPgpServiceConnection( + OpenPGPProviderActivity.this, packageName); mCryptoServiceConnection.bindToService(); dialog.dismiss(); } }); } else { - alert.setMessage("No Crypto Provider installed!"); + alert.setMessage("No OpenPGP Provider installed!"); } alert.setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() { |