diff --git a/microg-ui-tools/src/main/java/org/microg/tools/ui/AbstractAboutFragment.java b/microg-ui-tools/src/main/java/org/microg/tools/ui/AbstractAboutFragment.java index a149dee1..5e9771aa 100644 --- a/microg-ui-tools/src/main/java/org/microg/tools/ui/AbstractAboutFragment.java +++ b/microg-ui-tools/src/main/java/org/microg/tools/ui/AbstractAboutFragment.java @@ -21,7 +21,6 @@ import android.content.pm.PackageManager; import android.graphics.drawable.Drawable; import android.os.Bundle; import android.support.annotation.Nullable; -import android.support.v4.*; import android.support.v4.app.Fragment; import android.text.TextUtils; import android.view.LayoutInflater; @@ -57,7 +56,7 @@ public abstract class AbstractAboutFragment extends Fragment { PackageManager pm = getContext().getPackageManager(); CharSequence label = pm.getPackageInfo(getContext().getPackageName(), 0).applicationInfo.loadLabel(pm); if (TextUtils.isEmpty(label)) return getContext().getPackageName(); - return label.toString(); + return label.toString().trim(); } catch (PackageManager.NameNotFoundException e) { // Never happens, self package always exists! throw new RuntimeException(e); @@ -68,7 +67,7 @@ public abstract class AbstractAboutFragment extends Fragment { try { String versionName = (String) Class.forName(packageName + ".BuildConfig").getField("VERSION_NAME").get(null); if (TextUtils.isEmpty(versionName)) return ""; - return versionName; + return versionName.trim(); } catch (Exception e) { return ""; } @@ -80,10 +79,10 @@ public abstract class AbstractAboutFragment extends Fragment { View aboutRoot = inflater.inflate(R.layout.about_root, container, false); ((ImageView) aboutRoot.findViewById(android.R.id.icon)).setImageDrawable(getIcon()); ((TextView) aboutRoot.findViewById(android.R.id.title)).setText(getAppName()); - ((TextView) aboutRoot.findViewById(R.id.about_version)).setText("Version " + getLibVersion(getContext().getPackageName())); + ((TextView) aboutRoot.findViewById(R.id.about_version)).setText(getString(R.string.about_version_str, getLibVersion(getContext().getPackageName()))); List libraries = new ArrayList(); - libraries.add(new Library("org.microg.tools.ui", "microG UI Tools", "Apache License 2.0, Copyright (c) microG Team")); + libraries.add(new Library(BuildConfig.APPLICATION_ID, getString(R.string.lib_name), getString(R.string.lib_license))); collectLibraries(libraries); Collections.sort(libraries); ((ListView) aboutRoot.findViewById(android.R.id.list)).setAdapter(new LibraryAdapter(getContext(), libraries.toArray(new Library[libraries.size()]))); @@ -100,8 +99,8 @@ public abstract class AbstractAboutFragment extends Fragment { @Override public View getView(int position, View convertView, ViewGroup parent) { View v = super.getView(position, convertView, parent); - ((TextView) v.findViewById(android.R.id.text1)).setText(getItem(position).name + " " + getLibVersion(getItem(position).packageName)); - ((TextView) v.findViewById(android.R.id.text2)).setText(getItem(position).copyright); + ((TextView) v.findViewById(android.R.id.text1)).setText(getString(R.string.about_name_version_str, getItem(position).name, getLibVersion(getItem(position).packageName))); + ((TextView) v.findViewById(android.R.id.text2)).setText(getItem(position).copyright != null ? getItem(position).copyright : getString(R.string.about_default_license)); return v; } } diff --git a/microg-ui-tools/src/main/java/org/microg/tools/ui/AbstractSelfCheckFragment.java b/microg-ui-tools/src/main/java/org/microg/tools/ui/AbstractSelfCheckFragment.java index 56bf9863..bb00cf3f 100644 --- a/microg-ui-tools/src/main/java/org/microg/tools/ui/AbstractSelfCheckFragment.java +++ b/microg-ui-tools/src/main/java/org/microg/tools/ui/AbstractSelfCheckFragment.java @@ -19,6 +19,7 @@ package org.microg.tools.ui; import android.os.Bundle; import android.support.annotation.Nullable; import android.support.v4.app.Fragment; +import android.util.Log; import android.view.LayoutInflater; import android.view.MotionEvent; import android.view.View; @@ -33,10 +34,12 @@ import java.util.List; import static android.view.View.GONE; import static android.view.View.INVISIBLE; +import static org.microg.tools.selfcheck.SelfCheckGroup.Result.Negative; import static org.microg.tools.selfcheck.SelfCheckGroup.Result.Positive; import static org.microg.tools.selfcheck.SelfCheckGroup.Result.Unknown; public abstract class AbstractSelfCheckFragment extends Fragment { + private static final String TAG = "SelfCheck"; protected abstract void prepareSelfCheckList(List checks); @@ -52,7 +55,13 @@ public abstract class AbstractSelfCheckFragment extends Fragment { View groupView = inflater.inflate(R.layout.self_check_group, root, false); ((TextView) groupView.findViewById(android.R.id.title)).setText(group.getGroupName(getContext())); final ViewGroup viewGroup = (ViewGroup) groupView.findViewById(R.id.group_content); - group.doChecks(getContext(), new GroupResultCollector(viewGroup)); + final SelfCheckGroup.ResultCollector collector = new GroupResultCollector(viewGroup); + try { + group.doChecks(getContext(), collector); + } catch (Exception e) { + Log.w(TAG, "Failed during check " + group.getGroupName(getContext()), e); + collector.addResult("Self-check failed:", Negative, "An exception occurred during self-check. Please report this issue."); + } root.addView(groupView); } return scrollRoot; diff --git a/microg-ui-tools/src/main/res/values-sr/strings.xml b/microg-ui-tools/src/main/res/values-sr/strings.xml new file mode 100644 index 00000000..78d4753a --- /dev/null +++ b/microg-ui-tools/src/main/res/values-sr/strings.xml @@ -0,0 +1,23 @@ + + + + + Поставка + + микроГ самопровера + Провера исправности подешавања система за коришћење микроГ услуга. + \ No newline at end of file diff --git a/microg-ui-tools/src/main/res/values/strings.xml b/microg-ui-tools/src/main/res/values/strings.xml new file mode 100644 index 00000000..186ef926 --- /dev/null +++ b/microg-ui-tools/src/main/res/values/strings.xml @@ -0,0 +1,30 @@ + + + + + microG UI Tools + Apache License 2.0, Copyright © microG Team + + Version %1$s + %1$s %2$s + All rights reserved. + + Setup + + Self-Check + Check if the system is correctly set up to use microG. + \ No newline at end of file