feat: масштабный рефакторинг архитектуры AIS карты и UI компонентов

Новые векторные иконки:
- cog.xml: иконка шестеренки для настроек
- compass.xml: иконка компаса для навигации
- ownship.xml: иконка собственного судна
- targetlist.xml: иконка списка целей с текстом 'LIST'

Архитектурные изменения:
- MainActivity.java: +99/- строк - обновление UI логики
- AppController.java: +111/- строк - рефакторинг контроллера приложения
- MapLibreMapImpl.java: +525/- строк - значительные улучшения карты
- MapInterface.java: +10 строк - расширение интерфейса карты
- CursorOverlay.java: +329/- строк - улучшение курсора и оверлеев
- GeoUtils.java: +92 строк - новые гео-утилиты
- NavigationUtils.java: +81/- строк - оптимизация навигации
- VesselPathTracker.java: +18/- строк - улучшение трекинга судов
- MapForgeImpl.java, YandexMapImpl.java: обновления карт

UI изменения:
- activity_main.xml: +65/- строк - обновление главного layout
- cursor.xml: +16/- строк - улучшение курсора
- targetlist.xml: +39 строк - обновление иконки списка целей

Общий объем: +1087/-328 строк
Подготовка к новой архитектуре UI и картографических компонентов
This commit is contained in:
2025-10-06 08:33:13 +03:00
parent 932ca5f05f
commit 982e940b8d
23 changed files with 1680 additions and 329 deletions
+57
View File
@@ -0,0 +1,57 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg id="_Слой_2" data-name="Слой_2" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 233.17 233.87">
<defs>
<style>
.cls-1 {
fill: #fff;
}
.cls-2 {
fill: none;
}
.cls-3 {
stroke: #000;
stroke-miterlimit: 10;
}
.cls-4 {
clip-path: url(#clippath);
}
</style>
<clipPath id="clippath">
<rect class="cls-2" width="233.17" height="233.87"/>
</clipPath>
</defs>
<g id="_Слой_17" data-name="Слой_17">
<g class="cls-4">
<g>
<rect class="cls-3" x=".5" y=".5" width="233" height="53" rx="26.2" ry="26.2"/>
<rect class="cls-3" x=".5" y="60.39" width="233" height="53" rx="26.2" ry="26.2"/>
<rect class="cls-3" x=".5" y="120.28" width="233" height="53" rx="26.2" ry="26.2"/>
<rect class="cls-3" x=".5" y="180.17" width="233" height="53" rx="26.2" ry="26.2"/>
</g>
</g>
<g>
<path class="cls-1" d="M89.21,29.73h.09l4.98-15.68h6.77v22.41h-5.12v-14.44l-.09-.02-4.86,14.45h-3.44l-4.77-14.24-.09.02v14.22h-5.12V14.05h6.71l4.93,15.68Z"/>
<path class="cls-1" d="M116.2,29.73h.09l4.98-15.68h6.77v22.41h-5.12v-14.44l-.09-.02-4.86,14.45h-3.44l-4.77-14.24-.09.02v14.22h-5.12V14.05h6.71l4.93,15.68Z"/>
<path class="cls-1" d="M142.92,30.52c0-.8-.26-1.41-.77-1.84s-1.45-.88-2.8-1.36c-2.73-.9-4.77-1.86-6.09-2.89-1.33-1.02-1.99-2.49-1.99-4.41s.77-3.4,2.32-4.56c1.54-1.16,3.51-1.74,5.89-1.74,2.51,0,4.54.6,6.07,1.79,1.53,1.2,2.28,2.88,2.23,5.06l-.03.09h-4.96c0-1.06-.28-1.82-.85-2.3-.57-.48-1.42-.72-2.56-.72-.93,0-1.66.23-2.19.69-.54.46-.8,1.03-.8,1.71s.27,1.18.83,1.58c.55.4,1.58.89,3.08,1.48,2.55.77,4.49,1.71,5.8,2.82,1.31,1.11,1.97,2.63,1.97,4.56s-.76,3.51-2.27,4.62-3.52,1.67-6.02,1.67-4.6-.6-6.33-1.79c-1.73-1.2-2.57-3.08-2.52-5.64l.03-.09h4.98c0,1.3.32,2.23.95,2.78.63.55,1.6.82,2.9.82,1.07,0,1.87-.22,2.39-.65.52-.43.79-1,.79-1.69Z"/>
<path class="cls-1" d="M156.24,36.46h-5.1V14.05h5.1v22.41Z"/>
</g>
<g>
<path class="cls-1" d="M104.15,87.67l.03.09c.04,2.51-.67,4.42-2.13,5.71-1.46,1.3-3.52,1.94-6.2,1.94s-4.91-.83-6.56-2.5c-1.65-1.67-2.48-3.84-2.48-6.54v-4.6c0-2.68.79-4.86,2.38-6.53,1.59-1.67,3.69-2.51,6.3-2.51,2.79,0,4.96.65,6.49,1.95,1.53,1.3,2.27,3.19,2.23,5.68l-.05.09h-4.98c0-1.35-.29-2.32-.86-2.91-.58-.58-1.52-.88-2.83-.88-1.15,0-2.03.46-2.65,1.39-.62.92-.92,2.15-.92,3.69v4.63c0,1.54.34,2.78,1.01,3.71.68.93,1.64,1.39,2.91,1.39,1.17,0,2.02-.29,2.54-.88.52-.58.78-1.56.78-2.94h4.98Z"/>
<path class="cls-1" d="M125.32,86.07c0,2.71-.86,4.95-2.58,6.71-1.72,1.76-3.97,2.64-6.74,2.64s-5.06-.88-6.8-2.64c-1.74-1.76-2.6-4-2.6-6.71v-3.97c0-2.7.87-4.94,2.6-6.71,1.73-1.77,3.99-2.65,6.77-2.65s5.02.88,6.75,2.65c1.74,1.77,2.6,4,2.6,6.71v3.97ZM120.22,82.07c0-1.57-.37-2.87-1.11-3.88-.74-1.01-1.79-1.51-3.14-1.51s-2.44.5-3.17,1.51c-.73,1-1.1,2.3-1.1,3.88v4c0,1.59.37,2.9,1.11,3.91.74,1.01,1.8,1.51,3.19,1.51s2.38-.5,3.12-1.51c.74-1.01,1.1-2.31,1.1-3.91v-4Z"/>
<path class="cls-1" d="M145.85,92.06c-.77.93-1.85,1.72-3.24,2.38-1.39.66-3.18.98-5.37.98-2.73,0-4.96-.84-6.66-2.51-1.71-1.67-2.56-3.85-2.56-6.52v-4.6c0-2.65.83-4.82,2.49-6.51,1.66-1.69,3.8-2.53,6.41-2.53,2.82,0,4.94.63,6.38,1.88,1.44,1.26,2.13,2.97,2.08,5.15l-.03.09h-4.8c0-1.08-.29-1.88-.86-2.41-.58-.52-1.44-.79-2.6-.79s-2.15.47-2.88,1.41-1.09,2.16-1.09,3.66v4.63c0,1.53.36,2.77,1.08,3.7.72.93,1.73,1.4,3.03,1.4.94,0,1.68-.08,2.22-.23.54-.15.97-.35,1.28-.61v-3.94h-3.91v-3.39h9.02v8.73Z"/>
</g>
<g>
<path class="cls-1" d="M98.85,151.26c0-.79-.26-1.39-.77-1.81-.51-.42-1.45-.87-2.8-1.34-2.73-.89-4.77-1.83-6.09-2.84-1.33-1-1.99-2.45-1.99-4.34s.77-3.34,2.32-4.48c1.54-1.14,3.51-1.71,5.89-1.71,2.51,0,4.54.59,6.07,1.76,1.53,1.18,2.28,2.83,2.23,4.97l-.03.09h-4.96c0-1.04-.28-1.79-.85-2.26-.57-.47-1.42-.7-2.56-.7-.93,0-1.66.23-2.19.68-.54.45-.8,1.01-.8,1.68s.27,1.16.83,1.55c.55.39,1.58.88,3.08,1.46,2.55.76,4.49,1.68,5.8,2.77,1.31,1.09,1.97,2.58,1.97,4.48s-.76,3.45-2.27,4.55c-1.51,1.09-3.52,1.64-6.02,1.64s-4.6-.59-6.33-1.76c-1.73-1.18-2.57-3.02-2.52-5.55l.03-.09h4.98c0,1.28.32,2.19.95,2.73.63.54,1.6.81,2.9.81,1.07,0,1.87-.21,2.39-.64.52-.42.79-.98.79-1.67Z"/>
<path class="cls-1" d="M125.07,148.07c0,2.71-.86,4.95-2.58,6.71-1.72,1.76-3.97,2.64-6.74,2.64s-5.06-.88-6.8-2.64c-1.74-1.76-2.6-4-2.6-6.71v-3.97c0-2.7.87-4.94,2.6-6.71,1.73-1.77,3.99-2.65,6.77-2.65s5.02.88,6.75,2.65c1.74,1.77,2.6,4,2.6,6.71v3.97ZM119.97,144.07c0-1.57-.37-2.87-1.11-3.88-.74-1.01-1.79-1.51-3.14-1.51s-2.44.5-3.17,1.51c-.73,1-1.1,2.3-1.1,3.88v4c0,1.59.37,2.9,1.11,3.91.74,1.01,1.8,1.51,3.19,1.51s2.38-.5,3.12-1.51c.74-1.01,1.1-2.31,1.1-3.91v-4Z"/>
<path class="cls-1" d="M145.59,154.06c-.77.93-1.85,1.72-3.24,2.38-1.39.66-3.18.98-5.37.98-2.73,0-4.96-.84-6.66-2.51-1.71-1.67-2.56-3.85-2.56-6.52v-4.6c0-2.65.83-4.82,2.49-6.51,1.66-1.69,3.8-2.53,6.41-2.53,2.82,0,4.94.63,6.38,1.88,1.44,1.26,2.13,2.97,2.08,5.15l-.03.09h-4.8c0-1.08-.29-1.88-.86-2.41-.58-.52-1.44-.79-2.6-.79s-2.15.47-2.88,1.41-1.09,2.16-1.09,3.66v4.63c0,1.53.36,2.77,1.08,3.7.72.93,1.73,1.4,3.03,1.4.94,0,1.68-.08,2.22-.23.54-.15.97-.35,1.28-.61v-3.94h-3.91v-3.39h9.02v8.73Z"/>
</g>
<g>
<path class="cls-1" d="M104.08,208.1h-5.1v-4.3h5.1v4.3Z"/>
<path class="cls-1" d="M113.45,208.1h-5.1v-4.3h5.1v4.3Z"/>
<path class="cls-1" d="M122.82,208.1h-5.1v-4.3h5.1v4.3Z"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 5.3 KiB