diff options
author | Daniel Gultsch <daniel@gultsch.de> | 2014-11-04 22:56:33 +0100 |
---|---|---|
committer | Daniel Gultsch <daniel@gultsch.de> | 2014-11-04 22:56:33 +0100 |
commit | 39183418ab133f14bddc389dea8419980538f629 (patch) | |
tree | af4e2af1606c1d87c97382f0281ca7c3777e62e0 | |
parent | ff10b094a0a210bb1c7745bd0e0f92e9a7e3ec2d (diff) | |
parent | df786cbf0114d49974f46433740e5ac89a00d63a (diff) |
Merge pull request #616 from SamWhited/license-compliance
License compliance via an "about" menu item
-rw-r--r-- | src/main/AndroidManifest.xml | 56 | ||||
-rw-r--r-- | src/main/java/eu/siacs/conversations/ui/AboutActivity.java | 15 | ||||
-rw-r--r-- | src/main/java/eu/siacs/conversations/ui/AboutPreference.java | 41 | ||||
-rw-r--r-- | src/main/res/layout/activity_about.xml | 21 | ||||
-rw-r--r-- | src/main/res/values-w820dp/dimens.xml | 7 | ||||
-rw-r--r-- | src/main/res/values/dimens.xml | 5 | ||||
-rw-r--r-- | src/main/res/values/strings.xml | 39 | ||||
-rw-r--r-- | src/main/res/xml/preferences.xml | 3 |
8 files changed, 156 insertions, 31 deletions
diff --git a/src/main/AndroidManifest.xml b/src/main/AndroidManifest.xml index 95663a87..225091f9 100644 --- a/src/main/AndroidManifest.xml +++ b/src/main/AndroidManifest.xml @@ -19,10 +19,10 @@ android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/ConversationsTheme" - tools:replace="android:label"> - <service android:name="eu.siacs.conversations.services.XmppConnectionService" /> + tools:replace="android:label" > + <service android:name=".services.XmppConnectionService" /> - <receiver android:name="eu.siacs.conversations.services.EventReceiver"> + <receiver android:name=".services.EventReceiver" > <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED" /> <action android:name="android.net.conn.CONNECTIVITY_CHANGE" /> @@ -31,10 +31,10 @@ </receiver> <activity - android:name="eu.siacs.conversations.ui.ConversationActivity" + android:name=".ui.ConversationActivity" android:label="@string/title_activity_conversations" android:launchMode="singleTask" - android:windowSoftInputMode="stateHidden"> + android:windowSoftInputMode="stateHidden" > <intent-filter> <action android:name="android.intent.action.MAIN" /> @@ -42,9 +42,9 @@ </intent-filter> </activity> <activity - android:name="eu.siacs.conversations.ui.StartConversationActivity" + android:name=".ui.StartConversationActivity" android:configChanges="orientation|screenSize" - android:label="@string/title_activity_start_conversation"> + android:label="@string/title_activity_start_conversation" > <intent-filter> <action android:name="android.intent.action.SENDTO" /> @@ -63,38 +63,40 @@ </intent-filter> <intent-filter> <action android:name="android.nfc.action.NDEF_DISCOVERED" /> + <category android:name="android.intent.category.DEFAULT" /> + <data android:scheme="xmpp" /> </intent-filter> </activity> <activity - android:name="eu.siacs.conversations.ui.SettingsActivity" - android:label="@string/title_activity_settings"></activity> + android:name=".ui.SettingsActivity" + android:label="@string/title_activity_settings" /> <activity - android:name="eu.siacs.conversations.ui.ChooseContactActivity" - android:label="@string/title_activity_choose_contact"></activity> + android:name=".ui.ChooseContactActivity" + android:label="@string/title_activity_choose_contact" /> <activity - android:name="eu.siacs.conversations.ui.ManageAccountActivity" + android:name=".ui.ManageAccountActivity" android:configChanges="orientation|screenSize" - android:label="@string/title_activity_manage_accounts"></activity> + android:label="@string/title_activity_manage_accounts" /> <activity - android:name="eu.siacs.conversations.ui.EditAccountActivity" - android:windowSoftInputMode="stateHidden|adjustResize"></activity> + android:name=".ui.EditAccountActivity" + android:windowSoftInputMode="stateHidden|adjustResize" /> <activity - android:name="eu.siacs.conversations.ui.ConferenceDetailsActivity" + android:name=".ui.ConferenceDetailsActivity" android:label="@string/title_activity_conference_details" - android:windowSoftInputMode="stateHidden"></activity> + android:windowSoftInputMode="stateHidden" /> <activity - android:name="eu.siacs.conversations.ui.ContactDetailsActivity" + android:name=".ui.ContactDetailsActivity" android:label="@string/title_activity_contact_details" - android:windowSoftInputMode="stateHidden"></activity> + android:windowSoftInputMode="stateHidden" /> <activity - android:name="eu.siacs.conversations.ui.PublishProfilePictureActivity" + android:name=".ui.PublishProfilePictureActivity" android:label="@string/mgmt_account_publish_avatar" - android:windowSoftInputMode="stateHidden"></activity> + android:windowSoftInputMode="stateHidden" /> <activity - android:name="eu.siacs.conversations.ui.ShareWithActivity" - android:label="@string/title_activity_conversations"> + android:name=".ui.ShareWithActivity" + android:label="@string/title_activity_conversations" > <intent-filter> <action android:name="android.intent.action.SEND" /> @@ -111,6 +113,14 @@ </intent-filter> </activity> <activity android:name="de.duenndns.ssl.MemorizingActivity" /> + <activity + android:name=".ui.AboutActivity" + android:label="@string/title_activity_about" + android:parentActivityName=".ui.SettingsActivity" > + <meta-data + android:name="android.support.PARENT_ACTIVITY" + android:value="eu.siacs.conversations.ui.SettingsActivity" /> + </activity> </application> </manifest> diff --git a/src/main/java/eu/siacs/conversations/ui/AboutActivity.java b/src/main/java/eu/siacs/conversations/ui/AboutActivity.java new file mode 100644 index 00000000..a61b872a --- /dev/null +++ b/src/main/java/eu/siacs/conversations/ui/AboutActivity.java @@ -0,0 +1,15 @@ +package eu.siacs.conversations.ui; + +import android.app.Activity; +import android.os.Bundle; + +import eu.siacs.conversations.R; + +public class AboutActivity extends Activity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_about); + } +} diff --git a/src/main/java/eu/siacs/conversations/ui/AboutPreference.java b/src/main/java/eu/siacs/conversations/ui/AboutPreference.java new file mode 100644 index 00000000..804b4e23 --- /dev/null +++ b/src/main/java/eu/siacs/conversations/ui/AboutPreference.java @@ -0,0 +1,41 @@ +package eu.siacs.conversations.ui; + +import android.content.Context; +import android.content.Intent; +import android.content.pm.PackageManager; +import android.preference.Preference; +import android.util.AttributeSet; + +public class AboutPreference extends Preference { + public AboutPreference(final Context context, final AttributeSet attrs, final int defStyle) { + super(context, attrs, defStyle); + setSummary(); + } + + public AboutPreference(final Context context, final AttributeSet attrs) { + super(context, attrs); + setSummary(); + } + + @Override + protected void onClick() { + super.onClick(); + final Intent intent = new Intent(getContext(), AboutActivity.class); + getContext().startActivity(intent); + } + + private void setSummary() { + if (getContext() != null && getContext().getPackageManager() != null) { + final String packageName = getContext().getPackageName(); + final String versionName; + try { + versionName = getContext().getPackageManager().getPackageInfo(packageName, 0).versionName; + setSummary("Conversations " + versionName); + } catch (final PackageManager.NameNotFoundException e) { + // Using try/catch as part of the logic is sort of like this: + // https://xkcd.com/292/ + } + } + } +} + diff --git a/src/main/res/layout/activity_about.xml b/src/main/res/layout/activity_about.xml new file mode 100644 index 00000000..06a4992a --- /dev/null +++ b/src/main/res/layout/activity_about.xml @@ -0,0 +1,21 @@ +<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:tools="http://schemas.android.com/tools" + tools:context="eu.siacs.conversations.ui.AboutActivity" + android:background="@color/secondarybackground" + android:paddingLeft="@dimen/activity_horizontal_margin" + android:paddingRight="@dimen/activity_horizontal_margin" + android:paddingTop="@dimen/activity_vertical_margin" + android:paddingBottom="@dimen/activity_vertical_margin" + android:layout_width="fill_parent" + android:layout_height="fill_parent"> + + <TextView + android:text="@string/pref_about_message" + android:autoLink="web" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:linksClickable="true" + android:textColor="@color/primarytext" + android:textSize="?attr/TextSizeBody" /> + +</ScrollView> diff --git a/src/main/res/values-w820dp/dimens.xml b/src/main/res/values-w820dp/dimens.xml new file mode 100644 index 00000000..3aeac9e7 --- /dev/null +++ b/src/main/res/values-w820dp/dimens.xml @@ -0,0 +1,7 @@ +<resources> + <!-- Customization of dimensions originally defined in res/values/dimens.xml + (such as screen margins) for screens with more than 820dp of available + width. This would include 7" and 10" devices in landscape (~960dp and + ~1280dp respectively). --> + <dimen name="activity_horizontal_margin">64dp</dimen> +</resources> diff --git a/src/main/res/values/dimens.xml b/src/main/res/values/dimens.xml new file mode 100644 index 00000000..47c82246 --- /dev/null +++ b/src/main/res/values/dimens.xml @@ -0,0 +1,5 @@ +<resources> + <!-- Default screen margins, per the Android Design guidelines. --> + <dimen name="activity_horizontal_margin">16dp</dimen> + <dimen name="activity_vertical_margin">16dp</dimen> +</resources> diff --git a/src/main/res/values/strings.xml b/src/main/res/values/strings.xml index 0dbb49ad..547659b4 100644 --- a/src/main/res/values/strings.xml +++ b/src/main/res/values/strings.xml @@ -25,8 +25,8 @@ <string name="minute_ago">1 min ago</string> <string name="minutes_ago">%d mins ago</string> <string name="unread_conversations">unread Conversations</string> - <string name="sending">sending…</string> - <string name="encrypted_message">Decrypting message. Please wait…</string> + <string name="sending">sending…</string> + <string name="encrypted_message">Decrypting message. Please wait…</string> <string name="nick_in_use">Nickname is already in use</string> <string name="admin">Admin</string> <string name="owner">Owner</string> @@ -58,7 +58,7 @@ <string name="add_contact">Add contact</string> <string name="send_failed">delivery failed</string> <string name="send_rejected">rejected</string> - <string name="receiving_image">Receiving image file. Please wait…</string> + <string name="receiving_image">Receiving image file. Please wait…</string> <string name="preparing_image">Preparing image for transmission</string> <string name="action_clear_history">Clear history</string> <string name="clear_conversation_history">Clear Conversation History</string> @@ -78,8 +78,8 @@ <string name="openkeychain_required_long">Conversations utilizes a third party app called <b>OpenKeychain</b> to encrypt and decrypt messages and to manage your public keys.\n\nOpenKeychain is licensed under GPLv3 and available on F-Droid and Google Play.\n\n<small>(Please restart Conversations afterwards.)</small></string> <string name="restart">Restart</string> <string name="install">Install</string> - <string name="offering">offering…</string> - <string name="waiting">waiting…</string> + <string name="offering">offering…</string> + <string name="waiting">waiting…</string> <string name="no_pgp_key">No OpenPGP Key found</string> <string name="contact_has_no_pgp_key">Conversations is unable to encrypt your messages because your contact is not announcing his or hers public key.\n\n<small>Please ask your contact to setup OpenPGP.</small></string> <string name="no_pgp_keys">No OpenPGP Keys found</string> @@ -91,7 +91,7 @@ <string name="pref_xmpp_resource">XMPP resource</string> <string name="pref_xmpp_resource_summary">The name this client identifies itself with</string> <string name="pref_accept_files">Accept files</string> - <string name="pref_accept_files_summary">Automatically accept files smaller than…</string> + <string name="pref_accept_files_summary">Automatically accept files smaller than…</string> <string name="pref_notification_settings">Notification Settings</string> <string name="pref_notifications">Notifications</string> <string name="pref_notifications_summary">Notify when a new message arrives</string> @@ -217,7 +217,7 @@ <string name="publish">Publish</string> <string name="touch_to_choose_picture">Touch avatar to select picture from gallery</string> <string name="publish_avatar_explanation">Please note: Everyone subscribed to your presence updates will be allowed to see this picture.</string> - <string name="publishing">Publishing…</string> + <string name="publishing">Publishing…</string> <string name="error_publish_avatar_server_reject">The server rejected your publication</string> <string name="error_publish_avatar_converting">Something went wrong while converting your picture</string> <string name="error_saving_avatar">Could not save avatar to disk</string> @@ -254,6 +254,29 @@ <string name="pref_enable_legacy_ssl_summary">Enables SSLv3 support for legacy servers. Warning: SSLv3 is considered insecure.</string> <string name="pref_expert_options">Expert options</string> <string name="pref_expert_options_summary">Please be careful with these</string> + <string name="title_activity_about">About Conversations</string> + <string name="pref_about_conversations_summary">Build and licensing information</string> + <string name="pref_about_message"> + This program is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License version 3 as published + by the Free Software Foundation.\n + \n + https://www.gnu.org/licenses/gpl-3.0.html\n + \n + OpenPGP API is licensed under the Apache License, Version 2.0; You may + obtain a copy of the License at:\n + \n + https://www.apache.org/licenses/LICENSE-2.0\n + \n + Minidns © 2014 Rene Treffer and is provided under the WTFPL\n + \n + http://wtfpl.org\n + \n + MemorizingTrustManager © 2010 Georg Lukas under the terms of the MIT + License\n + \n + http://opensource.org/licenses/MIT\n + </string> <string name="pref_use_larger_font">Increase font size</string> <string name="pref_use_larger_font_summary">Use larger font sizes across the entire app</string> <string name="pref_use_send_button_to_indicate_status">Send button indicates status</string> @@ -285,4 +308,4 @@ <string name="scan_qr_code">Scan QR code</string> <string name="show_qr_code">Show QR code</string> <string name="account_details">Account details</string> -</resources>
\ No newline at end of file +</resources> diff --git a/src/main/res/xml/preferences.xml b/src/main/res/xml/preferences.xml index 06ab7560..15a61e87 100644 --- a/src/main/res/xml/preferences.xml +++ b/src/main/res/xml/preferences.xml @@ -110,5 +110,8 @@ android:summary="@string/pref_never_send_crash_summary" android:title="@string/pref_never_send_crash" /> </PreferenceCategory> + <eu.siacs.conversations.ui.AboutPreference + android:summary="@string/pref_about_conversations_summary" + android:title="@string/title_activity_about" /> </PreferenceScreen> |