Merge pull request #616 from SamWhited/license-compliance
License compliance via an "about" menu item
This commit is contained in:
		
						commit
						39183418ab
					
				|  | @ -20,9 +20,9 @@ | ||||||
|         android:label="@string/app_name" |         android:label="@string/app_name" | ||||||
|         android:theme="@style/ConversationsTheme" |         android:theme="@style/ConversationsTheme" | ||||||
|         tools:replace="android:label" > |         tools:replace="android:label" > | ||||||
|         <service android:name="eu.siacs.conversations.services.XmppConnectionService" /> |         <service android:name=".services.XmppConnectionService" /> | ||||||
| 
 | 
 | ||||||
|         <receiver android:name="eu.siacs.conversations.services.EventReceiver"> |         <receiver android:name=".services.EventReceiver" > | ||||||
|             <intent-filter> |             <intent-filter> | ||||||
|                 <action android:name="android.intent.action.BOOT_COMPLETED" /> |                 <action android:name="android.intent.action.BOOT_COMPLETED" /> | ||||||
|                 <action android:name="android.net.conn.CONNECTIVITY_CHANGE" /> |                 <action android:name="android.net.conn.CONNECTIVITY_CHANGE" /> | ||||||
|  | @ -31,7 +31,7 @@ | ||||||
|         </receiver> |         </receiver> | ||||||
| 
 | 
 | ||||||
|         <activity |         <activity | ||||||
|             android:name="eu.siacs.conversations.ui.ConversationActivity" |             android:name=".ui.ConversationActivity" | ||||||
|             android:label="@string/title_activity_conversations" |             android:label="@string/title_activity_conversations" | ||||||
|             android:launchMode="singleTask" |             android:launchMode="singleTask" | ||||||
|             android:windowSoftInputMode="stateHidden" > |             android:windowSoftInputMode="stateHidden" > | ||||||
|  | @ -42,7 +42,7 @@ | ||||||
|             </intent-filter> |             </intent-filter> | ||||||
|         </activity> |         </activity> | ||||||
|         <activity |         <activity | ||||||
|             android:name="eu.siacs.conversations.ui.StartConversationActivity" |             android:name=".ui.StartConversationActivity" | ||||||
|             android:configChanges="orientation|screenSize" |             android:configChanges="orientation|screenSize" | ||||||
|             android:label="@string/title_activity_start_conversation" > |             android:label="@string/title_activity_start_conversation" > | ||||||
|             <intent-filter> |             <intent-filter> | ||||||
|  | @ -63,37 +63,39 @@ | ||||||
|             </intent-filter> |             </intent-filter> | ||||||
|             <intent-filter> |             <intent-filter> | ||||||
|                 <action android:name="android.nfc.action.NDEF_DISCOVERED" /> |                 <action android:name="android.nfc.action.NDEF_DISCOVERED" /> | ||||||
|  | 
 | ||||||
|                 <category android:name="android.intent.category.DEFAULT" /> |                 <category android:name="android.intent.category.DEFAULT" /> | ||||||
|  | 
 | ||||||
|                 <data android:scheme="xmpp" /> |                 <data android:scheme="xmpp" /> | ||||||
|             </intent-filter> |             </intent-filter> | ||||||
|         </activity> |         </activity> | ||||||
|         <activity |         <activity | ||||||
|             android:name="eu.siacs.conversations.ui.SettingsActivity" |             android:name=".ui.SettingsActivity" | ||||||
|             android:label="@string/title_activity_settings"></activity> |             android:label="@string/title_activity_settings" /> | ||||||
|         <activity |         <activity | ||||||
|             android:name="eu.siacs.conversations.ui.ChooseContactActivity" |             android:name=".ui.ChooseContactActivity" | ||||||
|             android:label="@string/title_activity_choose_contact"></activity> |             android:label="@string/title_activity_choose_contact" /> | ||||||
|         <activity |         <activity | ||||||
|             android:name="eu.siacs.conversations.ui.ManageAccountActivity" |             android:name=".ui.ManageAccountActivity" | ||||||
|             android:configChanges="orientation|screenSize" |             android:configChanges="orientation|screenSize" | ||||||
|             android:label="@string/title_activity_manage_accounts"></activity> |             android:label="@string/title_activity_manage_accounts" /> | ||||||
|         <activity |         <activity | ||||||
|             android:name="eu.siacs.conversations.ui.EditAccountActivity" |             android:name=".ui.EditAccountActivity" | ||||||
|             android:windowSoftInputMode="stateHidden|adjustResize"></activity> |             android:windowSoftInputMode="stateHidden|adjustResize" /> | ||||||
|         <activity |         <activity | ||||||
|             android:name="eu.siacs.conversations.ui.ConferenceDetailsActivity" |             android:name=".ui.ConferenceDetailsActivity" | ||||||
|             android:label="@string/title_activity_conference_details" |             android:label="@string/title_activity_conference_details" | ||||||
|             android:windowSoftInputMode="stateHidden"></activity> |             android:windowSoftInputMode="stateHidden" /> | ||||||
|         <activity |         <activity | ||||||
|             android:name="eu.siacs.conversations.ui.ContactDetailsActivity" |             android:name=".ui.ContactDetailsActivity" | ||||||
|             android:label="@string/title_activity_contact_details" |             android:label="@string/title_activity_contact_details" | ||||||
|             android:windowSoftInputMode="stateHidden"></activity> |             android:windowSoftInputMode="stateHidden" /> | ||||||
|         <activity |         <activity | ||||||
|             android:name="eu.siacs.conversations.ui.PublishProfilePictureActivity" |             android:name=".ui.PublishProfilePictureActivity" | ||||||
|             android:label="@string/mgmt_account_publish_avatar" |             android:label="@string/mgmt_account_publish_avatar" | ||||||
|             android:windowSoftInputMode="stateHidden"></activity> |             android:windowSoftInputMode="stateHidden" /> | ||||||
|         <activity |         <activity | ||||||
|             android:name="eu.siacs.conversations.ui.ShareWithActivity" |             android:name=".ui.ShareWithActivity" | ||||||
|             android:label="@string/title_activity_conversations" > |             android:label="@string/title_activity_conversations" > | ||||||
|             <intent-filter> |             <intent-filter> | ||||||
|                 <action android:name="android.intent.action.SEND" /> |                 <action android:name="android.intent.action.SEND" /> | ||||||
|  | @ -111,6 +113,14 @@ | ||||||
|             </intent-filter> |             </intent-filter> | ||||||
|         </activity> |         </activity> | ||||||
|         <activity android:name="de.duenndns.ssl.MemorizingActivity" /> |         <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> |     </application> | ||||||
| 
 | 
 | ||||||
