Skip to content

Commit 74c4f86

Browse files
committed
version 2.0.0-BETA-6
- update support libs - add font calligraphy support
1 parent 6d9783a commit 74c4f86

13 files changed

Lines changed: 122 additions & 55 deletions

File tree

README.md

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ repositories {
1818
```
1919
```Gradle
2020
dependencies {
21-
compile 'rebus:header-view:2.0.0-BETA-5'
21+
compile 'rebus:header-view:2.0.0-BETA-6'
2222
}
2323
```
2424
### How to use
@@ -170,6 +170,16 @@ ImageLoader.init(new ImageLoader.ImageLoaderInterface() {
170170

171171
});
172172
```
173+
#### Use custom font with Calligraphy
174+
You can set a custom font with [Calligraphy](https://github.com/chrisjenx/Calligraphy) just add a CustomViewTypeface with HeaderView.class in CalligraphyConfig
175+
```Java
176+
CalligraphyConfig.initDefault(new CalligraphyConfig.Builder()
177+
.setDefaultFontPath("Oswald-Stencbab.ttf")
178+
.setFontAttrId(R.attr.fontPath)
179+
.addCustomViewWithSetTypeface(HeaderView.class)
180+
.build()
181+
);
182+
```
173183
### Screen
174184
![Screen](https://raw.githubusercontent.com/rebus007/HeaderView/master/img/screen.png)
175185

app/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,6 @@ dependencies {
4949
compile project(':library')
5050
compile "com.android.support:appcompat-v7:${var.supportLib}"
5151
compile "com.android.support:design:${var.supportLib}"
52-
52+
compile 'uk.co.chrisjenx:calligraphy:2.3.0'
5353
compile 'com.github.bumptech.glide:glide:3.7.0'
5454
}
75 KB
Binary file not shown.

app/src/main/java/rebus/header/view/sample/CustomApplication.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,9 @@
3030

3131
import com.bumptech.glide.Glide;
3232

33+
import rebus.header.view.HeaderView;
3334
import rebus.header.view.ImageLoader;
35+
import uk.co.chrisjenx.calligraphy.CalligraphyConfig;
3436

3537
/**
3638
* Created by raphaelbussa on 13/01/17.
@@ -65,6 +67,11 @@ public void loadImage(Uri url, ImageView imageView, @ImageLoader.Type int type)
6567
}
6668

6769
});
68-
70+
CalligraphyConfig.initDefault(new CalligraphyConfig.Builder()
71+
.setDefaultFontPath("Oswald-Stencbab.ttf")
72+
.setFontAttrId(R.attr.fontPath)
73+
.addCustomViewWithSetTypeface(HeaderView.class)
74+
.build()
75+
);
6976
}
7077
}

app/src/main/java/rebus/header/view/sample/MainActivity.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424

2525
package rebus.header.view.sample;
2626

27+
import android.content.Context;
2728
import android.os.Bundle;
2829
import android.support.design.widget.NavigationView;
2930
import android.support.v4.content.ContextCompat;
@@ -40,6 +41,7 @@
4041
import rebus.header.view.HeaderView;
4142
import rebus.header.view.Item;
4243
import rebus.header.view.Profile;
44+
import uk.co.chrisjenx.calligraphy.CalligraphyContextWrapper;
4345

4446
public class MainActivity extends AppCompatActivity {
4547

@@ -119,7 +121,7 @@ public void run() {
119121
headerView.addProfile(profile, profile2, profile3, profile4);
120122
headerView.addDialogItem(item, item2);
121123
headerView.setShowAddButton(true);
122-
headerView.setAddIconDrawable(R.drawable.ic_action_settings);
124+
//headerView.setAddIconDrawable(R.drawable.ic_action_settings);
123125
headerView.setDialogTitle("Choose account");
124126
headerView.setShowArrow(true);
125127
headerView.setOnHeaderClickListener(new View.OnClickListener() {
@@ -174,4 +176,9 @@ public boolean onAdd() {
174176

175177
}
176178

179+
@Override
180+
protected void attachBaseContext(Context newBase) {
181+
super.attachBaseContext(CalligraphyContextWrapper.wrap(newBase));
182+
}
183+
177184
}

app/src/main/res/layout/header_drawer.xml

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -27,17 +27,20 @@
2727
android:id="@+id/header_view"
2828
android:layout_width="match_parent"
2929
android:layout_height="wrap_content"
30-
app:hv_add_icon="@drawable/ic_action_settings"
3130
app:hv_add_status_bar_height="true"
3231
app:hv_background_color="@color/colorPrimaryDark"
3332
app:hv_dialog_title="@string/account"
3433
app:hv_highlight_color="@color/colorAccent"
35-
app:hv_profile_avatar="@drawable/ic_avatar_batman"
36-
app:hv_profile_background="@drawable/ic_bg_batman"
37-
app:hv_profile_email="batman@gotham.city"
38-
app:hv_profile_username="Bruce Wayne"
3934
app:hv_show_add_button="true"
4035
app:hv_show_arrow="true"
4136
app:hv_show_gradient="true"
4237
app:hv_style="normal"
43-
app:hv_theme="light" />
38+
app:hv_theme="light" />
39+
40+
<!--
41+
app:hv_add_icon="@drawable/ic_action_settings"
42+
app:hv_profile_avatar="@drawable/ic_avatar_batman"
43+
app:hv_profile_background="@drawable/ic_bg_batman"
44+
app:hv_profile_email="batman@gotham.city"
45+
app:hv_profile_username="Bruce Wayne"
46+
-->

app/src/main/res/menu/drawer.xml

Lines changed: 18 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -25,58 +25,40 @@
2525
<menu xmlns:android="http://schemas.android.com/apk/res/android">
2626
<group android:checkableBehavior="single">
2727
<item
28-
android:icon="@android:drawable/ic_menu_search"
29-
android:title="@string/nav_search" />
28+
android:title="@string/nav_settings" />
3029
<item
31-
android:icon="@android:drawable/ic_menu_search"
32-
android:title="@string/nav_search" />
30+
android:title="@string/nav_settings" />
3331
<item
34-
android:icon="@android:drawable/ic_menu_search"
35-
android:title="@string/nav_search" />
32+
android:title="@string/nav_settings" />
3633
<item
37-
android:icon="@android:drawable/ic_menu_search"
38-
android:title="@string/nav_search" />
34+
android:title="@string/nav_settings" />
3935
<item
40-
android:icon="@android:drawable/ic_menu_search"
41-
android:title="@string/nav_search" />
36+
android:title="@string/nav_settings" />
4237
<item
43-
android:icon="@android:drawable/ic_menu_search"
44-
android:title="@string/nav_search" />
38+
android:title="@string/nav_settings" />
4539
<item
46-
android:icon="@android:drawable/ic_menu_search"
47-
android:title="@string/nav_search" />
40+
android:title="@string/nav_settings" />
4841
<item
49-
android:icon="@android:drawable/ic_menu_search"
50-
android:title="@string/nav_search" />
42+
android:title="@string/nav_settings" />
5143
<item
52-
android:icon="@android:drawable/ic_menu_search"
53-
android:title="@string/nav_search" />
44+
android:title="@string/nav_settings" />
5445
<item
55-
android:icon="@android:drawable/ic_menu_search"
56-
android:title="@string/nav_search" />
46+
android:title="@string/nav_settings" />
5747
<item
58-
android:icon="@android:drawable/ic_menu_search"
59-
android:title="@string/nav_search" />
48+
android:title="@string/nav_settings" />
6049
<item
61-
android:icon="@android:drawable/ic_menu_search"
62-
android:title="@string/nav_search" />
50+
android:title="@string/nav_settings" />
6351
<item
64-
android:icon="@android:drawable/ic_menu_search"
65-
android:title="@string/nav_search" />
52+
android:title="@string/nav_settings" />
6653
<item
67-
android:icon="@android:drawable/ic_menu_search"
68-
android:title="@string/nav_search" />
54+
android:title="@string/nav_settings" />
6955
<item
70-
android:icon="@android:drawable/ic_menu_search"
71-
android:title="@string/nav_search" />
56+
android:title="@string/nav_settings" />
7257
<item
73-
android:icon="@android:drawable/ic_menu_search"
74-
android:title="@string/nav_search" />
58+
android:title="@string/nav_settings" />
7559
<item
76-
android:icon="@android:drawable/ic_menu_search"
77-
android:title="@string/nav_search" />
60+
android:title="@string/nav_settings" />
7861
<item
79-
android:icon="@android:drawable/ic_menu_search"
80-
android:title="@string/nav_search" />
62+
android:title="@string/nav_settings" />
8163
</group>
8264
</menu>
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<resources>
22
<string name="app_name">Header View</string>
3-
<string name="nav_search">Search</string>
3+
<string name="nav_settings">Settings</string>
44
<string name="account">Account</string>
55
</resources>

build.gradle

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,19 +27,19 @@ buildscript {
2727
ext {
2828
var = [
2929
compileSdk: 25,
30-
buildTools: "25.0.2",
30+
buildTools: "25.0.3",
3131
minSdk : 11,
3232
targetSdk : 25,
33-
version : "2.0.0-BETA-5",
34-
supportLib: "25.1.1"
33+
version : "2.0.0-BETA-6",
34+
supportLib: "25.3.1"
3535
]
3636
}
3737

3838
repositories {
3939
jcenter()
4040
}
4141
dependencies {
42-
classpath 'com.android.tools.build:gradle:2.2.3'
42+
classpath 'com.android.tools.build:gradle:2.3.2'
4343
classpath 'com.novoda:bintray-release:0.4.0'
4444
}
4545
}

library/src/main/java/rebus/header/view/HeaderView.java

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,8 @@ public class HeaderView extends ViewGroup implements ProfileChooserCallback {
110110
private FragmentManager hvFragmentManager;
111111
private ProfileChooser profileChooser;
112112

113+
private Typeface typeface;
114+
113115
public HeaderView(Context context) {
114116
super(context);
115117
init(null, 0);
@@ -626,9 +628,10 @@ public void onClick(View v) {
626628
if (hvFragmentManager != null) {
627629
ProfileChooserFragment profileChooserFragment = ProfileChooserFragment.newInstance(profileSparseArray, itemArrayList, hvHighlightColor, hvShowAddButton, hvDialogTitle, hvAddIconDrawable);
628630
profileChooserFragment.setCallback(HeaderView.this);
631+
profileChooserFragment.setTypeface(typeface);
629632
profileChooserFragment.show(hvFragmentManager, ProfileChooserFragment.FRAGMENT_TAG);
630633
} else {
631-
profileChooser = new ProfileChooser(getContext(), profileSparseArray, itemArrayList, hvHighlightColor, hvShowAddButton, hvDialogTitle, hvAddIconDrawable);
634+
profileChooser = new ProfileChooser(getContext(), profileSparseArray, itemArrayList, hvHighlightColor, hvShowAddButton, hvDialogTitle, hvAddIconDrawable, typeface);
632635
profileChooser.setCallback(HeaderView.this);
633636
profileChooser.show();
634637
}
@@ -809,6 +812,7 @@ protected void onRestoreInstanceState(Parcelable state) {
809812
ProfileChooserFragment profileChooserFragment = (ProfileChooserFragment) hvFragmentManager.findFragmentByTag(ProfileChooserFragment.FRAGMENT_TAG);
810813
if (profileChooserFragment != null) {
811814
profileChooserFragment.setCallback(HeaderView.this);
815+
profileChooserFragment.updateTypeface(typeface);
812816
}
813817
}
814818
super.onRestoreInstanceState(state);
@@ -844,4 +848,12 @@ public boolean onAdd() {
844848
public @interface Theme {
845849
}
846850

851+
@SuppressWarnings("unused")
852+
public void setTypeface(Typeface tf) {
853+
typeface = tf;
854+
username.setTypeface(tf);
855+
email.setTypeface(tf);
856+
invalidate();
857+
}
858+
847859
}

0 commit comments

Comments
 (0)