Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
1
1weather
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Dmitriy Stepanets
1weather
Commits
db14649d
Commit
db14649d
authored
Sep 11, 2021
by
Demid Merzlyakov
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Refactoring: a dedicated LocalizationChangeObserver.
parent
0b88a0b4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
42 additions
and
20 deletions
+42
-20
1Weather.xcodeproj/project.pbxproj
+4
-0
1Weather/Common/LocalizationChangeObserver.swift
+31
-0
1Weather/UI/View controllers/NWSAlert/NWSAlertViewController.swift
+4
-10
1Weather/UI/View controllers/Notifications/NotificationsViewController.swift
+3
-10
No files found.
1Weather.xcodeproj/project.pbxproj
View file @
db14649d
...
...
@@ -235,6 +235,7 @@
CE578FE725FB415F00E8B85D
/* LocationsViewModel.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
CE578FE425FB415F00E8B85D
/* LocationsViewModel.swift */
;
};
CE5F0CBC268A031800B99572
/* OneWeatherWidgetsBundle.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
CE5F0CBB268A031800B99572
/* OneWeatherWidgetsBundle.swift */
;
};
CE6BE4942634170800626822
/* USStateCode.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
CE6BE4932634170800626822
/* USStateCode.swift */
;
};
CE6E411426EBC0E9009829AE
/* LocalizationChangeObserver.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
CE6E411326EBC0E9009829AE
/* LocalizationChangeObserver.swift */
;
};
CE7298C9267A34F3002745D0
/* BlendFIPSSource.framework in Frameworks */
=
{
isa
=
PBXBuildFile
;
fileRef
=
CEEF40FF265E47FF00425D8F
/* BlendFIPSSource.framework */
;
};
CE7298CC267A34F5002745D0
/* BlendHealthSource.framework in Frameworks */
=
{
isa
=
PBXBuildFile
;
fileRef
=
CD3883C12657B6A10070FD6F
/* BlendHealthSource.framework */
;
};
CE7298CE267A34F7002745D0
/* CoreDataStorage.framework in Frameworks */
=
{
isa
=
PBXBuildFile
;
fileRef
=
CD3884542657BA8B0070FD6F
/* CoreDataStorage.framework */
;
};
...
...
@@ -537,6 +538,7 @@
CE5F0CBB268A031800B99572
/* OneWeatherWidgetsBundle.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
OneWeatherWidgetsBundle.swift
;
sourceTree
=
"<group>"
;
};
CE6BE4932634170800626822
/* USStateCode.swift */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.swift
;
path
=
USStateCode.swift
;
sourceTree
=
"<group>"
;
};
CE6E410026EB4A92009829AE
/* StoreKitTestCertificate.cer */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
file
;
path
=
StoreKitTestCertificate.cer
;
sourceTree
=
"<group>"
;
};
CE6E411326EBC0E9009829AE
/* LocalizationChangeObserver.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
LocalizationChangeObserver.swift
;
sourceTree
=
"<group>"
;
};
CE81A421266E289E00800EFF
/* NativeAdView.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
NativeAdView.swift
;
sourceTree
=
"<group>"
;
};
CE849DB52638C33600DEFFBD
/* OneWeatherNotificationServiceExtension.appex */
=
{
isa
=
PBXFileReference
;
explicitFileType
=
"wrapper.app-extension"
;
includeInIndex
=
0
;
path
=
OneWeatherNotificationServiceExtension.appex
;
sourceTree
=
BUILT_PRODUCTS_DIR
;
};
CE849DB72638C33600DEFFBD
/* NotificationService.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
NotificationService.swift
;
sourceTree
=
"<group>"
;
};
...
...
@@ -1429,6 +1431,7 @@
CDA5542C25EF7C9700A2E08C
/* ReusableCellProtocol.swift */
,
CD37D404260DFFDD002669D6
/* CellFactory.swift */
,
CD647A3626B42BA4007C27DA
/* ThreadSafeDictionary.swift */
,
CE6E411326EBC0E9009829AE
/* LocalizationChangeObserver.swift */
,
);
path
=
Common
;
sourceTree
=
"<group>"
;
...
...
@@ -1939,6 +1942,7 @@
CD1DDD332602305200AC62B2
/* ForecastInfoCell.swift in Sources */
,
CD8579792672214700CC4CDA
/* UITableView+HeaderSize.swift in Sources */
,
CDEE8AD725DA882200C289DE
/* ForecastPeriodButton.swift in Sources */
,
CE6E411426EBC0E9009829AE
/* LocalizationChangeObserver.swift in Sources */
,
CDE18DD125D166F900C80ED9
/* ForecastViewController.swift in Sources */
,
CD39F2F525DE9571009FE398
/* ArrowButton.swift in Sources */
,
CD37D3FE260DF726002669D6
/* SettingsCellFactory.swift in Sources */
,
...
...
1Weather/Common/LocalizationChangeObserver.swift
0 → 100644
View file @
db14649d
//
// LocalizationChangeObserver.swift
// 1Weather
//
// Created by Demid Merzlyakov on 10.09.2021.
//
import
Foundation
public
class
LocalizationChangeObserver
:
NSObject
{
private
let
handler
:
()
->
()
private
var
notificationCenter
:
NotificationCenter
{
NotificationCenter
.
default
}
public
init
(
handler
:
@escaping
()
->
())
{
self
.
handler
=
handler
super
.
init
()
notificationCenter
.
addObserver
(
self
,
selector
:
#selector(
notificationHandler
)
,
name
:
.
localizationChange
,
object
:
nil
)
}
deinit
{
notificationCenter
.
removeObserver
(
self
)
}
@objc
private
func
notificationHandler
()
{
handler
()
}
}
1Weather/UI/View controllers/NWSAlert/NWSAlertViewController.swift
View file @
db14649d
...
...
@@ -11,7 +11,7 @@ import OneWeatherAnalytics
class
NWSAlertViewController
:
UIViewController
{
private
let
coordinator
:
NWSAlertCoordinator
private
let
viewModel
:
NWSAlertViewModel
private
var
localizationObserver
:
Any
?
private
var
localizationObserver
:
LocalizationChangeObserver
!
private
let
tableView
=
UITableView
()
...
...
@@ -35,13 +35,7 @@ class NWSAlertViewController: UIViewController {
super
.
viewDidAppear
(
animated
)
analytics
(
log
:
.
ANALYTICS_VIEW_ALERT_DETAILS
)
}
deinit
{
if
let
observer
=
localizationObserver
{
NotificationCenter
.
default
.
removeObserver
(
observer
)
}
}
private
func
close
()
{
self
.
navigationController
?
.
dismiss
(
animated
:
true
,
completion
:
{
[
weak
self
]
in
guard
let
self
=
self
else
{
return
}
...
...
@@ -64,9 +58,9 @@ extension NWSAlertViewController {
action
:
#selector(
handleCloseButton
)
)
navigationItem
.
leftBarButtonItem
=
closeButton
localizationObserver
=
NotificationCenter
.
default
.
addObserver
(
forName
:
.
localizationChange
,
object
:
nil
,
queue
:
.
main
,
using
:
{
[
weak
self
]
_
in
localizationObserver
=
LocalizationChangeObserver
{
[
weak
self
]
in
self
?
.
prepareNavigationBar
()
}
)
}
}
func
prepareNavigationBar
()
{
...
...
1Weather/UI/View controllers/Notifications/NotificationsViewController.swift
View file @
db14649d
...
...
@@ -12,7 +12,7 @@ import OneWeatherAnalytics
class
NotificationsViewController
:
UIViewController
{
private
let
coordinator
:
NotificationsCoordinator
private
let
viewModel
=
NotificationsViewModel
()
private
var
localizationObserver
:
Any
?
private
var
localizationObserver
:
LocalizationChangeObserver
!
private
let
log
=
Logger
(
componentName
:
"NotificationsViewController"
)
private
let
tableView
=
UITableView
()
...
...
@@ -40,13 +40,6 @@ class NotificationsViewController: UIViewController {
analytics
(
log
:
.
ANALYTICS_VIEW_ALERTS
)
}
deinit
{
if
let
observer
=
localizationObserver
{
NotificationCenter
.
default
.
removeObserver
(
observer
)
}
}
private
func
close
()
{
self
.
navigationController
?
.
dismiss
(
animated
:
true
,
completion
:
{
[
weak
self
]
in
guard
let
self
=
self
else
{
return
}
...
...
@@ -69,10 +62,10 @@ private extension NotificationsViewController {
action
:
#selector(
handleCloseButton
)
)
navigationItem
.
leftBarButtonItem
=
closeButton
localizationObserver
=
NotificationCenter
.
default
.
addObserver
(
forName
:
.
localizationChange
,
object
:
nil
,
queue
:
.
main
,
using
:
{
[
weak
self
]
_
in
localizationObserver
=
LocalizationChangeObserver
{
[
weak
self
]
in
self
?
.
tableView
.
reloadData
()
self
?
.
prepareNavigationBar
()
}
)
}
}
func
prepareNavigationBar
()
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment