diff --git a/android-app-core/assets/Roboto-Regular.ttf b/android-app-core/assets/Roboto-Regular.ttf new file mode 100644 index 00000000..0ba95c98 Binary files /dev/null and b/android-app-core/assets/Roboto-Regular.ttf differ diff --git a/android-app/assets/Roboto-Regular.ttf b/android-app/assets/fonts/Roboto-Regular.ttf similarity index 100% rename from android-app/assets/Roboto-Regular.ttf rename to android-app/assets/fonts/Roboto-Regular.ttf diff --git a/android-app/src/main/java/org/solovyev/android/calculator/AbstractCalculatorHelper.java b/android-app/src/main/java/org/solovyev/android/calculator/AbstractCalculatorHelper.java index 7c83dd4c..62816442 100644 --- a/android-app/src/main/java/org/solovyev/android/calculator/AbstractCalculatorHelper.java +++ b/android-app/src/main/java/org/solovyev/android/calculator/AbstractCalculatorHelper.java @@ -26,15 +26,14 @@ import android.app.Activity; import android.app.KeyguardManager; import android.content.Context; import android.content.SharedPreferences; +import android.graphics.Typeface; import android.os.Vibrator; import android.preference.PreferenceManager; import android.util.Log; import android.view.MotionEvent; import android.view.View; - -import javax.annotation.Nonnull; -import javax.annotation.Nullable; - +import android.widget.TextView; +import org.solovyev.android.Views; import org.solovyev.android.calculator.history.CalculatorHistoryState; import org.solovyev.android.calculator.view.AngleUnitsButton; import org.solovyev.android.calculator.view.NumeralBasesButton; @@ -45,6 +44,8 @@ import org.solovyev.common.listeners.JListeners; import org.solovyev.common.listeners.Listeners; import org.solovyev.common.math.Point2d; +import javax.annotation.Nonnull; +import javax.annotation.Nullable; import java.lang.reflect.Field; import java.lang.reflect.Modifier; import java.util.ArrayList; @@ -208,6 +209,15 @@ public abstract class AbstractCalculatorHelper implements SharedPreferences.OnSh CalculatorButtons.toggleEqualsButton(preferences, activity); CalculatorButtons.initMultiplicationButton(root); NumeralBaseButtons.toggleNumericDigits(activity, preferences); + + // some devices ship own fonts which causes issues with rendering. Let's use our own font for all text views + final Typeface typeFace = CalculatorApplication.getInstance().getTypeFace(); + Views.processViewsOfType(root, TextView.class, new Views.ViewProcessor() { + @Override + public void process(@Nonnull TextView view) { + view.setTypeface(typeFace); + } + }); } private void toggleButtonDirectionText(@Nonnull View root, int id, boolean showDirectionText, @Nonnull DragDirection... dragDirections) { diff --git a/android-app/src/main/java/org/solovyev/android/calculator/CalculatorApplication.java b/android-app/src/main/java/org/solovyev/android/calculator/CalculatorApplication.java index b57071f4..08caac29 100644 --- a/android-app/src/main/java/org/solovyev/android/calculator/CalculatorApplication.java +++ b/android-app/src/main/java/org/solovyev/android/calculator/CalculatorApplication.java @@ -25,6 +25,7 @@ package org.solovyev.android.calculator; import android.content.Context; import android.content.SharedPreferences; import android.content.pm.PackageManager; +import android.graphics.Typeface; import android.os.Handler; import android.preference.PreferenceManager; import android.util.Log; @@ -105,6 +106,9 @@ public class CalculatorApplication extends android.app.Application implements Sh private final boolean withAds; + @Nonnull + private Typeface typeFace; + /* ********************************************************************** * @@ -211,6 +215,8 @@ public class CalculatorApplication extends android.app.Application implements Sh Locator.getInstance().getLogger().debug(TAG, "Application started!"); Locator.getInstance().getNotifier().showDebugMessage(TAG, "Application started!"); + + typeFace = Typeface.createFromAsset(getAssets(), "fonts/Roboto-Regular.ttf"); } private void setTheme(@Nonnull SharedPreferences preferences) { @@ -248,6 +254,11 @@ public class CalculatorApplication extends android.app.Application implements Sh return wizards; } + @Nonnull + public Typeface getTypeFace() { + return typeFace; + } + /* ********************************************************************** *