Support recent emoticon feature 20/281420/2 accepted/tizen/unified/20220920.050141
authorJihoon Kim <jihoon48.kim@samsung.com>
Sun, 18 Sep 2022 06:19:18 +0000 (15:19 +0900)
committerJihoon Kim <jihoon48.kim@samsung.com>
Mon, 19 Sep 2022 00:57:43 +0000 (09:57 +0900)
Change-Id: I5ebb2e1778e8daefaa2fd60762a2eae84f43d29b
Signed-off-by: Jihoon Kim <jihoon48.kim@samsung.com>
ISEDefaultNUI/EmoticonPage.cs
packaging/org.tizen.ISEDefaultNUI-1.0.0.tpk

index 7821cdb..095ab62 100644 (file)
@@ -2,6 +2,7 @@
 using System.Collections.Generic;
 using System.Text;
 using Tizen;
+using Tizen.Applications;\r
 using Tizen.NUI;
 using Tizen.NUI.BaseComponents;
 using Tizen.NUI.Components;
@@ -806,7 +807,8 @@ namespace ISEDefaultNUI
         private static int landscapeRow = 3;
         private static int landscapeCol = 13;
         private View rootView;
-        private ScrollableBase scroll;
+        private ScrollableBase scroll;\r
+        private const string RECENT_EMOTICONS = "RecentEmoticons";
 
         private void DisplayCurrentEmoticonGroup()\r
         {\r
@@ -832,33 +834,42 @@ namespace ISEDefaultNUI
             Log.Info("NUIIME", "current group : " + currentGroup);\r
             if (currentGroup == EmoticonGroup.RecentlyUsed)
             {
-
+                foreach (int emoticonCode in recentEmoticons)
+                {\r
+                    AddEmoticon(emoticonCode);
+                }
             }
             else
             {
                 for (int i = 0; i < EmoticonList[(int)currentGroup].Length; i++)
                 {
-                    TextLabel emoticon = new TextLabel();\r
-                    emoticon.Text = Char.ConvertFromUtf32(EmoticonList[(int)currentGroup][i]);
-                    emoticon.Margin = new Extents(margin, margin, margin, margin);\r
-                    emoticon.HorizontalAlignment = HorizontalAlignment.Center;
-                    emoticon.VerticalAlignment = VerticalAlignment.Center;
-                    emoticon.PointSize = pointSize;
-                    emoticon.Size2D = new Size2D(itemSize, itemSize);\r
+                    AddEmoticon(EmoticonList[(int)currentGroup][i]);
+                }
+            }\r
 \r
-                    emoticon.TouchEvent += (object sender, TouchEventArgs e) =>
-                    {
-                        if (e.Touch.GetState(0) == PointStateType.Up)
-                        {
-                            Log.Info("NUIIME", "text: " + emoticon.Text);
-                            InputMethodEditor.CommitString(emoticon.Text);
-                        }
-
-                        return true;
-                    };\r
+            void AddEmoticon(int emoticonCode)\r
+            {\r
+                TextLabel emoticon = new TextLabel();\r
+                emoticon.Text = Char.ConvertFromUtf32(emoticonCode);\r
+                emoticon.Margin = new Extents(margin, margin, margin, margin);\r
+                emoticon.HorizontalAlignment = HorizontalAlignment.Center;\r
+                emoticon.VerticalAlignment = VerticalAlignment.Center;\r
+                emoticon.PointSize = pointSize;\r
+                emoticon.Size2D = new Size2D(itemSize, itemSize);\r
 \r
-                    scroll.Add(emoticon);
-                }
+                emoticon.TouchEvent += (object sender, TouchEventArgs e) =>\r
+                {\r
+                    if (e.Touch.GetState(0) == PointStateType.Up)\r
+                    {\r
+                        Log.Info("NUIIME", "text: " + emoticon.Text);\r
+                        InputMethodEditor.CommitString(emoticon.Text);\r
+                        UpdateRecentEmoticon(emoticonCode);\r
+                    }\r
+\r
+                    return true;\r
+                };\r
+\r
+                scroll.Add(emoticon);\r
             }\r
         }\r
 \r
@@ -866,7 +877,6 @@ namespace ISEDefaultNUI
         {\r
             Size2D windowSize = NUIApplication.GetDefaultWindow().Size;
 
-            recentEmoticons = IseConfig.Instance.RecentEmoticons;
             if (recentEmoticons != null && recentEmoticons.Count > 0)
             {
                 //Need to Add the code
@@ -897,6 +907,10 @@ namespace ISEDefaultNUI
 
         public EmoticonPage()
         {
+            recentEmoticons = IseConfig.Instance.RecentEmoticons;
+
+            ReadRecentEmoticonList();
+
             CreateEmoticonView();
         }
 
@@ -921,5 +935,58 @@ namespace ISEDefaultNUI
 \r
             DisplayCurrentEmoticonGroup();\r
         }\r
+\r
+        private bool RemoveFromEmoticonList(int emoticonCode)\r
+        {\r
+            return recentEmoticons.Remove(emoticonCode);\r
+        }\r
+\r
+        private void UpdateRecentEmoticon(int emoticonCode)\r
+        {\r
+            // remove from recent emoticon list\r
+            RemoveFromEmoticonList(emoticonCode);\r
+\r
+            recentEmoticons.Insert(0, emoticonCode);\r
+\r
+            WriteRecentEmoticonList();\r
+        }\r
+\r
+        private void ReadRecentEmoticonList()\r
+        {\r
+            string recentEmoticonString;\r
+            if (Preference.Contains(RECENT_EMOTICONS))\r
+            {\r
+                recentEmoticonString = Preference.Get<string>(RECENT_EMOTICONS);\r
+                Log.Info("NUIIME", "Read recent Emoticon string(" + recentEmoticonString + ")");\r
+            }\r
+            else {\r
+                Log.Info("NUIIME", "Failed to read recent Emoticon string");\r
+                return;\r
+            }\r
+\r
+            recentEmoticons.Clear();\r
+\r
+            string[] emoticon_list = recentEmoticonString.Split(" ");\r
+            foreach (string emoticon in emoticon_list)\r
+            {\r
+                if (String.IsNullOrEmpty(emoticon))\r
+                    continue;\r
+\r
+                int emoticonCode = Int32.Parse(emoticon);\r
+                recentEmoticons.Add(emoticonCode);\r
+            }\r
+        }\r
+\r
+        private void WriteRecentEmoticonList()\r
+        {\r
+            string recentEmoticonString = "";\r
+\r
+            foreach (int emoticonCode in recentEmoticons)\r
+            {\r
+                recentEmoticonString += emoticonCode + " ";\r
+            }\r
+\r
+            Preference.Set(RECENT_EMOTICONS, recentEmoticonString);\r
+        }\r
     }
 }
index 9cffdbc..f21bb74 100644 (file)
Binary files a/packaging/org.tizen.ISEDefaultNUI-1.0.0.tpk and b/packaging/org.tizen.ISEDefaultNUI-1.0.0.tpk differ