From ea94fbee72b3871b8719a9df804dc269e502a30c Mon Sep 17 00:00:00 2001 From: rfc2822 Date: Sun, 16 Mar 2014 16:05:02 +0100 Subject: [PATCH] Show JB Workaround info when installed from Google Play --- res/layout/activity_main.xml | 28 +++++++++---- res/layout/enter_credentials.xml | 2 +- res/values-de/strings.xml | 41 ++++++++++++++----- res/values-es/strings.xml | 13 ++---- res/values-fr/strings.xml | 13 ++---- res/values/strings.xml | 50 +++++++++++++++-------- src/at/bitfire/davdroid/MainActivity.java | 23 +++++++++-- 7 files changed, 113 insertions(+), 57 deletions(-) diff --git a/res/layout/activity_main.xml b/res/layout/activity_main.xml index 3762dcc0..1337c4e4 100644 --- a/res/layout/activity_main.xml +++ b/res/layout/activity_main.xml @@ -2,14 +2,28 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" + android:padding="20dp" tools:context=".MainActivity" > - + android:orientation="vertical" > - + + + + + + + \ No newline at end of file diff --git a/res/layout/enter_credentials.xml b/res/layout/enter_credentials.xml index 5962e2d7..cbd1292a 100644 --- a/res/layout/enter_credentials.xml +++ b/res/layout/enter_credentials.xml @@ -50,7 +50,7 @@ Hilfe zu DAVdroid Sync-Konten anzeigen DAVdroid-Website - Willkommen bei DAVdroid! + Vielen Dank, dass Sie DAVdroid im Play Store erworben haben und das Projekt dadurch unterstützen. + Leider gibt es derzeit zwei Probleme, die vom Play Store verursacht werden:

+ +

1. DAVdroid-Accounts verschwinden nach einem Neustart

+

Möglicherweise verschwinden alle Ihre DAVdroid-Accounts samt Kontakten und Terminen nach einem Neustart + des Geräts. Die Ursache ist ein Fehler in Android, + der zur irrtümlichen Entfernung von Accounts von Bezahlapps bei einem Neustart führt, da die Prüfung auf verwaiste + und damit zu löschende Accounts schon *vor* dem Entschlüsseln der App erfolgt.

+

Betroffene Benutzer*Innen:
+ * alle mit Android 4.1, die DAVdroid über Play Store bezogen haben;
+ * einige mit Android 4.2, die DAVdroid über Play Store bezogen und bestimmte Geräte haben (zB die meisten Samsung-Geräte)

+ +

2. DAVdroid-Accounts verschwinden nach einer DAVdroid-Aktualisierung

+

Möglicherweise verschwinden alle Ihre DAVdroid-Accounts samt Kontakten und Terminen während eines + DAVdroid-Updates, das von Play Store durchgeführt wird. Die Ursache ist ein + anderer Fehler in Android, + der zur irrtümlichen Entfernung von Accounts von Bezahlapps bei der Aktualisierung dieser Apps führt.

+

Betroffene Benutzer*Innen:
+ einige mit Android 4.4.2, die DAVdroid über Play Store bezogen haben (bekannt sind Nexus-Geräte und Moto G)

+ +

Sollten Sie von einem dieser Fehler betroffen sein, installieren + Sie den DAVdroid JB Workaround.

+ ]]>
+ Willkommen bei DAVdroid/%s!

DAVdroid ist ein Android 4+-CalDAV/CardDAV-Sync-Adapter. Um ihn zu verwenden, müssen Sie ein DAVdroid-Konto für Ihren Server hinzufügen. Die Kontakte/Termine werden dann automatisch in beide Richtungen synchronisiert.

-

Wenn Sie DAVdroid über den - Play-Store bezogen haben und Android 4.1 oder Samsung-Geräte (wie zB das Galaxy Note, Note 10.1, S2, S3, S4, …) - benutzen, müssen Sie möglicherweise den - DAVdroid JB Workaround - installieren, um Datenverlust beim Neustart zu vermeiden (dies ist ein Android/Play Store-Bug).

