aboutsummaryrefslogtreecommitdiffstats
path: root/org_apg
diff options
context:
space:
mode:
Diffstat (limited to 'org_apg')
-rw-r--r--org_apg/AndroidManifest.xml3
-rw-r--r--org_apg/res/drawable-hdpi/dashboard_encrypt_decrypt_file_default.pngbin0 -> 5772 bytes
-rw-r--r--org_apg/res/drawable-hdpi/dashboard_encrypt_decrypt_file_pressed.pngbin0 -> 5694 bytes
-rw-r--r--org_apg/res/drawable-hdpi/dashboard_encrypt_decrypt_text_default.pngbin0 -> 6946 bytes
-rw-r--r--org_apg/res/drawable-hdpi/dashboard_encrypt_decrypt_text_pressed.pngbin0 -> 6827 bytes
-rw-r--r--org_apg/res/drawable-hdpi/dashboard_help_default.pngbin0 -> 8607 bytes
-rw-r--r--org_apg/res/drawable-hdpi/dashboard_help_pressed.pngbin0 -> 8343 bytes
-rw-r--r--org_apg/res/drawable-hdpi/dashboard_manage_keys_default.pngbin0 -> 7306 bytes
-rw-r--r--org_apg/res/drawable-hdpi/dashboard_manage_keys_pressed.pngbin0 -> 7222 bytes
-rw-r--r--org_apg/res/drawable-hdpi/dashboard_my_keys_default.pngbin0 -> 5438 bytes
-rw-r--r--org_apg/res/drawable-hdpi/dashboard_my_keys_pressed.pngbin0 -> 5429 bytes
-rw-r--r--org_apg/res/drawable-nodpi/background_noise_tile.pngbin0 -> 23885 bytes
-rw-r--r--org_apg/res/drawable/background_noise.xml19
-rw-r--r--org_apg/res/drawable/dashboard_encrypt_decrypt_file.xml28
-rw-r--r--org_apg/res/drawable/dashboard_encrypt_decrypt_text.xml28
-rw-r--r--org_apg/res/drawable/dashboard_help.xml28
-rw-r--r--org_apg/res/drawable/dashboard_manage_keys.xml28
-rw-r--r--org_apg/res/drawable/dashboard_my_keys.xml28
-rw-r--r--org_apg/res/layout/main.xml168
-rw-r--r--org_apg/res/values/colors.xml82
-rw-r--r--org_apg/res/values/strings.xml27
-rw-r--r--org_apg/res/values/styles.xml12
-rw-r--r--org_apg/src/org/apg/ui/MainActivity.java69
-rw-r--r--org_apg/src/org/apg/ui/widget/DashboardLayout.java191
24 files changed, 592 insertions, 119 deletions
diff --git a/org_apg/AndroidManifest.xml b/org_apg/AndroidManifest.xml
index 857f7d279..c98705870 100644
--- a/org_apg/AndroidManifest.xml
+++ b/org_apg/AndroidManifest.xml
@@ -8,7 +8,7 @@
android:versionName="1.1" >
<uses-sdk
- android:minSdkVersion="4"
+ android:minSdkVersion="7"
android:targetSdkVersion="14" />
<uses-permission android:name="android.permission.INTERNET" />
@@ -27,6 +27,7 @@
android:protectionLevel="dangerous" />
<application
+ android:hardwareAccelerated="true"
android:icon="@drawable/icon"
android:label="@string/app_name" >
<activity
diff --git a/org_apg/res/drawable-hdpi/dashboard_encrypt_decrypt_file_default.png b/org_apg/res/drawable-hdpi/dashboard_encrypt_decrypt_file_default.png
new file mode 100644
index 000000000..c7373054f
--- /dev/null
+++ b/org_apg/res/drawable-hdpi/dashboard_encrypt_decrypt_file_default.png
Binary files differ
diff --git a/org_apg/res/drawable-hdpi/dashboard_encrypt_decrypt_file_pressed.png b/org_apg/res/drawable-hdpi/dashboard_encrypt_decrypt_file_pressed.png
new file mode 100644
index 000000000..8e71cc692
--- /dev/null
+++ b/org_apg/res/drawable-hdpi/dashboard_encrypt_decrypt_file_pressed.png
Binary files differ
diff --git a/org_apg/res/drawable-hdpi/dashboard_encrypt_decrypt_text_default.png b/org_apg/res/drawable-hdpi/dashboard_encrypt_decrypt_text_default.png
new file mode 100644
index 000000000..95535bba0
--- /dev/null
+++ b/org_apg/res/drawable-hdpi/dashboard_encrypt_decrypt_text_default.png
Binary files differ
diff --git a/org_apg/res/drawable-hdpi/dashboard_encrypt_decrypt_text_pressed.png b/org_apg/res/drawable-hdpi/dashboard_encrypt_decrypt_text_pressed.png
new file mode 100644
index 000000000..1da36b214
--- /dev/null
+++ b/org_apg/res/drawable-hdpi/dashboard_encrypt_decrypt_text_pressed.png
Binary files differ
diff --git a/org_apg/res/drawable-hdpi/dashboard_help_default.png b/org_apg/res/drawable-hdpi/dashboard_help_default.png
new file mode 100644
index 000000000..233fddffc
--- /dev/null
+++ b/org_apg/res/drawable-hdpi/dashboard_help_default.png
Binary files differ
diff --git a/org_apg/res/drawable-hdpi/dashboard_help_pressed.png b/org_apg/res/drawable-hdpi/dashboard_help_pressed.png
new file mode 100644
index 000000000..4a19c1472
--- /dev/null
+++ b/org_apg/res/drawable-hdpi/dashboard_help_pressed.png
Binary files differ
diff --git a/org_apg/res/drawable-hdpi/dashboard_manage_keys_default.png b/org_apg/res/drawable-hdpi/dashboard_manage_keys_default.png
new file mode 100644
index 000000000..de83398c2
--- /dev/null
+++ b/org_apg/res/drawable-hdpi/dashboard_manage_keys_default.png
Binary files differ
diff --git a/org_apg/res/drawable-hdpi/dashboard_manage_keys_pressed.png b/org_apg/res/drawable-hdpi/dashboard_manage_keys_pressed.png
new file mode 100644
index 000000000..b1514d9d4
--- /dev/null
+++ b/org_apg/res/drawable-hdpi/dashboard_manage_keys_pressed.png
Binary files differ
diff --git a/org_apg/res/drawable-hdpi/dashboard_my_keys_default.png b/org_apg/res/drawable-hdpi/dashboard_my_keys_default.png
new file mode 100644
index 000000000..f8b54961e
--- /dev/null
+++ b/org_apg/res/drawable-hdpi/dashboard_my_keys_default.png
Binary files differ
diff --git a/org_apg/res/drawable-hdpi/dashboard_my_keys_pressed.png b/org_apg/res/drawable-hdpi/dashboard_my_keys_pressed.png
new file mode 100644
index 000000000..e24f5c207
--- /dev/null
+++ b/org_apg/res/drawable-hdpi/dashboard_my_keys_pressed.png
Binary files differ
diff --git a/org_apg/res/drawable-nodpi/background_noise_tile.png b/org_apg/res/drawable-nodpi/background_noise_tile.png
new file mode 100644
index 000000000..5e61f93d5
--- /dev/null
+++ b/org_apg/res/drawable-nodpi/background_noise_tile.png
Binary files differ
diff --git a/org_apg/res/drawable/background_noise.xml b/org_apg/res/drawable/background_noise.xml
new file mode 100644
index 000000000..f3e81a0af
--- /dev/null
+++ b/org_apg/res/drawable/background_noise.xml
@@ -0,0 +1,19 @@
+<!--
+ Copyright 2011 Google Inc.
+
+ 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.
+ -->
+
+<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
+ android:src="@drawable/background_noise_tile"
+ android:tileMode="repeat" />
diff --git a/org_apg/res/drawable/dashboard_encrypt_decrypt_file.xml b/org_apg/res/drawable/dashboard_encrypt_decrypt_file.xml
new file mode 100644
index 000000000..cd49de477
--- /dev/null
+++ b/org_apg/res/drawable/dashboard_encrypt_decrypt_file.xml
@@ -0,0 +1,28 @@
+<!--
+ Copyright 2011 Google Inc.
+
+ 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.
+ -->
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+ <item android:drawable="@drawable/dashboard_encrypt_decrypt_file_pressed"
+ android:state_focused="true"
+ android:state_pressed="true" />
+ <item android:drawable="@drawable/dashboard_encrypt_decrypt_file_pressed"
+ android:state_focused="false"
+ android:state_pressed="true" />
+ <item android:drawable="@drawable/dashboard_encrypt_decrypt_file_pressed"
+ android:state_focused="true" />
+ <item android:drawable="@drawable/dashboard_encrypt_decrypt_file_default"
+ android:state_focused="false"
+ android:state_pressed="false" />
+</selector>
diff --git a/org_apg/res/drawable/dashboard_encrypt_decrypt_text.xml b/org_apg/res/drawable/dashboard_encrypt_decrypt_text.xml
new file mode 100644
index 000000000..61c0ebc89
--- /dev/null
+++ b/org_apg/res/drawable/dashboard_encrypt_decrypt_text.xml
@@ -0,0 +1,28 @@
+<!--
+ Copyright 2011 Google Inc.
+
+ 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.
+ -->
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+ <item android:drawable="@drawable/dashboard_encrypt_decrypt_text_pressed"
+ android:state_focused="true"
+ android:state_pressed="true" />
+ <item android:drawable="@drawable/dashboard_encrypt_decrypt_text_pressed"
+ android:state_focused="false"
+ android:state_pressed="true" />
+ <item android:drawable="@drawable/dashboard_encrypt_decrypt_text_pressed"
+ android:state_focused="true" />
+ <item android:drawable="@drawable/dashboard_encrypt_decrypt_text_default"
+ android:state_focused="false"
+ android:state_pressed="false" />
+</selector>
diff --git a/org_apg/res/drawable/dashboard_help.xml b/org_apg/res/drawable/dashboard_help.xml
new file mode 100644
index 000000000..e121ea0d1
--- /dev/null
+++ b/org_apg/res/drawable/dashboard_help.xml
@@ -0,0 +1,28 @@
+<!--
+ Copyright 2011 Google Inc.
+
+ 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.
+ -->
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+ <item android:drawable="@drawable/dashboard_help_pressed"
+ android:state_focused="true"
+ android:state_pressed="true" />
+ <item android:drawable="@drawable/dashboard_help_pressed"
+ android:state_focused="false"
+ android:state_pressed="true" />
+ <item android:drawable="@drawable/dashboard_help_pressed"
+ android:state_focused="true" />
+ <item android:drawable="@drawable/dashboard_help_default"
+ android:state_focused="false"
+ android:state_pressed="false" />
+</selector>
diff --git a/org_apg/res/drawable/dashboard_manage_keys.xml b/org_apg/res/drawable/dashboard_manage_keys.xml
new file mode 100644
index 000000000..ebc519253
--- /dev/null
+++ b/org_apg/res/drawable/dashboard_manage_keys.xml
@@ -0,0 +1,28 @@
+<!--
+ Copyright 2011 Google Inc.
+
+ 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.
+ -->
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+ <item android:drawable="@drawable/dashboard_manage_keys_pressed"
+ android:state_focused="true"
+ android:state_pressed="true" />
+ <item android:drawable="@drawable/dashboard_manage_keys_pressed"
+ android:state_focused="false"
+ android:state_pressed="true" />
+ <item android:drawable="@drawable/dashboard_manage_keys_pressed"
+ android:state_focused="true" />
+ <item android:drawable="@drawable/dashboard_manage_keys_default"
+ android:state_focused="false"
+ android:state_pressed="false" />
+</selector>
diff --git a/org_apg/res/drawable/dashboard_my_keys.xml b/org_apg/res/drawable/dashboard_my_keys.xml
new file mode 100644
index 000000000..d4045db45
--- /dev/null
+++ b/org_apg/res/drawable/dashboard_my_keys.xml
@@ -0,0 +1,28 @@
+<!--
+ Copyright 2011 Google Inc.
+
+ 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.
+ -->
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+ <item android:drawable="@drawable/dashboard_my_keys_pressed"
+ android:state_focused="true"
+ android:state_pressed="true" />
+ <item android:drawable="@drawable/dashboard_my_keys_pressed"
+ android:state_focused="false"
+ android:state_pressed="true" />
+ <item android:drawable="@drawable/dashboard_my_keys_pressed"
+ android:state_focused="true" />
+ <item android:drawable="@drawable/dashboard_my_keys_default"
+ android:state_focused="false"
+ android:state_pressed="false" />
+</selector>
diff --git a/org_apg/res/layout/main.xml b/org_apg/res/layout/main.xml
index 803b2abe9..d9337a759 100644
--- a/org_apg/res/layout/main.xml
+++ b/org_apg/res/layout/main.xml
@@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2010 Thialfihar <thi@thialfihar.org>
+<!--
+ Copyright (C) 2010 Thialfihar <thi@thialfihar.org>
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -14,76 +15,103 @@
limitations under the License.
-->
-<LinearLayout
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="vertical"
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
- android:paddingTop="5dip"
- android:fillViewport="true">
+ android:background="@color/background_primary"
+ android:orientation="vertical" >
- <ScrollView
- android:layout_marginTop="10dip"
+ <org.apg.ui.widget.DashboardLayout
android:layout_width="fill_parent"
- android:layout_height="0dip"
- android:layout_weight="1"
- android:fillViewport="true">
-
- <ListView
- android:id="@+id/accounts"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"/>
-
- </ScrollView>
-
- <LinearLayout
- android:orientation="vertical"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- style="@android:style/ButtonBar">
-
- <LinearLayout
- android:orientation="horizontal"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content">
-
- <Button
- android:id="@+id/btn_encryptFile"
- android:text="@string/btn_encryptFile"
- android:layout_width="0dip"
- android:layout_weight="1"
- android:layout_height="fill_parent"/>
-
- <Button
- android:id="@+id/btn_decryptFile"
- android:text="@string/btn_decryptFile"
- android:layout_width="0dip"
- android:layout_weight="1"
- android:layout_height="fill_parent"/>
-
- </LinearLayout>
-
- <LinearLayout
- android:orientation="horizontal"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content">
-
- <Button
- android:id="@+id/btn_encryptMessage"
- android:text="@string/btn_encryptMessage"
- android:layout_width="0dip"
- android:layout_weight="1"
- android:layout_height="fill_parent"/>
-
- <Button
- android:id="@+id/btn_decryptMessage"
- android:text="@string/btn_decryptMessage"
- android:layout_width="0dip"
- android:layout_weight="1"
- android:layout_height="fill_parent"/>
-
- </LinearLayout>
-
- </LinearLayout>
-
-</LinearLayout>
+ android:layout_height="fill_parent" >
+
+ <Button
+ android:id="@+id/dashboard_manage_keys"
+ style="@style/DashboardButton"
+ android:drawableTop="@drawable/dashboard_manage_keys"
+ android:onClick="manageKeysOnClick"
+ android:text="@string/dashboard_manage_keys" />
+
+ <Button
+ android:id="@+id/dashboard_my_keys"
+ style="@style/DashboardButton"
+ android:drawableTop="@drawable/dashboard_my_keys"
+ android:onClick="myKeysOnClick"
+ android:text="@string/dashboard_my_keys" />
+
+ <Button
+ android:id="@+id/dashboard_encrypt_decrypt_file"
+ style="@style/DashboardButton"
+ android:drawableTop="@drawable/dashboard_encrypt_decrypt_file"
+ android:onClick="encryptDecryptFileOnClick"
+ android:text="@string/dashboard_encrypt_decrypt_file" />
+
+ <Button
+ android:id="@+id/dashboard_encrypt_decrypt_text"
+ style="@style/DashboardButton"
+ android:drawableTop="@drawable/dashboard_encrypt_decrypt_text"
+ android:onClick="encryptDecryptTextOnClick"
+ android:text="@string/dashboard_encrypt_decrypt_text" />
+
+ <Button
+ android:id="@+id/dashboard_help"
+ style="@style/DashboardButton"
+ android:drawableTop="@drawable/dashboard_help"
+ android:onClick="helpOnClick"
+ android:text="@string/dashboard_help" />
+ </org.apg.ui.widget.DashboardLayout>
+
+ <!-- <LinearLayout -->
+ <!-- style="@android:style/ButtonBar" -->
+ <!-- android:layout_width="fill_parent" -->
+ <!-- android:layout_height="wrap_content" -->
+ <!-- android:orientation="vertical" > -->
+
+
+ <!-- <LinearLayout -->
+ <!-- android:layout_width="fill_parent" -->
+ <!-- android:layout_height="wrap_content" -->
+ <!-- android:orientation="horizontal" > -->
+
+
+ <!-- <Button -->
+ <!-- android:id="@+id/btn_encryptFile" -->
+ <!-- android:layout_width="0dip" -->
+ <!-- android:layout_height="fill_parent" -->
+ <!-- android:layout_weight="1" -->
+ <!-- android:text="@string/btn_encryptFile" /> -->
+
+
+ <!-- <Button -->
+ <!-- android:id="@+id/btn_decryptFile" -->
+ <!-- android:layout_width="0dip" -->
+ <!-- android:layout_height="fill_parent" -->
+ <!-- android:layout_weight="1" -->
+ <!-- android:text="@string/btn_decryptFile" /> -->
+ <!-- </LinearLayout> -->
+
+
+ <!-- <LinearLayout -->
+ <!-- android:layout_width="fill_parent" -->
+ <!-- android:layout_height="wrap_content" -->
+ <!-- android:orientation="horizontal" > -->
+
+
+ <!-- <Button -->
+ <!-- android:id="@+id/btn_encryptMessage" -->
+ <!-- android:layout_width="0dip" -->
+ <!-- android:layout_height="fill_parent" -->
+ <!-- android:layout_weight="1" -->
+ <!-- android:text="@string/btn_encryptMessage" /> -->
+
+
+ <!-- <Button -->
+ <!-- android:id="@+id/btn_decryptMessage" -->
+ <!-- android:layout_width="0dip" -->
+ <!-- android:layout_height="fill_parent" -->
+ <!-- android:layout_weight="1" -->
+ <!-- android:text="@string/btn_decryptMessage" /> -->
+ <!-- </LinearLayout> -->
+ <!-- </LinearLayout> -->
+
+</LinearLayout> \ No newline at end of file
diff --git a/org_apg/res/values/colors.xml b/org_apg/res/values/colors.xml
new file mode 100644
index 000000000..11d0564f0
--- /dev/null
+++ b/org_apg/res/values/colors.xml
@@ -0,0 +1,82 @@
+<!--
+ Copyright 2011 Google Inc.
+
+ 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.
+-->
+<resources>
+
+<!-- <color name="textColorIconOverlay">#fff</color> -->
+<!-- <color name="textColorIconOverlayShadow">#000</color> -->
+<!-- <color name="shortcut_overlay_text_background">#7f000000</color> -->
+<!-- <color name="quickcontact_list_divider">#ffcdcdcd</color> -->
+<!-- <color name="quickcontact_list_background">#ffe2e2e2</color> -->
+<!-- <color name="quickcontact_tab_indicator">#ff33b5e6</color> -->
+
+ <color name="background_primary">#FFFFFF</color>
+
+ <color name="text_primary">#333</color>
+
+<!-- <color name="background_social_updates">#ffeeeeee</color> -->
+
+ <!-- Color used for the letter in the A-Z section header -->
+ <color name="section_header_text_color">#ff999999</color>
+
+<!-- Color of the text in the updates tab in the tab carousel on the contact detail page -->
+<!-- <color name="detail_update_tab_text_color">#777777</color> -->
+
+<!-- Color of the text describing an unconsumed missed call. -->
+<!-- <color name="call_log_missed_call_highlight_color">#FF0000</color> -->
+
+<!-- Color of the text describing an unconsumed voicemail. -->
+<!-- <color name="call_log_voicemail_highlight_color">#33b5e5</color> -->
+
+<!-- Colour background for the voicemail playback ui. -->
+<!-- <color name="voicemail_playback_ui_background">@android:color/black</color> -->
+
+<!-- Colour of voicemail progress bar to the right of position indicator. -->
+<!-- <color name="voicemail_playback_seek_bar_yet_to_play">#44ffffff</color> -->
+
+<!-- Colour of voicemail progress bar to the left of position indicator. -->
+<!-- <color name="voicemail_playback_seek_bar_already_played">#ccffffff</color> -->
+
+<!-- Colour of text that appears on the voicemail ui. -->
+<!-- <color name="voicemail_playback_ui_text">#cc696969</color> -->
+
+<!-- Color of the theme of the People app -->
+<!-- <color name="people_app_theme_color">#33B5E5</color> -->
+
+<!-- Secondary text color in the Phone app -->
+<!-- <color name="dialtacts_secondary_text_color">#888888</color> -->
+
+<!-- Colors in the contact browser list -->
+<!-- <color name="contact_count_text_color">#AAAAAA</color> -->
+
+<!-- Color of the text of the tab carousel in the contact details -->
+<!-- <color name="detail_tab_carousel_tab_label_color">#EEEEEE</color> -->
+
+<!-- Color of the text for buttons in the action bar -->
+<!-- <color name="action_bar_button_text_color">#FFFFFF</color> -->
+
+<!-- Color of the status message for starred contacts in the People app -->
+<!-- <color name="people_contact_tile_status_color">#CCCCCC</color> -->
+
+<!-- Color of the semi-transparent shadow box on contact tiles -->
+<!-- <color name="contact_tile_shadow_box_color">#7F000000</color> -->
+
+<!-- Color of the vertical stripe that goes on the left of a block quote inside a stream item -->
+<!-- <color name="stream_item_stripe_color">#CCCCCC</color> -->
+
+<!-- Color of image view placeholder. -->
+<!-- <color name="image_placeholder">#DDDDDD</color> -->
+
+</resources> \ No newline at end of file
diff --git a/org_apg/res/values/strings.xml b/org_apg/res/values/strings.xml
index d04d7a5e1..c071d041c 100644
--- a/org_apg/res/values/strings.xml
+++ b/org_apg/res/values/strings.xml
@@ -46,7 +46,7 @@
<string name="title_importFromQRCode">Import from QR Code</string>
<string name="title_signKey">Sign Key</string>
<string name="title_about">About</string>
-
+
<!-- section_lowerCase: capitalized words, no punctuation -->
<string name="section_userIds">User IDs</string>
<string name="section_keys">Keys</string>
@@ -81,7 +81,6 @@
<!-- menu_lowerCase: capitalized words, no punctuation -->
<string name="menu_about">About</string>
- <string name="menu_addAccount">Add GMail Account</string>
<string name="menu_deleteAccount">Delete Account</string>
<string name="menu_managePublicKeys">Manage Public Keys</string>
<string name="menu_manageSecretKeys">Manage Secret Keys</string>
@@ -311,13 +310,7 @@
<string name="fast">fast</string>
<string name="slow">slow</string>
<string name="very_slow">very slow</string>
-
- <!-- about -->
- <string name="about_description">Android Privacy Guard (APG) is a OpenPGP implementation for Android.</string>
- <string name="about_license">License: Apache License 2.0</string>
- <string name="about_version">Version:</string>
- <string name="about_developer">Developer: Thialfihar (Main developer), Senecaso (QRCode, send key, sign key), Markus Doits (AIDL), Oliver Runge, Dominik Schürmann</string>
-
+
<!-- texts -->
<!-- "OI File Manager", "ASTRO", and "K-9 Mail" must not be translated in order for the links to the market to work. -->
<string name="text_help">Install K-9 Mail for the best integration, it supports APG for PGP/INLINE and lets you directly encrypt/decrypt emails.
@@ -326,4 +319,20 @@
\n\nYou can also add a GMail account in the main activity via \"Add Account\", which simplifies decrypting emails received there.
\n\nCheck out the option menus in the various activities to find more functions.</string>
+ <!-- APG Plus -->
+
+
+ <!-- about -->
+ <string name="about_description">Android Privacy Guard (APG) is a OpenPGP implementation for Android.</string>
+ <string name="about_license">License: Apache License 2.0</string>
+ <string name="about_version">Version:</string>
+ <string name="about_developer">Developer: Thialfihar (Main developer), Senecaso (QRCode, send key, sign key), Markus Doits (AIDL), Oliver Runge, Dominik Schürmann</string>
+
+ <!-- Dashboard -->
+ <string name="dashboard_manage_keys">Manage Keys</string>
+ <string name="dashboard_my_keys">My Keys</string>
+ <string name="dashboard_encrypt_decrypt_file">Encrypt File</string>
+ <string name="dashboard_encrypt_decrypt_text">Encrypt Text</string>
+ <string name="dashboard_help">Help</string>
+
</resources> \ No newline at end of file
diff --git a/org_apg/res/values/styles.xml b/org_apg/res/values/styles.xml
index 2a2a69341..b1c282cd2 100644
--- a/org_apg/res/values/styles.xml
+++ b/org_apg/res/values/styles.xml
@@ -27,4 +27,16 @@
<item name="android:src">@drawable/ic_btn_round_plus</item>
</style>
+ <style name="DashboardButton">
+ <item name="android:layout_gravity">center_vertical</item>
+ <item name="android:layout_width">wrap_content</item>
+ <item name="android:layout_height">wrap_content</item>
+ <item name="android:gravity">center_horizontal</item>
+ <item name="android:drawablePadding">2dp</item>
+ <item name="android:textSize">14sp</item>
+ <item name="android:textStyle">bold</item>
+ <item name="android:textColor">@color/text_primary</item>
+ <item name="android:background">@android:color/transparent</item>
+ </style>
+
</resources> \ No newline at end of file
diff --git a/org_apg/src/org/apg/ui/MainActivity.java b/org_apg/src/org/apg/ui/MainActivity.java
index 240c265ea..b50a205fc 100644
--- a/org_apg/src/org/apg/ui/MainActivity.java
+++ b/org_apg/src/org/apg/ui/MainActivity.java
@@ -42,54 +42,47 @@ import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
+import android.widget.Toast;
public class MainActivity extends BaseActivity {
static {
Security.addProvider(new BouncyCastleProvider());
}
+ public void manageKeysOnClick(View view) {
+ startActivity(new Intent(this, PublicKeyListActivity.class));
+ }
+
+ public void myKeysOnClick(View view) {
+ startActivity(new Intent(this, SecretKeyListActivity.class));
+
+ }
+
+ public void encryptDecryptFileOnClick(View view) {
+ Intent intent = new Intent(MainActivity.this, EncryptActivity.class);
+ intent.setAction(Apg.Intent.ENCRYPT_FILE);
+ startActivity(intent);
+
+ // intent.setAction(Apg.Intent.DECRYPT_FILE);
+ }
+
+ public void encryptDecryptTextOnClick(View view) {
+ Intent intent = new Intent(MainActivity.this, EncryptActivity.class);
+ intent.setAction(Apg.Intent.ENCRYPT);
+ startActivity(intent);
+
+ // intent.setAction(Apg.Intent.DECRYPT);
+ }
+
+ public void helpOnClick(View view) {
+ // TODO: implement help view
+ }
+
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
- Button encryptMessageButton = (Button) findViewById(R.id.btn_encryptMessage);
- Button decryptMessageButton = (Button) findViewById(R.id.btn_decryptMessage);
- Button encryptFileButton = (Button) findViewById(R.id.btn_encryptFile);
- Button decryptFileButton = (Button) findViewById(R.id.btn_decryptFile);
-
- encryptMessageButton.setOnClickListener(new OnClickListener() {
- public void onClick(View v) {
- Intent intent = new Intent(MainActivity.this, EncryptActivity.class);
- intent.setAction(Apg.Intent.ENCRYPT);
- startActivity(intent);
- }
- });
-
- decryptMessageButton.setOnClickListener(new OnClickListener() {
- public void onClick(View v) {
- Intent intent = new Intent(MainActivity.this, DecryptActivity.class);
- intent.setAction(Apg.Intent.DECRYPT);
- startActivity(intent);
- }
- });
-
- encryptFileButton.setOnClickListener(new OnClickListener() {
- public void onClick(View v) {
- Intent intent = new Intent(MainActivity.this, EncryptActivity.class);
- intent.setAction(Apg.Intent.ENCRYPT_FILE);
- startActivity(intent);
- }
- });
-
- decryptFileButton.setOnClickListener(new OnClickListener() {
- public void onClick(View v) {
- Intent intent = new Intent(MainActivity.this, DecryptActivity.class);
- intent.setAction(Apg.Intent.DECRYPT_FILE);
- startActivity(intent);
- }
- });
-
if (!mPreferences.hasSeenHelp()) {
showDialog(Id.dialog.help);
}
@@ -185,8 +178,6 @@ public class MainActivity extends BaseActivity {
android.R.drawable.ic_menu_manage);
menu.add(0, Id.menu.option.manage_secret_keys, 1, R.string.menu_manageSecretKeys).setIcon(
android.R.drawable.ic_menu_manage);
- menu.add(1, Id.menu.option.create, 2, R.string.menu_addAccount).setIcon(
- android.R.drawable.ic_menu_add);
menu.add(2, Id.menu.option.preferences, 3, R.string.menu_preferences).setIcon(
android.R.drawable.ic_menu_preferences);
menu.add(2, Id.menu.option.key_server, 4, R.string.menu_keyServer).setIcon(
diff --git a/org_apg/src/org/apg/ui/widget/DashboardLayout.java b/org_apg/src/org/apg/ui/widget/DashboardLayout.java
new file mode 100644
index 000000000..c578f26cd
--- /dev/null
+++ b/org_apg/src/org/apg/ui/widget/DashboardLayout.java
@@ -0,0 +1,191 @@
+/*
+ * Copyright 2011 Google Inc.
+ *
+ * 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.
+ */
+
+package org.apg.ui.widget;
+
+import android.content.Context;
+import android.util.AttributeSet;
+import android.view.View;
+import android.view.ViewGroup;
+
+/**
+ * Custom layout that arranges children in a grid-like manner, optimizing for even horizontal and
+ * vertical whitespace.
+ */
+public class DashboardLayout extends ViewGroup {
+ private static final int UNEVEN_GRID_PENALTY_MULTIPLIER = 10;
+ private static final int OVERLAP_PENALTY_MULTIPLIER = 10;
+
+ private int mMaxChildWidth = 0;
+ private int mMaxChildHeight = 0;
+
+ public DashboardLayout(Context context) {
+ super(context, null);
+ }
+
+ public DashboardLayout(Context context, AttributeSet attrs) {
+ super(context, attrs, 0);
+ }
+
+ public DashboardLayout(Context context, AttributeSet attrs, int defStyle) {
+ super(context, attrs, defStyle);
+ }
+
+ @Override
+ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
+ mMaxChildWidth = 0;
+ mMaxChildHeight = 0;
+
+ // Measure once to find the maximum child size.
+
+ int childWidthMeasureSpec = MeasureSpec.makeMeasureSpec(
+ MeasureSpec.getSize(widthMeasureSpec), MeasureSpec.AT_MOST);
+ int childHeightMeasureSpec = MeasureSpec.makeMeasureSpec(
+ MeasureSpec.getSize(heightMeasureSpec), MeasureSpec.AT_MOST);
+
+ final int count = getChildCount();
+ for (int i = 0; i < count; i++) {
+ final View child = getChildAt(i);
+ if (child.getVisibility() == GONE) {
+ continue;
+ }
+
+ child.measure(childWidthMeasureSpec, childHeightMeasureSpec);
+
+ mMaxChildWidth = Math.max(mMaxChildWidth, child.getMeasuredWidth());
+ mMaxChildHeight = Math.max(mMaxChildHeight, child.getMeasuredHeight());
+ }
+
+ // Measure again for each child to be exactly the same size.
+
+ childWidthMeasureSpec = MeasureSpec.makeMeasureSpec(mMaxChildWidth, MeasureSpec.EXACTLY);
+ childHeightMeasureSpec = MeasureSpec.makeMeasureSpec(mMaxChildHeight, MeasureSpec.EXACTLY);
+
+ for (int i = 0; i < count; i++) {
+ final View child = getChildAt(i);
+ if (child.getVisibility() == GONE) {
+ continue;
+ }
+
+ child.measure(childWidthMeasureSpec, childHeightMeasureSpec);
+ }
+
+ setMeasuredDimension(resolveSize(mMaxChildWidth, widthMeasureSpec),
+ resolveSize(mMaxChildHeight, heightMeasureSpec));
+ }
+
+ @Override
+ protected void onLayout(boolean changed, int l, int t, int r, int b) {
+ int width = r - l;
+ int height = b - t;
+
+ final int count = getChildCount();
+
+ // Calculate the number of visible children.
+ int visibleCount = 0;
+ for (int i = 0; i < count; i++) {
+ final View child = getChildAt(i);
+ if (child.getVisibility() == GONE) {
+ continue;
+ }
+ ++visibleCount;
+ }
+
+ if (visibleCount == 0) {
+ return;
+ }
+
+ // Calculate what number of rows and columns will optimize for even horizontal and
+ // vertical whitespace between items. Start with a 1 x N grid, then try 2 x N, and so on.
+ int bestSpaceDifference = Integer.MAX_VALUE;
+ int spaceDifference;
+
+ // Horizontal and vertical space between items
+ int hSpace = 0;
+ int vSpace = 0;
+
+ int cols = 1;
+ int rows;
+
+ while (true) {
+ rows = (visibleCount - 1) / cols + 1;
+
+ hSpace = ((width - mMaxChildWidth * cols) / (cols + 1));
+ vSpace = ((height - mMaxChildHeight * rows) / (rows + 1));
+
+ spaceDifference = Math.abs(vSpace - hSpace);
+ if (rows * cols != visibleCount) {
+ spaceDifference *= UNEVEN_GRID_PENALTY_MULTIPLIER;
+ }
+ if (hSpace < 0) {
+ spaceDifference *= OVERLAP_PENALTY_MULTIPLIER;
+ }
+ if (vSpace < 0) {
+ spaceDifference *= OVERLAP_PENALTY_MULTIPLIER;
+ }
+
+ if (spaceDifference < bestSpaceDifference) {
+ // Found a better whitespace squareness/ratio
+ bestSpaceDifference = spaceDifference;
+
+ // If we found a better whitespace squareness and there's only 1 row, this is
+ // the best we can do.
+ if (rows == 1) {
+ break;
+ }
+ } else {
+ // This is a worse whitespace ratio, use the previous value of cols and exit.
+ --cols;
+ rows = (visibleCount - 1) / cols + 1;
+ hSpace = ((width - mMaxChildWidth * cols) / (cols + 1));
+ vSpace = ((height - mMaxChildHeight * rows) / (rows + 1));
+ break;
+ }
+
+ ++cols;
+ }
+
+ // Lay out children based on calculated best-fit number of rows and cols.
+
+ // If we chose a layout that has negative horizontal or vertical space, force it to zero.
+ hSpace = Math.max(0, hSpace);
+ vSpace = Math.max(0, vSpace);
+
+ // Re-use width/height variables to be child width/height.
+ width = (width - hSpace * (cols + 1)) / cols;
+ height = (height - vSpace * (rows + 1)) / rows;
+
+ int left, top;
+ int col, row;
+ int visibleIndex = 0;
+ for (int i = 0; i < count; i++) {
+ final View child = getChildAt(i);
+ if (child.getVisibility() == GONE) {
+ continue;
+ }
+
+ row = visibleIndex / cols;
+ col = visibleIndex % cols;
+
+ left = hSpace * (col + 1) + width * col;
+ top = vSpace * (row + 1) + height * row;
+
+ child.layout(left, top, (hSpace == 0 && col == cols - 1) ? r : (left + width),
+ (vSpace == 0 && row == rows - 1) ? b : (top + height));
+ ++visibleIndex;
+ }
+ }
+} \ No newline at end of file