Skip to content

Commit

Permalink
TopBar title and subtitle font size is measured in dp instead of sp (#…
Browse files Browse the repository at this point in the history
…6294)

This change addresses an issue where if the user increased their device's font size in accessibility settings, then they would exceed from TopBar bounds.
  • Loading branch information
guyca authored Jun 14, 2020
1 parent 3fae8ed commit 88e65de
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -92,8 +92,8 @@ public StackPresenter(Activity activity,
this.iconResolver = iconResolver;
this.renderChecker = renderChecker;
this.defaultOptions = defaultOptions;
defaultTitleFontSize = UiUtils.dpToSp(activity, 18);
defaultSubtitleFontSize = UiUtils.dpToSp(activity, 14);
defaultTitleFontSize = 18;
defaultSubtitleFontSize = 14;
}

public void setDefaultOptions(Options defaultOptions) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
import android.graphics.Typeface;
import android.graphics.drawable.Drawable;
import android.util.Log;
import android.util.TypedValue;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
Expand Down Expand Up @@ -101,7 +102,7 @@ public void setBackgroundColor(Colour color) {

public void setTitleFontSize(double size) {
TextView titleTextView = findTitleTextView();
if (titleTextView != null) titleTextView.setTextSize((float) size);
if (titleTextView != null) titleTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, (float) size);
}

public void setTitleTypeface(Typeface typeface) {
Expand All @@ -120,7 +121,7 @@ public void setSubtitleTypeface(Typeface typeface) {

public void setSubtitleFontSize(double size) {
TextView subtitleTextView = findSubtitleTextView();
if (subtitleTextView != null) subtitleTextView.setTextSize((float) size);
if (subtitleTextView != null) subtitleTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, (float) size);
}

public void setSubtitleAlignment(Alignment alignment) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package com.reactnativenavigation.viewcontrollers;

import android.app.Activity;
import android.util.TypedValue;
import android.view.View;
import android.widget.TextView;

Expand Down Expand Up @@ -92,4 +93,24 @@ public void setLayoutDirection_directionIsExplicitlyAppliedToButtonsContainer()
uut.setLayoutDirection(View.LAYOUT_DIRECTION_RTL);
verify(spy).setLayoutDirection(View.LAYOUT_DIRECTION_RTL);
}

@Test
public void setSubtitleFontSize_usesDpInsteadofSp() {
TextView mockSubtitleView = mock(TextView.class);

when(uut.findSubtitleTextView()).thenReturn(mockSubtitleView);
uut.setSubtitleFontSize(10);

verify(mockSubtitleView).setTextSize(eq(TypedValue.COMPLEX_UNIT_DIP), eq(10f));
}

@Test
public void setTitleFontSize_usesDpInsteadofSp() {
TextView mockTitleView = mock(TextView.class);

when(uut.findTitleTextView()).thenReturn(mockTitleView);
uut.setTitleFontSize(10);

verify(mockTitleView).setTextSize(eq(TypedValue.COMPLEX_UNIT_DIP), eq(10f));
}
}

0 comments on commit 88e65de

Please sign in to comment.