Skip to content

Commit ac55478

Browse files
committed
Use Alegreya Sans SC:700 for the title
1 parent f1c997b commit ac55478

File tree

4 files changed

+64
-0
lines changed

4 files changed

+64
-0
lines changed

app/src/main/java/io/plaidapp/ui/HomeActivity.java

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,9 +34,13 @@
3434
import android.net.NetworkInfo;
3535
import android.net.NetworkRequest;
3636
import android.os.Bundle;
37+
import android.os.Handler;
38+
import android.os.HandlerThread;
3739
import android.support.annotation.Nullable;
3840
import android.support.v4.content.ContextCompat;
3941
import android.support.v4.content.LocalBroadcastManager;
42+
import android.support.v4.provider.FontRequest;
43+
import android.support.v4.provider.FontsContractCompat;
4044
import android.support.v4.view.GravityCompat;
4145
import android.support.v4.widget.DrawerLayout;
4246
import android.support.v7.widget.GridLayoutManager;
@@ -50,6 +54,7 @@
5054
import android.text.style.ImageSpan;
5155
import android.text.style.StyleSpan;
5256
import android.transition.TransitionManager;
57+
import android.util.Log;
5358
import android.view.Menu;
5459
import android.view.MenuItem;
5560
import android.view.MotionEvent;
@@ -97,6 +102,8 @@
97102

98103
public class HomeActivity extends Activity {
99104

105+
private static final String TAG = "PlaidHomeActivity";
106+
100107
private static final int RC_SEARCH = 0;
101108
private static final int RC_AUTH_DRIBBBLE_FOLLOWING = 1;
102109
private static final int RC_AUTH_DRIBBBLE_USER_LIKES = 2;
@@ -125,6 +132,9 @@ public class HomeActivity extends Activity {
125132
private DesignerNewsPrefs designerNewsPrefs;
126133
private DribbblePrefs dribbblePrefs;
127134

135+
// We'll need a thread to wait
136+
private Handler fontHandler;
137+
128138
@Override
129139
protected void onCreate(Bundle savedInstanceState) {
130140
super.onCreate(savedInstanceState);
@@ -141,6 +151,26 @@ protected void onCreate(Bundle savedInstanceState) {
141151
}
142152
setExitSharedElementCallback(FeedAdapter.createSharedElementReenterCallback(this));
143153

154+
FontRequest fontRequest = new FontRequest("com.google.android.gms.fonts",
155+
"com.google.android.gms",
156+
"name=Alegreya Sans SC&weight=700",
157+
R.array.com_google_android_gms_fonts_certs);
158+
FontsContractCompat.FontRequestCallback toolbarFontCallback =
159+
new FontsContractCompat.FontRequestCallback() {
160+
@Override public void onTypefaceRetrieved(Typeface typeface) {
161+
// If we got our font apply it to the toolbar
162+
styleToolbar(typeface);
163+
}
164+
@Override public void onTypefaceRequestFailed(int reason) {
165+
Log.w(TAG, "Failed to fetch Toolbar font: " + reason);
166+
}
167+
};
168+
169+
// Start async fetch on the handler thread
170+
FontsContractCompat.requestFont(this, fontRequest, toolbarFontCallback,
171+
getFontHandlerThread());
172+
173+
144174
dribbblePrefs = DribbblePrefs.get(this);
145175
designerNewsPrefs = DesignerNewsPrefs.get(this);
146176
filtersAdapter = new FilterAdapter(this, SourceManager.getSources(this),
@@ -247,6 +277,8 @@ public WindowInsets onApplyWindowInsets(View v, WindowInsets insets) {
247277
});
248278
setupTaskDescription();
249279

280+
281+
250282
filtersList.setAdapter(filtersAdapter);
251283
filtersList.setItemAnimator(new FilterAdapter.FilterAnimator());
252284
filtersAdapter.registerFilterChangedCallback(filtersChangedCallbacks);
@@ -695,6 +727,28 @@ private void setupTaskDescription() {
695727
overviewIcon.recycle();
696728
}
697729

730+
private void styleToolbar(Typeface typeface) {
731+
// this is gross but toolbar doesn't expose it's children
732+
for (int i = 0; i < toolbar.getChildCount(); i++) {
733+
View rawView = toolbar.getChildAt(i);
734+
if (!(rawView instanceof TextView)) {
735+
continue;
736+
}
737+
738+
TextView textView = (TextView) rawView;
739+
textView.setTypeface(typeface);
740+
}
741+
}
742+
743+
private Handler getFontHandlerThread() {
744+
if (fontHandler == null) {
745+
HandlerThread handlerThread = new HandlerThread("fonts");
746+
handlerThread.start();
747+
fontHandler = new Handler(handlerThread.getLooper());
748+
}
749+
return fontHandler;
750+
}
751+
698752
private void animateToolbar() {
699753
// this is gross but toolbar doesn't expose it's children to animate them :(
700754
View t = toolbar.getChildAt(0);
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<font-family xmlns:app="http://schemas.android.com/apk/res-auto"
3+
app:fontProviderAuthority="com.google.android.gms.fonts"
4+
app:fontProviderPackage="com.google.android.gms"
5+
app:fontProviderQuery="name=Alegreya Sans SC&amp;weight=700"
6+
app:fontProviderCerts="@array/com_google_android_gms_fonts_certs"
7+
app:fontProviderFetchStrategy="blocking">
8+
</font-family>

app/src/main/res/values/preloaded_fonts.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,6 @@
33
<array name="preloaded_fonts" translatable="false">
44
<item>@font/alegreya</item>
55
<item>@font/alegreya_black</item>
6+
<item>@font/alegreya_sans_sc_bold</item>
67
</array>
78
</resources>

app/src/main/res/values/styles.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -170,6 +170,7 @@
170170
<item name="android:background">@null</item>
171171
<item name="android:elevation">0dp</item>
172172
<item name="android:theme">@android:style/ThemeOverlay.Material.Dark</item>
173+
173174
</style>
174175

175176
<style name="Widget.Plaid.OverlayToolbar" parent="android:Widget.Material.ActionBar">

0 commit comments

Comments
 (0)