support attachments in combined mode, fix french translation, bump

version
This commit is contained in:
Andrew Dolgov 2012-02-21 09:04:10 +03:00
parent 449ba2f1dc
commit c33708a1cf
5 changed files with 49 additions and 18 deletions

View File

@ -1,8 +1,8 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" <manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="org.fox.ttrss" package="org.fox.ttrss"
android:versionCode="62" android:versionCode="63"
android:versionName="0.4.14" > android:versionName="0.5.0" >
<uses-sdk android:minSdkVersion="7" /> <uses-sdk android:minSdkVersion="7" />

View File

@ -5,7 +5,7 @@
<string name="login_in_progress">Connexion...</string> <string name="login_in_progress">Connexion...</string>
<string name="login_failed">Echec de la connexion.</string> <string name="login_failed">Echec de la connexion.</string>
<string name="app_name">Tiny Tiny RSS</string> <string name="app_name">Tiny Tiny RSS</string>
<string name="login_need_configure">Configurer l'application d'abord</string> <string name="login_need_configure">Configurer l\'application d\'abord</string>
<string name="login_ready">Prêt à se connecter</string> <string name="login_ready">Prêt à se connecter</string>
<string name="login_login">Connexion</string> <string name="login_login">Connexion</string>
<string name="logout">Déconnexion</string> <string name="logout">Déconnexion</string>
@ -16,7 +16,7 @@
<string name="authentication">Authentification</string> <string name="authentication">Authentification</string>
<string name="look_and_feel">Interface</string> <string name="look_and_feel">Interface</string>
<string name="pref_theme">Thème</string> <string name="pref_theme">Thème</string>
<string name="pref_theme_long">Changer la couleur du thème de l'application</string> <string name="pref_theme_long">Changer la couleur du thème de l\'application</string>
<string name="ttrss_url">Tiny Tiny RSS URL</string> <string name="ttrss_url">Tiny Tiny RSS URL</string>
<string name="auto_login">Se connecter automatiquement</string> <string name="auto_login">Se connecter automatiquement</string>
<string name="theme_dark">Sombre</string> <string name="theme_dark">Sombre</string>
@ -27,19 +27,19 @@
<string name="http_authentication">HTTP Authentification</string> <string name="http_authentication">HTTP Authentification</string>
<string name="login_success">Connecté</string> <string name="login_success">Connecté</string>
<string name="no_unread_feeds">Pas de flux non-lus</string> <string name="no_unread_feeds">Pas de flux non-lus</string>
<string name="no_unread_headlines">Pas d'articles non-lus</string> <string name="no_unread_headlines">Pas d\'articles non-lus</string>
<string name="loading_message">Chargement, patientez s'il-vous-plaît...</string> <string name="loading_message">Chargement, patientez s\'il-vous-plaît...</string>
<string name="menu_unread_feeds">Montrer les flux non-lus</string> <string name="menu_unread_feeds">Montrer les flux non-lus</string>
<string name="menu_all_feeds">Montrer tous les flux</string> <string name="menu_all_feeds">Montrer tous les flux</string>
<string name="update_feeds">Rafraichir les flux</string> <string name="update_feeds">Rafraichir les flux</string>
<string name="close_article">Fermer l'article</string> <string name="close_article">Fermer l\'article</string>
<string name="share_article">Partager l'article</string> <string name="share_article">Partager l\'article</string>
<string name="catchup">Marquer comme lu</string> <string name="catchup">Marquer comme lu</string>
<string name="sort_feeds_by_unread">Trier les flux par compte non-lu</string> <string name="sort_feeds_by_unread">Trier les flux par compte non-lu</string>
<string name="load_more_articles">Charger plus</string> <string name="load_more_articles">Charger plus</string>
<string name="show_all_articles">Montrer tous les articles</string> <string name="show_all_articles">Montrer tous les articles</string>
<string name="show_unread_articles">Montrer les articles non-lus</string> <string name="show_unread_articles">Montrer les articles non-lus</string>
<string name="ssl_trust_any">Accepter n'importe quel certificat SSL</string> <string name="ssl_trust_any">Accepter n\'importe quel certificat SSL</string>
<string name="category_browse_feeds">Parcourir les flux</string> <string name="category_browse_feeds">Parcourir les flux</string>
<string name="category_browse_articles">Parcourir les articles</string> <string name="category_browse_articles">Parcourir les articles</string>
<string name="blank"></string> <string name="blank"></string>
@ -61,10 +61,10 @@
<string name="article_set_unread">Marqué non-lu</string> <string name="article_set_unread">Marqué non-lu</string>
<string name="article_mark_read_above">Marquer les articles ci-dessus lus</string> <string name="article_mark_read_above">Marquer les articles ci-dessus lus</string>
<string name="http_login_summary">Optional. Remplissez ceci si votre installation tt-rss est protégée par une authentification HTTP Basic</string> <string name="http_login_summary">Optional. Remplissez ceci si votre installation tt-rss est protégée par une authentification HTTP Basic</string>
<string name="login_summary">Votre connexion tt-rss n'est pas nécessaire en mode utilisateur unique</string> <string name="login_summary">Votre connexion tt-rss n\'est pas nécessaire en mode utilisateur unique</string>
<string name="enable_ads">Activer les pubs</string> <string name="enable_ads">Activer les pubs</string>
<string name="enable_ads_summary">Montrer les pubs pour soutenir le projet</string> <string name="enable_ads_summary">Montrer les pubs pour soutenir le projet</string>
<string name="ttrss_url_summary">L'URL de votre répertoire d'installation de votre tt-rss, c'est-à-dire http://site.com/tt-rss/</string> <string name="ttrss_url_summary">L\'URL de votre répertoire d\'installation de votre tt-rss, c\'est-à-dire http://site.com/tt-rss/</string>
<string name="download_feed_icons">Télécharger et afficher les icônes des flux</string> <string name="download_feed_icons">Télécharger et afficher les icônes des flux</string>
<string name="enable_cats">Activer les catégories des flux</string> <string name="enable_cats">Activer les catégories des flux</string>
<string name="back_to_categories">Catégories fermées</string> <string name="back_to_categories">Catégories fermées</string>
@ -81,15 +81,15 @@
<string name="error_http_server_error">Erreur: 500 erreur du serveur</string> <string name="error_http_server_error">Erreur: 500 erreur du serveur</string>
<string name="error_http_other_error">Erreur: autre erreur HTTP (voir enregistrement)</string> <string name="error_http_other_error">Erreur: autre erreur HTTP (voir enregistrement)</string>
<string name="error_ssl_rejected">Erreur: certificat SSL rejeté</string> <string name="error_ssl_rejected">Erreur: certificat SSL rejeté</string>
<string name="error_parse_error">Erreur: Echec de l'analyse JSON</string> <string name="error_parse_error">Erreur: Echec de l\'analyse JSON</string>
<string name="error_io_error">Erreur: I/O Echec (serveur en panne?)</string> <string name="error_io_error">Erreur: I/O Echec (serveur en panne?)</string>
<string name="error_other_error">Erreur: erreur inconnue (voir enregistrement)</string> <string name="error_other_error">Erreur: erreur inconnue (voir enregistrement)</string>
<string name="error_api_disabled">Erreur: API désactivé pour cet usager</string> <string name="error_api_disabled">Erreur: API désactivé pour cet usager</string>
<string name="error_api_unknown">Erreur: API inconnu erreur (voir enregistrement)</string> <string name="error_api_unknown">Erreur: API inconnu erreur (voir enregistrement)</string>
<string name="error_api_incorrect_usage">Erreur: utilisation incorrecte de l'API</string> <string name="error_api_incorrect_usage">Erreur: utilisation incorrecte de l\'API</string>
<string name="error_login_failed">Erreur: nom d'utilisateur ou mot de passe incorrect</string> <string name="error_login_failed">Erreur: nom d\'utilisateur ou mot de passe incorrect</string>
<string name="error_invalid_api_url">Erreur: API URL invalide</string> <string name="error_invalid_api_url">Erreur: API URL invalide</string>
<string name="combined_mode_summary">Afficher l'article complet en un seul block au lieu d'un panneau séparé</string> <string name="combined_mode_summary">Afficher l\'article complet en un seul block au lieu d\'un panneau séparé</string>
<string name="combined_mode">Mode combiné</string> <string name="combined_mode">Mode combiné</string>
<string name="go_offline">Se déconnecter</string> <string name="go_offline">Se déconnecter</string>
<string name="go_online">Se connecter</string> <string name="go_online">Se connecter</string>

