Почему в контексте нет основного атрибута цвета активности?

Я пишу библиотеку, которая занимается редактированием фотографий. Когда пользователь закончил редактирование, есть кнопка «done» с цветным фоном. Я хочу иметь возможность настраивать цвет кнопки, поэтому у меня есть статические методы в другом классе, которые создают чертежи с разными цветами. Что-то, что я хочу сделать в этом классе, – это функция, которая получает ссылку на Context и создает возможность рисования с основным цветом. Вот мой код:

 //code from FlatButtonDrawable class companion object fun new(ctx: Context): StateListDrawable{ val typedValue = TypedValue(); val a = ctx.obtainStyledAttributes(typedValue.data, intArrayOf(R.attr.colorPrimary)) val color = a.getColor(0, 0); a.recycle(); return createColorDrawable(color) } 

Эта функция получает основной цвет из Context и возвращает выделение с этим цветом. Проблема заключается в том, что атрибут primaryColor не найден, поэтому он возвращает бесцветный доступный.

Еще более странно, что если вместо этого я получаю основной цвет в своей деятельности, а затем вызываю статический метод, он работает. Вот код:

 //code from activity class val sendButton = findViewById(R.id.sendPhoto) as Button val typedValue = TypedValue(); val a = obtainStyledAttributes(typedValue.data, intArrayOf(R.attr.colorPrimary)) val color = a.getColor(0,0) a.recycle() sendButton.background =FlatButtonDrawable.createColorDrawable(color) 

Итак, реальный вопрос: почему obtainStyledAttributes терпит неудачу при вызове из моего статического метода, используя ссылку на контекст активности, но это удается при вызове из активности?