Пояснение для разработчиков списков облачных масок (смотрят: 1)

zigumba

Модератор
Команда форума

Репутация:

Всем привет!
В новой версии, которая была анонсирована еще до Нового года, но задержалась, будет поддержка установки сразу нескольких облачных масок (до 10 штук одновременно).

Выглядит это вот так:

cw22.png

Проблема:

С классическими списками облачных масок, которые содержат только обычные блокирующие записи (+7 ... *) никаких проблем не возникает. Все списки объединяются в один и записи в них проверяются по очереди.

Но у нас есть множество облачных списков, содержащих записи вида +7 ... +=
Обычно такие списки строятся по принципу:

1. Перечисляем все, что не надо блокировать
2. Блокируем все остальное

Такие списки часто содержат в конце очень широкую маску, например +7*
Если объеденить 2 таких списка, то они не будут работать вместе. Проверка будет доходить до конца первого списка и обрываться на правиле +7*

Решение:

В Фильтр Звонков внедрена следующая логика: Если используется более одного списка одновременно, то приложение проверяет все списки, кроме последнего. Если последней записью в таком списке является щирокая блокирующая маска (до 4 цифр, например +7*, +421*, +77*), то такое правило отбрасывается и не учитывается при проверке.



В результате мы получаем полную обратную совместимость списков облачных масок! Но при разработке своего списка, прошу учитывать эту особенность и ставить общее блокирующее правило последним.

Если возникнут вопросы, пожалуйста пишите в этой теме. Я постараюсь оперативно ответить.
 
Пока вижу одну проблему (не для меня, т.к. мне достаточно одного списка и я его делаю для себя сам): если в списке будет несколько секций с широкой блокирующей маской в конце каждой секции. Например, у меня в списке 2 секции (для фиксированных номеров и для мобильных).
 
Пока вижу одну проблему (не для меня, т.к. мне достаточно одного списка и я его делаю для себя сам): если в списке будет несколько секций с широкой блокирующей маской в конце каждой секции. Например, у меня в списке 2 секции (для фиксированных номеров и для мобильных).

А можно пример?
 
Мой лист есть здесь на форуме: cf1201. В моем списке эти 2 секции не пересекаются. Но в других может быть не так. Впрочем, может быть это и надуманная проблема, и в реальной жизни ее не будет.
+1*
...
+7495*=
...
+74*
+7916*=
...
+7*
 
К тому же я всегда делаю оптимизацию своего списка:
- сортировка по номеру и склейка примыкающих диапазонов (для уменьшения длины списка)
- сортировка по длине маски (короткие, охватывающие большее число номеров, сначала)
Это позволяет даже на бюджетных телефонах использовать маски в оффлайне (проверено на Samsung J1).
 
Мой лист есть здесь на форуме: cf1201. В моем списке эти 2 секции не пересекаются. Но в других может быть не так. Впрочем, может быть это и надуманная проблема, и в реальной жизни ее не будет.
+1*
...
+7495*=
...
+74*
+7916*=
...
+7*

Мм... а в чем смысл записи +74*, если дальше идет +7*?
 
Мм... а в чем смысл записи +74*, если дальше идет +7*?
Оптимизация. Чтобы не проверять остальные 2000 строк для фиксированного звонка. Короче время обработки листа. Быстрее выдаст Блок. Хотя это теория. реально время обработки не мерял :)
Для серверной обработки не критично, для оффлайн обработки на бюджетном телефоне может иметь значение.
 
Оптимизация. Короче время обработки листа. Быстрее выдаст Блок. Хотя это теория. реально время обработки не мерял :)

Да, полностью согласен, это может помочь в некоторых случаях. Ну а измерять скорость работы облачной маски, к сожалению, бесполезно. Даже самый бюджетный телефон сможет успеть обработать большую маску при звонке если нет других факторов. А вот, например, если будет загружен процессор или будет задержка чтения из памяти по какой-то причине - то уже не сможет. Слишком много различных факторов может помешать.
 
Ну тогда привычка :) Привык выжимать максимум (оптимизация кода, использования ресурсов и т.д.).
Вредная привычка, называется перфекционизм :ROFLMAO:
 
Не уверен, что правильно понял.
Для стабильной и корректной работы с несколькими облачными масками, в новой версии, "широкие" пулы нужно будет разместить
в конце списка?
Код:
+1*
+2*
+3*
+4*
+5*
+6*
+8*
+9*
+77*
+674*
+7997*
+7998*
 
Не уверен, что правильно понял.
Для стабильной и корректной работы с несколькими облачными масками, в новой версии, "широкие" пулы нужно будет разместить
в конце списка?

Для такого примера сказанное выше не актуально. Это актуально только для правил вида +7 ... *=
Например:

+7495*=
+7812*=
+7915*=
+7926*=
+7*

Что тут происходит? Облачный список пропускает номера из 4 телефонных кодов и блокирует всю остальную Россию. В этом случае если список будет стоять не последним, то у него будет отрезано последнее правило - +7*
 

Пользователи в этой теме:

Назад
Верх