Page MenuHomePhabricator

NotificationLegacyArchitecture.svg

Authored By
MacMartin77
May 18 2026, 8:20 PM
Size
9 KB
Referenced Files
None
Subscribers
None

NotificationLegacyArchitecture.svg

<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="330pt" height="649pt" viewBox="0.00 0.00 330.00 649.00">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 645.2)">
<title>WikipediaNotificationArchitecture</title>
<polygon fill="white" stroke="none" points="-4,4 -4,-645.2 326,-645.2 326,4 -4,4"/>
<g id="clust1" class="cluster">
<title>cluster_ui</title>
<polygon fill="none" stroke="blue" stroke-dasharray="5,2" points="8,-456.4 8,-633.2 208,-633.2 208,-456.4 8,-456.4"/>
<text xml:space="preserve" text-anchor="middle" x="108" y="-616.6" font-family="Arial bold" font-size="14.00">UI Layer</text>
</g>
<g id="clust2" class="cluster">
<title>cluster_logic</title>
<polygon fill="none" stroke="green" stroke-dasharray="5,2" points="16,-339.2 16,-421.6 200,-421.6 200,-339.2 16,-339.2"/>
<text xml:space="preserve" text-anchor="middle" x="108" y="-405" font-family="Arial bold" font-size="14.00">Logic Layer</text>
</g>
<g id="clust3" class="cluster">
<title>cluster_data</title>
<polygon fill="none" stroke="orange" stroke-dasharray="5,2" points="16,-8 16,-304.4 314,-304.4 314,-8 16,-8"/>
<text xml:space="preserve" text-anchor="middle" x="165" y="-287.8" font-family="Arial bold" font-size="14.00">Data Layer</text>
</g>
<g id="clust4" class="cluster">
<title>cluster_local</title>
<polygon fill="none" stroke="orange" stroke-dasharray="5,2" points="24,-16 24,-184.4 164,-184.4 164,-16 24,-16"/>
<text xml:space="preserve" text-anchor="middle" x="94" y="-167.8" font-family="Arial bold" font-size="14.00">Local (Room)</text>
</g>
<g id="clust5" class="cluster">
<title>cluster_remote</title>
<polygon fill="none" stroke="orange" stroke-dasharray="5,2" points="172,-104.8 172,-187.2 306,-187.2 306,-104.8 172,-104.8"/>
<text xml:space="preserve" text-anchor="middle" x="239" y="-170.6" font-family="Arial bold" font-size="14.00">Remote (Retrofit)</text>
</g>
<!-- NotificationActivity -->
<g id="node1" class="node">
<title>NotificationActivity</title>
<path fill="#e3f2fd" stroke="black" d="M188.03,-506C188.03,-506 27.97,-506 27.97,-506 21.97,-506 15.97,-500 15.97,-494 15.97,-494 15.97,-476.4 15.97,-476.4 15.97,-470.4 21.97,-464.4 27.97,-464.4 27.97,-464.4 188.03,-464.4 188.03,-464.4 194.03,-464.4 200.03,-470.4 200.03,-476.4 200.03,-476.4 200.03,-494 200.03,-494 200.03,-500 194.03,-506 188.03,-506"/>
<text xml:space="preserve" text-anchor="middle" x="108" y="-489.4" font-family="Arial" font-size="14.00">NotificationActivity</text>
<text xml:space="preserve" text-anchor="middle" x="108" y="-472.6" font-family="Arial" font-size="14.00">(RecyclerView, TabLayout)</text>
</g>
<!-- NotificationViewModel -->
<g id="node3" class="node">
<title>NotificationViewModel</title>
<path fill="#e8f5e9" stroke="black" d="M179.86,-388.8C179.86,-388.8 36.14,-388.8 36.14,-388.8 30.14,-388.8 24.14,-382.8 24.14,-376.8 24.14,-376.8 24.14,-359.2 24.14,-359.2 24.14,-353.2 30.14,-347.2 36.14,-347.2 36.14,-347.2 179.86,-347.2 179.86,-347.2 185.86,-347.2 191.86,-353.2 191.86,-359.2 191.86,-359.2 191.86,-376.8 191.86,-376.8 191.86,-382.8 185.86,-388.8 179.86,-388.8"/>
<text xml:space="preserve" text-anchor="middle" x="108" y="-372.2" font-family="Arial" font-size="14.00">NotificationViewModel</text>
<text xml:space="preserve" text-anchor="middle" x="108" y="-355.4" font-family="Arial" font-size="14.00">(State, Filtering, Sorting)</text>
</g>
<!-- NotificationActivity&#45;&gt;NotificationViewModel -->
<g id="edge1" class="edge">
<title>NotificationActivity-&gt;NotificationViewModel</title>
<path fill="none" stroke="black" d="M108,-464.13C108,-446.65 108,-420.99 108,-400.72"/>
<polygon fill="black" stroke="black" points="111.5,-400.74 108,-390.74 104.5,-400.74 111.5,-400.74"/>
<text xml:space="preserve" text-anchor="middle" x="160.14" y="-433.8" font-family="Arial" font-size="14.00">observes uiState</text>
</g>
<!-- NotificationPresenter -->
<g id="node2" class="node">
<title>NotificationPresenter</title>
<path fill="#e3f2fd" stroke="black" d="M172.07,-600.4C172.07,-600.4 43.93,-600.4 43.93,-600.4 37.93,-600.4 31.93,-594.4 31.93,-588.4 31.93,-588.4 31.93,-570.8 31.93,-570.8 31.93,-564.8 37.93,-558.8 43.93,-558.8 43.93,-558.8 172.07,-558.8 172.07,-558.8 178.07,-558.8 184.07,-564.8 184.07,-570.8 184.07,-570.8 184.07,-588.4 184.07,-588.4 184.07,-594.4 178.07,-600.4 172.07,-600.4"/>
<text xml:space="preserve" text-anchor="middle" x="108" y="-583.8" font-family="Arial" font-size="14.00">NotificationPresenter</text>
<text xml:space="preserve" text-anchor="middle" x="108" y="-567" font-family="Arial" font-size="14.00">(System Notifications)</text>
</g>
<!-- NotificationPresenter&#45;&gt;NotificationActivity -->
<g id="edge6" class="edge">
<title>NotificationPresenter-&gt;NotificationActivity</title>
<path fill="none" stroke="black" d="M108,-558.55C108,-546.56 108,-531.07 108,-517.5"/>
<polygon fill="black" stroke="black" points="111.5,-517.72 108,-507.72 104.5,-517.72 111.5,-517.72"/>
<text xml:space="preserve" text-anchor="middle" x="136.02" y="-528.2" font-family="Arial" font-size="14.00">launches</text>
</g>
<!-- NotificationRepository -->
<g id="node4" class="node">
<title>NotificationRepository</title>
<path fill="#fff3e0" stroke="black" d="M172.09,-271.6C172.09,-271.6 43.91,-271.6 43.91,-271.6 37.91,-271.6 31.91,-265.6 31.91,-259.6 31.91,-259.6 31.91,-242 31.91,-242 31.91,-236 37.91,-230 43.91,-230 43.91,-230 172.09,-230 172.09,-230 178.09,-230 184.09,-236 184.09,-242 184.09,-242 184.09,-259.6 184.09,-259.6 184.09,-265.6 178.09,-271.6 172.09,-271.6"/>
<text xml:space="preserve" text-anchor="middle" x="108" y="-255" font-family="Arial" font-size="14.00">NotificationRepository</text>
<text xml:space="preserve" text-anchor="middle" x="108" y="-238.2" font-family="Arial" font-size="14.00">(Data Orchestrator)</text>
</g>
<!-- NotificationViewModel&#45;&gt;NotificationRepository -->
<g id="edge2" class="edge">
<title>NotificationViewModel-&gt;NotificationRepository</title>
<path fill="none" stroke="black" d="M108,-346.93C108,-329.45 108,-303.79 108,-283.52"/>
<polygon fill="black" stroke="black" points="111.5,-283.54 108,-273.54 104.5,-283.54 111.5,-283.54"/>
<text xml:space="preserve" text-anchor="middle" x="167.53" y="-316.6" font-family="Arial" font-size="14.00">calls fetchAndSave</text>
</g>
<!-- NotificationDao -->
<g id="node5" class="node">
<title>NotificationDao</title>
<path fill="#ffe0b2" stroke="black" d="M142.47,-151.6C142.47,-151.6 55.53,-151.6 55.53,-151.6 49.53,-151.6 43.53,-145.6 43.53,-139.6 43.53,-139.6 43.53,-127.6 43.53,-127.6 43.53,-121.6 49.53,-115.6 55.53,-115.6 55.53,-115.6 142.47,-115.6 142.47,-115.6 148.47,-115.6 154.47,-121.6 154.47,-127.6 154.47,-127.6 154.47,-139.6 154.47,-139.6 154.47,-145.6 148.47,-151.6 142.47,-151.6"/>
<text xml:space="preserve" text-anchor="middle" x="99" y="-129.4" font-family="Arial" font-size="14.00">NotificationDao</text>
</g>
<!-- NotificationRepository&#45;&gt;NotificationDao -->
<g id="edge3" class="edge">
<title>NotificationRepository-&gt;NotificationDao</title>
<path fill="none" stroke="black" d="M106.43,-229.73C104.99,-211.3 102.84,-183.79 101.23,-163.09"/>
<polygon fill="black" stroke="black" points="104.73,-163.01 100.46,-153.32 97.75,-163.56 104.73,-163.01"/>
<text xml:space="preserve" text-anchor="middle" x="142.57" y="-199.4" font-family="Arial" font-size="14.00">saves/reads</text>
</g>
<!-- MediaWikiApi -->
<g id="node7" class="node">
<title>MediaWikiApi</title>
<path fill="#ffe0b2" stroke="black" d="M286.34,-154.4C286.34,-154.4 191.66,-154.4 191.66,-154.4 185.66,-154.4 179.66,-148.4 179.66,-142.4 179.66,-142.4 179.66,-124.8 179.66,-124.8 179.66,-118.8 185.66,-112.8 191.66,-112.8 191.66,-112.8 286.34,-112.8 286.34,-112.8 292.34,-112.8 298.34,-118.8 298.34,-124.8 298.34,-124.8 298.34,-142.4 298.34,-142.4 298.34,-148.4 292.34,-154.4 286.34,-154.4"/>
<text xml:space="preserve" text-anchor="middle" x="239" y="-137.8" font-family="Arial" font-size="14.00">MediaWiki API</text>
<text xml:space="preserve" text-anchor="middle" x="239" y="-121" font-family="Arial" font-size="14.00">(ServiceFactory)</text>
</g>
<!-- NotificationRepository&#45;&gt;MediaWikiApi -->
<g id="edge4" class="edge">
<title>NotificationRepository-&gt;MediaWikiApi</title>
<path fill="none" stroke="black" d="M157.64,-229.55C166.92,-224.57 176.16,-218.7 184,-212 199.52,-198.73 212.9,-180.18 222.57,-164.57"/>
<polygon fill="black" stroke="black" points="225.5,-166.5 227.61,-156.12 219.48,-162.92 225.5,-166.5"/>
<text xml:space="preserve" text-anchor="middle" x="243.53" y="-199.4" font-family="Arial" font-size="14.00">fetches JSON</text>
</g>
<!-- NotificationModel -->
<g id="node6" class="node">
<title>NotificationModel</title>
<polygon fill="#ffe0b2" stroke="black" points="150.08,-60 31.92,-60 31.92,-24 156.08,-24 156.08,-54 150.08,-60"/>
<polyline fill="none" stroke="black" points="150.08,-60 150.08,-54"/>
<polyline fill="none" stroke="black" points="156.08,-54 150.08,-54"/>
<text xml:space="preserve" text-anchor="middle" x="94" y="-37.8" font-family="Arial" font-size="14.00">Notification Entity</text>
</g>
<!-- NotificationDao&#45;&gt;NotificationModel -->
<g id="edge5" class="edge">
<title>NotificationDao-&gt;NotificationModel</title>
<path fill="none" stroke="black" d="M98.04,-115.32C97.34,-102.93 96.4,-85.94 95.59,-71.55"/>
<polygon fill="black" stroke="black" points="99.1,-71.52 95.05,-61.73 92.11,-71.91 99.1,-71.52"/>
<text xml:space="preserve" text-anchor="middle" x="113.92" y="-82.2" font-family="Arial" font-size="14.00">maps</text>
</g>
</g>
</svg>

File Metadata

Mime Type
image/svg
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
26219126
Default Alt Text
NotificationLegacyArchitecture.svg (9 KB)

Event Timeline