Dhaval2404 / ColorPicker

🎨 Color Picker Library for Android
Apache License 2.0
277 stars 39 forks source link

Parameter specified as non-null is null: parameter color #17

Closed axiel7 closed 3 years ago

axiel7 commented 3 years ago

Summary

I get a crash when trying to show a MaterialColorPickerDialog:

java.lang.IllegalArgumentException: Parameter specified as non-null is null: method kotlin.jvm.internal.Intrinsics.checkParameterIsNotNull, parameter color
        at com.github.dhaval2404.colorpicker.util.ColorUtil.isDarkColor(Unknown Source:2)
        at com.github.dhaval2404.colorpicker.adapter.MaterialColorPickerAdapter.<init>(MaterialColorPickerAdapter.kt:28)
        at com.github.dhaval2404.colorpicker.MaterialColorPickerDialog.show(MaterialColorPickerDialog.kt:326)
        at com.github.dhaval2404.colorpicker.MaterialColorPickerDialog$Builder.show(MaterialColorPickerDialog.kt:289)

Code to reproduce

val defaultColors = resources.getStringArray(R.array.clothingColors)
MaterialColorPickerDialog.Builder(requireContext())
                .setTitle("Choose color")
                .setColorShape(ColorShape.CIRCLE)
                .setColorSwatch(ColorSwatch._300)
                .setColors(defaultColors)
                .setDefaultColor(R.color.tomato)
                .setColorListener { color, hex ->  }
                .show()

arrays.xml

<resources>
    <array name="clothingColors">
        <item>@color/tomato</item>
        <item>@color/tangerine</item>
        <item>@color/banana</item>
        <item>@color/basil</item>
        <item>@color/sage</item>
        <item>@color/peacock</item>
        <item>@color/blueberry</item>
        <item>@color/lavender</item>
        <item>@color/grape</item>
        <item>@color/flamingo</item>
        <item>@color/graphite</item>
    </array>
</resources>

AppTheme: Theme.MaterialComponents.DayNight.NoActionBar

Android version

Tested on Android 11 and 12

Impacted devices

Installation method

Gradle implementation 'com.github.dhaval2404:colorpicker:2.0'

SDK version

30

Other information

axiel7 commented 3 years ago

Solved: I need to change .setColors to .setColorRes and resources.getStringArray to resources.getIntArray