
Alexey
16.11.2016
16:04:28
ладно пора сваливать позже посмотрю

Ivan
16.11.2016
16:16:53
@InjectViewState как вариант, можешь самоподписать сертификат. делал я гист на эту тему: https://gist.github.com/kenrube/0d21b8346f326e17eefebe2aad251dbc

Alexey
16.11.2016
16:19:49

Google

Alexey
16.11.2016
16:27:09

Ivan
16.11.2016
16:28:05
да, я там сверху коммент подписал, как сертификат сграбить:
echo -n | openssl s_client -connect server:443 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > ./res/raw/cert.crt
ну и в res/raw его засунуть

Alexey
16.11.2016
16:28:21
В несколько сервисов ходить надо
Отдельный okhttp клиент создавать на каждый сервис?

Konstantin
16.11.2016
16:29:40

Ivan
16.11.2016
16:30:01

Alexey
16.11.2016
16:30:19
Ну конечно даггер помогает в этом

Ivan
16.11.2016
16:30:50
пришлось поизвращаться

Google

Alexey
16.11.2016
16:30:57
Ну я уже делал ask pinning было дело


Daniil
16.11.2016
19:33:55
у меня вопрос. Есть плейлист. В нем есть объекты класса Track. В объектах класса Track есть референс на объект класса TrackInfo. Так вот. Вопрос: как реализовать сортировку по различным полям объектов класса TrackInfo?
Я решил что в классе TrackInfo должны быть реализованы Comparator'ы для различных условий. Например CompareByArtist.
Поидеи это было бы логично, посколько класс TrackInfo должен уметь работать со своими полями, а вот классу Track и всем, кто по иерархии выше знать о полях TrackInfo вообще не к чему.
Все вроде бы хорошо. Делаю реализацию для TrackInfo, одноименную реализацию для Track и начинаются проблемы.
Проблема #1
у интерфейса Comparator есть нереализованный метод public int compare(). Он не статический (по вполне понятным причинам). Следовательно для реализации сортировки по одному из параметров уровнем выше - я должен либо создать instance объекта, в котором реализована сортировка уровнем ниже. Либо сделать статический метод, в котором и делать сортировку.
Проблема #2
Вся гибкость и красота идет боком ибо я прибиваюсь гвоздями к конкретной реализации класса TrackInfo...
Короче я просто запутался. Как делают это нормальные адекватные люди. Сейчас скину кусок кода.
а, TrackInfo сейчас даже как final объявлен... Тогда второй вопрос отпадает
*вторая проблема
public final class Track {
...
public static final class TrackInfo {
...
public static class CompareByArtist implements Comparator<TrackInfo> {
@Override
public int compare(TrackInfo t1, TrackInfo t2) {
return doTheCompare(t1, t2);
}
public static int doTheCompare(TrackInfo t1, TrackInfo t2) {
return t1.songName().compareTo(t2.songName());
}
}
...
}
...
public static class CompareByArtist implements Comparator<Track> {
@Override
public int compare(Track t1, Track t2) {
return TrackInfo.CompareByArtist.doTheCompare(t1.info(), t2.info());
}
}
...
}
я чую что я пишу дикие кривые костыли, натолкните на путь истинный


Vitaliy
16.11.2016
19:38:27
Пишешь

Daniil
16.11.2016
19:38:43
а как тру-господа реализуют данный функционал

Vitaliy
16.11.2016
19:39:32
`public final static CompareByArtist = new Comparator<TrackInfo>() {
@Override
public int compare(TrackInfo t1, TrackInfo t2) {
return t1.songName().compareTo(t2.songName());
}
};`
Упрощайте =)

Daniil
16.11.2016
19:40:04
но мне же надо сравнивать между собой Track а не TrackInfo
есть коллекция в которой лежат Track`и, а не `TrackInfo

Vitaliy
16.11.2016
19:40:21
Ну параметризуй его Track'ом

Andre
16.11.2016
19:40:25
Ну так поменяй дженерик на Track

Vitaliy
16.11.2016
19:40:42
Вообще, код нормальный, не костыльный.
Просто реализовать его можно проще =)

