diff --git a/app/build.gradle b/app/build.gradle
index 4b011468..280b9a8d 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -6,12 +6,8 @@ android {
buildToolsVersion "24.0.3"
defaultConfig {
- applicationId "com.github.dfa.diaspora_android"
minSdkVersion 17
targetSdkVersion 24
- versionCode 13
- versionName "0.2.3"
- setProperty("archivesBaseName", "dandelion__${versionName}__")
vectorDrawables.useSupportLibrary = true
}
@@ -26,6 +22,9 @@ android {
flavorDandelion {
applicationId "com.github.dfa.diaspora_android"
manifestPlaceholders = [appName: "dandelion*"]
+ versionCode 13
+ versionName "0.2.3"
+ setProperty("archivesBaseName", "dandelion__${versionName}__")
}
flavorSecondlion {
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 1f8bbb27..9f7ad6bf 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -28,20 +28,21 @@
@@ -69,6 +70,10 @@
+
+
+
+
diff --git a/app/src/main/java/com/github/dfa/diaspora_android/activity/SettingsActivity.java b/app/src/main/java/com/github/dfa/diaspora_android/activity/SettingsActivity.java
index a819fc70..97219e56 100644
--- a/app/src/main/java/com/github/dfa/diaspora_android/activity/SettingsActivity.java
+++ b/app/src/main/java/com/github/dfa/diaspora_android/activity/SettingsActivity.java
@@ -152,8 +152,8 @@ public class SettingsActivity extends ThemedActivity implements SharedPreference
}
@Override
- public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String s) {
- if (s.equals(getString(R.string.pref_key__screen_rotation))) {
+ public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
+ if (key.equals(getString(R.string.pref_key__screen_rotation))) {
this.updateScreenRotation();
}
}
diff --git a/app/src/main/java/com/github/dfa/diaspora_android/ui/theme/ThemedActivity.java b/app/src/main/java/com/github/dfa/diaspora_android/ui/theme/ThemedActivity.java
index 88bc2766..cd3416d0 100644
--- a/app/src/main/java/com/github/dfa/diaspora_android/ui/theme/ThemedActivity.java
+++ b/app/src/main/java/com/github/dfa/diaspora_android/ui/theme/ThemedActivity.java
@@ -21,6 +21,7 @@ package com.github.dfa.diaspora_android.ui.theme;
import android.annotation.TargetApi;
import android.app.ActivityManager;
import android.content.pm.ActivityInfo;
+import android.content.res.Configuration;
import android.graphics.drawable.BitmapDrawable;
import android.os.Build;
import android.support.v7.app.AppCompatActivity;
@@ -28,6 +29,9 @@ import android.support.v7.app.AppCompatActivity;
import com.github.dfa.diaspora_android.App;
import com.github.dfa.diaspora_android.R;
import com.github.dfa.diaspora_android.util.AppSettings;
+import com.github.dfa.diaspora_android.util.Helpers;
+
+import java.util.Locale;
/**
* Activity that supports color schemes
@@ -44,6 +48,7 @@ public abstract class ThemedActivity extends AppCompatActivity {
protected void onResume() {
super.onResume();
ThemeHelper.getInstance(getAppSettings());
+ updateLanguage();
updateStatusBarColor();
updateRecentAppColor();
applyColorToViews();
@@ -91,4 +96,12 @@ public abstract class ThemedActivity extends AppCompatActivity {
}
setRequestedOrientation(rotation);
}
+
+ public void updateLanguage() {
+ AppSettings appSettings = getAppSettings();
+ Locale locale = Helpers.getLocaleByAndroidCode(appSettings.getLanguage());
+ Configuration config = appSettings.getApplicationContext().getResources().getConfiguration();
+ config.locale = locale != null ? locale : Locale.getDefault();
+ appSettings.getApplicationContext().getResources().updateConfiguration(config, null);
+ }
}
diff --git a/app/src/main/java/com/github/dfa/diaspora_android/util/AppSettings.java b/app/src/main/java/com/github/dfa/diaspora_android/util/AppSettings.java
index 82f430a2..db494ca6 100644
--- a/app/src/main/java/com/github/dfa/diaspora_android/util/AppSettings.java
+++ b/app/src/main/java/com/github/dfa/diaspora_android/util/AppSettings.java
@@ -430,6 +430,14 @@ public class AppSettings {
setLong(prefPod, R.string.pref_key__podprofile_last_stream_position, timestamp);
}
+ public void setLanguage(String value){
+ setString(prefApp, R.string.pref_key__language, value);
+ }
+
+ public String getLanguage(){
+ return getString(prefApp, R.string.pref_key__language, "");
+ }
+
public void setPrimaryColorSettings(int base, int shade) {
setInt(prefApp, R.string.pref_key__primary_color_base, base);
setInt(prefApp, R.string.pref_key__primary_color_shade, shade);
diff --git a/app/src/main/java/com/github/dfa/diaspora_android/util/Helpers.java b/app/src/main/java/com/github/dfa/diaspora_android/util/Helpers.java
index 7167ca6e..3d5097b6 100644
--- a/app/src/main/java/com/github/dfa/diaspora_android/util/Helpers.java
+++ b/app/src/main/java/com/github/dfa/diaspora_android/util/Helpers.java
@@ -27,8 +27,10 @@ import android.os.Build;
import android.os.Bundle;
import android.os.Environment;
import android.support.design.widget.Snackbar;
+import android.text.TextUtils;
import android.view.View;
+import com.github.dfa.diaspora_android.App;
import com.github.dfa.diaspora_android.R;
import com.github.dfa.diaspora_android.web.WebHelper;
@@ -84,6 +86,16 @@ public class Helpers {
);
}
+ public static Locale getLocaleByAndroidCode(String code) {
+ if (!TextUtils.isEmpty(code)) {
+ return code.contains("-r")
+ ? new Locale(code.substring(0, 2), code.substring(4, 6)) // de-rAT
+ : new Locale(code); // de
+ }
+ return Locale.getDefault();
+ }
+
+
public static String readTextfileFromRawRessource(Context context, int rawRessourceId, String linePrefix, String linePostfix) {
StringBuilder sb = new StringBuilder();
String line;
diff --git a/app/src/main/java/com/github/dfa/diaspora_android/web/CustomWebViewClient.java b/app/src/main/java/com/github/dfa/diaspora_android/web/CustomWebViewClient.java
index eb15a83e..2541ec32 100644
--- a/app/src/main/java/com/github/dfa/diaspora_android/web/CustomWebViewClient.java
+++ b/app/src/main/java/com/github/dfa/diaspora_android/web/CustomWebViewClient.java
@@ -26,10 +26,11 @@ import android.webkit.WebViewClient;
import com.github.dfa.diaspora_android.App;
import com.github.dfa.diaspora_android.activity.MainActivity;
+import com.github.dfa.diaspora_android.data.DiasporaPodList;
public class CustomWebViewClient extends WebViewClient {
private final App app;
- private String lastLoadUrl ="";
+ private String lastLoadUrl = "";
public CustomWebViewClient(App app, WebView webView) {
this.app = app;
@@ -37,13 +38,18 @@ public class CustomWebViewClient extends WebViewClient {
//Open non-diaspora links in customtab/external browser
public boolean shouldOverrideUrlLoading(WebView view, String url) {
- if (!url.contains(app.getSettings().getPod().getPodUrl().getHost())) {
+ String host = app.getSettings().getPod().getPodUrl().getHost();
+
+ if (url.startsWith("https://" + host)
+ || url.startsWith("http://" + host)
+ || url.startsWith("https://dia.so/")) {
+ return false;
+ } else {
Intent i = new Intent(MainActivity.ACTION_OPEN_EXTERNAL_URL);
i.putExtra(MainActivity.EXTRA_URL, url);
LocalBroadcastManager.getInstance(app.getApplicationContext()).sendBroadcast(i);
return true;
}
- return false;
}
public void onPageFinished(WebView view, String url) {
@@ -51,14 +57,17 @@ public class CustomWebViewClient extends WebViewClient {
final CookieManager cookieManager = app.getCookieManager();
String cookies = cookieManager.getCookie(url);
- //Log.d(this, "All the cookies in a string:" + cookies);
+ DiasporaPodList.DiasporaPod pod = app.getSettings().getPod();
if (cookies != null) {
cookieManager.setCookie(url, cookies);
- cookieManager.setCookie(app.getSettings().getPod().getPodUrl().getBaseUrl(), cookies);
- //for (String c : cookies.split(";")) {
- //AppLog.d(this, "Cookie: " + c.split("=")[0] + " Value:" + c.split("=")[1]);
- //}
+ if (pod != null && pod.getPodUrl() != null) {
+ cookieManager.setCookie(pod.getPodUrl().getBaseUrl(), cookies);
+ cookieManager.setCookie(".dia.so", "pod=" + pod.getPodUrl().getHost());
+ }
+ for (String c : cookies.split(";")) {
+ //AppLog.d(this, "Cookie: " + c.split("=")[0] + " Value:" + c.split("=")[1]);
+ }
//new ProfileFetchTask(app).execute();
}
}
diff --git a/app/src/main/res/drawable/ic_language_black_48px.xml b/app/src/main/res/drawable/ic_language_black_48px.xml
new file mode 100644
index 00000000..29536847
--- /dev/null
+++ b/app/src/main/res/drawable/ic_language_black_48px.xml
@@ -0,0 +1,4 @@
+
+
+
diff --git a/app/src/main/res/values-da/strings-about.xml b/app/src/main/res/values-da/strings-about.xml
new file mode 100644
index 00000000..1cc85051
--- /dev/null
+++ b/app/src/main/res/values-da/strings-about.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git a/app/src/main/res/values-da/strings-preferences.xml b/app/src/main/res/values-da/strings-preferences.xml
new file mode 100644
index 00000000..fd7f2a36
--- /dev/null
+++ b/app/src/main/res/values-da/strings-preferences.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/values-da/strings.xml b/app/src/main/res/values-da/strings.xml
new file mode 100644
index 00000000..69332975
--- /dev/null
+++ b/app/src/main/res/values-da/strings.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/values-de/strings-preferences.xml b/app/src/main/res/values-de/strings-preferences.xml
index 829f666b..7d238a07 100644
--- a/app/src/main/res/values-de/strings-preferences.xml
+++ b/app/src/main/res/values-de/strings-preferences.xml
@@ -18,8 +18,8 @@
Navigations Slider
Konfiguration der Sichtbarkeit von Einträgen im Navigation-Slider
- Nutzer
- Generelles
+ Benutzer
+ Allgemeines
Administrator
Farbschema
diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml
index 36292c3d..abccffe4 100644
--- a/app/src/main/res/values-de/strings.xml
+++ b/app/src/main/res/values-de/strings.xml
@@ -42,7 +42,7 @@
Bildschirmfoto speichern
Speichere Bild als
Bildschirmfoto wird gespeichert unter:
- Linkadresse kopiert …
+ Link-Adresse kopiert …
Neuer Beitrag
Nach oben scrollen
Suche nach Tags oder Personen…
@@ -52,12 +52,12 @@
nach Tags
nach Personen
Füge einen Namen ein.
- Linkadresse teilen
+ Link-Adresse teilen
Bild speichern
Bild teilen
In externem Browser öffnen…
- Linkadresse kopieren
- Bildadresse in die Zwischenablage kopieren
+ Link-Adresse kopieren
+ Bild-Adresse kopieren
Konnte Bild nicht laden…
diff --git a/app/src/main/res/values/arrays.xml b/app/src/main/res/values/arrays.xml
index 0d2c4cc4..3fdaac6a 100644
--- a/app/src/main/res/values/arrays.xml
+++ b/app/src/main/res/values/arrays.xml
@@ -1,4 +1,34 @@
+
+
+ - en
+ - de
+ - es
+ - fr
+ - ru
+ - it
+ - ja
+ - pl
+ - nl
+ - hu
+ - cs
+ - sv
+
+
+ - @string/language_system
+ - English
+ - German (Deutsch)
+ - Spanish (Español)
+ - French (Français)
+ - Russian (Русский)
+ - Italian (Italiano)
+ - Japanese (Nihongo)
+ - Polish (Polski)
+ - Dutch (Nederlands)
+ - Hungarian (Magyar)
+ - Czech (Čeština)
+ - Swedish (Svenska)
+
\ No newline at end of file
diff --git a/app/src/main/res/values/strings-preferences.xml b/app/src/main/res/values/strings-preferences.xml
index 7a01fa06..d1337fd2 100644
--- a/app/src/main/res/values/strings-preferences.xml
+++ b/app/src/main/res/values/strings-preferences.xml
@@ -3,6 +3,7 @@
pref_key__current_pod_0
pref_key_font_size
+ pref_key__language
pref_key_intellihide_toolbars
pref_key_personal_settings
pref_key_manage_tags
@@ -93,7 +94,12 @@
Extended Notifications
Extend the notifications bell with a dropdown menu that shows notification categories
+ Change language of this app. Restart app for changes to take affect
+ Language
+ System language
+
+ Control text size of the WebView
Font size
- @string/font_size_normal
@@ -179,7 +185,7 @@
Intellihide Toolbars
Append shared-by-notice
- Append a reference to this app ("shared by…") to shared texts
+ Append a reference to this app to shared texts: [via #dandelion]
@string/about_activity__title_debug_info
diff --git a/app/src/main/res/xml/preferences__master.xml b/app/src/main/res/xml/preferences__master.xml
index a1d8ce27..2feb957f 100644
--- a/app/src/main/res/xml/preferences__master.xml
+++ b/app/src/main/res/xml/preferences__master.xml
@@ -6,32 +6,35 @@
android:title="@string/pref_cat__visuals">
+ android:title="@string/pref_title__themes"/>
+ android:title="@string/pref_title__sub_nav_slider"/>
+
+
+
-
-
+ android:summary="@string/pref_desc__font_size"
+ android:title="@string/pref_title__font_size"/>
@@ -39,42 +42,49 @@
+
+
+ android:title="@string/pref_title__extended_notifications"/>
+ android:title="@string/pref_title__append_shared_via_app"/>
+ android:title="@string/pref_title__chrome_custom_tabs_enabled"/>
+ android:title="@string/pref_title__topbar_stream_shortcut"/>
+ android:icon="@drawable/ic_screen_rotation_black_24px"
+ android:key="@string/pref_key__screen_rotation"
+ android:summary="@string/pref_desc__screen_rotation"
+ android:title="@string/pref_title__screen_rotation"/>
@@ -83,28 +93,28 @@
android:key="@string/pref_key__title__pod_settings"
android:title="@string/pref_cat__pod_settings">
+ android:title="@string/pref_title__personal_settings"/>
-
-
+ android:title="@string/pref_title__manage_contacts"/>
+
+
+ android:title="@string/pref_title__change_account"/>
@@ -113,22 +123,22 @@
android:title="@string/pref_cat__network">
+ android:title="@string/pref_title__load_images"/>
+ android:title="@string/pref_title__clear_cache"/>
+ android:title="@string/pref_title__sub_proxy"/>
@@ -138,10 +148,10 @@
android:title="@string/pref_cat__more">
+ android:title="@string/pref_title__sub_logging"/>
\ No newline at end of file
diff --git a/crowdin.yaml b/crowdin.yaml
index 76a71fd2..cfacc777 100644
--- a/crowdin.yaml
+++ b/crowdin.yaml
@@ -13,6 +13,7 @@ files:
ja: ja # Japanese
it: it # Italian
fr: fr # French
+ da: da # Danish
kn: kn # Kannada (Asian)
nl: nl # Dutch
hu: hu # Hungarian