aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBen <benjamin.duvivier@djit.fr>2016-04-04 16:14:47 +0200
committerBen <benjamin.duvivier@djit.fr>2016-04-04 16:14:47 +0200
commit2ca2933e7a2be0695bb359c4ea7e1a9f9a35bc0d (patch)
treeb4aa93986ff7ae49a87fc8373cedf28671e26de4
parent60d7005f6d7093e632964c9f052d07fb46f0dd2c (diff)
downloadandroid_external_ahbottomnavigation-2ca2933e7a2be0695bb359c4ea7e1a9f9a35bc0d.tar.gz
android_external_ahbottomnavigation-2ca2933e7a2be0695bb359c4ea7e1a9f9a35bc0d.tar.bz2
android_external_ahbottomnavigation-2ca2933e7a2be0695bb359c4ea7e1a9f9a35bc0d.zip
Resources instance retrieved at one place
-rw-r--r--ahbottomnavigation/src/main/java/com/aurelhubert/ahbottomnavigation/AHBottomNavigation.java67
1 files changed, 35 insertions, 32 deletions
diff --git a/ahbottomnavigation/src/main/java/com/aurelhubert/ahbottomnavigation/AHBottomNavigation.java b/ahbottomnavigation/src/main/java/com/aurelhubert/ahbottomnavigation/AHBottomNavigation.java
index 81b45e1..bebb8ef 100644
--- a/ahbottomnavigation/src/main/java/com/aurelhubert/ahbottomnavigation/AHBottomNavigation.java
+++ b/ahbottomnavigation/src/main/java/com/aurelhubert/ahbottomnavigation/AHBottomNavigation.java
@@ -2,6 +2,7 @@ package com.aurelhubert.ahbottomnavigation;
import android.animation.Animator;
import android.content.Context;
+import android.content.res.Resources;
import android.graphics.Color;
import android.graphics.Typeface;
import android.graphics.drawable.Drawable;
@@ -43,6 +44,7 @@ public class AHBottomNavigation extends FrameLayout {
// Variables
private Context context;
+ private Resources resources;
private ArrayList<AHBottomNavigationItem> items = new ArrayList<>();
private ArrayList<View> views = new ArrayList<>();
private View backgroundColorView;
@@ -112,6 +114,7 @@ public class AHBottomNavigation extends FrameLayout {
* Init
*/
private void init() {
+ resources = context.getResources();
accentColor = ContextCompat.getColor(context, R.color.colorAccent);
inactiveColor = ContextCompat.getColor(context, R.color.colorInactive);
notificationTextColor = ContextCompat.getColor(context, android.R.color.white);
@@ -123,13 +126,13 @@ public class AHBottomNavigation extends FrameLayout {
private void initViews() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
- setElevation(context.getResources().getDimension(R.dimen.bottom_navigation_elevation));
+ setElevation(resources.getDimension(R.dimen.bottom_navigation_elevation));
setClipToPadding(false);
}
ViewGroup.LayoutParams params = getLayoutParams();
params.width = ViewGroup.LayoutParams.MATCH_PARENT;
- params.height = (int) context.getResources().getDimension(R.dimen.bottom_navigation_height);
+ params.height = (int) resources.getDimension(R.dimen.bottom_navigation_height);
if (getParent() instanceof CoordinatorLayout && behaviorTranslationEnabled) {
((CoordinatorLayout.LayoutParams) params).setBehavior(new AHBottomNavigationBehavior());
}
@@ -161,7 +164,7 @@ public class AHBottomNavigation extends FrameLayout {
linearLayout.setOrientation(LinearLayout.HORIZONTAL);
linearLayout.setGravity(Gravity.CENTER);
- int layoutHeight = (int) context.getResources().getDimension(R.dimen.bottom_navigation_height);
+ int layoutHeight = (int) resources.getDimension(R.dimen.bottom_navigation_height);
LayoutParams layoutParams = new LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, layoutHeight);
addView(linearLayout, layoutParams);
@@ -181,13 +184,13 @@ public class AHBottomNavigation extends FrameLayout {
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
- float height = context.getResources().getDimension(R.dimen.bottom_navigation_height);
- float minWidth = context.getResources().getDimension(R.dimen.bottom_navigation_min_width);
- float maxWidth = context.getResources().getDimension(R.dimen.bottom_navigation_max_width);
+ float height = resources.getDimension(R.dimen.bottom_navigation_height);
+ float minWidth = resources.getDimension(R.dimen.bottom_navigation_min_width);
+ float maxWidth = resources.getDimension(R.dimen.bottom_navigation_max_width);
if (forceTitlesDisplay && items.size() > MIN_ITEMS) {
- minWidth = context.getResources().getDimension(R.dimen.bottom_navigation_small_inactive_min_width);
- maxWidth = context.getResources().getDimension(R.dimen.bottom_navigation_small_inactive_max_width);
+ minWidth = resources.getDimension(R.dimen.bottom_navigation_small_inactive_min_width);
+ maxWidth = resources.getDimension(R.dimen.bottom_navigation_small_inactive_max_width);
}
int layoutWidth = getWidth();
@@ -202,11 +205,11 @@ public class AHBottomNavigation extends FrameLayout {
itemWidth = maxWidth;
}
- float activeSize = context.getResources().getDimension(R.dimen.bottom_navigation_text_size_active);
- float inactiveSize = context.getResources().getDimension(R.dimen.bottom_navigation_text_size_inactive);
+ float activeSize = resources.getDimension(R.dimen.bottom_navigation_text_size_active);
+ float inactiveSize = resources.getDimension(R.dimen.bottom_navigation_text_size_inactive);
if (forceTitlesDisplay && items.size() > MIN_ITEMS) {
- activeSize = context.getResources().getDimension(R.dimen.bottom_navigation_text_size_forced_active);
- inactiveSize = context.getResources().getDimension(R.dimen.bottom_navigation_text_size_forced_inactive);
+ activeSize = resources.getDimension(R.dimen.bottom_navigation_text_size_forced_active);
+ inactiveSize = resources.getDimension(R.dimen.bottom_navigation_text_size_forced_inactive);
}
for (int i = 0; i < items.size(); i++) {
@@ -226,7 +229,7 @@ public class AHBottomNavigation extends FrameLayout {
}
if (i == currentItem) {
- int activePaddingTop = (int) context.getResources()
+ int activePaddingTop = (int) resources
.getDimension(R.dimen.bottom_navigation_margin_top_active);
if (view.getLayoutParams() instanceof ViewGroup.MarginLayoutParams) {
ViewGroup.MarginLayoutParams p = (ViewGroup.MarginLayoutParams) icon.getLayoutParams();
@@ -280,9 +283,9 @@ public class AHBottomNavigation extends FrameLayout {
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
- float height = context.getResources().getDimension(R.dimen.bottom_navigation_height);
- float minWidth = context.getResources().getDimension(R.dimen.bottom_navigation_small_inactive_min_width);
- float maxWidth = context.getResources().getDimension(R.dimen.bottom_navigation_small_inactive_max_width);
+ float height = resources.getDimension(R.dimen.bottom_navigation_height);
+ float minWidth = resources.getDimension(R.dimen.bottom_navigation_small_inactive_min_width);
+ float maxWidth = resources.getDimension(R.dimen.bottom_navigation_small_inactive_max_width);
int layoutWidth = getWidth();
if (layoutWidth == 0 || items.size() == 0) {
@@ -297,7 +300,7 @@ public class AHBottomNavigation extends FrameLayout {
itemWidth = maxWidth;
}
- float difference = context.getResources().getDimension(R.dimen.bottom_navigation_small_selected_width_difference);
+ float difference = resources.getDimension(R.dimen.bottom_navigation_small_selected_width_difference);
selectedItemWidth = itemWidth + items.size() * difference;
itemWidth -= difference;
notSelectedItemWidth = itemWidth;
@@ -314,7 +317,7 @@ public class AHBottomNavigation extends FrameLayout {
title.setText(item.getTitle(context));
if (i == currentItem) {
- int activeMarginTop = (int) context.getResources()
+ int activeMarginTop = (int) resources
.getDimension(R.dimen.bottom_navigation_small_margin_top_active);
if (view.getLayoutParams() instanceof ViewGroup.MarginLayoutParams) {
ViewGroup.MarginLayoutParams p = (ViewGroup.MarginLayoutParams) icon.getLayoutParams();
@@ -372,15 +375,15 @@ public class AHBottomNavigation extends FrameLayout {
return;
}
- int activeMarginTop = (int) context.getResources().getDimension(R.dimen.bottom_navigation_margin_top_active);
- int inactiveMarginTop = (int) context.getResources().getDimension(R.dimen.bottom_navigation_margin_top_inactive);
- int notificationActiveMarginLeft = (int) context.getResources().getDimension(R.dimen.bottom_navigation_notification_margin_left_active);
- int notificationInactiveMarginLeft = (int) context.getResources().getDimension(R.dimen.bottom_navigation_notification_margin_left);
- float activeSize = context.getResources().getDimension(R.dimen.bottom_navigation_text_size_active);
- float inactiveSize = context.getResources().getDimension(R.dimen.bottom_navigation_text_size_inactive);
+ int activeMarginTop = (int) resources.getDimension(R.dimen.bottom_navigation_margin_top_active);
+ int inactiveMarginTop = (int) resources.getDimension(R.dimen.bottom_navigation_margin_top_inactive);
+ int notificationActiveMarginLeft = (int) resources.getDimension(R.dimen.bottom_navigation_notification_margin_left_active);
+ int notificationInactiveMarginLeft = (int) resources.getDimension(R.dimen.bottom_navigation_notification_margin_left);
+ float activeSize = resources.getDimension(R.dimen.bottom_navigation_text_size_active);
+ float inactiveSize = resources.getDimension(R.dimen.bottom_navigation_text_size_inactive);
if (forceTitlesDisplay && items.size() > MIN_ITEMS) {
- activeSize = context.getResources().getDimension(R.dimen.bottom_navigation_text_size_forced_active);
- inactiveSize = context.getResources().getDimension(R.dimen.bottom_navigation_text_size_forced_inactive);
+ activeSize = resources.getDimension(R.dimen.bottom_navigation_text_size_forced_active);
+ inactiveSize = resources.getDimension(R.dimen.bottom_navigation_text_size_forced_inactive);
}
int itemActiveColor = colored ? ContextCompat.getColor(context, R.color.colorActiveSmall) :
@@ -474,10 +477,10 @@ public class AHBottomNavigation extends FrameLayout {
return;
}
- int activeMarginTop = (int) context.getResources().getDimension(R.dimen.bottom_navigation_small_margin_top_active);
- int inactiveMargin = (int) context.getResources().getDimension(R.dimen.bottom_navigation_small_margin_top);
- int notificationActiveMarginLeft = (int) context.getResources().getDimension(R.dimen.bottom_navigation_notification_margin_left_active);
- int notificationInactiveMarginLeft = (int) context.getResources().getDimension(R.dimen.bottom_navigation_notification_margin_left);
+ int activeMarginTop = (int) resources.getDimension(R.dimen.bottom_navigation_small_margin_top_active);
+ int inactiveMargin = (int) resources.getDimension(R.dimen.bottom_navigation_small_margin_top);
+ int notificationActiveMarginLeft = (int) resources.getDimension(R.dimen.bottom_navigation_notification_margin_left_active);
+ int notificationInactiveMarginLeft = (int) resources.getDimension(R.dimen.bottom_navigation_notification_margin_left);
int itemActiveColor = colored ? ContextCompat.getColor(context, R.color.colorActiveSmall) :
accentColor;
int itemInactiveColor = colored ? ContextCompat.getColor(context, R.color.colorInactiveSmall) :
@@ -566,8 +569,8 @@ public class AHBottomNavigation extends FrameLayout {
* Update notifications
*/
private void updateNotifications(boolean updateStyle) {
- float textSize = getResources().getDimension(R.dimen.bottom_navigation_notification_text_size);
- float textSizeMin = getResources().getDimension(R.dimen.bottom_navigation_notification_text_size_min);
+ float textSize = resources.getDimension(R.dimen.bottom_navigation_notification_text_size);
+ float textSizeMin = resources.getDimension(R.dimen.bottom_navigation_notification_text_size_min);
for (int i = 0; i < views.size(); i++) {
TextView notification = (TextView) views.get(i).findViewById(R.id.bottom_navigation_notification);