Update UIs when time and language changed 24/282524/1 accepted/tizen/unified/20221005.144502
authorkiso.chang <kiso.chang@samsung.com>
Wed, 5 Oct 2022 04:36:33 +0000 (13:36 +0900)
committerkiso.chang <kiso.chang@samsung.com>
Wed, 5 Oct 2022 04:37:42 +0000 (13:37 +0900)
Change-Id: Ieab48bdacfc915921001002d2161dc89e669e060
Signed-off-by: kiso.chang <kiso.chang@samsung.com>
SettingMain/SettingContent_Base.cs
SettingMain/SettingContent_DateTime.cs
SettingMain/SettingContent_LanguageInput.cs
SettingView/SettingView.cs

index a29699f59fb80bf0b60f11d3db36cc557a21ec33..8ca73c4291f0a0b2803f383d3ef1ebe42e9d9c00 100644 (file)
@@ -268,11 +268,16 @@ namespace SettingMain
         {\r
         }\r
 \r
+        protected Window mWindow;\r
+\r
         protected string mTitle;\r
+        protected ContentPage mPage;\r
 \r
         public SettingContent_Base()\r
             : base()\r
         {\r
+            mWindow = null;\r
+            mPage = null;\r
         }\r
 \r
         protected override void OnCreate(string contentInfo, Window window)\r
@@ -281,14 +286,16 @@ namespace SettingMain
 \r
             window.BackgroundColor = Color.Transparent;\r
 \r
+            mWindow = window;\r
 \r
-            var page = new ContentPage()\r
+            mPage = new ContentPage()\r
             {\r
                 Content = CreateContent(window),\r
                 AppBar = CreateAppBar(mTitle),\r
             };\r
 \r
-            window.Add(page);\r
+            window.Add(mPage);\r
+\r
         }\r
 \r
         protected virtual AppBar CreateAppBar(string title)\r
@@ -336,6 +343,7 @@ namespace SettingMain
 \r
         protected override void OnTerminate(string contentInfo, TerminationType type)\r
         {\r
+\r
             base.OnTerminate(contentInfo, type);\r
         }\r
 \r
index 6abb60b82498609a49b416ab47ad1d871c59b426..3c5f766f49e9dbb73dae39625298314430fbdf7d 100644 (file)
@@ -13,6 +13,8 @@ namespace SettingMain
 {\r
     class SettingContent_DateTime : SettingContent_Base\r
     {\r
+        DefaultLinearItem mDateItem = null;\r
+        DefaultLinearItem mTimeItem = null;\r
         public SettingContent_DateTime()\r
             : base()\r
         {\r
@@ -64,6 +66,7 @@ namespace SettingMain
 \r
 \r
             item = CreateItemWithCheck(Resources.IDS_ST_BODY_SET_DATE, DateTime.Now.ToShortDateString());\r
+            mDateItem = item;\r
             if (item)\r
             {\r
                 item.Clicked += (o, e) =>\r
@@ -81,13 +84,14 @@ namespace SettingMain
                 };\r
                 content.Add(item);\r
             }\r
-                    \r
+\r
 \r
 \r
 \r
 \r
 \r
             item = CreateItemWithCheck(Resources.IDS_ST_BODY_SET_TIME, DateTime.Now.ToShortTimeString());\r
+            mTimeItem = item;\r
             if (item)\r
             {\r
                 item.Clicked += (o, e) =>\r
@@ -155,5 +159,28 @@ namespace SettingMain
 \r
             return content;\r
         }\r
+\r
+\r
+        private void SystemSettings_TimeChanged(object sender, Tizen.System.TimeChangedEventArgs e)\r
+        {\r
+            Tizen.Log.Debug("NUI", "SystemSettings_TimeChanged is called\n");\r
+\r
+            mDateItem.SubText = DateTime.Now.ToShortDateString();\r
+            mTimeItem.SubText = DateTime.Now.ToShortTimeString();\r
+\r
+        }\r
+\r
+        protected override void OnCreate(string contentInfo, Window window)\r
+        {\r
+            base.OnCreate(contentInfo, window);\r
+            Tizen.System.SystemSettings.TimeChanged += SystemSettings_TimeChanged;\r
+        }\r
+        protected override void OnTerminate(string contentInfo, TerminationType type)\r
+        {\r
+            Tizen.System.SystemSettings.TimeChanged -= SystemSettings_TimeChanged;\r
+\r
+            base.OnTerminate(contentInfo, type);\r
+        }\r
+\r
     }\r
 }\r
