From 26465a60796497aa8872fc54d521482f716ece8a Mon Sep 17 00:00:00 2001 From: Filipe Belo Date: Wed, 27 Mar 2019 16:39:33 -0300 Subject: [PATCH] Componente ATLTitle --- .gitignore | 1 + app/src/main/res/layout/activity_main.xml | 19 ++- app/src/main/res/values/colors.xml | 1 - app/src/main/res/values/styles.xml | 10 +- atlanticadesign/build.gradle | 1 + .../atlanticadesign/Atoms/ATLSimpleLabel.kt | 14 +- .../Atoms/{ATLIcon.kt => ATMIcon.kt} | 15 +- ...{ATLSwitchButton.kt => ATMSwitchButton.kt} | 2 +- .../atlanticadesign/Helpers/Constants.kt | 5 +- .../Helpers/DimenConverters.kt | 4 +- .../atlanticadesign/Helpers/Resolver.kt | 4 +- .../{Atoms => Molecules}/ATLDivider.kt | 5 +- .../atlanticadesign/Molecules/ATLImageLogo.kt | 2 +- .../Molecules/ATLSettingsItem.kt | 58 ++++--- .../atlanticadesign/Molecules/ATLTitle.kt | 148 ++++++++++++++++++ .../atlanticadesign/enums/FontWeight.kt | 7 + .../atlanticadesign/enums/TextAlignment.kt | 5 +- .../atlanticadesign/enums/TextCase.kt | 7 + .../res/layout/atom_atl_switch_button.xml | 5 - .../main/res/layout/molecule_image_logo.xml | 14 +- .../res/layout/molecule_settings_item.xml | 7 +- .../src/main/res/layout/molecule_title.xml | 16 ++ .../main/res/values/attr_mol_image_logo.xml | 2 +- .../src/main/res/values/attr_spacing.xml | 5 - .../main/res/values/attrs_atom_atl_icon.xml | 2 +- .../values/attrs_atom_atl_simple_label.xml | 13 +- .../src/main/res/values/attrs_color.xml | 12 ++ .../src/main/res/values/attrs_constants.xml | 6 + .../values/{attrs.xml => attrs_dimension.xml} | 25 ++- .../src/main/res/values/attrs_enum.xml | 42 +++++ .../values/attrs_mol_atl_settings_item.xml | 11 +- .../src/main/res/values/attrs_mol_title.xml | 21 +++ .../src/main/res/values/attrs_reference.xml | 9 ++ .../src/main/res/values/attrs_string.xml | 7 + .../src/main/res/values/colors.xml | 4 + .../src/main/res/values/styles.xml | 28 ---- 36 files changed, 397 insertions(+), 140 deletions(-) rename atlanticadesign/src/main/java/com/outsmart/atlanticadesign/Atoms/{ATLIcon.kt => ATMIcon.kt} (53%) rename atlanticadesign/src/main/java/com/outsmart/atlanticadesign/Atoms/{ATLSwitchButton.kt => ATMSwitchButton.kt} (80%) rename atlanticadesign/src/main/java/com/outsmart/atlanticadesign/{Atoms => Molecules}/ATLDivider.kt (95%) create mode 100644 atlanticadesign/src/main/java/com/outsmart/atlanticadesign/Molecules/ATLTitle.kt create mode 100644 atlanticadesign/src/main/java/com/outsmart/atlanticadesign/enums/FontWeight.kt create mode 100644 atlanticadesign/src/main/java/com/outsmart/atlanticadesign/enums/TextCase.kt delete mode 100644 atlanticadesign/src/main/res/layout/atom_atl_switch_button.xml create mode 100644 atlanticadesign/src/main/res/layout/molecule_title.xml delete mode 100644 atlanticadesign/src/main/res/values/attr_spacing.xml create mode 100644 atlanticadesign/src/main/res/values/attrs_color.xml create mode 100644 atlanticadesign/src/main/res/values/attrs_constants.xml rename atlanticadesign/src/main/res/values/{attrs.xml => attrs_dimension.xml} (53%) create mode 100644 atlanticadesign/src/main/res/values/attrs_enum.xml create mode 100644 atlanticadesign/src/main/res/values/attrs_mol_title.xml create mode 100644 atlanticadesign/src/main/res/values/attrs_reference.xml create mode 100644 atlanticadesign/src/main/res/values/attrs_string.xml create mode 100644 atlanticadesign/src/main/res/values/colors.xml delete mode 100644 atlanticadesign/src/main/res/values/styles.xml diff --git a/.gitignore b/.gitignore index fd45b12..97e6be7 100644 --- a/.gitignore +++ b/.gitignore @@ -5,6 +5,7 @@ /.idea/libraries /.idea/modules.xml /.idea/workspace.xml +/.idea/ .DS_Store /build /captures diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index e370fc9..e0b6be7 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -8,12 +8,17 @@ tools:context=".MainActivity" android:orientation="vertical"> - + + + \ No newline at end of file diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index 9f0b2ba..e9555d3 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -1,6 +1,5 @@ - #008577 #00574B #D81B60 #000000 diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index 5646a7d..2e5f65c 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -4,20 +4,24 @@ - + \ No newline at end of file diff --git a/atlanticadesign/build.gradle b/atlanticadesign/build.gradle index 0b31a7a..d0a0358 100644 --- a/atlanticadesign/build.gradle +++ b/atlanticadesign/build.gradle @@ -31,6 +31,7 @@ dependencies { implementation 'androidx.appcompat:appcompat:1.0.0-beta01' implementation 'androidx.recyclerview:recyclerview:1.0.0-beta01' + implementation 'androidx.constraintlayout:constraintlayout:1.1.3' testImplementation 'junit:junit:4.12' androidTestImplementation 'androidx.test:runner:1.1.0-alpha4' androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0-alpha4' diff --git a/atlanticadesign/src/main/java/com/outsmart/atlanticadesign/Atoms/ATLSimpleLabel.kt b/atlanticadesign/src/main/java/com/outsmart/atlanticadesign/Atoms/ATLSimpleLabel.kt index a9b4b9c..5918b80 100644 --- a/atlanticadesign/src/main/java/com/outsmart/atlanticadesign/Atoms/ATLSimpleLabel.kt +++ b/atlanticadesign/src/main/java/com/outsmart/atlanticadesign/Atoms/ATLSimpleLabel.kt @@ -1,6 +1,7 @@ package com.outsmart.atlanticadesign.Atoms import android.content.Context +import android.text.InputType import android.util.AttributeSet import android.widget.TextView import com.outsmart.atlanticadesign.R @@ -19,7 +20,6 @@ class ATLSimpleLabel @JvmOverloads constructor( var textColor = 0 var fontSize = 0f var textAlignment = 0 - var backgroundColor = 0 context.theme.obtainStyledAttributes( attributeSet, R.styleable.ATLSimpleLabel, @@ -29,16 +29,18 @@ class ATLSimpleLabel @JvmOverloads constructor( try { textColor = getColor(R.styleable.ATLSimpleLabel_textColor, 0) fontSize = getDimension(R.styleable.ATLSimpleLabel_fontSize, -1f) - textAlignment = getInteger(R.styleable.ATLSimpleLabel_textAlignment, -1) - backgroundColor = getColor(R.styleable.ATLSimpleLabel_backgroundColor, -1) + textAlignment = getInteger(R.styleable.ATLSimpleLabel_labelTextAlignment, -1) } finally { recycle() } } - if (textColor != 0) this.setTextColor(textColor) - if (fontSize >= 0) this.setTextSize(fontSize) - if (backgroundColor >= 0) this.setBackgroundColor(backgroundColor) + if (textColor != 0) { + this.setTextColor(textColor) + } + if (fontSize >= 0) { + this.textSize = fontSize + } setTextAlignmentATL(textAlignment) } diff --git a/atlanticadesign/src/main/java/com/outsmart/atlanticadesign/Atoms/ATLIcon.kt b/atlanticadesign/src/main/java/com/outsmart/atlanticadesign/Atoms/ATMIcon.kt similarity index 53% rename from atlanticadesign/src/main/java/com/outsmart/atlanticadesign/Atoms/ATLIcon.kt rename to atlanticadesign/src/main/java/com/outsmart/atlanticadesign/Atoms/ATMIcon.kt index 08733c4..1bce004 100644 --- a/atlanticadesign/src/main/java/com/outsmart/atlanticadesign/Atoms/ATLIcon.kt +++ b/atlanticadesign/src/main/java/com/outsmart/atlanticadesign/Atoms/ATMIcon.kt @@ -5,19 +5,22 @@ import android.util.AttributeSet import android.widget.ImageView import com.outsmart.atlanticadesign.R -class ATLIcon @JvmOverloads constructor(context: Context, - attributeSet: AttributeSet? = null, - defStyle: Int = 0) : ImageView(context, attributeSet, defStyle) { +class ATMIcon @JvmOverloads constructor( + context: Context, + attributeSet: AttributeSet? = null, + defStyle: Int = 0 +) : ImageView(context, attributeSet, defStyle) { init { var source = 0 context.theme.obtainStyledAttributes( attributeSet, - R.styleable.ATLIcon, - 0, 0).apply { + R.styleable.ATMIcon, + 0, 0 + ).apply { try { - source = getResourceId(R.styleable.ATLIcon_source, 0) + source = getResourceId(R.styleable.ATMIcon_source, 0) } finally { recycle() } diff --git a/atlanticadesign/src/main/java/com/outsmart/atlanticadesign/Atoms/ATLSwitchButton.kt b/atlanticadesign/src/main/java/com/outsmart/atlanticadesign/Atoms/ATMSwitchButton.kt similarity index 80% rename from atlanticadesign/src/main/java/com/outsmart/atlanticadesign/Atoms/ATLSwitchButton.kt rename to atlanticadesign/src/main/java/com/outsmart/atlanticadesign/Atoms/ATMSwitchButton.kt index 2db3d3b..326c5f4 100644 --- a/atlanticadesign/src/main/java/com/outsmart/atlanticadesign/Atoms/ATLSwitchButton.kt +++ b/atlanticadesign/src/main/java/com/outsmart/atlanticadesign/Atoms/ATMSwitchButton.kt @@ -4,6 +4,6 @@ import android.content.Context import android.util.AttributeSet import android.widget.Switch -class ATLSwitchButton @JvmOverloads constructor(context: Context, +class ATMSwitchButton @JvmOverloads constructor(context: Context, attributeSet: AttributeSet? = null ) : Switch(context, attributeSet) \ No newline at end of file diff --git a/atlanticadesign/src/main/java/com/outsmart/atlanticadesign/Helpers/Constants.kt b/atlanticadesign/src/main/java/com/outsmart/atlanticadesign/Helpers/Constants.kt index 1cb9cbb..775602c 100644 --- a/atlanticadesign/src/main/java/com/outsmart/atlanticadesign/Helpers/Constants.kt +++ b/atlanticadesign/src/main/java/com/outsmart/atlanticadesign/Helpers/Constants.kt @@ -2,7 +2,10 @@ package com.outsmart.atlanticadesign.Helpers object Constants { - const val RESOURCE_DEFAULT_VALUE = -1 + const val RESOURCE_VALUE_UNAVAILABLE = -1 + const val FONT_SIZE_DEFAULT = 12 const val MARGIN_DEFAULT_VALUE = 0 const val DIMENSION_DEFAULT_VALUE = 0 + const val ENUM_DEFAULT_VALUE = 0 + const val SPACING_DEFAULT = 8 } \ No newline at end of file diff --git a/atlanticadesign/src/main/java/com/outsmart/atlanticadesign/Helpers/DimenConverters.kt b/atlanticadesign/src/main/java/com/outsmart/atlanticadesign/Helpers/DimenConverters.kt index 18c09a6..f33827a 100644 --- a/atlanticadesign/src/main/java/com/outsmart/atlanticadesign/Helpers/DimenConverters.kt +++ b/atlanticadesign/src/main/java/com/outsmart/atlanticadesign/Helpers/DimenConverters.kt @@ -4,13 +4,13 @@ import android.content.res.Resources fun convertPixelsToDp(px: Int): Float { - val metrics = Resources.getSystem().getDisplayMetrics() + val metrics = Resources.getSystem().displayMetrics val dp = px / (metrics.densityDpi / 160f) return Math.round(dp).toFloat() } fun convertDpToPixel(dp: Int): Int { - val metrics = Resources.getSystem().getDisplayMetrics() + val metrics = Resources.getSystem().displayMetrics val px = dp * (metrics.densityDpi / 160f) return Math.round(px) } \ No newline at end of file diff --git a/atlanticadesign/src/main/java/com/outsmart/atlanticadesign/Helpers/Resolver.kt b/atlanticadesign/src/main/java/com/outsmart/atlanticadesign/Helpers/Resolver.kt index 4319d0f..ba130a4 100644 --- a/atlanticadesign/src/main/java/com/outsmart/atlanticadesign/Helpers/Resolver.kt +++ b/atlanticadesign/src/main/java/com/outsmart/atlanticadesign/Helpers/Resolver.kt @@ -22,7 +22,7 @@ class Resolver( return defValue } - fun getResolvedColorStyle(themeAttrId: Int, viewAttrId: Int, defValue: Int): Int { + fun getResolvedColorStyle(themeAttrId: Int, viewAttrId: Int, defValue: Int = Constants.RESOURCE_VALUE_UNAVAILABLE): Int { val hasFromInput = input.hasValue(viewAttrId) if (hasFromInput) { return input.getColor(viewAttrId, defValue) @@ -48,7 +48,7 @@ class Resolver( return defValue } - fun getResolvedEnumStyle(themeAttrId: Int, viewAttrId: Int, defValue: Int): Int { + fun getResolvedEnumStyle(themeAttrId: Int, viewAttrId: Int, defValue: Int = Constants.ENUM_DEFAULT_VALUE): Int { val hasFromInput = input.hasValue(viewAttrId) if (hasFromInput) { return input.getInteger(viewAttrId, defValue) diff --git a/atlanticadesign/src/main/java/com/outsmart/atlanticadesign/Atoms/ATLDivider.kt b/atlanticadesign/src/main/java/com/outsmart/atlanticadesign/Molecules/ATLDivider.kt similarity index 95% rename from atlanticadesign/src/main/java/com/outsmart/atlanticadesign/Atoms/ATLDivider.kt rename to atlanticadesign/src/main/java/com/outsmart/atlanticadesign/Molecules/ATLDivider.kt index 22b5679..445dc09 100644 --- a/atlanticadesign/src/main/java/com/outsmart/atlanticadesign/Atoms/ATLDivider.kt +++ b/atlanticadesign/src/main/java/com/outsmart/atlanticadesign/Molecules/ATLDivider.kt @@ -1,4 +1,4 @@ -package com.outsmart.atlanticadesign.Atoms +package com.outsmart.atlanticadesign.Molecules import android.app.Activity import android.content.Context @@ -17,7 +17,8 @@ class ATLDivider @JvmOverloads constructor( defStyle: Int = 0 ) : View(context, attributeSet, defStyle) { - private var style: Style = Style() + private var style: Style = + Style() init { context.theme.obtainStyledAttributes( diff --git a/atlanticadesign/src/main/java/com/outsmart/atlanticadesign/Molecules/ATLImageLogo.kt b/atlanticadesign/src/main/java/com/outsmart/atlanticadesign/Molecules/ATLImageLogo.kt index f96021d..7b90db4 100644 --- a/atlanticadesign/src/main/java/com/outsmart/atlanticadesign/Molecules/ATLImageLogo.kt +++ b/atlanticadesign/src/main/java/com/outsmart/atlanticadesign/Molecules/ATLImageLogo.kt @@ -42,7 +42,7 @@ class ATLImageLogo @JvmOverloads constructor( typedArray.apply { val resourceId = getResourceId( R.styleable.ATLImageLogo_imageLogo, - Constants.RESOURCE_DEFAULT_VALUE + Constants.RESOURCE_VALUE_UNAVAILABLE ) setImageLogo(resourceId) } diff --git a/atlanticadesign/src/main/java/com/outsmart/atlanticadesign/Molecules/ATLSettingsItem.kt b/atlanticadesign/src/main/java/com/outsmart/atlanticadesign/Molecules/ATLSettingsItem.kt index 0a021d4..8918671 100644 --- a/atlanticadesign/src/main/java/com/outsmart/atlanticadesign/Molecules/ATLSettingsItem.kt +++ b/atlanticadesign/src/main/java/com/outsmart/atlanticadesign/Molecules/ATLSettingsItem.kt @@ -8,9 +8,9 @@ import android.util.AttributeSet import android.view.View import android.widget.LinearLayout import android.widget.RelativeLayout -import com.outsmart.atlanticadesign.Atoms.ATLIcon +import com.outsmart.atlanticadesign.Atoms.ATMIcon import com.outsmart.atlanticadesign.Atoms.ATLSimpleLabel -import com.outsmart.atlanticadesign.Atoms.ATLSwitchButton +import com.outsmart.atlanticadesign.Atoms.ATMSwitchButton import com.outsmart.atlanticadesign.Helpers.* import com.outsmart.atlanticadesign.R import com.outsmart.atlanticadesign.enums.TextAlignment @@ -31,10 +31,10 @@ class ATLSettingsItem @JvmOverloads constructor( /* Views and Components */ private val label: ATLSimpleLabel by lazy { atl_settings_item_label } - private val icon: ATLIcon by lazy { atl_settings_item_icon } + private val icon: ATMIcon by lazy { atl_settings_item_icon } private val iconContainer: LinearLayout by lazy { atl_settings_item_icon_container } - private val rightIcon: ATLIcon by lazy { atl_settings_right_item_icon } - private val switch: ATLSwitchButton by lazy { atl_settings_item_switch_button } + private val switch: ATMSwitchButton by lazy { atl_settings_item_switch_button } + private val rightIcon: ATMIcon by lazy { atl_settings_right_item_icon } /* */ var styleTransformer: ((style: Style) -> Style)? = null @@ -100,11 +100,11 @@ class ATLSettingsItem @JvmOverloads constructor( ) marginTopSpacing = getResolvedDimenStyle( R.attr.verticalSpacingSmall, - R.styleable.ATLSettingsItem_marginTopSpacing + R.styleable.ATLSettingsItem_verticalSpacing ) marginBottomSpacing = getResolvedDimenStyle( R.attr.verticalSpacingSmall, - R.styleable.ATLSettingsItem_marginBottomSpacing + R.styleable.ATLSettingsItem_verticalSpacing ) iconHeight = getResolvedDimenStyle( R.attr.iconListSize, @@ -132,12 +132,11 @@ class ATLSettingsItem @JvmOverloads constructor( ) labelFontColor = getResolvedColorStyle( R.attr.mediumGrayColor, - R.styleable.ATLSettingsItem_labelFontColor, - 0 + R.styleable.ATLSettingsItem_labelFontColor ) textAlignment = TextAlignment.values()[getResolvedEnumStyle( - R.attr.textAlignment, - R.styleable.ATLSettingsItem_textAlignment, + R.attr.textAlignmentBody, + R.styleable.ATLSettingsItem_labelTextAlignment, 0 )] } @@ -149,20 +148,29 @@ class ATLSettingsItem @JvmOverloads constructor( private fun loadInitialProps(input: TypedArray) { input.apply { - setText(getString(R.styleable.ATLSettingsItem_text) ?: "") + setText( + getString( + R.styleable.ATLSettingsItem_text + ) ?: "" + ) setIcon( getResourceId( R.styleable.ATLSettingsItem_icon, - Constants.RESOURCE_DEFAULT_VALUE + Constants.RESOURCE_VALUE_UNAVAILABLE ) ) setRightComponentVariant( getInteger( R.styleable.ATLSettingsItem_rightComponentVariant, - Constants.RESOURCE_DEFAULT_VALUE + Constants.RESOURCE_VALUE_UNAVAILABLE + ) + ) + setRightIcon( + getResourceId( + R.styleable.ATLSettingsItem_rightIcon, + Constants.RESOURCE_VALUE_UNAVAILABLE ) ) - setRightIcon(getResourceId(R.styleable.ATLSettingsItem_rightIcon, Constants.RESOURCE_DEFAULT_VALUE)) } } @@ -172,10 +180,14 @@ class ATLSettingsItem @JvmOverloads constructor( setLabelStyle() } - private fun setLabelStyle() { + private fun setViewPadding() { with(style) { - label.setTextColor(labelFontColor) - label.setTextAlignmentATL(textAlignment) + setPadding( + marginLeftSpacing, + marginTopSpacing, + marginRightSpacing, + marginBottomSpacing + ) } } @@ -189,14 +201,10 @@ class ATLSettingsItem @JvmOverloads constructor( } } - private fun setViewPadding() { + private fun setLabelStyle() { with(style) { - setPadding( - marginLeftSpacing, - marginTopSpacing, - marginRightSpacing, - marginBottomSpacing - ) + label.setTextColor(labelFontColor) + label.setTextAlignmentATL(textAlignment) } } diff --git a/atlanticadesign/src/main/java/com/outsmart/atlanticadesign/Molecules/ATLTitle.kt b/atlanticadesign/src/main/java/com/outsmart/atlanticadesign/Molecules/ATLTitle.kt new file mode 100644 index 0000000..b51fdc5 --- /dev/null +++ b/atlanticadesign/src/main/java/com/outsmart/atlanticadesign/Molecules/ATLTitle.kt @@ -0,0 +1,148 @@ +package com.outsmart.atlanticadesign.Molecules + +import android.content.Context +import android.content.res.TypedArray +import android.graphics.Typeface +import android.util.AttributeSet +import android.util.TypedValue +import android.view.View +import android.widget.RelativeLayout +import androidx.annotation.ColorRes +import com.outsmart.atlanticadesign.Helpers.Constants +import com.outsmart.atlanticadesign.Helpers.Resolver +import com.outsmart.atlanticadesign.Helpers.convertDpToPixel +import com.outsmart.atlanticadesign.R +import com.outsmart.atlanticadesign.enums.FontWeight +import com.outsmart.atlanticadesign.enums.TextAlignment +import com.outsmart.atlanticadesign.enums.TextCase +import kotlinx.android.synthetic.main.molecule_title.view.* + +class ATLTitle @JvmOverloads constructor( + context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0 +) : RelativeLayout(context, attrs, defStyleAttr) { + + private var style = Style() + + init { + inflateView() + setStyleAttributes(attrs) + applyStyle() + } + + private fun inflateView() { + View.inflate(context, R.layout.molecule_title, this) + } + + private fun setStyleAttributes(attributeSet: AttributeSet? = null) { + context.obtainStyledAttributes( + attributeSet, + R.styleable.ATLTitle, + 0, 0 + ).apply { + loadInitialStyle(this) + loadInitialState(this) + recycle() + } + } + + private fun loadInitialStyle(typedArray: TypedArray) { + val resolver = Resolver(context, typedArray) + with(resolver) { + style.apply { + labelFontColor = getResolvedColorStyle( + R.attr.colorPrimary, + R.styleable.ATLTitle_labelFontColor + ) + labelFontSize = getResolvedDimenStyle( + R.attr.fontSizeHighlight, + R.styleable.ATLTitle_labelFontSize, + Constants.FONT_SIZE_DEFAULT + ) + labelFontWeight = FontWeight.values()[getResolvedEnumStyle( + R.attr.fontWeightStrong, + R.styleable.ATLTitle_labelFontWeight + )] + labelTextAlignment = TextAlignment.values()[getResolvedEnumStyle( + R.attr.textAlignmentTitle, + R.styleable.ATLTitle_labelTextAlignment + )] + labelTextCase = TextCase.values()[getResolvedEnumStyle( + R.attr.textCaseHighlight, + R.styleable.ATLTitle_labelTextCase + )] + marginRightSpacing = getResolvedDimenStyle( + R.attr.horizontalSpacingMargin, + R.styleable.ATLTitle_marginRightSpacing + ) + marginLeftSpacing = getResolvedDimenStyle( + R.attr.horizontalSpacingMargin, + R.styleable.ATLTitle_marginLeftSpacing + ) + } + } + } + + private fun loadInitialState(typedArray: TypedArray) { + typedArray.apply { + val inputText = getString(R.styleable.ATLTitle_text) ?: "" + setText(inputText) + } + } + + private fun applyStyle() { + setViewPadding() + setLabelStyle() + } + + private fun setViewPadding() { + with(style) { + setPadding( + marginLeftSpacing, + verticalSpacing, + marginRightSpacing, + verticalSpacing + ) + } + } + + private fun setLabelStyle() { + setLabelTextSize() + setLabelFontColor() + setLabelFontWeight() + molTitleSimpleLabel.setTextAlignmentATL(style.labelTextAlignment) + } + + private fun setLabelFontWeight() { + with(molTitleSimpleLabel) { + when (style.labelFontWeight) { + FontWeight.Bold -> setTypeface(typeface, Typeface.BOLD) + else -> setTypeface(typeface, Typeface.NORMAL) + } + } + } + + private fun setLabelTextSize() { + molTitleSimpleLabel.setTextSize(TypedValue.COMPLEX_UNIT_SP, style.labelFontSize.toFloat()) + } + + private fun setLabelFontColor() { + molTitleSimpleLabel.setTextColor(style.labelFontColor) + } + + private fun setText(labelText: String) { + molTitleSimpleLabel.text = labelText + } + + inner class Style( + var labelFontFamily: Int = Constants.RESOURCE_VALUE_UNAVAILABLE, + var labelFontColor: Int = Constants.RESOURCE_VALUE_UNAVAILABLE, + var labelFontSize: Int = Constants.FONT_SIZE_DEFAULT, + var labelFontWeight: FontWeight = FontWeight.Regular, + var labelTextAlignment: TextAlignment = TextAlignment.LEFT, + var labelTextCase: TextCase = TextCase.UpperLow, + var marginRightSpacing: Int = Constants.MARGIN_DEFAULT_VALUE, + var marginLeftSpacing: Int = Constants.MARGIN_DEFAULT_VALUE + ) { + val verticalSpacing: Int = convertDpToPixel(Constants.SPACING_DEFAULT) + } +} \ No newline at end of file diff --git a/atlanticadesign/src/main/java/com/outsmart/atlanticadesign/enums/FontWeight.kt b/atlanticadesign/src/main/java/com/outsmart/atlanticadesign/enums/FontWeight.kt new file mode 100644 index 0000000..ff54a42 --- /dev/null +++ b/atlanticadesign/src/main/java/com/outsmart/atlanticadesign/enums/FontWeight.kt @@ -0,0 +1,7 @@ +package com.outsmart.atlanticadesign.enums + +enum class FontWeight { + Regular, + Light, + Bold +} \ No newline at end of file diff --git a/atlanticadesign/src/main/java/com/outsmart/atlanticadesign/enums/TextAlignment.kt b/atlanticadesign/src/main/java/com/outsmart/atlanticadesign/enums/TextAlignment.kt index f765088..a0e326b 100644 --- a/atlanticadesign/src/main/java/com/outsmart/atlanticadesign/enums/TextAlignment.kt +++ b/atlanticadesign/src/main/java/com/outsmart/atlanticadesign/enums/TextAlignment.kt @@ -3,6 +3,7 @@ package com.outsmart.atlanticadesign.enums // It is important that they are in the same order as the its attr definition enum class TextAlignment { LEFT, - RIGHT, - CENTER + CENTER, + RIGHT + } \ No newline at end of file diff --git a/atlanticadesign/src/main/java/com/outsmart/atlanticadesign/enums/TextCase.kt b/atlanticadesign/src/main/java/com/outsmart/atlanticadesign/enums/TextCase.kt new file mode 100644 index 0000000..77bbddb --- /dev/null +++ b/atlanticadesign/src/main/java/com/outsmart/atlanticadesign/enums/TextCase.kt @@ -0,0 +1,7 @@ +package com.outsmart.atlanticadesign.enums + +enum class TextCase { + UpperLow, + Uppercase, + Lowercase, +} \ No newline at end of file diff --git a/atlanticadesign/src/main/res/layout/atom_atl_switch_button.xml b/atlanticadesign/src/main/res/layout/atom_atl_switch_button.xml deleted file mode 100644 index 2d2f550..0000000 --- a/atlanticadesign/src/main/res/layout/atom_atl_switch_button.xml +++ /dev/null @@ -1,5 +0,0 @@ - - \ No newline at end of file diff --git a/atlanticadesign/src/main/res/layout/molecule_image_logo.xml b/atlanticadesign/src/main/res/layout/molecule_image_logo.xml index a99d3d8..e2e4edf 100644 --- a/atlanticadesign/src/main/res/layout/molecule_image_logo.xml +++ b/atlanticadesign/src/main/res/layout/molecule_image_logo.xml @@ -1,14 +1,16 @@ - + xmlns:app="http://schemas.android.com/apk/res-auto" + android:layout_width="match_parent" android:layout_height="wrap_content"> - \ No newline at end of file + \ No newline at end of file diff --git a/atlanticadesign/src/main/res/layout/molecule_settings_item.xml b/atlanticadesign/src/main/res/layout/molecule_settings_item.xml index 00c93fd..0166ad9 100644 --- a/atlanticadesign/src/main/res/layout/molecule_settings_item.xml +++ b/atlanticadesign/src/main/res/layout/molecule_settings_item.xml @@ -18,7 +18,7 @@ android:layout_alignParentLeft="true" android:layout_centerVertical="true"> - - - + + + + + \ No newline at end of file diff --git a/atlanticadesign/src/main/res/values/attr_mol_image_logo.xml b/atlanticadesign/src/main/res/values/attr_mol_image_logo.xml index e2b3495..c9516a1 100644 --- a/atlanticadesign/src/main/res/values/attr_mol_image_logo.xml +++ b/atlanticadesign/src/main/res/values/attr_mol_image_logo.xml @@ -3,7 +3,7 @@ - + diff --git a/atlanticadesign/src/main/res/values/attr_spacing.xml b/atlanticadesign/src/main/res/values/attr_spacing.xml deleted file mode 100644 index ffc78ad..0000000 --- a/atlanticadesign/src/main/res/values/attr_spacing.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/atlanticadesign/src/main/res/values/attrs_atom_atl_icon.xml b/atlanticadesign/src/main/res/values/attrs_atom_atl_icon.xml index fc48684..b9d7d4c 100644 --- a/atlanticadesign/src/main/res/values/attrs_atom_atl_icon.xml +++ b/atlanticadesign/src/main/res/values/attrs_atom_atl_icon.xml @@ -1,6 +1,6 @@ - + \ No newline at end of file diff --git a/atlanticadesign/src/main/res/values/attrs_atom_atl_simple_label.xml b/atlanticadesign/src/main/res/values/attrs_atom_atl_simple_label.xml index d249709..997d647 100644 --- a/atlanticadesign/src/main/res/values/attrs_atom_atl_simple_label.xml +++ b/atlanticadesign/src/main/res/values/attrs_atom_atl_simple_label.xml @@ -1,14 +1,9 @@ - - - - - - - - - + + + + \ No newline at end of file diff --git a/atlanticadesign/src/main/res/values/attrs_color.xml b/atlanticadesign/src/main/res/values/attrs_color.xml new file mode 100644 index 0000000..b3c5736 --- /dev/null +++ b/atlanticadesign/src/main/res/values/attrs_color.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/atlanticadesign/src/main/res/values/attrs_constants.xml b/atlanticadesign/src/main/res/values/attrs_constants.xml new file mode 100644 index 0000000..fdbc512 --- /dev/null +++ b/atlanticadesign/src/main/res/values/attrs_constants.xml @@ -0,0 +1,6 @@ + + + + 2 + + \ No newline at end of file diff --git a/atlanticadesign/src/main/res/values/attrs.xml b/atlanticadesign/src/main/res/values/attrs_dimension.xml similarity index 53% rename from atlanticadesign/src/main/res/values/attrs.xml rename to atlanticadesign/src/main/res/values/attrs_dimension.xml index cbe44bb..0560ab4 100644 --- a/atlanticadesign/src/main/res/values/attrs.xml +++ b/atlanticadesign/src/main/res/values/attrs_dimension.xml @@ -1,30 +1,23 @@ - - + + + + + + + + - - - - - - - - - - - - - - + \ No newline at end of file diff --git a/atlanticadesign/src/main/res/values/attrs_enum.xml b/atlanticadesign/src/main/res/values/attrs_enum.xml new file mode 100644 index 0000000..bb81752 --- /dev/null +++ b/atlanticadesign/src/main/res/values/attrs_enum.xml @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/atlanticadesign/src/main/res/values/attrs_mol_atl_settings_item.xml b/atlanticadesign/src/main/res/values/attrs_mol_atl_settings_item.xml index 376d212..b69fe88 100644 --- a/atlanticadesign/src/main/res/values/attrs_mol_atl_settings_item.xml +++ b/atlanticadesign/src/main/res/values/attrs_mol_atl_settings_item.xml @@ -4,23 +4,22 @@ - - + + + - - - + - + diff --git a/atlanticadesign/src/main/res/values/attrs_mol_title.xml b/atlanticadesign/src/main/res/values/attrs_mol_title.xml new file mode 100644 index 0000000..f14828c --- /dev/null +++ b/atlanticadesign/src/main/res/values/attrs_mol_title.xml @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/atlanticadesign/src/main/res/values/attrs_reference.xml b/atlanticadesign/src/main/res/values/attrs_reference.xml new file mode 100644 index 0000000..58c86ef --- /dev/null +++ b/atlanticadesign/src/main/res/values/attrs_reference.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/atlanticadesign/src/main/res/values/attrs_string.xml b/atlanticadesign/src/main/res/values/attrs_string.xml new file mode 100644 index 0000000..d0e5ba9 --- /dev/null +++ b/atlanticadesign/src/main/res/values/attrs_string.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/atlanticadesign/src/main/res/values/colors.xml b/atlanticadesign/src/main/res/values/colors.xml new file mode 100644 index 0000000..cdaa286 --- /dev/null +++ b/atlanticadesign/src/main/res/values/colors.xml @@ -0,0 +1,4 @@ + + + #ff0000 + \ No newline at end of file diff --git a/atlanticadesign/src/main/res/values/styles.xml b/atlanticadesign/src/main/res/values/styles.xml deleted file mode 100644 index 7e1df8e..0000000 --- a/atlanticadesign/src/main/res/values/styles.xml +++ /dev/null @@ -1,28 +0,0 @@ - - - - - -