Daniil
16.11.2016
19:42:16
типо так?
public static class CompareByArtist implements Comparator<Track> {
@Override
public int compare(Track t1, Track t2) {
return t1.info().artist().compareTo(t2.info().artist());
}
}
info() - вернет TrackInfo
но в таком же случаи как-то не оопэшно получается. Track зачем-то знает как сравнивать между собой TrackInfo. Это же наверное TrackInfo должен предоставить интерфейс для сравнения?
или я перегибаю палку?

Google

Vitaliy
16.11.2016
19:44:38
Сделай ты уже этот класс анонимным
Если ты хочешь, чтобы TrackInfo имел интерфейс для компаринга, сделай его точно так же анонимным статическим полем
В нем

Daniil
16.11.2016
19:45:41
/me ушел гуглить что есть анонимный

Vitaliy
16.11.2016
19:45:45
И тут просто делегируй compare ему
То, что я написал
Скопипасть код
return TrackInfo.Comparator.compare(t1.info().artist(), t2.info().artist());

Daniil
16.11.2016
19:46:37
а понял
спасяб

Nikita
16.11.2016
20:49:18
Здравствуйте. Возникла проблема с регулярками, которую я не могу решить:
https://gist.github.com/LionZXY/e089ccbd0afd726dc09a44d53b3c0ea1
Exception:
Exception in thread "main" java.lang.IllegalStateException: No match found
at java.util.regex.Matcher.group(Matcher.java:536)
at Main.main(Main.java:63)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147)
Не могли бы вы помочь?

Sergey
16.11.2016
20:54:53

Vitaliy
16.11.2016
20:55:27
Он пишет, что не найдено совпадений по регулярке

Nikita
16.11.2016
20:55:38
Ну это и есть весь код

Vitaliy
16.11.2016
20:55:48
Наверняка ты пытаешься получить группы, не узнав, есть ли они вообще

Nikita
16.11.2016
20:55:59
Так скинул же код :)
https://gist.github.com/LionZXY/e089ccbd0afd726dc09a44d53b3c0ea1

Vitaliy
16.11.2016
20:56:16
Сорри, не заметил

Google

Vitaliy
16.11.2016
20:56:25
Проверь регексп на онлайн-сайтах

Roman
16.11.2016
20:56:42

Nikita
16.11.2016
20:57:21
СПАСИБО

Vitaliy
16.11.2016
20:58:00
Надо ещё проверить вызовом matches()
Типа совпадает ли

Nikita
16.11.2016
20:58:06
Все работает

Vitaliy
16.11.2016
20:58:17
И если нет, то не дергать группы

Nikita
16.11.2016
21:00:42
Но мне то нужно разобраться почему он не проходит :)
Мне бы ключ выдрать

Daniil
16.11.2016
21:05:25
у меня твой пример работает
https://gist.github.com/matrixd/f07c3e58761e3ec6d98c22c55dc09ac8
m0x35@m0x35-pc> /opt/jdk/bin/javac Regex.java ~/tmp
m0x35@m0x35-pc> java Regex ~/tmp
NAME="logout_id" TYPE="hidden" VALUE="320f14a7207dc6d1">
а вообще ты наверное хотеел вот так?
m0x35@m0x35-pc> java Regex
320f14a7207dc6d1

Nikita
16.11.2016
21:28:09
Во
Спасибо
Я криворук

Google

Nikita
16.11.2016
21:28:52
Лови звездочку

Daniil
16.11.2016
21:29:08
:3

Sergey
16.11.2016
22:03:42
Работал ли кто с card.io?
у меня не запускается их камера, открывается только активити из ручным вводом данных
в логах I/card.io: Processor not Supported. Skipping camera.
wtf? Девайс Nexus 5 на API 23

Quarx2k ?
16.11.2016
22:14:03
Может они пермишены не запрашивают?
Вручную через настройки выставить

Andre
16.11.2016
22:14:33

Sergey
16.11.2016
22:14:47
я это прочитал
но Nexus 5? Snapdragon проц
> из кода card.io
private static boolean usesSupportedProcessorArch() {
return nUseNeon() || nUseTegra() || nUseX86();
}
и где arm-v7?
сошка есть же

Quarx2k ?
16.11.2016
22:21:03
snap под неон попадает

Sergey
16.11.2016
22:22:33
оно считает по другому видимо