index ae6f26ffd80231d7432159331516a082c317c1f7..07b248657572d426ed28dc9cfe5566eb3360a041 100644 (file)
@@ -18,6 +18,29 @@ namespace SettingMain
         {\r
             mTitle = Resources.IDS_ST_HEADER_LANGUAGE_AND_INPUT;\r
         }\r
+        protected override void OnCreate(string contentInfo, Window window)\r
+        {\r
+            base.OnCreate(contentInfo, window);\r
+\r
+            Tizen.System.SystemSettings.LocaleLanguageChanged += SystemSettings_LocaleLanguageChanged;\r
+        }\r
+        \r
+        protected override void OnTerminate(string contentInfo, TerminationType type)\r
+        {\r
+            Tizen.System.SystemSettings.LocaleLanguageChanged -= SystemSettings_LocaleLanguageChanged;\r
+\r
+            base.OnTerminate(contentInfo, type);\r
+        }\r
+\r
+        private void SystemSettings_LocaleLanguageChanged(object sender, Tizen.System.LocaleLanguageChangedEventArgs e)\r
+        {\r
+            if (mPage != null)\r
+            {\r
+                mPage.AppBar.Title = Resources.IDS_ST_HEADER_LANGUAGE_AND_INPUT;\r
+                mPage.Content = CreateContent(mWindow);\r
+            }\r
+        }\r
+\r
 \r
         protected override View CreateContent(Window window)\r
         {\r
index 2c3d3df72a5f549b33b4dfed2337f0cfcf39a2a2..dfc832495c71cef08b6abdd7102609afe9f0f207 100644 (file)
@@ -13,33 +13,69 @@ namespace SettingView
         private static readonly string resPath = Tizen.Applications.Application.Current.DirectoryInfo.Resource;\r
         protected const string SETTING_LIST_ICON_PATH_CFG = "/icons/list_icon/";\r
 \r
+        private ContentPage mMainPage;\r
+\r
         public Program(string styleSheet, Size2D windowSize, Position2D windowPosition, IBorderInterface borderInterface)\r
             : base(styleSheet, windowSize, windowPosition, borderInterface)\r
         {\r
+            mMainPage = null;\r
         }\r
         protected override void OnCreate()\r
         {\r
             base.OnCreate();\r
-            Initialize();\r
-        }\r
-\r
-        void Initialize()\r
-        {\r
 \r
             Window window = GetDefaultWindow();\r
-\r
             window.KeyEvent += OnKeyEvent;\r
             window.TouchEvent += OnTouchEvent;\r
 \r
-            Bundle bundle = new Bundle();\r
-            bundle.AddItem(" ", " ");\r
-            String encodedBundle = bundle.Encode();\r
+            // Page with AppBar and Content.\r
+            var appBar = new AppBar()\r
+            {\r
+                Title = Resources.IDS_ST_OPT_SETTINGS,\r
+            };\r
+            var appBarStyle = ThemeManager.GetStyle("Tizen.NUI.Components.AppBar");\r
+            var navigationContent = new Button(((AppBarStyle)appBarStyle).BackButton);\r
+            navigationContent.Clicked += (o, e) =>\r
+            {\r
+                Exit();\r
+            };\r
+            appBar.NavigationContent = navigationContent;\r
+            //appBarStyle.Dispose();\r
+\r
+            mMainPage = new ContentPage()\r
+            {\r
+                AppBar = appBar,\r
+\r
+                Content = CreateMainMenuContent(),\r
+            };\r
+\r
+\r
+            // Push the page to the default navigator.\r
+            window.GetDefaultNavigator().Push(mMainPage);\r
+\r
+\r
+            Tizen.System.SystemSettings.LocaleLanguageChanged += SystemSettings_LocaleLanguageChanged;\r
+        }\r
+\r
+        protected override void OnTerminate()\r
+        {\r
+            Window window = GetDefaultWindow();\r
+\r
+            window.KeyEvent -= OnKeyEvent;\r
+            window.TouchEvent -= OnTouchEvent;\r
 \r
-            Tizen.Log.Error("SettingWidget", "REQUEST \n");\r
 \r
-            CreateSettingsMainMenu();\r
+            Tizen.System.SystemSettings.LocaleLanguageChanged -= SystemSettings_LocaleLanguageChanged;\r
 \r
+            base.OnTerminate();\r
+        }\r
 \r
+        private void SystemSettings_LocaleLanguageChanged(object sender, Tizen.System.LocaleLanguageChangedEventArgs e)\r
+        {\r
+            if (mMainPage != null) {\r
+                mMainPage.AppBar.Title = Resources.IDS_ST_OPT_SETTINGS;\r
+                mMainPage.Content = CreateMainMenuContent();\r
+            }\r
         }\r
 \r
 \r
@@ -334,26 +370,26 @@ namespace SettingView
 \r
         return item;\r
     }\r
