aboutsummaryrefslogtreecommitdiffstats
path: root/OpenPGP-Keychain
diff options
context:
space:
mode:
Diffstat (limited to 'OpenPGP-Keychain')
-rw-r--r--OpenPGP-Keychain/res/drawable-hdpi/ic_action_cancel.pngbin0 -> 1358 bytes
-rw-r--r--OpenPGP-Keychain/res/drawable-hdpi/ic_action_done.pngbin0 -> 1320 bytes
-rw-r--r--OpenPGP-Keychain/res/drawable-mdpi/ic_action_cancel.pngbin0 -> 1202 bytes
-rw-r--r--OpenPGP-Keychain/res/drawable-mdpi/ic_action_done.pngbin0 -> 1197 bytes
-rw-r--r--OpenPGP-Keychain/res/drawable-xhdpi/ic_action_cancel.pngbin0 -> 1488 bytes
-rw-r--r--OpenPGP-Keychain/res/drawable-xhdpi/ic_action_done.pngbin0 -> 1546 bytes
-rw-r--r--OpenPGP-Keychain/res/layout/actionbar_custom_view_done.xml27
-rw-r--r--OpenPGP-Keychain/res/layout/actionbar_custom_view_done_cancel.xml29
-rw-r--r--OpenPGP-Keychain/res/layout/actionbar_include_cancel_button.xml36
-rw-r--r--OpenPGP-Keychain/res/layout/actionbar_include_done_button.xml36
-rw-r--r--OpenPGP-Keychain/res/layout/api_app_settings_activity.xml29
-rw-r--r--OpenPGP-Keychain/res/menu/api_app_settings.xml13
-rw-r--r--OpenPGP-Keychain/res/values/strings.xml1
-rw-r--r--OpenPGP-Keychain/src/org/sufficientlysecure/keychain/remote_api/AppSettingsActivity.java69
14 files changed, 194 insertions, 46 deletions
diff --git a/OpenPGP-Keychain/res/drawable-hdpi/ic_action_cancel.png b/OpenPGP-Keychain/res/drawable-hdpi/ic_action_cancel.png
new file mode 100644
index 000000000..cde36e1fa
--- /dev/null
+++ b/OpenPGP-Keychain/res/drawable-hdpi/ic_action_cancel.png
Binary files differ
diff --git a/OpenPGP-Keychain/res/drawable-hdpi/ic_action_done.png b/OpenPGP-Keychain/res/drawable-hdpi/ic_action_done.png
new file mode 100644
index 000000000..58bf97217
--- /dev/null
+++ b/OpenPGP-Keychain/res/drawable-hdpi/ic_action_done.png
Binary files differ
diff --git a/OpenPGP-Keychain/res/drawable-mdpi/ic_action_cancel.png b/OpenPGP-Keychain/res/drawable-mdpi/ic_action_cancel.png
new file mode 100644
index 000000000..9f4c3d6a2
--- /dev/null
+++ b/OpenPGP-Keychain/res/drawable-mdpi/ic_action_cancel.png
Binary files differ
diff --git a/OpenPGP-Keychain/res/drawable-mdpi/ic_action_done.png b/OpenPGP-Keychain/res/drawable-mdpi/ic_action_done.png
new file mode 100644
index 000000000..cf5fab3ad
--- /dev/null
+++ b/OpenPGP-Keychain/res/drawable-mdpi/ic_action_done.png
Binary files differ
diff --git a/OpenPGP-Keychain/res/drawable-xhdpi/ic_action_cancel.png b/OpenPGP-Keychain/res/drawable-xhdpi/ic_action_cancel.png
new file mode 100644
index 000000000..ca7d159fd
--- /dev/null
+++ b/OpenPGP-Keychain/res/drawable-xhdpi/ic_action_cancel.png
Binary files differ
diff --git a/OpenPGP-Keychain/res/drawable-xhdpi/ic_action_done.png b/OpenPGP-Keychain/res/drawable-xhdpi/ic_action_done.png
new file mode 100644
index 000000000..b8915716e
--- /dev/null
+++ b/OpenPGP-Keychain/res/drawable-xhdpi/ic_action_done.png
Binary files differ
diff --git a/OpenPGP-Keychain/res/layout/actionbar_custom_view_done.xml b/OpenPGP-Keychain/res/layout/actionbar_custom_view_done.xml
new file mode 100644
index 000000000..bcbb5f5c1
--- /dev/null
+++ b/OpenPGP-Keychain/res/layout/actionbar_custom_view_done.xml
@@ -0,0 +1,27 @@
+<!--
+ Copyright 2013 The Android Open Source Project
+
+ 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
+
+ http://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.
+-->
+
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:divider="@drawable/abs__list_divider_holo_light"
+ android:dividerPadding="12dp"
+ android:orientation="horizontal"
+ android:showDividers="end" >
+
+ <include layout="@layout/actionbar_include_done_button" />
+
+</LinearLayout> \ No newline at end of file
diff --git a/OpenPGP-Keychain/res/layout/actionbar_custom_view_done_cancel.xml b/OpenPGP-Keychain/res/layout/actionbar_custom_view_done_cancel.xml
new file mode 100644
index 000000000..8c8428e75
--- /dev/null
+++ b/OpenPGP-Keychain/res/layout/actionbar_custom_view_done_cancel.xml
@@ -0,0 +1,29 @@
+<!--
+ Copyright 2013 The Android Open Source Project
+
+ 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
+
+ http://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.
+-->
+
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:divider="@drawable/abs__list_divider_holo_light"
+ android:dividerPadding="12dp"
+ android:orientation="horizontal"
+ android:showDividers="middle" >
+
+ <include layout="@layout/actionbar_include_cancel_button" />
+
+ <include layout="@layout/actionbar_include_done_button" />
+
+</LinearLayout> \ No newline at end of file
diff --git a/OpenPGP-Keychain/res/layout/actionbar_include_cancel_button.xml b/OpenPGP-Keychain/res/layout/actionbar_include_cancel_button.xml
new file mode 100644
index 000000000..0f0521d3c
--- /dev/null
+++ b/OpenPGP-Keychain/res/layout/actionbar_include_cancel_button.xml
@@ -0,0 +1,36 @@
+<!--
+ Copyright 2013 The Android Open Source Project
+
+ 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
+
+ http://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.
+-->
+
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/actionbar_cancel"
+ style="@style/Widget.Sherlock.ActionButton"
+ android:layout_width="0dp"
+ android:layout_height="match_parent"
+ android:layout_weight="1" >
+
+ <TextView
+ android:id="@+id/actionbar_cancel_text"
+ style="@style/Widget.Sherlock.ActionBar.TabText"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center"
+ android:drawableLeft="@drawable/ic_action_cancel"
+ android:drawablePadding="8dp"
+ android:gravity="center_vertical"
+ android:paddingRight="20dp"
+ android:text="Cancel (set in-code!)" />
+
+</FrameLayout> \ No newline at end of file
diff --git a/OpenPGP-Keychain/res/layout/actionbar_include_done_button.xml b/OpenPGP-Keychain/res/layout/actionbar_include_done_button.xml
new file mode 100644
index 000000000..e14853be3
--- /dev/null
+++ b/OpenPGP-Keychain/res/layout/actionbar_include_done_button.xml
@@ -0,0 +1,36 @@
+<!--
+ Copyright 2013 The Android Open Source Project
+
+ 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
+
+ http://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.
+-->
+
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/actionbar_done"
+ style="@style/Widget.Sherlock.ActionButton"
+ android:layout_width="0dp"
+ android:layout_height="match_parent"
+ android:layout_weight="1" >
+
+ <TextView
+ android:id="@+id/actionbar_done_text"
+ style="@style/Widget.Sherlock.ActionBar.TabText"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center"
+ android:drawableLeft="@drawable/ic_action_done"
+ android:drawablePadding="8dp"
+ android:gravity="center_vertical"
+ android:paddingRight="20dp"
+ android:text="Save (set in-code!)" />
+
+</FrameLayout> \ No newline at end of file
diff --git a/OpenPGP-Keychain/res/layout/api_app_settings_activity.xml b/OpenPGP-Keychain/res/layout/api_app_settings_activity.xml
index b5e6e46ae..3157a3f09 100644
--- a/OpenPGP-Keychain/res/layout/api_app_settings_activity.xml
+++ b/OpenPGP-Keychain/res/layout/api_app_settings_activity.xml
@@ -1,10 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
- android:padding="8dp"
android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:orientation="vertical" >
+ android:layout_height="fill_parent" >
<fragment
android:id="@+id/api_app_settings_fragment"
@@ -13,25 +11,4 @@
android:layout_height="wrap_content"
tools:layout="@layout/api_app_settings_fragment" />
- <LinearLayout
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:orientation="horizontal"
- android:paddingBottom="3dip" >
-
- <Button
- android:id="@+id/api_app_settings_revoke"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_weight="1"
- android:text="@string/api_settings_revoke" />
-
- <Button
- android:id="@+id/api_app_settings_save"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_weight="1"
- android:text="@string/api_settings_save" />
- </LinearLayout>
-
-</LinearLayout> \ No newline at end of file
+</RelativeLayout> \ No newline at end of file
diff --git a/OpenPGP-Keychain/res/menu/api_app_settings.xml b/OpenPGP-Keychain/res/menu/api_app_settings.xml
new file mode 100644
index 000000000..1ee05f5de
--- /dev/null
+++ b/OpenPGP-Keychain/res/menu/api_app_settings.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+<menu xmlns:android="http://schemas.android.com/apk/res/android" >
+
+ <item
+ android:id="@+id/menu_api_settings_revoke"
+ android:showAsAction="never"
+ android:title="@string/api_settings_revoke"/>
+ <item
+ android:id="@+id/menu_api_settings_cancel"
+ android:showAsAction="never"
+ android:title="@string/api_settings_cancel"/>
+
+</menu> \ No newline at end of file
diff --git a/OpenPGP-Keychain/res/values/strings.xml b/OpenPGP-Keychain/res/values/strings.xml
index d6253ea57..5aa4081fb 100644
--- a/OpenPGP-Keychain/res/values/strings.xml
+++ b/OpenPGP-Keychain/res/values/strings.xml
@@ -368,6 +368,7 @@
<string name="api_settings_no_key">No key selected</string>
<string name="api_settings_select_key">Select key</string>
<string name="api_settings_save">Save</string>
+ <string name="api_settings_cancel">Cancel</string>
<string name="api_settings_revoke">Revoke access</string>
<string name="api_register_text">%1$s (%2$s) requests access to OpenPGP Keychain\'s API.\n\nAllow permanent access?</string>
<string name="api_register_allow">Allow access</string>
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 6316dbc38..0cfbbe3fc 100644
--- a/OpenPGP-Keychain/src/org/sufficientlysecure/keychain/remote_api/AppSettingsActivity.java
+++ b/OpenPGP-Keychain/src/org/sufficientlysecure/keychain/remote_api/AppSettingsActivity.java
@@ -5,7 +5,6 @@ import org.sufficientlysecure.keychain.R;
import org.sufficientlysecure.keychain.provider.KeychainContract;
import org.sufficientlysecure.keychain.util.Log;
-import android.content.ContentUris;
import android.content.ContentValues;
import android.content.Intent;
import android.content.pm.ApplicationInfo;
@@ -14,13 +13,16 @@ import android.content.pm.PackageManager.NameNotFoundException;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
+import android.view.LayoutInflater;
import android.view.View;
-import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.TextView;
+import com.actionbarsherlock.app.ActionBar;
import com.actionbarsherlock.app.SherlockFragmentActivity;
+import com.actionbarsherlock.view.Menu;
+import com.actionbarsherlock.view.MenuItem;
public class AppSettingsActivity extends SherlockFragmentActivity {
private PackageManager pm;
@@ -46,28 +48,36 @@ public class AppSettingsActivity extends SherlockFragmentActivity {
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);
+ final View customActionBarView = inflater
+ .inflate(R.layout.actionbar_custom_view_done, null);
+
+ ((TextView) customActionBarView.findViewById(R.id.actionbar_done_text))
+ .setText(R.string.api_settings_save);
+ customActionBarView.findViewById(R.id.actionbar_done).setOnClickListener(
+ new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ // "Done"
+ save();
+ }
+ });
+
+ // Show the custom action bar view and hide the normal Home icon and title.
+ final ActionBar actionBar = getSupportActionBar();
+ 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);
selectedKey = (TextView) findViewById(R.id.api_app_settings_selected_key);
selectKeyButton = (Button) findViewById(R.id.api_app_settings_select_key_button);
asciiArmorCheckBox = (CheckBox) findViewById(R.id.api_app_ascii_armor);
- revokeButton = (Button) findViewById(R.id.api_app_settings_revoke);
- saveButton = (Button) findViewById(R.id.api_app_settings_save);
-
- revokeButton.setOnClickListener(new OnClickListener() {
-
- @Override
- public void onClick(View v) {
- revokeAccess();
- }
- });
- saveButton.setOnClickListener(new OnClickListener() {
-
- @Override
- public void onClick(View v) {
- save();
- }
- });
Intent intent = getIntent();
appUri = intent.getData();
@@ -81,6 +91,26 @@ public class AppSettingsActivity extends SherlockFragmentActivity {
}
}
+ @Override
+ public boolean onCreateOptionsMenu(Menu menu) {
+ super.onCreateOptionsMenu(menu);
+ getSupportMenuInflater().inflate(R.menu.api_app_settings, menu);
+ return true;
+ }
+
+ @Override
+ public boolean onOptionsItemSelected(MenuItem item) {
+ switch (item.getItemId()) {
+ case R.id.menu_api_settings_revoke:
+ revokeAccess();
+ return true;
+ case R.id.menu_api_settings_cancel:
+ finish();
+ return true;
+ }
+ return super.onOptionsItemSelected(item);
+ }
+
private void loadData(Uri appUri) {
Cursor cur = getContentResolver().query(appUri, null, null, null, null);
if (cur.moveToFirst()) {
@@ -114,7 +144,6 @@ public class AppSettingsActivity extends SherlockFragmentActivity {
}
private void save() {
- Log.d(Constants.TAG, "saving");
final ContentValues cv = new ContentValues();
// cv.put(KeychainContract.ApiApps.PACKAGE_NAME, packageName);
cv.put(KeychainContract.ApiApps.ASCII_ARMOR, asciiArmorCheckBox.isChecked());