diff --git a/OpenPGP-Keychain/res/values/strings.xml b/OpenPGP-Keychain/res/values/strings.xml index 7503170a5..bcae942aa 100644 --- a/OpenPGP-Keychain/res/values/strings.xml +++ b/OpenPGP-Keychain/res/values/strings.xml @@ -372,5 +372,6 @@ The following application requests access to OpenPGP Keychain\'s API.\n\nAllow permanent access? Allow access Disallow access - + Please select a key! + \ No newline at end of file diff --git a/OpenPGP-Keychain/src/org/sufficientlysecure/keychain/remote_api/AppSettingsActivity.java b/OpenPGP-Keychain/src/org/sufficientlysecure/keychain/remote_api/AppSettingsActivity.java index 4e069f3b0..55fa72b0e 100644 --- a/OpenPGP-Keychain/src/org/sufficientlysecure/keychain/remote_api/AppSettingsActivity.java +++ b/OpenPGP-Keychain/src/org/sufficientlysecure/keychain/remote_api/AppSettingsActivity.java @@ -12,7 +12,6 @@ import android.net.Uri; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; -import android.widget.Button; import android.widget.TextView; import com.actionbarsherlock.app.ActionBar; @@ -22,22 +21,15 @@ import com.actionbarsherlock.view.MenuItem; public class AppSettingsActivity extends SherlockFragmentActivity { // model - Uri mAppUri; - String mPackageName; + private Uri mAppUri; + private String mPackageName; - // view - Button saveButton; - Button revokeButton; - - AppSettingsFragment settingsFragment; + private AppSettingsFragment settingsFragment; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - // pm = getApplicationContext().getPackageManager(); - - // BEGIN_INCLUDE (inflate_set_custom_view) // Inflate a "Done" custom action bar view to serve as the "Up" affordance. final LayoutInflater inflater = (LayoutInflater) getSupportActionBar().getThemedContext() .getSystemService(LAYOUT_INFLATER_SERVICE); @@ -60,7 +52,6 @@ public class AppSettingsActivity extends SherlockFragmentActivity { actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM, ActionBar.DISPLAY_SHOW_CUSTOM | ActionBar.DISPLAY_SHOW_HOME | ActionBar.DISPLAY_SHOW_TITLE); actionBar.setCustomView(customActionBarView); - // END_INCLUDE (inflate_set_custom_view) setContentView(R.layout.api_app_settings_activity); diff --git a/OpenPGP-Keychain/src/org/sufficientlysecure/keychain/remote_api/ServiceActivity.java b/OpenPGP-Keychain/src/org/sufficientlysecure/keychain/remote_api/ServiceActivity.java index 5f36075f5..422026a19 100644 --- a/OpenPGP-Keychain/src/org/sufficientlysecure/keychain/remote_api/ServiceActivity.java +++ b/OpenPGP-Keychain/src/org/sufficientlysecure/keychain/remote_api/ServiceActivity.java @@ -17,16 +17,13 @@ package org.sufficientlysecure.keychain.remote_api; import org.sufficientlysecure.keychain.Constants; +import org.sufficientlysecure.keychain.Id; import org.sufficientlysecure.keychain.R; -import org.sufficientlysecure.keychain.remote_api.IServiceActivityCallback; import org.sufficientlysecure.keychain.helper.PgpMain; import org.sufficientlysecure.keychain.provider.ProviderHelper; import org.sufficientlysecure.keychain.ui.dialog.PassphraseDialogFragment; import org.sufficientlysecure.keychain.util.Log; -import com.actionbarsherlock.app.ActionBar; -import com.actionbarsherlock.app.SherlockFragmentActivity; - import android.content.ComponentName; import android.content.Context; import android.content.Intent; @@ -41,6 +38,10 @@ import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; +import android.widget.Toast; + +import com.actionbarsherlock.app.ActionBar; +import com.actionbarsherlock.app.SherlockFragmentActivity; public class ServiceActivity extends SherlockFragmentActivity { @@ -53,6 +54,9 @@ public class ServiceActivity extends SherlockFragmentActivity { private IServiceActivityCallback mServiceCallback; private boolean mServiceBound; + // view + AppSettingsFragment settingsFragment; + private ServiceConnection mServiceActivityConnection = new ServiceConnection() { public void onServiceConnected(ComponentName name, IBinder service) { mServiceCallback = IServiceActivityCallback.Stub.asInterface(service); @@ -132,7 +136,6 @@ public class ServiceActivity extends SherlockFragmentActivity { if (ACTION_REGISTER.equals(action)) { final String packageName = extras.getString(EXTRA_PACKAGE_NAME); - // BEGIN_INCLUDE (inflate_set_custom_view) // Inflate a "Done"/"Cancel" custom action bar view final LayoutInflater inflater = (LayoutInflater) getSupportActionBar() .getThemedContext().getSystemService(LAYOUT_INFLATER_SERVICE); @@ -146,15 +149,22 @@ public class ServiceActivity extends SherlockFragmentActivity { @Override public void onClick(View v) { // Allow - ProviderHelper.addCryptoConsumer(ServiceActivity.this, packageName); - // Intent data = new Intent(); - try { - mServiceCallback.onRegistered(true, packageName); - } catch (RemoteException e) { - Log.e(Constants.TAG, "ServiceActivity"); + if (settingsFragment.getSecretKeyId() == Id.key.none) { + Toast.makeText(ServiceActivity.this, + R.string.api_register_error_select_key, Toast.LENGTH_LONG) + .show(); + } else { + ProviderHelper.addCryptoConsumer(ServiceActivity.this, packageName); + // Intent data = new Intent(); + + try { + mServiceCallback.onRegistered(true, packageName); + } catch (RemoteException e) { + Log.e(Constants.TAG, "ServiceActivity"); + } + finish(); } - finish(); } }); ((TextView) customActionBarView.findViewById(R.id.actionbar_cancel_text)) @@ -180,13 +190,12 @@ public class ServiceActivity extends SherlockFragmentActivity { | ActionBar.DISPLAY_SHOW_TITLE); actionBar.setCustomView(customActionBarView, new ActionBar.LayoutParams( ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT)); - // END_INCLUDE (inflate_set_custom_view) setContentView(R.layout.api_app_register_activity); - AppSettingsFragment settingsFragment = (AppSettingsFragment) getSupportFragmentManager() - .findFragmentById(R.id.api_app_settings_fragment); - + settingsFragment = (AppSettingsFragment) getSupportFragmentManager().findFragmentById( + R.id.api_app_settings_fragment); + settingsFragment.setPackage(packageName); // TODO: handle if app is already registered