| </manifest> | </manifest> | ||||||
|  |  | ||||||
|  | @ -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); | ||||||
|  |     } | ||||||
|  | } | ||||||
|  | @ -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/ | ||||||
|  | 			} | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | @ -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> | ||||||
|  | @ -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> | ||||||
|  | @ -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> | ||||||
|  | @ -25,8 +25,8 @@ | ||||||
|     <string name="minute_ago">1 min ago</string> |     <string name="minute_ago">1 min ago</string> | ||||||
|     <string name="minutes_ago">%d mins ago</string> |     <string name="minutes_ago">%d mins ago</string> | ||||||
|     <string name="unread_conversations">unread Conversations</string> |     <string name="unread_conversations">unread Conversations</string> | ||||||
|     <string name="sending">sending…</string> |     <string name="sending">sending…</string> | ||||||
|     <string name="encrypted_message">Decrypting message. Please wait…</string> |     <string name="encrypted_message">Decrypting message. Please wait…</string> | ||||||
|     <string name="nick_in_use">Nickname is already in use</string> |     <string name="nick_in_use">Nickname is already in use</string> | ||||||
|     <string name="admin">Admin</string> |     <string name="admin">Admin</string> | ||||||
|     <string name="owner">Owner</string> |     <string name="owner">Owner</string> | ||||||
|  | @ -58,7 +58,7 @@ | ||||||
|     <string name="add_contact">Add contact</string> |     <string name="add_contact">Add contact</string> | ||||||
|     <string name="send_failed">delivery failed</string> |     <string name="send_failed">delivery failed</string> | ||||||
|     <string name="send_rejected">rejected</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="preparing_image">Preparing image for transmission</string> | ||||||
|     <string name="action_clear_history">Clear history</string> |     <string name="action_clear_history">Clear history</string> | ||||||
|     <string name="clear_conversation_history">Clear Conversation 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="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="restart">Restart</string> | ||||||
|     <string name="install">Install</string> |     <string name="install">Install</string> | ||||||
|     <string name="offering">offering…</string> |     <string name="offering">offering…</string> | ||||||
|     <string name="waiting">waiting…</string> |     <string name="waiting">waiting…</string> | ||||||
|     <string name="no_pgp_key">No OpenPGP Key found</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="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> |     <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">XMPP resource</string> | ||||||
|     <string name="pref_xmpp_resource_summary">The name this client identifies itself with</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">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_notification_settings">Notification Settings</string> | ||||||
|     <string name="pref_notifications">Notifications</string> |     <string name="pref_notifications">Notifications</string> | ||||||
|     <string name="pref_notifications_summary">Notify when a new message arrives</string> |     <string name="pref_notifications_summary">Notify when a new message arrives</string> | ||||||
|  | @ -217,7 +217,7 @@ | ||||||
|     <string name="publish">Publish</string> |     <string name="publish">Publish</string> | ||||||
|     <string name="touch_to_choose_picture">Touch avatar to select picture from gallery</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="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_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_publish_avatar_converting">Something went wrong while converting your picture</string> | ||||||
|     <string name="error_saving_avatar">Could not save avatar to disk</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_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">Expert options</string> | ||||||
|     <string name="pref_expert_options_summary">Please be careful with these</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">Increase font size</string> | ||||||
|     <string name="pref_use_larger_font_summary">Use larger font sizes across the entire app</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> |     <string name="pref_use_send_button_to_indicate_status">Send button indicates status</string> | ||||||
|  |  | ||||||
|  | @ -110,5 +110,8 @@ | ||||||
|             android:summary="@string/pref_never_send_crash_summary" |             android:summary="@string/pref_never_send_crash_summary" | ||||||
|             android:title="@string/pref_never_send_crash" /> |             android:title="@string/pref_never_send_crash" /> | ||||||
|     </PreferenceCategory> |     </PreferenceCategory> | ||||||
|  | 		<eu.siacs.conversations.ui.AboutPreference | ||||||
|  | 			android:summary="@string/pref_about_conversations_summary" | ||||||
|  | 			android:title="@string/title_activity_about" /> | ||||||
| 
 | 
 | ||||||
| </PreferenceScreen> | </PreferenceScreen> | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue
	
	 Daniel Gultsch
						Daniel Gultsch