-    // Create a page with scrollable content\r
-    private void CreateSettingsMainMenu()\r
-    {\r
-\r
-        // Content of the page which scrolls items vertically.\r
-        var content = new ScrollableBase()\r
+        // Create a page with scrollable content\r
+        private View CreateMainMenuContent()\r
         {\r
-            WidthSpecification = LayoutParamPolicies.MatchParent,\r
-            HeightSpecification = LayoutParamPolicies.MatchParent,\r
-            ScrollingDirection = ScrollableBase.Direction.Vertical,\r
-            HideScrollbar = false,\r
-            Layout = new LinearLayout()\r
-            {\r
-                LinearOrientation = LinearLayout.Orientation.Vertical,\r
-            },\r
-        };\r
 \r
-        // Create items and add them to the content of the page.\r
-        DefaultLinearItem item = null;\r
-        item = CreateItemWithIcon(Resources.IDS_ST_BODY_WI_FI, resPath + SETTING_LIST_ICON_PATH_CFG + "settings_wifi.png");\r
+            // Content of the page which scrolls items vertically.\r
+            var content = new ScrollableBase()\r
+            {\r
+                WidthSpecification = LayoutParamPolicies.MatchParent,\r
+                HeightSpecification = LayoutParamPolicies.MatchParent,\r
+                ScrollingDirection = ScrollableBase.Direction.Vertical,\r
+                HideScrollbar = false,\r
+                Layout = new LinearLayout()\r
+                {\r
+                    LinearOrientation = LinearLayout.Orientation.Vertical,\r
+                },\r
+            };\r
+\r
+            // Create items and add them to the content of the page.\r
+            DefaultLinearItem item = null;\r
+            item = CreateItemWithIcon(Resources.IDS_ST_BODY_WI_FI, resPath + SETTING_LIST_ICON_PATH_CFG + "settings_wifi.png");\r
             if (item != null)\r
             {\r
                 item.Clicked += (o, e) =>\r
@@ -367,7 +403,7 @@ namespace SettingView
                 };\r
                 content.Add(item);\r
             }\r
-        item = CreateItemWithIcon(Resources.IDS_TPLATFORM_OPT_BLUETOOTH, resPath + SETTING_LIST_ICON_PATH_CFG + "settings_bluetooth.png");\r
+            item = CreateItemWithIcon(Resources.IDS_TPLATFORM_OPT_BLUETOOTH, resPath + SETTING_LIST_ICON_PATH_CFG + "settings_bluetooth.png");\r
             if (item != null)\r
             {\r
                 item.Clicked += (o, e) =>\r
@@ -382,16 +418,16 @@ namespace SettingView
                 content.Add(item);\r
             }\r
 \r