-

Wenn Sie CyanogenMod benutzen, muss die "Datenschutz"-Funktion für DAVdroid deaktiviert sein, da DAVdroid sonst keinen Zugriff auf die Kontakte und Kalendar hat und auch nicht synchronisieren kann.

@@ -60,17 +78,18 @@ über F-Droid bezogen werden.

Es ist jedoch viel Arbeit, die App zu entwickeln und besser zu machen. Daher haben wir uns entschlossen, sie - auch gegen eine kleine Gebühr in die Stores (Google Play, Samsung Store) - zu stellen. Wenn Sie das Projekt unterstützen wollen, können Sie + auch gegen eine kleine Gebühr in die kommerziellen App-Stores zu stellen. Wenn Sie das Projekt unterstützen wollen, können Sie für DAVdroid spenden oder die App kaufen.

Lizenz

-

Copyright (c) 2013 Richard Hirner (bitfire web engineering), alle Rechte +

Copyright (c) 2013 – 2014 Richard Hirner (bitfire web engineering), alle Rechte vorbehalten. Dieses Programm ist freie Software. Sie können es unter den Bedingungen der GNU General Public License Version 3, wie von der Free Software Foundation veröffentlicht, weitergeben und/oder modifizieren. Sofern Google Play oder Samsung Store andere Bedingungen benötigen, gelten für über den jeweiligen Markt heruntergeladene Apps diese Bedingungen.

+

Übersetzungen: Französisch von Unbekannt, Spanisch von @xphnx

+

Benutzte Bibliotheken

* iCal4j (New BSD License)
diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml index b9de3256..36a23fb5 100644 --- a/res/values-es/strings.xml +++ b/res/values-es/strings.xml @@ -37,16 +37,11 @@ Ayuda de DAVdroid Administrar las cuentas sincronizadas Sitio web de DAVdroid - ¡Bienvenido a DAVdroid! + ¡Bienvenido a DAVdroid/%s!

DAVdroid es un adaptador de sincronización entre Android 4+ y CalDAV/CardDAV. Para usarlo, simplemente añade una cuenta DAVdroid para tu servidor de CalDAV/CardDAV, así tus contactos y eventos serán sincronizados en ambas direcciones.

-

Si has adquirido DAVdroid en - Play Store y usas Android 4.1 o un dispositivo Samsung (por ejemplo, un Galaxy Note, un Note 10.1, o los S2, S3, S4, …) - deberás instalar DAVdroid JB Workaround - para evitar que se pierdan datos al arrancar el sistema (es un bug de Android/Play Store).

-

Si usas CyanogenMod, debes desactivar "Privacy Guard" para DAVdroid. De otro modo, DAVdroid no tendrá autorización para acceder y sincronizar tus contactos y eventos.

Para más información, por favor lee la página de DAVdroid. @@ -60,12 +55,12 @@

DAVdroid ha sido diseñado como un proyecto de código abierto desde sus inicios. Siempre es posible compilar la app por ti mismo y usarla de forma gratuita sin ninguna obligación. El código fuente está disponible en Github, y puedes descargar la app desde F-droid.

Sin embargo, hay mucho trabajo detrás de la creación de esta aplicación, así que hemos decidido ponerla en las tiendas (Google Play, - Samsung Store) a cambio de un pequeño pago. + Samsung Store) a cambio de un pequeño pago. Si quieres apoyar este proyecto, por favor piensa en hacer una donación a DAVdroid o en comprar la app.

Licencia

-

Copyright (c) 2013 Richard Hirner (bitfire web engineering). Todos los derechos reservados. +

Copyright (c) 2013 – 2014 Richard Hirner (bitfire web engineering). Todos los derechos reservados. Este programa y los materiales que la acompañan está disponible bajo las condiciones de la GNU Public License v3.0 que acompaña a esta distribución, y está a tu disposición en http://www.gnu.org/licenses/gpl.html. En lo relativo a Google Play or Samsung requieren otras condiciones, éstas han sido descargadas a través de estos servicios.

diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml index 662f3fad..9aafd2d3 100644 --- a/res/values-fr/strings.xml +++ b/res/values-fr/strings.xml @@ -37,17 +37,12 @@ Aide de DAVdroid Gérer les comptes synchronisés Site Web de DAVdroid - Bienvenue dans DAVdroid! + Bienvenue dans DAVdroid/%s!

DAVdroid est un connecteur de synhronisation entre Android 4+ et CalDAV/CardDAV. Pour l\'utiliser, il suffit d\'ajouter un compte DAVdroid pour votre serveur CalDAV/CardDAV, et vos contacts/évènements seront synchronisés dans les deux sens.

-

Si vous avez acheté DAVdroid via - Play Store et que vous utilisez Android 4.1 ou des appareils Samsung (par exemlple Galaxy Note, Note 10.1, S2, S3, S4, ...) - vous devez installer l\'application DAVdroid JB Workaround - pour éviter la perte de données en cas de redémarrage(c\'est un bug de Android/Play Store).

-

Si vous utilisez CyanogenMod, "Privacy Guard" doit être désactivé pour DAVdroid. Sinon DAVdroid ne sera pas en mesure d\'accéder et synchroniser vos contacts et évènements

@@ -66,11 +61,11 @@ télécharger l\'application sur F-droid.

Néanmoins étant donné que créer cette application nécessite du travail, nous avons décidé de la mettre sur les Stores (Google Play, - Samsung Store) pour un faible coût. + Samsung Store) pour un faible coût. Si vous voulez aider ce projet faites un don à DAVdroid ou achetez le

License

-

Copyright (c) 2013 Richard Hirner (bitfire web engineering). All rights reserved. +

Copyright (c) 2013 – 2014 Richard Hirner (bitfire web engineering). All rights reserved. Ce programme et les documents qui l\'accompagnent sont mis à disposition sous les termes de la Licence Public GNU v3.0 qui accompagne cette distribution, et est disponible à http://www.gnu.org/licenses/gpl.html. En ce qui concerne Google Play ou Samsung Store, les conditions respectives s\'appliquent pour les versions qui sont téléchargées via ces services.

diff --git a/res/values/strings.xml b/res/values/strings.xml index ab2e0274..5f885d94 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -37,25 +37,40 @@ DAVdroid Help Manage sync accounts DAVdroid Web site - Welcome to DAVdroid! + Thank you for buying DAVdroid via Google Play and thus supporting the project. Unfortunately, there are two issues with Google Play:

+ +

1. Accounts may be gone after a reboot

+

You may encounter the problem that all your DAVdroid accounts (including contacts and events) are gone + after rebooting your device. The reason is a bug in Android + that causes accounts of paid apps to be removed on start-up because the (encrypted) APK files are + loaded after checking for orphaned accounts.

+

Affected users:
+ * all Android 4.1 users who have got DAVdroid from Play Store;
+ * Android 4.2 users who have got DAVdroid from Play Store only with certain devices (for instance, most Samsung devices)

+ +

2. Accounts may be gone after upgrading DAVdroid

+

You may encounter the problem that all your DAVdroid accounts (including contacts and events) when Play Store + updates DAVdroid. The reason is another bug in Android + that causes accounts of paid apps to be removed when upgrading for a similar reason.

+

Affected users: some Android 4.4.2 users who have got DAVdroid from Play Store (known for Nexus devices and Moto G)

+ +

If you\'re affected by one of these bugs, please install the + DAVdroid JB Workaround.

+ ]]>
+ Welcome to DAVdroid/%s!

DAVdroid is an Android 4+ sync adapter for CalDAV/CardDAV. To use it, just add a DAVdroid account for your CalDAV/CardDAV server and your contacts/events will be synchronized in both directions.

-

