Added the version footer back to the settings screen

This commit is contained in:
Morgan Pretty 2022-10-10 10:17:07 +11:00
parent fc0ac730d0
commit 0af00feed9
11 changed files with 268 additions and 524 deletions

View File

@ -637,6 +637,7 @@
FD37EA1528AB42CB003AE748 /* IdentitySpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = FD37EA1428AB42CB003AE748 /* IdentitySpec.swift */; };
FD37EA1728AC5605003AE748 /* NotificationContentViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = FD37EA1628AC5605003AE748 /* NotificationContentViewModel.swift */; };
FD37EA1928AC5CCA003AE748 /* NotificationSoundViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = FD37EA1828AC5CCA003AE748 /* NotificationSoundViewModel.swift */; };
FD39352C28F382920084DADA /* VersionFooterView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FD39352B28F382920084DADA /* VersionFooterView.swift */; };
FD3AABE928306BBD00E5099A /* ThreadPickerViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = FD3AABE828306BBD00E5099A /* ThreadPickerViewModel.swift */; };
FD3C905C27E3FBEF00CD579F /* BatchRequestInfoSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = FD3C905B27E3FBEF00CD579F /* BatchRequestInfoSpec.swift */; };
FD3C906027E410F700CD579F /* FileUploadResponseSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = FD3C905F27E410F700CD579F /* FileUploadResponseSpec.swift */; };
@ -1723,6 +1724,7 @@
FD37EA1628AC5605003AE748 /* NotificationContentViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationContentViewModel.swift; sourceTree = "<group>"; };
FD37EA1828AC5CCA003AE748 /* NotificationSoundViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationSoundViewModel.swift; sourceTree = "<group>"; };
FD37EA1A28ACB51F003AE748 /* _007_HomeQueryOptimisationIndexes.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = _007_HomeQueryOptimisationIndexes.swift; sourceTree = "<group>"; };
FD39352B28F382920084DADA /* VersionFooterView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VersionFooterView.swift; sourceTree = "<group>"; };
FD3AABE828306BBD00E5099A /* ThreadPickerViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThreadPickerViewModel.swift; sourceTree = "<group>"; };
FD3C905B27E3FBEF00CD579F /* BatchRequestInfoSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BatchRequestInfoSpec.swift; sourceTree = "<group>"; };
FD3C905F27E410F700CD579F /* FileUploadResponseSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FileUploadResponseSpec.swift; sourceTree = "<group>"; };
@ -3680,6 +3682,7 @@
FD37E9DA28A244E9003AE748 /* ThemePreviewView.swift */,
FD37E9DC28A384EB003AE748 /* PrimaryColorSelectionView.swift */,
FD87DCFF28B820F200AF0F98 /* BlockedContactCell.swift */,
FD39352B28F382920084DADA /* VersionFooterView.swift */,
);
path = Views;
sourceTree = "<group>";
@ -5723,6 +5726,7 @@
B8BB82A5238F627000BA5194 /* HomeVC.swift in Sources */,
4521C3C01F59F3BA00B4C582 /* TextFieldHelper.swift in Sources */,
FD37E9D128A1F2EB003AE748 /* ThemeSelectionView.swift in Sources */,
FD39352C28F382920084DADA /* VersionFooterView.swift in Sources */,
7B9F71D22852EEE2006DFE7B /* Emoji+SkinTones.swift in Sources */,
7B7CB18E270D066F0079FF93 /* IncomingCallBanner.swift in Sources */,
B8569AE325CBB19A00DBA3DB /* DocumentView.swift in Sources */,

View File