-        item = CreateItemWithIcon(Resources.IDS_ST_HEADER_SOUND, resPath + SETTING_LIST_ICON_PATH_CFG + "settings_sound_and_notifications.png");\r
-        if (item != null)\r
-        {\r
-            item.Clicked += (o, e) =>\r
+            item = CreateItemWithIcon(Resources.IDS_ST_HEADER_SOUND, resPath + SETTING_LIST_ICON_PATH_CFG + "settings_sound_and_notifications.png");\r
+            if (item != null)\r
             {\r
-                Window window = GetDefaultWindow();\r
-                LaunchWidget(window, "sound@org.tizen.cssettings");\r
-            };\r
-            content.Add(item);\r
-        }\r
+                item.Clicked += (o, e) =>\r
+                {\r
+                    Window window = GetDefaultWindow();\r
+                    LaunchWidget(window, "sound@org.tizen.cssettings");\r
+                };\r
+                content.Add(item);\r
+            }\r
 \r
 #if false\r
         item = CreateItemWithIcon(Resources.IDS_ST_BODY_NOTIFICATIONS, resPath + SETTING_LIST_ICON_PATH_CFG + "settings_notifications.png");\r
@@ -402,27 +438,27 @@ namespace SettingView
 #endif\r
 \r
 \r
-        item = CreateItemWithIcon(Resources.IDS_ST_HEADER_DISPLAY, resPath + SETTING_LIST_ICON_PATH_CFG + "settings_display.png");\r
-        if (item != null)\r
-        {\r
-            item.Clicked += (o, e) =>\r
+            item = CreateItemWithIcon(Resources.IDS_ST_HEADER_DISPLAY, resPath + SETTING_LIST_ICON_PATH_CFG + "settings_display.png");\r
+            if (item != null)\r
             {\r
-                Window window = GetDefaultWindow();\r
-                LaunchWidget(window, "display@org.tizen.cssettings");\r
-            };\r
-            content.Add(item);\r
-        }\r
+                item.Clicked += (o, e) =>\r
+                {\r
+                    Window window = GetDefaultWindow();\r
+                    LaunchWidget(window, "display@org.tizen.cssettings");\r
+                };\r
+                content.Add(item);\r
+            }\r
 \r
-        item = CreateItemWithIcon(Resources.IDS_LCKSCN_BODY_WALLPAPERS, resPath + SETTING_LIST_ICON_PATH_CFG + "settings_wallpapers.png");\r
-        if (item != null)\r
-        {\r
-            item.Clicked += (o, e) =>\r
+            item = CreateItemWithIcon(Resources.IDS_LCKSCN_BODY_WALLPAPERS, resPath + SETTING_LIST_ICON_PATH_CFG + "settings_wallpapers.png");\r
+            if (item != null)\r
             {\r
-                Window window = GetDefaultWindow();\r
-                LaunchWidget(window, "wallpaper@org.tizen.cssetting-wallpaper");\r
-            };\r
-            content.Add(item);\r
-        }\r
+                item.Clicked += (o, e) =>\r
+                {\r
+                    Window window = GetDefaultWindow();\r
+                    LaunchWidget(window, "wallpaper@org.tizen.cssetting-wallpaper");\r
+                };\r
+                content.Add(item);\r
+            }\r
 \r
 #if false\r
         item = CreateItemWithIcon("Tray", resPath + SETTING_LIST_ICON_PATH_CFG + "settings_softkey.png");\r
@@ -431,119 +467,96 @@ namespace SettingView
         content.Add(item);\r
 #endif\r
             item = CreateItemWithIcon(Resources.IDS_ST_BODY_ACCOUNTS, resPath + SETTING_LIST_ICON_PATH_CFG + "settings_account.png");\r
-        if (item != null)\r
-        {\r
-            item.Clicked += (o, e) =>\r
+            if (item != null)\r
             {\r
-                Window window = GetDefaultWindow();\r
-                LaunchWidget(window, "account@org.tizen.cssetting-account");\r
-            };\r
-            content.Add(item);\r
-        }\r
+                item.Clicked += (o, e) =>\r
+                {\r
+                    Window window = GetDefaultWindow();\r
+                    LaunchWidget(window, "account@org.tizen.cssetting-account");\r
+                };\r
+                content.Add(item);\r
+            }\r
 \r
