Android Дичь - розыгрыш билета на Saint AppsConf
Alexey MileevИтак, мы тут разыгрывали билет на конференцию.
Условия простые: нужно прислать мне максимально всратый, нелепый и смешной сниппет кода, с которым вам довелось иметь дело. Ну и пояснить какую-то историю вокруг него.
Важно, чтобы код был настоящим. Нельзя сесть и написать его просто к случаю. Проверить я этого, конечно, не смогу, но возмездие настигнет неверных, в этом можете не сомневаться.
Победил @a_jukov. Этот билет на Saint AppsConf улетает ему.
Кстати, скоро проведём розыгрыш ещё одного билета по похожей схеме. All hail to the Hive Queen!
Ну и, конечно же, посмотрим на лучшее из присланного:
@ViewHolder
На одной из моих предыдущих работ во время очередного мержа возник конфликт слияния и я пошел решать конфликт и увидел это.Этот код должен был проверять что Wi-Fi SSID к которому подключен пользователь это Wi-Fi центра управления умными устройствами.
Коллега сказал что ему было лень писать регулярное выражение. Я не смог его понять.
Имя компании скрыл намеренно. Код воспроизводил по памяти.
Код который пишет этот Java код писал на Kotlin (Мне было лень писать его руками(Хмм. Может и коллега его генерил))
public void onResume() {
if (ssid.equals("companyName00") || ssid.equals("companyName01")
|| ssid.equals("companyName02") || ssid.equals("companyName03")
|| ssid.equals("companyName04") || ssid.equals("companyName05")
|| ssid.equals("companyName06") || ssid.equals("companyName07")
|| ssid.equals("companyName08") || ssid.equals("companyName09")
|| ssid.equals("companyName10") || ssid.equals("companyName11")
|| ssid.equals("companyName12") || ssid.equals("companyName13")
|| ssid.equals("companyName14") || ssid.equals("companyName15")
|| ssid.equals("companyName16") || ssid.equals("companyName17")
|| ssid.equals("companyName18") || ssid.equals("companyName19")
|| ssid.equals("companyName20") || ssid.equals("companyName21")
|| ssid.equals("companyName22") || ssid.equals("companyName23")
|| ssid.equals("companyName24") || ssid.equals("companyName25")
|| ssid.equals("companyName26") || ssid.equals("companyName27")
|| ssid.equals("companyName28") || ssid.equals("companyName29")
|| ssid.equals("companyName30") || ssid.equals("companyName31")
|| ssid.equals("companyName32") || ssid.equals("companyName33")
|| ssid.equals("companyName34") || ssid.equals("companyName35")
|| ssid.equals("companyName36") || ssid.equals("companyName37")
|| ssid.equals("companyName38") || ssid.equals("companyName39")
|| ssid.equals("companyName40") || ssid.equals("companyName41")
|| ssid.equals("companyName42") || ssid.equals("companyName43")
|| ssid.equals("companyName44") || ssid.equals("companyName45")
|| ssid.equals("companyName46") || ssid.equals("companyName47")
|| ssid.equals("companyName48") || ssid.equals("companyName49")
|| ssid.equals("companyName50") || ssid.equals("companyName51")
|| ssid.equals("companyName52") || ssid.equals("companyName53")
|| ssid.equals("companyName54") || ssid.equals("companyName55")
|| ssid.equals("companyName56") || ssid.equals("companyName57")
|| ssid.equals("companyName58") || ssid.equals("companyName59")
|| ssid.equals("companyName60") || ssid.equals("companyName61")
|| ssid.equals("companyName62") || ssid.equals("companyName63")
|| ssid.equals("companyName64") || ssid.equals("companyName65")
|| ssid.equals("companyName66") || ssid.equals("companyName67")
|| ssid.equals("companyName68") || ssid.equals("companyName69")
|| ssid.equals("companyName70") || ssid.equals("companyName71")
|| ssid.equals("companyName72") || ssid.equals("companyName73")
|| ssid.equals("companyName74") || ssid.equals("companyName75")
|| ssid.equals("companyName76") || ssid.equals("companyName77")
|| ssid.equals("companyName78") || ssid.equals("companyName79")
|| ssid.equals("companyName80") || ssid.equals("companyName81")
|| ssid.equals("companyName82") || ssid.equals("companyName83")
|| ssid.equals("companyName84") || ssid.equals("companyName85")
|| ssid.equals("companyName86") || ssid.equals("companyName87")
|| ssid.equals("companyName88") || ssid.equals("companyName89")
|| ssid.equals("companyName90") || ssid.equals("companyName91")
|| ssid.equals("companyName92") || ssid.equals("companyName93")
|| ssid.equals("companyName94") || ssid.equals("companyName95")
|| ssid.equals("companyName96") || ssid.equals("companyName97")
|| ssid.equals("companyName98") || ssid.equals("companyName99")) {
//doSomething
}
}
@Jacks0n23
Похоже на андроид дичь?)
if (ignoreCase) {
// If characters don't match but case may be ignored,
// try converting both characters to uppercase.
// If the results match, then the comparison scan should
// continue.
char u1 = Character.toUpperCase(c1);
char u2 = Character.toUpperCase(c2);
if (u1 == u2) {
continue;
}
// Unfortunately, conversion to uppercase does not work properly
// for the Georgian alphabet, which has strange rules about case
// conversion. So we need to make one last check before
// exiting.
if (Character.toLowerCase(u1) == Character.toLowerCase(u2)) {
continue;
}
}
@happy_bracket
Претендую на самое гениальное решение на Котлине (!) одной задачи, которое у нас сейчас (!) есть в проде
Пререквизиты:
data.payload: Either<String, Long>
sealed class Either<out L, out R> {
data class Left<L>(val value: L) : Either<L, Nothing>()
data class Right<R>(val value: R) : Either<Nothing, R>()
fun <C> fold(ifLeft: (L) -> C, if Right: (R) -> C): C =
when (this) {
is Left -> ifLeft(value)
is Right -> ifRight(value)
}
}
fun <A, B, C, D, E, R> ((A, B, C, D, E) -> R).partialize(): (A) -> (B) -> (C) -> (D) -> (E) -> R =
{ a ->
{ b ->
{ c ->
{ d ->
{ e ->
this(a, b, c, d ,e) } } } } }
data.payload.fold(
chatRepository::sendMessage.partialize(),
chatRepository::sendSticker.partialize()
)(channelId)(streamId)(hash)(socketId)
Собсна, история такова, что у нас в чате испокон веков были вот эти два метода и никто не запарился их сделать как-то поудобнее, поэтому я запарился и сделал вот это ))0)
@artem_shumidub
История такая. Мы тут начали краш ловить из-за webview. За несколько дней после обновления webview - несколько десятков тысяч крашей. В какой-то момент Crash free rate c 99,9* упал до 91 %. Завели баг - https://bugs.chromium.org/p/chromium/issues/detail?id=1003687#c28
Так там, кто-то в комменте просто посоветовал игнорить краш
final Thread.UncaughtExceptionHandler defaultUncaughtExceptionHandler = Thread.getDefaultUncaughtExceptionHandler();
Thread.setDefaultUncaughtExceptionHandler((t, e) -> {
if (e instanceof AbstractMethodError) {
// ignore
} else {
defaultUncaughtExceptionHandler.uncaughtException(t, e);
}
});
@osipxd
Фича - отображение бонусов за транзакцию.

