Blame client/Android/Studio/freeRDPCore/src/main/java/com/freerdp/freerdpcore/presentation/AboutActivity.java

Packit 1fb8d4
package com.freerdp.freerdpcore.presentation;
Packit 1fb8d4
Packit 1fb8d4
import android.content.pm.PackageManager;
Packit 1fb8d4
import android.content.res.Configuration;
Packit 1fb8d4
import android.nfc.FormatException;
Packit 1fb8d4
import android.os.Build;
Packit 1fb8d4
import android.os.Bundle;
Packit 1fb8d4
import android.support.v4.text.TextUtilsCompat;
Packit 1fb8d4
import android.support.v7.app.AppCompatActivity;
Packit 1fb8d4
import android.util.Log;
Packit 1fb8d4
import android.webkit.WebSettings;
Packit 1fb8d4
import android.webkit.WebView;
Packit 1fb8d4
Packit 1fb8d4
import com.freerdp.freerdpcore.R;
Packit 1fb8d4
import com.freerdp.freerdpcore.services.LibFreeRDP;
Packit 1fb8d4
Packit 1fb8d4
import java.io.BufferedReader;
Packit 1fb8d4
import java.io.IOException;
Packit 1fb8d4
import java.io.InputStream;
Packit 1fb8d4
import java.io.InputStreamReader;
Packit 1fb8d4
import java.util.Formatter;
Packit 1fb8d4
import java.util.IllegalFormatException;
Packit 1fb8d4
import java.util.Locale;
Packit 1fb8d4
Packit Service 5a9772
public class AboutActivity extends AppCompatActivity
Packit Service 5a9772
{
Packit Service 5a9772
	private static final String TAG = AboutActivity.class.toString();
Packit Service 5a9772
	private WebView mWebView;
Packit Service 5a9772
Packit Service 5a9772
	@Override protected void onCreate(Bundle savedInstanceState)
Packit Service 5a9772
	{
Packit Service 5a9772
		super.onCreate(savedInstanceState);
Packit Service 5a9772
		setContentView(R.layout.activity_about);
Packit Service 5a9772
		mWebView = (WebView)findViewById(R.id.activity_about_webview);
Packit Service 5a9772
	}
Packit Service 5a9772
Packit Service 5a9772
	@Override protected void onResume()
Packit Service 5a9772
	{
Packit Service 5a9772
		populate();
Packit Service 5a9772
		super.onResume();
Packit Service 5a9772
	}
Packit Service 5a9772
Packit Service 5a9772
	private void populate()
Packit Service 5a9772
	{
Packit Service 5a9772
		StringBuilder total = new StringBuilder();
Packit Service 5a9772
Packit Service 5a9772
		String filename = "about_phone.html";
Packit Service 5a9772
		if ((getResources().getConfiguration().screenLayout &
Packit Service 5a9772
		     Configuration.SCREENLAYOUT_SIZE_MASK) >= Configuration.SCREENLAYOUT_SIZE_LARGE)
Packit Service 5a9772
		{
Packit Service 5a9772
			filename = "about.html";
Packit Service 5a9772
		}
Packit Service 5a9772
		Locale def = Locale.getDefault();
Packit Service 5a9772
		String prefix = def.getLanguage().toLowerCase(def);
Packit Service 5a9772
Packit Service 5a9772
		String dir = prefix + "_about_page/";
Packit Service 5a9772
		String file = dir + filename;
Packit Service 5a9772
		InputStream is;
Packit Service 5a9772
		try
Packit Service 5a9772
		{
Packit Service 5a9772
			is = getAssets().open(file);
Packit Service 5a9772
			is.close();
Packit Service 5a9772
		}
Packit Service 5a9772
		catch (IOException e)
Packit Service 5a9772
		{
Packit Service 5a9772
			Log.e(TAG, "Missing localized asset " + file, e);
Packit Service 5a9772
			dir = "about_page/";
Packit Service 5a9772
			file = dir + filename;
Packit Service 5a9772
		}
Packit Service 5a9772
Packit Service 5a9772
		try
Packit Service 5a9772
		{
Packit Service 5a9772
			BufferedReader r = new BufferedReader(new InputStreamReader(getAssets().open(file)));
Packit Service 5a9772
			try
Packit Service 5a9772
			{
Packit Service 5a9772
				String line;
Packit Service 5a9772
				while ((line = r.readLine()) != null)
Packit Service 5a9772
				{
Packit Service 5a9772
					total.append(line);
Packit Service 5a9772
					total.append("\n");
Packit Service 5a9772
				}
Packit Service 5a9772
			}
Packit Service 5a9772
			finally
Packit Service 5a9772
			{
Packit Service 5a9772
				r.close();
Packit Service 5a9772
			}
Packit Service 5a9772
		}
Packit Service 5a9772
		catch (IOException e)
Packit Service 5a9772
		{
Packit Service 5a9772
			Log.e(TAG, "Could not read about page " + file, e);
Packit Service 5a9772
		}
Packit Service 5a9772
Packit Service 5a9772
		// append FreeRDP core version to app version
Packit Service 5a9772
		// get app version
Packit Service 5a9772
		String version;
Packit Service 5a9772
		try
Packit Service 5a9772
		{
Packit Service 5a9772
			version = getPackageManager().getPackageInfo(getPackageName(), 0).versionName;
Packit Service 5a9772
		}
Packit Service 5a9772
		catch (PackageManager.NameNotFoundException e)
Packit Service 5a9772
		{
Packit Service 5a9772
			version = "unknown";
Packit Service 5a9772
		}
Packit Service 5a9772
		version = version + " (" + LibFreeRDP.getVersion() + ")";
Packit Service 5a9772
Packit Service 5a9772
		WebSettings settings = mWebView.getSettings();
Packit Service 5a9772
		settings.setDomStorageEnabled(true);
Packit Service 5a9772
		settings.setUseWideViewPort(true);
Packit Service 5a9772
		settings.setLoadWithOverviewMode(true);
Packit Service 5a9772
		settings.setSupportZoom(true);
Packit Service 5a9772
Packit Service 5a9772
		final String base = "file:///android_asset/" + dir;
Packit Service 5a9772
Packit Service 5a9772
		final String rawHtml = total.toString();
Packit Service 5a9772
		final String html = rawHtml.replaceAll("%AFREERDP_VERSION%", version)
Packit Service 5a9772
		                        .replaceAll("%SYSTEM_VERSION%", Build.VERSION.RELEASE)
Packit Service 5a9772
		                        .replaceAll("%DEVICE_MODEL%", Build.MODEL);
Packit Service 5a9772
Packit Service 5a9772
		mWebView.loadDataWithBaseURL(base, html, "text/html", null, "about:blank");
Packit Service 5a9772
	}
Packit 1fb8d4
}