+package org.fedorahosted.freeotp;
+
+import android.app.AlertDialog;
+import android.content.Context;
+import android.content.DialogInterface;
+import android.content.pm.PackageInfo;
+import android.content.pm.PackageManager;
+import android.content.res.Resources;
+import android.text.Html;
+import android.text.method.LinkMovementMethod;
+import android.view.View;
+import android.widget.TextView;
+
+public class AboutDialog extends AlertDialog {
+ private void init(Context ctx) {
+ Resources res = ctx.getResources();
+ View v = getLayoutInflater().inflate(R.layout.about, null, false);
+ TextView tv;
+
+ try {
+ PackageManager pm = ctx.getPackageManager();
+ PackageInfo info = pm.getPackageInfo(ctx.getPackageName(), 0);
+ String version = res.getString(R.string.about_version,
+ info.versionName,
+ info.versionCode);
+ tv = (TextView) v.findViewById(R.id.about_version);
+ tv.setText(version);
+ } catch (PackageManager.NameNotFoundException e) {
+ e.printStackTrace();
+ }
+
+ String apache2 = res.getString(R.string.link_apache2);
+ String license = res.getString(R.string.about_license, apache2);
+ tv = (TextView) v.findViewById(R.id.about_license);
+ tv.setMovementMethod(LinkMovementMethod.getInstance());
+ tv.setText(Html.fromHtml(license));
+
+ String lwebsite = res.getString(R.string.link_website);
+ String swebsite = res.getString(R.string.about_website, lwebsite);
+ tv = (TextView) v.findViewById(R.id.about_website);
+ tv.setMovementMethod(LinkMovementMethod.getInstance());
+ tv.setText(Html.fromHtml(swebsite));
+
+ String problem = res.getString(R.string.link_report_a_problem);
+ String help = res.getString(R.string.link_ask_for_help);
+ String feedback = res.getString(R.string.about_feedback, problem, help);
+ tv = (TextView) v.findViewById(R.id.about_feedback);
+ tv.setMovementMethod(LinkMovementMethod.getInstance());
+ tv.setText(Html.fromHtml(feedback));
+
+ String title = ctx.getResources().getString(R.string.about);
+ setTitle(title + " " + ctx.getResources().getString(R.string.app_name));
+ setView(v);
+
+ String ok = res.getString(android.R.string.ok);
+ setButton(BUTTON_POSITIVE, ok, new OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialog, int which) {
+ }
+ });
+ }
+
+ public AboutDialog(Context context, boolean cancelable,
+ OnCancelListener cancelListener) {
+ super(context, cancelable, cancelListener);
+ init(context);
+ }
+
+ public AboutDialog(Context context, int theme) {
+ super(context, theme);
+ init(context);
+ }
+
+ public AboutDialog(Context context) {
+ super(context);
+ init(context);
+ }
+}