@ -1,12 +0,0 @@
{
"images" : [
{
"filename" : "OxenDarkMode.pdf",
"idiom" : "universal"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

View File

@ -1,255 +0,0 @@
%PDF-1.7
1 0 obj
<< /BBox [ 0.000000 0.000000 240.000000 51.360962 ]
/Resources << /ExtGState << /E5 << /ca 0.200000 >>
/E4 << /ca 0.200000 >>
/E2 << /ca 0.200000 >>
/E3 << /ca 0.200000 >>
/E1 << /ca 0.200000 >>
>> >>
/Subtype /Form
/Length 2 0 R
/Group << /Type /Group
/S /Transparency
>>
/Type /XObject
>>
stream
/DeviceRGB CS
/DeviceRGB cs
q
/E1 gs
1.000000 0.000000 -0.000000 1.000000 108.841553 10.979065 cm
1.000000 1.000000 1.000000 scn
32.812042 28.275440 m
22.420897 19.323082 l
12.029750 28.275440 l
11.192389 28.997400 10.123534 29.394531 9.017912 29.394485 c
0.000000 29.394485 l
17.054268 14.696630 l
0.000000 0.000370 l
9.029103 0.000370 l
10.134726 0.000324 11.203571 0.397455 12.040932 1.119415 c
22.432077 10.071775 l
32.823223 1.119415 l
33.660439 0.397205 34.729389 0.000040 35.835060 0.000370 c
44.864166 0.000370 l
27.797106 14.696630 l
44.851383 29.394485 l
35.823872 29.394485 l
34.718323 29.394106 33.649624 28.997028 32.812042 28.275440 c
32.812042 28.275440 l
h
f
n
Q
q
/E2 gs
1.000000 0.000000 -0.000000 1.000000 199.942993 10.976227 cm
1.000000 1.000000 1.000000 scn
40.057026 29.397312 m
33.182892 29.397312 l
33.182892 8.867632 l
7.750183 28.439730 l
6.943708 29.060896 5.954552 29.398109 4.936588 29.398911 c
0.000000 29.398911 l
0.000000 0.003195 l
6.874134 0.003195 l
6.874134 20.531277 l
32.311626 0.959181 l
33.117435 0.337919 34.106144 0.000673 35.123638 0.000000 c
40.060226 0.000000 l
40.057026 29.397312 l
h
f
n
Q
q
/E3 gs
1.000000 0.000000 -0.000000 1.000000 155.348999 10.979431 cm
1.000000 1.000000 1.000000 scn
38.405624 23.135462 m
38.405624 29.394119 l
5.523335 29.394119 l
1.962682 25.325916 0.000000 20.103409 0.000000 14.697064 c
0.000000 9.290720 1.962682 4.068211 5.523335 0.000008 c
38.405624 0.000008 l
38.405624 6.257065 l
8.930022 6.257065 l
8.055604 7.914711 7.475747 9.711639 7.216292 11.567734 c
36.039639 11.567734 l
36.039639 18.133331 l
7.264249 18.133331 l
7.541420 19.880562 8.103621 21.570423 8.928422 23.135462 c
38.405624 23.135462 l
h
f
n
Q
q
/E4 gs
1.000000 0.000000 -0.000000 1.000000 66.081238 10.979431 cm
1.000000 1.000000 1.000000 scn
41.735550 14.696264 m
41.735550 23.546310 36.300194 29.390923 36.300194 29.394119 c
5.435357 29.394119 l
5.435357 29.394119 0.000000 23.549509 0.000000 14.696264 c
0.000000 5.843019 5.435357 0.000008 5.435357 0.000008 c
36.298592 0.000008 l
36.298592 0.000008 41.735550 5.851013 41.735550 14.696264 c
h
8.993918 6.300230 m
7.597548 8.877283 6.866234 11.762016 6.866234 14.693067 c
6.866234 17.624117 7.597548 20.508850 8.993918 23.085903 c
32.741631 23.085903 l
34.137024 20.508537 34.867783 17.623926 34.867783 14.693067 c
34.867783 11.762207 34.137024 8.877596 32.741631 6.300230 c
8.993918 6.300230 l
h
f
n
Q
q
/E5 gs
1.000000 0.000000 -0.000000 1.000000 -0.000061 -0.497452 cm
1.000000 1.000000 1.000000 scn
25.680496 51.858414 m
20.601377 51.858414 15.636316 50.352280 11.413182 47.530472 c
7.190049 44.708664 3.898517 40.697922 1.954822 36.005424 c
0.011127 31.312931 -0.497432 26.149443 0.493455 21.167917 c
1.484342 16.186394 3.930171 11.610565 7.521651 8.019085 c
11.113132 4.427605 15.688956 1.981777 20.670483 0.990891 c
25.652010 0.000004 30.815498 0.508564 35.507996 2.452259 c
40.200489 4.395954 44.211227 7.687489 47.033035 11.910622 c
49.854843 16.133755 51.360981 21.098812 51.360981 26.177931 c
51.360981 32.988819 48.655365 39.520752 43.839340 44.336777 c
39.023315 49.152798 32.491386 51.858414 25.680496 51.858414 c
25.680496 51.858414 l
h
10.813183 13.361671 m
25.680496 26.177931 l
40.547810 13.361671 l
10.813183 13.361671 l
h
25.680496 26.177931 m
10.813183 38.994194 l
40.547810 38.994194 l
25.680496 26.177931 l
h
f
n
Q
endstream
endobj
2 0 obj
3339
endobj
3 0 obj
<< /BBox [ 0.000000 0.000000 240.000000 51.360962 ]
/Resources << >>
/Subtype /Form
/Length 4 0 R
/Group << /Type /Group
/S /Transparency
>>
/Type /XObject
>>
stream
/DeviceRGB CS
/DeviceRGB cs
q
1.000000 0.000000 -0.000000 1.000000 0.000000 0.000000 cm
0.000000 0.000000 0.000000 scn
0.000000 51.360962 m
240.000000 51.360962 l
240.000000 -0.000008 l
0.000000 -0.000008 l
0.000000 51.360962 l
h
f
n
Q
endstream
endobj
4 0 obj
236
endobj
5 0 obj
<< /XObject << /X1 1 0 R >>
/ExtGState << /E1 << /SMask << /Type /Mask
/G 3 0 R
/S /Alpha
>>
/Type /ExtGState
>> >>
>>
endobj
6 0 obj
<< /Length 7 0 R >>
stream
/DeviceRGB CS
/DeviceRGB cs
q
/E1 gs
/X1 Do
Q
endstream
endobj
7 0 obj
46
endobj
8 0 obj
<< /Annots []
/Type /Page
/MediaBox [ 0.000000 0.000000 240.000000 51.360962 ]
/Resources 5 0 R
/Contents 6 0 R
/Parent 9 0 R
>>
endobj
9 0 obj
<< /Kids [ 8 0 R ]
/Count 1
/Type /Pages
>>
endobj
10 0 obj
<< /Type /Catalog
/Pages 9 0 R
>>
endobj
xref
0 11
0000000000 65535 f
0000000010 00000 n
0000003892 00000 n
0000003915 00000 n
0000004400 00000 n
0000004422 00000 n
0000004720 00000 n
0000004822 00000 n
0000004843 00000 n
0000005017 00000 n
0000005091 00000 n
trailer
<< /ID [ (some) (id) ]
/Root 10 0 R
/Size 11
>>
startxref
5151
%%EOF

View File

@ -1,255 +0,0 @@
%PDF-1.7
1 0 obj
<< /BBox [ 0.000000 0.000000 240.000000 51.360962 ]
/Resources << /ExtGState << /E5 << /ca 0.200000 >>
/E4 << /ca 0.200000 >>
/E2 << /ca 0.200000 >>
/E3 << /ca 0.200000 >>
/E1 << /ca 0.200000 >>
>> >>
/Subtype /Form
/Length 2 0 R
/Group << /Type /Group
/S /Transparency
>>
/Type /XObject
>>
stream
/DeviceRGB CS
/DeviceRGB cs
q
/E1 gs
1.000000 0.000000 -0.000000 1.000000 108.841553 10.979065 cm
0.000000 0.000000 0.000000 scn
32.812042 28.275440 m
22.420897 19.323082 l
12.029750 28.275440 l
11.192389 28.997400 10.123534 29.394531 9.017912 29.394485 c
0.000000 29.394485 l
17.054268 14.696630 l
0.000000 0.000370 l
9.029103 0.000370 l
10.134726 0.000324 11.203571 0.397455 12.040932 1.119415 c
22.432077 10.071775 l
32.823223 1.119415 l
33.660439 0.397205 34.729389 0.000040 35.835060 0.000370 c
44.864166 0.000370 l
27.797106 14.696630 l
44.851383 29.394485 l
35.823872 29.394485 l
34.718323 29.394106 33.649624 28.997028 32.812042 28.275440 c
32.812042 28.275440 l
h
f
n
Q
q
/E2 gs
1.000000 0.000000 -0.000000 1.000000 199.942993 10.976227 cm
0.000000 0.000000 0.000000 scn
40.057026 29.397312 m
33.182892 29.397312 l
33.182892 8.867632 l
7.750183 28.439730 l
6.943708 29.060896 5.954552 29.398109 4.936588 29.398911 c
0.000000 29.398911 l
0.000000 0.003195 l
6.874134 0.003195 l
6.874134 20.531277 l
32.311626 0.959181 l
33.117435 0.337919 34.106144 0.000673 35.123638 0.000000 c
40.060226 0.000000 l
40.057026 29.397312 l
h
f
n
Q
q
/E3 gs
1.000000 0.000000 -0.000000 1.000000 155.348999 10.979431 cm
0.000000 0.000000 0.000000 scn
38.405624 23.135462 m
38.405624 29.394119 l
5.523335 29.394119 l
1.962682 25.325916 0.000000 20.103409 0.000000 14.697064 c
0.000000 9.290720 1.962682 4.068211 5.523335 0.000008 c
38.405624 0.000008 l
38.405624 6.257065 l
8.930022 6.257065 l
8.055604 7.914711 7.475747 9.711639 7.216292 11.567734 c
36.039639 11.567734 l
36.039639 18.133331 l
7.264249 18.133331 l
7.541420 19.880562 8.103621 21.570423 8.928422 23.135462 c
38.405624 23.135462 l
h
f
n
Q
q
/E4 gs
1.000000 0.000000 -0.000000 1.000000 66.081238 10.979431 cm
0.000000 0.000000 0.000000 scn
41.735550 14.696264 m
41.735550 23.546310 36.300194 29.390923 36.300194 29.394119 c
5.435357 29.394119 l
5.435357 29.394119 0.000000 23.549509 0.000000 14.696264 c
0.000000 5.843019 5.435357 0.000008 5.435357 0.000008 c
36.298592 0.000008 l
36.298592 0.000008 41.735550 5.851013 41.735550 14.696264 c
h
8.993918 6.300230 m
7.597548 8.877283 6.866234 11.762016 6.866234 14.693067 c
6.866234 17.624117 7.597548 20.508850 8.993918 23.085903 c
32.741631 23.085903 l
34.137024 20.508537 34.867783 17.623926 34.867783 14.693067 c
34.867783 11.762207 34.137024 8.877596 32.741631 6.300230 c
8.993918 6.300230 l
h
f
n
Q
q
/E5 gs
1.000000 0.000000 -0.000000 1.000000 -0.000061 -0.497452 cm
0.000000 0.000000 0.000000 scn
25.680496 51.858414 m
20.601377 51.858414 15.636316 50.352280 11.413182 47.530472 c
7.190049 44.708664 3.898517 40.697922 1.954822 36.005424 c
0.011127 31.312931 -0.497432 26.149443 0.493455 21.167917 c
1.484342 16.186394 3.930171 11.610565 7.521651 8.019085 c
11.113132 4.427605 15.688956 1.981777 20.670483 0.990891 c
25.652010 0.000004 30.815498 0.508564 35.507996 2.452259 c
40.200489 4.395954 44.211227 7.687489 47.033035 11.910622 c
49.854843 16.133755 51.360981 21.098812 51.360981 26.177931 c
51.360981 32.988819 48.655365 39.520752 43.839340 44.336777 c
39.023315 49.152798 32.491386 51.858414 25.680496 51.858414 c
25.680496 51.858414 l
h
10.813183 13.361671 m
25.680496 26.177931 l
40.547810 13.361671 l
10.813183 13.361671 l
h
25.680496 26.177931 m
10.813183 38.994194 l
40.547810 38.994194 l
25.680496 26.177931 l
h
f
n
Q
endstream
endobj
2 0 obj
3339
endobj
3 0 obj
<< /BBox [ 0.000000 0.000000 240.000000 51.360962 ]
/Resources << >>
/Subtype /Form
/Length 4 0 R
/Group << /Type /Group
/S /Transparency
>>
/Type /XObject
>>
stream
/DeviceRGB CS
/DeviceRGB cs
q
1.000000 0.000000 -0.000000 1.000000 0.000000 0.000000 cm
0.000000 0.000000 0.000000 scn
0.000000 51.360962 m
240.000000 51.360962 l
240.000000 -0.000008 l
0.000000 -0.000008 l
0.000000 51.360962 l
h
f
n
Q
endstream
endobj
4 0 obj
236
endobj
5 0 obj
<< /XObject << /X1 1 0 R >>
/ExtGState << /E1 << /SMask << /Type /Mask
/G 3 0 R
/S /Alpha
>>
/Type /ExtGState
>> >>
>>
endobj
6 0 obj
<< /Length 7 0 R >>
stream
/DeviceRGB CS
/DeviceRGB cs
q
/E1 gs
/X1 Do
Q
endstream
endobj
7 0 obj
46
endobj
8 0 obj
<< /Annots []
/Type /Page
/MediaBox [ 0.000000 0.000000 240.000000 51.360962 ]
/Resources 5 0 R
/Contents 6 0 R
/Parent 9 0 R
>>
endobj
9 0 obj
<< /Kids [ 8 0 R ]
/Count 1
/Type /Pages
>>
endobj
10 0 obj
<< /Type /Catalog
/Pages 9 0 R
>>
endobj
xref
0 11
0000000000 65535 f
0000000010 00000 n
0000003892 00000 n
0000003915 00000 n
0000004400 00000 n
0000004422 00000 n
0000004720 00000 n
0000004822 00000 n
0000004843 00000 n
0000005017 00000 n
0000005091 00000 n
trailer
<< /ID [ (some) (id) ]
/Root 10 0 R
/Size 11
>>
startxref
5151
%%EOF

View File

@ -1,7 +1,7 @@
{
"images" : [
{
"filename" : "Oxen.pdf",
"filename" : "oxen_logo.pdf",
"idiom" : "universal"
}
],

View File

@ -0,0 +1,170 @@
%PDF-1.7
1 0 obj
<< >>
endobj
2 0 obj
<< /Length 3 0 R >>
stream
/DeviceRGB CS
/DeviceRGB cs
q
1.000000 0.000000 -0.000000 1.000000 68.757446 6.848053 cm
0.000000 0.000000 0.000000 scn
20.723152 17.666330 m
14.165192 12.071299 l
7.607230 17.666330 l
7.077546 18.116507 6.402029 18.363695 5.703564 18.362926 c
0.000000 18.362926 l
10.770042 9.181149 l
0.000000 0.006784 l
5.703564 0.006784 l
6.402029 0.006016 7.077546 0.253210 7.607230 0.703386 c
14.165192 6.291005 l
20.723152 0.703386 l
21.252836 0.253210 21.928377 0.006016 22.626841 0.006784 c
28.330383 0.006784 l
17.560341 9.181149 l
28.330383 18.362926 l
22.649324 18.362926 l
21.943132 18.369059 21.258690 18.121534 20.723152 17.666330 c
20.723152 17.666330 l
h
f
n
Q
q
1.000000 0.000000 -0.000000 1.000000 126.302612 6.851898 cm
0.000000 0.000000 0.000000 scn
25.302498 18.359089 m
20.962996 18.359089 l
20.962996 5.538692 l
4.894113 17.758829 l
4.386510 18.149582 3.761144 18.360914 3.117845 18.359089 c
0.000000 18.359089 l
0.000000 0.002945 l
4.339504 0.002945 l
4.339504 12.823348 l
20.408386 0.595798 l
20.918318 0.210209 21.542700 0.001812 22.184654 0.002945 c
25.302498 0.002945 l
25.302498 18.359089 l
h
f
n
Q
q
1.000000 0.000000 -0.000000 1.000000 98.137451 6.854858 cm
0.000000 0.000000 0.000000 scn
24.260315 14.450737 m
24.260315 18.356140 l
3.484694 18.356140 l
1.238118 15.814546 0.000000 12.553582 0.000000 9.178071 c
0.000000 5.802560 1.238118 2.541591 3.484694 -0.000004 c
24.260315 -0.000004 l
24.260315 3.905399 l
5.635702 3.905399 l
5.084146 4.941875 4.718959 6.065246 4.556447 7.225367 c
22.761353 7.225367 l
22.761353 11.323448 l
4.586432 11.323448 l
4.759253 12.415989 5.113800 13.472705 5.635702 14.450737 c
24.260315 14.450737 l
h
f
n
Q
q
1.000000 0.000000 -0.000000 1.000000 41.745117 6.854858 cm
0.000000 0.000000 0.000000 scn
26.360207 9.174362 m
26.324944 12.535480 25.111788 15.780468 22.927568 18.356140 c
3.441054 18.356140 l
1.220836 15.802144 0.000000 12.545883 0.000000 9.178071 c
-0.000000 5.810259 1.220836 2.553992 3.441054 -0.000004 c
22.927568 -0.000004 l
25.112890 2.572141 26.326317 5.815230 26.360207 9.174362 c
26.360207 9.174362 l
h
5.682019 3.935042 m
4.796456 5.543876 4.332504 7.346392 4.332504 9.178071 c
4.332504 11.009750 4.796456 12.812261 5.682019 14.421094 c
20.671646 14.421094 l
21.557209 12.812261 22.021160 11.009750 22.021160 9.178071 c
22.021160 7.346392 21.557209 5.543876 20.671646 3.935042 c
5.682019 3.935042 l
h
f
n
Q
q
1.000000 0.000000 -0.000000 1.000000 0.000000 0.000000 cm
0.000000 0.000000 0.000000 scn
32.437550 16.036627 m
32.437550 7.179848 25.176157 0.000008 16.218775 0.000008 c
7.261393 0.000008 0.000000 7.179848 0.000000 16.036627 c
0.000000 24.893406 7.261393 32.073242 16.218775 32.073242 c
25.176157 32.073242 32.437550 24.893406 32.437550 16.036627 c
h
16.218761 16.036613 m
6.827759 24.040100 l
25.617256 24.040100 l
16.218761 16.036613 l
h
16.218761 16.036613 m
25.617256 8.033129 l
6.827759 8.033129 l
16.218761 16.036613 l
h
f*
n
Q
endstream
endobj
3 0 obj
2913
endobj
4 0 obj
<< /Annots []
/Type /Page
/MediaBox [ 0.000000 0.000000 151.605103 32.073242 ]
/Resources 1 0 R
/Contents 2 0 R
/Parent 5 0 R
>>
endobj
5 0 obj
<< /Kids [ 4 0 R ]
/Count 1
/Type /Pages
>>
endobj
6 0 obj
<< /Pages 5 0 R
/Type /Catalog
>>
endobj
xref
0 7
0000000000 65535 f
0000000010 00000 n
0000000034 00000 n
0000003003 00000 n
0000003026 00000 n
0000003200 00000 n
0000003274 00000 n
trailer
<< /ID [ (some) (id) ]
/Root 6 0 R
/Size 7
>>
startxref
3333
%%EOF

View File

@ -376,6 +376,11 @@ class SettingsViewModel: SessionTableViewModel<SettingsViewModel.NavButton, Sett
.removeDuplicates()
.publisher(in: Storage.shared)
public override var footerView: AnyPublisher<UIView?, Never> {
Just(VersionFooterView())
.eraseToAnyPublisher()
}
// MARK: - Functions
public override func updateSettings(_ updatedSettings: [SectionModel]) {

View File

@ -0,0 +1,79 @@
// Copyright © 2022 Rangeproof Pty Ltd. All rights reserved.
import UIKit
import SessionUIKit
class VersionFooterView: UIView {
private static let footerHeight: CGFloat = 75
private static let logoHeight: CGFloat = 24
// MARK: - UI
private lazy var logoImageView: UIImageView = {
let result: UIImageView = UIImageView(
image: UIImage(named: "oxen_logo")?
.withRenderingMode(.alwaysTemplate)
)
result.setContentHuggingPriority(.required, for: .vertical)
result.setContentCompressionResistancePriority(.required, for: .vertical)
result.themeTintColor = .textSecondary// .value(.textPrimary, alpha: Values.mediumOpacity)
result.contentMode = .scaleAspectFit
result.set(.height, to: VersionFooterView.logoHeight)
return result
}()
private lazy var versionLabel: UILabel = {
let result: UILabel = UILabel()
result.setContentHuggingPriority(.required, for: .vertical)
result.setContentCompressionResistancePriority(.required, for: .vertical)
result.font = .systemFont(ofSize: Values.verySmallFontSize)
result.themeTextColor = .textSecondary//.value(.textPrimary, alpha: Values.mediumOpacity)
result.textAlignment = .center
result.lineBreakMode = .byCharWrapping
result.numberOfLines = 0
if
let version: String = Bundle.main.infoDictionary?["CFBundleShortVersionString"] as? String,
let buildNumber: String = Bundle.main.infoDictionary?["CFBundleVersion"] as? String
{
result.text = "Version \(version) (\(buildNumber))"
}
return result
}()
// MARK: - Initialization
init() {
// Note: Need to explicitly set the height for a table footer view
// or it will have no height
super.init(
frame: CGRect(
x: 0,
y: 0,
width: 0,
height: VersionFooterView.footerHeight
)
)
setupViewHierarchy()
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
// MARK: - Content
private func setupViewHierarchy() {
addSubview(logoImageView)
addSubview(versionLabel)
logoImageView.pin(.top, to: .top, of: self, withInset: Values.mediumSpacing)
logoImageView.center(.horizontal, in: self, withInset: -2)
versionLabel.pin(.top, to: .bottom, of: logoImageView, withInset: Values.mediumSpacing)
versionLabel.pin(.left, to: .left, of: self)
versionLabel.pin(.right, to: .right, of: self)
}
}

View File

@ -250,6 +250,13 @@ class SessionTableViewController<NavItemId: Equatable, Section: SessionTableSect
}
.store(in: &disposables)
viewModel.footerView
.receiveOnMain(immediately: true)
.sink { [weak self] footerView in
self?.tableView.tableFooterView = footerView
}
.store(in: &disposables)
viewModel.showToast
.receive(on: DispatchQueue.main)
.sink { [weak self] text, color in

View File

@ -42,6 +42,7 @@ class SessionTableViewModel<NavItemId: Equatable, Section: SessionTableSection,
open var observableSettingsData: ObservableData {
preconditionFailure("abstract class - override in subclass")
}
open var footerView: AnyPublisher<UIView?, Never> { Just(nil).eraseToAnyPublisher() }
func updateSettings(_ updatedSettings: [SectionModel]) {
preconditionFailure("abstract class - override in subclass")

View File

@ -60,7 +60,7 @@ internal extension UIColor {
static let classicDark6: UIColor = #colorLiteral(red: 1, green: 1, blue: 1, alpha: 1) // #FFFFFF
static let classicLight0: UIColor = #colorLiteral(red: 0, green: 0, blue: 0, alpha: 1) // #000000
static let classicLight1: UIColor = #colorLiteral(red: 0.1058823529, green: 0.1058823529, blue: 0.1058823529, alpha: 1) // #6D6D6D
static let classicLight1: UIColor = #colorLiteral(red: 0.4274509804, green: 0.4274509804, blue: 0.4274509804, alpha: 1) // #6D6D6D
static let classicLight2: UIColor = #colorLiteral(red: 0.631372549, green: 0.6352941176, blue: 0.631372549, alpha: 1) // #A1A2A1
static let classicLight3: UIColor = #colorLiteral(red: 0.8745098039, green: 0.8745098039, blue: 0.8745098039, alpha: 1) // #DFDFDF
static let classicLight4: UIColor = #colorLiteral(red: 0.9411764706, green: 0.9411764706, blue: 0.9411764706, alpha: 1) // #F0F0F0