diff --git a/.gitignore b/.gitignore index c06ff91..0433a1f 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,31 @@ -.gradle -/local.properties -/.idea/workspace.xml +# Built application files +/*/build/ +# Built application files +build/ + +# Crashlytics configuations +com_crashlytics_export_strings.xml + +# Local configuration file (sdk path, etc) +local.properties + +# Gradle generated files +.gradle/ + +# Signing files +.signing/ +gradle.properties + +# User-specific configurations +.idea/* +*.iml + +# OS-specific files .DS_Store -/build +._* +.Spotlight-V100 +.Trashes +ehthumbs.db +Thumbs.db/build *.iml .idea \ No newline at end of file diff --git a/app/src/main/java/uk/me/lewisdeane/ldialogs/CustomDialog.java b/app/src/main/java/uk/me/lewisdeane/ldialogs/CustomDialog.java index 50961c8..16fa576 100644 --- a/app/src/main/java/uk/me/lewisdeane/ldialogs/CustomDialog.java +++ b/app/src/main/java/uk/me/lewisdeane/ldialogs/CustomDialog.java @@ -1,7 +1,6 @@ package uk.me.lewisdeane.ldialogs; import android.content.Context; -import android.content.res.ColorStateList; import android.graphics.Color; import android.graphics.Typeface; import android.graphics.drawable.Drawable; @@ -46,7 +45,7 @@ public class CustomDialog extends BaseDialog { private Theme mTheme = Theme.LIGHT; // String containing the hex colours to be used on the views. - private String mPositiveColour = "", mNegativeColour = "", mTitleColour = "", mContentColour = ""; + private int mPositiveColour = 0, mNegativeColour = 0, mTitleColour = 0, mContentColour = 0; // Alignment for title to use private Alignment mTitleAlignment = Alignment.LEFT; @@ -201,10 +200,10 @@ private int getIndexFromView(View _view) { private void applyTheme() { // Apply the correct colours based on theme and user preference. - ((TextView) mViews[0]).setTextColor(Color.parseColor(this.mTitleColour.length() > 0 ? mTitleColour : (mTheme == Theme.LIGHT ? LightColours.TITLE.mColour : DarkColours.TITLE.mColour))); - ((TextView) mViews[1]).setTextColor(Color.parseColor(this.mContentColour.length() > 0 ? mContentColour : (mTheme == Theme.LIGHT ? LightColours.CONTENT.mColour : DarkColours.CONTENT.mColour))); - ((Button) mViews[2]).setTextColor(Color.parseColor(this.mPositiveColour.length() > 0 ? mPositiveColour : (mTheme == Theme.LIGHT ? LightColours.BUTTON.mColour : DarkColours.BUTTON.mColour))); - ((Button) mViews[3]).setTextColor(Color.parseColor(this.mNegativeColour.length() > 0 ? mNegativeColour : (mTheme == Theme.LIGHT ? LightColours.BUTTON.mColour : DarkColours.BUTTON.mColour))); + ((TextView)mViews[0]).setTextColor(this.mTitleColour != 0 ? mTitleColour : (mTheme == Theme.LIGHT ? Color.parseColor(LightColours.TITLE.mColour) : Color.parseColor(DarkColours.TITLE.mColour))); + ((TextView)mViews[1]).setTextColor(this.mContentColour != 0 ? mContentColour : (mTheme == Theme.LIGHT ? Color.parseColor(LightColours.CONTENT.mColour) : Color.parseColor(DarkColours.CONTENT.mColour))); + ((Button)mViews[2]).setTextColor(this.mPositiveColour != 0 ? mPositiveColour : (mTheme == Theme.LIGHT ? Color.parseColor(LightColours.BUTTON.mColour) : Color.parseColor(DarkColours.BUTTON.mColour))); + ((Button)mViews[3]).setTextColor(this.mNegativeColour != 0 ? mNegativeColour : (mTheme == Theme.LIGHT ? Color.parseColor(LightColours.BUTTON.mColour) : Color.parseColor(DarkColours.BUTTON.mColour))); } public CustomDialog setClickListener(ClickListener mCallbacks) { @@ -252,7 +251,8 @@ public Builder(Context _context, int _titleResId, int _positiveTextResId) { } // Optional parameters initialised by default. - private String mNegativeText = "", mPositiveColour = "", mNegativeColour = "", mTitleColour = "", mContentColour = "", mContent = ""; + private String mNegativeText = "", mContent = ""; + int mPositiveColour = 0, mNegativeColour = 0, mTitleColour = 0, mContentColour = 0; private boolean mDarkTheme = false; private Alignment mTitleAlignment = Alignment.LEFT; @@ -272,25 +272,65 @@ public Builder negativeText(int _negativeTextResId) { } public Builder positiveColor(String _positiveColour) { + this.mPositiveColour = Color.parseColor(_positiveColour); + return this; + } + + public Builder negativeColor(String _negativeColour){ + this.mNegativeColour = Color.parseColor(_negativeColour); + return this; + } + + public Builder titleColor(String _colour){ + this.mTitleColour = Color.parseColor(_colour); + return this; + } + + public Builder contentColor(String _colour){ + this.mContentColour = Color.parseColor(_colour); + return this; + } + + public Builder positiveColor(int _positiveColour) { this.mPositiveColour = _positiveColour; return this; } - public Builder negativeColor(String _negativeColour) { + public Builder negativeColor(int _negativeColour){ this.mNegativeColour = _negativeColour; return this; } - public Builder titleColor(String _colour) { + public Builder titleColor(int _colour){ this.mTitleColour = _colour; return this; } - public Builder contentColor(String _colour) { + public Builder contentColor(int _colour){ this.mContentColour = _colour; return this; } + public Builder positiveColorRes(int _positiveColour) { + this.mPositiveColour = mContext.getResources().getColor(_positiveColour); + return this; + } + + public Builder negativeColorRes(int _negativeColour){ + this.mNegativeColour = mContext.getResources().getColor(_negativeColour); + return this; + } + + public Builder titleColorRes(int _colour){ + this.mTitleColour = mContext.getResources().getColor(_colour); + return this; + } + + public Builder contentColorRes(int _colour){ + this.mContentColour = mContext.getResources().getColor(_colour); + return this; + } + public Builder darkTheme(boolean _isDark) { this.mDarkTheme = _isDark; return this; diff --git a/app/src/main/java/uk/me/lewisdeane/ldialogs/CustomListAdapter.java b/app/src/main/java/uk/me/lewisdeane/ldialogs/CustomListAdapter.java index aa73d4a..2c354f0 100644 --- a/app/src/main/java/uk/me/lewisdeane/ldialogs/CustomListAdapter.java +++ b/app/src/main/java/uk/me/lewisdeane/ldialogs/CustomListAdapter.java @@ -43,7 +43,7 @@ public View getView(final int position, View convertView, ViewGroup parent) { mItemView.setTypeface(CustomListDialog.mTypeface); try { - mItemView.setTextColor(Color.parseColor(CustomListDialog.mItemColour)); + mItemView.setTextColor(CustomListDialog.mItemColour); } catch(Exception e){} return v; diff --git a/app/src/main/java/uk/me/lewisdeane/ldialogs/CustomListDialog.java b/app/src/main/java/uk/me/lewisdeane/ldialogs/CustomListDialog.java index d1a2a1d..8bc6781 100644 --- a/app/src/main/java/uk/me/lewisdeane/ldialogs/CustomListDialog.java +++ b/app/src/main/java/uk/me/lewisdeane/ldialogs/CustomListDialog.java @@ -3,6 +3,7 @@ import android.content.Context; import android.graphics.Color; import android.graphics.Typeface; +import android.support.annotation.ColorRes; import android.view.ContextThemeWrapper; import android.view.Gravity; import android.view.LayoutInflater; @@ -25,11 +26,11 @@ public class CustomListDialog extends BaseDialog { // Array of string containing the items for the list. private String[] mItems; - // String containing hex colour of title. - private String mTitleColour = ""; + // Colour of title. + private int mTitleColour = 0; - // String containing hex colour of items. - public static String mItemColour = ""; + // Colour of items. + public static int mItemColour = 0; // Alignment containing where to align the title private Alignment mTitleAlignment = Alignment.LEFT; @@ -69,8 +70,8 @@ private CustomListDialog(Builder _builder) { this.mTheme = _builder.mIsDark ? Theme.DARK : Theme.LIGHT; this.mTitle = _builder.mTitle; this.mItems = _builder.mItems; - this.mTitleColour = _builder.mTitleColour.length() > 0 ? _builder.mTitleColour : (this.mTheme == Theme.DARK ? DarkColours.TITLE.mColour : LightColours.TITLE.mColour); - this.mItemColour = _builder.mItemColour.length() > 0 ? _builder.mItemColour : (this.mTheme == Theme.DARK ? DarkColours.ITEM.mColour : LightColours.ITEM.mColour); + this.mTitleColour = _builder.mTitleColour != 0 ? _builder.mTitleColour : (this.mTheme == Theme.DARK ? Color.parseColor(DarkColours.TITLE.mColour) : Color.parseColor(LightColours.TITLE.mColour)); + this.mItemColour = _builder.mItemColour != 0 ? _builder.mItemColour : (this.mTheme == Theme.DARK ? Color.parseColor(DarkColours.ITEM.mColour) : Color.parseColor(LightColours.ITEM.mColour)); this.mTitleAlignment = _builder.mTitleAlignment; this.mItemAlignment = _builder.mItemAlignment; @@ -123,7 +124,7 @@ private CustomListDialog setTitleProperties() { // Apply correct properties if title view is available if (mTitleView != null) { mTitleView.setText(this.mTitle); - mTitleView.setTextColor(Color.parseColor(this.mTitleColour)); + mTitleView.setTextColor(this.mTitleColour); mTitleView.setTypeface(this.mTypeface); mTitleView.setGravity(getGravityFromAlignment(this.mTitleAlignment) | Gravity.CENTER_VERTICAL); } @@ -162,7 +163,7 @@ public Builder(Context _context, int _titleResId, int _itemsResId) { // Optional parameters initialised with default values. private Alignment mTitleAlignment = Alignment.LEFT, mItemAlignment = Alignment.LEFT; - private String mTitleColour = "", mItemColour = ""; + private int mTitleColour = 0, mItemColour = 0; private boolean mIsDark = false; public Builder titleAlignment(Alignment _alignment) { @@ -176,15 +177,35 @@ public Builder itemAlignment(Alignment _alignment) { } public Builder titleColour(String _colour) { - this.mTitleColour = _colour; + this.mTitleColour = Color.parseColor(_colour); return this; } public Builder itemColour(String _colour) { + this.mItemColour = Color.parseColor(_colour); + return this; + } + + public Builder titleColour(int _colour) { + this.mTitleColour = _colour; + return this; + } + + public Builder itemColour(int _colour) { this.mItemColour = _colour; return this; } + public Builder titleColourRes(@ColorRes int _colour) { + this.mTitleColour = mContext.getResources().getColor(_colour); + return this; + } + + public Builder itemColourRes(@ColorRes int _colour) { + this.mItemColour = mContext.getResources().getColor(_colour); + return this; + } + public Builder darkTheme(boolean _isDark) { this.mIsDark = _isDark; return this;