View File

@ -117,4 +117,5 @@
<string name="article_set_labels">Set labels</string> <string name="article_set_labels">Set labels</string>
<string name="search">Search</string> <string name="search">Search</string>
<string name="cancel">Cancel</string> <string name="cancel">Cancel</string>
<string name="attachments">Attachments:</string>
</resources> </resources>

View File

@ -153,7 +153,7 @@ public class ArticleFragment extends Fragment {
"<body>" + articleContent; "<body>" + articleContent;
if (m_article.attachments != null && m_article.attachments.size() != 0) { if (m_article.attachments != null && m_article.attachments.size() != 0) {
String attachments = "<div class=\"attachments\">Attachments: "; String attachments = "<div class=\"attachments\">" + getString(R.string.attachments) + " ";
for (Attachment a : m_article.attachments) { for (Attachment a : m_article.attachments) {
if (a.content_type != null && a.content_url != null && a.content_type.indexOf("image") != -1) { if (a.content_type != null && a.content_url != null && a.content_type.indexOf("image") != -1) {
@ -163,9 +163,9 @@ public class ArticleFragment extends Fragment {
String atitle = (a.title != null && a.title.length() > 0) ? a.title : new File(url.getFile()).getName(); String atitle = (a.title != null && a.title.length() > 0) ? a.title : new File(url.getFile()).getName();
content += "<br/><img src=\"" + url.toString().replace("\"", "\\\"") + "\">"; content += "<br/><img src=\"" + url.toString().trim().replace("\"", "\\\"") + "\">";
attachments += "<a href=\""+url.toString().replace("\"", "\\\"") + "\">" + atitle + "</a>, "; attachments += "<a href=\""+url.toString().trim().replace("\"", "\\\"") + "\">" + atitle + "</a>, ";
} catch (MalformedURLException e) { } catch (MalformedURLException e) {
// //

View File

@ -1,6 +1,9 @@
package org.fox.ttrss; package org.fox.ttrss;
import java.io.File;
import java.lang.reflect.Type; import java.lang.reflect.Type;
import java.net.MalformedURLException;
import java.net.URL;
import java.text.DateFormat; import java.text.DateFormat;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.ArrayList; import java.util.ArrayList;
@ -441,6 +444,33 @@ public class HeadlinesFragment extends Fragment implements OnItemClickListener,
if (m_combinedMode) { if (m_combinedMode) {
content.setMovementMethod(LinkMovementMethod.getInstance()); content.setMovementMethod(LinkMovementMethod.getInstance());
if (article.attachments != null && article.attachments.size() != 0) {
String attachments = "<div style=\"font-size : 70%; margin-top : 1em;\">" + getString(R.string.attachments) + " ";
for (Attachment a : article.attachments) {
if (a.content_type != null && a.content_url != null && a.content_type.indexOf("image") != -1) {
try {
URL url = new URL(a.content_url.trim());
String atitle = (a.title != null && a.title.length() > 0) ? a.title : new File(url.getFile()).getName();
articleContent += "<br/><img src=\"" + url.toString().trim().replace("\"", "\\\"") + "\">";
attachments += "<a href=\""+url.toString().trim().replace("\"", "\\\"") + "\">" + atitle + "</a>, ";
} catch (MalformedURLException e) {
//
} catch (Exception e) {
e.printStackTrace();
}
}
}
articleContent += attachments.replaceAll(", $", "");
articleContent += "</div>";
}
//content.setText(Html.fromHtml(article.content, new URLImageGetter(content, getActivity()), null)); //content.setText(Html.fromHtml(article.content, new URLImageGetter(content, getActivity()), null));
content.setText(Html.fromHtml(articleContent, m_dummyGetter, null)); content.setText(Html.fromHtml(articleContent, m_dummyGetter, null));