If you have bought DAVdroid via - Play Store and use Android 4.1 or Samsung devices (for instance, Galaxy Note, Note 10.1, S2, S3, S4, …) - you may have to install the - DAVdroid JB Workaround - to prevent data-loss on reboot (it\'s an Android/Play Store bug).

- -

If you use CyanogenMod, "Privacy Guard" must be disabled for DAVdroid. Otherwise, DAVdroid is not allowed to access - and synchronize your contacts and events.

-

For more information, please see the DAVdroid homepage. There\'s a Setup guide, too. DAVdroid respects your privacy, see our Privacy Policy.

+

If you use CyanogenMod, "Privacy Guard" must be disabled for DAVdroid. Otherwise, DAVdroid is not allowed to access + and synchronize your contacts and events.

+

In case of problems, please read the FAQ first. If you encounter a bug that is clearly related to DAVdroid, enter it on Github issues instead of contacting us directly or giving a poor @@ -67,17 +82,19 @@ available on Github, and you can download the app on F-droid.

-

However, it was much work to create this app, so we have decided to put it into the stores (Google Play, - Samsung Store) for a small fee. +

However, it was much work to create this app, so we have decided to put it into the commercial stores for a small fee. If you want to support this project, please consider donating to DAVdroid or purchasing it.

License

-

Copyright (c) 2013 Richard Hirner (bitfire web engineering). All rights reserved. +

Copyright (c) 2013 – 2014 Richard Hirner (bitfire web engineering). All rights reserved. This program and the accompanying materials are made available under the terms of the GNU Public License v3.0 which accompanies this distribution, and is available at http://www.gnu.org/licenses/gpl.html. As far as Google Play or Samsung - Store Store require other terms, the respective terms apply for versions that are downloaded via these services.

+ href="http://www.gnu.org/licenses/gpl.html">http://www.gnu.org/licenses/gpl.html. As far as Google Play, Samsung + Store, AndroidPit App Center or Amazon Appstore require other terms, the respective terms apply for versions + that are downloaded via these services.

+ +

Translations: French by unknown contributor, Spanish by @xphnx

Used third-party libraries

@@ -86,6 +103,7 @@ * Simple XML Serialization (Apache License, Version 2.0)
* Project Lombok (MIT License)

]]>
+ Account details Account name: My CalDAV/CardDAV Account diff --git a/src/at/bitfire/davdroid/MainActivity.java b/src/at/bitfire/davdroid/MainActivity.java index 348f9585..005c7d31 100644 --- a/src/at/bitfire/davdroid/MainActivity.java +++ b/src/at/bitfire/davdroid/MainActivity.java @@ -20,6 +20,7 @@ import android.text.method.LinkMovementMethod; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; +import android.view.View; import android.widget.TextView; public class MainActivity extends Activity { @@ -30,11 +31,16 @@ public class MainActivity extends Activity { setContentView(R.layout.activity_main); - setTitle("DAVdroid " + Constants.APP_VERSION); + TextView tvWorkaround = (TextView)findViewById(R.id.text_workaround); + if (fromPlayStore()) { + tvWorkaround.setVisibility(View.VISIBLE); + tvWorkaround.setText(Html.fromHtml(getString(R.string.html_main_workaround))); + tvWorkaround.setMovementMethod(LinkMovementMethod.getInstance()); + } - TextView tv = (TextView)findViewById(R.id.text_info); - tv.setText(Html.fromHtml(getString(R.string.html_info))); - tv.setMovementMethod(LinkMovementMethod.getInstance()); + TextView tvInfo = (TextView)findViewById(R.id.text_info); + tvInfo.setText(Html.fromHtml(getString(R.string.html_main_info, Constants.APP_VERSION))); + tvInfo.setMovementMethod(LinkMovementMethod.getInstance()); } @Override @@ -60,4 +66,13 @@ public class MainActivity extends Activity { intent.setData(Uri.parse(Constants.WEB_URL_HELP + "&pk_kwd=main-activity")); startActivity(intent); } + + + private boolean fromPlayStore() { + try { + return "com.android.vending".equals(getPackageManager().getInstallerPackageName("at.bitfire.davdroid")); + } catch(IllegalArgumentException e) { + } + return false; + } }