Page Menu
Home
Phabricator
Search
Configure Global Search
Log In
Files
F82466192
NotificationLegacyArchitecture.svg
MacMartin77 (Uwe Martin)
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Authored By
MacMartin77
May 18 2026, 8:20 PM
2026-05-18 20:20:44 (UTC+0)
Size
9 KB
Referenced Files
None
Subscribers
None
NotificationLegacyArchitecture.svg
View Options
<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->NotificationViewModel -->
<g id="edge1" class="edge">
<title>NotificationActivity->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->NotificationActivity -->
<g id="edge6" class="edge">
<title>NotificationPresenter->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->NotificationRepository -->
<g id="edge2" class="edge">
<title>NotificationViewModel->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->NotificationDao -->
<g id="edge3" class="edge">
<title>NotificationRepository->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->MediaWikiApi -->
<g id="edge4" class="edge">
<title>NotificationRepository->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->NotificationModel -->
<g id="edge5" class="edge">
<title>NotificationDao->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
Details
Attached
Mime Type
image/svg
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
26219126
Default Alt Text
NotificationLegacyArchitecture.svg (9 KB)
Attached To
Mode
T403106: [Spike] Investigate RemoteMediator for Notifications
Attached
Detach File
Event Timeline
Log In to Comment