@feanche
Есть вот такая дичь. Это регулярка на проверку email. И написана она в сервисе принадлежащая одной из крупных компаний тройки опсосов. Приложение, которое я пишу, как раз имеет дело с этим. И был однажды случай что регулярка сервиса (которая, кстати, не правильная) не пропустила email проверенная и отправленная с нашей прилы, которая регистрирует симки на клиента. Вот такие дела, регялрка курильщика :)

@a_jukov
Довелось поработать в одной аутсорс-компании несколько месяцев над проектом для крупной retail сети, который нам тогда отдали из другого аутсорса. Нашел там вот такой код (авторское форматирование сохранено):
class HelpCardAdapter(private val isKinderClub: Boolean) : PagerAdapter() {
private val countValue = if (isKinderClub) KinderClubItems.values().size else
(HelpCardItem.values.size +
+when (FeatureToggle.promo) {
true -> 1
else -> 0
}
+ when (FeatureToggle.isStickersActive()) {
true -> 1
else -> 0
})
override fun instantiateItem(container: ViewGroup, position: Int): Any {
/*...*/
if (FeatureToggle.promo && (position == 0 && !isKinderClub)) {
/* showing promo item */
} else if (FeatureToggle.isStickersActive() && position == 0) {
/* showing stickers item */
} else if (FeatureToggle.ok && ((!FeatureToggle.isStickersActive() && position == 0) || (FeatureToggle.isStickersActive() && position == 1))) {
/* showing ok item */
} else {
/* ... */
var newPosition = when (position != 0 && (FeatureToggle.promo || FeatureToggle.isStickersActive())) {
true -> position - 1
else -> position
}
/* ... */
with(HelpCardItem) {
if (!isKinderClub) {
/* showing other items */
} else {
/* showing kinder club items */
}
container.addView(itemView)
}
}
return itemView
}
/* ... */
}
Это PagerAdapter, который использовался для отображения онбординга. В зависимости от поля isKinderClub отображется по сути два разных набора страниц (в одном классе, да).
countValue отвечает за то, сколько элементов отображается на экране. То есть вместо того, чтобы просто создать список экранов для онбординга, они сначала решили посчитать сколько элементов будет всего, а потом при каждом вызове instantiateItem() решать, а что же все таки нужно отобразить. И для каждого следующего position нужно проверить, какие именно страницы были выбраны для предыдущих. Мне собственно нужно было добавить очередной экран, для этого я написал if еще в два раза больше, чем тот что проверяет необходимость отображения страницы ok (времени на то чтобы переписать весь класс, естественно, никто не дал).