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