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

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