From 9a274db12ff60dd021c78aefdca5bd2dec504b89 Mon Sep 17 00:00:00 2001 From: Armin Novak Date: Thu, 26 Jun 2014 15:05:17 +0200 Subject: [PATCH] Modified asset loading, now checking if translated version exists before loading default. --- .../presentation/AboutActivity.java | 34 ++++++++++++++++++- .../presentation/HelpActivity.java | 30 ++++++++++++++-- .../presentation/HomeActivity.java | 21 +++++++++++- 3 files changed, 81 insertions(+), 4 deletions(-) diff --git a/client/Android/FreeRDPCore/src/com/freerdp/freerdpcore/presentation/AboutActivity.java b/client/Android/FreeRDPCore/src/com/freerdp/freerdpcore/presentation/AboutActivity.java index 8c74ae932..e32025b16 100644 --- a/client/Android/FreeRDPCore/src/com/freerdp/freerdpcore/presentation/AboutActivity.java +++ b/client/Android/FreeRDPCore/src/com/freerdp/freerdpcore/presentation/AboutActivity.java @@ -11,8 +11,10 @@ package com.freerdp.freerdpcore.presentation; import java.io.BufferedReader; import java.io.IOException; +import java.io.InputStream; import java.io.InputStreamReader; import java.util.IllegalFormatException; +import java.util.Locale; import com.freerdp.freerdpcore.services.LibFreeRDP; @@ -21,10 +23,12 @@ import android.content.pm.PackageManager.NameNotFoundException; import android.content.res.Configuration; import android.os.Build; import android.os.Bundle; +import android.util.Log; import android.webkit.WebView; public class AboutActivity extends Activity { + private static final String TAG = "FreeRDPCore.AboutActivity"; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -47,6 +51,18 @@ public class AboutActivity extends Activity { try { String filename = ((getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) >= Configuration.SCREENLAYOUT_SIZE_LARGE) ? "about.html" : "about_phone.html"; + Locale def = Locale.getDefault(); + String prefix = def.getLanguage().toLowerCase(def); + + String file = prefix + "_about_page/" + filename; + InputStream is; + try { + is = getAssets().open(file); + is.close(); + } catch (IOException e) { + Log.e(TAG, "Missing localized asset " + file, e); + file = "about_page/" + filename; + } BufferedReader r = new BufferedReader(new InputStreamReader(getAssets().open("about_page/" + filename))); String line; while ((line = r.readLine()) != null) { @@ -70,6 +86,22 @@ public class AboutActivity extends Activity { about_html="Nothing here ;("; } webview.getSettings().setJavaScriptEnabled(true); - webview.loadDataWithBaseURL("file:///android_asset/about_page/", about_html, "text/html", null, "about:blank"); + Locale def = Locale.getDefault(); + String prefix = def.getLanguage().toLowerCase(def); + + String base = "file:///android_asset/"; + String dir = prefix + "_about_page/"; + String file = dir + about_html; + try { + InputStream is = getAssets().open(dir); + is.close(); + dir = base + dir; + } catch (IOException e) { + Log.e(TAG, "Missing localized asset " + dir, e); + dir = "file:///android_asset/about_page/"; + } + + webview.loadDataWithBaseURL(dir, about_html, "text/html", null, + "about:blank"); } } diff --git a/client/Android/FreeRDPCore/src/com/freerdp/freerdpcore/presentation/HelpActivity.java b/client/Android/FreeRDPCore/src/com/freerdp/freerdpcore/presentation/HelpActivity.java index f4fa0cd71..3617e3270 100644 --- a/client/Android/FreeRDPCore/src/com/freerdp/freerdpcore/presentation/HelpActivity.java +++ b/client/Android/FreeRDPCore/src/com/freerdp/freerdpcore/presentation/HelpActivity.java @@ -12,10 +12,15 @@ package com.freerdp.freerdpcore.presentation; import android.app.Activity; import android.content.res.Configuration; import android.os.Bundle; +import android.util.Log; import android.webkit.WebView; +import java.io.IOException; +import java.io.InputStream; +import java.util.Locale; public class HelpActivity extends Activity { + private static final String TAG = "FreeRDPCore.HelpActivity"; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -23,7 +28,28 @@ public class HelpActivity extends Activity { WebView webview = new WebView(this); setContentView(webview); - String filename = ((getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) >= Configuration.SCREENLAYOUT_SIZE_LARGE) ? "gestures.html" : "gestures_phone.html"; - webview.loadUrl("file:///android_asset/help_page/" + filename); + String filename; + if ((getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) >= Configuration.SCREENLAYOUT_SIZE_LARGE) + filename = "gestures.html"; + else + filename = "gestures_phone.html"; + + webview.getSettings().setJavaScriptEnabled(true); + Locale def = Locale.getDefault(); + String prefix = def.getLanguage().toLowerCase(def); + + String base = "file:///android_asset/"; + String dir = prefix + "_help_page/" + + filename; + try { + InputStream is = getAssets().open(dir); + is.close(); + dir = base + dir; + } catch (IOException e) { + Log.e(TAG, "Missing localized asset " + dir, e); + dir = "file:///android_asset/help_page/" + filename; + } + + webview.loadUrl(dir); } } diff --git a/client/Android/FreeRDPCore/src/com/freerdp/freerdpcore/presentation/HomeActivity.java b/client/Android/FreeRDPCore/src/com/freerdp/freerdpcore/presentation/HomeActivity.java index 62ec20fb7..84128a96d 100644 --- a/client/Android/FreeRDPCore/src/com/freerdp/freerdpcore/presentation/HomeActivity.java +++ b/client/Android/FreeRDPCore/src/com/freerdp/freerdpcore/presentation/HomeActivity.java @@ -9,7 +9,10 @@ package com.freerdp.freerdpcore.presentation; +import java.io.IOException; +import java.io.InputStream; import java.util.ArrayList; +import java.util.Locale; import com.freerdp.freerdpcore.R; import com.freerdp.freerdpcore.application.GlobalApp; @@ -111,7 +114,23 @@ public class HomeActivity extends Activity webViewGetStarted = (WebView) findViewById(R.id.webViewWelcome); String filename = ((getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) >= Configuration.SCREENLAYOUT_SIZE_LARGE) ? "welcome.html" : "welcome_phone.html"; - webViewGetStarted.loadUrl("file:///android_asset/welcome_page/" + filename); + webViewGetStarted.getSettings().setJavaScriptEnabled(true); + Locale def = Locale.getDefault(); + String prefix = def.getLanguage().toLowerCase(def); + + String base = "file:///android_asset/"; + String dir = prefix + "_help_page/" + + filename; + try { + InputStream is = getAssets().open(dir); + is.close(); + dir = base + dir; + } catch (IOException e) { + Log.e(TAG, "Missing localized asset " + dir, e); + dir = "file:///android_asset/help_page/" + filename; + } + + webViewGetStarted.loadUrl(dir); // set listeners for the list view listViewBookmarks.setOnItemClickListener(new AdapterView.OnItemClickListener() {