-        item = CreateItemWithIcon(Resources.IDS_ST_HEADER_PRIVACY, resPath + SETTING_LIST_ICON_PATH_CFG + "settings_privacy_and_safety.png");\r
-        if (item != null)\r
-        {\r
-            item.Clicked += (o, e) =>\r
+            item = CreateItemWithIcon(Resources.IDS_ST_HEADER_PRIVACY, resPath + SETTING_LIST_ICON_PATH_CFG + "settings_privacy_and_safety.png");\r
+            if (item != null)\r
             {\r
-                Window window = GetDefaultWindow();\r
-                LaunchWidget(window, "privacy@org.tizen.cssetting-privacy");\r
-            };\r
-            content.Add(item);\r
-        }\r
+                item.Clicked += (o, e) =>\r
+                {\r
+                    Window window = GetDefaultWindow();\r
+                    LaunchWidget(window, "privacy@org.tizen.cssetting-privacy");\r
+                };\r
+                content.Add(item);\r
+            }\r
 \r
-        item = CreateItemWithIcon(Resources.IDS_ST_BODY_APPLICATIONS, resPath + SETTING_LIST_ICON_PATH_CFG + "settings_applications.png");\r
-        if (item != null)\r
-        {\r
-            item.Clicked += (o, e) =>\r
+            item = CreateItemWithIcon(Resources.IDS_ST_BODY_APPLICATIONS, resPath + SETTING_LIST_ICON_PATH_CFG + "settings_applications.png");\r
+            if (item != null)\r
             {\r
-                Window window = GetDefaultWindow();\r
-                LaunchWidget(window, "apps@org.tizen.cssettings");\r
-            };\r
-            content.Add(item);\r
-        }\r
+                item.Clicked += (o, e) =>\r
+                {\r
+                    Window window = GetDefaultWindow();\r
+                    LaunchWidget(window, "apps@org.tizen.cssettings");\r
+                };\r
+                content.Add(item);\r
+            }\r
 \r
-        item = CreateItemWithIcon(Resources.IDS_ST_BODY_STORAGE, resPath + SETTING_LIST_ICON_PATH_CFG + "settings_storage.png");\r
-        if (item != null)\r
-        {\r
-            item.Clicked += (o, e) =>\r
+            item = CreateItemWithIcon(Resources.IDS_ST_BODY_STORAGE, resPath + SETTING_LIST_ICON_PATH_CFG + "settings_storage.png");\r
+            if (item != null)\r
             {\r
-                Window window = GetDefaultWindow();\r
-                LaunchWidget(window, "storage@org.tizen.cssettings");\r
-            };\r
-            content.Add(item);\r
-        }\r
+                item.Clicked += (o, e) =>\r
+                {\r
+                    Window window = GetDefaultWindow();\r
+                    LaunchWidget(window, "storage@org.tizen.cssettings");\r
+                };\r
+                content.Add(item);\r
+            }\r
 \r
-        item = CreateItemWithIcon(Resources.IDS_ST_HEADER_LANGUAGE_AND_INPUT, resPath + SETTING_LIST_ICON_PATH_CFG + "settings_language_and_input.png");\r
-        if (item != null)\r
-        {\r
-            item.Clicked += (o, e) =>\r
+            item = CreateItemWithIcon(Resources.IDS_ST_HEADER_LANGUAGE_AND_INPUT, resPath + SETTING_LIST_ICON_PATH_CFG + "settings_language_and_input.png");\r
+            if (item != null)\r
             {\r
-                Window window = GetDefaultWindow();\r
-                LaunchWidget(window, "languageinput@org.tizen.cssettings");\r
-            };\r
-            content.Add(item);\r
-        }\r
+                item.Clicked += (o, e) =>\r
+                {\r
+                    Window window = GetDefaultWindow();\r
+                    LaunchWidget(window, "languageinput@org.tizen.cssettings");\r
+                };\r
+                content.Add(item);\r
+            }\r
 \r
