Merge pull request #616 from SamWhited/license-compliance

License compliance via an "about" menu item
This commit is contained in:
Daniel Gultsch 2014-11-04 22:56:33 +01:00
commit 39183418ab
8 changed files with 156 additions and 31 deletions

View file

@ -20,9 +20,9 @@
android:label="@string/app_name"
android:theme="@style/ConversationsTheme"
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>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
@ -31,7 +31,7 @@
</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" >
@ -42,7 +42,7 @@
</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" >
<intent-filter>
@ -63,37 +63,39 @@
</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: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>

View file

@ -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);
}
}

View file

@ -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/
}
}
}
}

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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&#8230;</string>
<string name="encrypted_message">Decrypting message. Please wait&#8230;</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&#8230;</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&#8230;</string>
<string name="waiting">waiting&#8230;</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&#8230;</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&#8230;</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>

View file

@ -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>