⚡️Мухамед
может ошибкой было браться за проект?)
Это был не мой проект с пространным дедлайном
Yank
всем привет, как сделать layout с закругленными углами, чтоб контен за пределы закругления не вылазил ?
Yank
при скроле, линия выходит за пределы бэкграунда
⚡️Мухамед
Card view?
Yank
Card view?
там это большой элемент, желательно простой контейнер использовать
Yank
вот думаю создать какой нибудь кастомный layout, только с реально загруленными углами
⚡️Мухамед
Можно в xml закруглить и использовать beckgroundом
Евгений
Cicerone или Navigation component?
⚡️Мухамед
conductor)
...нажми на тормоза
Oleg
Он самый) Вообще на самом деле выходит что cicerone имеет большую известность (по крайней мере в русскоязычном пространстве), хоть почти в 2 раза меньше звезд на гитхабе)
Oleg
ну да пофиг
Данил
Ребят можно как нибудь DiffUtilCallback вынести из adapter, так как по сути идет дублирование кода в каждом adapter? Для areContentsTheSame использую hashCode, а вот для areItemsTheSame ничего не могу придумать
Николай
Ребят можно как нибудь DiffUtilCallback вынести из adapter, так как по сути идет дублирование кода в каждом adapter? Для areContentsTheSame использую hashCode, а вот для areItemsTheSame ничего не могу придумать
Сделать интерфейс с дефолтным методом areContentTheSame и не определённым вторым методом. А там где тебе нужно юзать интерфейс - создавать объект при этом определять второй метод относительно ситуации
Данил
Всм вынести?
fun updateData(data : List<ChatItem>){ Log.d("M_ChatAdapter", "update data adapter - new data ${data.size} hash : ${data.hashCode()}" + " old ${items.size} hash: ${items.hashCode()}") val diffCallback = object : DiffUtil.Callback(){ override fun areItemsTheSame(oldPos: Int, newPos: Int): Boolean = items[oldPos].id == data[newPos].id override fun areContentsTheSame(oldPos: Int, newPos: Int): Boolean = items[oldPos].hashCode() == data[newPos].hashCode() override fun getOldListSize(): Int = items.size override fun getNewListSize(): Int = data.size } val diffResult = DiffUtil.calculateDiff(diffCallback) items = data diffResult.dispatchUpdatesTo(this) По сути меняется только тип List
Данил
class MyDiff<T>(val oldItem: List<T>, val newOld: List<T>) : DiffUtil.Callback() { override fun areItemsTheSame(oldItemPosition: Int, newItemPosition: Int): Boolean = oldItem[oldItemPosition].id == newItem[newItemPositon].id override fun getOldListSize(): Int { TODO("Not yet implemented") } override fun getNewListSize(): Int { TODO("Not yet implemented") } override fun areContentsTheSame(oldItemPosition: Int, newItemPosition: Int): Boolean { TODO("Not yet implemented") } } Я захотел вынести его из Adapter, но что-то не могу что вместо id использовать
Данил
А зачем?
Что зачем? Зачем выносить?
Ярослав🇺🇦
Да, выносить
Данил
Убрать дублирование
Yaroslav
🤷‍♂
Aleksey
conductor)
где-то рядом с переписванием всего приложения с фрагментов на вьюхи, да?)
Данил
https://m.habr.com/ru/post/337774/ Наверное это, но я не уверен
В принципе да, я в принципе сам до этого додумался, хотел baseClass создать с единственный параметров id, спасибо
Данил
А то Adapterов много, и лишний код зачем нужен
Dmytro
Dmytro
что за сейм?
а, не правильно прочитал.. забей, ты сказал одно, а в коде другое
Oleg
где-то рядом с переписванием всего приложения с фрагментов на вьюхи, да?)
Ага) но в целом там методы почти как у фрагмента, так что изи если не оч много фрагментов) но это да, для упоротых😁
Granderbird
Пытаюсь создать файл, но пишет java.io.IOException: Permission denied, хотя пермишены на чтение\запись есть и возвращабт true, что не так?
Granderbird
Пытаюсь создать файл в папке Download
Granderbird
API 29
Anonymous
Легаси нужно
Granderbird
Всмысле? У меня до этого этот код работал
Granderbird
попробуй с этим
спасибо, сек
Садо
Садо
Всё здорово). Я новичок в программировании. Я хочу подключить moxy в androidx однако у меня вылетает такая ошибка. Пробовал чистить проект и перестройт. Не помогло :(
Granderbird
попробуй с этим
Пиздец. заработало. Я 5 часов на эту ебень потратил
Садо
Мокси и новичек в программировании)
:) хотелось поработать с ним.
Anonymous
Пиздец. заработало. Я 5 часов на эту ебень потратил
Если андроид 11 будет глобальным, там вообще никак не сделать вроде, или простой работает..точно не понял
Egor
:) хотелось поработать с ним.
Попробуй реализовать мвп без мокси, потом с мокси уже
Басюк
Привет. нужна помощь. не могу понять как правильно параметры прописывать. есть запрос простой на погоду. помогите разобраться с ним. использую ретрофит. key обязательный. респонс боди возвращает ноль.
Басюк
https://api.weatherbit.io/v2.0/current?city=Kiev,UA&key=2c5ae71c0c8b417e80d4fbc8b8296948
Басюк
сам запрос работает, но вот правильно прописать не получается, что то путаю наверное
Басюк
public interface ApiServices { @GET("/current") Call<Example>getWeather( @Query("city") String city, @Query("key") String key); }
Басюк
public class ApiFactory { private static ApiFactory apiFactory; private static OkHttpClient client; private static Retrofit retrofit; private static final String BASE_URL = "https://api.weatherbit.io/v2.0/"; public ApiFactory() { client = new OkHttpClient.Builder() .connectTimeout(100, TimeUnit.SECONDS) .readTimeout(100,TimeUnit.SECONDS).build(); retrofit = new Retrofit.Builder() .addConverterFactory(GsonConverterFactory.create()) .addCallAdapterFactory(RxJava2CallAdapterFactory.create()) .baseUrl(BASE_URL) .client(client) .build(); } public static ApiFactory getInstance(){ if (apiFactory == null){ apiFactory = new ApiFactory(); } return apiFactory; } public ApiServices getApiService(){ return retrofit.create(ApiServices.class); } }
Басюк
call = MyApp.apiServices.getWeather("Kiev", "2c5ae71c0c8b417e80d4fbc8b8296948");
Басюк
возвращает код 500
Anton
возвращает код 500
а url при этом какой в логах? пробовал по нему перейти
Басюк
убрал слеш, теперь вообще вызов не идет
Басюк
в апи пишут что current должен быть в BASE_URL, но я по всякому пробовал
Anonymous
Не один час мучаюсь, помогите решить проблему. Что-то в проекте сбилось и теперь активити не смещается при появлении клавиатуры и соответственно клавиатура перекрывает активити. Пробовал код java и xml скопировать в другой проект - там это работает. В чем может быть проблема? В манифесте прописал android:windowSoftInputMode="adjustPan"
Басюк
https://api.weatherbit.io/current?city=Kiev&key=2c5ae71c0c8b417e80d4fbc8b8296948
Басюк
Вот такой
Anton
видишь и тут не работает
Басюк
ага
Anton
2.0 где?
Max
https://api.weatherbit.io/v2.0/current?city=London&key=2c5ae71c0c8b417e80d4fbc8b8296948
Басюк
хм
Max
@GET("/v2.0/current")
Anton
у него 2.0 в BASE судя по коду
Anton
и ему там самое место, но видимо не этот код используется?
Артем
Привет, подскажите пожалуйста, я хочу чтобы при входе в приложение, происходила проверка версии и если в сторе версия выше выбивало окно о том что можно скачать обновления, это надо делать вручную? Если да толкните в нужном направлении, если у гугла есть готовые решения, тоже толкните пожалуйста))