-        item = CreateItemWithIcon(Resources.IDS_ST_BODY_DATE_AND_TIME, resPath + SETTING_LIST_ICON_PATH_CFG + "settings_date_and_time.png");\r
-        if (item != null)\r
-        {\r
-            item.Clicked += (o, e) =>\r
+            item = CreateItemWithIcon(Resources.IDS_ST_BODY_DATE_AND_TIME, resPath + SETTING_LIST_ICON_PATH_CFG + "settings_date_and_time.png");\r
+            if (item != null)\r
             {\r
-                Window window = GetDefaultWindow();\r
-                LaunchWidget(window, "datetime@org.tizen.cssettings");\r
-            };\r
-            content.Add(item);\r
-        }\r
+                item.Clicked += (o, e) =>\r
+                {\r
+                    Window window = GetDefaultWindow();\r
+                    LaunchWidget(window, "datetime@org.tizen.cssettings");\r
+                };\r
+                content.Add(item);\r
+            }\r
 \r
-        item = CreateItemWithIcon(Resources.IDS_ST_BODY_ACCESSIBILITY, resPath + SETTING_LIST_ICON_PATH_CFG + "settings_accessibility.png");\r
-        if (item != null)\r
-        {\r
-            item.Clicked += (o, e) =>\r
+            item = CreateItemWithIcon(Resources.IDS_ST_BODY_ACCESSIBILITY, resPath + SETTING_LIST_ICON_PATH_CFG + "settings_accessibility.png");\r
+            if (item != null)\r
             {\r
-                Window window = GetDefaultWindow();\r
-                LaunchWidget(window, "accessibility@org.tizen.cssetting-accessibility");\r
-            };\r
-            content.Add(item);\r
-        }\r
+                item.Clicked += (o, e) =>\r
+                {\r
+                    Window window = GetDefaultWindow();\r
+                    LaunchWidget(window, "accessibility@org.tizen.cssetting-accessibility");\r
+                };\r
+                content.Add(item);\r
+            }\r
 \r
-        item = CreateItemWithIcon(Resources.IDS_ST_BODY_ABOUT_DEVICE, resPath + SETTING_LIST_ICON_PATH_CFG + "settings_about_device.png");\r
-        if (item != null)\r
-        {\r
-            item.Clicked += (o, e) =>\r
+            item = CreateItemWithIcon(Resources.IDS_ST_BODY_ABOUT_DEVICE, resPath + SETTING_LIST_ICON_PATH_CFG + "settings_about_device.png");\r
+            if (item != null)\r
             {\r
-                Window window = GetDefaultWindow();\r
-                LaunchWidget(window, "aboutdevice@org.tizen.cssettings");\r
-            };\r
-            content.Add(item);\r
-        }\r
-\r
-\r
-        // Page with AppBar and Content.\r
-        var appBar = new AppBar()\r
-        {\r
-            Title = Resources.IDS_ST_OPT_SETTINGS,\r
-        };\r
-        var appBarStyle = ThemeManager.GetStyle("Tizen.NUI.Components.AppBar");\r
-        var navigationContent = new Button(((AppBarStyle)appBarStyle).BackButton);\r
-        navigationContent.Clicked += (o, e) =>\r
-        {\r
-            Exit();\r
-        };\r
-        appBar.NavigationContent = navigationContent;\r
-        //appBarStyle.Dispose();\r
-\r
-        var contentPage = new ContentPage()\r
-        {\r
-            AppBar = appBar,\r
-\r
-            Content = content,\r
-        };\r
+                item.Clicked += (o, e) =>\r
+                {\r
+                    Window window = GetDefaultWindow();\r
+                    LaunchWidget(window, "aboutdevice@org.tizen.cssettings");\r
+                };\r
+                content.Add(item);\r
+            }\r
 \r
-        // Push the page to the default navigator.\r
-        NUIApplication.GetDefaultWindow().GetDefaultNavigator().Push(contentPage);\r
+            return content;\r
 \r
-    }\r
+        }\r
 \r
     void LaunchWidget(Window window, string widgetid)\r
     {\r