--- /dev/null
+CMAKE_MINIMUM_REQUIRED(VERSION 2.6)\r
+\r
+# Target name and PKGID\r
+## TODO : set application name and ID\r
+SET(this_target Messages)\r
+SET(PKGID 8r4r5ddzzn)\r
+\r
+# include directory\r
+INCLUDE_DIRECTORIES(\r
+ /usr/include/msg-service\r
+ /usr/include/osp\r
+ inc\r
+ )\r
+\r
+# Source files\r
+FILE(GLOB ${this_target}_SOURCE_FILES \r
+ src/*.cpp \r
+)\r
+\r
+SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIE")\r
+\r
+\r
+# Create executable\r
+SET(CMAKE_EXECUTABLE_SUFFIX ".exe")\r
+ADD_EXECUTABLE (${this_target} ${${this_target}_SOURCE_FILES})\r
+\r
+# Set link libraries and link options\r
+## TODO : add more link libraries and options\r
+TARGET_LINK_LIBRARIES(${this_target} -L/usr/lib/osp osp-appfw osp-uifw osp-social osp-media osp-image osp-content osp-telephony msg_mapi)\r
+TARGET_LINK_LIBRARIES(${this_target} -Xlinker --allow-shlib-undefined -pthread -pie)\r
+\r
+# Copy info, data, res, and icons directories\r
+INSTALL(TARGETS ${this_target} DESTINATION ../usr/apps/${PKGID}/bin)\r
+\r
+# Copy resource\r
+INSTALL(FILES ${CMAKE_SOURCE_DIR}/manifest.xml DESTINATION ../usr/apps/${PKGID}/info)\r
+INSTALL(DIRECTORY ${CMAKE_SOURCE_DIR}/res DESTINATION ../usr/apps/${PKGID})\r
+INSTALL(DIRECTORY ${CMAKE_SOURCE_DIR}/shared DESTINATION ../usr/apps/${PKGID})\r
--- /dev/null
+Flora License
+
+Version 1.0, May, 2012
+
+http://floralicense.org/license/
+
+TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+1. Definitions.
+
+"License" shall mean the terms and conditions for use, reproduction,
+and distribution as defined by Sections 1 through 9 of this document.
+
+"Licensor" shall mean the copyright owner or entity authorized by
+the copyright owner that is granting the License.
+
+"Legal Entity" shall mean the union of the acting entity and
+all other entities that control, are controlled by, or are
+under common control with that entity. For the purposes of
+this definition, "control" means (i) the power, direct or indirect,
+to cause the direction or management of such entity,
+whether by contract or otherwise, or (ii) ownership of fifty percent (50%)
+or more of the outstanding shares, or (iii) beneficial ownership of
+such entity.
+
+"You" (or "Your") shall mean an individual or Legal Entity
+exercising permissions granted by this License.
+
+"Source" form shall mean the preferred form for making modifications,
+including but not limited to software source code, documentation source,
+and configuration files.
+
+"Object" form shall mean any form resulting from mechanical
+transformation or translation of a Source form, including but
+not limited to compiled object code, generated documentation,
+and conversions to other media types.
+
+"Work" shall mean the work of authorship, whether in Source or Object form,
+made available under the License, as indicated by a copyright notice
+that is included in or attached to the work (an example is provided
+in the Appendix below).
+
+"Derivative Works" shall mean any work, whether in Source or Object form,
+that is based on (or derived from) the Work and for which the editorial
+revisions, annotations, elaborations, or other modifications represent,
+as a whole, an original work of authorship. For the purposes of this License,
+Derivative Works shall not include works that remain separable from,
+or merely link (or bind by name) to the interfaces of, the Work and
+Derivative Works thereof.
+
+"Contribution" shall mean any work of authorship, including the original
+version of the Work and any modifications or additions to that Work or
+Derivative Works thereof, that is intentionally submitted to Licensor
+for inclusion in the Work by the copyright owner or by an individual or
+Legal Entity authorized to submit on behalf of the copyright owner.
+For the purposes of this definition, "submitted" means any form of
+electronic, verbal, or written communication sent to the Licensor or
+its representatives, including but not limited to communication on
+electronic mailing lists, source code control systems, and issue
+tracking systems that are managed by, or on behalf of, the Licensor
+for the purpose of discussing and improving the Work, but excluding
+communication that is conspicuously marked or otherwise designated
+in writing by the copyright owner as "Not a Contribution."
+
+"Contributor" shall mean Licensor and any individual or Legal Entity
+on behalf of whom a Contribution has been received by Licensor and
+subsequently incorporated within the Work.
+
+"Tizen Certified Platform" shall mean a software platform that complies
+with the standards set forth in the Compatibility Definition Document
+and passes the Compatibility Test Suite as defined from time to time
+by the Tizen Technical Steering Group and certified by the Tizen
+Association or its designated agent.
+
+2. Grant of Copyright License. Subject to the terms and conditions of
+this License, each Contributor hereby grants to You a perpetual,
+worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+copyright license to reproduce, prepare Derivative Works of,
+publicly display, publicly perform, sublicense, and distribute the
+Work and such Derivative Works in Source or Object form.
+
+3. Grant of Patent License. Subject to the terms and conditions of
+this License, each Contributor hereby grants to You a perpetual,
+worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+(except as stated in this section) patent license to make, have made,
+use, offer to sell, sell, import, and otherwise transfer the Work
+solely as incorporated into a Tizen Certified Platform, where such
+license applies only to those patent claims licensable by such
+Contributor that are necessarily infringed by their Contribution(s)
+alone or by combination of their Contribution(s) with the Work solely
+as incorporated into a Tizen Certified Platform to which such
+Contribution(s) was submitted. If You institute patent litigation
+against any entity (including a cross-claim or counterclaim
+in a lawsuit) alleging that the Work or a Contribution incorporated
+within the Work constitutes direct or contributory patent infringement,
+then any patent licenses granted to You under this License for that
+Work shall terminate as of the date such litigation is filed.
+
+4. Redistribution. You may reproduce and distribute copies of the
+Work or Derivative Works thereof pursuant to the copyright license
+above, in any medium, with or without modifications, and in Source or
+Object form, provided that You meet the following conditions:
+
+ 1. You must give any other recipients of the Work or Derivative Works
+ a copy of this License; and
+ 2. You must cause any modified files to carry prominent notices stating
+ that You changed the files; and
+ 3. You must retain, in the Source form of any Derivative Works that
+ You distribute, all copyright, patent, trademark, and attribution
+ notices from the Source form of the Work, excluding those notices
+ that do not pertain to any part of the Derivative Works; and
+ 4. If the Work includes a "NOTICE" text file as part of its distribution,
+ then any Derivative Works that You distribute must include a readable
+ copy of the attribution notices contained within such NOTICE file,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works, in at least one of the following places:
+ within a NOTICE text file distributed as part of the Derivative Works;
+ within the Source form or documentation, if provided along with the
+ Derivative Works; or, within a display generated by the Derivative Works,
+ if and wherever such third-party notices normally appear.
+ The contents of the NOTICE file are for informational purposes only
+ and do not modify the License.
+
+You may add Your own attribution notices within Derivative Works
+that You distribute, alongside or as an addendum to the NOTICE text
+from the Work, provided that such additional attribution notices
+cannot be construed as modifying the License. You may add Your own
+copyright statement to Your modifications and may provide additional or
+different license terms and conditions for use, reproduction, or
+distribution of Your modifications, or for any such Derivative Works
+as a whole, provided Your use, reproduction, and distribution of
+the Work otherwise complies with the conditions stated in this License.
+
+5. Submission of Contributions. Unless You explicitly state otherwise,
+any Contribution intentionally submitted for inclusion in the Work
+by You to the Licensor shall be under the terms and conditions of
+this License, without any additional terms or conditions.
+Notwithstanding the above, nothing herein shall supersede or modify
+the terms of any separate license agreement you may have executed
+with Licensor regarding such Contributions.
+
+6. Trademarks. This License does not grant permission to use the trade
+names, trademarks, service marks, or product names of the Licensor,
+except as required for reasonable and customary use in describing the
+origin of the Work and reproducing the content of the NOTICE file.
+
+7. Disclaimer of Warranty. Unless required by applicable law or
+agreed to in writing, Licensor provides the Work (and each
+Contributor provides its Contributions) on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+implied, including, without limitation, any warranties or conditions
+of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+PARTICULAR PURPOSE. You are solely responsible for determining the
+appropriateness of using or redistributing the Work and assume any
+risks associated with Your exercise of permissions under this License.
+
+8. Limitation of Liability. In no event and under no legal theory,
+whether in tort (including negligence), contract, or otherwise,
+unless required by applicable law (such as deliberate and grossly
+negligent acts) or agreed to in writing, shall any Contributor be
+liable to You for damages, including any direct, indirect, special,
+incidental, or consequential damages of any character arising as a
+result of this License or out of the use or inability to use the
+Work (including but not limited to damages for loss of goodwill,
+work stoppage, computer failure or malfunction, or any and all
+other commercial damages or losses), even if such Contributor
+has been advised of the possibility of such damages.
+
+9. Accepting Warranty or Additional Liability. While redistributing
+the Work or Derivative Works thereof, You may choose to offer,
+and charge a fee for, acceptance of support, warranty, indemnity,
+or other liability obligations and/or rights consistent with this
+License. However, in accepting such obligations, You may act only
+on Your own behalf and on Your sole responsibility, not on behalf
+of any other Contributor, and only if You agree to indemnify,
+defend, and hold each Contributor harmless for any liability
+incurred by, or claims asserted against, such Contributor by reason
+of your accepting any such warranty or additional liability.
+
+END OF TERMS AND CONDITIONS
+
+APPENDIX: How to apply the Flora License to your work
+
+To apply the Flora License to your work, attach the following
+boilerplate notice, with the fields enclosed by brackets "[]"
+replaced with your own identifying information. (Don't include
+the brackets!) The text should be enclosed in the appropriate
+comment syntax for the file format. We also recommend that a
+file or class name and description of purpose be included on the
+same "printed page" as the copyright notice for easier
+identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Flora License, Version 1.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://floralicense.org/license/
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
--- /dev/null
+Copyright (c) 2012 Samsung Electronics Co., Ltd. All rights reserved.
+Except as noted, this software is licensed under Flora License, Version 1.
+Please, see the LICENSE.Flora file for Flora License, Version 1 terms and conditions.
\ No newline at end of file
--- /dev/null
+//\r
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.\r
+//\r
+// Licensed under the Flora License, Version 1.0 (the License);\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+// http://floralicense.org/license/\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an AS IS BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+//\r
+\r
+/**\r
+ * @file MsgAttachListPanel.h\r
+ * @brief This is the header file for the %AttachListPanel class.\r
+ *\r
+ * This header file contains the declarations of the %AttachListPanel class.\r
+ */\r
+#ifndef _MSG_ATTACH_LIST_PANEL_H_\r
+#define _MSG_ATTACH_LIST_PANEL_H_\r
+\r
+#include "FUi.h"\r
+\r
+class MessageData;\r
+\r
+class AttachListPanel\r
+ : public Tizen::Ui::Controls::Panel\r
+ , public Tizen::Ui::IActionEventListener\r
+ , public Tizen::Ui::Controls::IListViewItemEventListener\r
+ , public Tizen::Ui::Controls::IListViewItemProvider\r
+{\r
+public:\r
+ AttachListPanel(MessageData* pMessageDta);\r
+ result Construct(void);\r
+ virtual ~AttachListPanel();\r
+\r
+ // IListViewItemEventListener\r
+ virtual void OnListViewContextItemStateChanged(Tizen::Ui::Controls::ListView& listView, int index, int elementId, Tizen::Ui::Controls::ListContextItemStatus state){}\r
+ virtual void OnListViewItemStateChanged(Tizen::Ui::Controls::ListView& listView, int index, int elementId, Tizen::Ui::Controls::ListItemStatus status);\r
+ virtual void OnListViewItemSwept(Tizen::Ui::Controls::ListView& listView, int index, Tizen::Ui::Controls::SweepDirection direction){}\r
+ virtual void OnListViewItemLongPressed(Tizen::Ui::Controls::ListView& listView, int index, int elementId, bool& invokeListViewItemCallback){}\r
+ //IListViewItemProvider\r
+ virtual Tizen::Ui::Controls::ListItemBase* CreateItem(int index, int itemWidth);\r
+ virtual bool DeleteItem(int index, Tizen::Ui::Controls::ListItemBase* pItem, int itemWidth);\r
+ virtual int GetItemCount(void);\r
+ // From IActionEventListener\r
+ virtual void OnActionPerformed(const Tizen::Ui::Control& source, int actionId){};\r
+\r
+ Tizen::Graphics::Bitmap* GetIconN(const Tizen::Base::String& filePath) const;\r
+\r
+private:\r
+ class AttachMentsObject\r
+ : public Tizen::Base::Object\r
+ {\r
+ public:\r
+ AttachMentsObject(const Tizen::Base::String& filePath, Tizen::Graphics::Bitmap* pIconBitmap)\r
+ : __pFilepath(filePath)\r
+ , __pIconBitmap(pIconBitmap)\r
+ {}\r
+ const Tizen::Base::String& GetAttachmentPath(void) const { return __pFilepath;}\r
+ const Tizen::Graphics::Bitmap* GetIcon(void) const { return __pIconBitmap;}\r
+ private:\r
+ Tizen::Base::String __pFilepath;\r
+ Tizen::Graphics::Bitmap* __pIconBitmap;\r
+ };\r
+private:\r
+ MessageData* __messageData;\r
+ Tizen::Base::Collection::ArrayList* __pAttachFileArray;\r
+ Tizen::Ui::Controls::Panel* __pPanel;\r
+ Tizen::Ui::Controls::ListView* __pListView;\r
+};\r
+\r
+#endif //_MSG_ATTACH_LIST_PANEL_H_\r
--- /dev/null
+//\r
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.\r
+//\r
+// Licensed under the Flora License, Version 1.0 (the License);\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+// http://floralicense.org/license/\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an AS IS BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+//\r
+\r
+/**\r
+ * @file MsgAttachListPopup.h\r
+ * @brief This is the header file for the %AttachListPopup class.\r
+ *\r
+ * This header file contains the declarations of the %AttachListPopup class.\r
+ */\r
+#ifndef _MSG_ATTACH_LIST_POPUP_H_\r
+#define _MSG_ATTACH_LIST_POPUP_H_\r
+\r
+#include "MsgBaseCustomPopup.h"\r
+\r
+class AttachListPopup\r
+ : public BaseCustomPopup\r
+ , public Tizen::Ui::IActionEventListener\r
+ , public Tizen::Ui::Controls::IListViewItemEventListener\r
+ , public Tizen::Ui::Controls::IListViewItemProvider\r
+{\r
+\r
+public:\r
+ AttachListPopup(Tizen::Ui::Control& parent);\r
+ virtual ~AttachListPopup(void);\r
+ result Construct(bool hideSubject);\r
+ // IListViewItemEventListener\r
+ virtual void OnListViewContextItemStateChanged(Tizen::Ui::Controls::ListView& listView, int index, int elementId, Tizen::Ui::Controls::ListContextItemStatus state){}\r
+ virtual void OnListViewItemStateChanged(Tizen::Ui::Controls::ListView& listView, int index, int elementId, Tizen::Ui::Controls::ListItemStatus status);\r
+ virtual void OnListViewItemSwept(Tizen::Ui::Controls::ListView& listView, int index, Tizen::Ui::Controls::SweepDirection direction){}\r
+ virtual void OnListViewItemLongPressed(Tizen::Ui::Controls::ListView& listView, int index, int elementId, bool& invokeListViewItemCallback){}\r
+ //IListViewItemProvider\r
+ virtual Tizen::Ui::Controls::ListItemBase* CreateItem(int index, int itemWidth);\r
+ virtual bool DeleteItem(int index, Tizen::Ui::Controls::ListItemBase* pItem, int itemWidth);\r
+ virtual int GetItemCount(void);\r
+ // From IActionEventListener\r
+ virtual void OnActionPerformed(const Tizen::Ui::Control& source, int actionId);\r
+\r
+private:\r
+ enum AttachElementId\r
+ {\r
+ ATTACH_ELEMENT_SUBJECT,\r
+ ATTACH_ELEMENT_GALLERY,\r
+ ATTACH_ELEMENT_TAKE_PICTURE,\r
+ ATTACH_ELEMENT_CAPTURE_VIDEO,\r
+ ATTACH_ELEMENT_RECORD_AUDIO,\r
+ ATTACH_ELEMENT_MY_FILES,\r
+ ATTACH_ELEMENT_CONTACTS,\r
+ ATTACH_ELEMENT_CALENDAR,\r
+ ATTACH_ELEMENT_MEMO,\r
+ };\r
+\r
+ class AttachObject\r
+ : public Tizen::Base::Object\r
+ {\r
+ public:\r
+ AttachObject(const Tizen::Base::String& attachName, AttachElementId attachElementId)\r
+ : __attachName(attachName)\r
+ , __attachElementId(attachElementId)\r
+ {};\r
+ ~AttachObject(void){}\r
+ const Tizen::Base::String& GetAttachName(void) const { return __attachName;}\r
+ AttachElementId GetAttachId(void) const { return __attachElementId;}\r
+ private:\r
+ Tizen::Base::String __attachName;\r
+ AttachElementId __attachElementId;\r
+ };\r
+ Tizen::Ui::Control& __parentCntl;\r
+ Tizen::Base::Collection::ArrayList* __pAttachList;\r
+ Tizen::Ui::Controls::ListView* __pAttachListView;\r
+ Tizen::Ui::Controls::Button* __pCloseButton;\r
+};\r
+\r
+#endif // _MSG_ATTACH_LIST_POPUP_H_\r
--- /dev/null
+//\r
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.\r
+//\r
+// Licensed under the Flora License, Version 1.0 (the License);\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+// http://floralicense.org/license/\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an AS IS BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+//\r
+\r
+/**\r
+ * @file MsgAttachementControl.h\r
+ * @brief This is the header file for the %AttachementControl class.\r
+ *\r
+ * This header file contains the declarations of the %AttachementControl class.\r
+ */\r
+#ifndef _MSG_ATTACHEMENT_CONTROL_H_\r
+#define _MSG_ATTACHEMENT_CONTROL_H_\r
+\r
+#include "MsgComposeBaseControl.h"\r
+\r
+class AttachementControl\r
+ : public ComposeBaseControl\r
+{\r
+public:\r
+ AttachementControl(const Tizen::Base::String& attachFile);\r
+ virtual ~AttachementControl(void);\r
+ result Construct(const Tizen::Graphics::Rectangle& rectangle);\r
+ void SetAttachmentFile(const Tizen::Base::String& attachFile);\r
+ const Tizen::Base::String& GetAttachementFilepath(void) const;\r
+ void SetDeleteActionId(int actionId);\r
+ void AddActionEventListener(Tizen::Ui::IActionEventListener& listener);\r
+\r
+protected:\r
+ // Form Base class\r
+ virtual result OnDraw(void);\r
+ // Form ComposeBaseControl\r
+ virtual ComposeControlType GetControlType(void) const;\r
+\r
+private:\r
+ Tizen::Graphics::Bitmap* __pBgBitmap;\r
+ Tizen::Base::String __attachFilePath;\r
+ Tizen::Graphics::Bitmap* __pAttachIcon;\r
+ Tizen::Ui::Controls::Label* __pAttachLabel;\r
+ Tizen::Ui::Controls::Button* __pDeleteButton;\r
+};\r
+\r
+#endif //_MSG_ATTACHEMENT_CONTROL_H_\r
--- /dev/null
+//\r
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.\r
+//\r
+// Licensed under the Flora License, Version 1.0 (the License);\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+// http://floralicense.org/license/\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an AS IS BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+//\r
+\r
+/**\r
+ * @file MsgAttachementSavePopup.h\r
+ * @brief This is the header file for the %AttachementSavePopup class.\r
+ *\r
+ * This header file contains the declarations of the %AttachementSavePopup class.\r
+ */\r
+#ifndef _MSG_ATTACHMENT_SAVE_POPUP_H_\r
+#define _MSG_ATTACHMENT_SAVE_POPUP_H_\r
+\r
+#include "MsgBaseCustomPopup.h"\r
+\r
+class MessageData;\r
+\r
+class AttachementSavePopup\r
+ : public BaseCustomPopup\r
+ , public Tizen::Ui::IActionEventListener\r
+ , public Tizen::Ui::Controls::IListViewItemEventListener\r
+ , public Tizen::Ui::Controls::IListViewItemProvider\r
+{\r
+\r
+public:\r
+ AttachementSavePopup(Tizen::Ui::Control& parent, MessageData* pMessageDta);\r
+ virtual ~AttachementSavePopup(void);\r
+ result Construct(void);\r
+ // IListViewItemEventListener\r
+ virtual void OnListViewContextItemStateChanged(Tizen::Ui::Controls::ListView& listView, int index, int elementId, Tizen::Ui::Controls::ListContextItemStatus state){}\r
+ virtual void OnListViewItemStateChanged(Tizen::Ui::Controls::ListView& listView, int index, int elementId, Tizen::Ui::Controls::ListItemStatus status);\r
+ virtual void OnListViewItemSwept(Tizen::Ui::Controls::ListView& listView, int index, Tizen::Ui::Controls::SweepDirection direction){}\r
+ virtual void OnListViewItemLongPressed(Tizen::Ui::Controls::ListView& listView, int index, int elementId, bool& invokeListViewItemCallback){}\r
+ //IListViewItemProvider\r
+ virtual Tizen::Ui::Controls::ListItemBase* CreateItem(int index, int itemWidth);\r
+ virtual bool DeleteItem(int index, Tizen::Ui::Controls::ListItemBase* pItem, int itemWidth);\r
+ virtual int GetItemCount(void);\r
+ // From IActionEventListener\r
+ virtual void OnActionPerformed(const Tizen::Ui::Control& source, int actionId);\r
+ //virtual result OnDraw(void);\r
+\r
+ void CheckAll(bool state);\r
+ void SaveSelectedAttachments(void);\r
+ Tizen::Graphics::Bitmap* GetIconN(const Tizen::Base::String& filePath) const;\r
+ void ExitPopup(void);\r
+private:\r
+ class AttachMentsObject\r
+ : public Tizen::Base::Object\r
+ {\r
+ public:\r
+ AttachMentsObject(const Tizen::Base::String& filePath, Tizen::Graphics::Bitmap* pIconBitmap)\r
+ : __pFilepath(filePath)\r
+ , __pIconBitmap(pIconBitmap)\r
+ {}\r
+ const Tizen::Base::String& GetAttachmentPath(void) const { return __pFilepath;}\r
+ const Tizen::Graphics::Bitmap* GetIcon(void) const { return __pIconBitmap;}\r
+ private:\r
+ Tizen::Base::String __pFilepath;\r
+ Tizen::Graphics::Bitmap* __pIconBitmap;\r
+ };\r
+ Tizen::Ui::Control& __parentCntl;\r
+ MessageData* __pMessageData;\r
+ Tizen::Base::Collection::ArrayList* __pAttachFileArray;\r
+ Tizen::Base::Collection::ArrayList* __pSelectedFiles;\r
+\r
+};\r
+\r
+#endif // _MSG_ATTACHMENT_SAVE_POPUP_H_\r
--- /dev/null
+//\r
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.\r
+//\r
+// Licensed under the Flora License, Version 1.0 (the License);\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+// http://floralicense.org/license/\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an AS IS BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+//\r
+\r
+/**\r
+ * @file MsgBaseCustomPopup.h\r
+ * @brief This is the header file for the %BaseCustomPopup class.\r
+ *\r
+ * This header file contains the declarations of the %BaseCustomPopup class.\r
+ */\r
+#ifndef _MSG_BASE_CUSTOM_POPUP_H_\r
+#define _MSG_BASE_CUSTOM_POPUP_H_\r
+\r
+#include "FUi.h"\r
+\r
+class BaseCustomPopup\r
+ : public Tizen::Ui::Controls::Popup\r
+{\r
+\r
+public:\r
+ BaseCustomPopup(void);\r
+ virtual ~BaseCustomPopup(void);\r
+ void SetFooterBackgroundBitmap(Tizen::Graphics::Bitmap* pFooterBg);\r
+ virtual result OnDraw(void);\r
+private:\r
+ Tizen::Graphics::Bitmap* __pBottomBg;\r
+};\r
+\r
+#endif // _MSG_BASE_CUSTOM_POPUP_H_\r
--- /dev/null
+//\r
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.\r
+//\r
+// Licensed under the Flora License, Version 1.0 (the License);\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+// http://floralicense.org/license/\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an AS IS BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+//\r
+\r
+/**\r
+ * @file MsgBaseData.h\r
+ * @brief This is the header file for the %BaseData class.\r
+ *\r
+ * This header file contains the declarations of the %BaseData class.\r
+ */\r
+#ifndef _MSG_BASE_DATA_H_\r
+#define _MSG_BASE_DATA_H_\r
+\r
+#include <FBase.h>\r
+\r
+\r
+enum DataType\r
+{\r
+ DATA_TYPE_THREAD,\r
+ DATA_TYPE_CONV,\r
+ DATA_TYPE_MESSAGE,\r
+};\r
+\r
+/**\r
+ * @class BaseData\r
+ *\r
+ * Class BaseData is parent class of thread, message and conversation data.This class define the common API\r
+ * for UI display.\r
+ */\r
+\r
+class BaseData\r
+ : public Tizen::Base::Object\r
+{\r
+public:\r
+ /**\r
+ * Destructor for this abstract class\r
+ */\r
+ virtual ~BaseData(void) {};\r
+\r
+ /**\r
+ * Return clone of current entry\r
+ */\r
+ virtual BaseData* CloneN(void) = 0;\r
+\r
+ /**\r
+ * Fetch ID for current entry. This is an synchronous API.\r
+ *\r
+ * @param No argument.\r
+ *\r
+ * @return int - Return ID for current entry.\r
+ *\r
+ */\r
+ virtual int GetEntryId(void) const = 0;\r
+\r
+ /**\r
+ * Get display name for current entry.\r
+ *\r
+ * @param No argument\r
+ *\r
+ * @return String - Display text of current entry.\r
+ */\r
+ virtual const Tizen::Base::String& GetDisplayName(void) const = 0;\r
+\r
+ /**\r
+ * Get Message text for current entry.\r
+ *\r
+ * @param No argument\r
+ *\r
+ * @return String - message body text of message entry and short message for thread entry\r
+ */\r
+ virtual const Tizen::Base::String& GetMessageText(void) const = 0;\r
+\r
+ /**\r
+ * Fetch message type for current entry. This is an synchronous API.\r
+ * Indicates the message type. See enum _MSG_MESSAGE_TYPE_E\r
+ *\r
+ * @param No argument\r
+ *\r
+ * @return int - Return message type of current message list index.\r
+ *\r
+ */\r
+ virtual int GetMessageType(void) const = 0;\r
+\r
+ /**\r
+ * Fetch unread message count for given thread index. This is an synchronous API.\r
+ *\r
+ * @return String - Return unread message count for current thread index.\r
+ *\r
+ */\r
+ virtual int GetUnreadCount(void) const = 0;\r
+\r
+ /**\r
+ * Fetch time stamp for current entry. This is an synchronous API.\r
+ *\r
+ * @param No argument\r
+ *\r
+ * @return String - Return time stamp of current entry.\r
+ *\r
+ */\r
+ virtual const Tizen::Base::String& GetTimeStamp(void) const = 0;\r
+\r
+ /**\r
+ * Fetch group name of current entry. This is an synchronous API.\r
+ *\r
+ * @param No argument\r
+ *\r
+ * @return String - Return group name of current entry base on time stamp.\r
+ *\r
+ */\r
+ virtual const Tizen::Base::String& GetGroupName(void) const = 0;\r
+\r
+ /**\r
+ * Get draft message count\r
+ */\r
+ virtual const int GetDraftMessageCount(void) const = 0;\r
+\r
+ /**\r
+ * Get data type.\r
+ */\r
+ virtual DataType GetDataType(void) = 0;\r
+};\r
+\r
+class AddressInfo\r
+ : public Tizen::Base::Object\r
+{\r
+public:\r
+ Tizen::Base::String displayName; // display name\r
+ Tizen::Base::String phoneNumber; // phone number\r
+ bool needToValidate;\r
+ AddressInfo();\r
+};\r
+\r
+class MmsPageData\r
+ : public Tizen::Base::Object\r
+{\r
+public:\r
+ MmsPageData(const Tizen::Base::String& bodyText, bool isTextTop = true);\r
+ const Tizen::Base::String& GetBodyText(void) const { return __bodyText;}\r
+ const Tizen::Base::String& GetImagePath(void) const { return __imagePath;}\r
+ const Tizen::Base::String& GetAudioPath(void) const { return __audioPath;}\r
+ const Tizen::Base::String& GetVideoPath(void) const { return __videoPath;}\r
+ int GetPageDuration(void) const { return __pageDuration;}\r
+ void SetBodyText(const Tizen::Base::String& bodyText) { __bodyText = bodyText;}\r
+ void SetImagePath(const Tizen::Base::String& imagePath) { __imagePath = imagePath;}\r
+ void SetAudioPath(const Tizen::Base::String& audioPath) { __audioPath = audioPath;}\r
+ void SetVideoPath(const Tizen::Base::String& videoPath) { __videoPath = videoPath;}\r
+ void setPageDuration(int pageDuration) { __pageDuration = pageDuration;}\r
+\r
+ bool IsTextTop(void) const { return __isTextTop;}\r
+ bool IsImageExist(void) const { return (!__imagePath.IsEmpty());}\r
+ bool IsAudioExist(void) const { return (!__audioPath.IsEmpty());}\r
+ bool IsVideoExist(void) const { return (!__videoPath.IsEmpty());}\r
+private:\r
+ int __pageDuration;\r
+ Tizen::Base::String __bodyText;\r
+ Tizen::Base::String __imagePath;\r
+ Tizen::Base::String __audioPath;\r
+ Tizen::Base::String __videoPath;\r
+ bool __isTextTop;\r
+};\r
+\r
+class MessageComposeData\r
+ : public Tizen::Base::Object\r
+{\r
+public:\r
+ MessageComposeData(const Tizen::Base::String& subjectText, Tizen::Base::Collection::ArrayList* pPageList, Tizen::Base::Collection::ArrayList* pAttachList);\r
+ MessageComposeData(const Tizen::Base::String& smsBodyText);\r
+ ~MessageComposeData();\r
+ bool IsMms(void) const { return __isMms;}\r
+ const Tizen::Base::String& GetSmsBody(void) const { return __smsText;}\r
+ const Tizen::Base::String& GetSubject(void) const { return __subjectText;}\r
+ const Tizen::Base::Collection::ArrayList* GetPageList(void) const { return __pPageList;}\r
+ const Tizen::Base::Collection::ArrayList* GetAttachList(void) const { return __pAttachList;}\r
+ const Tizen::Base::Collection::ArrayList* GetRecipientList(void) const { return __pRecipientList;}\r
+ void AddRecipient(AddressInfo* pRecipient);\r
+ void AddAttachment(const Tizen::Base::String& attachFilepath);\r
+ void AddPage(MmsPageData* pMmsPage);\r
+ void SetSmsBody(const Tizen::Base::String& smsBodyText);\r
+ void SetSubject(const Tizen::Base::String& subjectText);\r
+ void SetComposeMms(bool isMms){__isMms = isMms;}\r
+\r
+private:\r
+ // To prevent double deletion\r
+ MessageComposeData(const MessageComposeData& rhs);\r
+ MessageComposeData& operator =(const MessageComposeData& rhs);\r
+\r
+private:\r
+ bool __isMms;\r
+ Tizen::Base::String __smsText;\r
+ Tizen::Base::String __subjectText;\r
+ //! Array of MmsPageData\r
+ Tizen::Base::Collection::ArrayList* __pPageList;\r
+ //! Array of attach file path(String)\r
+ Tizen::Base::Collection::ArrayList* __pAttachList;\r
+ //! Array of AddressInfo\r
+ Tizen::Base::Collection::ArrayList* __pRecipientList;\r
+\r
+};\r
+\r
+#endif // _MSG_BASE_DATA_H_\r
--- /dev/null
+//\r
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.\r
+//\r
+// Licensed under the Flora License, Version 1.0 (the License);\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+// http://floralicense.org/license/\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an AS IS BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+//\r
+\r
+/**\r
+ * @file MsgBaseEvent.h\r
+ * @brief This is the header file for the %BaseEvent class.\r
+ *\r
+ * This header file contains the declarations of the %BaseData class.\r
+ */\r
+#ifndef _MSG_BASE_EVENT_H_\r
+#define _MSG_BASE_EVENT_H_\r
+\r
+#include <FBaseObject.h>\r
+\r
+namespace Tizen { namespace Base { namespace Runtime\r
+{\r
+class IEventListener;\r
+}}};\r
+\r
+class ConversationEvent;\r
+class SmsEvent;\r
+class ThreadEvent;\r
+\r
+/**\r
+ * @class BaseEvent\r
+ *\r
+ * Class BaseEvent is parent class of message event listener holder. Directly\r
+ * this class instance can't be created.\r
+ */\r
+\r
+class BaseEvent\r
+ : public Tizen::Base::Object\r
+{\r
+ friend class ConversationEvent;\r
+ friend class MmsEvent;\r
+ friend class SmsEvent;\r
+ friend class ThreadEvent;\r
+\r
+public:\r
+ /**\r
+ * Default destructor for this class\r
+ */\r
+ virtual ~BaseEvent(void);\r
+\r
+ /**\r
+ * Compare two event listener and return true if both are same.\r
+ *\r
+ * @param pEvent - Event which need to be compare.\r
+ *\r
+ * @return true if both event are same else false.\r
+ */\r
+ bool IsSame(const Tizen::Base::Runtime::IEventListener* pEvent);\r
+\r
+ /**\r
+ * Return current event listener.\r
+ *\r
+ */\r
+ const Tizen::Base::Runtime::IEventListener* GetEvent(void) const;\r
+\r
+private:\r
+ /**\r
+ * This is one argument constructor for this class\r
+ *\r
+ * @param pEvent - listener event.\r
+ */\r
+ BaseEvent(const Tizen::Base::Runtime::IEventListener* pEvent);\r
+\r
+ /**\r
+ * Empty copy constructor\r
+ */\r
+ BaseEvent(const BaseEvent& rhs);\r
+\r
+ /**\r
+ * Empty assignment operator\r
+ */\r
+ BaseEvent& operator =(const BaseEvent& rhs);\r
+\r
+private:\r
+ const Tizen::Base::Runtime::IEventListener* __pEvent; //! Not own\r
+};\r
+\r
+#endif // _MSG_BASE_EVENT_H_\r
--- /dev/null
+//\r
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.\r
+//\r
+// Licensed under the Flora License, Version 1.0 (the License);\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+// http://floralicense.org/license/\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an AS IS BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+//\r
+\r
+/**\r
+ * @file MsgBaseForm.h\r
+ * @brief This is the header file for the %BaseForm class.\r
+ *\r
+ * This header file contains the declarations of the %BaseForm class.\r
+ */\r
+#ifndef _MSG_BASE_FORM_H_\r
+#define _MSG_BASE_FORM_H_\r
+\r
+#include <FUiCtrlForm.h>\r
+#include <FUiCtrlIFormBackEventListener.h>\r
+\r
+/**\r
+ * @class BaseForm\r
+ *\r
+ * This Class is base class of all message form.\r
+ */\r
+\r
+class BaseForm\r
+ : public Tizen::Ui::Controls::Form\r
+ , public Tizen::Ui::IActionEventListener\r
+ , public Tizen::Ui::Controls::IFormBackEventListener\r
+{\r
+public:\r
+ //! Constructor\r
+ /**\r
+ * Default constructor for this class.\r
+ */\r
+ BaseForm(void);\r
+\r
+ //! Destructor\r
+ /**\r
+ * Default destructor for this class.\r
+ */\r
+ virtual ~BaseForm(void);\r
+\r
+ //! From derived from MsgBaseForm, should override this method.\r
+ virtual bool Initialize(void) = 0;\r
+\r
+ //! Initialize, this should call if from derived from MsgBaseForm\r
+ result InitializeBase(void);\r
+\r
+protected:\r
+ //! From IActionEventListener\r
+ void OnActionPerformed(const Tizen::Ui::Control& source, int actionId);\r
+\r
+ //! From IFormBackEventListener\r
+ void OnFormBackRequested(Tizen::Ui::Controls::Form& source);\r
+\r
+ /**\r
+ * Call back function for modify footer. This will be call during construction time.\r
+ *\r
+ * @param footer - Reference to form footer.\r
+ */\r
+ virtual void OnIntializeFooter(Tizen::Ui::Controls::Footer& footer);\r
+\r
+ /**\r
+ * Call back function for modify header, This will be call during construction time.\r
+ *\r
+ * @param footer - Reference to form footer.\r
+ */\r
+ virtual void OnIntializeHeader(Tizen::Ui::Controls::Header& header);\r
+\r
+};\r
+\r
+#endif // _MSG_BASE_FORM_H_\r
--- /dev/null
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file MsgBasePresentationModel.h
+ * @brief This is the header file for the %BasePresentationModel class.
+ *
+ * This header file contains the declarations of the %BasePresentationModel class.
+ */
+#ifndef _MSG_BASE_PRESENTATION_MODEL_H_
+#define _MSG_BASE_PRESENTATION_MODEL_H_
+
+#include <msg_storage_types.h>
+#include <msg_types.h>
+
+#include <FBase.h>
+#include <FUiControl.h>
+
+namespace Tizen { namespace Base { namespace Collection
+{
+class ArrayList;
+}}};
+
+class DeleteHandlerThread;
+class IDeleteEventListener;
+class MessageData;
+class SpamRestoreHandler;
+class ThreadData;
+
+/**
+ * @class BasePresentationModel
+ *
+ * This is data presentation model base class. All presentation model should derived from this class.
+ * This interface is design to overcome future modification.
+ */
+
+class BasePresentationModel
+{
+
+public:
+ /**
+ * @function: Destructor.
+ *
+ * Interface virtual destructor.
+ *
+ */
+ virtual ~BasePresentationModel(void);
+
+ /**
+ * Delete particular thread or message based on given uniqueID and requestType
+ *
+ * @param uniqueID Delete message or thread id depend on requestType,
+ * @param requestType Type of delete request. Reference enum MsgDeleteRequest
+ *
+ * @return void
+ */
+ void Delete(int deleteId, int requestType);
+
+ /**
+ * Delete list of thread and messages based pIdList list.
+ *
+ * @param pIdList - Thread or message ID list to be deleted.
+ * @param listener - delete event listener.
+ * @param requestType - Type of delete request. Reference enum MsgDeleteRequest
+ *
+ */
+ void Delete(Tizen::Base::Collection::IListT< int >* pDeleteIdList, Tizen::Ui::Control& listener, int requestType);
+
+ /**
+ * Delete single message/ thread based on thread or message ID.
+ *
+ * @param pIdList - Thread or message ID list to be deleted.
+ * @param listener - delete event listener.
+ * @param requestType - Type of delete request. Reference enum MsgDeleteRequest
+ */
+ void Delete(int deleteId, Tizen::Ui::Control& listener, int requestType);
+
+ /**
+ * Fetch phone number list for given thread ID..
+ *
+ * @param threadId - Thread ID to fetch phone number list.
+ *
+ * @return ArrayList* - In case of succes return valid pointer to phone number list.
+ */
+ Tizen::Base::Collection::ArrayList* GetPhoneNumberListN(int threadId) const;
+
+ /**
+ * Fetch phone number list for given thread ID..
+ *
+ * @param threadId - Thread ID to fetch phone number list.
+ *
+ * @return ArrayList* - In case of succes return valid pointer to phone number list.
+ */
+ Tizen::Base::Collection::ArrayList* GetRecipientDetailsListN(int threadId) const;
+
+ /**
+ * Fetch delivery status for given message ID, Indicates the _MSG_DELIVERY_REPORT_STATUS_E
+ *
+ * @param messageId - Message ID to fetch delivery status.
+ *
+ * @return int - Message delivery status Indicates the _MSG_DELIVERY_REPORT_STATUS_E.
+ */
+ int GetMessageDeliveryStatus(int messageId);
+
+ /**
+ * Move seleted message to SIM
+ *
+ * @param messageId - Message which move to be SIM
+ *
+ * @return bool - In case of succes return true else false.
+ */
+ bool MoveMessageToSIM(int messageId);
+
+ /**
+ * Move seleted message to phone
+ *
+ * @param messageId - Message which move to be SIM
+ *
+ * @return bool - In case of succes return true else false.
+ */
+ bool MoveMessageToPhone(int messageId);
+
+ /**
+ * Move seleted message to Inbox
+ *
+ * @param messageId - Message which need to move to Inbox
+ *
+ * @return bool - In case of succes return true else false.
+ */
+ bool MoveMessageToInbox(int messageId);
+
+
+ /**
+ * Get message details based on given ID in case of successful operation
+ * else return null
+ */
+ MessageData* GetMessageDataByIdN(int messageId) const;
+ ThreadData* GetThreadDataByIdN(int messageId) const;
+ void RestoreSpamMsgs(Tizen::Base::Collection::ArrayListT<int>* pSelectedIds, Tizen::Ui::Control* parentCtl);
+ void CancelRestore(void);
+
+ /**
+ * Cancel ongoing delete operation.
+ */
+ void CancelDelete(void);
+protected:
+ /**
+ * Default constructor for this class.
+ */
+ BasePresentationModel(void);
+ /**
+ * Second phase construction
+ */
+ result Construct(void);
+private:
+ //! To prevent copy constructor and assignment
+ BasePresentationModel(const BasePresentationModel& rhs);
+ BasePresentationModel& operator =(const BasePresentationModel& rhs);
+
+protected:
+ msg_handle_t __pMsgHandle; //! Message service handler.
+ DeleteHandlerThread* __pDeleteHandler; //! Delete event listener
+ SpamRestoreHandler* __pSpamRestoreHandler;
+};
+
+
+#endif // _MSG_BASE_PRESENTATION_MODEL_H_
--- /dev/null
+//\r
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.\r
+//\r
+// Licensed under the Flora License, Version 1.0 (the License);\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+// http://floralicense.org/license/\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an AS IS BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+//\r
+\r
+/**\r
+ * @file MsgBitmapUtility.h\r
+ * @brief This is the header file for the %BitmapUtility class.\r
+ *\r
+ * This header file contains the declarations of the %BitmapUtility class.\r
+ */\r
+#ifndef _MSG_BITMAP_UTILITY_H_\r
+#define _MSG_BITMAP_UTILITY_H_\r
+\r
+#include <FBase.h>\r
+#include <FGrpDimension.h>\r
+\r
+#include "MsgTypes.h"\r
+\r
+namespace Tizen { namespace Graphics\r
+{\r
+class Bitmap;\r
+}};\r
+namespace Tizen { namespace Base { namespace Collection\r
+{\r
+class HashMap;\r
+}}};\r
+\r
+/**\r
+ * @class BitmapUtility\r
+ *\r
+ * Class BitmapUtility use to hold bitmap use for messaging application\r
+ */\r
+\r
+class BitmapUtility\r
+ : public Tizen::Base::Object\r
+{\r
+public:\r
+ /**\r
+ * Allocation method for this class\r
+ *\r
+ * @param Take no argument.\r
+ *\r
+ * @return Return instance of this class\r
+ *\r
+ */\r
+ static BitmapUtility* GetInstance(void);\r
+\r
+ /**\r
+ * Return Bitmap for given icon type and return ownership of bitmap\r
+ *\r
+ * @param iconType - Type of icon\r
+ * @param size - size of icon\r
+ *\r
+ * @return Bitmap*, in case of successful operation else NULL\r
+ */\r
+ Tizen::Graphics::Bitmap* GetIconN(MessageIconType iconType, const Tizen::Graphics::Dimension& size = Tizen::Graphics::Dimension(0, 0));\r
+\r
+ /**\r
+ * Return Bitmap for given icon type and return ownership of bitmap\r
+ *\r
+ * @param fileName - File name\r
+ * @param size - size of icon\r
+ *\r
+ * @return Bitmap*, in case of successful operation else NULL\r
+ */\r
+ Tizen::Graphics::Bitmap* GetIconByFileExtN(const Tizen::Base::String& fileName, const Tizen::Graphics::Dimension& size = Tizen::Graphics::Dimension(0, 0));\r
+\r
+ /**\r
+ * Return merge two bitmap and create new bitmap, return ownership of bitmap\r
+ *\r
+ * @param bitmap1 - 1st source bitmap\r
+ * @param bitmap2 - 2nd source bitmap\r
+ *\r
+ * @return Bitmap*, in case of successful operation else NULL\r
+ */\r
+ Tizen::Graphics::Bitmap* GetMergeIconN(const Tizen::Graphics::Bitmap& bitmap1, Tizen::Graphics::Bitmap& bitmap2);\r
+\r
+ /**\r
+ * Return Bitmap for given icon type. But keep ownership of bitmap.\r
+ *\r
+ * @param iconType - Type of icon\r
+ * @param size - size of icon\r
+ *\r
+ * @return Bitmap*, in case of successful operation else NULL\r
+ */\r
+ Tizen::Graphics::Bitmap* GetIcon(MessageIconType iconType, const Tizen::Graphics::Dimension& size = Tizen::Graphics::Dimension(0, 0));\r
+\r
+ /**\r
+ * Release bitmap if exist in cache.\r
+ *\r
+ * @param iconType - Type of icon\r
+ *\r
+ * @return E_SUCCESS in case of successfully remove from icon cache.\r
+ */\r
+ result Release(MessageIconType iconType);\r
+\r
+ /**\r
+ * Return bubble group background bitmap.\r
+ *\r
+ * @ param groupName - Group name\r
+ * @ param size - Size of group\r
+ *\r
+ * @return background bitmap of group item.\r
+ */\r
+ Tizen::Graphics::Bitmap* GetBubbleGroupBgBitmap(GroupBgBitmapType groupType, const Tizen::Base::String& groupName, const Tizen::Graphics::Dimension& size);\r
+\r
+private:\r
+ /**\r
+ * This is one argument constructor for this class\r
+ *\r
+ */\r
+ BitmapUtility(void);\r
+\r
+ /**\r
+ * Default destructor for this class\r
+ */\r
+ virtual ~BitmapUtility(void);\r
+\r
+ /**\r
+ * 2nd phase constructor\r
+ */\r
+ result Construct(void);\r
+ static void CreateInstance(void);\r
+ static void DestroyInstance(void);\r
+\r
+ /**\r
+ * Get 9 patch bitmap.\r
+ */\r
+ Tizen::Graphics::Bitmap* Get9PatchBitmapIconN(const Tizen::Base::String& pngFile, const Tizen::Graphics::Dimension& size = Tizen::Graphics::Dimension(0, 0));\r
+\r
+private:\r
+ /**\r
+ * Empty copy constructor\r
+ */\r
+ BitmapUtility(const BitmapUtility& rhs);\r
+\r
+ /**\r
+ * Empty assignment operator\r
+ */\r
+ BitmapUtility& operator =(const BitmapUtility& rhs);\r
+\r
+private:\r
+ static BitmapUtility* __pInstance; //! Self instance for singleton design.\r
+ Tizen::Base::Collection::HashMap* __pBitmapList;\r
+};\r
+\r
+\r
+#endif // _MSG_BITMAP_UTILITY_H_\r
--- /dev/null
+//\r
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.\r
+//\r
+// Licensed under the Flora License, Version 1.0 (the License);\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+// http://floralicense.org/license/\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an AS IS BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+//\r
+\r
+/**\r
+ * @file MsgCbReceiveSettings.h\r
+ * @brief This is the header file for the %CbReceiveSettings class.\r
+ *\r
+ * This header file contains the declarations of the %CbReceiveSettings class.\r
+ */\r
+#ifndef _MSG_CB_RECEIVE_SETTINGS_H_\r
+#define _MSG_CB_RECEIVE_SETTINGS_H_\r
+\r
+#include <msg_storage_types.h>\r
+\r
+#include <FBaseObject.h>\r
+\r
+/**\r
+ * @class CbReceiveSettings\r
+ *\r
+ * Class CbReceiveSettings keeps cell broadcast setting details.\r
+ */\r
+\r
+class CbReceiveSettings\r
+ : public Tizen::Base::Object\r
+{\r
+public:\r
+ /**\r
+ * Default constructor for this class.\r
+ */\r
+ CbReceiveSettings(msg_struct_t pCbSetting);\r
+\r
+ /**\r
+ * Default destructor for this class.\r
+ */\r
+ ~CbReceiveSettings(void);\r
+ //\r
+ msg_struct_t GetCbOpt(void);\r
+\r
+ /**\r
+ * To check Cell-Broadcasting messages status on/off.\r
+ */\r
+ bool IsCbMessagesOn(void);\r
+\r
+ /**\r
+ * Set Cell-Broadcasting message status.\r
+ */\r
+\r
+ result SetCbMessagesStatus(bool status);\r
+\r
+private:\r
+ //! Cell broadcast receiving setting structure pointer\r
+ msg_struct_t __pCbSetting; //! Own\r
+\r
+};\r
+\r
+\r
+\r
+\r
+#endif // _MSG_CB_RECEIVE_SETTINGS_H_\r
--- /dev/null
+//\r
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.\r
+//\r
+// Licensed under the Flora License, Version 1.0 (the License);\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+// http://floralicense.org/license/\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an AS IS BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+//\r
+\r
+/**\r
+ * @file MsgCommonUtil.h\r
+ * @brief This is the header file for the %CommonUtil class.\r
+ *\r
+ * This header file contains the declarations of the %CommonUtil class.\r
+ */\r
+#ifndef _MSG_COMPOSE_UTIL_H_\r
+#define _MSG_COMPOSE_UTIL_H_\r
+\r
+#include <msg_types.h>\r
+\r
+#include <FBase.h>\r
+#include "MsgTypes.h"\r
+\r
+class MessageData;\r
+class SmsSendSettings;\r
+\r
+class CharCounterInfo\r
+{\r
+public:\r
+ CharCounterInfo()\r
+ : __textSize(0)\r
+ , __segSize(0)\r
+ , __encodeType(MSG_ENCODE_GSM7BIT)\r
+ {}\r
+\r
+ unsigned int __textSize;\r
+ unsigned int __segSize;\r
+ msg_encode_type_t __encodeType;\r
+};\r
+\r
+class CommonUtil\r
+ : public Tizen::Base::Object\r
+{\r
+public:\r
+ static char* ConvertStringToPointerCharArrayN(const Tizen::Base::String& strToConvert);\r
+ static bool CopyTextToClipBoard(const Tizen::Base::String& text);\r
+ static result ForwardMessage(MessageData* pMsgData);\r
+ static int GetDuration(const Tizen::Base::String& mediaFileName);\r
+ static MediaType GetMediaType(const Tizen::Base::String& fileName);\r
+ static bool IsAudioFile(const Tizen::Base::String& fileName);\r
+ static bool IsImageFile(const Tizen::Base::String& fileName);\r
+ static bool IsVideoFile(const Tizen::Base::String& fileName);\r
+ static result ReplyMessage(MessageData* pMsgData);\r
+ static bool IsValidPhoneNumber(const Tizen::Base::String& phoneNumber);\r
+ static void ShowInfoPopup(const Tizen::Base::String& info, const Tizen::Base::String& title = IDS_BLANK);\r
+ static void ShowErrorInfo(msg_error_t err);\r
+ static bool IsSimAvailable(void);\r
+ static CharCounterInfo GetMessageCharCounterInfo(const Tizen::Base::String& messageText, const SmsSendSettings* pSmsSendSetting = null);\r
+\r
+};\r
+\r
+\r
+#endif //_MSG_COMPOSE_UTIL_H_\r
--- /dev/null
+//\r
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.\r
+//\r
+// Licensed under the Flora License, Version 1.0 (the License);\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+// http://floralicense.org/license/\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an AS IS BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+//\r
+\r
+/**\r
+ * @file MsgComposeBaseControl.h\r
+ * @brief This is the header file for the %ComposeBaseControl class.\r
+ *\r
+ * This header file contains the declarations of the %ComposeBaseControl class.\r
+ */\r
+#ifndef _MSG_COMPOSE_BASE_CONTROL_H_\r
+#define _MSG_COMPOSE_BASE_CONTROL_H_\r
+\r
+#include <FUi.h>\r
+\r
+enum ComposeControlType\r
+{\r
+ COMPOSE_CONTROL_SUBJECT,\r
+ COMPOSE_CONTROL_IMAGE_TEXT,\r
+ COMPOSE_CONTROL_ATTACHEMENT,\r
+};\r
+\r
+class ComposeBaseControl\r
+ : public Tizen::Ui::Container\r
+{\r
+public:\r
+ virtual ComposeControlType GetControlType(void) const = 0;\r
+};\r
+\r
+#endif //_MSG_COMPOSE_BASE_CONTROL_H_\r
--- /dev/null
+//\r
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.\r
+//\r
+// Licensed under the Flora License, Version 1.0 (the License);\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+// http://floralicense.org/license/\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an AS IS BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+//\r
+\r
+/**\r
+ * @file MsgComposerForm.h\r
+ * @brief This is the header file for the %ComposerForm class.\r
+ *\r
+ * This header file contains the declarations of the %ComposerForm class.\r
+ */\r
+#ifndef _MSG_COMPOSE_FORM_H_\r
+#define _MSG_COMPOSE_FORM_H_\r
+\r
+#include <FApp.h>\r
+\r
+#include <FUiCtrlIExpandableEditAreaEventListener.h>\r
+#include <FUiCtrlIListViewItemProvider.h>\r
+#include <FUiCtrlIListViewItemEventListener.h>\r
+#include <FUiScenesISceneEventListener.h>\r
+\r
+#include "MsgBaseForm.h"\r
+#include "MsgIComposeEventObserver.h"\r
+#include "MsgISizeChangeEventListener.h"\r
+\r
+namespace Tizen { namespace Ui { namespace Controls\r
+{\r
+class Button;\r
+class ExpandableEditArea;\r
+class Label;\r
+class ListView;\r
+class Panel;\r
+class Popup;\r
+}}};\r
+class DurationPopup;\r
+class MessageComposeData;\r
+class MessageComposePanel;\r
+class MessageData;\r
+class RecipientPanel;\r
+\r
+/**\r
+ * @class ComposerForm\r
+ *\r
+ * Class MsgComposerForm is for compose new message\r
+ */\r
+\r
+class ComposerForm\r
+ : public BaseForm\r
+ , public Tizen::Ui::IKeypadEventListener\r
+ , public Tizen::Ui::IKeyEventListener\r
+ , public Tizen::Ui::Scenes::ISceneEventListener\r
+ , public IComposeEventObserver\r
+ , public ISizeChangeEventListener\r
+{\r
+public:\r
+ /**\r
+ * Default constructor for this class.\r
+ */\r
+ ComposerForm(void);\r
+ /**\r
+ * Default destructor for this class.\r
+ */\r
+ virtual ~ComposerForm(void);\r
+ bool Initialize(void);\r
+ void LoadComposeData(const MessageComposeData& composeData);\r
+\r
+\r
+protected:\r
+ // From Form\r
+ virtual result OnInitializing(void);\r
+ virtual result OnTerminating(void);\r
+\r
+ // From base class\r
+ void OnIntializeHeader(Tizen::Ui::Controls::Header& header);\r
+ void OnUserEventReceivedN(RequestId requestId, Tizen::Base::Collection::IList* pArgs);\r
+\r
+ // From IActionEventListener\r
+ virtual void OnActionPerformed(const Tizen::Ui::Control& source, int actionId);\r
+\r
+ // Form IComposeEventObserver\r
+ virtual void OnComposeStateChange(ComposeType type);\r
+ virtual void OnSendButtonClick(void);\r
+\r
+ //Form ISizeChangeEventListener\r
+ virtual void OnSizeIncrease(const Tizen::Ui::Control& control);\r
+ virtual void OnSizeDecrease(const Tizen::Ui::Control& control);\r
+\r
+ // From ISceneEventListener\r
+ virtual void OnSceneActivatedN(const Tizen::Ui::Scenes::SceneId& previousSceneId, const Tizen::Ui::Scenes::SceneId& currentSceneId, Tizen::Base::Collection::IList* pArgs);\r
+ virtual void OnSceneDeactivated(const Tizen::Ui::Scenes::SceneId& currentSceneId, const Tizen::Ui::Scenes::SceneId& nextSceneId);\r
+\r
+ // From IKeypadEventListener\r
+ virtual void OnKeypadActionPerformed(Tizen::Ui::Control& source, Tizen::Ui::KeypadAction keypadAction){};\r
+ virtual void OnKeypadClosed(Tizen::Ui::Control& source);\r
+ virtual void OnKeypadOpened(Tizen::Ui::Control& source);\r
+ virtual void OnKeypadWillOpen(Tizen::Ui::Control& source){};\r
+ virtual void OnKeypadBoundsChanged(Tizen::Ui::Control& source);\r
+\r
+ //From IKeyEventListener\r
+ virtual void OnKeyPressed(const Tizen::Ui::Control& source, Tizen::Ui::KeyCode keyCode){};\r
+ virtual void OnKeyReleased(const Tizen::Ui::Control& source, Tizen::Ui::KeyCode keyCode);\r
+ virtual void OnKeyLongPressed(const Tizen::Ui::Control& source, Tizen::Ui::KeyCode keyCode){};\r
+\r
+private:\r
+ /**\r
+ * create message launching from app control.\r
+ *\r
+ * @return void.\r
+ */\r
+ void LoadDraftMessage(void);\r
+ void ShowMessagePopup(const Tizen::Base::String& message, int leftActionId, int rightActionId);\r
+ void DestroyMessagePopup(void);\r
+ void CreateDraftMsgAndExit(MessageComposeData* pMsgComposeData);\r
+\r
+private:\r
+ RecipientPanel* __pRecipientPanel;\r
+ MessageComposePanel* __pMsgComposePanel;\r
+ MessageData* __pDraftMessageEntry;\r
+ Tizen::Ui::Controls::Popup* __pMessagePopup;\r
+ Tizen::Ui::Controls::Panel* __pTrayPanel;\r
+ DurationPopup* __pDurationPopup;\r
+ bool __needToSetFocusRecipient;\r
+\r
+};\r
+\r
+#endif //_MSG_COMPOSE_FORM_H_\r
--- /dev/null
+//\r
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.\r
+//\r
+// Licensed under the Flora License, Version 1.0 (the License);\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+// http://floralicense.org/license/\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an AS IS BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+//\r
+\r
+/**\r
+ * @file MsgCompressPopup.h\r
+ * @brief This is the header file for the %CompressPopup class.\r
+ *\r
+ * This header file contains the declarations of the %CompressPopup class.\r
+ */\r
+#ifndef _MSG_COMPRESS_POPUP_H_\r
+#define _MSG_COMPRESS_POPUP_H_\r
+\r
+#include <FUiCtrlPopup.h>\r
+#include <FUiCtrlButton.h>\r
+\r
+class CompressPopup\r
+ : public Tizen::Ui::Controls::Popup\r
+ , public Tizen::Base::Runtime::ITimerEventListener\r
+{\r
+public:\r
+ CompressPopup(void);\r
+ virtual ~CompressPopup(void);\r
+ result Construct(bool hideSubject);\r
+ virtual result OnDraw(void);\r
+\r
+protected:\r
+ //ITimerEventListner\r
+ void OnTimerExpired(Tizen::Base::Runtime::Timer& timer);\r
+ bool IsTimerExpired() const {return false;};\r
+\r
+private:\r
+ int __iconIndex;\r
+ Tizen::Ui::Controls::Button* __pButton;\r
+ Tizen::Base::Runtime::Timer* __pTimer;\r
+};\r
+\r
+#endif // _MSG_COMPRESS_POPUP_H_\r
--- /dev/null
+//\r
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.\r
+//\r
+// Licensed under the Flora License, Version 1.0 (the License);\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+// http://floralicense.org/license/\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an AS IS BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+//\r
+\r
+/**\r
+ * @file MsgContactList.h\r
+ * @brief This is the header file for the %ContactList class.\r
+ *\r
+ * This header file contains the declarations of the %ContactList class.\r
+ */\r
+#ifndef _MSG_CONTACT_LIST_H_\r
+#define _MSG_CONTACT_LIST_H_\r
+\r
+#include <FApp.h>\r
+#include <FGraphics.h>\r
+#include <FMedia.h>\r
+#include <FIo.h>\r
+#include <FUi.h>\r
+\r
+#include "MsgIPopupEventListener.h"\r
+\r
+class ContactPopup;\r
+\r
+class ContactDetails\r
+ : public Tizen::Base::Object\r
+{\r
+public:\r
+ Tizen::Base::String contactName;\r
+ Tizen::Base::String contactNumber;\r
+ ContactDetails(void)\r
+ {\r
+\r
+ }\r
+};\r
+\r
+class ContactList\r
+ : public Tizen::Ui::IActionEventListener\r
+ , public Tizen::Ui::Controls::IListViewItemEventListener\r
+ , public Tizen::Ui::Controls::IListViewItemProvider\r
+ , public IPopupEventListener\r
+{\r
+\r
+public:\r
+ ContactList(void);\r
+ virtual ~ContactList(void);\r
+\r
+ result Construct(Tizen::Base::Collection::ArrayList* pPhoneNumberList);\r
+\r
+ // IListViewItemEventListener\r
+ virtual void OnListViewContextItemStateChanged(Tizen::Ui::Controls::ListView& listView, int index, int elementId, Tizen::Ui::Controls::ListContextItemStatus state);\r
+ virtual void OnListViewItemStateChanged(Tizen::Ui::Controls::ListView& listView, int index, int elementId, Tizen::Ui::Controls::ListItemStatus status);\r
+ virtual void OnListViewItemSwept(Tizen::Ui::Controls::ListView& listView, int index, Tizen::Ui::Controls::SweepDirection direction);\r
+ virtual void OnListViewItemLongPressed(Tizen::Ui::Controls::ListView& listView, int index, int elementId, bool& invokeListViewItemCallback);\r
+\r
+ //IListViewItemProvider\r
+ virtual Tizen::Ui::Controls::ListItemBase* CreateItem(int index, int itemWidth);\r
+ virtual bool DeleteItem(int index, Tizen::Ui::Controls::ListItemBase* pItem, int itemWidth);\r
+ virtual int GetItemCount(void);\r
+\r
+ //From IMsgPopupEventListener\r
+ virtual void OnPopupListItemSelected(const Tizen::Ui::Control& popup, int selectIndex, const Tizen::Base::Object* pPopupListItem);\r
+ virtual void OnPopupClose(Tizen::Base::Object* pObject );\r
+\r
+ //From IActionEventListener\r
+ virtual void OnActionPerformed(const Tizen::Ui::Control& source, int actionId);\r
+\r
+private:\r
+ /**\r
+ * Contact list popup to show operations like Add/view,Block,Delete Options.\r
+ */\r
+ void ContactListPopup(void);\r
+\r
+ /**\r
+ * Block popup to block phone number selected with Ok/Cancel buttons.\r
+ */\r
+ void BlockPopup();\r
+\r
+ /**\r
+ * Unblock selected phonenumber.Selected number deleted from spam number list.\r
+ */\r
+\r
+ void UnBlockPhoneNumber();\r
+\r
+private:\r
+ //! To prevent copy constructor and assignment\r
+ ContactList(const ContactList& rhs);\r
+ ContactList& operator =(const ContactList& rhs);\r
+\r
+private:\r
+ Tizen::Base::Collection::ArrayList* __pContactList; //! Not own\r
+ ContactPopup* __pContactPopup;\r
+ Tizen::Base::String __titleName;\r
+ Tizen::Base::String __contactNumber;\r
+ Tizen::Ui::Controls::Popup* __pBlockConfirmPopup;\r
+};\r
+\r
+#endif // _MSG_CONTACT_LIST_H_\r
--- /dev/null
+//\r
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.\r
+//\r
+// Licensed under the Flora License, Version 1.0 (the License);\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+// http://floralicense.org/license/\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an AS IS BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+//\r
+\r
+/**\r
+ * @file MsgContactListItem.h\r
+ * @brief This is the header file for the %ContactListItem class.\r
+ *\r
+ * This header file contains the declarations of the %ContactListItem class.\r
+ */\r
+#ifndef _MSG_CONTACT_LIST_ITEM_H_\r
+#define _MSG_CONTACT_LIST_ITEM_H_\r
+\r
+#include <FApp.h>\r
+#include <FGraphics.h>\r
+#include <FIo.h>\r
+#include <FMedia.h>\r
+#include <FUi.h>\r
+\r
+class LVMultiLineTextItem;\r
+\r
+/**\r
+ * @class ContactListItem\r
+ *\r
+ * Class ContactListItem is for displaying contacts in list view.\r
+ */\r
+\r
+class ContactListItem\r
+ : public Tizen::Ui::Controls::CustomItem\r
+{\r
+\r
+public:\r
+ /**\r
+ * Default constructor for this class.\r
+ *\r
+ * @param contactName - Contact name to display\r
+ * @param contactNumber - Contact number to display\r
+ * @param width - Width for conatct list item\r
+ * @param editMode - list item mark mode\r
+ */\r
+ ContactListItem(const Tizen::Base::String& contactName, const Tizen::Base::String& contactNumber, int width, bool editMode);\r
+\r
+ /**\r
+ * Default destructor for this class.\r
+ */\r
+ virtual ~ContactListItem(void);\r
+\r
+ /**\r
+ * Create contact list item layout\r
+ *\r
+ * @param searchText for contact and phonenumber\r
+ *\r
+ * @return void\r
+ */\r
+ void CreateContactListItemLayout(const Tizen::Base::String& searchText = L"");\r
+\r
+private:\r
+ void CreateContactTitleElement(const Tizen::Base::String& searchText);\r
+ void CreateContactNumberElement(const Tizen::Base::String& searchText);\r
+\r
+ //! Empty copy constructor\r
+ ContactListItem(const ContactListItem& rhs);\r
+ //! Empty assignment operator.\r
+ ContactListItem& operator =(const ContactListItem& rhs);\r
+\r
+private:\r
+ bool __IsEditMode;\r
+ int __Width;\r
+ Tizen::Base::String __contactName;\r
+ Tizen::Base::String __contactNumber;\r
+ Tizen::Graphics::Font* __pTitleFont;\r
+ Tizen::Graphics::Font* __pSubTextFont;\r
+ LVMultiLineTextItem* __pMtTextName;\r
+ LVMultiLineTextItem* __pMtTextNumber;\r
+};\r
+\r
+#endif //_MSG_CONTACT_LIST_ITEM_H_\r
--- /dev/null
+//\r
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.\r
+//\r
+// Licensed under the Flora License, Version 1.0 (the License);\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+// http://floralicense.org/license/\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an AS IS BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+//\r
+\r
+/**\r
+ * @file MsgContactPopup.h\r
+ * @brief This is the header file for the %ContactPopup class.\r
+ *\r
+ * This header file contains the declarations of the %ContactPopup class.\r
+ */\r
+#ifndef _MSG_CONTACT_POPUP_H_\r
+#define _MSG_CONTACT_POPUP_H_\r
+\r
+#include <FApp.h>\r
+#include <FUi.h>\r
+\r
+#include "MsgIPopupEventListener.h"\r
+\r
+class PopupListItem\r
+ : public Tizen::Base::Object\r
+{\r
+public:\r
+ PopupListItem(Tizen::Base::String& itemText, int actionId)\r
+ : __itemText(itemText)\r
+ , __actionId(actionId)\r
+ {}\r
+ ~PopupListItem(void) {}\r
+ const Tizen::Base::String& GetItemText(void) const { return __itemText;}\r
+ int GetActionId(void) const {return __actionId; }\r
+private:\r
+ Tizen::Base::String __itemText;\r
+ int __actionId;\r
+};\r
+\r
+class ContactPopup\r
+ : public Tizen::Ui::Controls::Popup\r
+ , public Tizen::Ui::IActionEventListener\r
+ , public Tizen::Ui::Controls::IListViewItemEventListener\r
+ , public Tizen::Ui::Controls::IListViewItemProvider\r
+{\r
+\r
+public:\r
+ ContactPopup(IPopupEventListener& listener);\r
+ virtual ~ContactPopup(void);\r
+ result Construct(const Tizen::Base::String& contactName, const Tizen::Base::String& contactNumber);\r
+\r
+ // IListViewItemEventListener\r
+ virtual void OnListViewContextItemStateChanged(Tizen::Ui::Controls::ListView& listView, int index, int elementId, Tizen::Ui::Controls::ListContextItemStatus state);\r
+ virtual void OnListViewItemStateChanged(Tizen::Ui::Controls::ListView& listView, int index, int elementId, Tizen::Ui::Controls::ListItemStatus status);\r
+ virtual void OnListViewItemSwept(Tizen::Ui::Controls::ListView& listView, int index, Tizen::Ui::Controls::SweepDirection direction);\r
+ virtual void OnListViewItemLongPressed(Tizen::Ui::Controls::ListView& listView, int index, int elementId, bool& invokeListViewItemCallback);\r
+\r
+ //IListViewItemProvider\r
+ virtual Tizen::Ui::Controls::ListItemBase* CreateItem(int index, int itemWidth);\r
+ virtual bool DeleteItem(int index, Tizen::Ui::Controls::ListItemBase* pItem, int itemWidth);\r
+ virtual int GetItemCount(void);\r
+\r
+ // From IActionEventListener\r
+ void OnActionPerformed(const Tizen::Ui::Control& source, int actionId);\r
+\r
+protected:\r
+ void InitalizePopupItems(void);\r
+\r
+private:\r
+ Tizen::Base::String __titleName;\r
+ Tizen::Base::String __contactName;\r
+ Tizen::Base::String __contactNumber;\r
+ Tizen::Ui::Controls::Button* __pCancelButton;\r
+ IPopupEventListener& __popupListener;\r
+ Tizen::Base::Collection::ArrayList* __pPopupItemList;\r
+};\r
+\r
+#endif //_MSG_CONTACT_POPUP_H_\r
--- /dev/null
+//\r
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.\r
+//\r
+// Licensed under the Flora License, Version 1.0 (the License);\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+// http://floralicense.org/license/\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an AS IS BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+//\r
+\r
+/**\r
+ * @file MsgContactUtility.h\r
+ * @brief This is the header file for the %ContactUtility class.\r
+ *\r
+ * This header file contains the declarations of the %ContactUtility class.\r
+ */\r
+#ifndef _MSG_CONTACTUTILITY_H_\r
+#define _MSG_CONTACTUTILITY_H_\r
+\r
+namespace Tizen { namespace Base {\r
+namespace Collection {\r
+class IList;\r
+}\r
+class String;\r
+}}\r
+\r
+namespace Tizen { namespace Social {\r
+class Contact;\r
+}}\r
+\r
+/**\r
+ * @class ContactUtility\r
+ *\r
+ * Class ContactUtility is an utility class, it used to do voice call,add contact,view contact\r
+ */\r
+\r
+class ContactUtility\r
+{\r
+public:\r
+ /**\r
+ * Create and return bitmap icon based on given message icon type.\r
+ *\r
+ * @param iconType - Type of message icon.\r
+ *\r
+ * @return Bitmap* In case of valid message icon type else NULL.\r
+ *\r
+ */\r
+ static void VoiceCall(const Tizen::Base::String& phoneNumber);\r
+\r
+ /**\r
+ * Create and return bitmap icon based on given message icon type.\r
+ *\r
+ * @param iconType - Type of message icon.\r
+ *\r
+ * @return Bitmap* In case of valid message icon type else NULL.\r
+ *\r
+ */\r
+ static void AddContact(const Tizen::Base::String& phoneNumber);\r
+\r
+ /**\r
+ * Create and return bitmap icon based on given message icon type.\r
+ *\r
+ * @param iconType - Type of message icon.\r
+ *\r
+ * @return Bitmap* In case of valid message icon type else NULL.\r
+ *\r
+ */\r
+ static void ViewContact(const Tizen::Base::String& phoneNumber);\r
+ static Tizen::Social::Contact* GetContact(Tizen::Base::Collection::IList* pContactList, const Tizen::Base::String& phoneNumber);\r
+};\r
+\r
+\r
+#endif /* MSGCONTACTUTILITY_H_ */\r
--- /dev/null
+//\r
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.\r
+//\r
+// Licensed under the Flora License, Version 1.0 (the License);\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+// http://floralicense.org/license/\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an AS IS BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+//\r
+\r
+/**\r
+ * @file MsgConversationData.h\r
+ * @brief This is the header file for the %ConversationData class.\r
+ *\r
+ * This header file contains the declarations of the %ConversationData class.\r
+ */\r
+#ifndef _MSG_CONVERSATION_DATA_H_\r
+#define _MSG_CONVERSATION_DATA_H_\r
+\r
+#include <msg_storage_types.h>\r
+\r
+#include "MsgBaseData.h"\r
+\r
+namespace Tizen { namespace Base { namespace Collection\r
+{\r
+class ArrayList;\r
+}}};\r
+namespace Tizen { namespace Graphics\r
+{\r
+class Bitmap;\r
+}};\r
+/**\r
+ * @class ConversationData\r
+ *\r
+ * Class ConversationData hold minimum information for a conversation message.\r
+ */\r
+\r
+class ConversationData\r
+ : public BaseData\r
+{\r
+public:\r
+ /**\r
+ * Default constructor for this class.\r
+ */\r
+ ConversationData(const Tizen::Base::String& threadName);\r
+\r
+ /**\r
+ * Default destructor for this class.\r
+ */\r
+ virtual ~ConversationData(void);\r
+\r
+ /**\r
+ * 2nd phase constructor\r
+ */\r
+ result Construct(msg_struct_t pMessageInfo);\r
+\r
+ // Form Base class\r
+ BaseData* CloneN(void);\r
+ int GetEntryId(void) const;\r
+ int GetUnreadCount(void) const;\r
+ const Tizen::Base::String& GetDisplayName(void) const;\r
+ const Tizen::Base::String& GetMessageText(void) const;\r
+ int GetMessageType(void) const;\r
+ const Tizen::Base::String& GetTimeStamp(void) const;\r
+ const Tizen::Base::String& GetGroupName(void) const;\r
+ const int GetDraftMessageCount(void) const;\r
+ DataType GetDataType(void);\r
+ void SetDisplayName(const Tizen::Base::String& strName);\r
+\r
+ // New API\r
+ /**\r
+ * Checkout message is sent or receive. This is an synchronous API.\r
+ *\r
+ * @return bool - true, In case of sent message and false in case of receive message.\r
+ *\r
+ */\r
+ bool IsSent(void) const;\r
+\r
+ /**\r
+ * Checkout message is read or unread. This is an synchronous API.\r
+ *\r
+ * @return bool - true, In case unread message else false.\r
+ *\r
+ */\r
+ bool IsUnRead(void) const;\r
+\r
+ /**\r
+ * Return true in case of faild message\r
+ */\r
+ bool IsSentFail(void) const;\r
+\r
+ /**\r
+ * Return true in case of message in sending state.\r
+ */\r
+ bool IsSending(void) const;\r
+\r
+ /**\r
+ * Return true in case of MMS\r
+ */\r
+ bool IsMms(void) const;\r
+\r
+ /**\r
+ * Return thread ID for current message.\r
+ */\r
+ int GetThreadId(void) const;\r
+\r
+ /**\r
+ * Return message ID for current message.\r
+ */\r
+ int GetMessageId(void) const;\r
+\r
+ /**\r
+ * Get default thumbnail for conversation\r
+ */\r
+ Tizen::Graphics::Bitmap* GetThumbnail(void);\r
+\r
+ /**\r
+ * Return subject string if exist.\r
+ */\r
+ const Tizen::Base::String& GetSubject(void) const;\r
+\r
+ /**\r
+ * Get attachment for current conversation data\r
+ */\r
+ int GetAttachmentCount(void) const;\r
+\r
+ // Progress realted animation API\r
+ void SetAnimationIconIndex(int index);\r
+ int GetAnimationIconIndex(void) const;\r
+\r
+private:\r
+ result InitMessageBody(msg_struct_t pMessageInfo);\r
+ result InitTimeStampGroupName(void);\r
+ result InitMmsData(msg_struct_t pMessageInfo);\r
+\r
+ //! To prevent copy constructor and assignment\r
+ ConversationData(const ConversationData& rhs);\r
+ ConversationData& operator =(const ConversationData& rhs);\r
+\r
+private:\r
+ //! Message entry information\r
+ int __messageId;\r
+ int __threadId;\r
+ int __messageType;\r
+ int __folderId;\r
+ int __displayTime;\r
+ int __networkStatus;\r
+ bool __isRead;\r
+ int __messageDirection;\r
+ Tizen::Base::String __displayName;\r
+ Tizen::Base::String __messageBody;\r
+ Tizen::Base::String __groupName;\r
+ Tizen::Base::String __timeStamp;\r
+ //! conversation field MMS related\r
+ int __pageCount;\r
+ int __attachmentCount;\r
+ Tizen::Base::String __thumbnailPath;\r
+ Tizen::Graphics::Bitmap* __pThumbnailBitmap;\r
+ Tizen::Base::String __subjectStr;\r
+ //! Animation icon index for sending message\r
+ int __animationIconIndex;\r
+};\r
+\r
+#endif // _MSG_CONVERSATION_DATA_H_\r
--- /dev/null
+//\r
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.\r
+//\r
+// Licensed under the Flora License, Version 1.0 (the License);\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+// http://floralicense.org/license/\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an AS IS BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+//\r
+\r
+/**\r
+ * @file MsgConversationForm.h\r
+ * @brief This is the header file for the %ConversationForm class.\r
+ *\r
+ * This header file contains the declarations of the %ConversationForm class.\r
+ */\r
+#ifndef _MSG_CONVERSATION_FORM_H_\r
+#define _MSG_CONVERSATION_FORM_H_\r
+\r
+#include <FUiCtrlIGroupedListViewItemEventListener.h>\r
+#include <FUiCtrlIGroupedListViewItemProvider.h>\r
+#include <FUiScenesISceneEventListener.h>\r
+\r
+#include "MsgBaseForm.h"\r
+#include "MsgIComposeEventObserver.h"\r
+#include "MsgIConversationEventListener.h"\r
+#include "MsgIDeleteEventListener.h"\r
+#include "MsgISizeChangeEventListener.h"\r
+#include "MsgIPopupEventListener.h"\r
+#include "MsgTypes.h"\r
+\r
+namespace Tizen { namespace Ui { namespace Controls\r
+{\r
+class Button;\r
+class CheckButton;\r
+class ContextMenu;\r
+class ExpandableEditArea;\r
+class Panel;\r
+class Popup;\r
+class Label;\r
+}}};\r
+class AttachementSavePopup;\r
+class DurationPopup;\r
+class ThreadData;\r
+class MessageComposePanel;\r
+class ContactList;\r
+class ContactPopup;\r
+class MsgProgressPopup;\r
+class OptionPopup;\r
+class MsgResendDeletePopup;\r
+//class ThreadData;\r
+\r
+/**\r
+ * @class ConversationForm\r
+ *\r
+ * Class MsgConversationForm displays list of messages for single thread in bubble view.\r
+ */\r
+\r
+class ConversationForm\r
+ : public BaseForm\r
+ , public Tizen::Ui::IKeypadEventListener\r
+ , public Tizen::Ui::IKeyEventListener\r
+ , public Tizen::Ui::ITouchEventListener\r
+ , public Tizen::Ui::IOrientationEventListener\r
+ , public Tizen::Ui::Controls::IGroupedListViewItemEventListener\r
+ , public Tizen::Ui::Controls::IGroupedListViewItemProvider\r
+ , public Tizen::Ui::Scenes::ISceneEventListener\r
+ , public IComposeEventObserver\r
+ , public IConversationEventListener\r
+ , public IDeleteEventListener\r
+ , public IPopupEventListener\r
+ , public ISizeChangeEventListener\r
+{\r
+public:\r
+ ConversationForm(ConversationListFormType convListType);\r
+ virtual ~ConversationForm(void);\r
+ bool Initialize(void);\r
+\r
+protected:\r
+ // From From\r
+ virtual result OnInitializing(void);\r
+ virtual result OnTerminating(void);\r
+\r
+ // From IActionEventListener\r
+ void OnActionPerformed(const Tizen::Ui::Control& source, int actionId);\r
+\r
+ // From ISceneEventListener\r
+ virtual void OnSceneActivatedN(const Tizen::Ui::Scenes::SceneId& previousSceneId, const Tizen::Ui::Scenes::SceneId& currentSceneId, Tizen::Base::Collection::IList* pArgs);\r
+ virtual void OnSceneDeactivated(const Tizen::Ui::Scenes::SceneId& currentSceneId, const Tizen::Ui::Scenes::SceneId& nextSceneId);\r
+\r
+ //Orientation listener\r
+ virtual void OnOrientationChanged(const Tizen::Ui::Control& source, Tizen::Ui::OrientationStatus orientationStatus);\r
+\r
+ // From IKeypadEventListener\r
+ virtual void OnKeypadActionPerformed(Tizen::Ui::Control& source, Tizen::Ui::KeypadAction keypadAction);\r
+ virtual void OnKeypadClosed(Tizen::Ui::Control& source);\r
+ virtual void OnKeypadOpened(Tizen::Ui::Control& source);\r
+ virtual void OnKeypadWillOpen(Tizen::Ui::Control& source);\r
+ virtual void OnKeypadBoundsChanged(Tizen::Ui::Control& source);\r
+\r
+ void OnFormBackRequested(Tizen::Ui::Controls::Form& source);\r
+\r
+ // From IMsgConversationEventListener\r
+ void OnConversationListChange(MsgStorageChangeType msgStorageChangeType);\r
+\r
+ // From IMsgDeleteEventListener\r
+ void OnDeleteStart(int totalCount);\r
+ void OnDeleteUpdate(int deleteCount, int totalCount);\r
+ void OnDeleteComplete(int errCode, Tizen::Base::Object* pThreadObject);\r
+\r
+ // From base class\r
+ void OnIntializeFooter(Tizen::Ui::Controls::Footer& footer);\r
+ void OnIntializeHeader(Tizen::Ui::Controls::Header& header);\r
+ void OnUserEventReceivedN(RequestId requestId, Tizen::Base::Collection::IList* pArgs);\r
+\r
+ //From IMsgPopupEventListener\r
+ virtual void OnPopupListItemSelected(const Tizen::Ui::Control& popup, int selectIndex, const Tizen::Base::Object* pPopupListItem);\r
+ virtual void OnPopupClose(Tizen::Base::Object* pObject);\r
+\r
+ //From IKeyEventListener\r
+ virtual void OnKeyPressed(const Tizen::Ui::Control& source, Tizen::Ui::KeyCode keyCode){};\r
+ virtual void OnKeyReleased(const Tizen::Ui::Control& source, Tizen::Ui::KeyCode keyCode);\r
+ virtual void OnKeyLongPressed(const Tizen::Ui::Control& source, Tizen::Ui::KeyCode keyCode){};\r
+\r
+ //From ITouchEventListener\r
+ virtual void OnTouchPressed(const Tizen::Ui::Control& source, const Tizen::Graphics::Point& currentPosition, const Tizen::Ui::TouchEventInfo& touchInfo);\r
+ virtual void OnTouchReleased(const Tizen::Ui::Control& source, const Tizen::Graphics::Point& currentPosition, const Tizen::Ui::TouchEventInfo& touchInfo){};\r
+ virtual void OnTouchMoved(const Tizen::Ui::Control& source, const Tizen::Graphics::Point& currentPosition, const Tizen::Ui::TouchEventInfo& touchInfo){};\r
+ virtual void OnTouchFocusIn(const Tizen::Ui::Control& source, const Tizen::Graphics::Point& currentPosition, const Tizen::Ui::TouchEventInfo& touchInfo){};\r
+ virtual void OnTouchFocusOut(const Tizen::Ui::Control& source, const Tizen::Graphics::Point& currentPosition, const Tizen::Ui::TouchEventInfo& touchInfo){};\r
+\r
+ //From IGroupedListViewItemEventListener\r
+ virtual void OnGroupedListViewItemStateChanged(Tizen::Ui::Controls::GroupedListView& listView, int groupIndex, int itemIndex, int elementId, Tizen::Ui::Controls::ListItemStatus status);\r
+ virtual void OnGroupedListViewItemSwept(Tizen::Ui::Controls::GroupedListView& listView, int groupIndex, int itemIndex, Tizen::Ui::Controls::SweepDirection direction);\r
+ virtual void OnGroupedListViewContextItemStateChanged(Tizen::Ui::Controls::GroupedListView& listView, int groupIndex, int itemIndex, int elementId, Tizen::Ui::Controls::ListContextItemStatus status);\r
+ virtual void OnGroupedListViewItemLongPressed(Tizen::Ui::Controls::GroupedListView& listView, int groupIndex, int itemIndex, int elementId, bool& invokeListViewItemCallback);\r
+\r
+ //From IGroupedListViewItemProvider\r
+ virtual int GetGroupCount(void);\r
+ virtual int GetItemCount(int groupIndex);\r
+ virtual Tizen::Ui::Controls::GroupItem* CreateGroupItem(int groupIndex, int itemWidth);\r
+ virtual bool DeleteGroupItem(int groupIndex, Tizen::Ui::Controls::GroupItem* pItem, int itemWidth);\r
+ virtual Tizen::Ui::Controls::ListItemBase* CreateItem(int groupIndex, int itemIndex, int itemWidth);\r
+ virtual bool DeleteItem(int groupIndex, int itemIndex, Tizen::Ui::Controls::ListItemBase* pItem, int itemWidth);\r
+\r
+ //Form ISizeChangeEventListener\r
+ virtual void OnSizeIncrease(const Tizen::Ui::Control& control);\r
+ virtual void OnSizeDecrease(const Tizen::Ui::Control& control);\r
+\r
+ // Form IComposeEventObserver\r
+ virtual void OnComposeStateChange(ComposeType type);\r
+ virtual void OnSendButtonClick(void);\r
+ void ShowDeleteConfirmPopup(void);\r
+\r
+private:\r
+ // New API\r
+\r
+ /**\r
+ * takes icon as an input and return a bitmap pointer\r
+ *\r
+ * @param MessageIconType - Indicate type of icon\r
+ *\r
+ * @return Bitmap* -return Bitmap pointer.\r
+ */\r
+ Tizen::Graphics::Bitmap* GetBitmapN(MessageIconType msgType);\r
+ /**\r
+ * takes icon as an input and return a bitmap poiner\r
+ *\r
+ * @param msgType - Indicate type of msg\r
+ *\r
+ * @return MessageIconType -Message Icon\r
+ */\r
+ MessageIconType ConvertIconType(int msgType);\r
+\r
+ /**\r
+ * Set footer properties\r
+ *\r
+ * @return void\r
+ */\r
+ void SetFooter(void);\r
+\r
+ /**\r
+ * Set header properties\r
+ *\r
+ * @return void\r
+ */\r
+ void SetHeader(void);\r
+\r
+ /**\r
+ * Set conversation view mode footer.\r
+ * @param footer - Form footer instance.\r
+ * @return void\r
+ */\r
+ void SetViewModeFooter(Tizen::Ui::Controls::Footer& footer);\r
+\r
+ /**\r
+ * Set conversation edit mode footer.\r
+ * @param footer - Form footer instance.\r
+ * @return void\r
+ */\r
+ void SetEditModeFooter(Tizen::Ui::Controls::Footer& footer);\r
+\r
+ /**\r
+ * Set conversation edit mode header.\r
+ * @param header - Form header instance.\r
+ * @return void\r
+ */\r
+ void SetEditModeHeader(Tizen::Ui::Controls::Header& header);\r
+\r
+ /**\r
+ * Set conversation edit mode header.\r
+ * @param header - Form header instance.\r
+ * @return void\r
+ */\r
+ void SetViewModeHeader(Tizen::Ui::Controls::Header& header);\r
+\r
+ /**\r
+ * Add check box control to check/uncheck all item.\r
+ *\r
+ * @return E_SUCCESS in case successfully add control else E_FAILURE.\r
+ */\r
+ result AddEditCheckBox(void);\r
+\r
+ /**\r
+ * Add check box control to check/uncheck all item.\r
+ *\r
+ * @return E_SUCCESS in case successfully add control else E_FAILURE.\r
+ */\r
+ result AddLabelSelectionInfo(void);\r
+\r
+ /**\r
+ * To check all list item.\r
+ *\r
+ * @Return void\r
+ */\r
+ void CheckAll(bool value);\r
+\r
+ /**\r
+ * To delete selected message or thread.\r
+ */\r
+ void DeleteSelectedItem(void);\r
+\r
+ /**\r
+ * To Show/hide item selection information\r
+ *\r
+ * @return void\r
+ */\r
+ void ShowHideSelectionInfo(void);\r
+\r
+ /**\r
+ *To show title text on header button.\r
+ *\r
+ * @return void\r
+ */\r
+ Tizen::Base::String GetTitleText() const;\r
+\r
+ /**\r
+ * Prepare contact list to view on tapping recipient button on header.\r
+ *\r
+ * @return void\r
+ */\r
+ void PrepareContactList(void);\r
+\r
+ /**\r
+ * To Show contact list with name,phone number.on selecting item\r
+ * it show popup to voice call,Add/View and block contact\r
+ *\r
+ * @return void\r
+ */\r
+ void ShowContactList(bool value);\r
+\r
+ /**\r
+ * To show context menu for single recipient Call,View/Add,Block\r
+ *\r
+ * @return void\r
+ */\r
+ result CreateContextMenu(const Tizen::Ui::Control& source);\r
+\r
+ /**\r
+ * Context menu to Call,View/Add,Block contact\r
+ *\r
+ * @return void\r
+ */\r
+ void ContactHelper(int helperType);\r
+\r
+ /**\r
+ * Resend and delete popup to resend and delete message\r
+ *\r
+ * @return void\r
+ */\r
+ void ResendDeletePopup(int index);\r
+\r
+ /**\r
+ * Initialize conversation view related controls\r
+ *\r
+ */\r
+ result InitializeConversationViewControls(void);\r
+\r
+ /**\r
+ * Initialize conversation edit UI related controls\r
+ */\r
+ result InitializeConversationEditControls(void);\r
+\r
+ /**\r
+ * Block popup to block number with Ok/Cancel button.\r
+ */\r
+ void BlockPopup(const Tizen::Base::String& phoneNumber);\r
+\r
+ /**\r
+ * UnBlock phone number removed from SPAM number list.\r
+ */\r
+ void UnBlockPhoneNumber(const Tizen::Base::String& phoneNumber);\r
+\r
+\r
+private:\r
+ // Member variable.\r
+ ConversationListFormType __convFormType;\r
+ MessageComposePanel* __pMsgComposePanel;\r
+ Tizen::Graphics::Rectangle __prevBounds;\r
+ Tizen::Ui::Controls::GroupedListView* __pConvMessageList;\r
+ ThreadData* __pCurrentThreadEntry;\r
+ // Selection in edit mode\r
+ Tizen::Ui::Controls::CheckButton* __pCheckAll;\r
+ Tizen::Ui::Controls::Label* __pSelectionInfo;\r
+ Tizen::Base::Collection::ArrayListT< int >* __pSelectedIds;\r
+ MsgProgressPopup* __pProgressPopup;\r
+ Tizen::Ui::Controls::ListView* __pList;\r
+ ContactList* __pConContactList;\r
+ Tizen::Ui::Controls::ContextMenu* __pContextMenuText;\r
+ Tizen::Ui::Controls::Popup* __pDeleteConfirmPopup;\r
+ Tizen::Base::Collection::ArrayList* __pContactDetails;\r
+ Tizen::Ui::Controls::Popup* __pResendDelete;\r
+ Tizen::Ui::Controls::Panel* __pTrayPanel;\r
+ OptionPopup* __pOptionPopup;\r
+ MsgResendDeletePopup* __pResendDeletePopup;\r
+ Tizen::Ui::Controls::Popup* __pBlockPopup;\r
+ Tizen::Base::String __pPhoneNumber;\r
+ AttachementSavePopup* __pSaveAttachmentsPopup;\r
+ DurationPopup* __pDurationPopup;\r
+ bool __isListViewItemLongPressed;\r
+};\r
+\r
+//}\r
+#endif //_MSG_CONVERSATION_FORM_H_\r
--- /dev/null
+//\r
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.\r
+//\r
+// Licensed under the Flora License, Version 1.0 (the License);\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+// http://floralicense.org/license/\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an AS IS BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+//\r
+\r
+/**\r
+ * @file MsgConversationPresentationModel.h\r
+ * @brief This is the header file for the %ConversationPresentationModel class.\r
+ *\r
+ * This header file contains the declarations of the %ConversationPresentationModel class.\r
+ */\r
+#ifndef _MSG_CONVERSATION_PRESENTATION_MODEL_H_\r
+#define _MSG_CONVERSATION_PRESENTATION_MODEL_H_\r
+\r
+#include <msg_storage_types.h>\r
+#include <msg_types.h>\r
+\r
+#include <FBaseColIListT.h>\r
+#include <FBaseTypes.h>\r
+\r
+#include "MsgListPresentationModel.h"\r
+\r
+namespace Tizen { namespace Base { namespace Collection\r
+{\r
+class ArrayList;\r
+}}};\r
+\r
+class DeleteHandlerThread;\r
+class IConversationEventListener;\r
+class IDeleteEventListener;\r
+class MessageData;\r
+\r
+/**\r
+ * @class ConversationPresentationModel\r
+ *\r
+ * This class interact with SLP layer and fetch message thread list,thread conversation details\r
+ * from message store.For interface API check ConversationPresentationModel.\r
+ */\r
+class ConversationPresentationModel\r
+ : public ListPresentationModel\r
+{\r
+\r
+public:\r
+ /**\r
+ * Allocation method for this class\r
+ *\r
+ * @param Take no argument.\r
+ *\r
+ * @return Return instance of this class\r
+ *\r
+ */\r
+ static ConversationPresentationModel* GetInstance(void);\r
+\r
+ /**\r
+ * Add conversation event listener observer\r
+ *\r
+ * @param convLitener - Conversation event listener.\r
+ * @param threadId - Thread ID\r
+ *\r
+ * @return result - E_SUCCESS, In case of successfully add to listener list else\r
+ * E_FAILURE\r
+ */\r
+ result AddConversationEventListener(const IConversationEventListener& convLitener, const int threadId);\r
+\r
+ /**\r
+ * Remove conversation event listener observer\r
+ *\r
+ * @param convLitener - Conversation event listener.\r
+ *\r
+ * @return result - E_SUCCESS, In case of successfully remove listener from list else\r
+ * E_FAILURE\r
+ */\r
+ result RemoveConversationEventListener(const IConversationEventListener& convLitener);\r
+\r
+ /**\r
+ * Get draft message for current conversation thread\r
+ */\r
+ const MessageData* GetDraftMessage(void) const;\r
+\r
+ /**\r
+ * Get conversation data and hold it for given thread.\r
+ */\r
+ void GetConversationMessageList(int threadId);\r
+\r
+protected:\r
+ /**\r
+ * Thread message store change call back. This will call in case of new, delete, update and\r
+ * contact information change.\r
+ *\r
+ * @param pMsgHandle - Message hadle to communicate with message service layer.\r
+ * @param storageChangeType - change type.\r
+ * @param pMsgIdList - Change message ID list\r
+ * @param pUserParam - User additional parameter.\r
+ *\r
+ * @return void\r
+ */\r
+ static void MessageStorageChangeCallback(msg_handle_t pMsgHandle, msg_storage_change_type_t storageChangeType, msg_id_list_s* pMsgIdList, void* pUserParam);\r
+\r
+ /**\r
+ * This will call by storage change call back in case of new, delete, update and\r
+ * contact information change.\r
+ *\r
+ * @param storageChangeType - change type.\r
+ * @param pMsgIdList - Change message ID list\r
+ *\r
+ * @return void\r
+ */\r
+ void OnMessageStorageChange(msg_storage_change_type_t storageChangeType, msg_id_list_s* pMsgIdList);\r
+\r
+ /**\r
+ * Iterate active conversation event listener and notify.\r
+ *\r
+ * @param No argument.\r
+ *\r
+ * @return void.\r
+ */\r
+ void NotifyConversationChange(msg_storage_change_type_t storageChangeType);\r
+\r
+private:\r
+ /**\r
+ * Default constructor for this class.\r
+ */\r
+ ConversationPresentationModel(void);\r
+\r
+ /**\r
+ * Default destructor for this class\r
+ */\r
+ virtual ~ConversationPresentationModel(void);\r
+\r
+ /**\r
+ * Second phase construction\r
+ */\r
+ result Construct(void);\r
+ static void CreateInstance(void);\r
+ static void DestroyInstance(void);\r
+\r
+private:\r
+ //! To prevent copy constructor and assignment\r
+ ConversationPresentationModel(const ConversationPresentationModel&);\r
+ ConversationPresentationModel& operator =(const ConversationPresentationModel& msg);\r
+\r
+private:\r
+ static ConversationPresentationModel* __pInstance; //! Self instance for singleton design.\r
+ Tizen::Base::Collection::ArrayList* __pConversationListener; //! Conversation event listener\r
+ int __draftMessageId; //! Draft message Id for current conversation.\r
+ mutable MessageData* __pDraftMessage;\r
+};\r
+\r
+#endif // _MSG_CONVERSATION_PRESENTATION_MODEL_H_\r
--- /dev/null
+//\r
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.\r
+//\r
+// Licensed under the Flora License, Version 1.0 (the License);\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+// http://floralicense.org/license/\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an AS IS BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+//\r
+\r
+/**\r
+ * @file MsgCustomTableViewItem.h\r
+ * @brief This is the header file for the %CustomTableViewItem class.\r
+ *\r
+ * This header file contains the declarations of the %CustomTableViewItem class.\r
+ */\r
+#ifndef _MSG_CUSTOM_TABLEVIEW_ITEM_H_\r
+#define _MSG_CUSTOM_TABLEVIEW_ITEM_H_\r
+\r
+#include <FUiCtrlTableViewGroupItem.h>\r
+#include <FUiCtrlTableViewItem.h>\r
+\r
+/**\r
+ * @class CustomTableViewItem\r
+ *\r
+ * This class CustomTableViewItem is used to set background element of setting list item.\r
+ */\r
+\r
+class CustomTableViewItem\r
+ : public Tizen::Ui::Controls::TableViewItem\r
+{\r
+public:\r
+ CustomTableViewItem(void);\r
+ ~CustomTableViewItem(void);\r
+ result Construct(const Tizen::Graphics::Dimension& itemSize, Tizen::Ui::Controls::TableViewAnnexStyle style = Tizen::Ui::Controls::TABLE_VIEW_ANNEX_STYLE_NORMAL);\r
+ void EnableExpandViewModeStyle(const Tizen::Graphics::Bitmap* pNormalBitmap, const Tizen::Graphics::Bitmap* pPressBitmap);\r
+ void EnableDetailsViewModeStyle(const Tizen::Graphics::Bitmap* pNormalBitmap, const Tizen::Graphics::Bitmap* pPressBitmap);\r
+ // From base class\r
+ virtual result OnDraw(void);\r
+\r
+private:\r
+ //! Empty copy constructor.\r
+ CustomTableViewItem(const CustomTableViewItem& rhs);\r
+ //! Empty assignment operator.\r
+ CustomTableViewItem& operator =(const CustomTableViewItem& rhs);\r
+};\r
+\r
+class CustomTableViewGroupItem\r
+ : public Tizen::Ui::Controls::TableViewGroupItem\r
+{\r
+public:\r
+ // From base class\r
+ virtual result OnDraw(void);\r
+};\r
+\r
+#endif //_MSG_CUSTOM_TABLEVIEW_ITEM_H_\r
--- /dev/null
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file MsgDeleteHandlerThread.h
+ * @brief This is the header file for the %DeleteHandlerThread class.
+ *
+ * This header file contains the declarations of the %DeleteHandlerThread class.
+ */
+#ifndef _MSG_DLETE_HANDLER_THREAD_H_
+#define _MSG_DLETE_HANDLER_THREAD_H_
+
+#include <FBaseRtThread.h>
+#include "FUi.h"
+
+class IDeleteEventListener;
+
+/**
+ * @class MsgDeleteHandlerThread
+ *
+ * This is a thread class use to delete thread and messages.
+ */
+
+class DeleteHandlerThread
+ : public Tizen::Base::Runtime::Thread
+{
+public:
+ /**
+ * This is argument constructor for this class
+ *
+ * @param pList - Selected message or thread ID list
+ * @param listener - Delete event listener
+ * @param requestType - Delete request type for thread or message.
+ */
+ DeleteHandlerThread(Tizen::Base::Collection::IListT< int >* pList, Tizen::Ui::Control& listener, int requestType);
+
+ /**
+ * This is argument constructor for this class
+ *
+ * @param deleteId - Delete thread or message ID.
+ * @param listener - Delete event listener
+ * @param requestType - Delete request type for thread or message.
+ */
+ DeleteHandlerThread(int deleteId, Tizen::Ui::Control& listener, int requestType);
+
+ /**
+ * This is the destructor for this class.
+ */
+ virtual ~DeleteHandlerThread(void);
+
+ //! From base class
+ result Construct(void);
+ Object* Run(void);
+
+private:
+ Tizen::Base::Collection::IListT< int >* __pDeleteIdList; //! Delete id list
+ int __deleteId; //! In case of single delete, delete ID.
+ int __requestType; //! Delete request type.
+ Tizen::Ui::Control* __parentCntl;
+};
+
+#endif // _MSG_DLETE_HANDLER_THREAD_H_
--- /dev/null
+//\r
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.\r
+//\r
+// Licensed under the Flora License, Version 1.0 (the License);\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+// http://floralicense.org/license/\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an AS IS BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+//\r
+\r
+/**\r
+ * @file MsgDurationPopup.h\r
+ * @brief This is the header file for the %DurationPopup class.\r
+ *\r
+ * This header file contains the declarations of the %DurationPopup class.\r
+ */\r
+#ifndef _MSG_DURATION_POPUP_H_\r
+#define _MSG_DURATION_POPUP_H_\r
+\r
+#include "MsgBaseCustomPopup.h"\r
+\r
+class DurationPopup\r
+ : public BaseCustomPopup\r
+ , public Tizen::Ui::IActionEventListener\r
+{\r
+\r
+public:\r
+ DurationPopup(Tizen::Ui::Control& parent);\r
+ virtual ~DurationPopup(void);\r
+ result Construct(const Tizen::Base::String& resourceId);\r
+ int GetDuration(void) const;\r
+ result SetDuration(int duration);\r
+ result SetInfoText(const Tizen::Base::String& infoText);\r
+ result SetFocusToEditor(void);\r
+ // From IActionEventListener\r
+ virtual void OnActionPerformed(const Tizen::Ui::Control& source, int actionId);\r
+\r
+private:\r
+\r
+ Tizen::Ui::Control& __parentCntl;\r
+};\r
+\r
+#endif // _MSG_DURATION_POPUP_H_\r
--- /dev/null
+//\r
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.\r
+//\r
+// Licensed under the Flora License, Version 1.0 (the License);\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+// http://floralicense.org/license/\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an AS IS BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+//\r
+\r
+/**\r
+ * @file MsgEvent.h\r
+ * @brief This is the header file for the %ThreadEvent, %ConversationEvent, %SmsEvent and %MmsEvent class.\r
+ *\r
+ * This header file contains the declarations of the %ThreadEvent, %ConversationEvent, %SmsEvent and %MmsEvent class.\r
+ */\r
+#ifndef _MSG_EVENT_H_\r
+#define _MSG_EVENT_H_\r
+\r
+#include "MsgBaseEvent.h"\r
+\r
+/**\r
+ * @class ThreadEvent\r
+ *\r
+ * Class ThreadEvent derived from BaseEvent. It use to hold IThreadEventListener.\r
+ */\r
+\r
+class ThreadEvent\r
+ : public BaseEvent\r
+{\r
+public:\r
+ /**\r
+ * One argument copy constructor.\r
+ *\r
+ * @param pEvent - IThreadEventListener Event listener\r
+ */\r
+ ThreadEvent(const Tizen::Base::Runtime::IEventListener* pEvent);\r
+\r
+protected:\r
+ //! Empty copy constructor to prevent shallow copy\r
+ ThreadEvent(const ThreadEvent& rhs);\r
+\r
+ //! Empty assignment operator.to prevent shallow copy\r
+ ThreadEvent& operator =(const ThreadEvent& rhs);\r
+\r
+};\r
+\r
+/**\r
+ * @class ConversationEvent\r
+ *\r
+ * Class ConversationEvent derived from BaseEvent. It use to hold IConversationEventListener.\r
+ */\r
+\r
+class ConversationEvent\r
+ : public BaseEvent\r
+{\r
+public:\r
+ /**\r
+ * Two argument constructor for this class\r
+ *\r
+ * @param pEvent - IConversationEventListener event listener.\r
+ *\r
+ * @param threadId - Thread ID for current conversation.\r
+ */\r
+ ConversationEvent(const Tizen::Base::Runtime::IEventListener* pEvent, const int threadId);\r
+\r
+ /**\r
+ * Get thread ID from current listener.\r
+ *\r
+ * @return - Current thread id as an int.\r
+ */\r
+ const int GetThreadId(void) const;\r
+\r
+protected:\r
+ //! Empty copy constructor to prevent shallow copy\r
+ ConversationEvent(const ConversationEvent& rhs);\r
+\r
+ //! Empty assignment operator.to prevent shallow copy\r
+ ConversationEvent& operator =(const ConversationEvent& rhs);\r
+\r
+private:\r
+ int __threadId; //! Thread ID for current conversation.\r
+};\r
+\r
+/**\r
+ * @class SmsEvent\r
+ *\r
+ * Class SmsEvent derived from BaseEvent. It use to hold ISmsEventListener.\r
+ */\r
+\r
+class SmsEvent\r
+ : public BaseEvent\r
+{\r
+public:\r
+ SmsEvent(const Tizen::Base::Runtime::IEventListener* pEvent);\r
+protected:\r
+ SmsEvent(const SmsEvent& rhs);\r
+ SmsEvent& operator =(const SmsEvent& rhs);\r
+};\r
+\r
+/**\r
+ * @class SmsEvent\r
+ *\r
+ * Class MmsEvent derived from BaseEvent. It use to hold IMmsEventListener.\r
+ */\r
+\r
+class MmsEvent\r
+ : public BaseEvent\r
+{\r
+public:\r
+ MmsEvent(const Tizen::Base::Runtime::IEventListener* pEvent);\r
+protected:\r
+ MmsEvent(const MmsEvent& rhs);\r
+ MmsEvent& operator =(const MmsEvent& rhs);\r
+};\r
+\r
+#endif // _MSG_EVENT_H_\r
--- /dev/null
+//\r
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.\r
+//\r
+// Licensed under the Flora License, Version 1.0 (the License);\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+// http://floralicense.org/license/\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an AS IS BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+//\r
+\r
+/**\r
+ * @file MsgFacadeManager.h\r
+ * @brief This is the header file for the %FacadeManager class.\r
+ *\r
+ * This header file contains the declarations of the %FacadeManager class.\r
+ */\r
+#ifndef _MSG_FACADE_MANAGER_H_\r
+#define _MSG_FACADE_MANAGER_H_\r
+\r
+#include <FBaseDataType.h>\r
+\r
+/**\r
+ * @class FacadeManager\r
+ *\r
+ * This Class FacadeManager is initialized all singleton application managers.\r
+ */\r
+\r
+class FacadeManager\r
+{\r
+public:\r
+ /**\r
+ * Default constructor for this class\r
+ */\r
+ FacadeManager(void);\r
+\r
+ /**\r
+ * Default destructor of this class.\r
+ */\r
+ ~FacadeManager(void);\r
+\r
+ /**\r
+ * Initialize all dependent application managers.\r
+ */\r
+ result Initialize(void);\r
+\r
+ /**\r
+ * Uninialize all application managers.\r
+ */\r
+ result Uninitialize(void);\r
+\r
+private:\r
+ /**\r
+ * Overloaded empty copy constructor to prevent shallow copy.\r
+ */\r
+ FacadeManager(const FacadeManager& msgFMObj);\r
+\r
+ /**\r
+ * Overloaded assignment operator to prevent shallow copy.\r
+ */\r
+ FacadeManager& operator =(const FacadeManager& msgFMObj);\r
+};\r
+\r
+\r
+#endif //_MSG_FACADE_MANGER_H_\r
--- /dev/null
+//\r
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.\r
+//\r
+// Licensed under the Flora License, Version 1.0 (the License);\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+// http://floralicense.org/license/\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an AS IS BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+//\r
+\r
+/**\r
+ * @file MsgFontSettings.h\r
+ * @brief This is the header file for the %FontSettings class.\r
+ *\r
+ * This header file contains the declarations of the %FontSettings class.\r
+ */\r
+#ifndef _MSG_FONT_SETTINGS_H_\r
+#define _MSG_FONT_SETTINGS_H_\r
+\r
+#include <FBase.h>\r
+\r
+#include "MsgTypes.h"\r
+\r
+namespace Tizen { namespace Graphics\r
+{\r
+class Font;\r
+}};\r
+namespace Tizen { namespace Base { namespace Collection\r
+{\r
+class HashMap;\r
+}}};\r
+\r
+/**\r
+ * @class MsgFontSettings\r
+ *\r
+ * Class MsgFontSettings use to hold font list use in messaging application.\r
+ */\r
+\r
+class FontSettings\r
+ : public Tizen::Base::Object\r
+{\r
+public:\r
+ /**\r
+ * This is one argument constructor for this class\r
+ *\r
+ */\r
+ FontSettings(void);\r
+\r
+ /**\r
+ * Default destructor for this class\r
+ */\r
+ virtual ~FontSettings(void);\r
+\r
+ /**\r
+ * 2nd phase constructor\r
+ */\r
+ result Construct(void);\r
+\r
+ /**\r
+ * Get font based on Font ID\r
+ */\r
+ Tizen::Graphics::Font* GetFont(MsgFontIds fontId) const;\r
+\r
+ /**\r
+ * Get font Message font based on setting\r
+ */\r
+ Tizen::Graphics::Font* GetMessageFont(void) const;\r
+ SettingFontType GetMessageFontType(void) const;\r
+ void SetMessageFonttype(SettingFontType fontSize);\r
+ int GetMessageTextSize(SettingFontType settingFont) const;\r
+\r
+private:\r
+ /**\r
+ * Empty copy constructor\r
+ */\r
+ FontSettings(const FontSettings& rhs);\r
+\r
+ /**\r
+ * Empty assignment operator\r
+ */\r
+ FontSettings& operator =(const FontSettings& rhs);\r
+\r
+private:\r
+ Tizen::Base::Collection::HashMap* __FontList;\r
+};\r
+\r
+\r
+#endif // _MSG_FONT_SETTINGS_H_\r
--- /dev/null
+//\r
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.\r
+//\r
+// Licensed under the Flora License, Version 1.0 (the License);\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+// http://floralicense.org/license/\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an AS IS BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+//\r
+\r
+/**\r
+ * @file MsgFormFactory.h\r
+ * @brief This is the header file for the %FormFactory class.\r
+ *\r
+ * This header file contains the declarations of the %FormFactory class.\r
+ */\r
+#ifndef _MSG_FORM_FACTORY_H_\r
+#define _MSG_FORM_FACTORY_H_\r
+\r
+#include <FUiScenesIFormFactory.h>\r
+\r
+/**\r
+ * @class FormFactory\r
+ *\r
+ * Class FormFactory is used to create all from based on demand of SceneManager.\r
+ */\r
+\r
+class FormFactory\r
+ : public Tizen::Ui::Scenes::IFormFactory\r
+{\r
+public:\r
+ //! Constructor\r
+ /**\r
+ * Default constructor for this class\r
+ */\r
+ FormFactory(void);\r
+\r
+ //! Destructor\r
+ /**\r
+ * Default destructor for this class\r
+ */\r
+ virtual ~FormFactory(void);\r
+\r
+protected:\r
+ //! From IFormFactory\r
+ virtual Tizen::Ui::Controls::Form* CreateFormN(const Tizen::Base::String& formId, const Tizen::Ui::Scenes::SceneId& sceneId);\r
+};\r
+\r
+#endif // _MSG_FORM_FACTORY_H_\r
--- /dev/null
+//\r
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.\r
+//\r
+// Licensed under the Flora License, Version 1.0 (the License);\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+// http://floralicense.org/license/\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an AS IS BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+//\r
+\r
+/**\r
+ * @file MsgIComposeEventObserver.h\r
+ * @brief This is the header file for the %IComposeEventObserver interface.\r
+ *\r
+ * This header file contains the declarations of the %IComposeEventObserver interface.\r
+ */\r
+#ifndef _MSG_ICOMPOSE_EVENT_OBSERVER_H_\r
+#define _MSG_ICOMPOSE_EVENT_OBSERVER_H_\r
+\r
+enum ComposeType\r
+{\r
+ COMPOSE_SMS,\r
+ COMPOSE_MMS\r
+};\r
+\r
+class IComposeEventObserver\r
+{\r
+public:\r
+ virtual ~IComposeEventObserver() {}\r
+\r
+ virtual void OnComposeStateChange(ComposeType type) = 0;\r
+ virtual void OnSendButtonClick(void) = 0;\r
+};\r
+\r
+\r
+#endif // _MSG_ICOMPOSE_EVENT_OBSERVER_H_\r
--- /dev/null
+//\r
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.\r
+//\r
+// Licensed under the Flora License, Version 1.0 (the License);\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+// http://floralicense.org/license/\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an AS IS BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+//\r
+\r
+/**\r
+ * @file MsgIConversationEventListener.h\r
+ * @brief This is the header file for the %IConversationEventListener interface.\r
+ *\r
+ * This header file contains the declarations of the %IConversationEventListener interface.\r
+ */\r
+#ifndef _MSG_ICONVERSATION_EVENT_LISTENER_H_\r
+#define _MSG_ICONVERSATION_EVENT_LISTENER_H_\r
+\r
+#include <FBaseRtIEventListener.h>\r
+\r
+#include "MsgTypes.h"\r
+\r
+\r
+/**\r
+ * @interface IConversationEventListener\r
+ *\r
+ * Class IConversationEventListener is listener for conversation list change. For conversation\r
+ * change notification this interface should be implemented.\r
+ */\r
+\r
+class IConversationEventListener\r
+ : public Tizen::Base::Runtime::IEventListener\r
+{\r
+public:\r
+ /**\r
+ * This is the destructor for this class.\r
+ */\r
+ virtual ~IConversationEventListener(void) {}\r
+\r
+ /**\r
+ * Call when particular thread conversation data change.\r
+ */\r
+ virtual void OnConversationListChange(MsgStorageChangeType msgStorageChangeType) = 0;\r
+};\r
+\r
+#endif // _MSG_ICONVERSATION_EVENT_LISTENER_H_\r
--- /dev/null
+//\r
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.\r
+//\r
+// Licensed under the Flora License, Version 1.0 (the License);\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+// http://floralicense.org/license/\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an AS IS BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+//\r
+\r
+/**\r
+ * @file MsgIDeleteEventListener.h\r
+ * @brief This is the header file for the %IDeleteEventListener interface.\r
+ *\r
+ * This header file contains the declarations of the %IDeleteEventListener interface.\r
+ */\r
+#ifndef _MSG_IDELETE_EVENT_LISTENER_H_\r
+#define _MSG_IDELETE_EVENT_LISTENER_H_\r
+\r
+#include <FBaseRtIEventListener.h>\r
+\r
+namespace Tizen { namespace Base\r
+{\r
+class Object;\r
+}};\r
+\r
+/**\r
+ * @interface IDeleteEventListener\r
+ *\r
+ * Interface IDeleteEventListener is a listener for give progressive call back for message or\r
+ * thread deletion.\r
+ */\r
+\r
+class IDeleteEventListener\r
+ : public Tizen::Base::Runtime::IEventListener\r
+{\r
+public:\r
+ /**\r
+ * This is the destructor for this class.\r
+ */\r
+ virtual ~IDeleteEventListener(void) {}\r
+\r
+ /**\r
+ * Call when delete started by delete thread.\r
+ *\r
+ * @param totalCount Total number of item to be deleted.\r
+ *\r
+ */\r
+ virtual void OnDeleteStart(int totalCount) = 0;\r
+\r
+ /**\r
+ * Call after each and every delete operation.\r
+ *\r
+ * @param deleteCount Number of item deleted\r
+ * @param totalCount Total number of item to be deleted.\r
+ *\r
+ */\r
+ virtual void OnDeleteUpdate(int deleteCount, int totalCount) = 0;\r
+\r
+ /**\r
+ * Call once delete completed.\r
+ *\r
+ * @param errCode In case of delete error return delete specific error code.\r
+ * @param pThreadObject Thread object responsible for delete operation.\r
+ *\r
+ */\r
+ virtual void OnDeleteComplete(int errCode, Tizen::Base::Object* pThreadObject) = 0;\r
+\r
+};\r
+\r
+#endif // _MSG_IDELETE_EVENT_LISTENER_H_\r
--- /dev/null
+//\r
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.\r
+//\r
+// Licensed under the Flora License, Version 1.0 (the License);\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+// http://floralicense.org/license/\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an AS IS BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+//\r
+\r
+/**\r
+ * @file MsgIMmsEventListener.h\r
+ * @brief This is the header file for the %IMmsEventListener interface.\r
+ *\r
+ * This header file contains the declarations of the %IMmsEventListener interface.\r
+ */\r
+#ifndef _MSG_IMMS_EVENT_LISTENER_H_\r
+#define _MSG_IMMS_EVENT_LISTENER_H_\r
+\r
+#include <FBaseRtIEventListener.h>\r
+\r
+/**\r
+ * @interface IMmsEventListener\r
+ *\r
+ * Interface IMmsEventListener is a listener for MmsManager. For MMS notification\r
+ * this interface should be implemented.\r
+ */\r
+\r
+class IMmsEventListener\r
+ : public Tizen::Base::Runtime::IEventListener\r
+{\r
+public:\r
+ /**\r
+ * This is the destructor for this class.\r
+ */\r
+ virtual ~IMmsEventListener(void) {}\r
+\r
+ /**\r
+ * Call when Sms sent status change.\r
+ *\r
+ * @param Take no argument.\r
+ *\r
+ * @return void\r
+ */\r
+ virtual void OnMmsReceive(void) = 0;\r
+};\r
+\r
+#endif // _MSG_IMMS_EVENT_LISTENER_H_\r
--- /dev/null
+//\r
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.\r
+//\r
+// Licensed under the Flora License, Version 1.0 (the License);\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+// http://floralicense.org/license/\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an AS IS BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+//\r
+\r
+/**\r
+ * @file MsgIPopupEventListener.h\r
+ * @brief This is the header file for the %IPopupEventListener interface.\r
+ *\r
+ * This header file contains the declarations of the %IPopupEventListener interface.\r
+ */\r
+#ifndef _MSG_IPOPUP_EVENT_LISTENER_H_\r
+#define _MSG_IPOPUP_EVENT_LISTENER_H_\r
+\r
+#include <FBaseObject.h>\r
+#include <FBaseRtIEventListener.h>\r
+#include <FUiControl.h>\r
+\r
+/**\r
+ * @interface IPopupEventListener\r
+ *\r
+ * Interface IPopupEventListener is listener for popup object deletion.\r
+ */\r
+\r
+class IPopupEventListener\r
+ : public Tizen::Base::Runtime::IEventListener\r
+{\r
+public:\r
+ /**\r
+ * This is the destructor for this class.\r
+ */\r
+ virtual ~IPopupEventListener(void) {}\r
+\r
+ /**\r
+ * On Item selected.\r
+ */\r
+ virtual void OnPopupListItemSelected(const Tizen::Ui::Control& popup, int selectIndex, const Tizen::Base::Object* pPopupListItem) = 0;\r
+ virtual void OnPopupClose(Tizen::Base::Object* pObject) = 0;\r
+};\r
+\r
+#endif // _IPOPUP_EVENT_LISTENER_H_\r
--- /dev/null
+//\r
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.\r
+//\r
+// Licensed under the Flora License, Version 1.0 (the License);\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+// http://floralicense.org/license/\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an AS IS BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+//\r
+\r
+/**\r
+ * @file MsgISizeChangeEventListener.h\r
+ * @brief This is the header file for the %ISizeChangeEventListener interface.\r
+ *\r
+ * This header file contains the declarations of the %ISizeChangeEventListener interface.\r
+ */\r
+#ifndef _MSG_ISIZE_CHANGE_EVENT_LISTENER_H_\r
+#define _MSG_ISIZE_CHANGE_EVENT_LISTENER_H_\r
+\r
+#include <FUiControl.h>\r
+\r
+class ISizeChangeEventListener\r
+{\r
+public:\r
+ virtual ~ISizeChangeEventListener(void){}\r
+\r
+ virtual void OnSizeDecrease(const Tizen::Ui::Control& control) = 0;\r
+ virtual void OnSizeIncrease(const Tizen::Ui::Control& control) = 0;\r
+\r
+};\r
+\r
+#endif // _MSG_ISIZE_CHANGE_EVENT_LISTENER_H_\r
--- /dev/null
+//\r
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.\r
+//\r
+// Licensed under the Flora License, Version 1.0 (the License);\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+// http://floralicense.org/license/\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an AS IS BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+//\r
+\r
+/**\r
+ * @file MsgISmsEventListener.h\r
+ * @brief This is the header file for the %ISmsEventListener interface.\r
+ *\r
+ * This header file contains the declarations of the %ISmsEventListener interface.\r
+ */\r
+#ifndef _MSG_ISMS_EVENT_LISTENER_H_\r
+#define _MSG_ISMS_EVENT_LISTENER_H_\r
+\r
+#include <FBaseRtIEventListener.h>\r
+\r
+/**\r
+ * @interface ISmsEventListener\r
+ *\r
+ * Interface ISmsEventListener is a listener for SmsManager. For sms notification\r
+ * this interface should be implemented.\r
+ */\r
+\r
+class ISmsEventListener\r
+ : public Tizen::Base::Runtime::IEventListener\r
+{\r
+public:\r
+ /**\r
+ * This is the destructor for this class.\r
+ */\r
+ virtual ~ISmsEventListener(void) {}\r
+\r
+ /**\r
+ * Call when Sms sent status change.\r
+ * @param sentStatus - values for this type SHOULD be in _MSG_NETWORK_STATUS_E.\r
+ *\r
+ * @return void\r
+ *\r
+ */\r
+ virtual void OnSmsSentStatusChange(int sentStatus) = 0;\r
+\r
+ /**\r
+ * Call when Sms sent status change.\r
+ *\r
+ * @param Take no argument.\r
+ *\r
+ * @return void\r
+ */\r
+ virtual void OnSmsReceive(void) = 0;\r
+};\r
+\r
+#endif // _MSG_ISMS_EVENT_LISTENER_H_\r
--- /dev/null
+//\r
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.\r
+//\r
+// Licensed under the Flora License, Version 1.0 (the License);\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+// http://floralicense.org/license/\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an AS IS BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+//\r
+\r
+/**\r
+ * @file MsgIThreadEventListener.h\r
+ * @brief This is the header file for the %IThreadEventListener interface.\r
+ *\r
+ * This header file contains the declarations of the %IThreadEventListener interface.\r
+ */\r
+#ifndef _MSG_ITHREAD_EVENT_LISTENER_H_\r
+#define _MSG_ITHREAD_EVENT_LISTENER_H_\r
+\r
+#include <FBaseRtIEventListener.h>\r
+\r
+/**\r
+ * @class IThreadEventListener\r
+ *\r
+ * Class IThreadEventListener is a listener for ThreadPresentationModel. For new thread and existing\r
+ * thread change notification this interface should be implemented.\r
+ */\r
+\r
+class IThreadEventListener\r
+ : public Tizen::Base::Runtime::IEventListener\r
+{\r
+public:\r
+ /**\r
+ * This is the destructor for this class.\r
+ */\r
+ virtual ~IThreadEventListener(void) {}\r
+\r
+ /**\r
+ * Call when message thread list change.\r
+ */\r
+ virtual void OnMessageThreadListChange(void) = 0;\r
+};\r
+\r
+#endif // _MSG_ITHREAD_EVENT_LISTENER_H_\r
--- /dev/null
+//\r
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.\r
+//\r
+// Licensed under the Flora License, Version 1.0 (the License);\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+// http://floralicense.org/license/\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an AS IS BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+//\r
+\r
+/**\r
+ * @file MsgLVAttachItem.h\r
+ * @brief This is the header file for the %LVAttachItem class.\r
+ *\r
+ * This header file contains the declarations of the %LVAttachItem class.\r
+ */\r
+#ifndef _MSG_LV_ATTACH_ITEM_H_\r
+#define _MSG_LV_ATTACH_ITEM_H_\r
+\r
+#include <FGrpTextElement.h>\r
+#include <FUiCtrlICustomElement.h>\r
+\r
+/**\r
+ * @class LVAttachItem\r
+ *\r
+ * This class LVAttachItem is used to add any image in list item which would the\r
+ * icon as well as item background image.\r
+ */\r
+\r
+class LVAttachItem\r
+ : public Tizen::Ui::Controls::ICustomElement\r
+{\r
+public:\r
+ /**\r
+ * Default constructor for this class.\r
+ */\r
+ LVAttachItem(void);\r
+\r
+ /**\r
+ * Default destructor for this class.\r
+ */\r
+ ~LVAttachItem(void);\r
+\r
+ /**\r
+ * Set selection image for this list item.\r
+ *\r
+ * @param iconImage - List button icon image bitmap.\r
+ *\r
+ * @param void\r
+ */\r
+ void SetAttachIcon(const Tizen::Graphics::Bitmap& iconImage);\r
+ void SetText(const Tizen::Base::String& msgText, const Tizen::Graphics::Font* ptextFont = null);\r
+ int GetMinimumHeight(void) const;\r
+ int GetMimimumWidth(void) const;\r
+\r
+protected:\r
+ /// From ICustomElement\r
+ virtual bool OnDraw(Tizen::Graphics::Canvas& canvas, const Tizen::Graphics::Rectangle& rect, Tizen::Ui::Controls::ListItemDrawingStatus status);\r
+\r
+private:\r
+ /// Empty copy constructor.\r
+ LVAttachItem(const LVAttachItem& rhs);\r
+ // Empty assignment operator.\r
+ LVAttachItem& operator =(const LVAttachItem& rhs);\r
+\r
+private:\r
+ const Tizen::Graphics::Bitmap* __pAttachIcon; // Not own\r
+ Tizen::Graphics::EnrichedText* __pEnrichedText; // Own\r
+};\r
+\r
+\r
+#endif //_MSG_LV_ATTACH_ITEM_H_\r
--- /dev/null
+//\r
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.\r
+//\r
+// Licensed under the Flora License, Version 1.0 (the License);\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+// http://floralicense.org/license/\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an AS IS BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+//\r
+\r
+/**\r
+ * @file MsgLVBackgroundItem.h\r
+ * @brief This is the header file for the %LVBackgroundItem class.\r
+ *\r
+ * This header file contains the declarations of the %MsgLVBackgroundItem class.\r
+ */\r
+#ifndef _MSG_LV_BACKGROUND_ITEM_H_\r
+#define _MSG_LV_BACKGROUND_ITEM_H_\r
+\r
+#include <FGrpTextElement.h>\r
+#include <FUiCtrlICustomElement.h>\r
+\r
+/**\r
+ * @class LVBackgroundItem\r
+ *\r
+ * This class LVBackgroundItem is used to add any image in list item which would the\r
+ * icon as well as item background image.\r
+ */\r
+\r
+class LVBackgroundItem\r
+ : public Tizen::Ui::Controls::ICustomElement\r
+{\r
+public:\r
+ /**\r
+ * Default constructor for this class.\r
+ */\r
+ LVBackgroundItem(void);\r
+\r
+ /**\r
+ * Default destructor for this class.\r
+ */\r
+ ~LVBackgroundItem(void);\r
+\r
+ /**\r
+ * Set background image for this list item\r
+ *\r
+ * @param backgroudImage - Background image bitmap.\r
+ *\r
+ * @return void\r
+ */\r
+ void SetBackgroundBitmap(const Tizen::Graphics::Bitmap& normalBackgroudBg, const Tizen::Graphics::Bitmap& selectBackgroudBg);\r
+\r
+protected:\r
+ /// From ICustomElement\r
+ virtual bool OnDraw(Tizen::Graphics::Canvas& canvas, const Tizen::Graphics::Rectangle& rect, Tizen::Ui::Controls::ListItemDrawingStatus status);\r
+\r
+private:\r
+ /// Empty copy constructor.\r
+ LVBackgroundItem(const LVBackgroundItem& rhs);\r
+ // Empty assignment operator.\r
+ LVBackgroundItem& operator =(const LVBackgroundItem& rhs);\r
+\r
+private:\r
+ const Tizen::Graphics::Bitmap* __pBackgroundBitmap; // Not own\r
+ const Tizen::Graphics::Bitmap* __pSelectedBitmap; // Not own\r
+};\r
+\r
+\r
+#endif //_MSG_LV_BACKGROUND_ITEM_H_\r
--- /dev/null
+//\r
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.\r
+//\r
+// Licensed under the Flora License, Version 1.0 (the License);\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+// http://floralicense.org/license/\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an AS IS BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+//\r
+\r
+/**\r
+ * @file MsgLVBubbleListItem.h\r
+ * @brief This is the header file for the %LVBubbleListItem class.\r
+ *\r
+ * This header file contains the declarations of the %LVBubbleListItem class.\r
+ */\r
+#ifndef _MSG_LV_BUBBLE_LIST_ITEM_H_\r
+#define _MSG_LV_BUBBLE_LIST_ITEM_H_\r
+\r
+#include <FUiCtrlCustomItem.h>\r
+#include <FUiCtrlGroupedListView.h>\r
+\r
+class ConversationData;\r
+class FontSettings;\r
+class LVAttachItem;\r
+class LVBackgroundItem;\r
+class LVButtonItem;\r
+class LVMultiLineTextItem;\r
+\r
+enum MsgStatus\r
+{\r
+ MSG_STATUS_RECEIVE,\r
+ MSG_STATUS_SENDING,\r
+ MSG_STATUS_SENT,\r
+ MSG_STATUS_FAIL,\r
+ MSG_STATUS_DRAFT\r
+};\r
+\r
+/**\r
+ * @class LVBubbleListItem\r
+ *\r
+ * This class MsgLVBubbleListItem display text in bubble layout.\r
+ */\r
+\r
+class LVBubbleListItem\r
+ : public Tizen::Ui::Controls::CustomItem\r
+ , public Tizen::Base::Runtime::ITimerEventListener\r
+{\r
+public:\r
+ enum MsgBubbleItem\r
+ {\r
+ MSG_BUBBLE_ITEM,\r
+ MSG_BUBBLE_ITEM_TEXT,\r
+ MSG_BUBBLE_ITEM_DATE,\r
+ MSG_BUBBLE_ITEM_FAIL_STATUS,\r
+ MSG_BUBBLE_ITEM_UNREAD_STATUS,\r
+ MSG_BUBBLE_ITEM_ATTACHMENT,\r
+ MSG_BUBBLE_ITEM_IMAGE,\r
+ MSG_BUBBLE_ITEM_DETAILS,\r
+ MSG_BUBBLE_ITEM_BG,\r
+\r
+ };\r
+\r
+\r
+public:\r
+ /**\r
+ * One argument constructor for this class.\r
+ *\r
+ * @param width Maximum width of this list item.\r
+ *\r
+ */\r
+ LVBubbleListItem(ConversationData& convData, Tizen::Ui::Controls::GroupedListView& pListView, int groupIndex, int index, int width, FontSettings& fontSettings, bool editMode);\r
+\r
+ /**\r
+ * Default destructor for this class\r
+ */\r
+ ~LVBubbleListItem(void);\r
+\r
+ /**\r
+ * Prepare layout based on content, this should be call after setting list item data.\r
+ *\r
+ * @param isSent - Indicate current bubble message for sent or receive.\r
+ *\r
+ * @return void\r
+ */\r
+ void CreateBubbleLayout(void);\r
+\r
+ // From ITimerEventListener\r
+ virtual void OnTimerExpired(Tizen::Base::Runtime::Timer& timer);\r
+\r
+private:\r
+ /**\r
+ * Create time stamp for this bubble message.\r
+ *\r
+ * @param timeStamp - Time stamp of the bubble.\r
+ */\r
+ void CreateTimeStampElement(void);\r
+\r
+ /**\r
+ * Create content element for message body.\r
+ */\r
+ void CreateContentElement(void);\r
+\r
+ //! Empty copy constructor\r
+ LVBubbleListItem(const LVBubbleListItem& rhs);\r
+ //! Empty assignment operator.\r
+ LVBubbleListItem& operator =(const LVBubbleListItem& rhs);\r
+\r
+private:\r
+ ConversationData& __convData;\r
+ int __leftMargin;\r
+ int __rightMargin;\r
+ int __topMargin;\r
+ int __bottomMargin;\r
+ Tizen::Ui::Controls::GroupedListView& __listView;\r
+ int __groupIndex;\r
+ int __index;\r
+ int __Width;\r
+ bool __editMode;\r
+ FontSettings& __fontSettings;\r
+ LVBackgroundItem* __pBackgroudItem;\r
+ LVMultiLineTextItem* __pMsgContent; // Own\r
+ LVMultiLineTextItem* __pMsgDate; // Own\r
+ Tizen::Graphics::Bitmap* __pProgressIcon; // Not Own\r
+ Tizen::Base::Runtime::Timer* __pAnimationTimer;\r
+ LVAttachItem* __pAttachmentItem;\r
+ Tizen::Graphics::Bitmap* __pMediaThumbnail; // Not Own\r
+ LVButtonItem* __pDetailButton;\r
+ LVButtonItem* __pFailIndicator;\r
+};\r
+\r
+\r
+#endif //_MSG_LV_BUBBLE_LIST_ITEM_H_\r
--- /dev/null
+//\r
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.\r
+//\r
+// Licensed under the Flora License, Version 1.0 (the License);\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+// http://floralicense.org/license/\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an AS IS BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+//\r
+\r
+/**\r
+ * @file MsgLVButtonItem.h\r
+ * @brief This is the header file for the %LVButtonItem class.\r
+ *\r
+ * This header file contains the declarations of the %LVButtonItem class.\r
+ */\r
+#ifndef _MSG_LV_BUTTON_ITEM_H_\r
+#define _MSG_LV_BUTTON_ITEM_H_\r
+\r
+#include <FGrpTextElement.h>\r
+#include <FUiCtrlICustomElement.h>\r
+\r
+/**\r
+ * @class LVButtonItem\r
+ *\r
+ * This class LVButtonItem is used to add any image in list item which would the\r
+ * icon as well as item background image.\r
+ */\r
+\r
+class LVButtonItem\r
+ : public Tizen::Ui::Controls::ICustomElement\r
+{\r
+public:\r
+ /**\r
+ * Default constructor for this class.\r
+ */\r
+ LVButtonItem(void);\r
+\r
+ /**\r
+ * Default destructor for this class.\r
+ */\r
+ ~LVButtonItem(void);\r
+\r
+ /**\r
+ * Set background image for this list item\r
+ *\r
+ * @param backgroudImage - Background image bitmap.\r
+ *\r
+ * @return void\r
+ */\r
+ void SetBackgroundImage(const Tizen::Graphics::Bitmap& normalImage, const Tizen::Graphics::Bitmap& selectionImage);\r
+\r
+ /**\r
+ * Set selection image for this list item.\r
+ *\r
+ * @param iconImage - List button icon image bitmap.\r
+ *\r
+ * @param void\r
+ */\r
+ void SetIcon(const Tizen::Graphics::Bitmap& iconImage);\r
+\r
+protected:\r
+ /// From ICustomElement\r
+ virtual bool OnDraw(Tizen::Graphics::Canvas& canvas, const Tizen::Graphics::Rectangle& rect, Tizen::Ui::Controls::ListItemDrawingStatus status);\r
+\r
+private:\r
+ /// Empty copy constructor.\r
+ LVButtonItem(const LVButtonItem& rhs);\r
+ // Empty assignment operator.\r
+ LVButtonItem& operator =(const LVButtonItem& rhs);\r
+private:\r
+ const Tizen::Graphics::Bitmap* __pBackgroundBitmap; // Not own\r
+ const Tizen::Graphics::Bitmap* __pSelectedBitmap; // Not own\r
+ const Tizen::Graphics::Bitmap* __pIconBitmap; // Not own\r
+};\r
+\r
+\r
+#endif //_MSG_LV_BUTTON_ITEM_H_\r
--- /dev/null
+//\r
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.\r
+//\r
+// Licensed under the Flora License, Version 1.0 (the License);\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+// http://floralicense.org/license/\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an AS IS BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+//\r
+\r
+/**\r
+ * @file MsgLVMultiLineTextItem.h\r
+ * @brief This is the header file for the %LVMultiLineTextItem class.\r
+ *\r
+ * This header file contains the declarations of the %LVMultiLineTextItem class.\r
+ */\r
+#ifndef _MSG_LV_MULTILINE_TEXTITEM_H_\r
+#define _MSG_LV_MULTILINE_TEXTITEM_H_\r
+\r
+#include <FGrpEnrichedText.h>\r
+#include <FGrpTextElement.h>\r
+#include <FUiCtrlICustomElement.h>\r
+\r
+/**\r
+ * @class LVMultiLineTextItem\r
+ *\r
+ * This class LVMultiLineTextItem display multiline text in list.Using this class\r
+ * display text colour and font size/type can be control.\r
+ *\r
+ */\r
+\r
+class LVMultiLineTextItem\r
+ : public Tizen::Ui::Controls::ICustomElement\r
+{\r
+public:\r
+ /**\r
+ * This is the default constructor for this class.\r
+ */\r
+ LVMultiLineTextItem(void);\r
+\r
+ /**\r
+ * This is the default destructor for this class.\r
+ */\r
+ ~LVMultiLineTextItem(void);\r
+\r
+ /**\r
+ * Set text need to be displayed in this list item.\r
+ *\r
+ * @param msgText - Text need to be displayed.\r
+ * @param textColor - Text color\r
+ * @param font - Text font.\r
+ *\r
+ * @return void\r
+ */\r
+ void AddText(const Tizen::Base::String& msgText, const Tizen::Graphics::Color& textColor, const Tizen::Graphics::Color& textSelectionColor, const Tizen::Graphics::Font* ptextFont = null);\r
+ /**\r
+ * Set background image for this list item\r
+ *\r
+ * @param backgroudImage - Background image bitmap.\r
+ *\r
+ * @return void\r
+ */\r
+ void SetBackgroundImage(const Tizen::Graphics::Bitmap& backgroudImage);\r
+\r
+ /**\r
+ * Set selection image for this list item.\r
+ *\r
+ * @param selectionImage - Selection image bitmap.\r
+ *\r
+ * @param void\r
+ */\r
+ void SetSelectionImage(const Tizen::Graphics::Bitmap& selectionImage);\r
+\r
+ /**\r
+ * Set max view rect width for list item.\r
+ *\r
+ * @param rectWidth View rect width for list item.\r
+ * @return void\r
+ */\r
+ void SetViewRectWidth(const int rectWidth);\r
+\r
+ /**\r
+ * Set margin for text element.\r
+ * @param left left padding\r
+ * @param right right padding\r
+ * @param top top padding\r
+ * @param bottom bottom padding\r
+ */\r
+ void SetTextMargin(int left, int right, int top, int bottom);\r
+\r
+ /**\r
+ * Return minimum height of the list item. This should be call only after\r
+ * CreateTextLayout().\r
+ *\r
+ * @param none\r
+ * @return int - Minimum height to display list item.\r
+ *\r
+ */\r
+ int GetMinHeight(void) const;\r
+\r
+ /**\r
+ * Return minimum width of the list item. This should be call only after\r
+ * CreateTextLayout().\r
+ *\r
+ * @param none\r
+ * @return int - Minimum width to display list item.\r
+ *\r
+ */\r
+ int GetMaxWidth(void) const;\r
+\r
+ /**\r
+ * Set vertical alignment for multiline text.\r
+ *\r
+ * @param alignment - vertical position of the text.\r
+ * @return void.\r
+ *\r
+ */\r
+ void SetVerticalAlignment(Tizen::Graphics::TextVerticalAlignment alignment);\r
+\r
+ /**\r
+ * Set Horizontal alignment for multiline text.\r
+ *\r
+ * @param alignment - Horizontal position of the text.\r
+ * @return void.\r
+ *\r
+ */\r
+ void SetHorizentalAlignment(Tizen::Graphics::TextHorizontalAlignment alignment);\r
+\r
+\r
+ /**\r
+ * Create layout for item which will display in list. This should be call\r
+ * after setting the list item properties.\r
+ *\r
+ * @param width - Width of the list item.\r
+ *\r
+ * @return void\r
+ */\r
+ void CreateTextLayout(int width = 0, bool singleLine = false);\r
+ void SetMinimumHeight(int minHeight);\r
+ void SetMinimumWidth(int minWidth);\r
+\r
+protected:\r
+ /// From ICustomElement\r
+ virtual bool OnDraw(Tizen::Graphics::Canvas& canvas, const Tizen::Graphics::Rectangle& rect, Tizen::Ui::Controls::ListItemDrawingStatus status);\r
+\r
+private:\r
+ /**\r
+ * Empty Copy constructor\r
+ */\r
+ LVMultiLineTextItem(const LVMultiLineTextItem& rhs);\r
+\r
+ /**\r
+ * Empty Assignment operator.\r
+ *\r
+ */\r
+ LVMultiLineTextItem& operator =(const LVMultiLineTextItem& rhs);\r
+\r
+private:\r
+ const Tizen::Graphics::Bitmap* __pBackgroundBitmap; // Not own\r
+ const Tizen::Graphics::Bitmap* __pSelectedBitmap; // Not own\r
+ Tizen::Graphics::EnrichedText* __pEnrichedText; // Own\r
+ Tizen::Base::Collection::ArrayList* __pNormalColor; // own\r
+ Tizen::Base::Collection::ArrayList* __pSelectionColor; // own\r
+ Tizen::Graphics::TextVerticalAlignment __verticalAlignment;\r
+ Tizen::Graphics::TextHorizontalAlignment __horizontalAlignment;\r
+ mutable int __viewRectWidth;\r
+ mutable int __leftMargin;\r
+ mutable int __rightMargin;\r
+ mutable int __topMargin;\r
+ mutable int __bottomMargin;\r
+ int __minHeight;\r
+ int __minWidth;\r
+};\r
+\r
+\r
+#endif /* _MSG_LV_MULTILINE_TEXTITEM_H_ */\r
--- /dev/null
+//\r
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.\r
+//\r
+// Licensed under the Flora License, Version 1.0 (the License);\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+// http://floralicense.org/license/\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an AS IS BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+//\r
+\r
+/**\r
+ * @file MsgLVThreadListItem.h\r
+ * @brief This is the header file for the %LVThreadListItem class.\r
+ *\r
+ * This header file contains the declarations of the %LVThreadListItem class.\r
+ */\r
+#ifndef _MSG_LV_THREAD_LISTITEM_H_\r
+#define _MSG_LV_THREAD_LISTITEM_H_\r
+\r
+#include <FUiCtrlCustomItem.h>\r
+\r
+#include "MsgTypes.h"\r
+\r
+namespace Tizen { namespace Graphics\r
+{\r
+class Bitmap;\r
+}}\r
+class BaseData;\r
+class LVMultiLineTextItem;\r
+\r
+/**\r
+ * @class LVThreadListItem\r
+ *\r
+ * This class LVThreadListItem displays one thread list item. It include latest short\r
+ * message data, time , status and unread count information.\r
+ *\r
+ */\r
+class LVThreadListItem\r
+ : public Tizen::Ui::Controls::CustomItem\r
+{\r
+\r
+public:\r
+ /**\r
+ * This is the argument constructor for this class.\r
+ *\r
+ * @param width - Width of the list item.\r
+ */\r
+ LVThreadListItem(BaseData& baseEntry, int width, bool editMode);\r
+\r
+ /**\r
+ * This is the default destructor for this class.\r
+ */\r
+ ~LVThreadListItem(void);\r
+\r
+ /**\r
+ * Prepare layout thread list item layout\r
+ *\r
+ * @return void\r
+ * @param [in] void\r
+ *\r
+ */\r
+ void CreateThreadItemLayout(const Tizen::Base::String& searchText = L"");\r
+\r
+protected:\r
+ /**\r
+ * Convert Message status to relative icon type\r
+ *\r
+ * @param msgType Current message type.\r
+ *\r
+ * @return MessageIconType Relative icon type of current message type.\r
+ */\r
+ MessageIconType ConvertIconType(int msgType);\r
+\r
+ /**\r
+ * Create status element text.\r
+ *\r
+ * @return void\r
+ *\r
+ */\r
+ void CreateStatusElement(void);\r
+ void CreateTitleElement(const Tizen::Base::String& searchText);\r
+ void CreateMessageElement(const Tizen::Base::String& searchText);\r
+\r
+private:\r
+ //! Copy constructor.\r
+ LVThreadListItem(const LVThreadListItem& rhs);\r
+ //! Assignment operator.\r
+ LVThreadListItem& operator =(const LVThreadListItem& rhs);\r
+\r
+private:\r
+ BaseData& __entryData;\r
+ LVMultiLineTextItem* __pStatusText;\r
+ LVMultiLineTextItem* __pTitleText;\r
+ LVMultiLineTextItem* __pShortMsgText;\r
+ Tizen::Graphics::Font* __pMainTextFont;\r
+ Tizen::Graphics::Font* __pSubTextFont;\r
+ int __msgType;\r
+ int __Width;\r
+ bool __IsEditMode;\r
+};\r
+\r
+#endif //_MSG_LV_THREAD_LISTITEM_H_\r
--- /dev/null
+//\r
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.\r
+//\r
+// Licensed under the Flora License, Version 1.0 (the License);\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+// http://floralicense.org/license/\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an AS IS BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+//\r
+\r
+/**\r
+ * @file MsgListPresentationModel.h\r
+ * @brief This is the header file for the %ListPresentationModel class.\r
+ *\r
+ * This header file contains the declarations of the %ListPresentationModel class.\r
+ */\r
+#ifndef _MSG_LIST_PRESENTATION_MODEL_H_\r
+#define _MSG_LIST_PRESENTATION_MODEL_H_\r
+\r
+#include "MsgBasePresentationModel.h"\r
+\r
+namespace Tizen { namespace Base { namespace Collection\r
+{\r
+class ArrayList;\r
+}}};\r
+class BaseData;\r
+\r
+/**\r
+ * @class ListPresentationModel\r
+ *\r
+ * This class interact with SLP layer and fetch message thread list,thread conversation details\r
+ * from message store.For interface API check ListPresentationModel.\r
+ */\r
+class ListPresentationModel\r
+ : public BasePresentationModel\r
+{\r
+\r
+public:\r
+ /**\r
+ * Default destructor for this class\r
+ */\r
+ virtual ~ListPresentationModel(void);\r
+\r
+ /**\r
+ * Get message given index.\r
+ *\r
+ * @param message index.\r
+ */\r
+ BaseData* GetDataAt(int index) const;\r
+\r
+ /**\r
+ * Get message list count. This is an synchronous API.\r
+ *\r
+ * @param Take no argument.\r
+ *\r
+ * @return int - Return group count for thread list.\r
+ */\r
+ int GetCount(void);\r
+\r
+\r
+ /**\r
+ * Get group count for thread list. This is an synchronous API.\r
+ *\r
+ * @param Take no argument.\r
+ *\r
+ * @return int - Return group count for thread list.\r
+ */\r
+ int GetGroupCount(void);\r
+\r
+ /**\r
+ * Fetch group item count for given group index. This is an synchronous API.\r
+ *\r
+ * @param groupIndex - Group index of thread list.\r
+ *\r
+ * @return int - Return group item count.\r
+ */\r
+ int GetGroupItemCount(int groupIndex);\r
+\r
+ /**\r
+ * Fetch list index based on group item selected index. This is an synchronous API.\r
+ *\r
+ * @param index - selected index in group.\r
+ *\r
+ * @return int - Return relative list index of thread list.\r
+ */\r
+ int GetSelectedIndex(int index);\r
+\r
+ /**\r
+ * Fetch group name for given group index.This is an synchronous API.\r
+ *\r
+ * @param groupIndex - Group index of thread list.\r
+ *\r
+ * @return string - Return group item name.\r
+ */\r
+ Tizen::Base::String GetGroupName(int groupIndex);\r
+\r
+ /**\r
+ * reset list data and group info.\r
+ * @param none\r
+ *\r
+ * @return void\r
+ */\r
+ void Clear(void);\r
+\r
+protected:\r
+ /**\r
+ * Default constructor for this class.\r
+ */\r
+ ListPresentationModel(void);\r
+\r
+ /**\r
+ * Second phase construction\r
+ */\r
+ result Construct(void);\r
+\r
+ /**\r
+ * Prepare group information after fetching data.\r
+ */\r
+ void PrepareGroupInfo(void);\r
+\r
+private:\r
+ //! To prevent copy constructor and assignment\r
+ ListPresentationModel(const ListPresentationModel&);\r
+ ListPresentationModel& operator =(const ListPresentationModel& msg);\r
+\r
+protected:\r
+ /**\r
+ * @brief For internal use only.\r
+ * @class ThreadGroup\r
+ *\r
+ */\r
+ class GroupInfo\r
+ : public Tizen::Base::Object\r
+ {\r
+ public:\r
+ //! Group name\r
+ Tizen::Base::String groupName;\r
+ //! Group item count.\r
+ int itemCount;\r
+\r
+ GroupInfo()\r
+ : groupName(L"")\r
+ , itemCount(0)\r
+ {\r
+ }\r
+ };\r
+ Tizen::Base::Collection::ArrayList* __pDataList; //! Data list\r
+ Tizen::Base::Collection::ArrayList* __pGroupInfo; //! This list group information\r
+};\r
+\r
+#endif // _MSG_LIST_PRESENTATION_MODEL_H_\r
--- /dev/null
+//\r
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.\r
+//\r
+// Licensed under the Flora License, Version 1.0 (the License);\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+// http://floralicense.org/license/\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an AS IS BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+//\r
+\r
+/**\r
+ * @file MsgMainFrame.h\r
+ * @brief This is the header file for the %MainFrame class.\r
+ *\r
+ * This header file contains the declarations of the %MainFrame class.\r
+ */\r
+#ifndef _MSG_MAIN_FRAME_H_\r
+#define _MSG_MAIN_FRAME_H_\r
+\r
+#include <FBase.h>\r
+#include <FUi.h>\r
+\r
+class FormFactory;\r
+\r
+class MainFrame\r
+ : public Tizen::Ui::Controls::Frame\r
+{\r
+public:\r
+ MainFrame(void);\r
+ virtual ~MainFrame(void);\r
+\r
+public:\r
+ virtual result OnInitializing(void);\r
+ virtual result OnTerminating(void);\r
+\r
+private:\r
+ // New API\r
+ result RegisterAllScenes(void);\r
+\r
+private:\r
+ FormFactory* __pFormFactory;\r
+};\r
+\r
+#endif //_MSG_MAIN_FRAME_H_\r
--- /dev/null
+//\r
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.\r
+//\r
+// Licensed under the Flora License, Version 1.0 (the License);\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+// http://floralicense.org/license/\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an AS IS BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+//\r
+\r
+/**\r
+ * @file MsgMediaControl.h\r
+ * @brief This is the header file for the %MediaControl class.\r
+ *\r
+ * This header file contains the declarations of the %MediaControl class.\r
+ */\r
+#ifndef _MSG_MEDIA_CONTROL_H_\r
+#define _MSG_MEDIA_CONTROL_H_\r
+\r
+#include <FUi.h>\r
+\r
+class MediaControl\r
+ : public Tizen::Ui::Container\r
+ , public Tizen::Base::Runtime::IRunnable\r
+ , public Tizen::Ui::ITouchEventListener\r
+{\r
+public:\r
+ MediaControl(void);\r
+ ~MediaControl(void);\r
+ result Construct(const Tizen::Graphics::Rectangle& rectangle);\r
+ void SetMediaPath(const Tizen::Base::String& mediaPath, MediaType mediaType);\r
+ Tizen::Base::String GetMediaPath(void) const;\r
+ MediaType GetMediaType(void) const { return __mediaType;}\r
+ void SetDeleteActionId(int actionId);\r
+ void AddActionEventListener(Tizen::Ui::IActionEventListener& listener);\r
+\r
+protected:\r
+ // Form Base class\r
+ virtual void OnUserEventReceivedN(RequestId requestId, Tizen::Base::Collection::IList* pArgs);\r
+ virtual result OnDraw(void);\r
+\r
+ // Form IRunnable\r
+ virtual Tizen::Base::Object* Run(void);\r
+\r
+ // Form ITouchEventListener\r
+ virtual void OnTouchPressed(const Tizen::Ui::Control& source, const Tizen::Graphics::Point& currentPosition, const Tizen::Ui::TouchEventInfo& touchInfo);\r
+ virtual void OnTouchReleased(const Tizen::Ui::Control& source, const Tizen::Graphics::Point& currentPosition, const Tizen::Ui::TouchEventInfo& touchInfo){};\r
+ virtual void OnTouchMoved(const Tizen::Ui::Control& source, const Tizen::Graphics::Point& currentPosition, const Tizen::Ui::TouchEventInfo& touchInfo){};\r
+ virtual void OnTouchFocusIn(const Tizen::Ui::Control& source, const Tizen::Graphics::Point& currentPosition, const Tizen::Ui::TouchEventInfo& touchInfo){};\r
+ virtual void OnTouchFocusOut(const Tizen::Ui::Control& source, const Tizen::Graphics::Point& currentPosition, const Tizen::Ui::TouchEventInfo& touchInfo){};\r
+\r
+private:\r
+ //\r
+ void LoadMediaIcon(void);\r
+\r
+private:\r
+ MediaType __mediaType;\r
+ Tizen::Base::String __mediaPath;\r
+ Tizen::Ui::Controls::Button* __pDeleteMedia;\r
+ Tizen::Graphics::Bitmap* __pMediaIconBitmap;\r
+ Tizen::Base::Runtime::Thread* __pWorkerThread;\r
+};\r
+\r
+#endif // _MSG_MEDIA_CONTROL_H_\r
--- /dev/null
+//\r
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.\r
+//\r
+// Licensed under the Flora License, Version 1.0 (the License);\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+// http://floralicense.org/license/\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an AS IS BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+//\r
+\r
+/**\r
+ * @file MsgMediaTextExpandEditArea.h\r
+ * @brief This is the header file for the %MediaTextExpandEditArea class.\r
+ *\r
+ * This header file contains the declarations of the %MediaTextExpandEditArea class.\r
+ */\r
+#ifndef _MSG_MEDIA_TEXTEXPAND_EDITAREA_H_\r
+#define _MSG_MEDIA_TEXTEXPAND_EDITAREA_H_\r
+\r
+#include "MsgComposeBaseControl.h"\r
+#include "MsgTypes.h"\r
+\r
+class MediaControl;\r
+class AttachementControl;\r
+class ISizeChangeEventListener;\r
+\r
+class MediaTextExpandEditArea\r
+ : public ComposeBaseControl\r
+ , public Tizen::Ui::IActionEventListener\r
+ , public Tizen::Ui::Controls::IExpandableEditAreaEventListener\r
+{\r
+public:\r
+ // Constructor and destructor\r
+ MediaTextExpandEditArea(void);\r
+ ~MediaTextExpandEditArea(void);\r
+ result Construct(const Tizen::Graphics::Rectangle& rectangle);\r
+\r
+ // Set listener API\r
+ void AddActionEventListener(Tizen::Ui::IActionEventListener& listener);\r
+ void AddKeypadEventListener(Tizen::Ui::IKeypadEventListener& listener);\r
+ void AddTextEventListener(Tizen::Ui::ITextEventListener& listener);\r
+ void AddKeyEventListener(Tizen::Ui::IKeyEventListener& listener);\r
+ void SetSizeChangeEventListener(ISizeChangeEventListener& listener);\r
+ void AddFocusEventListener(Tizen::Ui::IFocusEventListener& listener);\r
+ // Set media file\r
+ result SetText(const Tizen::Base::String& strText);\r
+ result ClearText(void);\r
+ Tizen::Base::String GetText(void) const;\r
+ result SetMedia(const Tizen::Base::String& mediaFilePath, MediaType mediaType);\r
+ Tizen::Base::String GetMediaPath(MediaType mediaType) const;\r
+ void SetDeleteActionId(int actionId);\r
+ bool IsImageExist() const;\r
+ bool IsAudioExist() const;\r
+ bool IsVideoExist() const;\r
+ void SetDeleteShowState(bool visible);\r
+ result ShowKeypad(bool visible);\r
+ result SetFocus(void);\r
+ result SetTextSize(int textSize);\r
+ void SetLimitLength(int length);\r
+\r
+protected:\r
+ // Form IExpandableEditAreaEventListener\r
+ virtual void OnExpandableEditAreaLineAdded(Tizen::Ui::Controls::ExpandableEditArea& source, int newLineCount);\r
+ virtual void OnExpandableEditAreaLineRemoved(Tizen::Ui::Controls::ExpandableEditArea& source, int newLineCount);\r
+ // Form IActionEventListener\r
+ virtual void OnActionPerformed(const Tizen::Ui::Control& source, int actionId);\r
+ // Form Base class\r
+ virtual result OnDraw(void);\r
+ virtual void OnBoundsChanged(const Tizen::Graphics::Rectangle& oldRect, const Tizen::Graphics::Rectangle& newRect);\r
+ // Form ComposeBaseControl\r
+ virtual ComposeControlType GetControlType(void) const;\r
+\r
+private:\r
+ Tizen::Graphics::Bitmap* __pBgBitmap;\r
+ ISizeChangeEventListener* __pSizeChangeListener;\r
+ MediaControl* __pMediaCntl;\r
+ Tizen::Ui::Controls::ExpandableEditArea* __pExpandEditArea;\r
+ Tizen::Ui::Controls::Button* __pDeleteButton;\r
+ Tizen::Graphics::Rectangle __prevBounds;\r
+ AttachementControl* __pAttachCntrl;\r
+\r
+};\r
+\r
+\r
+\r
+#endif // _MSG_MEDIA_TEXTEXPAND_EDITAREA_H_\r
--- /dev/null
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file MsgMessageComposePanel.h
+ * @brief This is the header file for the %MessageComposePanel class.
+ *
+ * This header file contains the declarations of the %MessageComposePanel class.
+ */
+#ifndef _MSG_MESSAGE_COMPOSE_PANEL_H_
+#define _MSG_MESSAGE_COMPOSE_PANEL_H_
+
+#include <FApp.h>
+#include <FUi.h>
+
+#include "MsgISizeChangeEventListener.h"
+#include "MsgTypes.h"
+
+class AttachListPopup;
+class ComposeBaseControl;
+class CompressPopup;
+class IComposeEventObserver;
+class MediaTextExpandEditArea;
+class MessageData;
+class MessageComposeData;
+
+class MessageComposePanel
+ : public Tizen::Ui::Controls::Panel
+ , public Tizen::App::IAppControlResponseListener
+ , public Tizen::Base::Runtime::IRunnable
+ , public Tizen::Base::Runtime::ITimerEventListener
+ , public Tizen::Ui::IActionEventListener
+ , public Tizen::Ui::IFocusEventListener
+ , public Tizen::Ui::IKeyEventListener
+ , public Tizen::Ui::IKeypadEventListener
+ , public Tizen::Ui::ITextEventListener
+ , public ISizeChangeEventListener
+{
+public:
+ // Constructor
+ MessageComposePanel(void);
+ // Destructor
+ ~MessageComposePanel(void);
+ // 2nd phase constructor
+ result Construct(const Tizen::Base::String& resourceId);
+ // New API
+ void SetComposeEventListener(IComposeEventObserver& listener);
+ void SetKeypadEventListener(Tizen::Ui::IKeypadEventListener& listener);
+ void SetSizeChangeEventListener(ISizeChangeEventListener& listener);
+ int GetDisplayHeight(void) const;
+ void ShowDefaultUi(void);
+ bool IsMmsMode(void) const;
+ Tizen::Base::String GetSmsText(void) const;
+ MessageComposeData* GetMessageComposeDataN(void) const;
+ void Reset(void);
+ void HideKeypad(void);
+ void ShowKeypad(void);
+ void SetTextSize(int textSize);
+ void ClearText(void);
+ void LoadMessageData(const MessageData& msgData);
+ void LoadComposeData(const MessageComposeData& composeData);
+
+ void SetFocusToEditor(void);
+ void SetDefaultPageDuration(int pageDuration);
+ int GetDefaultPageDuration(void) const;
+
+ // Form Base class
+ virtual result SetBounds(const Tizen::Graphics::Rectangle& rect);
+
+ void EnableSendButton(bool status);
+ bool IsComposeFieldEmpty(void);
+
+protected:
+ // Form ISizeChangeEventListener
+ virtual void OnSizeIncrease(const Tizen::Ui::Control& control);
+ virtual void OnSizeDecrease(const Tizen::Ui::Control& control);
+ // Form IAppControlEventListener
+ virtual void OnAppControlCompleteResponseReceived(const Tizen::App::AppId& appId, const Tizen::Base::String& operationId, Tizen::App::AppCtrlResult appControlResult, const Tizen::Base::Collection::IMap* pExtraData);
+ // Form IActionEventListener
+ virtual void OnActionPerformed(const Tizen::Ui::Control& source, int actionId);
+ // Form IKeypadEventListener
+ virtual void OnKeypadActionPerformed(Tizen::Ui::Control& source, Tizen::Ui::KeypadAction keypadAction);
+ virtual void OnKeypadClosed(Tizen::Ui::Control& source);
+ virtual void OnKeypadOpened(Tizen::Ui::Control& source);
+ virtual void OnKeypadWillOpen(Tizen::Ui::Control& source);
+ virtual void OnKeypadBoundsChanged(Tizen::Ui::Control& source);
+ // Form IFocusEventListener
+ virtual void OnFocusGained(const Tizen::Ui::Control& source);
+ virtual void OnFocusLost(const Tizen::Ui::Control& source);
+ // Form base class
+ virtual result OnDraw(void);
+ virtual void OnUserEventReceivedN(RequestId requestId, Tizen::Base::Collection::IList* pArgs);
+ virtual void OnBoundsChanged(const Tizen::Graphics::Rectangle& oldRect, const Tizen::Graphics::Rectangle& newRect);
+
+ //From IKeyEventListener
+ virtual void OnKeyPressed(const Tizen::Ui::Control& source, Tizen::Ui::KeyCode keyCode){};
+ virtual void OnKeyReleased(const Tizen::Ui::Control& source, Tizen::Ui::KeyCode keyCode);
+ virtual void OnKeyLongPressed(const Tizen::Ui::Control& source, Tizen::Ui::KeyCode keyCode){};
+ //From ITextEventListener
+ virtual void OnTextValueChangeCanceled(const Tizen::Ui::Control& source){};
+ virtual void OnTextValueChanged(const Tizen::Ui::Control& source);
+ // Form IRunnable
+ virtual Tizen::Base::Object* Run(void);
+
+ //ITimerEventListner
+ void OnTimerExpired(Tizen::Base::Runtime::Timer& timer);
+ bool IsTimerExpired() const {return false;};
+
+ // New API
+ int GetPanelHeight(const Tizen::Ui::Controls::Panel& panel) const;
+ void AdjustChildControl(void);
+ result LaunchAppControl(RequestType requestType);
+ void ShowComposeInfo(void);
+ Tizen::Base::String GetMessageCounterInfo(int msgLength) const;
+ long long int GetMessageComposeSize(void) const;
+ long long int GetFileSize(const Tizen::Base::String& filePath) const;
+ result ChangeResolution(const Tizen::Base::String& sourcPath);
+ bool IsSutitableCreationMode(const Tizen::Base::String& filePath) const;
+ void ProcessNextFileComposeQueue(void);
+ MsgResponse InsertFileToPage(const Tizen::Base::String& selectFilepath);
+ MediaTextExpandEditArea* CreatePage(const Tizen::Base::String& pageText = L"");
+ void AddAttachementElement(const Tizen::Base::String& attachFile);
+ void AddSubjectField(const Tizen::Base::String& subjectText = L"");
+ void ShowSizeErrorPopup(void);
+ Tizen::Base::Collection::IList* GetSelectedFileListN(const Tizen::Base::String& operationId, const Tizen::Base::Collection::IMap* pResultMap);
+
+private:
+ IComposeEventObserver* __pCompseEventListener;
+ ComposeBaseControl* __pFocusControl;
+ Tizen::Ui::IKeypadEventListener* __pKeypadListener;
+ ISizeChangeEventListener* __pSizeChangeListener;
+ Tizen::Ui::Controls::ScrollPanel* __pScrollPanel;
+ Tizen::Ui::Controls::Button* __pSendMessage;
+ Tizen::Ui::Controls::Button* __pAddAttachement;
+ Tizen::Ui::Controls::Label* __pComposeInfoLabel;
+ Tizen::Graphics::Rectangle __prevBounds;
+ Tizen::Ui::Controls::Popup* __pSizeExceedPopup;
+ CompressPopup* __pCompressProgressPopup;
+ AttachListPopup* __pAttachPopup;
+ Tizen::Base::Runtime::Thread* __pWorkerThread;
+ Tizen::Base::String __pSelectFilePath;
+ int __remainSizeBytes;
+ int __defaultPageDuration;
+ Tizen::Base::Collection::ArrayList* __pSelectedFilesQueue;
+};
+
+#endif // _MSG_MESSAGE_COMPOSE_PANEL_H_
--- /dev/null
+//\r
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.\r
+//\r
+// Licensed under the Flora License, Version 1.0 (the License);\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+// http://floralicense.org/license/\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an AS IS BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+//\r
+\r
+/**\r
+ * @file MsgMessageData.h\r
+ * @brief This is the header file for the %MessageData class.\r
+ *\r
+ * This header file contains the declarations of the %MessageData class.\r
+ */\r
+#ifndef _MSG_MESSAGE_DATA_H_\r
+#define _MSG_MESSAGE_DATA_H_\r
+\r
+#include <msg_storage_types.h>\r
+\r
+#include "MsgBaseData.h"\r
+\r
+namespace Tizen { namespace Base { namespace Collection\r
+{\r
+class ArrayList;\r
+}}};\r
+namespace Tizen { namespace Graphics\r
+{\r
+class Bitmap;\r
+}};\r
+class MessageComposeData;\r
+/**\r
+ * @class MessageData\r
+ *\r
+ * Class MessageData hold minimum information for a single message.\r
+ */\r
+\r
+class MessageData\r
+ : public BaseData\r
+{\r
+public:\r
+ /**\r
+ * Default constructor for this class.\r
+ */\r
+ MessageData(void);\r
+\r
+ /**\r
+ * Default destructor for this class.\r
+ */\r
+ virtual ~MessageData(void);\r
+\r
+ /**\r
+ * 2nd phase constructor\r
+ */\r
+ result Construct(msg_struct_t pMessageInfo, bool mmsDetailInfo = false);\r
+ result Construct(MessageComposeData& compseData);\r
+\r
+\r
+ // Form Base class\r
+ BaseData* CloneN(void);\r
+ int GetEntryId(void) const;\r
+ int GetUnreadCount(void) const;\r
+ const Tizen::Base::String& GetDisplayName(void) const;\r
+ const Tizen::Base::String& GetMessageText(void) const;\r
+ int GetMessageType(void) const;\r
+ const Tizen::Base::String& GetTimeStamp(void) const;\r
+ const Tizen::Base::String& GetGroupName(void) const;\r
+ const int GetDraftMessageCount(void) const;\r
+ DataType GetDataType(void);\r
+\r
+ // New API\r
+ /**\r
+ * Checkout message is sent or receive. This is an synchronous API.\r
+ *\r
+ * @return bool - true, In case of sent message and false in case of receive message.\r
+ *\r
+ */\r
+ bool IsSent(void) const;\r
+\r
+ /**\r
+ * Checkout message is read or unread. This is an synchronous API.\r
+ *\r
+ * @return bool - true, In case unread message else false.\r
+ *\r
+ */\r
+ bool IsUnRead(void) const;\r
+\r
+ /**\r
+ * Return true in case of fail message\r
+ */\r
+ bool IsSentFail(void) const;\r
+\r
+ /**\r
+ * Return true in case of message in sending state\r
+ */\r
+ bool IsSending(void) const;\r
+\r
+ /**\r
+ * return true in case of MMS message\r
+ */\r
+ bool IsMms(void) const;\r
+\r
+ /**\r
+ * Get recipient address list\r
+ */\r
+ const Tizen::Base::Collection::ArrayList* GetAddressList(void) const;\r
+\r
+ /**\r
+ * Get Deafult thumbnail bitmap for current MMS message. Return null in case there\r
+ * is no valid thumnail image.\r
+ */\r
+ Tizen::Graphics::Bitmap* GetThumbnail(void);\r
+\r
+ /**\r
+ * Get Subject text in case of MMS\r
+ */\r
+ const Tizen::Base::String& GetSubject(void) const;\r
+\r
+ /**\r
+ * Get attachement count.\r
+ */\r
+ int GetAttachmentCount(void) const;\r
+\r
+ /**\r
+ * Get attachement list array, List content attachment path\r
+ */\r
+ const Tizen::Base::Collection::ArrayList* GetAttachList(void) const;\r
+\r
+ /**\r
+ * Get MMS slide page count\r
+ */\r
+ int GetPageCount(void) const;\r
+\r
+ /**\r
+ * Get Page list array. It hold object of MmsPageData.\r
+ */\r
+ const Tizen::Base::Collection::ArrayList* GetPageList(void) const;\r
+\r
+ /**\r
+ * Get Message ThreadId\r
+ */\r
+ int GetThreadId(void) const;\r
+\r
+private:\r
+ result InitAddrListDisplayName(msg_struct_t pMessageInfo);\r
+ result InitMessageBody(msg_struct_t pMessageInfo);\r
+ result InitTimeStampGroupName(void);\r
+ result InitMmsData(msg_struct_t pMessageInfo, bool mmsDetailInfo);\r
+ Tizen::Base::String GetMediaPath(msg_struct_t pMediaInfo) const;\r
+ //! To prevent copy constructor and assignment\r
+ MessageData(const MessageData& rhs);\r
+ MessageData& operator =(const MessageData& rhs);\r
+\r
+private:\r
+ //! Message entry information\r
+ int __messageId;\r
+ int __threadId;\r
+ int __folderId;\r
+ int __messageType;\r
+ int __displayTime;\r
+ int __networkStatus;\r
+ bool __isRead;\r
+ int __messageDirection;\r
+ Tizen::Base::Collection::ArrayList* __pAddressList;\r
+ Tizen::Base::String __displayName;\r
+ Tizen::Base::String __messageBody;\r
+ Tizen::Base::String __groupName;\r
+ Tizen::Base::String __timeStamp;\r
+ //! MMS related\r
+ int __attachmentCount;\r
+ Tizen::Base::String __thumbnailPath;\r
+ Tizen::Graphics::Bitmap* __pThumbnailBitmap;\r
+ Tizen::Base::String __subjectStr;\r
+ Tizen::Base::Collection::ArrayList* __pAttachList;\r
+ Tizen::Base::Collection::ArrayList* __pPageList;\r
+};\r
+\r
+#endif // _MSG_MESSAGE_DATA_H_\r
--- /dev/null
+//\r
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.\r
+//\r
+// Licensed under the Flora License, Version 1.0 (the License);\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+// http://floralicense.org/license/\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an AS IS BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+//\r
+\r
+/**\r
+ * @file MsgMessagePresentationModel.h\r
+ * @brief This is the header file for the %MessagePresentationModel class.\r
+ *\r
+ * This header file contains the declarations of the %MessagePresentationModel class.\r
+ */\r
+#ifndef _MSG_MESSAGE_PRESENTATION_MODEL_H_\r
+#define _MSG_MESSAGE_PRESENTATION_MODEL_H_\r
+\r
+#include <msg_types.h>\r
+\r
+#include <FBaseTypes.h>\r
+\r
+#include "MsgBasePresentationModel.h"\r
+#include "MsgTypes.h"\r
+\r
+class MmsManager;\r
+class SmsManager;\r
+\r
+\r
+namespace Tizen { namespace Base { namespace Collection\r
+{\r
+class ArrayList;\r
+class IList;\r
+}}};\r
+namespace Tizen { namespace Social\r
+{\r
+class Addressbook;\r
+}};\r
+class MessageComposeData;\r
+/**\r
+ * @class MessagePresentationModel\r
+ *\r
+ * This class interact with SLP layer and use to send/Save SMS/MMS\r
+ */\r
+class MessagePresentationModel\r
+ : public BasePresentationModel\r
+{\r
+public:\r
+ /**\r
+ * Allocation method for this class\r
+ *\r
+ * @param Take no argument.\r
+ *\r
+ * @return Return instance of this class\r
+ *\r
+ */\r
+ static MessagePresentationModel* GetInstance(void);\r
+\r
+ /**\r
+ * search contact.\r
+ *\r
+ * @inputText - contact name or number.\r
+ */\r
+ void SearchContact(const Tizen::Base::String& inputText);\r
+\r
+ /**\r
+ * get search contacts count.\r
+ *\r
+ * @return int - returns search contact count.\r
+ */\r
+ int GetContactsCount(void);\r
+\r
+ /**\r
+ *get contact name at index.\r
+ *\r
+ * @index - index to get contact name.\r
+ * @return String - return contact name.\r
+ */\r
+ Tizen::Base::String GetContactNameAt(int index);\r
+\r
+ /**\r
+ *get contact number at index.\r
+ *\r
+ * @index - index to get contact number.\r
+ * @return String - return contact number.\r
+ */\r
+ Tizen::Base::String GetContactNumberAt(int index);\r
+\r
+ /**\r
+ * Reply SMS for given thread\r
+ *\r
+ * @msgText - Text has to be sent by SMS\r
+ * @threadId - Thread ID which given text send as SMS.\r
+ *\r
+ * @return MsgResponse - return MSG_RESPONSE_SUCCESS in case of success, else specific error code.\r
+ */\r
+ MsgResponse SendMessage(const MessageComposeData& composeData, int threadId);\r
+\r
+ /**\r
+ * Send SMS to given recipients list.\r
+ *\r
+ * @msgText - Text has to be sent by SMS\r
+ * @addressList - recipients list\r
+ *\r
+ * @return MsgResponse - return MSG_RESPONSE_SUCCESS in case of success, else specific error code.\r
+ */\r
+ MsgResponse SendMessage(const MessageComposeData& composeData, const Tizen::Base::Collection::IList& addressList, int& threadId);\r
+\r
+ /**\r
+ * Reply SMS for given thread\r
+ *\r
+ * @msgText - Text has to be sent by SMS\r
+ * @threadId - Thread ID which given text send as SMS.\r
+ *\r
+ * @return MsgResponse - return MSG_RESPONSE_SUCCESS in case of success, else specific error code.\r
+ */\r
+ MsgResponse SaveMessage(const MessageComposeData& composeData, int threadId);\r
+\r
+ /**\r
+ * Send SMS to given recipients list.\r
+ *\r
+ * @msgText - Text has to be sent by SMS\r
+ * @addressList - recipients list\r
+ *\r
+ * @return MsgResponse - return MSG_RESPONSE_SUCCESS in case of success, else specific error code.\r
+ */\r
+ MsgResponse SaveMessage(const MessageComposeData& composeData, const Tizen::Base::Collection::IList& addressList);\r
+\r
+ /**\r
+ * Resend message\r
+ *\r
+ * @messageId - message id to resend.\r
+ *\r
+ * @return MsgResponse - return MSG_RESPONSE_SUCCESS in case of success, else specific error code.\r
+ */\r
+ MsgResponse ReSendMessage(int messageId, bool ismms);\r
+\r
+private:\r
+ /**\r
+ * Default constructor for this class.\r
+ */\r
+ MessagePresentationModel(void);\r
+\r
+ /**\r
+ * Default destructor for this class\r
+ */\r
+ virtual ~MessagePresentationModel(void);\r
+\r
+ /**\r
+ * Second phase construction\r
+ */\r
+ result Construct(void);\r
+ static void CreateInstance(void);\r
+ static void DestroyInstance(void);\r
+ void UpdateSearchContactList(const Tizen::Base::Collection::IList& searchResultList, const Tizen::Base::String& searchNumber = L"");\r
+\r
+private:\r
+ //! To prevent copy constructor and assignment\r
+ MessagePresentationModel(const MessagePresentationModel& rhs);\r
+ MessagePresentationModel& operator =(const MessagePresentationModel& rhs);\r
+\r
+private:\r
+ static MessagePresentationModel* __pInstance; //! Self instance for singleton design.\r
+ Tizen::Base::Collection::ArrayList* __pActiveSearchNamesList;\r
+ Tizen::Base::Collection::ArrayList* __pActiveSearchContactNumbersList;\r
+ SmsManager* __pSmsManager;\r
+ MmsManager* __pMmsManger;\r
+ Tizen::Social::Addressbook* __pAddressbook;\r
+\r
+};\r
+\r
+#endif // _MSG_THREAD_PRESENTATION_MODEL_H_\r
--- /dev/null
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file MsgMessagesApp.h
+ * @brief This is the header file for the %MessagesApp class.
+ *
+ * This header file contains the declarations of the %MessagesApp class.
+ */
+#ifndef _MSG_MESSAGES_APP_H_
+#define _MSG_MESSAGES_APP_H_
+
+#include <FApp.h>
+#include <FAppTypes.h>
+#include <FSystem.h>
+#include <FUi.h>
+
+class FacadeManager;
+class MessageComposeData;
+class SceneFactory;
+class ThreadPresentationModel;
+class AddressInfo;
+
+namespace Tizen { namespace Social {
+class Addressbook;
+}};
+
+/**
+ * @class MessagesApp
+ *
+ * Class MessagesApp is inherited from UiApp class which provides basic
+ * features necessary to define an UiApp
+ */
+
+class MessagesApp
+ : public Tizen::App::UiApp
+ , public Tizen::App::IAppControlProviderEventListener
+ , public Tizen::System::IScreenEventListener
+{
+public:
+ MessagesApp(void);
+ virtual ~MessagesApp(void);
+ // New API
+ Tizen::Ui::Scenes::SceneId GetInitialScene(void) {return __initialScene;}
+ Tizen::Base::Collection::IList* GetLaunchArgumentsN(void);
+ bool IsAppRunningEmbededMode(void){return __isAppRunningEmbededMode;}
+ void SetAppEmbededMode(bool mode){ __isAppRunningEmbededMode = mode;}
+ void ExitApp(Tizen::App::AppCtrlResult result = Tizen::App::APP_CTRL_RESULT_SUCCEEDED);
+ /**
+ * Allocator method , create instance of this class
+ */
+ static Tizen::App::UiApp* CreateInstance(void);
+
+protected:
+ // New API
+ void HandleAppControlRequestReceived(const Tizen::Base::String& operationId, Tizen::Base::Collection::IList* pArgsList);
+ void UpdateRecipients(MessageComposeData& composeDta, const Tizen::Base::String& recipientsStr);
+ // Form base class
+ bool OnAppInitialized(void);
+ bool OnAppInitializing(Tizen::App::AppRegistry& appRegistry);
+ bool OnAppTerminating(Tizen::App::AppRegistry& appRegistry, bool forcedTermination = false);
+ bool OnAppWillTerminate(void);
+ void OnBackground(void);
+ void OnForeground(void);
+ void OnBatteryLevelChanged(Tizen::System::BatteryLevel batteryLevel);
+ void OnLowMemory(void);
+ //IAppControlProviderEventListener
+ void OnAppControlRequestReceived(RequestId reqId, const Tizen::Base::String& operationId, const Tizen::Base::String* pDataType, const Tizen::Base::String* pUriScheme, const Tizen::Base::Collection::IMap* pArgs);
+ // Form IScreenEventListener
+ void OnScreenOn(void);
+ void OnScreenOff(void);
+ void GetRecipientName(AddressInfo& addressInfo, const Tizen::Base::String& strPhoneNumber);
+
+private:
+ RequestId __pClientAppRequestId;
+ Tizen::App::AppCtrlResult __appCntlResult;
+ bool __isApplicationRunning;
+ bool __isAppRunningEmbededMode;
+ FacadeManager* __pFacadeManager;
+ Tizen::Social::Addressbook* __pAddressBook;
+ Tizen::Ui::Scenes::SceneId __initialScene;
+ Tizen::Base::Collection::ArrayList* __pLaunchArgs;
+};
+
+#endif //_MSG_MESSAGES_APP_H_
--- /dev/null
+//\r
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.\r
+//\r
+// Licensed under the Flora License, Version 1.0 (the License);\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+// http://floralicense.org/license/\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an AS IS BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+//\r
+\r
+/**\r
+ * @file MsgMmsDetailForm.h\r
+ * @brief This is the header file for the %MmsDetailForm class.\r
+ *\r
+ * This header file contains the declarations of the %MmsDetailForm class.\r
+ */\r
+#ifndef _MSG_MMS_DETAIL_FORM_H_\r
+#define _MSG_MMS_DETAIL_FORM_H_\r
+\r
+#include <FMediaIPlayerEventListener.h>\r
+#include <FUiCtrlIGalleryEventListener.h>\r
+#include <FUiCtrlIGalleryItemProvider.h>\r
+#include <FUiIAdjustmentEventListener.h>\r
+\r
+#include "MsgBaseForm.h"\r
+\r
+namespace Tizen { namespace Media\r
+{\r
+class Player;\r
+}}\r
+\r
+namespace Tizen { namespace Ui { namespace Controls\r
+{\r
+class Progress;\r
+class ScrollPanel;\r
+class Slider;\r
+class TextBox;\r
+}}};\r
+\r
+class AttachListPanel;\r
+class AttachementSavePopup;\r
+class MessageData;\r
+\r
+/**\r
+ * @class MmsDetailForm\r
+ *\r
+ * Class MmsDetailForm displays MMS presentation slide.\r
+ */\r
+\r
+class MmsDetailForm\r
+ : public BaseForm\r
+ , public Tizen::Base::Runtime::ITimerEventListener\r
+ , public Tizen::Media::IPlayerEventListener\r
+ , public Tizen::Ui::IAdjustmentEventListener\r
+ , public Tizen::Ui::IOrientationEventListener\r
+ , public Tizen::Ui::ITouchEventListener\r
+ , public Tizen::Ui::Controls::IGalleryItemProvider\r
+ , public Tizen::Ui::Scenes::ISceneEventListener\r
+{\r
+public:\r
+ MmsDetailForm(void);\r
+ virtual ~MmsDetailForm(void);\r
+ bool Initialize(void);\r
+\r
+private:\r
+ enum SlideType\r
+ {\r
+ ImageSlide,\r
+ VideoSlide,\r
+ AudioSlide,\r
+ AudioImageSlide,\r
+ AttachmentSlide,\r
+ TextSlide,\r
+ SubjectSlide,\r
+ };\r
+protected:\r
+ // From From\r
+ virtual result OnInitializing(void);\r
+ virtual result OnTerminating(void);\r
+\r
+ // From IActionEventListener\r
+ void OnActionPerformed(const Tizen::Ui::Control& source, int actionId);\r
+\r
+ // From ISceneEventListener\r
+ virtual void OnSceneActivatedN(const Tizen::Ui::Scenes::SceneId& previousSceneId, const Tizen::Ui::Scenes::SceneId& currentSceneId, Tizen::Base::Collection::IList* pArgs);\r
+ virtual void OnSceneDeactivated(const Tizen::Ui::Scenes::SceneId& currentSceneId, const Tizen::Ui::Scenes::SceneId& nextSceneId);\r
+\r
+ // Orientation listener\r
+ virtual void OnOrientationChanged(const Tizen::Ui::Control& source, Tizen::Ui::OrientationStatus orientationStatus);\r
+\r
+ // Back event listener.\r
+ void OnFormBackRequested(Tizen::Ui::Controls::Form& source);\r
+\r
+ // From base class\r
+ void OnIntializeFooter(Tizen::Ui::Controls::Footer& footer);\r
+ void OnIntializeHeader(Tizen::Ui::Controls::Header& header);\r
+ void OnUserEventReceivedN(RequestId requestId, Tizen::Base::Collection::IList* pArgs);\r
+\r
+ //IGalleryItemProvider\r
+ virtual Tizen::Ui::Controls::GalleryItem* CreateItem(int index);\r
+ virtual bool DeleteItem(int index, Tizen::Ui::Controls::GalleryItem* pItem);\r
+ virtual int GetItemCount(void);\r
+\r
+ //ITimerEventListner\r
+ void OnTimerExpired(Tizen::Base::Runtime::Timer& timer);\r
+ bool IsTimerExpired() const {return false;};\r
+\r
+ //IAdjustmentEventListener\r
+ virtual void OnAdjustmentValueChanged(const Tizen::Ui::Control& source, int adjustment);\r
+\r
+ // IPlayerEventListener\r
+ virtual void OnPlayerOpened(result r) {};\r
+ virtual void OnPlayerEndOfClip(void) {};\r
+ virtual void OnPlayerBuffering(int percent) {};\r
+ virtual void OnPlayerErrorOccurred(Tizen::Media::PlayerErrorReason r) {};\r
+ virtual void OnPlayerInterrupted(void) {};\r
+ virtual void OnPlayerReleased(void) {};\r
+ virtual void OnPlayerSeekCompleted(result r) {};\r
+\r
+ // ITouchEventListener\r
+ virtual void OnTouchFocusIn(const Tizen::Ui::Control& source, const Tizen::Graphics::Point& currentPosition, const Tizen::Ui::TouchEventInfo& touchInfo){};\r
+ virtual void OnTouchFocusOut(const Tizen::Ui::Control& source, const Tizen::Graphics::Point& currentPosition, const Tizen::Ui::TouchEventInfo& touchInfo){};\r
+ virtual void OnTouchMoved(const Tizen::Ui::Control& source, const Tizen::Graphics::Point& currentPosition, const Tizen::Ui::TouchEventInfo& touchInfo){};\r
+ virtual void OnTouchPressed(const Tizen::Ui::Control& source, const Tizen::Graphics::Point& currentPosition, const Tizen::Ui::TouchEventInfo& touchInfo);\r
+ virtual void OnTouchReleased(const Tizen::Ui::Control& source, const Tizen::Graphics::Point& currentPosition, const Tizen::Ui::TouchEventInfo& touchInfo){};\r
+\r
+private:\r
+ void SetFooter(void);\r
+ bool IsTextExist(int slideIndex);\r
+ void StartSlideShow(void);\r
+ void PlaySlideShow(void);\r
+ void PauseSlideShow(void);\r
+ void UpdatePlayButton(void);\r
+ void UpdateMmsBodyText(void);\r
+ void UpdateSlideNumber(int currentSlideNumber);\r
+ void UpdateTimeElapsedLabel(int timeElapsed);\r
+ void BlockPopup(const Tizen::Base::String& phoneNumber);\r
+ void UnBlockPhoneNumber(const Tizen::Base::String& phoneNumber);\r
+ void ShowMessageDetails(void);\r
+ void ShowVolumePopup(void);\r
+ void ShowDeletePopup(void);\r
+ void ShowMoreContextMenu(void);\r
+ void ShowContactContextMenu(void){};\r
+ int GetTimeToChangeslide(int slideNumber);\r
+ enum SlideType GetSlideType(int slideNumber);\r
+ void UpdateForm(enum SlideType);\r
+ result StartVideo(void){return null;};\r
+ result StartAudio(void){return null;};\r
+ void Stop(void){};\r
+ void Pause(void){};\r
+ Tizen::Graphics::Bitmap* GetIconN(const Tizen::Base::String& filePath) const;\r
+\r
+private:\r
+ // Member variable.\r
+ MessageData* __pMessageData;\r
+ AttachListPanel* __pMsgAttachListPanel;\r
+ Tizen::Ui::Scenes::SceneId __previousSceneId;\r
+ Tizen::Base::Collection::ArrayList* __pAttachFileArray;\r
+ Tizen::Ui::Controls::Gallery* __pGallery;\r
+ Tizen::Ui::Controls::TextBox* __pMmsTextBox;\r
+ Tizen::Ui::Controls::Panel* __pPlayControlPanel;\r
+ Tizen::Ui::Controls::Button* __pPreviousButton;\r
+ Tizen::Ui::Controls::Button* __pPlayPausebutton;\r
+ Tizen::Ui::Controls::Button* __pNextbutton;\r
+ Tizen::Ui::Controls::Progress* __pProgress;\r
+ Tizen::Ui::Controls::Label* __pTimeElapsedLabel;\r
+ Tizen::Ui::Controls::Label* __pPageNumberLabel;\r
+ Tizen::Ui::Controls::Label* __pAttachFilesInfoLabel;\r
+ Tizen::Ui::Controls::Popup* __pMessageDetailsPopup;\r
+ Tizen::Ui::Controls::Popup* __pDeletePopup;\r
+ Tizen::Ui::Controls::Popup* __pVolumePopup;\r
+ Tizen::Ui::Controls::Popup* __pBlockPopup;\r
+ Tizen::Ui::Controls::ContextMenu* __pContextMenu;\r
+ Tizen::Ui::Controls::ContextMenu* __pContextMenuText;\r
+ Tizen::Ui::Controls::Slider* __pMediaVolumeSlider;\r
+ Tizen::Ui::Controls::OverlayRegion* __pOverlay;\r
+ Tizen::Media::Player* __pPlayer;\r
+ AttachementSavePopup* __pSaveAttachmentsPopup;\r
+ int* __pPageDuration;\r
+ bool __bIsPlaying;\r
+ int __totalDuration;\r
+ int __timeElapsed;\r
+ int __pageCountOfCurrentMessageData;\r
+ int __currentPage;\r
+ Tizen::Base::Runtime::Timer* __pTimer;\r
+ Tizen::Base::Runtime::Timer* __pTimerforVolumePopup;\r
+ Tizen::Base::Runtime::Timer* __pTimerForControlBar;\r
+ MmsFormType __mmsFormType;\r
+};\r
+\r
+#endif //_MSG_MMS_DETAIL_FORM_H_\r
--- /dev/null
+//\r
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.\r
+//\r
+// Licensed under the Flora License, Version 1.0 (the License);\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+// http://floralicense.org/license/\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an AS IS BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+//\r
+\r
+/**\r
+ * @file MsgMmsManager.h\r
+ * @brief This is the header file for the %MmsManager class.\r
+ *\r
+ * This header file contains the declarations of the %MmsManager class.\r
+ */\r
+#ifndef _MSG_MMS_MANAGER_H_\r
+#define _MSG_MMS_MANAGER_H_\r
+\r
+#include <msg_storage_types.h>\r
+#include <msg_types.h>\r
+#include <msg_transport_types.h>\r
+\r
+#include <FBaseTypes.h>\r
+\r
+#include "MsgTypes.h"\r
+\r
+namespace Tizen { namespace Base { namespace Collection\r
+{\r
+class ArrayList;\r
+class IList;\r
+}}};\r
+\r
+class IMmsEventListener;\r
+class MessageComposeData;\r
+class MmsSendSettings;\r
+\r
+/**\r
+ * @class MsgMmsManager\r
+ *\r
+ * This class interact with SLP layer to send SMS and receive SMS notification.\r
+ */\r
+\r
+class MmsManager\r
+{\r
+public:\r
+ /**\r
+ * Default constructor for this class.\r
+ */\r
+ MmsManager(msg_handle_t pMsgHandle);\r
+\r
+ /**\r
+ * Initialise SMS 2nd phase constructor parameter.\r
+ *\r
+ */\r
+ result Construct(void);\r
+\r
+ /**\r
+ * Default destructor for this calss\r
+ */\r
+ virtual ~MmsManager(void);\r
+\r
+ /**\r
+ * Reply SMS for given thread\r
+ *\r
+ * @msgText - Text has to be sent by SMS\r
+ * @threadId - Thread ID which given text send as SMS.\r
+ *\r
+ * @return MsgResponse - return MSG_RESPONSE_SUCCESS in case of success, else specific error code.\r
+ */\r
+ MsgResponse SendMessage(const MessageComposeData& mmsComposeData, int threadId, const MmsSendSettings* pMmsSendSetting = null);\r
+\r
+ /**\r
+ * Send SMS to given recipients list.\r
+ *\r
+ * @msgText - Text has to be sent by SMS\r
+ * @addressList - recipients list\r
+ *\r
+ * @return MsgResponse - return MSG_RESPONSE_SUCCESS in case of success, else specific error code.\r
+ */\r
+ MsgResponse SendMessage(const MessageComposeData& mmsData, const Tizen::Base::Collection::IList& addressList, int& msgThreadId, const MmsSendSettings* pMmsSendSetting = null);\r
+\r
+ /**\r
+ * Save SMS to draft.\r
+ *\r
+ * @msgText - Text has to be sent by SMS\r
+ * @threadId - Thread ID which given text send as SMS.\r
+ *\r
+ * @return MsgResponse - return MSG_RESPONSE_SUCCESS in case of success, else specific error code.\r
+ */\r
+ MsgResponse SaveMessage(const MessageComposeData& mmsData, int threadId);\r
+\r
+ /**\r
+ * Save SMS to draft.\r
+ *\r
+ * @msgText - Text has to be sent by SMS\r
+ * @addressList - recipients list\r
+ *\r
+ * @return MsgResponse - return MSG_RESPONSE_SUCCESS in case of success, else specific error code.\r
+ */\r
+ MsgResponse SaveMessage(const MessageComposeData& mmsData, const Tizen::Base::Collection::IList& addressList);\r
+\r
+ /**\r
+ * Add MMS receive observer\r
+ *\r
+ * @param eventListener - Listener listening for SMS sent receive events.\r
+ *\r
+ * @retrun result - E_SUCCESS, In case of successfully add listener in event list.\r
+ */\r
+ result AddMmsEventListener(const IMmsEventListener& eventListener);\r
+\r
+ /**\r
+ * Remove MMS receive observer\r
+ *\r
+ * @param eventListener - Listener listening for SMS sent receive events.\r
+ *\r
+ * @retrun result - E_SUCCESS, In case of successfully remove listener in event list.\r
+ *\r
+ */\r
+ result RemoveMmsEventListener(const IMmsEventListener& eventListener);\r
+\r
+ /**\r
+ * Set recipient list in message object.\r
+ *\r
+ * @param messageId - message Id which need to be sent.\r
+ *\r
+ * @return MsgResponse - return MSG_RESPONSE_SUCCESS in case of success, else specific error code.\r
+ */\r
+ MsgResponse ReSendMessage(int messageId);\r
+\r
+\r
+protected:\r
+ /**\r
+ * static call back from message daemon in case of incomming MMS message\r
+ *\r
+ * @param pHandle - message service handle.\r
+ * @param msg - Pointer to incomming mesage.\r
+ * @param pUserParam - User given parameter.\r
+ *\r
+ * @return void\r
+ */\r
+ static void IncommingMmsCallback(msg_handle_t pHandle, msg_struct_t msg, void* pUserParam);\r
+\r
+ /**\r
+ * Incoming message notification, call by IncommingMmsCallback()\r
+ *\r
+ * @param pHandle - Message service handle.\r
+ * @param pMsg - pointer to receive message.\r
+ *\r
+ * @return void\r
+ */\r
+ void IncommingMms(msg_handle_t pHandle, msg_struct_t pMsg);\r
+\r
+ /**\r
+ * Set message type.\r
+ *\r
+ * @param pMsgInfo - message which has to be sent using message service handle.\r
+ * @param msgText - Text to be attached with message.\r
+ * @param threadId - Which thread message has to be sent.\r
+ *\r
+ * @return MsgResponse - return MSG_RESPONSE_SUCCESS in case of success, else specific error code.\r
+ */\r
+ MsgResponse CreateMms(msg_struct_t pMsgInfo, const MessageComposeData& mmsData, int threadId);\r
+\r
+ /**\r
+ * Set message type.\r
+ *\r
+ * @param pMsgInfo - message which has to be sent using message service handle.\r
+ * @param msgText - Text to be attached with message.\r
+ * @param addressList - To whom message has to be sent\r
+ *\r
+ * @return MsgResponse - return MSG_RESPONSE_SUCCESS in case of success, else specific error code.\r
+ */\r
+ MsgResponse CreateMms(msg_struct_t pMsgInfo, const MessageComposeData& mmsData, const Tizen::Base::Collection::IList& addressList);\r
+\r
+ /**\r
+ * Set message type.\r
+ *\r
+ * @param pMsgInfo - message which has to be sent using message service handle.\r
+ *\r
+ * @return MsgResponse - return MSG_RESPONSE_SUCCESS in case of success, else specific error code.\r
+ */\r
+ MsgResponse SetMessageType(msg_struct_t pMsgInfo);\r
+\r
+ /**\r
+ * Set message body.\r
+ *\r
+ * @param pMsgInfo - message which has to be sent using message service handle.\r
+ * @param msgText - message text which has to be sent.\r
+ *\r
+ * @return MsgResponse - return MSG_RESPONSE_SUCCESS in case of success, else specific error code.\r
+ */\r
+ MsgResponse SetMmsData(msg_struct_t pMmsData, const MessageComposeData& mmsComposeData);\r
+\r
+ /**\r
+ * Set recipient list in message object.\r
+ *\r
+ * @param pMsgInfo - message which has to be sent using message service handle.\r
+ * @param threadId - Attached list recipients for given thread ID.\r
+ *\r
+ * @return MsgResponse - return MSG_RESPONSE_SUCCESS in case of success, else specific error code.\r
+ */\r
+ MsgResponse SetRecipientList(msg_struct_t pMsgInfo, int threadId);\r
+\r
+ /**\r
+ * Set recipient list in message object.\r
+ *\r
+ * @param pMsgInfo - message which has to be sent using message service handle.\r
+ * @param addressList - List of recipients.\r
+ *\r
+ * @return MsgResponse - return MSG_RESPONSE_SUCCESS in case of success, else specific error code.\r
+ */\r
+ MsgResponse SetRecipientList(msg_struct_t pMsgInfo, const Tizen::Base::Collection::IList& addressList);\r
+ MsgResponse SetSmilHeader(msg_struct_t pMmsData);\r
+\r
+private:\r
+ //! To prevent copy constructor and assignment\r
+ MmsManager(const MmsManager&);\r
+ MmsManager& operator =(const MmsManager& msg);\r
+\r
+private:\r
+ msg_handle_t __pMsgHandle; /*! Not own, Message service handler. */\r
+ Tizen::Base::Collection::ArrayList* __pMmsEventListener; /*! MMS event listener array. */\r
+};\r
+\r
+#endif // _MSG_SMS_MANAGER_H_\r
--- /dev/null
+//\r
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.\r
+//\r
+// Licensed under the Flora License, Version 1.0 (the License);\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+// http://floralicense.org/license/\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an AS IS BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+//\r
+\r
+/**\r
+ * @file MsgMmsReceiveSettings.h\r
+ * @brief This is the header file for the %MmsReceiveSettings class.\r
+ *\r
+ * This header file contains the declarations of the %MmsReceiveSettings class.\r
+ */\r
+#ifndef _MSG_MMS_RECEIVE_SETTINGS_H_\r
+#define _MSG_MMS_RECEIVE_SETTINGS_H_\r
+\r
+#include <FBaseObject.h>\r
+#include <msg_storage_types.h>\r
+\r
+/**\r
+ * @class MmsReceiveSettings\r
+ *\r
+ * Class MmsReceiveSettings keeps MMS receiving setting details.\r
+ */\r
+\r
+class MmsReceiveSettings\r
+ : public Tizen::Base::Object\r
+{\r
+public:\r
+ /**\r
+ * Default constructor for this class.\r
+ */\r
+ MmsReceiveSettings(msg_struct_t pMmsRecvSetting);\r
+\r
+ /**\r
+ * Default destructor for this class.\r
+ */\r
+ ~MmsReceiveSettings(void);\r
+\r
+ msg_struct_t GetMmsRecvOpt(void);\r
+ // For MMS\r
+ int GetMmsHomeNetworkRetrieveType(void);\r
+ int GetMmsForigenNetworkRetrieveType(void);\r
+ bool IsMmsReadReportRequestOn(void);\r
+\r
+ result SetMmsHomeNetworkRetrieveType(int newType);\r
+ result SetMmsForigenNetworkRetrieveType(int newType);\r
+ result SetMmsReadReportRequestStatus(bool status);\r
+\r
+private:\r
+ /// MMS receiving setting structure pointer\r
+ /// Own\r
+ msg_struct_t __pMmsRecvSetting;\r
+\r
+};\r
+#endif // _MSG_THREAD_ENTRY_H_\r
--- /dev/null
+//\r
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.\r
+//\r
+// Licensed under the Flora License, Version 1.0 (the License);\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+// http://floralicense.org/license/\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an AS IS BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+//\r
+\r
+/**\r
+ * @file MsgMmsSendSettings.h\r
+ * @brief This is the header file for the %MmsSendSettings class.\r
+ *\r
+ * This header file contains the declarations of the %MmsSendSettings class.\r
+ */\r
+#ifndef _MSG_MMS_SEND_SETTINGS_H_\r
+#define _MSG_MMS_SEND_SETTINGS_H_\r
+\r
+#include <FBaseObject.h>\r
+#include <msg_storage_types.h>\r
+\r
+/**\r
+ * @class MmsSendSettings\r
+ *\r
+ * Class MmsSendSettings keeps MMS sending settings details.\r
+ */\r
+\r
+class MmsSendSettings\r
+ : public Tizen::Base::Object\r
+{\r
+public:\r
+ /**\r
+ * Default constructor for this class.\r
+ */\r
+ MmsSendSettings(msg_struct_t pMmsSendSetting);\r
+\r
+ /**\r
+ * Default destructor for this class.\r
+ */\r
+ ~MmsSendSettings(void);\r
+\r
+ msg_struct_t GetMmsSendOpt(void);\r
+ // For MMS\r
+ bool IsMmsDeliveryReportOn(void) const;\r
+ bool IsMmsReadReportSendOn(void) const;\r
+ int GetMmsCreationModeType(void) const;\r
+\r
+ result SetMmsDeliveryReportStatus(bool status);\r
+ result SetMmsReadReportSendStatus(bool status);\r
+ result SetMmsCreationModeType(int newType);\r
+\r
+private:\r
+ /// MMS sending setting structure pointer\r
+ /// Own\r
+ msg_struct_t __pMmsSendSetting;\r
+\r
+};\r
+\r
+\r
+\r
+\r
+#endif // _MSG_MMS_SEND_SETTINGS_H_\r
--- /dev/null
+//\r
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.\r
+//\r
+// Licensed under the Flora License, Version 1.0 (the License);\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+// http://floralicense.org/license/\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an AS IS BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+//\r
+\r
+/**\r
+ * @file MsgMutimediaSettingsForm.h\r
+ * @brief This is the header file for the %MutimediaSettingsForm class.\r
+ *\r
+ * This header file contains the declarations of the %MutimediaSettingsForm class.\r
+ */\r
+#ifndef _MSG_MULTIMEDIA_SETTINGS_FORM_H_\r
+#define _MSG_MULTIMEDIA_SETTINGS_FORM_H_\r
+\r
+#include <FUiCtrlTableViewTypes.h>\r
+#include <FUiCtrlIGroupedTableViewItemProvider.h>\r
+#include <FUiCtrlIGroupedTableViewItemEventListener.h>\r
+#include <FUiScenesISceneEventListener.h>\r
+\r
+#include "MsgBaseForm.h"\r
+\r
+class SettingItemsList;\r
+\r
+enum MutimediaSettingFormType\r
+{\r
+ MULTIMEDIA_SETTING_MESSAGES_FORM,\r
+ MULTIMEDIA_SETTING_RECEIVE_OPTIONS_FORM,\r
+ MULTIMEDIA_SETTING_READ_REPORT_FORM\r
+};\r
+/**\r
+ * @class MutimediaSettingsForm\r
+ *\r
+ * This class represent multimedia setting UI for messaging application and use to save\r
+ * modify multimedia setting details.\r
+ */\r
+\r
+class MutimediaSettingsForm\r
+ : public BaseForm\r
+ , public Tizen::Ui::Controls::IGroupedTableViewItemEventListener\r
+ , public Tizen::Ui::Controls::IGroupedTableViewItemProvider\r
+ , public Tizen::Ui::Scenes::ISceneEventListener\r
+{\r
+\r
+ // Construction\r
+public:\r
+ MutimediaSettingsForm(MutimediaSettingFormType formType);\r
+ virtual ~MutimediaSettingsForm(void);\r
+ bool Initialize(void);\r
+\r
+protected:\r
+ // From From\r
+ result OnInitializing(void);\r
+ result OnTerminating(void);\r
+\r
+ // From base class\r
+ void OnIntializeFooter(Tizen::Ui::Controls::Footer& footer);\r
+ void OnIntializeHeader(Tizen::Ui::Controls::Header& header);\r
+\r
+ // From ISceneEventListener\r
+ virtual void OnSceneActivatedN(const Tizen::Ui::Scenes::SceneId& previousSceneId, const Tizen::Ui::Scenes::SceneId& currentSceneId, Tizen::Base::Collection::IList* pArgs);\r
+ virtual void OnSceneDeactivated(const Tizen::Ui::Scenes::SceneId& currentSceneId, const Tizen::Ui::Scenes::SceneId& nextSceneId);\r
+\r
+ // Back event listener.\r
+ void OnFormBackRequested(Tizen::Ui::Controls::Form& source);\r
+\r
+ //IGroupedTableViewItemProvider\r
+ virtual int GetGroupCount(void);\r
+ virtual int GetItemCount(int groupIndex);\r
+ virtual Tizen::Ui::Controls::TableViewGroupItem* CreateGroupItem(int groupIndex, int itemWidth);\r
+ virtual Tizen::Ui::Controls::TableViewItem* CreateItem(int groupIndex, int itemIndex, int itemWidth);\r
+ virtual bool DeleteItem(int groupIndex, int itemIndex, Tizen::Ui::Controls::TableViewItem* pItem);\r
+ virtual bool DeleteGroupItem(int groupIndex, Tizen::Ui::Controls::TableViewGroupItem* pItem);\r
+ virtual void UpdateItem(int groupIndex, int itemIndex, Tizen::Ui::Controls::TableViewItem* pItem);\r
+ virtual void UpdateGroupItem(int groupIndex, Tizen::Ui::Controls::TableViewGroupItem* pItem);\r
+ virtual int GetDefaultItemHeight(void);\r
+ virtual int GetDefaultGroupItemHeight(void);\r
+\r
+ //Tableview event\r
+ virtual void OnGroupedTableViewGroupItemStateChanged(Tizen::Ui::Controls::GroupedTableView& tableView, int groupIndex, Tizen::Ui::Controls::TableViewGroupItem* pItem, Tizen::Ui::Controls::TableViewItemStatus status);\r
+ virtual void OnGroupedTableViewItemStateChanged(Tizen::Ui::Controls::GroupedTableView& tableView, int groupIndex, int itemIndex, Tizen::Ui::Controls::TableViewItem* pItem, Tizen::Ui::Controls::TableViewItemStatus status);\r
+ virtual void OnGroupedTableViewContextItemActivationStateChanged(Tizen::Ui::Controls::GroupedTableView& tableView, int groupIndex, int itemIndex, Tizen::Ui::Controls::TableViewContextItem* pContextItem, bool activated);\r
+\r
+\r
+private:\r
+ Tizen::Ui::Controls::TableViewItem* CreateSettingItem(int groupIndex, int itemIndex, int itemWidth);\r
+ bool InitializeMultimediaSettingItems(void);\r
+ bool InitializMultimediaReceiveSettingItems(void);\r
+ bool InitializMultimediaReadReportSettingItems(void);\r
+ void HandleSettingItemSelection(int groupIndex, int itemIndex, Tizen::Ui::Controls::TableViewItemStatus status);\r
+ void HandleBackNavigation(void);\r
+ bool GetItemCheckStatus(int controlId) const;\r
+ void CheckedRadioGroupItem(int groupIndex, int itemIndex);\r
+ Tizen::Base::String GetStatusItemText(int type) const;\r
+ Tizen::Base::String GetDownloadString(int type) const;\r
+ Tizen::Base::String GetCreationModeString(int type) const;\r
+ void UpdateSettingItem(int groupIndex, int itemIndex, Tizen::Ui::Controls::TableViewItem* pViewItem);\r
+ void LoadCurrentSettings(void);\r
+ bool GetMmsReceiveStatus(int controlId) const;\r
+ bool GetMmsSendStatus(int controlId) const;\r
+\r
+private:\r
+ MutimediaSettingFormType __settingFormType;\r
+ Tizen::Ui::Controls::GroupedTableView* __pSettingGroupTabledView;\r
+ SettingItemsList* __pSettingItemsArray;\r
+};\r
+\r
+#endif //_MSG_MULTIMEDIA_SETTINGS_FORM_H_\r
--- /dev/null
+//\r
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.\r
+//\r
+// Licensed under the Flora License, Version 1.0 (the License);\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+// http://floralicense.org/license/\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an AS IS BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+//\r
+\r
+/**\r
+ * @file MsgOptionPopup.h\r
+ * @brief This is the header file for the %MsgOptionPopup class.\r
+ *\r
+ * This header file contains the declarations of the %MsgOptionPopup class.\r
+ */\r
+#ifndef _MSG_OPTION_POPUP_H_\r
+#define _MSG_OPTION_POPUP_H_\r
+\r
+#include <FApp.h>\r
+#include <FUi.h>\r
+\r
+#include "MsgBaseCustomPopup.h"\r
+#include "MsgIDeleteEventListener.h"\r
+#include "MsgIPopupEventListener.h"\r
+\r
+class ConversationData;\r
+\r
+class OptionPopup\r
+ : public BaseCustomPopup\r
+ , public Tizen::Ui::IActionEventListener\r
+ , public Tizen::Ui::Controls::IListViewItemEventListener\r
+ , public Tizen::Ui::Controls::IListViewItemProvider\r
+ , public IDeleteEventListener\r
+{\r
+\r
+public:\r
+ OptionPopup(Tizen::Ui::Control& parentCntl, ConversationData* pConvData);\r
+ virtual ~OptionPopup(void);\r
+\r
+ result Construct(int threadId, int selectedIndex);\r
+\r
+ // IListViewItemEventListener\r
+ virtual void OnListViewContextItemStateChanged(Tizen::Ui::Controls::ListView& listView, int index, int elementId, Tizen::Ui::Controls::ListContextItemStatus state);\r
+ virtual void OnListViewItemStateChanged(Tizen::Ui::Controls::ListView& listView, int index, int elementId, Tizen::Ui::Controls::ListItemStatus status);\r
+ virtual void OnListViewItemSwept(Tizen::Ui::Controls::ListView& listView, int index, Tizen::Ui::Controls::SweepDirection direction);\r
+ virtual void OnListViewItemLongPressed(Tizen::Ui::Controls::ListView& listView, int index, int elementId, bool& invokeListViewItemCallback);\r
+\r
+ //IListViewItemProvider\r
+ virtual Tizen::Ui::Controls::ListItemBase* CreateItem(int index, int itemWidth);\r
+ virtual bool DeleteItem(int index, Tizen::Ui::Controls::ListItemBase* pItem, int itemWidth);\r
+ virtual int GetItemCount(void);\r
+\r
+ // From IMsgDeleteEventListener\r
+ void OnDeleteStart(int totalCount){};\r
+ void OnDeleteUpdate(int deleteCount, int totalCount){};\r
+ void OnDeleteComplete(int errCode, Tizen::Base::Object* pThreadObject);\r
+\r
+ // From IActionEventListener\r
+ void OnActionPerformed(const Tizen::Ui::Control& source, int actionId);\r
+\r
+ /**\r
+ * Show message details\r
+ * @return void\r
+ */\r
+ void ShowMessageDetails(void);\r
+\r
+protected:\r
+ void InitalizeMessageOptionList(void);\r
+\r
+private:\r
+ enum ListElementId\r
+ {\r
+ LIST_ELEMENT_DELETE,\r
+ LIST_ELEMENT_COPY_MESSAGE_TEXT,\r
+ LIST_ELEMENT_PROTECTION_ON,\r
+ LIST_ELEMENT_COPY_TO_SIM,\r
+ LIST_ELEMENT_SAVE_ATTACHMENT,\r
+ LIST_ELEMENT_FORWARD,\r
+ LIST_ELEMENT_VIEW_MESSAGE_DETAILS,\r
+ };\r
+ class ListItemObject\r
+ : public Tizen::Base::Object\r
+ {\r
+ public:\r
+ ListItemObject(const Tizen::Base::String& itemText, int elementId)\r
+ : __itemText(itemText)\r
+ , __elementId(elementId)\r
+ {};\r
+ ~ListItemObject(void){}\r
+ const Tizen::Base::String& GetItemText(void) const { return __itemText;}\r
+ int GetItemId(void) const { return __elementId;}\r
+ private:\r
+ Tizen::Base::String __itemText;\r
+ int __elementId;\r
+ };\r
+ // Parent control\r
+ Tizen::Ui::Control& __pParentCnt;\r
+ //! Selected message data\r
+ ConversationData* __pConvData;\r
+ //! Message option list\r
+ Tizen::Base::Collection::ArrayList* __pOptionList;\r
+ // Message details popup.\r
+ Tizen::Ui::Controls::Popup* __pPopup;\r
+};\r
+\r
+#endif // _MSG_OPTION_POPUP_H_\r
--- /dev/null
+//\r
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.\r
+//\r
+// Licensed under the Flora License, Version 1.0 (the License);\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+// http://floralicense.org/license/\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an AS IS BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+//\r
+\r
+/**\r
+ * @file MsgPhoneNumberListPopup.h\r
+ * @brief This is the header file for the %PhoneNumberListPopup class.\r
+ *\r
+ * This header file contains the declarations of the %PhoneNumberListPopup class.\r
+ */\r
+#ifndef _MSG_PHONENUMBER_LIST_POPUP_H_\r
+#define _MSG_PHONENUMBER_LIST_POPUP_H_\r
+\r
+#include <FApp.h>\r
+#include <FUi.h>\r
+\r
+class IPopupEventListener;\r
+\r
+class PhoneNumberListPopup\r
+ : public Tizen::Ui::Controls::Popup\r
+ , public Tizen::Ui::IActionEventListener\r
+ , public Tizen::Ui::Controls::IListViewItemEventListener\r
+ , public Tizen::Ui::Controls::IListViewItemProvider\r
+{\r
+\r
+public:\r
+ PhoneNumberListPopup(IPopupEventListener& listener);\r
+ virtual ~PhoneNumberListPopup(void);\r
+ result Construct(Tizen::Base::Collection::ArrayList* pPhoneNumberList);\r
+ void OnUserEventReceivedN(RequestId requestId, Tizen::Base::Collection::IList* pArgs);\r
+\r
+ // IListViewItemEventListener\r
+ virtual void OnListViewContextItemStateChanged(Tizen::Ui::Controls::ListView& listView, int index, int elementId, Tizen::Ui::Controls::ListContextItemStatus state);\r
+ virtual void OnListViewItemStateChanged(Tizen::Ui::Controls::ListView& listView, int index, int elementId, Tizen::Ui::Controls::ListItemStatus status);\r
+ virtual void OnListViewItemSwept(Tizen::Ui::Controls::ListView& listView, int index, Tizen::Ui::Controls::SweepDirection direction);\r
+ virtual void OnListViewItemLongPressed(Tizen::Ui::Controls::ListView& listView, int index, int elementId, bool& invokeListViewItemCallback);\r
+ //IListViewItemProvider\r
+ virtual Tizen::Ui::Controls::ListItemBase* CreateItem(int index, int itemWidth);\r
+ virtual bool DeleteItem(int index, Tizen::Ui::Controls::ListItemBase* pItem, int itemWidth);\r
+ virtual int GetItemCount(void);\r
+ // From IActionEventListener\r
+ void OnActionPerformed(const Tizen::Ui::Control& source, int actionId);\r
+\r
+private:\r
+ Tizen::Base::Collection::ArrayList* __pPhoneNumberList;\r
+ IPopupEventListener& __popupListener;\r
+};\r
+\r
+#endif /* _MSG_PHONENUMBER_LIST_POPUP_H_ */\r
--- /dev/null
+//\r
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.\r
+//\r
+// Licensed under the Flora License, Version 1.0 (the License);\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+// http://floralicense.org/license/\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an AS IS BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+//\r
+\r
+/**\r
+ * @file MsgProgressPopup.h\r
+ * @brief This is the header file for the %MsgProgressPopup class.\r
+ *\r
+ * This header file contains the declarations of the %MsgProgressPopup class.\r
+ */\r
+#ifndef _MSG_PROGRESS_POPUP_H_\r
+#define _MSG_PROGRESS_POPUP_H_\r
+\r
+#include <FUiCtrlPopup.h>\r
+\r
+namespace Tizen { namespace Ui { namespace Controls\r
+{\r
+class Label;\r
+class Progress;\r
+}}}\r
+\r
+/**\r
+ * @class MsgProgressPopup\r
+ *\r
+ * This class is used to display progress information.\r
+ */\r
+\r
+class MsgProgressPopup\r
+ : public Tizen::Ui::Controls::Popup\r
+{\r
+public:\r
+ //! Constructor\r
+ /**\r
+ * Default constructor for this class\r
+ */\r
+ MsgProgressPopup(void);\r
+\r
+ //! Destructor\r
+ /**\r
+ * Default destructor for this class.\r
+ */\r
+ virtual ~MsgProgressPopup(void);\r
+\r
+ /**\r
+ * Second phase constructor\r
+ *\r
+ * @param minValue - Progress minimum value.\r
+ * @param maxValue - Progress maximum value.\r
+ *\r
+ * @return result - E_SUCCESS in case successful construction else\r
+ * E_FAILURE\r
+ */\r
+ result Construct(int minValue, int maxValue, const Tizen::Base::String& strText);\r
+\r
+ /**\r
+ * Update progress information.\r
+ *\r
+ * @param statusInfo - Progress status string.\r
+ *\r
+ * @return void\r
+ */\r
+ void UpdateProgressInfo(const Tizen::Base::String& statusInfo);\r
+\r
+ /**\r
+ * Update progress bar value.\r
+ *\r
+ * @param value - Progress bar value.\r
+ *\r
+ * @return void\r
+ */\r
+ void SetProgressValue(int value);\r
+\r
+ /**\r
+ * Show progress bar popup.\r
+ */\r
+ void ShowPopup(void);\r
+\r
+ /**\r
+ * Hide progress bar popup.\r
+ */\r
+ void HidePopup(void);\r
+\r
+private:\r
+ Tizen::Ui::Controls::Label* __pStatusInfo;\r
+ Tizen::Ui::Controls::Progress* __pProgress;\r
+};\r
+\r
+#endif // _MSG_PROGRESS_POPUP_H_\r
--- /dev/null
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file MsgPRecipientPanel.h
+ * @brief This is the header file for the %RecipientPanel class.
+ *
+ * This header file contains the declarations of the %RecipientPanel class.
+ */
+#ifndef _MSG_RECIPIENT_PANEL_H_
+#define _MSG_RECIPIENT_PANEL_H_
+
+#include <FUi.h>
+#include <FAppTypes.h>
+
+namespace Tizen { namespace Social
+{
+class Addressbook;
+}};
+class ISizeChangeEventListener;
+
+class RecipientPanel
+ : public Tizen::Ui::Controls::Panel
+ , public Tizen::App::IAppControlResponseListener
+ , public Tizen::Base::Runtime::IRunnable
+ , public Tizen::Ui::IActionEventListener
+ , public Tizen::Ui::IFocusEventListener
+ , public Tizen::Ui::IKeyEventListener
+ , public Tizen::Ui::ITextEventListener
+ , public Tizen::Ui::Controls::IExpandableEditAreaEventListener
+ , public Tizen::Ui::Controls::IListViewItemEventListener
+ , public Tizen::Ui::Controls::IListViewItemProvider
+ , public Tizen::Ui::Controls::ITokenFilter
+{
+public:
+ RecipientPanel(void);
+ ~RecipientPanel(void);
+ result Construct(const Tizen::Graphics::Rectangle& rectangle);
+ void SetSizeChangeEventListener(const ISizeChangeEventListener& listener);
+ void SetKeypadEventListener(Tizen::Ui::IKeypadEventListener& listener);
+ int GetHeight(void) const;
+ result SetFocus(void);
+ void EnableContactSearch(bool value);
+ int GetRecipientCount(void) const;
+ void SetRecipientList(const Tizen::Base::Collection::IList* pRecipientList);
+ void AddRecipient(const Tizen::Base::String& recipientNumber);
+ Tizen::Base::Collection::ArrayList* GeRecipientNumberListN(void) const;
+ void SetTextSize(int textSize);
+ void ShowKeypad(void);
+ void HideKeypad(void);
+ bool CheckRecipentForToken(bool updateToken = true);
+ bool IsTextForTokenExist(void) const;
+ void EnableValidationOnFocusLost(bool state) { __validateOnFocusLost = state;}
+ bool IsEmptyRecipent(void);
+protected:
+ // Form Base class
+ virtual result OnDraw(void);
+ virtual void OnBoundsChanged(const Tizen::Graphics::Rectangle& oldRect, const Tizen::Graphics::Rectangle& newRect);
+ virtual void OnActionPerformed(const Tizen::Ui::Control& source, int actionId);
+ void OnUserEventReceivedN(RequestId requestId, Tizen::Base::Collection::IList* pArgs);
+ //From IAppControlEventListener
+ virtual void OnAppControlCompleteResponseReceived(const Tizen::App::AppId& appId, const Tizen::Base::String& operationId, Tizen::App::AppCtrlResult appControlResult, const Tizen::Base::Collection::IMap* pExtraData);
+ // Form IExpandableEditAreaEventListener
+ virtual void OnExpandableEditAreaLineAdded(Tizen::Ui::Controls::ExpandableEditArea& source, int newLineCount);
+ virtual void OnExpandableEditAreaLineRemoved(Tizen::Ui::Controls::ExpandableEditArea& source, int newLineCount);
+ // IListViewItemEventListener
+ virtual void OnListViewContextItemStateChanged(Tizen::Ui::Controls::ListView& listView, int index, int elementId, Tizen::Ui::Controls::ListContextItemStatus state){};
+ virtual void OnListViewItemStateChanged(Tizen::Ui::Controls::ListView& listView, int index, int elementId, Tizen::Ui::Controls::ListItemStatus status);
+ virtual void OnListViewItemSwept(Tizen::Ui::Controls::ListView& listView, int index, Tizen::Ui::Controls::SweepDirection direction){};
+ virtual void OnListViewItemLongPressed(Tizen::Ui::Controls::ListView& listView, int index, int elementId, bool& invokeListViewItemCallback){};
+ //IListViewItemProvider
+ virtual Tizen::Ui::Controls::ListItemBase* CreateItem(int index, int itemWidth);
+ virtual bool DeleteItem(int index, Tizen::Ui::Controls::ListItemBase* pItem, int itemWidth);
+ virtual int GetItemCount(void);
+ // Form ITokenFilter
+ virtual bool ReplaceToken(const Tizen::Base::String& token, Tizen::Base::String& replacement);
+ //From IFocusEventListener
+ virtual void OnFocusGained(const Tizen::Ui::Control& source);
+ virtual void OnFocusLost(const Tizen::Ui::Control& source);
+ //From IKeyEventListener
+ virtual void OnKeyPressed(const Tizen::Ui::Control& source, Tizen::Ui::KeyCode keyCode);
+ virtual void OnKeyReleased(const Tizen::Ui::Control& source, Tizen::Ui::KeyCode keyCode);
+ virtual void OnKeyLongPressed(const Tizen::Ui::Control& source, Tizen::Ui::KeyCode keyCode){};
+ //From ITextEventListener
+ virtual void OnTextValueChangeCanceled(const Tizen::Ui::Control& source){};
+ virtual void OnTextValueChanged(const Tizen::Ui::Control& source);
+ // Form IRunable
+ virtual Tizen::Base::Object* Run(void);
+
+ /**
+ * Show Message in popup
+ */
+ void ShowMessage(const Tizen::Base::String& message);
+
+ /**
+ * To launch app control
+ */
+ void LaunchContactApp(void);
+ /**
+ * Remove recipient from list on token selection.
+ *
+ * @return void.
+ */
+ void RemoveRecipientFromList(void);
+ void DeleteTokenAt(int tokenIndex);
+ void AddNumberToRecipientList(const Tizen::Base::String& contactNumber);
+ bool IsRecipientExist(const Tizen::Base::String& tokenText) const;
+ bool IsNumberExistRecipientList(const Tizen::Base::String& tokenText) const;
+ bool IsTokenExist(const Tizen::Base::String& tokenName) const;
+ bool IsNumberToken(int tokenIndex) const;
+ void DeleteRecipientAndToken(int index);
+ void UpdateRecipientList(const Tizen::Base::String& phoneNumber, int recipientIndex);
+ void ShowRecipientCount(void);
+ bool IsNeedToValidate(const Tizen::Base::String& tokenText);
+ Tizen::Base::Collection::IList* GetSelectContactListN(const Tizen::Base::Collection::IMap* pResultMap);
+
+private:
+ ISizeChangeEventListener* __pSizeChangeListener;
+ Tizen::Base::String __errorString;
+ Tizen::Ui::Controls::ExpandableEditArea* __pExpandEditArea;
+ Tizen::Ui::Controls::Button* __pContactButton;
+ Tizen::Ui::Controls::Label* __pContactCountLabel;
+ Tizen::Ui::Controls::ListView* __pContactSearchList;
+ Tizen::Base::Collection::ArrayList* __pRecipientAddrList;
+ Tizen::Base::String __inProperlist;
+ Tizen::Social::Addressbook* __pAddressBook;
+ Tizen::Base::Runtime::Thread* __pTokenDeleteThread;
+ int __deleteTokenIndex;
+ bool __validateOnFocusLost;
+ bool __oneTimeFlag;
+};
+
+#endif //_MSG_RECIPIENT_PANEL_H_
--- /dev/null
+//\r
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.\r
+//\r
+// Licensed under the Flora License, Version 1.0 (the License);\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+// http://floralicense.org/license/\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an AS IS BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+//\r
+\r
+/**\r
+ * @file MsgResendDeletePopup.h\r
+ * @brief This is the header file for the %MsgResendDeletePopup class.\r
+ *\r
+ * This header file contains the declarations of the %MsgResendDeletePopup class.\r
+ */\r
+#ifndef _MSG_RESEND_DELETE_POPUP_H_\r
+#define _MSG_RESEND_DELETE_POPUP_H_\r
+\r
+#include <FUiCtrlButton.h>\r
+#include <FUiCtrlIListViewItemEventListener.h>\r
+#include <FUiCtrlIListViewItemProvider.h>\r
+#include <FUiIActionEventListener.h>\r
+#include <FUiCtrlPopup.h>\r
+\r
+#include "MsgIDeleteEventListener.h"\r
+\r
+class ConversationData;\r
+class IPopupEventListener;\r
+\r
+class MsgResendDeletePopup\r
+ : public Tizen::Ui::Controls::Popup\r
+ , public Tizen::Ui::IActionEventListener\r
+ , public Tizen::Ui::Controls::IListViewItemEventListener\r
+ , public Tizen::Ui::Controls::IListViewItemProvider\r
+ , public IDeleteEventListener\r
+{\r
+\r
+public:\r
+ MsgResendDeletePopup(ConversationData* pConvData, IPopupEventListener& listener);\r
+ virtual ~MsgResendDeletePopup(void);\r
+\r
+ result Construct(void);\r
+ void OnUserEventReceivedN(RequestId requestId, Tizen::Base::Collection::IList* pArgs);\r
+\r
+ // IListViewItemEventListener\r
+ virtual void OnListViewContextItemStateChanged(Tizen::Ui::Controls::ListView& listView, int index, int elementId, Tizen::Ui::Controls::ListContextItemStatus state);\r
+ virtual void OnListViewItemStateChanged(Tizen::Ui::Controls::ListView& listView, int index, int elementId, Tizen::Ui::Controls::ListItemStatus status);\r
+ virtual void OnListViewItemSwept(Tizen::Ui::Controls::ListView& listView, int index, Tizen::Ui::Controls::SweepDirection direction);\r
+ virtual void OnListViewItemLongPressed(Tizen::Ui::Controls::ListView& listView, int index, int elementId, bool& invokeListViewItemCallback);\r
+\r
+ //IListViewItemProvider\r
+ virtual Tizen::Ui::Controls::ListItemBase* CreateItem(int index, int itemWidth);\r
+ virtual bool DeleteItem(int index, Tizen::Ui::Controls::ListItemBase* pItem, int itemWidth);\r
+ virtual int GetItemCount(void);\r
+\r
+ // From IActionEventListener\r
+ void OnActionPerformed(const Tizen::Ui::Control& source, int actionId);\r
+\r
+ // From IDeleteEventListener\r
+ void OnDeleteStart(int totalCount){};\r
+ void OnDeleteUpdate(int deleteCount, int totalCount){};\r
+ void OnDeleteComplete(int errCode, Tizen::Base::Object* pThreadObject);\r
+\r
+private:\r
+ ConversationData* __pConvData;\r
+ Tizen::Ui::Controls::Button* __pCancelButton;\r
+ IPopupEventListener& __popupListener;\r
+};\r
+\r
+#endif // _MSG_RESEND_DELETE_POPUP_H_\r
--- /dev/null
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file MsgSettingPresentationModel.h
+ * @brief This is the header file for the %SettingPresentationModel class.
+ *
+ * This header file contains the declarations of the %SettingPresentationModel class.
+ */
+#ifndef _MSG_SETTING_PRESENTATION_MODEL_H_
+#define _MSG_SETTING_PRESENTATION_MODEL_H_
+
+#include <msg_storage_types.h>
+#include <msg_types.h>
+
+#include <FBaseColIListT.h>
+#include "FUi.h"
+#include "MsgTypes.h"
+
+class CbReceiveSettings;
+class FontSettings;
+class IDeleteEventListener;
+class MmsReceiveSettings;
+class MmsSendSettings;
+class SmscCenterList;
+class SmsSendSettings;
+class SpamFilterList;
+
+/**
+ * @class SettingPresentationModel
+ *
+ * This class interact with SLP layer and fetch and set message setting from message service.
+ */
+
+class SettingPresentationModel
+ : public Tizen::Base::Runtime::IRunnable
+{
+
+public:
+ // Create Setting presentation model instance.
+ static SettingPresentationModel* GetInstance(void);
+ // For SMSC center
+ SmscCenterList* GetSMSCList(void);
+ void UpdateSmscCenter(void);
+ // For SMS settings
+ SmsSendSettings* GetSmsSendSetting(void);
+ void SaveSmsSendSetting(void);
+ // For MMS settings
+ MmsReceiveSettings* GetMmsReceiveSettings(void);
+ void SaveMmsReceiveSettings(void);
+ MmsSendSettings* GetMmsSendSettings(void);
+ void SaveMmsSendSettings(void);
+ // For Spam message
+ SpamFilterList* GetSpamFilterList(void);
+ void RefreshSpamFilterList(void);
+ result AddToFilter(const Tizen::Base::String& strFilter, int matchType);
+ result UpdateFilter(int index, int filterType, const Tizen::Base::String& strFilter, int matchType);
+ result DeleteFilter(int filterIndex, int filterType);
+ result DeleteFilter(Tizen::Base::Collection::IListT< int >* pDeleteIdList, int filterType, Tizen::Ui::Control* pListener = null);
+
+ // For Cell broadcast Messages
+ CbReceiveSettings* GetCbSettings(void);
+ void SaveCbSettings(void);
+ // Font size
+ FontSettings* GetFontSettings(void);
+ bool IsVolumeKeyOn(void) const;
+ void SetVolumeKeyStatus(bool status);
+ int GetFilterListIndex(const Tizen::Base::String& strFilter);
+
+private:
+ SettingPresentationModel(void);
+ // Destructor.
+ ~SettingPresentationModel(void);
+ result Construct(void);
+ static void CreateInstance(void);
+ static void DestroyInstance(void);
+ // From IRunable
+ virtual Tizen::Base::Object* Run(void);
+ //! To prevent copy constructor and assignment
+ SettingPresentationModel(const SettingPresentationModel&);
+ SettingPresentationModel& operator =(const SettingPresentationModel& msg);
+
+private:
+ static SettingPresentationModel* __pInstance;
+ msg_handle_t __pMsgHandle;
+ MmsReceiveSettings* __pMmsRecvSettings;
+ MmsSendSettings* __pMmsSendSettings;
+ SmscCenterList* __pSmscCentersList;
+ SmsSendSettings* __pSmsSendSettings;
+ SpamFilterList* __pSpamFilterList;
+ CbReceiveSettings* __pCbSettings;
+ FontSettings* __pFontSettings;
+ Tizen::Base::Runtime::Thread* __pDeleteFilterThread;
+ Tizen::Base::Collection::IListT< int >* __pDeleteFilterIndexList;
+ Tizen::Ui::Control* __pDeleteFilterListener;
+ int __filterType;
+};
+
+#endif /* _MSG_SETTING_PRESENTATION_MODEL_H_ */
--- /dev/null
+//\r
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.\r
+//\r
+// Licensed under the Flora License, Version 1.0 (the License);\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+// http://floralicense.org/license/\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an AS IS BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+//\r
+\r
+/**\r
+ * @file MsgSettingsForm.h\r
+ * @brief This is the header file for the %SettingsForm class.\r
+ *\r
+ * This header file contains the declarations of the %SettingsForm class.\r
+ */\r
+#ifndef _MSG_SETTINGS_FORM_H_\r
+#define _MSG_SETTINGS_FORM_H_\r
+\r
+#include <FUiCtrlTableViewTypes.h>\r
+#include <FUiCtrlIGroupedTableViewItemProvider.h>\r
+#include <FUiCtrlIGroupedTableViewItemEventListener.h>\r
+#include <FUiScenesISceneEventListener.h>\r
+\r
+#include "MsgBaseForm.h"\r
+\r
+class SettingItemsList;\r
+\r
+enum MessageSettingFormType\r
+{\r
+ MESSAGE_SETTING_FORM_MESSAGE_MAIN = 0,\r
+ MESSAGE_SETTING_FORM_TEXT_MESSAGES,\r
+ MESSAGE_SETTING_FORM_SERVICE_CENTER,\r
+ MESSAGE_SETTING_FORM_EDIT_SERVICE_CENTER,\r
+ MESSAGE_SETTING_FORM_FONT_SIZE\r
+};\r
+\r
+/**\r
+ * @class SettingsForm\r
+ *\r
+ * This class represent main setting UI for messaging application.\r
+ */\r
+\r
+class SettingsForm\r
+ : public BaseForm\r
+ , public Tizen::Ui::Controls::IGroupedTableViewItemEventListener\r
+ , public Tizen::Ui::Controls::IGroupedTableViewItemProvider\r
+ , public Tizen::Ui::Scenes::ISceneEventListener\r
+{\r
+ // Construction\r
+public:\r
+ SettingsForm(MessageSettingFormType settingFormType);\r
+ virtual ~SettingsForm(void);\r
+ bool Initialize(void);\r
+\r
+protected:\r
+ // From From\r
+ result OnInitializing(void);\r
+ result OnTerminating(void);\r
+ // From base class\r
+ void OnIntializeFooter(Tizen::Ui::Controls::Footer& footer);\r
+ void OnIntializeHeader(Tizen::Ui::Controls::Header& header);\r
+ // From ISceneEventListener\r
+ virtual void OnSceneActivatedN(const Tizen::Ui::Scenes::SceneId& previousSceneId, const Tizen::Ui::Scenes::SceneId& currentSceneId, Tizen::Base::Collection::IList* pArgs);\r
+ virtual void OnSceneDeactivated(const Tizen::Ui::Scenes::SceneId& currentSceneId, const Tizen::Ui::Scenes::SceneId& nextSceneId);\r
+ // Back event listener.\r
+ void OnFormBackRequested(Tizen::Ui::Controls::Form& source);\r
+ void OnActionPerformed(const Tizen::Ui::Control& source, int actionId);\r
+\r
+ //IGroupedTableViewItemProvider\r
+ virtual int GetGroupCount(void);\r
+ virtual int GetItemCount(int groupIndex);\r
+ virtual Tizen::Ui::Controls::TableViewGroupItem* CreateGroupItem(int groupIndex, int itemWidth);\r
+ virtual Tizen::Ui::Controls::TableViewItem* CreateItem(int groupIndex, int itemIndex, int itemWidth);\r
+ virtual bool DeleteItem(int groupIndex, int itemIndex, Tizen::Ui::Controls::TableViewItem* pItem);\r
+ virtual bool DeleteGroupItem(int groupIndex, Tizen::Ui::Controls::TableViewGroupItem* pItem);\r
+ virtual void UpdateItem(int groupIndex, int itemIndex, Tizen::Ui::Controls::TableViewItem* pItem);\r
+ virtual void UpdateGroupItem(int groupIndex, Tizen::Ui::Controls::TableViewGroupItem* pItem);\r
+ virtual int GetDefaultItemHeight(void);\r
+ virtual int GetDefaultGroupItemHeight(void);\r
+\r
+ //Tableview event\r
+ virtual void OnGroupedTableViewGroupItemStateChanged(Tizen::Ui::Controls::GroupedTableView& tableView, int groupIndex, Tizen::Ui::Controls::TableViewGroupItem* pItem, Tizen::Ui::Controls::TableViewItemStatus status);\r
+ virtual void OnGroupedTableViewItemStateChanged(Tizen::Ui::Controls::GroupedTableView& tableView, int groupIndex, int itemIndex, Tizen::Ui::Controls::TableViewItem* pItem, Tizen::Ui::Controls::TableViewItemStatus status);\r
+ virtual void OnGroupedTableViewContextItemActivationStateChanged(Tizen::Ui::Controls::GroupedTableView& tableView, int groupIndex, int itemIndex, Tizen::Ui::Controls::TableViewContextItem* pContextItem, bool activated);\r
+\r
+private:\r
+ Tizen::Ui::Controls::TableViewItem* CreateSettingItemN(int groupIndex, int itemIndex, int itemWidth);\r
+ void UpdateSettingItem(int groupIndex, int itemIndex, Tizen::Ui::Controls::TableViewItem* pViewItem);\r
+ Tizen::Ui::Controls::TableViewItem* CreateSmscCenterListItemN(int groupIndex, int itemIndex, int itemWidth);\r
+ bool InitializeMessageSettingItems(void);\r
+ bool InitializeTextMessageSettingItems(void);\r
+ bool InitializeFontSettingItems(void);\r
+ void HandleSettingSelection(int groupIndex, int itemIndex, Tizen::Ui::Controls::TableViewItemStatus status);\r
+ void HandleFontSelection(int groupIndex, int itemIndex, Tizen::Ui::Controls::TableViewItemStatus status);\r
+ void HandleSmscCenterSelection(int groupIndex, int itemIndex, Tizen::Ui::Controls::TableViewItemStatus status);\r
+ void HandleBackNavigation(void);\r
+ void CheckedRadioGroupItem(int groupIndex, int itemIndex);\r
+ Tizen::Base::String GetInputModeText(int type) const;\r
+ Tizen::Base::String GetStatusItemText(int type) const;\r
+ bool GetItemCheckStatus(int controlId) const;\r
+ int GetFontSize(int controlActionId) const;\r
+ void LoadCurrentSettings(void);\r
+\r
+private:\r
+ MessageSettingFormType __settingFormType; //! Setting form type\r
+ Tizen::Ui::Controls::GroupedTableView* __pSettingGroupTableView; //! list to display settings item\r
+ SettingItemsList* __pSettingItemsArray; //! Setting data array.\r
+ int __editSmscIndex; //! Edit SMSC center index.\r
+ Tizen::Ui::Scenes::SceneId __previoussceneId;\r
+\r
+};\r
+\r
+#endif //_MSG_SETTINGS_FORM_H_\r
--- /dev/null
+//\r
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.\r
+//\r
+// Licensed under the Flora License, Version 1.0 (the License);\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+// http://floralicense.org/license/\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an AS IS BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+//\r
+\r
+/**\r
+ * @file MsgSettingItemsList.h\r
+ * @brief This is the header file for the %SettingItemsList class.\r
+ *\r
+ * This header file contains the declarations of the %SettingItemsList class.\r
+ */\r
+#ifndef _MSG_SETTING_ITEM_LIST_H_\r
+#define _MSG_SETTING_ITEM_LIST_H_\r
+\r
+#include <FBase.h>\r
+\r
+enum SettingStyle\r
+{\r
+ SETTING_STYLE_NORMAL,\r
+ SETTING_STYLE_RADIO,\r
+ SETTING_STYLE_RADIO_DETAILS,\r
+ SETTING_STYLE_ONOFF_SLIDING,\r
+ SETTING_STYLE_EXPANDABLE,\r
+};\r
+enum SettingStatusItem\r
+{\r
+ SETTING_STATUS_ITEM_INVALID,\r
+ SETTING_STATUS_ITEM_INPUTMODE,\r
+ SETTING_STATUS_ITEM_SERVICE_CENTER,\r
+ SETTING_STATUS_ITEM_HOME_NETWORK,\r
+ SETTING_STATUS_ITEM_FORIGEN_NETWORK,\r
+ SETTING_STATUS_ITEM_CREATION_MODE,\r
+ SETTING_STATUS_ITEM_MATCH_CRITERIA\r
+};\r
+enum SettingGroupStyle\r
+{\r
+ SETTING_GROUP_STYLE_NORMAL,\r
+ SETTING_GROUP_STYLE_TITLE,\r
+ SETTING_GROUP_STYLE_HELP_TEXT,\r
+};\r
+\r
+// For internal use only.\r
+class GroupData\r
+ : public Tizen::Base::Object\r
+{\r
+public:\r
+ Tizen::Base::String groupName;\r
+ int groupItemCount;\r
+ bool groupExpanded;\r
+ SettingGroupStyle groupStyle;\r
+};\r
+\r
+class SettingItem\r
+ : public Tizen::Base::Object\r
+{\r
+public:\r
+ SettingItem(int actionId, const Tizen::Base::String& name, SettingStyle style, SettingStatusItem statusItem = SETTING_STATUS_ITEM_INVALID)\r
+ : __actionId(actionId)\r
+ , __itemName(name)\r
+ , __itemStyle(style)\r
+ , __itemStatus(statusItem)\r
+ , __isCheck(false)\r
+ {\r
+ }\r
+\r
+ void SetItemCheck(bool value) {__isCheck = value;}\r
+ bool GetItemCheckStatus(void) const {return __isCheck;}\r
+ int GetActionId(void) const {return __actionId;}\r
+ int GetStyle(void) const {return __itemStyle;}\r
+ const Tizen::Base::String& GetName(void) const { return __itemName; }\r
+ int GetStatus(void) const { return __itemStatus; }\r
+\r
+private:\r
+ int __actionId;\r
+ Tizen::Base::String __itemName;\r
+ SettingStyle __itemStyle;\r
+ SettingStatusItem __itemStatus;\r
+ bool __isCheck;\r
+};\r
+\r
+class SettingItemsList\r
+ : public Tizen::Base::Object\r
+{\r
+\r
+public:\r
+ SettingItemsList(void);\r
+ int GetGroupCount(void) const;\r
+ int GetItemCount(int groupIndex) const;\r
+ int AddGroup(const Tizen::Base::String& groupName, SettingGroupStyle groupStyle = SETTING_GROUP_STYLE_NORMAL, bool isExpanded = true);\r
+ const Tizen::Base::String& GetGroupName(int groupIndex) const;\r
+ SettingGroupStyle GetGroupStyle(int groupIndex) const;\r
+ void SetgroupExpandStatus(int groupIndex, bool value);\r
+ bool IsGroupExpanded(int groupIndex);\r
+ void AddItem(int groupIndex, SettingItem& settingItem);\r
+ SettingItem& GetItemAt(int groupIndex, int selectIndex) const;\r
+\r
+private:\r
+ Tizen::Base::Collection::ArrayList __settingItemArray;\r
+ Tizen::Base::Collection::ArrayList __settingGroupArray;\r
+};\r
+\r
+#endif //_MSG_SETTING_ITEM_LIST_H_\r
--- /dev/null
+//\r
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.\r
+//\r
+// Licensed under the Flora License, Version 1.0 (the License);\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+// http://floralicense.org/license/\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an AS IS BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+//\r
+\r
+/**\r
+ * @file MsgSmsManager.h\r
+ * @brief This is the header file for the %SmsManager class.\r
+ *\r
+ * This header file contains the declarations of the %SmsManager class.\r
+ */\r
+#ifndef _MSG_SMS_MANAGER_H_\r
+#define _MSG_SMS_MANAGER_H_\r
+\r
+#include <msg_storage_types.h>\r
+#include <msg_types.h>\r
+#include <msg_transport_types.h>\r
+\r
+#include <FBaseTypes.h>\r
+\r
+#include "MsgTypes.h"\r
+\r
+namespace Tizen { namespace Base { namespace Collection\r
+{\r
+class ArrayList;\r
+class IList;\r
+}}};\r
+\r
+class ISmsEventListener;\r
+class SmsSendSettings;\r
+\r
+/**\r
+ * @class SmsManager\r
+ *\r
+ * This class interact with SLP layer to send SMS and receive SMS notification.\r
+ */\r
+\r
+class SmsManager\r
+{\r
+public:\r
+ /**\r
+ * Default constructor for this class.\r
+ */\r
+ SmsManager(msg_handle_t pMsgHandle);\r
+\r
+ /**\r
+ * Initialise SMS 2nd phase constructor parameter.\r
+ *\r
+ */\r
+ result Construct(void);\r
+\r
+ /**\r
+ * Default destructor for this calss\r
+ */\r
+ virtual ~SmsManager(void);\r
+\r
+ /**\r
+ * Reply SMS for given thread\r
+ *\r
+ * @msgText - Text has to be sent by SMS\r
+ * @threadId - Thread ID which given text send as SMS.\r
+ * @pSmsSendings - Sms Send settings\r
+ *\r
+ * @return MsgResponse - return MSG_RESPONSE_SUCCESS in case of success, else specific error code.\r
+ */\r
+ MsgResponse SendMessage(const Tizen::Base::String& msgText, int threadId, const SmsSendSettings* pSmsSendings = null);\r
+\r
+ /**\r
+ * Send SMS to given recipients list.\r
+ *\r
+ * @msgText - Text has to be sent by SMS\r
+ * @addressList - recipients list\r
+ * @msgThreadId - Thread id for new created thread.\r
+ * @pSmsSendings - Sms Send settings\r
+ *\r
+ * @return MsgResponse - return MSG_RESPONSE_SUCCESS in case of success, else specific error code.\r
+ */\r
+ MsgResponse SendMessage(const Tizen::Base::String& msgText, const Tizen::Base::Collection::IList& addressList, int& msgThreadId, const SmsSendSettings* pSmsSendings = null);\r
+\r
+ /**\r
+ * Save SMS to draft.\r
+ *\r
+ * @msgText - Text has to be sent by SMS\r
+ * @threadId - Thread ID which given text send as SMS.\r
+ *\r
+ * @return MsgResponse - return MSG_RESPONSE_SUCCESS in case of success, else specific error code.\r
+ */\r
+ MsgResponse SaveMessage(const Tizen::Base::String& msgText, int threadId);\r
+\r
+ /**\r
+ * Save SMS to draft.\r
+ *\r
+ * @msgText - Text has to be sent by SMS\r
+ * @addressList - recipients list\r
+ *\r
+ * @return MsgResponse - return MSG_RESPONSE_SUCCESS in case of success, else specific error code.\r
+ */\r
+ MsgResponse SaveMessage(const Tizen::Base::String& msgText, const Tizen::Base::Collection::IList& addressList);\r
+\r
+ /**\r
+ * Add SMS sent/receive observer\r
+ *\r
+ * @param eventListener - Listener listening for SMS sent receive events.\r
+ *\r
+ * @retrun result - E_SUCCESS, In case of successfully add listener in event list.\r
+ */\r
+ result AddSmsEventListener(const ISmsEventListener& eventListener);\r
+\r
+ /**\r
+ * Remove SMS sent/receive observer\r
+ *\r
+ * @param eventListener - Listener listening for SMS sent receive events.\r
+ *\r
+ * @retrun result - E_SUCCESS, In case of successfully remove listener in event list.\r
+ *\r
+ */\r
+ result RemoveSmsEventListener(const ISmsEventListener& eventListener);\r
+\r
+ /**\r
+ * Set recipient list in message object.\r
+ *\r
+ * @param messageId - message Id which need to be sent.\r
+ *\r
+ * @return MsgResponse - return MSG_RESPONSE_SUCCESS in case of success, else specific error code.\r
+ */\r
+ MsgResponse ReSendMessage(int messageId);\r
+\r
+\r
+protected:\r
+ /**\r
+ * static call back from message daemon in case of incomming message\r
+ *\r
+ * @param pHandle - message service handle.\r
+ * @param msg - Pointer to incomming mesage.\r
+ * @param pUserParam - User given parameter.\r
+ *\r
+ * @return void\r
+ */\r
+ static void IncommingSmsCallback(msg_handle_t pHandle, msg_struct_t msg, void* pUserParam);\r
+\r
+ /**\r
+ * static call back from message daemon in case of message status change.\r
+ *\r
+ * @param pHandle - message service handle.\r
+ * @param pSentStatus - message sent status.\r
+ * @param pUserParam - User given parameter.\r
+ *\r
+ * @return void\r
+ */\r
+ static void MessageSentStatusCallback(msg_handle_t pHandle, msg_struct_t pSentStatus, void* pUserParam);\r
+\r
+ /**\r
+ * Incoming message notification, call by IncommingSmsCallback()\r
+ *\r
+ * @param pHandle - Message service handle.\r
+ * @param pMsg - pointer to receive message.\r
+ *\r
+ * @return void\r
+ */\r
+ void IncommingSMS(msg_handle_t pHandle, msg_struct_t pMsg);\r
+\r
+ /**\r
+ * Message sent status notification, call from MessageSentStatusCallback.\r
+ *\r
+ * @param pHandle - Message service handle.\r
+ * @param pSentStatus - Sent status message service.\r
+ *\r
+ * @return void\r
+ */\r
+ void SentMessageStatus(msg_handle_t pHandle, msg_struct_t pSentStatus);\r
+\r
+ /**\r
+ * Set message type.\r
+ *\r
+ * @param pMsgInfo - message which has to be sent using message service handle.\r
+ * @param msgText - Text to be attached with message.\r
+ * @param threadId - Which thread message has to be sent.\r
+ *\r
+ * @return MsgResponse - return MSG_RESPONSE_SUCCESS in case of success, else specific error code.\r
+ */\r
+ MsgResponse CreateSms(msg_struct_t pMsgInfo, const Tizen::Base::String& msgText, int threadId);\r
+\r
+ /**\r
+ * Set message type.\r
+ *\r
+ * @param pMsgInfo - message which has to be sent using message service handle.\r
+ * @param msgText - Text to be attached with message.\r
+ * @param addressList - To whom message has to be sent\r
+ *\r
+ * @return MsgResponse - return MSG_RESPONSE_SUCCESS in case of success, else specific error code.\r
+ */\r
+ MsgResponse CreateSms(msg_struct_t pMsgInfo, const Tizen::Base::String& msgText, const Tizen::Base::Collection::IList& addressList);\r
+\r
+ /**\r
+ * Set message type.\r
+ *\r
+ * @param pMsgInfo - message which has to be sent using message service handle.\r
+ *\r
+ * @return MsgResponse - return MSG_RESPONSE_SUCCESS in case of success, else specific error code.\r
+ */\r
+ MsgResponse SetMessageType(msg_struct_t pMsgInfo);\r
+\r
+ /**\r
+ * Set message body.\r
+ *\r
+ * @param pMsgInfo - message which has to be sent using message service handle.\r
+ * @param msgText - message text which has to be sent.\r
+ *\r
+ * @return MsgResponse - return MSG_RESPONSE_SUCCESS in case of success, else specific error code.\r
+ */\r
+ MsgResponse SetMessageBody(msg_struct_t pMsgInfo, const Tizen::Base::String& msgText);\r
+\r
+ /**\r
+ * Set recipient list in message object.\r
+ *\r
+ * @param pMsgInfo - message which has to be sent using message service handle.\r
+ * @param threadId - Attached list recipients for given thread ID.\r
+ *\r
+ * @return MsgResponse - return MSG_RESPONSE_SUCCESS in case of success, else specific error code.\r
+ */\r
+ MsgResponse SetRecipientList(msg_struct_t pMsgInfo, int threadId);\r
+\r
+ /**\r
+ * Set recipient list in message object.\r
+ *\r
+ * @param pMsgInfo - message which has to be sent using message service handle.\r
+ * @param addressList - List of recipients.\r
+ *\r
+ * @return MsgResponse - return MSG_RESPONSE_SUCCESS in case of success, else specific error code.\r
+ */\r
+ MsgResponse SetRecipientList(msg_struct_t pMsgInfo, const Tizen::Base::Collection::IList& addressList);\r
+\r
+private:\r
+ //! To prevent copy constructor and assignment\r
+ SmsManager(const SmsManager&);\r
+ SmsManager& operator =(const SmsManager& msg);\r
+\r
+private:\r
+ //static SmsManager* __pInstance; /*! Self instance for singleton design. */\r
+ msg_handle_t __pMsgHandle; /*! Message service handler. */\r
+ Tizen::Base::Collection::ArrayList* __pSmsEventListener; /*! SMS event listener array. */\r
+};\r
+\r
+#endif // _MSG_SMS_MANAGER_H_\r
--- /dev/null
+//\r
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.\r
+//\r
+// Licensed under the Flora License, Version 1.0 (the License);\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+// http://floralicense.org/license/\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an AS IS BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+//\r
+\r
+/**\r
+ * @file MsgSmsSendSettings.h\r
+ * @brief This is the header file for the %SmsSendSettings class.\r
+ *\r
+ * This header file contains the declarations of the %SmsSendSettings class.\r
+ */\r
+#ifndef _MSG_SMS_SEND_SETTINGS_H_\r
+#define _MSG_SMS_SEND_SETTINGS_H_\r
+\r
+#include <FBaseObject.h>\r
+#include <msg_storage_types.h>\r
+\r
+/**\r
+ * @class SmsSendSettings\r
+ *\r
+ * Class SmsSendSettings keeps SMS sending settings details.\r
+ */\r
+class SmsSendSettings\r
+ : public Tizen::Base::Object\r
+{\r
+public:\r
+ /**\r
+ * Default constructor for this class.\r
+ */\r
+ SmsSendSettings(msg_struct_t pSmsSendSetting);\r
+\r
+ /**\r
+ * Default destructor for this class.\r
+ */\r
+ ~SmsSendSettings(void);\r
+\r
+ /**\r
+ * Get Sms send option structure.\r
+ */\r
+ msg_struct_t GetSmsSendOpt(void) const;\r
+ /**\r
+ * Indicates the string encoding type. See enum _MSG_ENCODE_TYPE_E\r
+ */\r
+ int GetEncodeMode(void) const;\r
+ int GetEncodeType(void) const;\r
+ bool IsDeliveryReportOn(void) const;\r
+ result SetEncodeMode(int newType);\r
+ result SetDeliveryReportRequestStatus(bool status);\r
+private:\r
+ //! SMS sending setting structure pointer\r
+ msg_struct_t __pSmsSendSetting; //! Own\r
+};\r
+\r
+#endif // _MSG_SMS_SEND_SETTINGS_H_\r
--- /dev/null
+//\r
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.\r
+//\r
+// Licensed under the Flora License, Version 1.0 (the License);\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+// http://floralicense.org/license/\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an AS IS BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+//\r
+\r
+/**\r
+ * @file MsgSmsViewerForm.h\r
+ * @brief This is the header file for the %SmsViewerForm class.\r
+ *\r
+ * This header file contains the declarations of the %SmsViewerForm class.\r
+ */\r
+#ifndef _MSG_SMS_VIEWER_FORM_H_\r
+#define _MSG_SMS_VIEWER_FORM_H_\r
+\r
+#include <FUiCtrlTextBox.h>\r
+#include <FUiScenesISceneEventListener.h>\r
+\r
+#include "MsgBaseForm.h"\r
+\r
+class MessageData;\r
+\r
+/**\r
+ * @class SmsViewerForm\r
+ *\r
+ * Class SmsViewerForm displays single message context.\r
+ */\r
+\r
+class SmsViewerForm\r
+ : public BaseForm\r
+ , public Tizen::Ui::IOrientationEventListener\r
+ , public Tizen::Ui::Scenes::ISceneEventListener\r
+{\r
+public:\r
+ SmsViewerForm(void);\r
+ virtual ~SmsViewerForm(void);\r
+ bool Initialize(void);\r
+\r
+protected:\r
+ // From From\r
+ virtual result OnInitializing(void);\r
+ virtual result OnTerminating(void);\r
+\r
+ // From IActionEventListener\r
+ void OnActionPerformed(const Tizen::Ui::Control& source, int actionId);\r
+\r
+ // From ISceneEventListener\r
+ virtual void OnSceneActivatedN(const Tizen::Ui::Scenes::SceneId& previousSceneId, const Tizen::Ui::Scenes::SceneId& currentSceneId, Tizen::Base::Collection::IList* pArgs);\r
+ virtual void OnSceneDeactivated(const Tizen::Ui::Scenes::SceneId& currentSceneId, const Tizen::Ui::Scenes::SceneId& nextSceneId);\r
+\r
+ // Orientation listener\r
+ virtual void OnOrientationChanged(const Tizen::Ui::Control& source, Tizen::Ui::OrientationStatus orientationStatus);\r
+\r
+ // Back event listener.\r
+ void OnFormBackRequested(Tizen::Ui::Controls::Form& source);\r
+\r
+ // From base class\r
+ void OnIntializeFooter(Tizen::Ui::Controls::Footer& footer);\r
+ void OnIntializeHeader(Tizen::Ui::Controls::Header& header);\r
+\r
+private:\r
+ // Member variable.\r
+ MessageData* __pMessageEntry;\r
+ Tizen::Ui::Controls::TextBox* __pMessageTextBox;\r
+ Tizen::Ui::Scenes::SceneId __previousSceneId;\r
+};\r
+\r
+#endif //_MSG_SMS_VIEWER_FORM_H_\r
--- /dev/null
+//\r
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.\r
+//\r
+// Licensed under the Flora License, Version 1.0 (the License);\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+// http://floralicense.org/license/\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an AS IS BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+//\r
+\r
+/**\r
+ * @file MsgSmscCenterList.h\r
+ * @brief This is the header file for the %SmscCenterList class.\r
+ *\r
+ * This header file contains the declarations of the %SmscCenterList class.\r
+ */\r
+#ifndef _MSG_SMSC_CENTER_LIST_H_\r
+#define _MSG_SMSC_CENTER_LIST_H_\r
+\r
+#include <FBaseObject.h>\r
+#include <msg_storage_types.h>\r
+\r
+/**\r
+ * @class SmscCenterList\r
+ *\r
+ * Class SmscCenterList is wrapper class of SLP layer it holds message center list info..\r
+ */\r
+\r
+class SmscCenterList\r
+ : public Tizen::Base::Object\r
+{\r
+\r
+public:\r
+ /**\r
+ * This is constructor for this class\r
+ *\r
+ * @param pSmscInfo Structure pointer to SMSC information.\r
+ */\r
+ SmscCenterList(msg_struct_t pSmscInfo);\r
+\r
+ /**\r
+ * Default destructor for this class.\r
+ */\r
+ ~SmscCenterList(void);\r
+\r
+ /**\r
+ * Second phase constructor\r
+ */\r
+ void Construct(void);\r
+\r
+ /**\r
+ * Return number of SMSC center count available in SMSC setting structure.\r
+ *\r
+ * @param -No argument.\r
+ *\r
+ * @return Return number of SMSC center count.\r
+ *\r
+ */\r
+ int GetCount(void) const;\r
+ int GetSelectedId(void) const;\r
+ result SetSelectedSmscIndex(int smscIndex);\r
+ msg_struct_t GetSmscOpt(void) const;\r
+ Tizen::Base::String GetSmscName(int index) const;\r
+ Tizen::Base::String GetSmscAdress(int index) const;\r
+ result SetSmscName(int index, const Tizen::Base::String& smscName);\r
+ result SetSmscAdress(int index, const Tizen::Base::String& smscAddress);\r
+\r
+private:\r
+ //! To prevent copy constructor and assignment\r
+ SmscCenterList(const SmscCenterList& rhs);\r
+ SmscCenterList& operator =(const SmscCenterList& rhs);\r
+\r
+private:\r
+ msg_struct_t __pSmscOpt; //! SMSC center setting structure.\r
+ msg_struct_list_s* __pSmscList; //! SMSC center list inside setting structure.\r
+};\r
+\r
+#endif // _MSG_SMSC_CENTER_LIST_H_\r
--- /dev/null
+//\r
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.\r
+//\r
+// Licensed under the Flora License, Version 1.0 (the License);\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+// http://floralicense.org/license/\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an AS IS BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+//\r
+\r
+/**\r
+ * @file MsgSpamFilterList.h\r
+ * @brief This is the header file for the %SpamFilterList class.\r
+ *\r
+ * This header file contains the declarations of the %SpamFilterList class.\r
+ */\r
+#ifndef _MSG_SPAM_FITER_LIST_H_\r
+#define _MSG_SPAM_FITER_LIST_H_\r
+\r
+#include <msg_storage_types.h>\r
+\r
+#include <FBaseColArrayListT.h>\r
+#include <FBaseObject.h>\r
+\r
+/**\r
+ * @class SpamFilterList\r
+ *\r
+ * Class SpamFilterList is wrapper class of SLP layer and It holds spam filter data.\r
+ */\r
+\r
+class SpamFilterList\r
+ : public Tizen::Base::Object\r
+{\r
+public:\r
+ /**\r
+ * Constructor for this class\r
+ */\r
+ SpamFilterList(msg_struct_list_s* pFilterList);\r
+\r
+ /**\r
+ * Default destructor for this class.\r
+ */\r
+ ~SpamFilterList(void);\r
+\r
+ /**\r
+ * Second phase constructor for this class\r
+ */\r
+ result Construct(void);\r
+\r
+ /**\r
+ * Return spam filter count.\r
+ */\r
+ int GetBlockWordCount(void) const;\r
+\r
+ /**\r
+ * Return spam filter count.\r
+ */\r
+ int GetBlockNumberCount(void) const;\r
+\r
+ /**\r
+ * Get Filter ID for given filter index.\r
+ */\r
+ msg_struct_t GetFilter(int index, int type) const;\r
+\r
+\r
+ /**\r
+ * Get Filter ID for given filter index.\r
+ */\r
+ int GetFilterId(int index, int type) const;\r
+\r
+ /**\r
+ * Get Filter type for given filter index.\r
+ */\r
+ int GetFilterType(int index, int type) const;\r
+\r
+ /**\r
+ * Get Filter text for given current index.\r
+ */\r
+ Tizen::Base::String GetFilterText(int index, int type) const;\r
+\r
+ /**\r
+ * Get filter list index based on string.\r
+ */\r
+ int GetFilterListIndex(const Tizen::Base::String& strFilter, int matchType) const;\r
+\r
+private:\r
+ //! To prevent copy constructor and assignment\r
+ SpamFilterList(const SpamFilterList&);\r
+ SpamFilterList& operator =(const SpamFilterList& msg);\r
+\r
+private:\r
+ msg_struct_list_s* __pFilterList; //! List of filter\r
+ Tizen::Base::Collection::ArrayListT< int >* __pBlockWordFilterIndex;\r
+ Tizen::Base::Collection::ArrayListT< int >* __pNumberFilterIndex;\r
+\r
+};\r
+\r
+#endif // _MSG_SPAM_FITER_LIST_H_\r
--- /dev/null
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file MsgSpamRestoreHandler.h
+ * @brief This is the header file for the %SpamRestoreHandler class.
+ *
+ * This header file contains the declarations of the %SpamRestoreHandler class.
+ */
+#ifndef _MSG_SPAM_RESTORE_HANDLER_H_
+#define _MSG_SPAM_RESTORE_HANDLER_H_
+
+
+#include <FBaseRtThread.h>
+#include "FUi.h"
+
+class SpamRestoreHandler
+ : public Tizen::Base::Runtime::Thread
+{
+public:
+ SpamRestoreHandler(Tizen::Base::Collection::ArrayListT<int>* pSelectedIds, Tizen::Ui::Control* parentCtl);
+ ~SpamRestoreHandler(void);
+ result Construct(void);
+private:
+ virtual Tizen::Base::Object* Run(void);
+private:
+ Tizen::Ui::Control* __parentCtrl;
+ Tizen::Base::Collection::ArrayListT<int>* __pselectedIds;
+};
+
+#endif // _MSG_SPAM_RESTORE_HANDLER_H_
--- /dev/null
+//\r
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.\r
+//\r
+// Licensed under the Flora License, Version 1.0 (the License);\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+// http://floralicense.org/license/\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an AS IS BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+//\r
+\r
+/**\r
+ * @file MsgSpamSettingsForm.h\r
+ * @brief This is the header file for the %SpamSettingsForm class.\r
+ *\r
+ * This header file contains the declarations of the %SpamSettingsForm class.\r
+ */\r
+#ifndef _MSG_SPAM_SETTINGS_FORM_H_\r
+#define _MSG_SPAM_SETTINGS_FORM_H_\r
+\r
+#include <FUi.h>\r
+#include <FUiCtrlEditField.h>\r
+#include <FUiCtrlIGroupedListViewItemEventListener.h>\r
+#include <FUiCtrlIGroupedListViewItemProvider.h>\r
+#include <FUiScenesISceneEventListener.h>\r
+\r
+#include "MsgBaseForm.h"\r
+#include "MsgIDeleteEventListener.h"\r
+\r
+class MsgProgressPopup;\r
+class SettingItemsList;\r
+\r
+enum SpamSettingFromType\r
+{\r
+ SPAM_SETTING_FORM_MAIN,\r
+ SPAM_SETTING_FORM_AUTO_REJECT,\r
+ SPAM_SETTING_FORM_ADD_REJECT_NUMBER,\r
+ SPAM_SETTING_FORM_DELETE_REJECT_NUMBER,\r
+ SPAM_SETTING_FORM_BLOCK_WORD,\r
+ SPAM_SETTING_FORM_ADD_BLOCK_WORD,\r
+ SPAM_SETTING_FORM_DELETE_BLOCK_WORD\r
+};\r
+/**\r
+ * @class SpamSettingsForm\r
+ *\r
+ * This class represent spam setting UI for messaging application and use to save\r
+ * modify spam setting details.\r
+ */\r
+\r
+class SpamSettingsForm\r
+ : public BaseForm\r
+ , public Tizen::App::IAppControlResponseListener\r
+ , public Tizen::Ui::IFocusEventListener\r
+ , public Tizen::Ui::ITextEventListener\r
+ , public Tizen::Ui::Controls::IGroupedTableViewItemEventListener\r
+ , public Tizen::Ui::Controls::IGroupedTableViewItemProvider\r
+ , public Tizen::Ui::Scenes::ISceneEventListener\r
+ , public IDeleteEventListener\r
+{\r
+// Construction\r
+public:\r
+ SpamSettingsForm(SpamSettingFromType formType);\r
+ virtual ~SpamSettingsForm(void);\r
+ bool Initialize(void);\r
+\r
+protected:\r
+ // From From\r
+ result OnInitializing(void);\r
+ result OnTerminating(void);\r
+ // From base class\r
+ void OnIntializeFooter(Tizen::Ui::Controls::Footer& footer);\r
+ void OnIntializeHeader(Tizen::Ui::Controls::Header& header);\r
+ void OnUserEventReceivedN(RequestId requestId, Tizen::Base::Collection::IList* pArgs);\r
+ // From ISceneEventListener\r
+ virtual void OnSceneActivatedN(const Tizen::Ui::Scenes::SceneId& previousSceneId, const Tizen::Ui::Scenes::SceneId& currentSceneId, Tizen::Base::Collection::IList* pArgs);\r
+ virtual void OnSceneDeactivated(const Tizen::Ui::Scenes::SceneId& currentSceneId, const Tizen::Ui::Scenes::SceneId& nextSceneId);\r
+ // Back event listener.\r
+ void OnFormBackRequested(Tizen::Ui::Controls::Form& source);\r
+ void OnActionPerformed(const Tizen::Ui::Control& source, int actionId);\r
+\r
+ //IGroupedTableViewItemProvider\r
+ virtual int GetGroupCount(void);\r
+ virtual int GetItemCount(int groupIndex);\r
+ virtual Tizen::Ui::Controls::TableViewGroupItem* CreateGroupItem(int groupIndex, int itemWidth);\r
+ virtual Tizen::Ui::Controls::TableViewItem* CreateItem(int groupIndex, int itemIndex, int itemWidth);\r
+ virtual bool DeleteItem(int groupIndex, int itemIndex, Tizen::Ui::Controls::TableViewItem* pItem);\r
+ virtual bool DeleteGroupItem(int groupIndex, Tizen::Ui::Controls::TableViewGroupItem* pItem);\r
+ virtual void UpdateItem(int groupIndex, int itemIndex, Tizen::Ui::Controls::TableViewItem* pItem);\r
+ virtual void UpdateGroupItem(int groupIndex, Tizen::Ui::Controls::TableViewGroupItem* pItem);\r
+ virtual int GetDefaultItemHeight(void);\r
+ virtual int GetDefaultGroupItemHeight(void);\r
+\r
+ //Tableview event\r
+ virtual void OnGroupedTableViewGroupItemStateChanged(Tizen::Ui::Controls::GroupedTableView& tableView, int groupIndex, Tizen::Ui::Controls::TableViewGroupItem* pItem, Tizen::Ui::Controls::TableViewItemStatus status);\r
+ virtual void OnGroupedTableViewItemStateChanged(Tizen::Ui::Controls::GroupedTableView& tableView, int groupIndex, int itemIndex, Tizen::Ui::Controls::TableViewItem* pItem, Tizen::Ui::Controls::TableViewItemStatus status);\r
+ virtual void OnGroupedTableViewContextItemActivationStateChanged(Tizen::Ui::Controls::GroupedTableView& tableView, int groupIndex, int itemIndex, Tizen::Ui::Controls::TableViewContextItem* pContextItem, bool activated);\r
+\r
+ // From IFocusEventListener\r
+ virtual void OnFocusGained(const Tizen::Ui::Control& source);\r
+ virtual void OnFocusLost(const Tizen::Ui::Control& source);\r
+ // From IAppControlEventListener\r
+ virtual void OnAppControlCompleteResponseReceived(const Tizen::App::AppId& appId, const Tizen::Base::String& operationId, Tizen::App::AppCtrlResult appControlResult, const Tizen::Base::Collection::IMap* pExtraData);\r
+ // From ITextEventListener\r
+ virtual void OnTextValueChanged(const Tizen::Ui::Control& source);\r
+ virtual void OnTextValueChangeCanceled(const Tizen::Ui::Control& source);\r
+ void LoadInitilaState(void);\r
+ // From IMsgDeleteEventListener\r
+ void OnDeleteStart(int totalCount);\r
+ void OnDeleteUpdate(int deleteCount, int totalCount);\r
+ void OnDeleteComplete(int errCode, Tizen::Base::Object* pThreadObject);\r
+\r
+private:\r
+ Tizen::Ui::Controls::TableViewItem* CreateMatchCriteriaSettingItemsN(int groupIndex, int itemIndex, int itemWidth);\r
+ Tizen::Ui::Controls::TableViewItem* CreateSpamMessageSettingItemN(int groupIndex, int itemIndex, int itemWidth);\r
+ Tizen::Ui::Controls::TableViewItem* CreateAutoRejectNumberSettingItemN(int type, int itemWidth);\r
+ Tizen::Ui::Controls::TableViewItem* CreateBlockWordSettingItemN(int groupIndex, int itemIndex, int itemWidth);\r
+ Tizen::Ui::Controls::TableViewItem* CreateAutoRejectSettingGroupItemsN(int groupIndex, int type, int itemWidth);\r
+ Tizen::Base::String GetMatchCriteriadString(int type);\r
+ int GetAutoRejectGroupItemCount(int groupIndex) const;\r
+ void HandleSpamSettingItemSelection(int groupIndex, int itemIndex, Tizen::Ui::Controls::TableViewItemStatus status);\r
+ void HandleSpamAutoRejectItemSelection(int groupIndex, int itemIndex, Tizen::Ui::Controls::TableViewItemStatus status);\r
+ void HandleSpamBlockWordItemSelection(int groupIndex, int itemIndex, Tizen::Ui::Controls::TableViewItemStatus status);\r
+ void HandleSpamMatchCriteriaItemSelection(int groupIndex, int itemIndex);\r
+ void HandleBackNavigation(void);\r
+ void HandleAddNavigation(void);\r
+ void HandleEditNavigation(void);\r
+ void SetHeader(void);\r
+ void CheckedRadioGroupItem(int groupIndex, int itemIndex);\r
+ void ShowSelectionInfo(void);\r
+ void CheckAll(bool value);\r
+ void DeleteSelectedSpamFilters(void);\r
+ void SelectContact(void);\r
+ void ShowConfirmationPopup(void);\r
+ void SaveSpamFilter(SpamFiterType filterType);\r
+ void UpdateMatchCriteriaSettingItem(int groupIndex, int itemIndex, Tizen::Ui::Controls::TableViewItem* pViewItem);\r
+ void LoadCurrentSettings(void);\r
+\r
+private:\r
+ SpamSettingFromType __spamFormType; //! SPAM setting form type.\r
+ Tizen::Ui::Controls::GroupedTableView* __pGroupedTableView; // List to display spam setting items.\r
+ Tizen::Ui::Controls::EditField* __pEditField;\r
+ SettingItemsList* __pSettingItemsArray; //! Setting data for static setting items.\r
+ int __selectedMatchCriteriaIndex; //! Selected match criteria\r
+ int __editSpamFilterIndex; //! Edit spam filter index.\r
+ Tizen::Base::Collection::ArrayListT< int >* __pSelectedIds; //! Selected ID list\r
+ Tizen::Ui::Scenes::SceneId __previousSceneId; //! Scene from which this form was created.\r
+ Tizen::Ui::Controls::Popup* __pConfirmationPopup; //! Confirmation popup for spam filter.\r
+ MsgProgressPopup* __pProgressPopup;\r
+ bool __oneTimeFlag;\r
+};\r
+\r
+#endif //_MSG_SPAM_SETTINGS_FORM_H_\r
--- /dev/null
+//\r
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.\r
+//\r
+// Licensed under the Flora License, Version 1.0 (the License);\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+// http://floralicense.org/license/\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an AS IS BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+//\r
+\r
+/**\r
+ * @file MsgSubjectControl.h\r
+ * @brief This is the header file for the %SubjectControl class.\r
+ *\r
+ * This header file contains the declarations of the %SubjectControl class.\r
+ */\r
+#ifndef _MSG_SUBJECT_CONTROL_H_\r
+#define _MSG_SUBJECT_CONTROL_H_\r
+\r
+#include "MsgComposeBaseControl.h"\r
+\r
+class SubjectControl\r
+ : public ComposeBaseControl\r
+ , public Tizen::Ui::IFocusEventListener\r
+{\r
+public:\r
+ SubjectControl(void);\r
+ ~SubjectControl(void);\r
+ result Construct(const Tizen::Graphics::Rectangle& rectangle);\r
+ void AddKeypadEventListener(Tizen::Ui::IKeypadEventListener& listener);\r
+ void AddFocusEventListener(Tizen::Ui::IFocusEventListener& listener);\r
+ void AddActionEventListener(Tizen::Ui::IActionEventListener& listener);\r
+ void AddTextEventListener(Tizen::Ui::ITextEventListener& listener);\r
+ void SetDeleteActionId(int actionId);\r
+ result ShowKeypad(bool visible);\r
+ void SetDeleteShowState(bool visible);\r
+ result SetFocus(void);\r
+ result SetText(const Tizen::Base::String& strText);\r
+ Tizen::Base::String GetText(void) const;\r
+\r
+ // Form IFocusEventListener\r
+ virtual void OnFocusGained(const Tizen::Ui::Control& source);\r
+ virtual void OnFocusLost(const Tizen::Ui::Control& source);\r
+\r
+protected:\r
+ // Form base class\r
+ virtual result OnDraw(void);\r
+ // Form ComposeBaseControl\r
+ virtual ComposeControlType GetControlType(void) const;\r
+\r
+private:\r
+ const Tizen::Ui::IFocusEventListener* __pFocusEvent;\r
+ Tizen::Ui::Controls::EditField* __pEditArea;\r
+ Tizen::Ui::Controls::Button* __pDeleteButton;\r
+ Tizen::Graphics::Bitmap* __pBgBitmap;\r
+};\r
+\r
+\r
+\r
+#endif //_MSG_SUBJECT_CONTROL_H_\r
--- /dev/null
+//\r
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.\r
+//\r
+// Licensed under the Flora License, Version 1.0 (the License);\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+// http://floralicense.org/license/\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an AS IS BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+//\r
+\r
+/**\r
+ * @file MsgThreadData.h\r
+ * @brief This is the header file for the %ThreadData class.\r
+ *\r
+ * This header file contains the declarations of the %ThreadData class.\r
+ */\r
+#ifndef _MSG_THREAD_DATA_H_\r
+#define _MSG_THREAD_DATA_H_\r
+\r
+#include <msg_storage_types.h>\r
+\r
+#include "MsgBaseData.h"\r
+\r
+/**\r
+ * @class ThreadData\r
+ *\r
+ * Class ThreadData hold minimum information for a conversation thread.\r
+ */\r
+\r
+class ThreadData\r
+ : public BaseData\r
+{\r
+public:\r
+ /**\r
+ * Default constructor for this class.\r
+ */\r
+ ThreadData(msg_handle_t pMsgHandle);\r
+\r
+ /**\r
+ * 2nd phase constructor.\r
+ */\r
+ result Construct(msg_struct_t pThreadInfo);\r
+\r
+ /**\r
+ * Default destructor for this class.\r
+ */\r
+ virtual ~ThreadData(void);\r
+\r
+ // Form Base class\r
+ BaseData* CloneN(void);\r
+ int GetEntryId(void) const;\r
+ const Tizen::Base::String& GetDisplayName(void) const;\r
+ int GetUnreadCount(void) const;\r
+ const Tizen::Base::String& GetMessageText(void) const;\r
+ int GetMessageType(void) const;\r
+ const Tizen::Base::String& GetTimeStamp(void) const;\r
+ const Tizen::Base::String& GetGroupName(void) const;\r
+ const int GetDraftMessageCount(void) const;\r
+ DataType GetDataType(void);\r
+\r
+private:\r
+ result InitThreadName(msg_struct_t pThreadInfo);\r
+ result InitShortDescription(msg_struct_t pThreadInfo);\r
+ result InitTimeStampGroupName(void);\r
+\r
+ //! To prevent copy constructor and assignment\r
+ ThreadData(const ThreadData& rhs);\r
+ ThreadData& operator =(const ThreadData& rhs);\r
+\r
+private:\r
+ msg_handle_t __pMsgHandle; // Not own\r
+ int __threadId;\r
+ Tizen::Base::String __threadName;\r
+ int __messageType;\r
+ Tizen::Base::String __shortDes;\r
+ int __messageTime;\r
+ int __unreadCount;\r
+ Tizen::Base::String __timeStamp;\r
+ Tizen::Base::String __groupName;\r
+ int __draftMsgCount;\r
+};\r
+\r
+\r
+\r
+\r
+#endif // _MSG_THREAD_DATA_H_\r
--- /dev/null
+//\r
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.\r
+//\r
+// Licensed under the Flora License, Version 1.0 (the License);\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+// http://floralicense.org/license/\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an AS IS BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+//\r
+\r
+/**\r
+ * @file MsgThreadListForm.h\r
+ * @brief This is the header file for the %ThreadListForm class.\r
+ *\r
+ * This header file contains the declarations of the %ThreadListForm class.\r
+ */\r
+#ifndef _MSG_THREAD_LIST_FORM_H_\r
+#define _MSG_THREAD_LIST_FORM_H_\r
+\r
+#include <FUiCtrlIGroupedListViewItemEventListener.h>\r
+#include <FUiCtrlIGroupedListViewItemProvider.h>\r
+#include <FUiCtrlIListViewItemEventListener.h>\r
+#include <FUiCtrlIListViewItemProvider.h>\r
+#include <FUiCtrlISearchBarEventListener.h>\r
+#include <FUiScenesISceneEventListener.h>\r
+\r
+#include "MsgBaseForm.h"\r
+#include "MsgIDeleteEventListener.h"\r
+#include "MsgIPopupEventListener.h"\r
+#include "MsgIThreadEventListener.h"\r
+#include "MsgTypes.h"\r
+\r
+enum ContextItemType\r
+{\r
+ MSG_CONTEXT_ITEM_CALL_TYPE = 0,\r
+ MSG_CONTEXT_ITEM_BLOCK_TYPE,\r
+ MSG_CONTEXT_ITEM_UNBLOCK_TYPE\r
+};\r
+\r
+namespace Tizen { namespace Ui { namespace Controls\r
+{\r
+class CheckButton;\r
+class ContextMenu;\r
+class Label;\r
+}}};\r
+\r
+class PhoneNumberListPopup;\r
+class MsgProgressPopup;\r
+\r
+/**\r
+ * @class ThreadListForm\r
+ *\r
+ * Class ThreadListForm display list of thread available in message store.\r
+ */\r
+\r
+class ThreadListForm\r
+ : public BaseForm\r
+ , public Tizen::Ui::IKeypadEventListener\r
+ , public Tizen::Ui::IKeyEventListener\r
+ , public Tizen::Ui::ITextEventListener\r
+ , public Tizen::Ui::ITouchEventListener\r
+ , public Tizen::Ui::Controls::IGroupedListViewItemProvider\r
+ , public Tizen::Ui::Controls::IGroupedListViewItemEventListener\r
+ , public Tizen::Ui::Controls::ISearchBarEventListener\r
+ , public Tizen::Ui::Scenes::ISceneEventListener\r
+ , public IDeleteEventListener\r
+ , public IPopupEventListener\r
+ , public IThreadEventListener\r
+{\r
+public:\r
+ ThreadListForm(ThreadListFormType threadListFormType, ThreadListType threadListType);\r
+\r
+ virtual ~ThreadListForm(void);\r
+\r
+ // From MsgBaseForm\r
+ bool Initialize(void);\r
+\r
+protected:\r
+ //! Call by from framework.\r
+ virtual result OnInitializing(void);\r
+ virtual result OnTerminating(void);\r
+\r
+ // ISearchBarEventListener\r
+ virtual void OnSearchBarModeChanged(Tizen::Ui::Controls::SearchBar& source, Tizen::Ui::Controls::SearchBarMode mode);\r
+ virtual void OnSearchBarContentAreaResized(Tizen::Ui::Controls::SearchBar& source, Tizen::Graphics::Dimension& size) {};\r
+\r
+ //ITextEventListener\r
+ virtual void OnTextValueChanged(const Tizen::Ui::Control& source);\r
+ virtual void OnTextValueChangeCanceled(const Tizen::Ui::Control& source){};\r
+\r
+ // From ISceneEventListener\r
+ virtual void OnSceneActivatedN(const Tizen::Ui::Scenes::SceneId& previousSceneId, const Tizen::Ui::Scenes::SceneId& currentSceneId, Tizen::Base::Collection::IList* pArgs);\r
+ virtual void OnSceneDeactivated(const Tizen::Ui::Scenes::SceneId& currentSceneId, const Tizen::Ui::Scenes::SceneId& nextSceneId);\r
+\r
+ //From IKeyEventListener\r
+ virtual void OnKeyPressed(const Tizen::Ui::Control& source, Tizen::Ui::KeyCode keyCode){};\r
+ virtual void OnKeyReleased(const Tizen::Ui::Control& source, Tizen::Ui::KeyCode keyCode);\r
+ virtual void OnKeyLongPressed(const Tizen::Ui::Control& source, Tizen::Ui::KeyCode keyCode){};\r
+\r
+ // From IActionEventListener\r
+ void OnActionPerformed(const Tizen::Ui::Control& source, int actionId);\r
+\r
+ //From IMsgThreadEventListener\r
+ void OnMessageThreadListChange();\r
+\r
+ // From IMsgDeleteEventListener\r
+ void OnDeleteStart(int totalCount);\r
+ void OnDeleteUpdate(int deleteCount, int totalCount);\r
+ void OnDeleteComplete(int errCode, Tizen::Base::Object* pThreadObject);\r
+\r
+ // From IKeypadEventListener\r
+ virtual void OnKeypadActionPerformed(Tizen::Ui::Control& source, Tizen::Ui::KeypadAction keypadAction);\r
+ virtual void OnKeypadClosed(Tizen::Ui::Control& source){};\r
+ virtual void OnKeypadOpened(Tizen::Ui::Control& source){};\r
+ virtual void OnKeypadWillOpen(Tizen::Ui::Control& source){};\r
+\r
+ //From ITouchEventListener\r
+ virtual void OnTouchPressed(const Tizen::Ui::Control& source, const Tizen::Graphics::Point& currentPosition, const Tizen::Ui::TouchEventInfo& touchInfo);\r
+ virtual void OnTouchReleased(const Tizen::Ui::Control& source, const Tizen::Graphics::Point& currentPosition, const Tizen::Ui::TouchEventInfo& touchInfo){};\r
+ virtual void OnTouchMoved(const Tizen::Ui::Control& source, const Tizen::Graphics::Point& currentPosition, const Tizen::Ui::TouchEventInfo& touchInfo){};\r
+ virtual void OnTouchFocusIn(const Tizen::Ui::Control& source, const Tizen::Graphics::Point& currentPosition, const Tizen::Ui::TouchEventInfo& touchInfo){};\r
+ virtual void OnTouchFocusOut(const Tizen::Ui::Control& source, const Tizen::Graphics::Point& currentPosition, const Tizen::Ui::TouchEventInfo& touchInfo){};\r
+\r
+ //From IGroupedListViewItemEventListener\r
+ virtual void OnGroupedListViewItemStateChanged(Tizen::Ui::Controls::GroupedListView& listView, int groupIndex, int itemIndex, int elementId, Tizen::Ui::Controls::ListItemStatus status);\r
+ virtual void OnGroupedListViewItemSwept(Tizen::Ui::Controls::GroupedListView& listView, int groupIndex, int itemIndex, Tizen::Ui::Controls::SweepDirection direction){};\r
+ virtual void OnGroupedListViewContextItemStateChanged(Tizen::Ui::Controls::GroupedListView& listView, int groupIndex, int itemIndex, int elementId, Tizen::Ui::Controls::ListContextItemStatus status);\r
+\r
+ //From IGroupedListViewItemProvider\r
+ virtual int GetGroupCount(void);\r
+ virtual int GetItemCount(int groupIndex);\r
+ virtual Tizen::Ui::Controls::GroupItem* CreateGroupItem(int groupIndex, int itemWidth);\r
+ virtual bool DeleteGroupItem(int groupIndex, Tizen::Ui::Controls::GroupItem* pItem, int itemWidth);\r
+ virtual Tizen::Ui::Controls::ListItemBase* CreateItem(int groupIndex, int itemIndex, int itemWidth);\r
+ virtual bool DeleteItem(int groupIndex, int itemIndex, Tizen::Ui::Controls::ListItemBase* pItem, int itemWidth);\r
+\r
+ // From BaseForm class\r
+ void OnIntializeFooter(Tizen::Ui::Controls::Footer& footer);\r
+ void OnIntializeHeader(Tizen::Ui::Controls::Header& header);\r
+ void OnFormBackRequested(Tizen::Ui::Controls::Form& source);\r
+ void OnUserEventReceivedN(RequestId requestId, Tizen::Base::Collection::IList* pArgs);\r
+\r
+ //From IMsgPopupEventListener\r
+ virtual void OnPopupListItemSelected(const Tizen::Ui::Control& popup, int selectIndex, const Tizen::Base::Object* pPopupListItem);\r
+ virtual void OnPopupClose(Tizen::Base::Object* pObject);\r
+\r
+private:\r
+ // New API\r
+ /**\r
+ * Set Footer properties\r
+ * @return void\r
+ */\r
+ void SetFooter(void);\r
+\r
+ /**\r
+ * Set thread list view mode footer\r
+ *\r
+ * @param - Form footer alias.\r
+ * @return void\r
+ */\r
+ void SetThreadListViewModeFooter(Tizen::Ui::Controls::Footer& footer);\r
+\r
+ /**\r
+ * Set thread list edit mode footer\r
+ * @param - Form footer alias.\r
+ * @return void\r
+ *\r
+ */\r
+ void SetThreadListEditModeFooter(Tizen::Ui::Controls::Footer& footer);\r
+\r
+ /**\r
+ * Set message list view footer for SPAM, SIM and cell broadcast messages\r
+ *\r
+ * @param - Form footer alias.\r
+ * @return void\r
+ */\r
+ void SetMessageListViewModeFooter(Tizen::Ui::Controls::Footer& footer);\r
+\r
+ /**\r
+ * Set message list edit footer for SPAM, SIM and cell broadcast messages\r
+ *\r
+ * @param - Form footer alias.\r
+ * @return void\r
+ */\r
+ void SetMessageListEditModeFooter(Tizen::Ui::Controls::Footer& footer);\r
+\r
+ /**\r
+ * Set header properties\r
+ * @return void\r
+ */\r
+ void SetHeader(void);\r
+\r
+ /**\r
+ * Add searchbar control in thread list form\r
+ */\r
+ result AddSearchBar(void);\r
+\r
+ /**\r
+ * Add checkbox control for thread list edit mode form.\r
+ */\r
+ result AddEditCheckBox(void);\r
+\r
+ /**\r
+ * Add checkbox control for thread list edit mode form.\r
+ */\r
+ result AddLabelSelectionInfo(void);\r
+\r
+ /**\r
+ * Add thread list list box control.\r
+ */\r
+ result AddListBox(void);\r
+\r
+ /**\r
+ * Create list context menu, display this menu when list item swipe.\r
+ */\r
+ result CreateContextMenu(void);\r
+\r
+ /**\r
+ * Check all list item.\r
+ */\r
+ void CheckAll(bool value);\r
+\r
+ /**\r
+ * Delete selected message and thread list.\r
+ */\r
+ void DeleteSelectedItem(void);\r
+\r
+ /**\r
+ * Show selected list item information.\r
+ */\r
+ void ShowSelectionInfo(void);\r
+\r
+ /**\r
+ * Upadte message and thread list data based on display list type.\r
+ */\r
+ void UpdateMessageThreadList(void);\r
+\r
+ /**\r
+ * Show popup menu.\r
+ */\r
+ result ShowContextPopup(Tizen::Graphics::Point& position);\r
+\r
+ /**\r
+ * Show popup with contact number on tapping call button in thread list.\r
+ * voice button visible on swapping list item.\r
+ */\r
+ void VoiceCall(const Tizen::Base::String& phoneNumber);\r
+\r
+ /**\r
+ * Show popup with ok/cancel on tapping delete button in thread list.\r
+ * Delete button visible of swapping list item.\r
+ */\r
+ void DeletePopup(void);\r
+\r
+ /**\r
+ * Handle delete operation\r
+ */\r
+ void HandleDeleteOperation(void);\r
+ /**\r
+ * Handle back navigation\r
+ */\r
+ void HandleBackNavigation(void);\r
+\r
+ /**\r
+ * Check current from is edit form if so return true else false\r
+ */\r
+ bool IsEditForm(void);\r
+\r
+ /**\r
+ * Context item popup to show contacts list to call/block phone number.\r
+ */\r
+ void ContextItemPopup(int itemType, int itemIndex);\r
+\r
+ /**\r
+ * Show popup with ok/cancel on tapping block button in thread list.\r
+ * Block button visible of swapping list item.\r
+ */\r
+ void BlockPopup(const Tizen::Base::String& phoneNumber);\r
+\r
+ /**\r
+ * Create list context menu,to display unblock in list item swipe.\r
+ */\r
+ result CreateContextMenuUnBlock(void);\r
+\r
+ /**\r
+ * Unblock phone number.\r
+ */\r
+ void UnBlockNumber(const Tizen::Base::String& phoneNumber);\r
+ void FilterBlockUnblockNumberList(Tizen::Base::Collection::IList& numberList, bool blockList);\r
+\r
+private:\r
+ // Member variable.\r
+ bool __isSearchBarClicked;\r
+ ThreadListFormType __threadListFormType;\r
+ ThreadListType __listType;\r
+ Tizen::Ui::Controls::GroupedListView* __pThreadGroupList;\r
+ Tizen::Ui::Controls::ListContextItem* __pItemContext;\r
+ Tizen::Ui::Controls::GroupedListView* __pSearchList;\r
+ Tizen::Ui::Controls::SearchBar* __pSearchBar;\r
+ // Selection\r
+ Tizen::Ui::Controls::CheckButton* __pCheckAll;\r
+ Tizen::Ui::Controls::Label* __pSelectionInfo;\r
+ Tizen::Base::Collection::ArrayListT< int >* __pSelectedIds;\r
+ MsgProgressPopup* __pProgressPopup;\r
+ Tizen::Ui::Controls::ContextMenu* __pContextMenu;\r
+ Tizen::Ui::Controls::Popup* __pDeletePopup;\r
+ int __msgListItemIndex;\r
+ PhoneNumberListPopup* __pPhoneNumberListPopup;\r
+ Tizen::Ui::Controls::Popup* __pBlockPopup;\r
+ Tizen::Base::String __pPhoneNumber;\r
+ ContextItemType __contextItemType;\r
+ Tizen::Ui::Controls::ListContextItem* __pItemContextUnblock;\r
+ int __blockGroupIndex;\r
+ int __blockItemIndex;\r
+ Tizen::Base::String __stringTitle;\r
+};\r
+\r
+\r
+#endif //_MSG_THREAD_LIST_FORM_H_\r
--- /dev/null
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file MsgThreadPresentationModel.h
+ * @brief This is the header file for the %ThreadPresentationModel class.
+ *
+ * This header file contains the declarations of the %ThreadPresentationModel class.
+ */
+#ifndef _MSG_THREAD_PRESENTATION_MODEL_H_
+#define _MSG_THREAD_PRESENTATION_MODEL_H_
+
+#include <msg_storage_types.h>
+#include <msg_types.h>
+
+#include <FBaseColIListT.h>
+#include <FBaseTypes.h>
+#include <FUiControl.h>
+#include "MsgListPresentationModel.h"
+
+namespace Tizen { namespace Base { namespace Collection
+{
+class ArrayList;
+}}};
+
+class BaseData;
+class IThreadEventListener;
+
+/**
+ * @class ThreadPresentationModel
+ *
+ * This class interact with SLP layer and fetch message thread list,thread conversation details
+ * from message store
+ */
+class ThreadPresentationModel
+ : public ListPresentationModel
+{
+public:
+ /**
+ * Allocation method for this class
+ *
+ * @param Take no argument.
+ *
+ * @return Return instance of this class
+ *
+ */
+ static ThreadPresentationModel* GetInstance(void);
+
+ /**
+ * Add Thread listener observer
+ *
+ * @param threadLitener - Thread event listener.
+ *
+ * @return result - E_SUCCESS, In case of successfully add to listener list else
+ * E_FAILURE
+ */
+ result AddThreadListEventListener(const IThreadEventListener& threadLitener);
+
+ /**
+ * Remove Thread listener observer
+ *
+ * @param threadLitener - Thread event listener.
+ *
+ * @return result - E_SUCCESS, In case of successfully remove listener from list else
+ * E_FAILURE
+ */
+ result RemoveThreadListEventListener(const IThreadEventListener& threadLitener);
+
+ void GetThreadList(int threadListType);
+ void GetSearchThreadList(const Tizen::Base::String& msgSearchText, int threadListType);
+ int GetSearchListCount(void);
+
+protected:
+ /**
+ * Thread message store change call back. This will call in case of new, delete, update and
+ * contact information change.
+ *
+ * @param pMsgHandle - Message hadle to communicate with message service layer.
+ * @param storageChangeType - change type.
+ * @param pMsgIdList - Change message ID list
+ * @param pUserParam - User additional parameter.
+ *
+ * @return void
+ */
+ static void MessageStorageChangeCallback(msg_handle_t pMsgHandle, msg_storage_change_type_t storageChangeType, msg_id_list_s* pMsgIdList, void* pUserParam);
+
+ /**
+ * This will call by storage change call back in case of new, delete, update and
+ * contact information change.
+ *
+ * @param storageChangeType - change type.
+ * @param pMsgIdList - Change message ID list
+ *
+ * @return void
+ */
+ void OnMessageStorageChange(msg_storage_change_type_t storageChangeType, msg_id_list_s* pMsgIdList);
+
+ /**
+ * Iterate active thread event listener and notify.
+ *
+ * @param No argument.
+ *
+ * @return void.
+ */
+ void NotifyThreadChange(void);
+
+ /**
+ * Iterate active conversation event listener and notify.
+ *
+ * @param No argument.
+ *
+ * @return void.
+ */
+ void NotifyConversationChange(void);
+
+private:
+ /**
+ * Default constructor for this class.
+ */
+ ThreadPresentationModel(void);
+
+ /**
+ * Default destructor for this class
+ */
+ virtual ~ThreadPresentationModel(void);
+
+ /**
+ * Second phase construction
+ */
+ result Construct(void);
+ static void CreateInstance(void);
+ static void DestroyInstance(void);
+
+
+private:
+ //! To prevent copy constructor and assignment
+ ThreadPresentationModel(const ThreadPresentationModel&);
+ ThreadPresentationModel& operator =(const ThreadPresentationModel& msg);
+
+private:
+ static ThreadPresentationModel* __pInstance; //! Self instance for singleton design.
+ Tizen::Base::Collection::ArrayList* __pThreadListListener; //! Thread event listener
+ int __listType; //! Thread list type
+ int __searchListCount;
+};
+
+#endif // _MSG_THREAD_PRESENTATION_MODEL_H_
--- /dev/null
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file MsgTypes.h
+ * @brief This is the header file for all common const and enum declaration.
+ *
+ * This header file contains the declarations of common const and enum.
+ */
+#ifndef _MSG_TYPES_H_
+#define _MSG_TYPES_H_
+
+namespace Tizen { namespace Graphics
+{
+class Color;
+}};
+
+// To block MMS functionality, Will remove in final released along with this macro
+#define _DISABLE_MMS_FEATURE_
+
+enum MessageIconType
+{
+ MSG_ICON_INVALID,
+ // For different message type list icon
+ MSG_ICON_UNREAD,
+ MSG_ICON_UNREAD_PRESS,
+ MSG_ICON_BROADCASTMSG,
+ MSG_ICON_BROADCASTMSG_PRESS,
+ MSG_ICON_OTA,
+ MSG_ICON_OTA_PRESS,
+ MSG_ICON_PUSH,
+ MSG_ICON_PUSH_PRESS,
+ // For Progress icon
+ MSG_ICON_PROGRESS_01,
+ MSG_ICON_PROGRESS_02,
+ MSG_ICON_PROGRESS_03,
+ MSG_ICON_PROGRESS_04,
+ MSG_ICON_PROGRESS_05,
+ MSG_ICON_PROGRESS_06,
+ MSG_ICON_PROGRESS_07,
+ MSG_ICON_PROGRESS_08,
+ MSG_ICON_PROGRESS_09,
+ MSG_ICON_PROGRESS_10,
+ MSG_ICON_PROGRESS_11,
+ MSG_ICON_PROGRESS_12,
+ MSG_ICON_PROGRESS_13,
+ MSG_ICON_PROGRESS_14,
+ MSG_ICON_PROGRESS_15,
+ MSG_ICON_PROGRESS_16,
+ MSG_ICON_PROGRESS_17,
+ MSG_ICON_PROGRESS_18,
+ MSG_ICON_PROGRESS_19,
+ MSG_ICON_PROGRESS_20,
+ MSG_ICON_PROGRESS_21,
+ MSG_ICON_PROGRESS_22,
+ MSG_ICON_PROGRESS_23,
+ MSG_ICON_PROGRESS_24,
+ MSG_ICON_PROGRESS_25,
+ MSG_ICON_PROGRESS_26,
+ MSG_ICON_PROGRESS_27,
+ MSG_ICON_PROGRESS_28,
+ MSG_ICON_PROGRESS_29,
+ MSG_ICON_PROGRESS_30,
+ // End of progress icons, don't put enum in between.
+ MSG_ICON_EDIT,
+ MSG_ICON_COMPOSE,
+ MSG_ICON_COMPOSE_PRESS,
+ MSG_ICON_DELETE,
+ MSG_ICON_TRAY,
+ MSG_ICON_TRAY_PRESS,
+ MSG_ICON_CONTACT_INFO,
+ MSG_ICON_PLUS,
+ MSG_ICON_PLUS_PRESS,
+ MSG_ICON_BACK,
+ MSG_ICON_BACK_PRESSED,
+ MSG_ICON_HEADER_BACK,
+ MSG_ICON_HEADER_BACK_PRESSED,
+ MSG_ICON_CALL,
+ MSG_ICON_CANCEL,
+ MSG_ICON_BUBBLE_RECEIVE_BG,
+ MSG_ICON_BUBBLE_SENT_BG,
+ MSG_ICON_DELETE_SWEEP,
+ MSG_ICON_DELETE_PRESS_SWEEP,
+ MSG_ICON_LIST_EXPAND_CLOSE,
+ MSG_ICON_LIST_EXPAND_CLOSE_PRESS,
+ MSG_ICON_LIST_EXPAND_OPENED,
+ MSG_ICON_LIST_EXPAND_OPENED_PRESS,
+ MSG_ICON_RADIO_BUTTON_CHECK,
+ MSG_ICON_RADIO_BUTTON_CHECK_PRESS,
+ MSG_ICON_RADIO_BUTTON_UNCHECK,
+ MSG_ICON_RADIO_BUTTON_UNCHECK_PRESS,
+ MSG_ICON_SEND_MESSAGE,
+ MSG_ICON_SEND_MESSAGE_DIM,
+ MSG_ICON_BUBBLE_DATE_BG,
+ MSG_ICON_CIRCLE_BUTTON_BG,
+ MSG_ICON_CIRCLE_BUTTON_BG_PRESS,
+ MSG_ICON_CIRCLE_BUTTON_BG_DIM,
+ MSG_ICON_WARNING_CIRCLE_BUTTON_BG,
+ MSG_ICON_WARNING_CIRCLE_BUTTON_BG_PRESS,
+ MSG_ICON_WARNING,
+ MSG_ICON_WARNING_PRESS,
+ MSG_ICON_EMPTY_LIST,
+ MSG_ICON_SETTINGS,
+ MSG_ICON_COPY_TO_PHONE,
+ MSG_ICON_RESTORE,
+ MSG_ICON_MESSAGE_BOXES,
+ MSG_ICON_Add,
+ MSG_ICON_SAVE,
+ MSG_ICON_DRAFT,
+ MSG_ICON_SEND_MMS,
+ MSG_ICON_SEND_MMS_DIM,
+ MSG_ICON_ARROW_EXPAND,
+ MSG_ICON_ARROW_EXPAND_PRESS,
+ MSG_ICON_ARROW_EXPAND_DIM,
+ MSG_ICON_ATTACHEMENT,
+ MSG_ICON_BUTTON_PANEL_BG,
+ MSG_ICON_SMIL_DELETE,
+ MSG_ICON_SAVE_ATTACHMENT,
+ MSG_ICON_SMIL_VOLUME,
+ MSG_ICON_SMIL_PLAY,
+ MSG_ICON_SMIL_PAUSE,
+ MSG_ICON_SMIL_NEXT,
+ MSG_ICON_SMIL_PREVIOUS,
+ MSG_ICON_MORE,
+ MSG_ICON_MORE_PRESSED,
+ MSG_ICON_MORE_DISABLED,
+ MSG_ICON_RESEND,
+ MSG_ICON_PAGE_DELETE,
+ MSG_ICON_PAGE_DELETE_PRESS,
+ MSG_ICON_VIEW_CONTACT,
+ MSG_ICON_SEARCH_INPUT_BG,
+ MSG_ICON_PHOTO_DELETE,
+ MSG_ICON_PHOTO_DELETE_PRESS,
+ MSG_ICON_REPLY,
+};
+
+enum MsgControlIds
+{
+ // Control ID
+ IDC_LIST_ITEM,
+ IDC_LIST_TEXT_CONTACT,
+ IDC_LIST_TEXT_DATE_TIME,
+ IDC_LIST_TEXT_MSG,
+ IDC_LIST_MSG_ICON,
+ IDC_LIST_DRAFT_ICON,
+ IDC_LIST_MSG_UNREAD,
+ IDC_LIST_MSG_UNREAD_COUNT,
+ IDC_DELETE_CONTEXT_ITEM,
+ IDC_LIST_CHECK_ITEM,
+ IDC_VOICE_CALL_ITEM,
+ IDC_BLOCK_ITEM,
+ IDC_OPTIONS_LIST,
+ IDC_MESSAGE_OPTIONS,
+ IDC_PHONENUMBER_LIST,
+ IDC_COPY_TO_PHONE,
+ IDC_RESTORE,
+ IDC_CONTACT_NAME_LIST,
+ IDC_CONTACT_NUMBER_LIST,
+ IDC_RESEND_LIST,
+ IDC_DELETE_LIST,
+ IDC_SETTING_ITEM_NAME,
+ IDC_SETTING_ITEM_STATUS,
+ IDC_FILTER_ITEM_NAME,
+ IDC_SETTING_BACKGROUND_ITEM,
+ IDC_SETTING_EXPANDICON_ITEM,
+ IDC_UNBLOCK_ITEM
+};
+
+enum MsgStorageChangeType
+{
+ // msg data
+ MSG_STORAGE_INSERT = 1,
+ MSG_STORAGE_UPDATE,
+ MSG_STORAGE_DELETE,
+
+ // thread data
+ MSG_STORAGE_UPDATE_CONTACT,
+};
+
+enum MsgActionIds
+{
+ // Command IDs
+ IDA_EXIT_CMD,
+ IDA_DELETE_CMD,
+ IDA_MORE_CMD,
+ IDA_COMPOSE_CMD,
+ IDA_BACK_CMD,
+ IDA_SEND_CMD,
+ IDA_Add_ATTACHEMENT_CMD,
+ IDA_OPTION_TRAY_COMMAND,
+ IDA_EDIT_CMD,
+ IDA_VOICE_CALL_CMD,
+ IDA_VIDEO_CALL_CMD,
+ IDA_VIEW_CONTACT,
+ IDA_SELECT_ALL_ON,
+ IDA_SELECT_ALL_OFF,
+ IDA_PROTECTED_MESSAGES_CMD,
+ IDA_CB_MESSAGES_CMD,
+ IDA_SIM_MESSAGES_CMD,
+ IDA_SPAM_MESSAGES_CMD,
+ IDA_DRAFT_MESSAGES_CMD,
+ IDA_THREAD_LIST_CMD,
+ IDA_CANCEL_CMD,
+ IDA_CONVERSATION_FORM_HEADER_TITLEITEM,
+ IDA_CONVERSATION_FORM_VOICE_CALL,
+ IDA_CONVERSATION_FORM_VIEW_CONTACT,
+ IDA_CONVERSATION_FORM_ADD_CONTACT,
+ IDA_CONVERSATION_FORM_BLOCK,
+ IDA_CONVERSATION_FORM_UNBLOCK,
+ IDA_CONVERSATION_DELETE,
+ IDA_BUTTON_MESSAGE_DETAILS_POPUP,
+ IDA_BUTTON_CLOSE_OPTIONS_POPUP,
+ IDA_BUTTON_CLOSE_HELPER_POPUP,
+ IDA_BUTTON_CLOSE_NUMBERLIST_POPUP,
+ IDA_MSG_CLOSE_OPTIONS_POPUP,
+ IDA_SETTING_CMD,
+ IDA_EDIT,
+ IDA_BACK,
+ IDA_ADD,
+ IDA_DONE,
+ IDA_CANCEL,
+ IDA_SAVE,
+ IDA_SAVE_REJECT_NUMBER,
+ IDA_CANCEL_REJECT_NUMBER,
+ IDA_DELETE_SPAM_FILTER,
+ IDA_CANCEL_SPAM_FILTER,
+ IDA_BUTTON_MESSAGE_RESEND_DELETE_POPUP,
+ IDA_THREADLIST_MESSAGE_DELETE,
+ IDA_THREADLIST_MESSAGE_CANCEL,
+ IDA_CONVLISTEDIT_MESSAGE_DELETE,
+ IDA_CONVLISTEDIT_MESSAGE_CANCEL,
+ IDA_CONTACTS,
+ IDA_HEADER_BACK,
+ IDA_COPY_TO_PHONE,
+ IDA_RESTORE,
+ IDA_PHONENUMBER_BLOCK_OK,
+ IDA_PHONENUMBER_BLOCK_CANCEL,
+ // SMS setting action ids
+ IDA_SETTINGS_TEXT_MESSAGES,
+ IDA_SETTINGS_TEXTMSG_REQ_DELIVERY_REPORT,
+ IDA_SETTINGS_TEXTMSG_INPUT_MODE,
+ IDA_SETTINGS_TEXTMSG_GSM_ALPHABET,
+ IDA_SETTINGS_TEXTMSG_GSM_UNICODE,
+ IDA_SETTINGS_TEXTMSG_GSM_AUTOMATIC,
+ IDA_SETTINGS_SERVICE_CENTERS,
+ // MMS setting action ids
+ IDA_SETTINGS_MULTIMEDIA_MESSAGES,
+ IDA_SETTINGS_MULTIMEDIA_RECV_OPTIONS,
+ IDA_SETTINGS_MULTIMEDIA_RECV_HOME_NETWORK,
+ IDA_SETTINGS_HOME_NETWORK_AUTO_DOWNLOAD,
+ IDA_SETTINGS_HOME_NETWORK_MANUAL,
+ IDA_SETTINGS_HOME_NETWORK_REJECT,
+ IDA_SETTINGS_MULTIMEDIA_RECV_FOREIGN_NETWORK,
+ IDA_SETTINGS_FOREIGN_NETWORK_AUTO_DOWNLOAD,
+ IDA_SETTINGS_FOREIGN_NETWORK_MANUAL,
+ IDA_SETTINGS_FOREIGN_NETWORK_RESTRICTED,
+ IDA_SETTINGS_FOREIGN_NETWORK_REJECT,
+ IDA_SETTINGS_MULTIMEDIA_DELIVERY_REPORT,
+ IDA_SETTINGS_MULTIMEDIA_READ_REPORT,
+ IDA_SETTINGS_READ_REPORT_REQUEST,
+ IDA_SETTINGS_READ_REPORT_SEND,
+ IDA_SETTINGS_MULTIMEDIA_CREATION_MODE,
+ IDA_SETTINGS_CREATION_MODE_FREE,
+ IDA_SETTINGS_CREATION_MODE_WARNING,
+ IDA_SETTINGS_CREATION_MODE_RESTRICTED,
+
+ IDA_SETTINGS_SPAM_MESSAGES,
+ IDA_SETTINGS_SPAM_REJECT_NUMBERS,
+ IDA_SETTINGS_MATCH_CRITERIA,
+ IDA_SETTINGS_MATCH_CRITERIA_EXACTLY,
+ IDA_SETTINGS_MATCH_CRITERIA_START_WITH,
+ IDA_SETTINGS_MATCH_CRITERIA_INCLUDE,
+ IDA_SETTINGS_SPAM_BLOCK_WORDS,
+ IDA_SETTINGS_BROADCAST_MESSAGES,
+ IDA_SETTINGS_FONT_SIZE,
+ IDA_SETTINGS_VOLUME_KEY,
+
+ IDA_SETTINGS_SYSTEM_FONT,
+ IDA_SETTINGS_HUGE_FONT,
+ IDA_SETTINGS_LARGE_FONT,
+ IDA_SETTINGS_NORMAL_FONT,
+ IDA_SETTINGS_SMALL_FONT,
+ IDA_SETTINGS_TINY_FONT,
+ IDA_SELECT_SPAM_CONTACT_NUMBER,
+ IDA_SPAM_NUMBER_CONFIRMATION_YES,
+ IDA_SPAM_NUMBER_CONFIRMATION_NO,
+ IDA_SPAM_WORD_CONFIRMATION_YES,
+ IDA_SPAM_WORD_CONFIRMATION_NO,
+ IDA_DISCARD_MESSAGE_OK,
+ IDA_DISCARD_MESSAGE_CANCEL,
+ IDA_CLOSE,
+ IDA_OK,
+ IDA_SAVE_ATTACHMENT,
+ IDA_DELETE_MESSAGE,
+ IDA_FORWARD_MESSAGE,
+ IDA_REPLY_MESSAGE,
+ IDA_RESEND_MESSAGE,
+ IDA_COPY_MESSAGE_TEXT,
+ IDA_MORE,
+ IDA_PREVIEW,
+ IDA_PAGE_DURATION,
+ IDA_MMSDETAIL_FORM_HEADER_TITLEITEM,
+ IDA_VOLUME,
+ IDA_PREVIOUS,
+ IDA_PLAY,
+ IDA_NEXT,
+ IDA_OK_DELETE,
+ IDA_CANCEL_DELETE
+};
+
+enum ConversationListFormType
+{
+ CONVERSATION_LIST_FORM_VIEW,
+ CONVERSATION_LIST_FORM_EDIT,
+};
+
+enum ThreadListFormType
+{
+ THREAD_LIST_FORM_VIEW,
+ THREAD_LIST_FORM_EDIT,
+ THREAD_LIST_FORM_SIMMSG_VIEW,
+ THREAD_LIST_FORM_SIMMSG_EDIT,
+ THREAD_LIST_FORM_SPAMMSG_VIEW,
+ THREAD_LIST_FORM_SPAMMSG_EDIT,
+ THREAD_LIST_FORM_DRAFTMSG_VIEW,
+ THREAD_LIST_FORM_DRAFTMSG_EDIT,
+ THREAD_LIST_FORM_CBMSG_VIEW,
+ THREAD_LIST_FORM_CBMSG_EDIT
+};
+
+enum ThreadListType
+{
+ THREAD_LIST_TYPE_THREAD,
+ THREAD_LIST_TYPE_SPAM,
+ THREAD_LIST_TYPE_SIM,
+ THREAD_LIST_TYPE_CBMSG,
+ THREAD_LIST_TYPE_DRAFT,
+};
+
+enum RequestType
+{
+ REQUEST_DELETE_THREAD,
+ REQUEST_DELETE_MESSAGE,
+ REQUEST_NORMAL_VIEW,
+ REQUEST_EDIT_VIEW,
+ // MMS Compose add element request
+ REQUEST_ADD_SUBJECT,
+ REQUEST_OPEN_GALLARY,
+ REQUEST_TAKE_PICTURE,
+ REQUEST_CAPTURE_VIDEO,
+ REQUEST_RECORD_AUDIO,
+ REQUEST_OPEN_MY_FILES,
+ REQUEST_ADD_CONTACTS,
+ REQUEST_ADD_CALENDAR,
+ REQUEST_ADD_MEMO,
+ REQUEST_CHECK_COMPOSE_STATE,
+ REQUEST_SHOW_COMPOSE_INFO,
+ REQUEST_IMAGE_RESIZE_RESPONSE,
+ REQUEST_DESTROY_ATTACH_POPUP,
+ REQUEST_SAVE_MESSAGE_ATTACHMENTS,
+ REQUEST_OPTION_POPUP,
+ REQUEST_DESTROY_SAVE_ATTACHMENT_POPUP,
+ REQUEST_DESTROY_DURATION_POPUP,
+ REQUEST_SHOW_MESSAGE,
+ REQUEST_SET_FOCUS_RECIPIENT,
+ REQUEST_DELETE_START,
+ REQUEST_DELETE_UPDATE,
+ REQUEST_DELETE_COMPLETE,
+ REQUEST_ENABLE_DISABLE_SEND_BUTTON,
+ REQUEST_CLOSE_POPUP,
+ REQUEST_MOVE_FOCUS_RECIPIENT,
+ REQUEST_UDATE_FOCUS,
+};
+
+enum SpamFiterType
+{
+ SPAM_FILTER_TYPE_BLOCK_WORD,
+ SPAM_FILTER_TYPE_BLOCK_NUMBER
+};
+
+enum SettingInputModeType
+{
+ SETTING_INPUTMODE_ENCODE_GSM_ALPHABET,
+ SETTING_INPUTMODE_ENCODE_UCS2,
+ SETTING_INPUTMODE_ENCODE_AUTO,
+};
+
+enum SettingReceiveDownloadType
+{
+ SETTING_RECV_DOWNLOAD_AUTO,
+ SETTING_RECV_DOWNLOAD_MANUAL,
+ SETTING_RECV_DOWNLOAD_RESTRICTED,
+ SETTING_RECV_DOWNLOAD_REJECT
+};
+
+enum SettingCreationModeType
+{
+ SETTING_CREATION_MODE_RESTRICTED,
+ SETTING_CREATION_MODE_WARNING,
+ SETTING_CREATION_MODE_FREE
+};
+
+enum SettingMatchCriteriaType
+{
+ SETTING_MATCH_CRITERIA_ADDRESS_SAME,
+ SETTING_MATCH_CRITERIA_ADDRESS_START,
+ SETTING_MATCH_CRITERIA_ADDRESS_INCLUDE
+};
+
+enum SettingFontType
+{
+ SETTING_SYSTEM_FONT,
+ SETTING_TINY_FONT,
+ SETTING_SMALL_FONT,
+ SETTING_NORMAL_FONT,
+ SETTING_LARGE_FONT,
+ SETTING_HUGE_FONT,
+};
+
+enum MsgFontIds
+{
+ MSG_FONT_ID_SYSTEM,
+ MSG_FONT_ID_HUGE,
+ MSG_FONT_ID_LARGE,
+ MSG_FONT_ID_NORMAL,
+ MSG_FONT_ID_SMALL,
+ MSG_FONT_ID_TINY,
+ MSG_FONT_ID_TIME_STAMP,
+};
+
+enum GroupBgBitmapType
+{
+ MSG_GROUP_BG_BITMAP_BUBBLE,
+ MSG_GROUP_BG_BITMAP_SETTING,
+};
+
+enum ComposerLaunchType
+{
+ COMPOSER_LAUNCH_APP_CONTROL,
+ COMPOSER_LAUNCH_FORWORD_MESSAGE,
+ COMPOSER_LAUNCH_REPLY_MESSAGE,
+ COMPOSER_LAUNCH_DRAFT_MESSAGE,
+};
+
+enum MsgResponse
+{
+ MSG_RESPONSE_SUCCESS = 0,
+ MSG_RESPONSE_FAIL = -1,
+ MSG_RESPONSE_EMPTY_BODY = -2,
+ MSG_RESPONSE_NO_SIM = -3,
+ MSG_RESPONSE_INVALID_BODY = -4,
+ MSG_RESPONSE_MAX_PAGE = -5,
+ MSG_RESPONSE_INVALID_MSG_TYPE = -6,
+ MSG_RESPONSE_INVALID_PAGE = -7,
+ MSG_RESPONSE_INVALID_MEDIA_TYPE = -8,
+ MSG_RESPONSE_CREATION_MODE_FAIL = -9,
+ MSG_RESPONSE_ATTACHMENT_ALREADY_EXIST = -10,
+ MSG_RESPONSE_LOW_RESOLUTION = -11,
+ MSG_RESPONSE_HIGH_RESOLUTION = -12,
+ MSG_RESPONSE_NONSTANDARD_FILE = -13,
+ MSG_RESPONSE_RECIPIENT_INVALID = -14,
+ MSG_RESPONSE_RECIPIENT_ZERO = -15,
+ MSG_RESPONSE_RECIPIENT_COUNTMAX = -16,
+ MSG_RESPONSE_RECIPIENT_DUPLICATE = -17,
+ MSG_RESPONSE_MSG_SIZE_OVER = -18,
+ MSG_RESPONSE_RESIZE_IMAGE = -19,
+ MSG_RESPONSE_DRM_FORWARDLOCK = -20,
+ MSG_RESPONSE_OVERSIZE_FILE = -21,
+};
+
+enum MmsFormType
+{
+ MMS_FORM_NORMAL,
+ MMS_FORM_PREVIEW,
+};
+
+enum MediaType
+{
+ MEDIA_TYPE_IMAGE,
+ MEDIA_TYPE_AUDIO,
+ MEDIA_TYPE_VIDEO,
+ MEDIA_TYPE_UNKNOWN
+};
+
+// Constant
+extern const int YEAR_1900;
+extern const int DAYS_365;
+extern const int LEAP_YEAR_GAP;
+
+//Button
+extern const int W_CANCEL_BUTTON;
+extern const int H_CANCEL_BUTTON;
+extern const int W_SEND_BUTTON;
+extern const int W_ATTACH_BUTTON;
+extern const int H_ATTACH_BUTTON;
+extern const int W_PLAYCONTROL_BUTTON;
+extern const int H_PLAYCONTROL_BUTTON;
+
+//Check Box
+extern const int H_CHECKBOX;
+extern const int W_CHECKBOX;
+
+//Editor
+extern const int H_MSG_COMPOSE_EDITOR;
+extern const int MAX_MSG_EDITOR_LINE;
+extern const int MIN_COMPOSE_EDITOR_HEIGHT;
+
+//Recipent count
+extern const int MAX_COUNT;
+extern const int MAX_ITEM;
+extern const int MAX_LENGTH;
+
+//Panel
+extern const int PANEL_HEIGHT;
+
+//Label
+extern const int H_MSG_DETAILS_LABEL;
+extern const int H_MSG_SELECTION_INFO_LABEL;
+
+// List item
+extern const int H_LIST_ITEM_112PX;
+extern const int H_GROUP_HEADER;
+extern const int W_LIST_ITEM_GROUP_INDICATOR;
+extern const int H_LIST_GROUP;
+extern const int H_TITLE_LINE;
+extern const int H_SUB_TITLE;
+extern const int H_LIST_ITEM_128PX;
+extern const int H_LIST_SWEEP_BUTTON_74PX;
+extern const int W_LIST_SWEEP_BUTTON_100PX;
+
+
+extern const int H_CONTACT_LIST_ITEM;
+extern const int W_LIST_SUB_ITEMS;
+
+//Message Counter
+extern const int MESSAGE_LENGTH;
+extern const int MESSAGE_LENGTH_2;
+extern const int MESSAGE_LENGTH_3;
+extern const int H_SHOW_COUNTER_TEXT;
+
+// Margin
+extern const int MARGIN_4PX;
+extern const int MARGIN_5PX;
+extern const int MARGIN_10PX;
+extern const int MARGIN_12PX;
+extern const int MARGIN_13PX;
+extern const int MARGIN_14PX;
+extern const int MARGIN_15PX;
+extern const int MARGIN_16PX;
+extern const int MARGIN_20PX;
+extern const int MARGIN_22PX;
+extern const int MARGIN_26PX;
+extern const int MARGIN_28PX;
+extern const int MARGIN_42PX;
+extern const int MARGIN_46PX;
+
+extern const int H_ICON_64PX;
+extern const int W_ICON_64PX;
+extern const int H_ICON_60PX;
+extern const int W_ICON_60PX;
+extern const int H_ICON_32PX;
+extern const int W_ICON_32PX;
+extern const int W_ICON_48PX;
+extern const int H_ICON_48PX;
+extern const int H_POPUP_BOTTOM_96PX;
+extern const int H_COMPOSE_IMAGE_132PX;
+extern const int W_COMPOSE_IMAGE_132PX;
+extern const int W_BUBBLE_THUMBNAIL_310PX;
+extern const int H_BUBBLE_THUMBNAIL_204PX;
+extern const int H_UNREAD_ICON;
+extern const int W_UNREAD_ICON;
+extern const int MAX_RESTRICT_IMG_W;
+extern const int MAX_RESTRICT_IMG_H;
+
+//Popup
+extern const int W_POPUP_CONTROL;
+extern const int LIST_ITEM_SUBITEM;
+
+//Gallery
+extern const int H_GALLERY;
+extern const int W_GALLERY;
+
+// Selection info
+extern const int MAX_LEN_SELECTION_INFO;
+extern const int SIZE_1KB;
+extern const int MAX_MMS_SIZE;
+
+// Font Size
+extern const int MSG_SYSTEM_FONT_SIZE;
+extern const int MSG_HUGE_FONT_SIZE;
+extern const int MSG_LARGE_FONT_SIZE;
+extern const int MSG_NORMAL_FONT_SIZE;
+extern const int MSG_SMALL_FONT_SIZE;
+extern const int MSG_TINY_FONT_SIZE;
+extern const int MSG_TIME_FONT_SIZE;
+extern const int MSG_DATE_FONT_SIZE;
+extern const int MSG_SMS_VIEWER_FONT_SIZE;
+// Thread list
+extern const int THREAD_LIST_MAIN_TEXT_FONT_SIZE;
+extern const int THREAD_LIST_SUB_TEXT_FONT_SIZE;
+// List(settings)
+extern const int LIST_MAIN_TEXT_FONT_SIZE;
+extern const int LIST_SUB_TEXT_FONT_SIZE;
+extern const int LIST_GROUP_TEXT_FONT_SIZE;
+
+//Bubble and thread
+extern const int MIN_BUBBLE_HEIGHT;
+extern const int MSG_THREAD_ADDR_LEN;
+extern const int MSG_THREAD_DISPLAY_LEN;
+extern const int MAX_DATE_LEN;
+
+// MMS & SMIL
+extern const int MIN_MMS_SLIDE_DURATION;
+
+
+// Color constant
+extern const Tizen::Graphics::Color COLOR_THREADLIST_SEARCH_TEXT;
+extern const Tizen::Graphics::Color COLOR_THREADLIST_SEARCH_BG;
+extern const Tizen::Graphics::Color COLOR_CHECKBOX_BUTTON;
+extern const Tizen::Graphics::Color COLOR_SELECTION_INFO_LABEL;
+extern const Tizen::Graphics::Color COLOR_SPAM_SETTINGS_ITEM;
+extern const Tizen::Graphics::Color COLOR_THREADLIST_DISPLAY_NAME_ITEM;
+extern const Tizen::Graphics::Color COLOR_THREADLIST_DATE_TIME_SHORTMSG_ITEM;
+extern const Tizen::Graphics::Color COLOR_THREADLIST_UNREAD_NORMAL_ITEM;
+extern const Tizen::Graphics::Color COLOR_COMPOSE_PANEL_BG;
+extern const Tizen::Graphics::Color COLOR_BUBBLE_BG;
+extern const Tizen::Graphics::Color COLOR_SEARCH_TEXT;
+extern const Tizen::Graphics::Color COLOR_CONTACT_SUGGESTION;
+extern const Tizen::Graphics::Color COLOR_BUBBLE_SENT_TIME_STAMP;
+extern const Tizen::Graphics::Color COLOR_BUBBLE_RECEIVE_TIME_STAMP;
+extern const Tizen::Graphics::Color COLOR_BUBBLE_SOS_TIME_STAMP;
+extern const Tizen::Graphics::Color COLOR_BUBBLE_TEXT_NORMAL;
+extern const Tizen::Graphics::Color COLOR_BUBBLE_SOS_TEXT_NORMAL;
+extern const Tizen::Graphics::Color COLOR_SETTING_MAIN_TEXT;
+extern const Tizen::Graphics::Color COLOR_SETTING_SUB_TEXT;
+extern const Tizen::Graphics::Color COLOR_LIST_BG;
+extern const Tizen::Graphics::Color COLOR_LIST_DIALOGUE_GROUP_BG;
+extern const Tizen::Graphics::Color COLOR_LIST_DIALOGUE_GROUP_TITLE;
+extern const Tizen::Graphics::Color COLOR_BLACK;
+extern const Tizen::Graphics::Color COLOR_PANEL_BORDER;
+extern const Tizen::Graphics::Color COLOR_GROUP_BORDER;
+
+// Scene IDs
+extern const wchar_t* IDSCN_THREAD_LIST;
+extern const wchar_t* IDSCN_THREAD_LIST_EDITOR;
+extern const wchar_t* IDSCN_SIM_MESSAGE_LIST;
+extern const wchar_t* IDSCN_SIM_MESSAGE_LIST_EDITOR;
+extern const wchar_t* IDSCN_CB_MESSAGE_LIST;
+extern const wchar_t* IDSCN_CB_MESSAGE_LIST_EDITOR;
+extern const wchar_t* IDSCN_SPAM_MESSAGE_LIST;
+extern const wchar_t* IDSCN_SPAM_MESSAGE_LIST_EDITOR;
+extern const wchar_t* IDSCN_DRAFT_MESSAGE_LIST;
+extern const wchar_t* IDSCN_DRAFT_MESSAGE_LIST_EDITOR;
+extern const wchar_t* IDSCN_CONVERSATION_LIST;
+extern const wchar_t* IDSCN_CONVERSATION_LIST_EDITOR;
+extern const wchar_t* IDSCN_COMPOSER;
+extern const wchar_t* IDSCN_SMS_VIEWER;
+extern const wchar_t* IDSCN_MMS_DETAIL;
+
+extern const wchar_t* IDSCN_SETTINGS;
+extern const wchar_t* IDSCN_SETTINGS_TEXT_MESSAGE;
+extern const wchar_t* IDSCN_SETTINGS_TEXT_MESSAGE_SERVICE_CENTERS;
+extern const wchar_t* IDSCN_SETTINGS_TEXT_MESSAGE_EDIT_SERVICE_CENTER;
+extern const wchar_t* IDSCN_SETTINGS_MULTIMEDIA_MESSAGE;
+extern const wchar_t* IDSCN_SETTINGS_MULTIMEDIA_RECEIVING_OPTIONS;
+extern const wchar_t* IDSCN_SETTINGS_MULTIMEDIA_READ_REPORT;
+extern const wchar_t* IDSCN_SETTINGS_SPAM_MESSAGE;
+extern const wchar_t* IDSCN_SETTINGS_SPAM_AUTO_REJECT;
+extern const wchar_t* IDSCN_SETTINGS_SPAM_ADD_REJECT_NUMBER;
+extern const wchar_t* IDSCN_SETTINGS_SPAM_DELETE_REJECT_NUMBER;
+extern const wchar_t* IDSCN_SETTINGS_SPAM_BLOCK_WORD;
+extern const wchar_t* IDSCN_SETTINGS_SPAM_ADD_BLOCK_WORD;
+extern const wchar_t* IDSCN_SETTINGS_SPAM_DELETE_BLOCK_WORD;
+extern const wchar_t* IDSCN_SETTINGS_FONT_SIZE;
+
+// Form IDs
+extern const wchar_t* IDFRM_THREAD_LIST;
+extern const wchar_t* IDFRM_THREAD_LIST_EDITOR;
+extern const wchar_t* IDFRM_SIM_MESSAGE_LIST;
+extern const wchar_t* IDFRM_SIM_MESSAGE_LIST_EDITOR;
+extern const wchar_t* IDFRM_CB_MESSAGE_LIST;
+extern const wchar_t* IDFRM_CB_MESSAGE_LIST_EDITOR;
+extern const wchar_t* IDFRM_SPAM_MESSAGE_LIST;
+extern const wchar_t* IDFRM_SPAM_MESSAGE_LIST_EDITOR;
+extern const wchar_t* IDFRM_DRAFT_MESSAGE_LIST;
+extern const wchar_t* IDFRM_DRAFT_MESSAGE_LIST_EDITOR;
+extern const wchar_t* IDFRM_CONVERSATION_LIST;
+extern const wchar_t* IDFRM_CONVERSATION_LIST_EDITOR;
+extern const wchar_t* IDFRM_COMPOSER;
+extern const wchar_t* IDFRM_SMS_VIEWER;
+extern const wchar_t* IDFRM_MMS_DETAIL;
+extern const wchar_t* IDFRM_SETTINGS;
+extern const wchar_t* IDFRM_SETTINGS_TEXT_MESSAGE;
+extern const wchar_t* IDFRM_SETTINGS_TEXT_MESSAGE_SERVICE_CENTERS;
+extern const wchar_t* IDFRM_SETTINGS_TEXT_MESSAGE_EDIT_SERVICE_CENTER;
+extern const wchar_t* IDFRM_SETTINGS_MULTIMEDIA_MESSAGE;
+extern const wchar_t* IDFRM_SETTINGS_MULTIMEDIA_RECEIVING_OPTIONS;
+extern const wchar_t* IDFRM_SETTINGS_MULTIMEDIA_READ_REPORT;
+extern const wchar_t* IDFRM_SETTINGS_SPAM_MESSAGE;
+extern const wchar_t* IDFRM_SETTINGS_SPAM_AUTO_REJECT;
+extern const wchar_t* IDFRM_SETTINGS_SPAM_ADD_REJECT_NUMBER;
+extern const wchar_t* IDFRM_SETTINGS_SPAM_DELETE_REJECT_NUMBER;
+extern const wchar_t* IDFRM_SETTINGS_SPAM_BLOCK_WORD;
+extern const wchar_t* IDFRM_SETTINGS_SPAM_ADD_BLOCK_WORD;
+extern const wchar_t* IDFRM_SETTINGS_SPAM_DELETE_BLOCK_WORD;
+extern const wchar_t* IDFRM_SETTINGS_FONT_SIZE;
+
+extern const wchar_t* IDS_SETTING_FONT_TYPE;
+extern const wchar_t* IDS_SETTING_VOLUME_KEY;
+extern const wchar_t* IDS_LIST_MAIN_TEXT;
+extern const wchar_t* IDS_LIST_SUB_TEXT;
+
+
+extern const wchar_t* IDS_APPCONTROL_OPERATION_MAIN;
+extern const wchar_t* IDS_APPCONTROL_OPERATION_CALL;
+extern const wchar_t* IDS_APPCONTROL_OPERATION_ADD;
+extern const wchar_t* IDS_APPCONTROL_OPERATION_VIEW;
+extern const wchar_t* IDS_APPCONTROL_OPERATION_PICK;
+extern const wchar_t* IDS_APPCONTROL_OPERATION_COMPOSE;
+extern const wchar_t* IDS_APPCONTROL_OPERATION_SETTINGS;
+extern const wchar_t* IDS_APPCONTROL_OPERATION_RECORD;
+extern const wchar_t* IDS_APPCONTROL_OPERATION_CAPTURE;
+
+extern const wchar_t* IDS_APPCONTROL_PROVIDER_MESSAGE;
+extern const wchar_t* IDS_APPCONTROL_PROVIDER_CALL;
+extern const wchar_t* IDS_APPCONTROL_PROVIDER_CONTACT;
+extern const wchar_t* IDS_APPCONTROL_PROVIDER_MEDIA;
+extern const wchar_t* IDS_APPCONTROL_PROVIDER_IMAGE;
+extern const wchar_t* IDS_APPCONTROL_PROVIDER_CAMERA;
+extern const wchar_t* IDS_APPCONTROL_PROVIDER_VIDEO;
+extern const wchar_t* IDS_APPCONTROL_PROVIDER_AUDIO;
+extern const wchar_t* IDS_APPCONTROL_PROVIDER_CALENDAR;
+extern const wchar_t* IDS_APPCONTROL_PROVIDER_GALLERY;
+extern const wchar_t* IDS_APPCONTROL_PROVIDER_MEMO;
+
+extern const wchar_t* IDS_MESSAGING;
+extern const wchar_t* IDS_MESSAGES;
+extern const wchar_t* IDS_FONT_HELVETICA_NEUE;
+extern const wchar_t* IDS_SUBJECT;
+extern const wchar_t* IDS_BLANK;
+extern const wchar_t* IDS_BLANK_SPACE;
+extern const wchar_t* IDS_NEW_LINE;
+extern const wchar_t* IDS_CHAR_SLASH;
+extern const wchar_t* IDS_COLON;
+extern const wchar_t* IDS_SEMICOLON;
+extern const wchar_t* IDS_COMMA_SPACE;
+extern const wchar_t* IDS_PLUS_SPACE;
+extern const wchar_t* IDS_TYPE;
+extern const wchar_t* IDS_TEXT;
+extern const wchar_t* IDS_TO;
+extern const wchar_t* IDS_SMS;
+extern const wchar_t* IDS_UNKNOWN;
+extern const wchar_t* IDS_SELECTED_NUMBER_IDS;
+extern const wchar_t* IDS_DELETED_NUMBER_IDS;
+extern const wchar_t* IDS_RESTORE_NUMBER_IDS;
+extern const wchar_t* FORMAT_SPECIFIER_INT;
+extern const wchar_t* IDS_DRAFT;
+extern const wchar_t* IDS_TYPE_IMAGE;
+
+#endif // _MSG_TYPES_H_
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<Manifest xmlns="http://schemas.tizen.org/2012/12/manifest">
+ <Id>8r4r5ddzzn</Id>
+ <Version>1.0.0</Version>
+ <Type>C++App</Type>
+ <Author/>
+ <Descriptions>
+ <Description Locale="eng-PH"/>
+ <Description Locale="zho-SG"/>
+ <Description Locale="kat-GE"/>
+ <Description Locale="est-EE"/>
+ <Description Locale="ukr-UA"/>
+ <Description Locale="srp-RS"/>
+ <Description Locale="hrv-HR"/>
+ <Description Locale="isl-IS"/>
+ <Description Locale="ell-GR"/>
+ <Description Locale="glg-ES"/>
+ <Description Locale="lit-LT"/>
+ <Description Locale="aze-AZ"/>
+ <Description Locale="eng-US"/>
+ <Description Locale="mkd-MK"/>
+ <Description Locale="zho-HK"/>
+ <Description Locale="slk-SK"/>
+ <Description Locale="hun-HU"/>
+ <Description Locale="hye-AM"/>
+ <Description Locale="ces-CZ"/>
+ <Description Locale="fin-FI"/>
+ <Description Locale="ara-AE"/>
+ <Description Locale="eus-ES"/>
+ <Description Locale="ita-IT"/>
+ <Description Locale="tur-TR"/>
+ <Description Locale="rus-RU"/>
+ <Description Locale="cat-ES"/>
+ <Description Locale="kaz-KZ"/>
+ <Description Locale="deu-DE"/>
+ <Description Locale="zho-CN"/>
+ <Description Locale="por-PT"/>
+ <Description Locale="slv-SI"/>
+ <Description Locale="fra-FR"/>
+ <Description Locale="ron-RO"/>
+ <Description Locale="hin-IN"/>
+ <Description Locale="fra-CA"/>
+ <Description Locale="spa-ES"/>
+ <Description Locale="nld-NL"/>
+ <Description Locale="dan-DK"/>
+ <Description Locale="por-BR"/>
+ <Description Locale="bul-BG"/>
+ <Description Locale="zho-TW"/>
+ <Description Locale="jpn-JP"/>
+ <Description Locale="swe-SE"/>
+ <Description Locale="kor-KR"/>
+ <Description Locale="spa-MX"/>
+ <Description Locale="nob-NO"/>
+ <Description Locale="uzb-UZ"/>
+ <Description Locale="pol-PL"/>
+ <Description Locale="gle-IE"/>
+ <Description Locale="lav-LV"/>
+ <Description Locale="eng-GB"/>
+ </Descriptions>
+ <Requirements>
+ <Feature Name="http://tizen.org/feature/platform.core.cpu.arch">x86</Feature>
+ <Feature Name="http://tizen.org/feature/platform.core.fpu.arch">vfpv3</Feature>
+ <Feature Name="http://tizen.org/feature/screen.coordinate_system.logical">Normal</Feature>
+ </Requirements>
+ <Apps>
+ <ApiVersion>2.0</ApiVersion>
+ <Privileges>
+ <Privilege>http://tizen.org/privilege/calendar.read</Privilege>
+ <Privilege>http://tizen.org/privilege/application.launch</Privilege>
+ <Privilege>http://tizen.org/privilege/camera</Privilege>
+ <Privilege>http://tizen.org/privilege/contact.write</Privilege>
+ <Privilege>http://tizen.org/privilege/setting</Privilege>
+ <Privilege>http://tizen.org/privilege/systeminfo</Privilege>
+ <Privilege>http://tizen.org/privilege/contact.read</Privilege>
+ </Privileges>
+ <UiApp Main="True" MenuIconVisible="True" Name="Messages" SubMode="True">
+ <UiScalability BaseScreenSize="Normal" CoordinateSystem="Logical" LogicalCoordinate="720"/>
+ <UiTheme SystemTheme="White"/>
+ <DisplayNames>
+ <DisplayName Locale="eng-PH">Messages-Ref</DisplayName>
+ <DisplayName Locale="zho-SG">讯息-Ref</DisplayName>
+ <DisplayName Locale="kat-GE">შეტყობინებები-Ref</DisplayName>
+ <DisplayName Locale="est-EE">Sõnumid-Ref</DisplayName>
+ <DisplayName Locale="ukr-UA">Повідомлення-Ref</DisplayName>
+ <DisplayName Locale="srp-RS">Poruke-Ref</DisplayName>
+ <DisplayName Locale="hrv-HR">Poruke-Ref</DisplayName>
+ <DisplayName Locale="isl-IS">Skilaboð-Ref</DisplayName>
+ <DisplayName Locale="ell-GR">Μηνύματα-Ref</DisplayName>
+ <DisplayName Locale="glg-ES">Mensaxes-Ref</DisplayName>
+ <DisplayName Locale="lit-LT">Žinutės-Ref</DisplayName>
+ <DisplayName Locale="aze-AZ">Mesajlar-Ref</DisplayName>
+ <DisplayName Locale="eng-US">Messages-Ref</DisplayName>
+ <DisplayName Locale="mkd-MK">Пораки-Ref</DisplayName>
+ <DisplayName Locale="zho-HK">訊息-Ref</DisplayName>
+ <DisplayName Locale="hye-AM">Հղրդգրթ-Ref</DisplayName>
+ <DisplayName Locale="hun-HU">Üzenetek-Ref</DisplayName>
+ <DisplayName Locale="slk-SK">Správy-Ref</DisplayName>
+ <DisplayName Locale="ces-CZ">Zprávy-Ref</DisplayName>
+ <DisplayName Locale="fin-FI">Viestit-Ref</DisplayName>
+ <DisplayName Locale="ara-AE">الرسائل-Ref</DisplayName>
+ <DisplayName Locale="ita-IT">Messaggi-Ref</DisplayName>
+ <DisplayName Locale="eus-ES">Mezuak-Ref</DisplayName>
+ <DisplayName Locale="tur-TR">Mesajlar-Ref</DisplayName>
+ <DisplayName Locale="rus-RU">Сообщения-Ref</DisplayName>
+ <DisplayName Locale="cat-ES">Missatges-Ref</DisplayName>
+ <DisplayName Locale="kaz-KZ">Хабарламалар-Ref</DisplayName>
+ <DisplayName Locale="deu-DE">Nachrichten-Ref</DisplayName>
+ <DisplayName Locale="zho-CN">信息-Ref</DisplayName>
+ <DisplayName Locale="por-PT">Mensagem-Ref</DisplayName>
+ <DisplayName Locale="slv-SI">Sporočila-Ref</DisplayName>
+ <DisplayName Locale="fra-FR">Messages-Ref</DisplayName>
+ <DisplayName Locale="ron-RO">Mesaje-Ref</DisplayName>
+ <DisplayName Locale="hin-IN">सन्देश-Ref</DisplayName>
+ <DisplayName Locale="fra-CA">Messages-Ref</DisplayName>
+ <DisplayName Locale="spa-ES">Mensajes-Ref</DisplayName>
+ <DisplayName Locale="nld-NL">Berichten-Ref</DisplayName>
+ <DisplayName Locale="dan-DK">Meddelelser-Ref</DisplayName>
+ <DisplayName Locale="por-BR">Mensagens-Ref</DisplayName>
+ <DisplayName Locale="bul-BG">Съобщения-Ref</DisplayName>
+ <DisplayName Locale="zho-TW">訊息-Ref</DisplayName>
+ <DisplayName Locale="jpn-JP">メッセージ-Ref</DisplayName>
+ <DisplayName Locale="swe-SE">Meddelanden-Ref</DisplayName>
+ <DisplayName Locale="kor-KR">메시지-Ref</DisplayName>
+ <DisplayName Locale="spa-MX">Mensajes-Ref</DisplayName>
+ <DisplayName Locale="nob-NO">Meldinger-Ref</DisplayName>
+ <DisplayName Locale="uzb-UZ">Xabarlar-Ref</DisplayName>
+ <DisplayName Locale="pol-PL">Wiadomości-Ref</DisplayName>
+ <DisplayName Locale="gle-IE">Teachtaireachtaí-Ref</DisplayName>
+ <DisplayName Locale="eng-GB">Messages-Ref</DisplayName>
+ <DisplayName Locale="lav-LV">Ziņas-Ref</DisplayName>
+ </DisplayNames>
+ <Icons>
+ <Icon Section="MainMenu" Type="Xhigh">mainmenu.png</Icon>
+ </Icons>
+ <AppControls>
+ <AppControl>
+ <Operation>http://tizen.org/appcontrol/operation/compose</Operation>
+ <Operation>http://tizen.org/appcontrol/operation/configure</Operation>
+ </AppControl>
+ </AppControls>
+ <LaunchConditions/>
+ <Notifications/>
+ </UiApp>
+ </Apps>
+</Manifest>
--- /dev/null
+Name: apps.Messages
+Summary: Messages application
+Version: 1.0.0.0
+Release: 1
+Group: TO_BE/FILLED_IN
+License: TO BE FILLED IN
+Source0: %{name}-%{version}.tar.gz
+BuildRequires: cmake
+BuildRequires: pkgconfig(osp-content)
+BuildRequires: pkgconfig(msg-service)
+BuildRequires: pkgconfig(osp-appfw)
+BuildRequires: pkgconfig(osp-uifw)
+BuildRequires: pkgconfig(osp-social)
+BuildRequires: pkgconfig(osp-media)
+BuildRequires: pkgconfig(osp-image)
+BuildRequires: pkgconfig(osp-messaging)
+BuildRequires: pkgconfig(osp-image-core)
+BuildRequires: pkgconfig(osp-telephony)
+
+Requires: osp-installer
+
+%description
+Verification application: Messages
+
+%prep
+%setup -q
+
+%build
+MAJORVER=`echo %{version} | awk 'BEGIN {FS="."}{print $1}'`
+%ifarch %{ix86}
+CXXFLAGS="$CXXFLAGS -D_OSP_DEBUG_ -D_OSP_X86_ -D_OSP_EMUL_" cmake . -DCMAKE_INSTALL_PREFIX=%{_prefix} -DFULLVER=%{version} -DMAJORVER=${MAJORVER}
+%else
+CXXFLAGS="$CXXFLAGS -D_OSP_DEBUG_ -D_OSP_ARMEL_" cmake . -DCMAKE_INSTALL_PREFIX=%{_prefix} -DFULLVER=%{version} -DMAJORVER=${MAJORVER}
+%endif
+
+# Call make instruction with smp support
+make %{?jobs:-j%jobs}
+
+%install
+rm -rf %{buildroot}
+%make_install
+
+%post
+/sbin/ldconfig
+PKG_ID=8r4r5ddzzn
+echo "/usr/etc/package-manager/backend/tpk -i /usr/apps/"${PKG_ID}
+/usr/etc/package-manager/backend/tpk -i /usr/apps/${PKG_ID}
+cp -f /usr/lib/osp/osp-ui-app-loader /usr/apps/${PKG_ID}/bin/Messages
+
+%postun
+/sbin/ldconfig
+PKG_ID=8r4r5ddzzn
+echo "/usr/etc/package-manager/backend/tpk -u "${PKG_ID}
+/usr/etc/package-manager/backend/tpk -u ${PKG_ID}
+
+%files
+%defattr(-,root,root,-)
+/usr/apps/*
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201301241731" Dversion="20120315">
+ <text id="IDS_MSGF_HEADER_MESSAGE_DETAILS">تفاصيل الرسالة</text>
+ <text id="IDS_COM_SK3_PREVIEW">معاينة</text>
+ <text id="IDS_COM_BODY_PD_SELECTED">%d تم تحديد</text>
+ <text id="IDS_MSG_BODY_DURATION_MUST_BE_LONGER_THAN_PD_SECONDS">يجب أن تكون المدة أطول من %d ثوان</text>
+ <text id="IDS_DB_POP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED_DELETE_SOME_CHARACTERS">تم تجاوز الحد الأقصى لعدد الحروف. احذف بعض الحروف</text>
+ <text id="IDS_MSGF_BODY_NO_BLOCKED_WORDS">No blocked words</text>
+ <text id="IDS_COM_BODY_SELECT_ALL">اختيار الكل</text>
+ <text id="IDS_MSGF_BODY_NO_SUBJECT">لا يوجد موضوع</text>
+ <text id="IDS_COM_POP_CLOSE">إغلاق</text>
+ <text id="IDS_COM_BODY_TO">إلى</text>
+ <text id="IDS_MSGC_BODY_TAKE_PICTURE">التقاط صورة</text>
+ <text id="IDS_COM_POP_DELETE_Q">مسح؟</text>
+ <text id="IDS_MSGC_HEADER_INPUTMODE">نمط الإدخال</text>
+ <text id="IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED">تم بلوغ الحد الأقصى لعدد المستلمين (%d)</text>
+ <text id="IDS_COM_SK_NO">لا</text>
+ <text id="IDS_COM_BODY_MY_FILES">ملفاتي</text>
+ <text id="IDS_MSGF_BODY_COPY_TO_PHONE">نسخ إلى الهاتف</text>
+ <text id="IDS_MSGF_BODY_CB_MESSAGES">رسائل CB</text>
+ <text id="IDS_MSGF_BODY_SERVICECENTRE">مركز الخدمة</text>
+ <text id="IDS_COM_BODY_SMS">رسالة قصيرة</text>
+ <text id="IDS_MSGF_POP_SENDING_FAILED_MESSAGE">رسالة فشل الإرسال</text>
+ <text id="IDS_COM_POP_SUCCESS">نجاح</text>
+ <text id="IDS_MSGF_POP_MESSAGES_RECEIVED_FROM_YOUR_CONTACTS_WILL_NOT_BE_BLOCKED_EVEN_IF_THEY_CONTAIN_BLOCKED_NUMBERS">Messages received from your contacts will not be blocked even if they contain blocked numbers</text>
+ <text id="IDS_MSG_SELECT_WORDS">Select words (%d)</text>
+ <text id="IDS_MSGF_BODY_ROAMINGRECEPTION_RESTRICTED">مقيد</text>
+ <text id="IDS_MSGF_POP_MESSAGES_RECEIVED_FROM_YOUR_CONTACTS_WILL_NOT_BE_BLOCKED_EVEN_IF_THEY_CONTAIN_BLOCKED_WORDS">لن يتم حظر الرسائل التي تم استلامها من جهات اتصالك حتى وإن كان بها كلمات محظورة</text>
+ <text id="IDS_MSGF_OPT_UNBLOCK">إلغاء الحجب</text>
+ <text id="IDS_MSGF_BODY_COPY_MESSAGE_TEXT_ABB">نسخ نص الرسالة</text>
+ <text id="IDS_MSGF_BODY_READ_REPORT">تقرير القراءة</text>
+ <text id="IDS_COM_BODY_MESSAGES">الرسائل</text>
+ <text id="IDS_COM_SK_OPTIONS">خيارات</text>
+ <text id="IDS_COM_SK_DONE">تمت</text>
+ <text id="IDS_COM_POP_PM">م</text>
+ <text id="IDS_COM_BODY_UNKNOWN">غير معروف</text>
+ <text id="IDS_MSG_BODY_DRAFT_MESSAGES">رسائل المسودة</text>
+ <text id="IDS_COM_POP_SERVICE_UNAVAILABLE">الخدمة غير متوفرة</text>
+ <text id="IDS_MSGF_OPT_CREATEMSG_ADD_WORD">إضافة كلمة</text>
+ <text id="IDS_MSGF_POP_BLOCK_PS_Q">حظر %s؟</text>
+ <text id="IDS_MSG_BODY_CHANGE_TEXT_SIZE_USING_THE_VOLUME_KEY">تغيير حجم النص باستخدام مفتاح الصوت</text>
+ <text id="IDS_COM_POP_NEW_MESSAGE">رسالة جديدة</text>
+ <text id="IDS_MSGF_BODY_SPAM_MESSAGES">رسائل البريد العشوائي</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_INCLUDE">يتضمن</text>
+ <text id="IDS_MSGF_BODY_NO_BLOCKED_NUMBERS">No blocked numbers</text>
+ <text id="IDS_MSGF_BODY_BLOCKED_NUMBERS">الأرقام المحظورة</text>
+ <text id="IDS_MSGF_BODY_SETTINGS_MULTIMEDIAMESSAGE">رسائل الوسائط</text>
+ <text id="IDS_MSGF_BODY_EDIT_WORD">تعديل كلمة</text>
+ <text id="IDS_MSGF_BODY_EXPIRED">انتهت المدة</text>
+ <text id="IDS_MSGF_BODY_MMSCCCREATIONMODEWARNING">تحذير</text>
+ <text id="IDS_COM_SK_EDIT">تعديل</text>
+ <text id="IDS_COM_POP_FAILED">فشل</text>
+ <text id="IDS_MSGF_HEADER_DELETE_NUMBER">حذف الرقم</text>
+ <text id="IDS_MSGC_BODY_RECORD_AUDIO">تسجيل الصوت</text>
+ <text id="IDS_COM_SK_BACK">رجوع</text>
+ <text id="IDS_MSGF_BODY_UNICODE">الرمز الموحد</text>
+ <text id="IDS_MSGF_HEADER_DELETE_WORDS">حذف كلمات</text>
+ <text id="IDS_COM_BODY_FORWARD">تحويل</text>
+ <text id="IDS_MSGF_POP_NOMESSAGES">لا توجد رسائل</text>
+ <text id="IDS_MSGF_OPT_ROAM_NETWORK">الشبكة الأجنبية</text>
+ <text id="IDS_MSGF_BODY_FROM">من</text>
+ <text id="IDS_COM_SK_DELETE">مسح</text>
+ <text id="IDS_MSGF_SK3_UNREAD">غير مقروءة</text>
+ <text id="IDS_MSGC_BODY_DUPLICATED_RECIPIENT">مستلم مكرر</text>
+ <text id="IDS_MSGF_BODY_GSM_ALPHABET">أبجدية GSM</text>
+ <text id="IDS_MSGF_BODY_SIM_CARD_MESSAGES">رسائل بطاقة SIM</text>
+ <text id="IDS_MSGF_BODY_MMSNOTIMSGSTATUSSENT">تم الإرسال</text>
+ <text id="IDS_COM_BODY_CONTACTS">الأسماء</text>
+ <text id="IDS_MSGF_OPT_STATUS">الحالة</text>
+ <text id="IDS_MSGF_BODY_MMSCCCREATIONMODEFREE">حر</text>
+ <text id="IDS_COM_BODY_DETAILS_TYPE">النوع</text>
+ <text id="IDS_MSGF_BODY_AUTODOWNLOAD">تحميل تلقائي</text>
+ <text id="IDS_MSGF_SK_RESEND">إعادة إرسال</text>
+ <text id="IDS_COM_SK_CANCEL">إلغاء</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONS">خيارات الاستقبال</text>
+ <text id="IDS_COM_BODY_GALLERY">استوديو</text>
+ <text id="IDS_MSGC_BUTTON2_DURATION_N_HPD_SECS">المدة\n(%d ثوان)</text>
+ <text id="IDS_COM_BODY_SEARCH">بحث</text>
+ <text id="IDS_MSGF_HEADER_MESSAGE_BOXES">صناديق الرسائل</text>
+ <text id="IDS_MSGF_HEADER_ADD_NUMBER">إضافة رقم</text>
+ <text id="IDS_COM_BODY_MEMO">المذكرة</text>
+ <text id="IDS_MSGF_BODY_COPY_TO_SIM">نسخ إلى البطاقة</text>
+ <text id="IDS_MSGF_BODY_ENTER_NUMBER">أدخل الرقم</text>
+ <text id="IDS_COM_OPT_ADD_CONTACT">إضافة اسم</text>
+ <text id="IDS_MSGF_OPT_HOME_NETWORK">الشبكة المحلية</text>
+ <text id="IDS_COM_POP_REJECTED">مرفوضة</text>
+ <text id="IDS_COM_BODY_SETTINGS">الضبط</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_START_WITH">يبدأ بـ</text>
+ <text id="IDS_COM_BODY_DISPLAY">الشاشة</text>
+ <text id="IDS_MSGF_OPT_PROTECTION_ON">تشغيل الحماية</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONNETWORK_MANUAL">يدوي</text>
+ <text id="IDS_SLCD_POP_TEXT_SIM_CARD_ERROR">بطاقة SIM غير متاحة</text>
+ <text id="IDS_COM_POP_DELETED">تم المسح</text>
+ <text id="IDS_COM_SK_SEND_ABB">إرسال</text>
+ <text id="IDS_MSGF_POP_FORWARDED">تم التحويل</text>
+ <text id="IDS_MSG_SELECT_NUMBERS">Select numbers (%d)</text>
+ <text id="IDS_MSGF_BODY_CENTRE_PD">مركز %d</text>
+ <text id="IDS_MSGF_HEADER_EDIT_NUMBER">تعديل رقم</text>
+ <text id="IDS_MSGF_BODY_AUTOMATIC">تلقائي</text>
+ <text id="IDS_MSGF_BODY_VIEW_MESSAGE_DETAILS_ABB">عرض تفاصيل الرسالة</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONNETWORK_REJECT">رفض</text>
+ <text id="IDS_COM_BODY_VOICE_CALL">مكالمة صوتية</text>
+ <text id="IDS_MSG_MBODY_USE_THE_VOLUME_KEY">استخدام مفتاح الصوت</text>
+ <text id="IDS_COM_SK_SAVE">حفظ</text>
+ <text id="IDS_MSGF_BODY_INVALID_SERVICE_CENTRE_ADDRESS">Invalid service centre address</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_EXACTLY_THE_SAME_AS">مطابق تماما</text>
+ <text id="IDS_COM_BODY_NO_SEARCH_RESULTS">لا توجد نتائج للبحث</text>
+ <text id="IDS_MSGF_BODY_MMS">رسالة وسائط</text>
+ <text id="IDS_MSGF_BODY_MMSCREATIONMODE">نمط الإنشاء</text>
+ <text id="IDS_MSGF_BODY_TEXT_MESSAGES">رسائل نصية</text>
+ <text id="IDS_MSGF_BODY_RECEIVED">تم الاستلام</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_MATCH_CRITERIA">مطابقة المعيار</text>
+ <text id="IDS_MSGF_POP_DEFERRED">مؤجل</text>
+ <text id="IDS_COM_SK_ADD">إضافة</text>
+ <text id="IDS_MSGF_OPT_BLOCK">حجب</text>
+ <text id="IDS_COM_SK_YES">نعم</text>
+ <text id="IDS_MSGC_OPT_VIEW_CONTACT">عرض الاسم</text>
+ <text id="IDS_COM_SK_SEARCH">بحث</text>
+ <text id="IDS_COM_POP_AM_M_ABB">ص</text>
+ <text id="IDS_MSGF_BODY_BLOCKED_WORDS">الكلمات المحظورة</text>
+ <text id="IDS_COM_BODY_SUBJECT">الموضوع</text>
+ <text id="IDS_MSGF_POP_UNRECOGNISED">غير معرف</text>
+ <text id="IDS_MSGF_BODY_SEND_READ_REPORT">إرسال تقرير قراءة الرسالة</text>
+ <text id="IDS_MSGF_SK_RESTORE">إستعادة</text>
+ <text id="IDS_MSGF_BODY_REQUEST_READ_REPORT">طلب تقرير قراءة الرسالة</text>
+ <text id="IDS_MSGF_BODY_ENTER_WORD">أدخل كلمة</text>
+ <text id="IDS_COM_SK3_COMPOSE">إنشاء</text>
+ <text id="IDS_COM_POP_UNKNOWN_ERROR_OCCURRED">حدث خطأ غير معلوم</text>
+ <text id="IDS_MSGF_BODY_REQUEST_DELIVERY_REPORT">طلب تقرير التوصيل</text>
+ <text id="IDS_MSGF_BODY_INVALID_RECIPIENTS">مستلمين غير صالحين</text>
+ <text id="IDS_MSGF_BODY_BROADCASTMESSAGES">رسائل البث</text>
+ <text id="IDS_MSGF_OPT_SAVE_ATTACHMENT">حفظ الملحقات</text>
+ <text id="IDS_MSGF_BODY_DELIVERY_REPORT">تقرير التوصيل</text>
+ <text id="IDS_MSGC_POP_DISCARD_CURRENT_MESSAGE_Q">رفض الرسالة الحالية؟</text>
+ <text id="IDS_COM_POP_ATTACH">إلحاق</text>
+ <text id="IDS_COM_BODY_CALENDAR">التقويم</text>
+ <text id="IDS_COM_SK_OK">موافق</text>
+ <text id="IDS_COM_SK_CALL">اتصال</text>
+ <text id="IDS_MSGC_BODY_CAPTURE_VIDEO">التقاط فيديو</text>
+ <text id="IDS_MSG_HEADER_SELECT_RECIPIENT">تحديد مستلم</text>
+</string_table>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201301241731" Dversion="20120315">
+ <text id="IDS_MSGF_HEADER_MESSAGE_DETAILS">Mesaj təfərrüatları</text>
+ <text id="IDS_COM_SK3_PREVIEW">İlkin baxış</text>
+ <text id="IDS_COM_BODY_PD_SELECTED">%d seçilmişdir</text>
+ <text id="IDS_MSG_BODY_DURATION_MUST_BE_LONGER_THAN_PD_SECONDS">Müddət %d saniyədən çox olmalıdır</text>
+ <text id="IDS_DB_POP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED_DELETE_SOME_CHARACTERS">Simvolların maksimum sayı aşıldı. Simvolların bəzilərini sil</text>
+ <text id="IDS_MSGF_BODY_NO_BLOCKED_WORDS">No blocked words</text>
+ <text id="IDS_COM_BODY_SELECT_ALL">Hamısını seç</text>
+ <text id="IDS_MSGF_BODY_NO_SUBJECT">Mövzu yoxdur</text>
+ <text id="IDS_COM_POP_CLOSE">Bağla</text>
+ <text id="IDS_COM_BODY_TO">Kimə</text>
+ <text id="IDS_MSGC_BODY_TAKE_PICTURE">Şəkil çək</text>
+ <text id="IDS_COM_POP_DELETE_Q">Silinsin?</text>
+ <text id="IDS_MSGC_HEADER_INPUTMODE">Daxil etmə rejimi</text>
+ <text id="IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED">Qəbul edənlərin sayı maksimuma (%d) çatıb</text>
+ <text id="IDS_COM_SK_NO">Xeyr</text>
+ <text id="IDS_COM_BODY_MY_FILES">Mənim fayllarım</text>
+ <text id="IDS_MSGF_BODY_COPY_TO_PHONE">Telefona köçür</text>
+ <text id="IDS_MSGF_BODY_CB_MESSAGES">CB mesajları</text>
+ <text id="IDS_MSGF_BODY_SERVICECENTRE">Servis mərkəzi</text>
+ <text id="IDS_COM_BODY_SMS">SMS</text>
+ <text id="IDS_MSGF_POP_SENDING_FAILED_MESSAGE">Uğursuz mesaj göndərilir</text>
+ <text id="IDS_COM_POP_SUCCESS">Uğur</text>
+ <text id="IDS_MSGF_POP_MESSAGES_RECEIVED_FROM_YOUR_CONTACTS_WILL_NOT_BE_BLOCKED_EVEN_IF_THEY_CONTAIN_BLOCKED_NUMBERS">Messages received from your contacts will not be blocked even if they contain blocked numbers</text>
+ <text id="IDS_MSG_SELECT_WORDS">Select words (%d)</text>
+ <text id="IDS_MSGF_BODY_ROAMINGRECEPTION_RESTRICTED">Məhdudlaşdırılmışdır</text>
+ <text id="IDS_MSGF_POP_MESSAGES_RECEIVED_FROM_YOUR_CONTACTS_WILL_NOT_BE_BLOCKED_EVEN_IF_THEY_CONTAIN_BLOCKED_WORDS">Kontaktlarınızdan gələn mesajlar bloklanmış sözlər ehtiva etsələr də, bloklanmayacaq</text>
+ <text id="IDS_MSGF_OPT_UNBLOCK">Blokirovkadan çıxar</text>
+ <text id="IDS_MSGF_BODY_COPY_MESSAGE_TEXT_ABB">Msj.n mtnni kçrn</text>
+ <text id="IDS_MSGF_BODY_READ_REPORT">Oxunma hesabatı</text>
+ <text id="IDS_COM_BODY_MESSAGES">Mesajlar</text>
+ <text id="IDS_COM_SK_OPTIONS">Seçimlər</text>
+ <text id="IDS_COM_SK_DONE">Bitdi</text>
+ <text id="IDS_COM_POP_PM">PM</text>
+ <text id="IDS_COM_BODY_UNKNOWN">Naməlum</text>
+ <text id="IDS_MSG_BODY_DRAFT_MESSAGES">Qaralama mesajlar</text>
+ <text id="IDS_COM_POP_SERVICE_UNAVAILABLE">Servisdən istifadə etmək mümkün deyil</text>
+ <text id="IDS_MSGF_OPT_CREATEMSG_ADD_WORD">Söz əlavə et</text>
+ <text id="IDS_MSGF_POP_BLOCK_PS_Q">%s bloklansın?</text>
+ <text id="IDS_MSG_BODY_CHANGE_TEXT_SIZE_USING_THE_VOLUME_KEY">Səs düyməsindən istifadə edərək mətn ölçüsünü dəyiş</text>
+ <text id="IDS_COM_POP_NEW_MESSAGE">Yeni mesaj</text>
+ <text id="IDS_MSGF_BODY_SPAM_MESSAGES">Spam mesajları</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_INCLUDE">Daxil et</text>
+ <text id="IDS_MSGF_BODY_NO_BLOCKED_NUMBERS">No blocked numbers</text>
+ <text id="IDS_MSGF_BODY_BLOCKED_NUMBERS">Bloklanmış nömrələr</text>
+ <text id="IDS_MSGF_BODY_SETTINGS_MULTIMEDIAMESSAGE">Multimdia mesajları</text>
+ <text id="IDS_MSGF_BODY_EDIT_WORD">Sözü redaktə edin</text>
+ <text id="IDS_MSGF_BODY_EXPIRED">Etibarlılıq tarixi artıq keçmişdir</text>
+ <text id="IDS_MSGF_BODY_MMSCCCREATIONMODEWARNING">Diqqət</text>
+ <text id="IDS_COM_SK_EDIT">Redaktə et</text>
+ <text id="IDS_COM_POP_FAILED">Mümkün olmadı</text>
+ <text id="IDS_MSGF_HEADER_DELETE_NUMBER">Nömrəni sil</text>
+ <text id="IDS_MSGC_BODY_RECORD_AUDIO">Səsi yaz</text>
+ <text id="IDS_COM_SK_BACK">Geriyə</text>
+ <text id="IDS_MSGF_BODY_UNICODE">Yunikod</text>
+ <text id="IDS_MSGF_HEADER_DELETE_WORDS">Sözləri sil</text>
+ <text id="IDS_COM_BODY_FORWARD">Göndərmək</text>
+ <text id="IDS_MSGF_POP_NOMESSAGES">Mesaj yoxdur</text>
+ <text id="IDS_MSGF_OPT_ROAM_NETWORK">Xarici şəbəkə</text>
+ <text id="IDS_MSGF_BODY_FROM">Kimdən</text>
+ <text id="IDS_COM_SK_DELETE">Sil</text>
+ <text id="IDS_MSGF_SK3_UNREAD">Oxunmamış</text>
+ <text id="IDS_MSGC_BODY_DUPLICATED_RECIPIENT">Duplikat qəbul edən</text>
+ <text id="IDS_MSGF_BODY_GSM_ALPHABET">GSM-əlifba</text>
+ <text id="IDS_MSGF_BODY_SIM_CARD_MESSAGES">SIM kart mesajları</text>
+ <text id="IDS_MSGF_BODY_MMSNOTIMSGSTATUSSENT">Göndərildi</text>
+ <text id="IDS_COM_BODY_CONTACTS">Adlar</text>
+ <text id="IDS_MSGF_OPT_STATUS">Durum</text>
+ <text id="IDS_MSGF_BODY_MMSCCCREATIONMODEFREE">Azad</text>
+ <text id="IDS_COM_BODY_DETAILS_TYPE">Tip</text>
+ <text id="IDS_MSGF_BODY_AUTODOWNLOAD">Avto yüklənmə</text>
+ <text id="IDS_MSGF_SK_RESEND">Yenidən göndər</text>
+ <text id="IDS_COM_SK_CANCEL">Ləğv et</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONS">Qəbul etmə parametrləri</text>
+ <text id="IDS_COM_BODY_GALLERY">Qalereya</text>
+ <text id="IDS_MSGC_BUTTON2_DURATION_N_HPD_SECS">Müddət\n(%d san)</text>
+ <text id="IDS_COM_BODY_SEARCH">Axtarış</text>
+ <text id="IDS_MSGF_HEADER_MESSAGE_BOXES">Mesaj qutuları</text>
+ <text id="IDS_MSGF_HEADER_ADD_NUMBER">Nömrə əlavə et</text>
+ <text id="IDS_COM_BODY_MEMO">Yaddaş</text>
+ <text id="IDS_MSGF_BODY_COPY_TO_SIM">SIM-ə köçürt</text>
+ <text id="IDS_MSGF_BODY_ENTER_NUMBER">Xahiş olunur nömrəni daxil edin</text>
+ <text id="IDS_COM_OPT_ADD_CONTACT">Təmas əlavə et</text>
+ <text id="IDS_MSGF_OPT_HOME_NETWORK">Ev şəbəkəsi</text>
+ <text id="IDS_COM_POP_REJECTED">İmtina edildi</text>
+ <text id="IDS_COM_BODY_SETTINGS">Parametrlər</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_START_WITH">ilə başla</text>
+ <text id="IDS_COM_BODY_DISPLAY">Displey</text>
+ <text id="IDS_MSGF_OPT_PROTECTION_ON">Müdafiə qoşuldu</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONNETWORK_MANUAL">Ələ işlət</text>
+ <text id="IDS_SLCD_POP_TEXT_SIM_CARD_ERROR">SIM kart qüsuru</text>
+ <text id="IDS_COM_POP_DELETED">Silindi</text>
+ <text id="IDS_COM_SK_SEND_ABB">Göndər</text>
+ <text id="IDS_MSGF_POP_FORWARDED">Ötürülmüşdür</text>
+ <text id="IDS_MSG_SELECT_NUMBERS">Select numbers (%d)</text>
+ <text id="IDS_MSGF_BODY_CENTRE_PD">Mərkəz %d</text>
+ <text id="IDS_MSGF_HEADER_EDIT_NUMBER">Nömrəni redaktə et</text>
+ <text id="IDS_MSGF_BODY_AUTOMATIC">Avtomatik</text>
+ <text id="IDS_MSGF_BODY_VIEW_MESSAGE_DETAILS_ABB">Msj tfərrütlrnı gstr</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONNETWORK_REJECT">İmtina et</text>
+ <text id="IDS_COM_BODY_VOICE_CALL">Səsli zəng</text>
+ <text id="IDS_MSG_MBODY_USE_THE_VOLUME_KEY">Səs düyməsindən ist. et</text>
+ <text id="IDS_COM_SK_SAVE">Yaddaşa yaz</text>
+ <text id="IDS_MSGF_BODY_INVALID_SERVICE_CENTRE_ADDRESS">Invalid service centre address</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_EXACTLY_THE_SAME_AS">Məhz ... kimi</text>
+ <text id="IDS_COM_BODY_NO_SEARCH_RESULTS">Axtarış nəticəsi yoxdur</text>
+ <text id="IDS_MSGF_BODY_MMS">MMS</text>
+ <text id="IDS_MSGF_BODY_MMSCREATIONMODE">Yaratma rejimi</text>
+ <text id="IDS_MSGF_BODY_TEXT_MESSAGES">Mətn mesajları</text>
+ <text id="IDS_MSGF_BODY_RECEIVED">Qəbul edildi</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_MATCH_CRITERIA">Meyarı uyğunlaşdır</text>
+ <text id="IDS_MSGF_POP_DEFERRED">Təxirə salındı</text>
+ <text id="IDS_COM_SK_ADD">Əlavə et</text>
+ <text id="IDS_MSGF_OPT_BLOCK">Blokirovka et</text>
+ <text id="IDS_COM_SK_YES">Bəli</text>
+ <text id="IDS_MSGC_OPT_VIEW_CONTACT">Kontaktı görüntülə</text>
+ <text id="IDS_COM_SK_SEARCH">Axtar</text>
+ <text id="IDS_COM_POP_AM_M_ABB">AM</text>
+ <text id="IDS_MSGF_BODY_BLOCKED_WORDS">Bloklanmış sözlər</text>
+ <text id="IDS_COM_BODY_SUBJECT">Mövzu</text>
+ <text id="IDS_MSGF_POP_UNRECOGNISED">Tanınmır</text>
+ <text id="IDS_MSGF_BODY_SEND_READ_REPORT">Oxunma haqqında hesabat göndər</text>
+ <text id="IDS_MSGF_SK_RESTORE">Brp. edin</text>
+ <text id="IDS_MSGF_BODY_REQUEST_READ_REPORT">Oxunma hesabatı tələb et</text>
+ <text id="IDS_MSGF_BODY_ENTER_WORD">Söz daxil et</text>
+ <text id="IDS_COM_SK3_COMPOSE">Yazın</text>
+ <text id="IDS_COM_POP_UNKNOWN_ERROR_OCCURRED">Naməlum səhv baş verdi</text>
+ <text id="IDS_MSGF_BODY_REQUEST_DELIVERY_REPORT">Çatdırılma haqqında hesabat tələb et</text>
+ <text id="IDS_MSGF_BODY_INVALID_RECIPIENTS">Qəbul edənlər səhvdir</text>
+ <text id="IDS_MSGF_BODY_BROADCASTMESSAGES">Yayım mesajları</text>
+ <text id="IDS_MSGF_OPT_SAVE_ATTACHMENT">Əlavəni saxla</text>
+ <text id="IDS_MSGF_BODY_DELIVERY_REPORT">Çatdırılma haqqında hesabat</text>
+ <text id="IDS_MSGC_POP_DISCARD_CURRENT_MESSAGE_Q">Cari mesaj ləğv edilsin?</text>
+ <text id="IDS_COM_POP_ATTACH">Əlavə et</text>
+ <text id="IDS_COM_BODY_CALENDAR">Təqvim</text>
+ <text id="IDS_COM_SK_OK">OK</text>
+ <text id="IDS_COM_SK_CALL">Zəng et</text>
+ <text id="IDS_MSGC_BODY_CAPTURE_VIDEO">Video yaz</text>
+ <text id="IDS_MSG_HEADER_SELECT_RECIPIENT">Qəbul edəni seç</text>
+</string_table>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201301241731" Dversion="20120315">
+ <text id="IDS_MSGF_HEADER_MESSAGE_DETAILS">Данни за съобщение</text>
+ <text id="IDS_COM_SK3_PREVIEW">Преглед</text>
+ <text id="IDS_COM_BODY_PD_SELECTED">%d избрани</text>
+ <text id="IDS_MSG_BODY_DURATION_MUST_BE_LONGER_THAN_PD_SECONDS">Продължителността трябва да е повече от %d секунди</text>
+ <text id="IDS_DB_POP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED_DELETE_SOME_CHARACTERS">Максималният брой знаци е надвишен. Изтрийте няколко знака</text>
+ <text id="IDS_MSGF_BODY_NO_BLOCKED_WORDS">No blocked words</text>
+ <text id="IDS_COM_BODY_SELECT_ALL">Избери всички</text>
+ <text id="IDS_MSGF_BODY_NO_SUBJECT">Няма тема</text>
+ <text id="IDS_COM_POP_CLOSE">Затваряне</text>
+ <text id="IDS_COM_BODY_TO">До</text>
+ <text id="IDS_MSGC_BODY_TAKE_PICTURE">Направи снимка</text>
+ <text id="IDS_COM_POP_DELETE_Q">Изтриване?</text>
+ <text id="IDS_MSGC_HEADER_INPUTMODE">Режим за въвеждане на текст</text>
+ <text id="IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED">Достигнат е максималният брой получатели (%d)</text>
+ <text id="IDS_COM_SK_NO">Не</text>
+ <text id="IDS_COM_BODY_MY_FILES">Моите файлове</text>
+ <text id="IDS_MSGF_BODY_COPY_TO_PHONE">Копиране в телефона</text>
+ <text id="IDS_MSGF_BODY_CB_MESSAGES">Циркулярни съобщения</text>
+ <text id="IDS_MSGF_BODY_SERVICECENTRE">Център за обслужване</text>
+ <text id="IDS_COM_BODY_SMS">SMS</text>
+ <text id="IDS_MSGF_POP_SENDING_FAILED_MESSAGE">Изпращане на неуспешно съобщение</text>
+ <text id="IDS_COM_POP_SUCCESS">Успешно</text>
+ <text id="IDS_MSGF_POP_MESSAGES_RECEIVED_FROM_YOUR_CONTACTS_WILL_NOT_BE_BLOCKED_EVEN_IF_THEY_CONTAIN_BLOCKED_NUMBERS">Messages received from your contacts will not be blocked even if they contain blocked numbers</text>
+ <text id="IDS_MSG_SELECT_WORDS">Select words (%d)</text>
+ <text id="IDS_MSGF_BODY_ROAMINGRECEPTION_RESTRICTED">Ограничен</text>
+ <text id="IDS_MSGF_POP_MESSAGES_RECEIVED_FROM_YOUR_CONTACTS_WILL_NOT_BE_BLOCKED_EVEN_IF_THEY_CONTAIN_BLOCKED_WORDS">Съобщенията, получени от вашите записи, няма да бъдат блокирани, дори когато съдържат блокирани думи</text>
+ <text id="IDS_MSGF_OPT_UNBLOCK">Разблокиране</text>
+ <text id="IDS_MSGF_BODY_COPY_MESSAGE_TEXT_ABB">Копирай текст съобщ.</text>
+ <text id="IDS_MSGF_BODY_READ_REPORT">Отчет за прочетени</text>
+ <text id="IDS_COM_BODY_MESSAGES">Съобщения</text>
+ <text id="IDS_COM_SK_OPTIONS">Опции</text>
+ <text id="IDS_COM_SK_DONE">Готово</text>
+ <text id="IDS_COM_POP_PM">PM</text>
+ <text id="IDS_COM_BODY_UNKNOWN">Няма информация</text>
+ <text id="IDS_MSG_BODY_DRAFT_MESSAGES">Чернови съобщения</text>
+ <text id="IDS_COM_POP_SERVICE_UNAVAILABLE">Услугата не е налична</text>
+ <text id="IDS_MSGF_OPT_CREATEMSG_ADD_WORD">Добавяне на дума</text>
+ <text id="IDS_MSGF_POP_BLOCK_PS_Q">Блокиране на %s?</text>
+ <text id="IDS_MSG_BODY_CHANGE_TEXT_SIZE_USING_THE_VOLUME_KEY">Променете размера на текста, като използвате клавиша за сила на звука</text>
+ <text id="IDS_COM_POP_NEW_MESSAGE">Ново съобщение</text>
+ <text id="IDS_MSGF_BODY_SPAM_MESSAGES">Съобщения със спам</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_INCLUDE">Включване</text>
+ <text id="IDS_MSGF_BODY_NO_BLOCKED_NUMBERS">No blocked numbers</text>
+ <text id="IDS_MSGF_BODY_BLOCKED_NUMBERS">Блокирани номера</text>
+ <text id="IDS_MSGF_BODY_SETTINGS_MULTIMEDIAMESSAGE">Мултимедийни съобщения</text>
+ <text id="IDS_MSGF_BODY_EDIT_WORD">Редактиране на дума</text>
+ <text id="IDS_MSGF_BODY_EXPIRED">С изтекъл срок</text>
+ <text id="IDS_MSGF_BODY_MMSCCCREATIONMODEWARNING">Предупреждение</text>
+ <text id="IDS_COM_SK_EDIT">Редактиране</text>
+ <text id="IDS_COM_POP_FAILED">Неуспешно</text>
+ <text id="IDS_MSGF_HEADER_DELETE_NUMBER">Изтриване на номер</text>
+ <text id="IDS_MSGC_BODY_RECORD_AUDIO">Записване на аудио</text>
+ <text id="IDS_COM_SK_BACK">Назад</text>
+ <text id="IDS_MSGF_BODY_UNICODE">Unicode</text>
+ <text id="IDS_MSGF_HEADER_DELETE_WORDS">Изтриване на думи</text>
+ <text id="IDS_COM_BODY_FORWARD">Препрати</text>
+ <text id="IDS_MSGF_POP_NOMESSAGES">Няма съобщения</text>
+ <text id="IDS_MSGF_OPT_ROAM_NETWORK">Мрежа в чужбина</text>
+ <text id="IDS_MSGF_BODY_FROM">От</text>
+ <text id="IDS_COM_SK_DELETE">Изтрий</text>
+ <text id="IDS_MSGF_SK3_UNREAD">Нечетени</text>
+ <text id="IDS_MSGC_BODY_DUPLICATED_RECIPIENT">Повтарящ се получател</text>
+ <text id="IDS_MSGF_BODY_GSM_ALPHABET">GSM азбука</text>
+ <text id="IDS_MSGF_BODY_SIM_CARD_MESSAGES">Съобщения на SIM картата</text>
+ <text id="IDS_MSGF_BODY_MMSNOTIMSGSTATUSSENT">Изпратен</text>
+ <text id="IDS_COM_BODY_CONTACTS">Телефонен указател</text>
+ <text id="IDS_MSGF_OPT_STATUS">Състояние</text>
+ <text id="IDS_MSGF_BODY_MMSCCCREATIONMODEFREE">Свободен</text>
+ <text id="IDS_COM_BODY_DETAILS_TYPE">Тип</text>
+ <text id="IDS_MSGF_BODY_AUTODOWNLOAD">Авто изтегляне</text>
+ <text id="IDS_MSGF_SK_RESEND">Повторно изпращане</text>
+ <text id="IDS_COM_SK_CANCEL">Отмени</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONS">Опции за получаване</text>
+ <text id="IDS_COM_BODY_GALLERY">Галерия</text>
+ <text id="IDS_MSGC_BUTTON2_DURATION_N_HPD_SECS">Времетраене\n(%d сек)</text>
+ <text id="IDS_COM_BODY_SEARCH">Търси</text>
+ <text id="IDS_MSGF_HEADER_MESSAGE_BOXES">Кутии със съобщения</text>
+ <text id="IDS_MSGF_HEADER_ADD_NUMBER">Добави номер</text>
+ <text id="IDS_COM_BODY_MEMO">Записка</text>
+ <text id="IDS_MSGF_BODY_COPY_TO_SIM">Копирай в SIM</text>
+ <text id="IDS_MSGF_BODY_ENTER_NUMBER">Въвеждане на номер</text>
+ <text id="IDS_COM_OPT_ADD_CONTACT">Добавяне на запис</text>
+ <text id="IDS_MSGF_OPT_HOME_NETWORK">Национална мрежа</text>
+ <text id="IDS_COM_POP_REJECTED">Отхвърлен</text>
+ <text id="IDS_COM_BODY_SETTINGS">Настройки</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_START_WITH">Започни с</text>
+ <text id="IDS_COM_BODY_DISPLAY">Дисплей</text>
+ <text id="IDS_MSGF_OPT_PROTECTION_ON">Защита вкл.</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONNETWORK_MANUAL">Ръчно</text>
+ <text id="IDS_SLCD_POP_TEXT_SIM_CARD_ERROR">Грешка SIM карта</text>
+ <text id="IDS_COM_POP_DELETED">Изтрито</text>
+ <text id="IDS_COM_SK_SEND_ABB">Изпрати</text>
+ <text id="IDS_MSGF_POP_FORWARDED">Препратено</text>
+ <text id="IDS_MSG_SELECT_NUMBERS">Select numbers (%d)</text>
+ <text id="IDS_MSGF_BODY_CENTRE_PD">Център %d</text>
+ <text id="IDS_MSGF_HEADER_EDIT_NUMBER">Редактиране на номер</text>
+ <text id="IDS_MSGF_BODY_AUTOMATIC">Автоматично</text>
+ <text id="IDS_MSGF_BODY_VIEW_MESSAGE_DETAILS_ABB">Подробности съобщ.</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONNETWORK_REJECT">Отказ</text>
+ <text id="IDS_COM_BODY_VOICE_CALL">Гласово повикване</text>
+ <text id="IDS_MSG_MBODY_USE_THE_VOLUME_KEY">Изп. бут. сила на звука</text>
+ <text id="IDS_COM_SK_SAVE">Запази</text>
+ <text id="IDS_MSGF_BODY_INVALID_SERVICE_CENTRE_ADDRESS">Invalid service centre address</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_EXACTLY_THE_SAME_AS">Точно същото като</text>
+ <text id="IDS_COM_BODY_NO_SEARCH_RESULTS">Няма резултати от търсенето</text>
+ <text id="IDS_MSGF_BODY_MMS">MMS</text>
+ <text id="IDS_MSGF_BODY_MMSCREATIONMODE">Режим на създаване</text>
+ <text id="IDS_MSGF_BODY_TEXT_MESSAGES">Текстови съобщения</text>
+ <text id="IDS_MSGF_BODY_RECEIVED">Получени</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_MATCH_CRITERIA">Свързване критерии</text>
+ <text id="IDS_MSGF_POP_DEFERRED">Отложено</text>
+ <text id="IDS_COM_SK_ADD">Добави</text>
+ <text id="IDS_MSGF_OPT_BLOCK">Блокиране</text>
+ <text id="IDS_COM_SK_YES">Да</text>
+ <text id="IDS_MSGC_OPT_VIEW_CONTACT">Преглед на тел. указ.</text>
+ <text id="IDS_COM_SK_SEARCH">Търсене</text>
+ <text id="IDS_COM_POP_AM_M_ABB">AM</text>
+ <text id="IDS_MSGF_BODY_BLOCKED_WORDS">Блокирани думи</text>
+ <text id="IDS_COM_BODY_SUBJECT">Тема</text>
+ <text id="IDS_MSGF_POP_UNRECOGNISED">Неразпознат</text>
+ <text id="IDS_MSGF_BODY_SEND_READ_REPORT">Изпр. отчет чет.</text>
+ <text id="IDS_MSGF_SK_RESTORE">Възстан.</text>
+ <text id="IDS_MSGF_BODY_REQUEST_READ_REPORT">Изискване отчет за четене</text>
+ <text id="IDS_MSGF_BODY_ENTER_WORD">Въведете дума</text>
+ <text id="IDS_COM_SK3_COMPOSE">Писане</text>
+ <text id="IDS_COM_POP_UNKNOWN_ERROR_OCCURRED">Възникна неизвестна грешка</text>
+ <text id="IDS_MSGF_BODY_REQUEST_DELIVERY_REPORT">Отчет за доставка</text>
+ <text id="IDS_MSGF_BODY_INVALID_RECIPIENTS">Невалидни получатели</text>
+ <text id="IDS_MSGF_BODY_BROADCASTMESSAGES">Излъчени съобщения</text>
+ <text id="IDS_MSGF_OPT_SAVE_ATTACHMENT">Запис на приложения файл</text>
+ <text id="IDS_MSGF_BODY_DELIVERY_REPORT">Отчет за доставка</text>
+ <text id="IDS_MSGC_POP_DISCARD_CURRENT_MESSAGE_Q">Игнориране на текущото съобщение?</text>
+ <text id="IDS_COM_POP_ATTACH">Прикачване</text>
+ <text id="IDS_COM_BODY_CALENDAR">Календар</text>
+ <text id="IDS_COM_SK_OK">OK</text>
+ <text id="IDS_COM_SK_CALL">Повикв.</text>
+ <text id="IDS_MSGC_BODY_CAPTURE_VIDEO">Запис на видео</text>
+ <text id="IDS_MSG_HEADER_SELECT_RECIPIENT">Избор получател</text>
+</string_table>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201301241731" Dversion="20120315">
+ <text id="IDS_MSGF_HEADER_MESSAGE_DETAILS">Detalls del missatge</text>
+ <text id="IDS_COM_SK3_PREVIEW">Vista prèvia</text>
+ <text id="IDS_COM_BODY_PD_SELECTED">%d seleccionat</text>
+ <text id="IDS_MSG_BODY_DURATION_MUST_BE_LONGER_THAN_PD_SECONDS">La durada ha de ser superior a %d segons</text>
+ <text id="IDS_DB_POP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED_DELETE_SOME_CHARACTERS">S'ha superat el nombre màxim de caràcters. Elimini alguns caràcters</text>
+ <text id="IDS_MSGF_BODY_NO_BLOCKED_WORDS">No blocked words</text>
+ <text id="IDS_COM_BODY_SELECT_ALL">Seleccioni-ho tot</text>
+ <text id="IDS_MSGF_BODY_NO_SUBJECT">Sense assumpte</text>
+ <text id="IDS_COM_POP_CLOSE">Tancar</text>
+ <text id="IDS_COM_BODY_TO">A</text>
+ <text id="IDS_MSGC_BODY_TAKE_PICTURE">Fer foto</text>
+ <text id="IDS_COM_POP_DELETE_Q">Esborrar?</text>
+ <text id="IDS_MSGC_HEADER_INPUTMODE">Mode entrada</text>
+ <text id="IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED">S'ha assolit el nombre màxim de destinataris (%d)</text>
+ <text id="IDS_COM_SK_NO">No</text>
+ <text id="IDS_COM_BODY_MY_FILES">Els meus fitxers</text>
+ <text id="IDS_MSGF_BODY_COPY_TO_PHONE">Copiar al telèfon</text>
+ <text id="IDS_MSGF_BODY_CB_MESSAGES">Missatges CB</text>
+ <text id="IDS_MSGF_BODY_SERVICECENTRE">Centre de serveis</text>
+ <text id="IDS_COM_BODY_SMS">SMS</text>
+ <text id="IDS_MSGF_POP_SENDING_FAILED_MESSAGE">Error en enviar un missatge</text>
+ <text id="IDS_COM_POP_SUCCESS">Correcte</text>
+ <text id="IDS_MSGF_POP_MESSAGES_RECEIVED_FROM_YOUR_CONTACTS_WILL_NOT_BE_BLOCKED_EVEN_IF_THEY_CONTAIN_BLOCKED_NUMBERS">Messages received from your contacts will not be blocked even if they contain blocked numbers</text>
+ <text id="IDS_MSG_SELECT_WORDS">Select words (%d)</text>
+ <text id="IDS_MSGF_BODY_ROAMINGRECEPTION_RESTRICTED">Restringit</text>
+ <text id="IDS_MSGF_POP_MESSAGES_RECEIVED_FROM_YOUR_CONTACTS_WILL_NOT_BE_BLOCKED_EVEN_IF_THEY_CONTAIN_BLOCKED_WORDS">Els missatges rebuts dels seus contactes no es bloquejaran encara que continguin paraules bloquejades</text>
+ <text id="IDS_MSGF_OPT_UNBLOCK">Desbloquejar</text>
+ <text id="IDS_MSGF_BODY_COPY_MESSAGE_TEXT_ABB">Copiar text miss</text>
+ <text id="IDS_MSGF_BODY_READ_REPORT">Informe de lectura</text>
+ <text id="IDS_COM_BODY_MESSAGES">Missatges</text>
+ <text id="IDS_COM_SK_OPTIONS">Opcions</text>
+ <text id="IDS_COM_SK_DONE">Finalit.</text>
+ <text id="IDS_COM_POP_PM">PM</text>
+ <text id="IDS_COM_BODY_UNKNOWN">Desconegut</text>
+ <text id="IDS_MSG_BODY_DRAFT_MESSAGES">Esborranys de missatges</text>
+ <text id="IDS_COM_POP_SERVICE_UNAVAILABLE">Servei no disponible</text>
+ <text id="IDS_MSGF_OPT_CREATEMSG_ADD_WORD">Afegir paraula</text>
+ <text id="IDS_MSGF_POP_BLOCK_PS_Q">Bloquejar %s?</text>
+ <text id="IDS_MSG_BODY_CHANGE_TEXT_SIZE_USING_THE_VOLUME_KEY">Canviar la mida de text amb la tecla de volum</text>
+ <text id="IDS_COM_POP_NEW_MESSAGE">Nou missatge</text>
+ <text id="IDS_MSGF_BODY_SPAM_MESSAGES">Missatges de correu brossa</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_INCLUDE">Incloure</text>
+ <text id="IDS_MSGF_BODY_NO_BLOCKED_NUMBERS">No blocked numbers</text>
+ <text id="IDS_MSGF_BODY_BLOCKED_NUMBERS">Números bloquejats</text>
+ <text id="IDS_MSGF_BODY_SETTINGS_MULTIMEDIAMESSAGE">Missatges multimèdia</text>
+ <text id="IDS_MSGF_BODY_EDIT_WORD">Editar paraula</text>
+ <text id="IDS_MSGF_BODY_EXPIRED">Caducat</text>
+ <text id="IDS_MSGF_BODY_MMSCCCREATIONMODEWARNING">Advertència</text>
+ <text id="IDS_COM_SK_EDIT">Editar</text>
+ <text id="IDS_COM_POP_FAILED">Error</text>
+ <text id="IDS_MSGF_HEADER_DELETE_NUMBER">Esborrar número</text>
+ <text id="IDS_MSGC_BODY_RECORD_AUDIO">Gravar àudio</text>
+ <text id="IDS_COM_SK_BACK">Enrere</text>
+ <text id="IDS_MSGF_BODY_UNICODE">Unicode</text>
+ <text id="IDS_MSGF_HEADER_DELETE_WORDS">Esborrar paraules</text>
+ <text id="IDS_COM_BODY_FORWARD">Reenviar</text>
+ <text id="IDS_MSGF_POP_NOMESSAGES">No hi ha cap missatge</text>
+ <text id="IDS_MSGF_OPT_ROAM_NETWORK">Xarxa externa</text>
+ <text id="IDS_MSGF_BODY_FROM">De</text>
+ <text id="IDS_COM_SK_DELETE">Esborrar</text>
+ <text id="IDS_MSGF_SK3_UNREAD">Sense llegir</text>
+ <text id="IDS_MSGC_BODY_DUPLICATED_RECIPIENT">Destinatari duplicat</text>
+ <text id="IDS_MSGF_BODY_GSM_ALPHABET">Alfabet GSM</text>
+ <text id="IDS_MSGF_BODY_SIM_CARD_MESSAGES">Missatges de la targeta SIM</text>
+ <text id="IDS_MSGF_BODY_MMSNOTIMSGSTATUSSENT">Enviat</text>
+ <text id="IDS_COM_BODY_CONTACTS">Contactes</text>
+ <text id="IDS_MSGF_OPT_STATUS">Estat</text>
+ <text id="IDS_MSGF_BODY_MMSCCCREATIONMODEFREE">Lliure</text>
+ <text id="IDS_COM_BODY_DETAILS_TYPE">Tipus</text>
+ <text id="IDS_MSGF_BODY_AUTODOWNLOAD">Descàrrega automàtica</text>
+ <text id="IDS_MSGF_SK_RESEND">Torn a env</text>
+ <text id="IDS_COM_SK_CANCEL">Cancel·lar</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONS">Opcions de recepció</text>
+ <text id="IDS_COM_BODY_GALLERY">Galeria</text>
+ <text id="IDS_MSGC_BUTTON2_DURATION_N_HPD_SECS">Durada\n(%d s)</text>
+ <text id="IDS_COM_BODY_SEARCH">Cercar</text>
+ <text id="IDS_MSGF_HEADER_MESSAGE_BOXES">Quadres de missatge</text>
+ <text id="IDS_MSGF_HEADER_ADD_NUMBER">Afegir número</text>
+ <text id="IDS_COM_BODY_MEMO">Nota</text>
+ <text id="IDS_MSGF_BODY_COPY_TO_SIM">Copiar a la SIM</text>
+ <text id="IDS_MSGF_BODY_ENTER_NUMBER">Introduir número</text>
+ <text id="IDS_COM_OPT_ADD_CONTACT">Afegir contacte</text>
+ <text id="IDS_MSGF_OPT_HOME_NETWORK">Xarxa local</text>
+ <text id="IDS_COM_POP_REJECTED">Rebutjat</text>
+ <text id="IDS_COM_BODY_SETTINGS">Ajustaments</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_START_WITH">Començar amb</text>
+ <text id="IDS_COM_BODY_DISPLAY">Pantalla</text>
+ <text id="IDS_MSGF_OPT_PROTECTION_ON">Protecció activada</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONNETWORK_MANUAL">Manual</text>
+ <text id="IDS_SLCD_POP_TEXT_SIM_CARD_ERROR">Targeta SIM no disponible</text>
+ <text id="IDS_COM_POP_DELETED">Esborrat</text>
+ <text id="IDS_COM_SK_SEND_ABB">Enviar</text>
+ <text id="IDS_MSGF_POP_FORWARDED">Reenviat</text>
+ <text id="IDS_MSG_SELECT_NUMBERS">Select numbers (%d)</text>
+ <text id="IDS_MSGF_BODY_CENTRE_PD">Centre %d</text>
+ <text id="IDS_MSGF_HEADER_EDIT_NUMBER">Editar número</text>
+ <text id="IDS_MSGF_BODY_AUTOMATIC">Automàtica</text>
+ <text id="IDS_MSGF_BODY_VIEW_MESSAGE_DETAILS_ABB">Veure det missatge</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONNETWORK_REJECT">Rebutjar</text>
+ <text id="IDS_COM_BODY_VOICE_CALL">Trucada de veu</text>
+ <text id="IDS_MSG_MBODY_USE_THE_VOLUME_KEY">Utilitzi la tecla volum</text>
+ <text id="IDS_COM_SK_SAVE">Desar</text>
+ <text id="IDS_MSGF_BODY_INVALID_SERVICE_CENTRE_ADDRESS">Invalid service centre address</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_EXACTLY_THE_SAME_AS">Exactament el mateix que</text>
+ <text id="IDS_COM_BODY_NO_SEARCH_RESULTS">No hi ha cap resultat de cerca</text>
+ <text id="IDS_MSGF_BODY_MMS">MMS</text>
+ <text id="IDS_MSGF_BODY_MMSCREATIONMODE">Mode de creació</text>
+ <text id="IDS_MSGF_BODY_TEXT_MESSAGES">Missatges de text</text>
+ <text id="IDS_MSGF_BODY_RECEIVED">Rebut</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_MATCH_CRITERIA">Fer coincidir criteris</text>
+ <text id="IDS_MSGF_POP_DEFERRED">Ajornat</text>
+ <text id="IDS_COM_SK_ADD">Afegir</text>
+ <text id="IDS_MSGF_OPT_BLOCK">Bloquejar</text>
+ <text id="IDS_COM_SK_YES">Sí</text>
+ <text id="IDS_MSGC_OPT_VIEW_CONTACT">Veure contacte</text>
+ <text id="IDS_COM_SK_SEARCH">Cercar</text>
+ <text id="IDS_COM_POP_AM_M_ABB">AM</text>
+ <text id="IDS_MSGF_BODY_BLOCKED_WORDS">Paraules bloquejades</text>
+ <text id="IDS_COM_BODY_SUBJECT">Assumpte</text>
+ <text id="IDS_MSGF_POP_UNRECOGNISED">No s'ha reconegut</text>
+ <text id="IDS_MSGF_BODY_SEND_READ_REPORT">Enviar informe de lectura</text>
+ <text id="IDS_MSGF_SK_RESTORE">Restaurar</text>
+ <text id="IDS_MSGF_BODY_REQUEST_READ_REPORT">Sol·licitar informe lectura</text>
+ <text id="IDS_MSGF_BODY_ENTER_WORD">Introduir paraula</text>
+ <text id="IDS_COM_SK3_COMPOSE">Redactar</text>
+ <text id="IDS_COM_POP_UNKNOWN_ERROR_OCCURRED">S'ha produït un error desconegut</text>
+ <text id="IDS_MSGF_BODY_REQUEST_DELIVERY_REPORT">Sol·licitar informe lliurament</text>
+ <text id="IDS_MSGF_BODY_INVALID_RECIPIENTS">Destinataris no vàlids</text>
+ <text id="IDS_MSGF_BODY_BROADCASTMESSAGES">Missatges de difusió</text>
+ <text id="IDS_MSGF_OPT_SAVE_ATTACHMENT">Desar annex</text>
+ <text id="IDS_MSGF_BODY_DELIVERY_REPORT">Informe de lliurament</text>
+ <text id="IDS_MSGC_POP_DISCARD_CURRENT_MESSAGE_Q">Descartar missatge actual?</text>
+ <text id="IDS_COM_POP_ATTACH">Adjuntar</text>
+ <text id="IDS_COM_BODY_CALENDAR">Calendari</text>
+ <text id="IDS_COM_SK_OK">Acceptar</text>
+ <text id="IDS_COM_SK_CALL">Trucar</text>
+ <text id="IDS_MSGC_BODY_CAPTURE_VIDEO">Capturar vídeo</text>
+ <text id="IDS_MSG_HEADER_SELECT_RECIPIENT">Seleccionar destinatari</text>
+</string_table>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201301241731" Dversion="20120315">
+ <text id="IDS_MSGF_HEADER_MESSAGE_DETAILS">Podrobnosti zprávy</text>
+ <text id="IDS_COM_SK3_PREVIEW">Náhled</text>
+ <text id="IDS_COM_BODY_PD_SELECTED">Vybráno %d</text>
+ <text id="IDS_MSG_BODY_DURATION_MUST_BE_LONGER_THAN_PD_SECONDS">Doba trvání musí být delší než %d sekund</text>
+ <text id="IDS_DB_POP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED_DELETE_SOME_CHARACTERS">Byl překročen maximální počet znaků. Odstraňte některé znaky</text>
+ <text id="IDS_MSGF_BODY_NO_BLOCKED_WORDS">No blocked words</text>
+ <text id="IDS_COM_BODY_SELECT_ALL">Vybrat vše</text>
+ <text id="IDS_MSGF_BODY_NO_SUBJECT">Bez předmětu</text>
+ <text id="IDS_COM_POP_CLOSE">Zavřít</text>
+ <text id="IDS_COM_BODY_TO">Do</text>
+ <text id="IDS_MSGC_BODY_TAKE_PICTURE">Fotografovat</text>
+ <text id="IDS_COM_POP_DELETE_Q">Odstranit?</text>
+ <text id="IDS_MSGC_HEADER_INPUTMODE">Vkládací režim</text>
+ <text id="IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED">Bylo dosaženo maximálního počtu příjemců (%d)</text>
+ <text id="IDS_COM_SK_NO">Ne</text>
+ <text id="IDS_COM_BODY_MY_FILES">Moje soubory</text>
+ <text id="IDS_MSGF_BODY_COPY_TO_PHONE">Kopírovat do telefonu</text>
+ <text id="IDS_MSGF_BODY_CB_MESSAGES">CB zprávy</text>
+ <text id="IDS_MSGF_BODY_SERVICECENTRE">Středisko služeb</text>
+ <text id="IDS_COM_BODY_SMS">SMS</text>
+ <text id="IDS_MSGF_POP_SENDING_FAILED_MESSAGE">Nepodařilo se odeslat zprávu</text>
+ <text id="IDS_COM_POP_SUCCESS">Dokončeno</text>
+ <text id="IDS_MSGF_POP_MESSAGES_RECEIVED_FROM_YOUR_CONTACTS_WILL_NOT_BE_BLOCKED_EVEN_IF_THEY_CONTAIN_BLOCKED_NUMBERS">Messages received from your contacts will not be blocked even if they contain blocked numbers</text>
+ <text id="IDS_MSG_SELECT_WORDS">Select words (%d)</text>
+ <text id="IDS_MSGF_BODY_ROAMINGRECEPTION_RESTRICTED">Zakázáno</text>
+ <text id="IDS_MSGF_POP_MESSAGES_RECEIVED_FROM_YOUR_CONTACTS_WILL_NOT_BE_BLOCKED_EVEN_IF_THEY_CONTAIN_BLOCKED_WORDS">Zprávy přijaté od vašich kontaktů nebudou blokovány, ani když budou obsahovat blokovaná slova</text>
+ <text id="IDS_MSGF_OPT_UNBLOCK">Odblokovat</text>
+ <text id="IDS_MSGF_BODY_COPY_MESSAGE_TEXT_ABB">Kopírovat text zpr.</text>
+ <text id="IDS_MSGF_BODY_READ_REPORT">Zpráva o přečtení</text>
+ <text id="IDS_COM_BODY_MESSAGES">Zprávy</text>
+ <text id="IDS_COM_SK_OPTIONS">Volby</text>
+ <text id="IDS_COM_SK_DONE">Hotovo</text>
+ <text id="IDS_COM_POP_PM">od</text>
+ <text id="IDS_COM_BODY_UNKNOWN">Neznámé</text>
+ <text id="IDS_MSG_BODY_DRAFT_MESSAGES">Koncepty</text>
+ <text id="IDS_COM_POP_SERVICE_UNAVAILABLE">Služba není dostupná</text>
+ <text id="IDS_MSGF_OPT_CREATEMSG_ADD_WORD">Přidat slovo</text>
+ <text id="IDS_MSGF_POP_BLOCK_PS_Q">Blokovat %s?</text>
+ <text id="IDS_MSG_BODY_CHANGE_TEXT_SIZE_USING_THE_VOLUME_KEY">Můžete změnit velikost textu pomocí tlačítka hlasitosti</text>
+ <text id="IDS_COM_POP_NEW_MESSAGE">Nová zpráva</text>
+ <text id="IDS_MSGF_BODY_SPAM_MESSAGES">Nevyžádané zprávy</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_INCLUDE">Zahrnout</text>
+ <text id="IDS_MSGF_BODY_NO_BLOCKED_NUMBERS">No blocked numbers</text>
+ <text id="IDS_MSGF_BODY_BLOCKED_NUMBERS">Blokovaná čísla</text>
+ <text id="IDS_MSGF_BODY_SETTINGS_MULTIMEDIAMESSAGE">MMS</text>
+ <text id="IDS_MSGF_BODY_EDIT_WORD">Upravit slovo</text>
+ <text id="IDS_MSGF_BODY_EXPIRED">Platnost vypršela</text>
+ <text id="IDS_MSGF_BODY_MMSCCCREATIONMODEWARNING">Upozornění</text>
+ <text id="IDS_COM_SK_EDIT">Upravit</text>
+ <text id="IDS_COM_POP_FAILED">Nezdařilo se</text>
+ <text id="IDS_MSGF_HEADER_DELETE_NUMBER">Odstranit číslo</text>
+ <text id="IDS_MSGC_BODY_RECORD_AUDIO">Nahrát zvuk</text>
+ <text id="IDS_COM_SK_BACK">Zpět</text>
+ <text id="IDS_MSGF_BODY_UNICODE">Unicode</text>
+ <text id="IDS_MSGF_HEADER_DELETE_WORDS">Odstranit slova</text>
+ <text id="IDS_COM_BODY_FORWARD">Předat</text>
+ <text id="IDS_MSGF_POP_NOMESSAGES">Žádné zprávy</text>
+ <text id="IDS_MSGF_OPT_ROAM_NETWORK">Síť roaming</text>
+ <text id="IDS_MSGF_BODY_FROM">Od</text>
+ <text id="IDS_COM_SK_DELETE">Odstranit</text>
+ <text id="IDS_MSGF_SK3_UNREAD">Nepřečt.</text>
+ <text id="IDS_MSGC_BODY_DUPLICATED_RECIPIENT">Duplicitní příjemce</text>
+ <text id="IDS_MSGF_BODY_GSM_ALPHABET">Abeceda GSM</text>
+ <text id="IDS_MSGF_BODY_SIM_CARD_MESSAGES">Zprávy na SIM kartě</text>
+ <text id="IDS_MSGF_BODY_MMSNOTIMSGSTATUSSENT">Odesláno</text>
+ <text id="IDS_COM_BODY_CONTACTS">Kontakty</text>
+ <text id="IDS_MSGF_OPT_STATUS">Stav</text>
+ <text id="IDS_MSGF_BODY_MMSCCCREATIONMODEFREE">Volné</text>
+ <text id="IDS_COM_BODY_DETAILS_TYPE">Typ</text>
+ <text id="IDS_MSGF_BODY_AUTODOWNLOAD">Automaticky stáhnout</text>
+ <text id="IDS_MSGF_SK_RESEND">Odesl. zn.</text>
+ <text id="IDS_COM_SK_CANCEL">Zrušit</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONS">Možnosti příjmu</text>
+ <text id="IDS_COM_BODY_GALLERY">Galerie</text>
+ <text id="IDS_MSGC_BUTTON2_DURATION_N_HPD_SECS">Doba trvání\n(%d s)</text>
+ <text id="IDS_COM_BODY_SEARCH">Hledat</text>
+ <text id="IDS_MSGF_HEADER_MESSAGE_BOXES">Složky zpráv</text>
+ <text id="IDS_MSGF_HEADER_ADD_NUMBER">Přidat číslo</text>
+ <text id="IDS_COM_BODY_MEMO">Poznámka</text>
+ <text id="IDS_MSGF_BODY_COPY_TO_SIM">Kopírovat na kartu SIM</text>
+ <text id="IDS_MSGF_BODY_ENTER_NUMBER">Zadat číslo</text>
+ <text id="IDS_COM_OPT_ADD_CONTACT">Přidat kontakt</text>
+ <text id="IDS_MSGF_OPT_HOME_NETWORK">Domácí síť</text>
+ <text id="IDS_COM_POP_REJECTED">Odmítnuto</text>
+ <text id="IDS_COM_BODY_SETTINGS">Nastavení</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_START_WITH">Začátek</text>
+ <text id="IDS_COM_BODY_DISPLAY">Zobrazit</text>
+ <text id="IDS_MSGF_OPT_PROTECTION_ON">Zapnout ochranu</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONNETWORK_MANUAL">Ručně</text>
+ <text id="IDS_SLCD_POP_TEXT_SIM_CARD_ERROR">Chyba SIM karty</text>
+ <text id="IDS_COM_POP_DELETED">Odstraněno</text>
+ <text id="IDS_COM_SK_SEND_ABB">Odesl</text>
+ <text id="IDS_MSGF_POP_FORWARDED">Předáno</text>
+ <text id="IDS_MSG_SELECT_NUMBERS">Select numbers (%d)</text>
+ <text id="IDS_MSGF_BODY_CENTRE_PD">Středisko %d</text>
+ <text id="IDS_MSGF_HEADER_EDIT_NUMBER">Upravit číslo</text>
+ <text id="IDS_MSGF_BODY_AUTOMATIC">Automaticky</text>
+ <text id="IDS_MSGF_BODY_VIEW_MESSAGE_DETAILS_ABB">Zobr. detaily zprávy</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONNETWORK_REJECT">Odmítnout</text>
+ <text id="IDS_COM_BODY_VOICE_CALL">Hlasový hovor</text>
+ <text id="IDS_MSG_MBODY_USE_THE_VOLUME_KEY">Použít tl. hlasitosti</text>
+ <text id="IDS_COM_SK_SAVE">Uložit</text>
+ <text id="IDS_MSGF_BODY_INVALID_SERVICE_CENTRE_ADDRESS">Invalid service centre address</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_EXACTLY_THE_SAME_AS">Naprosto stejné jako</text>
+ <text id="IDS_COM_BODY_NO_SEARCH_RESULTS">Žádné výsledky</text>
+ <text id="IDS_MSGF_BODY_MMS">MMS</text>
+ <text id="IDS_MSGF_BODY_MMSCREATIONMODE">Režim vytváření</text>
+ <text id="IDS_MSGF_BODY_TEXT_MESSAGES">SMS</text>
+ <text id="IDS_MSGF_BODY_RECEIVED">Přijato</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_MATCH_CRITERIA">Kritéria</text>
+ <text id="IDS_MSGF_POP_DEFERRED">Odloženo</text>
+ <text id="IDS_COM_SK_ADD">Přidat</text>
+ <text id="IDS_MSGF_OPT_BLOCK">Blokovat</text>
+ <text id="IDS_COM_SK_YES">Ano</text>
+ <text id="IDS_MSGC_OPT_VIEW_CONTACT">Zobrazit kontakty</text>
+ <text id="IDS_COM_SK_SEARCH">Hledat</text>
+ <text id="IDS_COM_POP_AM_M_ABB">do</text>
+ <text id="IDS_MSGF_BODY_BLOCKED_WORDS">Blokovaná slova</text>
+ <text id="IDS_COM_BODY_SUBJECT">Předmět</text>
+ <text id="IDS_MSGF_POP_UNRECOGNISED">Neznámé</text>
+ <text id="IDS_MSGF_BODY_SEND_READ_REPORT">Odeslat zprávu o přečtení</text>
+ <text id="IDS_MSGF_SK_RESTORE">Obnovit</text>
+ <text id="IDS_MSGF_BODY_REQUEST_READ_REPORT">Požadovat zpr. o přečtení</text>
+ <text id="IDS_MSGF_BODY_ENTER_WORD">Zadejte slovo</text>
+ <text id="IDS_COM_SK3_COMPOSE">Vytvořit</text>
+ <text id="IDS_COM_POP_UNKNOWN_ERROR_OCCURRED">Došlo k neznámé chybě</text>
+ <text id="IDS_MSGF_BODY_REQUEST_DELIVERY_REPORT">Požadovat zprávu o doručení</text>
+ <text id="IDS_MSGF_BODY_INVALID_RECIPIENTS">Neplatní příjemci</text>
+ <text id="IDS_MSGF_BODY_BROADCASTMESSAGES">Vysílané zprávy</text>
+ <text id="IDS_MSGF_OPT_SAVE_ATTACHMENT">Uložit přílohu</text>
+ <text id="IDS_MSGF_BODY_DELIVERY_REPORT">Potvrzení o doručení</text>
+ <text id="IDS_MSGC_POP_DISCARD_CURRENT_MESSAGE_Q">Zrušit aktuální zprávu?</text>
+ <text id="IDS_COM_POP_ATTACH">Připojit</text>
+ <text id="IDS_COM_BODY_CALENDAR">Kalendář</text>
+ <text id="IDS_COM_SK_OK">OK</text>
+ <text id="IDS_COM_SK_CALL">Hovor</text>
+ <text id="IDS_MSGC_BODY_CAPTURE_VIDEO">Nahrávání videoklipů</text>
+ <text id="IDS_MSG_HEADER_SELECT_RECIPIENT">Vybrat příjemce</text>
+</string_table>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201301241731" Dversion="20120315">
+ <text id="IDS_MSGF_HEADER_MESSAGE_DETAILS">Meddelelsesdetaljer</text>
+ <text id="IDS_COM_SK3_PREVIEW">Eksempel</text>
+ <text id="IDS_COM_BODY_PD_SELECTED">%d valgt</text>
+ <text id="IDS_MSG_BODY_DURATION_MUST_BE_LONGER_THAN_PD_SECONDS">Varighed skal være længere end %d sekunder</text>
+ <text id="IDS_DB_POP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED_DELETE_SOME_CHARACTERS">Det maksimale antal tegn er overskredet. Vil du slette nogle tegn</text>
+ <text id="IDS_MSGF_BODY_NO_BLOCKED_WORDS">No blocked words</text>
+ <text id="IDS_COM_BODY_SELECT_ALL">Vælg alle</text>
+ <text id="IDS_MSGF_BODY_NO_SUBJECT">Intet emne</text>
+ <text id="IDS_COM_POP_CLOSE">Luk</text>
+ <text id="IDS_COM_BODY_TO">Til</text>
+ <text id="IDS_MSGC_BODY_TAKE_PICTURE">Tag billede</text>
+ <text id="IDS_COM_POP_DELETE_Q">Slet?</text>
+ <text id="IDS_MSGC_HEADER_INPUTMODE">Tekstindtastningstilstand</text>
+ <text id="IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED">Det maksimale antal modtagere (%d) er nået</text>
+ <text id="IDS_COM_SK_NO">Nej</text>
+ <text id="IDS_COM_BODY_MY_FILES">Mine filer</text>
+ <text id="IDS_MSGF_BODY_COPY_TO_PHONE">Kopiér til telefon</text>
+ <text id="IDS_MSGF_BODY_CB_MESSAGES">Gruppemeddelelser</text>
+ <text id="IDS_MSGF_BODY_SERVICECENTRE">Tjenestecentral</text>
+ <text id="IDS_COM_BODY_SMS">Sms</text>
+ <text id="IDS_MSGF_POP_SENDING_FAILED_MESSAGE">Meddelelse om mislykket afsendelse</text>
+ <text id="IDS_COM_POP_SUCCESS">Fuldført</text>
+ <text id="IDS_MSGF_POP_MESSAGES_RECEIVED_FROM_YOUR_CONTACTS_WILL_NOT_BE_BLOCKED_EVEN_IF_THEY_CONTAIN_BLOCKED_NUMBERS">Messages received from your contacts will not be blocked even if they contain blocked numbers</text>
+ <text id="IDS_MSG_SELECT_WORDS">Select words (%d)</text>
+ <text id="IDS_MSGF_BODY_ROAMINGRECEPTION_RESTRICTED">Begrænset</text>
+ <text id="IDS_MSGF_POP_MESSAGES_RECEIVED_FROM_YOUR_CONTACTS_WILL_NOT_BE_BLOCKED_EVEN_IF_THEY_CONTAIN_BLOCKED_WORDS">Meddelelser modtaget fra dine kontakter vil ikke blive blokeret, selv om de indeholder blokerede ord</text>
+ <text id="IDS_MSGF_OPT_UNBLOCK">Ophæv blokering</text>
+ <text id="IDS_MSGF_BODY_COPY_MESSAGE_TEXT_ABB">Kopier medd.tekst</text>
+ <text id="IDS_MSGF_BODY_READ_REPORT">Læsningsrapport</text>
+ <text id="IDS_COM_BODY_MESSAGES">Meddelelser</text>
+ <text id="IDS_COM_SK_OPTIONS">Valg</text>
+ <text id="IDS_COM_SK_DONE">Udført</text>
+ <text id="IDS_COM_POP_PM">PM</text>
+ <text id="IDS_COM_BODY_UNKNOWN">Ukendt</text>
+ <text id="IDS_MSG_BODY_DRAFT_MESSAGES">Kladdemeddelelser</text>
+ <text id="IDS_COM_POP_SERVICE_UNAVAILABLE">Tjeneste ikke tilgængelig</text>
+ <text id="IDS_MSGF_OPT_CREATEMSG_ADD_WORD">Tilføj ord</text>
+ <text id="IDS_MSGF_POP_BLOCK_PS_Q">Blokér %s?</text>
+ <text id="IDS_MSG_BODY_CHANGE_TEXT_SIZE_USING_THE_VOLUME_KEY">Skift tekststørrelse ved hjælp af lydstyrketasten</text>
+ <text id="IDS_COM_POP_NEW_MESSAGE">Ny meddelelse</text>
+ <text id="IDS_MSGF_BODY_SPAM_MESSAGES">Spam-meddelelser</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_INCLUDE">Inkludér</text>
+ <text id="IDS_MSGF_BODY_NO_BLOCKED_NUMBERS">No blocked numbers</text>
+ <text id="IDS_MSGF_BODY_BLOCKED_NUMBERS">Blokerede numre</text>
+ <text id="IDS_MSGF_BODY_SETTINGS_MULTIMEDIAMESSAGE">Multimediemeddelelser</text>
+ <text id="IDS_MSGF_BODY_EDIT_WORD">Redigér ord</text>
+ <text id="IDS_MSGF_BODY_EXPIRED">Udløbet</text>
+ <text id="IDS_MSGF_BODY_MMSCCCREATIONMODEWARNING">Advarsel</text>
+ <text id="IDS_COM_SK_EDIT">Redigér</text>
+ <text id="IDS_COM_POP_FAILED">Mislykkedes</text>
+ <text id="IDS_MSGF_HEADER_DELETE_NUMBER">Slet nummer</text>
+ <text id="IDS_MSGC_BODY_RECORD_AUDIO">Optag lyd</text>
+ <text id="IDS_COM_SK_BACK">Tilbage</text>
+ <text id="IDS_MSGF_BODY_UNICODE">Unicode</text>
+ <text id="IDS_MSGF_HEADER_DELETE_WORDS">Slet ord</text>
+ <text id="IDS_COM_BODY_FORWARD">Viderestil</text>
+ <text id="IDS_MSGF_POP_NOMESSAGES">Ingen meddelelser</text>
+ <text id="IDS_MSGF_OPT_ROAM_NETWORK">Roaming</text>
+ <text id="IDS_MSGF_BODY_FROM">Fra</text>
+ <text id="IDS_COM_SK_DELETE">Slet</text>
+ <text id="IDS_MSGF_SK3_UNREAD">Ulæst</text>
+ <text id="IDS_MSGC_BODY_DUPLICATED_RECIPIENT">Kopierede modtagere</text>
+ <text id="IDS_MSGF_BODY_GSM_ALPHABET">GSM-alfabet</text>
+ <text id="IDS_MSGF_BODY_SIM_CARD_MESSAGES">SIM-kortmeddelelser</text>
+ <text id="IDS_MSGF_BODY_MMSNOTIMSGSTATUSSENT">Sendt</text>
+ <text id="IDS_COM_BODY_CONTACTS">Kontakter</text>
+ <text id="IDS_MSGF_OPT_STATUS">Status</text>
+ <text id="IDS_MSGF_BODY_MMSCCCREATIONMODEFREE">Ledig</text>
+ <text id="IDS_COM_BODY_DETAILS_TYPE">Type</text>
+ <text id="IDS_MSGF_BODY_AUTODOWNLOAD">Automatisk overførsel</text>
+ <text id="IDS_MSGF_SK_RESEND">Send igen</text>
+ <text id="IDS_COM_SK_CANCEL">Annullér</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONS">Modtagelsesindstillinger</text>
+ <text id="IDS_COM_BODY_GALLERY">Galleri</text>
+ <text id="IDS_MSGC_BUTTON2_DURATION_N_HPD_SECS">Varighed\n(%d sek.)</text>
+ <text id="IDS_COM_BODY_SEARCH">Søg</text>
+ <text id="IDS_MSGF_HEADER_MESSAGE_BOXES">Meddelelsesbokse</text>
+ <text id="IDS_MSGF_HEADER_ADD_NUMBER">Tilføj nummer</text>
+ <text id="IDS_COM_BODY_MEMO">Notat</text>
+ <text id="IDS_MSGF_BODY_COPY_TO_SIM">Kopiér til SIM-kort</text>
+ <text id="IDS_MSGF_BODY_ENTER_NUMBER">Angiv nummer</text>
+ <text id="IDS_COM_OPT_ADD_CONTACT">Tilføj en kontakt</text>
+ <text id="IDS_MSGF_OPT_HOME_NETWORK">Hjemmenetværk</text>
+ <text id="IDS_COM_POP_REJECTED">Afvist</text>
+ <text id="IDS_COM_BODY_SETTINGS">Indstillinger</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_START_WITH">Start med</text>
+ <text id="IDS_COM_BODY_DISPLAY">Skærm</text>
+ <text id="IDS_MSGF_OPT_PROTECTION_ON">Beskyttelse til</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONNETWORK_MANUAL">Manuelt</text>
+ <text id="IDS_SLCD_POP_TEXT_SIM_CARD_ERROR">Fejl i SIM-kort</text>
+ <text id="IDS_COM_POP_DELETED">Slettet</text>
+ <text id="IDS_COM_SK_SEND_ABB">Send</text>
+ <text id="IDS_MSGF_POP_FORWARDED">Videresendt</text>
+ <text id="IDS_MSG_SELECT_NUMBERS">Select numbers (%d)</text>
+ <text id="IDS_MSGF_BODY_CENTRE_PD">Center %d</text>
+ <text id="IDS_MSGF_HEADER_EDIT_NUMBER">Redigér nummer</text>
+ <text id="IDS_MSGF_BODY_AUTOMATIC">Automatisk</text>
+ <text id="IDS_MSGF_BODY_VIEW_MESSAGE_DETAILS_ABB">Vis medd.detaljer</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONNETWORK_REJECT">Afvis</text>
+ <text id="IDS_COM_BODY_VOICE_CALL">Stemmeopkald</text>
+ <text id="IDS_MSG_MBODY_USE_THE_VOLUME_KEY">Brug lydstyrketasten</text>
+ <text id="IDS_COM_SK_SAVE">Gem</text>
+ <text id="IDS_MSGF_BODY_INVALID_SERVICE_CENTRE_ADDRESS">Invalid service centre address</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_EXACTLY_THE_SAME_AS">Nøjagtig det samme som</text>
+ <text id="IDS_COM_BODY_NO_SEARCH_RESULTS">Ingen søgeresultater</text>
+ <text id="IDS_MSGF_BODY_MMS">Mms</text>
+ <text id="IDS_MSGF_BODY_MMSCREATIONMODE">Oprettelsestilstand</text>
+ <text id="IDS_MSGF_BODY_TEXT_MESSAGES">Sms-meddelelser</text>
+ <text id="IDS_MSGF_BODY_RECEIVED">Modtaget</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_MATCH_CRITERIA">Match kriterier</text>
+ <text id="IDS_MSGF_POP_DEFERRED">Udsat</text>
+ <text id="IDS_COM_SK_ADD">Tilføj</text>
+ <text id="IDS_MSGF_OPT_BLOCK">Blokér</text>
+ <text id="IDS_COM_SK_YES">Ja</text>
+ <text id="IDS_MSGC_OPT_VIEW_CONTACT">Vis kontakter</text>
+ <text id="IDS_COM_SK_SEARCH">Søg</text>
+ <text id="IDS_COM_POP_AM_M_ABB">AM</text>
+ <text id="IDS_MSGF_BODY_BLOCKED_WORDS">Blokerede ord</text>
+ <text id="IDS_COM_BODY_SUBJECT">Emne</text>
+ <text id="IDS_MSGF_POP_UNRECOGNISED">Ikke genkendt</text>
+ <text id="IDS_MSGF_BODY_SEND_READ_REPORT">Send læsningsrapport</text>
+ <text id="IDS_MSGF_SK_RESTORE">Gendan</text>
+ <text id="IDS_MSGF_BODY_REQUEST_READ_REPORT">Anmod om læsningsrapport</text>
+ <text id="IDS_MSGF_BODY_ENTER_WORD">Indtast ord</text>
+ <text id="IDS_COM_SK3_COMPOSE">Skriv</text>
+ <text id="IDS_COM_POP_UNKNOWN_ERROR_OCCURRED">Ukendt fejl opstod</text>
+ <text id="IDS_MSGF_BODY_REQUEST_DELIVERY_REPORT">Anmod om leveringsrapport</text>
+ <text id="IDS_MSGF_BODY_INVALID_RECIPIENTS">Ugyldige modtagere</text>
+ <text id="IDS_MSGF_BODY_BROADCASTMESSAGES">Gruppemeddelelser</text>
+ <text id="IDS_MSGF_OPT_SAVE_ATTACHMENT">Gem vedhæftning</text>
+ <text id="IDS_MSGF_BODY_DELIVERY_REPORT">Leveringsrapport</text>
+ <text id="IDS_MSGC_POP_DISCARD_CURRENT_MESSAGE_Q">Annullér aktuel meddelelse?</text>
+ <text id="IDS_COM_POP_ATTACH">Vedhæft</text>
+ <text id="IDS_COM_BODY_CALENDAR">Kalender</text>
+ <text id="IDS_COM_SK_OK">OK</text>
+ <text id="IDS_COM_SK_CALL">Opkald</text>
+ <text id="IDS_MSGC_BODY_CAPTURE_VIDEO">Optag video</text>
+ <text id="IDS_MSG_HEADER_SELECT_RECIPIENT">Vælg modtagere</text>
+</string_table>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201301241731" Dversion="20120315">
+ <text id="IDS_MSGF_HEADER_MESSAGE_DETAILS">Nachrichtendetails</text>
+ <text id="IDS_COM_SK3_PREVIEW">Vorsch.</text>
+ <text id="IDS_COM_BODY_PD_SELECTED">%d ausgewählt</text>
+ <text id="IDS_MSG_BODY_DURATION_MUST_BE_LONGER_THAN_PD_SECONDS">Länge muss mehr als %d Sekunden betragen.</text>
+ <text id="IDS_DB_POP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED_DELETE_SOME_CHARACTERS">Maximale Zeichenanzahl überschritten. Einige Zeichen löschen</text>
+ <text id="IDS_MSGF_BODY_NO_BLOCKED_WORDS">No blocked words</text>
+ <text id="IDS_COM_BODY_SELECT_ALL">Alle auswählen</text>
+ <text id="IDS_MSGF_BODY_NO_SUBJECT">Kein Betreff</text>
+ <text id="IDS_COM_POP_CLOSE">Schließen</text>
+ <text id="IDS_COM_BODY_TO">An</text>
+ <text id="IDS_MSGC_BODY_TAKE_PICTURE">Foto aufnehmen</text>
+ <text id="IDS_COM_POP_DELETE_Q">Löschen?</text>
+ <text id="IDS_MSGC_HEADER_INPUTMODE">Eingabemodus</text>
+ <text id="IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED">Maximale Anzahl an Empfängern (%d) erreicht</text>
+ <text id="IDS_COM_SK_NO">Nein</text>
+ <text id="IDS_COM_BODY_MY_FILES">Eigene Dateien</text>
+ <text id="IDS_MSGF_BODY_COPY_TO_PHONE">Ins Telefon kopieren</text>
+ <text id="IDS_MSGF_BODY_CB_MESSAGES">CB-Nachrichten</text>
+ <text id="IDS_MSGF_BODY_SERVICECENTRE">Dienstzentrale</text>
+ <text id="IDS_COM_BODY_SMS">SMS</text>
+ <text id="IDS_MSGF_POP_SENDING_FAILED_MESSAGE">Nicht gesendete Nachrichten</text>
+ <text id="IDS_COM_POP_SUCCESS">Abgeschlossen</text>
+ <text id="IDS_MSGF_POP_MESSAGES_RECEIVED_FROM_YOUR_CONTACTS_WILL_NOT_BE_BLOCKED_EVEN_IF_THEY_CONTAIN_BLOCKED_NUMBERS">Messages received from your contacts will not be blocked even if they contain blocked numbers</text>
+ <text id="IDS_MSG_SELECT_WORDS">Select words (%d)</text>
+ <text id="IDS_MSGF_BODY_ROAMINGRECEPTION_RESTRICTED">Eingeschränkt</text>
+ <text id="IDS_MSGF_POP_MESSAGES_RECEIVED_FROM_YOUR_CONTACTS_WILL_NOT_BE_BLOCKED_EVEN_IF_THEY_CONTAIN_BLOCKED_WORDS">Nachrichten, die Sie von Ihren Kontakten erhalten, werden nicht blockiert, auch wenn Sie gesperrte Wörter enthalten.</text>
+ <text id="IDS_MSGF_OPT_UNBLOCK">Freigeben</text>
+ <text id="IDS_MSGF_BODY_COPY_MESSAGE_TEXT_ABB">Nachricht kopieren</text>
+ <text id="IDS_MSGF_BODY_READ_REPORT">Lesebericht</text>
+ <text id="IDS_COM_BODY_MESSAGES">Nachrichten</text>
+ <text id="IDS_COM_SK_OPTIONS">Optionen</text>
+ <text id="IDS_COM_SK_DONE">OK</text>
+ <text id="IDS_COM_POP_PM">PM</text>
+ <text id="IDS_COM_BODY_UNKNOWN">Unbekannt</text>
+ <text id="IDS_MSG_BODY_DRAFT_MESSAGES">Nachrichtenentwürfe</text>
+ <text id="IDS_COM_POP_SERVICE_UNAVAILABLE">Service nicht verfügbar</text>
+ <text id="IDS_MSGF_OPT_CREATEMSG_ADD_WORD">Wort hinzufügen</text>
+ <text id="IDS_MSGF_POP_BLOCK_PS_Q">%s sperren?</text>
+ <text id="IDS_MSG_BODY_CHANGE_TEXT_SIZE_USING_THE_VOLUME_KEY">Ändern Sie die Textgröße mithilfe der Lautstärketaste</text>
+ <text id="IDS_COM_POP_NEW_MESSAGE">Neue Nachricht</text>
+ <text id="IDS_MSGF_BODY_SPAM_MESSAGES">Spam-Nachrichten</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_INCLUDE">Enthält</text>
+ <text id="IDS_MSGF_BODY_NO_BLOCKED_NUMBERS">No blocked numbers</text>
+ <text id="IDS_MSGF_BODY_BLOCKED_NUMBERS">Gesperrte Nummern</text>
+ <text id="IDS_MSGF_BODY_SETTINGS_MULTIMEDIAMESSAGE">MMS</text>
+ <text id="IDS_MSGF_BODY_EDIT_WORD">Wort bearbeiten</text>
+ <text id="IDS_MSGF_BODY_EXPIRED">Abgelaufen</text>
+ <text id="IDS_MSGF_BODY_MMSCCCREATIONMODEWARNING">Warnung</text>
+ <text id="IDS_COM_SK_EDIT">Bearbeiten</text>
+ <text id="IDS_COM_POP_FAILED">Fehlgeschlagen</text>
+ <text id="IDS_MSGF_HEADER_DELETE_NUMBER">Nummer löschen</text>
+ <text id="IDS_MSGC_BODY_RECORD_AUDIO">Ton aufzeichnen</text>
+ <text id="IDS_COM_SK_BACK">Zurück</text>
+ <text id="IDS_MSGF_BODY_UNICODE">Unicode</text>
+ <text id="IDS_MSGF_HEADER_DELETE_WORDS">Wörter löschen</text>
+ <text id="IDS_COM_BODY_FORWARD">Weiterleiten</text>
+ <text id="IDS_MSGF_POP_NOMESSAGES">Keine Nachrichten</text>
+ <text id="IDS_MSGF_OPT_ROAM_NETWORK">Fremdnetz</text>
+ <text id="IDS_MSGF_BODY_FROM">Von</text>
+ <text id="IDS_COM_SK_DELETE">Löschen</text>
+ <text id="IDS_MSGF_SK3_UNREAD">Unge-\nlesen</text>
+ <text id="IDS_MSGC_BODY_DUPLICATED_RECIPIENT">Doppelter Empfänger</text>
+ <text id="IDS_MSGF_BODY_GSM_ALPHABET">GSM-Alphabet</text>
+ <text id="IDS_MSGF_BODY_SIM_CARD_MESSAGES">SIM-Karten-Nachrichten</text>
+ <text id="IDS_MSGF_BODY_MMSNOTIMSGSTATUSSENT">Gesendet</text>
+ <text id="IDS_COM_BODY_CONTACTS">Kontakte</text>
+ <text id="IDS_MSGF_OPT_STATUS">Status</text>
+ <text id="IDS_MSGF_BODY_MMSCCCREATIONMODEFREE">Frei</text>
+ <text id="IDS_COM_BODY_DETAILS_TYPE">Typ</text>
+ <text id="IDS_MSGF_BODY_AUTODOWNLOAD">Automatisch herunterladen</text>
+ <text id="IDS_MSGF_SK_RESEND">Erneut senden</text>
+ <text id="IDS_COM_SK_CANCEL">Abbrechen</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONS">Empfangsoptionen</text>
+ <text id="IDS_COM_BODY_GALLERY">Galerie</text>
+ <text id="IDS_MSGC_BUTTON2_DURATION_N_HPD_SECS">Dauer:\n(%d Sek.)</text>
+ <text id="IDS_COM_BODY_SEARCH">Suche</text>
+ <text id="IDS_MSGF_HEADER_MESSAGE_BOXES">Nachrichtenkästchen</text>
+ <text id="IDS_MSGF_HEADER_ADD_NUMBER">Nummer hinzufügen</text>
+ <text id="IDS_COM_BODY_MEMO">Memo</text>
+ <text id="IDS_MSGF_BODY_COPY_TO_SIM">Auf die SIM-Karte kopieren</text>
+ <text id="IDS_MSGF_BODY_ENTER_NUMBER">Nummer eingeben</text>
+ <text id="IDS_COM_OPT_ADD_CONTACT">Kontakt hinzufügen</text>
+ <text id="IDS_MSGF_OPT_HOME_NETWORK">Heimatnetz</text>
+ <text id="IDS_COM_POP_REJECTED">Abgelehnt</text>
+ <text id="IDS_COM_BODY_SETTINGS">Einstellungen</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_START_WITH">Beginnt mit</text>
+ <text id="IDS_COM_BODY_DISPLAY">Anzeige</text>
+ <text id="IDS_MSGF_OPT_PROTECTION_ON">Schutz an</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONNETWORK_MANUAL">Manuell</text>
+ <text id="IDS_SLCD_POP_TEXT_SIM_CARD_ERROR">SIM-Kartenfehler</text>
+ <text id="IDS_COM_POP_DELETED">Gelöscht</text>
+ <text id="IDS_COM_SK_SEND_ABB">Senden</text>
+ <text id="IDS_MSGF_POP_FORWARDED">Weitergeleitet</text>
+ <text id="IDS_MSG_SELECT_NUMBERS">Select numbers (%d)</text>
+ <text id="IDS_MSGF_BODY_CENTRE_PD">Zentrale %d</text>
+ <text id="IDS_MSGF_HEADER_EDIT_NUMBER">Nummer bearbeiten</text>
+ <text id="IDS_MSGF_BODY_AUTOMATIC">Automatisch</text>
+ <text id="IDS_MSGF_BODY_VIEW_MESSAGE_DETAILS_ABB">Details anzeigen</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONNETWORK_REJECT">Ablehnen</text>
+ <text id="IDS_COM_BODY_VOICE_CALL">Sprachanruf</text>
+ <text id="IDS_MSG_MBODY_USE_THE_VOLUME_KEY">Lautstärketaste verwenden</text>
+ <text id="IDS_COM_SK_SAVE">Speichern</text>
+ <text id="IDS_MSGF_BODY_INVALID_SERVICE_CENTRE_ADDRESS">Invalid service centre address</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_EXACTLY_THE_SAME_AS">Identisch mit</text>
+ <text id="IDS_COM_BODY_NO_SEARCH_RESULTS">Keine Suchergebnisse</text>
+ <text id="IDS_MSGF_BODY_MMS">MMS</text>
+ <text id="IDS_MSGF_BODY_MMSCREATIONMODE">Erstellungsmodus</text>
+ <text id="IDS_MSGF_BODY_TEXT_MESSAGES">SMS</text>
+ <text id="IDS_MSGF_BODY_RECEIVED">Empfangen</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_MATCH_CRITERIA">Passende Kriterien</text>
+ <text id="IDS_MSGF_POP_DEFERRED">Zurückgestellt</text>
+ <text id="IDS_COM_SK_ADD">Hinzufügen</text>
+ <text id="IDS_MSGF_OPT_BLOCK">Sperren</text>
+ <text id="IDS_COM_SK_YES">Ja</text>
+ <text id="IDS_MSGC_OPT_VIEW_CONTACT">Kontakte anzeigen</text>
+ <text id="IDS_COM_SK_SEARCH">Suche</text>
+ <text id="IDS_COM_POP_AM_M_ABB">AM</text>
+ <text id="IDS_MSGF_BODY_BLOCKED_WORDS">Gesperrte Wörter</text>
+ <text id="IDS_COM_BODY_SUBJECT">Betreff</text>
+ <text id="IDS_MSGF_POP_UNRECOGNISED">Nicht erkannt</text>
+ <text id="IDS_MSGF_BODY_SEND_READ_REPORT">Lesebericht senden</text>
+ <text id="IDS_MSGF_SK_RESTORE">Wiederherstellen</text>
+ <text id="IDS_MSGF_BODY_REQUEST_READ_REPORT">Lesebericht anfordern</text>
+ <text id="IDS_MSGF_BODY_ENTER_WORD">Wort eingeben</text>
+ <text id="IDS_COM_SK3_COMPOSE">Verfass.</text>
+ <text id="IDS_COM_POP_UNKNOWN_ERROR_OCCURRED">Unbekannter Fehler aufgetreten</text>
+ <text id="IDS_MSGF_BODY_REQUEST_DELIVERY_REPORT">Zustellbericht anfordern</text>
+ <text id="IDS_MSGF_BODY_INVALID_RECIPIENTS">Ungültige Empfänger</text>
+ <text id="IDS_MSGF_BODY_BROADCASTMESSAGES">Infomeldungen</text>
+ <text id="IDS_MSGF_OPT_SAVE_ATTACHMENT">Anhang speichern</text>
+ <text id="IDS_MSGF_BODY_DELIVERY_REPORT">Zustellbericht</text>
+ <text id="IDS_MSGC_POP_DISCARD_CURRENT_MESSAGE_Q">Aktuelle Nachricht verwerfen?</text>
+ <text id="IDS_COM_POP_ATTACH">Anhängen</text>
+ <text id="IDS_COM_BODY_CALENDAR">Kalender</text>
+ <text id="IDS_COM_SK_OK">OK</text>
+ <text id="IDS_COM_SK_CALL">Anruf</text>
+ <text id="IDS_MSGC_BODY_CAPTURE_VIDEO">Video aufnehmen</text>
+ <text id="IDS_MSG_HEADER_SELECT_RECIPIENT">Empfänger auswählen</text>
+</string_table>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201301241731" Dversion="20120315">
+ <text id="IDS_MSGF_HEADER_MESSAGE_DETAILS">Στοιχεία μηνύματος</text>
+ <text id="IDS_COM_SK3_PREVIEW">Προεπ.</text>
+ <text id="IDS_COM_BODY_PD_SELECTED">%d επιλέχθηκαν</text>
+ <text id="IDS_MSG_BODY_DURATION_MUST_BE_LONGER_THAN_PD_SECONDS">Η διάρκεια πρέπει να είναι μεγαλύτερη από %d δευτερόλεπτα</text>
+ <text id="IDS_DB_POP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED_DELETE_SOME_CHARACTERS">Έγινε υπέρβαση του μέγιστου αριθμού χαρακτήρων. Διαγραφή ορισμένων χαρακτήρων</text>
+ <text id="IDS_MSGF_BODY_NO_BLOCKED_WORDS">No blocked words</text>
+ <text id="IDS_COM_BODY_SELECT_ALL">Επιλογή όλων</text>
+ <text id="IDS_MSGF_BODY_NO_SUBJECT">Χωρίς θέμα</text>
+ <text id="IDS_COM_POP_CLOSE">Κλείσιμο</text>
+ <text id="IDS_COM_BODY_TO">Προς</text>
+ <text id="IDS_MSGC_BODY_TAKE_PICTURE">Λήψη φωτογραφίας</text>
+ <text id="IDS_COM_POP_DELETE_Q">Διαγραφή;</text>
+ <text id="IDS_MSGC_HEADER_INPUTMODE">εισαγωγή λειτουργίας</text>
+ <text id="IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED">Συμπληρώθηκε ο μέγιστος αριθμός παραληπτών (%d)</text>
+ <text id="IDS_COM_SK_NO">Όχι</text>
+ <text id="IDS_COM_BODY_MY_FILES">Τα Αρχεία Μου</text>
+ <text id="IDS_MSGF_BODY_COPY_TO_PHONE">Αντιγραφή στο τηλέφωνο</text>
+ <text id="IDS_MSGF_BODY_CB_MESSAGES">Μηνύματα εκπομπής κυψέλης</text>
+ <text id="IDS_MSGF_BODY_SERVICECENTRE">Κέντρο υπηρεσίας</text>
+ <text id="IDS_COM_BODY_SMS">SMS</text>
+ <text id="IDS_MSGF_POP_SENDING_FAILED_MESSAGE">Αποστολή μηνύματος αποτυχίας</text>
+ <text id="IDS_COM_POP_SUCCESS">Ολοκληρώθηκε</text>
+ <text id="IDS_MSGF_POP_MESSAGES_RECEIVED_FROM_YOUR_CONTACTS_WILL_NOT_BE_BLOCKED_EVEN_IF_THEY_CONTAIN_BLOCKED_NUMBERS">Messages received from your contacts will not be blocked even if they contain blocked numbers</text>
+ <text id="IDS_MSG_SELECT_WORDS">Select words (%d)</text>
+ <text id="IDS_MSGF_BODY_ROAMINGRECEPTION_RESTRICTED">Περιορισμός</text>
+ <text id="IDS_MSGF_POP_MESSAGES_RECEIVED_FROM_YOUR_CONTACTS_WILL_NOT_BE_BLOCKED_EVEN_IF_THEY_CONTAIN_BLOCKED_WORDS">Τα μηνύματα που λαμβάνετε από τις επαφές σας δεν θα αποκλείονται, ακόμα και αν περιλαμβάνουν απαγορευμένες λέξεις</text>
+ <text id="IDS_MSGF_OPT_UNBLOCK">Ακύρωση αποκλεισμού</text>
+ <text id="IDS_MSGF_BODY_COPY_MESSAGE_TEXT_ABB">Αντιγρ. κειμέν. μηνυμ.</text>
+ <text id="IDS_MSGF_BODY_READ_REPORT">Αναφορά ανάγνωσης</text>
+ <text id="IDS_COM_BODY_MESSAGES">Μηνύματα</text>
+ <text id="IDS_COM_SK_OPTIONS">Επιλογ.</text>
+ <text id="IDS_COM_SK_DONE">Ok</text>
+ <text id="IDS_COM_POP_PM">ΜΜ</text>
+ <text id="IDS_COM_BODY_UNKNOWN">Άγνωστο</text>
+ <text id="IDS_MSG_BODY_DRAFT_MESSAGES">Πρόχειρα μηνύματα</text>
+ <text id="IDS_COM_POP_SERVICE_UNAVAILABLE">Μη διαθέσιμη λειτουργία</text>
+ <text id="IDS_MSGF_OPT_CREATEMSG_ADD_WORD">Προσθήκη λέξης</text>
+ <text id="IDS_MSGF_POP_BLOCK_PS_Q">Αποκλεισμός του %s;</text>
+ <text id="IDS_MSG_BODY_CHANGE_TEXT_SIZE_USING_THE_VOLUME_KEY">Αλλάξτε το μέγεθος του κειμένου με το πλήκτρο έντασης</text>
+ <text id="IDS_COM_POP_NEW_MESSAGE">Νέο μήνυμα</text>
+ <text id="IDS_MSGF_BODY_SPAM_MESSAGES">Ανεπιθύμητα μηνύματα</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_INCLUDE">Να συμπεριληφθεί</text>
+ <text id="IDS_MSGF_BODY_NO_BLOCKED_NUMBERS">No blocked numbers</text>
+ <text id="IDS_MSGF_BODY_BLOCKED_NUMBERS">Απαγορευμένοι αριθμοί</text>
+ <text id="IDS_MSGF_BODY_SETTINGS_MULTIMEDIAMESSAGE">MMS</text>
+ <text id="IDS_MSGF_BODY_EDIT_WORD">Επεξεργασία λέξης</text>
+ <text id="IDS_MSGF_BODY_EXPIRED">Έληξε</text>
+ <text id="IDS_MSGF_BODY_MMSCCCREATIONMODEWARNING">Προειδοποίηση</text>
+ <text id="IDS_COM_SK_EDIT">Επεξεργ.</text>
+ <text id="IDS_COM_POP_FAILED">Αποτυχία</text>
+ <text id="IDS_MSGF_HEADER_DELETE_NUMBER">Διαγραφή αριθμού</text>
+ <text id="IDS_MSGC_BODY_RECORD_AUDIO">Ηχογράφηση</text>
+ <text id="IDS_COM_SK_BACK">Πίσω</text>
+ <text id="IDS_MSGF_BODY_UNICODE">Unicode</text>
+ <text id="IDS_MSGF_HEADER_DELETE_WORDS">Διαγραφή λέξεων</text>
+ <text id="IDS_COM_BODY_FORWARD">Προώθηση</text>
+ <text id="IDS_MSGF_POP_NOMESSAGES">Κανένα μήνυμα</text>
+ <text id="IDS_MSGF_OPT_ROAM_NETWORK">Δίκτυο περιαγωγής</text>
+ <text id="IDS_MSGF_BODY_FROM">Από</text>
+ <text id="IDS_COM_SK_DELETE">Διαγραφή</text>
+ <text id="IDS_MSGF_SK3_UNREAD">Μη αναγνωσμένο</text>
+ <text id="IDS_MSGC_BODY_DUPLICATED_RECIPIENT">Διπλότυπος παραλήπτης</text>
+ <text id="IDS_MSGF_BODY_GSM_ALPHABET">Αλφάβητο GSM</text>
+ <text id="IDS_MSGF_BODY_SIM_CARD_MESSAGES">Μηνύματα κάρτας SIM</text>
+ <text id="IDS_MSGF_BODY_MMSNOTIMSGSTATUSSENT">Εστάλη</text>
+ <text id="IDS_COM_BODY_CONTACTS">Επαφές</text>
+ <text id="IDS_MSGF_OPT_STATUS">Κατάσταση</text>
+ <text id="IDS_MSGF_BODY_MMSCCCREATIONMODEFREE">Ελεύθερο</text>
+ <text id="IDS_COM_BODY_DETAILS_TYPE">Τύπος</text>
+ <text id="IDS_MSGF_BODY_AUTODOWNLOAD">Αυτόματη λήψη</text>
+ <text id="IDS_MSGF_SK_RESEND">Επανάληψη αποστολής</text>
+ <text id="IDS_COM_SK_CANCEL">Άκυρο</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONS">Επιλογές λήψης</text>
+ <text id="IDS_COM_BODY_GALLERY">Συλλογή</text>
+ <text id="IDS_MSGC_BUTTON2_DURATION_N_HPD_SECS">Διάρκεια\n(%d δευτ.)</text>
+ <text id="IDS_COM_BODY_SEARCH">Αναζήτηση</text>
+ <text id="IDS_MSGF_HEADER_MESSAGE_BOXES">Φάκελοι μηνυμάτων</text>
+ <text id="IDS_MSGF_HEADER_ADD_NUMBER">Προσθήκη αριθμού</text>
+ <text id="IDS_COM_BODY_MEMO">Σημείωση</text>
+ <text id="IDS_MSGF_BODY_COPY_TO_SIM">Αντιγραφή στη SIM</text>
+ <text id="IDS_MSGF_BODY_ENTER_NUMBER">Εισαγωγή αριθμού</text>
+ <text id="IDS_COM_OPT_ADD_CONTACT">Προσθήκη επαφής</text>
+ <text id="IDS_MSGF_OPT_HOME_NETWORK">Οικείο δίκτυο</text>
+ <text id="IDS_COM_POP_REJECTED">Απόρριψη</text>
+ <text id="IDS_COM_BODY_SETTINGS">Ρυθμίσεις</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_START_WITH">Αρχίζει από</text>
+ <text id="IDS_COM_BODY_DISPLAY">Εμφάνιση</text>
+ <text id="IDS_MSGF_OPT_PROTECTION_ON">Προστασία ενεργή</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONNETWORK_MANUAL">Χειροκίνητα</text>
+ <text id="IDS_SLCD_POP_TEXT_SIM_CARD_ERROR">Αποτυχία κάρτας SIM</text>
+ <text id="IDS_COM_POP_DELETED">Διαγράφηκε</text>
+ <text id="IDS_COM_SK_SEND_ABB">Αποστ</text>
+ <text id="IDS_MSGF_POP_FORWARDED">Προωθήθηκε</text>
+ <text id="IDS_MSG_SELECT_NUMBERS">Select numbers (%d)</text>
+ <text id="IDS_MSGF_BODY_CENTRE_PD">Κέντρο %d</text>
+ <text id="IDS_MSGF_HEADER_EDIT_NUMBER">Επεξεργασία αριθμού</text>
+ <text id="IDS_MSGF_BODY_AUTOMATIC">Αυτόματo</text>
+ <text id="IDS_MSGF_BODY_VIEW_MESSAGE_DETAILS_ABB">Προβολ.στοιχ.μηνύμ.</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONNETWORK_REJECT">Απόρριψη</text>
+ <text id="IDS_COM_BODY_VOICE_CALL">Φωνητική κλήση</text>
+ <text id="IDS_MSG_MBODY_USE_THE_VOLUME_KEY">Χρήση πλήκτρου έντασης</text>
+ <text id="IDS_COM_SK_SAVE">Αποθ/ση</text>
+ <text id="IDS_MSGF_BODY_INVALID_SERVICE_CENTRE_ADDRESS">Invalid service centre address</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_EXACTLY_THE_SAME_AS">Ακριβώς ίδιο με</text>
+ <text id="IDS_COM_BODY_NO_SEARCH_RESULTS">Δεν υπάρχουν αποτελέσματα αναζήτησης</text>
+ <text id="IDS_MSGF_BODY_MMS">MMS</text>
+ <text id="IDS_MSGF_BODY_MMSCREATIONMODE">Λειτουργία δημιουργίας</text>
+ <text id="IDS_MSGF_BODY_TEXT_MESSAGES">SMS</text>
+ <text id="IDS_MSGF_BODY_RECEIVED">Ελήφθη</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_MATCH_CRITERIA">Αντιστοίχιση κριτηρίων</text>
+ <text id="IDS_MSGF_POP_DEFERRED">Αναβλήθηκε</text>
+ <text id="IDS_COM_SK_ADD">Προσθήκη</text>
+ <text id="IDS_MSGF_OPT_BLOCK">Αποκλεισμός</text>
+ <text id="IDS_COM_SK_YES">Ναι</text>
+ <text id="IDS_MSGC_OPT_VIEW_CONTACT">Προβολή επαφών</text>
+ <text id="IDS_COM_SK_SEARCH">Αναζήτηση</text>
+ <text id="IDS_COM_POP_AM_M_ABB">ΠΜ</text>
+ <text id="IDS_MSGF_BODY_BLOCKED_WORDS">Απαγορευμένες λέξεις</text>
+ <text id="IDS_COM_BODY_SUBJECT">Θέμα</text>
+ <text id="IDS_MSGF_POP_UNRECOGNISED">Δεν αναγνωρίζεται</text>
+ <text id="IDS_MSGF_BODY_SEND_READ_REPORT">Αποστολή αναφοράς ανάγνωσης</text>
+ <text id="IDS_MSGF_SK_RESTORE">Επαναφορά</text>
+ <text id="IDS_MSGF_BODY_REQUEST_READ_REPORT">Αίτηση αναφ. ανάγνωσης</text>
+ <text id="IDS_MSGF_BODY_ENTER_WORD">Εισάγετε λέξη</text>
+ <text id="IDS_COM_SK3_COMPOSE">Σύνταξη</text>
+ <text id="IDS_COM_POP_UNKNOWN_ERROR_OCCURRED">Παρουσιάστηκε άγνωστο σφάλμα</text>
+ <text id="IDS_MSGF_BODY_REQUEST_DELIVERY_REPORT">Αίτηση αναφοράς παράδοσης</text>
+ <text id="IDS_MSGF_BODY_INVALID_RECIPIENTS">Μη έγκυροι παραλήπτες</text>
+ <text id="IDS_MSGF_BODY_BROADCASTMESSAGES">Μηνύματα εκπομπής κυψέλης</text>
+ <text id="IDS_MSGF_OPT_SAVE_ATTACHMENT">Αποθήκευση συνημμένου</text>
+ <text id="IDS_MSGF_BODY_DELIVERY_REPORT">Αναφορά παράδοσης</text>
+ <text id="IDS_MSGC_POP_DISCARD_CURRENT_MESSAGE_Q">Να απορριφθεί το τρέχον μήνυμα;</text>
+ <text id="IDS_COM_POP_ATTACH">Επισύναψη</text>
+ <text id="IDS_COM_BODY_CALENDAR">Ημερολόγιο</text>
+ <text id="IDS_COM_SK_OK">OK</text>
+ <text id="IDS_COM_SK_CALL">Κλήση</text>
+ <text id="IDS_MSGC_BODY_CAPTURE_VIDEO">Λήψη βίντεο</text>
+ <text id="IDS_MSG_HEADER_SELECT_RECIPIENT">Επιλογή παραλήπτη</text>
+</string_table>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201301241731" Dversion="20120315">
+ <text id="IDS_MSGF_HEADER_MESSAGE_DETAILS">Message details</text>
+ <text id="IDS_COM_SK3_PREVIEW">Preview</text>
+ <text id="IDS_COM_BODY_PD_SELECTED">%d selected</text>
+ <text id="IDS_MSG_BODY_DURATION_MUST_BE_LONGER_THAN_PD_SECONDS">Duration must be longer than %d seconds</text>
+ <text id="IDS_DB_POP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED_DELETE_SOME_CHARACTERS">Maximum number of characters exceeded. Delete some characters</text>
+ <text id="IDS_MSGF_BODY_NO_BLOCKED_WORDS">No blocked words</text>
+ <text id="IDS_COM_BODY_SELECT_ALL">Select all</text>
+ <text id="IDS_MSGF_BODY_NO_SUBJECT">No subject</text>
+ <text id="IDS_COM_POP_CLOSE">Close</text>
+ <text id="IDS_COM_BODY_TO">To</text>
+ <text id="IDS_MSGC_BODY_TAKE_PICTURE">Take picture</text>
+ <text id="IDS_COM_POP_DELETE_Q">Delete?</text>
+ <text id="IDS_MSGC_HEADER_INPUTMODE">Input mode</text>
+ <text id="IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED">Maximum number of recipients (%d) reached</text>
+ <text id="IDS_COM_SK_NO">No</text>
+ <text id="IDS_COM_BODY_MY_FILES">My Files</text>
+ <text id="IDS_MSGF_BODY_COPY_TO_PHONE">Copy to phone</text>
+ <text id="IDS_MSGF_BODY_CB_MESSAGES">CB messages</text>
+ <text id="IDS_MSGF_BODY_SERVICECENTRE">Service centre</text>
+ <text id="IDS_COM_BODY_SMS">SMS</text>
+ <text id="IDS_MSGF_POP_SENDING_FAILED_MESSAGE">Sending failed message</text>
+ <text id="IDS_COM_POP_SUCCESS">Success</text>
+ <text id="IDS_MSGF_POP_MESSAGES_RECEIVED_FROM_YOUR_CONTACTS_WILL_NOT_BE_BLOCKED_EVEN_IF_THEY_CONTAIN_BLOCKED_NUMBERS">Messages received from your contacts will not be blocked even if they contain blocked numbers</text>
+ <text id="IDS_MSG_SELECT_WORDS">Select words (%d)</text>
+ <text id="IDS_MSGF_BODY_ROAMINGRECEPTION_RESTRICTED">Restricted</text>
+ <text id="IDS_MSGF_POP_MESSAGES_RECEIVED_FROM_YOUR_CONTACTS_WILL_NOT_BE_BLOCKED_EVEN_IF_THEY_CONTAIN_BLOCKED_WORDS">Messages received from your contacts will not be blocked even if they contain blocked words</text>
+ <text id="IDS_MSGF_OPT_UNBLOCK">Unblock</text>
+ <text id="IDS_MSGF_BODY_COPY_MESSAGE_TEXT_ABB">Copy message text</text>
+ <text id="IDS_MSGF_BODY_READ_REPORT">Read report</text>
+ <text id="IDS_COM_BODY_MESSAGES">Messages</text>
+ <text id="IDS_COM_SK_OPTIONS">Options</text>
+ <text id="IDS_COM_SK_DONE">Done</text>
+ <text id="IDS_COM_POP_PM">PM</text>
+ <text id="IDS_COM_BODY_UNKNOWN">Unknown</text>
+ <text id="IDS_MSG_BODY_DRAFT_MESSAGES">Draft messages</text>
+ <text id="IDS_COM_POP_SERVICE_UNAVAILABLE">Service not available</text>
+ <text id="IDS_MSGF_OPT_CREATEMSG_ADD_WORD">Add word</text>
+ <text id="IDS_MSGF_POP_BLOCK_PS_Q">Block %s?</text>
+ <text id="IDS_MSG_BODY_CHANGE_TEXT_SIZE_USING_THE_VOLUME_KEY">Change text size using the volume key</text>
+ <text id="IDS_COM_POP_NEW_MESSAGE">New message</text>
+ <text id="IDS_MSGF_BODY_SPAM_MESSAGES">Spam messages</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_INCLUDE">Include</text>
+ <text id="IDS_MSGF_BODY_NO_BLOCKED_NUMBERS">No blocked numbers</text>
+ <text id="IDS_MSGF_BODY_BLOCKED_NUMBERS">Blocked numbers</text>
+ <text id="IDS_MSGF_BODY_SETTINGS_MULTIMEDIAMESSAGE">Multimedia messages</text>
+ <text id="IDS_MSGF_BODY_EDIT_WORD">Edit word</text>
+ <text id="IDS_MSGF_BODY_EXPIRED">Expired</text>
+ <text id="IDS_MSGF_BODY_MMSCCCREATIONMODEWARNING">Warning</text>
+ <text id="IDS_COM_SK_EDIT">Edit</text>
+ <text id="IDS_COM_POP_FAILED">Failed</text>
+ <text id="IDS_MSGF_HEADER_DELETE_NUMBER">Delete number</text>
+ <text id="IDS_MSGC_BODY_RECORD_AUDIO">Record audio</text>
+ <text id="IDS_COM_SK_BACK">Back</text>
+ <text id="IDS_MSGF_BODY_UNICODE">Unicode</text>
+ <text id="IDS_MSGF_HEADER_DELETE_WORDS">Delete words</text>
+ <text id="IDS_COM_BODY_FORWARD">Forward</text>
+ <text id="IDS_MSGF_POP_NOMESSAGES">No messages</text>
+ <text id="IDS_MSGF_OPT_ROAM_NETWORK">Foreign network</text>
+ <text id="IDS_MSGF_BODY_FROM">From</text>
+ <text id="IDS_COM_SK_DELETE">Delete</text>
+ <text id="IDS_MSGF_SK3_UNREAD">Unread</text>
+ <text id="IDS_MSGC_BODY_DUPLICATED_RECIPIENT">Duplicated recipient</text>
+ <text id="IDS_MSGF_BODY_GSM_ALPHABET">GSM alphabet</text>
+ <text id="IDS_MSGF_BODY_SIM_CARD_MESSAGES">SIM card messages</text>
+ <text id="IDS_MSGF_BODY_MMSNOTIMSGSTATUSSENT">Sent</text>
+ <text id="IDS_COM_BODY_CONTACTS">Contacts</text>
+ <text id="IDS_MSGF_OPT_STATUS">Status</text>
+ <text id="IDS_MSGF_BODY_MMSCCCREATIONMODEFREE">Free</text>
+ <text id="IDS_COM_BODY_DETAILS_TYPE">Type</text>
+ <text id="IDS_MSGF_BODY_AUTODOWNLOAD">Auto download</text>
+ <text id="IDS_MSGF_SK_RESEND">Resend</text>
+ <text id="IDS_COM_SK_CANCEL">Cancel</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONS">Receiving options</text>
+ <text id="IDS_COM_BODY_GALLERY">Gallery</text>
+ <text id="IDS_MSGC_BUTTON2_DURATION_N_HPD_SECS">Duration\n(%d secs)</text>
+ <text id="IDS_COM_BODY_SEARCH">Search</text>
+ <text id="IDS_MSGF_HEADER_MESSAGE_BOXES">Message boxes</text>
+ <text id="IDS_MSGF_HEADER_ADD_NUMBER">Add number</text>
+ <text id="IDS_COM_BODY_MEMO">Memo</text>
+ <text id="IDS_MSGF_BODY_COPY_TO_SIM">Copy to SIM</text>
+ <text id="IDS_MSGF_BODY_ENTER_NUMBER">Enter number</text>
+ <text id="IDS_COM_OPT_ADD_CONTACT">Add contact</text>
+ <text id="IDS_MSGF_OPT_HOME_NETWORK">Home network</text>
+ <text id="IDS_COM_POP_REJECTED">Rejected</text>
+ <text id="IDS_COM_BODY_SETTINGS">Settings</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_START_WITH">Start with</text>
+ <text id="IDS_COM_BODY_DISPLAY">Display</text>
+ <text id="IDS_MSGF_OPT_PROTECTION_ON">Protection on</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONNETWORK_MANUAL">Manual</text>
+ <text id="IDS_SLCD_POP_TEXT_SIM_CARD_ERROR">SIM card not available</text>
+ <text id="IDS_COM_POP_DELETED">Deleted</text>
+ <text id="IDS_COM_SK_SEND_ABB">Send</text>
+ <text id="IDS_MSGF_POP_FORWARDED">Forwarded</text>
+ <text id="IDS_MSG_SELECT_NUMBERS">Select numbers (%d)</text>
+ <text id="IDS_MSGF_BODY_CENTRE_PD">Centre %d</text>
+ <text id="IDS_MSGF_HEADER_EDIT_NUMBER">Edit number</text>
+ <text id="IDS_MSGF_BODY_AUTOMATIC">Automatic</text>
+ <text id="IDS_MSGF_BODY_VIEW_MESSAGE_DETAILS_ABB">View message details</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONNETWORK_REJECT">Reject</text>
+ <text id="IDS_COM_BODY_VOICE_CALL">Voice call</text>
+ <text id="IDS_MSG_MBODY_USE_THE_VOLUME_KEY">Use the volume key</text>
+ <text id="IDS_COM_SK_SAVE">Save</text>
+ <text id="IDS_MSGF_BODY_INVALID_SERVICE_CENTRE_ADDRESS">Invalid service centre address</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_EXACTLY_THE_SAME_AS">Exactly the same as</text>
+ <text id="IDS_COM_BODY_NO_SEARCH_RESULTS">No search results</text>
+ <text id="IDS_MSGF_BODY_MMS">MMS</text>
+ <text id="IDS_MSGF_BODY_MMSCREATIONMODE">Creation mode</text>
+ <text id="IDS_MSGF_BODY_TEXT_MESSAGES">Text messages</text>
+ <text id="IDS_MSGF_BODY_RECEIVED">Received</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_MATCH_CRITERIA">Match criteria</text>
+ <text id="IDS_MSGF_POP_DEFERRED">Deferred</text>
+ <text id="IDS_COM_SK_ADD">Add</text>
+ <text id="IDS_MSGF_OPT_BLOCK">Block</text>
+ <text id="IDS_COM_SK_YES">Yes</text>
+ <text id="IDS_MSGC_OPT_VIEW_CONTACT">View contact</text>
+ <text id="IDS_COM_SK_SEARCH">Search</text>
+ <text id="IDS_COM_POP_AM_M_ABB">AM</text>
+ <text id="IDS_MSGF_BODY_BLOCKED_WORDS">Blocked words</text>
+ <text id="IDS_COM_BODY_SUBJECT">Subject</text>
+ <text id="IDS_MSGF_POP_UNRECOGNISED">Unrecognised</text>
+ <text id="IDS_MSGF_BODY_SEND_READ_REPORT">Send read report</text>
+ <text id="IDS_MSGF_SK_RESTORE">Restore</text>
+ <text id="IDS_MSGF_BODY_REQUEST_READ_REPORT">Request read report</text>
+ <text id="IDS_MSGF_BODY_ENTER_WORD">Enter word</text>
+ <text id="IDS_COM_SK3_COMPOSE">Compose</text>
+ <text id="IDS_COM_POP_UNKNOWN_ERROR_OCCURRED">Unknown error occurred</text>
+ <text id="IDS_MSGF_BODY_REQUEST_DELIVERY_REPORT">Request delivery report</text>
+ <text id="IDS_MSGF_BODY_INVALID_RECIPIENTS">Invalid recipients</text>
+ <text id="IDS_MSGF_BODY_BROADCASTMESSAGES">Broadcast messages</text>
+ <text id="IDS_MSGF_OPT_SAVE_ATTACHMENT">Save attachment</text>
+ <text id="IDS_MSGF_BODY_DELIVERY_REPORT">Delivery report</text>
+ <text id="IDS_MSGC_POP_DISCARD_CURRENT_MESSAGE_Q">Discard current message?</text>
+ <text id="IDS_COM_POP_ATTACH">Attach</text>
+ <text id="IDS_COM_BODY_CALENDAR">Calendar</text>
+ <text id="IDS_COM_SK_OK">OK</text>
+ <text id="IDS_COM_SK_CALL">Call</text>
+ <text id="IDS_MSGC_BODY_CAPTURE_VIDEO">Capture video</text>
+ <text id="IDS_MSG_HEADER_SELECT_RECIPIENT">Select recipient</text>
+</string_table>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201301241731" Dversion="20120315">
+ <text id="IDS_MSGF_HEADER_MESSAGE_DETAILS">Message details</text>
+ <text id="IDS_COM_SK3_PREVIEW">Preview</text>
+ <text id="IDS_COM_BODY_PD_SELECTED">%d selected</text>
+ <text id="IDS_MSG_BODY_DURATION_MUST_BE_LONGER_THAN_PD_SECONDS">Duration must be longer than %d seconds</text>
+ <text id="IDS_DB_POP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED_DELETE_SOME_CHARACTERS">Maximum number of characters exceeded. Delete some characters</text>
+ <text id="IDS_MSGF_BODY_NO_BLOCKED_WORDS">No blocked words</text>
+ <text id="IDS_COM_BODY_SELECT_ALL">Select all</text>
+ <text id="IDS_MSGF_BODY_NO_SUBJECT">No subject</text>
+ <text id="IDS_COM_POP_CLOSE">Close</text>
+ <text id="IDS_COM_BODY_TO">To</text>
+ <text id="IDS_MSGC_BODY_TAKE_PICTURE">Take picture</text>
+ <text id="IDS_COM_POP_DELETE_Q">Delete?</text>
+ <text id="IDS_MSGC_HEADER_INPUTMODE">Input mode</text>
+ <text id="IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED">Maximum number of recipients (%d) reached</text>
+ <text id="IDS_COM_SK_NO">No</text>
+ <text id="IDS_COM_BODY_MY_FILES">My Files</text>
+ <text id="IDS_MSGF_BODY_COPY_TO_PHONE">Copy to phone</text>
+ <text id="IDS_MSGF_BODY_CB_MESSAGES">CB messages</text>
+ <text id="IDS_MSGF_BODY_SERVICECENTRE">Service center</text>
+ <text id="IDS_COM_BODY_SMS">SMS</text>
+ <text id="IDS_MSGF_POP_SENDING_FAILED_MESSAGE">Sending failed message</text>
+ <text id="IDS_COM_POP_SUCCESS">Success</text>
+ <text id="IDS_MSGF_POP_MESSAGES_RECEIVED_FROM_YOUR_CONTACTS_WILL_NOT_BE_BLOCKED_EVEN_IF_THEY_CONTAIN_BLOCKED_NUMBERS">Messages received from your contacts will not be blocked even if they contain blocked numbers</text>
+ <text id="IDS_MSG_SELECT_WORDS">Select words (%d)</text>
+ <text id="IDS_MSGF_BODY_ROAMINGRECEPTION_RESTRICTED">Restricted</text>
+ <text id="IDS_MSGF_POP_MESSAGES_RECEIVED_FROM_YOUR_CONTACTS_WILL_NOT_BE_BLOCKED_EVEN_IF_THEY_CONTAIN_BLOCKED_WORDS">If Added words are contained to received message from a person in my phonebook, the message will not be blocked. \nContinue?</text>
+ <text id="IDS_MSGF_OPT_UNBLOCK">Unblock</text>
+ <text id="IDS_MSGF_BODY_COPY_MESSAGE_TEXT_ABB">Copy message text</text>
+ <text id="IDS_MSGF_BODY_READ_REPORT">Read report</text>
+ <text id="IDS_COM_BODY_MESSAGES">Messages</text>
+ <text id="IDS_COM_SK_OPTIONS">Options</text>
+ <text id="IDS_COM_SK_DONE">Done</text>
+ <text id="IDS_COM_POP_PM">PM</text>
+ <text id="IDS_COM_BODY_UNKNOWN">Unknown</text>
+ <text id="IDS_MSG_BODY_DRAFT_MESSAGES">Draft messages</text>
+ <text id="IDS_COM_POP_SERVICE_UNAVAILABLE">Service unavailable</text>
+ <text id="IDS_MSGF_OPT_CREATEMSG_ADD_WORD">Add word</text>
+ <text id="IDS_MSGF_POP_BLOCK_PS_Q">Block %s?</text>
+ <text id="IDS_MSG_BODY_CHANGE_TEXT_SIZE_USING_THE_VOLUME_KEY">Change text size using the volume key</text>
+ <text id="IDS_COM_POP_NEW_MESSAGE">New message</text>
+ <text id="IDS_MSGF_BODY_SPAM_MESSAGES">Spam messages</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_INCLUDE">Include</text>
+ <text id="IDS_MSGF_BODY_NO_BLOCKED_NUMBERS">No blocked numbers</text>
+ <text id="IDS_MSGF_BODY_BLOCKED_NUMBERS">Numbers to reject</text>
+ <text id="IDS_MSGF_BODY_SETTINGS_MULTIMEDIAMESSAGE">Multimedia messages</text>
+ <text id="IDS_MSGF_BODY_EDIT_WORD">Edit word</text>
+ <text id="IDS_MSGF_BODY_EXPIRED">Expired</text>
+ <text id="IDS_MSGF_BODY_MMSCCCREATIONMODEWARNING">Warning</text>
+ <text id="IDS_COM_SK_EDIT">Edit</text>
+ <text id="IDS_COM_POP_FAILED">Failed</text>
+ <text id="IDS_MSGF_HEADER_DELETE_NUMBER">Delete number</text>
+ <text id="IDS_MSGC_BODY_RECORD_AUDIO">Record audio</text>
+ <text id="IDS_COM_SK_BACK">Back</text>
+ <text id="IDS_MSGF_BODY_UNICODE">Unicode</text>
+ <text id="IDS_MSGF_HEADER_DELETE_WORDS">Delete word</text>
+ <text id="IDS_COM_BODY_FORWARD">Forward</text>
+ <text id="IDS_MSGF_POP_NOMESSAGES">No messages</text>
+ <text id="IDS_MSGF_OPT_ROAM_NETWORK">Foreign network</text>
+ <text id="IDS_MSGF_BODY_FROM">From</text>
+ <text id="IDS_COM_SK_DELETE">Delete</text>
+ <text id="IDS_MSGF_SK3_UNREAD">Unread</text>
+ <text id="IDS_MSGC_BODY_DUPLICATED_RECIPIENT">Duplicated recipient</text>
+ <text id="IDS_MSGF_BODY_GSM_ALPHABET">GSM alphabet</text>
+ <text id="IDS_MSGF_BODY_SIM_CARD_MESSAGES">SIM card messages</text>
+ <text id="IDS_MSGF_BODY_MMSNOTIMSGSTATUSSENT">Sent</text>
+ <text id="IDS_COM_BODY_CONTACTS">Contacts</text>
+ <text id="IDS_MSGF_OPT_STATUS">Status</text>
+ <text id="IDS_MSGF_BODY_MMSCCCREATIONMODEFREE">Free</text>
+ <text id="IDS_COM_BODY_DETAILS_TYPE">Type</text>
+ <text id="IDS_MSGF_BODY_AUTODOWNLOAD">Auto download</text>
+ <text id="IDS_MSGF_SK_RESEND">Resend</text>
+ <text id="IDS_COM_SK_CANCEL">Cancel</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONS">Receiving options</text>
+ <text id="IDS_COM_BODY_GALLERY">Gallery</text>
+ <text id="IDS_MSGC_BUTTON2_DURATION_N_HPD_SECS">Duration\n(%d secs)</text>
+ <text id="IDS_COM_BODY_SEARCH">Search</text>
+ <text id="IDS_MSGF_HEADER_MESSAGE_BOXES">Message boxes</text>
+ <text id="IDS_MSGF_HEADER_ADD_NUMBER">Add number</text>
+ <text id="IDS_COM_BODY_MEMO">Memo</text>
+ <text id="IDS_MSGF_BODY_COPY_TO_SIM">Copy to SIM</text>
+ <text id="IDS_MSGF_BODY_ENTER_NUMBER">Enter number</text>
+ <text id="IDS_COM_OPT_ADD_CONTACT">Add contact</text>
+ <text id="IDS_MSGF_OPT_HOME_NETWORK">Home network</text>
+ <text id="IDS_COM_POP_REJECTED">Rejected</text>
+ <text id="IDS_COM_BODY_SETTINGS">Settings</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_START_WITH">Start with</text>
+ <text id="IDS_COM_BODY_DISPLAY">Display</text>
+ <text id="IDS_MSGF_OPT_PROTECTION_ON">Protection on</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONNETWORK_MANUAL">Manual</text>
+ <text id="IDS_SLCD_POP_TEXT_SIM_CARD_ERROR">SIM card unavailable</text>
+ <text id="IDS_COM_POP_DELETED">Deleted</text>
+ <text id="IDS_COM_SK_SEND_ABB">Send</text>
+ <text id="IDS_MSGF_POP_FORWARDED">Forwarded</text>
+ <text id="IDS_MSG_SELECT_NUMBERS">Select numbers (%d)</text>
+ <text id="IDS_MSGF_BODY_CENTRE_PD">Center %d</text>
+ <text id="IDS_MSGF_HEADER_EDIT_NUMBER">Edit number</text>
+ <text id="IDS_MSGF_BODY_AUTOMATIC">Automatic</text>
+ <text id="IDS_MSGF_BODY_VIEW_MESSAGE_DETAILS_ABB">View message details</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONNETWORK_REJECT">Reject</text>
+ <text id="IDS_COM_BODY_VOICE_CALL">Voice call</text>
+ <text id="IDS_MSG_MBODY_USE_THE_VOLUME_KEY">Use the volume key</text>
+ <text id="IDS_COM_SK_SAVE">Save</text>
+ <text id="IDS_MSGF_BODY_INVALID_SERVICE_CENTRE_ADDRESS">Invalid service centre address</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_EXACTLY_THE_SAME_AS">Exactly the same as</text>
+ <text id="IDS_COM_BODY_NO_SEARCH_RESULTS">No search results</text>
+ <text id="IDS_MSGF_BODY_MMS">MMS</text>
+ <text id="IDS_MSGF_BODY_MMSCREATIONMODE">Creation mode</text>
+ <text id="IDS_MSGF_BODY_TEXT_MESSAGES">Text messages</text>
+ <text id="IDS_MSGF_BODY_RECEIVED">Received</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_MATCH_CRITERIA">Match criteria</text>
+ <text id="IDS_MSGF_POP_DEFERRED">Deferred</text>
+ <text id="IDS_COM_SK_ADD">Add</text>
+ <text id="IDS_MSGF_OPT_BLOCK">Block</text>
+ <text id="IDS_COM_SK_YES">Yes</text>
+ <text id="IDS_MSGC_OPT_VIEW_CONTACT">View contact</text>
+ <text id="IDS_COM_SK_SEARCH">Search</text>
+ <text id="IDS_COM_POP_AM_M_ABB">AM</text>
+ <text id="IDS_MSGF_BODY_BLOCKED_WORDS">Blocked word</text>
+ <text id="IDS_COM_BODY_SUBJECT">Subject</text>
+ <text id="IDS_MSGF_POP_UNRECOGNISED">Unrecognized</text>
+ <text id="IDS_MSGF_BODY_SEND_READ_REPORT">Send read report</text>
+ <text id="IDS_MSGF_SK_RESTORE">Restore</text>
+ <text id="IDS_MSGF_BODY_REQUEST_READ_REPORT">Request read report</text>
+ <text id="IDS_MSGF_BODY_ENTER_WORD">Enter word</text>
+ <text id="IDS_COM_SK3_COMPOSE">Compose</text>
+ <text id="IDS_COM_POP_UNKNOWN_ERROR_OCCURRED">Unknown error occurred</text>
+ <text id="IDS_MSGF_BODY_REQUEST_DELIVERY_REPORT">Request delivery report</text>
+ <text id="IDS_MSGF_BODY_INVALID_RECIPIENTS">Invalid recipients</text>
+ <text id="IDS_MSGF_BODY_BROADCASTMESSAGES">Broadcast messages</text>
+ <text id="IDS_MSGF_OPT_SAVE_ATTACHMENT">Save attachment</text>
+ <text id="IDS_MSGF_BODY_DELIVERY_REPORT">Delivery report</text>
+ <text id="IDS_MSGC_POP_DISCARD_CURRENT_MESSAGE_Q">Discard current message?</text>
+ <text id="IDS_COM_POP_ATTACH">Attach</text>
+ <text id="IDS_COM_BODY_CALENDAR">Calendar</text>
+ <text id="IDS_COM_SK_OK">OK</text>
+ <text id="IDS_COM_SK_CALL">Call</text>
+ <text id="IDS_MSGC_BODY_CAPTURE_VIDEO">Capture video</text>
+ <text id="IDS_MSG_HEADER_SELECT_RECIPIENT">Select recipient</text>
+</string_table>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201301241731" Dversion="20120315">
+ <text id="IDS_MSGF_HEADER_MESSAGE_DETAILS">Message details</text>
+ <text id="IDS_COM_SK3_PREVIEW">Preview</text>
+ <text id="IDS_COM_BODY_PD_SELECTED">%d selected</text>
+ <text id="IDS_MSG_BODY_DURATION_MUST_BE_LONGER_THAN_PD_SECONDS">Duration must be longer than %d seconds</text>
+ <text id="IDS_DB_POP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED_DELETE_SOME_CHARACTERS">Maximum number of characters exceeded. Delete some characters</text>
+ <text id="IDS_MSGF_BODY_NO_BLOCKED_WORDS">No blocked words</text>
+ <text id="IDS_COM_BODY_SELECT_ALL">Select all</text>
+ <text id="IDS_MSGF_BODY_NO_SUBJECT">No subject</text>
+ <text id="IDS_COM_POP_CLOSE">Close</text>
+ <text id="IDS_COM_BODY_TO">To</text>
+ <text id="IDS_MSGC_BODY_TAKE_PICTURE">Take picture</text>
+ <text id="IDS_COM_POP_DELETE_Q">Delete?</text>
+ <text id="IDS_MSGC_HEADER_INPUTMODE">Input mode</text>
+ <text id="IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED">Maximum number of recipients (%d) reached</text>
+ <text id="IDS_COM_SK_NO">No</text>
+ <text id="IDS_COM_BODY_MY_FILES">My Files</text>
+ <text id="IDS_MSGF_BODY_COPY_TO_PHONE">Copy to phone</text>
+ <text id="IDS_MSGF_BODY_CB_MESSAGES">CB messages</text>
+ <text id="IDS_MSGF_BODY_SERVICECENTRE">Service center</text>
+ <text id="IDS_COM_BODY_SMS">SMS</text>
+ <text id="IDS_MSGF_POP_SENDING_FAILED_MESSAGE">Sending failed message</text>
+ <text id="IDS_COM_POP_SUCCESS">Success</text>
+ <text id="IDS_MSGF_POP_MESSAGES_RECEIVED_FROM_YOUR_CONTACTS_WILL_NOT_BE_BLOCKED_EVEN_IF_THEY_CONTAIN_BLOCKED_NUMBERS">Messages received from your contacts will not be blocked even if they contain blocked numbers</text>
+ <text id="IDS_MSG_SELECT_WORDS">Select words (%d)</text>
+ <text id="IDS_MSGF_BODY_ROAMINGRECEPTION_RESTRICTED">Restricted</text>
+ <text id="IDS_MSGF_POP_MESSAGES_RECEIVED_FROM_YOUR_CONTACTS_WILL_NOT_BE_BLOCKED_EVEN_IF_THEY_CONTAIN_BLOCKED_WORDS">Messages received from your contacts will not be blocked even if they contain blocked words</text>
+ <text id="IDS_MSGF_OPT_UNBLOCK">Unblock</text>
+ <text id="IDS_MSGF_BODY_COPY_MESSAGE_TEXT_ABB">Copy message text</text>
+ <text id="IDS_MSGF_BODY_READ_REPORT">Read report</text>
+ <text id="IDS_COM_BODY_MESSAGES">Messages</text>
+ <text id="IDS_COM_SK_OPTIONS">Options</text>
+ <text id="IDS_COM_SK_DONE">Done</text>
+ <text id="IDS_COM_POP_PM">PM</text>
+ <text id="IDS_COM_BODY_UNKNOWN">Unknown</text>
+ <text id="IDS_MSG_BODY_DRAFT_MESSAGES">Draft messages</text>
+ <text id="IDS_COM_POP_SERVICE_UNAVAILABLE">Service unavailable</text>
+ <text id="IDS_MSGF_OPT_CREATEMSG_ADD_WORD">Add word</text>
+ <text id="IDS_MSGF_POP_BLOCK_PS_Q">Block %s?</text>
+ <text id="IDS_MSG_BODY_CHANGE_TEXT_SIZE_USING_THE_VOLUME_KEY">Change text size using the volume key</text>
+ <text id="IDS_COM_POP_NEW_MESSAGE">New message</text>
+ <text id="IDS_MSGF_BODY_SPAM_MESSAGES">Spam messages</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_INCLUDE">Include</text>
+ <text id="IDS_MSGF_BODY_NO_BLOCKED_NUMBERS">No blocked numbers</text>
+ <text id="IDS_MSGF_BODY_BLOCKED_NUMBERS">Blocked numbers</text>
+ <text id="IDS_MSGF_BODY_SETTINGS_MULTIMEDIAMESSAGE">Multimedia messages</text>
+ <text id="IDS_MSGF_BODY_EDIT_WORD">Edit word</text>
+ <text id="IDS_MSGF_BODY_EXPIRED">Expired</text>
+ <text id="IDS_MSGF_BODY_MMSCCCREATIONMODEWARNING">Warning</text>
+ <text id="IDS_COM_SK_EDIT">Edit</text>
+ <text id="IDS_COM_POP_FAILED">Failed</text>
+ <text id="IDS_MSGF_HEADER_DELETE_NUMBER">Delete number</text>
+ <text id="IDS_MSGC_BODY_RECORD_AUDIO">Record audio</text>
+ <text id="IDS_COM_SK_BACK">Back</text>
+ <text id="IDS_MSGF_BODY_UNICODE">Unicode</text>
+ <text id="IDS_MSGF_HEADER_DELETE_WORDS">Delete words</text>
+ <text id="IDS_COM_BODY_FORWARD">Forward</text>
+ <text id="IDS_MSGF_POP_NOMESSAGES">No messages</text>
+ <text id="IDS_MSGF_OPT_ROAM_NETWORK">Foreign network</text>
+ <text id="IDS_MSGF_BODY_FROM">From</text>
+ <text id="IDS_COM_SK_DELETE">Delete</text>
+ <text id="IDS_MSGF_SK3_UNREAD">Unread</text>
+ <text id="IDS_MSGC_BODY_DUPLICATED_RECIPIENT">Duplicated recipient</text>
+ <text id="IDS_MSGF_BODY_GSM_ALPHABET">GSM alphabet</text>
+ <text id="IDS_MSGF_BODY_SIM_CARD_MESSAGES">SIM card messages</text>
+ <text id="IDS_MSGF_BODY_MMSNOTIMSGSTATUSSENT">Sent</text>
+ <text id="IDS_COM_BODY_CONTACTS">Contacts</text>
+ <text id="IDS_MSGF_OPT_STATUS">Status</text>
+ <text id="IDS_MSGF_BODY_MMSCCCREATIONMODEFREE">Free</text>
+ <text id="IDS_COM_BODY_DETAILS_TYPE">Type</text>
+ <text id="IDS_MSGF_BODY_AUTODOWNLOAD">Auto download</text>
+ <text id="IDS_MSGF_SK_RESEND">Resend</text>
+ <text id="IDS_COM_SK_CANCEL">Cancel</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONS">Receiving options</text>
+ <text id="IDS_COM_BODY_GALLERY">Gallery</text>
+ <text id="IDS_MSGC_BUTTON2_DURATION_N_HPD_SECS">Duration\n(%d secs)</text>
+ <text id="IDS_COM_BODY_SEARCH">Search</text>
+ <text id="IDS_MSGF_HEADER_MESSAGE_BOXES">Message boxes</text>
+ <text id="IDS_MSGF_HEADER_ADD_NUMBER">Add number</text>
+ <text id="IDS_COM_BODY_MEMO">Memo</text>
+ <text id="IDS_MSGF_BODY_COPY_TO_SIM">Copy to SIM</text>
+ <text id="IDS_MSGF_BODY_ENTER_NUMBER">Enter number</text>
+ <text id="IDS_COM_OPT_ADD_CONTACT">Add contact</text>
+ <text id="IDS_MSGF_OPT_HOME_NETWORK">Home network</text>
+ <text id="IDS_COM_POP_REJECTED">Rejected</text>
+ <text id="IDS_COM_BODY_SETTINGS">Settings</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_START_WITH">Start with</text>
+ <text id="IDS_COM_BODY_DISPLAY">Display</text>
+ <text id="IDS_MSGF_OPT_PROTECTION_ON">Protection on</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONNETWORK_MANUAL">Manual</text>
+ <text id="IDS_SLCD_POP_TEXT_SIM_CARD_ERROR">SIM card unavailable</text>
+ <text id="IDS_COM_POP_DELETED">Deleted</text>
+ <text id="IDS_COM_SK_SEND_ABB">Send</text>
+ <text id="IDS_MSGF_POP_FORWARDED">Forwarded</text>
+ <text id="IDS_MSG_SELECT_NUMBERS">Select numbers (%d)</text>
+ <text id="IDS_MSGF_BODY_CENTRE_PD">Center %d</text>
+ <text id="IDS_MSGF_HEADER_EDIT_NUMBER">Edit number</text>
+ <text id="IDS_MSGF_BODY_AUTOMATIC">Automatic</text>
+ <text id="IDS_MSGF_BODY_VIEW_MESSAGE_DETAILS_ABB">View message details</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONNETWORK_REJECT">Reject</text>
+ <text id="IDS_COM_BODY_VOICE_CALL">Voice call</text>
+ <text id="IDS_MSG_MBODY_USE_THE_VOLUME_KEY">Use the volume key</text>
+ <text id="IDS_COM_SK_SAVE">Save</text>
+ <text id="IDS_MSGF_BODY_INVALID_SERVICE_CENTRE_ADDRESS">Invalid service centre address</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_EXACTLY_THE_SAME_AS">Exactly the same as</text>
+ <text id="IDS_COM_BODY_NO_SEARCH_RESULTS">No search results</text>
+ <text id="IDS_MSGF_BODY_MMS">MMS</text>
+ <text id="IDS_MSGF_BODY_MMSCREATIONMODE">Creation mode</text>
+ <text id="IDS_MSGF_BODY_TEXT_MESSAGES">Text messages</text>
+ <text id="IDS_MSGF_BODY_RECEIVED">Received</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_MATCH_CRITERIA">Match criteria</text>
+ <text id="IDS_MSGF_POP_DEFERRED">Deferred</text>
+ <text id="IDS_COM_SK_ADD">Add</text>
+ <text id="IDS_MSGF_OPT_BLOCK">Block</text>
+ <text id="IDS_COM_SK_YES">Yes</text>
+ <text id="IDS_MSGC_OPT_VIEW_CONTACT">View contact</text>
+ <text id="IDS_COM_SK_SEARCH">Search</text>
+ <text id="IDS_COM_POP_AM_M_ABB">AM</text>
+ <text id="IDS_MSGF_BODY_BLOCKED_WORDS">Blocked words</text>
+ <text id="IDS_COM_BODY_SUBJECT">Subject</text>
+ <text id="IDS_MSGF_POP_UNRECOGNISED">Unrecognized</text>
+ <text id="IDS_MSGF_BODY_SEND_READ_REPORT">Send read report</text>
+ <text id="IDS_MSGF_SK_RESTORE">Restore</text>
+ <text id="IDS_MSGF_BODY_REQUEST_READ_REPORT">Request read report</text>
+ <text id="IDS_MSGF_BODY_ENTER_WORD">Enter word</text>
+ <text id="IDS_COM_SK3_COMPOSE">Compose</text>
+ <text id="IDS_COM_POP_UNKNOWN_ERROR_OCCURRED">Unknown error occurred</text>
+ <text id="IDS_MSGF_BODY_REQUEST_DELIVERY_REPORT">Request delivery report</text>
+ <text id="IDS_MSGF_BODY_INVALID_RECIPIENTS">Invalid recipients</text>
+ <text id="IDS_MSGF_BODY_BROADCASTMESSAGES">Broadcast messages</text>
+ <text id="IDS_MSGF_OPT_SAVE_ATTACHMENT">Save attachment</text>
+ <text id="IDS_MSGF_BODY_DELIVERY_REPORT">Delivery report</text>
+ <text id="IDS_MSGC_POP_DISCARD_CURRENT_MESSAGE_Q">Discard current message?</text>
+ <text id="IDS_COM_POP_ATTACH">Attach</text>
+ <text id="IDS_COM_BODY_CALENDAR">Calendar</text>
+ <text id="IDS_COM_SK_OK">OK</text>
+ <text id="IDS_COM_SK_CALL">Call</text>
+ <text id="IDS_MSGC_BODY_CAPTURE_VIDEO">Capture video</text>
+ <text id="IDS_MSG_HEADER_SELECT_RECIPIENT">Select recipient</text>
+</string_table>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201301241731" Dversion="20120315">
+ <text id="IDS_MSGF_HEADER_MESSAGE_DETAILS">Sõnumi üksikasjad</text>
+ <text id="IDS_COM_SK3_PREVIEW">Eelvaade</text>
+ <text id="IDS_COM_BODY_PD_SELECTED">%d valitud</text>
+ <text id="IDS_MSG_BODY_DURATION_MUST_BE_LONGER_THAN_PD_SECONDS">Kestus peab olema pikem kui %d sekundit</text>
+ <text id="IDS_DB_POP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED_DELETE_SOME_CHARACTERS">Maksimaalne tähemärkide arv ületatud. Kustutage tähemärke</text>
+ <text id="IDS_MSGF_BODY_NO_BLOCKED_WORDS">No blocked words</text>
+ <text id="IDS_COM_BODY_SELECT_ALL">Vali kõik</text>
+ <text id="IDS_MSGF_BODY_NO_SUBJECT">Teema puudub</text>
+ <text id="IDS_COM_POP_CLOSE">Sulge</text>
+ <text id="IDS_COM_BODY_TO">Saaja</text>
+ <text id="IDS_MSGC_BODY_TAKE_PICTURE">Pildista</text>
+ <text id="IDS_COM_POP_DELETE_Q">Kustutada?</text>
+ <text id="IDS_MSGC_HEADER_INPUTMODE">Tekstisisestusrežiim</text>
+ <text id="IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED">Maksimaalne adressaatide arv (%d) on saavutatud</text>
+ <text id="IDS_COM_SK_NO">Ei</text>
+ <text id="IDS_COM_BODY_MY_FILES">Minu Failid</text>
+ <text id="IDS_MSGF_BODY_COPY_TO_PHONE">Kopeeri telefoni</text>
+ <text id="IDS_MSGF_BODY_CB_MESSAGES">Võrguteabesõnumid</text>
+ <text id="IDS_MSGF_BODY_SERVICECENTRE">Teenusekeskus</text>
+ <text id="IDS_COM_BODY_SMS">SMS</text>
+ <text id="IDS_MSGF_POP_SENDING_FAILED_MESSAGE">Nurjunud sõnumi saatmine</text>
+ <text id="IDS_COM_POP_SUCCESS">Õnnestus</text>
+ <text id="IDS_MSGF_POP_MESSAGES_RECEIVED_FROM_YOUR_CONTACTS_WILL_NOT_BE_BLOCKED_EVEN_IF_THEY_CONTAIN_BLOCKED_NUMBERS">Messages received from your contacts will not be blocked even if they contain blocked numbers</text>
+ <text id="IDS_MSG_SELECT_WORDS">Select words (%d)</text>
+ <text id="IDS_MSGF_BODY_ROAMINGRECEPTION_RESTRICTED">Piiratud</text>
+ <text id="IDS_MSGF_POP_MESSAGES_RECEIVED_FROM_YOUR_CONTACTS_WILL_NOT_BE_BLOCKED_EVEN_IF_THEY_CONTAIN_BLOCKED_WORDS">Kontaktidelt saabunud sõnumeid ei blokeerita isegi siis, kui need sisaldavad blokeeritud sõnu</text>
+ <text id="IDS_MSGF_OPT_UNBLOCK">Eemalda blokeering</text>
+ <text id="IDS_MSGF_BODY_COPY_MESSAGE_TEXT_ABB">Kopeeri sõnumi tekst</text>
+ <text id="IDS_MSGF_BODY_READ_REPORT">Loe raportit</text>
+ <text id="IDS_COM_BODY_MESSAGES">Sõnumid</text>
+ <text id="IDS_COM_SK_OPTIONS">Valikud</text>
+ <text id="IDS_COM_SK_DONE">Valmis</text>
+ <text id="IDS_COM_POP_PM">PL</text>
+ <text id="IDS_COM_BODY_UNKNOWN">Tundmatu</text>
+ <text id="IDS_MSG_BODY_DRAFT_MESSAGES">Mustandsõnumid</text>
+ <text id="IDS_COM_POP_SERVICE_UNAVAILABLE">Teenus pole saadaval</text>
+ <text id="IDS_MSGF_OPT_CREATEMSG_ADD_WORD">Lisa sõna</text>
+ <text id="IDS_MSGF_POP_BLOCK_PS_Q">Kas blokeerida sõber %s?</text>
+ <text id="IDS_MSG_BODY_CHANGE_TEXT_SIZE_USING_THE_VOLUME_KEY">Muutke teksti suurust helitugevusnupu abil</text>
+ <text id="IDS_COM_POP_NEW_MESSAGE">Uus sõnum</text>
+ <text id="IDS_MSGF_BODY_SPAM_MESSAGES">Rämpspost</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_INCLUDE">Lisa</text>
+ <text id="IDS_MSGF_BODY_NO_BLOCKED_NUMBERS">No blocked numbers</text>
+ <text id="IDS_MSGF_BODY_BLOCKED_NUMBERS">Blokeeritud numbrid</text>
+ <text id="IDS_MSGF_BODY_SETTINGS_MULTIMEDIAMESSAGE">Multimeediumsõnumid</text>
+ <text id="IDS_MSGF_BODY_EDIT_WORD">Muuda sõna</text>
+ <text id="IDS_MSGF_BODY_EXPIRED">Aegunud</text>
+ <text id="IDS_MSGF_BODY_MMSCCCREATIONMODEWARNING">Hoiatus</text>
+ <text id="IDS_COM_SK_EDIT">Muuda</text>
+ <text id="IDS_COM_POP_FAILED">Nurjus</text>
+ <text id="IDS_MSGF_HEADER_DELETE_NUMBER">Kustuta number</text>
+ <text id="IDS_MSGC_BODY_RECORD_AUDIO">Salvesta heli</text>
+ <text id="IDS_COM_SK_BACK">Tagasi</text>
+ <text id="IDS_MSGF_BODY_UNICODE">Unicode</text>
+ <text id="IDS_MSGF_HEADER_DELETE_WORDS">Kustuta sõnu</text>
+ <text id="IDS_COM_BODY_FORWARD">Edasta</text>
+ <text id="IDS_MSGF_POP_NOMESSAGES">Sõnumid puuduvad</text>
+ <text id="IDS_MSGF_OPT_ROAM_NETWORK">Rändlusvõrk</text>
+ <text id="IDS_MSGF_BODY_FROM">Saatja</text>
+ <text id="IDS_COM_SK_DELETE">Kustuta</text>
+ <text id="IDS_MSGF_SK3_UNREAD">Lugemata</text>
+ <text id="IDS_MSGC_BODY_DUPLICATED_RECIPIENT">Mitu adressaati</text>
+ <text id="IDS_MSGF_BODY_GSM_ALPHABET">GSM-tähestik</text>
+ <text id="IDS_MSGF_BODY_SIM_CARD_MESSAGES">SIM-kaardi sõnumid</text>
+ <text id="IDS_MSGF_BODY_MMSNOTIMSGSTATUSSENT">Saadetud</text>
+ <text id="IDS_COM_BODY_CONTACTS">Kontaktid</text>
+ <text id="IDS_MSGF_OPT_STATUS">Olek</text>
+ <text id="IDS_MSGF_BODY_MMSCCCREATIONMODEFREE">Vaba</text>
+ <text id="IDS_COM_BODY_DETAILS_TYPE">Tüüp</text>
+ <text id="IDS_MSGF_BODY_AUTODOWNLOAD">Automaatne allalaadimine</text>
+ <text id="IDS_MSGF_SK_RESEND">Saada uuesti</text>
+ <text id="IDS_COM_SK_CANCEL">Tühista</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONS">Vastuvõtmise valikud</text>
+ <text id="IDS_COM_BODY_GALLERY">Galerii</text>
+ <text id="IDS_MSGC_BUTTON2_DURATION_N_HPD_SECS">Kestus\n(%d sek)</text>
+ <text id="IDS_COM_BODY_SEARCH">Otsi</text>
+ <text id="IDS_MSGF_HEADER_MESSAGE_BOXES">Sõnumikaustad</text>
+ <text id="IDS_MSGF_HEADER_ADD_NUMBER">Lisa number</text>
+ <text id="IDS_COM_BODY_MEMO">Memo</text>
+ <text id="IDS_MSGF_BODY_COPY_TO_SIM">Kopeeri SIM-kaardile</text>
+ <text id="IDS_MSGF_BODY_ENTER_NUMBER">Sisestage number</text>
+ <text id="IDS_COM_OPT_ADD_CONTACT">Lisa kontakt</text>
+ <text id="IDS_MSGF_OPT_HOME_NETWORK">Koduvõrk</text>
+ <text id="IDS_COM_POP_REJECTED">Keeldutud</text>
+ <text id="IDS_COM_BODY_SETTINGS">Seaded</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_START_WITH">Alusta koos</text>
+ <text id="IDS_COM_BODY_DISPLAY">Ekraan</text>
+ <text id="IDS_MSGF_OPT_PROTECTION_ON">Kaitse sees</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONNETWORK_MANUAL">Käsitsi</text>
+ <text id="IDS_SLCD_POP_TEXT_SIM_CARD_ERROR">SIM-kaardi tõrge</text>
+ <text id="IDS_COM_POP_DELETED">Kustutatud</text>
+ <text id="IDS_COM_SK_SEND_ABB">Saada</text>
+ <text id="IDS_MSGF_POP_FORWARDED">Edastatud</text>
+ <text id="IDS_MSG_SELECT_NUMBERS">Select numbers (%d)</text>
+ <text id="IDS_MSGF_BODY_CENTRE_PD">Keskel %d</text>
+ <text id="IDS_MSGF_HEADER_EDIT_NUMBER">Redigeeri numbrit</text>
+ <text id="IDS_MSGF_BODY_AUTOMATIC">Automaatne</text>
+ <text id="IDS_MSGF_BODY_VIEW_MESSAGE_DETAILS_ABB">Kuva sõnumi detailid</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONNETWORK_REJECT">Keeldu</text>
+ <text id="IDS_COM_BODY_VOICE_CALL">Häälkõne</text>
+ <text id="IDS_MSG_MBODY_USE_THE_VOLUME_KEY">Kasutage helitugevusnuppu</text>
+ <text id="IDS_COM_SK_SAVE">Salvesta</text>
+ <text id="IDS_MSGF_BODY_INVALID_SERVICE_CENTRE_ADDRESS">Invalid service centre address</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_EXACTLY_THE_SAME_AS">Täpselt sama kui</text>
+ <text id="IDS_COM_BODY_NO_SEARCH_RESULTS">Otsingutulemeid pole</text>
+ <text id="IDS_MSGF_BODY_MMS">MMS</text>
+ <text id="IDS_MSGF_BODY_MMSCREATIONMODE">Loomisrežiim</text>
+ <text id="IDS_MSGF_BODY_TEXT_MESSAGES">Tekstsõnumid</text>
+ <text id="IDS_MSGF_BODY_RECEIVED">Vastu võetud</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_MATCH_CRITERIA">Ühita kriteeriumid</text>
+ <text id="IDS_MSGF_POP_DEFERRED">Edasi lükatud</text>
+ <text id="IDS_COM_SK_ADD">Lisa</text>
+ <text id="IDS_MSGF_OPT_BLOCK">Blokeeri</text>
+ <text id="IDS_COM_SK_YES">Jah</text>
+ <text id="IDS_MSGC_OPT_VIEW_CONTACT">Vaata kontakte</text>
+ <text id="IDS_COM_SK_SEARCH">Otsi</text>
+ <text id="IDS_COM_POP_AM_M_ABB">EL</text>
+ <text id="IDS_MSGF_BODY_BLOCKED_WORDS">Blokeeritud sõnad</text>
+ <text id="IDS_COM_BODY_SUBJECT">Teema</text>
+ <text id="IDS_MSGF_POP_UNRECOGNISED">Tundmatu</text>
+ <text id="IDS_MSGF_BODY_SEND_READ_REPORT">Saada lugemisraport</text>
+ <text id="IDS_MSGF_SK_RESTORE">Taasta</text>
+ <text id="IDS_MSGF_BODY_REQUEST_READ_REPORT">Saada lugemisraport</text>
+ <text id="IDS_MSGF_BODY_ENTER_WORD">Sisesta sõna</text>
+ <text id="IDS_COM_SK3_COMPOSE">Koosta</text>
+ <text id="IDS_COM_POP_UNKNOWN_ERROR_OCCURRED">Ilmnes tundmatu tõrge</text>
+ <text id="IDS_MSGF_BODY_REQUEST_DELIVERY_REPORT">Taotle saateraportit</text>
+ <text id="IDS_MSGF_BODY_INVALID_RECIPIENTS">Valed adressaadid</text>
+ <text id="IDS_MSGF_BODY_BROADCASTMESSAGES">Kärjeteated</text>
+ <text id="IDS_MSGF_OPT_SAVE_ATTACHMENT">Salvesta manus</text>
+ <text id="IDS_MSGF_BODY_DELIVERY_REPORT">Kohaletoimetamisraport</text>
+ <text id="IDS_MSGC_POP_DISCARD_CURRENT_MESSAGE_Q">Kas loobuda praegusest sõnumist?</text>
+ <text id="IDS_COM_POP_ATTACH">Manusta</text>
+ <text id="IDS_COM_BODY_CALENDAR">Kalender</text>
+ <text id="IDS_COM_SK_OK">OK</text>
+ <text id="IDS_COM_SK_CALL">Helista</text>
+ <text id="IDS_MSGC_BODY_CAPTURE_VIDEO">Salvesta video</text>
+ <text id="IDS_MSG_HEADER_SELECT_RECIPIENT">Vali adressaat</text>
+</string_table>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201301241731" Dversion="20120315">
+ <text id="IDS_MSGF_HEADER_MESSAGE_DETAILS">Mezuari buruzko xehetasunak</text>
+ <text id="IDS_COM_SK3_PREVIEW">Aurrebista</text>
+ <text id="IDS_COM_BODY_PD_SELECTED">%d aukeratuta</text>
+ <text id="IDS_MSG_BODY_DURATION_MUST_BE_LONGER_THAN_PD_SECONDS">Iraupena %d segundokoa baino luzeagoa izan behar da</text>
+ <text id="IDS_DB_POP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED_DELETE_SOME_CHARACTERS">Gehienezko karaktere kopurua gainditua. Karaktere batzuk ezabatu</text>
+ <text id="IDS_MSGF_BODY_NO_BLOCKED_WORDS">No blocked words</text>
+ <text id="IDS_COM_BODY_SELECT_ALL">Denak aukeratu</text>
+ <text id="IDS_MSGF_BODY_NO_SUBJECT">Gairik gabe</text>
+ <text id="IDS_COM_POP_CLOSE">Itxi</text>
+ <text id="IDS_COM_BODY_TO">Hartzailea</text>
+ <text id="IDS_MSGC_BODY_TAKE_PICTURE">Argazkia atera</text>
+ <text id="IDS_COM_POP_DELETE_Q">Ezabatu?</text>
+ <text id="IDS_MSGC_HEADER_INPUTMODE">Idazkera modua</text>
+ <text id="IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED">Gehienezko hartzaile kopurura (%d) iritsi zara</text>
+ <text id="IDS_COM_SK_NO">Ez</text>
+ <text id="IDS_COM_BODY_MY_FILES">Nire Fitxategiak</text>
+ <text id="IDS_MSGF_BODY_COPY_TO_PHONE">Telefonora kopiatu</text>
+ <text id="IDS_MSGF_BODY_CB_MESSAGES">CB mezuak</text>
+ <text id="IDS_MSGF_BODY_SERVICECENTRE">Zerbitzu zentroa</text>
+ <text id="IDS_COM_BODY_SMS">SMS</text>
+ <text id="IDS_MSGF_POP_SENDING_FAILED_MESSAGE">Huts egindako mezua bidaltzen</text>
+ <text id="IDS_COM_POP_SUCCESS">Behar bezala</text>
+ <text id="IDS_MSGF_POP_MESSAGES_RECEIVED_FROM_YOUR_CONTACTS_WILL_NOT_BE_BLOCKED_EVEN_IF_THEY_CONTAIN_BLOCKED_NUMBERS">Messages received from your contacts will not be blocked even if they contain blocked numbers</text>
+ <text id="IDS_MSG_SELECT_WORDS">Select words (%d)</text>
+ <text id="IDS_MSGF_BODY_ROAMINGRECEPTION_RESTRICTED">Mugatuta</text>
+ <text id="IDS_MSGF_POP_MESSAGES_RECEIVED_FROM_YOUR_CONTACTS_WILL_NOT_BE_BLOCKED_EVEN_IF_THEY_CONTAIN_BLOCKED_WORDS">Zure kontaktuetatik jasotako mezuak ez dira blokeatuko nahiz eta blokeatutako hitzak izan</text>
+ <text id="IDS_MSGF_OPT_UNBLOCK">Desblokeatu</text>
+ <text id="IDS_MSGF_BODY_COPY_MESSAGE_TEXT_ABB">Kopiatu testu mezua</text>
+ <text id="IDS_MSGF_BODY_READ_REPORT">Irakurketa txostena</text>
+ <text id="IDS_COM_BODY_MESSAGES">Mezuak</text>
+ <text id="IDS_COM_SK_OPTIONS">Aukerak</text>
+ <text id="IDS_COM_SK_DONE">Amaituta</text>
+ <text id="IDS_COM_POP_PM">PM</text>
+ <text id="IDS_COM_BODY_UNKNOWN">Ezezaguna</text>
+ <text id="IDS_MSG_BODY_DRAFT_MESSAGES">Zirriborro mezuak</text>
+ <text id="IDS_COM_POP_SERVICE_UNAVAILABLE">Zerbitzua ez dago eskuragarri</text>
+ <text id="IDS_MSGF_OPT_CREATEMSG_ADD_WORD">Hitza gehitu</text>
+ <text id="IDS_MSGF_POP_BLOCK_PS_Q">%s blokeatu?</text>
+ <text id="IDS_MSG_BODY_CHANGE_TEXT_SIZE_USING_THE_VOLUME_KEY">Aldatu testu neurria bolumen tekla erabiliz</text>
+ <text id="IDS_COM_POP_NEW_MESSAGE">Mezu berria</text>
+ <text id="IDS_MSGF_BODY_SPAM_MESSAGES">Spam mezuak</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_INCLUDE">Gehitu</text>
+ <text id="IDS_MSGF_BODY_NO_BLOCKED_NUMBERS">No blocked numbers</text>
+ <text id="IDS_MSGF_BODY_BLOCKED_NUMBERS">Blokeatutako zenbakiak</text>
+ <text id="IDS_MSGF_BODY_SETTINGS_MULTIMEDIAMESSAGE">Multimedia mezuak</text>
+ <text id="IDS_MSGF_BODY_EDIT_WORD">Editatu hitza</text>
+ <text id="IDS_MSGF_BODY_EXPIRED">Iraungia</text>
+ <text id="IDS_MSGF_BODY_MMSCCCREATIONMODEWARNING">Oharra</text>
+ <text id="IDS_COM_SK_EDIT">Editatu</text>
+ <text id="IDS_COM_POP_FAILED">Huts egin du</text>
+ <text id="IDS_MSGF_HEADER_DELETE_NUMBER">Zenbakia ezabatu</text>
+ <text id="IDS_MSGC_BODY_RECORD_AUDIO">Audioa grabatu</text>
+ <text id="IDS_COM_SK_BACK">Atzera</text>
+ <text id="IDS_MSGF_BODY_UNICODE">Unicode</text>
+ <text id="IDS_MSGF_HEADER_DELETE_WORDS">Ezabatu hitzak</text>
+ <text id="IDS_COM_BODY_FORWARD">Birbidali</text>
+ <text id="IDS_MSGF_POP_NOMESSAGES">Mezurik ez</text>
+ <text id="IDS_MSGF_OPT_ROAM_NETWORK">Atzerriko sarea</text>
+ <text id="IDS_MSGF_BODY_FROM">Nork</text>
+ <text id="IDS_COM_SK_DELETE">Ezabatu</text>
+ <text id="IDS_MSGF_SK3_UNREAD">Irakurri gabea</text>
+ <text id="IDS_MSGC_BODY_DUPLICATED_RECIPIENT">Hartzaile bikoiztua</text>
+ <text id="IDS_MSGF_BODY_GSM_ALPHABET">GSM-alfabetoa</text>
+ <text id="IDS_MSGF_BODY_SIM_CARD_MESSAGES">SIM txartelaren mezuak</text>
+ <text id="IDS_MSGF_BODY_MMSNOTIMSGSTATUSSENT">Bidalitakoak</text>
+ <text id="IDS_COM_BODY_CONTACTS">Kontaktuak</text>
+ <text id="IDS_MSGF_OPT_STATUS">Egoera</text>
+ <text id="IDS_MSGF_BODY_MMSCCCREATIONMODEFREE">Libre</text>
+ <text id="IDS_COM_BODY_DETAILS_TYPE">Mota</text>
+ <text id="IDS_MSGF_BODY_AUTODOWNLOAD">Deskarga automatikoa</text>
+ <text id="IDS_MSGF_SK_RESEND">Birbidali</text>
+ <text id="IDS_COM_SK_CANCEL">Ezeztatu</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONS">Jasotze aukerak</text>
+ <text id="IDS_COM_BODY_GALLERY">Galeria</text>
+ <text id="IDS_MSGC_BUTTON2_DURATION_N_HPD_SECS">Iraupena\n(%d seg)</text>
+ <text id="IDS_COM_BODY_SEARCH">Bilatu</text>
+ <text id="IDS_MSGF_HEADER_MESSAGE_BOXES">Mezuen koadroak</text>
+ <text id="IDS_MSGF_HEADER_ADD_NUMBER">Gehitu zenbakia</text>
+ <text id="IDS_COM_BODY_MEMO">Oroigarriak</text>
+ <text id="IDS_MSGF_BODY_COPY_TO_SIM">SIMean kopiatu</text>
+ <text id="IDS_MSGF_BODY_ENTER_NUMBER">Zenbakia idatzi</text>
+ <text id="IDS_COM_OPT_ADD_CONTACT">Kontaktua gehitu</text>
+ <text id="IDS_MSGF_OPT_HOME_NETWORK">Sare lokala</text>
+ <text id="IDS_COM_POP_REJECTED">Ezetsita</text>
+ <text id="IDS_COM_BODY_SETTINGS">Ezarpenak</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_START_WITH">Zerekin hasi</text>
+ <text id="IDS_COM_BODY_DISPLAY">Pantaila</text>
+ <text id="IDS_MSGF_OPT_PROTECTION_ON">Babespena aktibatuta</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONNETWORK_MANUAL">Eskuzkoa</text>
+ <text id="IDS_SLCD_POP_TEXT_SIM_CARD_ERROR">SIM txartela ez dago eskuragarri</text>
+ <text id="IDS_COM_POP_DELETED">Ezabatua</text>
+ <text id="IDS_COM_SK_SEND_ABB">Bidali</text>
+ <text id="IDS_MSGF_POP_FORWARDED">Birbidalia</text>
+ <text id="IDS_MSG_SELECT_NUMBERS">Select numbers (%d)</text>
+ <text id="IDS_MSGF_BODY_CENTRE_PD">%d zentroa</text>
+ <text id="IDS_MSGF_HEADER_EDIT_NUMBER">Editatu zenbakia</text>
+ <text id="IDS_MSGF_BODY_AUTOMATIC">Automatikoa</text>
+ <text id="IDS_MSGF_BODY_VIEW_MESSAGE_DETAILS_ABB">Ikusi mezu xehetas.</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONNETWORK_REJECT">Ukatu</text>
+ <text id="IDS_COM_BODY_VOICE_CALL">Ahots deia</text>
+ <text id="IDS_MSG_MBODY_USE_THE_VOLUME_KEY">Erabili bolumen tekla</text>
+ <text id="IDS_COM_SK_SAVE">Gorde</text>
+ <text id="IDS_MSGF_BODY_INVALID_SERVICE_CENTRE_ADDRESS">Invalid service centre address</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_EXACTLY_THE_SAME_AS">Honen bera</text>
+ <text id="IDS_COM_BODY_NO_SEARCH_RESULTS">Ez dago bilaketaren emaitzarik</text>
+ <text id="IDS_MSGF_BODY_MMS">MMS</text>
+ <text id="IDS_MSGF_BODY_MMSCREATIONMODE">Sortze modua</text>
+ <text id="IDS_MSGF_BODY_TEXT_MESSAGES">Testu mezuak</text>
+ <text id="IDS_MSGF_BODY_RECEIVED">Jasota</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_MATCH_CRITERIA">Esleitze irizpideak</text>
+ <text id="IDS_MSGF_POP_DEFERRED">Atzeratua</text>
+ <text id="IDS_COM_SK_ADD">Gehitu</text>
+ <text id="IDS_MSGF_OPT_BLOCK">Blokeatu</text>
+ <text id="IDS_COM_SK_YES">Bai</text>
+ <text id="IDS_MSGC_OPT_VIEW_CONTACT">Kontaktua ikusi</text>
+ <text id="IDS_COM_SK_SEARCH">Bilatu</text>
+ <text id="IDS_COM_POP_AM_M_ABB">AM</text>
+ <text id="IDS_MSGF_BODY_BLOCKED_WORDS">Blokeatutako hitzak</text>
+ <text id="IDS_COM_BODY_SUBJECT">Gaia</text>
+ <text id="IDS_MSGF_POP_UNRECOGNISED">Ez ezagutua</text>
+ <text id="IDS_MSGF_BODY_SEND_READ_REPORT">Irakurtze txostena bidali</text>
+ <text id="IDS_MSGF_SK_RESTORE">Berrezar</text>
+ <text id="IDS_MSGF_BODY_REQUEST_READ_REPORT">Irakurtze txostena eskatu</text>
+ <text id="IDS_MSGF_BODY_ENTER_WORD">Adierazi hitza</text>
+ <text id="IDS_COM_SK3_COMPOSE">Sortu</text>
+ <text id="IDS_COM_POP_UNKNOWN_ERROR_OCCURRED">Errore ezezaguna gertatu da</text>
+ <text id="IDS_MSGF_BODY_REQUEST_DELIVERY_REPORT">Emate txostena eskatu</text>
+ <text id="IDS_MSGF_BODY_INVALID_RECIPIENTS">Hartzaile baliogabeak</text>
+ <text id="IDS_MSGF_BODY_BROADCASTMESSAGES">Difusio mezuak</text>
+ <text id="IDS_MSGF_OPT_SAVE_ATTACHMENT">Eranskina gorde</text>
+ <text id="IDS_MSGF_BODY_DELIVERY_REPORT">Banaketa txostena</text>
+ <text id="IDS_MSGC_POP_DISCARD_CURRENT_MESSAGE_Q">Baztertu oraingo mezua?</text>
+ <text id="IDS_COM_POP_ATTACH">Erantsi</text>
+ <text id="IDS_COM_BODY_CALENDAR">Egutegia</text>
+ <text id="IDS_COM_SK_OK">Ados</text>
+ <text id="IDS_COM_SK_CALL">Deitu</text>
+ <text id="IDS_MSGC_BODY_CAPTURE_VIDEO">Bideoa grabatu</text>
+ <text id="IDS_MSG_HEADER_SELECT_RECIPIENT">Aukeratu hartzailea</text>
+</string_table>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201301241731" Dversion="20120315">
+ <text id="IDS_MSGF_HEADER_MESSAGE_DETAILS">Viestin tiedot</text>
+ <text id="IDS_COM_SK3_PREVIEW">Esikats.</text>
+ <text id="IDS_COM_BODY_PD_SELECTED">%d valittu</text>
+ <text id="IDS_MSG_BODY_DURATION_MUST_BE_LONGER_THAN_PD_SECONDS">Keston on oltava enemmän kuin %d sekuntia</text>
+ <text id="IDS_DB_POP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED_DELETE_SOME_CHARACTERS">Merkkien enimmäismäärä on ylitetty. Poista merkkejä</text>
+ <text id="IDS_MSGF_BODY_NO_BLOCKED_WORDS">No blocked words</text>
+ <text id="IDS_COM_BODY_SELECT_ALL">Valitse kaikki</text>
+ <text id="IDS_MSGF_BODY_NO_SUBJECT">Ei aihetta</text>
+ <text id="IDS_COM_POP_CLOSE">Sulje</text>
+ <text id="IDS_COM_BODY_TO">Vastaanottaja</text>
+ <text id="IDS_MSGC_BODY_TAKE_PICTURE">Ota kuva</text>
+ <text id="IDS_COM_POP_DELETE_Q">Poistetaanko?</text>
+ <text id="IDS_MSGC_HEADER_INPUTMODE">Tekstinsyöttötila</text>
+ <text id="IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED">Vastaanottajien enimmäismäärä (%d) on saavutettu</text>
+ <text id="IDS_COM_SK_NO">Ei</text>
+ <text id="IDS_COM_BODY_MY_FILES">Omat tiedostot</text>
+ <text id="IDS_MSGF_BODY_COPY_TO_PHONE">Kopioi puhelimeen</text>
+ <text id="IDS_MSGF_BODY_CB_MESSAGES">CB-viestit</text>
+ <text id="IDS_MSGF_BODY_SERVICECENTRE">Viestikeskus</text>
+ <text id="IDS_COM_BODY_SMS">Tekstiviesti</text>
+ <text id="IDS_MSGF_POP_SENDING_FAILED_MESSAGE">Lähetetään epäonnistunutta viestiä</text>
+ <text id="IDS_COM_POP_SUCCESS">Valmis</text>
+ <text id="IDS_MSGF_POP_MESSAGES_RECEIVED_FROM_YOUR_CONTACTS_WILL_NOT_BE_BLOCKED_EVEN_IF_THEY_CONTAIN_BLOCKED_NUMBERS">Messages received from your contacts will not be blocked even if they contain blocked numbers</text>
+ <text id="IDS_MSG_SELECT_WORDS">Select words (%d)</text>
+ <text id="IDS_MSGF_BODY_ROAMINGRECEPTION_RESTRICTED">Rajoitettu</text>
+ <text id="IDS_MSGF_POP_MESSAGES_RECEIVED_FROM_YOUR_CONTACTS_WILL_NOT_BE_BLOCKED_EVEN_IF_THEY_CONTAIN_BLOCKED_WORDS">Yhteyshenkilöiltä saapuvia viestejä ei estetä, vaikka niissä olisi estettyjä sanoja</text>
+ <text id="IDS_MSGF_OPT_UNBLOCK">Poista esto</text>
+ <text id="IDS_MSGF_BODY_COPY_MESSAGE_TEXT_ABB">Kopioi viestiteksti</text>
+ <text id="IDS_MSGF_BODY_READ_REPORT">Lukuraportti</text>
+ <text id="IDS_COM_BODY_MESSAGES">Viestit</text>
+ <text id="IDS_COM_SK_OPTIONS">Valinnat</text>
+ <text id="IDS_COM_SK_DONE">Valmis</text>
+ <text id="IDS_COM_POP_PM">IP</text>
+ <text id="IDS_COM_BODY_UNKNOWN">Tuntematon</text>
+ <text id="IDS_MSG_BODY_DRAFT_MESSAGES">Viestiluonnokset</text>
+ <text id="IDS_COM_POP_SERVICE_UNAVAILABLE">Palvelu ei ole saatavilla</text>
+ <text id="IDS_MSGF_OPT_CREATEMSG_ADD_WORD">Lisää sana</text>
+ <text id="IDS_MSGF_POP_BLOCK_PS_Q">Estetäänkö %s?</text>
+ <text id="IDS_MSG_BODY_CHANGE_TEXT_SIZE_USING_THE_VOLUME_KEY">Muuta tekstin kokoa äänenvoimakkuusnäppäimellä</text>
+ <text id="IDS_COM_POP_NEW_MESSAGE">Uusi viesti</text>
+ <text id="IDS_MSGF_BODY_SPAM_MESSAGES">Roskapostiviestit</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_INCLUDE">Sisällytä</text>
+ <text id="IDS_MSGF_BODY_NO_BLOCKED_NUMBERS">No blocked numbers</text>
+ <text id="IDS_MSGF_BODY_BLOCKED_NUMBERS">Estetyt numerot</text>
+ <text id="IDS_MSGF_BODY_SETTINGS_MULTIMEDIAMESSAGE">Multimediaviestit</text>
+ <text id="IDS_MSGF_BODY_EDIT_WORD">Muokkaa sanaa</text>
+ <text id="IDS_MSGF_BODY_EXPIRED">Vanhentunut</text>
+ <text id="IDS_MSGF_BODY_MMSCCCREATIONMODEWARNING">Varoitus</text>
+ <text id="IDS_COM_SK_EDIT">Muokkaa</text>
+ <text id="IDS_COM_POP_FAILED">Epäonnistui</text>
+ <text id="IDS_MSGF_HEADER_DELETE_NUMBER">Poista numero</text>
+ <text id="IDS_MSGC_BODY_RECORD_AUDIO">Tallenna ääntä</text>
+ <text id="IDS_COM_SK_BACK">Takaisin</text>
+ <text id="IDS_MSGF_BODY_UNICODE">Unicode-merkistö</text>
+ <text id="IDS_MSGF_HEADER_DELETE_WORDS">Poista sanat</text>
+ <text id="IDS_COM_BODY_FORWARD">Lähetä edelleen</text>
+ <text id="IDS_MSGF_POP_NOMESSAGES">Ei viestejä</text>
+ <text id="IDS_MSGF_OPT_ROAM_NETWORK">Vierailuverkko</text>
+ <text id="IDS_MSGF_BODY_FROM">Lähettäjä</text>
+ <text id="IDS_COM_SK_DELETE">Poista</text>
+ <text id="IDS_MSGF_SK3_UNREAD">Lukem.</text>
+ <text id="IDS_MSGC_BODY_DUPLICATED_RECIPIENT">Vastaanottaja esiintyy kahdesti</text>
+ <text id="IDS_MSGF_BODY_GSM_ALPHABET">GSM-merkistö</text>
+ <text id="IDS_MSGF_BODY_SIM_CARD_MESSAGES">SIM-kortilla olevat viestit</text>
+ <text id="IDS_MSGF_BODY_MMSNOTIMSGSTATUSSENT">Lähetetty</text>
+ <text id="IDS_COM_BODY_CONTACTS">Yhteystiedot</text>
+ <text id="IDS_MSGF_OPT_STATUS">Tila</text>
+ <text id="IDS_MSGF_BODY_MMSCCCREATIONMODEFREE">Vapaa</text>
+ <text id="IDS_COM_BODY_DETAILS_TYPE">Tyyppi</text>
+ <text id="IDS_MSGF_BODY_AUTODOWNLOAD">Automaattinen lataus</text>
+ <text id="IDS_MSGF_SK_RESEND">Läh. uud.</text>
+ <text id="IDS_COM_SK_CANCEL">Peruuta</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONS">Vastaanottoasetukset</text>
+ <text id="IDS_COM_BODY_GALLERY">Galleria</text>
+ <text id="IDS_MSGC_BUTTON2_DURATION_N_HPD_SECS">Kesto\n(%d s)</text>
+ <text id="IDS_COM_BODY_SEARCH">Etsi</text>
+ <text id="IDS_MSGF_HEADER_MESSAGE_BOXES">Viesti-ikkunat</text>
+ <text id="IDS_MSGF_HEADER_ADD_NUMBER">Lisää numero</text>
+ <text id="IDS_COM_BODY_MEMO">Muistio</text>
+ <text id="IDS_MSGF_BODY_COPY_TO_SIM">Kopioi SIM-kortille</text>
+ <text id="IDS_MSGF_BODY_ENTER_NUMBER">Syötä numero</text>
+ <text id="IDS_COM_OPT_ADD_CONTACT">Lisää yhteystieto</text>
+ <text id="IDS_MSGF_OPT_HOME_NETWORK">Kotiverkko</text>
+ <text id="IDS_COM_POP_REJECTED">Hylätty</text>
+ <text id="IDS_COM_BODY_SETTINGS">Asetukset</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_START_WITH">Aloita käyttäen</text>
+ <text id="IDS_COM_BODY_DISPLAY">Näyttö</text>
+ <text id="IDS_MSGF_OPT_PROTECTION_ON">Suojaus päälle</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONNETWORK_MANUAL">Manuaalinen</text>
+ <text id="IDS_SLCD_POP_TEXT_SIM_CARD_ERROR">SIM-kortin virhe</text>
+ <text id="IDS_COM_POP_DELETED">Poistettu</text>
+ <text id="IDS_COM_SK_SEND_ABB">Lähetä</text>
+ <text id="IDS_MSGF_POP_FORWARDED">Lähetetty edelleen</text>
+ <text id="IDS_MSG_SELECT_NUMBERS">Select numbers (%d)</text>
+ <text id="IDS_MSGF_BODY_CENTRE_PD">Keskus %d</text>
+ <text id="IDS_MSGF_HEADER_EDIT_NUMBER">Muokkaa numeroa</text>
+ <text id="IDS_MSGF_BODY_AUTOMATIC">Automaattinen</text>
+ <text id="IDS_MSGF_BODY_VIEW_MESSAGE_DETAILS_ABB">Näytä viestin tiedot</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONNETWORK_REJECT">Hylkää</text>
+ <text id="IDS_COM_BODY_VOICE_CALL">Äänipuhelu</text>
+ <text id="IDS_MSG_MBODY_USE_THE_VOLUME_KEY">Käytä voimakkuusnäppäintä</text>
+ <text id="IDS_COM_SK_SAVE">Tallenna</text>
+ <text id="IDS_MSGF_BODY_INVALID_SERVICE_CENTRE_ADDRESS">Invalid service centre address</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_EXACTLY_THE_SAME_AS">Täsmälleen sama kuin</text>
+ <text id="IDS_COM_BODY_NO_SEARCH_RESULTS">Ei hakutuloksia</text>
+ <text id="IDS_MSGF_BODY_MMS">Multimediaviesti</text>
+ <text id="IDS_MSGF_BODY_MMSCREATIONMODE">Luontitila</text>
+ <text id="IDS_MSGF_BODY_TEXT_MESSAGES">Tekstiviestit</text>
+ <text id="IDS_MSGF_BODY_RECEIVED">Vastaanotettu</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_MATCH_CRITERIA">Hylkäyskriteeri</text>
+ <text id="IDS_MSGF_POP_DEFERRED">Lykätty</text>
+ <text id="IDS_COM_SK_ADD">Lisää</text>
+ <text id="IDS_MSGF_OPT_BLOCK">Estä</text>
+ <text id="IDS_COM_SK_YES">Kyllä</text>
+ <text id="IDS_MSGC_OPT_VIEW_CONTACT">Tarkastele yhteystietoja</text>
+ <text id="IDS_COM_SK_SEARCH">Etsi</text>
+ <text id="IDS_COM_POP_AM_M_ABB">AP</text>
+ <text id="IDS_MSGF_BODY_BLOCKED_WORDS">Estetyt sanat</text>
+ <text id="IDS_COM_BODY_SUBJECT">Aihe</text>
+ <text id="IDS_MSGF_POP_UNRECOGNISED">Tunnistamaton</text>
+ <text id="IDS_MSGF_BODY_SEND_READ_REPORT">Lähetä lukuraportti</text>
+ <text id="IDS_MSGF_SK_RESTORE">Palauta</text>
+ <text id="IDS_MSGF_BODY_REQUEST_READ_REPORT">Pyydä lukuraportti</text>
+ <text id="IDS_MSGF_BODY_ENTER_WORD">Anna sana</text>
+ <text id="IDS_COM_SK3_COMPOSE">Luo</text>
+ <text id="IDS_COM_POP_UNKNOWN_ERROR_OCCURRED">Tuntematon virhe</text>
+ <text id="IDS_MSGF_BODY_REQUEST_DELIVERY_REPORT">Pyydä toimitusraportti</text>
+ <text id="IDS_MSGF_BODY_INVALID_RECIPIENTS">Virheelliset vastaanottajat</text>
+ <text id="IDS_MSGF_BODY_BROADCASTMESSAGES">Tiedoteviestit</text>
+ <text id="IDS_MSGF_OPT_SAVE_ATTACHMENT">Tallenna liite</text>
+ <text id="IDS_MSGF_BODY_DELIVERY_REPORT">Toimitusraportti</text>
+ <text id="IDS_MSGC_POP_DISCARD_CURRENT_MESSAGE_Q">Hylätäänkö nykyinen viesti?</text>
+ <text id="IDS_COM_POP_ATTACH">Liitä</text>
+ <text id="IDS_COM_BODY_CALENDAR">Kalenteri</text>
+ <text id="IDS_COM_SK_OK">OK</text>
+ <text id="IDS_COM_SK_CALL">Puhelu</text>
+ <text id="IDS_MSGC_BODY_CAPTURE_VIDEO">Kuvaa video</text>
+ <text id="IDS_MSG_HEADER_SELECT_RECIPIENT">Valitse vastaanottaja</text>
+</string_table>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201301241731" Dversion="20120315">
+ <text id="IDS_MSGF_HEADER_MESSAGE_DETAILS">Détails des messages</text>
+ <text id="IDS_COM_SK3_PREVIEW">Aperçu</text>
+ <text id="IDS_COM_BODY_PD_SELECTED">%d sélectionnées</text>
+ <text id="IDS_MSG_BODY_DURATION_MUST_BE_LONGER_THAN_PD_SECONDS">La durée doit être supérieure à %d secondes</text>
+ <text id="IDS_DB_POP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED_DELETE_SOME_CHARACTERS">Nombre maximum de caractères atteint. Supprimez des caractères</text>
+ <text id="IDS_MSGF_BODY_NO_BLOCKED_WORDS">No blocked words</text>
+ <text id="IDS_COM_BODY_SELECT_ALL">Sélectionner tout</text>
+ <text id="IDS_MSGF_BODY_NO_SUBJECT">Aucun objet</text>
+ <text id="IDS_COM_POP_CLOSE">Fermer</text>
+ <text id="IDS_COM_BODY_TO">À</text>
+ <text id="IDS_MSGC_BODY_TAKE_PICTURE">Prendre une photo</text>
+ <text id="IDS_COM_POP_DELETE_Q">Supprimer ?</text>
+ <text id="IDS_MSGC_HEADER_INPUTMODE">Mode de saisie</text>
+ <text id="IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED">Nombre maximum de destinataires (%d) atteint</text>
+ <text id="IDS_COM_SK_NO">Non</text>
+ <text id="IDS_COM_BODY_MY_FILES">Mes fichiers</text>
+ <text id="IDS_MSGF_BODY_COPY_TO_PHONE">Copier dans le téléphone</text>
+ <text id="IDS_MSGF_BODY_CB_MESSAGES">Messages de diffusion</text>
+ <text id="IDS_MSGF_BODY_SERVICECENTRE">Centre de service</text>
+ <text id="IDS_COM_BODY_SMS">Message texte</text>
+ <text id="IDS_MSGF_POP_SENDING_FAILED_MESSAGE">Envoi du message d'échec</text>
+ <text id="IDS_COM_POP_SUCCESS">Terminé</text>
+ <text id="IDS_MSGF_POP_MESSAGES_RECEIVED_FROM_YOUR_CONTACTS_WILL_NOT_BE_BLOCKED_EVEN_IF_THEY_CONTAIN_BLOCKED_NUMBERS">Messages received from your contacts will not be blocked even if they contain blocked numbers</text>
+ <text id="IDS_MSG_SELECT_WORDS">Select words (%d)</text>
+ <text id="IDS_MSGF_BODY_ROAMINGRECEPTION_RESTRICTED">Restreint</text>
+ <text id="IDS_MSGF_POP_MESSAGES_RECEIVED_FROM_YOUR_CONTACTS_WILL_NOT_BE_BLOCKED_EVEN_IF_THEY_CONTAIN_BLOCKED_WORDS">Les messages reçus de vos contacts ne seront pas bloqués même s'ils contiennent des mots bloqués</text>
+ <text id="IDS_MSGF_OPT_UNBLOCK">Débloquer</text>
+ <text id="IDS_MSGF_BODY_COPY_MESSAGE_TEXT_ABB">Copie message texte</text>
+ <text id="IDS_MSGF_BODY_READ_REPORT">Confirmation de lecture</text>
+ <text id="IDS_COM_BODY_MESSAGES">Messages</text>
+ <text id="IDS_COM_SK_OPTIONS">Options</text>
+ <text id="IDS_COM_SK_DONE">OK</text>
+ <text id="IDS_COM_POP_PM">PM</text>
+ <text id="IDS_COM_BODY_UNKNOWN">Inconnu</text>
+ <text id="IDS_MSG_BODY_DRAFT_MESSAGES">Messages brouillons</text>
+ <text id="IDS_COM_POP_SERVICE_UNAVAILABLE">Service non disponible</text>
+ <text id="IDS_MSGF_OPT_CREATEMSG_ADD_WORD">Ajouter un mot</text>
+ <text id="IDS_MSGF_POP_BLOCK_PS_Q">Voulez-vous vraiment bloquer le contact %s?</text>
+ <text id="IDS_MSG_BODY_CHANGE_TEXT_SIZE_USING_THE_VOLUME_KEY">Modifier la taille du texte à l'aide du bouton de volume</text>
+ <text id="IDS_COM_POP_NEW_MESSAGE">Nouveau message</text>
+ <text id="IDS_MSGF_BODY_SPAM_MESSAGES">Messages Spam</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_INCLUDE">Inclure</text>
+ <text id="IDS_MSGF_BODY_NO_BLOCKED_NUMBERS">No blocked numbers</text>
+ <text id="IDS_MSGF_BODY_BLOCKED_NUMBERS">Numéros bloqués</text>
+ <text id="IDS_MSGF_BODY_SETTINGS_MULTIMEDIAMESSAGE">Messages multimédias</text>
+ <text id="IDS_MSGF_BODY_EDIT_WORD">Modifier le terme</text>
+ <text id="IDS_MSGF_BODY_EXPIRED">Expiré</text>
+ <text id="IDS_MSGF_BODY_MMSCCCREATIONMODEWARNING">Avertissement</text>
+ <text id="IDS_COM_SK_EDIT">Modifier</text>
+ <text id="IDS_COM_POP_FAILED">Échec</text>
+ <text id="IDS_MSGF_HEADER_DELETE_NUMBER">Supprimer le numéro</text>
+ <text id="IDS_MSGC_BODY_RECORD_AUDIO">Enregistrer un clip audio</text>
+ <text id="IDS_COM_SK_BACK">Retour</text>
+ <text id="IDS_MSGF_BODY_UNICODE">Unicode</text>
+ <text id="IDS_MSGF_HEADER_DELETE_WORDS">Supprimer des mots</text>
+ <text id="IDS_COM_BODY_FORWARD">Transférer</text>
+ <text id="IDS_MSGF_POP_NOMESSAGES">Aucun message</text>
+ <text id="IDS_MSGF_OPT_ROAM_NETWORK">Réseau d'itinérance</text>
+ <text id="IDS_MSGF_BODY_FROM">De</text>
+ <text id="IDS_COM_SK_DELETE">Supprimer</text>
+ <text id="IDS_MSGF_SK3_UNREAD">Non lu</text>
+ <text id="IDS_MSGC_BODY_DUPLICATED_RECIPIENT">Destinataire en double</text>
+ <text id="IDS_MSGF_BODY_GSM_ALPHABET">Alphabet GSM</text>
+ <text id="IDS_MSGF_BODY_SIM_CARD_MESSAGES">Messages de la carte SIM</text>
+ <text id="IDS_MSGF_BODY_MMSNOTIMSGSTATUSSENT">Envoyé</text>
+ <text id="IDS_COM_BODY_CONTACTS">Contacts</text>
+ <text id="IDS_MSGF_OPT_STATUS">État</text>
+ <text id="IDS_MSGF_BODY_MMSCCCREATIONMODEFREE">Libre</text>
+ <text id="IDS_COM_BODY_DETAILS_TYPE">Type</text>
+ <text id="IDS_MSGF_BODY_AUTODOWNLOAD">Téléchargement auto.</text>
+ <text id="IDS_MSGF_SK_RESEND">Renvoyer</text>
+ <text id="IDS_COM_SK_CANCEL">Annuler</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONS">Options de réception</text>
+ <text id="IDS_COM_BODY_GALLERY">Galerie</text>
+ <text id="IDS_MSGC_BUTTON2_DURATION_N_HPD_SECS">Durée\n(%d s.)</text>
+ <text id="IDS_COM_BODY_SEARCH">Recherche</text>
+ <text id="IDS_MSGF_HEADER_MESSAGE_BOXES">Messageries</text>
+ <text id="IDS_MSGF_HEADER_ADD_NUMBER">Ajouter un numéro</text>
+ <text id="IDS_COM_BODY_MEMO">Note</text>
+ <text id="IDS_MSGF_BODY_COPY_TO_SIM">Copier dans SIM</text>
+ <text id="IDS_MSGF_BODY_ENTER_NUMBER">Entrez le numéro</text>
+ <text id="IDS_COM_OPT_ADD_CONTACT">Ajouter un contact</text>
+ <text id="IDS_MSGF_OPT_HOME_NETWORK">Réseau domestique</text>
+ <text id="IDS_COM_POP_REJECTED">Rejeté</text>
+ <text id="IDS_COM_BODY_SETTINGS">Paramètres</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_START_WITH">Commence par</text>
+ <text id="IDS_COM_BODY_DISPLAY">Affichage</text>
+ <text id="IDS_MSGF_OPT_PROTECTION_ON">Protection activée</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONNETWORK_MANUAL">Manuel</text>
+ <text id="IDS_SLCD_POP_TEXT_SIM_CARD_ERROR">Carte SIM non disponible</text>
+ <text id="IDS_COM_POP_DELETED">Supprimé</text>
+ <text id="IDS_COM_SK_SEND_ABB">Envoyer</text>
+ <text id="IDS_MSGF_POP_FORWARDED">Transféré</text>
+ <text id="IDS_MSG_SELECT_NUMBERS">Select numbers (%d)</text>
+ <text id="IDS_MSGF_BODY_CENTRE_PD">Centre %d</text>
+ <text id="IDS_MSGF_HEADER_EDIT_NUMBER">Modifier un numéro</text>
+ <text id="IDS_MSGF_BODY_AUTOMATIC">Automatique</text>
+ <text id="IDS_MSGF_BODY_VIEW_MESSAGE_DETAILS_ABB">Aff. détails message</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONNETWORK_REJECT">Refuser</text>
+ <text id="IDS_COM_BODY_VOICE_CALL">Appel vocal</text>
+ <text id="IDS_MSG_MBODY_USE_THE_VOLUME_KEY">Bouton de volume</text>
+ <text id="IDS_COM_SK_SAVE">Sauv.</text>
+ <text id="IDS_MSGF_BODY_INVALID_SERVICE_CENTRE_ADDRESS">Invalid service centre address</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_EXACTLY_THE_SAME_AS">Identique à</text>
+ <text id="IDS_COM_BODY_NO_SEARCH_RESULTS">Aucun résultat de recherche</text>
+ <text id="IDS_MSGF_BODY_MMS">Message multimédia</text>
+ <text id="IDS_MSGF_BODY_MMSCREATIONMODE">Mode de création</text>
+ <text id="IDS_MSGF_BODY_TEXT_MESSAGES">Messages texte</text>
+ <text id="IDS_MSGF_BODY_RECEIVED">Reçu</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_MATCH_CRITERIA">Critères correspondants</text>
+ <text id="IDS_MSGF_POP_DEFERRED">Différé</text>
+ <text id="IDS_COM_SK_ADD">Ajouter</text>
+ <text id="IDS_MSGF_OPT_BLOCK">Bloquer</text>
+ <text id="IDS_COM_SK_YES">Oui</text>
+ <text id="IDS_MSGC_OPT_VIEW_CONTACT">Afficher le contact</text>
+ <text id="IDS_COM_SK_SEARCH">Rechercher</text>
+ <text id="IDS_COM_POP_AM_M_ABB">AM</text>
+ <text id="IDS_MSGF_BODY_BLOCKED_WORDS">Mots bloqués</text>
+ <text id="IDS_COM_BODY_SUBJECT">Objet</text>
+ <text id="IDS_MSGF_POP_UNRECOGNISED">Non reconnu</text>
+ <text id="IDS_MSGF_BODY_SEND_READ_REPORT">Envoyer une confirmation de lecture</text>
+ <text id="IDS_MSGF_SK_RESTORE">Restaurer</text>
+ <text id="IDS_MSGF_BODY_REQUEST_READ_REPORT">Demander une confirmation de lecture</text>
+ <text id="IDS_MSGF_BODY_ENTER_WORD">Entrer un mot</text>
+ <text id="IDS_COM_SK3_COMPOSE">Rédiger</text>
+ <text id="IDS_COM_POP_UNKNOWN_ERROR_OCCURRED">Une erreur inconnue est survenue</text>
+ <text id="IDS_MSGF_BODY_REQUEST_DELIVERY_REPORT">Demander un rapport de remise</text>
+ <text id="IDS_MSGF_BODY_INVALID_RECIPIENTS">Destinataires non valides</text>
+ <text id="IDS_MSGF_BODY_BROADCASTMESSAGES">Messages diffusés</text>
+ <text id="IDS_MSGF_OPT_SAVE_ATTACHMENT">Enregistrer la pièce jointe</text>
+ <text id="IDS_MSGF_BODY_DELIVERY_REPORT">Rapport de remise</text>
+ <text id="IDS_MSGC_POP_DISCARD_CURRENT_MESSAGE_Q">Ignorer le message actuel?</text>
+ <text id="IDS_COM_POP_ATTACH">Joindre</text>
+ <text id="IDS_COM_BODY_CALENDAR">Calendrier</text>
+ <text id="IDS_COM_SK_OK">OK</text>
+ <text id="IDS_COM_SK_CALL">Appeler</text>
+ <text id="IDS_MSGC_BODY_CAPTURE_VIDEO">Saisir une vidéo</text>
+ <text id="IDS_MSG_HEADER_SELECT_RECIPIENT">Sélectionner un destinataire</text>
+</string_table>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201301241731" Dversion="20120315">
+ <text id="IDS_MSGF_HEADER_MESSAGE_DETAILS">Détails des messages</text>
+ <text id="IDS_COM_SK3_PREVIEW">Aperçu</text>
+ <text id="IDS_COM_BODY_PD_SELECTED">%d sélectionné(es)</text>
+ <text id="IDS_MSG_BODY_DURATION_MUST_BE_LONGER_THAN_PD_SECONDS">La durée doit être supérieure à %d secondes</text>
+ <text id="IDS_DB_POP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED_DELETE_SOME_CHARACTERS">Nombre maximum de caractères atteint. Supprimez des caractères</text>
+ <text id="IDS_MSGF_BODY_NO_BLOCKED_WORDS">No blocked words</text>
+ <text id="IDS_COM_BODY_SELECT_ALL">Sélect. tout</text>
+ <text id="IDS_MSGF_BODY_NO_SUBJECT">Aucun objet</text>
+ <text id="IDS_COM_POP_CLOSE">Fermer</text>
+ <text id="IDS_COM_BODY_TO">A</text>
+ <text id="IDS_MSGC_BODY_TAKE_PICTURE">Photographier</text>
+ <text id="IDS_COM_POP_DELETE_Q">Supprimer ?</text>
+ <text id="IDS_MSGC_HEADER_INPUTMODE">Mode de saisie</text>
+ <text id="IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED">Nombre maximum de destinataires (%d) atteint</text>
+ <text id="IDS_COM_SK_NO">Non</text>
+ <text id="IDS_COM_BODY_MY_FILES">Mes fichiers</text>
+ <text id="IDS_MSGF_BODY_COPY_TO_PHONE">Copier dans le téléphone</text>
+ <text id="IDS_MSGF_BODY_CB_MESSAGES">Messages de diffusion</text>
+ <text id="IDS_MSGF_BODY_SERVICECENTRE">Centre de service</text>
+ <text id="IDS_COM_BODY_SMS">SMS</text>
+ <text id="IDS_MSGF_POP_SENDING_FAILED_MESSAGE">Envoi du message d'échec</text>
+ <text id="IDS_COM_POP_SUCCESS">Terminé</text>
+ <text id="IDS_MSGF_POP_MESSAGES_RECEIVED_FROM_YOUR_CONTACTS_WILL_NOT_BE_BLOCKED_EVEN_IF_THEY_CONTAIN_BLOCKED_NUMBERS">Messages received from your contacts will not be blocked even if they contain blocked numbers</text>
+ <text id="IDS_MSG_SELECT_WORDS">Select words (%d)</text>
+ <text id="IDS_MSGF_BODY_ROAMINGRECEPTION_RESTRICTED">Limité</text>
+ <text id="IDS_MSGF_POP_MESSAGES_RECEIVED_FROM_YOUR_CONTACTS_WILL_NOT_BE_BLOCKED_EVEN_IF_THEY_CONTAIN_BLOCKED_WORDS">Les messages reçus de vos contacts ne seront pas bloqués même s'ils contiennent des mots bloqués</text>
+ <text id="IDS_MSGF_OPT_UNBLOCK">Débloquer</text>
+ <text id="IDS_MSGF_BODY_COPY_MESSAGE_TEXT_ABB">Copie message texte</text>
+ <text id="IDS_MSGF_BODY_READ_REPORT">Confirmation de lecture</text>
+ <text id="IDS_COM_BODY_MESSAGES">Messages</text>
+ <text id="IDS_COM_SK_OPTIONS">Options</text>
+ <text id="IDS_COM_SK_DONE">Effectué</text>
+ <text id="IDS_COM_POP_PM">PM</text>
+ <text id="IDS_COM_BODY_UNKNOWN">Inconnu</text>
+ <text id="IDS_MSG_BODY_DRAFT_MESSAGES">Messages brouillons</text>
+ <text id="IDS_COM_POP_SERVICE_UNAVAILABLE">Service non disponible</text>
+ <text id="IDS_MSGF_OPT_CREATEMSG_ADD_WORD">Ajouter un mot</text>
+ <text id="IDS_MSGF_POP_BLOCK_PS_Q">Bloquer %s ?</text>
+ <text id="IDS_MSG_BODY_CHANGE_TEXT_SIZE_USING_THE_VOLUME_KEY">Modifier la taille du texte à l'aide de la touche de volume</text>
+ <text id="IDS_COM_POP_NEW_MESSAGE">Nouveau message</text>
+ <text id="IDS_MSGF_BODY_SPAM_MESSAGES">Messages Spam</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_INCLUDE">Inclure</text>
+ <text id="IDS_MSGF_BODY_NO_BLOCKED_NUMBERS">No blocked numbers</text>
+ <text id="IDS_MSGF_BODY_BLOCKED_NUMBERS">Numéros bloqués</text>
+ <text id="IDS_MSGF_BODY_SETTINGS_MULTIMEDIAMESSAGE">MMS</text>
+ <text id="IDS_MSGF_BODY_EDIT_WORD">Modifier le terme</text>
+ <text id="IDS_MSGF_BODY_EXPIRED">Date d'expiration révolue</text>
+ <text id="IDS_MSGF_BODY_MMSCCCREATIONMODEWARNING">Avertissement</text>
+ <text id="IDS_COM_SK_EDIT">Modifier</text>
+ <text id="IDS_COM_POP_FAILED">Échec</text>
+ <text id="IDS_MSGF_HEADER_DELETE_NUMBER">Supprimer le numéro</text>
+ <text id="IDS_MSGC_BODY_RECORD_AUDIO">Enregistrement audio</text>
+ <text id="IDS_COM_SK_BACK">Retour</text>
+ <text id="IDS_MSGF_BODY_UNICODE">Unicode</text>
+ <text id="IDS_MSGF_HEADER_DELETE_WORDS">Supprimer des mots</text>
+ <text id="IDS_COM_BODY_FORWARD">Transf.</text>
+ <text id="IDS_MSGF_POP_NOMESSAGES">Aucun message</text>
+ <text id="IDS_MSGF_OPT_ROAM_NETWORK">Réseau d'itinérance</text>
+ <text id="IDS_MSGF_BODY_FROM">De</text>
+ <text id="IDS_COM_SK_DELETE">Supprimer</text>
+ <text id="IDS_MSGF_SK3_UNREAD">Non lu</text>
+ <text id="IDS_MSGC_BODY_DUPLICATED_RECIPIENT">Destinataire en double</text>
+ <text id="IDS_MSGF_BODY_GSM_ALPHABET">Alphabet GSM</text>
+ <text id="IDS_MSGF_BODY_SIM_CARD_MESSAGES">Messages de la carte SIM</text>
+ <text id="IDS_MSGF_BODY_MMSNOTIMSGSTATUSSENT">Envoyé(s)</text>
+ <text id="IDS_COM_BODY_CONTACTS">Contacts</text>
+ <text id="IDS_MSGF_OPT_STATUS">Etat</text>
+ <text id="IDS_MSGF_BODY_MMSCCCREATIONMODEFREE">Libre</text>
+ <text id="IDS_COM_BODY_DETAILS_TYPE">Type</text>
+ <text id="IDS_MSGF_BODY_AUTODOWNLOAD">Téléchargement auto.</text>
+ <text id="IDS_MSGF_SK_RESEND">Renvoyer</text>
+ <text id="IDS_COM_SK_CANCEL">Annuler</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONS">Options de réception</text>
+ <text id="IDS_COM_BODY_GALLERY">Galerie</text>
+ <text id="IDS_MSGC_BUTTON2_DURATION_N_HPD_SECS">Durée\n(%d s.)</text>
+ <text id="IDS_COM_BODY_SEARCH">Rechercher</text>
+ <text id="IDS_MSGF_HEADER_MESSAGE_BOXES">Messageries</text>
+ <text id="IDS_MSGF_HEADER_ADD_NUMBER">Ajouter un numéro</text>
+ <text id="IDS_COM_BODY_MEMO">Mémo</text>
+ <text id="IDS_MSGF_BODY_COPY_TO_SIM">Copier dans SIM</text>
+ <text id="IDS_MSGF_BODY_ENTER_NUMBER">Saisir un numéro</text>
+ <text id="IDS_COM_OPT_ADD_CONTACT">Ajouter aux contacts</text>
+ <text id="IDS_MSGF_OPT_HOME_NETWORK">Réseau domestique</text>
+ <text id="IDS_COM_POP_REJECTED">Rejeté</text>
+ <text id="IDS_COM_BODY_SETTINGS">Paramètres</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_START_WITH">Commence par</text>
+ <text id="IDS_COM_BODY_DISPLAY">Affichage</text>
+ <text id="IDS_MSGF_OPT_PROTECTION_ON">Activer protection</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONNETWORK_MANUAL">Manuel</text>
+ <text id="IDS_SLCD_POP_TEXT_SIM_CARD_ERROR">Échec carte SIM</text>
+ <text id="IDS_COM_POP_DELETED">Supprimé</text>
+ <text id="IDS_COM_SK_SEND_ABB">Envoyer</text>
+ <text id="IDS_MSGF_POP_FORWARDED">Transféré</text>
+ <text id="IDS_MSG_SELECT_NUMBERS">Select numbers (%d)</text>
+ <text id="IDS_MSGF_BODY_CENTRE_PD">Centre %d</text>
+ <text id="IDS_MSGF_HEADER_EDIT_NUMBER">Modifier un numéro</text>
+ <text id="IDS_MSGF_BODY_AUTOMATIC">Automatique</text>
+ <text id="IDS_MSGF_BODY_VIEW_MESSAGE_DETAILS_ABB">Aff. détails message</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONNETWORK_REJECT">Refuser</text>
+ <text id="IDS_COM_BODY_VOICE_CALL">Appel vocal</text>
+ <text id="IDS_MSG_MBODY_USE_THE_VOLUME_KEY">Utiliser touche de volume</text>
+ <text id="IDS_COM_SK_SAVE">Sauveg.</text>
+ <text id="IDS_MSGF_BODY_INVALID_SERVICE_CENTRE_ADDRESS">Invalid service centre address</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_EXACTLY_THE_SAME_AS">Identique à</text>
+ <text id="IDS_COM_BODY_NO_SEARCH_RESULTS">Aucun résultat trouvé</text>
+ <text id="IDS_MSGF_BODY_MMS">MMS</text>
+ <text id="IDS_MSGF_BODY_MMSCREATIONMODE">Mode de création</text>
+ <text id="IDS_MSGF_BODY_TEXT_MESSAGES">SMS</text>
+ <text id="IDS_MSGF_BODY_RECEIVED">Reçu(s)</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_MATCH_CRITERIA">Critères correspondants</text>
+ <text id="IDS_MSGF_POP_DEFERRED">Différé</text>
+ <text id="IDS_COM_SK_ADD">Ajouter</text>
+ <text id="IDS_MSGF_OPT_BLOCK">Bloquer</text>
+ <text id="IDS_COM_SK_YES">Oui</text>
+ <text id="IDS_MSGC_OPT_VIEW_CONTACT">Voir le contact</text>
+ <text id="IDS_COM_SK_SEARCH">Rechercher</text>
+ <text id="IDS_COM_POP_AM_M_ABB">AM</text>
+ <text id="IDS_MSGF_BODY_BLOCKED_WORDS">Mots bloqués</text>
+ <text id="IDS_COM_BODY_SUBJECT">Objet</text>
+ <text id="IDS_MSGF_POP_UNRECOGNISED">Non reconnu</text>
+ <text id="IDS_MSGF_BODY_SEND_READ_REPORT">Confirmation de lecture</text>
+ <text id="IDS_MSGF_SK_RESTORE">Restaurer</text>
+ <text id="IDS_MSGF_BODY_REQUEST_READ_REPORT">Confirmation de lecture</text>
+ <text id="IDS_MSGF_BODY_ENTER_WORD">Entrer un mot</text>
+ <text id="IDS_COM_SK3_COMPOSE">Rédiger</text>
+ <text id="IDS_COM_POP_UNKNOWN_ERROR_OCCURRED">Une erreur inconnue est survenue</text>
+ <text id="IDS_MSGF_BODY_REQUEST_DELIVERY_REPORT">Accusé de réception</text>
+ <text id="IDS_MSGF_BODY_INVALID_RECIPIENTS">Destinataires non valides</text>
+ <text id="IDS_MSGF_BODY_BROADCASTMESSAGES">Messages de diffusion</text>
+ <text id="IDS_MSGF_OPT_SAVE_ATTACHMENT">Enregistrer la pièce jointe</text>
+ <text id="IDS_MSGF_BODY_DELIVERY_REPORT">Accusé de réception</text>
+ <text id="IDS_MSGC_POP_DISCARD_CURRENT_MESSAGE_Q">Ignorer le message actuel ?</text>
+ <text id="IDS_COM_POP_ATTACH">Joindre</text>
+ <text id="IDS_COM_BODY_CALENDAR">Calendrier</text>
+ <text id="IDS_COM_SK_OK">OK</text>
+ <text id="IDS_COM_SK_CALL">Appel</text>
+ <text id="IDS_MSGC_BODY_CAPTURE_VIDEO">Capturer une vidéo</text>
+ <text id="IDS_MSG_HEADER_SELECT_RECIPIENT">Sélectionner un destinataire</text>
+</string_table>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201301241731" Dversion="20120315">
+ <text id="IDS_MSGF_HEADER_MESSAGE_DETAILS">Sonraí na teachtaireachta</text>
+ <text id="IDS_COM_SK3_PREVIEW">Réamhamharc</text>
+ <text id="IDS_COM_BODY_PD_SELECTED">%d roghnaithe</text>
+ <text id="IDS_MSG_BODY_DURATION_MUST_BE_LONGER_THAN_PD_SECONDS">Ní mór fad ama bheith níos faide ná %d soicind</text>
+ <text id="IDS_DB_POP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED_DELETE_SOME_CHARACTERS">Uaslíon na gcarachtar sáraithe. Scrios roinnt carachtar</text>
+ <text id="IDS_MSGF_BODY_NO_BLOCKED_WORDS">No blocked words</text>
+ <text id="IDS_COM_BODY_SELECT_ALL">Roghnaigh gach</text>
+ <text id="IDS_MSGF_BODY_NO_SUBJECT">Níl ábhar ann</text>
+ <text id="IDS_COM_POP_CLOSE">Dún</text>
+ <text id="IDS_COM_BODY_TO">Chuig</text>
+ <text id="IDS_MSGC_BODY_TAKE_PICTURE">Glac pictiúr</text>
+ <text id="IDS_COM_POP_DELETE_Q">Scrios?</text>
+ <text id="IDS_MSGC_HEADER_INPUTMODE">Mód ionchuir</text>
+ <text id="IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED">Uaslíon na bhfaighteoirí (%d) bainte amach</text>
+ <text id="IDS_COM_SK_NO">Ná déan é</text>
+ <text id="IDS_COM_BODY_MY_FILES">Mo Chomhaid</text>
+ <text id="IDS_MSGF_BODY_COPY_TO_PHONE">Cóipeáil chuig fón</text>
+ <text id="IDS_MSGF_BODY_CB_MESSAGES">Teachtaireachtaí CB</text>
+ <text id="IDS_MSGF_BODY_SERVICECENTRE">Ionad seirbhíse</text>
+ <text id="IDS_COM_BODY_SMS">SMS</text>
+ <text id="IDS_MSGF_POP_SENDING_FAILED_MESSAGE">Theip ar sheoladh teachtaireachta</text>
+ <text id="IDS_COM_POP_SUCCESS">D’éirigh leis</text>
+ <text id="IDS_MSGF_POP_MESSAGES_RECEIVED_FROM_YOUR_CONTACTS_WILL_NOT_BE_BLOCKED_EVEN_IF_THEY_CONTAIN_BLOCKED_NUMBERS">Messages received from your contacts will not be blocked even if they contain blocked numbers</text>
+ <text id="IDS_MSG_SELECT_WORDS">Select words (%d)</text>
+ <text id="IDS_MSGF_BODY_ROAMINGRECEPTION_RESTRICTED">Srianta</text>
+ <text id="IDS_MSGF_POP_MESSAGES_RECEIVED_FROM_YOUR_CONTACTS_WILL_NOT_BE_BLOCKED_EVEN_IF_THEY_CONTAIN_BLOCKED_WORDS">Ní chuirfear bac ar theachtaireachtaí ó do theagmhálaithe fiú má tá focail bhactha iontu</text>
+ <text id="IDS_MSGF_OPT_UNBLOCK">Bain bac</text>
+ <text id="IDS_MSGF_BODY_COPY_MESSAGE_TEXT_ABB">Cóipeáil téacs tcht.</text>
+ <text id="IDS_MSGF_BODY_READ_REPORT">Admháil léite</text>
+ <text id="IDS_COM_BODY_MESSAGES">Teachtaireachtaí</text>
+ <text id="IDS_COM_SK_OPTIONS">Roghanna</text>
+ <text id="IDS_COM_SK_DONE">Déanta</text>
+ <text id="IDS_COM_POP_PM">I.N.</text>
+ <text id="IDS_COM_BODY_UNKNOWN">Anaithnid</text>
+ <text id="IDS_MSG_BODY_DRAFT_MESSAGES">Dréacht-teachtaireachtaí</text>
+ <text id="IDS_COM_POP_SERVICE_UNAVAILABLE">Níl seirbhís ar fáil</text>
+ <text id="IDS_MSGF_OPT_CREATEMSG_ADD_WORD">Cuir focal leis</text>
+ <text id="IDS_MSGF_POP_BLOCK_PS_Q">Cuir bac ar %s?</text>
+ <text id="IDS_MSG_BODY_CHANGE_TEXT_SIZE_USING_THE_VOLUME_KEY">Athraigh méid an téacs ag baint úsáide as an eochair airde</text>
+ <text id="IDS_COM_POP_NEW_MESSAGE">Teachtaireacht nua</text>
+ <text id="IDS_MSGF_BODY_SPAM_MESSAGES">Teachtaireachtaí turscair</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_INCLUDE">Áirigh</text>
+ <text id="IDS_MSGF_BODY_NO_BLOCKED_NUMBERS">No blocked numbers</text>
+ <text id="IDS_MSGF_BODY_BLOCKED_NUMBERS">Uimhreacha bactha</text>
+ <text id="IDS_MSGF_BODY_SETTINGS_MULTIMEDIAMESSAGE">Teachtaireachtaí ilmheán</text>
+ <text id="IDS_MSGF_BODY_EDIT_WORD">Cuir focal in eagar</text>
+ <text id="IDS_MSGF_BODY_EXPIRED">Imithe as feidhm</text>
+ <text id="IDS_MSGF_BODY_MMSCCCREATIONMODEWARNING">Rabhadh</text>
+ <text id="IDS_COM_SK_EDIT">Eagraigh</text>
+ <text id="IDS_COM_POP_FAILED">Theip air</text>
+ <text id="IDS_MSGF_HEADER_DELETE_NUMBER">Scrios uimhir</text>
+ <text id="IDS_MSGC_BODY_RECORD_AUDIO">Taifead fuaim</text>
+ <text id="IDS_COM_SK_BACK">Siar</text>
+ <text id="IDS_MSGF_BODY_UNICODE">Unicode</text>
+ <text id="IDS_MSGF_HEADER_DELETE_WORDS">Scrios focail</text>
+ <text id="IDS_COM_BODY_FORWARD">Seol ar aghaidh</text>
+ <text id="IDS_MSGF_POP_NOMESSAGES">Níl teachtaireachtaí ann</text>
+ <text id="IDS_MSGF_OPT_ROAM_NETWORK">Líonra iasachta</text>
+ <text id="IDS_MSGF_BODY_FROM">Ó</text>
+ <text id="IDS_COM_SK_DELETE">Scrios</text>
+ <text id="IDS_MSGF_SK3_UNREAD">Neamh-léite</text>
+ <text id="IDS_MSGC_BODY_DUPLICATED_RECIPIENT">Faighteoir dúbláilte</text>
+ <text id="IDS_MSGF_BODY_GSM_ALPHABET">Aibítir GSM</text>
+ <text id="IDS_MSGF_BODY_SIM_CARD_MESSAGES">Teachtaireachtaí chárta SIM</text>
+ <text id="IDS_MSGF_BODY_MMSNOTIMSGSTATUSSENT">Seolta</text>
+ <text id="IDS_COM_BODY_CONTACTS">Teagmhálaithe</text>
+ <text id="IDS_MSGF_OPT_STATUS">Stádas</text>
+ <text id="IDS_MSGF_BODY_MMSCCCREATIONMODEFREE">Saor in aisce</text>
+ <text id="IDS_COM_BODY_DETAILS_TYPE">Cineál</text>
+ <text id="IDS_MSGF_BODY_AUTODOWNLOAD">Uath-íoslódáil</text>
+ <text id="IDS_MSGF_SK_RESEND">Seol arís</text>
+ <text id="IDS_COM_SK_CANCEL">Cuir ar ceal</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONS">Roghanna fála</text>
+ <text id="IDS_COM_BODY_GALLERY">Gailearaí</text>
+ <text id="IDS_MSGC_BUTTON2_DURATION_N_HPD_SECS">Fad ama\n(%d shoic)</text>
+ <text id="IDS_COM_BODY_SEARCH">Cuardaigh</text>
+ <text id="IDS_MSGF_HEADER_MESSAGE_BOXES">Boscaí teachtaireachta</text>
+ <text id="IDS_MSGF_HEADER_ADD_NUMBER">Cuir uimhir leis</text>
+ <text id="IDS_COM_BODY_MEMO">Meabhrán</text>
+ <text id="IDS_MSGF_BODY_COPY_TO_SIM">Cóipeáil chuig SIM</text>
+ <text id="IDS_MSGF_BODY_ENTER_NUMBER">Iontráil uimhir</text>
+ <text id="IDS_COM_OPT_ADD_CONTACT">Cuir teagmhálaí leis</text>
+ <text id="IDS_MSGF_OPT_HOME_NETWORK">Líonra baile</text>
+ <text id="IDS_COM_POP_REJECTED">Diúltaithe</text>
+ <text id="IDS_COM_BODY_SETTINGS">Socruithe</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_START_WITH">Tosaigh le</text>
+ <text id="IDS_COM_BODY_DISPLAY">Taispeáint</text>
+ <text id="IDS_MSGF_OPT_PROTECTION_ON">Cosaint air</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONNETWORK_MANUAL">Láimhe</text>
+ <text id="IDS_SLCD_POP_TEXT_SIM_CARD_ERROR">Níl an cárta SIM ar fáil</text>
+ <text id="IDS_COM_POP_DELETED">Scriosta</text>
+ <text id="IDS_COM_SK_SEND_ABB">Seol</text>
+ <text id="IDS_MSGF_POP_FORWARDED">Seolta ar aghaidh</text>
+ <text id="IDS_MSG_SELECT_NUMBERS">Select numbers (%d)</text>
+ <text id="IDS_MSGF_BODY_CENTRE_PD">Larionad %d</text>
+ <text id="IDS_MSGF_HEADER_EDIT_NUMBER">Cuir uimhir in eagar</text>
+ <text id="IDS_MSGF_BODY_AUTOMATIC">Uathoibríoch</text>
+ <text id="IDS_MSGF_BODY_VIEW_MESSAGE_DETAILS_ABB">Amharc sonraí tcht.</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONNETWORK_REJECT">Diúltaigh</text>
+ <text id="IDS_COM_BODY_VOICE_CALL">Glao gutha</text>
+ <text id="IDS_MSG_MBODY_USE_THE_VOLUME_KEY">Úsáid an eochair airde</text>
+ <text id="IDS_COM_SK_SAVE">Sábháil</text>
+ <text id="IDS_MSGF_BODY_INVALID_SERVICE_CENTRE_ADDRESS">Invalid service centre address</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_EXACTLY_THE_SAME_AS">Díreach comhchosúil le</text>
+ <text id="IDS_COM_BODY_NO_SEARCH_RESULTS">Níl torthaí cuardaigh ann</text>
+ <text id="IDS_MSGF_BODY_MMS">MMS</text>
+ <text id="IDS_MSGF_BODY_MMSCREATIONMODE">Mód cruthaithe</text>
+ <text id="IDS_MSGF_BODY_TEXT_MESSAGES">Teachtaireachtaí téacs</text>
+ <text id="IDS_MSGF_BODY_RECEIVED">Faighte</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_MATCH_CRITERIA">Meaitseáil critéir</text>
+ <text id="IDS_MSGF_POP_DEFERRED">Curtha siar</text>
+ <text id="IDS_COM_SK_ADD">Cuir leis</text>
+ <text id="IDS_MSGF_OPT_BLOCK">Cuir bac air</text>
+ <text id="IDS_COM_SK_YES">Déan é</text>
+ <text id="IDS_MSGC_OPT_VIEW_CONTACT">Amharc ar theagmhálaí</text>
+ <text id="IDS_COM_SK_SEARCH">Cuardaigh</text>
+ <text id="IDS_COM_POP_AM_M_ABB">R.N.</text>
+ <text id="IDS_MSGF_BODY_BLOCKED_WORDS">Focail bhactha</text>
+ <text id="IDS_COM_BODY_SUBJECT">Ábhar</text>
+ <text id="IDS_MSGF_POP_UNRECOGNISED">Neamhaitheanta</text>
+ <text id="IDS_MSGF_BODY_SEND_READ_REPORT">Seol admháil léite?</text>
+ <text id="IDS_MSGF_SK_RESTORE">Aischuir</text>
+ <text id="IDS_MSGF_BODY_REQUEST_READ_REPORT">Iarr admháil léite</text>
+ <text id="IDS_MSGF_BODY_ENTER_WORD">Iontráil focal</text>
+ <text id="IDS_COM_SK3_COMPOSE">Cum</text>
+ <text id="IDS_COM_POP_UNKNOWN_ERROR_OCCURRED">Tharla earráid anaithnid</text>
+ <text id="IDS_MSGF_BODY_REQUEST_DELIVERY_REPORT">Iarr admháil seachadta</text>
+ <text id="IDS_MSGF_BODY_INVALID_RECIPIENTS">Faighteoirí neamhbhailí</text>
+ <text id="IDS_MSGF_BODY_BROADCASTMESSAGES">Teachtaireachtaí craolta</text>
+ <text id="IDS_MSGF_OPT_SAVE_ATTACHMENT">Sábháil ceangaltán</text>
+ <text id="IDS_MSGF_BODY_DELIVERY_REPORT">Admháil seachadta</text>
+ <text id="IDS_MSGC_POP_DISCARD_CURRENT_MESSAGE_Q">Díobh an teachtaireacht reatha?</text>
+ <text id="IDS_COM_POP_ATTACH">Cuir i gceangail</text>
+ <text id="IDS_COM_BODY_CALENDAR">Féilire</text>
+ <text id="IDS_COM_SK_OK">OK</text>
+ <text id="IDS_COM_SK_CALL">Glaoigh</text>
+ <text id="IDS_MSGC_BODY_CAPTURE_VIDEO">Gabh físeán</text>
+ <text id="IDS_MSG_HEADER_SELECT_RECIPIENT">Roghnaigh faighteoir</text>
+</string_table>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201301241731" Dversion="20120315">
+ <text id="IDS_MSGF_HEADER_MESSAGE_DETAILS">Detalles da mensaxe</text>
+ <text id="IDS_COM_SK3_PREVIEW">Vista previa</text>
+ <text id="IDS_COM_BODY_PD_SELECTED">%d seleccionadas</text>
+ <text id="IDS_MSG_BODY_DURATION_MUST_BE_LONGER_THAN_PD_SECONDS">A duración debe ser de máis de %d segundos</text>
+ <text id="IDS_DB_POP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED_DELETE_SOME_CHARACTERS">Número máximo de caracteres excedido. Elimine algúns caracteres</text>
+ <text id="IDS_MSGF_BODY_NO_BLOCKED_WORDS">No blocked words</text>
+ <text id="IDS_COM_BODY_SELECT_ALL">Seleccionar todo</text>
+ <text id="IDS_MSGF_BODY_NO_SUBJECT">Sen asunto</text>
+ <text id="IDS_COM_POP_CLOSE">Pechar</text>
+ <text id="IDS_COM_BODY_TO">Para</text>
+ <text id="IDS_MSGC_BODY_TAKE_PICTURE">Facer unha foto</text>
+ <text id="IDS_COM_POP_DELETE_Q">Eliminar?</text>
+ <text id="IDS_MSGC_HEADER_INPUTMODE">Modo de entrada</text>
+ <text id="IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED">Alcanzouse o número máximo de destinatarios (%d)</text>
+ <text id="IDS_COM_SK_NO">Non</text>
+ <text id="IDS_COM_BODY_MY_FILES">Os Meus Arquivos</text>
+ <text id="IDS_MSGF_BODY_COPY_TO_PHONE">Copiar ao teléfono</text>
+ <text id="IDS_MSGF_BODY_CB_MESSAGES">Mensaxes CB</text>
+ <text id="IDS_MSGF_BODY_SERVICECENTRE">Centro de servizo</text>
+ <text id="IDS_COM_BODY_SMS">SMS</text>
+ <text id="IDS_MSGF_POP_SENDING_FAILED_MESSAGE">Erro ao enviar a mensaxe</text>
+ <text id="IDS_COM_POP_SUCCESS">Éxito</text>
+ <text id="IDS_MSGF_POP_MESSAGES_RECEIVED_FROM_YOUR_CONTACTS_WILL_NOT_BE_BLOCKED_EVEN_IF_THEY_CONTAIN_BLOCKED_NUMBERS">Messages received from your contacts will not be blocked even if they contain blocked numbers</text>
+ <text id="IDS_MSG_SELECT_WORDS">Select words (%d)</text>
+ <text id="IDS_MSGF_BODY_ROAMINGRECEPTION_RESTRICTED">Restrinxida</text>
+ <text id="IDS_MSGF_POP_MESSAGES_RECEIVED_FROM_YOUR_CONTACTS_WILL_NOT_BE_BLOCKED_EVEN_IF_THEY_CONTAIN_BLOCKED_WORDS">As mensaxes recibidas dos teus contactos non se bloquearán aínda que conteñan palabras bloqueadas</text>
+ <text id="IDS_MSGF_OPT_UNBLOCK">Desbloquear</text>
+ <text id="IDS_MSGF_BODY_COPY_MESSAGE_TEXT_ABB">Copiar men. de texto</text>
+ <text id="IDS_MSGF_BODY_READ_REPORT">Informe de lectura</text>
+ <text id="IDS_COM_BODY_MESSAGES">Mensaxes</text>
+ <text id="IDS_COM_SK_OPTIONS">Opcións</text>
+ <text id="IDS_COM_SK_DONE">Finalizado</text>
+ <text id="IDS_COM_POP_PM">PM</text>
+ <text id="IDS_COM_BODY_UNKNOWN">Descoñecido</text>
+ <text id="IDS_MSG_BODY_DRAFT_MESSAGES">Borradores</text>
+ <text id="IDS_COM_POP_SERVICE_UNAVAILABLE">Servizo non dispoñible</text>
+ <text id="IDS_MSGF_OPT_CREATEMSG_ADD_WORD">Engadir palabra</text>
+ <text id="IDS_MSGF_POP_BLOCK_PS_Q">Bloquear a %s?</text>
+ <text id="IDS_MSG_BODY_CHANGE_TEXT_SIZE_USING_THE_VOLUME_KEY">Cambia o tamaño do texto mediante a tecla de volume</text>
+ <text id="IDS_COM_POP_NEW_MESSAGE">Nova mensaxe</text>
+ <text id="IDS_MSGF_BODY_SPAM_MESSAGES">Mensaxes de correo non desexado</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_INCLUDE">Incluír</text>
+ <text id="IDS_MSGF_BODY_NO_BLOCKED_NUMBERS">No blocked numbers</text>
+ <text id="IDS_MSGF_BODY_BLOCKED_NUMBERS">Números bloqueados</text>
+ <text id="IDS_MSGF_BODY_SETTINGS_MULTIMEDIAMESSAGE">Mensaxes multimedia</text>
+ <text id="IDS_MSGF_BODY_EDIT_WORD">Editar palabra</text>
+ <text id="IDS_MSGF_BODY_EXPIRED">Caducada</text>
+ <text id="IDS_MSGF_BODY_MMSCCCREATIONMODEWARNING">Aviso</text>
+ <text id="IDS_COM_SK_EDIT">Editar</text>
+ <text id="IDS_COM_POP_FAILED">Erro</text>
+ <text id="IDS_MSGF_HEADER_DELETE_NUMBER">Eliminar número</text>
+ <text id="IDS_MSGC_BODY_RECORD_AUDIO">Gravar audio</text>
+ <text id="IDS_COM_SK_BACK">Atrás</text>
+ <text id="IDS_MSGF_BODY_UNICODE">Unicode</text>
+ <text id="IDS_MSGF_HEADER_DELETE_WORDS">Eliminar palabras</text>
+ <text id="IDS_COM_BODY_FORWARD">Reenviar</text>
+ <text id="IDS_MSGF_POP_NOMESSAGES">Non hai mensaxes</text>
+ <text id="IDS_MSGF_OPT_ROAM_NETWORK">Rede estranxeira</text>
+ <text id="IDS_MSGF_BODY_FROM">De</text>
+ <text id="IDS_COM_SK_DELETE">Eliminar</text>
+ <text id="IDS_MSGF_SK3_UNREAD">Non lida</text>
+ <text id="IDS_MSGC_BODY_DUPLICATED_RECIPIENT">Destinatario duplicado</text>
+ <text id="IDS_MSGF_BODY_GSM_ALPHABET">Alfabeto GSM</text>
+ <text id="IDS_MSGF_BODY_SIM_CARD_MESSAGES">Mensaxes da tarxeta SIM</text>
+ <text id="IDS_MSGF_BODY_MMSNOTIMSGSTATUSSENT">Enviada</text>
+ <text id="IDS_COM_BODY_CONTACTS">Contactos</text>
+ <text id="IDS_MSGF_OPT_STATUS">Estado</text>
+ <text id="IDS_MSGF_BODY_MMSCCCREATIONMODEFREE">Libre</text>
+ <text id="IDS_COM_BODY_DETAILS_TYPE">Tipo</text>
+ <text id="IDS_MSGF_BODY_AUTODOWNLOAD">Descarga automática</text>
+ <text id="IDS_MSGF_SK_RESEND">Vol env</text>
+ <text id="IDS_COM_SK_CANCEL">Cancelar</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONS">Opcións de recepción</text>
+ <text id="IDS_COM_BODY_GALLERY">Galería</text>
+ <text id="IDS_MSGC_BUTTON2_DURATION_N_HPD_SECS">Duración\n(%d seg.)</text>
+ <text id="IDS_COM_BODY_SEARCH">Buscar</text>
+ <text id="IDS_MSGF_HEADER_MESSAGE_BOXES">Cadros de mensaxe</text>
+ <text id="IDS_MSGF_HEADER_ADD_NUMBER">Engadir número</text>
+ <text id="IDS_COM_BODY_MEMO">Nota</text>
+ <text id="IDS_MSGF_BODY_COPY_TO_SIM">Copiar á SIM</text>
+ <text id="IDS_MSGF_BODY_ENTER_NUMBER">Introduce o número</text>
+ <text id="IDS_COM_OPT_ADD_CONTACT">Engadir contacto</text>
+ <text id="IDS_MSGF_OPT_HOME_NETWORK">Rede local</text>
+ <text id="IDS_COM_POP_REJECTED">Rexeitada</text>
+ <text id="IDS_COM_BODY_SETTINGS">Axustes</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_START_WITH">Comezar con</text>
+ <text id="IDS_COM_BODY_DISPLAY">Pantalla</text>
+ <text id="IDS_MSGF_OPT_PROTECTION_ON">Protección activada</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONNETWORK_MANUAL">Manual</text>
+ <text id="IDS_SLCD_POP_TEXT_SIM_CARD_ERROR">Tarxeta SIM non dispoñible</text>
+ <text id="IDS_COM_POP_DELETED">Eliminado</text>
+ <text id="IDS_COM_SK_SEND_ABB">Env.</text>
+ <text id="IDS_MSGF_POP_FORWARDED">Reenviada</text>
+ <text id="IDS_MSG_SELECT_NUMBERS">Select numbers (%d)</text>
+ <text id="IDS_MSGF_BODY_CENTRE_PD">Centro %d</text>
+ <text id="IDS_MSGF_HEADER_EDIT_NUMBER">Editar número</text>
+ <text id="IDS_MSGF_BODY_AUTOMATIC">Automática</text>
+ <text id="IDS_MSGF_BODY_VIEW_MESSAGE_DETAILS_ABB">Ver detalles da mens</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONNETWORK_REJECT">Rexeitar</text>
+ <text id="IDS_COM_BODY_VOICE_CALL">Chamada de voz</text>
+ <text id="IDS_MSG_MBODY_USE_THE_VOLUME_KEY">Utiliza a tecla de volume</text>
+ <text id="IDS_COM_SK_SAVE">Gardar</text>
+ <text id="IDS_MSGF_BODY_INVALID_SERVICE_CENTRE_ADDRESS">Invalid service centre address</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_EXACTLY_THE_SAME_AS">Exactamente o mesmo que</text>
+ <text id="IDS_COM_BODY_NO_SEARCH_RESULTS">Non hai resultados da busca</text>
+ <text id="IDS_MSGF_BODY_MMS">MMS</text>
+ <text id="IDS_MSGF_BODY_MMSCREATIONMODE">Modo creación</text>
+ <text id="IDS_MSGF_BODY_TEXT_MESSAGES">Mensaxes de texto</text>
+ <text id="IDS_MSGF_BODY_RECEIVED">Recibido</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_MATCH_CRITERIA">Axustarse a criterios</text>
+ <text id="IDS_MSGF_POP_DEFERRED">Desviada</text>
+ <text id="IDS_COM_SK_ADD">Engadir</text>
+ <text id="IDS_MSGF_OPT_BLOCK">Bloquear</text>
+ <text id="IDS_COM_SK_YES">Si</text>
+ <text id="IDS_MSGC_OPT_VIEW_CONTACT">Ver contacto</text>
+ <text id="IDS_COM_SK_SEARCH">Buscar</text>
+ <text id="IDS_COM_POP_AM_M_ABB">AM</text>
+ <text id="IDS_MSGF_BODY_BLOCKED_WORDS">Palabras bloqueadas</text>
+ <text id="IDS_COM_BODY_SUBJECT">Asunto</text>
+ <text id="IDS_MSGF_POP_UNRECOGNISED">Non recoñecida</text>
+ <text id="IDS_MSGF_BODY_SEND_READ_REPORT">Enviar informe de lectura</text>
+ <text id="IDS_MSGF_SK_RESTORE">Restaurar</text>
+ <text id="IDS_MSGF_BODY_REQUEST_READ_REPORT">Solicitar inform. lectura</text>
+ <text id="IDS_MSGF_BODY_ENTER_WORD">Introducir palabra</text>
+ <text id="IDS_COM_SK3_COMPOSE">Redactar</text>
+ <text id="IDS_COM_POP_UNKNOWN_ERROR_OCCURRED">Houbo un erro descoñecido</text>
+ <text id="IDS_MSGF_BODY_REQUEST_DELIVERY_REPORT">Solicitar informe de entrega</text>
+ <text id="IDS_MSGF_BODY_INVALID_RECIPIENTS">Destinatarios incorrectos</text>
+ <text id="IDS_MSGF_BODY_BROADCASTMESSAGES">Mensaxes de difusión</text>
+ <text id="IDS_MSGF_OPT_SAVE_ATTACHMENT">Gardar adxunto</text>
+ <text id="IDS_MSGF_BODY_DELIVERY_REPORT">Informe de entrega</text>
+ <text id="IDS_MSGC_POP_DISCARD_CURRENT_MESSAGE_Q">Eliminar esta mensaxe?</text>
+ <text id="IDS_COM_POP_ATTACH">Achegar</text>
+ <text id="IDS_COM_BODY_CALENDAR">Calendario</text>
+ <text id="IDS_COM_SK_OK">Aceptar</text>
+ <text id="IDS_COM_SK_CALL">Chamar</text>
+ <text id="IDS_MSGC_BODY_CAPTURE_VIDEO">Capturar Vídeo</text>
+ <text id="IDS_MSG_HEADER_SELECT_RECIPIENT">Seleccionar destinatario</text>
+</string_table>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201301241731" Dversion="20120315">
+ <text id="IDS_MSGF_HEADER_MESSAGE_DETAILS">सन्देश विवरण</text>
+ <text id="IDS_COM_SK3_PREVIEW">पूर्वावलोकन</text>
+ <text id="IDS_COM_BODY_PD_SELECTED">%d चयनित</text>
+ <text id="IDS_MSG_BODY_DURATION_MUST_BE_LONGER_THAN_PD_SECONDS">अवधि %d सेकंड्स से अधिक होनी चाहिए</text>
+ <text id="IDS_DB_POP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED_DELETE_SOME_CHARACTERS">वर्णो की संख्या आधिकतम तक पहुँची. कुछ वर्ण डिलीट करें</text>
+ <text id="IDS_MSGF_BODY_NO_BLOCKED_WORDS">No blocked words</text>
+ <text id="IDS_COM_BODY_SELECT_ALL">सभी चुनें</text>
+ <text id="IDS_MSGF_BODY_NO_SUBJECT">कोई विषय नहीं</text>
+ <text id="IDS_COM_POP_CLOSE">बंद करें</text>
+ <text id="IDS_COM_BODY_TO">को</text>
+ <text id="IDS_MSGC_BODY_TAKE_PICTURE">तस्वीर लें</text>
+ <text id="IDS_COM_POP_DELETE_Q">हटाएँ?</text>
+ <text id="IDS_MSGC_HEADER_INPUTMODE">इनपुट मोड</text>
+ <text id="IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED">प्राप्तकर्ताओं की अधिकतम संख्या (%d) तक पहुँच गया</text>
+ <text id="IDS_COM_SK_NO">नहीं</text>
+ <text id="IDS_COM_BODY_MY_FILES">मेरी फाइलें</text>
+ <text id="IDS_MSGF_BODY_COPY_TO_PHONE">फोन में कॉपी करें</text>
+ <text id="IDS_MSGF_BODY_CB_MESSAGES">CB सन्देश</text>
+ <text id="IDS_MSGF_BODY_SERVICECENTRE">सेवा केंद्र</text>
+ <text id="IDS_COM_BODY_SMS">SMS</text>
+ <text id="IDS_MSGF_POP_SENDING_FAILED_MESSAGE">विफल सन्देश भेजा जा रहा है</text>
+ <text id="IDS_COM_POP_SUCCESS">सफलता</text>
+ <text id="IDS_MSGF_POP_MESSAGES_RECEIVED_FROM_YOUR_CONTACTS_WILL_NOT_BE_BLOCKED_EVEN_IF_THEY_CONTAIN_BLOCKED_NUMBERS">Messages received from your contacts will not be blocked even if they contain blocked numbers</text>
+ <text id="IDS_MSG_SELECT_WORDS">Select words (%d)</text>
+ <text id="IDS_MSGF_BODY_ROAMINGRECEPTION_RESTRICTED">प्रतिबंधित</text>
+ <text id="IDS_MSGF_POP_MESSAGES_RECEIVED_FROM_YOUR_CONTACTS_WILL_NOT_BE_BLOCKED_EVEN_IF_THEY_CONTAIN_BLOCKED_WORDS">आपके संपर्कों से प्राप्त संदेशों को अवरूद्ध नहीं किया जाएगा भले ही उनमें अवरूद्ध किए गए शब्द हों</text>
+ <text id="IDS_MSGF_OPT_UNBLOCK">अनब्लॉक करें</text>
+ <text id="IDS_MSGF_BODY_COPY_MESSAGE_TEXT_ABB">सन्देश टेक्स्ट कॉपी करें</text>
+ <text id="IDS_MSGF_BODY_READ_REPORT">पठित रिपोर्ट</text>
+ <text id="IDS_COM_BODY_MESSAGES">सन्देश</text>
+ <text id="IDS_COM_SK_OPTIONS">विकल्प</text>
+ <text id="IDS_COM_SK_DONE">हुआ</text>
+ <text id="IDS_COM_POP_PM">PM</text>
+ <text id="IDS_COM_BODY_UNKNOWN">अज्ञात</text>
+ <text id="IDS_MSG_BODY_DRAFT_MESSAGES">ड्राफ़्ट संदेश</text>
+ <text id="IDS_COM_POP_SERVICE_UNAVAILABLE">सेवा अनुपलब्ध</text>
+ <text id="IDS_MSGF_OPT_CREATEMSG_ADD_WORD">शब्द जोड़ें</text>
+ <text id="IDS_MSGF_POP_BLOCK_PS_Q">%s ब्लाक करें?</text>
+ <text id="IDS_MSG_BODY_CHANGE_TEXT_SIZE_USING_THE_VOLUME_KEY">वॉल्यूम की का उपयोग करते हुए टेक्स्ट आकार बदलें</text>
+ <text id="IDS_COM_POP_NEW_MESSAGE">नया सन्देश</text>
+ <text id="IDS_MSGF_BODY_SPAM_MESSAGES">स्पैम सन्देश</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_INCLUDE">शामिल करें</text>
+ <text id="IDS_MSGF_BODY_NO_BLOCKED_NUMBERS">No blocked numbers</text>
+ <text id="IDS_MSGF_BODY_BLOCKED_NUMBERS">अवरूद्ध किए गए नंबर</text>
+ <text id="IDS_MSGF_BODY_SETTINGS_MULTIMEDIAMESSAGE">मल्टीमीडिया सन्देश</text>
+ <text id="IDS_MSGF_BODY_EDIT_WORD">शब्द संपादन</text>
+ <text id="IDS_MSGF_BODY_EXPIRED">अवधि समाप्त</text>
+ <text id="IDS_MSGF_BODY_MMSCCCREATIONMODEWARNING">चेतावनी</text>
+ <text id="IDS_COM_SK_EDIT">संपादन</text>
+ <text id="IDS_COM_POP_FAILED">असफल हुआ</text>
+ <text id="IDS_MSGF_HEADER_DELETE_NUMBER">नंबर हटाएँ</text>
+ <text id="IDS_MSGC_BODY_RECORD_AUDIO">ऑडियो रिकॉर्ड करें</text>
+ <text id="IDS_COM_SK_BACK">पीछे</text>
+ <text id="IDS_MSGF_BODY_UNICODE">यूनिकोड</text>
+ <text id="IDS_MSGF_HEADER_DELETE_WORDS">शब्द हटाएँ</text>
+ <text id="IDS_COM_BODY_FORWARD">आगे भेजें</text>
+ <text id="IDS_MSGF_POP_NOMESSAGES">कोई सन्देश नहीं</text>
+ <text id="IDS_MSGF_OPT_ROAM_NETWORK">विदेशी नेटवर्क</text>
+ <text id="IDS_MSGF_BODY_FROM">से</text>
+ <text id="IDS_COM_SK_DELETE">हटाएँ</text>
+ <text id="IDS_MSGF_SK3_UNREAD">अपठित</text>
+ <text id="IDS_MSGC_BODY_DUPLICATED_RECIPIENT">डुप्लीकेट प्राप्तकर्त्ता</text>
+ <text id="IDS_MSGF_BODY_GSM_ALPHABET">GSM वर्णाक्षर</text>
+ <text id="IDS_MSGF_BODY_SIM_CARD_MESSAGES">सीम कार्ड सन्देश</text>
+ <text id="IDS_MSGF_BODY_MMSNOTIMSGSTATUSSENT">भेजा</text>
+ <text id="IDS_COM_BODY_CONTACTS">संपर्क</text>
+ <text id="IDS_MSGF_OPT_STATUS">स्थिति</text>
+ <text id="IDS_MSGF_BODY_MMSCCCREATIONMODEFREE">मुक्त</text>
+ <text id="IDS_COM_BODY_DETAILS_TYPE">प्रकार</text>
+ <text id="IDS_MSGF_BODY_AUTODOWNLOAD">स्वत: डाउनलोड</text>
+ <text id="IDS_MSGF_SK_RESEND">पुनःभेजें</text>
+ <text id="IDS_COM_SK_CANCEL">रद्द</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONS">प्राप्ति के विकल्प</text>
+ <text id="IDS_COM_BODY_GALLERY">गैलरी</text>
+ <text id="IDS_MSGC_BUTTON2_DURATION_N_HPD_SECS">अवधि\n(%d सेकंड)</text>
+ <text id="IDS_COM_BODY_SEARCH">खोजें</text>
+ <text id="IDS_MSGF_HEADER_MESSAGE_BOXES">Message बॉक्सेज़</text>
+ <text id="IDS_MSGF_HEADER_ADD_NUMBER">नंबर जोड़ें</text>
+ <text id="IDS_COM_BODY_MEMO">मेमो</text>
+ <text id="IDS_MSGF_BODY_COPY_TO_SIM">SIM में कॉपी करें</text>
+ <text id="IDS_MSGF_BODY_ENTER_NUMBER">नंबर प्रविष्ट करें</text>
+ <text id="IDS_COM_OPT_ADD_CONTACT">संपर्क जोड़ें</text>
+ <text id="IDS_MSGF_OPT_HOME_NETWORK">होम नेटवर्क</text>
+ <text id="IDS_COM_POP_REJECTED">अस्वीकृत</text>
+ <text id="IDS_COM_BODY_SETTINGS">सेटिंग्स</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_START_WITH">से शुरू करें</text>
+ <text id="IDS_COM_BODY_DISPLAY">प्रदर्शन</text>
+ <text id="IDS_MSGF_OPT_PROTECTION_ON">सुरक्षा चालू</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONNETWORK_MANUAL">मैनुअल</text>
+ <text id="IDS_SLCD_POP_TEXT_SIM_CARD_ERROR">SIM कार्ड अनुपलब्ध</text>
+ <text id="IDS_COM_POP_DELETED">हटाया गया</text>
+ <text id="IDS_COM_SK_SEND_ABB">भेजें</text>
+ <text id="IDS_MSGF_POP_FORWARDED">आगे किया गया</text>
+ <text id="IDS_MSG_SELECT_NUMBERS">Select numbers (%d)</text>
+ <text id="IDS_MSGF_BODY_CENTRE_PD">केंद्र %d</text>
+ <text id="IDS_MSGF_HEADER_EDIT_NUMBER">नंबर संपादित करें</text>
+ <text id="IDS_MSGF_BODY_AUTOMATIC">स्वचालित</text>
+ <text id="IDS_MSGF_BODY_VIEW_MESSAGE_DETAILS_ABB">सन्देश विवरण देखें</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONNETWORK_REJECT">अस्वीकारें</text>
+ <text id="IDS_COM_BODY_VOICE_CALL">वॉइस कॉल</text>
+ <text id="IDS_MSG_MBODY_USE_THE_VOLUME_KEY">वॉल्यूम की का उपयोग करें</text>
+ <text id="IDS_COM_SK_SAVE">सेव</text>
+ <text id="IDS_MSGF_BODY_INVALID_SERVICE_CENTRE_ADDRESS">Invalid service centre address</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_EXACTLY_THE_SAME_AS">ठीक ऐसा ही</text>
+ <text id="IDS_COM_BODY_NO_SEARCH_RESULTS">कोई खोज परिणाम नहीं</text>
+ <text id="IDS_MSGF_BODY_MMS">MMS</text>
+ <text id="IDS_MSGF_BODY_MMSCREATIONMODE">निर्माण मोड</text>
+ <text id="IDS_MSGF_BODY_TEXT_MESSAGES">टेक्स्ट सन्देश</text>
+ <text id="IDS_MSGF_BODY_RECEIVED">प्राप्त हुआ</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_MATCH_CRITERIA">कसौटी मिलाएँ</text>
+ <text id="IDS_MSGF_POP_DEFERRED">स्थगित</text>
+ <text id="IDS_COM_SK_ADD">जोड़ें</text>
+ <text id="IDS_MSGF_OPT_BLOCK">ब्लॉक करें</text>
+ <text id="IDS_COM_SK_YES">हाँ</text>
+ <text id="IDS_MSGC_OPT_VIEW_CONTACT">संपर्क देखें</text>
+ <text id="IDS_COM_SK_SEARCH">खोजें</text>
+ <text id="IDS_COM_POP_AM_M_ABB">ए ऍम</text>
+ <text id="IDS_MSGF_BODY_BLOCKED_WORDS">अवरूद्ध किए गए शब्द</text>
+ <text id="IDS_COM_BODY_SUBJECT">विषय</text>
+ <text id="IDS_MSGF_POP_UNRECOGNISED">अपरिचित</text>
+ <text id="IDS_MSGF_BODY_SEND_READ_REPORT">पठित रिपोर्ट भेजें</text>
+ <text id="IDS_MSGF_SK_RESTORE">रीस्टोर</text>
+ <text id="IDS_MSGF_BODY_REQUEST_READ_REPORT">पठित रिपोर्ट के लिए अनुरोध</text>
+ <text id="IDS_MSGF_BODY_ENTER_WORD">शब्द दर्ज करें</text>
+ <text id="IDS_COM_SK3_COMPOSE">लिखें</text>
+ <text id="IDS_COM_POP_UNKNOWN_ERROR_OCCURRED">अज्ञात त्रुटि पायी गयी</text>
+ <text id="IDS_MSGF_BODY_REQUEST_DELIVERY_REPORT">वितरण रिपोर्ट के लिए अनुरोध</text>
+ <text id="IDS_MSGF_BODY_INVALID_RECIPIENTS">अमान्य प्राप्तकर्ता</text>
+ <text id="IDS_MSGF_BODY_BROADCASTMESSAGES">प्रसारण सन्देश</text>
+ <text id="IDS_MSGF_OPT_SAVE_ATTACHMENT">संलग्नक सुरक्षित करें</text>
+ <text id="IDS_MSGF_BODY_DELIVERY_REPORT">वितरण रिपोर्ट</text>
+ <text id="IDS_MSGC_POP_DISCARD_CURRENT_MESSAGE_Q">वर्तमान सन्देश निरस्त करें?</text>
+ <text id="IDS_COM_POP_ATTACH">जोड़ें</text>
+ <text id="IDS_COM_BODY_CALENDAR">कैलेंडर</text>
+ <text id="IDS_COM_SK_OK">ओके</text>
+ <text id="IDS_COM_SK_CALL">कॉल</text>
+ <text id="IDS_MSGC_BODY_CAPTURE_VIDEO">वीडियो कैप्चर करें</text>
+ <text id="IDS_MSG_HEADER_SELECT_RECIPIENT">प्राप्तकर्ता चुनें</text>
+</string_table>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201301241731" Dversion="20120315">
+ <text id="IDS_MSGF_HEADER_MESSAGE_DETAILS">Detalji poruke</text>
+ <text id="IDS_COM_SK3_PREVIEW">Pregled</text>
+ <text id="IDS_COM_BODY_PD_SELECTED">%d odabrano</text>
+ <text id="IDS_MSG_BODY_DURATION_MUST_BE_LONGER_THAN_PD_SECONDS">Trajanje mora biti dulje od %d sek</text>
+ <text id="IDS_DB_POP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED_DELETE_SOME_CHARACTERS">Premašen maks. broj znakova. Obrišite neke</text>
+ <text id="IDS_MSGF_BODY_NO_BLOCKED_WORDS">No blocked words</text>
+ <text id="IDS_COM_BODY_SELECT_ALL">Odaberi sve</text>
+ <text id="IDS_MSGF_BODY_NO_SUBJECT">Bez naslova</text>
+ <text id="IDS_COM_POP_CLOSE">Prekid</text>
+ <text id="IDS_COM_BODY_TO">Za</text>
+ <text id="IDS_MSGC_BODY_TAKE_PICTURE">Fotografiranje</text>
+ <text id="IDS_COM_POP_DELETE_Q">Obrisati?</text>
+ <text id="IDS_MSGC_HEADER_INPUTMODE">Način unosa teksta</text>
+ <text id="IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED">Maksimalni broj primatelja (%d)</text>
+ <text id="IDS_COM_SK_NO">Ne</text>
+ <text id="IDS_COM_BODY_MY_FILES">Moje datoteke</text>
+ <text id="IDS_MSGF_BODY_COPY_TO_PHONE">Kopiraj na telefon</text>
+ <text id="IDS_MSGF_BODY_CB_MESSAGES">CB poruke</text>
+ <text id="IDS_MSGF_BODY_SERVICECENTRE">Centar za usluge</text>
+ <text id="IDS_COM_BODY_SMS">SMS</text>
+ <text id="IDS_MSGF_POP_SENDING_FAILED_MESSAGE">Slanje neuspješnih poruka</text>
+ <text id="IDS_COM_POP_SUCCESS">Uspješno</text>
+ <text id="IDS_MSGF_POP_MESSAGES_RECEIVED_FROM_YOUR_CONTACTS_WILL_NOT_BE_BLOCKED_EVEN_IF_THEY_CONTAIN_BLOCKED_NUMBERS">Messages received from your contacts will not be blocked even if they contain blocked numbers</text>
+ <text id="IDS_MSG_SELECT_WORDS">Select words (%d)</text>
+ <text id="IDS_MSGF_BODY_ROAMINGRECEPTION_RESTRICTED">Ograničeno</text>
+ <text id="IDS_MSGF_POP_MESSAGES_RECEIVED_FROM_YOUR_CONTACTS_WILL_NOT_BE_BLOCKED_EVEN_IF_THEY_CONTAIN_BLOCKED_WORDS">Poruke primljene iz kontakata neće biti blokirane niti ako sadrže blokirane riječi</text>
+ <text id="IDS_MSGF_OPT_UNBLOCK">Odblokiraj</text>
+ <text id="IDS_MSGF_BODY_COPY_MESSAGE_TEXT_ABB">Kopiraj tekst poruke</text>
+ <text id="IDS_MSGF_BODY_READ_REPORT">Izvještaj o čitanju</text>
+ <text id="IDS_COM_BODY_MESSAGES">Poruke</text>
+ <text id="IDS_COM_SK_OPTIONS">Opcije</text>
+ <text id="IDS_COM_SK_DONE">OK</text>
+ <text id="IDS_COM_POP_PM">PM</text>
+ <text id="IDS_COM_BODY_UNKNOWN">Nepoznato</text>
+ <text id="IDS_MSG_BODY_DRAFT_MESSAGES">Poruke iz pripreme</text>
+ <text id="IDS_COM_POP_SERVICE_UNAVAILABLE">Usluga nedostupna</text>
+ <text id="IDS_MSGF_OPT_CREATEMSG_ADD_WORD">Dodaj riječ</text>
+ <text id="IDS_MSGF_POP_BLOCK_PS_Q">Blokirati %s?</text>
+ <text id="IDS_MSG_BODY_CHANGE_TEXT_SIZE_USING_THE_VOLUME_KEY">Promijenite veličinu teksta pomoću tipke za glasnoću</text>
+ <text id="IDS_COM_POP_NEW_MESSAGE">Nova poruka</text>
+ <text id="IDS_MSGF_BODY_SPAM_MESSAGES">Neželjene poruke</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_INCLUDE">Sadrži</text>
+ <text id="IDS_MSGF_BODY_NO_BLOCKED_NUMBERS">No blocked numbers</text>
+ <text id="IDS_MSGF_BODY_BLOCKED_NUMBERS">Blokirani brojevi</text>
+ <text id="IDS_MSGF_BODY_SETTINGS_MULTIMEDIAMESSAGE">MMS poruke</text>
+ <text id="IDS_MSGF_BODY_EDIT_WORD">Uredi riječ</text>
+ <text id="IDS_MSGF_BODY_EXPIRED">Isteklo</text>
+ <text id="IDS_MSGF_BODY_MMSCCCREATIONMODEWARNING">Upozorenje</text>
+ <text id="IDS_COM_SK_EDIT">Uredi</text>
+ <text id="IDS_COM_POP_FAILED">Neuspješno</text>
+ <text id="IDS_MSGF_HEADER_DELETE_NUMBER">Obriši broj</text>
+ <text id="IDS_MSGC_BODY_RECORD_AUDIO">Snimi zvuk</text>
+ <text id="IDS_COM_SK_BACK">Nazad</text>
+ <text id="IDS_MSGF_BODY_UNICODE">Unicode</text>
+ <text id="IDS_MSGF_HEADER_DELETE_WORDS">Obriši riječi</text>
+ <text id="IDS_COM_BODY_FORWARD">Proslijedi</text>
+ <text id="IDS_MSGF_POP_NOMESSAGES">Nema poruka</text>
+ <text id="IDS_MSGF_OPT_ROAM_NETWORK">Roaming</text>
+ <text id="IDS_MSGF_BODY_FROM">Od</text>
+ <text id="IDS_COM_SK_DELETE">Obriši</text>
+ <text id="IDS_MSGF_SK3_UNREAD">Nepročitano</text>
+ <text id="IDS_MSGC_BODY_DUPLICATED_RECIPIENT">Primatelji su duplicirani</text>
+ <text id="IDS_MSGF_BODY_GSM_ALPHABET">GSM abeceda</text>
+ <text id="IDS_MSGF_BODY_SIM_CARD_MESSAGES">Poruke na SIM kartici</text>
+ <text id="IDS_MSGF_BODY_MMSNOTIMSGSTATUSSENT">Poslano</text>
+ <text id="IDS_COM_BODY_CONTACTS">Imenik</text>
+ <text id="IDS_MSGF_OPT_STATUS">Status</text>
+ <text id="IDS_MSGF_BODY_MMSCCCREATIONMODEFREE">Slobodno</text>
+ <text id="IDS_COM_BODY_DETAILS_TYPE">Vrsta</text>
+ <text id="IDS_MSGF_BODY_AUTODOWNLOAD">Auto. skidanje</text>
+ <text id="IDS_MSGF_SK_RESEND">Pon. pošalji</text>
+ <text id="IDS_COM_SK_CANCEL">Prekid</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONS">Opcije primanja</text>
+ <text id="IDS_COM_BODY_GALLERY">Album</text>
+ <text id="IDS_MSGC_BUTTON2_DURATION_N_HPD_SECS">Trajanje\n(%d sek)</text>
+ <text id="IDS_COM_BODY_SEARCH">Traži</text>
+ <text id="IDS_MSGF_HEADER_MESSAGE_BOXES">Okviri poruka</text>
+ <text id="IDS_MSGF_HEADER_ADD_NUMBER">Dodaj broj</text>
+ <text id="IDS_COM_BODY_MEMO">Zapis</text>
+ <text id="IDS_MSGF_BODY_COPY_TO_SIM">Kopiraj na SIM</text>
+ <text id="IDS_MSGF_BODY_ENTER_NUMBER">Unesite broj</text>
+ <text id="IDS_COM_OPT_ADD_CONTACT">Dodaj kontakt</text>
+ <text id="IDS_MSGF_OPT_HOME_NETWORK">Matična mreža</text>
+ <text id="IDS_COM_POP_REJECTED">Odbačeno</text>
+ <text id="IDS_COM_BODY_SETTINGS">Postavke</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_START_WITH">Započni s</text>
+ <text id="IDS_COM_BODY_DISPLAY">Zaslon</text>
+ <text id="IDS_MSGF_OPT_PROTECTION_ON">Uključi zaštitu</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONNETWORK_MANUAL">Ručno</text>
+ <text id="IDS_SLCD_POP_TEXT_SIM_CARD_ERROR">Pogreška SIM-kartice</text>
+ <text id="IDS_COM_POP_DELETED">Obrisano</text>
+ <text id="IDS_COM_SK_SEND_ABB">Pošalji</text>
+ <text id="IDS_MSGF_POP_FORWARDED">Proslijeđeno</text>
+ <text id="IDS_MSG_SELECT_NUMBERS">Select numbers (%d)</text>
+ <text id="IDS_MSGF_BODY_CENTRE_PD">Centar %d</text>
+ <text id="IDS_MSGF_HEADER_EDIT_NUMBER">Izmijeni broj</text>
+ <text id="IDS_MSGF_BODY_AUTOMATIC">Automatski</text>
+ <text id="IDS_MSGF_BODY_VIEW_MESSAGE_DETAILS_ABB">Prikaz detalja</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONNETWORK_REJECT">Odbaci poziv</text>
+ <text id="IDS_COM_BODY_VOICE_CALL">Poziv</text>
+ <text id="IDS_MSG_MBODY_USE_THE_VOLUME_KEY">Upotreba tipke glasnoće</text>
+ <text id="IDS_COM_SK_SAVE">Spremi</text>
+ <text id="IDS_MSGF_BODY_INVALID_SERVICE_CENTRE_ADDRESS">Invalid service centre address</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_EXACTLY_THE_SAME_AS">Točno kao prikazan</text>
+ <text id="IDS_COM_BODY_NO_SEARCH_RESULTS">Nema traženih rezultata</text>
+ <text id="IDS_MSGF_BODY_MMS">MMS</text>
+ <text id="IDS_MSGF_BODY_MMSCREATIONMODE">Način sastavljanja</text>
+ <text id="IDS_MSGF_BODY_TEXT_MESSAGES">SMS poruke</text>
+ <text id="IDS_MSGF_BODY_RECEIVED">Primljeno</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_MATCH_CRITERIA">Kriterij podudaranja</text>
+ <text id="IDS_MSGF_POP_DEFERRED">Odgođena</text>
+ <text id="IDS_COM_SK_ADD">Dodaj</text>
+ <text id="IDS_MSGF_OPT_BLOCK">Blokiraj</text>
+ <text id="IDS_COM_SK_YES">Da</text>
+ <text id="IDS_MSGC_OPT_VIEW_CONTACT">Prikaz kontakta</text>
+ <text id="IDS_COM_SK_SEARCH">Traži</text>
+ <text id="IDS_COM_POP_AM_M_ABB">AM</text>
+ <text id="IDS_MSGF_BODY_BLOCKED_WORDS">Blokirane riječi</text>
+ <text id="IDS_COM_BODY_SUBJECT">Naslov</text>
+ <text id="IDS_MSGF_POP_UNRECOGNISED">Neprepoznato</text>
+ <text id="IDS_MSGF_BODY_SEND_READ_REPORT">Slanje izvještaja čitanosti</text>
+ <text id="IDS_MSGF_SK_RESTORE">Vrati</text>
+ <text id="IDS_MSGF_BODY_REQUEST_READ_REPORT">Izvješće čitanja</text>
+ <text id="IDS_MSGF_BODY_ENTER_WORD">Unesite riječ</text>
+ <text id="IDS_COM_SK3_COMPOSE">Novo</text>
+ <text id="IDS_COM_POP_UNKNOWN_ERROR_OCCURRED">Nepoznata greška</text>
+ <text id="IDS_MSGF_BODY_REQUEST_DELIVERY_REPORT">Izvješće isporuke</text>
+ <text id="IDS_MSGF_BODY_INVALID_RECIPIENTS">Greška primatelja</text>
+ <text id="IDS_MSGF_BODY_BROADCASTMESSAGES">Info poruke mreže</text>
+ <text id="IDS_MSGF_OPT_SAVE_ATTACHMENT">Spremi privitak</text>
+ <text id="IDS_MSGF_BODY_DELIVERY_REPORT">Izvješće o isporuci</text>
+ <text id="IDS_MSGC_POP_DISCARD_CURRENT_MESSAGE_Q">Odbaciti trenutnu poruku?</text>
+ <text id="IDS_COM_POP_ATTACH">Dodaj</text>
+ <text id="IDS_COM_BODY_CALENDAR">Kalendar</text>
+ <text id="IDS_COM_SK_OK">OK</text>
+ <text id="IDS_COM_SK_CALL">Poziv</text>
+ <text id="IDS_MSGC_BODY_CAPTURE_VIDEO">Snimanje videa</text>
+ <text id="IDS_MSG_HEADER_SELECT_RECIPIENT">Odaberite primatelja</text>
+</string_table>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201301241731" Dversion="20120315">
+ <text id="IDS_MSGF_HEADER_MESSAGE_DETAILS">Üzenet részletei</text>
+ <text id="IDS_COM_SK3_PREVIEW">Előnézet</text>
+ <text id="IDS_COM_BODY_PD_SELECTED">%d kiválasztva</text>
+ <text id="IDS_MSG_BODY_DURATION_MUST_BE_LONGER_THAN_PD_SECONDS">Az időtartamnak hosszabbnak kel lennie %d másodpercnél</text>
+ <text id="IDS_DB_POP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED_DELETE_SOME_CHARACTERS">Túllépte a karakterek maximális számát. Töröljön néhány karaktert</text>
+ <text id="IDS_MSGF_BODY_NO_BLOCKED_WORDS">No blocked words</text>
+ <text id="IDS_COM_BODY_SELECT_ALL">Összes kijelölése</text>
+ <text id="IDS_MSGF_BODY_NO_SUBJECT">Üres tárgymező</text>
+ <text id="IDS_COM_POP_CLOSE">Bezárás</text>
+ <text id="IDS_COM_BODY_TO">Címzett</text>
+ <text id="IDS_MSGC_BODY_TAKE_PICTURE">Kép készítése</text>
+ <text id="IDS_COM_POP_DELETE_Q">Törli?</text>
+ <text id="IDS_MSGC_HEADER_INPUTMODE">Szövegbeviteli üzemmód</text>
+ <text id="IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED">Elérte a címzettek maximális számát (%d)</text>
+ <text id="IDS_COM_SK_NO">Nem</text>
+ <text id="IDS_COM_BODY_MY_FILES">Saját fájlok</text>
+ <text id="IDS_MSGF_BODY_COPY_TO_PHONE">Másolás telefonra</text>
+ <text id="IDS_MSGF_BODY_CB_MESSAGES">Hírüzenetek</text>
+ <text id="IDS_MSGF_BODY_SERVICECENTRE">Szolgáltatásközpont</text>
+ <text id="IDS_COM_BODY_SMS">SMS</text>
+ <text id="IDS_MSGF_POP_SENDING_FAILED_MESSAGE">Sikertelen üzenet küldése</text>
+ <text id="IDS_COM_POP_SUCCESS">Sikeres</text>
+ <text id="IDS_MSGF_POP_MESSAGES_RECEIVED_FROM_YOUR_CONTACTS_WILL_NOT_BE_BLOCKED_EVEN_IF_THEY_CONTAIN_BLOCKED_NUMBERS">Messages received from your contacts will not be blocked even if they contain blocked numbers</text>
+ <text id="IDS_MSG_SELECT_WORDS">Select words (%d)</text>
+ <text id="IDS_MSGF_BODY_ROAMINGRECEPTION_RESTRICTED">Korlátozva</text>
+ <text id="IDS_MSGF_POP_MESSAGES_RECEIVED_FROM_YOUR_CONTACTS_WILL_NOT_BE_BLOCKED_EVEN_IF_THEY_CONTAIN_BLOCKED_WORDS">A névjegyzékben szereplő címekről kapott üzenetek nem lesznek blokkolva, hacsak nem tartalmaznak tiltott szavakat</text>
+ <text id="IDS_MSGF_OPT_UNBLOCK">Feloldás</text>
+ <text id="IDS_MSGF_BODY_COPY_MESSAGE_TEXT_ABB">Üzenetszöv. másolása</text>
+ <text id="IDS_MSGF_BODY_READ_REPORT">Jelentést olvas</text>
+ <text id="IDS_COM_BODY_MESSAGES">Üzenetek</text>
+ <text id="IDS_COM_SK_OPTIONS">Opciók</text>
+ <text id="IDS_COM_SK_DONE">Kész</text>
+ <text id="IDS_COM_POP_PM">du.</text>
+ <text id="IDS_COM_BODY_UNKNOWN">Ismeretlen</text>
+ <text id="IDS_MSG_BODY_DRAFT_MESSAGES">Piszkozatok</text>
+ <text id="IDS_COM_POP_SERVICE_UNAVAILABLE">Szolgáltatás nem elérhető</text>
+ <text id="IDS_MSGF_OPT_CREATEMSG_ADD_WORD">Szó hozzáadása</text>
+ <text id="IDS_MSGF_POP_BLOCK_PS_Q">Letiltja %s felhasználót?</text>
+ <text id="IDS_MSG_BODY_CHANGE_TEXT_SIZE_USING_THE_VOLUME_KEY">A hangerőgombbal módosíthatja a szövegméretet</text>
+ <text id="IDS_COM_POP_NEW_MESSAGE">Új üzenet</text>
+ <text id="IDS_MSGF_BODY_SPAM_MESSAGES">Levélszemét</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_INCLUDE">Belefoglalás</text>
+ <text id="IDS_MSGF_BODY_NO_BLOCKED_NUMBERS">No blocked numbers</text>
+ <text id="IDS_MSGF_BODY_BLOCKED_NUMBERS">Blokkolt számok</text>
+ <text id="IDS_MSGF_BODY_SETTINGS_MULTIMEDIAMESSAGE">Multimédia üzenetek</text>
+ <text id="IDS_MSGF_BODY_EDIT_WORD">Szó szerkesztése</text>
+ <text id="IDS_MSGF_BODY_EXPIRED">Lejárt</text>
+ <text id="IDS_MSGF_BODY_MMSCCCREATIONMODEWARNING">Figyelmeztetés</text>
+ <text id="IDS_COM_SK_EDIT">Szerkeszt</text>
+ <text id="IDS_COM_POP_FAILED">Sikertelen</text>
+ <text id="IDS_MSGF_HEADER_DELETE_NUMBER">Szám törlése</text>
+ <text id="IDS_MSGC_BODY_RECORD_AUDIO">Hang rögzítése</text>
+ <text id="IDS_COM_SK_BACK">Vissza</text>
+ <text id="IDS_MSGF_BODY_UNICODE">Ékezetes</text>
+ <text id="IDS_MSGF_HEADER_DELETE_WORDS">Szavak törlése</text>
+ <text id="IDS_COM_BODY_FORWARD">Továbbítás</text>
+ <text id="IDS_MSGF_POP_NOMESSAGES">Nincs üzenet</text>
+ <text id="IDS_MSGF_OPT_ROAM_NETWORK">Roamingban használt hálózat</text>
+ <text id="IDS_MSGF_BODY_FROM">Feladó</text>
+ <text id="IDS_COM_SK_DELETE">Töröl</text>
+ <text id="IDS_MSGF_SK3_UNREAD">Olv.tlan</text>
+ <text id="IDS_MSGC_BODY_DUPLICATED_RECIPIENT">Kétszer előforduló címzett</text>
+ <text id="IDS_MSGF_BODY_GSM_ALPHABET">Ékezet nélkül</text>
+ <text id="IDS_MSGF_BODY_SIM_CARD_MESSAGES">SIM-üzenetek</text>
+ <text id="IDS_MSGF_BODY_MMSNOTIMSGSTATUSSENT">Elküldve</text>
+ <text id="IDS_COM_BODY_CONTACTS">Névjegyek</text>
+ <text id="IDS_MSGF_OPT_STATUS">Állapot</text>
+ <text id="IDS_MSGF_BODY_MMSCCCREATIONMODEFREE">Szabad</text>
+ <text id="IDS_COM_BODY_DETAILS_TYPE">Típus</text>
+ <text id="IDS_MSGF_BODY_AUTODOWNLOAD">Automatikus letöltés</text>
+ <text id="IDS_MSGF_SK_RESEND">Újraküld</text>
+ <text id="IDS_COM_SK_CANCEL">Mégse</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONS">Fogadás beállítások</text>
+ <text id="IDS_COM_BODY_GALLERY">Galéria</text>
+ <text id="IDS_MSGC_BUTTON2_DURATION_N_HPD_SECS">Időtartam\n(%d mp)</text>
+ <text id="IDS_COM_BODY_SEARCH">Keresés</text>
+ <text id="IDS_MSGF_HEADER_MESSAGE_BOXES">Üzenetablakok</text>
+ <text id="IDS_MSGF_HEADER_ADD_NUMBER">Szám hozzáadása</text>
+ <text id="IDS_COM_BODY_MEMO">Jegyzet</text>
+ <text id="IDS_MSGF_BODY_COPY_TO_SIM">Másolás SIM-re</text>
+ <text id="IDS_MSGF_BODY_ENTER_NUMBER">Írja be a számot</text>
+ <text id="IDS_COM_OPT_ADD_CONTACT">Új névjegy</text>
+ <text id="IDS_MSGF_OPT_HOME_NETWORK">Saját hálózat</text>
+ <text id="IDS_COM_POP_REJECTED">Elutasítva</text>
+ <text id="IDS_COM_BODY_SETTINGS">Beállítások</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_START_WITH">Ezzel kezdődik:</text>
+ <text id="IDS_COM_BODY_DISPLAY">Kijelző</text>
+ <text id="IDS_MSGF_OPT_PROTECTION_ON">Védelem bekapcsolva</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONNETWORK_MANUAL">Kézi</text>
+ <text id="IDS_SLCD_POP_TEXT_SIM_CARD_ERROR">SIM-kártyahiba</text>
+ <text id="IDS_COM_POP_DELETED">Törölve</text>
+ <text id="IDS_COM_SK_SEND_ABB">Küldés</text>
+ <text id="IDS_MSGF_POP_FORWARDED">Továbbított</text>
+ <text id="IDS_MSG_SELECT_NUMBERS">Select numbers (%d)</text>
+ <text id="IDS_MSGF_BODY_CENTRE_PD">%d. központ</text>
+ <text id="IDS_MSGF_HEADER_EDIT_NUMBER">Szám szerkesztése</text>
+ <text id="IDS_MSGF_BODY_AUTOMATIC">Automatikus</text>
+ <text id="IDS_MSGF_BODY_VIEW_MESSAGE_DETAILS_ABB">Üz.adatok megtekint.</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONNETWORK_REJECT">Elutasít</text>
+ <text id="IDS_COM_BODY_VOICE_CALL">Hanghívás</text>
+ <text id="IDS_MSG_MBODY_USE_THE_VOLUME_KEY">Hangerőgomb használata</text>
+ <text id="IDS_COM_SK_SAVE">Ment</text>
+ <text id="IDS_MSGF_BODY_INVALID_SERVICE_CENTRE_ADDRESS">Invalid service centre address</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_EXACTLY_THE_SAME_AS">Pontosan ugyanaz, mint</text>
+ <text id="IDS_COM_BODY_NO_SEARCH_RESULTS">Nincs találat</text>
+ <text id="IDS_MSGF_BODY_MMS">MMS</text>
+ <text id="IDS_MSGF_BODY_MMSCREATIONMODE">Létrehozási mód</text>
+ <text id="IDS_MSGF_BODY_TEXT_MESSAGES">Szöveges üzenetek</text>
+ <text id="IDS_MSGF_BODY_RECEIVED">Fogadva</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_MATCH_CRITERIA">Egyezőségi feltétel</text>
+ <text id="IDS_MSGF_POP_DEFERRED">Elhalasztva</text>
+ <text id="IDS_COM_SK_ADD">Hozzáad</text>
+ <text id="IDS_MSGF_OPT_BLOCK">Letiltás</text>
+ <text id="IDS_COM_SK_YES">Igen</text>
+ <text id="IDS_MSGC_OPT_VIEW_CONTACT">Névjegy megtekintése</text>
+ <text id="IDS_COM_SK_SEARCH">Keresés</text>
+ <text id="IDS_COM_POP_AM_M_ABB">de.</text>
+ <text id="IDS_MSGF_BODY_BLOCKED_WORDS">Tiltott szavak</text>
+ <text id="IDS_COM_BODY_SUBJECT">Tárgy</text>
+ <text id="IDS_MSGF_POP_UNRECOGNISED">Nem felismert</text>
+ <text id="IDS_MSGF_BODY_SEND_READ_REPORT">Olvasási jelentés küldése</text>
+ <text id="IDS_MSGF_SK_RESTORE">Visz.áll.</text>
+ <text id="IDS_MSGF_BODY_REQUEST_READ_REPORT">Olvasási jelentést kér</text>
+ <text id="IDS_MSGF_BODY_ENTER_WORD">Írja be a szót</text>
+ <text id="IDS_COM_SK3_COMPOSE">Új üzenet</text>
+ <text id="IDS_COM_POP_UNKNOWN_ERROR_OCCURRED">Ismeretlen eredetű hiba történt</text>
+ <text id="IDS_MSGF_BODY_REQUEST_DELIVERY_REPORT">Kézbesítési jelentést kér</text>
+ <text id="IDS_MSGF_BODY_INVALID_RECIPIENTS">Érvénytelen címzettek</text>
+ <text id="IDS_MSGF_BODY_BROADCASTMESSAGES">Hálózati hírüzenetek</text>
+ <text id="IDS_MSGF_OPT_SAVE_ATTACHMENT">Melléklet mentése</text>
+ <text id="IDS_MSGF_BODY_DELIVERY_REPORT">Kézbesítési jelentés</text>
+ <text id="IDS_MSGC_POP_DISCARD_CURRENT_MESSAGE_Q">Elveti a jelenlegi üzenetet?</text>
+ <text id="IDS_COM_POP_ATTACH">Csatolás</text>
+ <text id="IDS_COM_BODY_CALENDAR">Naptár</text>
+ <text id="IDS_COM_SK_OK">OK</text>
+ <text id="IDS_COM_SK_CALL">Hívás</text>
+ <text id="IDS_MSGC_BODY_CAPTURE_VIDEO">Videó rögzítése</text>
+ <text id="IDS_MSG_HEADER_SELECT_RECIPIENT">Címzett kiválasztása</text>
+</string_table>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201301241731" Dversion="20120315">
+ <text id="IDS_MSGF_HEADER_MESSAGE_DETAILS">Հաղորդագրության մանրամասներ</text>
+ <text id="IDS_COM_SK3_PREVIEW">Դիտում</text>
+ <text id="IDS_COM_BODY_PD_SELECTED">%d ընտրվել է</text>
+ <text id="IDS_MSG_BODY_DURATION_MUST_BE_LONGER_THAN_PD_SECONDS">Տևողությունը պետք է լինի %d վայրկյանից երկար</text>
+ <text id="IDS_DB_POP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED_DELETE_SOME_CHARACTERS">Հասել եք նիշերի առավելագույն քանակին: Ջնջեք որոշ նիշեր</text>
+ <text id="IDS_MSGF_BODY_NO_BLOCKED_WORDS">No blocked words</text>
+ <text id="IDS_COM_BODY_SELECT_ALL">Ընտրել բոլորը</text>
+ <text id="IDS_MSGF_BODY_NO_SUBJECT">Թեմա չկա</text>
+ <text id="IDS_COM_POP_CLOSE">Փակել</text>
+ <text id="IDS_COM_BODY_TO">Ում</text>
+ <text id="IDS_MSGC_BODY_TAKE_PICTURE">Նկարել</text>
+ <text id="IDS_COM_POP_DELETE_Q">Ջնջե՞լ</text>
+ <text id="IDS_MSGC_HEADER_INPUTMODE">Ներմուծման ռեժիմ</text>
+ <text id="IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED">Հասել է հասցեատերերի առավելագույն քանակին (%d)</text>
+ <text id="IDS_COM_SK_NO">Ոչ</text>
+ <text id="IDS_COM_BODY_MY_FILES">Իմ Ֆայլերը</text>
+ <text id="IDS_MSGF_BODY_COPY_TO_PHONE">Պատճենել հեռախոսի մեջ</text>
+ <text id="IDS_MSGF_BODY_CB_MESSAGES">ԲՀ հաղորդագրություններ</text>
+ <text id="IDS_MSGF_BODY_SERVICECENTRE">Սպասարկման կենտրոն</text>
+ <text id="IDS_COM_BODY_SMS">SMS</text>
+ <text id="IDS_MSGF_POP_SENDING_FAILED_MESSAGE">Հաղորդագրության ուղարկումը ձախողվեց</text>
+ <text id="IDS_COM_POP_SUCCESS">Հաջողված է</text>
+ <text id="IDS_MSGF_POP_MESSAGES_RECEIVED_FROM_YOUR_CONTACTS_WILL_NOT_BE_BLOCKED_EVEN_IF_THEY_CONTAIN_BLOCKED_NUMBERS">Messages received from your contacts will not be blocked even if they contain blocked numbers</text>
+ <text id="IDS_MSG_SELECT_WORDS">Select words (%d)</text>
+ <text id="IDS_MSGF_BODY_ROAMINGRECEPTION_RESTRICTED">Արգելված է</text>
+ <text id="IDS_MSGF_POP_MESSAGES_RECEIVED_FROM_YOUR_CONTACTS_WILL_NOT_BE_BLOCKED_EVEN_IF_THEY_CONTAIN_BLOCKED_WORDS">Ձեր կոնտակտներից ստացված հաղորդագրությունները չեն արգելափակվի, նույնիսկ եթե դրանք պարունակում են արգելափակված բառեր</text>
+ <text id="IDS_MSGF_OPT_UNBLOCK">Հանել արգելափակումից</text>
+ <text id="IDS_MSGF_BODY_COPY_MESSAGE_TEXT_ABB">Պատճենել հղգրն տեքստ</text>
+ <text id="IDS_MSGF_BODY_READ_REPORT">Ընթերցման հաշվետվություն</text>
+ <text id="IDS_COM_BODY_MESSAGES">Հղրդգրթ</text>
+ <text id="IDS_COM_SK_OPTIONS">Ընտրանքնր</text>
+ <text id="IDS_COM_SK_DONE">Պատրաստ</text>
+ <text id="IDS_COM_POP_PM">PM</text>
+ <text id="IDS_COM_BODY_UNKNOWN">Անհայտ</text>
+ <text id="IDS_MSG_BODY_DRAFT_MESSAGES">Սևագիր հաղորդագրություններ</text>
+ <text id="IDS_COM_POP_SERVICE_UNAVAILABLE">Ծառայությունը անհասանելի է</text>
+ <text id="IDS_MSGF_OPT_CREATEMSG_ADD_WORD">Ավելացնել բառ</text>
+ <text id="IDS_MSGF_POP_BLOCK_PS_Q">Արգելափակե՞լ %sին:</text>
+ <text id="IDS_MSG_BODY_CHANGE_TEXT_SIZE_USING_THE_VOLUME_KEY">Փոխել տեքստի չափը՝ օգտագործելով ձայնի ուժգնության ստեղնը</text>
+ <text id="IDS_COM_POP_NEW_MESSAGE">նոր հաղորդագրություն</text>
+ <text id="IDS_MSGF_BODY_SPAM_MESSAGES">Սպամ հաղորդագրություններ</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_INCLUDE">Ներառել</text>
+ <text id="IDS_MSGF_BODY_NO_BLOCKED_NUMBERS">No blocked numbers</text>
+ <text id="IDS_MSGF_BODY_BLOCKED_NUMBERS">Արգելափակված համարներ</text>
+ <text id="IDS_MSGF_BODY_SETTINGS_MULTIMEDIAMESSAGE">Մուլտիմեդիա հաղորդագրություններ</text>
+ <text id="IDS_MSGF_BODY_EDIT_WORD">Խմբագրել բառը</text>
+ <text id="IDS_MSGF_BODY_EXPIRED">Սպառվել է</text>
+ <text id="IDS_MSGF_BODY_MMSCCCREATIONMODEWARNING">Զգուշացում</text>
+ <text id="IDS_COM_SK_EDIT">Խմբագրել</text>
+ <text id="IDS_COM_POP_FAILED">Ձախողվեց</text>
+ <text id="IDS_MSGF_HEADER_DELETE_NUMBER">Ջնջել համարը</text>
+ <text id="IDS_MSGC_BODY_RECORD_AUDIO">Ձայնագրել աուդիոն</text>
+ <text id="IDS_COM_SK_BACK">Հետ</text>
+ <text id="IDS_MSGF_BODY_UNICODE">Unicode</text>
+ <text id="IDS_MSGF_HEADER_DELETE_WORDS">Վերացնել բառեր</text>
+ <text id="IDS_COM_BODY_FORWARD">Փոխանցել</text>
+ <text id="IDS_MSGF_POP_NOMESSAGES">Հաղորդագրություններ չկան</text>
+ <text id="IDS_MSGF_OPT_ROAM_NETWORK">Օտարերկրյա ցանց</text>
+ <text id="IDS_MSGF_BODY_FROM">Ումից</text>
+ <text id="IDS_COM_SK_DELETE">Ջնջել</text>
+ <text id="IDS_MSGF_SK3_UNREAD">Չկարդացված</text>
+ <text id="IDS_MSGC_BODY_DUPLICATED_RECIPIENT">Կրկնակված հասցեատեր</text>
+ <text id="IDS_MSGF_BODY_GSM_ALPHABET">GSM-այբուբեն</text>
+ <text id="IDS_MSGF_BODY_SIM_CARD_MESSAGES">SIM քարտի հաղորդագրություններ</text>
+ <text id="IDS_MSGF_BODY_MMSNOTIMSGSTATUSSENT">Ուղարկված է</text>
+ <text id="IDS_COM_BODY_CONTACTS">Կոնտակտներ</text>
+ <text id="IDS_MSGF_OPT_STATUS">Կարգավիճակ</text>
+ <text id="IDS_MSGF_BODY_MMSCCCREATIONMODEFREE">Ազատ</text>
+ <text id="IDS_COM_BODY_DETAILS_TYPE">Տեսակ</text>
+ <text id="IDS_MSGF_BODY_AUTODOWNLOAD">Ավտոբեռնում</text>
+ <text id="IDS_MSGF_SK_RESEND">Կրկն ուղր</text>
+ <text id="IDS_COM_SK_CANCEL">Չեղարկել</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONS">Ստացման ընտրանքներ</text>
+ <text id="IDS_COM_BODY_GALLERY">Պատկերասրահ</text>
+ <text id="IDS_MSGC_BUTTON2_DURATION_N_HPD_SECS">Տևողություն\n(%d վրկ)</text>
+ <text id="IDS_COM_BODY_SEARCH">Որոնել</text>
+ <text id="IDS_MSGF_HEADER_MESSAGE_BOXES">Հաղորդագրությունների արկղեր</text>
+ <text id="IDS_MSGF_HEADER_ADD_NUMBER">Ավելացնել համար</text>
+ <text id="IDS_COM_BODY_MEMO">Հիշեցում</text>
+ <text id="IDS_MSGF_BODY_COPY_TO_SIM">Պատճենել SIM-ի մեջ</text>
+ <text id="IDS_MSGF_BODY_ENTER_NUMBER">Մուտքագրեք համարը</text>
+ <text id="IDS_COM_OPT_ADD_CONTACT">Ավելացնել կոնտակտ</text>
+ <text id="IDS_MSGF_OPT_HOME_NETWORK">Տեղական ցանց</text>
+ <text id="IDS_COM_POP_REJECTED">Մերժված է</text>
+ <text id="IDS_COM_BODY_SETTINGS">Պարամետրեր</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_START_WITH">Սկսել ...ից</text>
+ <text id="IDS_COM_BODY_DISPLAY">Էկրան</text>
+ <text id="IDS_MSGF_OPT_PROTECTION_ON">Պաշտպանությունը միացված</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONNETWORK_MANUAL">Ձեռքով</text>
+ <text id="IDS_SLCD_POP_TEXT_SIM_CARD_ERROR">SIM քարտը հասանելի չէ</text>
+ <text id="IDS_COM_POP_DELETED">Ջնջված է</text>
+ <text id="IDS_COM_SK_SEND_ABB">Ուղկլ</text>
+ <text id="IDS_MSGF_POP_FORWARDED">Փոխանցված է</text>
+ <text id="IDS_MSG_SELECT_NUMBERS">Select numbers (%d)</text>
+ <text id="IDS_MSGF_BODY_CENTRE_PD">Կենտրոն %d</text>
+ <text id="IDS_MSGF_HEADER_EDIT_NUMBER">Խմբագրել համարը</text>
+ <text id="IDS_MSGF_BODY_AUTOMATIC">Ավտոմատ կերպով</text>
+ <text id="IDS_MSGF_BODY_VIEW_MESSAGE_DETAILS_ABB">Դիտել հգրն մնրմսներ</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONNETWORK_REJECT">Մերժել</text>
+ <text id="IDS_COM_BODY_VOICE_CALL">Ձայնային զանգ</text>
+ <text id="IDS_MSG_MBODY_USE_THE_VOLUME_KEY">Օգտ. ձայնի ուժգն. ստեղնը</text>
+ <text id="IDS_COM_SK_SAVE">Պահել</text>
+ <text id="IDS_MSGF_BODY_INVALID_SERVICE_CENTRE_ADDRESS">Invalid service centre address</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_EXACTLY_THE_SAME_AS">Ճիշտ նույնը, ինչ</text>
+ <text id="IDS_COM_BODY_NO_SEARCH_RESULTS">Որոնման արդյունքներ չկան</text>
+ <text id="IDS_MSGF_BODY_MMS">MMS</text>
+ <text id="IDS_MSGF_BODY_MMSCREATIONMODE">Ստեղծման ռեժիմ</text>
+ <text id="IDS_MSGF_BODY_TEXT_MESSAGES">Տեքստային հաղորդագրություններ</text>
+ <text id="IDS_MSGF_BODY_RECEIVED">Ստացված է</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_MATCH_CRITERIA">Համապատասխանեցնել չափանիշները</text>
+ <text id="IDS_MSGF_POP_DEFERRED">Հետաձգված է</text>
+ <text id="IDS_COM_SK_ADD">Ավելացնել</text>
+ <text id="IDS_MSGF_OPT_BLOCK">Արգելափակել</text>
+ <text id="IDS_COM_SK_YES">Այո</text>
+ <text id="IDS_MSGC_OPT_VIEW_CONTACT">Դիտել կոնտակտը</text>
+ <text id="IDS_COM_SK_SEARCH">Որոնում</text>
+ <text id="IDS_COM_POP_AM_M_ABB">AM</text>
+ <text id="IDS_MSGF_BODY_BLOCKED_WORDS">Արգելափակված բառեր</text>
+ <text id="IDS_COM_BODY_SUBJECT">Թեմա</text>
+ <text id="IDS_MSGF_POP_UNRECOGNISED">Չի ճանաչվել</text>
+ <text id="IDS_MSGF_BODY_SEND_READ_REPORT">Ուղարկել ընթերցման ստացականը</text>
+ <text id="IDS_MSGF_SK_RESTORE">Վերականգ</text>
+ <text id="IDS_MSGF_BODY_REQUEST_READ_REPORT">Հայց. ընթերց. հաշվետվ.</text>
+ <text id="IDS_MSGF_BODY_ENTER_WORD">Մուտքագրել բառ</text>
+ <text id="IDS_COM_SK3_COMPOSE">Կազմել</text>
+ <text id="IDS_COM_POP_UNKNOWN_ERROR_OCCURRED">Անհայտ սխալ տեղի ունեցավ</text>
+ <text id="IDS_MSGF_BODY_REQUEST_DELIVERY_REPORT">Հայցել առաքման հաշվետվություն</text>
+ <text id="IDS_MSGF_BODY_INVALID_RECIPIENTS">Անվավեր հասցեատերեր</text>
+ <text id="IDS_MSGF_BODY_BROADCASTMESSAGES">Ցանցի հաղորդագրություններ</text>
+ <text id="IDS_MSGF_OPT_SAVE_ATTACHMENT">Պահպանել կիցը</text>
+ <text id="IDS_MSGF_BODY_DELIVERY_REPORT">Առաքման զեկույց</text>
+ <text id="IDS_MSGC_POP_DISCARD_CURRENT_MESSAGE_Q">Դեն նետե՞լ ընթացիկ հաղորդագրությունը:</text>
+ <text id="IDS_COM_POP_ATTACH">Կցել</text>
+ <text id="IDS_COM_BODY_CALENDAR">Օրացույց</text>
+ <text id="IDS_COM_SK_OK">Ընդունել</text>
+ <text id="IDS_COM_SK_CALL">Զանգ</text>
+ <text id="IDS_MSGC_BODY_CAPTURE_VIDEO">Տսհլվկ նկրլ</text>
+ <text id="IDS_MSG_HEADER_SELECT_RECIPIENT">Ընտրել հասցեատեր</text>
+</string_table>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201301241731" Dversion="20120315">
+ <text id="IDS_MSGF_HEADER_MESSAGE_DETAILS">Upplýsingar um skilaboð</text>
+ <text id="IDS_COM_SK3_PREVIEW">Skoða</text>
+ <text id="IDS_COM_BODY_PD_SELECTED">%d valið</text>
+ <text id="IDS_MSG_BODY_DURATION_MUST_BE_LONGER_THAN_PD_SECONDS">Lengdin verður að vera meiri en %d sekúndur</text>
+ <text id="IDS_DB_POP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED_DELETE_SOME_CHARACTERS">Hámarksfjölda stafa hefur verið náð. Eyddu einhverjum stöfum</text>
+ <text id="IDS_MSGF_BODY_NO_BLOCKED_WORDS">No blocked words</text>
+ <text id="IDS_COM_BODY_SELECT_ALL">Velja allt</text>
+ <text id="IDS_MSGF_BODY_NO_SUBJECT">Ekkert efni</text>
+ <text id="IDS_COM_POP_CLOSE">Loka</text>
+ <text id="IDS_COM_BODY_TO">Til</text>
+ <text id="IDS_MSGC_BODY_TAKE_PICTURE">Taka mynd</text>
+ <text id="IDS_COM_POP_DELETE_Q">Á að eyða?</text>
+ <text id="IDS_MSGC_HEADER_INPUTMODE">Innsláttaraðferð</text>
+ <text id="IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED">Hámarksfjölda viðtakenda (%d) náð</text>
+ <text id="IDS_COM_SK_NO">Nei</text>
+ <text id="IDS_COM_BODY_MY_FILES">Skrárnar mínar</text>
+ <text id="IDS_MSGF_BODY_COPY_TO_PHONE">Afrita í síma</text>
+ <text id="IDS_MSGF_BODY_CB_MESSAGES">Skilaboð frá endurvarpa</text>
+ <text id="IDS_MSGF_BODY_SERVICECENTRE">Þjónustumiðstöð</text>
+ <text id="IDS_COM_BODY_SMS">SMS</text>
+ <text id="IDS_MSGF_POP_SENDING_FAILED_MESSAGE">Sendi skilaboð sem mistókst að senda</text>
+ <text id="IDS_COM_POP_SUCCESS">Árangur</text>
+ <text id="IDS_MSGF_POP_MESSAGES_RECEIVED_FROM_YOUR_CONTACTS_WILL_NOT_BE_BLOCKED_EVEN_IF_THEY_CONTAIN_BLOCKED_NUMBERS">Messages received from your contacts will not be blocked even if they contain blocked numbers</text>
+ <text id="IDS_MSG_SELECT_WORDS">Select words (%d)</text>
+ <text id="IDS_MSGF_BODY_ROAMINGRECEPTION_RESTRICTED">Takmarkað</text>
+ <text id="IDS_MSGF_POP_MESSAGES_RECEIVED_FROM_YOUR_CONTACTS_WILL_NOT_BE_BLOCKED_EVEN_IF_THEY_CONTAIN_BLOCKED_WORDS">Skilaboð frá tengiliðunum þínum verða ekki útilokuð jafnvel þótt þau innihaldi orð á bannlista</text>
+ <text id="IDS_MSGF_OPT_UNBLOCK">Taka úr lás</text>
+ <text id="IDS_MSGF_BODY_COPY_MESSAGE_TEXT_ABB">Afrita skilab.texta</text>
+ <text id="IDS_MSGF_BODY_READ_REPORT">Lestilkynning</text>
+ <text id="IDS_COM_BODY_MESSAGES">Skilaboð</text>
+ <text id="IDS_COM_SK_OPTIONS">Valkostir</text>
+ <text id="IDS_COM_SK_DONE">Lokið</text>
+ <text id="IDS_COM_POP_PM">eh</text>
+ <text id="IDS_COM_BODY_UNKNOWN">Óþekkt</text>
+ <text id="IDS_MSG_BODY_DRAFT_MESSAGES">Drög</text>
+ <text id="IDS_COM_POP_SERVICE_UNAVAILABLE">Ótiltæk þjónusta</text>
+ <text id="IDS_MSGF_OPT_CREATEMSG_ADD_WORD">Bæta við orði</text>
+ <text id="IDS_MSGF_POP_BLOCK_PS_Q">Loka á %s?</text>
+ <text id="IDS_MSG_BODY_CHANGE_TEXT_SIZE_USING_THE_VOLUME_KEY">Hljóðstyrkstakkinn er notaður til að breyta stærð texta</text>
+ <text id="IDS_COM_POP_NEW_MESSAGE">Ný boð</text>
+ <text id="IDS_MSGF_BODY_SPAM_MESSAGES">Ruslpóstur</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_INCLUDE">Láta fylgja</text>
+ <text id="IDS_MSGF_BODY_NO_BLOCKED_NUMBERS">No blocked numbers</text>
+ <text id="IDS_MSGF_BODY_BLOCKED_NUMBERS">Númer á bannlista</text>
+ <text id="IDS_MSGF_BODY_SETTINGS_MULTIMEDIAMESSAGE">Margmiðlunarboð</text>
+ <text id="IDS_MSGF_BODY_EDIT_WORD">Breyta orði</text>
+ <text id="IDS_MSGF_BODY_EXPIRED">Útrunnið</text>
+ <text id="IDS_MSGF_BODY_MMSCCCREATIONMODEWARNING">Viðvörun</text>
+ <text id="IDS_COM_SK_EDIT">Breyta</text>
+ <text id="IDS_COM_POP_FAILED">Mistókst</text>
+ <text id="IDS_MSGF_HEADER_DELETE_NUMBER">Eyða númeri</text>
+ <text id="IDS_MSGC_BODY_RECORD_AUDIO">Taka upp hljóð</text>
+ <text id="IDS_COM_SK_BACK">Bakka</text>
+ <text id="IDS_MSGF_BODY_UNICODE">Unicode</text>
+ <text id="IDS_MSGF_HEADER_DELETE_WORDS">Eyða orðum</text>
+ <text id="IDS_COM_BODY_FORWARD">Framsending</text>
+ <text id="IDS_MSGF_POP_NOMESSAGES">Engin boð</text>
+ <text id="IDS_MSGF_OPT_ROAM_NETWORK">Reikikerfi</text>
+ <text id="IDS_MSGF_BODY_FROM">Frá</text>
+ <text id="IDS_COM_SK_DELETE">Eyða</text>
+ <text id="IDS_MSGF_SK3_UNREAD">Ólesið</text>
+ <text id="IDS_MSGC_BODY_DUPLICATED_RECIPIENT">Viðtakandi kemur tvisvar fyrir</text>
+ <text id="IDS_MSGF_BODY_GSM_ALPHABET">GSM stafróf</text>
+ <text id="IDS_MSGF_BODY_SIM_CARD_MESSAGES">SIM-kortsskilaboð</text>
+ <text id="IDS_MSGF_BODY_MMSNOTIMSGSTATUSSENT">Sent</text>
+ <text id="IDS_COM_BODY_CONTACTS">Tengiliðir</text>
+ <text id="IDS_MSGF_OPT_STATUS">Staða</text>
+ <text id="IDS_MSGF_BODY_MMSCCCREATIONMODEFREE">Laust</text>
+ <text id="IDS_COM_BODY_DETAILS_TYPE">Tegund</text>
+ <text id="IDS_MSGF_BODY_AUTODOWNLOAD">Sjálfvirkt niðurhal</text>
+ <text id="IDS_MSGF_SK_RESEND">Senda aftur</text>
+ <text id="IDS_COM_SK_CANCEL">Hætta við</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONS">Móttökukostir</text>
+ <text id="IDS_COM_BODY_GALLERY">Gallerí</text>
+ <text id="IDS_MSGC_BUTTON2_DURATION_N_HPD_SECS">Tímalengd\n(%d sek.)</text>
+ <text id="IDS_COM_BODY_SEARCH">Leit</text>
+ <text id="IDS_MSGF_HEADER_MESSAGE_BOXES">Skilaboðahólf</text>
+ <text id="IDS_MSGF_HEADER_ADD_NUMBER">Bæta við númeri</text>
+ <text id="IDS_COM_BODY_MEMO">Minnispunktar</text>
+ <text id="IDS_MSGF_BODY_COPY_TO_SIM">Afrita á SIM-kort</text>
+ <text id="IDS_MSGF_BODY_ENTER_NUMBER">Tilgreina númer</text>
+ <text id="IDS_COM_OPT_ADD_CONTACT">Bæta tengiliði við</text>
+ <text id="IDS_MSGF_OPT_HOME_NETWORK">Heimakerfi</text>
+ <text id="IDS_COM_POP_REJECTED">Hafnað</text>
+ <text id="IDS_COM_BODY_SETTINGS">Stillingar</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_START_WITH">Byrja á</text>
+ <text id="IDS_COM_BODY_DISPLAY">Skjár</text>
+ <text id="IDS_MSGF_OPT_PROTECTION_ON">Kveikt á vörn</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONNETWORK_MANUAL">Handvirkt</text>
+ <text id="IDS_SLCD_POP_TEXT_SIM_CARD_ERROR">SIM-kort brást</text>
+ <text id="IDS_COM_POP_DELETED">Eytt</text>
+ <text id="IDS_COM_SK_SEND_ABB">Senda</text>
+ <text id="IDS_MSGF_POP_FORWARDED">Framsent</text>
+ <text id="IDS_MSG_SELECT_NUMBERS">Select numbers (%d)</text>
+ <text id="IDS_MSGF_BODY_CENTRE_PD">Miðstöð %d</text>
+ <text id="IDS_MSGF_HEADER_EDIT_NUMBER">Breyta númeri</text>
+ <text id="IDS_MSGF_BODY_AUTOMATIC">Sjálfvirkt</text>
+ <text id="IDS_MSGF_BODY_VIEW_MESSAGE_DETAILS_ABB">Sjá uppl. um skilab.</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONNETWORK_REJECT">Hafna</text>
+ <text id="IDS_COM_BODY_VOICE_CALL">Raddsímtal</text>
+ <text id="IDS_MSG_MBODY_USE_THE_VOLUME_KEY">Notaðu hljóðstyrkstakkann</text>
+ <text id="IDS_COM_SK_SAVE">Vista</text>
+ <text id="IDS_MSGF_BODY_INVALID_SERVICE_CENTRE_ADDRESS">Invalid service centre address</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_EXACTLY_THE_SAME_AS">Nákvæmlega eins og</text>
+ <text id="IDS_COM_BODY_NO_SEARCH_RESULTS">Engar leitarniðurstöður</text>
+ <text id="IDS_MSGF_BODY_MMS">MMS</text>
+ <text id="IDS_MSGF_BODY_MMSCREATIONMODE">Stærðartakmörk</text>
+ <text id="IDS_MSGF_BODY_TEXT_MESSAGES">Textaboð</text>
+ <text id="IDS_MSGF_BODY_RECEIVED">Móttekið</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_MATCH_CRITERIA">Finna eins</text>
+ <text id="IDS_MSGF_POP_DEFERRED">Seinkað</text>
+ <text id="IDS_COM_SK_ADD">Bæta við</text>
+ <text id="IDS_MSGF_OPT_BLOCK">Læsa</text>
+ <text id="IDS_COM_SK_YES">Já</text>
+ <text id="IDS_MSGC_OPT_VIEW_CONTACT">Birta tengilið</text>
+ <text id="IDS_COM_SK_SEARCH">Leit</text>
+ <text id="IDS_COM_POP_AM_M_ABB">f.h.</text>
+ <text id="IDS_MSGF_BODY_BLOCKED_WORDS">Orð á bannlista</text>
+ <text id="IDS_COM_BODY_SUBJECT">Efni</text>
+ <text id="IDS_MSGF_POP_UNRECOGNISED">Óþekkt</text>
+ <text id="IDS_MSGF_BODY_SEND_READ_REPORT">Senda lestilkynningu</text>
+ <text id="IDS_MSGF_SK_RESTORE">Endurh.</text>
+ <text id="IDS_MSGF_BODY_REQUEST_READ_REPORT">Biðja um lestilkynningu</text>
+ <text id="IDS_MSGF_BODY_ENTER_WORD">Færðu inn orð</text>
+ <text id="IDS_COM_SK3_COMPOSE">Skrifa</text>
+ <text id="IDS_COM_POP_UNKNOWN_ERROR_OCCURRED">Óþekkt villa kom upp</text>
+ <text id="IDS_MSGF_BODY_REQUEST_DELIVERY_REPORT">Biðja um skilatilkynningu</text>
+ <text id="IDS_MSGF_BODY_INVALID_RECIPIENTS">Ógildir viðtakendur</text>
+ <text id="IDS_MSGF_BODY_BROADCASTMESSAGES">Skilaboð frá endurvarpa</text>
+ <text id="IDS_MSGF_OPT_SAVE_ATTACHMENT">Vista viðhengi</text>
+ <text id="IDS_MSGF_BODY_DELIVERY_REPORT">Skilatilkynning</text>
+ <text id="IDS_MSGC_POP_DISCARD_CURRENT_MESSAGE_Q">Viltu fleygja þessum skilaboðum?</text>
+ <text id="IDS_COM_POP_ATTACH">Hengja við</text>
+ <text id="IDS_COM_BODY_CALENDAR">Dagbók</text>
+ <text id="IDS_COM_SK_OK">Í lagi</text>
+ <text id="IDS_COM_SK_CALL">Símtal</text>
+ <text id="IDS_MSGC_BODY_CAPTURE_VIDEO">Taka upp vídeó</text>
+ <text id="IDS_MSG_HEADER_SELECT_RECIPIENT">Velja viðtakanda</text>
+</string_table>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201301241731" Dversion="20120315">
+ <text id="IDS_MSGF_HEADER_MESSAGE_DETAILS">Dettagli del messaggio</text>
+ <text id="IDS_COM_SK3_PREVIEW">Anteprima</text>
+ <text id="IDS_COM_BODY_PD_SELECTED">%d selezionate</text>
+ <text id="IDS_MSG_BODY_DURATION_MUST_BE_LONGER_THAN_PD_SECONDS">La durata deve essere superiore a %d secondi</text>
+ <text id="IDS_DB_POP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED_DELETE_SOME_CHARACTERS">Superato numero massimo di caratteri. Eliminare alcuni caratteri</text>
+ <text id="IDS_MSGF_BODY_NO_BLOCKED_WORDS">No blocked words</text>
+ <text id="IDS_COM_BODY_SELECT_ALL">Seleziona tutto</text>
+ <text id="IDS_MSGF_BODY_NO_SUBJECT">Nessun oggetto</text>
+ <text id="IDS_COM_POP_CLOSE">Chiudi</text>
+ <text id="IDS_COM_BODY_TO">A</text>
+ <text id="IDS_MSGC_BODY_TAKE_PICTURE">Scatta foto</text>
+ <text id="IDS_COM_POP_DELETE_Q">Eliminare?</text>
+ <text id="IDS_MSGC_HEADER_INPUTMODE">Modalità scrittura</text>
+ <text id="IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED">Raggiunto numero massimo di destinatari (%d)</text>
+ <text id="IDS_COM_SK_NO">No</text>
+ <text id="IDS_COM_BODY_MY_FILES">Archivio</text>
+ <text id="IDS_MSGF_BODY_COPY_TO_PHONE">Copia nel telefono</text>
+ <text id="IDS_MSGF_BODY_CB_MESSAGES">Messaggi CB</text>
+ <text id="IDS_MSGF_BODY_SERVICECENTRE">Centro servizi</text>
+ <text id="IDS_COM_BODY_SMS">SMS</text>
+ <text id="IDS_MSGF_POP_SENDING_FAILED_MESSAGE">Invio messaggio non riuscito</text>
+ <text id="IDS_COM_POP_SUCCESS">Operazione eseguita</text>
+ <text id="IDS_MSGF_POP_MESSAGES_RECEIVED_FROM_YOUR_CONTACTS_WILL_NOT_BE_BLOCKED_EVEN_IF_THEY_CONTAIN_BLOCKED_NUMBERS">Messages received from your contacts will not be blocked even if they contain blocked numbers</text>
+ <text id="IDS_MSG_SELECT_WORDS">Select words (%d)</text>
+ <text id="IDS_MSGF_BODY_ROAMINGRECEPTION_RESTRICTED">Con restrizioni</text>
+ <text id="IDS_MSGF_POP_MESSAGES_RECEIVED_FROM_YOUR_CONTACTS_WILL_NOT_BE_BLOCKED_EVEN_IF_THEY_CONTAIN_BLOCKED_WORDS">I messaggi ricevuti dai contatti non verranno bloccati anche se contengono parole bloccate</text>
+ <text id="IDS_MSGF_OPT_UNBLOCK">Sblocca</text>
+ <text id="IDS_MSGF_BODY_COPY_MESSAGE_TEXT_ABB">Copia testo messaggio</text>
+ <text id="IDS_MSGF_BODY_READ_REPORT">Conferma lettura</text>
+ <text id="IDS_COM_BODY_MESSAGES">Messaggi</text>
+ <text id="IDS_COM_SK_OPTIONS">Opzioni</text>
+ <text id="IDS_COM_SK_DONE">Fatto</text>
+ <text id="IDS_COM_POP_PM">PM</text>
+ <text id="IDS_COM_BODY_UNKNOWN">Sconosciuto</text>
+ <text id="IDS_MSG_BODY_DRAFT_MESSAGES">Bozze messaggi</text>
+ <text id="IDS_COM_POP_SERVICE_UNAVAILABLE">Servizio non disponibile</text>
+ <text id="IDS_MSGF_OPT_CREATEMSG_ADD_WORD">Aggiungi parola</text>
+ <text id="IDS_MSGF_POP_BLOCK_PS_Q">Bloccare %s?</text>
+ <text id="IDS_MSG_BODY_CHANGE_TEXT_SIZE_USING_THE_VOLUME_KEY">Modifica le dimensioni del testo con il tasto del volume</text>
+ <text id="IDS_COM_POP_NEW_MESSAGE">Nuovo messaggio</text>
+ <text id="IDS_MSGF_BODY_SPAM_MESSAGES">Messaggi spam</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_INCLUDE">Contiene</text>
+ <text id="IDS_MSGF_BODY_NO_BLOCKED_NUMBERS">No blocked numbers</text>
+ <text id="IDS_MSGF_BODY_BLOCKED_NUMBERS">Numeri bloccati</text>
+ <text id="IDS_MSGF_BODY_SETTINGS_MULTIMEDIAMESSAGE">MMS</text>
+ <text id="IDS_MSGF_BODY_EDIT_WORD">Modifica parola</text>
+ <text id="IDS_MSGF_BODY_EXPIRED">Scaduta</text>
+ <text id="IDS_MSGF_BODY_MMSCCCREATIONMODEWARNING">Avviso</text>
+ <text id="IDS_COM_SK_EDIT">Modifica</text>
+ <text id="IDS_COM_POP_FAILED">Errore</text>
+ <text id="IDS_MSGF_HEADER_DELETE_NUMBER">Elimina numero</text>
+ <text id="IDS_MSGC_BODY_RECORD_AUDIO">Registra audio</text>
+ <text id="IDS_COM_SK_BACK">Indietro</text>
+ <text id="IDS_MSGF_BODY_UNICODE">Unicode</text>
+ <text id="IDS_MSGF_HEADER_DELETE_WORDS">Elimina parole</text>
+ <text id="IDS_COM_BODY_FORWARD">Inoltra</text>
+ <text id="IDS_MSGF_POP_NOMESSAGES">Nessun messaggio</text>
+ <text id="IDS_MSGF_OPT_ROAM_NETWORK">Rete roaming</text>
+ <text id="IDS_MSGF_BODY_FROM">Da</text>
+ <text id="IDS_COM_SK_DELETE">Elimina</text>
+ <text id="IDS_MSGF_SK3_UNREAD">Non letto</text>
+ <text id="IDS_MSGC_BODY_DUPLICATED_RECIPIENT">Destinatario duplicato</text>
+ <text id="IDS_MSGF_BODY_GSM_ALPHABET">Alfabeto GSM</text>
+ <text id="IDS_MSGF_BODY_SIM_CARD_MESSAGES">Messaggi scheda SIM</text>
+ <text id="IDS_MSGF_BODY_MMSNOTIMSGSTATUSSENT">Inviato</text>
+ <text id="IDS_COM_BODY_CONTACTS">Rubrica</text>
+ <text id="IDS_MSGF_OPT_STATUS">Stato</text>
+ <text id="IDS_MSGF_BODY_MMSCCCREATIONMODEFREE">Libera</text>
+ <text id="IDS_COM_BODY_DETAILS_TYPE">Tipo</text>
+ <text id="IDS_MSGF_BODY_AUTODOWNLOAD">Download automatico</text>
+ <text id="IDS_MSGF_SK_RESEND">Invia di nuovo</text>
+ <text id="IDS_COM_SK_CANCEL">Annulla</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONS">Opzioni di ricezione</text>
+ <text id="IDS_COM_BODY_GALLERY">Galleria</text>
+ <text id="IDS_MSGC_BUTTON2_DURATION_N_HPD_SECS">Durata\n(%d sec)</text>
+ <text id="IDS_COM_BODY_SEARCH">Cerca</text>
+ <text id="IDS_MSGF_HEADER_MESSAGE_BOXES">Cartelle messaggi</text>
+ <text id="IDS_MSGF_HEADER_ADD_NUMBER">Aggiungi numero</text>
+ <text id="IDS_COM_BODY_MEMO">Promemoria</text>
+ <text id="IDS_MSGF_BODY_COPY_TO_SIM">Copia nella SIM</text>
+ <text id="IDS_MSGF_BODY_ENTER_NUMBER">Inserisci numero</text>
+ <text id="IDS_COM_OPT_ADD_CONTACT">Agg. contatto</text>
+ <text id="IDS_MSGF_OPT_HOME_NETWORK">Propria rete</text>
+ <text id="IDS_COM_POP_REJECTED">Rifiutata</text>
+ <text id="IDS_COM_BODY_SETTINGS">Impostazioni</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_START_WITH">Inizia con</text>
+ <text id="IDS_COM_BODY_DISPLAY">Schermo</text>
+ <text id="IDS_MSGF_OPT_PROTECTION_ON">Attiva protezione</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONNETWORK_MANUAL">Manuale</text>
+ <text id="IDS_SLCD_POP_TEXT_SIM_CARD_ERROR">Errore scheda SIM</text>
+ <text id="IDS_COM_POP_DELETED">Eliminato/i</text>
+ <text id="IDS_COM_SK_SEND_ABB">Invia</text>
+ <text id="IDS_MSGF_POP_FORWARDED">Inoltrato</text>
+ <text id="IDS_MSG_SELECT_NUMBERS">Select numbers (%d)</text>
+ <text id="IDS_MSGF_BODY_CENTRE_PD">Centro %d</text>
+ <text id="IDS_MSGF_HEADER_EDIT_NUMBER">Modifica numero</text>
+ <text id="IDS_MSGF_BODY_AUTOMATIC">Automatica</text>
+ <text id="IDS_MSGF_BODY_VIEW_MESSAGE_DETAILS_ABB">Visual. dettagli msg</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONNETWORK_REJECT">Rifiuta</text>
+ <text id="IDS_COM_BODY_VOICE_CALL">Chiamata vocale</text>
+ <text id="IDS_MSG_MBODY_USE_THE_VOLUME_KEY">Usa il tasto del volume</text>
+ <text id="IDS_COM_SK_SAVE">Salva</text>
+ <text id="IDS_MSGF_BODY_INVALID_SERVICE_CENTRE_ADDRESS">Invalid service centre address</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_EXACTLY_THE_SAME_AS">Esattamente uguale a</text>
+ <text id="IDS_COM_BODY_NO_SEARCH_RESULTS">Nessun risultato della ricerca</text>
+ <text id="IDS_MSGF_BODY_MMS">MMS</text>
+ <text id="IDS_MSGF_BODY_MMSCREATIONMODE">Modalità creazione</text>
+ <text id="IDS_MSGF_BODY_TEXT_MESSAGES">SMS</text>
+ <text id="IDS_MSGF_BODY_RECEIVED">Ricevuto</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_MATCH_CRITERIA">Criteri corrispondenza</text>
+ <text id="IDS_MSGF_POP_DEFERRED">Rinviato</text>
+ <text id="IDS_COM_SK_ADD">Aggiungi</text>
+ <text id="IDS_MSGF_OPT_BLOCK">Blocca</text>
+ <text id="IDS_COM_SK_YES">Sì</text>
+ <text id="IDS_MSGC_OPT_VIEW_CONTACT">Visualizza contatti</text>
+ <text id="IDS_COM_SK_SEARCH">Cerca</text>
+ <text id="IDS_COM_POP_AM_M_ABB">AM</text>
+ <text id="IDS_MSGF_BODY_BLOCKED_WORDS">Parole bloccate</text>
+ <text id="IDS_COM_BODY_SUBJECT">Oggetto</text>
+ <text id="IDS_MSGF_POP_UNRECOGNISED">Non riconosciuto</text>
+ <text id="IDS_MSGF_BODY_SEND_READ_REPORT">Invia conferma lettura</text>
+ <text id="IDS_MSGF_SK_RESTORE">Riprist.</text>
+ <text id="IDS_MSGF_BODY_REQUEST_READ_REPORT">Conferma lettura</text>
+ <text id="IDS_MSGF_BODY_ENTER_WORD">Inserisci parola</text>
+ <text id="IDS_COM_SK3_COMPOSE">Componi</text>
+ <text id="IDS_COM_POP_UNKNOWN_ERROR_OCCURRED">Si è verificato un errore sconosciuto</text>
+ <text id="IDS_MSGF_BODY_REQUEST_DELIVERY_REPORT">Chiedi conferma consegna</text>
+ <text id="IDS_MSGF_BODY_INVALID_RECIPIENTS">Destinatari non validi</text>
+ <text id="IDS_MSGF_BODY_BROADCASTMESSAGES">Messaggi broadcast</text>
+ <text id="IDS_MSGF_OPT_SAVE_ATTACHMENT">Salva allegato</text>
+ <text id="IDS_MSGF_BODY_DELIVERY_REPORT">Rapporto consegna</text>
+ <text id="IDS_MSGC_POP_DISCARD_CURRENT_MESSAGE_Q">Eliminare messaggio corrente?</text>
+ <text id="IDS_COM_POP_ATTACH">Allega</text>
+ <text id="IDS_COM_BODY_CALENDAR">Calendario</text>
+ <text id="IDS_COM_SK_OK">OK</text>
+ <text id="IDS_COM_SK_CALL">Chiama</text>
+ <text id="IDS_MSGC_BODY_CAPTURE_VIDEO">Registra video</text>
+ <text id="IDS_MSG_HEADER_SELECT_RECIPIENT">Seleziona destinatario</text>
+</string_table>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201301241731" Dversion="20120315">
+ <text id="IDS_MSGF_HEADER_MESSAGE_DETAILS">メッセージの詳細</text>
+ <text id="IDS_COM_SK3_PREVIEW">プレビュー</text>
+ <text id="IDS_COM_BODY_PD_SELECTED">%d件選択</text>
+ <text id="IDS_MSG_BODY_DURATION_MUST_BE_LONGER_THAN_PD_SECONDS">表示時間は%d秒以上である必要があります。</text>
+ <text id="IDS_DB_POP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED_DELETE_SOME_CHARACTERS">最大文字数を超過しました。文字を削除してください</text>
+ <text id="IDS_MSGF_BODY_NO_BLOCKED_WORDS">No blocked words</text>
+ <text id="IDS_COM_BODY_SELECT_ALL">全て選択</text>
+ <text id="IDS_MSGF_BODY_NO_SUBJECT">件名なし</text>
+ <text id="IDS_COM_POP_CLOSE">閉じる</text>
+ <text id="IDS_COM_BODY_TO">宛先</text>
+ <text id="IDS_MSGC_BODY_TAKE_PICTURE">カメラを起動</text>
+ <text id="IDS_COM_POP_DELETE_Q">削除しますか?</text>
+ <text id="IDS_MSGC_HEADER_INPUTMODE">入力モード</text>
+ <text id="IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED">宛先が最大件数(%d)に達しました。</text>
+ <text id="IDS_COM_SK_NO">いいえ</text>
+ <text id="IDS_COM_BODY_MY_FILES">マイファイル</text>
+ <text id="IDS_MSGF_BODY_COPY_TO_PHONE">本体にコピー</text>
+ <text id="IDS_MSGF_BODY_CB_MESSAGES">CBメッセージ</text>
+ <text id="IDS_MSGF_BODY_SERVICECENTRE">サービスセンター</text>
+ <text id="IDS_COM_BODY_SMS">SMS</text>
+ <text id="IDS_MSGF_POP_SENDING_FAILED_MESSAGE">失敗したメッセージの送信中</text>
+ <text id="IDS_COM_POP_SUCCESS">正常に完了しました。</text>
+ <text id="IDS_MSGF_POP_MESSAGES_RECEIVED_FROM_YOUR_CONTACTS_WILL_NOT_BE_BLOCKED_EVEN_IF_THEY_CONTAIN_BLOCKED_NUMBERS">Messages received from your contacts will not be blocked even if they contain blocked numbers</text>
+ <text id="IDS_MSG_SELECT_WORDS">Select words (%d)</text>
+ <text id="IDS_MSGF_BODY_ROAMINGRECEPTION_RESTRICTED">制限</text>
+ <text id="IDS_MSGF_POP_MESSAGES_RECEIVED_FROM_YOUR_CONTACTS_WILL_NOT_BE_BLOCKED_EVEN_IF_THEY_CONTAIN_BLOCKED_WORDS">自分自身の連絡先から受信したメッセージは、ブロック対象用語が含まれていてもブロックされません。</text>
+ <text id="IDS_MSGF_OPT_UNBLOCK">ブロック解除</text>
+ <text id="IDS_MSGF_BODY_COPY_MESSAGE_TEXT_ABB">メッセージをコピー</text>
+ <text id="IDS_MSGF_BODY_READ_REPORT">レポートを読む</text>
+ <text id="IDS_COM_BODY_MESSAGES">メッセージ</text>
+ <text id="IDS_COM_SK_OPTIONS">オプション</text>
+ <text id="IDS_COM_SK_DONE">完了</text>
+ <text id="IDS_COM_POP_PM">PM</text>
+ <text id="IDS_COM_BODY_UNKNOWN">不明</text>
+ <text id="IDS_MSG_BODY_DRAFT_MESSAGES">下書きメッセージ</text>
+ <text id="IDS_COM_POP_SERVICE_UNAVAILABLE">サービスを利用できません。</text>
+ <text id="IDS_MSGF_OPT_CREATEMSG_ADD_WORD">単語追加</text>
+ <text id="IDS_MSGF_POP_BLOCK_PS_Q">%sをブロックしますか?</text>
+ <text id="IDS_MSG_BODY_CHANGE_TEXT_SIZE_USING_THE_VOLUME_KEY">音量キーを使用して、文字サイズを変更</text>
+ <text id="IDS_COM_POP_NEW_MESSAGE">新しいメッセージ</text>
+ <text id="IDS_MSGF_BODY_SPAM_MESSAGES">迷惑メッセージ</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_INCLUDE">内容</text>
+ <text id="IDS_MSGF_BODY_NO_BLOCKED_NUMBERS">No blocked numbers</text>
+ <text id="IDS_MSGF_BODY_BLOCKED_NUMBERS">ブロックした番号</text>
+ <text id="IDS_MSGF_BODY_SETTINGS_MULTIMEDIAMESSAGE">マルチメディアメッセージ</text>
+ <text id="IDS_MSGF_BODY_EDIT_WORD">単語を編集</text>
+ <text id="IDS_MSGF_BODY_EXPIRED">期限切れ</text>
+ <text id="IDS_MSGF_BODY_MMSCCCREATIONMODEWARNING">警告</text>
+ <text id="IDS_COM_SK_EDIT">編集</text>
+ <text id="IDS_COM_POP_FAILED">失敗しました。</text>
+ <text id="IDS_MSGF_HEADER_DELETE_NUMBER">番号を削除</text>
+ <text id="IDS_MSGC_BODY_RECORD_AUDIO">録音</text>
+ <text id="IDS_COM_SK_BACK">戻る</text>
+ <text id="IDS_MSGF_BODY_UNICODE">Unicode</text>
+ <text id="IDS_MSGF_HEADER_DELETE_WORDS">用語を削除</text>
+ <text id="IDS_COM_BODY_FORWARD">転送</text>
+ <text id="IDS_MSGF_POP_NOMESSAGES">メッセージがありません。</text>
+ <text id="IDS_MSGF_OPT_ROAM_NETWORK">外部ネットワーク</text>
+ <text id="IDS_MSGF_BODY_FROM">送信元</text>
+ <text id="IDS_COM_SK_DELETE">削除</text>
+ <text id="IDS_MSGF_SK3_UNREAD">未読</text>
+ <text id="IDS_MSGC_BODY_DUPLICATED_RECIPIENT">宛先が重複しています。</text>
+ <text id="IDS_MSGF_BODY_GSM_ALPHABET">GSMアルファベット</text>
+ <text id="IDS_MSGF_BODY_SIM_CARD_MESSAGES">SIMカードメッセージ</text>
+ <text id="IDS_MSGF_BODY_MMSNOTIMSGSTATUSSENT">送信完了</text>
+ <text id="IDS_COM_BODY_CONTACTS">電話帳</text>
+ <text id="IDS_MSGF_OPT_STATUS">ステータス</text>
+ <text id="IDS_MSGF_BODY_MMSCCCREATIONMODEFREE">フリー</text>
+ <text id="IDS_COM_BODY_DETAILS_TYPE">タイプ</text>
+ <text id="IDS_MSGF_BODY_AUTODOWNLOAD">自動ダウンロード</text>
+ <text id="IDS_MSGF_SK_RESEND">再送信</text>
+ <text id="IDS_COM_SK_CANCEL">キャンセル</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONS">受信オプション</text>
+ <text id="IDS_COM_BODY_GALLERY">ギャラリー</text>
+ <text id="IDS_MSGC_BUTTON2_DURATION_N_HPD_SECS">期間\n(%d秒)</text>
+ <text id="IDS_COM_BODY_SEARCH">検索</text>
+ <text id="IDS_MSGF_HEADER_MESSAGE_BOXES">メッセージボックス</text>
+ <text id="IDS_MSGF_HEADER_ADD_NUMBER">番号を追加</text>
+ <text id="IDS_COM_BODY_MEMO">メモ</text>
+ <text id="IDS_MSGF_BODY_COPY_TO_SIM">SIMにコピー</text>
+ <text id="IDS_MSGF_BODY_ENTER_NUMBER">番号を入力</text>
+ <text id="IDS_COM_OPT_ADD_CONTACT">連絡先を追加</text>
+ <text id="IDS_MSGF_OPT_HOME_NETWORK">ホームネットワーク</text>
+ <text id="IDS_COM_POP_REJECTED">拒否されました。</text>
+ <text id="IDS_COM_BODY_SETTINGS">設定</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_START_WITH">前方一致</text>
+ <text id="IDS_COM_BODY_DISPLAY">ディスプレイ</text>
+ <text id="IDS_MSGF_OPT_PROTECTION_ON">保護ON</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONNETWORK_MANUAL">手動</text>
+ <text id="IDS_SLCD_POP_TEXT_SIM_CARD_ERROR">SIMカードを利用できません</text>
+ <text id="IDS_COM_POP_DELETED">削除しました。</text>
+ <text id="IDS_COM_SK_SEND_ABB">送信</text>
+ <text id="IDS_MSGF_POP_FORWARDED">巻戻し</text>
+ <text id="IDS_MSG_SELECT_NUMBERS">Select numbers (%d)</text>
+ <text id="IDS_MSGF_BODY_CENTRE_PD">センター%d</text>
+ <text id="IDS_MSGF_HEADER_EDIT_NUMBER">番号を編集</text>
+ <text id="IDS_MSGF_BODY_AUTOMATIC">自動</text>
+ <text id="IDS_MSGF_BODY_VIEW_MESSAGE_DETAILS_ABB">メッセージの詳細を表示</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONNETWORK_REJECT">拒否</text>
+ <text id="IDS_COM_BODY_VOICE_CALL">音声通話</text>
+ <text id="IDS_MSG_MBODY_USE_THE_VOLUME_KEY">音量キーを使用</text>
+ <text id="IDS_COM_SK_SAVE">保存</text>
+ <text id="IDS_MSGF_BODY_INVALID_SERVICE_CENTRE_ADDRESS">Invalid service centre address</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_EXACTLY_THE_SAME_AS">完全一致</text>
+ <text id="IDS_COM_BODY_NO_SEARCH_RESULTS">検索結果がありません。</text>
+ <text id="IDS_MSGF_BODY_MMS">MMS</text>
+ <text id="IDS_MSGF_BODY_MMSCREATIONMODE">作成モード</text>
+ <text id="IDS_MSGF_BODY_TEXT_MESSAGES">SMS</text>
+ <text id="IDS_MSGF_BODY_RECEIVED">受信完了</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_MATCH_CRITERIA">振り分けルール</text>
+ <text id="IDS_MSGF_POP_DEFERRED">遅延</text>
+ <text id="IDS_COM_SK_ADD">追加</text>
+ <text id="IDS_MSGF_OPT_BLOCK">ブロック</text>
+ <text id="IDS_COM_SK_YES">はい</text>
+ <text id="IDS_MSGC_OPT_VIEW_CONTACT">連絡先を表示</text>
+ <text id="IDS_COM_SK_SEARCH">検索</text>
+ <text id="IDS_COM_POP_AM_M_ABB">AM</text>
+ <text id="IDS_MSGF_BODY_BLOCKED_WORDS">ブロックした用語</text>
+ <text id="IDS_COM_BODY_SUBJECT">件名</text>
+ <text id="IDS_MSGF_POP_UNRECOGNISED">未認識</text>
+ <text id="IDS_MSGF_BODY_SEND_READ_REPORT">既読レポートを送信</text>
+ <text id="IDS_MSGF_SK_RESTORE">回復</text>
+ <text id="IDS_MSGF_BODY_REQUEST_READ_REPORT">既読レポートを要求</text>
+ <text id="IDS_MSGF_BODY_ENTER_WORD">単語を入力してください</text>
+ <text id="IDS_COM_SK3_COMPOSE">新規作成</text>
+ <text id="IDS_COM_POP_UNKNOWN_ERROR_OCCURRED">不明なエラーが発生しました。</text>
+ <text id="IDS_MSGF_BODY_REQUEST_DELIVERY_REPORT">配信レポートを要求</text>
+ <text id="IDS_MSGF_BODY_INVALID_RECIPIENTS">無効な宛先</text>
+ <text id="IDS_MSGF_BODY_BROADCASTMESSAGES">放送メッセージ</text>
+ <text id="IDS_MSGF_OPT_SAVE_ATTACHMENT">添付を保存</text>
+ <text id="IDS_MSGF_BODY_DELIVERY_REPORT">配信確認</text>
+ <text id="IDS_MSGC_POP_DISCARD_CURRENT_MESSAGE_Q">現在のメッセージを破棄しますか?</text>
+ <text id="IDS_COM_POP_ATTACH">添付</text>
+ <text id="IDS_COM_BODY_CALENDAR">カレンダー</text>
+ <text id="IDS_COM_SK_OK">OK</text>
+ <text id="IDS_COM_SK_CALL">通話</text>
+ <text id="IDS_MSGC_BODY_CAPTURE_VIDEO">動画撮影</text>
+ <text id="IDS_MSG_HEADER_SELECT_RECIPIENT">受信者を選択</text>
+</string_table>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201301241731" Dversion="20120315">
+ <text id="IDS_MSGF_HEADER_MESSAGE_DETAILS">წერილის დეტალები</text>
+ <text id="IDS_COM_SK3_PREVIEW">წინასწ. დათვალიერ.</text>
+ <text id="IDS_COM_BODY_PD_SELECTED">%d არჩეულია</text>
+ <text id="IDS_MSG_BODY_DURATION_MUST_BE_LONGER_THAN_PD_SECONDS">ხანგრძლივობა უნდა იყოს %d წამზე მეტი</text>
+ <text id="IDS_DB_POP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED_DELETE_SOME_CHARACTERS">მიღწეულია სიმბოლოების მაქსიმალური რაოდენობა. წაშალეთ რამდენიმე სიმბოლო</text>
+ <text id="IDS_MSGF_BODY_NO_BLOCKED_WORDS">No blocked words</text>
+ <text id="IDS_COM_BODY_SELECT_ALL">ყველას არჩევა</text>
+ <text id="IDS_MSGF_BODY_NO_SUBJECT">არ არის თემა</text>
+ <text id="IDS_COM_POP_CLOSE">დახურვა</text>
+ <text id="IDS_COM_BODY_TO">ვის</text>
+ <text id="IDS_MSGC_BODY_TAKE_PICTURE">სურათის გადაღება</text>
+ <text id="IDS_COM_POP_DELETE_Q">წაიშალოს?</text>
+ <text id="IDS_MSGC_HEADER_INPUTMODE">შემომავლის რეჟიმი</text>
+ <text id="IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED">მიღწეულია მიმღებთა მაქსიმალური რაოდენობა (%d)</text>
+ <text id="IDS_COM_SK_NO">არა</text>
+ <text id="IDS_COM_BODY_MY_FILES">ჩემი ფაილები</text>
+ <text id="IDS_MSGF_BODY_COPY_TO_PHONE">ტელეფონში კოპირება</text>
+ <text id="IDS_MSGF_BODY_CB_MESSAGES">CB წერილები</text>
+ <text id="IDS_MSGF_BODY_SERVICECENTRE">სერვის-ცენტრი</text>
+ <text id="IDS_COM_BODY_SMS">SMS</text>
+ <text id="IDS_MSGF_POP_SENDING_FAILED_MESSAGE">იგზავნება გაუგზავნელი წერილები</text>
+ <text id="IDS_COM_POP_SUCCESS">წარმატება</text>
+ <text id="IDS_MSGF_POP_MESSAGES_RECEIVED_FROM_YOUR_CONTACTS_WILL_NOT_BE_BLOCKED_EVEN_IF_THEY_CONTAIN_BLOCKED_NUMBERS">Messages received from your contacts will not be blocked even if they contain blocked numbers</text>
+ <text id="IDS_MSG_SELECT_WORDS">Select words (%d)</text>
+ <text id="IDS_MSGF_BODY_ROAMINGRECEPTION_RESTRICTED">შეზღუდულია</text>
+ <text id="IDS_MSGF_POP_MESSAGES_RECEIVED_FROM_YOUR_CONTACTS_WILL_NOT_BE_BLOCKED_EVEN_IF_THEY_CONTAIN_BLOCKED_WORDS">თვენი კონტაქტებისგან მიღებული წერილები არ დაიბლოკება მაშინაც კი, როდესაც ისინი შეიცავს დალოკილ სიტყვებს</text>
+ <text id="IDS_MSGF_OPT_UNBLOCK">განბლოკვა</text>
+ <text id="IDS_MSGF_BODY_COPY_MESSAGE_TEXT_ABB">წერილის ტექსტის ასლი</text>
+ <text id="IDS_MSGF_BODY_READ_REPORT">წაკითხვის რეპორტი</text>
+ <text id="IDS_COM_BODY_MESSAGES">შეტყობინებები</text>
+ <text id="IDS_COM_SK_OPTIONS">ოფციები</text>
+ <text id="IDS_COM_SK_DONE">შესრულდა</text>
+ <text id="IDS_COM_POP_PM">PM</text>
+ <text id="IDS_COM_BODY_UNKNOWN">უცნობი</text>
+ <text id="IDS_MSG_BODY_DRAFT_MESSAGES">წერილის მონახაზები</text>
+ <text id="IDS_COM_POP_SERVICE_UNAVAILABLE">მომსახურება არ არის</text>
+ <text id="IDS_MSGF_OPT_CREATEMSG_ADD_WORD">სიტყვის დამატება</text>
+ <text id="IDS_MSGF_POP_BLOCK_PS_Q">დაიბლოკოს %s?</text>
+ <text id="IDS_MSG_BODY_CHANGE_TEXT_SIZE_USING_THE_VOLUME_KEY">შეცვალეთ ტექსტის ზომა ხმის რეგულირების ღილაკის გამოყენებით</text>
+ <text id="IDS_COM_POP_NEW_MESSAGE">ახალი შეტყობინება</text>
+ <text id="IDS_MSGF_BODY_SPAM_MESSAGES">სპამი წერილები</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_INCLUDE">დამატება</text>
+ <text id="IDS_MSGF_BODY_NO_BLOCKED_NUMBERS">No blocked numbers</text>
+ <text id="IDS_MSGF_BODY_BLOCKED_NUMBERS">დაბლოკილი ნომრები</text>
+ <text id="IDS_MSGF_BODY_SETTINGS_MULTIMEDIAMESSAGE">მულტიმედიური შეტყობინებები</text>
+ <text id="IDS_MSGF_BODY_EDIT_WORD">სიტყვის შესწორება</text>
+ <text id="IDS_MSGF_BODY_EXPIRED">ვადა გაუვიდა</text>
+ <text id="IDS_MSGF_BODY_MMSCCCREATIONMODEWARNING">გაფრთხილება</text>
+ <text id="IDS_COM_SK_EDIT">შესწორება</text>
+ <text id="IDS_COM_POP_FAILED">ვერ შესრულდა</text>
+ <text id="IDS_MSGF_HEADER_DELETE_NUMBER">ნომრის წაშლა</text>
+ <text id="IDS_MSGC_BODY_RECORD_AUDIO">აუდიო ფაილის ჩაწერა</text>
+ <text id="IDS_COM_SK_BACK">უკან</text>
+ <text id="IDS_MSGF_BODY_UNICODE">უნიკოდი</text>
+ <text id="IDS_MSGF_HEADER_DELETE_WORDS">სიტყვების წაშლა</text>
+ <text id="IDS_COM_BODY_FORWARD">გადამისამართება</text>
+ <text id="IDS_MSGF_POP_NOMESSAGES">წერილები არ არის</text>
+ <text id="IDS_MSGF_OPT_ROAM_NETWORK">უცხოური ქსელი</text>
+ <text id="IDS_MSGF_BODY_FROM">საიდან</text>
+ <text id="IDS_COM_SK_DELETE">წაშლა</text>
+ <text id="IDS_MSGF_SK3_UNREAD">წაუკითხავი</text>
+ <text id="IDS_MSGC_BODY_DUPLICATED_RECIPIENT">გამეორებული მიმღები</text>
+ <text id="IDS_MSGF_BODY_GSM_ALPHABET">GSM ანბანი</text>
+ <text id="IDS_MSGF_BODY_SIM_CARD_MESSAGES">წერილები SIM ბარათზე</text>
+ <text id="IDS_MSGF_BODY_MMSNOTIMSGSTATUSSENT">გაგზავნილია</text>
+ <text id="IDS_COM_BODY_CONTACTS">კონტაქტები</text>
+ <text id="IDS_MSGF_OPT_STATUS">სტატუსი</text>
+ <text id="IDS_MSGF_BODY_MMSCCCREATIONMODEFREE">თავისუფალია</text>
+ <text id="IDS_COM_BODY_DETAILS_TYPE">ტიპი</text>
+ <text id="IDS_MSGF_BODY_AUTODOWNLOAD">ავტომატური ჩამოტვირთვა</text>
+ <text id="IDS_MSGF_SK_RESEND">თავიდან გაგზავნა</text>
+ <text id="IDS_COM_SK_CANCEL">გაუქმება</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONS">მიღების ოფციები</text>
+ <text id="IDS_COM_BODY_GALLERY">გალერეა</text>
+ <text id="IDS_MSGC_BUTTON2_DURATION_N_HPD_SECS">ხანგრძლივობა\n(%d წმ)</text>
+ <text id="IDS_COM_BODY_SEARCH">ძიება</text>
+ <text id="IDS_MSGF_HEADER_MESSAGE_BOXES">წერილების ყუთები</text>
+ <text id="IDS_MSGF_HEADER_ADD_NUMBER">ნომრის დამატება</text>
+ <text id="IDS_COM_BODY_MEMO">შეხსენება</text>
+ <text id="IDS_MSGF_BODY_COPY_TO_SIM">კოპირება SIM-ზე</text>
+ <text id="IDS_MSGF_BODY_ENTER_NUMBER">ჩაწერეთ ნომერი</text>
+ <text id="IDS_COM_OPT_ADD_CONTACT">კონტაქტის დამატება</text>
+ <text id="IDS_MSGF_OPT_HOME_NETWORK">შიდა ქსელი</text>
+ <text id="IDS_COM_POP_REJECTED">უარყოფილია</text>
+ <text id="IDS_COM_BODY_SETTINGS">პარამეტრები</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_START_WITH">დასაწყისი</text>
+ <text id="IDS_COM_BODY_DISPLAY">ჩვენება</text>
+ <text id="IDS_MSGF_OPT_PROTECTION_ON">დაცვა ჩართულია</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONNETWORK_MANUAL">მექანიკური</text>
+ <text id="IDS_SLCD_POP_TEXT_SIM_CARD_ERROR">SIM ბარათის შეცდომა</text>
+ <text id="IDS_COM_POP_DELETED">წაშლილია</text>
+ <text id="IDS_COM_SK_SEND_ABB">გაგზ.</text>
+ <text id="IDS_MSGF_POP_FORWARDED">გადამისამართდა</text>
+ <text id="IDS_MSG_SELECT_NUMBERS">Select numbers (%d)</text>
+ <text id="IDS_MSGF_BODY_CENTRE_PD">ცენტრი %d</text>
+ <text id="IDS_MSGF_HEADER_EDIT_NUMBER">ნომრის რედაქტირება</text>
+ <text id="IDS_MSGF_BODY_AUTOMATIC">ავტომატურად</text>
+ <text id="IDS_MSGF_BODY_VIEW_MESSAGE_DETAILS_ABB">წერილის დეტალები</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONNETWORK_REJECT">უარყოფა</text>
+ <text id="IDS_COM_BODY_VOICE_CALL">ხმოვანი ზარი</text>
+ <text id="IDS_MSG_MBODY_USE_THE_VOLUME_KEY">გამოიყენეთ ხმის ღილაკი</text>
+ <text id="IDS_COM_SK_SAVE">შენახვა</text>
+ <text id="IDS_MSGF_BODY_INVALID_SERVICE_CENTRE_ADDRESS">Invalid service centre address</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_EXACTLY_THE_SAME_AS">ზუსტად იგივე, რაც</text>
+ <text id="IDS_COM_BODY_NO_SEARCH_RESULTS">ძიების შედეგი არ არის</text>
+ <text id="IDS_MSGF_BODY_MMS">MMS</text>
+ <text id="IDS_MSGF_BODY_MMSCREATIONMODE">შექმნის რეჟიმი</text>
+ <text id="IDS_MSGF_BODY_TEXT_MESSAGES">ტექსტური შეტყობინებები</text>
+ <text id="IDS_MSGF_BODY_RECEIVED">მიღებულია</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_MATCH_CRITERIA">შედარების კრიტერიუმები</text>
+ <text id="IDS_MSGF_POP_DEFERRED">შეყოვნებულია</text>
+ <text id="IDS_COM_SK_ADD">დამატება</text>
+ <text id="IDS_MSGF_OPT_BLOCK">დაბლოკვა</text>
+ <text id="IDS_COM_SK_YES">დიახ</text>
+ <text id="IDS_MSGC_OPT_VIEW_CONTACT">კონტაქტის დათვალიერება</text>
+ <text id="IDS_COM_SK_SEARCH">ძიება</text>
+ <text id="IDS_COM_POP_AM_M_ABB">AM</text>
+ <text id="IDS_MSGF_BODY_BLOCKED_WORDS">დაბლოკილი სიტყვები</text>
+ <text id="IDS_COM_BODY_SUBJECT">თემა</text>
+ <text id="IDS_MSGF_POP_UNRECOGNISED">ამოუცნობი</text>
+ <text id="IDS_MSGF_BODY_SEND_READ_REPORT">წაკითხვის შესახებ შეტყობინების გაგზავნა</text>
+ <text id="IDS_MSGF_SK_RESTORE">აღდგენა</text>
+ <text id="IDS_MSGF_BODY_REQUEST_READ_REPORT">წაკითხვის რეპორტის მოთხოვნა</text>
+ <text id="IDS_MSGF_BODY_ENTER_WORD">ჩაწერეთ სიტყვა</text>
+ <text id="IDS_COM_SK3_COMPOSE">შედგენა</text>
+ <text id="IDS_COM_POP_UNKNOWN_ERROR_OCCURRED">მოხდა უცნობი შეცდომა</text>
+ <text id="IDS_MSGF_BODY_REQUEST_DELIVERY_REPORT">მისვლის შეტყობინების მოთხოვნა</text>
+ <text id="IDS_MSGF_BODY_INVALID_RECIPIENTS">მიმღებები არასწორია</text>
+ <text id="IDS_MSGF_BODY_BROADCASTMESSAGES">შეტყობინებების გადაცემა</text>
+ <text id="IDS_MSGF_OPT_SAVE_ATTACHMENT">მიმაგრებული ფაილის შენახვა</text>
+ <text id="IDS_MSGF_BODY_DELIVERY_REPORT">მიტანის რეპორტი</text>
+ <text id="IDS_MSGC_POP_DISCARD_CURRENT_MESSAGE_Q">გადააგდებთ მიმდინარე წერილს?</text>
+ <text id="IDS_COM_POP_ATTACH">მიმაგრება</text>
+ <text id="IDS_COM_BODY_CALENDAR">კალენდარი</text>
+ <text id="IDS_COM_SK_OK">OK</text>
+ <text id="IDS_COM_SK_CALL">ზარი</text>
+ <text id="IDS_MSGC_BODY_CAPTURE_VIDEO">ვიდეოს გადაღება</text>
+ <text id="IDS_MSG_HEADER_SELECT_RECIPIENT">აირჩიეთ მიმღები</text>
+</string_table>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201301241731" Dversion="20120315">
+ <text id="IDS_MSGF_HEADER_MESSAGE_DETAILS">Хабар мәліметтері</text>
+ <text id="IDS_COM_SK3_PREVIEW">Көру</text>
+ <text id="IDS_COM_BODY_PD_SELECTED">%d таңдалды</text>
+ <text id="IDS_MSG_BODY_DURATION_MUST_BE_LONGER_THAN_PD_SECONDS">Ұзақтығы %d секундтан асуы керек</text>
+ <text id="IDS_DB_POP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED_DELETE_SOME_CHARACTERS">Таңбалардың максималды санынан асып кетті. Кейбір таңбаларды жойыңыз</text>
+ <text id="IDS_MSGF_BODY_NO_BLOCKED_WORDS">No blocked words</text>
+ <text id="IDS_COM_BODY_SELECT_ALL">Бәрін бөлектеу</text>
+ <text id="IDS_MSGF_BODY_NO_SUBJECT">Нысаны жоқ</text>
+ <text id="IDS_COM_POP_CLOSE">Жабу</text>
+ <text id="IDS_COM_BODY_TO">Кімге</text>
+ <text id="IDS_MSGC_BODY_TAKE_PICTURE">Суретке түсіру</text>
+ <text id="IDS_COM_POP_DELETE_Q">Өшіресіз бе?</text>
+ <text id="IDS_MSGC_HEADER_INPUTMODE">Енгізу тәртібі</text>
+ <text id="IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED">Ең көп алушылар санына (%d) жетті</text>
+ <text id="IDS_COM_SK_NO">Жоқ</text>
+ <text id="IDS_COM_BODY_MY_FILES">Менің файлдарым</text>
+ <text id="IDS_MSGF_BODY_COPY_TO_PHONE">Телефонға көшіру</text>
+ <text id="IDS_MSGF_BODY_CB_MESSAGES">CB хабарлары</text>
+ <text id="IDS_MSGF_BODY_SERVICECENTRE">Қызмет орталығы</text>
+ <text id="IDS_COM_BODY_SMS">SMS</text>
+ <text id="IDS_MSGF_POP_SENDING_FAILED_MESSAGE">Хабар жіберілмеді</text>
+ <text id="IDS_COM_POP_SUCCESS">Жетістік</text>
+ <text id="IDS_MSGF_POP_MESSAGES_RECEIVED_FROM_YOUR_CONTACTS_WILL_NOT_BE_BLOCKED_EVEN_IF_THEY_CONTAIN_BLOCKED_NUMBERS">Messages received from your contacts will not be blocked even if they contain blocked numbers</text>
+ <text id="IDS_MSG_SELECT_WORDS">Select words (%d)</text>
+ <text id="IDS_MSGF_BODY_ROAMINGRECEPTION_RESTRICTED">Шектелген</text>
+ <text id="IDS_MSGF_POP_MESSAGES_RECEIVED_FROM_YOUR_CONTACTS_WILL_NOT_BE_BLOCKED_EVEN_IF_THEY_CONTAIN_BLOCKED_WORDS">Контактілерден алынған хабарларда тыйым салынған сөздер болса да, оларға тыйым салынбайды</text>
+ <text id="IDS_MSGF_OPT_UNBLOCK">Құлпын ашу</text>
+ <text id="IDS_MSGF_BODY_COPY_MESSAGE_TEXT_ABB">Хабар мәтінін көшіру</text>
+ <text id="IDS_MSGF_BODY_READ_REPORT">Оқылғандығы туралы есеп</text>
+ <text id="IDS_COM_BODY_MESSAGES">Хабарламалар</text>
+ <text id="IDS_COM_SK_OPTIONS">Опциялар</text>
+ <text id="IDS_COM_SK_DONE">Дайын</text>
+ <text id="IDS_COM_POP_PM">TK</text>
+ <text id="IDS_COM_BODY_UNKNOWN">Белгісіз</text>
+ <text id="IDS_MSG_BODY_DRAFT_MESSAGES">Жобалық хабарлар</text>
+ <text id="IDS_COM_POP_SERVICE_UNAVAILABLE">Қызмет көрсете алмайды</text>
+ <text id="IDS_MSGF_OPT_CREATEMSG_ADD_WORD">Сөз қосу</text>
+ <text id="IDS_MSGF_POP_BLOCK_PS_Q">%s тыйым салу керек пе?</text>
+ <text id="IDS_MSG_BODY_CHANGE_TEXT_SIZE_USING_THE_VOLUME_KEY">Дыбыс қаттылығы пернесі арқылы мәтін өлшемін өзгертіңіз</text>
+ <text id="IDS_COM_POP_NEW_MESSAGE">Жаңа хабарлама</text>
+ <text id="IDS_MSGF_BODY_SPAM_MESSAGES">Спам хабарлар</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_INCLUDE">Қосу</text>
+ <text id="IDS_MSGF_BODY_NO_BLOCKED_NUMBERS">No blocked numbers</text>
+ <text id="IDS_MSGF_BODY_BLOCKED_NUMBERS">Тыйым салынған сандар</text>
+ <text id="IDS_MSGF_BODY_SETTINGS_MULTIMEDIAMESSAGE">Мультимедиа хабарлары</text>
+ <text id="IDS_MSGF_BODY_EDIT_WORD">Сөзді өзгерту</text>
+ <text id="IDS_MSGF_BODY_EXPIRED">Мерзімі өтіп кеткен</text>
+ <text id="IDS_MSGF_BODY_MMSCCCREATIONMODEWARNING">Ескерту</text>
+ <text id="IDS_COM_SK_EDIT">Өзгер.</text>
+ <text id="IDS_COM_POP_FAILED">Үзіліп кетті</text>
+ <text id="IDS_MSGF_HEADER_DELETE_NUMBER">Нөмірді жою</text>
+ <text id="IDS_MSGC_BODY_RECORD_AUDIO">Аудионы жазу</text>
+ <text id="IDS_COM_SK_BACK">Aртқа</text>
+ <text id="IDS_MSGF_BODY_UNICODE">Юникод</text>
+ <text id="IDS_MSGF_HEADER_DELETE_WORDS">Сөздерді жою</text>
+ <text id="IDS_COM_BODY_FORWARD">Жіберу</text>
+ <text id="IDS_MSGF_POP_NOMESSAGES">Хабарлама жоқ</text>
+ <text id="IDS_MSGF_OPT_ROAM_NETWORK">Шеткі желі</text>
+ <text id="IDS_MSGF_BODY_FROM">Кімнен</text>
+ <text id="IDS_COM_SK_DELETE">Жою</text>
+ <text id="IDS_MSGF_SK3_UNREAD">Оқылмаған</text>
+ <text id="IDS_MSGC_BODY_DUPLICATED_RECIPIENT">Қайталанатын алушы</text>
+ <text id="IDS_MSGF_BODY_GSM_ALPHABET">GSM алфавиті</text>
+ <text id="IDS_MSGF_BODY_SIM_CARD_MESSAGES">SIM картасындағы хабарлар</text>
+ <text id="IDS_MSGF_BODY_MMSNOTIMSGSTATUSSENT">Жіберілген</text>
+ <text id="IDS_COM_BODY_CONTACTS">Контактілер</text>
+ <text id="IDS_MSGF_OPT_STATUS">Статус</text>
+ <text id="IDS_MSGF_BODY_MMSCCCREATIONMODEFREE">тегін</text>
+ <text id="IDS_COM_BODY_DETAILS_TYPE">Түрі</text>
+ <text id="IDS_MSGF_BODY_AUTODOWNLOAD">Авто жазу</text>
+ <text id="IDS_MSGF_SK_RESEND">Қайта жіберу</text>
+ <text id="IDS_COM_SK_CANCEL">Тоқтату</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONS">Қабылдау опциялары</text>
+ <text id="IDS_COM_BODY_GALLERY">Галерея</text>
+ <text id="IDS_MSGC_BUTTON2_DURATION_N_HPD_SECS">Ұзақтығы\n(%d сек)</text>
+ <text id="IDS_COM_BODY_SEARCH">Іздеу</text>
+ <text id="IDS_MSGF_HEADER_MESSAGE_BOXES">Хабарламалар қалталары</text>
+ <text id="IDS_MSGF_HEADER_ADD_NUMBER">Номір қосу</text>
+ <text id="IDS_COM_BODY_MEMO">Жад</text>
+ <text id="IDS_MSGF_BODY_COPY_TO_SIM">SIM-картаға көшіру</text>
+ <text id="IDS_MSGF_BODY_ENTER_NUMBER">Нөмірін жазыңыз</text>
+ <text id="IDS_COM_OPT_ADD_CONTACT">Нөмір қосу</text>
+ <text id="IDS_MSGF_OPT_HOME_NETWORK">Үй желісі</text>
+ <text id="IDS_COM_POP_REJECTED">Қайтарылды</text>
+ <text id="IDS_COM_BODY_SETTINGS">Қондырғ-р</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_START_WITH">Бастау</text>
+ <text id="IDS_COM_BODY_DISPLAY">Дисплей</text>
+ <text id="IDS_MSGF_OPT_PROTECTION_ON">Қорғаныс қосылды</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONNETWORK_MANUAL">Қолмен</text>
+ <text id="IDS_SLCD_POP_TEXT_SIM_CARD_ERROR">SIM картасы қол жетімді емес</text>
+ <text id="IDS_COM_POP_DELETED">Жойылды</text>
+ <text id="IDS_COM_SK_SEND_ABB">Жіб.</text>
+ <text id="IDS_MSGF_POP_FORWARDED">Қайта жіберілген</text>
+ <text id="IDS_MSG_SELECT_NUMBERS">Select numbers (%d)</text>
+ <text id="IDS_MSGF_BODY_CENTRE_PD">%d-орталық</text>
+ <text id="IDS_MSGF_HEADER_EDIT_NUMBER">Нөмірді өзгерту</text>
+ <text id="IDS_MSGF_BODY_AUTOMATIC">Автоматты түрде</text>
+ <text id="IDS_MSGF_BODY_VIEW_MESSAGE_DETAILS_ABB">Хабар мәлімет. көру</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONNETWORK_REJECT">Шығару</text>
+ <text id="IDS_COM_BODY_VOICE_CALL">Дауыс қоңырауы</text>
+ <text id="IDS_MSG_MBODY_USE_THE_VOLUME_KEY">Дыбыс қат. пер. пайдалану</text>
+ <text id="IDS_COM_SK_SAVE">Сақтау</text>
+ <text id="IDS_MSGF_BODY_INVALID_SERVICE_CENTRE_ADDRESS">Invalid service centre address</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_EXACTLY_THE_SAME_AS">Дәл сондай</text>
+ <text id="IDS_COM_BODY_NO_SEARCH_RESULTS">Іздеу нәтижелері жоқ</text>
+ <text id="IDS_MSGF_BODY_MMS">MMS</text>
+ <text id="IDS_MSGF_BODY_MMSCREATIONMODE">Құру режимі</text>
+ <text id="IDS_MSGF_BODY_TEXT_MESSAGES">Мәтінді хабарламалар</text>
+ <text id="IDS_MSGF_BODY_RECEIVED">Қабылданған</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_MATCH_CRITERIA">Сәйкес келу мөлшерлері</text>
+ <text id="IDS_MSGF_POP_DEFERRED">Кейнге қалдырылды</text>
+ <text id="IDS_COM_SK_ADD">Қосу</text>
+ <text id="IDS_MSGF_OPT_BLOCK">Құлыптау</text>
+ <text id="IDS_COM_SK_YES">Иә</text>
+ <text id="IDS_MSGC_OPT_VIEW_CONTACT">Контактты көру</text>
+ <text id="IDS_COM_SK_SEARCH">Тізім</text>
+ <text id="IDS_COM_POP_AM_M_ABB">ТД</text>
+ <text id="IDS_MSGF_BODY_BLOCKED_WORDS">Тыйым салынған сөздер</text>
+ <text id="IDS_COM_BODY_SUBJECT">Нысан</text>
+ <text id="IDS_MSGF_POP_UNRECOGNISED">Танылған жоқ</text>
+ <text id="IDS_MSGF_BODY_SEND_READ_REPORT">Оқу есебін жіберу</text>
+ <text id="IDS_MSGF_SK_RESTORE">Қ. кел-у</text>
+ <text id="IDS_MSGF_BODY_REQUEST_READ_REPORT">Оқылған туралы есеп беру</text>
+ <text id="IDS_MSGF_BODY_ENTER_WORD">Сөз енгізіңіз</text>
+ <text id="IDS_COM_SK3_COMPOSE">Жазу</text>
+ <text id="IDS_COM_POP_UNKNOWN_ERROR_OCCURRED">Белгісіз қате пайда болды</text>
+ <text id="IDS_MSGF_BODY_REQUEST_DELIVERY_REPORT">Хабарлама оқылғанда хабарлауды талап ету</text>
+ <text id="IDS_MSGF_BODY_INVALID_RECIPIENTS">Алушылар қате</text>
+ <text id="IDS_MSGF_BODY_BROADCASTMESSAGES">Желі хабарламасы</text>
+ <text id="IDS_MSGF_OPT_SAVE_ATTACHMENT">Қосымшаны сақтау</text>
+ <text id="IDS_MSGF_BODY_DELIVERY_REPORT">Жеткізу жөніндегі есеп</text>
+ <text id="IDS_MSGC_POP_DISCARD_CURRENT_MESSAGE_Q">Ағымдағы хабарды алып тастау керек пе?</text>
+ <text id="IDS_COM_POP_ATTACH">Қосымша</text>
+ <text id="IDS_COM_BODY_CALENDAR">Күнтізбе</text>
+ <text id="IDS_COM_SK_OK">OK</text>
+ <text id="IDS_COM_SK_CALL">Қоңырау</text>
+ <text id="IDS_MSGC_BODY_CAPTURE_VIDEO">Видео бөгеліс</text>
+ <text id="IDS_MSG_HEADER_SELECT_RECIPIENT">Алушы таңдау</text>
+</string_table>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201301241731" Dversion="20120315">
+ <text id="IDS_MSGF_HEADER_MESSAGE_DETAILS">메시지 상세정보</text>
+ <text id="IDS_COM_SK3_PREVIEW">미리보기</text>
+ <text id="IDS_COM_BODY_PD_SELECTED">%d개 선택</text>
+ <text id="IDS_MSG_BODY_DURATION_MUST_BE_LONGER_THAN_PD_SECONDS">표시 시간 값은 %d초보다 커야 합니다</text>
+ <text id="IDS_DB_POP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED_DELETE_SOME_CHARACTERS">입력할 수 있는 글자 수를 초과하였습니다. 필요 없는 글자를 삭제하세요</text>
+ <text id="IDS_MSGF_BODY_NO_BLOCKED_WORDS">No blocked words</text>
+ <text id="IDS_COM_BODY_SELECT_ALL">모두 선택</text>
+ <text id="IDS_MSGF_BODY_NO_SUBJECT">제목이 없습니다</text>
+ <text id="IDS_COM_POP_CLOSE">닫기</text>
+ <text id="IDS_COM_BODY_TO">수신인</text>
+ <text id="IDS_MSGC_BODY_TAKE_PICTURE">사진 촬영</text>
+ <text id="IDS_COM_POP_DELETE_Q">삭제할까요?</text>
+ <text id="IDS_MSGC_HEADER_INPUTMODE">입력 모드</text>
+ <text id="IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED">추가할 수 있는 수신인(%d명)을 초과하였습니다</text>
+ <text id="IDS_COM_SK_NO">아니요</text>
+ <text id="IDS_COM_BODY_MY_FILES">내 파일</text>
+ <text id="IDS_MSGF_BODY_COPY_TO_PHONE">휴대폰으로 복사</text>
+ <text id="IDS_MSGF_BODY_CB_MESSAGES">방송 메시지</text>
+ <text id="IDS_MSGF_BODY_SERVICECENTRE">서비스 센터</text>
+ <text id="IDS_COM_BODY_SMS">SMS</text>
+ <text id="IDS_MSGF_POP_SENDING_FAILED_MESSAGE">메시지를 전송하지 못하였습니다</text>
+ <text id="IDS_COM_POP_SUCCESS">완료되었습니다</text>
+ <text id="IDS_MSGF_POP_MESSAGES_RECEIVED_FROM_YOUR_CONTACTS_WILL_NOT_BE_BLOCKED_EVEN_IF_THEY_CONTAIN_BLOCKED_NUMBERS">Messages received from your contacts will not be blocked even if they contain blocked numbers</text>
+ <text id="IDS_MSG_SELECT_WORDS">Select words (%d)</text>
+ <text id="IDS_MSGF_BODY_ROAMINGRECEPTION_RESTRICTED">제한</text>
+ <text id="IDS_MSGF_POP_MESSAGES_RECEIVED_FROM_YOUR_CONTACTS_WILL_NOT_BE_BLOCKED_EVEN_IF_THEY_CONTAIN_BLOCKED_WORDS">연락처로부터 수신한 메시지에 차단된 단어가 포함되어 있어도 해당 메시지는 차단되지 않습니다</text>
+ <text id="IDS_MSGF_OPT_UNBLOCK">차단 해제</text>
+ <text id="IDS_MSGF_BODY_COPY_MESSAGE_TEXT_ABB">메시지 본문 복사</text>
+ <text id="IDS_MSGF_BODY_READ_REPORT">읽음 확인</text>
+ <text id="IDS_COM_BODY_MESSAGES">메시지</text>
+ <text id="IDS_COM_SK_OPTIONS">옵션</text>
+ <text id="IDS_COM_SK_DONE">완료</text>
+ <text id="IDS_COM_POP_PM">오후</text>
+ <text id="IDS_COM_BODY_UNKNOWN">알 수 없음</text>
+ <text id="IDS_MSG_BODY_DRAFT_MESSAGES">임시 메시지</text>
+ <text id="IDS_COM_POP_SERVICE_UNAVAILABLE">서비스를 사용할 수 없습니다</text>
+ <text id="IDS_MSGF_OPT_CREATEMSG_ADD_WORD">단어 추가</text>
+ <text id="IDS_MSGF_POP_BLOCK_PS_Q">%s을(를) 차단할까요?</text>
+ <text id="IDS_MSG_BODY_CHANGE_TEXT_SIZE_USING_THE_VOLUME_KEY">음량 버튼을 사용하여 글자 크기를 변경합니다</text>
+ <text id="IDS_COM_POP_NEW_MESSAGE">새 메시지</text>
+ <text id="IDS_MSGF_BODY_SPAM_MESSAGES">스팸 메시지</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_INCLUDE">포함</text>
+ <text id="IDS_MSGF_BODY_NO_BLOCKED_NUMBERS">No blocked numbers</text>
+ <text id="IDS_MSGF_BODY_BLOCKED_NUMBERS">차단된 전화번호</text>
+ <text id="IDS_MSGF_BODY_SETTINGS_MULTIMEDIAMESSAGE">MMS</text>
+ <text id="IDS_MSGF_BODY_EDIT_WORD">단어 편집</text>
+ <text id="IDS_MSGF_BODY_EXPIRED">만료된 컨텐츠</text>
+ <text id="IDS_MSGF_BODY_MMSCCCREATIONMODEWARNING">경고</text>
+ <text id="IDS_COM_SK_EDIT">편집</text>
+ <text id="IDS_COM_POP_FAILED">실패하였습니다</text>
+ <text id="IDS_MSGF_HEADER_DELETE_NUMBER">번호 삭제</text>
+ <text id="IDS_MSGC_BODY_RECORD_AUDIO">오디오 녹음</text>
+ <text id="IDS_COM_SK_BACK">이전</text>
+ <text id="IDS_MSGF_BODY_UNICODE">유니코드</text>
+ <text id="IDS_MSGF_HEADER_DELETE_WORDS">단어 삭제</text>
+ <text id="IDS_COM_BODY_FORWARD">전달</text>
+ <text id="IDS_MSGF_POP_NOMESSAGES">메시지가 없습니다</text>
+ <text id="IDS_MSGF_OPT_ROAM_NETWORK">로밍 네트워크</text>
+ <text id="IDS_MSGF_BODY_FROM">발신</text>
+ <text id="IDS_COM_SK_DELETE">삭제</text>
+ <text id="IDS_MSGF_SK3_UNREAD">읽지 않음</text>
+ <text id="IDS_MSGC_BODY_DUPLICATED_RECIPIENT">수신인이 중복 입력되었습니다</text>
+ <text id="IDS_MSGF_BODY_GSM_ALPHABET">GSM 알파벳</text>
+ <text id="IDS_MSGF_BODY_SIM_CARD_MESSAGES">SIM 카드 메시지</text>
+ <text id="IDS_MSGF_BODY_MMSNOTIMSGSTATUSSENT">전송되었습니다</text>
+ <text id="IDS_COM_BODY_CONTACTS">연락처</text>
+ <text id="IDS_MSGF_OPT_STATUS">상태</text>
+ <text id="IDS_MSGF_BODY_MMSCCCREATIONMODEFREE">사용 가능</text>
+ <text id="IDS_COM_BODY_DETAILS_TYPE">형식</text>
+ <text id="IDS_MSGF_BODY_AUTODOWNLOAD">자동 다운로드</text>
+ <text id="IDS_MSGF_SK_RESEND">재전송</text>
+ <text id="IDS_COM_SK_CANCEL">취소</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONS">수신 옵션</text>
+ <text id="IDS_COM_BODY_GALLERY">갤러리</text>
+ <text id="IDS_MSGC_BUTTON2_DURATION_N_HPD_SECS">시간\n(%d초)</text>
+ <text id="IDS_COM_BODY_SEARCH">검색</text>
+ <text id="IDS_MSGF_HEADER_MESSAGE_BOXES">메시지 보관함</text>
+ <text id="IDS_MSGF_HEADER_ADD_NUMBER">전화번호 추가</text>
+ <text id="IDS_COM_BODY_MEMO">메모</text>
+ <text id="IDS_MSGF_BODY_COPY_TO_SIM">SIM으로 복사</text>
+ <text id="IDS_MSGF_BODY_ENTER_NUMBER">전화번호를 입력하세요</text>
+ <text id="IDS_COM_OPT_ADD_CONTACT">연락처 추가</text>
+ <text id="IDS_MSGF_OPT_HOME_NETWORK">홈 네트워크</text>
+ <text id="IDS_COM_POP_REJECTED">수신 거절하였습니다</text>
+ <text id="IDS_COM_BODY_SETTINGS">설정</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_START_WITH">입력 번호로 시작</text>
+ <text id="IDS_COM_BODY_DISPLAY">디스플레이</text>
+ <text id="IDS_MSGF_OPT_PROTECTION_ON">보호 설정</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONNETWORK_MANUAL">수동</text>
+ <text id="IDS_SLCD_POP_TEXT_SIM_CARD_ERROR">SIM을 사용할 수 없습니다</text>
+ <text id="IDS_COM_POP_DELETED">삭제되었습니다</text>
+ <text id="IDS_COM_SK_SEND_ABB">전송</text>
+ <text id="IDS_MSGF_POP_FORWARDED">전달되었습니다</text>
+ <text id="IDS_MSG_SELECT_NUMBERS">Select numbers (%d)</text>
+ <text id="IDS_MSGF_BODY_CENTRE_PD">센터%d</text>
+ <text id="IDS_MSGF_HEADER_EDIT_NUMBER">전화번호 편집</text>
+ <text id="IDS_MSGF_BODY_AUTOMATIC">자동</text>
+ <text id="IDS_MSGF_BODY_VIEW_MESSAGE_DETAILS_ABB">메시지 내용 보기</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONNETWORK_REJECT">거절</text>
+ <text id="IDS_COM_BODY_VOICE_CALL">음성통화</text>
+ <text id="IDS_MSG_MBODY_USE_THE_VOLUME_KEY">음량 버튼 사용</text>
+ <text id="IDS_COM_SK_SAVE">저장</text>
+ <text id="IDS_MSGF_BODY_INVALID_SERVICE_CENTRE_ADDRESS">Invalid service centre address</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_EXACTLY_THE_SAME_AS">입력 내용과 일치</text>
+ <text id="IDS_COM_BODY_NO_SEARCH_RESULTS">검색 결과가 없습니다</text>
+ <text id="IDS_MSGF_BODY_MMS">MMS</text>
+ <text id="IDS_MSGF_BODY_MMSCREATIONMODE">첨부 제한 설정</text>
+ <text id="IDS_MSGF_BODY_TEXT_MESSAGES">문자 메시지</text>
+ <text id="IDS_MSGF_BODY_RECEIVED">수신하였습니다</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_MATCH_CRITERIA">적용 기준</text>
+ <text id="IDS_MSGF_POP_DEFERRED">전송이 연기되었습니다</text>
+ <text id="IDS_COM_SK_ADD">추가</text>
+ <text id="IDS_MSGF_OPT_BLOCK">차단</text>
+ <text id="IDS_COM_SK_YES">예</text>
+ <text id="IDS_MSGC_OPT_VIEW_CONTACT">연락처 보기</text>
+ <text id="IDS_COM_SK_SEARCH">검색</text>
+ <text id="IDS_COM_POP_AM_M_ABB">오전</text>
+ <text id="IDS_MSGF_BODY_BLOCKED_WORDS">차단된 단어</text>
+ <text id="IDS_COM_BODY_SUBJECT">제목</text>
+ <text id="IDS_MSGF_POP_UNRECOGNISED">인식할 수 없습니다</text>
+ <text id="IDS_MSGF_BODY_SEND_READ_REPORT">읽음 확인 설정</text>
+ <text id="IDS_MSGF_SK_RESTORE">복원</text>
+ <text id="IDS_MSGF_BODY_REQUEST_READ_REPORT">읽음 확인</text>
+ <text id="IDS_MSGF_BODY_ENTER_WORD">단어를 입력하세요</text>
+ <text id="IDS_COM_SK3_COMPOSE">작성</text>
+ <text id="IDS_COM_POP_UNKNOWN_ERROR_OCCURRED">알 수 없는 오류가 발생하였습니다</text>
+ <text id="IDS_MSGF_BODY_REQUEST_DELIVERY_REPORT">수신 확인</text>
+ <text id="IDS_MSGF_BODY_INVALID_RECIPIENTS">수신인이 바르지 않습니다</text>
+ <text id="IDS_MSGF_BODY_BROADCASTMESSAGES">방송 메시지</text>
+ <text id="IDS_MSGF_OPT_SAVE_ATTACHMENT">첨부파일 저장</text>
+ <text id="IDS_MSGF_BODY_DELIVERY_REPORT">수신 확인</text>
+ <text id="IDS_MSGC_POP_DISCARD_CURRENT_MESSAGE_Q">현재 메시지를 삭제할까요?</text>
+ <text id="IDS_COM_POP_ATTACH">첨부</text>
+ <text id="IDS_COM_BODY_CALENDAR">일정</text>
+ <text id="IDS_COM_SK_OK">확인</text>
+ <text id="IDS_COM_SK_CALL">통화</text>
+ <text id="IDS_MSGC_BODY_CAPTURE_VIDEO">동영상 촬영</text>
+ <text id="IDS_MSG_HEADER_SELECT_RECIPIENT">수신인 선택</text>
+</string_table>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201301241731" Dversion="20120315">
+ <text id="IDS_MSGF_HEADER_MESSAGE_DETAILS">Ziņas dati</text>
+ <text id="IDS_COM_SK3_PREVIEW">Atpakaļ</text>
+ <text id="IDS_COM_BODY_PD_SELECTED">%d izvēlētas</text>
+ <text id="IDS_MSG_BODY_DURATION_MUST_BE_LONGER_THAN_PD_SECONDS">Ilgumam jābūt garākam par %d sekundēm</text>
+ <text id="IDS_DB_POP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED_DELETE_SOME_CHARACTERS">Pārsniegts maksimālais rakstzīmju skaits. Izdzēsiet dažas rakstzīmes</text>
+ <text id="IDS_MSGF_BODY_NO_BLOCKED_WORDS">No blocked words</text>
+ <text id="IDS_COM_BODY_SELECT_ALL">Izv. visu</text>
+ <text id="IDS_MSGF_BODY_NO_SUBJECT">Nav tēmas</text>
+ <text id="IDS_COM_POP_CLOSE">Aizvērt</text>
+ <text id="IDS_COM_BODY_TO">Kam</text>
+ <text id="IDS_MSGC_BODY_TAKE_PICTURE">Fotografēt</text>
+ <text id="IDS_COM_POP_DELETE_Q">Vai dzēst?</text>
+ <text id="IDS_MSGC_HEADER_INPUTMODE">Ievades režīms</text>
+ <text id="IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED">Sasniegts maksimālais adresātu skaits (%d)</text>
+ <text id="IDS_COM_SK_NO">Nē</text>
+ <text id="IDS_COM_BODY_MY_FILES">Mani Faili</text>
+ <text id="IDS_MSGF_BODY_COPY_TO_PHONE">Kopēt tālrunī</text>
+ <text id="IDS_MSGF_BODY_CB_MESSAGES">Šūnu apraides ziņas</text>
+ <text id="IDS_MSGF_BODY_SERVICECENTRE">Pakalpojumu centrs</text>
+ <text id="IDS_COM_BODY_SMS">Īsziņa</text>
+ <text id="IDS_MSGF_POP_SENDING_FAILED_MESSAGE">Ziņa par neveiksmīgu nosūtīšanu</text>
+ <text id="IDS_COM_POP_SUCCESS">Veiksmīgi</text>
+ <text id="IDS_MSGF_POP_MESSAGES_RECEIVED_FROM_YOUR_CONTACTS_WILL_NOT_BE_BLOCKED_EVEN_IF_THEY_CONTAIN_BLOCKED_NUMBERS">Messages received from your contacts will not be blocked even if they contain blocked numbers</text>
+ <text id="IDS_MSG_SELECT_WORDS">Select words (%d)</text>
+ <text id="IDS_MSGF_BODY_ROAMINGRECEPTION_RESTRICTED">Aizliegts</text>
+ <text id="IDS_MSGF_POP_MESSAGES_RECEIVED_FROM_YOUR_CONTACTS_WILL_NOT_BE_BLOCKED_EVEN_IF_THEY_CONTAIN_BLOCKED_WORDS">Ziņas no jūsu kontaktiem netiks bloķētas pat tad, ja ietvers bloķētos vārdus</text>
+ <text id="IDS_MSGF_OPT_UNBLOCK">Atbloķēt</text>
+ <text id="IDS_MSGF_BODY_COPY_MESSAGE_TEXT_ABB">Kopēt ziņas tekstu</text>
+ <text id="IDS_MSGF_BODY_READ_REPORT">Lasīšanas atskaite</text>
+ <text id="IDS_COM_BODY_MESSAGES">Ziņas</text>
+ <text id="IDS_COM_SK_OPTIONS">Iespējas</text>
+ <text id="IDS_COM_SK_DONE">Gatavs</text>
+ <text id="IDS_COM_POP_PM">PM</text>
+ <text id="IDS_COM_BODY_UNKNOWN">Nezināms</text>
+ <text id="IDS_MSG_BODY_DRAFT_MESSAGES">Ziņu melnraksti</text>
+ <text id="IDS_COM_POP_SERVICE_UNAVAILABLE">Pakalpojums nav pieejams</text>
+ <text id="IDS_MSGF_OPT_CREATEMSG_ADD_WORD">Pievienot vārdu</text>
+ <text id="IDS_MSGF_POP_BLOCK_PS_Q">Vai bloķēt %s?</text>
+ <text id="IDS_MSG_BODY_CHANGE_TEXT_SIZE_USING_THE_VOLUME_KEY">Lai mainītu teksta lielumu, izmantojiet skaļuma regulēšanas taustiņu</text>
+ <text id="IDS_COM_POP_NEW_MESSAGE">Jauna ziņa</text>
+ <text id="IDS_MSGF_BODY_SPAM_MESSAGES">Surogātpasta ziņas</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_INCLUDE">Ietver</text>
+ <text id="IDS_MSGF_BODY_NO_BLOCKED_NUMBERS">No blocked numbers</text>
+ <text id="IDS_MSGF_BODY_BLOCKED_NUMBERS">Bloķētie numuri</text>
+ <text id="IDS_MSGF_BODY_SETTINGS_MULTIMEDIAMESSAGE">Multiziņas</text>
+ <text id="IDS_MSGF_BODY_EDIT_WORD">Rediģēt vārdu</text>
+ <text id="IDS_MSGF_BODY_EXPIRED">Beidzies derīgums</text>
+ <text id="IDS_MSGF_BODY_MMSCCCREATIONMODEWARNING">Brīdinājums</text>
+ <text id="IDS_COM_SK_EDIT">Rediģēt</text>
+ <text id="IDS_COM_POP_FAILED">Neizdevās</text>
+ <text id="IDS_MSGF_HEADER_DELETE_NUMBER">Dzēst numuru</text>
+ <text id="IDS_MSGC_BODY_RECORD_AUDIO">Ierakstīt skaņu</text>
+ <text id="IDS_COM_SK_BACK">Atpakaļ</text>
+ <text id="IDS_MSGF_BODY_UNICODE">Unikods</text>
+ <text id="IDS_MSGF_HEADER_DELETE_WORDS">Dzēst vārdus</text>
+ <text id="IDS_COM_BODY_FORWARD">Pārsūtīt</text>
+ <text id="IDS_MSGF_POP_NOMESSAGES">Nav ziņu</text>
+ <text id="IDS_MSGF_OPT_ROAM_NETWORK">Viesabonēšanas tīkls</text>
+ <text id="IDS_MSGF_BODY_FROM">No</text>
+ <text id="IDS_COM_SK_DELETE">Dzēst</text>
+ <text id="IDS_MSGF_SK3_UNREAD">Nelas.</text>
+ <text id="IDS_MSGC_BODY_DUPLICATED_RECIPIENT">Adresāta dublikāts</text>
+ <text id="IDS_MSGF_BODY_GSM_ALPHABET">GSM alfabēts</text>
+ <text id="IDS_MSGF_BODY_SIM_CARD_MESSAGES">SIM kartes ziņas</text>
+ <text id="IDS_MSGF_BODY_MMSNOTIMSGSTATUSSENT">Nosūtīts</text>
+ <text id="IDS_COM_BODY_CONTACTS">Kontakti</text>
+ <text id="IDS_MSGF_OPT_STATUS">Statuss</text>
+ <text id="IDS_MSGF_BODY_MMSCCCREATIONMODEFREE">Brīvs</text>
+ <text id="IDS_COM_BODY_DETAILS_TYPE">Veids</text>
+ <text id="IDS_MSGF_BODY_AUTODOWNLOAD">Automātiska lejupielāde</text>
+ <text id="IDS_MSGF_SK_RESEND">Sūtīt vēlreiz</text>
+ <text id="IDS_COM_SK_CANCEL">Atcelt</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONS">Saņemšanas iespējas</text>
+ <text id="IDS_COM_BODY_GALLERY">Galerija</text>
+ <text id="IDS_MSGC_BUTTON2_DURATION_N_HPD_SECS">Ilgums\n(%d sek.)</text>
+ <text id="IDS_COM_BODY_SEARCH">Meklēt</text>
+ <text id="IDS_MSGF_HEADER_MESSAGE_BOXES">Ziņu pastkastes</text>
+ <text id="IDS_MSGF_HEADER_ADD_NUMBER">Pievienot numuru</text>
+ <text id="IDS_COM_BODY_MEMO">Atgādne</text>
+ <text id="IDS_MSGF_BODY_COPY_TO_SIM">Kopēt SIM kartē</text>
+ <text id="IDS_MSGF_BODY_ENTER_NUMBER">Ievadiet numuru</text>
+ <text id="IDS_COM_OPT_ADD_CONTACT">Pievienot kontaktu</text>
+ <text id="IDS_MSGF_OPT_HOME_NETWORK">Mājas tīkls</text>
+ <text id="IDS_COM_POP_REJECTED">Noraidīts</text>
+ <text id="IDS_COM_BODY_SETTINGS">Iestatījumi</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_START_WITH">Sākas ar</text>
+ <text id="IDS_COM_BODY_DISPLAY">Displejs</text>
+ <text id="IDS_MSGF_OPT_PROTECTION_ON">Aizsardzība ieslēgta</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONNETWORK_MANUAL">Manuāli</text>
+ <text id="IDS_SLCD_POP_TEXT_SIM_CARD_ERROR">SIM kartes kļūme</text>
+ <text id="IDS_COM_POP_DELETED">Izdzēsts</text>
+ <text id="IDS_COM_SK_SEND_ABB">Sūtīt</text>
+ <text id="IDS_MSGF_POP_FORWARDED">Pārsūtīta</text>
+ <text id="IDS_MSG_SELECT_NUMBERS">Select numbers (%d)</text>
+ <text id="IDS_MSGF_BODY_CENTRE_PD">Centrs %d</text>
+ <text id="IDS_MSGF_HEADER_EDIT_NUMBER">Rediģēt numuru</text>
+ <text id="IDS_MSGF_BODY_AUTOMATIC">Automātiski</text>
+ <text id="IDS_MSGF_BODY_VIEW_MESSAGE_DETAILS_ABB">Skatīt ziņas datus</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONNETWORK_REJECT">Noraidīt</text>
+ <text id="IDS_COM_BODY_VOICE_CALL">Balss zvans</text>
+ <text id="IDS_MSG_MBODY_USE_THE_VOLUME_KEY">Izm. skaļuma reg. taust.</text>
+ <text id="IDS_COM_SK_SAVE">Saglabāt</text>
+ <text id="IDS_MSGF_BODY_INVALID_SERVICE_CENTRE_ADDRESS">Invalid service centre address</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_EXACTLY_THE_SAME_AS">Tieši tāds pats kā</text>
+ <text id="IDS_COM_BODY_NO_SEARCH_RESULTS">Nav meklēšanas rezultātu</text>
+ <text id="IDS_MSGF_BODY_MMS">MMS</text>
+ <text id="IDS_MSGF_BODY_MMSCREATIONMODE">Izveides režīms</text>
+ <text id="IDS_MSGF_BODY_TEXT_MESSAGES">Īsziņas</text>
+ <text id="IDS_MSGF_BODY_RECEIVED">Saņemts</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_MATCH_CRITERIA">Saskaņot kritērijus</text>
+ <text id="IDS_MSGF_POP_DEFERRED">Atlikts</text>
+ <text id="IDS_COM_SK_ADD">Pievienot</text>
+ <text id="IDS_MSGF_OPT_BLOCK">Bloķēt</text>
+ <text id="IDS_COM_SK_YES">Jā</text>
+ <text id="IDS_MSGC_OPT_VIEW_CONTACT">Skatīt kontaktu</text>
+ <text id="IDS_COM_SK_SEARCH">Meklēt</text>
+ <text id="IDS_COM_POP_AM_M_ABB">AM</text>
+ <text id="IDS_MSGF_BODY_BLOCKED_WORDS">Bloķētie vārdi</text>
+ <text id="IDS_COM_BODY_SUBJECT">Tēma</text>
+ <text id="IDS_MSGF_POP_UNRECOGNISED">Neatpazīts</text>
+ <text id="IDS_MSGF_BODY_SEND_READ_REPORT">Sūtīt lasīšanas atskaiti</text>
+ <text id="IDS_MSGF_SK_RESTORE">Atjaunot</text>
+ <text id="IDS_MSGF_BODY_REQUEST_READ_REPORT">Pieprasīt lasīšanas atsk.</text>
+ <text id="IDS_MSGF_BODY_ENTER_WORD">Ievadiet vārdu</text>
+ <text id="IDS_COM_SK3_COMPOSE">Rakstīt</text>
+ <text id="IDS_COM_POP_UNKNOWN_ERROR_OCCURRED">Radās nezināma kļūda</text>
+ <text id="IDS_MSGF_BODY_REQUEST_DELIVERY_REPORT">Pieprasīt piegādes atskaiti</text>
+ <text id="IDS_MSGF_BODY_INVALID_RECIPIENTS">Nederīgi adresāti</text>
+ <text id="IDS_MSGF_BODY_BROADCASTMESSAGES">Apraides ziņas</text>
+ <text id="IDS_MSGF_OPT_SAVE_ATTACHMENT">Saglabāt pielikumu</text>
+ <text id="IDS_MSGF_BODY_DELIVERY_REPORT">Piegādes atskaite</text>
+ <text id="IDS_MSGC_POP_DISCARD_CURRENT_MESSAGE_Q">Vai izmest pašreizējo ziņu?</text>
+ <text id="IDS_COM_POP_ATTACH">Pievienot</text>
+ <text id="IDS_COM_BODY_CALENDAR">Kalendārs</text>
+ <text id="IDS_COM_SK_OK">Labi</text>
+ <text id="IDS_COM_SK_CALL">Zvanīt</text>
+ <text id="IDS_MSGC_BODY_CAPTURE_VIDEO">Uzņemt videoklipu</text>
+ <text id="IDS_MSG_HEADER_SELECT_RECIPIENT">Adresāta izvēle</text>
+</string_table>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201301241731" Dversion="20120315">
+ <text id="IDS_MSGF_HEADER_MESSAGE_DETAILS">Žinutės informacija</text>
+ <text id="IDS_COM_SK3_PREVIEW">Peržiūra</text>
+ <text id="IDS_COM_BODY_PD_SELECTED">Pasirinkta: %d</text>
+ <text id="IDS_MSG_BODY_DURATION_MUST_BE_LONGER_THAN_PD_SECONDS">Trukmė turi būti ilgesnė nei %d sek.</text>
+ <text id="IDS_DB_POP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED_DELETE_SOME_CHARACTERS">Viršytas didžiausias ženklų skaičius. Ištrinkite nereikalingus ženklus</text>
+ <text id="IDS_MSGF_BODY_NO_BLOCKED_WORDS">No blocked words</text>
+ <text id="IDS_COM_BODY_SELECT_ALL">Pasirinkti viską</text>
+ <text id="IDS_MSGF_BODY_NO_SUBJECT">Nėra temos</text>
+ <text id="IDS_COM_POP_CLOSE">Uždaryti</text>
+ <text id="IDS_COM_BODY_TO">Kam</text>
+ <text id="IDS_MSGC_BODY_TAKE_PICTURE">Fotografuoti</text>
+ <text id="IDS_COM_POP_DELETE_Q">Ar trinti?</text>
+ <text id="IDS_MSGC_HEADER_INPUTMODE">Teksto įvedimo režimas</text>
+ <text id="IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED">Pasiektas didžiausias gavėjų (%d) skaičius</text>
+ <text id="IDS_COM_SK_NO">Ne</text>
+ <text id="IDS_COM_BODY_MY_FILES">Mano failai</text>
+ <text id="IDS_MSGF_BODY_COPY_TO_PHONE">Kopijuoti į telefoną</text>
+ <text id="IDS_MSGF_BODY_CB_MESSAGES">Tinklo žinutės</text>
+ <text id="IDS_MSGF_BODY_SERVICECENTRE">Paslaugų centras</text>
+ <text id="IDS_COM_BODY_SMS">SMS</text>
+ <text id="IDS_MSGF_POP_SENDING_FAILED_MESSAGE">Pranešimas Išsiųsti nepavyko</text>
+ <text id="IDS_COM_POP_SUCCESS">Pavyko</text>
+ <text id="IDS_MSGF_POP_MESSAGES_RECEIVED_FROM_YOUR_CONTACTS_WILL_NOT_BE_BLOCKED_EVEN_IF_THEY_CONTAIN_BLOCKED_NUMBERS">Messages received from your contacts will not be blocked even if they contain blocked numbers</text>
+ <text id="IDS_MSG_SELECT_WORDS">Select words (%d)</text>
+ <text id="IDS_MSGF_BODY_ROAMINGRECEPTION_RESTRICTED">Apribota</text>
+ <text id="IDS_MSGF_POP_MESSAGES_RECEIVED_FROM_YOUR_CONTACTS_WILL_NOT_BE_BLOCKED_EVEN_IF_THEY_CONTAIN_BLOCKED_WORDS">Iš jūsų adresatų gautos žinutės nebus blokuojamos, net jei jose bus blokuojamų žodžių</text>
+ <text id="IDS_MSGF_OPT_UNBLOCK">Atblokuoti</text>
+ <text id="IDS_MSGF_BODY_COPY_MESSAGE_TEXT_ABB">Kopij. žinut. tekstą</text>
+ <text id="IDS_MSGF_BODY_READ_REPORT">Perskaitymo patvirtinimas</text>
+ <text id="IDS_COM_BODY_MESSAGES">Žinutės</text>
+ <text id="IDS_COM_SK_OPTIONS">Parinktys</text>
+ <text id="IDS_COM_SK_DONE">Atlikta</text>
+ <text id="IDS_COM_POP_PM">PM</text>
+ <text id="IDS_COM_BODY_UNKNOWN">Nežinomas</text>
+ <text id="IDS_MSG_BODY_DRAFT_MESSAGES">Juodraštinės žinutės</text>
+ <text id="IDS_COM_POP_SERVICE_UNAVAILABLE">Paslauga neteikiama</text>
+ <text id="IDS_MSGF_OPT_CREATEMSG_ADD_WORD">Pridėti žodį</text>
+ <text id="IDS_MSGF_POP_BLOCK_PS_Q">Blokuoti %s?</text>
+ <text id="IDS_MSG_BODY_CHANGE_TEXT_SIZE_USING_THE_VOLUME_KEY">Keisti teksto dydį naudojant garsumo mygtuką</text>
+ <text id="IDS_COM_POP_NEW_MESSAGE">Nauja žinutė</text>
+ <text id="IDS_MSGF_BODY_SPAM_MESSAGES">Brukalų žinutės</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_INCLUDE">Įtraukti</text>
+ <text id="IDS_MSGF_BODY_NO_BLOCKED_NUMBERS">No blocked numbers</text>
+ <text id="IDS_MSGF_BODY_BLOCKED_NUMBERS">Blokuojami numeriai</text>
+ <text id="IDS_MSGF_BODY_SETTINGS_MULTIMEDIAMESSAGE">Daugialypės žinutės</text>
+ <text id="IDS_MSGF_BODY_EDIT_WORD">Redaguoti žodį</text>
+ <text id="IDS_MSGF_BODY_EXPIRED">Galiojimas pasibaigęs</text>
+ <text id="IDS_MSGF_BODY_MMSCCCREATIONMODEWARNING">Perspėjimas</text>
+ <text id="IDS_COM_SK_EDIT">Redaguoti</text>
+ <text id="IDS_COM_POP_FAILED">Nepavyko</text>
+ <text id="IDS_MSGF_HEADER_DELETE_NUMBER">Trinti numerį</text>
+ <text id="IDS_MSGC_BODY_RECORD_AUDIO">Įrašyti garso įrašą</text>
+ <text id="IDS_COM_SK_BACK">Atgal</text>
+ <text id="IDS_MSGF_BODY_UNICODE">Unikodas</text>
+ <text id="IDS_MSGF_HEADER_DELETE_WORDS">Ištrinti žodžius</text>
+ <text id="IDS_COM_BODY_FORWARD">Persiųsti</text>
+ <text id="IDS_MSGF_POP_NOMESSAGES">Žinučių nėra</text>
+ <text id="IDS_MSGF_OPT_ROAM_NETWORK">Tarptinklinis ryšys</text>
+ <text id="IDS_MSGF_BODY_FROM">Nuo</text>
+ <text id="IDS_COM_SK_DELETE">Trinti</text>
+ <text id="IDS_MSGF_SK3_UNREAD">Neskaityta</text>
+ <text id="IDS_MSGC_BODY_DUPLICATED_RECIPIENT">Du tokie pat gavėjai</text>
+ <text id="IDS_MSGF_BODY_GSM_ALPHABET">GSM abėcėlė</text>
+ <text id="IDS_MSGF_BODY_SIM_CARD_MESSAGES">SIM kortelėje esančios žinutės</text>
+ <text id="IDS_MSGF_BODY_MMSNOTIMSGSTATUSSENT">Išsiųsta</text>
+ <text id="IDS_COM_BODY_CONTACTS">Adresatai</text>
+ <text id="IDS_MSGF_OPT_STATUS">Būsena</text>
+ <text id="IDS_MSGF_BODY_MMSCCCREATIONMODEFREE">Laisva</text>
+ <text id="IDS_COM_BODY_DETAILS_TYPE">Tipas</text>
+ <text id="IDS_MSGF_BODY_AUTODOWNLOAD">Automatinis atsisiuntimas</text>
+ <text id="IDS_MSGF_SK_RESEND">Persiųsti</text>
+ <text id="IDS_COM_SK_CANCEL">Atšaukti</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONS">Gavimo parinktys</text>
+ <text id="IDS_COM_BODY_GALLERY">Galerija</text>
+ <text id="IDS_MSGC_BUTTON2_DURATION_N_HPD_SECS">Trukmė\n(%d sek.)</text>
+ <text id="IDS_COM_BODY_SEARCH">Ieškoti</text>
+ <text id="IDS_MSGF_HEADER_MESSAGE_BOXES">Žinučių dėžutės</text>
+ <text id="IDS_MSGF_HEADER_ADD_NUMBER">Pridėti numerį</text>
+ <text id="IDS_COM_BODY_MEMO">Įrašas</text>
+ <text id="IDS_MSGF_BODY_COPY_TO_SIM">Kopijuoti į SIM</text>
+ <text id="IDS_MSGF_BODY_ENTER_NUMBER">Įvesti numerį</text>
+ <text id="IDS_COM_OPT_ADD_CONTACT">Pridėti adresatą</text>
+ <text id="IDS_MSGF_OPT_HOME_NETWORK">Vietos tinklas</text>
+ <text id="IDS_COM_POP_REJECTED">Atmesta</text>
+ <text id="IDS_COM_BODY_SETTINGS">Nustat.</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_START_WITH">Pradėti su</text>
+ <text id="IDS_COM_BODY_DISPLAY">Ekranas</text>
+ <text id="IDS_MSGF_OPT_PROTECTION_ON">Įjungta apsauga</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONNETWORK_MANUAL">Rankinis</text>
+ <text id="IDS_SLCD_POP_TEXT_SIM_CARD_ERROR">SIM kortelės klaida</text>
+ <text id="IDS_COM_POP_DELETED">Ištrinta</text>
+ <text id="IDS_COM_SK_SEND_ABB">Siųsti</text>
+ <text id="IDS_MSGF_POP_FORWARDED">Persiųsta</text>
+ <text id="IDS_MSG_SELECT_NUMBERS">Select numbers (%d)</text>
+ <text id="IDS_MSGF_BODY_CENTRE_PD">Centras %d</text>
+ <text id="IDS_MSGF_HEADER_EDIT_NUMBER">Redaguoti numerį</text>
+ <text id="IDS_MSGF_BODY_AUTOMATIC">Automatinis</text>
+ <text id="IDS_MSGF_BODY_VIEW_MESSAGE_DETAILS_ABB">Rodyti žin. inf.</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONNETWORK_REJECT">Atmesti</text>
+ <text id="IDS_COM_BODY_VOICE_CALL">Balso skambutis</text>
+ <text id="IDS_MSG_MBODY_USE_THE_VOLUME_KEY">Naudoti garsumo mygtuką</text>
+ <text id="IDS_COM_SK_SAVE">Išsaugoti</text>
+ <text id="IDS_MSGF_BODY_INVALID_SERVICE_CENTRE_ADDRESS">Invalid service centre address</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_EXACTLY_THE_SAME_AS">Lygiai taip pat kaip</text>
+ <text id="IDS_COM_BODY_NO_SEARCH_RESULTS">Nėra paieškos rezultatų</text>
+ <text id="IDS_MSGF_BODY_MMS">MMS</text>
+ <text id="IDS_MSGF_BODY_MMSCREATIONMODE">Kūrimo režimas</text>
+ <text id="IDS_MSGF_BODY_TEXT_MESSAGES">Teksto žinutės</text>
+ <text id="IDS_MSGF_BODY_RECEIVED">Gauta</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_MATCH_CRITERIA">Atitikties kriterijai</text>
+ <text id="IDS_MSGF_POP_DEFERRED">Atidėta</text>
+ <text id="IDS_COM_SK_ADD">Pridėti</text>
+ <text id="IDS_MSGF_OPT_BLOCK">Blokuoti</text>
+ <text id="IDS_COM_SK_YES">Taip</text>
+ <text id="IDS_MSGC_OPT_VIEW_CONTACT">Rodyti adresatą</text>
+ <text id="IDS_COM_SK_SEARCH">Ieškoti</text>
+ <text id="IDS_COM_POP_AM_M_ABB">АМ</text>
+ <text id="IDS_MSGF_BODY_BLOCKED_WORDS">Blokuojami žodžiai</text>
+ <text id="IDS_COM_BODY_SUBJECT">Tema</text>
+ <text id="IDS_MSGF_POP_UNRECOGNISED">Neatpažinta</text>
+ <text id="IDS_MSGF_BODY_SEND_READ_REPORT">Siųsti ataskaitą apie perskaitymą</text>
+ <text id="IDS_MSGF_SK_RESTORE">Atkurti</text>
+ <text id="IDS_MSGF_BODY_REQUEST_READ_REPORT">Prašyti perskaitymo patvirtinimo</text>
+ <text id="IDS_MSGF_BODY_ENTER_WORD">Įvesti žodį</text>
+ <text id="IDS_COM_SK3_COMPOSE">Kurti</text>
+ <text id="IDS_COM_POP_UNKNOWN_ERROR_OCCURRED">Įvyko nežinoma klaida</text>
+ <text id="IDS_MSGF_BODY_REQUEST_DELIVERY_REPORT">Prašyti pristatymo ataskaitos</text>
+ <text id="IDS_MSGF_BODY_INVALID_RECIPIENTS">Neteisingi gavėjai</text>
+ <text id="IDS_MSGF_BODY_BROADCASTMESSAGES">Transliavimo žinutės</text>
+ <text id="IDS_MSGF_OPT_SAVE_ATTACHMENT">Išsaugoti priedą</text>
+ <text id="IDS_MSGF_BODY_DELIVERY_REPORT">Ataskaita apie pristatymą</text>
+ <text id="IDS_MSGC_POP_DISCARD_CURRENT_MESSAGE_Q">Atmesti dabartinę žinutę?</text>
+ <text id="IDS_COM_POP_ATTACH">Pridėti</text>
+ <text id="IDS_COM_BODY_CALENDAR">Kalend.</text>
+ <text id="IDS_COM_SK_OK">Gerai</text>
+ <text id="IDS_COM_SK_CALL">Skambinti</text>
+ <text id="IDS_MSGC_BODY_CAPTURE_VIDEO">Filmuoti vaizdo įrašą</text>
+ <text id="IDS_MSG_HEADER_SELECT_RECIPIENT">Pasirinkti gavėją</text>
+</string_table>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201301241731" Dversion="20120315">
+ <text id="IDS_MSGF_HEADER_MESSAGE_DETAILS">Детали за пораката</text>
+ <text id="IDS_COM_SK3_PREVIEW">Назад</text>
+ <text id="IDS_COM_BODY_PD_SELECTED">Избрани се %d</text>
+ <text id="IDS_MSG_BODY_DURATION_MUST_BE_LONGER_THAN_PD_SECONDS">Времетраењето мора да биде подолго од %d секунди</text>
+ <text id="IDS_DB_POP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED_DELETE_SOME_CHARACTERS">Максималниот број знаци е надминат. Избришете некој знак</text>
+ <text id="IDS_MSGF_BODY_NO_BLOCKED_WORDS">No blocked words</text>
+ <text id="IDS_COM_BODY_SELECT_ALL">Избери ги сите</text>
+ <text id="IDS_MSGF_BODY_NO_SUBJECT">Нема наслов</text>
+ <text id="IDS_COM_POP_CLOSE">Затвори</text>
+ <text id="IDS_COM_BODY_TO">До</text>
+ <text id="IDS_MSGC_BODY_TAKE_PICTURE">Сликај</text>
+ <text id="IDS_COM_POP_DELETE_Q">Да се избрише?</text>
+ <text id="IDS_MSGC_HEADER_INPUTMODE">Начин на внесување</text>
+ <text id="IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED">Достигнат е максималниот број приматели (%d)</text>
+ <text id="IDS_COM_SK_NO">Не</text>
+ <text id="IDS_COM_BODY_MY_FILES">Мои фајлови</text>
+ <text id="IDS_MSGF_BODY_COPY_TO_PHONE">Копирај во телефон</text>
+ <text id="IDS_MSGF_BODY_CB_MESSAGES">Инфо-пораки</text>
+ <text id="IDS_MSGF_BODY_SERVICECENTRE">Услужен центар</text>
+ <text id="IDS_COM_BODY_SMS">SMS</text>
+ <text id="IDS_MSGF_POP_SENDING_FAILED_MESSAGE">Се испраќа неуспешна порака</text>
+ <text id="IDS_COM_POP_SUCCESS">Успешно</text>
+ <text id="IDS_MSGF_POP_MESSAGES_RECEIVED_FROM_YOUR_CONTACTS_WILL_NOT_BE_BLOCKED_EVEN_IF_THEY_CONTAIN_BLOCKED_NUMBERS">Messages received from your contacts will not be blocked even if they contain blocked numbers</text>
+ <text id="IDS_MSG_SELECT_WORDS">Select words (%d)</text>
+ <text id="IDS_MSGF_BODY_ROAMINGRECEPTION_RESTRICTED">Ограничено</text>
+ <text id="IDS_MSGF_POP_MESSAGES_RECEIVED_FROM_YOUR_CONTACTS_WILL_NOT_BE_BLOCKED_EVEN_IF_THEY_CONTAIN_BLOCKED_WORDS">Пораките примени од вашите контакти нема да се блокираат иако содржат блокирани зборови</text>
+ <text id="IDS_MSGF_OPT_UNBLOCK">Одблокирај</text>
+ <text id="IDS_MSGF_BODY_COPY_MESSAGE_TEXT_ABB">Коп. текст од порака</text>
+ <text id="IDS_MSGF_BODY_READ_REPORT">Извештај за прочитаност</text>
+ <text id="IDS_COM_BODY_MESSAGES">Пораки</text>
+ <text id="IDS_COM_SK_OPTIONS">Опции</text>
+ <text id="IDS_COM_SK_DONE">Готово</text>
+ <text id="IDS_COM_POP_PM">PM</text>
+ <text id="IDS_COM_BODY_UNKNOWN">Непознато</text>
+ <text id="IDS_MSG_BODY_DRAFT_MESSAGES">Недовршени пораки</text>
+ <text id="IDS_COM_POP_SERVICE_UNAVAILABLE">Услугата е недостапна</text>
+ <text id="IDS_MSGF_OPT_CREATEMSG_ADD_WORD">Додај збор</text>
+ <text id="IDS_MSGF_POP_BLOCK_PS_Q">Блокирај %s?</text>
+ <text id="IDS_MSG_BODY_CHANGE_TEXT_SIZE_USING_THE_VOLUME_KEY">Менување на големината на текстот со копчето за јачина на тон</text>
+ <text id="IDS_COM_POP_NEW_MESSAGE">Нова порака</text>
+ <text id="IDS_MSGF_BODY_SPAM_MESSAGES">Спам-пораки</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_INCLUDE">Вклучи</text>
+ <text id="IDS_MSGF_BODY_NO_BLOCKED_NUMBERS">No blocked numbers</text>
+ <text id="IDS_MSGF_BODY_BLOCKED_NUMBERS">Блокирани броеви</text>
+ <text id="IDS_MSGF_BODY_SETTINGS_MULTIMEDIAMESSAGE">Мултимед. пораки</text>
+ <text id="IDS_MSGF_BODY_EDIT_WORD">Измени збор</text>
+ <text id="IDS_MSGF_BODY_EXPIRED">Застарено</text>
+ <text id="IDS_MSGF_BODY_MMSCCCREATIONMODEWARNING">Предупредување</text>
+ <text id="IDS_COM_SK_EDIT">Измени</text>
+ <text id="IDS_COM_POP_FAILED">Неуспешно</text>
+ <text id="IDS_MSGF_HEADER_DELETE_NUMBER">Избриши број</text>
+ <text id="IDS_MSGC_BODY_RECORD_AUDIO">Снимање звук</text>
+ <text id="IDS_COM_SK_BACK">Назад</text>
+ <text id="IDS_MSGF_BODY_UNICODE">Уникод</text>
+ <text id="IDS_MSGF_HEADER_DELETE_WORDS">Избриши зборови</text>
+ <text id="IDS_COM_BODY_FORWARD">Препрати</text>
+ <text id="IDS_MSGF_POP_NOMESSAGES">Нема пораки</text>
+ <text id="IDS_MSGF_OPT_ROAM_NETWORK">Странска мрежа</text>
+ <text id="IDS_MSGF_BODY_FROM">Од</text>
+ <text id="IDS_COM_SK_DELETE">Избриши</text>
+ <text id="IDS_MSGF_SK3_UNREAD">Непроч.</text>
+ <text id="IDS_MSGC_BODY_DUPLICATED_RECIPIENT">Дуплиран примател</text>
+ <text id="IDS_MSGF_BODY_GSM_ALPHABET">GSM-alphabet</text>
+ <text id="IDS_MSGF_BODY_SIM_CARD_MESSAGES">Пораки на SIM-картичката</text>
+ <text id="IDS_MSGF_BODY_MMSNOTIMSGSTATUSSENT">Пратено</text>
+ <text id="IDS_COM_BODY_CONTACTS">Именик</text>
+ <text id="IDS_MSGF_OPT_STATUS">Состојба</text>
+ <text id="IDS_MSGF_BODY_MMSCCCREATIONMODEFREE">Слободна</text>
+ <text id="IDS_COM_BODY_DETAILS_TYPE">Тип</text>
+ <text id="IDS_MSGF_BODY_AUTODOWNLOAD">Автоматско преземање</text>
+ <text id="IDS_MSGF_SK_RESEND">Испрати пак</text>
+ <text id="IDS_COM_SK_CANCEL">Откажи</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONS">Опции за прием</text>
+ <text id="IDS_COM_BODY_GALLERY">Галерија</text>
+ <text id="IDS_MSGC_BUTTON2_DURATION_N_HPD_SECS">Траење\n(%d сек.)</text>
+ <text id="IDS_COM_BODY_SEARCH">Побарај</text>
+ <text id="IDS_MSGF_HEADER_MESSAGE_BOXES">Сандачиња со пораки</text>
+ <text id="IDS_MSGF_HEADER_ADD_NUMBER">Додај број</text>
+ <text id="IDS_COM_BODY_MEMO">Белешка</text>
+ <text id="IDS_MSGF_BODY_COPY_TO_SIM">Копирај на SIM</text>
+ <text id="IDS_MSGF_BODY_ENTER_NUMBER">Внесете број</text>
+ <text id="IDS_COM_OPT_ADD_CONTACT">Додади контакт</text>
+ <text id="IDS_MSGF_OPT_HOME_NETWORK">Домашна мрежа</text>
+ <text id="IDS_COM_POP_REJECTED">Отфрлено</text>
+ <text id="IDS_COM_BODY_SETTINGS">Опции</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_START_WITH">Започни со</text>
+ <text id="IDS_COM_BODY_DISPLAY">Екран</text>
+ <text id="IDS_MSGF_OPT_PROTECTION_ON">Вклучена заштита</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONNETWORK_MANUAL">Рачно</text>
+ <text id="IDS_SLCD_POP_TEXT_SIM_CARD_ERROR">Грешка на SIM-картичката</text>
+ <text id="IDS_COM_POP_DELETED">Избришано</text>
+ <text id="IDS_COM_SK_SEND_ABB">Прати</text>
+ <text id="IDS_MSGF_POP_FORWARDED">Проследено</text>
+ <text id="IDS_MSG_SELECT_NUMBERS">Select numbers (%d)</text>
+ <text id="IDS_MSGF_BODY_CENTRE_PD">Центар %d</text>
+ <text id="IDS_MSGF_HEADER_EDIT_NUMBER">Измени број</text>
+ <text id="IDS_MSGF_BODY_AUTOMATIC">Автоматски</text>
+ <text id="IDS_MSGF_BODY_VIEW_MESSAGE_DETAILS_ABB">Види дет. за порака</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONNETWORK_REJECT">Отфрли</text>
+ <text id="IDS_COM_BODY_VOICE_CALL">Гласовен повик</text>
+ <text id="IDS_MSG_MBODY_USE_THE_VOLUME_KEY">Со копчето за јачина</text>
+ <text id="IDS_COM_SK_SAVE">Сочувај</text>
+ <text id="IDS_MSGF_BODY_INVALID_SERVICE_CENTRE_ADDRESS">Invalid service centre address</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_EXACTLY_THE_SAME_AS">Потполно исто како</text>
+ <text id="IDS_COM_BODY_NO_SEARCH_RESULTS">Нема резултати од пребарувањето</text>
+ <text id="IDS_MSGF_BODY_MMS">MMS</text>
+ <text id="IDS_MSGF_BODY_MMSCREATIONMODE">Начин на создавање</text>
+ <text id="IDS_MSGF_BODY_TEXT_MESSAGES">Текст пораки</text>
+ <text id="IDS_MSGF_BODY_RECEIVED">Примено</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_MATCH_CRITERIA">Критериум за совпаѓање</text>
+ <text id="IDS_MSGF_POP_DEFERRED">Вашата порака е одложена</text>
+ <text id="IDS_COM_SK_ADD">Додај</text>
+ <text id="IDS_MSGF_OPT_BLOCK">Блокирај</text>
+ <text id="IDS_COM_SK_YES">Да</text>
+ <text id="IDS_MSGC_OPT_VIEW_CONTACT">Прикажи број</text>
+ <text id="IDS_COM_SK_SEARCH">Пребарај</text>
+ <text id="IDS_COM_POP_AM_M_ABB">АМ</text>
+ <text id="IDS_MSGF_BODY_BLOCKED_WORDS">Блокирани зборови</text>
+ <text id="IDS_COM_BODY_SUBJECT">Наслов</text>
+ <text id="IDS_MSGF_POP_UNRECOGNISED">Непрепознаено</text>
+ <text id="IDS_MSGF_BODY_SEND_READ_REPORT">Праќај извештај за прочитано</text>
+ <text id="IDS_MSGF_SK_RESTORE">Обнови</text>
+ <text id="IDS_MSGF_BODY_REQUEST_READ_REPORT">Барај изв.за прочитаност</text>
+ <text id="IDS_MSGF_BODY_ENTER_WORD">Внесете збор</text>
+ <text id="IDS_COM_SK3_COMPOSE">Состави</text>
+ <text id="IDS_COM_POP_UNKNOWN_ERROR_OCCURRED">Дојде до непозната грешка</text>
+ <text id="IDS_MSGF_BODY_REQUEST_DELIVERY_REPORT">Барај извештај за испорака</text>
+ <text id="IDS_MSGF_BODY_INVALID_RECIPIENTS">Неважечки приматели</text>
+ <text id="IDS_MSGF_BODY_BROADCASTMESSAGES">Инфо пораки</text>
+ <text id="IDS_MSGF_OPT_SAVE_ATTACHMENT">Сочувај прилог</text>
+ <text id="IDS_MSGF_BODY_DELIVERY_REPORT">Извештај за испорака</text>
+ <text id="IDS_MSGC_POP_DISCARD_CURRENT_MESSAGE_Q">Отфрли моментална порака?</text>
+ <text id="IDS_COM_POP_ATTACH">Приложи</text>
+ <text id="IDS_COM_BODY_CALENDAR">Календар</text>
+ <text id="IDS_COM_SK_OK">OK</text>
+ <text id="IDS_COM_SK_CALL">Повикај</text>
+ <text id="IDS_MSGC_BODY_CAPTURE_VIDEO">Сними видео</text>
+ <text id="IDS_MSG_HEADER_SELECT_RECIPIENT">Изберете примател</text>
+</string_table>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201301241731" Dversion="20120315">
+ <text id="IDS_MSGF_HEADER_MESSAGE_DETAILS">Berichtdetails</text>
+ <text id="IDS_COM_SK3_PREVIEW">Voorbeeld</text>
+ <text id="IDS_COM_BODY_PD_SELECTED">%d geselecteerd</text>
+ <text id="IDS_MSG_BODY_DURATION_MUST_BE_LONGER_THAN_PD_SECONDS">Duur moet langer zijn dan %d seconden</text>
+ <text id="IDS_DB_POP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED_DELETE_SOME_CHARACTERS">Maximumaantal tekens overschreden. Verwijder een aantal tekens</text>
+ <text id="IDS_MSGF_BODY_NO_BLOCKED_WORDS">No blocked words</text>
+ <text id="IDS_COM_BODY_SELECT_ALL">Alles selecteren</text>
+ <text id="IDS_MSGF_BODY_NO_SUBJECT">Geen onderwerp</text>
+ <text id="IDS_COM_POP_CLOSE">Sluiten</text>
+ <text id="IDS_COM_BODY_TO">Aan</text>
+ <text id="IDS_MSGC_BODY_TAKE_PICTURE">Foto maken</text>
+ <text id="IDS_COM_POP_DELETE_Q">Verwijderen?</text>
+ <text id="IDS_MSGC_HEADER_INPUTMODE">Invoerstand</text>
+ <text id="IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED">Maximumaantal ontvangers (%d) bereikt</text>
+ <text id="IDS_COM_SK_NO">Nee</text>
+ <text id="IDS_COM_BODY_MY_FILES">Mijn bestanden</text>
+ <text id="IDS_MSGF_BODY_COPY_TO_PHONE">Kopiëren naar telefoon</text>
+ <text id="IDS_MSGF_BODY_CB_MESSAGES">Infoberichten</text>
+ <text id="IDS_MSGF_BODY_SERVICECENTRE">SMS-centrale</text>
+ <text id="IDS_COM_BODY_SMS">SMS</text>
+ <text id="IDS_MSGF_POP_SENDING_FAILED_MESSAGE">Bericht “Verzenden mislukt”</text>
+ <text id="IDS_COM_POP_SUCCESS">Voltooid</text>
+ <text id="IDS_MSGF_POP_MESSAGES_RECEIVED_FROM_YOUR_CONTACTS_WILL_NOT_BE_BLOCKED_EVEN_IF_THEY_CONTAIN_BLOCKED_NUMBERS">Messages received from your contacts will not be blocked even if they contain blocked numbers</text>
+ <text id="IDS_MSG_SELECT_WORDS">Select words (%d)</text>
+ <text id="IDS_MSGF_BODY_ROAMINGRECEPTION_RESTRICTED">Beperkt</text>
+ <text id="IDS_MSGF_POP_MESSAGES_RECEIVED_FROM_YOUR_CONTACTS_WILL_NOT_BE_BLOCKED_EVEN_IF_THEY_CONTAIN_BLOCKED_WORDS">Berichten die u van uw contacten ontvangt, worden niet geblokkeerd, zelfs niet als ze geblokkeerde woorden bevatten</text>
+ <text id="IDS_MSGF_OPT_UNBLOCK">Deblokkeren</text>
+ <text id="IDS_MSGF_BODY_COPY_MESSAGE_TEXT_ABB">Berichttekst kopiëren</text>
+ <text id="IDS_MSGF_BODY_READ_REPORT">Leesbevestiging</text>
+ <text id="IDS_COM_BODY_MESSAGES">Berichten</text>
+ <text id="IDS_COM_SK_OPTIONS">Opties</text>
+ <text id="IDS_COM_SK_DONE">Gereed</text>
+ <text id="IDS_COM_POP_PM">PM</text>
+ <text id="IDS_COM_BODY_UNKNOWN">Onbekend</text>
+ <text id="IDS_MSG_BODY_DRAFT_MESSAGES">Conceptberichten</text>
+ <text id="IDS_COM_POP_SERVICE_UNAVAILABLE">Service niet beschikbaar</text>
+ <text id="IDS_MSGF_OPT_CREATEMSG_ADD_WORD">Woord toevoegen</text>
+ <text id="IDS_MSGF_POP_BLOCK_PS_Q">%s blokkeren?</text>
+ <text id="IDS_MSG_BODY_CHANGE_TEXT_SIZE_USING_THE_VOLUME_KEY">Wijzig tekstgrootte met de volumetoets</text>
+ <text id="IDS_COM_POP_NEW_MESSAGE">Nieuw bericht</text>
+ <text id="IDS_MSGF_BODY_SPAM_MESSAGES">Spamberichten</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_INCLUDE">Invoegen</text>
+ <text id="IDS_MSGF_BODY_NO_BLOCKED_NUMBERS">No blocked numbers</text>
+ <text id="IDS_MSGF_BODY_BLOCKED_NUMBERS">Geblokkeerde nummers</text>
+ <text id="IDS_MSGF_BODY_SETTINGS_MULTIMEDIAMESSAGE">MMS-berichten</text>
+ <text id="IDS_MSGF_BODY_EDIT_WORD">Woord bewerken</text>
+ <text id="IDS_MSGF_BODY_EXPIRED">Verlopen</text>
+ <text id="IDS_MSGF_BODY_MMSCCCREATIONMODEWARNING">Waarschuwing</text>
+ <text id="IDS_COM_SK_EDIT">Bewerken</text>
+ <text id="IDS_COM_POP_FAILED">Mislukt</text>
+ <text id="IDS_MSGF_HEADER_DELETE_NUMBER">Nummer verwijderen</text>
+ <text id="IDS_MSGC_BODY_RECORD_AUDIO">Geluid opnemen</text>
+ <text id="IDS_COM_SK_BACK">Terug</text>
+ <text id="IDS_MSGF_BODY_UNICODE">Unicode</text>
+ <text id="IDS_MSGF_HEADER_DELETE_WORDS">Woorden verwijderen</text>
+ <text id="IDS_COM_BODY_FORWARD">Doorsturen</text>
+ <text id="IDS_MSGF_POP_NOMESSAGES">Geen berichten</text>
+ <text id="IDS_MSGF_OPT_ROAM_NETWORK">Roamingnetwerk</text>
+ <text id="IDS_MSGF_BODY_FROM">Van</text>
+ <text id="IDS_COM_SK_DELETE">Wissen</text>
+ <text id="IDS_MSGF_SK3_UNREAD">Niet gelezen</text>
+ <text id="IDS_MSGC_BODY_DUPLICATED_RECIPIENT">Dubbele ontvanger</text>
+ <text id="IDS_MSGF_BODY_GSM_ALPHABET">GSM-alfabet</text>
+ <text id="IDS_MSGF_BODY_SIM_CARD_MESSAGES">SIM-kaartberichten</text>
+ <text id="IDS_MSGF_BODY_MMSNOTIMSGSTATUSSENT">Verzonden</text>
+ <text id="IDS_COM_BODY_CONTACTS">Contacten</text>
+ <text id="IDS_MSGF_OPT_STATUS">Status</text>
+ <text id="IDS_MSGF_BODY_MMSCCCREATIONMODEFREE">Vrij</text>
+ <text id="IDS_COM_BODY_DETAILS_TYPE">Type</text>
+ <text id="IDS_MSGF_BODY_AUTODOWNLOAD">Automatisch downloaden</text>
+ <text id="IDS_MSGF_SK_RESEND">Opnieuw verzenden</text>
+ <text id="IDS_COM_SK_CANCEL">Annuleren</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONS">Ontvangstopties</text>
+ <text id="IDS_COM_BODY_GALLERY">Galerij</text>
+ <text id="IDS_MSGC_BUTTON2_DURATION_N_HPD_SECS">Duur\n(%d sec)</text>
+ <text id="IDS_COM_BODY_SEARCH">Zoeken</text>
+ <text id="IDS_MSGF_HEADER_MESSAGE_BOXES">Postvakken</text>
+ <text id="IDS_MSGF_HEADER_ADD_NUMBER">Nummer toevoegen</text>
+ <text id="IDS_COM_BODY_MEMO">Notitie</text>
+ <text id="IDS_MSGF_BODY_COPY_TO_SIM">Kopiëren naar SIM</text>
+ <text id="IDS_MSGF_BODY_ENTER_NUMBER">Nummer invoeren</text>
+ <text id="IDS_COM_OPT_ADD_CONTACT">Contact toevoegen</text>
+ <text id="IDS_MSGF_OPT_HOME_NETWORK">Netwerk eigen provider</text>
+ <text id="IDS_COM_POP_REJECTED">Geweigerd</text>
+ <text id="IDS_COM_BODY_SETTINGS">Instellingen</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_START_WITH">Beginnen met</text>
+ <text id="IDS_COM_BODY_DISPLAY">Display</text>
+ <text id="IDS_MSGF_OPT_PROTECTION_ON">Beveiliging aan</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONNETWORK_MANUAL">Handmatig</text>
+ <text id="IDS_SLCD_POP_TEXT_SIM_CARD_ERROR">Fout SIM-kaart</text>
+ <text id="IDS_COM_POP_DELETED">Verwijderd</text>
+ <text id="IDS_COM_SK_SEND_ABB">Verzend</text>
+ <text id="IDS_MSGF_POP_FORWARDED">Doorgestuurd</text>
+ <text id="IDS_MSG_SELECT_NUMBERS">Select numbers (%d)</text>
+ <text id="IDS_MSGF_BODY_CENTRE_PD">Centrale %d</text>
+ <text id="IDS_MSGF_HEADER_EDIT_NUMBER">Nummer bewerken</text>
+ <text id="IDS_MSGF_BODY_AUTOMATIC">Automatisch</text>
+ <text id="IDS_MSGF_BODY_VIEW_MESSAGE_DETAILS_ABB">Berichtdetails tonen</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONNETWORK_REJECT">Weigeren</text>
+ <text id="IDS_COM_BODY_VOICE_CALL">Spraakoproep</text>
+ <text id="IDS_MSG_MBODY_USE_THE_VOLUME_KEY">Volumetoets gebruiken</text>
+ <text id="IDS_COM_SK_SAVE">Opslaan</text>
+ <text id="IDS_MSGF_BODY_INVALID_SERVICE_CENTRE_ADDRESS">Invalid service centre address</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_EXACTLY_THE_SAME_AS">Precies gelijk aan</text>
+ <text id="IDS_COM_BODY_NO_SEARCH_RESULTS">Geen zoekresultaten</text>
+ <text id="IDS_MSGF_BODY_MMS">MMS</text>
+ <text id="IDS_MSGF_BODY_MMSCREATIONMODE">Aanmaakmodus</text>
+ <text id="IDS_MSGF_BODY_TEXT_MESSAGES">SMS-berichten</text>
+ <text id="IDS_MSGF_BODY_RECEIVED">Ontvangen</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_MATCH_CRITERIA">Blokkeringscriteria</text>
+ <text id="IDS_MSGF_POP_DEFERRED">Uitgesteld</text>
+ <text id="IDS_COM_SK_ADD">Toevoegen</text>
+ <text id="IDS_MSGF_OPT_BLOCK">Blokkeren</text>
+ <text id="IDS_COM_SK_YES">Ja</text>
+ <text id="IDS_MSGC_OPT_VIEW_CONTACT">Contacten weergeven</text>
+ <text id="IDS_COM_SK_SEARCH">Zoeken</text>
+ <text id="IDS_COM_POP_AM_M_ABB">AM</text>
+ <text id="IDS_MSGF_BODY_BLOCKED_WORDS">Geblokkeerde woorden</text>
+ <text id="IDS_COM_BODY_SUBJECT">Onderwerp</text>
+ <text id="IDS_MSGF_POP_UNRECOGNISED">Niet herkend</text>
+ <text id="IDS_MSGF_BODY_SEND_READ_REPORT">Leesbevestiging verzenden</text>
+ <text id="IDS_MSGF_SK_RESTORE">Herstel</text>
+ <text id="IDS_MSGF_BODY_REQUEST_READ_REPORT">Leesbevestiging vragen</text>
+ <text id="IDS_MSGF_BODY_ENTER_WORD">Woord ingeven</text>
+ <text id="IDS_COM_SK3_COMPOSE">Opstellen</text>
+ <text id="IDS_COM_POP_UNKNOWN_ERROR_OCCURRED">Onbekende netwerkfout opgetreden</text>
+ <text id="IDS_MSGF_BODY_REQUEST_DELIVERY_REPORT">Ontvangstbevestiging vragen</text>
+ <text id="IDS_MSGF_BODY_INVALID_RECIPIENTS">Ongeldige ontvangers</text>
+ <text id="IDS_MSGF_BODY_BROADCASTMESSAGES">Infoberichten</text>
+ <text id="IDS_MSGF_OPT_SAVE_ATTACHMENT">Bijlage opslaan</text>
+ <text id="IDS_MSGF_BODY_DELIVERY_REPORT">Ontvangstbevestiging</text>
+ <text id="IDS_MSGC_POP_DISCARD_CURRENT_MESSAGE_Q">Huidig bericht verwijderen?</text>
+ <text id="IDS_COM_POP_ATTACH">Bijvoegen</text>
+ <text id="IDS_COM_BODY_CALENDAR">Agenda</text>
+ <text id="IDS_COM_SK_OK">OK</text>
+ <text id="IDS_COM_SK_CALL">Bellen</text>
+ <text id="IDS_MSGC_BODY_CAPTURE_VIDEO">Video opnemen</text>
+ <text id="IDS_MSG_HEADER_SELECT_RECIPIENT">Ontvanger selecteren</text>
+</string_table>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201301241731" Dversion="20120315">
+ <text id="IDS_MSGF_HEADER_MESSAGE_DETAILS">Meldingsdetaljer</text>
+ <text id="IDS_COM_SK3_PREVIEW">Forhåndsvisning</text>
+ <text id="IDS_COM_BODY_PD_SELECTED">%d valgt</text>
+ <text id="IDS_MSG_BODY_DURATION_MUST_BE_LONGER_THAN_PD_SECONDS">Varigheten må være lenger enn %d sekunder</text>
+ <text id="IDS_DB_POP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED_DELETE_SOME_CHARACTERS">Maksimalt antall tegn oversteget. Slett noen tegn</text>
+ <text id="IDS_MSGF_BODY_NO_BLOCKED_WORDS">No blocked words</text>
+ <text id="IDS_COM_BODY_SELECT_ALL">Merk alt</text>
+ <text id="IDS_MSGF_BODY_NO_SUBJECT">Intet emne</text>
+ <text id="IDS_COM_POP_CLOSE">Lukk</text>
+ <text id="IDS_COM_BODY_TO">Til</text>
+ <text id="IDS_MSGC_BODY_TAKE_PICTURE">Ta bilde</text>
+ <text id="IDS_COM_POP_DELETE_Q">Slette?</text>
+ <text id="IDS_MSGC_HEADER_INPUTMODE">Inndatamodus</text>
+ <text id="IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED">Maksimalt antall mottakere (%d) er nådd</text>
+ <text id="IDS_COM_SK_NO">Nei</text>
+ <text id="IDS_COM_BODY_MY_FILES">Mine Filer</text>
+ <text id="IDS_MSGF_BODY_COPY_TO_PHONE">Kopier til telefon</text>
+ <text id="IDS_MSGF_BODY_CB_MESSAGES">CB-meldinger</text>
+ <text id="IDS_MSGF_BODY_SERVICECENTRE">Tjenestesentral</text>
+ <text id="IDS_COM_BODY_SMS">Tekstmelding</text>
+ <text id="IDS_MSGF_POP_SENDING_FAILED_MESSAGE">Sending mislyktes-melding</text>
+ <text id="IDS_COM_POP_SUCCESS">Fullført</text>
+ <text id="IDS_MSGF_POP_MESSAGES_RECEIVED_FROM_YOUR_CONTACTS_WILL_NOT_BE_BLOCKED_EVEN_IF_THEY_CONTAIN_BLOCKED_NUMBERS">Messages received from your contacts will not be blocked even if they contain blocked numbers</text>
+ <text id="IDS_MSG_SELECT_WORDS">Select words (%d)</text>
+ <text id="IDS_MSGF_BODY_ROAMINGRECEPTION_RESTRICTED">Begrenset</text>
+ <text id="IDS_MSGF_POP_MESSAGES_RECEIVED_FROM_YOUR_CONTACTS_WILL_NOT_BE_BLOCKED_EVEN_IF_THEY_CONTAIN_BLOCKED_WORDS">Meldinger som mottas fra kontaktene dine, vil ikke blokkeres selv hvis de inneholder blokkerte ord</text>
+ <text id="IDS_MSGF_OPT_UNBLOCK">Opphev blokkering</text>
+ <text id="IDS_MSGF_BODY_COPY_MESSAGE_TEXT_ABB">Kopier meldingstekst</text>
+ <text id="IDS_MSGF_BODY_READ_REPORT">Leserapport</text>
+ <text id="IDS_COM_BODY_MESSAGES">Meldinger</text>
+ <text id="IDS_COM_SK_OPTIONS">Valg</text>
+ <text id="IDS_COM_SK_DONE">Utført</text>
+ <text id="IDS_COM_POP_PM">PM</text>
+ <text id="IDS_COM_BODY_UNKNOWN">Ukjent</text>
+ <text id="IDS_MSG_BODY_DRAFT_MESSAGES">Kladdemeldinger</text>
+ <text id="IDS_COM_POP_SERVICE_UNAVAILABLE">Tjenesten er ikke tilgjengelig</text>
+ <text id="IDS_MSGF_OPT_CREATEMSG_ADD_WORD">Legg til ord</text>
+ <text id="IDS_MSGF_POP_BLOCK_PS_Q">Sperre %s?</text>
+ <text id="IDS_MSG_BODY_CHANGE_TEXT_SIZE_USING_THE_VOLUME_KEY">Endre tekststørrelse med volumtasten</text>
+ <text id="IDS_COM_POP_NEW_MESSAGE">Ny melding</text>
+ <text id="IDS_MSGF_BODY_SPAM_MESSAGES">Spammeldinger</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_INCLUDE">Ta med</text>
+ <text id="IDS_MSGF_BODY_NO_BLOCKED_NUMBERS">No blocked numbers</text>
+ <text id="IDS_MSGF_BODY_BLOCKED_NUMBERS">Blokkerte numre</text>
+ <text id="IDS_MSGF_BODY_SETTINGS_MULTIMEDIAMESSAGE">MMS-meldinger</text>
+ <text id="IDS_MSGF_BODY_EDIT_WORD">Rediger ord</text>
+ <text id="IDS_MSGF_BODY_EXPIRED">Utløpt</text>
+ <text id="IDS_MSGF_BODY_MMSCCCREATIONMODEWARNING">Advarsel</text>
+ <text id="IDS_COM_SK_EDIT">Rediger</text>
+ <text id="IDS_COM_POP_FAILED">Det oppstod en feil</text>
+ <text id="IDS_MSGF_HEADER_DELETE_NUMBER">Slett nummer</text>
+ <text id="IDS_MSGC_BODY_RECORD_AUDIO">Spill inn lyd</text>
+ <text id="IDS_COM_SK_BACK">Tilbake</text>
+ <text id="IDS_MSGF_BODY_UNICODE">Unicode</text>
+ <text id="IDS_MSGF_HEADER_DELETE_WORDS">Slett ord</text>
+ <text id="IDS_COM_BODY_FORWARD">Videresend</text>
+ <text id="IDS_MSGF_POP_NOMESSAGES">Ingen meldinger</text>
+ <text id="IDS_MSGF_OPT_ROAM_NETWORK">Roaming-nettverk</text>
+ <text id="IDS_MSGF_BODY_FROM">Fra</text>
+ <text id="IDS_COM_SK_DELETE">Slett</text>
+ <text id="IDS_MSGF_SK3_UNREAD">Ulest</text>
+ <text id="IDS_MSGC_BODY_DUPLICATED_RECIPIENT">Duplisert mottaker</text>
+ <text id="IDS_MSGF_BODY_GSM_ALPHABET">GSM-alfabet</text>
+ <text id="IDS_MSGF_BODY_SIM_CARD_MESSAGES">SIM-kortmeldinger</text>
+ <text id="IDS_MSGF_BODY_MMSNOTIMSGSTATUSSENT">Sendt</text>
+ <text id="IDS_COM_BODY_CONTACTS">Kontakter</text>
+ <text id="IDS_MSGF_OPT_STATUS">Status</text>
+ <text id="IDS_MSGF_BODY_MMSCCCREATIONMODEFREE">Ledig</text>
+ <text id="IDS_COM_BODY_DETAILS_TYPE">Type</text>
+ <text id="IDS_MSGF_BODY_AUTODOWNLOAD">Automatisk nedlasting</text>
+ <text id="IDS_MSGF_SK_RESEND">Send på nytt</text>
+ <text id="IDS_COM_SK_CANCEL">Avbryt</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONS">Mottaksalternativer</text>
+ <text id="IDS_COM_BODY_GALLERY">Galleri</text>
+ <text id="IDS_MSGC_BUTTON2_DURATION_N_HPD_SECS">Varighet\n(%d sek)</text>
+ <text id="IDS_COM_BODY_SEARCH">Søk</text>
+ <text id="IDS_MSGF_HEADER_MESSAGE_BOXES">Meldingsbokser</text>
+ <text id="IDS_MSGF_HEADER_ADD_NUMBER">Legg til nummer</text>
+ <text id="IDS_COM_BODY_MEMO">Notat</text>
+ <text id="IDS_MSGF_BODY_COPY_TO_SIM">Kopier til SIM</text>
+ <text id="IDS_MSGF_BODY_ENTER_NUMBER">Angi nummer</text>
+ <text id="IDS_COM_OPT_ADD_CONTACT">Legg til en kontakt</text>
+ <text id="IDS_MSGF_OPT_HOME_NETWORK">Hjemmenettverk</text>
+ <text id="IDS_COM_POP_REJECTED">Avvist</text>
+ <text id="IDS_COM_BODY_SETTINGS">Innstillinger</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_START_WITH">Begynn med</text>
+ <text id="IDS_COM_BODY_DISPLAY">Skjerm</text>
+ <text id="IDS_MSGF_OPT_PROTECTION_ON">Beskyttelse på</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONNETWORK_MANUAL">Manuelt</text>
+ <text id="IDS_SLCD_POP_TEXT_SIM_CARD_ERROR">Feil på SIM-kort</text>
+ <text id="IDS_COM_POP_DELETED">Slettet</text>
+ <text id="IDS_COM_SK_SEND_ABB">Send</text>
+ <text id="IDS_MSGF_POP_FORWARDED">Videresendt</text>
+ <text id="IDS_MSG_SELECT_NUMBERS">Select numbers (%d)</text>
+ <text id="IDS_MSGF_BODY_CENTRE_PD">Senter %d</text>
+ <text id="IDS_MSGF_HEADER_EDIT_NUMBER">Rediger nummer</text>
+ <text id="IDS_MSGF_BODY_AUTOMATIC">Automatisk</text>
+ <text id="IDS_MSGF_BODY_VIEW_MESSAGE_DETAILS_ABB">Vis meldingsdetaljer</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONNETWORK_REJECT">Avvis</text>
+ <text id="IDS_COM_BODY_VOICE_CALL">Taleanrop</text>
+ <text id="IDS_MSG_MBODY_USE_THE_VOLUME_KEY">Bruk volumtasten</text>
+ <text id="IDS_COM_SK_SAVE">Lagre</text>
+ <text id="IDS_MSGF_BODY_INVALID_SERVICE_CENTRE_ADDRESS">Invalid service centre address</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_EXACTLY_THE_SAME_AS">Eksakt samme som</text>
+ <text id="IDS_COM_BODY_NO_SEARCH_RESULTS">Ingen søkeresultater</text>
+ <text id="IDS_MSGF_BODY_MMS">MMS</text>
+ <text id="IDS_MSGF_BODY_MMSCREATIONMODE">Opprettelsesmodus</text>
+ <text id="IDS_MSGF_BODY_TEXT_MESSAGES">Tekstmeldinger</text>
+ <text id="IDS_MSGF_BODY_RECEIVED">Mottatt</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_MATCH_CRITERIA">Avvisningskriterier</text>
+ <text id="IDS_MSGF_POP_DEFERRED">Utsatt</text>
+ <text id="IDS_COM_SK_ADD">Legg til</text>
+ <text id="IDS_MSGF_OPT_BLOCK">Blokker</text>
+ <text id="IDS_COM_SK_YES">Ja</text>
+ <text id="IDS_MSGC_OPT_VIEW_CONTACT">Vis kontakter</text>
+ <text id="IDS_COM_SK_SEARCH">Søk</text>
+ <text id="IDS_COM_POP_AM_M_ABB">AM</text>
+ <text id="IDS_MSGF_BODY_BLOCKED_WORDS">Blokkerte ord</text>
+ <text id="IDS_COM_BODY_SUBJECT">Emne</text>
+ <text id="IDS_MSGF_POP_UNRECOGNISED">Ukjent</text>
+ <text id="IDS_MSGF_BODY_SEND_READ_REPORT">Send leserapport</text>
+ <text id="IDS_MSGF_SK_RESTORE">Gjenoppr.</text>
+ <text id="IDS_MSGF_BODY_REQUEST_READ_REPORT">Be om leserapport</text>
+ <text id="IDS_MSGF_BODY_ENTER_WORD">Angi ord</text>
+ <text id="IDS_COM_SK3_COMPOSE">Skriv</text>
+ <text id="IDS_COM_POP_UNKNOWN_ERROR_OCCURRED">Ukjent feil oppstod</text>
+ <text id="IDS_MSGF_BODY_REQUEST_DELIVERY_REPORT">Be om leveringsrapport</text>
+ <text id="IDS_MSGF_BODY_INVALID_RECIPIENTS">Ugyldige mottakere</text>
+ <text id="IDS_MSGF_BODY_BROADCASTMESSAGES">Kringkastingsmeldinger</text>
+ <text id="IDS_MSGF_OPT_SAVE_ATTACHMENT">Lagre vedlegg</text>
+ <text id="IDS_MSGF_BODY_DELIVERY_REPORT">Leveringsrapport</text>
+ <text id="IDS_MSGC_POP_DISCARD_CURRENT_MESSAGE_Q">Forkast aktuell melding?</text>
+ <text id="IDS_COM_POP_ATTACH">Legg ved</text>
+ <text id="IDS_COM_BODY_CALENDAR">Kalender</text>
+ <text id="IDS_COM_SK_OK">OK</text>
+ <text id="IDS_COM_SK_CALL">Samtale</text>
+ <text id="IDS_MSGC_BODY_CAPTURE_VIDEO">Ta opp video</text>
+ <text id="IDS_MSG_HEADER_SELECT_RECIPIENT">Velg mottaker</text>
+</string_table>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201301241731" Dversion="20120315">
+ <text id="IDS_MSGF_HEADER_MESSAGE_DETAILS">Szczegóły wiadomości</text>
+ <text id="IDS_COM_SK3_PREVIEW">Podgląd</text>
+ <text id="IDS_COM_BODY_PD_SELECTED">Wybrano %d</text>
+ <text id="IDS_MSG_BODY_DURATION_MUST_BE_LONGER_THAN_PD_SECONDS">Czas trwania musi być dłuższy niż %d s</text>
+ <text id="IDS_DB_POP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED_DELETE_SOME_CHARACTERS">Przekroczono maksymalną liczbę znaków. Usuń część znaków</text>
+ <text id="IDS_MSGF_BODY_NO_BLOCKED_WORDS">No blocked words</text>
+ <text id="IDS_COM_BODY_SELECT_ALL">Zaznacz wszystko</text>
+ <text id="IDS_MSGF_BODY_NO_SUBJECT">Brak tematu</text>
+ <text id="IDS_COM_POP_CLOSE">Zamknij</text>
+ <text id="IDS_COM_BODY_TO">Do</text>
+ <text id="IDS_MSGC_BODY_TAKE_PICTURE">Zrób zdjęcie</text>
+ <text id="IDS_COM_POP_DELETE_Q">Usunąć?</text>
+ <text id="IDS_MSGC_HEADER_INPUTMODE">Tryb wprowadzania</text>
+ <text id="IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED">Osiągnięto maksymalną liczbę odbiorców (%d)</text>
+ <text id="IDS_COM_SK_NO">Nie</text>
+ <text id="IDS_COM_BODY_MY_FILES">Moje pliki</text>
+ <text id="IDS_MSGF_BODY_COPY_TO_PHONE">Kopiuj do pamięci telefonu</text>
+ <text id="IDS_MSGF_BODY_CB_MESSAGES">Wiadomości sieciowe</text>
+ <text id="IDS_MSGF_BODY_SERVICECENTRE">Centrum SMS</text>
+ <text id="IDS_COM_BODY_SMS">SMS</text>
+ <text id="IDS_MSGF_POP_SENDING_FAILED_MESSAGE">Błąd wysyłania wiadomości</text>
+ <text id="IDS_COM_POP_SUCCESS">Zakończono</text>
+ <text id="IDS_MSGF_POP_MESSAGES_RECEIVED_FROM_YOUR_CONTACTS_WILL_NOT_BE_BLOCKED_EVEN_IF_THEY_CONTAIN_BLOCKED_NUMBERS">Messages received from your contacts will not be blocked even if they contain blocked numbers</text>
+ <text id="IDS_MSG_SELECT_WORDS">Select words (%d)</text>
+ <text id="IDS_MSGF_BODY_ROAMINGRECEPTION_RESTRICTED">Ograniczony</text>
+ <text id="IDS_MSGF_POP_MESSAGES_RECEIVED_FROM_YOUR_CONTACTS_WILL_NOT_BE_BLOCKED_EVEN_IF_THEY_CONTAIN_BLOCKED_WORDS">Wiadomości otrzymywane od Twoich kontaktów nie będą blokowane, nawet jeśli zawierają zablokowane słowa</text>
+ <text id="IDS_MSGF_OPT_UNBLOCK">Odblokuj</text>
+ <text id="IDS_MSGF_BODY_COPY_MESSAGE_TEXT_ABB">Kopiuj tekst wiad.</text>
+ <text id="IDS_MSGF_BODY_READ_REPORT">Raport odczytania</text>
+ <text id="IDS_COM_BODY_MESSAGES">Wiadomości</text>
+ <text id="IDS_COM_SK_OPTIONS">Opcje</text>
+ <text id="IDS_COM_SK_DONE">Gotowe</text>
+ <text id="IDS_COM_POP_PM">PM</text>
+ <text id="IDS_COM_BODY_UNKNOWN">Nieznana</text>
+ <text id="IDS_MSG_BODY_DRAFT_MESSAGES">Wersje robocze wiadomości</text>
+ <text id="IDS_COM_POP_SERVICE_UNAVAILABLE">Usługa niedostępna</text>
+ <text id="IDS_MSGF_OPT_CREATEMSG_ADD_WORD">Dodaj wyraz</text>
+ <text id="IDS_MSGF_POP_BLOCK_PS_Q">Zablokować znajomego %s?</text>
+ <text id="IDS_MSG_BODY_CHANGE_TEXT_SIZE_USING_THE_VOLUME_KEY">Zmień rozmiar tekstu za pomocą klawisza głośności</text>
+ <text id="IDS_COM_POP_NEW_MESSAGE">Nowa wiad.</text>
+ <text id="IDS_MSGF_BODY_SPAM_MESSAGES">Wiadomości typu spam</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_INCLUDE">Zawierające</text>
+ <text id="IDS_MSGF_BODY_NO_BLOCKED_NUMBERS">No blocked numbers</text>
+ <text id="IDS_MSGF_BODY_BLOCKED_NUMBERS">Zablokowane numery</text>
+ <text id="IDS_MSGF_BODY_SETTINGS_MULTIMEDIAMESSAGE">MMS</text>
+ <text id="IDS_MSGF_BODY_EDIT_WORD">Edytuj słowo</text>
+ <text id="IDS_MSGF_BODY_EXPIRED">Wygasła wiadomość</text>
+ <text id="IDS_MSGF_BODY_MMSCCCREATIONMODEWARNING">Ostrzeżenie</text>
+ <text id="IDS_COM_SK_EDIT">Edytuj</text>
+ <text id="IDS_COM_POP_FAILED">Błąd</text>
+ <text id="IDS_MSGF_HEADER_DELETE_NUMBER">Usuń numer</text>
+ <text id="IDS_MSGC_BODY_RECORD_AUDIO">Nagraj dźwięk</text>
+ <text id="IDS_COM_SK_BACK">Wstecz</text>
+ <text id="IDS_MSGF_BODY_UNICODE">Unicode</text>
+ <text id="IDS_MSGF_HEADER_DELETE_WORDS">Usuń słowa</text>
+ <text id="IDS_COM_BODY_FORWARD">Prześlij dalej</text>
+ <text id="IDS_MSGF_POP_NOMESSAGES">Brak wiadomości</text>
+ <text id="IDS_MSGF_OPT_ROAM_NETWORK">Odbiór w roamingu</text>
+ <text id="IDS_MSGF_BODY_FROM">Od</text>
+ <text id="IDS_COM_SK_DELETE">Usuń</text>
+ <text id="IDS_MSGF_SK3_UNREAD">Nieprz.</text>
+ <text id="IDS_MSGC_BODY_DUPLICATED_RECIPIENT">Powtórzony odbiorca</text>
+ <text id="IDS_MSGF_BODY_GSM_ALPHABET">Alfabet GSM</text>
+ <text id="IDS_MSGF_BODY_SIM_CARD_MESSAGES">Wiadomości karty SIM</text>
+ <text id="IDS_MSGF_BODY_MMSNOTIMSGSTATUSSENT">Wysłano</text>
+ <text id="IDS_COM_BODY_CONTACTS">Kontakty</text>
+ <text id="IDS_MSGF_OPT_STATUS">Stan</text>
+ <text id="IDS_MSGF_BODY_MMSCCCREATIONMODEFREE">Nie ostrzegaj</text>
+ <text id="IDS_COM_BODY_DETAILS_TYPE">Typ</text>
+ <text id="IDS_MSGF_BODY_AUTODOWNLOAD">Automatycznie</text>
+ <text id="IDS_MSGF_SK_RESEND">Wyślij ponownie</text>
+ <text id="IDS_COM_SK_CANCEL">Anuluj</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONS">Ustawienia odbierania</text>
+ <text id="IDS_COM_BODY_GALLERY">Galeria</text>
+ <text id="IDS_MSGC_BUTTON2_DURATION_N_HPD_SECS">Czas trwania\n(%d s)</text>
+ <text id="IDS_COM_BODY_SEARCH">Szukaj</text>
+ <text id="IDS_MSGF_HEADER_MESSAGE_BOXES">Skrzynki wiadomości</text>
+ <text id="IDS_MSGF_HEADER_ADD_NUMBER">Dodaj numer</text>
+ <text id="IDS_COM_BODY_MEMO">Notatka</text>
+ <text id="IDS_MSGF_BODY_COPY_TO_SIM">Kopiuj do pamięci SIM</text>
+ <text id="IDS_MSGF_BODY_ENTER_NUMBER">Wpisz numer</text>
+ <text id="IDS_COM_OPT_ADD_CONTACT">Dodaj kontakt</text>
+ <text id="IDS_MSGF_OPT_HOME_NETWORK">Odbiór w sieci domowej</text>
+ <text id="IDS_COM_POP_REJECTED">Odrzucono</text>
+ <text id="IDS_COM_BODY_SETTINGS">Ustawienia</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_START_WITH">Zaczynające od</text>
+ <text id="IDS_COM_BODY_DISPLAY">Wyświetlacz</text>
+ <text id="IDS_MSGF_OPT_PROTECTION_ON">Wł. ochronę</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONNETWORK_MANUAL">Ręcznie</text>
+ <text id="IDS_SLCD_POP_TEXT_SIM_CARD_ERROR">Błąd karty SIM</text>
+ <text id="IDS_COM_POP_DELETED">Usunięto</text>
+ <text id="IDS_COM_SK_SEND_ABB">Wyślij</text>
+ <text id="IDS_MSGF_POP_FORWARDED">Przesłana dalej</text>
+ <text id="IDS_MSG_SELECT_NUMBERS">Select numbers (%d)</text>
+ <text id="IDS_MSGF_BODY_CENTRE_PD">Centrum SMS %d</text>
+ <text id="IDS_MSGF_HEADER_EDIT_NUMBER">Edytuj numer</text>
+ <text id="IDS_MSGF_BODY_AUTOMATIC">Automatyczny</text>
+ <text id="IDS_MSGF_BODY_VIEW_MESSAGE_DETAILS_ABB">Pokaż szczeg. wiad.</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONNETWORK_REJECT">Odrzucaj</text>
+ <text id="IDS_COM_BODY_VOICE_CALL">Połączenie głosowe</text>
+ <text id="IDS_MSG_MBODY_USE_THE_VOLUME_KEY">Użyj klawisza głośności</text>
+ <text id="IDS_COM_SK_SAVE">Zapisz</text>
+ <text id="IDS_MSGF_BODY_INVALID_SERVICE_CENTRE_ADDRESS">Invalid service centre address</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_EXACTLY_THE_SAME_AS">Dokładnie takie same, jak</text>
+ <text id="IDS_COM_BODY_NO_SEARCH_RESULTS">Brak wyników wyszukiwania</text>
+ <text id="IDS_MSGF_BODY_MMS">MMS</text>
+ <text id="IDS_MSGF_BODY_MMSCREATIONMODE">Tryb tworzenia</text>
+ <text id="IDS_MSGF_BODY_TEXT_MESSAGES">SMS</text>
+ <text id="IDS_MSGF_BODY_RECEIVED">Odebrano</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_MATCH_CRITERIA">Kryteria dopasowania</text>
+ <text id="IDS_MSGF_POP_DEFERRED">Opóźniona</text>
+ <text id="IDS_COM_SK_ADD">Dodaj</text>
+ <text id="IDS_MSGF_OPT_BLOCK">Blokuj</text>
+ <text id="IDS_COM_SK_YES">Tak</text>
+ <text id="IDS_MSGC_OPT_VIEW_CONTACT">Wyświetl kontakt</text>
+ <text id="IDS_COM_SK_SEARCH">Szukaj</text>
+ <text id="IDS_COM_POP_AM_M_ABB">AM</text>
+ <text id="IDS_MSGF_BODY_BLOCKED_WORDS">Zablokowane słowa</text>
+ <text id="IDS_COM_BODY_SUBJECT">Temat</text>
+ <text id="IDS_MSGF_POP_UNRECOGNISED">Nierozpoznane</text>
+ <text id="IDS_MSGF_BODY_SEND_READ_REPORT">Wyślij raport odczytu</text>
+ <text id="IDS_MSGF_SK_RESTORE">Przywróć</text>
+ <text id="IDS_MSGF_BODY_REQUEST_READ_REPORT">Żądaj raportu przeczytania</text>
+ <text id="IDS_MSGF_BODY_ENTER_WORD">Wprowadź słowo</text>
+ <text id="IDS_COM_SK3_COMPOSE">Utwórz</text>
+ <text id="IDS_COM_POP_UNKNOWN_ERROR_OCCURRED">Wystąpił nieznany błąd</text>
+ <text id="IDS_MSGF_BODY_REQUEST_DELIVERY_REPORT">Raport doręczenia</text>
+ <text id="IDS_MSGF_BODY_INVALID_RECIPIENTS">Nieprawidłowi odbiorcy</text>
+ <text id="IDS_MSGF_BODY_BROADCASTMESSAGES">Wiad. sieciowe</text>
+ <text id="IDS_MSGF_OPT_SAVE_ATTACHMENT">Zapisz załącznik</text>
+ <text id="IDS_MSGF_BODY_DELIVERY_REPORT">Raport doręczenia</text>
+ <text id="IDS_MSGC_POP_DISCARD_CURRENT_MESSAGE_Q">Usunąć bieżącą wiadomość?</text>
+ <text id="IDS_COM_POP_ATTACH">Dołącz</text>
+ <text id="IDS_COM_BODY_CALENDAR">Kalendarz</text>
+ <text id="IDS_COM_SK_OK">OK</text>
+ <text id="IDS_COM_SK_CALL">Połącz.</text>
+ <text id="IDS_MSGC_BODY_CAPTURE_VIDEO">Nagraj video</text>
+ <text id="IDS_MSG_HEADER_SELECT_RECIPIENT">Wybierz odbiorcę</text>
+</string_table>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201301241731" Dversion="20120315">
+ <text id="IDS_MSGF_HEADER_MESSAGE_DETAILS">Detalhes da mensagem</text>
+ <text id="IDS_COM_SK3_PREVIEW">Pré-visualizar</text>
+ <text id="IDS_COM_BODY_PD_SELECTED">%d selecionado(s)</text>
+ <text id="IDS_MSG_BODY_DURATION_MUST_BE_LONGER_THAN_PD_SECONDS">A duração deve ser superior a %d segundos</text>
+ <text id="IDS_DB_POP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED_DELETE_SOME_CHARACTERS">Número máximo de caracteres excedido. Apague alguns caracteres</text>
+ <text id="IDS_MSGF_BODY_NO_BLOCKED_WORDS">No blocked words</text>
+ <text id="IDS_COM_BODY_SELECT_ALL">Selecionar tudo</text>
+ <text id="IDS_MSGF_BODY_NO_SUBJECT">Sem assunto</text>
+ <text id="IDS_COM_POP_CLOSE">Fechar</text>
+ <text id="IDS_COM_BODY_TO">Para</text>
+ <text id="IDS_MSGC_BODY_TAKE_PICTURE">Tirar foto</text>
+ <text id="IDS_COM_POP_DELETE_Q">Apagar?</text>
+ <text id="IDS_MSGC_HEADER_INPUTMODE">Modo de entrada</text>
+ <text id="IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED">Número máximo de destinatários (%d) atingido</text>
+ <text id="IDS_COM_SK_NO">Não</text>
+ <text id="IDS_COM_BODY_MY_FILES">Meus Arquivos</text>
+ <text id="IDS_MSGF_BODY_COPY_TO_PHONE">Copiar para telefone</text>
+ <text id="IDS_MSGF_BODY_CB_MESSAGES">Mensagens Broadcast</text>
+ <text id="IDS_MSGF_BODY_SERVICECENTRE">Centro de serviços</text>
+ <text id="IDS_COM_BODY_SMS">SMS</text>
+ <text id="IDS_MSGF_POP_SENDING_FAILED_MESSAGE">Enviando mensagem que falhou</text>
+ <text id="IDS_COM_POP_SUCCESS">Sucesso</text>
+ <text id="IDS_MSGF_POP_MESSAGES_RECEIVED_FROM_YOUR_CONTACTS_WILL_NOT_BE_BLOCKED_EVEN_IF_THEY_CONTAIN_BLOCKED_NUMBERS">Messages received from your contacts will not be blocked even if they contain blocked numbers</text>
+ <text id="IDS_MSG_SELECT_WORDS">Select words (%d)</text>
+ <text id="IDS_MSGF_BODY_ROAMINGRECEPTION_RESTRICTED">Restrito</text>
+ <text id="IDS_MSGF_POP_MESSAGES_RECEIVED_FROM_YOUR_CONTACTS_WILL_NOT_BE_BLOCKED_EVEN_IF_THEY_CONTAIN_BLOCKED_WORDS">As mensagens recebidas de seus contatos não serão bloqueadas mesmo se contiverem palavras bloqueadas</text>
+ <text id="IDS_MSGF_OPT_UNBLOCK">Desbloquear</text>
+ <text id="IDS_MSGF_BODY_COPY_MESSAGE_TEXT_ABB">Copiar texto msg.</text>
+ <text id="IDS_MSGF_BODY_READ_REPORT">Confirm. de leitura</text>
+ <text id="IDS_COM_BODY_MESSAGES">Mensagens</text>
+ <text id="IDS_COM_SK_OPTIONS">Opções</text>
+ <text id="IDS_COM_SK_DONE">Concluído</text>
+ <text id="IDS_COM_POP_PM">PM</text>
+ <text id="IDS_COM_BODY_UNKNOWN">Desconhecido</text>
+ <text id="IDS_MSG_BODY_DRAFT_MESSAGES">Mensagens de rascunho</text>
+ <text id="IDS_COM_POP_SERVICE_UNAVAILABLE">Serviço não disponível</text>
+ <text id="IDS_MSGF_OPT_CREATEMSG_ADD_WORD">Adicionar palavra</text>
+ <text id="IDS_MSGF_POP_BLOCK_PS_Q">Bloquear %s?</text>
+ <text id="IDS_MSG_BODY_CHANGE_TEXT_SIZE_USING_THE_VOLUME_KEY">Alterar tamanho do texto usando a tecla de volume</text>
+ <text id="IDS_COM_POP_NEW_MESSAGE">Nova mensagem</text>
+ <text id="IDS_MSGF_BODY_SPAM_MESSAGES">Mensagens de spam</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_INCLUDE">Incluir</text>
+ <text id="IDS_MSGF_BODY_NO_BLOCKED_NUMBERS">No blocked numbers</text>
+ <text id="IDS_MSGF_BODY_BLOCKED_NUMBERS">Números bloqueados</text>
+ <text id="IDS_MSGF_BODY_SETTINGS_MULTIMEDIAMESSAGE">MMS</text>
+ <text id="IDS_MSGF_BODY_EDIT_WORD">Editar palavra</text>
+ <text id="IDS_MSGF_BODY_EXPIRED">Expirado</text>
+ <text id="IDS_MSGF_BODY_MMSCCCREATIONMODEWARNING">Aviso</text>
+ <text id="IDS_COM_SK_EDIT">Editar</text>
+ <text id="IDS_COM_POP_FAILED">Falhou</text>
+ <text id="IDS_MSGF_HEADER_DELETE_NUMBER">Apagar número</text>
+ <text id="IDS_MSGC_BODY_RECORD_AUDIO">Gravar áudio</text>
+ <text id="IDS_COM_SK_BACK">Voltar</text>
+ <text id="IDS_MSGF_BODY_UNICODE">Unicode</text>
+ <text id="IDS_MSGF_HEADER_DELETE_WORDS">Excluir palavras</text>
+ <text id="IDS_COM_BODY_FORWARD">Encaminhar</text>
+ <text id="IDS_MSGF_POP_NOMESSAGES">Nenhuma mensagem</text>
+ <text id="IDS_MSGF_OPT_ROAM_NETWORK">Rede internacional</text>
+ <text id="IDS_MSGF_BODY_FROM">De</text>
+ <text id="IDS_COM_SK_DELETE">Apagar</text>
+ <text id="IDS_MSGF_SK3_UNREAD">Não lida</text>
+ <text id="IDS_MSGC_BODY_DUPLICATED_RECIPIENT">Destinatário duplicado</text>
+ <text id="IDS_MSGF_BODY_GSM_ALPHABET">Alfabeto GSM</text>
+ <text id="IDS_MSGF_BODY_SIM_CARD_MESSAGES">Mensagens do cartão SIM</text>
+ <text id="IDS_MSGF_BODY_MMSNOTIMSGSTATUSSENT">Enviado</text>
+ <text id="IDS_COM_BODY_CONTACTS">Contatos</text>
+ <text id="IDS_MSGF_OPT_STATUS">Status</text>
+ <text id="IDS_MSGF_BODY_MMSCCCREATIONMODEFREE">Livre</text>
+ <text id="IDS_COM_BODY_DETAILS_TYPE">Tipo</text>
+ <text id="IDS_MSGF_BODY_AUTODOWNLOAD">Download automático</text>
+ <text id="IDS_MSGF_SK_RESEND">Reenviar</text>
+ <text id="IDS_COM_SK_CANCEL">Cancelar</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONS">Opções de recebimento</text>
+ <text id="IDS_COM_BODY_GALLERY">Galeria</text>
+ <text id="IDS_MSGC_BUTTON2_DURATION_N_HPD_SECS">Duração\n(%d s)</text>
+ <text id="IDS_COM_BODY_SEARCH">Pesquisar</text>
+ <text id="IDS_MSGF_HEADER_MESSAGE_BOXES">Caixas de mensagens</text>
+ <text id="IDS_MSGF_HEADER_ADD_NUMBER">Adicionar número</text>
+ <text id="IDS_COM_BODY_MEMO">Notas</text>
+ <text id="IDS_MSGF_BODY_COPY_TO_SIM">Copiar para SIM</text>
+ <text id="IDS_MSGF_BODY_ENTER_NUMBER">Insira número</text>
+ <text id="IDS_COM_OPT_ADD_CONTACT">Adicionar contato</text>
+ <text id="IDS_MSGF_OPT_HOME_NETWORK">Rede local</text>
+ <text id="IDS_COM_POP_REJECTED">Rejeitado</text>
+ <text id="IDS_COM_BODY_SETTINGS">Configurações</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_START_WITH">Iniciar com</text>
+ <text id="IDS_COM_BODY_DISPLAY">Visor</text>
+ <text id="IDS_MSGF_OPT_PROTECTION_ON">Ativar proteção</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONNETWORK_MANUAL">Manual</text>
+ <text id="IDS_SLCD_POP_TEXT_SIM_CARD_ERROR">Cartão SIM indisponível</text>
+ <text id="IDS_COM_POP_DELETED">Apagado</text>
+ <text id="IDS_COM_SK_SEND_ABB">Enviar</text>
+ <text id="IDS_MSGF_POP_FORWARDED">Encaminhado</text>
+ <text id="IDS_MSG_SELECT_NUMBERS">Select numbers (%d)</text>
+ <text id="IDS_MSGF_BODY_CENTRE_PD">Centro %d</text>
+ <text id="IDS_MSGF_HEADER_EDIT_NUMBER">Editar número</text>
+ <text id="IDS_MSGF_BODY_AUTOMATIC">Automático</text>
+ <text id="IDS_MSGF_BODY_VIEW_MESSAGE_DETAILS_ABB">Ver detalhes msg.</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONNETWORK_REJECT">Rejeitar</text>
+ <text id="IDS_COM_BODY_VOICE_CALL">Chamada de voz</text>
+ <text id="IDS_MSG_MBODY_USE_THE_VOLUME_KEY">Usar tecla de volume</text>
+ <text id="IDS_COM_SK_SAVE">Salvar</text>
+ <text id="IDS_MSGF_BODY_INVALID_SERVICE_CENTRE_ADDRESS">Invalid service centre address</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_EXACTLY_THE_SAME_AS">Exatamente o mesmo que</text>
+ <text id="IDS_COM_BODY_NO_SEARCH_RESULTS">Nenhum resultado encontrado</text>
+ <text id="IDS_MSGF_BODY_MMS">MMS</text>
+ <text id="IDS_MSGF_BODY_MMSCREATIONMODE">Modo de criação</text>
+ <text id="IDS_MSGF_BODY_TEXT_MESSAGES">SMS</text>
+ <text id="IDS_MSGF_BODY_RECEIVED">Recebida</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_MATCH_CRITERIA">Corresponder ao critério</text>
+ <text id="IDS_MSGF_POP_DEFERRED">Adiado</text>
+ <text id="IDS_COM_SK_ADD">Adicionar</text>
+ <text id="IDS_MSGF_OPT_BLOCK">Bloquear</text>
+ <text id="IDS_COM_SK_YES">Sim</text>
+ <text id="IDS_MSGC_OPT_VIEW_CONTACT">Ver contato</text>
+ <text id="IDS_COM_SK_SEARCH">Pesquisar</text>
+ <text id="IDS_COM_POP_AM_M_ABB">AM</text>
+ <text id="IDS_MSGF_BODY_BLOCKED_WORDS">Palavras bloqueadas</text>
+ <text id="IDS_COM_BODY_SUBJECT">Assunto</text>
+ <text id="IDS_MSGF_POP_UNRECOGNISED">Desconhecido</text>
+ <text id="IDS_MSGF_BODY_SEND_READ_REPORT">Confirm. de leitura</text>
+ <text id="IDS_MSGF_SK_RESTORE">Restaurar</text>
+ <text id="IDS_MSGF_BODY_REQUEST_READ_REPORT">Confirm. de leitura</text>
+ <text id="IDS_MSGF_BODY_ENTER_WORD">Inserir palavra</text>
+ <text id="IDS_COM_SK3_COMPOSE">Compor</text>
+ <text id="IDS_COM_POP_UNKNOWN_ERROR_OCCURRED">Ocorreu erro desconhecido</text>
+ <text id="IDS_MSGF_BODY_REQUEST_DELIVERY_REPORT">Confirm. de entrega</text>
+ <text id="IDS_MSGF_BODY_INVALID_RECIPIENTS">Destinatários inválidos</text>
+ <text id="IDS_MSGF_BODY_BROADCASTMESSAGES">Broadcast</text>
+ <text id="IDS_MSGF_OPT_SAVE_ATTACHMENT">Salvar anexo</text>
+ <text id="IDS_MSGF_BODY_DELIVERY_REPORT">Confirm. de entrega</text>
+ <text id="IDS_MSGC_POP_DISCARD_CURRENT_MESSAGE_Q">Apagar mensagem atual?</text>
+ <text id="IDS_COM_POP_ATTACH">Anexar</text>
+ <text id="IDS_COM_BODY_CALENDAR">Calendário</text>
+ <text id="IDS_COM_SK_OK">OK</text>
+ <text id="IDS_COM_SK_CALL">Chamar</text>
+ <text id="IDS_MSGC_BODY_CAPTURE_VIDEO">Gravar vídeo</text>
+ <text id="IDS_MSG_HEADER_SELECT_RECIPIENT">Selecionar destinatário</text>
+</string_table>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201301241731" Dversion="20120315">
+ <text id="IDS_MSGF_HEADER_MESSAGE_DETAILS">Detalhes da mensagem</text>
+ <text id="IDS_COM_SK3_PREVIEW">Pré-visualizar</text>
+ <text id="IDS_COM_BODY_PD_SELECTED">%d seleccionada</text>
+ <text id="IDS_MSG_BODY_DURATION_MUST_BE_LONGER_THAN_PD_SECONDS">A duração tem de ser mais longa do que %d segundos</text>
+ <text id="IDS_DB_POP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED_DELETE_SOME_CHARACTERS">Número máximo de caracteres excedido. Apagar alguns caracteres</text>
+ <text id="IDS_MSGF_BODY_NO_BLOCKED_WORDS">No blocked words</text>
+ <text id="IDS_COM_BODY_SELECT_ALL">Selec. tudo</text>
+ <text id="IDS_MSGF_BODY_NO_SUBJECT">Sem assunto</text>
+ <text id="IDS_COM_POP_CLOSE">Fechar</text>
+ <text id="IDS_COM_BODY_TO">Para</text>
+ <text id="IDS_MSGC_BODY_TAKE_PICTURE">Tirar fotografia</text>
+ <text id="IDS_COM_POP_DELETE_Q">Eliminar?</text>
+ <text id="IDS_MSGC_HEADER_INPUTMODE">Modo de introdução</text>
+ <text id="IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED">Número máximo de destinatários (%d) atingido</text>
+ <text id="IDS_COM_SK_NO">Não</text>
+ <text id="IDS_COM_BODY_MY_FILES">Os Meus Ficheiros</text>
+ <text id="IDS_MSGF_BODY_COPY_TO_PHONE">Copiar para o telefone</text>
+ <text id="IDS_MSGF_BODY_CB_MESSAGES">Mensagens DC</text>
+ <text id="IDS_MSGF_BODY_SERVICECENTRE">Centro de serviço</text>
+ <text id="IDS_COM_BODY_SMS">SMS</text>
+ <text id="IDS_MSGF_POP_SENDING_FAILED_MESSAGE">A enviar mensagem que falhou</text>
+ <text id="IDS_COM_POP_SUCCESS">Concluído</text>
+ <text id="IDS_MSGF_POP_MESSAGES_RECEIVED_FROM_YOUR_CONTACTS_WILL_NOT_BE_BLOCKED_EVEN_IF_THEY_CONTAIN_BLOCKED_NUMBERS">Messages received from your contacts will not be blocked even if they contain blocked numbers</text>
+ <text id="IDS_MSG_SELECT_WORDS">Select words (%d)</text>
+ <text id="IDS_MSGF_BODY_ROAMINGRECEPTION_RESTRICTED">Restringido</text>
+ <text id="IDS_MSGF_POP_MESSAGES_RECEIVED_FROM_YOUR_CONTACTS_WILL_NOT_BE_BLOCKED_EVEN_IF_THEY_CONTAIN_BLOCKED_WORDS">As mensagens recebidas dos seus contactos não serão bloqueadas, mesmo que contenham palavras bloqueadas</text>
+ <text id="IDS_MSGF_OPT_UNBLOCK">Desbloquear</text>
+ <text id="IDS_MSGF_BODY_COPY_MESSAGE_TEXT_ABB">Copiar texto msg.</text>
+ <text id="IDS_MSGF_BODY_READ_REPORT">Relatório de leitura</text>
+ <text id="IDS_COM_BODY_MESSAGES">Mensagem</text>
+ <text id="IDS_COM_SK_OPTIONS">Opções</text>
+ <text id="IDS_COM_SK_DONE">Concluído</text>
+ <text id="IDS_COM_POP_PM">PM</text>
+ <text id="IDS_COM_BODY_UNKNOWN">Desconhecido</text>
+ <text id="IDS_MSG_BODY_DRAFT_MESSAGES">Mensagens rascunho</text>
+ <text id="IDS_COM_POP_SERVICE_UNAVAILABLE">Serviço não disponível</text>
+ <text id="IDS_MSGF_OPT_CREATEMSG_ADD_WORD">Adicionar palavra</text>
+ <text id="IDS_MSGF_POP_BLOCK_PS_Q">Bloquear %s?</text>
+ <text id="IDS_MSG_BODY_CHANGE_TEXT_SIZE_USING_THE_VOLUME_KEY">Alterar o tamanho do texto utilizando a tecla de volume</text>
+ <text id="IDS_COM_POP_NEW_MESSAGE">Nova mensagem</text>
+ <text id="IDS_MSGF_BODY_SPAM_MESSAGES">Mensagens de spam</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_INCLUDE">Incluir</text>
+ <text id="IDS_MSGF_BODY_NO_BLOCKED_NUMBERS">No blocked numbers</text>
+ <text id="IDS_MSGF_BODY_BLOCKED_NUMBERS">Números bloqueados</text>
+ <text id="IDS_MSGF_BODY_SETTINGS_MULTIMEDIAMESSAGE">MMS</text>
+ <text id="IDS_MSGF_BODY_EDIT_WORD">Editar palavra</text>
+ <text id="IDS_MSGF_BODY_EXPIRED">Expirado</text>
+ <text id="IDS_MSGF_BODY_MMSCCCREATIONMODEWARNING">Aviso</text>
+ <text id="IDS_COM_SK_EDIT">Editar</text>
+ <text id="IDS_COM_POP_FAILED">Falha</text>
+ <text id="IDS_MSGF_HEADER_DELETE_NUMBER">Eliminar número</text>
+ <text id="IDS_MSGC_BODY_RECORD_AUDIO">Gravação de áudio</text>
+ <text id="IDS_COM_SK_BACK">Voltar</text>
+ <text id="IDS_MSGF_BODY_UNICODE">Unicode</text>
+ <text id="IDS_MSGF_HEADER_DELETE_WORDS">Eliminar palavras</text>
+ <text id="IDS_COM_BODY_FORWARD">Reencaminhar</text>
+ <text id="IDS_MSGF_POP_NOMESSAGES">Nenhuma mensagem</text>
+ <text id="IDS_MSGF_OPT_ROAM_NETWORK">Rede de roaming</text>
+ <text id="IDS_MSGF_BODY_FROM">De</text>
+ <text id="IDS_COM_SK_DELETE">Eliminar</text>
+ <text id="IDS_MSGF_SK3_UNREAD">Não lida</text>
+ <text id="IDS_MSGC_BODY_DUPLICATED_RECIPIENT">Destinatário duplicado</text>
+ <text id="IDS_MSGF_BODY_GSM_ALPHABET">Alfabeto GSM</text>
+ <text id="IDS_MSGF_BODY_SIM_CARD_MESSAGES">Mensagens do cartão SIM</text>
+ <text id="IDS_MSGF_BODY_MMSNOTIMSGSTATUSSENT">Enviada</text>
+ <text id="IDS_COM_BODY_CONTACTS">Contactos</text>
+ <text id="IDS_MSGF_OPT_STATUS">Estado</text>
+ <text id="IDS_MSGF_BODY_MMSCCCREATIONMODEFREE">Livre</text>
+ <text id="IDS_COM_BODY_DETAILS_TYPE">Tipo</text>
+ <text id="IDS_MSGF_BODY_AUTODOWNLOAD">Transferência automática</text>
+ <text id="IDS_MSGF_SK_RESEND">Reenviar</text>
+ <text id="IDS_COM_SK_CANCEL">Cancelar</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONS">Opções de recepção</text>
+ <text id="IDS_COM_BODY_GALLERY">Galeria</text>
+ <text id="IDS_MSGC_BUTTON2_DURATION_N_HPD_SECS">Duração\n(%d s)</text>
+ <text id="IDS_COM_BODY_SEARCH">Procurar</text>
+ <text id="IDS_MSGF_HEADER_MESSAGE_BOXES">Caixas de mensagens</text>
+ <text id="IDS_MSGF_HEADER_ADD_NUMBER">Adicionar número</text>
+ <text id="IDS_COM_BODY_MEMO">Memorando</text>
+ <text id="IDS_MSGF_BODY_COPY_TO_SIM">Copiar para o SIM</text>
+ <text id="IDS_MSGF_BODY_ENTER_NUMBER">Introduzir número</text>
+ <text id="IDS_COM_OPT_ADD_CONTACT">Adicionar um contacto</text>
+ <text id="IDS_MSGF_OPT_HOME_NETWORK">Rede local</text>
+ <text id="IDS_COM_POP_REJECTED">Rejeitado</text>
+ <text id="IDS_COM_BODY_SETTINGS">Definições</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_START_WITH">Iniciar com</text>
+ <text id="IDS_COM_BODY_DISPLAY">Visor e luz</text>
+ <text id="IDS_MSGF_OPT_PROTECTION_ON">Activar protecção</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONNETWORK_MANUAL">Manual</text>
+ <text id="IDS_SLCD_POP_TEXT_SIM_CARD_ERROR">Falha do cartão SIM</text>
+ <text id="IDS_COM_POP_DELETED">Eliminado</text>
+ <text id="IDS_COM_SK_SEND_ABB">Enviar</text>
+ <text id="IDS_MSGF_POP_FORWARDED">Reencaminhado</text>
+ <text id="IDS_MSG_SELECT_NUMBERS">Select numbers (%d)</text>
+ <text id="IDS_MSGF_BODY_CENTRE_PD">Centro %d</text>
+ <text id="IDS_MSGF_HEADER_EDIT_NUMBER">Editar número</text>
+ <text id="IDS_MSGF_BODY_AUTOMATIC">Automático</text>
+ <text id="IDS_MSGF_BODY_VIEW_MESSAGE_DETAILS_ABB">Ver detalhes msg.</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONNETWORK_REJECT">Rejeitar</text>
+ <text id="IDS_COM_BODY_VOICE_CALL">Chamada de voz</text>
+ <text id="IDS_MSG_MBODY_USE_THE_VOLUME_KEY">Utilizar tecla de volume</text>
+ <text id="IDS_COM_SK_SAVE">Guardar</text>
+ <text id="IDS_MSGF_BODY_INVALID_SERVICE_CENTRE_ADDRESS">Invalid service centre address</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_EXACTLY_THE_SAME_AS">Exactamente o mesmo que</text>
+ <text id="IDS_COM_BODY_NO_SEARCH_RESULTS">Nenhuns resultados de procura</text>
+ <text id="IDS_MSGF_BODY_MMS">MMS</text>
+ <text id="IDS_MSGF_BODY_MMSCREATIONMODE">Modo de criação</text>
+ <text id="IDS_MSGF_BODY_TEXT_MESSAGES">SMS</text>
+ <text id="IDS_MSGF_BODY_RECEIVED">Recebido</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_MATCH_CRITERIA">Corresponder critérios</text>
+ <text id="IDS_MSGF_POP_DEFERRED">Deferida</text>
+ <text id="IDS_COM_SK_ADD">Adicionar</text>
+ <text id="IDS_MSGF_OPT_BLOCK">Bloquear</text>
+ <text id="IDS_COM_SK_YES">Sim</text>
+ <text id="IDS_MSGC_OPT_VIEW_CONTACT">Ver contactos</text>
+ <text id="IDS_COM_SK_SEARCH">Procurar</text>
+ <text id="IDS_COM_POP_AM_M_ABB">AM</text>
+ <text id="IDS_MSGF_BODY_BLOCKED_WORDS">Palavras bloqueadas</text>
+ <text id="IDS_COM_BODY_SUBJECT">Assunto</text>
+ <text id="IDS_MSGF_POP_UNRECOGNISED">Não reconhecido</text>
+ <text id="IDS_MSGF_BODY_SEND_READ_REPORT">Enviar relatório de leitura</text>
+ <text id="IDS_MSGF_SK_RESTORE">Restaurar</text>
+ <text id="IDS_MSGF_BODY_REQUEST_READ_REPORT">Pedir relatório de leitura</text>
+ <text id="IDS_MSGF_BODY_ENTER_WORD">Introduzir palavra</text>
+ <text id="IDS_COM_SK3_COMPOSE">Redigir</text>
+ <text id="IDS_COM_POP_UNKNOWN_ERROR_OCCURRED">Ocorreu erro desconhecido</text>
+ <text id="IDS_MSGF_BODY_REQUEST_DELIVERY_REPORT">Pedir relatório de entrega</text>
+ <text id="IDS_MSGF_BODY_INVALID_RECIPIENTS">Destinatários inválidos</text>
+ <text id="IDS_MSGF_BODY_BROADCASTMESSAGES">Mensagens de difusão</text>
+ <text id="IDS_MSGF_OPT_SAVE_ATTACHMENT">Guardar anexo</text>
+ <text id="IDS_MSGF_BODY_DELIVERY_REPORT">Relatório de entrega</text>
+ <text id="IDS_MSGC_POP_DISCARD_CURRENT_MESSAGE_Q">Eliminar mensagem actual?</text>
+ <text id="IDS_COM_POP_ATTACH">Anexar</text>
+ <text id="IDS_COM_BODY_CALENDAR">Calendário</text>
+ <text id="IDS_COM_SK_OK">OK</text>
+ <text id="IDS_COM_SK_CALL">Chamar</text>
+ <text id="IDS_MSGC_BODY_CAPTURE_VIDEO">Capturar vídeo</text>
+ <text id="IDS_MSG_HEADER_SELECT_RECIPIENT">Seleccionar destinatário</text>
+</string_table>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201301241731" Dversion="20120315">
+ <text id="IDS_MSGF_HEADER_MESSAGE_DETAILS">Detalii mesaj</text>
+ <text id="IDS_COM_SK3_PREVIEW">Previz.</text>
+ <text id="IDS_COM_BODY_PD_SELECTED">%d selectate</text>
+ <text id="IDS_MSG_BODY_DURATION_MUST_BE_LONGER_THAN_PD_SECONDS">Durata trebuie să fie mai mare de %d secunde</text>
+ <text id="IDS_DB_POP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED_DELETE_SOME_CHARACTERS">S-a depăşit numărul maxim de caractere. Ştergeţi câteva caractere</text>
+ <text id="IDS_MSGF_BODY_NO_BLOCKED_WORDS">No blocked words</text>
+ <text id="IDS_COM_BODY_SELECT_ALL">Selectare toate</text>
+ <text id="IDS_MSGF_BODY_NO_SUBJECT">Niciun subiect</text>
+ <text id="IDS_COM_POP_CLOSE">Închidere</text>
+ <text id="IDS_COM_BODY_TO">Către</text>
+ <text id="IDS_MSGC_BODY_TAKE_PICTURE">Fotografiere</text>
+ <text id="IDS_COM_POP_DELETE_Q">Ştergeţi?</text>
+ <text id="IDS_MSGC_HEADER_INPUTMODE">Mod introducere text</text>
+ <text id="IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED">Numărul maxim de destinatari (%d) a fost atins</text>
+ <text id="IDS_COM_SK_NO">Nu</text>
+ <text id="IDS_COM_BODY_MY_FILES">Fişierele mele</text>
+ <text id="IDS_MSGF_BODY_COPY_TO_PHONE">Copiere în telefon</text>
+ <text id="IDS_MSGF_BODY_CB_MESSAGES">Mesaje CB</text>
+ <text id="IDS_MSGF_BODY_SERVICECENTRE">Centru service</text>
+ <text id="IDS_COM_BODY_SMS">SMS</text>
+ <text id="IDS_MSGF_POP_SENDING_FAILED_MESSAGE">Trimiterea mesajului nereuşit</text>
+ <text id="IDS_COM_POP_SUCCESS">Succes</text>
+ <text id="IDS_MSGF_POP_MESSAGES_RECEIVED_FROM_YOUR_CONTACTS_WILL_NOT_BE_BLOCKED_EVEN_IF_THEY_CONTAIN_BLOCKED_NUMBERS">Messages received from your contacts will not be blocked even if they contain blocked numbers</text>
+ <text id="IDS_MSG_SELECT_WORDS">Select words (%d)</text>
+ <text id="IDS_MSGF_BODY_ROAMINGRECEPTION_RESTRICTED">Restricţionat</text>
+ <text id="IDS_MSGF_POP_MESSAGES_RECEIVED_FROM_YOUR_CONTACTS_WILL_NOT_BE_BLOCKED_EVEN_IF_THEY_CONTAIN_BLOCKED_WORDS">Mesajele primite de la contactele dvs. nu vor fi blocate, chiar dacă acestea conţin cuvinte blocate</text>
+ <text id="IDS_MSGF_OPT_UNBLOCK">Deblocare</text>
+ <text id="IDS_MSGF_BODY_COPY_MESSAGE_TEXT_ABB">Copiere text mesaj</text>
+ <text id="IDS_MSGF_BODY_READ_REPORT">Citire raport</text>
+ <text id="IDS_COM_BODY_MESSAGES">Mesaje</text>
+ <text id="IDS_COM_SK_OPTIONS">Opţiuni</text>
+ <text id="IDS_COM_SK_DONE">Gata</text>
+ <text id="IDS_COM_POP_PM">PM</text>
+ <text id="IDS_COM_BODY_UNKNOWN">Necunoscut</text>
+ <text id="IDS_MSG_BODY_DRAFT_MESSAGES">Schiţe de mesaje</text>
+ <text id="IDS_COM_POP_SERVICE_UNAVAILABLE">Serviciu indisponibil</text>
+ <text id="IDS_MSGF_OPT_CREATEMSG_ADD_WORD">Adăugare cuvânt</text>
+ <text id="IDS_MSGF_POP_BLOCK_PS_Q">Se blochează %s?</text>
+ <text id="IDS_MSG_BODY_CHANGE_TEXT_SIZE_USING_THE_VOLUME_KEY">Schimbaţi mărimea textului utilizând tasta de volum</text>
+ <text id="IDS_COM_POP_NEW_MESSAGE">Mesaj nou</text>
+ <text id="IDS_MSGF_BODY_SPAM_MESSAGES">Mesaje spam</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_INCLUDE">Includere</text>
+ <text id="IDS_MSGF_BODY_NO_BLOCKED_NUMBERS">No blocked numbers</text>
+ <text id="IDS_MSGF_BODY_BLOCKED_NUMBERS">Numere blocate</text>
+ <text id="IDS_MSGF_BODY_SETTINGS_MULTIMEDIAMESSAGE">Mesaje multimedia</text>
+ <text id="IDS_MSGF_BODY_EDIT_WORD">Editare cuvânt</text>
+ <text id="IDS_MSGF_BODY_EXPIRED">Expirat</text>
+ <text id="IDS_MSGF_BODY_MMSCCCREATIONMODEWARNING">Avertisment</text>
+ <text id="IDS_COM_SK_EDIT">Editare</text>
+ <text id="IDS_COM_POP_FAILED">Nereuşit</text>
+ <text id="IDS_MSGF_HEADER_DELETE_NUMBER">Ştergere număr</text>
+ <text id="IDS_MSGC_BODY_RECORD_AUDIO">Înregistrare audio</text>
+ <text id="IDS_COM_SK_BACK">Înapoi</text>
+ <text id="IDS_MSGF_BODY_UNICODE">Unicode</text>
+ <text id="IDS_MSGF_HEADER_DELETE_WORDS">Ştergere cuvinte</text>
+ <text id="IDS_COM_BODY_FORWARD">Transfer</text>
+ <text id="IDS_MSGF_POP_NOMESSAGES">Nici un mesaj</text>
+ <text id="IDS_MSGF_OPT_ROAM_NETWORK">Reţea în roaming</text>
+ <text id="IDS_MSGF_BODY_FROM">De la</text>
+ <text id="IDS_COM_SK_DELETE">Ştergere</text>
+ <text id="IDS_MSGF_SK3_UNREAD">Necitit</text>
+ <text id="IDS_MSGC_BODY_DUPLICATED_RECIPIENT">Destinatar dublat</text>
+ <text id="IDS_MSGF_BODY_GSM_ALPHABET">Alfabet GSM</text>
+ <text id="IDS_MSGF_BODY_SIM_CARD_MESSAGES">Mesaje de pe cartela SIM</text>
+ <text id="IDS_MSGF_BODY_MMSNOTIMSGSTATUSSENT">Trimis</text>
+ <text id="IDS_COM_BODY_CONTACTS">Contacte</text>
+ <text id="IDS_MSGF_OPT_STATUS">Stare</text>
+ <text id="IDS_MSGF_BODY_MMSCCCREATIONMODEFREE">Liber</text>
+ <text id="IDS_COM_BODY_DETAILS_TYPE">Tip</text>
+ <text id="IDS_MSGF_BODY_AUTODOWNLOAD">Descărcare automată</text>
+ <text id="IDS_MSGF_SK_RESEND">Retrimitere</text>
+ <text id="IDS_COM_SK_CANCEL">Anulare</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONS">Opţiuni primire</text>
+ <text id="IDS_COM_BODY_GALLERY">Galerie</text>
+ <text id="IDS_MSGC_BUTTON2_DURATION_N_HPD_SECS">Durată\n(%d secunde)</text>
+ <text id="IDS_COM_BODY_SEARCH">Căutare</text>
+ <text id="IDS_MSGF_HEADER_MESSAGE_BOXES">Casete de mesaje</text>
+ <text id="IDS_MSGF_HEADER_ADD_NUMBER">Adăugare număr</text>
+ <text id="IDS_COM_BODY_MEMO">Notă</text>
+ <text id="IDS_MSGF_BODY_COPY_TO_SIM">Copiere pe SIM</text>
+ <text id="IDS_MSGF_BODY_ENTER_NUMBER">Introduceţi numărul</text>
+ <text id="IDS_COM_OPT_ADD_CONTACT">Adăugare contact</text>
+ <text id="IDS_MSGF_OPT_HOME_NETWORK">Reţea reşedinţă</text>
+ <text id="IDS_COM_POP_REJECTED">Respins</text>
+ <text id="IDS_COM_BODY_SETTINGS">Setări</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_START_WITH">Începe cu</text>
+ <text id="IDS_COM_BODY_DISPLAY">Afişare</text>
+ <text id="IDS_MSGF_OPT_PROTECTION_ON">Protecţie activată</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONNETWORK_MANUAL">Manual</text>
+ <text id="IDS_SLCD_POP_TEXT_SIM_CARD_ERROR">Eroare cartela SIM</text>
+ <text id="IDS_COM_POP_DELETED">Şters</text>
+ <text id="IDS_COM_SK_SEND_ABB">Trim.</text>
+ <text id="IDS_MSGF_POP_FORWARDED">Redirecţionat</text>
+ <text id="IDS_MSG_SELECT_NUMBERS">Select numbers (%d)</text>
+ <text id="IDS_MSGF_BODY_CENTRE_PD">Centru %d</text>
+ <text id="IDS_MSGF_HEADER_EDIT_NUMBER">Editare număr</text>
+ <text id="IDS_MSGF_BODY_AUTOMATIC">Automat</text>
+ <text id="IDS_MSGF_BODY_VIEW_MESSAGE_DETAILS_ABB">Afiş. detalii mesaj</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONNETWORK_REJECT">Respingere</text>
+ <text id="IDS_COM_BODY_VOICE_CALL">Apel</text>
+ <text id="IDS_MSG_MBODY_USE_THE_VOLUME_KEY">Utilizaţi tasta volum</text>
+ <text id="IDS_COM_SK_SAVE">Salvare</text>
+ <text id="IDS_MSGF_BODY_INVALID_SERVICE_CENTRE_ADDRESS">Invalid service centre address</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_EXACTLY_THE_SAME_AS">Exact la fel ca</text>
+ <text id="IDS_COM_BODY_NO_SEARCH_RESULTS">Nu există rezultate ale căutării</text>
+ <text id="IDS_MSGF_BODY_MMS">MMS</text>
+ <text id="IDS_MSGF_BODY_MMSCREATIONMODE">Mod creare</text>
+ <text id="IDS_MSGF_BODY_TEXT_MESSAGES">Mesaje text</text>
+ <text id="IDS_MSGF_BODY_RECEIVED">Primit</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_MATCH_CRITERIA">Criteriu de potrivire</text>
+ <text id="IDS_MSGF_POP_DEFERRED">Amânat</text>
+ <text id="IDS_COM_SK_ADD">Adaugă</text>
+ <text id="IDS_MSGF_OPT_BLOCK">Blocare</text>
+ <text id="IDS_COM_SK_YES">Da</text>
+ <text id="IDS_MSGC_OPT_VIEW_CONTACT">Vizualizare contacte</text>
+ <text id="IDS_COM_SK_SEARCH">Căutare</text>
+ <text id="IDS_COM_POP_AM_M_ABB">AM</text>
+ <text id="IDS_MSGF_BODY_BLOCKED_WORDS">Cuvinte blocate</text>
+ <text id="IDS_COM_BODY_SUBJECT">Subiect</text>
+ <text id="IDS_MSGF_POP_UNRECOGNISED">Nerecunoscut</text>
+ <text id="IDS_MSGF_BODY_SEND_READ_REPORT">Trimitere raport citire</text>
+ <text id="IDS_MSGF_SK_RESTORE">Restab.</text>
+ <text id="IDS_MSGF_BODY_REQUEST_READ_REPORT">Solicitare raport citire</text>
+ <text id="IDS_MSGF_BODY_ENTER_WORD">Introducere cuvânt</text>
+ <text id="IDS_COM_SK3_COMPOSE">Compun.</text>
+ <text id="IDS_COM_POP_UNKNOWN_ERROR_OCCURRED">A avut loc o eroare necunoscută</text>
+ <text id="IDS_MSGF_BODY_REQUEST_DELIVERY_REPORT">Solicitare raport de livrare</text>
+ <text id="IDS_MSGF_BODY_INVALID_RECIPIENTS">Destinatari nevalizi</text>
+ <text id="IDS_MSGF_BODY_BROADCASTMESSAGES">Mesaje informare</text>
+ <text id="IDS_MSGF_OPT_SAVE_ATTACHMENT">Salvare ataşare</text>
+ <text id="IDS_MSGF_BODY_DELIVERY_REPORT">Raport livrare</text>
+ <text id="IDS_MSGC_POP_DISCARD_CURRENT_MESSAGE_Q">Renunţaţi la mesajul curent?</text>
+ <text id="IDS_COM_POP_ATTACH">Ataşare</text>
+ <text id="IDS_COM_BODY_CALENDAR">Calendar</text>
+ <text id="IDS_COM_SK_OK">OK</text>
+ <text id="IDS_COM_SK_CALL">Apelare</text>
+ <text id="IDS_MSGC_BODY_CAPTURE_VIDEO">Captură video</text>
+ <text id="IDS_MSG_HEADER_SELECT_RECIPIENT">Selectare destinatar</text>
+</string_table>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201301241731" Dversion="20120315">
+ <text id="IDS_MSGF_HEADER_MESSAGE_DETAILS">Сведения о сообщении</text>
+ <text id="IDS_COM_SK3_PREVIEW">Просмотр</text>
+ <text id="IDS_COM_BODY_PD_SELECTED">Выбрано: %d</text>
+ <text id="IDS_MSG_BODY_DURATION_MUST_BE_LONGER_THAN_PD_SECONDS">Длительность должна быть более %d сек.</text>
+ <text id="IDS_DB_POP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED_DELETE_SOME_CHARACTERS">Превышено максимальное число символов. Удалите несколько символов</text>
+ <text id="IDS_MSGF_BODY_NO_BLOCKED_WORDS">No blocked words</text>
+ <text id="IDS_COM_BODY_SELECT_ALL">Выбрать все</text>
+ <text id="IDS_MSGF_BODY_NO_SUBJECT">Нет темы</text>
+ <text id="IDS_COM_POP_CLOSE">Закрыть</text>
+ <text id="IDS_COM_BODY_TO">Кому</text>
+ <text id="IDS_MSGC_BODY_TAKE_PICTURE">Сделать фото</text>
+ <text id="IDS_COM_POP_DELETE_Q">Удалить?</text>
+ <text id="IDS_MSGC_HEADER_INPUTMODE">Режим ввода</text>
+ <text id="IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED">Достигнуто максимальное число получателей (%d)</text>
+ <text id="IDS_COM_SK_NO">Нет</text>
+ <text id="IDS_COM_BODY_MY_FILES">Мои файлы</text>
+ <text id="IDS_MSGF_BODY_COPY_TO_PHONE">Копировать на телефон</text>
+ <text id="IDS_MSGF_BODY_CB_MESSAGES">Широковещательные сообщ.</text>
+ <text id="IDS_MSGF_BODY_SERVICECENTRE">SMS-центр</text>
+ <text id="IDS_COM_BODY_SMS">SMS</text>
+ <text id="IDS_MSGF_POP_SENDING_FAILED_MESSAGE">Отправка сбойного сообщения</text>
+ <text id="IDS_COM_POP_SUCCESS">Успешно</text>
+ <text id="IDS_MSGF_POP_MESSAGES_RECEIVED_FROM_YOUR_CONTACTS_WILL_NOT_BE_BLOCKED_EVEN_IF_THEY_CONTAIN_BLOCKED_NUMBERS">Messages received from your contacts will not be blocked even if they contain blocked numbers</text>
+ <text id="IDS_MSG_SELECT_WORDS">Select words (%d)</text>
+ <text id="IDS_MSGF_BODY_ROAMINGRECEPTION_RESTRICTED">Ограниченный</text>
+ <text id="IDS_MSGF_POP_MESSAGES_RECEIVED_FROM_YOUR_CONTACTS_WILL_NOT_BE_BLOCKED_EVEN_IF_THEY_CONTAIN_BLOCKED_WORDS">Сообщения, полученные от ваших контактов, не будут блокироваться, даже если в них содержатся заблокированные слова</text>
+ <text id="IDS_MSGF_OPT_UNBLOCK">Разблокировать</text>
+ <text id="IDS_MSGF_BODY_COPY_MESSAGE_TEXT_ABB">Копировать текст</text>
+ <text id="IDS_MSGF_BODY_READ_REPORT">Отчет о прочтении</text>
+ <text id="IDS_COM_BODY_MESSAGES">Сообщения</text>
+ <text id="IDS_COM_SK_OPTIONS">Опции</text>
+ <text id="IDS_COM_SK_DONE">Готово</text>
+ <text id="IDS_COM_POP_PM">РМ</text>
+ <text id="IDS_COM_BODY_UNKNOWN">Неизвестно</text>
+ <text id="IDS_MSG_BODY_DRAFT_MESSAGES">Черновики</text>
+ <text id="IDS_COM_POP_SERVICE_UNAVAILABLE">Услуга недоступна</text>
+ <text id="IDS_MSGF_OPT_CREATEMSG_ADD_WORD">Добавить слово</text>
+ <text id="IDS_MSGF_POP_BLOCK_PS_Q">Блокировать %s?</text>
+ <text id="IDS_MSG_BODY_CHANGE_TEXT_SIZE_USING_THE_VOLUME_KEY">Изменение размера текста с помощью клавиши громкости</text>
+ <text id="IDS_COM_POP_NEW_MESSAGE">Новое сообщение</text>
+ <text id="IDS_MSGF_BODY_SPAM_MESSAGES">Спам</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_INCLUDE">Содержит</text>
+ <text id="IDS_MSGF_BODY_NO_BLOCKED_NUMBERS">No blocked numbers</text>
+ <text id="IDS_MSGF_BODY_BLOCKED_NUMBERS">Заблокированные номера</text>
+ <text id="IDS_MSGF_BODY_SETTINGS_MULTIMEDIAMESSAGE">MMS</text>
+ <text id="IDS_MSGF_BODY_EDIT_WORD">Изменить слово</text>
+ <text id="IDS_MSGF_BODY_EXPIRED">Срок действия закончен</text>
+ <text id="IDS_MSGF_BODY_MMSCCCREATIONMODEWARNING">Предупреждающий</text>
+ <text id="IDS_COM_SK_EDIT">Изменить</text>
+ <text id="IDS_COM_POP_FAILED">Сбой</text>
+ <text id="IDS_MSGF_HEADER_DELETE_NUMBER">Удалить номер</text>
+ <text id="IDS_MSGC_BODY_RECORD_AUDIO">Запись звука</text>
+ <text id="IDS_COM_SK_BACK">Назад</text>
+ <text id="IDS_MSGF_BODY_UNICODE">Юникод</text>
+ <text id="IDS_MSGF_HEADER_DELETE_WORDS">Удалить слова</text>
+ <text id="IDS_COM_BODY_FORWARD">Переслать</text>
+ <text id="IDS_MSGF_POP_NOMESSAGES">Нет сообщений</text>
+ <text id="IDS_MSGF_OPT_ROAM_NETWORK">Роуминг</text>
+ <text id="IDS_MSGF_BODY_FROM">От</text>
+ <text id="IDS_COM_SK_DELETE">Удалить</text>
+ <text id="IDS_MSGF_SK3_UNREAD">Непрочитанные</text>
+ <text id="IDS_MSGC_BODY_DUPLICATED_RECIPIENT">Повторяющийся получатель</text>
+ <text id="IDS_MSGF_BODY_GSM_ALPHABET">GSM-алфавит</text>
+ <text id="IDS_MSGF_BODY_SIM_CARD_MESSAGES">Сообщения на SIM-карте</text>
+ <text id="IDS_MSGF_BODY_MMSNOTIMSGSTATUSSENT">Отправлено</text>
+ <text id="IDS_COM_BODY_CONTACTS">Контакты</text>
+ <text id="IDS_MSGF_OPT_STATUS">Состояние</text>
+ <text id="IDS_MSGF_BODY_MMSCCCREATIONMODEFREE">Свободно</text>
+ <text id="IDS_COM_BODY_DETAILS_TYPE">Тип</text>
+ <text id="IDS_MSGF_BODY_AUTODOWNLOAD">Автозагрузка</text>
+ <text id="IDS_MSGF_SK_RESEND">Отправить повторно</text>
+ <text id="IDS_COM_SK_CANCEL">Отмена</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONS">Параметры приема</text>
+ <text id="IDS_COM_BODY_GALLERY">Галерея</text>
+ <text id="IDS_MSGC_BUTTON2_DURATION_N_HPD_SECS">Продолжительн.\n(%d с.)</text>
+ <text id="IDS_COM_BODY_SEARCH">Поиск</text>
+ <text id="IDS_MSGF_HEADER_MESSAGE_BOXES">Папки сообщений</text>
+ <text id="IDS_MSGF_HEADER_ADD_NUMBER">Добавить номер</text>
+ <text id="IDS_COM_BODY_MEMO">Заметки</text>
+ <text id="IDS_MSGF_BODY_COPY_TO_SIM">Копировать на SIM-карту</text>
+ <text id="IDS_MSGF_BODY_ENTER_NUMBER">Введите номер</text>
+ <text id="IDS_COM_OPT_ADD_CONTACT">Создать контакт</text>
+ <text id="IDS_MSGF_OPT_HOME_NETWORK">Домашняя сеть</text>
+ <text id="IDS_COM_POP_REJECTED">Отклонено</text>
+ <text id="IDS_COM_BODY_SETTINGS">Настройки</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_START_WITH">Начинается с</text>
+ <text id="IDS_COM_BODY_DISPLAY">Дисплей</text>
+ <text id="IDS_MSGF_OPT_PROTECTION_ON">Включить защиту</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONNETWORK_MANUAL">Вручную</text>
+ <text id="IDS_SLCD_POP_TEXT_SIM_CARD_ERROR">Сбой SIM-карты</text>
+ <text id="IDS_COM_POP_DELETED">Удалено</text>
+ <text id="IDS_COM_SK_SEND_ABB">Отпр.</text>
+ <text id="IDS_MSGF_POP_FORWARDED">Переадресовано</text>
+ <text id="IDS_MSG_SELECT_NUMBERS">Select numbers (%d)</text>
+ <text id="IDS_MSGF_BODY_CENTRE_PD">Центр %d</text>
+ <text id="IDS_MSGF_HEADER_EDIT_NUMBER">Изменить номер</text>
+ <text id="IDS_MSGF_BODY_AUTOMATIC">Автоматически</text>
+ <text id="IDS_MSGF_BODY_VIEW_MESSAGE_DETAILS_ABB">Просмотреть сведения</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONNETWORK_REJECT">Отказ</text>
+ <text id="IDS_COM_BODY_VOICE_CALL">Голосовой вызов</text>
+ <text id="IDS_MSG_MBODY_USE_THE_VOLUME_KEY">Испол. клавишу громкости</text>
+ <text id="IDS_COM_SK_SAVE">Соxранить</text>
+ <text id="IDS_MSGF_BODY_INVALID_SERVICE_CENTRE_ADDRESS">Invalid service centre address</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_EXACTLY_THE_SAME_AS">Точное совпадение</text>
+ <text id="IDS_COM_BODY_NO_SEARCH_RESULTS">Нет результатов поиска</text>
+ <text id="IDS_MSGF_BODY_MMS">MMS</text>
+ <text id="IDS_MSGF_BODY_MMSCREATIONMODE">Режим создания</text>
+ <text id="IDS_MSGF_BODY_TEXT_MESSAGES">SMS</text>
+ <text id="IDS_MSGF_BODY_RECEIVED">Получено</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_MATCH_CRITERIA">Условие совпадения</text>
+ <text id="IDS_MSGF_POP_DEFERRED">Отложено</text>
+ <text id="IDS_COM_SK_ADD">Добавить</text>
+ <text id="IDS_MSGF_OPT_BLOCK">Блокировать</text>
+ <text id="IDS_COM_SK_YES">Да</text>
+ <text id="IDS_MSGC_OPT_VIEW_CONTACT">Просмотреть</text>
+ <text id="IDS_COM_SK_SEARCH">Поиск</text>
+ <text id="IDS_COM_POP_AM_M_ABB">AM</text>
+ <text id="IDS_MSGF_BODY_BLOCKED_WORDS">Заблокированные слова</text>
+ <text id="IDS_COM_BODY_SUBJECT">Тема</text>
+ <text id="IDS_MSGF_POP_UNRECOGNISED">Нераспознано</text>
+ <text id="IDS_MSGF_BODY_SEND_READ_REPORT">Отправлять отчет о прочтении</text>
+ <text id="IDS_MSGF_SK_RESTORE">Восстан.</text>
+ <text id="IDS_MSGF_BODY_REQUEST_READ_REPORT">Отчет о прочтении</text>
+ <text id="IDS_MSGF_BODY_ENTER_WORD">Введите слово</text>
+ <text id="IDS_COM_SK3_COMPOSE">Создать</text>
+ <text id="IDS_COM_POP_UNKNOWN_ERROR_OCCURRED">Возникла неизвестная ошибка</text>
+ <text id="IDS_MSGF_BODY_REQUEST_DELIVERY_REPORT">Запросить отчет о доставке</text>
+ <text id="IDS_MSGF_BODY_INVALID_RECIPIENTS">Недопустимые получатели</text>
+ <text id="IDS_MSGF_BODY_BROADCASTMESSAGES">Сообщения сети</text>
+ <text id="IDS_MSGF_OPT_SAVE_ATTACHMENT">Сохранить вложение</text>
+ <text id="IDS_MSGF_BODY_DELIVERY_REPORT">Отчет о доставке</text>
+ <text id="IDS_MSGC_POP_DISCARD_CURRENT_MESSAGE_Q">Отметить текущее сообщение?</text>
+ <text id="IDS_COM_POP_ATTACH">Вложить</text>
+ <text id="IDS_COM_BODY_CALENDAR">Календарь</text>
+ <text id="IDS_COM_SK_OK">Да</text>
+ <text id="IDS_COM_SK_CALL">Вызов</text>
+ <text id="IDS_MSGC_BODY_CAPTURE_VIDEO">Записать видео</text>
+ <text id="IDS_MSG_HEADER_SELECT_RECIPIENT">Выберите получателя</text>
+</string_table>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>\r
+<!--\r
+ This XML file was automatically generated by UiBuilder - do not modify by hand.\r
+-->\r
+<!DOCTYPE ScenePopup SYSTEM "UIForm.dtd">\r
+<ScenePopup Bversion="3.0.0.201212201745" Dversion="20120315">\r
+ <Popup id="IDL_ATTACHMENTS_POPUP">\r
+ <property color="" titleText="Attachments" titleTextColor=""/>\r
+ <layout height="311" mode="Portrait" style="" type="LAYOUT_RELATIVE" width="720"/>\r
+ <layout height="311" mode="Landscape" style="" type="LAYOUT_RELATIVE" width="720"/>\r
+ </Popup>\r
+ <ListView id="IDC_ATTACH_LISTVIEW" parent="IDL_ATTACHMENTS_POPUP">\r
+ <property backgroundBitmapPath="" backgroundColor="" backgroundColorOpacity="0" bitmapPathOfEmptyList="" colorOfEmptyListText="" fastScroll="false" itemDivider="true" itemDividerColor="" sweepEnabled="false" textOfEmptyList=""/>\r
+ <layout bottomRelation="" bottomRelationType="" centerHorizontal="false" centerVertical="false" height="112" horizontalFitPolicy="FIT_POLICY_PARENT" leftRelation="" leftRelationType="" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Portrait" rightRelation="" rightRelationType="" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="648" x="0" y="0"/>\r
+ <layout bottomRelation="" bottomRelationType="" centerHorizontal="false" centerVertical="false" height="112" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Landscape" rightRelation="" rightRelationType="" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="648" x="0" y="0"/>\r
+ </ListView>\r
+ <Button id="IDC_BUTTON_SAVE" parent="IDL_ATTACHMENTS_POPUP">\r
+ <property disableTextColor="" disabledBitmapPath="" disabledColor="" disabledColorOpacity="100" highlightedBGBitmapPath="" highlightedColor="" highlightedColorOpacity="100" highlightedTextColor="" horizontalAlign="ALIGN_CENTER" normalBGBitmapPath="00_button_popup_normal.9.png" normalBitmapPath="" normalColor="" normalColorOpacity="100" normalTextColor="" pressedBGBitmapPath="00_button_popup_press.9.png" pressedBitmapPath="" pressedColor="" pressedColorOpacity="100" pressedTextColor="" text="::IDS_COM_SK_SAVE" textSize="33" verticalAlign="ALIGN_MIDDLE"/>\r
+ <layout bottomRelation="" bottomRelationType="" centerHorizontal="false" centerVertical="false" height="74" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Portrait" rightRelation="" rightRelationType="" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="310" x="0" y="132"/>\r
+ <layout bottomRelation="" bottomRelationType="" centerHorizontal="false" centerVertical="false" height="74" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Landscape" rightRelation="" rightRelationType="" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="310" x="0" y="131"/>\r
+ </Button>\r
+ <Button id="IDC_BUTTON_CANCEL" parent="IDL_ATTACHMENTS_POPUP">\r
+ <property disableTextColor="" disabledBitmapPath="00_button_popup_dim.9.png" disabledColor="" disabledColorOpacity="100" highlightedBGBitmapPath="00_button_popup_normal.9.png" highlightedColor="" highlightedColorOpacity="100" highlightedTextColor="" horizontalAlign="ALIGN_CENTER" normalBGBitmapPath="00_button_popup_normal.9.png" normalBitmapPath="" normalColor="" normalColorOpacity="100" normalTextColor="" pressedBGBitmapPath="00_button_popup_press.9.png" pressedBitmapPath="" pressedColor="" pressedColorOpacity="100" pressedTextColor="" text="::IDS_COM_SK_CANCEL" textSize="33" verticalAlign="ALIGN_MIDDLE"/>\r
+ <layout bottomRelation="" bottomRelationType="" centerHorizontal="false" centerVertical="false" height="74" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Portrait" rightRelation="" rightRelationType="" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="309" x="337" y="132"/>\r
+ <layout bottomRelation="" bottomRelationType="" centerHorizontal="false" centerVertical="false" height="74" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Landscape" rightRelation="" rightRelationType="" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="309" x="337" y="131"/>\r
+ </Button>\r
+</ScenePopup>\r
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>\r
+<!--\r
+ This XML file was automatically generated by UiBuilder - do not modify by hand.\r
+-->\r
+<!DOCTYPE ScenePopup SYSTEM "UIForm.dtd">\r
+<ScenePopup Bversion="3.0.0.201212201745" Dversion="20120315">\r
+ <Popup id="IDL_ATTACH_LIST_POPUP">\r
+ <property color="" titleText="::IDS_COM_POP_ATTACH" titleTextColor=""/>\r
+ <layout height="309" mode="Portrait" style="" type="LAYOUT_RELATIVE" width="720"/>\r
+ <layout height="309" mode="Landscape" style="" type="LAYOUT_RELATIVE" width="720"/>\r
+ </Popup>\r
+ <ListView id="IDC_ATTACH_LISTVIEW" parent="IDL_ATTACH_LIST_POPUP">\r
+ <property backgroundBitmapPath="" backgroundColor="" backgroundColorOpacity="0" bitmapPathOfEmptyList="" colorOfEmptyListText="" fastScroll="false" itemDivider="true" itemDividerColor="" sweepEnabled="false" textOfEmptyList=""/>\r
+ <layout bottomRelation="" bottomRelationType="" centerHorizontal="false" centerVertical="false" height="112" horizontalFitPolicy="FIT_POLICY_PARENT" leftRelation="" leftRelationType="" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Portrait" rightRelation="" rightRelationType="" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="576" x="0" y="0"/>\r
+ <layout bottomRelation="" bottomRelationType="" centerHorizontal="false" centerVertical="false" height="112" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Landscape" rightRelation="" rightRelationType="" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="646" x="0" y="0"/>\r
+ </ListView>\r
+ <Button id="IDC_BUTTON_CLOSE" parent="IDL_ATTACH_LIST_POPUP">\r
+ <property disableTextColor="" disabledBitmapPath="00_button_popup_dim.9.png" disabledColor="" disabledColorOpacity="100" highlightedBGBitmapPath="" highlightedColor="" highlightedColorOpacity="100" highlightedTextColor="" horizontalAlign="ALIGN_CENTER" normalBGBitmapPath="00_button_popup_normal.9.png" normalBitmapPath="" normalColor="" normalColorOpacity="100" normalTextColor="" pressedBGBitmapPath="00_button_popup_press.9.png" pressedBitmapPath="" pressedColor="" pressedColorOpacity="100" pressedTextColor="" text="::IDS_COM_POP_CLOSE" textSize="33" verticalAlign="ALIGN_MIDDLE"/>\r
+ <layout bottomRelation="" bottomRelationType="" centerHorizontal="true" centerVertical="false" height="72" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Portrait" rightRelation="" rightRelationType="" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="300" x="174" y="129"/>\r
+ <layout bottomRelation="" bottomRelationType="" centerHorizontal="false" centerVertical="false" height="72" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Landscape" rightRelation="" rightRelationType="" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="300" x="174" y="129"/>\r
+ </Button>\r
+</ScenePopup>\r
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<!DOCTYPE ScenePopup SYSTEM "UIForm.dtd">
+<ScenePopup Bversion="3.0.0.201301251814" Dversion="20120315">
+ <Popup id="IDL_BLOCK_MESSAGE_INFO_POPUP">
+ <property color="" titleText="" titleTextColor=""/>
+ <layout height="280" mode="Portrait" style="" type="LAYOUT_RELATIVE" width="720"/>
+ <layout height="280" mode="Landscape" style="" type="LAYOUT_RELATIVE" width="720"/>
+ </Popup>
+ <TextBox id="IDC_BLOCK_INFO_TEXTBOX" parent="IDL_BLOCK_MESSAGE_INFO_POPUP">
+ <property disabledBackgroundBitmapPath="" disabledColor="" disabledColorOpacity="100" disabledTextColor="" highlightedBackgroundBitmapPath="" highlightedColor="" highlightedColorOpacity="100" highlightedTextColor="" lineSpacingExtra="1" lineSpacingMultiplier="1" normalBackgroundBitmapPath="" normalColor="" normalColorOpacity="100" normalTextColor="" text="::IDS_MSGF_POP_MESSAGES_RECEIVED_FROM_YOUR_CONTACTS_WILL_NOT_BE_BLOCKED_EVEN_IF_THEY_CONTAIN_BLOCKED_WORDS" textAlignment="ALIGNMENT_LEFT" textSize="40" textboxBorder="TEXT_BOX_BORDER_NONE"/>
+ <layout bottomRelation="" bottomRelationType="RECT_EDGE_RELATION_BOTTOM_TO_TOP" centerHorizontal="false" centerVertical="false" height="164" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="IDL_BLOCK_MESSAGE_INFO_POPUP" leftRelationType="RECT_EDGE_RELATION_LEFT_TO_LEFT" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Portrait" rightRelation="IDL_BLOCK_MESSAGE_INFO_POPUP" rightRelationType="RECT_EDGE_RELATION_RIGHT_TO_RIGHT" topRelation="IDL_BLOCK_MESSAGE_INFO_POPUP" topRelationType="RECT_EDGE_RELATION_TOP_TO_TOP" verticalFitPolicy="FIT_POLICY_FIXED" width="680" x="0" y="0"/>
+ <layout bottomRelation="" bottomRelationType="" centerHorizontal="false" centerVertical="false" height="162" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Landscape" rightRelation="" rightRelationType="" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="680" x="0" y="1"/>
+ </TextBox>
+ <Button id="IDC_BUTTON_YES" parent="IDL_BLOCK_MESSAGE_INFO_POPUP">
+ <property DisabledBitmapX="0" DisabledBitmapY="0" NormalBitmapX="0" NormalBitmapY="0" PressedBitmapX="0" PressedBitmapY="0" disableTextColor="" disabledBitmapPath="" disabledColor="" disabledColorOpacity="100" highlightedBGBitmapPath="" highlightedColor="" highlightedColorOpacity="100" highlightedTextColor="" horizontalAlign="ALIGN_CENTER" normalBGBitmapPath="00_button_popup_normal.9.png" normalBitmapPath="" normalColor="" normalColorOpacity="100" normalTextColor="" pressedBGBitmapPath="00_button_popup_press.9.png" pressedBitmapPath="" pressedColor="" pressedColorOpacity="100" pressedTextColor="" text="::IDS_COM_SK_YES" textSize="36" verticalAlign="ALIGN_MIDDLE"/>
+ <layout bottomRelation="IDL_BLOCK_MESSAGE_INFO_POPUP" bottomRelationType="RECT_EDGE_RELATION_BOTTOM_TO_BOTTOM" centerHorizontal="false" centerVertical="false" height="74" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="5" marginLeft="0" marginRight="0" marginTop="5" mode="Portrait" rightRelation="" rightRelationType="" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="314" x="0" y="201"/>
+ <layout bottomRelation="" bottomRelationType="" centerHorizontal="false" centerVertical="false" height="74" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Landscape" rightRelation="" rightRelationType="" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="314" x="0" y="203"/>
+ </Button>
+ <Button id="IDC_BUTTON_NO" parent="IDL_BLOCK_MESSAGE_INFO_POPUP">
+ <property DisabledBitmapX="0" DisabledBitmapY="0" NormalBitmapX="0" NormalBitmapY="0" PressedBitmapX="0" PressedBitmapY="0" disableTextColor="" disabledBitmapPath="" disabledColor="" disabledColorOpacity="100" highlightedBGBitmapPath="" highlightedColor="" highlightedColorOpacity="100" highlightedTextColor="" horizontalAlign="ALIGN_CENTER" normalBGBitmapPath="00_button_popup_normal.9.png" normalBitmapPath="" normalColor="" normalColorOpacity="100" normalTextColor="" pressedBGBitmapPath="00_button_popup_press.9.png" pressedBitmapPath="" pressedColor="" pressedColorOpacity="100" pressedTextColor="" text="::IDS_COM_SK_NO" textSize="36" verticalAlign="ALIGN_MIDDLE"/>
+ <layout bottomRelation="IDL_BLOCK_MESSAGE_INFO_POPUP" bottomRelationType="RECT_EDGE_RELATION_BOTTOM_TO_BOTTOM" centerHorizontal="false" centerVertical="false" height="74" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="5" marginLeft="0" marginRight="0" marginTop="0" mode="Portrait" rightRelation="" rightRelationType="" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="314" x="366" y="201"/>
+ <layout bottomRelation="" bottomRelationType="" centerHorizontal="false" centerVertical="false" height="74" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Landscape" rightRelation="" rightRelationType="" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="314" x="366" y="203"/>
+ </Button>
+</ScenePopup>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>\r
+<!--\r
+ This XML file was automatically generated by UiBuilder - do not modify by hand.\r
+-->\r
+<!DOCTYPE ScenePopup SYSTEM "UIForm.dtd">\r
+<ScenePopup Bversion="3.0.0.201212201745" Dversion="20120315">\r
+ <Popup id="IDL_BLOCK_POPUP">\r
+ <property color="" titleText="" titleTextColor=""/>\r
+ <layout height="214" mode="Portrait" style="" type="NONE" width="720"/>\r
+ <layout height="214" mode="Landscape" style="" type="NONE" width="720"/>\r
+ </Popup>\r
+ <Button id="IDC_BUTTON_OK" parent="IDL_BLOCK_POPUP">\r
+ <property disableTextColor="" disabledBitmapPath="00_button_popup_dim.9.png" disabledColor="" disabledColorOpacity="100" highlightedBGBitmapPath="" highlightedColor="" highlightedColorOpacity="100" highlightedTextColor="" horizontalAlign="ALIGN_CENTER" normalBGBitmapPath="00_button_popup_normal.9.png" normalBitmapPath="" normalColor="" normalColorOpacity="100" normalTextColor="" pressedBGBitmapPath="00_button_popup_press.9.png" pressedBitmapPath="" pressedColor="" pressedColorOpacity="100" pressedTextColor="" text="::IDS_COM_SK_OK" textSize="33" verticalAlign="ALIGN_MIDDLE"/>\r
+ <layout height="72" mode="Portrait" width="288" x="0" y="114"/>\r
+ <layout height="72" mode="Landscape" width="288" x="0" y="114"/>\r
+ </Button>\r
+ <Button id="IDC_BUTTON_CANCEL" parent="IDL_BLOCK_POPUP">\r
+ <property disableTextColor="" disabledBitmapPath="00_button_popup_dim.9.png" disabledColor="" disabledColorOpacity="100" highlightedBGBitmapPath="" highlightedColor="" highlightedColorOpacity="100" highlightedTextColor="" horizontalAlign="ALIGN_CENTER" normalBGBitmapPath="00_button_popup_normal.9.png" normalBitmapPath="" normalColor="" normalColorOpacity="100" normalTextColor="" pressedBGBitmapPath="00_button_popup_press.9.png" pressedBitmapPath="" pressedColor="" pressedColorOpacity="100" pressedTextColor="" text="::IDS_COM_SK_CANCEL" textSize="33" verticalAlign="ALIGN_MIDDLE"/>\r
+ <layout height="72" mode="Portrait" width="288" x="360" y="114"/>\r
+ <layout height="72" mode="Landscape" width="288" x="360" y="114"/>\r
+ </Button>\r
+ <Label id="IDC_BLOCKNUMBER_LABEL" parent="IDL_BLOCK_POPUP">\r
+ <property backgroundBitmapPath="" backgroundColor="" backgroundColorOpacity="0" horizontalAlign="ALIGN_CENTER" text="" textColor="" textSize="36" textStyle="LABEL_TEXT_STYLE_NORMAL" verticalAlign="ALIGN_MIDDLE"/>\r
+ <layout height="62" mode="Portrait" width="648" x="0" y="18"/>\r
+ <layout height="62" mode="Landscape" width="648" x="0" y="18"/>\r
+ </Label>\r
+</ScenePopup>\r
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>\r
+<!--\r
+ This XML file was automatically generated by UiBuilder - do not modify by hand.\r
+-->\r
+<!DOCTYPE Scene SYSTEM "UIForm.dtd">\r
+<Scene Bversion="3.0.0.201212201745" Dversion="20120315">\r
+ <LogicalCoordinate>720</LogicalCoordinate>\r
+ <Form id="IDL_COMPOSER_FORM">\r
+ <property backgroundColor="" backgroundColorOpacity="100" orientation="Portrait" softKey0NormalIcon="" softKey0PressedIcon="" softKey0Text="" softKey1NormalIcon="" softKey1PressedIcon="" softKey1Text="" title="" titleAlign="ALIGN_CENTER" titleIcon="" translucentFooter="false" translucentHeader="false" translucentIndicator="false"/>\r
+ <layout mode="Portrait" style="FORM_STYLE_INDICATOR|FORM_STYLE_HEADER" type="LAYOUT_RELATIVE"/>\r
+ <layout mode="Landscape" style="FORM_STYLE_INDICATOR|FORM_STYLE_HEADER" type="LAYOUT_RELATIVE"/>\r
+ </Form>\r
+ <Header>\r
+ <property backgroundBitmapPath="" color="" colorOpacity="100" descriptionText="" descriptionTextColor="" disabledButtonColor="" disabledButtonColorOpacity="100" disabledButtonTextColor="" disabledItemColor="" disabledItemColorOpacity="100" disabledItemTextColor="" headerStyle="HEADER_STYLE_TITLE" highlightedButtonColor="" highlightedButtonColorOpacity="100" highlightedButtonTextColor="" highlightedItemColor="" highlightedItemColorOpacity="100" highlightedItemTextColor="" normalButtonColor="" normalButtonColorOpacity="100" normalButtonTextColor="" normalItemColor="" normalItemColorOpacity="100" normalItemTextColor="" pressedButtonColor="" pressedButtonColorOpacity="100" pressedButtonTextColor="" pressedItemColor="" pressedItemColorOpacity="100" pressedItemTextColor="" selectedItemColor="" selectedItemColorOpacity="100" selectedItemTextColor="" titleIconPath="" titleText="" titleTextColor=""/>\r
+ <itemSet/>\r
+ </Header>\r
+</Scene>\r
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>\r
+<!--\r
+ This XML file was automatically generated by UiBuilder - do not modify by hand.\r
+-->\r
+<!DOCTYPE ScenePanel SYSTEM "UIForm.dtd">\r
+<ScenePanel Bversion="3.0.0.201209071526" Dversion="20120315">\r
+ <Panel id="IDL_COMPOSER_OPTION_TRAY_PANEL">\r
+ <property backgroundColor="" backgroundColorOpacity="0" compositeEnabled="true" groupStyle="GROUP_STYLE_NONE"/>\r
+ <layout height="104" mode="Portrait" type="LAYOUT_RELATIVE" width="720" x="0" y="0"/>\r
+ <layout height="300" mode="Landscape" type="LAYOUT_RELATIVE" width="93" x="0" y="0"/>\r
+ </Panel>\r
+ <Button id="IDC_BUTTON_PREVIEW" parent="IDL_COMPOSER_OPTION_TRAY_PANEL">\r
+ <property disableTextColor="" disabledBitmapPath="" disabledColor="" disabledColorOpacity="100" highlightedBGBitmapPath="" highlightedColor="" highlightedColorOpacity="100" highlightedTextColor="" horizontalAlign="ALIGN_CENTER" normalBGBitmapPath="00_button_popup_normal.9.png" normalBitmapPath="" normalColor="" normalColorOpacity="100" normalTextColor="" pressedBGBitmapPath="00_button_popup_press.9.png" pressedBitmapPath="" pressedColor="" pressedColorOpacity="100" pressedTextColor="" text="::IDS_COM_SK3_PREVIEW" textSize="33" verticalAlign="ALIGN_MIDDLE"/>\r
+ <layout bottomRelation="" bottomRelationType="" centerHorizontal="false" centerVertical="false" height="72" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Portrait" rightRelation="" rightRelationType="" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="218" x="61" y="14"/>\r
+ <layout bottomRelation="" bottomRelationType="" centerHorizontal="false" centerVertical="false" height="498" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Landscape" rightRelation="" rightRelationType="" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="72" x="21" y="0"/>\r
+ </Button>\r
+ <Button id="IDC_BUTTON_DURATION" parent="IDL_COMPOSER_OPTION_TRAY_PANEL">\r
+ <property disableTextColor="" disabledBitmapPath="" disabledColor="" disabledColorOpacity="100" highlightedBGBitmapPath="" highlightedColor="" highlightedColorOpacity="100" highlightedTextColor="" horizontalAlign="ALIGN_CENTER" normalBGBitmapPath="00_button_popup_normal.9.png" normalBitmapPath="" normalColor="" normalColorOpacity="100" normalTextColor="" pressedBGBitmapPath="00_button_popup_press.9.png" pressedBitmapPath="" pressedColor="" pressedColorOpacity="100" pressedTextColor="" text="::IDS_MSGC_BUTTON2_DURATION_N_HPD_SECS" textSize="25" verticalAlign="ALIGN_MIDDLE"/>\r
+ <layout bottomRelation="" bottomRelationType="" centerHorizontal="false" centerVertical="false" height="72" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Portrait" rightRelation="" rightRelationType="" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="218" x="381" y="13"/>\r
+ <layout bottomRelation="" bottomRelationType="" centerHorizontal="false" centerVertical="false" height="498" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Landscape" rightRelation="" rightRelationType="" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="72" x="21" y="0"/>\r
+ </Button>\r
+</ScenePanel>\r
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<!DOCTYPE Scene SYSTEM "UIForm.dtd">
+<Scene Bversion="3.0.0.201302021409" Dversion="20120315">
+ <LogicalCoordinate>720</LogicalCoordinate>
+ <Form id="IDL_CONVERSATION_LIST_EDIT_FORM">
+ <property backgroundColor="" backgroundColorOpacity="100" orientation="Portrait" softKey0NormalIcon="" softKey0PressedIcon="" softKey0Text="" softKey1NormalIcon="" softKey1PressedIcon="" softKey1Text="" title="" titleAlign="ALIGN_CENTER" titleIcon="" translucentFooter="false" translucentHeader="false" translucentIndicator="false"/>
+ <layout mode="Portrait" style="FORM_STYLE_INDICATOR|FORM_STYLE_HEADER|FORM_STYLE_FOOTER" type="LAYOUT_RELATIVE"/>
+ <layout mode="Landscape" style="FORM_STYLE_INDICATOR|FORM_STYLE_HEADER|FORM_STYLE_FOOTER" type="LAYOUT_RELATIVE"/>
+ </Form>
+ <Footer>
+ <property backgroundBitmapPath="" color="" colorOpacity="100" disabledButtonColor="" disabledButtonColorOpacity="100" disabledButtonTextColor="" disabledItemColor="" disabledItemColorOpacity="100" disabledItemTextColor="" footerStyle="FOOTER_STYLE_TAB" highlightedButtonColor="" highlightedButtonColorOpacity="100" highlightedButtonTextColor="" highlightedItemColor="" highlightedItemColorOpacity="100" highlightedItemTextColor="" normalButtonColor="" normalButtonColorOpacity="100" normalButtonTextColor="" normalItemColor="" normalItemColorOpacity="100" normalItemTextColor="" pressedButtonColor="" pressedButtonColorOpacity="100" pressedButtonTextColor="" pressedItemColor="" pressedItemColorOpacity="100" pressedItemTextColor="" selectedItemColor="" selectedItemColorOpacity="100" selectedItemTextColor="" showBackButton="false"/>
+ <itemSet/>
+ </Footer>
+ <Header>
+ <property backgroundBitmapPath="" color="" colorOpacity="100" descriptionText="" descriptionTextColor="" disabledButtonColor="" disabledButtonColorOpacity="100" disabledButtonTextColor="" disabledItemColor="" disabledItemColorOpacity="100" disabledItemTextColor="" headerStyle="HEADER_STYLE_TITLE" highlightedButtonColor="" highlightedButtonColorOpacity="100" highlightedButtonTextColor="" highlightedItemColor="" highlightedItemColorOpacity="100" highlightedItemTextColor="" normalButtonColor="" normalButtonColorOpacity="100" normalButtonTextColor="" normalItemColor="" normalItemColorOpacity="100" normalItemTextColor="" pressedButtonColor="" pressedButtonColorOpacity="100" pressedButtonTextColor="" pressedItemColor="" pressedItemColorOpacity="100" pressedItemTextColor="" selectedItemColor="" selectedItemColorOpacity="100" selectedItemTextColor="" titleIconPath="" titleText="" titleTextColor=""/>
+ <itemSet/>
+ </Header>
+ <CheckButton id="IDC_CHECKALL_BUTTON" parent="IDL_CONVERSATION_LIST_EDIT_FORM">
+ <property backgroundStyle="BACKGROUND_STYLE_DEFAULT" colorOfText="" colorOfTitleText="" disabledColor="" disabledColorOpacity="100" disabledTextColor="" disabledTitleTextColor="" groupId="0" groupStyle="GROUP_STYLE_NONE" highlightedColor="" highlightedColorOpacity="100" highlightedTextColor="" highlightedTitleTextColor="" horizontalAlign="ALIGN_LEFT" normalColor="" normalColorOpacity="100" pressedColor="" pressedColorOpacity="100" pressedTextColor="" pressedTitleTextColor="" showTitleText="false" text="::IDS_COM_BODY_SELECT_ALL" titleText="" verticalAlign="ALIGN_MIDDLE"/>
+ <layout bottomRelation="" bottomRelationType="" centerHorizontal="false" centerVertical="false" height="108" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Portrait" rightRelation="" rightRelationType="" style="" topRelation="IDL_CONVERSATION_LIST_EDIT_FORM" topRelationType="RECT_EDGE_RELATION_TOP_TO_TOP" verticalFitPolicy="FIT_POLICY_FIXED" width="719" x="0" y="0"/>
+ <layout bottomRelation="" bottomRelationType="" centerHorizontal="false" centerVertical="false" height="108" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Landscape" rightRelation="" rightRelationType="" style="" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="533" x="472" y="204"/>
+ </CheckButton>
+ <Label id="IDC_CONV_EDIT_LABEL" parent="IDL_CONVERSATION_LIST_EDIT_FORM">
+ <property backgroundBitmapPath="" backgroundColor="#D1E3EE" backgroundColorOpacity="0" horizontalAlign="ALIGN_CENTER" text="Label1" textColor="" textSize="33" textStyle="LABEL_TEXT_STYLE_NORMAL" verticalAlign="ALIGN_BOTTOM"/>
+ <layout bottomRelation="IDL_CONVERSATION_LIST_EDIT_FORM" bottomRelationType="RECT_EDGE_RELATION_BOTTOM_TO_BOTTOM" centerHorizontal="false" centerVertical="false" height="50" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Portrait" rightRelation="" rightRelationType="" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="720" x="0" y="961"/>
+ <layout bottomRelation="" bottomRelationType="" centerHorizontal="false" centerVertical="false" height="52" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Landscape" rightRelation="" rightRelationType="" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="533" x="695" y="432"/>
+ </Label>
+ <GroupedListView id="IDC_CONV_EDIT_GROUPEDLIST" parent="IDL_CONVERSATION_LIST_EDIT_FORM">
+ <property backgroundBitmapPath="" backgroundColor="" backgroundColorOpacity="0" bitmapPathOfEmptyList="" colorOfEmptyListText="" fastScroll="false" itemDivider="false" itemDividerColor="" sectionColor="" sweepEnabled="false" textOfEmptyList=""/>
+ <layout bottomRelation="IDC_CONV_EDIT_LABEL" bottomRelationType="RECT_EDGE_RELATION_BOTTOM_TO_TOP" centerHorizontal="false" centerVertical="false" height="853" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Portrait" rightRelation="" rightRelationType="" style="CUSTOM_LIST_STYLE_NORMAL" topRelation="IDC_CHECKALL_BUTTON" topRelationType="RECT_EDGE_RELATION_TOP_TO_BOTTOM" verticalFitPolicy="FIT_POLICY_FIXED" width="720" x="0" y="108"/>
+ <layout bottomRelation="" bottomRelationType="" centerHorizontal="false" centerVertical="false" height="124" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Landscape" rightRelation="" rightRelationType="" style="CUSTOM_LIST_STYLE_NORMAL" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="499" x="780" y="132"/>
+ </GroupedListView>
+</Scene>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<!DOCTYPE Scene SYSTEM "UIForm.dtd">
+<Scene Bversion="3.0.0.201301251814" Dversion="20120315">
+ <LogicalCoordinate>720</LogicalCoordinate>
+ <Form id="IDL_CONVERSATION_LIST_FORM">
+ <property backgroundColor="" backgroundColorOpacity="100" orientation="Portrait" softKey0NormalIcon="" softKey0PressedIcon="" softKey0Text="" softKey1NormalIcon="" softKey1PressedIcon="" softKey1Text="" title="" titleAlign="ALIGN_CENTER" titleIcon="" translucentFooter="false" translucentHeader="false" translucentIndicator="false"/>
+ <layout mode="Portrait" style="FORM_STYLE_INDICATOR|FORM_STYLE_HEADER|FORM_STYLE_FOOTER" type="LAYOUT_RELATIVE"/>
+ <layout mode="Landscape" style="FORM_STYLE_INDICATOR|FORM_STYLE_HEADER|FORM_STYLE_FOOTER" type="LAYOUT_RELATIVE"/>
+ </Form>
+ <Footer>
+ <property backgroundBitmapPath="" color="" colorOpacity="0" disabledButtonColor="" disabledButtonColorOpacity="0" disabledButtonTextColor="" disabledItemColor="" disabledItemColorOpacity="100" disabledItemTextColor="" footerStyle="FOOTER_STYLE_BUTTON_ICON" highlightedButtonColor="" highlightedButtonColorOpacity="0" highlightedButtonTextColor="" highlightedItemColor="" highlightedItemColorOpacity="100" highlightedItemTextColor="" normalButtonColor="" normalButtonColorOpacity="0" normalButtonTextColor="" normalItemColor="" normalItemColorOpacity="100" normalItemTextColor="" pressedButtonColor="" pressedButtonColorOpacity="0" pressedButtonTextColor="" pressedItemColor="" pressedItemColorOpacity="100" pressedItemTextColor="" selectedItemColor="" selectedItemColorOpacity="100" selectedItemTextColor="" showBackButton="true"/>
+ <itemSet/>
+ </Footer>
+ <Header>
+ <property backgroundBitmapPath="" color="" colorOpacity="0" descriptionText="" descriptionTextColor="" disabledButtonColor="" disabledButtonColorOpacity="0" disabledButtonTextColor="" disabledItemColor="" disabledItemColorOpacity="0" disabledItemTextColor="" headerStyle="HEADER_STYLE_TITLE" highlightedButtonColor="" highlightedButtonColorOpacity="0" highlightedButtonTextColor="" highlightedItemColor="" highlightedItemColorOpacity="0" highlightedItemTextColor="" normalButtonColor="" normalButtonColorOpacity="0" normalButtonTextColor="" normalItemColor="" normalItemColorOpacity="0" normalItemTextColor="" pressedButtonColor="" pressedButtonColorOpacity="0" pressedButtonTextColor="" pressedItemColor="" pressedItemColorOpacity="0" pressedItemTextColor="" selectedItemColor="" selectedItemColorOpacity="0" selectedItemTextColor="" titleIconPath="" titleText="" titleTextColor=""/>
+ <itemSet/>
+ </Header>
+ <GroupedListView id="IDC_MESSAGES_GROUPEDLIST" parent="IDL_CONVERSATION_LIST_FORM">
+ <property backgroundBitmapPath="" backgroundColor="" backgroundColorOpacity="0" bitmapPathOfEmptyList="" colorOfEmptyListText="" fastScroll="false" itemDivider="false" itemDividerColor="" sectionColor="" sweepEnabled="false" textOfEmptyList=" "/>
+ <layout bottomRelation="" bottomRelationType="" centerHorizontal="false" centerVertical="false" height="1007" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Portrait" rightRelation="" rightRelationType="" style="GROUPED_LIST_VIEW_STYLE_INDEXED" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="720" x="0" y="0"/>
+ <layout bottomRelation="" bottomRelationType="" centerHorizontal="false" centerVertical="false" height="124" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Landscape" rightRelation="" rightRelationType="" style="GROUPED_LIST_VIEW_STYLE_INDEXED" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="668" x="611" y="57"/>
+ </GroupedListView>
+</Scene>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>\r
+<!--\r
+ This XML file was automatically generated by UiBuilder - do not modify by hand.\r
+-->\r
+<!DOCTYPE ScenePopup SYSTEM "UIForm.dtd">\r
+<ScenePopup Bversion="3.0.0.201212201745" Dversion="20120315">\r
+ <Popup id="IDL_DELETE_POPUP">\r
+ <property color="" titleText="" titleTextColor=""/>\r
+ <layout height="214" mode="Portrait" style="" type="NONE" width="720"/>\r
+ <layout height="214" mode="Landscape" style="" type="NONE" width="720"/>\r
+ </Popup>\r
+ <Label id="IDC_DELETE_LABEL" parent="IDL_DELETE_POPUP">\r
+ <property backgroundBitmapPath="" backgroundColor="" backgroundColorOpacity="0" horizontalAlign="ALIGN_CENTER" text="::IDS_COM_POP_DELETE_Q" textColor="#000000" textSize="42" textStyle="LABEL_TEXT_STYLE_NORMAL" verticalAlign="ALIGN_MIDDLE"/>\r
+ <layout height="62" mode="Portrait" width="648" x="0" y="18"/>\r
+ <layout height="62" mode="Landscape" width="648" x="0" y="18"/>\r
+ </Label>\r
+ <Button id="IDC_BUTTON_LEFT" parent="IDL_DELETE_POPUP">\r
+ <property disableTextColor="" disabledBitmapPath="00_button_popup_dim.9.png" disabledColor="" disabledColorOpacity="100" highlightedBGBitmapPath="" highlightedColor="" highlightedColorOpacity="100" highlightedTextColor="" horizontalAlign="ALIGN_CENTER" normalBGBitmapPath="00_button_popup_normal.9.png" normalBitmapPath="" normalColor="" normalColorOpacity="100" normalTextColor="" pressedBGBitmapPath="00_button_popup_press.9.png" pressedBitmapPath="" pressedColor="" pressedColorOpacity="100" pressedTextColor="" text="::IDS_COM_SK_OK" textSize="33" verticalAlign="ALIGN_MIDDLE"/>\r
+ <layout height="72" mode="Portrait" width="288" x="0" y="100"/>\r
+ <layout height="72" mode="Landscape" width="288" x="0" y="100"/>\r
+ </Button>\r
+ <Button id="IDC_BUTTON_RIGHT" parent="IDL_DELETE_POPUP">\r
+ <property disableTextColor="" disabledBitmapPath="00_button_popup_dim.9.png" disabledColor="" disabledColorOpacity="100" highlightedBGBitmapPath="" highlightedColor="" highlightedColorOpacity="100" highlightedTextColor="" horizontalAlign="ALIGN_CENTER" normalBGBitmapPath="00_button_popup_normal.9.png" normalBitmapPath="" normalColor="" normalColorOpacity="100" normalTextColor="" pressedBGBitmapPath="00_button_popup_press.9.png" pressedBitmapPath="" pressedColor="" pressedColorOpacity="100" pressedTextColor="" text="::IDS_COM_SK_CANCEL" textSize="33" verticalAlign="ALIGN_MIDDLE"/>\r
+ <layout height="72" mode="Portrait" width="288" x="360" y="100"/>\r
+ <layout height="72" mode="Landscape" width="288" x="360" y="100"/>\r
+ </Button>\r
+</ScenePopup>\r
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>\r
+<!--\r
+ This XML file was automatically generated by UiBuilder - do not modify by hand.\r
+-->\r
+<!DOCTYPE ScenePopup SYSTEM "UIForm.dtd">\r
+<ScenePopup Bversion="3.0.0.201212201745" Dversion="20120315">\r
+ <Popup id="IDL_DELETE_PROGRESS_POPUP">\r
+ <property color="" titleText="" titleTextColor=""/>\r
+ <layout height="165" mode="Portrait" style="" type="NONE" width="720"/>\r
+ <layout height="165" mode="Landscape" style="" type="NONE" width="720"/>\r
+ </Popup>\r
+ <Progress id="IDC_PROGRESSBAR" parent="IDL_DELETE_PROGRESS_POPUP">\r
+ <property backgroundColor="" barColor="" leftText="" max="100" min="0" rightText="" showValueState="true" value="50"/>\r
+ <layout height="58" mode="Portrait" style="PROGRESS_STYLE_NONE" width="636" x="8" y="63"/>\r
+ <layout height="58" mode="Landscape" style="PROGRESS_STYLE_NONE" width="636" x="8" y="63"/>\r
+ </Progress>\r
+ <Label id="IDC_PROGRESS_INFO" parent="IDL_DELETE_PROGRESS_POPUP">\r
+ <property backgroundBitmapPath="" backgroundColor="" backgroundColorOpacity="0" horizontalAlign="ALIGN_LEFT" text="" textColor="" textSize="40" textStyle="LABEL_TEXT_STYLE_NORMAL" verticalAlign="ALIGN_TOP"/>\r
+ <layout height="55" mode="Portrait" width="636" x="8" y="9"/>\r
+ <layout height="55" mode="Landscape" width="636" x="8" y="9"/>\r
+ </Label>\r
+</ScenePopup>\r
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>\r
+<!--\r
+ This XML file was automatically generated by UiBuilder - do not modify by hand.\r
+-->\r
+<!DOCTYPE ScenePopup SYSTEM "UIForm.dtd">\r
+<ScenePopup Bversion="3.0.0.201212201745" Dversion="20120315">\r
+ <Popup id="IDL_DURATION_POPUP">\r
+ <property color="" titleText="" titleTextColor=""/>\r
+ <layout height="317" mode="Portrait" style="" type="LAYOUT_RELATIVE" width="720"/>\r
+ <layout height="317" mode="Landscape" style="" type="LAYOUT_RELATIVE" width="720"/>\r
+ </Popup>\r
+ <Label id="IDC_DURATION_LABEL" parent="IDL_DURATION_POPUP">\r
+ <property backgroundBitmapPath="" backgroundColor="" backgroundColorOpacity="0" horizontalAlign="ALIGN_CENTER" text="::IDS_MSG_BODY_DURATION_MUST_BE_LONGER_THAN_PD_SECONDS" textColor="" textSize="36" textStyle="LABEL_TEXT_STYLE_NORMAL" verticalAlign="ALIGN_MIDDLE"/>\r
+ <layout bottomRelation="" bottomRelationType="" centerHorizontal="true" centerVertical="false" height="101" horizontalFitPolicy="FIT_POLICY_CONTENT" leftRelation="" leftRelationType="" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Portrait" rightRelation="" rightRelationType="" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="648" x="0" y="2"/>\r
+ <layout bottomRelation="" bottomRelationType="" centerHorizontal="false" centerVertical="false" height="101" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Landscape" rightRelation="" rightRelationType="" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="648" x="0" y="2"/>\r
+ </Label>\r
+ <Button id="IDC_BUTTON_OK" parent="IDL_DURATION_POPUP">\r
+ <property disableTextColor="" disabledBitmapPath="00_button_popup_dim.9.png" disabledColor="" disabledColorOpacity="100" highlightedBGBitmapPath="" highlightedColor="" highlightedColorOpacity="100" highlightedTextColor="" horizontalAlign="ALIGN_CENTER" normalBGBitmapPath="00_button_popup_normal.9.png" normalBitmapPath="" normalColor="" normalColorOpacity="100" normalTextColor="" pressedBGBitmapPath="00_button_popup_press.9.png" pressedBitmapPath="" pressedColor="" pressedColorOpacity="100" pressedTextColor="" text="::IDS_COM_SK_OK" textSize="33" verticalAlign="ALIGN_MIDDLE"/>\r
+ <layout bottomRelation="" bottomRelationType="" centerHorizontal="false" centerVertical="false" height="74" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Portrait" rightRelation="" rightRelationType="" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="314" x="0" y="208"/>\r
+ <layout bottomRelation="" bottomRelationType="" centerHorizontal="false" centerVertical="false" height="74" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Landscape" rightRelation="" rightRelationType="" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="314" x="0" y="208"/>\r
+ </Button>\r
+ <Button id="IDC_BUTTON_CANCEL" parent="IDL_DURATION_POPUP">\r
+ <property disableTextColor="" disabledBitmapPath="00_button_popup_dim.9.png" disabledColor="" disabledColorOpacity="100" highlightedBGBitmapPath="" highlightedColor="" highlightedColorOpacity="100" highlightedTextColor="" horizontalAlign="ALIGN_CENTER" normalBGBitmapPath="00_button_popup_normal.9.png" normalBitmapPath="" normalColor="" normalColorOpacity="100" normalTextColor="" pressedBGBitmapPath="00_button_popup_press.9.png" pressedBitmapPath="" pressedColor="" pressedColorOpacity="100" pressedTextColor="" text="::IDS_COM_SK_CANCEL" textSize="33" verticalAlign="ALIGN_MIDDLE"/>\r
+ <layout bottomRelation="" bottomRelationType="" centerHorizontal="false" centerVertical="false" height="74" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Portrait" rightRelation="" rightRelationType="" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="314" x="334" y="208"/>\r
+ <layout bottomRelation="" bottomRelationType="" centerHorizontal="false" centerVertical="false" height="74" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Landscape" rightRelation="" rightRelationType="" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="314" x="334" y="208"/>\r
+ </Button>\r
+ <EditField id="IDC_EDITFIELD_DURATION" parent="IDL_DURATION_POPUP">\r
+ <property commandButtonVisible="true" disabledBGBitmapPath="" disabledColor="" disabledColorOpacity="100" disabledTextColor="" ellipsisPosition="ELLIPSIS_POSITION_END" enableClear="false" groupStyle="GROUP_STYLE_SINGLE" guideText="" guideTextColor="" highlightedBGBitmapPath="" highlightedColor="" highlightedColorOpacity="100" highlightedTextColor="" horizontalMargin="16" inputStyle="INPUT_STYLE_OVERLAY" keypadAction="KEYPAD_ACTION_ENTER" keypadEnabled="true" limitLength="2" linkTextColor="" lowerCaseMode="false" normalBGBitmapPath="" normalColor="" normalColorOpacity="100" normalTextColor="" pressedBGBitmapPath="" pressedColor="" pressedColorOpacity="100" text="5" textHorizontalAlignment="ALIGNMENT_LEFT" textSize="45" titleStyle="EDIT_FIELD_TITLE_STYLE_NONE" titleText="" titleTextColor="" verticalMargin="12" viewMode="false"/>\r
+ <layout bottomRelation="" bottomRelationType="" centerHorizontal="false" centerVertical="false" height="90" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Portrait" rightRelation="" rightRelationType="" style="EDIT_FIELD_STYLE_NUMBER" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="648" x="0" y="102"/>\r
+ <layout bottomRelation="" bottomRelationType="" centerHorizontal="false" centerVertical="false" height="90" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Landscape" rightRelation="" rightRelationType="" style="EDIT_FIELD_STYLE_NUMBER" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="648" x="0" y="102"/>\r
+ </EditField>\r
+</ScenePopup>\r
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>\r
+<!--\r
+ This XML file was automatically generated by UiBuilder - do not modify by hand.\r
+-->\r
+<!DOCTYPE ScenePopup SYSTEM "UIForm.dtd">\r
+<ScenePopup Bversion="3.0.0.201212201745" Dversion="20120315">\r
+ <Popup id="IDL_IMAGE_COMPRESS_POPUP">\r
+ <property color="" titleText="" titleTextColor=""/>\r
+ <layout height="180" mode="Portrait" style="" type="NONE" width="720"/>\r
+ <layout height="180" mode="Landscape" style="" type="NONE" width="720"/>\r
+ </Popup>\r
+ <Label id="IDC_LABEL1" parent="IDL_IMAGE_COMPRESS_POPUP">\r
+ <property backgroundBitmapPath="" backgroundColor="" backgroundColorOpacity="0" horizontalAlign="ALIGN_CENTER" text="Picture too large. Compressing..." textColor="" textSize="33" textStyle="LABEL_TEXT_STYLE_NORMAL" verticalAlign="ALIGN_MIDDLE"/>\r
+ <layout height="54" mode="Portrait" width="648" x="0" y="20"/>\r
+ <layout height="54" mode="Landscape" width="648" x="0" y="20"/>\r
+ </Label>\r
+ <Button id="IDC_BUTTON_PROGRESS" parent="IDL_IMAGE_COMPRESS_POPUP">\r
+ <property disableTextColor="" disabledBitmapPath="" disabledColor="" disabledColorOpacity="100" highlightedBGBitmapPath="" highlightedColor="" highlightedColorOpacity="100" highlightedTextColor="" horizontalAlign="ALIGN_CENTER" normalBGBitmapPath="" normalBitmapPath="" normalColor="" normalColorOpacity="100" normalTextColor="" pressedBGBitmapPath="" pressedBitmapPath="" pressedColor="" pressedColorOpacity="100" pressedTextColor="" text="" textSize="33" verticalAlign="ALIGN_MIDDLE"/>\r
+ <layout height="72" mode="Portrait" width="72" x="288" y="84"/>\r
+ <layout height="72" mode="Landscape" width="72" x="288" y="84"/>\r
+ </Button>\r
+</ScenePopup>\r
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>\r
+<!--\r
+ This XML file was automatically generated by UiBuilder - do not modify by hand.\r
+-->\r
+<!DOCTYPE Scene SYSTEM "UIForm.dtd">\r
+<Scene Bversion="3.0.0.201301181014" Dversion="20120315">\r
+ <LogicalCoordinate>720</LogicalCoordinate>\r
+ <Form id="IDL_MMS_DETAIL_FORM">\r
+ <property backgroundColor="" backgroundColorOpacity="100" orientation="Portrait" softKey0NormalIcon="" softKey0PressedIcon="" softKey0Text="" softKey1NormalIcon="" softKey1PressedIcon="" softKey1Text="" title="" titleAlign="ALIGN_CENTER" titleIcon="" translucentFooter="false" translucentHeader="false" translucentIndicator="false"/>\r
+ <layout mode="Portrait" style="FORM_STYLE_INDICATOR|FORM_STYLE_HEADER|FORM_STYLE_FOOTER" type="LAYOUT_RELATIVE"/>\r
+ <layout mode="Landscape" style="FORM_STYLE_INDICATOR|FORM_STYLE_HEADER|FORM_STYLE_FOOTER" type="LAYOUT_RELATIVE"/>\r
+ </Form>\r
+ <Footer>\r
+ <property backgroundBitmapPath="" color="" colorOpacity="0" disabledButtonColor="" disabledButtonColorOpacity="0" disabledButtonTextColor="" disabledItemColor="" disabledItemColorOpacity="100" disabledItemTextColor="" footerStyle="FOOTER_STYLE_BUTTON_ICON" highlightedButtonColor="" highlightedButtonColorOpacity="0" highlightedButtonTextColor="" highlightedItemColor="" highlightedItemColorOpacity="100" highlightedItemTextColor="" normalButtonColor="" normalButtonColorOpacity="0" normalButtonTextColor="" normalItemColor="" normalItemColorOpacity="100" normalItemTextColor="" pressedButtonColor="" pressedButtonColorOpacity="0" pressedButtonTextColor="" pressedItemColor="" pressedItemColorOpacity="100" pressedItemTextColor="" selectedItemColor="" selectedItemColorOpacity="100" selectedItemTextColor="" showBackButton="true"/>\r
+ <itemSet/>\r
+ </Footer>\r
+ <Header>\r
+ <property backgroundBitmapPath="" color="" colorOpacity="0" descriptionText="" descriptionTextColor="" disabledButtonColor="" disabledButtonColorOpacity="0" disabledButtonTextColor="" disabledItemColor="" disabledItemColorOpacity="0" disabledItemTextColor="" headerStyle="HEADER_STYLE_TITLE" highlightedButtonColor="" highlightedButtonColorOpacity="0" highlightedButtonTextColor="" highlightedItemColor="" highlightedItemColorOpacity="0" highlightedItemTextColor="" normalButtonColor="" normalButtonColorOpacity="0" normalButtonTextColor="" normalItemColor="" normalItemColorOpacity="0" normalItemTextColor="" pressedButtonColor="" pressedButtonColorOpacity="0" pressedButtonTextColor="" pressedItemColor="" pressedItemColorOpacity="0" pressedItemTextColor="" selectedItemColor="" selectedItemColorOpacity="0" selectedItemTextColor="" titleIconPath="" titleText="" titleTextColor=""/>\r
+ <itemSet/>\r
+ </Header>\r
+ <TextBox id="IDC_MMS_TEXT" parent="IDL_MMS_DETAIL_FORM">\r
+ <property disabledBackgroundBitmapPath="" disabledColor="" disabledColorOpacity="100" disabledTextColor="" highlightedBackgroundBitmapPath="" highlightedColor="" highlightedColorOpacity="100" highlightedTextColor="" lineSpacingExtra="1" lineSpacingMultiplier="1" normalBackgroundBitmapPath="" normalColor="" normalColorOpacity="100" normalTextColor="" text="" textAlignment="" textSize="45" textboxBorder="TEXT_BOX_BORDER_ROUNDED"/>\r
+ <layout bottomRelation="" bottomRelationType="" centerHorizontal="false" centerVertical="false" height="220" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Portrait" rightRelation="" rightRelationType="" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="688" x="16" y="0"/>\r
+ <layout bottomRelation="" bottomRelationType="" centerHorizontal="false" centerVertical="false" height="200" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Landscape" rightRelation="" rightRelationType="" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="456" x="6" y="0"/>\r
+ </TextBox>\r
+ <Panel id="IDC_PLAY_CONTROLS_PANEL" parent="IDL_MMS_DETAIL_FORM">\r
+ <property backgroundColor="#4D4D4D" backgroundColorOpacity="0" compositeEnabled="true" groupStyle="GROUP_STYLE_NONE"/>\r
+ <layout bottomRelation="" bottomRelationType="" centerHorizontal="false" centerVertical="false" height="218" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Portrait" rightRelation="" rightRelationType="" topRelation="" topRelationType="" type="NONE" verticalFitPolicy="FIT_POLICY_FIXED" width="720" x="0" y="788"/>\r
+ <layout bottomRelation="" bottomRelationType="" centerHorizontal="false" centerVertical="false" height="46" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Landscape" rightRelation="" rightRelationType="" topRelation="" topRelationType="" type="NONE" verticalFitPolicy="FIT_POLICY_FIXED" width="533" x="90" y="418"/>\r
+ </Panel>\r
+ <Button id="IDC_VOLUME_BUTTON" parent="IDC_PLAY_CONTROLS_PANEL">\r
+ <property DisabledBitmapX="0" DisabledBitmapY="0" NormalBitmapX="0" NormalBitmapY="0" PressedBitmapX="0" PressedBitmapY="0" disableTextColor="" disabledBitmapPath="" disabledColor="" disabledColorOpacity="100" highlightedBGBitmapPath="" highlightedColor="" highlightedColorOpacity="100" highlightedTextColor="" horizontalAlign="ALIGN_CENTER" normalBGBitmapPath="" normalBitmapPath="M01_play_btn_volume_press.png" normalColor="" normalColorOpacity="100" normalTextColor="" pressedBGBitmapPath="" pressedBitmapPath="" pressedColor="" pressedColorOpacity="100" pressedTextColor="" text="" textSize="20" verticalAlign="ALIGN_MIDDLE"/>\r
+ <layout height="72" mode="Portrait" width="72" x="45" y="130"/>\r
+ <layout height="356" mode="Landscape" width="78" x="4" y="0"/>\r
+ </Button>\r
+ <Button id="IDC_NEXT_BUTTON" parent="IDC_PLAY_CONTROLS_PANEL">\r
+ <property DisabledBitmapX="0" DisabledBitmapY="0" NormalBitmapX="0" NormalBitmapY="0" PressedBitmapX="0" PressedBitmapY="0" disableTextColor="" disabledBitmapPath="M01_play_btn_next_press.png" disabledColor="" disabledColorOpacity="100" highlightedBGBitmapPath="" highlightedColor="" highlightedColorOpacity="100" highlightedTextColor="" horizontalAlign="ALIGN_CENTER" normalBGBitmapPath="" normalBitmapPath="M01_play_btn_next_press.png" normalColor="" normalColorOpacity="100" normalTextColor="" pressedBGBitmapPath="" pressedBitmapPath="M01_play_btn_next_press.png" pressedColor="" pressedColorOpacity="100" pressedTextColor="" text="" textSize="33" verticalAlign="ALIGN_MIDDLE"/>\r
+ <layout height="72" mode="Portrait" width="72" x="476" y="130"/>\r
+ <layout height="356" mode="Landscape" width="78" x="14" y="0"/>\r
+ </Button>\r
+ <Button id="IDC_PLAY_PAUSE_BUTTON" parent="IDC_PLAY_CONTROLS_PANEL">\r
+ <property DisabledBitmapX="0" DisabledBitmapY="0" NormalBitmapX="0" NormalBitmapY="0" PressedBitmapX="0" PressedBitmapY="0" disableTextColor="" disabledBitmapPath="" disabledColor="" disabledColorOpacity="100" highlightedBGBitmapPath="" highlightedColor="" highlightedColorOpacity="100" highlightedTextColor="" horizontalAlign="ALIGN_CENTER" normalBGBitmapPath="" normalBitmapPath="" normalColor="" normalColorOpacity="100" normalTextColor="" pressedBGBitmapPath="" pressedBitmapPath="" pressedColor="" pressedColorOpacity="100" pressedTextColor="" text="" textSize="33" verticalAlign="ALIGN_MIDDLE"/>\r
+ <layout height="72" mode="Portrait" width="72" x="332" y="130"/>\r
+ <layout height="356" mode="Landscape" width="78" x="14" y="0"/>\r
+ </Button>\r
+ <Button id="IDC_PREVIOUS_BUTTON" parent="IDC_PLAY_CONTROLS_PANEL">\r
+ <property DisabledBitmapX="0" DisabledBitmapY="0" NormalBitmapX="0" NormalBitmapY="0" PressedBitmapX="0" PressedBitmapY="0" disableTextColor="" disabledBitmapPath="M01_play_btn_previous_press.png" disabledColor="" disabledColorOpacity="100" highlightedBGBitmapPath="" highlightedColor="" highlightedColorOpacity="100" highlightedTextColor="" horizontalAlign="ALIGN_CENTER" normalBGBitmapPath="" normalBitmapPath="M01_play_btn_previous_press.png" normalColor="" normalColorOpacity="100" normalTextColor="" pressedBGBitmapPath="" pressedBitmapPath="M01_play_btn_previous_press.png" pressedColor="" pressedColorOpacity="100" pressedTextColor="" text="" textSize="33" verticalAlign="ALIGN_MIDDLE"/>\r
+ <layout height="72" mode="Portrait" width="72" x="188" y="130"/>\r
+ <layout height="356" mode="Landscape" width="78" x="14" y="0"/>\r
+ </Button>\r
+ <Progress id="IDC_PROGRESS" parent="IDC_PLAY_CONTROLS_PANEL">\r
+ <property backgroundColor="" barColor="#FFFFFF" leftText="" max="20" min="0" rightText="" showValueState="true" value="20"/>\r
+ <layout height="27" mode="Portrait" style="PROGRESS_STYLE_NONE" width="482" x="119" y="48"/>\r
+ <layout height="356" mode="Landscape" style="PROGRESS_STYLE_NONE" width="144" x="39" y="0"/>\r
+ </Progress>\r
+ <Label id="IDC_TIME_ELAPSED_LABEL" parent="IDC_PLAY_CONTROLS_PANEL">\r
+ <property backgroundBitmapPath="" backgroundColor="" backgroundColorOpacity="0" horizontalAlign="ALIGN_CENTER" text="00:00" textColor="#FFFFFF" textSize="18" textStyle="LABEL_TEXT_STYLE_NORMAL" verticalAlign="ALIGN_MIDDLE"/>\r
+ <layout height="28" mode="Portrait" width="77" x="20" y="48"/>\r
+ <layout height="356" mode="Landscape" width="78" x="4" y="0"/>\r
+ </Label>\r
+ <Label id="IDC_TOTAL_TIME_DURATION_LABEL" parent="IDC_PLAY_CONTROLS_PANEL">\r
+ <property backgroundBitmapPath="" backgroundColor="" backgroundColorOpacity="0" horizontalAlign="ALIGN_CENTER" text="00:05" textColor="#FFFFFF" textSize="18" textStyle="LABEL_TEXT_STYLE_NORMAL" verticalAlign="ALIGN_MIDDLE"/>\r
+ <layout height="28" mode="Portrait" width="77" x="623" y="48"/>\r
+ <layout height="356" mode="Landscape" width="78" x="14" y="0"/>\r
+ </Label>\r
+ <Label id="IDC_PAGE_NUMBER_LABEL" parent="IDL_MMS_DETAIL_FORM">\r
+ <property backgroundBitmapPath="" backgroundColor="" backgroundColorOpacity="0" horizontalAlign="ALIGN_RIGHT" text="" textColor="" textSize="29" textStyle="LABEL_TEXT_STYLE_NORMAL" verticalAlign="ALIGN_TOP"/>\r
+ <layout bottomRelation="" bottomRelationType="" centerHorizontal="false" centerVertical="false" height="56" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Portrait" rightRelation="" rightRelationType="" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="155" x="564" y="5"/>\r
+ <layout bottomRelation="" bottomRelationType="" centerHorizontal="false" centerVertical="false" height="52" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Landscape" rightRelation="" rightRelationType="" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="533" x="236" y="0"/>\r
+ </Label>\r
+ <Gallery id="IDC_GALLERY_MMS_IMAGE" parent="IDL_MMS_DETAIL_FORM">\r
+ <property backgroundColor="" bitmapPathOfEmptyGallery="" slideShowAnimation="GALLERY_ANIMATION_PAGE" slideShowAnimationDuration="3000" slideShowViewDuration="10" textOfEmptyGallery="" zoomingEnabled="true"/>\r
+ <layout bottomRelation="" bottomRelationType="" centerHorizontal="false" centerVertical="false" height="438" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Portrait" rightRelation="" rightRelationType="" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="688" x="16" y="82"/>\r
+ <layout bottomRelation="" bottomRelationType="" centerHorizontal="false" centerVertical="false" height="124" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Landscape" rightRelation="" rightRelationType="" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="730" x="440" y="93"/>\r
+ </Gallery>\r
+ <Label id="IDC_LABEL_SUBJECT" parent="IDL_MMS_DETAIL_FORM">\r
+ <property backgroundBitmapPath="" backgroundColor="" backgroundColorOpacity="0" horizontalAlign="ALIGN_LEFT" text="" textColor="" textSize="29" textStyle="LABEL_TEXT_STYLE_NORMAL" verticalAlign="ALIGN_MIDDLE"/>\r
+ <layout bottomRelation="" bottomRelationType="" centerHorizontal="false" centerVertical="false" height="56" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Portrait" rightRelation="" rightRelationType="" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="564" x="0" y="5"/>\r
+ <layout bottomRelation="" bottomRelationType="" centerHorizontal="false" centerVertical="false" height="52" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Landscape" rightRelation="" rightRelationType="" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="533" x="96" y="0"/>\r
+ </Label>\r
+ <Label id="IDC_ATTACH_FILES_INFO_LABEL" parent="IDL_MMS_DETAIL_FORM">\r
+ <property backgroundBitmapPath="" backgroundColor="" backgroundColorOpacity="0" horizontalAlign="ALIGN_LEFT" text="" textColor="#1E90FF" textSize="29" textStyle="LABEL_TEXT_STYLE_NORMAL" verticalAlign="ALIGN_MIDDLE"/>\r
+ <layout bottomRelation="" bottomRelationType="" centerHorizontal="false" centerVertical="false" height="64" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Portrait" rightRelation="" rightRelationType="" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="688" x="16" y="82"/>\r
+ <layout bottomRelation="" bottomRelationType="" centerHorizontal="false" centerVertical="false" height="52" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Landscape" rightRelation="" rightRelationType="" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="533" x="248" y="0"/>\r
+ </Label>\r
+</Scene>\r
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>\r
+<!--\r
+ This XML file was automatically generated by UiBuilder - do not modify by hand.\r
+-->\r
+<!DOCTYPE ScenePanel SYSTEM "UIForm.dtd">\r
+<ScenePanel Bversion="3.0.0.201212201745" Dversion="20120315">\r
+ <Panel id="IDL_MSG_COMPOSE_PANEL">\r
+ <property backgroundColor="" backgroundColorOpacity="0" compositeEnabled="true" groupStyle="GROUP_STYLE_NONE"/>\r
+ <layout height="114" mode="Portrait" type="NONE" width="720" x="0" y="235"/>\r
+ <layout height="114" mode="Landscape" type="NONE" width="720" x="0" y="235"/>\r
+ </Panel>\r
+ <Button id="IDC_ATTACH_BUTTON" parent="IDL_MSG_COMPOSE_PANEL">\r
+ <property DisabledBitmapX="0" DisabledBitmapY="0" NormalBitmapX="0" NormalBitmapY="0" PressedBitmapX="0" PressedBitmapY="0" disableTextColor="" disabledBitmapPath="" disabledColor="" disabledColorOpacity="100" highlightedBGBitmapPath="" highlightedColor="" highlightedColorOpacity="100" highlightedTextColor="" horizontalAlign="ALIGN_CENTER" normalBGBitmapPath="00_btn_circle_bg_normal.png" normalBitmapPath="" normalColor="" normalColorOpacity="100" normalTextColor="" pressedBGBitmapPath="00_circle_button_press.png" pressedBitmapPath="" pressedColor="" pressedColorOpacity="100" pressedTextColor="" text="" textSize="33" verticalAlign="ALIGN_MIDDLE"/>\r
+ <layout height="72" mode="Portrait" width="72" x="12" y="21"/>\r
+ <layout height="72" mode="Landscape" width="72" x="12" y="21"/>\r
+ </Button>\r
+ <ScrollPanel id="IDC_SCROLLPANEL" parent="IDL_MSG_COMPOSE_PANEL">\r
+ <property autoResizingEnabled="true" backgroundColor="" backgroundColorOpacity="0" clientAreaHeight="0" clientAreaWidth="0" pageScrollEnabled="false" scrollBarVisible="false" scrollDirection="SCROLL_PANEL_SCROLL_DIRECTION_VERTICAL" scrollInputMode="SCROLL_INPUT_MODE_ALLOW_ANY_DIRECTION"/>\r
+ <panelLayout height="172" mode="Portrait" width="482"/>\r
+ <panelLayout height="554" mode="Landscape" width="107"/>\r
+ <layout height="74" mode="Portrait" type="NONE" width="482" x="96" y="20"/>\r
+ <layout height="74" mode="Landscape" type="NONE" width="482" x="96" y="20"/>\r
+ </ScrollPanel>\r
+ <Panel id="IDC_PANEL_SUBJECT" parent="IDC_SCROLLPANEL">\r
+ <property backgroundColor="" backgroundColorOpacity="0" compositeEnabled="true" groupStyle="GROUP_STYLE_NONE"/>\r
+ <layout height="47" mode="Portrait" type="NONE" width="482" x="0" y="0"/>\r
+ <layout height="47" mode="Landscape" type="NONE" width="482" x="0" y="0"/>\r
+ </Panel>\r
+ <Panel id="IDC_PANEL_ATTACHEMENT" parent="IDC_SCROLLPANEL">\r
+ <property backgroundColor="" backgroundColorOpacity="0" compositeEnabled="true" groupStyle="GROUP_STYLE_NONE"/>\r
+ <layout height="74" mode="Portrait" type="NONE" width="482" x="0" y="47"/>\r
+ <layout height="74" mode="Landscape" type="NONE" width="482" x="0" y="47"/>\r
+ </Panel>\r
+ <Panel id="IDC_PANEL_IMAGE_TEXT" parent="IDC_SCROLLPANEL">\r
+ <property backgroundColor="" backgroundColorOpacity="0" compositeEnabled="true" groupStyle="GROUP_STYLE_NONE"/>\r
+ <layout height="51" mode="Portrait" type="NONE" width="482" x="0" y="121"/>\r
+ <layout height="51" mode="Landscape" type="NONE" width="482" x="0" y="121"/>\r
+ </Panel>\r
+ <Button id="IDC_SEND_BUTTON" parent="IDL_MSG_COMPOSE_PANEL">\r
+ <property disableTextColor="" disabledBitmapPath="" disabledColor="" disabledColorOpacity="100" highlightedBGBitmapPath="" highlightedColor="" highlightedColorOpacity="100" highlightedTextColor="" horizontalAlign="ALIGN_CENTER" normalBGBitmapPath="" normalBitmapPath="" normalColor="" normalColorOpacity="100" normalTextColor="" pressedBGBitmapPath="" pressedBitmapPath="" pressedColor="" pressedColorOpacity="100" pressedTextColor="" text="" textSize="33" verticalAlign="ALIGN_MIDDLE"/>\r
+ <layout height="72" mode="Portrait" width="108" x="596" y="19"/>\r
+ <layout height="72" mode="Landscape" width="108" x="596" y="19"/>\r
+ </Button>\r
+ <Label id="IDC_CHARCOUNTER_LABEL" parent="IDL_MSG_COMPOSE_PANEL">\r
+ <property backgroundBitmapPath="" backgroundColor="" backgroundColorOpacity="0" horizontalAlign="ALIGN_CENTER" text="" textColor="" textSize="26" textStyle="LABEL_TEXT_STYLE_NORMAL" verticalAlign="ALIGN_TOP"/>\r
+ <layout height="26" mode="Portrait" width="108" x="596" y="0"/>\r
+ <layout height="26" mode="Landscape" width="108" x="596" y="0"/>\r
+ </Label>\r
+</ScenePanel>\r
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>\r
+<!--\r
+ This XML file was automatically generated by UiBuilder - do not modify by hand.\r
+-->\r
+<!DOCTYPE ScenePopup SYSTEM "UIForm.dtd">\r
+<ScenePopup Bversion="3.0.0.201301111848" Dversion="20120315">\r
+ <Popup id="IDL_MSG_CONTACT_NUMBER_POPUP">\r
+ <property color="" titleText="::IDS_MSG_HEADER_SELECT_RECIPIENT" titleTextColor=""/>\r
+ <layout height="295" mode="Portrait" style="" type="NONE" width="720"/>\r
+ <layout height="292" mode="Landscape" style="" type="NONE" width="720"/>\r
+ </Popup>\r
+ <Button id="IDC_MSG_CANCEL_BUTTON" parent="IDL_MSG_CONTACT_NUMBER_POPUP">\r
+ <property disableTextColor="" disabledBitmapPath="00_button_popup_dim.9.png" disabledColor="" disabledColorOpacity="100" highlightedBGBitmapPath="" highlightedColor="" highlightedColorOpacity="100" highlightedTextColor="" horizontalAlign="ALIGN_CENTER" normalBGBitmapPath="00_button_popup_normal.9.png" normalBitmapPath="" normalColor="" normalColorOpacity="100" normalTextColor="" pressedBGBitmapPath="00_button_popup_press.9.png" pressedBitmapPath="" pressedColor="" pressedColorOpacity="100" pressedTextColor="" text="" textSize="36" verticalAlign="ALIGN_MIDDLE"/>\r
+ <layout height="74" mode="Portrait" width="288" x="155" y="127"/>\r
+ <layout height="74" mode="Landscape" width="288" x="155" y="127"/>\r
+ </Button>\r
+ <ListView id="IDC_MSG_CONTACT_NUMBER_LISTVIEW" parent="IDL_MSG_CONTACT_NUMBER_POPUP">\r
+ <property backgroundBitmapPath="" backgroundColor="" backgroundColorOpacity="0" bitmapPathOfEmptyList="" colorOfEmptyListText="" fastScroll="false" itemDivider="true" itemDividerColor="" sweepEnabled="false" textOfEmptyList=""/>\r
+ <layout height="112" mode="Portrait" width="648" x="0" y="0"/>\r
+ <layout height="112" mode="Landscape" width="648" x="0" y="0"/>\r
+ </ListView>\r
+</ScenePopup>\r
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>\r
+<!--\r
+ This XML file was automatically generated by UiBuilder - do not modify by hand.\r
+-->\r
+<!DOCTYPE ScenePopup SYSTEM "UIForm.dtd">\r
+<ScenePopup Bversion="3.0.0.201212201745" Dversion="20120315">\r
+ <Popup id="IDL_MSG_CONTACT_POPUP">\r
+ <property color="" titleText="" titleTextColor=""/>\r
+ <layout height="532" mode="Portrait" style="" type="NONE" width="720"/>\r
+ <layout height="523" mode="Landscape" style="" type="NONE" width="720"/>\r
+ </Popup>\r
+ <Label id="IDC_MSG_BG_LABEL" parent="IDL_MSG_CONTACT_POPUP">\r
+ <property backgroundBitmapPath="" backgroundColor="" backgroundColorOpacity="0" horizontalAlign="ALIGN_LEFT" text="" textColor="" textSize="36" textStyle="LABEL_TEXT_STYLE_NORMAL" verticalAlign="ALIGN_TOP"/>\r
+ <layout height="336" mode="Portrait" width="648" x="0" y="66"/>\r
+ <layout height="336" mode="Landscape" width="648" x="0" y="66"/>\r
+ </Label>\r
+ <ListView id="IDC_MSG_CONTACT_LISTVIEW" parent="IDL_MSG_CONTACT_POPUP">\r
+ <property backgroundBitmapPath="" backgroundColor="" backgroundColorOpacity="0" bitmapPathOfEmptyList="" colorOfEmptyListText="" fastScroll="false" itemDivider="true" itemDividerColor="" sweepEnabled="false" textOfEmptyList=""/>\r
+ <layout height="336" mode="Portrait" width="648" x="0" y="66"/>\r
+ <layout height="336" mode="Landscape" width="648" x="0" y="66"/>\r
+ </ListView>\r
+ <Label id="IDC_BUTTON_LABEL" parent="IDL_MSG_CONTACT_POPUP">\r
+ <property backgroundBitmapPath="" backgroundColor="" backgroundColorOpacity="0" horizontalAlign="ALIGN_LEFT" text="" textColor="" textSize="36" textStyle="LABEL_TEXT_STYLE_NORMAL" verticalAlign="ALIGN_TOP"/>\r
+ <layout height="93" mode="Portrait" width="648" x="0" y="403"/>\r
+ <layout height="93" mode="Landscape" width="648" x="0" y="403"/>\r
+ </Label>\r
+ <Button id="IDC_MSG_CANCEL_BUTTON" parent="IDL_MSG_CONTACT_POPUP">\r
+ <property disableTextColor="" disabledBitmapPath="00_button_popup_dim.9.png" disabledColor="" disabledColorOpacity="100" highlightedBGBitmapPath="" highlightedColor="" highlightedColorOpacity="100" highlightedTextColor="" horizontalAlign="ALIGN_CENTER" normalBGBitmapPath="00_button_popup_normal.9.png" normalBitmapPath="" normalColor="" normalColorOpacity="100" normalTextColor="" pressedBGBitmapPath="00_button_popup_press.9.png" pressedBitmapPath="" pressedColor="" pressedColorOpacity="100" pressedTextColor="" text="" textSize="36" verticalAlign="ALIGN_MIDDLE"/>\r
+ <layout height="72" mode="Portrait" width="288" x="170" y="413"/>\r
+ <layout height="74" mode="Landscape" width="288" x="170" y="413"/>\r
+ </Button>\r
+</ScenePopup>\r
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>\r
+<!--\r
+ This XML file was automatically generated by UiBuilder - do not modify by hand.\r
+-->\r
+<!DOCTYPE ScenePopup SYSTEM "UIForm.dtd">\r
+<ScenePopup Bversion="3.0.0.201212201745" Dversion="20120315">\r
+ <Popup id="IDL_MSG_OPTION_DETAILS_POPUP">\r
+ <property color="" titleText="::IDS_MSGF_HEADER_MESSAGE_DETAILS" titleTextColor=""/>\r
+ <layout height="502" mode="Portrait" style="" type="LAYOUT_RELATIVE" width="720"/>\r
+ <layout height="502" mode="Landscape" style="" type="LAYOUT_RELATIVE" width="720"/>\r
+ </Popup>\r
+ <Label id="IDC_POPUP_LABEL" parent="IDL_MSG_OPTION_DETAILS_POPUP">\r
+ <property backgroundBitmapPath="" backgroundColor="" backgroundColorOpacity="0" horizontalAlign="ALIGN_LEFT" text="" textColor="" textSize="36" textStyle="LABEL_TEXT_STYLE_NORMAL" verticalAlign="ALIGN_TOP"/>\r
+ <layout bottomRelation="" bottomRelationType="" centerHorizontal="true" centerVertical="false" height="96" horizontalFitPolicy="FIT_POLICY_PARENT" leftRelation="" leftRelationType="" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Portrait" rightRelation="" rightRelationType="" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="648" x="0" y="309"/>\r
+ <layout bottomRelation="" bottomRelationType="" centerHorizontal="false" centerVertical="false" height="96" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Landscape" rightRelation="" rightRelationType="" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="648" x="0" y="309"/>\r
+ </Label>\r
+ <Button id="IDC_MSG_CLOSE_BUTTON" parent="IDL_MSG_OPTION_DETAILS_POPUP">\r
+ <property disableTextColor="" disabledBitmapPath="00_button_popup_dim.9.png" disabledColor="" disabledColorOpacity="100" highlightedBGBitmapPath="" highlightedColor="" highlightedColorOpacity="100" highlightedTextColor="" horizontalAlign="ALIGN_CENTER" normalBGBitmapPath="00_button_popup_normal.9.png" normalBitmapPath="" normalColor="" normalColorOpacity="100" normalTextColor="" pressedBGBitmapPath="00_button_popup_press.9.png" pressedBitmapPath="" pressedColor="" pressedColorOpacity="100" pressedTextColor="" text="::IDS_COM_POP_CLOSE" textSize="33" verticalAlign="ALIGN_MIDDLE"/>\r
+ <layout bottomRelation="" bottomRelationType="" centerHorizontal="true" centerVertical="false" height="72" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Portrait" rightRelation="" rightRelationType="" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="300" x="174" y="321"/>\r
+ <layout bottomRelation="" bottomRelationType="" centerHorizontal="false" centerVertical="false" height="74" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Landscape" rightRelation="" rightRelationType="" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="288" x="174" y="321"/>\r
+ </Button>\r
+ <TextBox id="IDC_TEXTBOX_MSG_DETAILS" parent="IDL_MSG_OPTION_DETAILS_POPUP">\r
+ <property disabledBackgroundBitmapPath="" disabledColor="" disabledColorOpacity="100" disabledTextColor="" highlightedBackgroundBitmapPath="" highlightedColor="" highlightedColorOpacity="100" highlightedTextColor="" lineSpacingExtra="1" lineSpacingMultiplier="1" normalBackgroundBitmapPath="" normalColor="" normalColorOpacity="100" normalTextColor="" text="" textAlignment="" textSize="45" textboxBorder="TEXT_BOX_BORDER_ROUNDED"/>\r
+ <layout bottomRelation="" bottomRelationType="" centerHorizontal="false" centerVertical="false" height="297" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Portrait" rightRelation="" rightRelationType="" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="648" x="0" y="0"/>\r
+ <layout bottomRelation="" bottomRelationType="" centerHorizontal="false" centerVertical="false" height="297" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Landscape" rightRelation="" rightRelationType="" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="648" x="0" y="0"/>\r
+ </TextBox>\r
+</ScenePopup>\r
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>\r
+<!--\r
+ This XML file was automatically generated by UiBuilder - do not modify by hand.\r
+-->\r
+<!DOCTYPE ScenePopup SYSTEM "UIForm.dtd">\r
+<ScenePopup Bversion="3.0.0.201212201745" Dversion="20120315">\r
+ <Popup id="IDL_MSG_OPTION_POPUP">\r
+ <property color="" titleText="Messages" titleTextColor=""/>\r
+ <layout height="301" mode="Portrait" style="" type="LAYOUT_RELATIVE" width="720"/>\r
+ <layout height="350" mode="Landscape" style="" type="LAYOUT_RELATIVE" width="720"/>\r
+ </Popup>\r
+ <ListView id="IDC_MSG_OPTION_LISTVIEW" parent="IDL_MSG_OPTION_POPUP">\r
+ <property backgroundBitmapPath="" backgroundColor="" backgroundColorOpacity="0" bitmapPathOfEmptyList="" colorOfEmptyListText="" fastScroll="false" itemDivider="true" itemDividerColor="" sweepEnabled="false" textOfEmptyList=""/>\r
+ <layout bottomRelation="" bottomRelationType="" centerHorizontal="true" centerVertical="false" height="112" horizontalFitPolicy="FIT_POLICY_PARENT" leftRelation="" leftRelationType="" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Portrait" rightRelation="" rightRelationType="" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="648" x="0" y="0"/>\r
+ <layout bottomRelation="" bottomRelationType="" centerHorizontal="false" centerVertical="false" height="112" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Landscape" rightRelation="" rightRelationType="" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="480" x="103" y="4"/>\r
+ </ListView>\r
+ <Button id="IDC_BUTTON_CLOSE" parent="IDL_MSG_OPTION_POPUP">\r
+ <property disableTextColor="" disabledBitmapPath="" disabledColor="" disabledColorOpacity="100" highlightedBGBitmapPath="" highlightedColor="" highlightedColorOpacity="100" highlightedTextColor="" horizontalAlign="ALIGN_CENTER" normalBGBitmapPath="00_button_popup_normal.9.png" normalBitmapPath="" normalColor="" normalColorOpacity="100" normalTextColor="" pressedBGBitmapPath="00_button_popup_press.9.png" pressedBitmapPath="" pressedColor="" pressedColorOpacity="100" pressedTextColor="" text="::IDS_COM_POP_CLOSE" textSize="33" verticalAlign="ALIGN_MIDDLE"/>\r
+ <layout bottomRelation="" bottomRelationType="" centerHorizontal="true" centerVertical="false" height="72" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Portrait" rightRelation="" rightRelationType="" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="300" x="174" y="129"/>\r
+ <layout bottomRelation="" bottomRelationType="" centerHorizontal="false" centerVertical="false" height="72" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Landscape" rightRelation="" rightRelationType="" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="256" x="215" y="168"/>\r
+ </Button>\r
+</ScenePopup>\r
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>\r
+<!--\r
+ This XML file was automatically generated by UiBuilder - do not modify by hand.\r
+-->\r
+<!DOCTYPE ScenePopup SYSTEM "UIForm.dtd">\r
+<ScenePopup Bversion="3.0.0.201212201745" Dversion="20120315">\r
+ <Popup id="IDL_MSG_RESEND_DELETE_POPUP">\r
+ <property color="" titleText="::IDS_MSGF_POP_SENDING_FAILED_MESSAGE" titleTextColor=""/>\r
+ <layout height="411" mode="Portrait" style="" type="LAYOUT_RELATIVE" width="720"/>\r
+ <layout height="411" mode="Landscape" style="" type="LAYOUT_RELATIVE" width="720"/>\r
+ </Popup>\r
+ <Label id="IDC_MSG_BG_LABEL" parent="IDL_MSG_RESEND_DELETE_POPUP">\r
+ <property backgroundBitmapPath="" backgroundColor="" backgroundColorOpacity="0" horizontalAlign="ALIGN_LEFT" text="" textColor="" textSize="36" textStyle="LABEL_TEXT_STYLE_NORMAL" verticalAlign="ALIGN_TOP"/>\r
+ <layout bottomRelation="" bottomRelationType="" centerHorizontal="false" centerVertical="false" height="221" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Portrait" rightRelation="" rightRelationType="" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="648" x="0" y="0"/>\r
+ <layout bottomRelation="" bottomRelationType="" centerHorizontal="false" centerVertical="false" height="221" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Landscape" rightRelation="" rightRelationType="" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="648" x="0" y="0"/>\r
+ </Label>\r
+ <ListView id="IDC_MSG_RESEND_DELETE_LISTVIEW" parent="IDL_MSG_RESEND_DELETE_POPUP">\r
+ <property backgroundBitmapPath="" backgroundColor="" backgroundColorOpacity="0" bitmapPathOfEmptyList="" colorOfEmptyListText="" fastScroll="false" itemDivider="true" itemDividerColor="" sweepEnabled="false" textOfEmptyList=""/>\r
+ <layout bottomRelation="" bottomRelationType="" centerHorizontal="false" centerVertical="false" height="224" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Portrait" rightRelation="" rightRelationType="" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="648" x="0" y="0"/>\r
+ <layout bottomRelation="" bottomRelationType="" centerHorizontal="false" centerVertical="false" height="221" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Landscape" rightRelation="" rightRelationType="" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="648" x="0" y="0"/>\r
+ </ListView>\r
+ <Label id="IDC_BUTTON_PANEL_BG_LABEL" parent="IDL_MSG_RESEND_DELETE_POPUP">\r
+ <property backgroundBitmapPath="" backgroundColor="" backgroundColorOpacity="0" horizontalAlign="ALIGN_LEFT" text="" textColor="" textSize="36" textStyle="LABEL_TEXT_STYLE_NORMAL" verticalAlign="ALIGN_TOP"/>\r
+ <layout bottomRelation="" bottomRelationType="" centerHorizontal="false" centerVertical="false" height="90" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Portrait" rightRelation="" rightRelationType="" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="648" x="0" y="224"/>\r
+ <layout bottomRelation="" bottomRelationType="" centerHorizontal="false" centerVertical="false" height="90" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Landscape" rightRelation="" rightRelationType="" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="648" x="0" y="224"/>\r
+ </Label>\r
+ <Button id="IDC_MSG_CANCEL_BUTTON" parent="IDL_MSG_RESEND_DELETE_POPUP">\r
+ <property disableTextColor="" disabledBitmapPath="00_button_popup_dim.9.png" disabledColor="" disabledColorOpacity="100" highlightedBGBitmapPath="" highlightedColor="" highlightedColorOpacity="100" highlightedTextColor="" horizontalAlign="ALIGN_CENTER" normalBGBitmapPath="00_button_popup_normal.9.png" normalBitmapPath="" normalColor="" normalColorOpacity="100" normalTextColor="" pressedBGBitmapPath="00_button_popup_press.9.png" pressedBitmapPath="" pressedColor="" pressedColorOpacity="100" pressedTextColor="" text="" textSize="36" verticalAlign="ALIGN_MIDDLE"/>\r
+ <layout bottomRelation="" bottomRelationType="" centerHorizontal="true" centerVertical="false" height="72" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Portrait" rightRelation="" rightRelationType="" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="288" x="180" y="242"/>\r
+ <layout bottomRelation="" bottomRelationType="" centerHorizontal="false" centerVertical="false" height="72" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Landscape" rightRelation="" rightRelationType="" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="288" x="174" y="242"/>\r
+ </Button>\r
+</ScenePopup>\r
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>\r
+<!--\r
+ This XML file was automatically generated by UiBuilder - do not modify by hand.\r
+-->\r
+<!DOCTYPE ScenePanel SYSTEM "UIForm.dtd">\r
+<ScenePanel Bversion="3.0.0.201209071526" Dversion="20120315">\r
+ <Panel id="IDL_OPTION_TRAY_PANEL">\r
+ <property backgroundColor="" backgroundColorOpacity="0" compositeEnabled="true" groupStyle="GROUP_STYLE_NONE"/>\r
+ <layout height="104" mode="Portrait" type="LAYOUT_RELATIVE" width="720" x="0" y="0"/>\r
+ <layout height="104" mode="Landscape" type="LAYOUT_RELATIVE" width="720" x="0" y="0"/>\r
+ </Panel>\r
+ <Button id="IDC_BUTTON_DELETE" parent="IDL_OPTION_TRAY_PANEL">\r
+ <property disableTextColor="" disabledBitmapPath="" disabledColor="" disabledColorOpacity="100" highlightedBGBitmapPath="" highlightedColor="" highlightedColorOpacity="100" highlightedTextColor="" horizontalAlign="ALIGN_CENTER" normalBGBitmapPath="00_button_popup_normal.9.png" normalBitmapPath="" normalColor="" normalColorOpacity="100" normalTextColor="" pressedBGBitmapPath="00_button_popup_press.9.png" pressedBitmapPath="" pressedColor="" pressedColorOpacity="100" pressedTextColor="" text="::IDS_COM_SK_DELETE" textSize="33" verticalAlign="ALIGN_MIDDLE"/>\r
+ <layout bottomRelation="" bottomRelationType="" centerHorizontal="false" centerVertical="false" height="72" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Portrait" rightRelation="" rightRelationType="" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="218" x="16" y="16"/>\r
+ <layout bottomRelation="" bottomRelationType="" centerHorizontal="false" centerVertical="false" height="498" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Landscape" rightRelation="" rightRelationType="" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="72" x="6" y="0"/>\r
+ </Button>\r
+ <Button id="IDC_BUTTON_PREVIEW" parent="IDL_OPTION_TRAY_PANEL">\r
+ <property disableTextColor="" disabledBitmapPath="" disabledColor="" disabledColorOpacity="100" highlightedBGBitmapPath="" highlightedColor="" highlightedColorOpacity="100" highlightedTextColor="" horizontalAlign="ALIGN_CENTER" normalBGBitmapPath="00_button_popup_normal.9.png" normalBitmapPath="" normalColor="" normalColorOpacity="100" normalTextColor="" pressedBGBitmapPath="00_button_popup_press.9.png" pressedBitmapPath="" pressedColor="" pressedColorOpacity="100" pressedTextColor="" text="::IDS_COM_SK3_PREVIEW" textSize="33" verticalAlign="ALIGN_MIDDLE"/>\r
+ <layout bottomRelation="" bottomRelationType="" centerHorizontal="false" centerVertical="false" height="72" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Portrait" rightRelation="" rightRelationType="" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="218" x="251" y="15"/>\r
+ <layout bottomRelation="" bottomRelationType="" centerHorizontal="false" centerVertical="false" height="498" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Landscape" rightRelation="" rightRelationType="" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="72" x="21" y="0"/>\r
+ </Button>\r
+ <Button id="IDC_BUTTON_DURATION" parent="IDL_OPTION_TRAY_PANEL">\r
+ <property disableTextColor="" disabledBitmapPath="" disabledColor="" disabledColorOpacity="100" highlightedBGBitmapPath="" highlightedColor="" highlightedColorOpacity="100" highlightedTextColor="" horizontalAlign="ALIGN_CENTER" normalBGBitmapPath="00_button_popup_normal.9.png" normalBitmapPath="" normalColor="" normalColorOpacity="100" normalTextColor="" pressedBGBitmapPath="00_button_popup_press.9.png" pressedBitmapPath="" pressedColor="" pressedColorOpacity="100" pressedTextColor="" text="::IDS_MSGC_BUTTON2_DURATION_N_HPD_SECS" textSize="25" verticalAlign="ALIGN_MIDDLE"/>\r
+ <layout bottomRelation="" bottomRelationType="" centerHorizontal="false" centerVertical="false" height="72" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Portrait" rightRelation="" rightRelationType="" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="218" x="486" y="15"/>\r
+ <layout bottomRelation="" bottomRelationType="" centerHorizontal="false" centerVertical="false" height="498" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Landscape" rightRelation="" rightRelationType="" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="72" x="21" y="0"/>\r
+ </Button>\r
+</ScenePanel>\r
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>\r
+<!--\r
+ This XML file was automatically generated by UiBuilder - do not modify by hand.\r
+-->\r
+<!DOCTYPE ScenePanel SYSTEM "UIForm.dtd">\r
+<ScenePanel Bversion="3.0.0.201209071526" Dversion="20120315">\r
+ <Panel id="IDL_PANEL_ATTACH_FILES_LIST">\r
+ <property backgroundColor="" backgroundColorOpacity="0" compositeEnabled="true" groupStyle="GROUP_STYLE_NONE"/>\r
+ <layout height="128" mode="Portrait" type="NONE" width="688" x="0" y="0"/>\r
+ <layout height="300" mode="Landscape" type="NONE" width="93" x="0" y="0"/>\r
+ </Panel>\r
+ <ListView id="IDC_ATTACH_FILES_LISTVIEW" parent="IDL_PANEL_ATTACH_FILES_LIST">\r
+ <property backgroundColor="" backgroundColorOpacity="0" bitmapPathOfEmptyList="" colorOfEmptyListText="" fastScroll="false" itemDivider="true" itemDividerColor="" sweepEnabled="false" textOfEmptyList=""/>\r
+ <layout height="128" mode="Portrait" width="688" x="0" y="0"/>\r
+ <layout height="623" mode="Landscape" width="76" x="17" y="-323"/>\r
+ </ListView>\r
+</ScenePanel>\r
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>\r
+<!--\r
+ This XML file was automatically generated by UiBuilder - do not modify by hand.\r
+-->\r
+<!DOCTYPE ScenePopup SYSTEM "UIForm.dtd">\r
+<ScenePopup Bversion="3.0.0.201301111848" Dversion="20120315">\r
+ <Popup id="IDL_RECIPIENT_LIST_POPUP">\r
+ <property color="" titleText="::IDS_COM_POP_ATTACH" titleTextColor=""/>\r
+ <layout height="500" mode="Portrait" style="" type="LAYOUT_RELATIVE" width="720"/>\r
+ <layout height="500" mode="Landscape" style="" type="LAYOUT_RELATIVE" width="720"/>\r
+ </Popup>\r
+ <ListView id="IDC_OPTION_LISTVIEW" parent="IDL_RECIPIENT_LIST_POPUP">\r
+ <property backgroundBitmapPath="" backgroundColor="" backgroundColorOpacity="0" bitmapPathOfEmptyList="" colorOfEmptyListText="" fastScroll="false" itemDivider="true" itemDividerColor="" sweepEnabled="false" textOfEmptyList=""/>\r
+ <layout bottomRelation="" bottomRelationType="" centerHorizontal="false" centerVertical="false" height="336" horizontalFitPolicy="FIT_POLICY_PARENT" leftRelation="" leftRelationType="" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Portrait" rightRelation="" rightRelationType="" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="680" x="0" y="0"/>\r
+ <layout bottomRelation="" bottomRelationType="" centerHorizontal="false" centerVertical="false" height="328" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Landscape" rightRelation="" rightRelationType="" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="680" x="0" y="0"/>\r
+ </ListView>\r
+ <Button id="IDC_BUTTON_CLOSE" parent="IDL_RECIPIENT_LIST_POPUP">\r
+ <property disableTextColor="" disabledBitmapPath="00_button_popup_dim.9.png" disabledColor="" disabledColorOpacity="100" highlightedBGBitmapPath="" highlightedColor="" highlightedColorOpacity="100" highlightedTextColor="" horizontalAlign="ALIGN_CENTER" normalBGBitmapPath="00_button_popup_normal.9.png" normalBitmapPath="" normalColor="" normalColorOpacity="100" normalTextColor="" pressedBGBitmapPath="00_button_popup_press.9.png" pressedBitmapPath="" pressedColor="" pressedColorOpacity="100" pressedTextColor="" text="::IDS_COM_POP_CLOSE" textSize="33" verticalAlign="ALIGN_MIDDLE"/>\r
+ <layout bottomRelation="" bottomRelationType="" centerHorizontal="true" centerVertical="false" height="72" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Portrait" rightRelation="" rightRelationType="" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="300" x="190" y="345"/>\r
+ <layout bottomRelation="" bottomRelationType="" centerHorizontal="false" centerVertical="false" height="72" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Landscape" rightRelation="" rightRelationType="" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="300" x="190" y="345"/>\r
+ </Button>\r
+</ScenePopup>\r
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<!DOCTYPE ScenePanel SYSTEM "UIForm.dtd">
+<ScenePanel Bversion="3.0.0.201302021409" Dversion="20120315">
+ <Panel id="IDL_RECIPIENT_PANEL">
+ <property backgroundColor="" backgroundColorOpacity="0" compositeEnabled="true" groupStyle="GROUP_STYLE_NONE"/>
+ <layout height="146" mode="Portrait" type="NONE" width="720" x="0" y="0"/>
+ <layout height="146" mode="Landscape" type="NONE" width="720" x="0" y="0"/>
+ </Panel>
+ <Button id="IDC_CONTACT_BUTTON" parent="IDL_RECIPIENT_PANEL">
+ <property DisabledBitmapX="0" DisabledBitmapY="0" NormalBitmapX="0" NormalBitmapY="0" PressedBitmapX="0" PressedBitmapY="0" disableTextColor="" disabledBitmapPath="" disabledColor="" disabledColorOpacity="100" highlightedBGBitmapPath="" highlightedColor="" highlightedColorOpacity="100" highlightedTextColor="" horizontalAlign="ALIGN_CENTER" normalBGBitmapPath="" normalBitmapPath="M01_contact_default_image.png" normalColor="" normalColorOpacity="100" normalTextColor="" pressedBGBitmapPath="" pressedBitmapPath="M01_contact_default_image_press.png" pressedColor="" pressedColorOpacity="100" pressedTextColor="" text="" textSize="33" verticalAlign="ALIGN_MIDDLE"/>
+ <layout height="72" mode="Portrait" width="72" x="640" y="37"/>
+ <layout height="72" mode="Landscape" width="72" x="640" y="37"/>
+ </Button>
+ <ExpandableEditArea id="IDC_RECIPIENT_EXPANDABLEEDITAREA" parent="IDL_RECIPIENT_PANEL">
+ <property autoResizing="false" autoShrinkModeEnabled="false" disabledBGBitmapPath="" disabledColor="" disabledColorOpacity="100" disabledTextColor="" disabledTitleTextColor="" guideText="" guideTextColor="" highlightedBGBitmapPath="" highlightedColor="" highlightedColorOpacity="100" highlightedTextColor="" highlightedTitleTextColor="" horizontalMargin="10" keypadAction="KEYPAD_ACTION_ENTER" keypadStyle="KEYPAD_STYLE_NORMAL" limitLength="2048" linkTextColor="" lowerCaseMode="false" maxLines="2" normalBGBitmapPath="" normalColor="" normalColorOpacity="100" normalTextColor="" normalTitleTextColor="" normalTokenColor="" pressedBGBitmapPath="" pressedColor="" pressedColorOpacity="100" pressedTitleTextColor="" selectedTokenColor="" selectedTokenTextColor="" style="EXPANDABLE_EDIT_AREA_STYLE_TOKEN" text="" textPredictionEnabled="true" textSize="45" titleStyle="EXPANDABLE_EDIT_AREA_TITLE_STYLE_INNER" titleText="" tokenTextColor="" verticalMargin="10"/>
+ <layout height="92" mode="Portrait" width="580" x="16" y="28"/>
+ <layout height="92" mode="Landscape" width="608" x="16" y="28"/>
+ </ExpandableEditArea>
+ <Label id="IDC_RECIPINT_COUNT_LABEL" parent="IDL_RECIPIENT_PANEL">
+ <property backgroundBitmapPath="" backgroundColor="" backgroundColorOpacity="0" horizontalAlign="ALIGN_CENTER" text="" textColor="" textSize="29" textStyle="LABEL_TEXT_STYLE_NORMAL" verticalAlign="ALIGN_MIDDLE"/>
+ <layout height="39" mode="Portrait" width="44" x="597" y="53"/>
+ <layout height="39" mode="Landscape" width="101" x="521" y="28"/>
+ </Label>
+</ScenePanel>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<!DOCTYPE Scene SYSTEM "UIForm.dtd">
+<Scene Bversion="3.0.0.201302021409" Dversion="20120315">
+ <LogicalCoordinate>720</LogicalCoordinate>
+ <Form id="IDL_SETTINGS_FORM">
+ <property backgroundColor="" backgroundColorOpacity="100" orientation="Portrait" softKey0NormalIcon="" softKey0PressedIcon="" softKey0Text="" softKey1NormalIcon="" softKey1PressedIcon="" softKey1Text="" title="" titleAlign="ALIGN_CENTER" titleIcon="" translucentFooter="false" translucentHeader="false" translucentIndicator="false"/>
+ <layout mode="Portrait" style="FORM_STYLE_INDICATOR|FORM_STYLE_HEADER|FORM_STYLE_FOOTER" type="LAYOUT_RELATIVE"/>
+ <layout mode="Landscape" style="FORM_STYLE_INDICATOR|FORM_STYLE_HEADER|FORM_STYLE_FOOTER" type="LAYOUT_RELATIVE"/>
+ </Form>
+ <Footer>
+ <property backgroundBitmapPath="" color="" colorOpacity="100" disabledButtonColor="" disabledButtonColorOpacity="100" disabledButtonTextColor="" disabledItemColor="" disabledItemColorOpacity="100" disabledItemTextColor="" footerStyle="FOOTER_STYLE_SEGMENTED_ICON" highlightedButtonColor="" highlightedButtonColorOpacity="100" highlightedButtonTextColor="" highlightedItemColor="" highlightedItemColorOpacity="100" highlightedItemTextColor="" normalButtonColor="" normalButtonColorOpacity="100" normalButtonTextColor="" normalItemColor="" normalItemColorOpacity="100" normalItemTextColor="" pressedButtonColor="" pressedButtonColorOpacity="100" pressedButtonTextColor="" pressedItemColor="" pressedItemColorOpacity="100" pressedItemTextColor="" selectedItemColor="" selectedItemColorOpacity="100" selectedItemTextColor="" showBackButton="true"/>
+ <itemSet/>
+ </Footer>
+ <Header>
+ <property backgroundBitmapPath="" color="" colorOpacity="100" descriptionText="" descriptionTextColor="" disabledButtonColor="" disabledButtonColorOpacity="100" disabledButtonTextColor="" disabledItemColor="" disabledItemColorOpacity="100" disabledItemTextColor="" headerStyle="HEADER_STYLE_TITLE" highlightedButtonColor="" highlightedButtonColorOpacity="100" highlightedButtonTextColor="" highlightedItemColor="" highlightedItemColorOpacity="100" highlightedItemTextColor="" normalButtonColor="" normalButtonColorOpacity="100" normalButtonTextColor="" normalItemColor="" normalItemColorOpacity="100" normalItemTextColor="" pressedButtonColor="" pressedButtonColorOpacity="100" pressedButtonTextColor="" pressedItemColor="" pressedItemColorOpacity="100" pressedItemTextColor="" selectedItemColor="" selectedItemColorOpacity="100" selectedItemTextColor="" titleIconPath="" titleText="::IDS_COM_BODY_MESSAGES" titleTextColor=""/>
+ <itemSet/>
+ </Header>
+ <GroupedTableView id="IDC_GROUPEDTABLEVIEW_SETTINGS" parent="IDL_SETTINGS_FORM">
+ <property backgroundColor="" backgroundColorOpacity="0" collapseByPinchEnabled="true" fastScrollIndex="" groupedLookEnabled="true" itemDivider="true" itemDividerColor="" scrollBarStyle="TABLE_VIEW_SCROLL_BAR_STYLE_FADE_OUT" scrollInputMode="SCROLL_INPUT_MODE_RESTRICT_TO_INITIAL_DIRECTION" useSearchIcon="false"/>
+ <layout bottomRelation="IDL_SETTINGS_FORM" bottomRelationType="RECT_EDGE_RELATION_BOTTOM_TO_BOTTOM" centerHorizontal="false" centerVertical="false" height="1011" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Portrait" rightRelation="" rightRelationType="" topRelation="IDL_SETTINGS_FORM" topRelationType="RECT_EDGE_RELATION_TOP_TO_TOP" verticalFitPolicy="FIT_POLICY_FIXED" width="683" x="16" y="0"/>
+ <layout bottomRelation="" bottomRelationType="" centerHorizontal="false" centerVertical="false" height="124" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Landscape" rightRelation="" rightRelationType="" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="730" x="442" y="110"/>
+ </GroupedTableView>
+ <ListView id="IDC_LISTVIEW_EMPTY_BG" parent="IDL_SETTINGS_FORM">
+ <property backgroundBitmapPath="" backgroundColor="" backgroundColorOpacity="0" bitmapPathOfEmptyList="00_Nocontents_text.png" colorOfEmptyListText="" fastScroll="false" itemDivider="true" itemDividerColor="" sweepEnabled="false" textOfEmptyList="No contents"/>
+ <layout bottomRelation="IDL_SETTINGS_FORM" bottomRelationType="RECT_EDGE_RELATION_BOTTOM_TO_BOTTOM" centerHorizontal="true" centerVertical="true" height="1011" horizontalFitPolicy="FIT_POLICY_PARENT" leftRelation="" leftRelationType="" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Portrait" rightRelation="" rightRelationType="" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_PARENT" width="720" x="0" y="0"/>
+ <layout bottomRelation="" bottomRelationType="" centerHorizontal="false" centerVertical="false" height="124" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Landscape" rightRelation="" rightRelationType="" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="730" x="446" y="360"/>
+ </ListView>
+</Scene>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<!DOCTYPE Scene SYSTEM "UIForm.dtd">
+<Scene Bversion="3.0.0.201302021409" Dversion="20120315">
+ <LogicalCoordinate>720</LogicalCoordinate>
+ <Form id="IDL_SETTING_DELETE_FILTER_FORM">
+ <property backgroundColor="" backgroundColorOpacity="100" orientation="Portrait" softKey0NormalIcon="" softKey0PressedIcon="" softKey0Text="" softKey1NormalIcon="" softKey1PressedIcon="" softKey1Text="" title="" titleAlign="ALIGN_CENTER" titleIcon="" translucentFooter="false" translucentHeader="false" translucentIndicator="false"/>
+ <layout mode="Portrait" style="FORM_STYLE_INDICATOR|FORM_STYLE_HEADER|FORM_STYLE_FOOTER" type="LAYOUT_RELATIVE"/>
+ <layout mode="Landscape" style="FORM_STYLE_INDICATOR|FORM_STYLE_HEADER|FORM_STYLE_FOOTER" type="LAYOUT_RELATIVE"/>
+ </Form>
+ <Footer>
+ <property backgroundBitmapPath="" color="" colorOpacity="100" disabledButtonColor="" disabledButtonColorOpacity="100" disabledButtonTextColor="" disabledItemColor="" disabledItemColorOpacity="100" disabledItemTextColor="" footerStyle="FOOTER_STYLE_TAB" highlightedButtonColor="" highlightedButtonColorOpacity="100" highlightedButtonTextColor="" highlightedItemColor="" highlightedItemColorOpacity="100" highlightedItemTextColor="" normalButtonColor="" normalButtonColorOpacity="100" normalButtonTextColor="" normalItemColor="" normalItemColorOpacity="100" normalItemTextColor="" pressedButtonColor="" pressedButtonColorOpacity="100" pressedButtonTextColor="" pressedItemColor="" pressedItemColorOpacity="100" pressedItemTextColor="" selectedItemColor="" selectedItemColorOpacity="100" selectedItemTextColor="" showBackButton="false"/>
+ <itemSet/>
+ </Footer>
+ <Header>
+ <property backgroundBitmapPath="" color="" colorOpacity="100" descriptionText="" descriptionTextColor="" disabledButtonColor="" disabledButtonColorOpacity="100" disabledButtonTextColor="" disabledItemColor="" disabledItemColorOpacity="100" disabledItemTextColor="" headerStyle="HEADER_STYLE_TITLE" highlightedButtonColor="" highlightedButtonColorOpacity="100" highlightedButtonTextColor="" highlightedItemColor="" highlightedItemColorOpacity="100" highlightedItemTextColor="" normalButtonColor="" normalButtonColorOpacity="100" normalButtonTextColor="" normalItemColor="" normalItemColorOpacity="100" normalItemTextColor="" pressedButtonColor="" pressedButtonColorOpacity="100" pressedButtonTextColor="" pressedItemColor="" pressedItemColorOpacity="100" pressedItemTextColor="" selectedItemColor="" selectedItemColorOpacity="100" selectedItemTextColor="" titleIconPath="" titleText="" titleTextColor=""/>
+ <itemSet/>
+ </Header>
+ <CheckButton id="IDC_CHECKBUTTON_SELECTALL" parent="IDL_SETTING_DELETE_FILTER_FORM">
+ <property backgroundStyle="BACKGROUND_STYLE_DEFAULT" colorOfText="" colorOfTitleText="" disabledColor="" disabledColorOpacity="100" disabledTextColor="" disabledTitleTextColor="" groupId="0" groupStyle="GROUP_STYLE_NONE" highlightedColor="" highlightedColorOpacity="100" highlightedTextColor="" highlightedTitleTextColor="" horizontalAlign="ALIGN_LEFT" normalColor="" normalColorOpacity="100" pressedColor="" pressedColorOpacity="100" pressedTextColor="" pressedTitleTextColor="" showTitleText="false" text="::IDS_COM_BODY_SELECT_ALL" titleText="" verticalAlign="ALIGN_MIDDLE"/>
+ <layout bottomRelation="" bottomRelationType="" centerHorizontal="false" centerVertical="false" height="108" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Portrait" rightRelation="" rightRelationType="" style="" topRelation="IDL_SETTING_DELETE_FILTER_FORM" topRelationType="RECT_EDGE_RELATION_TOP_TO_TOP" verticalFitPolicy="FIT_POLICY_FIXED" width="710" x="0" y="0"/>
+ <layout bottomRelation="" bottomRelationType="" centerHorizontal="false" centerVertical="false" height="108" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Landscape" rightRelation="" rightRelationType="" style="" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="533" x="496" y="0"/>
+ </CheckButton>
+ <Label id="IDC_LABEL_SELECTINFO" parent="IDL_SETTING_DELETE_FILTER_FORM">
+ <property backgroundBitmapPath="" backgroundColor="" backgroundColorOpacity="0" horizontalAlign="ALIGN_LEFT" text="" textColor="" textSize="33" textStyle="LABEL_TEXT_STYLE_NORMAL" verticalAlign="ALIGN_TOP"/>
+ <layout bottomRelation="IDL_SETTING_DELETE_FILTER_FORM" bottomRelationType="RECT_EDGE_RELATION_BOTTOM_TO_BOTTOM" centerHorizontal="false" centerVertical="false" height="44" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Portrait" rightRelation="" rightRelationType="" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="720" x="0" y="967"/>
+ <layout bottomRelation="" bottomRelationType="" centerHorizontal="false" centerVertical="false" height="34" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Landscape" rightRelation="" rightRelationType="" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="533" x="426" y="430"/>
+ </Label>
+ <GroupedTableView id="IDC_GROUPEDTABLEVIEW_FILTERLIST" parent="IDL_SETTING_DELETE_FILTER_FORM">
+ <property backgroundColor="" backgroundColorOpacity="0" collapseByPinchEnabled="false" fastScrollIndex="" groupedLookEnabled="false" itemDivider="true" itemDividerColor="" scrollBarStyle="TABLE_VIEW_SCROLL_BAR_STYLE_NONE" scrollInputMode="SCROLL_INPUT_MODE_ALLOW_ANY_DIRECTION" useSearchIcon="false"/>
+ <layout bottomRelation="IDC_LABEL_SELECTINFO" bottomRelationType="RECT_EDGE_RELATION_BOTTOM_TO_TOP" centerHorizontal="false" centerVertical="false" height="859" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Portrait" rightRelation="" rightRelationType="" topRelation="IDC_CHECKBUTTON_SELECTALL" topRelationType="RECT_EDGE_RELATION_TOP_TO_BOTTOM" verticalFitPolicy="FIT_POLICY_FIXED" width="710" x="0" y="108"/>
+ <layout bottomRelation="" bottomRelationType="" centerHorizontal="false" centerVertical="false" height="124" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Landscape" rightRelation="" rightRelationType="" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="730" x="467" y="123"/>
+ </GroupedTableView>
+</Scene>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>\r
+<!--\r
+ This XML file was automatically generated by UiBuilder - do not modify by hand.\r
+-->\r
+<!DOCTYPE Scene SYSTEM "UIForm.dtd">\r
+<Scene Bversion="3.0.0.201212201745" Dversion="20120315">\r
+ <LogicalCoordinate>720</LogicalCoordinate>\r
+ <Form id="IDL_SETTING_EDIT_ADD_REJECT_NUMBER_FORM">\r
+ <property backgroundColor="" backgroundColorOpacity="100" orientation="Portrait" softKey0NormalIcon="" softKey0PressedIcon="" softKey0Text="" softKey1NormalIcon="" softKey1PressedIcon="" softKey1Text="" title="" titleAlign="ALIGN_CENTER" titleIcon="" translucentFooter="false" translucentHeader="false" translucentIndicator="false"/>\r
+ <layout mode="Portrait" style="FORM_STYLE_INDICATOR|FORM_STYLE_HEADER|FORM_STYLE_FOOTER" type="NONE"/>\r
+ <layout mode="Landscape" style="FORM_STYLE_INDICATOR|FORM_STYLE_HEADER|FORM_STYLE_FOOTER" type="NONE"/>\r
+ </Form>\r
+ <Footer>\r
+ <property backgroundBitmapPath="" color="" colorOpacity="100" disabledButtonColor="" disabledButtonColorOpacity="100" disabledButtonTextColor="" disabledItemColor="" disabledItemColorOpacity="100" disabledItemTextColor="" footerStyle="FOOTER_STYLE_TAB" highlightedButtonColor="" highlightedButtonColorOpacity="100" highlightedButtonTextColor="" highlightedItemColor="" highlightedItemColorOpacity="100" highlightedItemTextColor="" normalButtonColor="" normalButtonColorOpacity="100" normalButtonTextColor="" normalItemColor="" normalItemColorOpacity="100" normalItemTextColor="" pressedButtonColor="" pressedButtonColorOpacity="100" pressedButtonTextColor="" pressedItemColor="" pressedItemColorOpacity="100" pressedItemTextColor="" selectedItemColor="" selectedItemColorOpacity="100" selectedItemTextColor="" showBackButton="false"/>\r
+ <itemSet/>\r
+ </Footer>\r
+ <Header>\r
+ <property backgroundBitmapPath="" color="" colorOpacity="100" descriptionText="" descriptionTextColor="" disabledButtonColor="" disabledButtonColorOpacity="100" disabledButtonTextColor="" disabledItemColor="" disabledItemColorOpacity="100" disabledItemTextColor="" headerStyle="HEADER_STYLE_TITLE" highlightedButtonColor="" highlightedButtonColorOpacity="100" highlightedButtonTextColor="" highlightedItemColor="" highlightedItemColorOpacity="100" highlightedItemTextColor="" normalButtonColor="" normalButtonColorOpacity="100" normalButtonTextColor="" normalItemColor="" normalItemColorOpacity="100" normalItemTextColor="" pressedButtonColor="" pressedButtonColorOpacity="100" pressedButtonTextColor="" pressedItemColor="" pressedItemColorOpacity="100" pressedItemTextColor="" selectedItemColor="" selectedItemColorOpacity="100" selectedItemTextColor="" titleIconPath="" titleText="" titleTextColor=""/>\r
+ <itemSet/>\r
+ </Header>\r
+ <Label id="IDC_LABEL_NUMBER" parent="IDL_SETTING_EDIT_ADD_REJECT_NUMBER_FORM">\r
+ <property backgroundBitmapPath="" backgroundColor="" backgroundColorOpacity="0" horizontalAlign="ALIGN_LEFT" text="::IDS_MSGF_BODY_ENTER_NUMBER" textColor="" textSize="33" textStyle="LABEL_TEXT_STYLE_NORMAL" verticalAlign="ALIGN_BOTTOM"/>\r
+ <layout height="56" mode="Portrait" width="703" x="12" y="11"/>\r
+ <layout height="52" mode="Landscape" width="533" x="234" y="0"/>\r
+ </Label>\r
+ <Button id="IDC_BUTTON_CONTACT" parent="IDL_SETTING_EDIT_ADD_REJECT_NUMBER_FORM">\r
+ <property disableTextColor="" disabledBitmapPath="" disabledColor="" disabledColorOpacity="100" highlightedBGBitmapPath="" highlightedColor="" highlightedColorOpacity="100" highlightedTextColor="" horizontalAlign="ALIGN_CENTER" normalBGBitmapPath="M01_contact_default_image.png" normalBitmapPath="M01_contact_default_image.png" normalColor="" normalColorOpacity="100" normalTextColor="" pressedBGBitmapPath="M01_contact_default_image_press.png" pressedBitmapPath="M01_contact_default_image_press.png" pressedColor="" pressedColorOpacity="100" pressedTextColor="" text="" textSize="33" verticalAlign="ALIGN_MIDDLE"/>\r
+ <layout height="72" mode="Portrait" width="72" x="615" y="77"/>\r
+ <layout height="72" mode="Landscape" width="154" x="1125" y="0"/>\r
+ </Button>\r
+ <EditField id="IDC_EDITFIELD_NUMBER" parent="IDL_SETTING_EDIT_ADD_REJECT_NUMBER_FORM">\r
+ <property commandButtonVisible="true" disabledBGBitmapPath="" disabledColor="" disabledColorOpacity="100" disabledTextColor="" ellipsisPosition="ELLIPSIS_POSITION_END" enableClear="true" groupStyle="GROUP_STYLE_NONE" guideText="" guideTextColor="" highlightedBGBitmapPath="" highlightedColor="" highlightedColorOpacity="100" highlightedTextColor="" horizontalMargin="16" inputStyle="INPUT_STYLE_OVERLAY" keypadAction="KEYPAD_ACTION_ENTER" keypadEnabled="true" limitLength="100" linkTextColor="" lowerCaseMode="false" normalBGBitmapPath="" normalColor="" normalColorOpacity="100" normalTextColor="" pressedBGBitmapPath="" pressedColor="" pressedColorOpacity="100" text="" textHorizontalAlignment="ALIGNMENT_LEFT" textSize="45" titleStyle="EDIT_FIELD_TITLE_STYLE_NONE" titleText="" titleTextColor="" verticalMargin="12" viewMode="false"/>\r
+ <layout height="90" mode="Portrait" style="EDIT_FIELD_STYLE_PHONE_NUMBER" width="585" x="12" y="68"/>\r
+ <layout height="90" mode="Landscape" style="EDIT_FIELD_STYLE_PHONE_NUMBER" width="426" x="254" y="0"/>\r
+ </EditField>\r
+ <GroupedTableView id="IDC_GROUPEDTABLEVIEW_MATCH_CRITERIA" parent="IDL_SETTING_EDIT_ADD_REJECT_NUMBER_FORM">\r
+ <property backgroundColor="" backgroundColorOpacity="0" collapseByPinchEnabled="false" fastScrollIndex="" groupedLookEnabled="false" itemDivider="true" itemDividerColor="" scrollBarStyle="TABLE_VIEW_SCROLL_BAR_STYLE_NONE" scrollInputMode="SCROLL_INPUT_MODE_ALLOW_ANY_DIRECTION" useSearchIcon="false"/>\r
+ <layout height="848" mode="Portrait" width="671" x="16" y="168"/>\r
+ <layout height="124" mode="Landscape" width="730" x="360" y="223"/>\r
+ </GroupedTableView>\r
+</Scene>\r
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>\r
+<!--\r
+ This XML file was automatically generated by UiBuilder - do not modify by hand.\r
+-->\r
+<!DOCTYPE Scene SYSTEM "UIForm.dtd">\r
+<Scene Bversion="3.0.0.201208240913" Dversion="20120315">\r
+ <LogicalCoordinate>720</LogicalCoordinate>\r
+ <Form id="IDL_SETTING_EDIT_ADD_WORDS_FORM">\r
+ <property backgroundColor="" backgroundColorOpacity="100" orientation="Portrait" softKey0NormalIcon="" softKey0PressedIcon="" softKey0Text="" softKey1NormalIcon="" softKey1PressedIcon="" softKey1Text="" title="" titleAlign="ALIGN_CENTER" titleIcon="" translucentFooter="false" translucentHeader="false" translucentIndicator="false"/>\r
+ <layout mode="Portrait" style="FORM_STYLE_INDICATOR|FORM_STYLE_HEADER" type="NONE"/>\r
+ <layout mode="Landscape" style="FORM_STYLE_INDICATOR|FORM_STYLE_HEADER" type="NONE"/>\r
+ </Form>\r
+ <Header>\r
+ <property backgroundBitmapPath="" color="" colorOpacity="100" descriptionText="" descriptionTextColor="" disabledButtonColor="" disabledButtonColorOpacity="100" disabledButtonTextColor="" disabledItemColor="" disabledItemColorOpacity="100" disabledItemTextColor="" headerStyle="HEADER_STYLE_TITLE" highlightedButtonColor="" highlightedButtonColorOpacity="100" highlightedButtonTextColor="" highlightedItemColor="" highlightedItemColorOpacity="100" highlightedItemTextColor="" normalButtonColor="" normalButtonColorOpacity="100" normalButtonTextColor="" normalItemColor="" normalItemColorOpacity="100" normalItemTextColor="" pressedButtonColor="" pressedButtonColorOpacity="100" pressedButtonTextColor="" pressedItemColor="" pressedItemColorOpacity="100" pressedItemTextColor="" selectedItemColor="" selectedItemColorOpacity="100" selectedItemTextColor="" titleIconPath="" titleText="" titleTextColor=""/>\r
+ <itemSet/>\r
+ </Header>\r
+ <Label id="IDC_LABEL_WORD" parent="IDL_SETTING_EDIT_ADD_WORDS_FORM">\r
+ <property backgroundBitmapPath="" backgroundColor="" backgroundColorOpacity="0" horizontalAlign="ALIGN_LEFT" text="::IDS_WORD" textColor="" textSize="33" textStyle="LABEL_TEXT_STYLE_NORMAL" verticalAlign="ALIGN_BOTTOM"/>\r
+ <layout height="53" mode="Portrait" width="686" x="22" y="7"/>\r
+ <layout height="52" mode="Landscape" width="533" x="96" y="0"/>\r
+ </Label>\r
+ <EditField id="IDC_EDITFIELD_WORD" parent="IDL_SETTING_EDIT_ADD_WORDS_FORM">\r
+ <property disabledBGBitmapPath="" disabledColor="" disabledColorOpacity="100" disabledTextColor="" ellipsisPosition="ELLIPSIS_POSITION_START" enableClear="true" groupStyle="GROUP_STYLE_NONE" guideText="" guideTextColor="" highlightedBGBitmapPath="" highlightedColor="" highlightedColorOpacity="100" highlightedTextColor="" horizontalMargin="16" inputStyle="INPUT_STYLE_OVERLAY" keypadAction="KEYPAD_ACTION_ENTER" keypadEnabled="true" limitLength="100" linkTextColor="" lowerCaseMode="false" normalBGBitmapPath="" normalColor="" normalColorOpacity="100" normalTextColor="" pressedBGBitmapPath="" pressedColor="" pressedColorOpacity="100" text="" textHorizontalAlignment="ALIGNMENT_LEFT" textSize="45" titleStyle="EDIT_FIELD_TITLE_STYLE_NONE" titleText="" titleTextColor="" verticalMargin="12" viewMode="false"/>\r
+ <layout height="90" mode="Portrait" style="EDIT_FIELD_STYLE_NORMAL" width="686" x="22" y="60"/>\r
+ <layout height="90" mode="Landscape" style="EDIT_FIELD_STYLE_NORMAL" width="426" x="247" y="0"/>\r
+ </EditField>\r
+</Scene>\r
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>\r
+<!--\r
+ This XML file was automatically generated by UiBuilder - do not modify by hand.\r
+-->\r
+<!DOCTYPE Scene SYSTEM "UIForm.dtd">\r
+<Scene Bversion="3.0.0.201301081740" Dversion="20120315">\r
+ <LogicalCoordinate>720</LogicalCoordinate>\r
+ <Form id="IDL_SETTING_EDIT_SERVICE_CENTER_FORM">\r
+ <property backgroundColor="" backgroundColorOpacity="100" orientation="Portrait" softKey0NormalIcon="" softKey0PressedIcon="" softKey0Text="" softKey1NormalIcon="" softKey1PressedIcon="" softKey1Text="" title="" titleAlign="ALIGN_CENTER" titleIcon="" translucentFooter="false" translucentHeader="false" translucentIndicator="false"/>\r
+ <layout mode="Portrait" style="FORM_STYLE_INDICATOR|FORM_STYLE_HEADER" type="NONE"/>\r
+ <layout mode="Landscape" style="FORM_STYLE_INDICATOR|FORM_STYLE_HEADER" type="NONE"/>\r
+ </Form>\r
+ <Header>\r
+ <property backgroundBitmapPath="" color="" colorOpacity="100" descriptionText="" descriptionTextColor="" disabledButtonColor="" disabledButtonColorOpacity="100" disabledButtonTextColor="" disabledItemColor="" disabledItemColorOpacity="100" disabledItemTextColor="" headerStyle="HEADER_STYLE_TITLE" highlightedButtonColor="" highlightedButtonColorOpacity="100" highlightedButtonTextColor="" highlightedItemColor="" highlightedItemColorOpacity="100" highlightedItemTextColor="" normalButtonColor="" normalButtonColorOpacity="100" normalButtonTextColor="" normalItemColor="" normalItemColorOpacity="100" normalItemTextColor="" pressedButtonColor="" pressedButtonColorOpacity="100" pressedButtonTextColor="" pressedItemColor="" pressedItemColorOpacity="100" pressedItemTextColor="" selectedItemColor="" selectedItemColorOpacity="100" selectedItemTextColor="" titleIconPath="" titleText="::IDS_MSGF_BODY_CENTRE_PD" titleTextColor=""/>\r
+ <itemSet>\r
+ <buttonItem actionId="0" disabledBGBitmapPath="" disabledIconPath="" highlightedBGBitmapPath="" highlightedIconPath="" normalBGBitmapPath="" normalIconPath="" position="BUTTON_POSITION_RIGHT" pressedBGBitmapPath="" pressedIconPath="" style="BUTTON_ITEM_STYLE_TEXT" text="::IDS_COM_SK_CANCEL" type="right"/>\r
+ <buttonItem actionId="0" disabledBGBitmapPath="" disabledIconPath="" highlightedBGBitmapPath="" highlightedIconPath="" normalBGBitmapPath="" normalIconPath="" position="BUTTON_POSITION_LEFT" pressedBGBitmapPath="" pressedIconPath="" style="BUTTON_ITEM_STYLE_TEXT" text="::IDS_COM_SK_DONE" type="left"/>\r
+ </itemSet>\r
+ </Header>\r
+ <EditField id="IDC_EDITFIELD" parent="IDL_SETTING_EDIT_SERVICE_CENTER_FORM">\r
+ <property commandButtonVisible="true" disabledBGBitmapPath="" disabledColor="" disabledColorOpacity="100" disabledTextColor="" ellipsisPosition="ELLIPSIS_POSITION_END" enableClear="true" groupStyle="GROUP_STYLE_MIDDLE" guideText="" guideTextColor="" highlightedBGBitmapPath="" highlightedColor="" highlightedColorOpacity="100" highlightedTextColor="" horizontalMargin="16" inputStyle="INPUT_STYLE_OVERLAY" keypadAction="KEYPAD_ACTION_ENTER" keypadEnabled="true" limitLength="100" linkTextColor="" lowerCaseMode="false" normalBGBitmapPath="" normalColor="" normalColorOpacity="100" normalTextColor="" pressedBGBitmapPath="" pressedColor="" pressedColorOpacity="100" text="" textHorizontalAlignment="ALIGNMENT_LEFT" textSize="30" titleStyle="EDIT_FIELD_TITLE_STYLE_NONE" titleText="::IDS_MSGF_BODY_CENTRE_PD" titleTextColor="#BFBFBF" verticalMargin="12" viewMode="false"/>\r
+ <layout height="90" mode="Portrait" style="EDIT_FIELD_STYLE_PHONE_NUMBER" width="694" x="15" y="51"/>\r
+ <layout height="90" mode="Landscape" style="EDIT_FIELD_STYLE_PHONE_NUMBER" width="426" x="320" y="0"/>\r
+ </EditField>\r
+ <Label id="IDC_LABEL" parent="IDL_SETTING_EDIT_SERVICE_CENTER_FORM">\r
+ <property backgroundBitmapPath="" backgroundColor="" backgroundColorOpacity="0" horizontalAlign="ALIGN_LEFT" text="Centre" textColor="" textSize="33" textStyle="LABEL_TEXT_STYLE_NORMAL" verticalAlign="ALIGN_BOTTOM"/>\r
+ <layout height="38" mode="Portrait" width="694" x="15" y="13"/>\r
+ <layout height="52" mode="Landscape" width="533" x="179" y="0"/>\r
+ </Label>\r
+</Scene>\r
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>\r
+<!--\r
+ This XML file was automatically generated by UiBuilder - do not modify by hand.\r
+-->\r
+<!DOCTYPE Scene SYSTEM "UIForm.dtd">\r
+<Scene Bversion="3.0.0.201208240913" Dversion="20120315">\r
+ <LogicalCoordinate>720</LogicalCoordinate>\r
+ <Form id="IDL_SMS_VIEWER_FORM">\r
+ <property backgroundColor="" backgroundColorOpacity="100" orientation="Automatic" softKey0NormalIcon="" softKey0PressedIcon="" softKey0Text="" softKey1NormalIcon="" softKey1PressedIcon="" softKey1Text="" title="" titleAlign="ALIGN_CENTER" titleIcon="" translucentFooter="false" translucentHeader="false" translucentIndicator="false"/>\r
+ <layout mode="Portrait" style="FORM_STYLE_INDICATOR|FORM_STYLE_HEADER|FORM_STYLE_FOOTER" type="LAYOUT_RELATIVE"/>\r
+ <layout mode="Landscape" style="FORM_STYLE_INDICATOR|FORM_STYLE_HEADER|FORM_STYLE_FOOTER" type="LAYOUT_RELATIVE"/>\r
+ </Form>\r
+ <Footer>\r
+ <property backgroundBitmapPath="" color="" colorOpacity="0" disabledButtonColor="" disabledButtonColorOpacity="0" disabledButtonTextColor="" disabledItemColor="" disabledItemColorOpacity="100" disabledItemTextColor="" footerStyle="FOOTER_STYLE_BUTTON_ICON" highlightedButtonColor="" highlightedButtonColorOpacity="0" highlightedButtonTextColor="" highlightedItemColor="" highlightedItemColorOpacity="100" highlightedItemTextColor="" normalButtonColor="" normalButtonColorOpacity="0" normalButtonTextColor="" normalItemColor="" normalItemColorOpacity="100" normalItemTextColor="" pressedButtonColor="" pressedButtonColorOpacity="0" pressedButtonTextColor="" pressedItemColor="" pressedItemColorOpacity="100" pressedItemTextColor="" selectedItemColor="" selectedItemColorOpacity="100" selectedItemTextColor="" showBackButton="true"/>\r
+ <itemSet/>\r
+ </Footer>\r
+ <Header>\r
+ <property backgroundBitmapPath="" color="" colorOpacity="0" descriptionText="" descriptionTextColor="" disabledButtonColor="" disabledButtonColorOpacity="0" disabledButtonTextColor="" disabledItemColor="" disabledItemColorOpacity="0" disabledItemTextColor="" headerStyle="HEADER_STYLE_TITLE" highlightedButtonColor="" highlightedButtonColorOpacity="0" highlightedButtonTextColor="" highlightedItemColor="" highlightedItemColorOpacity="0" highlightedItemTextColor="" normalButtonColor="" normalButtonColorOpacity="0" normalButtonTextColor="" normalItemColor="" normalItemColorOpacity="0" normalItemTextColor="" pressedButtonColor="" pressedButtonColorOpacity="0" pressedButtonTextColor="" pressedItemColor="" pressedItemColorOpacity="0" pressedItemTextColor="" selectedItemColor="" selectedItemColorOpacity="0" selectedItemTextColor="" titleIconPath="" titleText="" titleTextColor=""/>\r
+ <itemSet/>\r
+ </Header>\r
+</Scene>\r
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<!DOCTYPE Scene SYSTEM "UIForm.dtd">
+<Scene Bversion="3.0.0.201302021409" Dversion="20120315">
+ <LogicalCoordinate>720</LogicalCoordinate>
+ <Form id="IDL_THREAD_LIST_EDIT_FORM">
+ <property backgroundColor="" backgroundColorOpacity="100" orientation="Portrait" softKey0NormalIcon="" softKey0PressedIcon="" softKey0Text="" softKey1NormalIcon="" softKey1PressedIcon="" softKey1Text="" title="" titleAlign="ALIGN_CENTER" titleIcon="" translucentFooter="false" translucentHeader="false" translucentIndicator="false"/>
+ <layout mode="Portrait" style="FORM_STYLE_INDICATOR|FORM_STYLE_HEADER|FORM_STYLE_FOOTER" type="LAYOUT_RELATIVE"/>
+ <layout mode="Landscape" style="FORM_STYLE_INDICATOR|FORM_STYLE_HEADER|FORM_STYLE_FOOTER" type="LAYOUT_RELATIVE"/>
+ </Form>
+ <Footer>
+ <property backgroundBitmapPath="" color="" colorOpacity="100" disabledButtonColor="" disabledButtonColorOpacity="100" disabledButtonTextColor="" disabledItemColor="" disabledItemColorOpacity="100" disabledItemTextColor="" footerStyle="FOOTER_STYLE_TAB" highlightedButtonColor="" highlightedButtonColorOpacity="100" highlightedButtonTextColor="" highlightedItemColor="" highlightedItemColorOpacity="100" highlightedItemTextColor="" normalButtonColor="" normalButtonColorOpacity="100" normalButtonTextColor="" normalItemColor="" normalItemColorOpacity="100" normalItemTextColor="" pressedButtonColor="" pressedButtonColorOpacity="100" pressedButtonTextColor="" pressedItemColor="" pressedItemColorOpacity="100" pressedItemTextColor="" selectedItemColor="" selectedItemColorOpacity="100" selectedItemTextColor="" showBackButton="false"/>
+ <itemSet/>
+ </Footer>
+ <Header>
+ <property backgroundBitmapPath="" color="" colorOpacity="100" descriptionText="" descriptionTextColor="" disabledButtonColor="" disabledButtonColorOpacity="100" disabledButtonTextColor="" disabledItemColor="" disabledItemColorOpacity="100" disabledItemTextColor="" headerStyle="HEADER_STYLE_TITLE" highlightedButtonColor="" highlightedButtonColorOpacity="100" highlightedButtonTextColor="" highlightedItemColor="" highlightedItemColorOpacity="100" highlightedItemTextColor="" normalButtonColor="" normalButtonColorOpacity="100" normalButtonTextColor="" normalItemColor="" normalItemColorOpacity="100" normalItemTextColor="" pressedButtonColor="" pressedButtonColorOpacity="100" pressedButtonTextColor="" pressedItemColor="" pressedItemColorOpacity="100" pressedItemTextColor="" selectedItemColor="" selectedItemColorOpacity="100" selectedItemTextColor="" titleIconPath="" titleText="" titleTextColor=""/>
+ <itemSet/>
+ </Header>
+ <Label id="IDC_THREAD_EDIT_LABEL" parent="IDL_THREAD_LIST_EDIT_FORM">
+ <property backgroundBitmapPath="" backgroundColor="" backgroundColorOpacity="0" horizontalAlign="ALIGN_CENTER" text="" textColor="" textSize="33" textStyle="LABEL_TEXT_STYLE_NORMAL" verticalAlign="ALIGN_BOTTOM"/>
+ <layout bottomRelation="IDL_THREAD_LIST_EDIT_FORM" bottomRelationType="RECT_EDGE_RELATION_BOTTOM_TO_BOTTOM" centerHorizontal="false" centerVertical="false" height="45" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Portrait" rightRelation="" rightRelationType="" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="720" x="0" y="966"/>
+ <layout bottomRelation="" bottomRelationType="" centerHorizontal="false" centerVertical="false" height="52" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Landscape" rightRelation="" rightRelationType="" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="533" x="568" y="432"/>
+ </Label>
+ <CheckButton id="IDC_CHECKALL_BUTTON" parent="IDL_THREAD_LIST_EDIT_FORM">
+ <property backgroundStyle="BACKGROUND_STYLE_DEFAULT" colorOfText="" colorOfTitleText="" disabledColor="" disabledColorOpacity="100" disabledTextColor="" disabledTitleTextColor="" groupId="0" groupStyle="GROUP_STYLE_NONE" highlightedColor="" highlightedColorOpacity="100" highlightedTextColor="" highlightedTitleTextColor="" horizontalAlign="ALIGN_LEFT" normalColor="" normalColorOpacity="100" pressedColor="" pressedColorOpacity="100" pressedTextColor="" pressedTitleTextColor="" showTitleText="false" text="::IDS_COM_BODY_SELECT_ALL" titleText="" verticalAlign="ALIGN_MIDDLE"/>
+ <layout bottomRelation="None" bottomRelationType="" centerHorizontal="false" centerVertical="false" height="111" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Portrait" rightRelation="" rightRelationType="" style="" topRelation="IDL_THREAD_LIST_EDIT_FORM" topRelationType="RECT_EDGE_RELATION_TOP_TO_TOP" verticalFitPolicy="FIT_POLICY_FIXED" width="716" x="4" y="0"/>
+ <layout bottomRelation="" bottomRelationType="" centerHorizontal="false" centerVertical="false" height="108" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Landscape" rightRelation="" rightRelationType="" style="" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="533" x="464" y="0"/>
+ </CheckButton>
+ <GroupedListView id="IDC_THREAD_GROUPEDLISTVIEW" parent="IDL_THREAD_LIST_EDIT_FORM">
+ <property backgroundBitmapPath="" backgroundColor="" backgroundColorOpacity="0" bitmapPathOfEmptyList="" colorOfEmptyListText="" fastScroll="false" itemDivider="true" itemDividerColor="" sectionColor="" sweepEnabled="false" textOfEmptyList=""/>
+ <layout bottomRelation="IDC_THREAD_EDIT_LABEL" bottomRelationType="RECT_EDGE_RELATION_BOTTOM_TO_TOP" centerHorizontal="false" centerVertical="false" height="855" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Portrait" rightRelation="" rightRelationType="" style="CUSTOM_LIST_STYLE_NORMAL" topRelation="IDC_CHECKALL_BUTTON" topRelationType="RECT_EDGE_RELATION_TOP_TO_BOTTOM" verticalFitPolicy="FIT_POLICY_FIXED" width="720" x="0" y="111"/>
+ <layout bottomRelation="" bottomRelationType="" centerHorizontal="false" centerVertical="false" height="124" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Landscape" rightRelation="" rightRelationType="" style="CUSTOM_LIST_STYLE_NORMAL" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="741" x="506" y="77"/>
+ </GroupedListView>
+</Scene>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<!DOCTYPE Scene SYSTEM "UIForm.dtd">
+<Scene Bversion="3.0.0.201302021409" Dversion="20120315">
+ <LogicalCoordinate>720</LogicalCoordinate>
+ <Form id="IDL_THREAD_LIST_FORM">
+ <property backgroundColor="" backgroundColorOpacity="100" orientation="Portrait" softKey0NormalIcon="" softKey0PressedIcon="" softKey0Text="" softKey1NormalIcon="" softKey1PressedIcon="" softKey1Text="" title="" titleAlign="ALIGN_CENTER" titleIcon="" translucentFooter="false" translucentHeader="false" translucentIndicator="false"/>
+ <layout mode="Portrait" style="FORM_STYLE_INDICATOR|FORM_STYLE_HEADER|FORM_STYLE_FOOTER" type="LAYOUT_RELATIVE"/>
+ <layout mode="Landscape" style="FORM_STYLE_INDICATOR|FORM_STYLE_HEADER|FORM_STYLE_FOOTER" type="LAYOUT_RELATIVE"/>
+ </Form>
+ <Footer>
+ <property backgroundBitmapPath="" color="" colorOpacity="0" disabledButtonColor="" disabledButtonColorOpacity="0" disabledButtonTextColor="" disabledItemColor="" disabledItemColorOpacity="0" disabledItemTextColor="" footerStyle="FOOTER_STYLE_BUTTON_TEXT" highlightedButtonColor="" highlightedButtonColorOpacity="0" highlightedButtonTextColor="" highlightedItemColor="" highlightedItemColorOpacity="0" highlightedItemTextColor="" normalButtonColor="" normalButtonColorOpacity="0" normalButtonTextColor="" normalItemColor="" normalItemColorOpacity="0" normalItemTextColor="" pressedButtonColor="" pressedButtonColorOpacity="0" pressedButtonTextColor="" pressedItemColor="" pressedItemColorOpacity="0" pressedItemTextColor="" selectedItemColor="" selectedItemColorOpacity="0" selectedItemTextColor="" showBackButton="true"/>
+ <itemSet/>
+ </Footer>
+ <Header>
+ <property backgroundBitmapPath="" color="" colorOpacity="0" descriptionText="" descriptionTextColor="" disabledButtonColor="" disabledButtonColorOpacity="0" disabledButtonTextColor="" disabledItemColor="" disabledItemColorOpacity="0" disabledItemTextColor="" headerStyle="HEADER_STYLE_TITLE" highlightedButtonColor="" highlightedButtonColorOpacity="0" highlightedButtonTextColor="" highlightedItemColor="" highlightedItemColorOpacity="0" highlightedItemTextColor="" normalButtonColor="" normalButtonColorOpacity="0" normalButtonTextColor="" normalItemColor="" normalItemColorOpacity="0" normalItemTextColor="" pressedButtonColor="" pressedButtonColorOpacity="0" pressedButtonTextColor="" pressedItemColor="" pressedItemColorOpacity="0" pressedItemTextColor="" selectedItemColor="" selectedItemColorOpacity="0" selectedItemTextColor="" titleIconPath="" titleText="" titleTextColor=""/>
+ <itemSet/>
+ </Header>
+ <SearchBar id="IDC_SEARCHBAR" parent="IDL_THREAD_LIST_FORM">
+ <property backgroundBitmapPath="" buttonActionId="0" buttonText="" color="" colorOpacity="100" disabledButtonColor="" disabledButtonTextColor="" disabledSearchFieldColor="" disabledSearchFieldTextColor="" ellipsisPosition="ELLIPSIS_POSITION_END" guideText="" guideTextColor="" highlightedButtonColor="" highlightedButtonTextColor="" highlightedSearchFieldColor="" highlightedSearchFieldTextColor="" keypadAction="KEYPAD_ACTION_SEARCH" limitLength="500" lowerCaseMode="false" normalButtonColor="" normalButtonTextColor="" normalSearchFieldColor="" normalSearchFieldTextColor="" pressedButtonColor="" pressedButtonTextColor="" searchFieldTextSize="33" showSearchBarButton="true" text="" textPredictionEnabled="false"/>
+ <layout bottomRelation="" bottomRelationType="" centerHorizontal="false" centerVertical="false" height="86" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Portrait" rightRelation="" rightRelationType="" topRelation="IDL_THREAD_LIST_FORM" topRelationType="RECT_EDGE_RELATION_TOP_TO_TOP" verticalFitPolicy="FIT_POLICY_FIXED" width="720" x="0" y="0"/>
+ <layout bottomRelation="" bottomRelationType="" centerHorizontal="false" centerVertical="false" height="106" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Landscape" rightRelation="" rightRelationType="" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="801" x="225" y="0"/>
+ </SearchBar>
+ <GroupedListView id="IDC_THREAD_GROUPEDLISTVIEW" parent="IDL_THREAD_LIST_FORM">
+ <property backgroundBitmapPath="" backgroundColor="" backgroundColorOpacity="0" bitmapPathOfEmptyList="00_Nocontents_text.png" colorOfEmptyListText="" fastScroll="false" itemDivider="true" itemDividerColor="" sectionColor="" sweepEnabled="false" textOfEmptyList="::IDS_MSGF_POP_NOMESSAGES"/>
+ <layout bottomRelation="IDL_THREAD_LIST_FORM" bottomRelationType="RECT_EDGE_RELATION_BOTTOM_TO_BOTTOM" centerHorizontal="false" centerVertical="false" height="925" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Portrait" rightRelation="" rightRelationType="" style="CUSTOM_LIST_STYLE_NORMAL" topRelation="IDC_SEARCHBAR" topRelationType="RECT_EDGE_RELATION_TOP_TO_BOTTOM" verticalFitPolicy="FIT_POLICY_FIXED" width="720" x="0" y="86"/>
+ <layout bottomRelation="" bottomRelationType="" centerHorizontal="false" centerVertical="false" height="124" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Landscape" rightRelation="" rightRelationType="" style="CUSTOM_LIST_STYLE_NORMAL" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="741" x="364" y="106"/>
+ </GroupedListView>
+</Scene>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>\r
+<!--\r
+ This XML file was automatically generated by UiBuilder - do not modify by hand.\r
+-->\r
+<!DOCTYPE ScenePopup SYSTEM "UIForm.dtd">\r
+<ScenePopup Bversion="3.0.0.201212201745" Dversion="20120315">\r
+ <Popup id="IDL_UNABLE_ATTACH_MESSAGE_POPUP">\r
+ <property color="" titleText="" titleTextColor=""/>\r
+ <layout height="226" mode="Portrait" style="" type="NONE" width="720"/>\r
+ <layout height="226" mode="Landscape" style="" type="NONE" width="720"/>\r
+ </Popup>\r
+ <Label id="IDC_LABEL1" parent="IDL_UNABLE_ATTACH_MESSAGE_POPUP">\r
+ <property backgroundBitmapPath="" backgroundColor="" backgroundColorOpacity="0" horizontalAlign="ALIGN_CENTER" text="Unable to attach. Maximum size\n of files is 300 KB" textColor="" textSize="29" textStyle="LABEL_TEXT_STYLE_NORMAL" verticalAlign="ALIGN_MIDDLE"/>\r
+ <layout height="94" mode="Portrait" width="648" x="0" y="18"/>\r
+ <layout height="94" mode="Landscape" width="648" x="0" y="18"/>\r
+ </Label>\r
+ <Button id="IDC_CLOSE_BUTTON" parent="IDL_UNABLE_ATTACH_MESSAGE_POPUP">\r
+ <property disableTextColor="" disabledBitmapPath="" disabledColor="" disabledColorOpacity="100" highlightedBGBitmapPath="" highlightedColor="" highlightedColorOpacity="100" highlightedTextColor="" horizontalAlign="ALIGN_CENTER" normalBGBitmapPath="00_button_popup_normal.9.png" normalBitmapPath="" normalColor="" normalColorOpacity="100" normalTextColor="" pressedBGBitmapPath="" pressedBitmapPath="" pressedColor="" pressedColorOpacity="100" pressedTextColor="" text="::IDS_COM_POP_CLOSE" textSize="33" verticalAlign="ALIGN_MIDDLE"/>\r
+ <layout height="72" mode="Portrait" width="288" x="180" y="132"/>\r
+ <layout height="72" mode="Landscape" width="288" x="180" y="132"/>\r
+ </Button>\r
+</ScenePopup>\r
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>\r
+<!--\r
+ This XML file was automatically generated by UiBuilder - do not modify by hand.\r
+-->\r
+<!DOCTYPE ScenePopup SYSTEM "UIForm.dtd">\r
+<ScenePopup Bversion="3.0.0.201212201745" Dversion="20120315">\r
+ <Popup id="IDL_VOLUME_POPUP">\r
+ <property color="" titleText="::IDS_COM_BODY_SUBJECT" titleTextColor=""/>\r
+ <layout height="323" mode="Portrait" style="" type="NONE" width="720"/>\r
+ <layout height="333" mode="Landscape" style="" type="NONE" width="720"/>\r
+ </Popup>\r
+ <Slider id="IDC_MEDIA_VOLUME_SLIDER" parent="IDL_VOLUME_POPUP">\r
+ <property backgroundColor="" backgroundStyle="BACKGROUND_STYLE_DEFAULT" barColor="" color="" colorOfTitleText="" colorOpacity="100" disabledThumbBitmap="" disabledThumbTextColor="" groupStyle="GROUP_STYLE_NONE" highlightedThumbBitmap="" highlightedThumbTextColor="" leftIconBitmapPath="M01_play_btn_volume_press.png" max="10" min="0" normalThumbBitmap="" normalThumbTextColor="" pressedThumbBitmap="" pressedThumbTextColor="" rightIconBitmapPath="" showTitleText="false" sliderStyle="SLIDER_STYLE_BUBBLE" titleText="" value="4"/>\r
+ <layout height="134" mode="Portrait" width="647" x="0" y="11"/>\r
+ <layout height="134" mode="Landscape" width="648" x="0" y="14"/>\r
+ </Slider>\r
+ <Button id="IDC_BUTTON_SETTINGS" parent="IDL_VOLUME_POPUP">\r
+ <property disableTextColor="" disabledBitmapPath="" disabledColor="" disabledColorOpacity="100" highlightedBGBitmapPath="" highlightedColor="" highlightedColorOpacity="100" highlightedTextColor="" horizontalAlign="ALIGN_CENTER" normalBGBitmapPath="00_button_popup_normal.9.png" normalBitmapPath="" normalColor="" normalColorOpacity="100" normalTextColor="" pressedBGBitmapPath="" pressedBitmapPath="" pressedColor="" pressedColorOpacity="100" pressedTextColor="" text="::IDS_COM_BODY_SETTINGS" textSize="40" verticalAlign="ALIGN_MIDDLE"/>\r
+ <layout height="72" mode="Portrait" width="288" x="180" y="160"/>\r
+ <layout height="74" mode="Landscape" width="288" x="200" y="168"/>\r
+ </Button>\r
+</ScenePopup>\r
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201301241731" Dversion="20120315">
+ <text id="IDS_MSGF_HEADER_MESSAGE_DETAILS">Podrobnosti o správe</text>
+ <text id="IDS_COM_SK3_PREVIEW">Ukážka</text>
+ <text id="IDS_COM_BODY_PD_SELECTED">Vybraté: %d</text>
+ <text id="IDS_MSG_BODY_DURATION_MUST_BE_LONGER_THAN_PD_SECONDS">Trvanie musí byť dlhšie než %d sekundy</text>
+ <text id="IDS_DB_POP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED_DELETE_SOME_CHARACTERS">Prekročil sa maximálny počet znakov. Vymažte niektoré znaky</text>
+ <text id="IDS_MSGF_BODY_NO_BLOCKED_WORDS">No blocked words</text>
+ <text id="IDS_COM_BODY_SELECT_ALL">Vybrať všetky</text>
+ <text id="IDS_MSGF_BODY_NO_SUBJECT">Žiadny predmet</text>
+ <text id="IDS_COM_POP_CLOSE">Zavrieť</text>
+ <text id="IDS_COM_BODY_TO">Komu</text>
+ <text id="IDS_MSGC_BODY_TAKE_PICTURE">Fotografovať</text>
+ <text id="IDS_COM_POP_DELETE_Q">Odstrániť?</text>
+ <text id="IDS_MSGC_HEADER_INPUTMODE">Režim vkladania textu</text>
+ <text id="IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED">Dosiahol sa maximálny počet príjemcov (%d)</text>
+ <text id="IDS_COM_SK_NO">Nie</text>
+ <text id="IDS_COM_BODY_MY_FILES">Moje súbory</text>
+ <text id="IDS_MSGF_BODY_COPY_TO_PHONE">Kopírovať do telefónu</text>
+ <text id="IDS_MSGF_BODY_CB_MESSAGES">Správy CB</text>
+ <text id="IDS_MSGF_BODY_SERVICECENTRE">Stredisko služieb</text>
+ <text id="IDS_COM_BODY_SMS">SMS</text>
+ <text id="IDS_MSGF_POP_SENDING_FAILED_MESSAGE">Odosiela sa zlyhaná správa</text>
+ <text id="IDS_COM_POP_SUCCESS">Dokončené</text>
+ <text id="IDS_MSGF_POP_MESSAGES_RECEIVED_FROM_YOUR_CONTACTS_WILL_NOT_BE_BLOCKED_EVEN_IF_THEY_CONTAIN_BLOCKED_NUMBERS">Messages received from your contacts will not be blocked even if they contain blocked numbers</text>
+ <text id="IDS_MSG_SELECT_WORDS">Select words (%d)</text>
+ <text id="IDS_MSGF_BODY_ROAMINGRECEPTION_RESTRICTED">Zakázané</text>
+ <text id="IDS_MSGF_POP_MESSAGES_RECEIVED_FROM_YOUR_CONTACTS_WILL_NOT_BE_BLOCKED_EVEN_IF_THEY_CONTAIN_BLOCKED_WORDS">Správy prijaté od vašich kontaktov nebudú blokované ani v prípade, ak obsahujú blokované slová</text>
+ <text id="IDS_MSGF_OPT_UNBLOCK">Odblokovať</text>
+ <text id="IDS_MSGF_BODY_COPY_MESSAGE_TEXT_ABB">Kopír. text správy</text>
+ <text id="IDS_MSGF_BODY_READ_REPORT">Potvrdenie o prečítaní</text>
+ <text id="IDS_COM_BODY_MESSAGES">Správy</text>
+ <text id="IDS_COM_SK_OPTIONS">Voľby</text>
+ <text id="IDS_COM_SK_DONE">Hotovo</text>
+ <text id="IDS_COM_POP_PM">pp</text>
+ <text id="IDS_COM_BODY_UNKNOWN">Neznáme</text>
+ <text id="IDS_MSG_BODY_DRAFT_MESSAGES">Koncepty správ</text>
+ <text id="IDS_COM_POP_SERVICE_UNAVAILABLE">Služba je nedostupná</text>
+ <text id="IDS_MSGF_OPT_CREATEMSG_ADD_WORD">Pridať slovo</text>
+ <text id="IDS_MSGF_POP_BLOCK_PS_Q">Blokovať %s?</text>
+ <text id="IDS_MSG_BODY_CHANGE_TEXT_SIZE_USING_THE_VOLUME_KEY">Zmeniť veľkosť textu použitím tlačidla hlasitosti</text>
+ <text id="IDS_COM_POP_NEW_MESSAGE">Nová správa</text>
+ <text id="IDS_MSGF_BODY_SPAM_MESSAGES">Nevyžiadané správy</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_INCLUDE">Zahrnúť</text>
+ <text id="IDS_MSGF_BODY_NO_BLOCKED_NUMBERS">No blocked numbers</text>
+ <text id="IDS_MSGF_BODY_BLOCKED_NUMBERS">Blokované čísla</text>
+ <text id="IDS_MSGF_BODY_SETTINGS_MULTIMEDIAMESSAGE">MMS</text>
+ <text id="IDS_MSGF_BODY_EDIT_WORD">Upraviť slovo</text>
+ <text id="IDS_MSGF_BODY_EXPIRED">Platnosť vypršala</text>
+ <text id="IDS_MSGF_BODY_MMSCCCREATIONMODEWARNING">Upozornenie</text>
+ <text id="IDS_COM_SK_EDIT">Upraviť</text>
+ <text id="IDS_COM_POP_FAILED">Nepodarilo sa</text>
+ <text id="IDS_MSGF_HEADER_DELETE_NUMBER">Vymazať číslo</text>
+ <text id="IDS_MSGC_BODY_RECORD_AUDIO">Nahrať zvuk</text>
+ <text id="IDS_COM_SK_BACK">Späť</text>
+ <text id="IDS_MSGF_BODY_UNICODE">Unicode</text>
+ <text id="IDS_MSGF_HEADER_DELETE_WORDS">Odstrániť slová</text>
+ <text id="IDS_COM_BODY_FORWARD">Preposlať</text>
+ <text id="IDS_MSGF_POP_NOMESSAGES">Žiadne správy</text>
+ <text id="IDS_MSGF_OPT_ROAM_NETWORK">Sieť roaming</text>
+ <text id="IDS_MSGF_BODY_FROM">Od</text>
+ <text id="IDS_COM_SK_DELETE">Odstrániť</text>
+ <text id="IDS_MSGF_SK3_UNREAD">Nepre-čítané</text>
+ <text id="IDS_MSGC_BODY_DUPLICATED_RECIPIENT">Duplicitný príjemca</text>
+ <text id="IDS_MSGF_BODY_GSM_ALPHABET">Abeceda GSM</text>
+ <text id="IDS_MSGF_BODY_SIM_CARD_MESSAGES">Správy na karte SIM</text>
+ <text id="IDS_MSGF_BODY_MMSNOTIMSGSTATUSSENT">Odoslané</text>
+ <text id="IDS_COM_BODY_CONTACTS">Kontakty</text>
+ <text id="IDS_MSGF_OPT_STATUS">Stav</text>
+ <text id="IDS_MSGF_BODY_MMSCCCREATIONMODEFREE">Voľné</text>
+ <text id="IDS_COM_BODY_DETAILS_TYPE">Typ</text>
+ <text id="IDS_MSGF_BODY_AUTODOWNLOAD">Automaticky stiahnuť</text>
+ <text id="IDS_MSGF_SK_RESEND">Odoslať znova</text>
+ <text id="IDS_COM_SK_CANCEL">Zrušiť</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONS">Možnosti príjmu</text>
+ <text id="IDS_COM_BODY_GALLERY">Galéria</text>
+ <text id="IDS_MSGC_BUTTON2_DURATION_N_HPD_SECS">Trvanie\n(%d s)</text>
+ <text id="IDS_COM_BODY_SEARCH">Hľadať</text>
+ <text id="IDS_MSGF_HEADER_MESSAGE_BOXES">Schránky správ</text>
+ <text id="IDS_MSGF_HEADER_ADD_NUMBER">Pridať číslo</text>
+ <text id="IDS_COM_BODY_MEMO">Poznámka</text>
+ <text id="IDS_MSGF_BODY_COPY_TO_SIM">Kopírovať na kartu SIM</text>
+ <text id="IDS_MSGF_BODY_ENTER_NUMBER">Zadať číslo</text>
+ <text id="IDS_COM_OPT_ADD_CONTACT">Pridať kontakt</text>
+ <text id="IDS_MSGF_OPT_HOME_NETWORK">Domáca sieť</text>
+ <text id="IDS_COM_POP_REJECTED">Odmietnuté</text>
+ <text id="IDS_COM_BODY_SETTINGS">Nastavenia</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_START_WITH">Začať s</text>
+ <text id="IDS_COM_BODY_DISPLAY">Zobrazenie</text>
+ <text id="IDS_MSGF_OPT_PROTECTION_ON">Zapnúť ochranu</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONNETWORK_MANUAL">Ručne</text>
+ <text id="IDS_SLCD_POP_TEXT_SIM_CARD_ERROR">Chyba karty SIM</text>
+ <text id="IDS_COM_POP_DELETED">Odstránené</text>
+ <text id="IDS_COM_SK_SEND_ABB">Odoslať</text>
+ <text id="IDS_MSGF_POP_FORWARDED">Preposlané</text>
+ <text id="IDS_MSG_SELECT_NUMBERS">Select numbers (%d)</text>
+ <text id="IDS_MSGF_BODY_CENTRE_PD">Centrum %d</text>
+ <text id="IDS_MSGF_HEADER_EDIT_NUMBER">Upraviť číslo</text>
+ <text id="IDS_MSGF_BODY_AUTOMATIC">Automaticky</text>
+ <text id="IDS_MSGF_BODY_VIEW_MESSAGE_DETAILS_ABB">Zobr. detaily správy</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONNETWORK_REJECT">Odmietnuť</text>
+ <text id="IDS_COM_BODY_VOICE_CALL">Hlasový hovor</text>
+ <text id="IDS_MSG_MBODY_USE_THE_VOLUME_KEY">Použiť tlač. hlasitosti</text>
+ <text id="IDS_COM_SK_SAVE">Uložiť</text>
+ <text id="IDS_MSGF_BODY_INVALID_SERVICE_CENTRE_ADDRESS">Invalid service centre address</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_EXACTLY_THE_SAME_AS">Presne rovnaké ako</text>
+ <text id="IDS_COM_BODY_NO_SEARCH_RESULTS">Žiadne výsledky vyhľadávania</text>
+ <text id="IDS_MSGF_BODY_MMS">MMS</text>
+ <text id="IDS_MSGF_BODY_MMSCREATIONMODE">Režim vytvárania</text>
+ <text id="IDS_MSGF_BODY_TEXT_MESSAGES">SMS</text>
+ <text id="IDS_MSGF_BODY_RECEIVED">Prijatá</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_MATCH_CRITERIA">Kritériá zhody</text>
+ <text id="IDS_MSGF_POP_DEFERRED">Odložené</text>
+ <text id="IDS_COM_SK_ADD">Pridať</text>
+ <text id="IDS_MSGF_OPT_BLOCK">Blokovať</text>
+ <text id="IDS_COM_SK_YES">Áno</text>
+ <text id="IDS_MSGC_OPT_VIEW_CONTACT">Zobraziť kontakty</text>
+ <text id="IDS_COM_SK_SEARCH">Hľadať</text>
+ <text id="IDS_COM_POP_AM_M_ABB">dp</text>
+ <text id="IDS_MSGF_BODY_BLOCKED_WORDS">Blokované slová</text>
+ <text id="IDS_COM_BODY_SUBJECT">Predmet</text>
+ <text id="IDS_MSGF_POP_UNRECOGNISED">Neznáme</text>
+ <text id="IDS_MSGF_BODY_SEND_READ_REPORT">Odoslať potvrdenie o prečítaní</text>
+ <text id="IDS_MSGF_SK_RESTORE">Obnoviť</text>
+ <text id="IDS_MSGF_BODY_REQUEST_READ_REPORT">Vyžiadať potvrd. o prečít.</text>
+ <text id="IDS_MSGF_BODY_ENTER_WORD">Zadajte slovo</text>
+ <text id="IDS_COM_SK3_COMPOSE">Napísať</text>
+ <text id="IDS_COM_POP_UNKNOWN_ERROR_OCCURRED">Vyskytla sa neznáma chyba</text>
+ <text id="IDS_MSGF_BODY_REQUEST_DELIVERY_REPORT">Vyžiadať potvrdenie o doručení</text>
+ <text id="IDS_MSGF_BODY_INVALID_RECIPIENTS">Neplatní príjemcovia</text>
+ <text id="IDS_MSGF_BODY_BROADCASTMESSAGES">Vysielané správy</text>
+ <text id="IDS_MSGF_OPT_SAVE_ATTACHMENT">Uložiť prílohu</text>
+ <text id="IDS_MSGF_BODY_DELIVERY_REPORT">Potvrdenie o doručení</text>
+ <text id="IDS_MSGC_POP_DISCARD_CURRENT_MESSAGE_Q">Zahodiť aktuálnu správu?</text>
+ <text id="IDS_COM_POP_ATTACH">Pripojiť</text>
+ <text id="IDS_COM_BODY_CALENDAR">Kalendár</text>
+ <text id="IDS_COM_SK_OK">OK</text>
+ <text id="IDS_COM_SK_CALL">Volať</text>
+ <text id="IDS_MSGC_BODY_CAPTURE_VIDEO">Snímať video</text>
+ <text id="IDS_MSG_HEADER_SELECT_RECIPIENT">Vybrať príjemcu</text>
+</string_table>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201301241731" Dversion="20120315">
+ <text id="IDS_MSGF_HEADER_MESSAGE_DETAILS">Podrobnosti sporočila</text>
+ <text id="IDS_COM_SK3_PREVIEW">Pre.</text>
+ <text id="IDS_COM_BODY_PD_SELECTED">%d izbranih</text>
+ <text id="IDS_MSG_BODY_DURATION_MUST_BE_LONGER_THAN_PD_SECONDS">Trajanje mora biti daljše od %d sekund</text>
+ <text id="IDS_DB_POP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED_DELETE_SOME_CHARACTERS">Preseženo je največje dovoljeno število znakov. Izbrišite nekaj znakov</text>
+ <text id="IDS_MSGF_BODY_NO_BLOCKED_WORDS">No blocked words</text>
+ <text id="IDS_COM_BODY_SELECT_ALL">Izberi vse</text>
+ <text id="IDS_MSGF_BODY_NO_SUBJECT">Ni zadeve</text>
+ <text id="IDS_COM_POP_CLOSE">Zapri</text>
+ <text id="IDS_COM_BODY_TO">Za</text>
+ <text id="IDS_MSGC_BODY_TAKE_PICTURE">Posnemi sliko</text>
+ <text id="IDS_COM_POP_DELETE_Q">Izbrišem?</text>
+ <text id="IDS_MSGC_HEADER_INPUTMODE">Način za vnos besedila</text>
+ <text id="IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED">Doseženo je največje dovoljeno število prejemnikov (%d)</text>
+ <text id="IDS_COM_SK_NO">Ne</text>
+ <text id="IDS_COM_BODY_MY_FILES">Moje datoteke</text>
+ <text id="IDS_MSGF_BODY_COPY_TO_PHONE">Kopiraj v telefon</text>
+ <text id="IDS_MSGF_BODY_CB_MESSAGES">Sporočila v celici</text>
+ <text id="IDS_MSGF_BODY_SERVICECENTRE">Servisni center</text>
+ <text id="IDS_COM_BODY_SMS">SMS</text>
+ <text id="IDS_MSGF_POP_SENDING_FAILED_MESSAGE">Pošiljanje sporočila ni uspelo</text>
+ <text id="IDS_COM_POP_SUCCESS">Uspeh</text>
+ <text id="IDS_MSGF_POP_MESSAGES_RECEIVED_FROM_YOUR_CONTACTS_WILL_NOT_BE_BLOCKED_EVEN_IF_THEY_CONTAIN_BLOCKED_NUMBERS">Messages received from your contacts will not be blocked even if they contain blocked numbers</text>
+ <text id="IDS_MSG_SELECT_WORDS">Select words (%d)</text>
+ <text id="IDS_MSGF_BODY_ROAMINGRECEPTION_RESTRICTED">Omejeno</text>
+ <text id="IDS_MSGF_POP_MESSAGES_RECEIVED_FROM_YOUR_CONTACTS_WILL_NOT_BE_BLOCKED_EVEN_IF_THEY_CONTAIN_BLOCKED_WORDS">Sporočila, ki jih pošljejo vaši stiki, ne bodo blokirana, tudi če vsebujejo blokirane besede</text>
+ <text id="IDS_MSGF_OPT_UNBLOCK">Odblokiraj</text>
+ <text id="IDS_MSGF_BODY_COPY_MESSAGE_TEXT_ABB">Kop. bes. sporočila</text>
+ <text id="IDS_MSGF_BODY_READ_REPORT">Poročilo o branju</text>
+ <text id="IDS_COM_BODY_MESSAGES">Sporočila</text>
+ <text id="IDS_COM_SK_OPTIONS">Možnosti</text>
+ <text id="IDS_COM_SK_DONE">Končano</text>
+ <text id="IDS_COM_POP_PM">PM</text>
+ <text id="IDS_COM_BODY_UNKNOWN">Neznano</text>
+ <text id="IDS_MSG_BODY_DRAFT_MESSAGES">Osnutki sporočil</text>
+ <text id="IDS_COM_POP_SERVICE_UNAVAILABLE">Storitev ni na voljo</text>
+ <text id="IDS_MSGF_OPT_CREATEMSG_ADD_WORD">Dodaj besedo</text>
+ <text id="IDS_MSGF_POP_BLOCK_PS_Q">Blokiram osebo %s?</text>
+ <text id="IDS_MSG_BODY_CHANGE_TEXT_SIZE_USING_THE_VOLUME_KEY">S tipko za glasnost spremenite velikost pisave</text>
+ <text id="IDS_COM_POP_NEW_MESSAGE">Novo sporočilo</text>
+ <text id="IDS_MSGF_BODY_SPAM_MESSAGES">Neželena sporočila</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_INCLUDE">Vključi</text>
+ <text id="IDS_MSGF_BODY_NO_BLOCKED_NUMBERS">No blocked numbers</text>
+ <text id="IDS_MSGF_BODY_BLOCKED_NUMBERS">Blokirane številke</text>
+ <text id="IDS_MSGF_BODY_SETTINGS_MULTIMEDIAMESSAGE">Multimedijska sporočila</text>
+ <text id="IDS_MSGF_BODY_EDIT_WORD">Uredi besedo</text>
+ <text id="IDS_MSGF_BODY_EXPIRED">Veljavnost je potekla</text>
+ <text id="IDS_MSGF_BODY_MMSCCCREATIONMODEWARNING">Opozorilo</text>
+ <text id="IDS_COM_SK_EDIT">Uredi</text>
+ <text id="IDS_COM_POP_FAILED">Ni uspelo</text>
+ <text id="IDS_MSGF_HEADER_DELETE_NUMBER">Zbriši številko</text>
+ <text id="IDS_MSGC_BODY_RECORD_AUDIO">Posnemi zvok</text>
+ <text id="IDS_COM_SK_BACK">Nazaj</text>
+ <text id="IDS_MSGF_BODY_UNICODE">Unicode</text>
+ <text id="IDS_MSGF_HEADER_DELETE_WORDS">Izbriši besede</text>
+ <text id="IDS_COM_BODY_FORWARD">Posreduj</text>
+ <text id="IDS_MSGF_POP_NOMESSAGES">Ni sporočil</text>
+ <text id="IDS_MSGF_OPT_ROAM_NETWORK">Tuje omrežje</text>
+ <text id="IDS_MSGF_BODY_FROM">Od</text>
+ <text id="IDS_COM_SK_DELETE">Izbriši</text>
+ <text id="IDS_MSGF_SK3_UNREAD">Neprebr.</text>
+ <text id="IDS_MSGC_BODY_DUPLICATED_RECIPIENT">Prejemnik je podvojen</text>
+ <text id="IDS_MSGF_BODY_GSM_ALPHABET">Abeceda GSM</text>
+ <text id="IDS_MSGF_BODY_SIM_CARD_MESSAGES">Sporočila na kartici SIM</text>
+ <text id="IDS_MSGF_BODY_MMSNOTIMSGSTATUSSENT">Poslano</text>
+ <text id="IDS_COM_BODY_CONTACTS">Imenik</text>
+ <text id="IDS_MSGF_OPT_STATUS">Stanje</text>
+ <text id="IDS_MSGF_BODY_MMSCCCREATIONMODEFREE">Prosto</text>
+ <text id="IDS_COM_BODY_DETAILS_TYPE">Vrsta</text>
+ <text id="IDS_MSGF_BODY_AUTODOWNLOAD">Samodejno nalaganje</text>
+ <text id="IDS_MSGF_SK_RESEND">Znova pošlji</text>
+ <text id="IDS_COM_SK_CANCEL">Prekliči</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONS">Možnosti sprejema</text>
+ <text id="IDS_COM_BODY_GALLERY">Galerija</text>
+ <text id="IDS_MSGC_BUTTON2_DURATION_N_HPD_SECS">Trajanje\n(%d s)</text>
+ <text id="IDS_COM_BODY_SEARCH">Iskanje</text>
+ <text id="IDS_MSGF_HEADER_MESSAGE_BOXES">Sporočilna polja</text>
+ <text id="IDS_MSGF_HEADER_ADD_NUMBER">Dodaj številko</text>
+ <text id="IDS_COM_BODY_MEMO">Beležka</text>
+ <text id="IDS_MSGF_BODY_COPY_TO_SIM">Kopiraj na SIM</text>
+ <text id="IDS_MSGF_BODY_ENTER_NUMBER">Vnesite številko</text>
+ <text id="IDS_COM_OPT_ADD_CONTACT">Dodaj stik</text>
+ <text id="IDS_MSGF_OPT_HOME_NETWORK">Domače omrežje</text>
+ <text id="IDS_COM_POP_REJECTED">Zavrnjeno</text>
+ <text id="IDS_COM_BODY_SETTINGS">Nastavitve</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_START_WITH">Začni</text>
+ <text id="IDS_COM_BODY_DISPLAY">Zaslon</text>
+ <text id="IDS_MSGF_OPT_PROTECTION_ON">Zaščita je vključena</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONNETWORK_MANUAL">Ročno</text>
+ <text id="IDS_SLCD_POP_TEXT_SIM_CARD_ERROR">Napaka SIM kartice</text>
+ <text id="IDS_COM_POP_DELETED">Izbrisano</text>
+ <text id="IDS_COM_SK_SEND_ABB">Pošlji</text>
+ <text id="IDS_MSGF_POP_FORWARDED">Posredovano</text>
+ <text id="IDS_MSG_SELECT_NUMBERS">Select numbers (%d)</text>
+ <text id="IDS_MSGF_BODY_CENTRE_PD">Center %d</text>
+ <text id="IDS_MSGF_HEADER_EDIT_NUMBER">Uredi številko</text>
+ <text id="IDS_MSGF_BODY_AUTOMATIC">Samodejno</text>
+ <text id="IDS_MSGF_BODY_VIEW_MESSAGE_DETAILS_ABB">Prik.podr. sporočila</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONNETWORK_REJECT">Zavrni</text>
+ <text id="IDS_COM_BODY_VOICE_CALL">Glasovni klic</text>
+ <text id="IDS_MSG_MBODY_USE_THE_VOLUME_KEY">Uporab. tipko za glasnost</text>
+ <text id="IDS_COM_SK_SAVE">Shrani</text>
+ <text id="IDS_MSGF_BODY_INVALID_SERVICE_CENTRE_ADDRESS">Invalid service centre address</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_EXACTLY_THE_SAME_AS">Popolnoma enako kot</text>
+ <text id="IDS_COM_BODY_NO_SEARCH_RESULTS">Ni rezultatov iskanja</text>
+ <text id="IDS_MSGF_BODY_MMS">MMS</text>
+ <text id="IDS_MSGF_BODY_MMSCREATIONMODE">Način ustvarjanja</text>
+ <text id="IDS_MSGF_BODY_TEXT_MESSAGES">Besedilna sporočila</text>
+ <text id="IDS_MSGF_BODY_RECEIVED">Prejeto</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_MATCH_CRITERIA">Merila ujemanja</text>
+ <text id="IDS_MSGF_POP_DEFERRED">Preloženo</text>
+ <text id="IDS_COM_SK_ADD">Dodaj</text>
+ <text id="IDS_MSGF_OPT_BLOCK">Blokiraj</text>
+ <text id="IDS_COM_SK_YES">Da</text>
+ <text id="IDS_MSGC_OPT_VIEW_CONTACT">Prikaži vizitko</text>
+ <text id="IDS_COM_SK_SEARCH">Iskanje</text>
+ <text id="IDS_COM_POP_AM_M_ABB">AM</text>
+ <text id="IDS_MSGF_BODY_BLOCKED_WORDS">Blokirane besede</text>
+ <text id="IDS_COM_BODY_SUBJECT">Zadeva</text>
+ <text id="IDS_MSGF_POP_UNRECOGNISED">Neprepoznano</text>
+ <text id="IDS_MSGF_BODY_SEND_READ_REPORT">Pošlji poročilo o branju</text>
+ <text id="IDS_MSGF_SK_RESTORE">Obnovi</text>
+ <text id="IDS_MSGF_BODY_REQUEST_READ_REPORT">Zahtevaj poročilo o branju</text>
+ <text id="IDS_MSGF_BODY_ENTER_WORD">Vnesite besedo</text>
+ <text id="IDS_COM_SK3_COMPOSE">Sestavi</text>
+ <text id="IDS_COM_POP_UNKNOWN_ERROR_OCCURRED">Prišlo je do neznane napake</text>
+ <text id="IDS_MSGF_BODY_REQUEST_DELIVERY_REPORT">Zahtevaj poročilo o dostavi</text>
+ <text id="IDS_MSGF_BODY_INVALID_RECIPIENTS">Neveljavni prejemniki</text>
+ <text id="IDS_MSGF_BODY_BROADCASTMESSAGES">Info sporočila</text>
+ <text id="IDS_MSGF_OPT_SAVE_ATTACHMENT">Shrani prilogo</text>
+ <text id="IDS_MSGF_BODY_DELIVERY_REPORT">Poročilo o dostavi</text>
+ <text id="IDS_MSGC_POP_DISCARD_CURRENT_MESSAGE_Q">Zavržem trenutno sporočilo?</text>
+ <text id="IDS_COM_POP_ATTACH">Dodaj</text>
+ <text id="IDS_COM_BODY_CALENDAR">Koledar</text>
+ <text id="IDS_COM_SK_OK">V redu</text>
+ <text id="IDS_COM_SK_CALL">Klic</text>
+ <text id="IDS_MSGC_BODY_CAPTURE_VIDEO">Posnemi video</text>
+ <text id="IDS_MSG_HEADER_SELECT_RECIPIENT">Izberite prejemnika</text>
+</string_table>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201301241731" Dversion="20120315">
+ <text id="IDS_MSGF_HEADER_MESSAGE_DETAILS">Detalles de mensaje</text>
+ <text id="IDS_COM_SK3_PREVIEW">Vista previa</text>
+ <text id="IDS_COM_BODY_PD_SELECTED">%d seleccionado</text>
+ <text id="IDS_MSG_BODY_DURATION_MUST_BE_LONGER_THAN_PD_SECONDS">La duración debe superar los %d segundos</text>
+ <text id="IDS_DB_POP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED_DELETE_SOME_CHARACTERS">Alcanzado el número máximo de caracteres. Elimine algunos caracteres</text>
+ <text id="IDS_MSGF_BODY_NO_BLOCKED_WORDS">No blocked words</text>
+ <text id="IDS_COM_BODY_SELECT_ALL">Seleccionar todo</text>
+ <text id="IDS_MSGF_BODY_NO_SUBJECT">Sin asunto</text>
+ <text id="IDS_COM_POP_CLOSE">Cerrar</text>
+ <text id="IDS_COM_BODY_TO">Para</text>
+ <text id="IDS_MSGC_BODY_TAKE_PICTURE">Hacer foto</text>
+ <text id="IDS_COM_POP_DELETE_Q">¿Eliminar?</text>
+ <text id="IDS_MSGC_HEADER_INPUTMODE">Modo de entrada de texto</text>
+ <text id="IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED">Alcanzado el número máximo de destinatarios (%d)</text>
+ <text id="IDS_COM_SK_NO">No</text>
+ <text id="IDS_COM_BODY_MY_FILES">Mis archivos</text>
+ <text id="IDS_MSGF_BODY_COPY_TO_PHONE">Copiar en el teléfono</text>
+ <text id="IDS_MSGF_BODY_CB_MESSAGES">Mensajes de CB</text>
+ <text id="IDS_MSGF_BODY_SERVICECENTRE">Centro de servicios</text>
+ <text id="IDS_COM_BODY_SMS">Mensaje</text>
+ <text id="IDS_MSGF_POP_SENDING_FAILED_MESSAGE">Error al enviar mensaje</text>
+ <text id="IDS_COM_POP_SUCCESS">Finalizado</text>
+ <text id="IDS_MSGF_POP_MESSAGES_RECEIVED_FROM_YOUR_CONTACTS_WILL_NOT_BE_BLOCKED_EVEN_IF_THEY_CONTAIN_BLOCKED_NUMBERS">Messages received from your contacts will not be blocked even if they contain blocked numbers</text>
+ <text id="IDS_MSG_SELECT_WORDS">Select words (%d)</text>
+ <text id="IDS_MSGF_BODY_ROAMINGRECEPTION_RESTRICTED">Restringido</text>
+ <text id="IDS_MSGF_POP_MESSAGES_RECEIVED_FROM_YOUR_CONTACTS_WILL_NOT_BE_BLOCKED_EVEN_IF_THEY_CONTAIN_BLOCKED_WORDS">Los mensajes recibidos de sus contactos no se bloquearan aunque contengan palabras bloqueadas</text>
+ <text id="IDS_MSGF_OPT_UNBLOCK">Desbloquear</text>
+ <text id="IDS_MSGF_BODY_COPY_MESSAGE_TEXT_ABB">Copiar texto del mensaje</text>
+ <text id="IDS_MSGF_BODY_READ_REPORT">Informe de lectura</text>
+ <text id="IDS_COM_BODY_MESSAGES">Mensajes</text>
+ <text id="IDS_COM_SK_OPTIONS">Opciones</text>
+ <text id="IDS_COM_SK_DONE">Hecho</text>
+ <text id="IDS_COM_POP_PM">PM</text>
+ <text id="IDS_COM_BODY_UNKNOWN">Desconocido</text>
+ <text id="IDS_MSG_BODY_DRAFT_MESSAGES">Mensajes de borrador</text>
+ <text id="IDS_COM_POP_SERVICE_UNAVAILABLE">Servicio no disponible</text>
+ <text id="IDS_MSGF_OPT_CREATEMSG_ADD_WORD">Añadir palabra</text>
+ <text id="IDS_MSGF_POP_BLOCK_PS_Q">¿Bloquear %s?</text>
+ <text id="IDS_MSG_BODY_CHANGE_TEXT_SIZE_USING_THE_VOLUME_KEY">Cambie el tamaño del texto con la tecla de volumen</text>
+ <text id="IDS_COM_POP_NEW_MESSAGE">Mensaje nuevo</text>
+ <text id="IDS_MSGF_BODY_SPAM_MESSAGES">Mensajes de correo basura</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_INCLUDE">Incluir</text>
+ <text id="IDS_MSGF_BODY_NO_BLOCKED_NUMBERS">No blocked numbers</text>
+ <text id="IDS_MSGF_BODY_BLOCKED_NUMBERS">Números bloqueados</text>
+ <text id="IDS_MSGF_BODY_SETTINGS_MULTIMEDIAMESSAGE">Mensajes multimedia</text>
+ <text id="IDS_MSGF_BODY_EDIT_WORD">Editar palabra</text>
+ <text id="IDS_MSGF_BODY_EXPIRED">Caducado</text>
+ <text id="IDS_MSGF_BODY_MMSCCCREATIONMODEWARNING">Aviso</text>
+ <text id="IDS_COM_SK_EDIT">Editar</text>
+ <text id="IDS_COM_POP_FAILED">Error</text>
+ <text id="IDS_MSGF_HEADER_DELETE_NUMBER">Eliminar número</text>
+ <text id="IDS_MSGC_BODY_RECORD_AUDIO">Grabar audio</text>
+ <text id="IDS_COM_SK_BACK">Atrás</text>
+ <text id="IDS_MSGF_BODY_UNICODE">Unicode</text>
+ <text id="IDS_MSGF_HEADER_DELETE_WORDS">Eliminar palabras</text>
+ <text id="IDS_COM_BODY_FORWARD">Reenviar</text>
+ <text id="IDS_MSGF_POP_NOMESSAGES">No hay mensajes</text>
+ <text id="IDS_MSGF_OPT_ROAM_NETWORK">Red en extranjero</text>
+ <text id="IDS_MSGF_BODY_FROM">De</text>
+ <text id="IDS_COM_SK_DELETE">Eliminar</text>
+ <text id="IDS_MSGF_SK3_UNREAD">No leídos</text>
+ <text id="IDS_MSGC_BODY_DUPLICATED_RECIPIENT">Destinatario duplicado</text>
+ <text id="IDS_MSGF_BODY_GSM_ALPHABET">Alfabeto GSM</text>
+ <text id="IDS_MSGF_BODY_SIM_CARD_MESSAGES">Mensajes de tarjeta SIM</text>
+ <text id="IDS_MSGF_BODY_MMSNOTIMSGSTATUSSENT">Enviado</text>
+ <text id="IDS_COM_BODY_CONTACTS">Contactos</text>
+ <text id="IDS_MSGF_OPT_STATUS">Estado</text>
+ <text id="IDS_MSGF_BODY_MMSCCCREATIONMODEFREE">Libre</text>
+ <text id="IDS_COM_BODY_DETAILS_TYPE">Tipo</text>
+ <text id="IDS_MSGF_BODY_AUTODOWNLOAD">Descarga automática</text>
+ <text id="IDS_MSGF_SK_RESEND">Reenviar</text>
+ <text id="IDS_COM_SK_CANCEL">Cancelar</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONS">Opciones de recepción</text>
+ <text id="IDS_COM_BODY_GALLERY">Galería</text>
+ <text id="IDS_MSGC_BUTTON2_DURATION_N_HPD_SECS">Duración\n(%d s)</text>
+ <text id="IDS_COM_BODY_SEARCH">Buscar</text>
+ <text id="IDS_MSGF_HEADER_MESSAGE_BOXES">Buzón de mensajes</text>
+ <text id="IDS_MSGF_HEADER_ADD_NUMBER">Añadir número</text>
+ <text id="IDS_COM_BODY_MEMO">Notas</text>
+ <text id="IDS_MSGF_BODY_COPY_TO_SIM">Copiar a SIM</text>
+ <text id="IDS_MSGF_BODY_ENTER_NUMBER">Introducir número</text>
+ <text id="IDS_COM_OPT_ADD_CONTACT">Añadir un contacto</text>
+ <text id="IDS_MSGF_OPT_HOME_NETWORK">Red nacional</text>
+ <text id="IDS_COM_POP_REJECTED">Rechazado</text>
+ <text id="IDS_COM_BODY_SETTINGS">Ajustes</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_START_WITH">Comenzar</text>
+ <text id="IDS_COM_BODY_DISPLAY">Pantalla</text>
+ <text id="IDS_MSGF_OPT_PROTECTION_ON">Protección activada</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONNETWORK_MANUAL">Manual</text>
+ <text id="IDS_SLCD_POP_TEXT_SIM_CARD_ERROR">Error tarjeta SIM</text>
+ <text id="IDS_COM_POP_DELETED">Eliminado</text>
+ <text id="IDS_COM_SK_SEND_ABB">Enviar</text>
+ <text id="IDS_MSGF_POP_FORWARDED">Reenviado</text>
+ <text id="IDS_MSG_SELECT_NUMBERS">Select numbers (%d)</text>
+ <text id="IDS_MSGF_BODY_CENTRE_PD">Centro %d</text>
+ <text id="IDS_MSGF_HEADER_EDIT_NUMBER">Editar número</text>
+ <text id="IDS_MSGF_BODY_AUTOMATIC">Automática</text>
+ <text id="IDS_MSGF_BODY_VIEW_MESSAGE_DETAILS_ABB">Ver detalles mens</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONNETWORK_REJECT">Rechazar</text>
+ <text id="IDS_COM_BODY_VOICE_CALL">Llamada de voz</text>
+ <text id="IDS_MSG_MBODY_USE_THE_VOLUME_KEY">Utilice la tecla volumen</text>
+ <text id="IDS_COM_SK_SAVE">Guardar</text>
+ <text id="IDS_MSGF_BODY_INVALID_SERVICE_CENTRE_ADDRESS">Invalid service centre address</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_EXACTLY_THE_SAME_AS">Exactamente igual a</text>
+ <text id="IDS_COM_BODY_NO_SEARCH_RESULTS">No se han encontrado resultados</text>
+ <text id="IDS_MSGF_BODY_MMS">MMS</text>
+ <text id="IDS_MSGF_BODY_MMSCREATIONMODE">Modo de creación</text>
+ <text id="IDS_MSGF_BODY_TEXT_MESSAGES">Mensajes de texto</text>
+ <text id="IDS_MSGF_BODY_RECEIVED">Recibido</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_MATCH_CRITERIA">Coincidir criterios</text>
+ <text id="IDS_MSGF_POP_DEFERRED">Anulado</text>
+ <text id="IDS_COM_SK_ADD">Añadir</text>
+ <text id="IDS_MSGF_OPT_BLOCK">Bloquear</text>
+ <text id="IDS_COM_SK_YES">Sí</text>
+ <text id="IDS_MSGC_OPT_VIEW_CONTACT">Ver contactos</text>
+ <text id="IDS_COM_SK_SEARCH">Buscar</text>
+ <text id="IDS_COM_POP_AM_M_ABB">AM</text>
+ <text id="IDS_MSGF_BODY_BLOCKED_WORDS">Palabras bloqueadas</text>
+ <text id="IDS_COM_BODY_SUBJECT">Asunto</text>
+ <text id="IDS_MSGF_POP_UNRECOGNISED">Desconocido</text>
+ <text id="IDS_MSGF_BODY_SEND_READ_REPORT">Enviar informe de lectura</text>
+ <text id="IDS_MSGF_SK_RESTORE">Restaurar</text>
+ <text id="IDS_MSGF_BODY_REQUEST_READ_REPORT">Solicitar inf. de lectura</text>
+ <text id="IDS_MSGF_BODY_ENTER_WORD">Introducir palabra</text>
+ <text id="IDS_COM_SK3_COMPOSE">Escribir</text>
+ <text id="IDS_COM_POP_UNKNOWN_ERROR_OCCURRED">Error desconocido</text>
+ <text id="IDS_MSGF_BODY_REQUEST_DELIVERY_REPORT">Solicitar informe de envío</text>
+ <text id="IDS_MSGF_BODY_INVALID_RECIPIENTS">Destinatarios no válidos</text>
+ <text id="IDS_MSGF_BODY_BROADCASTMESSAGES">Mensajes de difusión</text>
+ <text id="IDS_MSGF_OPT_SAVE_ATTACHMENT">Guardar adjunto</text>
+ <text id="IDS_MSGF_BODY_DELIVERY_REPORT">Informe de entrega</text>
+ <text id="IDS_MSGC_POP_DISCARD_CURRENT_MESSAGE_Q">¿Descartar mensaje actual?</text>
+ <text id="IDS_COM_POP_ATTACH">Adjuntar</text>
+ <text id="IDS_COM_BODY_CALENDAR">Calendario</text>
+ <text id="IDS_COM_SK_OK">Aceptar</text>
+ <text id="IDS_COM_SK_CALL">Llamar</text>
+ <text id="IDS_MSGC_BODY_CAPTURE_VIDEO">Capturar vídeo</text>
+ <text id="IDS_MSG_HEADER_SELECT_RECIPIENT">Seleccionar destinatario</text>
+</string_table>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201301241731" Dversion="20120315">
+ <text id="IDS_MSGF_HEADER_MESSAGE_DETAILS">Detalles del mensaje</text>
+ <text id="IDS_COM_SK3_PREVIEW">Vista previa</text>
+ <text id="IDS_COM_BODY_PD_SELECTED">%d seleccionado(s)</text>
+ <text id="IDS_MSG_BODY_DURATION_MUST_BE_LONGER_THAN_PD_SECONDS">La duración debe superar los %d segundos</text>
+ <text id="IDS_DB_POP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED_DELETE_SOME_CHARACTERS">Se ha alcanzado el número máximo de caracteres. Elimine algunos caracteres</text>
+ <text id="IDS_MSGF_BODY_NO_BLOCKED_WORDS">No blocked words</text>
+ <text id="IDS_COM_BODY_SELECT_ALL">Seleccionar todo</text>
+ <text id="IDS_MSGF_BODY_NO_SUBJECT">Sin asunto</text>
+ <text id="IDS_COM_POP_CLOSE">Cerrar</text>
+ <text id="IDS_COM_BODY_TO">A</text>
+ <text id="IDS_MSGC_BODY_TAKE_PICTURE">Capturar imagen</text>
+ <text id="IDS_COM_POP_DELETE_Q">¿Eliminar?</text>
+ <text id="IDS_MSGC_HEADER_INPUTMODE">Método de entrada</text>
+ <text id="IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED">Se ha alcanzado el número máximo de destinatarios (%d)</text>
+ <text id="IDS_COM_SK_NO">No</text>
+ <text id="IDS_COM_BODY_MY_FILES">Mis Archivos</text>
+ <text id="IDS_MSGF_BODY_COPY_TO_PHONE">Copiar en dispositivo</text>
+ <text id="IDS_MSGF_BODY_CB_MESSAGES">Mensajes de canales de información</text>
+ <text id="IDS_MSGF_BODY_SERVICECENTRE">Centro de servicio</text>
+ <text id="IDS_COM_BODY_SMS">Mensaje de texto</text>
+ <text id="IDS_MSGF_POP_SENDING_FAILED_MESSAGE">Error al enviar mensaje</text>
+ <text id="IDS_COM_POP_SUCCESS">Exitoso</text>
+ <text id="IDS_MSGF_POP_MESSAGES_RECEIVED_FROM_YOUR_CONTACTS_WILL_NOT_BE_BLOCKED_EVEN_IF_THEY_CONTAIN_BLOCKED_NUMBERS">Messages received from your contacts will not be blocked even if they contain blocked numbers</text>
+ <text id="IDS_MSG_SELECT_WORDS">Select words (%d)</text>
+ <text id="IDS_MSGF_BODY_ROAMINGRECEPTION_RESTRICTED">Restringido</text>
+ <text id="IDS_MSGF_POP_MESSAGES_RECEIVED_FROM_YOUR_CONTACTS_WILL_NOT_BE_BLOCKED_EVEN_IF_THEY_CONTAIN_BLOCKED_WORDS">No se bloquearán los mensajes recibidos de sus contactos incluso si contienen palabras bloqueadas</text>
+ <text id="IDS_MSGF_OPT_UNBLOCK">Desbloquear</text>
+ <text id="IDS_MSGF_BODY_COPY_MESSAGE_TEXT_ABB">Copiar texto</text>
+ <text id="IDS_MSGF_BODY_READ_REPORT">Informe de lectura</text>
+ <text id="IDS_COM_BODY_MESSAGES">Mensajes</text>
+ <text id="IDS_COM_SK_OPTIONS">Opciones</text>
+ <text id="IDS_COM_SK_DONE">Realizado</text>
+ <text id="IDS_COM_POP_PM">PM</text>
+ <text id="IDS_COM_BODY_UNKNOWN">Desconocido</text>
+ <text id="IDS_MSG_BODY_DRAFT_MESSAGES">Mensaje de borrador</text>
+ <text id="IDS_COM_POP_SERVICE_UNAVAILABLE">Servicio no disponible</text>
+ <text id="IDS_MSGF_OPT_CREATEMSG_ADD_WORD">Añadir palabra</text>
+ <text id="IDS_MSGF_POP_BLOCK_PS_Q">¿Bloquear %s?</text>
+ <text id="IDS_MSG_BODY_CHANGE_TEXT_SIZE_USING_THE_VOLUME_KEY">Cambiar tamaño de texto con tecla de volumen</text>
+ <text id="IDS_COM_POP_NEW_MESSAGE">Nuevo mensaje</text>
+ <text id="IDS_MSGF_BODY_SPAM_MESSAGES">Spam</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_INCLUDE">Incluir</text>
+ <text id="IDS_MSGF_BODY_NO_BLOCKED_NUMBERS">No blocked numbers</text>
+ <text id="IDS_MSGF_BODY_BLOCKED_NUMBERS">Números bloqueados</text>
+ <text id="IDS_MSGF_BODY_SETTINGS_MULTIMEDIAMESSAGE">Mensajes multimedia</text>
+ <text id="IDS_MSGF_BODY_EDIT_WORD">Editar palabra</text>
+ <text id="IDS_MSGF_BODY_EXPIRED">Agotada</text>
+ <text id="IDS_MSGF_BODY_MMSCCCREATIONMODEWARNING">Aviso</text>
+ <text id="IDS_COM_SK_EDIT">Editar</text>
+ <text id="IDS_COM_POP_FAILED">Error</text>
+ <text id="IDS_MSGF_HEADER_DELETE_NUMBER">Eliminar número</text>
+ <text id="IDS_MSGC_BODY_RECORD_AUDIO">Grabar audio</text>
+ <text id="IDS_COM_SK_BACK">Atrás</text>
+ <text id="IDS_MSGF_BODY_UNICODE">Unicode</text>
+ <text id="IDS_MSGF_HEADER_DELETE_WORDS">Eliminar palabras</text>
+ <text id="IDS_COM_BODY_FORWARD">Reenviar</text>
+ <text id="IDS_MSGF_POP_NOMESSAGES">No hay mensajes</text>
+ <text id="IDS_MSGF_OPT_ROAM_NETWORK">Red en el extranjero</text>
+ <text id="IDS_MSGF_BODY_FROM">De</text>
+ <text id="IDS_COM_SK_DELETE">Eliminar</text>
+ <text id="IDS_MSGF_SK3_UNREAD">No leídos</text>
+ <text id="IDS_MSGC_BODY_DUPLICATED_RECIPIENT">Destinatario duplicado</text>
+ <text id="IDS_MSGF_BODY_GSM_ALPHABET">Alfabeto GSM</text>
+ <text id="IDS_MSGF_BODY_SIM_CARD_MESSAGES">Mensajes de tarjeta SIM</text>
+ <text id="IDS_MSGF_BODY_MMSNOTIMSGSTATUSSENT">Enviado</text>
+ <text id="IDS_COM_BODY_CONTACTS">Contactos</text>
+ <text id="IDS_MSGF_OPT_STATUS">Estado</text>
+ <text id="IDS_MSGF_BODY_MMSCCCREATIONMODEFREE">Libre</text>
+ <text id="IDS_COM_BODY_DETAILS_TYPE">Tipo</text>
+ <text id="IDS_MSGF_BODY_AUTODOWNLOAD">Descarga automática</text>
+ <text id="IDS_MSGF_SK_RESEND">Reenviar</text>
+ <text id="IDS_COM_SK_CANCEL">Cancelar</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONS">Opciones de recepción</text>
+ <text id="IDS_COM_BODY_GALLERY">Galería</text>
+ <text id="IDS_MSGC_BUTTON2_DURATION_N_HPD_SECS">Duración\n(%d seg)</text>
+ <text id="IDS_COM_BODY_SEARCH">Buscar</text>
+ <text id="IDS_MSGF_HEADER_MESSAGE_BOXES">Buzón de mensajes</text>
+ <text id="IDS_MSGF_HEADER_ADD_NUMBER">Añadir número</text>
+ <text id="IDS_COM_BODY_MEMO">Notas</text>
+ <text id="IDS_MSGF_BODY_COPY_TO_SIM">Copiar en tarjeta SIM</text>
+ <text id="IDS_MSGF_BODY_ENTER_NUMBER">Introducir número</text>
+ <text id="IDS_COM_OPT_ADD_CONTACT">Añadir contacto</text>
+ <text id="IDS_MSGF_OPT_HOME_NETWORK">Red local</text>
+ <text id="IDS_COM_POP_REJECTED">Rechazado</text>
+ <text id="IDS_COM_BODY_SETTINGS">Configuración</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_START_WITH">Empieza en</text>
+ <text id="IDS_COM_BODY_DISPLAY">Pantalla</text>
+ <text id="IDS_MSGF_OPT_PROTECTION_ON">Activar protección</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONNETWORK_MANUAL">Manual</text>
+ <text id="IDS_SLCD_POP_TEXT_SIM_CARD_ERROR">Error de tarjeta SIM</text>
+ <text id="IDS_COM_POP_DELETED">Eliminado</text>
+ <text id="IDS_COM_SK_SEND_ABB">Enviar</text>
+ <text id="IDS_MSGF_POP_FORWARDED">Desviada</text>
+ <text id="IDS_MSG_SELECT_NUMBERS">Select numbers (%d)</text>
+ <text id="IDS_MSGF_BODY_CENTRE_PD">Centro %d</text>
+ <text id="IDS_MSGF_HEADER_EDIT_NUMBER">Editar número</text>
+ <text id="IDS_MSGF_BODY_AUTOMATIC">Automático</text>
+ <text id="IDS_MSGF_BODY_VIEW_MESSAGE_DETAILS_ABB">Ver detalles</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONNETWORK_REJECT">Rechazar</text>
+ <text id="IDS_COM_BODY_VOICE_CALL">Llamada de voz</text>
+ <text id="IDS_MSG_MBODY_USE_THE_VOLUME_KEY">Usar tecla de volumen</text>
+ <text id="IDS_COM_SK_SAVE">Guardar</text>
+ <text id="IDS_MSGF_BODY_INVALID_SERVICE_CENTRE_ADDRESS">Invalid service centre address</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_EXACTLY_THE_SAME_AS">Exactamente igual a</text>
+ <text id="IDS_COM_BODY_NO_SEARCH_RESULTS">No se han encontrado resultados</text>
+ <text id="IDS_MSGF_BODY_MMS">Mensaje multimedia</text>
+ <text id="IDS_MSGF_BODY_MMSCREATIONMODE">Modo de creación</text>
+ <text id="IDS_MSGF_BODY_TEXT_MESSAGES">Mensajes de texto</text>
+ <text id="IDS_MSGF_BODY_RECEIVED">Recibido</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_MATCH_CRITERIA">Criterios de asignación</text>
+ <text id="IDS_MSGF_POP_DEFERRED">Diferida</text>
+ <text id="IDS_COM_SK_ADD">Añadir</text>
+ <text id="IDS_MSGF_OPT_BLOCK">Bloquear</text>
+ <text id="IDS_COM_SK_YES">Sí</text>
+ <text id="IDS_MSGC_OPT_VIEW_CONTACT">Ver contacto</text>
+ <text id="IDS_COM_SK_SEARCH">Buscar</text>
+ <text id="IDS_COM_POP_AM_M_ABB">AM</text>
+ <text id="IDS_MSGF_BODY_BLOCKED_WORDS">Palabras bloqueadas</text>
+ <text id="IDS_COM_BODY_SUBJECT">Asunto</text>
+ <text id="IDS_MSGF_POP_UNRECOGNISED">Desconocida</text>
+ <text id="IDS_MSGF_BODY_SEND_READ_REPORT">Enviar informe de lectura</text>
+ <text id="IDS_MSGF_SK_RESTORE">Restaurar</text>
+ <text id="IDS_MSGF_BODY_REQUEST_READ_REPORT">Solicitar informe de lectura</text>
+ <text id="IDS_MSGF_BODY_ENTER_WORD">Introducir palabra</text>
+ <text id="IDS_COM_SK3_COMPOSE">Escribir</text>
+ <text id="IDS_COM_POP_UNKNOWN_ERROR_OCCURRED">Error desconocido</text>
+ <text id="IDS_MSGF_BODY_REQUEST_DELIVERY_REPORT">Solicitar informe de entrega</text>
+ <text id="IDS_MSGF_BODY_INVALID_RECIPIENTS">Destinatarios no válidos</text>
+ <text id="IDS_MSGF_BODY_BROADCASTMESSAGES">Canales de información</text>
+ <text id="IDS_MSGF_OPT_SAVE_ATTACHMENT">Guardar adjunto</text>
+ <text id="IDS_MSGF_BODY_DELIVERY_REPORT">Informe de entrega</text>
+ <text id="IDS_MSGC_POP_DISCARD_CURRENT_MESSAGE_Q">¿Cancelar mensaje actual?</text>
+ <text id="IDS_COM_POP_ATTACH">Adjuntar</text>
+ <text id="IDS_COM_BODY_CALENDAR">Calendario</text>
+ <text id="IDS_COM_SK_OK">Aceptar</text>
+ <text id="IDS_COM_SK_CALL">Llamar</text>
+ <text id="IDS_MSGC_BODY_CAPTURE_VIDEO">Capturar video</text>
+ <text id="IDS_MSG_HEADER_SELECT_RECIPIENT">Seleccionar destinatario</text>
+</string_table>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201301241731" Dversion="20120315">
+ <text id="IDS_MSGF_HEADER_MESSAGE_DETAILS">Informacije o poruci</text>
+ <text id="IDS_COM_SK3_PREVIEW">Pregled</text>
+ <text id="IDS_COM_BODY_PD_SELECTED">Izabran je %d</text>
+ <text id="IDS_MSG_BODY_DURATION_MUST_BE_LONGER_THAN_PD_SECONDS">Trajanje mora biti duže od %d sekundi</text>
+ <text id="IDS_DB_POP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED_DELETE_SOME_CHARACTERS">Dostignut maksimalan broj karaktera. Obriši neke karaktere</text>
+ <text id="IDS_MSGF_BODY_NO_BLOCKED_WORDS">No blocked words</text>
+ <text id="IDS_COM_BODY_SELECT_ALL">Izaberi sve</text>
+ <text id="IDS_MSGF_BODY_NO_SUBJECT">Nema naslova</text>
+ <text id="IDS_COM_POP_CLOSE">Zatvori</text>
+ <text id="IDS_COM_BODY_TO">Za</text>
+ <text id="IDS_MSGC_BODY_TAKE_PICTURE">Slikaj</text>
+ <text id="IDS_COM_POP_DELETE_Q">Obriši?</text>
+ <text id="IDS_MSGC_HEADER_INPUTMODE">Način unošenja teksta</text>
+ <text id="IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED">Dostignut maksimalan broj primalaca (%d)</text>
+ <text id="IDS_COM_SK_NO">Ne</text>
+ <text id="IDS_COM_BODY_MY_FILES">Moji fajlovi</text>
+ <text id="IDS_MSGF_BODY_COPY_TO_PHONE">Kopiraj u telefon</text>
+ <text id="IDS_MSGF_BODY_CB_MESSAGES">Info poruke</text>
+ <text id="IDS_MSGF_BODY_SERVICECENTRE">Servisni centar</text>
+ <text id="IDS_COM_BODY_SMS">SMS</text>
+ <text id="IDS_MSGF_POP_SENDING_FAILED_MESSAGE">Slanje neuspešno poslate poruke</text>
+ <text id="IDS_COM_POP_SUCCESS">Uspeh</text>
+ <text id="IDS_MSGF_POP_MESSAGES_RECEIVED_FROM_YOUR_CONTACTS_WILL_NOT_BE_BLOCKED_EVEN_IF_THEY_CONTAIN_BLOCKED_NUMBERS">Messages received from your contacts will not be blocked even if they contain blocked numbers</text>
+ <text id="IDS_MSG_SELECT_WORDS">Select words (%d)</text>
+ <text id="IDS_MSGF_BODY_ROAMINGRECEPTION_RESTRICTED">Ograničeno</text>
+ <text id="IDS_MSGF_POP_MESSAGES_RECEIVED_FROM_YOUR_CONTACTS_WILL_NOT_BE_BLOCKED_EVEN_IF_THEY_CONTAIN_BLOCKED_WORDS">Poruke koje su primljene od tvojih kontakata neće biti blokirane čak iako sadrže reči koje su blokirane</text>
+ <text id="IDS_MSGF_OPT_UNBLOCK">Deblokiraj</text>
+ <text id="IDS_MSGF_BODY_COPY_MESSAGE_TEXT_ABB">Kopiraj tekst poruke</text>
+ <text id="IDS_MSGF_BODY_READ_REPORT">Čitanje izveštaja</text>
+ <text id="IDS_COM_BODY_MESSAGES">Poruke</text>
+ <text id="IDS_COM_SK_OPTIONS">Opcije</text>
+ <text id="IDS_COM_SK_DONE">Gotovo</text>
+ <text id="IDS_COM_POP_PM">PM</text>
+ <text id="IDS_COM_BODY_UNKNOWN">Nepoznato</text>
+ <text id="IDS_MSG_BODY_DRAFT_MESSAGES">Skica poruka</text>
+ <text id="IDS_COM_POP_SERVICE_UNAVAILABLE">Usluga nedostupna</text>
+ <text id="IDS_MSGF_OPT_CREATEMSG_ADD_WORD">Dodaj reč</text>
+ <text id="IDS_MSGF_POP_BLOCK_PS_Q">Blokiraj %s?</text>
+ <text id="IDS_MSG_BODY_CHANGE_TEXT_SIZE_USING_THE_VOLUME_KEY">Promeni veličinu teksta pomoću tastera za jačinu zvuka</text>
+ <text id="IDS_COM_POP_NEW_MESSAGE">Nova poruka</text>
+ <text id="IDS_MSGF_BODY_SPAM_MESSAGES">Spam poruke</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_INCLUDE">Uključi</text>
+ <text id="IDS_MSGF_BODY_NO_BLOCKED_NUMBERS">No blocked numbers</text>
+ <text id="IDS_MSGF_BODY_BLOCKED_NUMBERS">Blokirani brojevi</text>
+ <text id="IDS_MSGF_BODY_SETTINGS_MULTIMEDIAMESSAGE">Multimedijalne poruke</text>
+ <text id="IDS_MSGF_BODY_EDIT_WORD">Izmeni reč</text>
+ <text id="IDS_MSGF_BODY_EXPIRED">Datum isteka već prošao</text>
+ <text id="IDS_MSGF_BODY_MMSCCCREATIONMODEWARNING">Upozorenje</text>
+ <text id="IDS_COM_SK_EDIT">Izmeni</text>
+ <text id="IDS_COM_POP_FAILED">Neuspešno</text>
+ <text id="IDS_MSGF_HEADER_DELETE_NUMBER">Obriši broj</text>
+ <text id="IDS_MSGC_BODY_RECORD_AUDIO">Snimi audio</text>
+ <text id="IDS_COM_SK_BACK">Nazad</text>
+ <text id="IDS_MSGF_BODY_UNICODE">Unikod</text>
+ <text id="IDS_MSGF_HEADER_DELETE_WORDS">Izbriši reči</text>
+ <text id="IDS_COM_BODY_FORWARD">Prosledi</text>
+ <text id="IDS_MSGF_POP_NOMESSAGES">Nema poruka</text>
+ <text id="IDS_MSGF_OPT_ROAM_NETWORK">Strana mreža</text>
+ <text id="IDS_MSGF_BODY_FROM">Od</text>
+ <text id="IDS_COM_SK_DELETE">Obriši</text>
+ <text id="IDS_MSGF_SK3_UNREAD">Neproč.</text>
+ <text id="IDS_MSGC_BODY_DUPLICATED_RECIPIENT">Primalac dupliran</text>
+ <text id="IDS_MSGF_BODY_GSM_ALPHABET">GSM abeceda</text>
+ <text id="IDS_MSGF_BODY_SIM_CARD_MESSAGES">Poruke SIM kartice</text>
+ <text id="IDS_MSGF_BODY_MMSNOTIMSGSTATUSSENT">Poslato</text>
+ <text id="IDS_COM_BODY_CONTACTS">Kontakti</text>
+ <text id="IDS_MSGF_OPT_STATUS">Status</text>
+ <text id="IDS_MSGF_BODY_MMSCCCREATIONMODEFREE">Slobodno</text>
+ <text id="IDS_COM_BODY_DETAILS_TYPE">Tip</text>
+ <text id="IDS_MSGF_BODY_AUTODOWNLOAD">Automatsko preuzimanje</text>
+ <text id="IDS_MSGF_SK_RESEND">Ponovi slanje</text>
+ <text id="IDS_COM_SK_CANCEL">Poništi</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONS">Opcije prijema</text>
+ <text id="IDS_COM_BODY_GALLERY">Galerija</text>
+ <text id="IDS_MSGC_BUTTON2_DURATION_N_HPD_SECS">Trajanje\n(%d sek.)</text>
+ <text id="IDS_COM_BODY_SEARCH">Pretraži</text>
+ <text id="IDS_MSGF_HEADER_MESSAGE_BOXES">Sandučići</text>
+ <text id="IDS_MSGF_HEADER_ADD_NUMBER">Dodaj broj</text>
+ <text id="IDS_COM_BODY_MEMO">Beleška</text>
+ <text id="IDS_MSGF_BODY_COPY_TO_SIM">Kopiraj u SIM</text>
+ <text id="IDS_MSGF_BODY_ENTER_NUMBER">Unesi broj</text>
+ <text id="IDS_COM_OPT_ADD_CONTACT">Dodaj kontakt</text>
+ <text id="IDS_MSGF_OPT_HOME_NETWORK">Domaća mreža</text>
+ <text id="IDS_COM_POP_REJECTED">Odbijeno</text>
+ <text id="IDS_COM_BODY_SETTINGS">Podešavanja</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_START_WITH">Započinje sa</text>
+ <text id="IDS_COM_BODY_DISPLAY">Ekran</text>
+ <text id="IDS_MSGF_OPT_PROTECTION_ON">Zaštita uključena</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONNETWORK_MANUAL">Ručno</text>
+ <text id="IDS_SLCD_POP_TEXT_SIM_CARD_ERROR">Greška SIM kartice</text>
+ <text id="IDS_COM_POP_DELETED">Obrisano</text>
+ <text id="IDS_COM_SK_SEND_ABB">Pošalji</text>
+ <text id="IDS_MSGF_POP_FORWARDED">Prosleđeno</text>
+ <text id="IDS_MSG_SELECT_NUMBERS">Select numbers (%d)</text>
+ <text id="IDS_MSGF_BODY_CENTRE_PD">Centar %d</text>
+ <text id="IDS_MSGF_HEADER_EDIT_NUMBER">Izmeni broj</text>
+ <text id="IDS_MSGF_BODY_AUTOMATIC">Automatski</text>
+ <text id="IDS_MSGF_BODY_VIEW_MESSAGE_DETAILS_ABB">Prikaži info. o por.</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONNETWORK_REJECT">Odbaci</text>
+ <text id="IDS_COM_BODY_VOICE_CALL">Govorni poziv</text>
+ <text id="IDS_MSG_MBODY_USE_THE_VOLUME_KEY">Kor. tast. za jač. zvuka</text>
+ <text id="IDS_COM_SK_SAVE">Sačuvaj</text>
+ <text id="IDS_MSGF_BODY_INVALID_SERVICE_CENTRE_ADDRESS">Invalid service centre address</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_EXACTLY_THE_SAME_AS">Potpuno isto kao</text>
+ <text id="IDS_COM_BODY_NO_SEARCH_RESULTS">Nema rezultata pretrage</text>
+ <text id="IDS_MSGF_BODY_MMS">MMS</text>
+ <text id="IDS_MSGF_BODY_MMSCREATIONMODE">Režim kreiranja</text>
+ <text id="IDS_MSGF_BODY_TEXT_MESSAGES">Tekstualne poruke</text>
+ <text id="IDS_MSGF_BODY_RECEIVED">Primljeno</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_MATCH_CRITERIA">Kriterijumi pretrage</text>
+ <text id="IDS_MSGF_POP_DEFERRED">Vaša poruka je odložena.</text>
+ <text id="IDS_COM_SK_ADD">Dodaj</text>
+ <text id="IDS_MSGF_OPT_BLOCK">Blokiraj</text>
+ <text id="IDS_COM_SK_YES">Da</text>
+ <text id="IDS_MSGC_OPT_VIEW_CONTACT">Prikaži kontakt</text>
+ <text id="IDS_COM_SK_SEARCH">Pretraga</text>
+ <text id="IDS_COM_POP_AM_M_ABB">AM</text>
+ <text id="IDS_MSGF_BODY_BLOCKED_WORDS">Blokirane reči</text>
+ <text id="IDS_COM_BODY_SUBJECT">Naslov</text>
+ <text id="IDS_MSGF_POP_UNRECOGNISED">Neprepoznato</text>
+ <text id="IDS_MSGF_BODY_SEND_READ_REPORT">Šalji izveštaj o čitanju</text>
+ <text id="IDS_MSGF_SK_RESTORE">Vrati</text>
+ <text id="IDS_MSGF_BODY_REQUEST_READ_REPORT">Zahtevaj izveš. o čitanju</text>
+ <text id="IDS_MSGF_BODY_ENTER_WORD">Unesi reč</text>
+ <text id="IDS_COM_SK3_COMPOSE">Sastavi</text>
+ <text id="IDS_COM_POP_UNKNOWN_ERROR_OCCURRED">Došlo je do nepoznate greške</text>
+ <text id="IDS_MSGF_BODY_REQUEST_DELIVERY_REPORT">Zahtevaj izveštaj o prispeću</text>
+ <text id="IDS_MSGF_BODY_INVALID_RECIPIENTS">Neispravni primaoci</text>
+ <text id="IDS_MSGF_BODY_BROADCASTMESSAGES">Info poruke</text>
+ <text id="IDS_MSGF_OPT_SAVE_ATTACHMENT">Sačuvaj prilog</text>
+ <text id="IDS_MSGF_BODY_DELIVERY_REPORT">Izveštaj o prispeću</text>
+ <text id="IDS_MSGC_POP_DISCARD_CURRENT_MESSAGE_Q">Odbaci trenutnu poruku?</text>
+ <text id="IDS_COM_POP_ATTACH">Priloži</text>
+ <text id="IDS_COM_BODY_CALENDAR">Kalendar</text>
+ <text id="IDS_COM_SK_OK">OK</text>
+ <text id="IDS_COM_SK_CALL">Poziv</text>
+ <text id="IDS_MSGC_BODY_CAPTURE_VIDEO">Snimi video zapis</text>
+ <text id="IDS_MSG_HEADER_SELECT_RECIPIENT">Izaberi primaoca</text>
+</string_table>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201301241731" Dversion="20120315">
+ <text id="IDS_MSGF_HEADER_MESSAGE_DETAILS">Meddelandeinformation</text>
+ <text id="IDS_COM_SK3_PREVIEW">Förhandsg</text>
+ <text id="IDS_COM_BODY_PD_SELECTED">%d markerade</text>
+ <text id="IDS_MSG_BODY_DURATION_MUST_BE_LONGER_THAN_PD_SECONDS">Varaktigheten måste vara längre än %d sekunder</text>
+ <text id="IDS_DB_POP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED_DELETE_SOME_CHARACTERS">Högsta tillåtna antalet tecken är överskridet. Radera några tecken</text>
+ <text id="IDS_MSGF_BODY_NO_BLOCKED_WORDS">No blocked words</text>
+ <text id="IDS_COM_BODY_SELECT_ALL">Välj alla</text>
+ <text id="IDS_MSGF_BODY_NO_SUBJECT">Ingen rubrik</text>
+ <text id="IDS_COM_POP_CLOSE">Stäng</text>
+ <text id="IDS_COM_BODY_TO">Till</text>
+ <text id="IDS_MSGC_BODY_TAKE_PICTURE">Ta foto</text>
+ <text id="IDS_COM_POP_DELETE_Q">Radera?</text>
+ <text id="IDS_MSGC_HEADER_INPUTMODE">Inmatningsspråk</text>
+ <text id="IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED">Högsta antalet mottagare (%d) har uppnåtts</text>
+ <text id="IDS_COM_SK_NO">Nej</text>
+ <text id="IDS_COM_BODY_MY_FILES">Mina filer</text>
+ <text id="IDS_MSGF_BODY_COPY_TO_PHONE">Kopiera till telefonen</text>
+ <text id="IDS_MSGF_BODY_CB_MESSAGES">CB-meddelanden</text>
+ <text id="IDS_MSGF_BODY_SERVICECENTRE">Tjänstecenter</text>
+ <text id="IDS_COM_BODY_SMS">Textmeddelande</text>
+ <text id="IDS_MSGF_POP_SENDING_FAILED_MESSAGE">Skickar misslyckat meddelande</text>
+ <text id="IDS_COM_POP_SUCCESS">Slutfört</text>
+ <text id="IDS_MSGF_POP_MESSAGES_RECEIVED_FROM_YOUR_CONTACTS_WILL_NOT_BE_BLOCKED_EVEN_IF_THEY_CONTAIN_BLOCKED_NUMBERS">Messages received from your contacts will not be blocked even if they contain blocked numbers</text>
+ <text id="IDS_MSG_SELECT_WORDS">Select words (%d)</text>
+ <text id="IDS_MSGF_BODY_ROAMINGRECEPTION_RESTRICTED">Begränsat</text>
+ <text id="IDS_MSGF_POP_MESSAGES_RECEIVED_FROM_YOUR_CONTACTS_WILL_NOT_BE_BLOCKED_EVEN_IF_THEY_CONTAIN_BLOCKED_WORDS">Meddelanden från dina kontakter blockeras inte även om de innehåller blockerade ord</text>
+ <text id="IDS_MSGF_OPT_UNBLOCK">Tillåt</text>
+ <text id="IDS_MSGF_BODY_COPY_MESSAGE_TEXT_ABB">Kopiera medd.text</text>
+ <text id="IDS_MSGF_BODY_READ_REPORT">Läsrapport</text>
+ <text id="IDS_COM_BODY_MESSAGES">Meddelanden</text>
+ <text id="IDS_COM_SK_OPTIONS">Val</text>
+ <text id="IDS_COM_SK_DONE">Klar</text>
+ <text id="IDS_COM_POP_PM">EM</text>
+ <text id="IDS_COM_BODY_UNKNOWN">Okänd</text>
+ <text id="IDS_MSG_BODY_DRAFT_MESSAGES">Utkast</text>
+ <text id="IDS_COM_POP_SERVICE_UNAVAILABLE">Tjänst ej tillgänglig</text>
+ <text id="IDS_MSGF_OPT_CREATEMSG_ADD_WORD">Lägg till ord</text>
+ <text id="IDS_MSGF_POP_BLOCK_PS_Q">Blockera %s?</text>
+ <text id="IDS_MSG_BODY_CHANGE_TEXT_SIZE_USING_THE_VOLUME_KEY">Ändra textstorlek med volymknappen</text>
+ <text id="IDS_COM_POP_NEW_MESSAGE">Nytt meddelande</text>
+ <text id="IDS_MSGF_BODY_SPAM_MESSAGES">Skräppostmeddelanden</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_INCLUDE">Inkludera</text>
+ <text id="IDS_MSGF_BODY_NO_BLOCKED_NUMBERS">No blocked numbers</text>
+ <text id="IDS_MSGF_BODY_BLOCKED_NUMBERS">Blockerade nummer</text>
+ <text id="IDS_MSGF_BODY_SETTINGS_MULTIMEDIAMESSAGE">Multimediemeddelanden</text>
+ <text id="IDS_MSGF_BODY_EDIT_WORD">Redigera ord</text>
+ <text id="IDS_MSGF_BODY_EXPIRED">Har slutat gälla</text>
+ <text id="IDS_MSGF_BODY_MMSCCCREATIONMODEWARNING">Varning</text>
+ <text id="IDS_COM_SK_EDIT">Redigera</text>
+ <text id="IDS_COM_POP_FAILED">Misslyckades</text>
+ <text id="IDS_MSGF_HEADER_DELETE_NUMBER">Radera nummer</text>
+ <text id="IDS_MSGC_BODY_RECORD_AUDIO">Spela in ljud</text>
+ <text id="IDS_COM_SK_BACK">Åter</text>
+ <text id="IDS_MSGF_BODY_UNICODE">Unicode</text>
+ <text id="IDS_MSGF_HEADER_DELETE_WORDS">Ta bort ord</text>
+ <text id="IDS_COM_BODY_FORWARD">Vidarebefodra</text>
+ <text id="IDS_MSGF_POP_NOMESSAGES">Inga meddelanden</text>
+ <text id="IDS_MSGF_OPT_ROAM_NETWORK">Roaming-nät</text>
+ <text id="IDS_MSGF_BODY_FROM">Från</text>
+ <text id="IDS_COM_SK_DELETE">Radera</text>
+ <text id="IDS_MSGF_SK3_UNREAD">Olästa</text>
+ <text id="IDS_MSGC_BODY_DUPLICATED_RECIPIENT">Mottagare finns redan</text>
+ <text id="IDS_MSGF_BODY_GSM_ALPHABET">GSM-alfabet</text>
+ <text id="IDS_MSGF_BODY_SIM_CARD_MESSAGES">SIM-kortsmeddelanden</text>
+ <text id="IDS_MSGF_BODY_MMSNOTIMSGSTATUSSENT">Sänt</text>
+ <text id="IDS_COM_BODY_CONTACTS">Kontakter</text>
+ <text id="IDS_MSGF_OPT_STATUS">Status</text>
+ <text id="IDS_MSGF_BODY_MMSCCCREATIONMODEFREE">Fritt</text>
+ <text id="IDS_COM_BODY_DETAILS_TYPE">Typ</text>
+ <text id="IDS_MSGF_BODY_AUTODOWNLOAD">Autohämtning</text>
+ <text id="IDS_MSGF_SK_RESEND">Skicka igen</text>
+ <text id="IDS_COM_SK_CANCEL">Avbryt</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONS">Mottagningsalternativ</text>
+ <text id="IDS_COM_BODY_GALLERY">Galleri</text>
+ <text id="IDS_MSGC_BUTTON2_DURATION_N_HPD_SECS">Varaktighet\n(%d sek)</text>
+ <text id="IDS_COM_BODY_SEARCH">Sök</text>
+ <text id="IDS_MSGF_HEADER_MESSAGE_BOXES">Meddelanderutor</text>
+ <text id="IDS_MSGF_HEADER_ADD_NUMBER">Lägg till nummer</text>
+ <text id="IDS_COM_BODY_MEMO">Memo</text>
+ <text id="IDS_MSGF_BODY_COPY_TO_SIM">Kopiera till SIM</text>
+ <text id="IDS_MSGF_BODY_ENTER_NUMBER">Ange nummer</text>
+ <text id="IDS_COM_OPT_ADD_CONTACT">Lägg till kontakt</text>
+ <text id="IDS_MSGF_OPT_HOME_NETWORK">Hemnät</text>
+ <text id="IDS_COM_POP_REJECTED">Avvisat</text>
+ <text id="IDS_COM_BODY_SETTINGS">Inställningar</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_START_WITH">Starta med</text>
+ <text id="IDS_COM_BODY_DISPLAY">Display</text>
+ <text id="IDS_MSGF_OPT_PROTECTION_ON">Skydd på</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONNETWORK_MANUAL">Manuellt</text>
+ <text id="IDS_SLCD_POP_TEXT_SIM_CARD_ERROR">SIM-kortfel</text>
+ <text id="IDS_COM_POP_DELETED">Raderad</text>
+ <text id="IDS_COM_SK_SEND_ABB">Sänd</text>
+ <text id="IDS_MSGF_POP_FORWARDED">Vidarebefordrad</text>
+ <text id="IDS_MSG_SELECT_NUMBERS">Select numbers (%d)</text>
+ <text id="IDS_MSGF_BODY_CENTRE_PD">Center %d</text>
+ <text id="IDS_MSGF_HEADER_EDIT_NUMBER">Redigera nummer</text>
+ <text id="IDS_MSGF_BODY_AUTOMATIC">Automatisk</text>
+ <text id="IDS_MSGF_BODY_VIEW_MESSAGE_DETAILS_ABB">Visa meddelandeinfo</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONNETWORK_REJECT">Avvisa</text>
+ <text id="IDS_COM_BODY_VOICE_CALL">Röstsamtal</text>
+ <text id="IDS_MSG_MBODY_USE_THE_VOLUME_KEY">Använd volymknappen</text>
+ <text id="IDS_COM_SK_SAVE">Spara</text>
+ <text id="IDS_MSGF_BODY_INVALID_SERVICE_CENTRE_ADDRESS">Invalid service centre address</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_EXACTLY_THE_SAME_AS">Exakt</text>
+ <text id="IDS_COM_BODY_NO_SEARCH_RESULTS">Inga sökresultat</text>
+ <text id="IDS_MSGF_BODY_MMS">Multimediemeddelande</text>
+ <text id="IDS_MSGF_BODY_MMSCREATIONMODE">Skapaläge</text>
+ <text id="IDS_MSGF_BODY_TEXT_MESSAGES">Textmeddelanden</text>
+ <text id="IDS_MSGF_BODY_RECEIVED">Mottaget</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_MATCH_CRITERIA">Uppfyller kriterier</text>
+ <text id="IDS_MSGF_POP_DEFERRED">Uppskjuten</text>
+ <text id="IDS_COM_SK_ADD">Lägg till</text>
+ <text id="IDS_MSGF_OPT_BLOCK">Blockera</text>
+ <text id="IDS_COM_SK_YES">Ja</text>
+ <text id="IDS_MSGC_OPT_VIEW_CONTACT">Visa kontakter</text>
+ <text id="IDS_COM_SK_SEARCH">Sök</text>
+ <text id="IDS_COM_POP_AM_M_ABB">FM</text>
+ <text id="IDS_MSGF_BODY_BLOCKED_WORDS">Blockerade ord</text>
+ <text id="IDS_COM_BODY_SUBJECT">Rubrik</text>
+ <text id="IDS_MSGF_POP_UNRECOGNISED">Oidentifierad</text>
+ <text id="IDS_MSGF_BODY_SEND_READ_REPORT">Sänd läsrapport</text>
+ <text id="IDS_MSGF_SK_RESTORE">Återställ</text>
+ <text id="IDS_MSGF_BODY_REQUEST_READ_REPORT">Begär läsrapport</text>
+ <text id="IDS_MSGF_BODY_ENTER_WORD">Ange ord</text>
+ <text id="IDS_COM_SK3_COMPOSE">Skriv</text>
+ <text id="IDS_COM_POP_UNKNOWN_ERROR_OCCURRED">Okänt fel inträffade</text>
+ <text id="IDS_MSGF_BODY_REQUEST_DELIVERY_REPORT">Begär leveransrapport</text>
+ <text id="IDS_MSGF_BODY_INVALID_RECIPIENTS">Ogiltiga mottagare</text>
+ <text id="IDS_MSGF_BODY_BROADCASTMESSAGES">Broadcast-meddelanden</text>
+ <text id="IDS_MSGF_OPT_SAVE_ATTACHMENT">Spara bilaga</text>
+ <text id="IDS_MSGF_BODY_DELIVERY_REPORT">Leveransrapport</text>
+ <text id="IDS_MSGC_POP_DISCARD_CURRENT_MESSAGE_Q">Ignorera aktuellt meddelande?</text>
+ <text id="IDS_COM_POP_ATTACH">Bifoga</text>
+ <text id="IDS_COM_BODY_CALENDAR">Kalender</text>
+ <text id="IDS_COM_SK_OK">OK</text>
+ <text id="IDS_COM_SK_CALL">Samtal</text>
+ <text id="IDS_MSGC_BODY_CAPTURE_VIDEO">Spela in video</text>
+ <text id="IDS_MSG_HEADER_SELECT_RECIPIENT">Välj mottagare</text>
+</string_table>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201301241731" Dversion="20120315">
+ <text id="IDS_MSGF_HEADER_MESSAGE_DETAILS">Mesaj ayrıntıları</text>
+ <text id="IDS_COM_SK3_PREVIEW">Önizleme</text>
+ <text id="IDS_COM_BODY_PD_SELECTED">%d seçildi</text>
+ <text id="IDS_MSG_BODY_DURATION_MUST_BE_LONGER_THAN_PD_SECONDS">Süre %d saniyeden uzun olmalıdır</text>
+ <text id="IDS_DB_POP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED_DELETE_SOME_CHARACTERS">Maksimum karakter sayısı aşıldı. Bazı karakterleri silin</text>
+ <text id="IDS_MSGF_BODY_NO_BLOCKED_WORDS">No blocked words</text>
+ <text id="IDS_COM_BODY_SELECT_ALL">Hepsini seç</text>
+ <text id="IDS_MSGF_BODY_NO_SUBJECT">Konu yok</text>
+ <text id="IDS_COM_POP_CLOSE">Kapat</text>
+ <text id="IDS_COM_BODY_TO">Alıcı</text>
+ <text id="IDS_MSGC_BODY_TAKE_PICTURE">Resim çek</text>
+ <text id="IDS_COM_POP_DELETE_Q">Sil?</text>
+ <text id="IDS_MSGC_HEADER_INPUTMODE">Giriş modu</text>
+ <text id="IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED">Maksimum alıcı sayısına (%d) ulaşıldı</text>
+ <text id="IDS_COM_SK_NO">Hayır</text>
+ <text id="IDS_COM_BODY_MY_FILES">Dosyalarım</text>
+ <text id="IDS_MSGF_BODY_COPY_TO_PHONE">Telefona kopyala</text>
+ <text id="IDS_MSGF_BODY_CB_MESSAGES">CB mesajları</text>
+ <text id="IDS_MSGF_BODY_SERVICECENTRE">Servis merkezi</text>
+ <text id="IDS_COM_BODY_SMS">SMS</text>
+ <text id="IDS_MSGF_POP_SENDING_FAILED_MESSAGE">Gönderme başarısız mesajı</text>
+ <text id="IDS_COM_POP_SUCCESS">Başarılı</text>
+ <text id="IDS_MSGF_POP_MESSAGES_RECEIVED_FROM_YOUR_CONTACTS_WILL_NOT_BE_BLOCKED_EVEN_IF_THEY_CONTAIN_BLOCKED_NUMBERS">Messages received from your contacts will not be blocked even if they contain blocked numbers</text>
+ <text id="IDS_MSG_SELECT_WORDS">Select words (%d)</text>
+ <text id="IDS_MSGF_BODY_ROAMINGRECEPTION_RESTRICTED">Kısıtlı</text>
+ <text id="IDS_MSGF_POP_MESSAGES_RECEIVED_FROM_YOUR_CONTACTS_WILL_NOT_BE_BLOCKED_EVEN_IF_THEY_CONTAIN_BLOCKED_WORDS">Kişilerinizden aldığınız mesajlar, engelli sözcükler içerse de engellenmeyecektir</text>
+ <text id="IDS_MSGF_OPT_UNBLOCK">Aç</text>
+ <text id="IDS_MSGF_BODY_COPY_MESSAGE_TEXT_ABB">Mesaj metni kopyala</text>
+ <text id="IDS_MSGF_BODY_READ_REPORT">Okundu raporu</text>
+ <text id="IDS_COM_BODY_MESSAGES">Mesajlar</text>
+ <text id="IDS_COM_SK_OPTIONS">Sçnklr</text>
+ <text id="IDS_COM_SK_DONE">Kaydet</text>
+ <text id="IDS_COM_POP_PM">PM</text>
+ <text id="IDS_COM_BODY_UNKNOWN">Bilinmeyen</text>
+ <text id="IDS_MSG_BODY_DRAFT_MESSAGES">Taslak mesajlar</text>
+ <text id="IDS_COM_POP_SERVICE_UNAVAILABLE">Servis Kullanılamıyor</text>
+ <text id="IDS_MSGF_OPT_CREATEMSG_ADD_WORD">Kelime ekle</text>
+ <text id="IDS_MSGF_POP_BLOCK_PS_Q">%s engellensin mi?</text>
+ <text id="IDS_MSG_BODY_CHANGE_TEXT_SIZE_USING_THE_VOLUME_KEY">Ses tuşu ile metin boyutunu değiştirin</text>
+ <text id="IDS_COM_POP_NEW_MESSAGE">Yeni mesaj</text>
+ <text id="IDS_MSGF_BODY_SPAM_MESSAGES">Spam mesajları</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_INCLUDE">Dahil et</text>
+ <text id="IDS_MSGF_BODY_NO_BLOCKED_NUMBERS">No blocked numbers</text>
+ <text id="IDS_MSGF_BODY_BLOCKED_NUMBERS">Engelli numaralar</text>
+ <text id="IDS_MSGF_BODY_SETTINGS_MULTIMEDIAMESSAGE">Multimedya mesajları</text>
+ <text id="IDS_MSGF_BODY_EDIT_WORD">Kelime düzenle</text>
+ <text id="IDS_MSGF_BODY_EXPIRED">Sona erdi</text>
+ <text id="IDS_MSGF_BODY_MMSCCCREATIONMODEWARNING">Uyarı</text>
+ <text id="IDS_COM_SK_EDIT">Düzenle</text>
+ <text id="IDS_COM_POP_FAILED">Başarısız</text>
+ <text id="IDS_MSGF_HEADER_DELETE_NUMBER">Numarayı sil</text>
+ <text id="IDS_MSGC_BODY_RECORD_AUDIO">Ses kaydet</text>
+ <text id="IDS_COM_SK_BACK">Geri</text>
+ <text id="IDS_MSGF_BODY_UNICODE">Çoklu dil</text>
+ <text id="IDS_MSGF_HEADER_DELETE_WORDS">Kelimeleri sil</text>
+ <text id="IDS_COM_BODY_FORWARD">İlet</text>
+ <text id="IDS_MSGF_POP_NOMESSAGES">Mesaj yok</text>
+ <text id="IDS_MSGF_OPT_ROAM_NETWORK">Dış şebeke</text>
+ <text id="IDS_MSGF_BODY_FROM">Kimden</text>
+ <text id="IDS_COM_SK_DELETE">Sil</text>
+ <text id="IDS_MSGF_SK3_UNREAD">Okunmamış</text>
+ <text id="IDS_MSGC_BODY_DUPLICATED_RECIPIENT">Çoğaltılan alıcı</text>
+ <text id="IDS_MSGF_BODY_GSM_ALPHABET">GSM-Alfabesi</text>
+ <text id="IDS_MSGF_BODY_SIM_CARD_MESSAGES">SIM kart mesajları</text>
+ <text id="IDS_MSGF_BODY_MMSNOTIMSGSTATUSSENT">Gönderildi</text>
+ <text id="IDS_COM_BODY_CONTACTS">Rehber</text>
+ <text id="IDS_MSGF_OPT_STATUS">Durum</text>
+ <text id="IDS_MSGF_BODY_MMSCCCREATIONMODEFREE">Serbest</text>
+ <text id="IDS_COM_BODY_DETAILS_TYPE">Tür</text>
+ <text id="IDS_MSGF_BODY_AUTODOWNLOAD">Oto. indirme</text>
+ <text id="IDS_MSGF_SK_RESEND">Tekrar Gönder</text>
+ <text id="IDS_COM_SK_CANCEL">İptal</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONS">Alma seçenekleri</text>
+ <text id="IDS_COM_BODY_GALLERY">Galeri</text>
+ <text id="IDS_MSGC_BUTTON2_DURATION_N_HPD_SECS">Süre\n(%d san)</text>
+ <text id="IDS_COM_BODY_SEARCH">Buluyor</text>
+ <text id="IDS_MSGF_HEADER_MESSAGE_BOXES">Mesaj kutuları</text>
+ <text id="IDS_MSGF_HEADER_ADD_NUMBER">Numara ekle</text>
+ <text id="IDS_COM_BODY_MEMO">Not</text>
+ <text id="IDS_MSGF_BODY_COPY_TO_SIM">SIM'e kopyala</text>
+ <text id="IDS_MSGF_BODY_ENTER_NUMBER">Numarayı girin</text>
+ <text id="IDS_COM_OPT_ADD_CONTACT">Kişi ekle</text>
+ <text id="IDS_MSGF_OPT_HOME_NETWORK">Ana şebeke</text>
+ <text id="IDS_COM_POP_REJECTED">Reddedildi</text>
+ <text id="IDS_COM_BODY_SETTINGS">Ayarlar</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_START_WITH">Başlangıç:</text>
+ <text id="IDS_COM_BODY_DISPLAY">Ekran</text>
+ <text id="IDS_MSGF_OPT_PROTECTION_ON">Koruma açık</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONNETWORK_MANUAL">Manuel</text>
+ <text id="IDS_SLCD_POP_TEXT_SIM_CARD_ERROR">SIM kart hatası</text>
+ <text id="IDS_COM_POP_DELETED">Silindi</text>
+ <text id="IDS_COM_SK_SEND_ABB">Gönder</text>
+ <text id="IDS_MSGF_POP_FORWARDED">İletildi</text>
+ <text id="IDS_MSG_SELECT_NUMBERS">Select numbers (%d)</text>
+ <text id="IDS_MSGF_BODY_CENTRE_PD">Merkez %d</text>
+ <text id="IDS_MSGF_HEADER_EDIT_NUMBER">Numara düzenle</text>
+ <text id="IDS_MSGF_BODY_AUTOMATIC">Otomatik</text>
+ <text id="IDS_MSGF_BODY_VIEW_MESSAGE_DETAILS_ABB">Mesaj ayrıntı göster</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONNETWORK_REJECT">Reddet</text>
+ <text id="IDS_COM_BODY_VOICE_CALL">Sesli arama</text>
+ <text id="IDS_MSG_MBODY_USE_THE_VOLUME_KEY">Ses tuşunu kullan</text>
+ <text id="IDS_COM_SK_SAVE">Kaydet</text>
+ <text id="IDS_MSGF_BODY_INVALID_SERVICE_CENTRE_ADDRESS">Invalid service centre address</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_EXACTLY_THE_SAME_AS">Aynısı</text>
+ <text id="IDS_COM_BODY_NO_SEARCH_RESULTS">Hiç arama sonucu bulunamadı</text>
+ <text id="IDS_MSGF_BODY_MMS">MMS</text>
+ <text id="IDS_MSGF_BODY_MMSCREATIONMODE">Oluşturma modu</text>
+ <text id="IDS_MSGF_BODY_TEXT_MESSAGES">Metin mesajları</text>
+ <text id="IDS_MSGF_BODY_RECEIVED">Alınan</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_MATCH_CRITERIA">Eşleşme kriterleri</text>
+ <text id="IDS_MSGF_POP_DEFERRED">Ertelendi</text>
+ <text id="IDS_COM_SK_ADD">Ekle</text>
+ <text id="IDS_MSGF_OPT_BLOCK">Engelle</text>
+ <text id="IDS_COM_SK_YES">Evet</text>
+ <text id="IDS_MSGC_OPT_VIEW_CONTACT">Kişiyi görüntüle</text>
+ <text id="IDS_COM_SK_SEARCH">Bul</text>
+ <text id="IDS_COM_POP_AM_M_ABB">AM</text>
+ <text id="IDS_MSGF_BODY_BLOCKED_WORDS">Engelli kelimeler</text>
+ <text id="IDS_COM_BODY_SUBJECT">Konu</text>
+ <text id="IDS_MSGF_POP_UNRECOGNISED">Tanınmadı</text>
+ <text id="IDS_MSGF_BODY_SEND_READ_REPORT">Okundu raporu gönder</text>
+ <text id="IDS_MSGF_SK_RESTORE">Geri ykle</text>
+ <text id="IDS_MSGF_BODY_REQUEST_READ_REPORT">Okundu raporu iste</text>
+ <text id="IDS_MSGF_BODY_ENTER_WORD">Kelime gir</text>
+ <text id="IDS_COM_SK3_COMPOSE">Yaz</text>
+ <text id="IDS_COM_POP_UNKNOWN_ERROR_OCCURRED">Bilinmeyen hata oluştu</text>
+ <text id="IDS_MSGF_BODY_REQUEST_DELIVERY_REPORT">İletim raporu talep et</text>
+ <text id="IDS_MSGF_BODY_INVALID_RECIPIENTS">Geçersiz alıcılar</text>
+ <text id="IDS_MSGF_BODY_BROADCASTMESSAGES">Hücre yayını mesajları</text>
+ <text id="IDS_MSGF_OPT_SAVE_ATTACHMENT">Eki kaydet</text>
+ <text id="IDS_MSGF_BODY_DELIVERY_REPORT">İletim raporu</text>
+ <text id="IDS_MSGC_POP_DISCARD_CURRENT_MESSAGE_Q">Geçerli mesajdan vazgeçilsin mi?</text>
+ <text id="IDS_COM_POP_ATTACH">Ekle</text>
+ <text id="IDS_COM_BODY_CALENDAR">Takvim</text>
+ <text id="IDS_COM_SK_OK">Tamam</text>
+ <text id="IDS_COM_SK_CALL">Arama</text>
+ <text id="IDS_MSGC_BODY_CAPTURE_VIDEO">Video yakala</text>
+ <text id="IDS_MSG_HEADER_SELECT_RECIPIENT">Alıcı seç</text>
+</string_table>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201301241731" Dversion="20120315">
+ <text id="IDS_MSGF_HEADER_MESSAGE_DETAILS">Деталі повідомлення</text>
+ <text id="IDS_COM_SK3_PREVIEW">Перегл.</text>
+ <text id="IDS_COM_BODY_PD_SELECTED">Вибрано %d</text>
+ <text id="IDS_MSG_BODY_DURATION_MUST_BE_LONGER_THAN_PD_SECONDS">Тривалість має бути більшою за %d сек.</text>
+ <text id="IDS_DB_POP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED_DELETE_SOME_CHARACTERS">Перевищено максимальну кількість символів. Видаліть деякі символи</text>
+ <text id="IDS_MSGF_BODY_NO_BLOCKED_WORDS">No blocked words</text>
+ <text id="IDS_COM_BODY_SELECT_ALL">Вибрати всі</text>
+ <text id="IDS_MSGF_BODY_NO_SUBJECT">Немає теми</text>
+ <text id="IDS_COM_POP_CLOSE">Закрити</text>
+ <text id="IDS_COM_BODY_TO">Кому</text>
+ <text id="IDS_MSGC_BODY_TAKE_PICTURE">Зробити знімок</text>
+ <text id="IDS_COM_POP_DELETE_Q">Видалити?</text>
+ <text id="IDS_MSGC_HEADER_INPUTMODE">Режим введення</text>
+ <text id="IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED">Досягнуто максимальної кількості одержувачів (%d)</text>
+ <text id="IDS_COM_SK_NO">Ні</text>
+ <text id="IDS_COM_BODY_MY_FILES">Мої файли</text>
+ <text id="IDS_MSGF_BODY_COPY_TO_PHONE">Копіювати на телефон</text>
+ <text id="IDS_MSGF_BODY_CB_MESSAGES">CB-повідомлення</text>
+ <text id="IDS_MSGF_BODY_SERVICECENTRE">SMS-центр</text>
+ <text id="IDS_COM_BODY_SMS">SMS</text>
+ <text id="IDS_MSGF_POP_SENDING_FAILED_MESSAGE">Надсилання повідомлення, з яким стався збій</text>
+ <text id="IDS_COM_POP_SUCCESS">Успішно</text>
+ <text id="IDS_MSGF_POP_MESSAGES_RECEIVED_FROM_YOUR_CONTACTS_WILL_NOT_BE_BLOCKED_EVEN_IF_THEY_CONTAIN_BLOCKED_NUMBERS">Messages received from your contacts will not be blocked even if they contain blocked numbers</text>
+ <text id="IDS_MSG_SELECT_WORDS">Select words (%d)</text>
+ <text id="IDS_MSGF_BODY_ROAMINGRECEPTION_RESTRICTED">Обмежено</text>
+ <text id="IDS_MSGF_POP_MESSAGES_RECEIVED_FROM_YOUR_CONTACTS_WILL_NOT_BE_BLOCKED_EVEN_IF_THEY_CONTAIN_BLOCKED_WORDS">Повідомлення від контактів не блокуватимуться, навіть якщо вони міститимуть заблоковані слова</text>
+ <text id="IDS_MSGF_OPT_UNBLOCK">Розблокувати</text>
+ <text id="IDS_MSGF_BODY_COPY_MESSAGE_TEXT_ABB">Копіюв. текст повід.</text>
+ <text id="IDS_MSGF_BODY_READ_REPORT">Звіт про прочитання</text>
+ <text id="IDS_COM_BODY_MESSAGES">Повідомлення</text>
+ <text id="IDS_COM_SK_OPTIONS">Опції</text>
+ <text id="IDS_COM_SK_DONE">Готово</text>
+ <text id="IDS_COM_POP_PM">PM</text>
+ <text id="IDS_COM_BODY_UNKNOWN">Невідомо</text>
+ <text id="IDS_MSG_BODY_DRAFT_MESSAGES">Чернетки повідомлень</text>
+ <text id="IDS_COM_POP_SERVICE_UNAVAILABLE">Послуга недоступна</text>
+ <text id="IDS_MSGF_OPT_CREATEMSG_ADD_WORD">Додати слово</text>
+ <text id="IDS_MSGF_POP_BLOCK_PS_Q">Заблокувати абонента %s?</text>
+ <text id="IDS_MSG_BODY_CHANGE_TEXT_SIZE_USING_THE_VOLUME_KEY">Змінення розміру тексту за допомогою клавіші гучності</text>
+ <text id="IDS_COM_POP_NEW_MESSAGE">Нове повідомлення</text>
+ <text id="IDS_MSGF_BODY_SPAM_MESSAGES">Небажані повідомлення</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_INCLUDE">Додати</text>
+ <text id="IDS_MSGF_BODY_NO_BLOCKED_NUMBERS">No blocked numbers</text>
+ <text id="IDS_MSGF_BODY_BLOCKED_NUMBERS">Заблоковані номери</text>
+ <text id="IDS_MSGF_BODY_SETTINGS_MULTIMEDIAMESSAGE">MMS-повідомлення</text>
+ <text id="IDS_MSGF_BODY_EDIT_WORD">Редагувати слово</text>
+ <text id="IDS_MSGF_BODY_EXPIRED">Термін дії вже минув</text>
+ <text id="IDS_MSGF_BODY_MMSCCCREATIONMODEWARNING">Попередження</text>
+ <text id="IDS_COM_SK_EDIT">Редагув.</text>
+ <text id="IDS_COM_POP_FAILED">Збій</text>
+ <text id="IDS_MSGF_HEADER_DELETE_NUMBER">Видалити номер</text>
+ <text id="IDS_MSGC_BODY_RECORD_AUDIO">Записати звук</text>
+ <text id="IDS_COM_SK_BACK">Назад</text>
+ <text id="IDS_MSGF_BODY_UNICODE">Юнікод</text>
+ <text id="IDS_MSGF_HEADER_DELETE_WORDS">Видалити слова</text>
+ <text id="IDS_COM_BODY_FORWARD">Переслати</text>
+ <text id="IDS_MSGF_POP_NOMESSAGES">Немає повідомлень</text>
+ <text id="IDS_MSGF_OPT_ROAM_NETWORK">Мережа роумінгу</text>
+ <text id="IDS_MSGF_BODY_FROM">Від</text>
+ <text id="IDS_COM_SK_DELETE">Видалити</text>
+ <text id="IDS_MSGF_SK3_UNREAD">Непроч.</text>
+ <text id="IDS_MSGC_BODY_DUPLICATED_RECIPIENT">Повторення одержувача</text>
+ <text id="IDS_MSGF_BODY_GSM_ALPHABET">GSM-алфавіт</text>
+ <text id="IDS_MSGF_BODY_SIM_CARD_MESSAGES">Повідомлення SIM-картки</text>
+ <text id="IDS_MSGF_BODY_MMSNOTIMSGSTATUSSENT">Надіслано</text>
+ <text id="IDS_COM_BODY_CONTACTS">Контакти</text>
+ <text id="IDS_MSGF_OPT_STATUS">Стан</text>
+ <text id="IDS_MSGF_BODY_MMSCCCREATIONMODEFREE">Вільно</text>
+ <text id="IDS_COM_BODY_DETAILS_TYPE">Тип</text>
+ <text id="IDS_MSGF_BODY_AUTODOWNLOAD">Автозавантаження</text>
+ <text id="IDS_MSGF_SK_RESEND">Повторити надсилання</text>
+ <text id="IDS_COM_SK_CANCEL">Скасувати</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONS">Опції отримання</text>
+ <text id="IDS_COM_BODY_GALLERY">Галерея</text>
+ <text id="IDS_MSGC_BUTTON2_DURATION_N_HPD_SECS">Тривалість\n(%d сек)</text>
+ <text id="IDS_COM_BODY_SEARCH">Пошук</text>
+ <text id="IDS_MSGF_HEADER_MESSAGE_BOXES">Вікна повідомлень</text>
+ <text id="IDS_MSGF_HEADER_ADD_NUMBER">Додати номер</text>
+ <text id="IDS_COM_BODY_MEMO">Нагадування</text>
+ <text id="IDS_MSGF_BODY_COPY_TO_SIM">Копіювати на SIM-картку</text>
+ <text id="IDS_MSGF_BODY_ENTER_NUMBER">Введіть номер</text>
+ <text id="IDS_COM_OPT_ADD_CONTACT">Додати контакт</text>
+ <text id="IDS_MSGF_OPT_HOME_NETWORK">Домашня мережа</text>
+ <text id="IDS_COM_POP_REJECTED">Відхилено</text>
+ <text id="IDS_COM_BODY_SETTINGS">Установки</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_START_WITH">Розпочати</text>
+ <text id="IDS_COM_BODY_DISPLAY">Дисплей</text>
+ <text id="IDS_MSGF_OPT_PROTECTION_ON">Увімкнути захист</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONNETWORK_MANUAL">Вручну</text>
+ <text id="IDS_SLCD_POP_TEXT_SIM_CARD_ERROR">Збій SIM-картки</text>
+ <text id="IDS_COM_POP_DELETED">Видалено</text>
+ <text id="IDS_COM_SK_SEND_ABB">Над.</text>
+ <text id="IDS_MSGF_POP_FORWARDED">Переадресовано</text>
+ <text id="IDS_MSG_SELECT_NUMBERS">Select numbers (%d)</text>
+ <text id="IDS_MSGF_BODY_CENTRE_PD">Центр %d</text>
+ <text id="IDS_MSGF_HEADER_EDIT_NUMBER">Редагувати номер</text>
+ <text id="IDS_MSGF_BODY_AUTOMATIC">Автоматично</text>
+ <text id="IDS_MSGF_BODY_VIEW_MESSAGE_DETAILS_ABB">Перегл. повідомлення</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONNETWORK_REJECT">Відхилити</text>
+ <text id="IDS_COM_BODY_VOICE_CALL">Голосовий виклик</text>
+ <text id="IDS_MSG_MBODY_USE_THE_VOLUME_KEY">Викор. клавіші гучності</text>
+ <text id="IDS_COM_SK_SAVE">Зберегти</text>
+ <text id="IDS_MSGF_BODY_INVALID_SERVICE_CENTRE_ADDRESS">Invalid service centre address</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_EXACTLY_THE_SAME_AS">Повністю збігається з</text>
+ <text id="IDS_COM_BODY_NO_SEARCH_RESULTS">Пошук не дав результатів</text>
+ <text id="IDS_MSGF_BODY_MMS">MMS</text>
+ <text id="IDS_MSGF_BODY_MMSCREATIONMODE">Режим створення</text>
+ <text id="IDS_MSGF_BODY_TEXT_MESSAGES">SMS-повідомлення</text>
+ <text id="IDS_MSGF_BODY_RECEIVED">Отримано</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_MATCH_CRITERIA">Критерій блокування</text>
+ <text id="IDS_MSGF_POP_DEFERRED">Відкладено</text>
+ <text id="IDS_COM_SK_ADD">Додати</text>
+ <text id="IDS_MSGF_OPT_BLOCK">Блокувати</text>
+ <text id="IDS_COM_SK_YES">Так</text>
+ <text id="IDS_MSGC_OPT_VIEW_CONTACT">Переглянути контакт</text>
+ <text id="IDS_COM_SK_SEARCH">Пошук</text>
+ <text id="IDS_COM_POP_AM_M_ABB">AM</text>
+ <text id="IDS_MSGF_BODY_BLOCKED_WORDS">Заблоковані слова</text>
+ <text id="IDS_COM_BODY_SUBJECT">Тема</text>
+ <text id="IDS_MSGF_POP_UNRECOGNISED">Не розпізнано</text>
+ <text id="IDS_MSGF_BODY_SEND_READ_REPORT">Надіслати звіт про прочитання</text>
+ <text id="IDS_MSGF_SK_RESTORE">Відновити</text>
+ <text id="IDS_MSGF_BODY_REQUEST_READ_REPORT">Запит. звіт про прочитання</text>
+ <text id="IDS_MSGF_BODY_ENTER_WORD">Введіть слово</text>
+ <text id="IDS_COM_SK3_COMPOSE">Створити</text>
+ <text id="IDS_COM_POP_UNKNOWN_ERROR_OCCURRED">Сталася невідома помилка</text>
+ <text id="IDS_MSGF_BODY_REQUEST_DELIVERY_REPORT">Запитувати звіт про доставку</text>
+ <text id="IDS_MSGF_BODY_INVALID_RECIPIENTS">Неприпустимі одержувачі</text>
+ <text id="IDS_MSGF_BODY_BROADCASTMESSAGES">СВ-повідомлення</text>
+ <text id="IDS_MSGF_OPT_SAVE_ATTACHMENT">Зберегти вкладення</text>
+ <text id="IDS_MSGF_BODY_DELIVERY_REPORT">Звіт про доставку</text>
+ <text id="IDS_MSGC_POP_DISCARD_CURRENT_MESSAGE_Q">Скасувати поточне повідомлення?</text>
+ <text id="IDS_COM_POP_ATTACH">Прикріпити</text>
+ <text id="IDS_COM_BODY_CALENDAR">Календар</text>
+ <text id="IDS_COM_SK_OK">ОК</text>
+ <text id="IDS_COM_SK_CALL">Виклик</text>
+ <text id="IDS_MSGC_BODY_CAPTURE_VIDEO">Відеозйомка</text>
+ <text id="IDS_MSG_HEADER_SELECT_RECIPIENT">Вибір одержувача</text>
+</string_table>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201301241731" Dversion="20120315">
+ <text id="IDS_MSGF_HEADER_MESSAGE_DETAILS">Xabar tafsilotlari</text>
+ <text id="IDS_COM_SK3_PREVIEW">Avvaldan ko‘rish</text>
+ <text id="IDS_COM_BODY_PD_SELECTED">%d tanlangan</text>
+ <text id="IDS_MSG_BODY_DURATION_MUST_BE_LONGER_THAN_PD_SECONDS">Davomlilik %d soniyadan ko‘proq bo‘lishi lozim</text>
+ <text id="IDS_DB_POP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED_DELETE_SOME_CHARACTERS">Belgilar soni maksimal miqdordan oshib ketdi. Ba’zi belgilarni o'chiring</text>
+ <text id="IDS_MSGF_BODY_NO_BLOCKED_WORDS">No blocked words</text>
+ <text id="IDS_COM_BODY_SELECT_ALL">Barchasini tanlash</text>
+ <text id="IDS_MSGF_BODY_NO_SUBJECT">Mavzu yo‘q</text>
+ <text id="IDS_COM_POP_CLOSE">Yopish</text>
+ <text id="IDS_COM_BODY_TO">Kimga</text>
+ <text id="IDS_MSGC_BODY_TAKE_PICTURE">Rasmga olish</text>
+ <text id="IDS_COM_POP_DELETE_Q">O'chirilsinmi?</text>
+ <text id="IDS_MSGC_HEADER_INPUTMODE">Kiritish rejimi</text>
+ <text id="IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED">Qabul qiluvchilar soni ruxsat etilgan maksimal miqdorga (%d) yetdi</text>
+ <text id="IDS_COM_SK_NO">Yo‘q</text>
+ <text id="IDS_COM_BODY_MY_FILES">Mening fayllarim</text>
+ <text id="IDS_MSGF_BODY_COPY_TO_PHONE">Telefonga nusxa ko‘chirish</text>
+ <text id="IDS_MSGF_BODY_CB_MESSAGES">CB xabarlari</text>
+ <text id="IDS_MSGF_BODY_SERVICECENTRE">Xizmat ko‘rsatish markazi</text>
+ <text id="IDS_COM_BODY_SMS">SMS</text>
+ <text id="IDS_MSGF_POP_SENDING_FAILED_MESSAGE">Yuborilmagan xabarni yuborish</text>
+ <text id="IDS_COM_POP_SUCCESS">Muvaffaqiyat</text>
+ <text id="IDS_MSGF_POP_MESSAGES_RECEIVED_FROM_YOUR_CONTACTS_WILL_NOT_BE_BLOCKED_EVEN_IF_THEY_CONTAIN_BLOCKED_NUMBERS">Messages received from your contacts will not be blocked even if they contain blocked numbers</text>
+ <text id="IDS_MSG_SELECT_WORDS">Select words (%d)</text>
+ <text id="IDS_MSGF_BODY_ROAMINGRECEPTION_RESTRICTED">Cheklangan</text>
+ <text id="IDS_MSGF_POP_MESSAGES_RECEIVED_FROM_YOUR_CONTACTS_WILL_NOT_BE_BLOCKED_EVEN_IF_THEY_CONTAIN_BLOCKED_WORDS">Kontaktlaringizdan kelgan xabarlar bloklanmaydi, hatto ular bloklangan so‘zlarga ega bo‘lsa ham</text>
+ <text id="IDS_MSGF_OPT_UNBLOCK">Blokdan chiqaring</text>
+ <text id="IDS_MSGF_BODY_COPY_MESSAGE_TEXT_ABB">Xabar matnini nusxa</text>
+ <text id="IDS_MSGF_BODY_READ_REPORT">O‘qilgan haqidagi hisobot</text>
+ <text id="IDS_COM_BODY_MESSAGES">Xabarlar</text>
+ <text id="IDS_COM_SK_OPTIONS">Opsiyalar</text>
+ <text id="IDS_COM_SK_DONE">Bajarildi</text>
+ <text id="IDS_COM_POP_PM">PM</text>
+ <text id="IDS_COM_BODY_UNKNOWN">Noma’lum</text>
+ <text id="IDS_MSG_BODY_DRAFT_MESSAGES">Qoralama xabarlar</text>
+ <text id="IDS_COM_POP_SERVICE_UNAVAILABLE">Xizmatdan foydalanib bo‘lmaydi</text>
+ <text id="IDS_MSGF_OPT_CREATEMSG_ADD_WORD">So‘z qo‘shish</text>
+ <text id="IDS_MSGF_POP_BLOCK_PS_Q">%s bloklansinmi?</text>
+ <text id="IDS_MSG_BODY_CHANGE_TEXT_SIZE_USING_THE_VOLUME_KEY">Ovoz balandligi tugmasi yordamida matn o‘lchamini o‘zgartiring</text>
+ <text id="IDS_COM_POP_NEW_MESSAGE">Yangi xabar</text>
+ <text id="IDS_MSGF_BODY_SPAM_MESSAGES">Spam xabarlari</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_INCLUDE">O‘z ichiga oladi</text>
+ <text id="IDS_MSGF_BODY_NO_BLOCKED_NUMBERS">No blocked numbers</text>
+ <text id="IDS_MSGF_BODY_BLOCKED_NUMBERS">Bloklangan a’zolar</text>
+ <text id="IDS_MSGF_BODY_SETTINGS_MULTIMEDIAMESSAGE">Multimedia xabarlari</text>
+ <text id="IDS_MSGF_BODY_EDIT_WORD">So‘zni tahrirlash</text>
+ <text id="IDS_MSGF_BODY_EXPIRED">Amal qilish muddati tugadi</text>
+ <text id="IDS_MSGF_BODY_MMSCCCREATIONMODEWARNING">Ogohlantirish</text>
+ <text id="IDS_COM_SK_EDIT">Tahrirl.</text>
+ <text id="IDS_COM_POP_FAILED">Xato</text>
+ <text id="IDS_MSGF_HEADER_DELETE_NUMBER">Raqamni o'chirish</text>
+ <text id="IDS_MSGC_BODY_RECORD_AUDIO">Audio yozib olish</text>
+ <text id="IDS_COM_SK_BACK">Orqaga</text>
+ <text id="IDS_MSGF_BODY_UNICODE">Yunikod</text>
+ <text id="IDS_MSGF_HEADER_DELETE_WORDS">So‘zlarni yo‘q qilish</text>
+ <text id="IDS_COM_BODY_FORWARD">Boshqaga yo‘naltirish</text>
+ <text id="IDS_MSGF_POP_NOMESSAGES">Xabarlar yo‘q</text>
+ <text id="IDS_MSGF_OPT_ROAM_NETWORK">Tashqi tarmoq</text>
+ <text id="IDS_MSGF_BODY_FROM">Quyidagidan</text>
+ <text id="IDS_COM_SK_DELETE">O'chirish</text>
+ <text id="IDS_MSGF_SK3_UNREAD">O‘qilmagan</text>
+ <text id="IDS_MSGC_BODY_DUPLICATED_RECIPIENT">Takrorlanadigan qabul qiluvchi</text>
+ <text id="IDS_MSGF_BODY_GSM_ALPHABET">GSM alifbo</text>
+ <text id="IDS_MSGF_BODY_SIM_CARD_MESSAGES">SIM-karta xabarlari</text>
+ <text id="IDS_MSGF_BODY_MMSNOTIMSGSTATUSSENT">Yuborildi</text>
+ <text id="IDS_COM_BODY_CONTACTS">Kontaktlar</text>
+ <text id="IDS_MSGF_OPT_STATUS">Holat</text>
+ <text id="IDS_MSGF_BODY_MMSCCCREATIONMODEFREE">Bo‘sh</text>
+ <text id="IDS_COM_BODY_DETAILS_TYPE">Tur</text>
+ <text id="IDS_MSGF_BODY_AUTODOWNLOAD">Avto-yuklab olish</text>
+ <text id="IDS_MSGF_SK_RESEND">Qay. Yub.</text>
+ <text id="IDS_COM_SK_CANCEL">Bekor q.</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONS">Qabul qilish opsiyalari</text>
+ <text id="IDS_COM_BODY_GALLERY">Galereya</text>
+ <text id="IDS_MSGC_BUTTON2_DURATION_N_HPD_SECS">Davomliligi\n(%d soniya)</text>
+ <text id="IDS_COM_BODY_SEARCH">Qidirish</text>
+ <text id="IDS_MSGF_HEADER_MESSAGE_BOXES">Xabar qutilari</text>
+ <text id="IDS_MSGF_HEADER_ADD_NUMBER">Raqam qo‘shish</text>
+ <text id="IDS_COM_BODY_MEMO">Eslatma</text>
+ <text id="IDS_MSGF_BODY_COPY_TO_SIM">SIM-kartaga nusxa ko‘chirish</text>
+ <text id="IDS_MSGF_BODY_ENTER_NUMBER">Raqam kiriting</text>
+ <text id="IDS_COM_OPT_ADD_CONTACT">Kontakt qo‘shish</text>
+ <text id="IDS_MSGF_OPT_HOME_NETWORK">Uy tarmog‘i</text>
+ <text id="IDS_COM_POP_REJECTED">Rad etildi</text>
+ <text id="IDS_COM_BODY_SETTINGS">Parametrlar</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_START_WITH">Quyidagi bilan boshlash</text>
+ <text id="IDS_COM_BODY_DISPLAY">Displey</text>
+ <text id="IDS_MSGF_OPT_PROTECTION_ON">Himoya yoq.</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONNETWORK_MANUAL">Qo‘lda</text>
+ <text id="IDS_SLCD_POP_TEXT_SIM_CARD_ERROR">SIM-karta mavjud emas</text>
+ <text id="IDS_COM_POP_DELETED">O'chirildi</text>
+ <text id="IDS_COM_SK_SEND_ABB">Yubor</text>
+ <text id="IDS_MSGF_POP_FORWARDED">Boshqaga yo‘naltirildi</text>
+ <text id="IDS_MSG_SELECT_NUMBERS">Select numbers (%d)</text>
+ <text id="IDS_MSGF_BODY_CENTRE_PD">Markaz %d</text>
+ <text id="IDS_MSGF_HEADER_EDIT_NUMBER">Raqamni tahrirlash</text>
+ <text id="IDS_MSGF_BODY_AUTOMATIC">Avtomatik</text>
+ <text id="IDS_MSGF_BODY_VIEW_MESSAGE_DETAILS_ABB">Xabar tafs. ko‘rish</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONNETWORK_REJECT">Rad etish</text>
+ <text id="IDS_COM_BODY_VOICE_CALL">Ovozli qo‘ng‘iroq</text>
+ <text id="IDS_MSG_MBODY_USE_THE_VOLUME_KEY">Balandlik tugmasini ishl.</text>
+ <text id="IDS_COM_SK_SAVE">Saqlash</text>
+ <text id="IDS_MSGF_BODY_INVALID_SERVICE_CENTRE_ADDRESS">Invalid service centre address</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_EXACTLY_THE_SAME_AS">Quyidagi bilan bir xil</text>
+ <text id="IDS_COM_BODY_NO_SEARCH_RESULTS">Qidirish natijalari yo‘q</text>
+ <text id="IDS_MSGF_BODY_MMS">MMS</text>
+ <text id="IDS_MSGF_BODY_MMSCREATIONMODE">Yaratish rejimi</text>
+ <text id="IDS_MSGF_BODY_TEXT_MESSAGES">Matnli xabarlar</text>
+ <text id="IDS_MSGF_BODY_RECEIVED">Qabul qilindi</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_MATCH_CRITERIA">Moslik kriteriyasi</text>
+ <text id="IDS_MSGF_POP_DEFERRED">Kechiktirildi</text>
+ <text id="IDS_COM_SK_ADD">Qo‘shish</text>
+ <text id="IDS_MSGF_OPT_BLOCK">Bloklash</text>
+ <text id="IDS_COM_SK_YES">Ha</text>
+ <text id="IDS_MSGC_OPT_VIEW_CONTACT">Kontaktlarni ko‘rib chiqish</text>
+ <text id="IDS_COM_SK_SEARCH">Qidirish</text>
+ <text id="IDS_COM_POP_AM_M_ABB">AM</text>
+ <text id="IDS_MSGF_BODY_BLOCKED_WORDS">Bloklangan so‘zlar</text>
+ <text id="IDS_COM_BODY_SUBJECT">Mavzu</text>
+ <text id="IDS_MSGF_POP_UNRECOGNISED">Noma’lum</text>
+ <text id="IDS_MSGF_BODY_SEND_READ_REPORT">O‘qilganlik haqida hisobot yuborish</text>
+ <text id="IDS_MSGF_SK_RESTORE">Tiklash</text>
+ <text id="IDS_MSGF_BODY_REQUEST_READ_REPORT">O‘qilganlik haqidagi hisobot so‘rovi</text>
+ <text id="IDS_MSGF_BODY_ENTER_WORD">So‘z kiriting</text>
+ <text id="IDS_COM_SK3_COMPOSE">Yaratish</text>
+ <text id="IDS_COM_POP_UNKNOWN_ERROR_OCCURRED">Noma’lum xato yuz berdi</text>
+ <text id="IDS_MSGF_BODY_REQUEST_DELIVERY_REPORT">Yetkazish haqidagi hisobot so‘rovi</text>
+ <text id="IDS_MSGF_BODY_INVALID_RECIPIENTS">Noto‘g‘ri qabul qiluvchilar</text>
+ <text id="IDS_MSGF_BODY_BROADCASTMESSAGES">Eshittirishli xabarlar</text>
+ <text id="IDS_MSGF_OPT_SAVE_ATTACHMENT">Biriktirmani saqlash</text>
+ <text id="IDS_MSGF_BODY_DELIVERY_REPORT">Yetkazilganlik haqidagi hisobot</text>
+ <text id="IDS_MSGC_POP_DISCARD_CURRENT_MESSAGE_Q">Joriy xabar rad etilsinmi?</text>
+ <text id="IDS_COM_POP_ATTACH">Biriktirish</text>
+ <text id="IDS_COM_BODY_CALENDAR">Kalendar</text>
+ <text id="IDS_COM_SK_OK">OK</text>
+ <text id="IDS_COM_SK_CALL">Qo‘ng‘.</text>
+ <text id="IDS_MSGC_BODY_CAPTURE_VIDEO">Video olish</text>
+ <text id="IDS_MSG_HEADER_SELECT_RECIPIENT">Qabul qiluvchini tanlang</text>
+</string_table>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201301241731" Dversion="20120315">
+ <text id="IDS_MSGF_HEADER_MESSAGE_DETAILS">消息详情</text>
+ <text id="IDS_COM_SK3_PREVIEW">预览</text>
+ <text id="IDS_COM_BODY_PD_SELECTED">已选择%d</text>
+ <text id="IDS_MSG_BODY_DURATION_MUST_BE_LONGER_THAN_PD_SECONDS">持续时间必须长于 %d 秒</text>
+ <text id="IDS_DB_POP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED_DELETE_SOME_CHARACTERS">已超过字符数上限。请删除部分字符</text>
+ <text id="IDS_MSGF_BODY_NO_BLOCKED_WORDS">No blocked words</text>
+ <text id="IDS_COM_BODY_SELECT_ALL">全选</text>
+ <text id="IDS_MSGF_BODY_NO_SUBJECT">没有主题</text>
+ <text id="IDS_COM_POP_CLOSE">关闭</text>
+ <text id="IDS_COM_BODY_TO">至</text>
+ <text id="IDS_MSGC_BODY_TAKE_PICTURE">拍照</text>
+ <text id="IDS_COM_POP_DELETE_Q">删除?</text>
+ <text id="IDS_MSGC_HEADER_INPUTMODE">输入模式</text>
+ <text id="IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED">已达到最大收件人数量(%d)</text>
+ <text id="IDS_COM_SK_NO">否</text>
+ <text id="IDS_COM_BODY_MY_FILES">我的文件</text>
+ <text id="IDS_MSGF_BODY_COPY_TO_PHONE">复制至手机</text>
+ <text id="IDS_MSGF_BODY_CB_MESSAGES">小区信息</text>
+ <text id="IDS_MSGF_BODY_SERVICECENTRE">短信息服务中心</text>
+ <text id="IDS_COM_BODY_SMS">短信息</text>
+ <text id="IDS_MSGF_POP_SENDING_FAILED_MESSAGE">发送失败的信息</text>
+ <text id="IDS_COM_POP_SUCCESS">成功</text>
+ <text id="IDS_MSGF_POP_MESSAGES_RECEIVED_FROM_YOUR_CONTACTS_WILL_NOT_BE_BLOCKED_EVEN_IF_THEY_CONTAIN_BLOCKED_NUMBERS">Messages received from your contacts will not be blocked even if they contain blocked numbers</text>
+ <text id="IDS_MSG_SELECT_WORDS">Select words (%d)</text>
+ <text id="IDS_MSGF_BODY_ROAMINGRECEPTION_RESTRICTED">限制</text>
+ <text id="IDS_MSGF_POP_MESSAGES_RECEIVED_FROM_YOUR_CONTACTS_WILL_NOT_BE_BLOCKED_EVEN_IF_THEY_CONTAIN_BLOCKED_WORDS">从您的联系人接收的信息不会被阻止,即使其含有已阻止的词语</text>
+ <text id="IDS_MSGF_OPT_UNBLOCK">取消阻止</text>
+ <text id="IDS_MSGF_BODY_COPY_MESSAGE_TEXT_ABB">复制信息文本</text>
+ <text id="IDS_MSGF_BODY_READ_REPORT">阅读报告</text>
+ <text id="IDS_COM_BODY_MESSAGES">信息</text>
+ <text id="IDS_COM_SK_OPTIONS">选项</text>
+ <text id="IDS_COM_SK_DONE">完成</text>
+ <text id="IDS_COM_POP_PM">PM</text>
+ <text id="IDS_COM_BODY_UNKNOWN">未知</text>
+ <text id="IDS_MSG_BODY_DRAFT_MESSAGES">信息草稿</text>
+ <text id="IDS_COM_POP_SERVICE_UNAVAILABLE">服务无法正常提供</text>
+ <text id="IDS_MSGF_OPT_CREATEMSG_ADD_WORD">添加单词</text>
+ <text id="IDS_MSGF_POP_BLOCK_PS_Q">阻止%s?</text>
+ <text id="IDS_MSG_BODY_CHANGE_TEXT_SIZE_USING_THE_VOLUME_KEY">使用音量键更改文字大小</text>
+ <text id="IDS_COM_POP_NEW_MESSAGE">新信息</text>
+ <text id="IDS_MSGF_BODY_SPAM_MESSAGES">垃圾信息</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_INCLUDE">包括</text>
+ <text id="IDS_MSGF_BODY_NO_BLOCKED_NUMBERS">No blocked numbers</text>
+ <text id="IDS_MSGF_BODY_BLOCKED_NUMBERS">已阻止数字</text>
+ <text id="IDS_MSGF_BODY_SETTINGS_MULTIMEDIAMESSAGE">彩信</text>
+ <text id="IDS_MSGF_BODY_EDIT_WORD">编辑文字</text>
+ <text id="IDS_MSGF_BODY_EXPIRED">已过期</text>
+ <text id="IDS_MSGF_BODY_MMSCCCREATIONMODEWARNING">警告</text>
+ <text id="IDS_COM_SK_EDIT">编辑</text>
+ <text id="IDS_COM_POP_FAILED">失败</text>
+ <text id="IDS_MSGF_HEADER_DELETE_NUMBER">删除号码</text>
+ <text id="IDS_MSGC_BODY_RECORD_AUDIO">录音</text>
+ <text id="IDS_COM_SK_BACK">返回</text>
+ <text id="IDS_MSGF_BODY_UNICODE">单一码</text>
+ <text id="IDS_MSGF_HEADER_DELETE_WORDS">删除词</text>
+ <text id="IDS_COM_BODY_FORWARD">转发</text>
+ <text id="IDS_MSGF_POP_NOMESSAGES">无信息</text>
+ <text id="IDS_MSGF_OPT_ROAM_NETWORK">外国网络</text>
+ <text id="IDS_MSGF_BODY_FROM">发件人</text>
+ <text id="IDS_COM_SK_DELETE">删除</text>
+ <text id="IDS_MSGF_SK3_UNREAD">未读</text>
+ <text id="IDS_MSGC_BODY_DUPLICATED_RECIPIENT">重复的收件人</text>
+ <text id="IDS_MSGF_BODY_GSM_ALPHABET">GSM 字母系统</text>
+ <text id="IDS_MSGF_BODY_SIM_CARD_MESSAGES">SIM卡信息</text>
+ <text id="IDS_MSGF_BODY_MMSNOTIMSGSTATUSSENT">已发送</text>
+ <text id="IDS_COM_BODY_CONTACTS">联系人</text>
+ <text id="IDS_MSGF_OPT_STATUS">状态</text>
+ <text id="IDS_MSGF_BODY_MMSCCCREATIONMODEFREE">自由</text>
+ <text id="IDS_COM_BODY_DETAILS_TYPE">类型</text>
+ <text id="IDS_MSGF_BODY_AUTODOWNLOAD">自动下载</text>
+ <text id="IDS_MSGF_SK_RESEND">重新发送</text>
+ <text id="IDS_COM_SK_CANCEL">取消</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONS">接收选项</text>
+ <text id="IDS_COM_BODY_GALLERY">图库</text>
+ <text id="IDS_MSGC_BUTTON2_DURATION_N_HPD_SECS">时长\n(%d 秒)</text>
+ <text id="IDS_COM_BODY_SEARCH">搜索</text>
+ <text id="IDS_MSGF_HEADER_MESSAGE_BOXES">信箱</text>
+ <text id="IDS_MSGF_HEADER_ADD_NUMBER">添加号码</text>
+ <text id="IDS_COM_BODY_MEMO">备忘录</text>
+ <text id="IDS_MSGF_BODY_COPY_TO_SIM">复制至 SIM 卡</text>
+ <text id="IDS_MSGF_BODY_ENTER_NUMBER">输入号码</text>
+ <text id="IDS_COM_OPT_ADD_CONTACT">添加联系人</text>
+ <text id="IDS_MSGF_OPT_HOME_NETWORK">本地网络</text>
+ <text id="IDS_COM_POP_REJECTED">被拒绝</text>
+ <text id="IDS_COM_BODY_SETTINGS">设定</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_START_WITH">开始于</text>
+ <text id="IDS_COM_BODY_DISPLAY">显示</text>
+ <text id="IDS_MSGF_OPT_PROTECTION_ON">保护启动</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONNETWORK_MANUAL">手动</text>
+ <text id="IDS_SLCD_POP_TEXT_SIM_CARD_ERROR">SIM 卡不可用</text>
+ <text id="IDS_COM_POP_DELETED">已删除</text>
+ <text id="IDS_COM_SK_SEND_ABB">发送</text>
+ <text id="IDS_MSGF_POP_FORWARDED">已转发</text>
+ <text id="IDS_MSG_SELECT_NUMBERS">Select numbers (%d)</text>
+ <text id="IDS_MSGF_BODY_CENTRE_PD">中心 %d</text>
+ <text id="IDS_MSGF_HEADER_EDIT_NUMBER">编辑号码</text>
+ <text id="IDS_MSGF_BODY_AUTOMATIC">自动</text>
+ <text id="IDS_MSGF_BODY_VIEW_MESSAGE_DETAILS_ABB">查看信息详情</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONNETWORK_REJECT">拒绝</text>
+ <text id="IDS_COM_BODY_VOICE_CALL">语音通话</text>
+ <text id="IDS_MSG_MBODY_USE_THE_VOLUME_KEY">使用音量键</text>
+ <text id="IDS_COM_SK_SAVE">保存</text>
+ <text id="IDS_MSGF_BODY_INVALID_SERVICE_CENTRE_ADDRESS">Invalid service centre address</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_EXACTLY_THE_SAME_AS">完全一样</text>
+ <text id="IDS_COM_BODY_NO_SEARCH_RESULTS">无搜索结果</text>
+ <text id="IDS_MSGF_BODY_MMS">彩信</text>
+ <text id="IDS_MSGF_BODY_MMSCREATIONMODE">创建模式</text>
+ <text id="IDS_MSGF_BODY_TEXT_MESSAGES">短信</text>
+ <text id="IDS_MSGF_BODY_RECEIVED">已接收</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_MATCH_CRITERIA">匹配标准</text>
+ <text id="IDS_MSGF_POP_DEFERRED">已延迟</text>
+ <text id="IDS_COM_SK_ADD">添加</text>
+ <text id="IDS_MSGF_OPT_BLOCK">阻止</text>
+ <text id="IDS_COM_SK_YES">是</text>
+ <text id="IDS_MSGC_OPT_VIEW_CONTACT">查看联系人</text>
+ <text id="IDS_COM_SK_SEARCH">搜索</text>
+ <text id="IDS_COM_POP_AM_M_ABB">上午</text>
+ <text id="IDS_MSGF_BODY_BLOCKED_WORDS">已阻止词语</text>
+ <text id="IDS_COM_BODY_SUBJECT">主题</text>
+ <text id="IDS_MSGF_POP_UNRECOGNISED">不承认</text>
+ <text id="IDS_MSGF_BODY_SEND_READ_REPORT">发送读取报告</text>
+ <text id="IDS_MSGF_SK_RESTORE">恢复</text>
+ <text id="IDS_MSGF_BODY_REQUEST_READ_REPORT">要求阅读报告</text>
+ <text id="IDS_MSGF_BODY_ENTER_WORD">输入单词</text>
+ <text id="IDS_COM_SK3_COMPOSE">编写</text>
+ <text id="IDS_COM_POP_UNKNOWN_ERROR_OCCURRED">未知错误产生</text>
+ <text id="IDS_MSGF_BODY_REQUEST_DELIVERY_REPORT">要求送达报告</text>
+ <text id="IDS_MSGF_BODY_INVALID_RECIPIENTS">无效收件人</text>
+ <text id="IDS_MSGF_BODY_BROADCASTMESSAGES">广播信息</text>
+ <text id="IDS_MSGF_OPT_SAVE_ATTACHMENT">存储附件</text>
+ <text id="IDS_MSGF_BODY_DELIVERY_REPORT">发送报告</text>
+ <text id="IDS_MSGC_POP_DISCARD_CURRENT_MESSAGE_Q">丢弃当前信息?</text>
+ <text id="IDS_COM_POP_ATTACH">附加</text>
+ <text id="IDS_COM_BODY_CALENDAR">日历</text>
+ <text id="IDS_COM_SK_OK">确定</text>
+ <text id="IDS_COM_SK_CALL">通话</text>
+ <text id="IDS_MSGC_BODY_CAPTURE_VIDEO">拍摄录像</text>
+ <text id="IDS_MSG_HEADER_SELECT_RECIPIENT">选择收件人</text>
+</string_table>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201301241731" Dversion="20120315">
+ <text id="IDS_MSGF_HEADER_MESSAGE_DETAILS">訊息詳情</text>
+ <text id="IDS_COM_SK3_PREVIEW">預覽</text>
+ <text id="IDS_COM_BODY_PD_SELECTED">已選擇 %d</text>
+ <text id="IDS_MSG_BODY_DURATION_MUST_BE_LONGER_THAN_PD_SECONDS">持續時間必須超過 %d 秒</text>
+ <text id="IDS_DB_POP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED_DELETE_SOME_CHARACTERS">已超出字元數目上限。刪除一些字元</text>
+ <text id="IDS_MSGF_BODY_NO_BLOCKED_WORDS">No blocked words</text>
+ <text id="IDS_COM_BODY_SELECT_ALL">選擇全部</text>
+ <text id="IDS_MSGF_BODY_NO_SUBJECT">無主題</text>
+ <text id="IDS_COM_POP_CLOSE">關閉</text>
+ <text id="IDS_COM_BODY_TO">至</text>
+ <text id="IDS_MSGC_BODY_TAKE_PICTURE">拍照</text>
+ <text id="IDS_COM_POP_DELETE_Q">刪除嗎?</text>
+ <text id="IDS_MSGC_HEADER_INPUTMODE">輸入方法</text>
+ <text id="IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED">已達收件人的數量上限(%d)</text>
+ <text id="IDS_COM_SK_NO">否</text>
+ <text id="IDS_COM_BODY_MY_FILES">我的檔案</text>
+ <text id="IDS_MSGF_BODY_COPY_TO_PHONE">複製到手機</text>
+ <text id="IDS_MSGF_BODY_CB_MESSAGES">區域廣播訊息</text>
+ <text id="IDS_MSGF_BODY_SERVICECENTRE">服務中心</text>
+ <text id="IDS_COM_BODY_SMS">短訊</text>
+ <text id="IDS_MSGF_POP_SENDING_FAILED_MESSAGE">正在發送失敗的訊息</text>
+ <text id="IDS_COM_POP_SUCCESS">成功</text>
+ <text id="IDS_MSGF_POP_MESSAGES_RECEIVED_FROM_YOUR_CONTACTS_WILL_NOT_BE_BLOCKED_EVEN_IF_THEY_CONTAIN_BLOCKED_NUMBERS">Messages received from your contacts will not be blocked even if they contain blocked numbers</text>
+ <text id="IDS_MSG_SELECT_WORDS">Select words (%d)</text>
+ <text id="IDS_MSGF_BODY_ROAMINGRECEPTION_RESTRICTED">限制</text>
+ <text id="IDS_MSGF_POP_MESSAGES_RECEIVED_FROM_YOUR_CONTACTS_WILL_NOT_BE_BLOCKED_EVEN_IF_THEY_CONTAIN_BLOCKED_WORDS">不會封鎖來自聯絡人的訊息,即使其中包含已封鎖的字詞</text>
+ <text id="IDS_MSGF_OPT_UNBLOCK">取消封鎖</text>
+ <text id="IDS_MSGF_BODY_COPY_MESSAGE_TEXT_ABB">複製訊息文字</text>
+ <text id="IDS_MSGF_BODY_READ_REPORT">讀取報告</text>
+ <text id="IDS_COM_BODY_MESSAGES">訊息</text>
+ <text id="IDS_COM_SK_OPTIONS">選項</text>
+ <text id="IDS_COM_SK_DONE">完成</text>
+ <text id="IDS_COM_POP_PM">下午</text>
+ <text id="IDS_COM_BODY_UNKNOWN">未知</text>
+ <text id="IDS_MSG_BODY_DRAFT_MESSAGES">草稿訊息</text>
+ <text id="IDS_COM_POP_SERVICE_UNAVAILABLE">無可用服務</text>
+ <text id="IDS_MSGF_OPT_CREATEMSG_ADD_WORD">加入單詞</text>
+ <text id="IDS_MSGF_POP_BLOCK_PS_Q">封鎖 %s?</text>
+ <text id="IDS_MSG_BODY_CHANGE_TEXT_SIZE_USING_THE_VOLUME_KEY">使用音量鍵更改文字大小</text>
+ <text id="IDS_COM_POP_NEW_MESSAGE">新訊息</text>
+ <text id="IDS_MSGF_BODY_SPAM_MESSAGES">垃圾訊息</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_INCLUDE">包括</text>
+ <text id="IDS_MSGF_BODY_NO_BLOCKED_NUMBERS">No blocked numbers</text>
+ <text id="IDS_MSGF_BODY_BLOCKED_NUMBERS">已封鎖號碼</text>
+ <text id="IDS_MSGF_BODY_SETTINGS_MULTIMEDIAMESSAGE">多媒體訊息</text>
+ <text id="IDS_MSGF_BODY_EDIT_WORD">編輯字詞</text>
+ <text id="IDS_MSGF_BODY_EXPIRED">已過期</text>
+ <text id="IDS_MSGF_BODY_MMSCCCREATIONMODEWARNING">警告</text>
+ <text id="IDS_COM_SK_EDIT">編輯</text>
+ <text id="IDS_COM_POP_FAILED">失敗</text>
+ <text id="IDS_MSGF_HEADER_DELETE_NUMBER">刪除號碼</text>
+ <text id="IDS_MSGC_BODY_RECORD_AUDIO">錄音</text>
+ <text id="IDS_COM_SK_BACK">返回</text>
+ <text id="IDS_MSGF_BODY_UNICODE">Unicode</text>
+ <text id="IDS_MSGF_HEADER_DELETE_WORDS">刪除字詞</text>
+ <text id="IDS_COM_BODY_FORWARD">轉寄</text>
+ <text id="IDS_MSGF_POP_NOMESSAGES">無訊息</text>
+ <text id="IDS_MSGF_OPT_ROAM_NETWORK">漫遊網絡</text>
+ <text id="IDS_MSGF_BODY_FROM">由</text>
+ <text id="IDS_COM_SK_DELETE">刪除</text>
+ <text id="IDS_MSGF_SK3_UNREAD">未讀</text>
+ <text id="IDS_MSGC_BODY_DUPLICATED_RECIPIENT">重複的收件人</text>
+ <text id="IDS_MSGF_BODY_GSM_ALPHABET">GSM 字符表</text>
+ <text id="IDS_MSGF_BODY_SIM_CARD_MESSAGES">SIM 卡訊息</text>
+ <text id="IDS_MSGF_BODY_MMSNOTIMSGSTATUSSENT">已發送</text>
+ <text id="IDS_COM_BODY_CONTACTS">聯絡人</text>
+ <text id="IDS_MSGF_OPT_STATUS">狀態</text>
+ <text id="IDS_MSGF_BODY_MMSCCCREATIONMODEFREE">可用</text>
+ <text id="IDS_COM_BODY_DETAILS_TYPE">類型</text>
+ <text id="IDS_MSGF_BODY_AUTODOWNLOAD">自動下載</text>
+ <text id="IDS_MSGF_SK_RESEND">重新發送</text>
+ <text id="IDS_COM_SK_CANCEL">取消</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONS">接收選項</text>
+ <text id="IDS_COM_BODY_GALLERY">媒體瀏覽器</text>
+ <text id="IDS_MSGC_BUTTON2_DURATION_N_HPD_SECS">持續時間n(%d 秒)</text>
+ <text id="IDS_COM_BODY_SEARCH">搜尋</text>
+ <text id="IDS_MSGF_HEADER_MESSAGE_BOXES">訊息箱</text>
+ <text id="IDS_MSGF_HEADER_ADD_NUMBER">加入號碼</text>
+ <text id="IDS_COM_BODY_MEMO">備忘錄</text>
+ <text id="IDS_MSGF_BODY_COPY_TO_SIM">複製到 SIM 卡</text>
+ <text id="IDS_MSGF_BODY_ENTER_NUMBER">輸入號碼</text>
+ <text id="IDS_COM_OPT_ADD_CONTACT">加入到聯絡人</text>
+ <text id="IDS_MSGF_OPT_HOME_NETWORK">本地網絡</text>
+ <text id="IDS_COM_POP_REJECTED">已拒絕</text>
+ <text id="IDS_COM_BODY_SETTINGS">設定</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_START_WITH">開始以</text>
+ <text id="IDS_COM_BODY_DISPLAY">顯示</text>
+ <text id="IDS_MSGF_OPT_PROTECTION_ON">保護開</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONNETWORK_MANUAL">手動</text>
+ <text id="IDS_SLCD_POP_TEXT_SIM_CARD_ERROR">SIM 卡不可用</text>
+ <text id="IDS_COM_POP_DELETED">已刪除</text>
+ <text id="IDS_COM_SK_SEND_ABB">發送</text>
+ <text id="IDS_MSGF_POP_FORWARDED">已轉寄</text>
+ <text id="IDS_MSG_SELECT_NUMBERS">Select numbers (%d)</text>
+ <text id="IDS_MSGF_BODY_CENTRE_PD">中心 %d</text>
+ <text id="IDS_MSGF_HEADER_EDIT_NUMBER">編輯號碼</text>
+ <text id="IDS_MSGF_BODY_AUTOMATIC">自動</text>
+ <text id="IDS_MSGF_BODY_VIEW_MESSAGE_DETAILS_ABB">檢視訊息詳情</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONNETWORK_REJECT">拒絕</text>
+ <text id="IDS_COM_BODY_VOICE_CALL">語音通話</text>
+ <text id="IDS_MSG_MBODY_USE_THE_VOLUME_KEY">使用音量鍵</text>
+ <text id="IDS_COM_SK_SAVE">儲存</text>
+ <text id="IDS_MSGF_BODY_INVALID_SERVICE_CENTRE_ADDRESS">Invalid service centre address</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_EXACTLY_THE_SAME_AS">完全相同於</text>
+ <text id="IDS_COM_BODY_NO_SEARCH_RESULTS">無搜尋結果</text>
+ <text id="IDS_MSGF_BODY_MMS">MMS</text>
+ <text id="IDS_MSGF_BODY_MMSCREATIONMODE">建立模式</text>
+ <text id="IDS_MSGF_BODY_TEXT_MESSAGES">文字訊息</text>
+ <text id="IDS_MSGF_BODY_RECEIVED">已接收</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_MATCH_CRITERIA">符合標準</text>
+ <text id="IDS_MSGF_POP_DEFERRED">已延期</text>
+ <text id="IDS_COM_SK_ADD">加入</text>
+ <text id="IDS_MSGF_OPT_BLOCK">封鎖</text>
+ <text id="IDS_COM_SK_YES">是</text>
+ <text id="IDS_MSGC_OPT_VIEW_CONTACT">檢視聯絡人</text>
+ <text id="IDS_COM_SK_SEARCH">搜尋</text>
+ <text id="IDS_COM_POP_AM_M_ABB">上午</text>
+ <text id="IDS_MSGF_BODY_BLOCKED_WORDS">已封鎖字詞</text>
+ <text id="IDS_COM_BODY_SUBJECT">主題</text>
+ <text id="IDS_MSGF_POP_UNRECOGNISED">無法識別</text>
+ <text id="IDS_MSGF_BODY_SEND_READ_REPORT">發送讀取報告</text>
+ <text id="IDS_MSGF_SK_RESTORE">還原</text>
+ <text id="IDS_MSGF_BODY_REQUEST_READ_REPORT">請求讀取報告</text>
+ <text id="IDS_MSGF_BODY_ENTER_WORD">輸入字詞</text>
+ <text id="IDS_COM_SK3_COMPOSE">撰寫</text>
+ <text id="IDS_COM_POP_UNKNOWN_ERROR_OCCURRED">發生未知錯誤</text>
+ <text id="IDS_MSGF_BODY_REQUEST_DELIVERY_REPORT">請求傳遞報告</text>
+ <text id="IDS_MSGF_BODY_INVALID_RECIPIENTS">無效收件人</text>
+ <text id="IDS_MSGF_BODY_BROADCASTMESSAGES">廣播訊息</text>
+ <text id="IDS_MSGF_OPT_SAVE_ATTACHMENT">儲存附件</text>
+ <text id="IDS_MSGF_BODY_DELIVERY_REPORT">傳遞報告</text>
+ <text id="IDS_MSGC_POP_DISCARD_CURRENT_MESSAGE_Q">捨棄目前的訊息嗎?</text>
+ <text id="IDS_COM_POP_ATTACH">附加</text>
+ <text id="IDS_COM_BODY_CALENDAR">日曆</text>
+ <text id="IDS_COM_SK_OK">確定</text>
+ <text id="IDS_COM_SK_CALL">撥出</text>
+ <text id="IDS_MSGC_BODY_CAPTURE_VIDEO">拍攝影片</text>
+ <text id="IDS_MSG_HEADER_SELECT_RECIPIENT">選擇收件人</text>
+</string_table>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201301241731" Dversion="20120315">
+ <text id="IDS_MSGF_HEADER_MESSAGE_DETAILS">消息详情</text>
+ <text id="IDS_COM_SK3_PREVIEW">预览</text>
+ <text id="IDS_COM_BODY_PD_SELECTED">已选择%d</text>
+ <text id="IDS_MSG_BODY_DURATION_MUST_BE_LONGER_THAN_PD_SECONDS">持续时间必须长于 %d 秒</text>
+ <text id="IDS_DB_POP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED_DELETE_SOME_CHARACTERS">已超过字符数上限。请删除部分字符</text>
+ <text id="IDS_MSGF_BODY_NO_BLOCKED_WORDS">No blocked words</text>
+ <text id="IDS_COM_BODY_SELECT_ALL">全选</text>
+ <text id="IDS_MSGF_BODY_NO_SUBJECT">没有主题</text>
+ <text id="IDS_COM_POP_CLOSE">关闭</text>
+ <text id="IDS_COM_BODY_TO">到</text>
+ <text id="IDS_MSGC_BODY_TAKE_PICTURE">拍照</text>
+ <text id="IDS_COM_POP_DELETE_Q">删除?</text>
+ <text id="IDS_MSGC_HEADER_INPUTMODE">输入方法</text>
+ <text id="IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED">已达到最大收件人数量(%d)</text>
+ <text id="IDS_COM_SK_NO">否</text>
+ <text id="IDS_COM_BODY_MY_FILES">我的文件</text>
+ <text id="IDS_MSGF_BODY_COPY_TO_PHONE">复制至手机</text>
+ <text id="IDS_MSGF_BODY_CB_MESSAGES">小区信息</text>
+ <text id="IDS_MSGF_BODY_SERVICECENTRE">简讯服务中心</text>
+ <text id="IDS_COM_BODY_SMS">讯息</text>
+ <text id="IDS_MSGF_POP_SENDING_FAILED_MESSAGE">发送失败的信息</text>
+ <text id="IDS_COM_POP_SUCCESS">成功</text>
+ <text id="IDS_MSGF_POP_MESSAGES_RECEIVED_FROM_YOUR_CONTACTS_WILL_NOT_BE_BLOCKED_EVEN_IF_THEY_CONTAIN_BLOCKED_NUMBERS">Messages received from your contacts will not be blocked even if they contain blocked numbers</text>
+ <text id="IDS_MSG_SELECT_WORDS">Select words (%d)</text>
+ <text id="IDS_MSGF_BODY_ROAMINGRECEPTION_RESTRICTED">限制</text>
+ <text id="IDS_MSGF_POP_MESSAGES_RECEIVED_FROM_YOUR_CONTACTS_WILL_NOT_BE_BLOCKED_EVEN_IF_THEY_CONTAIN_BLOCKED_WORDS">Messages received from your contacts will not be blocked even if they contain blocked words</text>
+ <text id="IDS_MSGF_OPT_UNBLOCK">取消阻止</text>
+ <text id="IDS_MSGF_BODY_COPY_MESSAGE_TEXT_ABB">复制信息文本</text>
+ <text id="IDS_MSGF_BODY_READ_REPORT">阅读报告</text>
+ <text id="IDS_COM_BODY_MESSAGES">讯息</text>
+ <text id="IDS_COM_SK_OPTIONS">选项</text>
+ <text id="IDS_COM_SK_DONE">已完成</text>
+ <text id="IDS_COM_POP_PM">PM</text>
+ <text id="IDS_COM_BODY_UNKNOWN">未知</text>
+ <text id="IDS_MSG_BODY_DRAFT_MESSAGES">信息草稿</text>
+ <text id="IDS_COM_POP_SERVICE_UNAVAILABLE">服务不适用</text>
+ <text id="IDS_MSGF_OPT_CREATEMSG_ADD_WORD">添加字词</text>
+ <text id="IDS_MSGF_POP_BLOCK_PS_Q">阻止%s?</text>
+ <text id="IDS_MSG_BODY_CHANGE_TEXT_SIZE_USING_THE_VOLUME_KEY">使用音量键更改文字大小</text>
+ <text id="IDS_COM_POP_NEW_MESSAGE">新讯息</text>
+ <text id="IDS_MSGF_BODY_SPAM_MESSAGES">垃圾信息</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_INCLUDE">包括</text>
+ <text id="IDS_MSGF_BODY_NO_BLOCKED_NUMBERS">No blocked numbers</text>
+ <text id="IDS_MSGF_BODY_BLOCKED_NUMBERS">Blocked numbers</text>
+ <text id="IDS_MSGF_BODY_SETTINGS_MULTIMEDIAMESSAGE">多媒体简讯</text>
+ <text id="IDS_MSGF_BODY_EDIT_WORD">编辑文字</text>
+ <text id="IDS_MSGF_BODY_EXPIRED">已过期</text>
+ <text id="IDS_MSGF_BODY_MMSCCCREATIONMODEWARNING">警告</text>
+ <text id="IDS_COM_SK_EDIT">编辑</text>
+ <text id="IDS_COM_POP_FAILED">失败</text>
+ <text id="IDS_MSGF_HEADER_DELETE_NUMBER">删除号码</text>
+ <text id="IDS_MSGC_BODY_RECORD_AUDIO">录音</text>
+ <text id="IDS_COM_SK_BACK">返回</text>
+ <text id="IDS_MSGF_BODY_UNICODE">Unicode</text>
+ <text id="IDS_MSGF_HEADER_DELETE_WORDS">Delete words</text>
+ <text id="IDS_COM_BODY_FORWARD">转发</text>
+ <text id="IDS_MSGF_POP_NOMESSAGES">无讯息</text>
+ <text id="IDS_MSGF_OPT_ROAM_NETWORK">外国网络</text>
+ <text id="IDS_MSGF_BODY_FROM">发件人</text>
+ <text id="IDS_COM_SK_DELETE">删除</text>
+ <text id="IDS_MSGF_SK3_UNREAD">未读</text>
+ <text id="IDS_MSGC_BODY_DUPLICATED_RECIPIENT">重复的收件人</text>
+ <text id="IDS_MSGF_BODY_GSM_ALPHABET">GSM字母系统</text>
+ <text id="IDS_MSGF_BODY_SIM_CARD_MESSAGES">SIM卡信息</text>
+ <text id="IDS_MSGF_BODY_MMSNOTIMSGSTATUSSENT">已发送</text>
+ <text id="IDS_COM_BODY_CONTACTS">联系人</text>
+ <text id="IDS_MSGF_OPT_STATUS">状态</text>
+ <text id="IDS_MSGF_BODY_MMSCCCREATIONMODEFREE">自由</text>
+ <text id="IDS_COM_BODY_DETAILS_TYPE">类型</text>
+ <text id="IDS_MSGF_BODY_AUTODOWNLOAD">自动下载</text>
+ <text id="IDS_MSGF_SK_RESEND">重新发送</text>
+ <text id="IDS_COM_SK_CANCEL">取消</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONS">接收选项</text>
+ <text id="IDS_COM_BODY_GALLERY">画廊</text>
+ <text id="IDS_MSGC_BUTTON2_DURATION_N_HPD_SECS">时长\n(%d 秒)</text>
+ <text id="IDS_COM_BODY_SEARCH">搜寻</text>
+ <text id="IDS_MSGF_HEADER_MESSAGE_BOXES">信箱</text>
+ <text id="IDS_MSGF_HEADER_ADD_NUMBER">添加号码</text>
+ <text id="IDS_COM_BODY_MEMO">备忘录</text>
+ <text id="IDS_MSGF_BODY_COPY_TO_SIM">复制至SIM卡</text>
+ <text id="IDS_MSGF_BODY_ENTER_NUMBER">输入号码</text>
+ <text id="IDS_COM_OPT_ADD_CONTACT">添加联系人</text>
+ <text id="IDS_MSGF_OPT_HOME_NETWORK">本地网络</text>
+ <text id="IDS_COM_POP_REJECTED">被拒</text>
+ <text id="IDS_COM_BODY_SETTINGS">设定</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_START_WITH">开始以</text>
+ <text id="IDS_COM_BODY_DISPLAY">显示</text>
+ <text id="IDS_MSGF_OPT_PROTECTION_ON">保护开启</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONNETWORK_MANUAL">手动</text>
+ <text id="IDS_SLCD_POP_TEXT_SIM_CARD_ERROR">SIM 卡不可用</text>
+ <text id="IDS_COM_POP_DELETED">已删除</text>
+ <text id="IDS_COM_SK_SEND_ABB">发送</text>
+ <text id="IDS_MSGF_POP_FORWARDED">已转寄</text>
+ <text id="IDS_MSG_SELECT_NUMBERS">Select numbers (%d)</text>
+ <text id="IDS_MSGF_BODY_CENTRE_PD">中心 %d</text>
+ <text id="IDS_MSGF_HEADER_EDIT_NUMBER">编辑号码</text>
+ <text id="IDS_MSGF_BODY_AUTOMATIC">自动</text>
+ <text id="IDS_MSGF_BODY_VIEW_MESSAGE_DETAILS_ABB">查看信息详情</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONNETWORK_REJECT">拒绝</text>
+ <text id="IDS_COM_BODY_VOICE_CALL">语音通话</text>
+ <text id="IDS_MSG_MBODY_USE_THE_VOLUME_KEY">使用音量键</text>
+ <text id="IDS_COM_SK_SAVE">储存</text>
+ <text id="IDS_MSGF_BODY_INVALID_SERVICE_CENTRE_ADDRESS">Invalid service centre address</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_EXACTLY_THE_SAME_AS">完全一样</text>
+ <text id="IDS_COM_BODY_NO_SEARCH_RESULTS">无搜索结果</text>
+ <text id="IDS_MSGF_BODY_MMS">多媒体简讯</text>
+ <text id="IDS_MSGF_BODY_MMSCREATIONMODE">创建模式</text>
+ <text id="IDS_MSGF_BODY_TEXT_MESSAGES">简讯</text>
+ <text id="IDS_MSGF_BODY_RECEIVED">已接收</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_MATCH_CRITERIA">匹配标准</text>
+ <text id="IDS_MSGF_POP_DEFERRED">已延迟</text>
+ <text id="IDS_COM_SK_ADD">添加</text>
+ <text id="IDS_MSGF_OPT_BLOCK">阻止</text>
+ <text id="IDS_COM_SK_YES">是</text>
+ <text id="IDS_MSGC_OPT_VIEW_CONTACT">查看联系人</text>
+ <text id="IDS_COM_SK_SEARCH">搜寻</text>
+ <text id="IDS_COM_POP_AM_M_ABB">上午</text>
+ <text id="IDS_MSGF_BODY_BLOCKED_WORDS">Blocked words</text>
+ <text id="IDS_COM_BODY_SUBJECT">主题</text>
+ <text id="IDS_MSGF_POP_UNRECOGNISED">不承认</text>
+ <text id="IDS_MSGF_BODY_SEND_READ_REPORT">发送阅读报告</text>
+ <text id="IDS_MSGF_SK_RESTORE">重置</text>
+ <text id="IDS_MSGF_BODY_REQUEST_READ_REPORT">要求阅读报告</text>
+ <text id="IDS_MSGF_BODY_ENTER_WORD">输入单词</text>
+ <text id="IDS_COM_SK3_COMPOSE">编写</text>
+ <text id="IDS_COM_POP_UNKNOWN_ERROR_OCCURRED">未知错误产生</text>
+ <text id="IDS_MSGF_BODY_REQUEST_DELIVERY_REPORT">要求传递报告</text>
+ <text id="IDS_MSGF_BODY_INVALID_RECIPIENTS">无效收件人</text>
+ <text id="IDS_MSGF_BODY_BROADCASTMESSAGES">广播讯息</text>
+ <text id="IDS_MSGF_OPT_SAVE_ATTACHMENT">存储附件</text>
+ <text id="IDS_MSGF_BODY_DELIVERY_REPORT">送达报告</text>
+ <text id="IDS_MSGC_POP_DISCARD_CURRENT_MESSAGE_Q">丢弃当前信息?</text>
+ <text id="IDS_COM_POP_ATTACH">附件</text>
+ <text id="IDS_COM_BODY_CALENDAR">日历</text>
+ <text id="IDS_COM_SK_OK">确认</text>
+ <text id="IDS_COM_SK_CALL">通话</text>
+ <text id="IDS_MSGC_BODY_CAPTURE_VIDEO">拍摄视频</text>
+ <text id="IDS_MSG_HEADER_SELECT_RECIPIENT">选择收件人</text>
+</string_table>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201301241731" Dversion="20120315">
+ <text id="IDS_MSGF_HEADER_MESSAGE_DETAILS">訊息詳細資訊</text>
+ <text id="IDS_COM_SK3_PREVIEW">預覽</text>
+ <text id="IDS_COM_BODY_PD_SELECTED">已選擇 %d</text>
+ <text id="IDS_MSG_BODY_DURATION_MUST_BE_LONGER_THAN_PD_SECONDS">時間必須超過 %d 秒</text>
+ <text id="IDS_DB_POP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED_DELETE_SOME_CHARACTERS">超過字元數上限。刪除部分字元</text>
+ <text id="IDS_MSGF_BODY_NO_BLOCKED_WORDS">No blocked words</text>
+ <text id="IDS_COM_BODY_SELECT_ALL">全選</text>
+ <text id="IDS_MSGF_BODY_NO_SUBJECT">無主旨</text>
+ <text id="IDS_COM_POP_CLOSE">關閉</text>
+ <text id="IDS_COM_BODY_TO">至</text>
+ <text id="IDS_MSGC_BODY_TAKE_PICTURE">拍照</text>
+ <text id="IDS_COM_POP_DELETE_Q">要刪除嗎?</text>
+ <text id="IDS_MSGC_HEADER_INPUTMODE">輸入模式</text>
+ <text id="IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED">收件人的最大數量(%d位)已達到</text>
+ <text id="IDS_COM_SK_NO">否</text>
+ <text id="IDS_COM_BODY_MY_FILES">我的檔案</text>
+ <text id="IDS_MSGF_BODY_COPY_TO_PHONE">複製到手機</text>
+ <text id="IDS_MSGF_BODY_CB_MESSAGES">區域廣播訊息</text>
+ <text id="IDS_MSGF_BODY_SERVICECENTRE">服務中心</text>
+ <text id="IDS_COM_BODY_SMS">簡訊</text>
+ <text id="IDS_MSGF_POP_SENDING_FAILED_MESSAGE">訊息傳送失敗</text>
+ <text id="IDS_COM_POP_SUCCESS">成功</text>
+ <text id="IDS_MSGF_POP_MESSAGES_RECEIVED_FROM_YOUR_CONTACTS_WILL_NOT_BE_BLOCKED_EVEN_IF_THEY_CONTAIN_BLOCKED_NUMBERS">Messages received from your contacts will not be blocked even if they contain blocked numbers</text>
+ <text id="IDS_MSG_SELECT_WORDS">Select words (%d)</text>
+ <text id="IDS_MSGF_BODY_ROAMINGRECEPTION_RESTRICTED">限制</text>
+ <text id="IDS_MSGF_POP_MESSAGES_RECEIVED_FROM_YOUR_CONTACTS_WILL_NOT_BE_BLOCKED_EVEN_IF_THEY_CONTAIN_BLOCKED_WORDS">不會封鎖來自聯絡人的訊息,即使其中包含封鎖的字詞</text>
+ <text id="IDS_MSGF_OPT_UNBLOCK">解除封鎖</text>
+ <text id="IDS_MSGF_BODY_COPY_MESSAGE_TEXT_ABB">複製訊息文字</text>
+ <text id="IDS_MSGF_BODY_READ_REPORT">讀取報告</text>
+ <text id="IDS_COM_BODY_MESSAGES">訊息</text>
+ <text id="IDS_COM_SK_OPTIONS">選項</text>
+ <text id="IDS_COM_SK_DONE">完成</text>
+ <text id="IDS_COM_POP_PM">下午</text>
+ <text id="IDS_COM_BODY_UNKNOWN">未知</text>
+ <text id="IDS_MSG_BODY_DRAFT_MESSAGES">草稿訊息</text>
+ <text id="IDS_COM_POP_SERVICE_UNAVAILABLE">無法使用服務</text>
+ <text id="IDS_MSGF_OPT_CREATEMSG_ADD_WORD">加入字詞</text>
+ <text id="IDS_MSGF_POP_BLOCK_PS_Q">是否封鎖 %s?</text>
+ <text id="IDS_MSG_BODY_CHANGE_TEXT_SIZE_USING_THE_VOLUME_KEY">使用音量鍵變更文字大小</text>
+ <text id="IDS_COM_POP_NEW_MESSAGE">新訊息</text>
+ <text id="IDS_MSGF_BODY_SPAM_MESSAGES">垃圾訊息</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_INCLUDE">包括</text>
+ <text id="IDS_MSGF_BODY_NO_BLOCKED_NUMBERS">No blocked numbers</text>
+ <text id="IDS_MSGF_BODY_BLOCKED_NUMBERS">封鎖的號碼</text>
+ <text id="IDS_MSGF_BODY_SETTINGS_MULTIMEDIAMESSAGE">多媒體訊息</text>
+ <text id="IDS_MSGF_BODY_EDIT_WORD">編輯文字</text>
+ <text id="IDS_MSGF_BODY_EXPIRED">已過期</text>
+ <text id="IDS_MSGF_BODY_MMSCCCREATIONMODEWARNING">警告</text>
+ <text id="IDS_COM_SK_EDIT">編輯</text>
+ <text id="IDS_COM_POP_FAILED">失敗</text>
+ <text id="IDS_MSGF_HEADER_DELETE_NUMBER">刪除號碼</text>
+ <text id="IDS_MSGC_BODY_RECORD_AUDIO">錄音</text>
+ <text id="IDS_COM_SK_BACK">返回</text>
+ <text id="IDS_MSGF_BODY_UNICODE">Unicode</text>
+ <text id="IDS_MSGF_HEADER_DELETE_WORDS">選擇字詞</text>
+ <text id="IDS_COM_BODY_FORWARD">轉寄</text>
+ <text id="IDS_MSGF_POP_NOMESSAGES">無訊息</text>
+ <text id="IDS_MSGF_OPT_ROAM_NETWORK">外部網路</text>
+ <text id="IDS_MSGF_BODY_FROM">自</text>
+ <text id="IDS_COM_SK_DELETE">刪除</text>
+ <text id="IDS_MSGF_SK3_UNREAD">未讀</text>
+ <text id="IDS_MSGC_BODY_DUPLICATED_RECIPIENT">重複的收件人</text>
+ <text id="IDS_MSGF_BODY_GSM_ALPHABET">GSM 字母表</text>
+ <text id="IDS_MSGF_BODY_SIM_CARD_MESSAGES">SIM 卡訊息</text>
+ <text id="IDS_MSGF_BODY_MMSNOTIMSGSTATUSSENT">已傳送</text>
+ <text id="IDS_COM_BODY_CONTACTS">聯絡人</text>
+ <text id="IDS_MSGF_OPT_STATUS">狀態</text>
+ <text id="IDS_MSGF_BODY_MMSCCCREATIONMODEFREE">可用</text>
+ <text id="IDS_COM_BODY_DETAILS_TYPE">類型</text>
+ <text id="IDS_MSGF_BODY_AUTODOWNLOAD">自動下載</text>
+ <text id="IDS_MSGF_SK_RESEND">重新傳送</text>
+ <text id="IDS_COM_SK_CANCEL">取消</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONS">接收選項</text>
+ <text id="IDS_COM_BODY_GALLERY">媒體瀏覽器</text>
+ <text id="IDS_MSGC_BUTTON2_DURATION_N_HPD_SECS">持續時間n(%d 秒)</text>
+ <text id="IDS_COM_BODY_SEARCH">搜尋</text>
+ <text id="IDS_MSGF_HEADER_MESSAGE_BOXES">訊息方塊</text>
+ <text id="IDS_MSGF_HEADER_ADD_NUMBER">新增號碼</text>
+ <text id="IDS_COM_BODY_MEMO">備忘錄</text>
+ <text id="IDS_MSGF_BODY_COPY_TO_SIM">複製到 SIM 卡</text>
+ <text id="IDS_MSGF_BODY_ENTER_NUMBER">輸入號碼</text>
+ <text id="IDS_COM_OPT_ADD_CONTACT">新增聯絡人</text>
+ <text id="IDS_MSGF_OPT_HOME_NETWORK">本地網路</text>
+ <text id="IDS_COM_POP_REJECTED">已拒絕</text>
+ <text id="IDS_COM_BODY_SETTINGS">設定</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_START_WITH">開始</text>
+ <text id="IDS_COM_BODY_DISPLAY">顯示</text>
+ <text id="IDS_MSGF_OPT_PROTECTION_ON">保護開啟</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONNETWORK_MANUAL">手動模式</text>
+ <text id="IDS_SLCD_POP_TEXT_SIM_CARD_ERROR">SIM 卡無法使用</text>
+ <text id="IDS_COM_POP_DELETED">已刪除</text>
+ <text id="IDS_COM_SK_SEND_ABB">傳送</text>
+ <text id="IDS_MSGF_POP_FORWARDED">已轉寄</text>
+ <text id="IDS_MSG_SELECT_NUMBERS">Select numbers (%d)</text>
+ <text id="IDS_MSGF_BODY_CENTRE_PD">中心 %d</text>
+ <text id="IDS_MSGF_HEADER_EDIT_NUMBER">編輯號碼</text>
+ <text id="IDS_MSGF_BODY_AUTOMATIC">自動</text>
+ <text id="IDS_MSGF_BODY_VIEW_MESSAGE_DETAILS_ABB">檢視訊息詳細資料</text>
+ <text id="IDS_MSGF_BODY_RECEIVINGOPTIONNETWORK_REJECT">拒絕</text>
+ <text id="IDS_COM_BODY_VOICE_CALL">語音通話</text>
+ <text id="IDS_MSG_MBODY_USE_THE_VOLUME_KEY">使用音量鍵</text>
+ <text id="IDS_COM_SK_SAVE">儲存</text>
+ <text id="IDS_MSGF_BODY_INVALID_SERVICE_CENTRE_ADDRESS">Invalid service centre address</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_EXACTLY_THE_SAME_AS">完全一樣</text>
+ <text id="IDS_COM_BODY_NO_SEARCH_RESULTS">無搜尋結果</text>
+ <text id="IDS_MSGF_BODY_MMS">多媒體訊息</text>
+ <text id="IDS_MSGF_BODY_MMSCREATIONMODE">建立模式</text>
+ <text id="IDS_MSGF_BODY_TEXT_MESSAGES">簡訊</text>
+ <text id="IDS_MSGF_BODY_RECEIVED">已接收</text>
+ <text id="IDS_MSGF_BODY_SETBLOCK_MATCH_CRITERIA">符合條件</text>
+ <text id="IDS_MSGF_POP_DEFERRED">已延期</text>
+ <text id="IDS_COM_SK_ADD">新增</text>
+ <text id="IDS_MSGF_OPT_BLOCK">封鎖</text>
+ <text id="IDS_COM_SK_YES">是</text>
+ <text id="IDS_MSGC_OPT_VIEW_CONTACT">檢視聯絡人</text>
+ <text id="IDS_COM_SK_SEARCH">搜尋</text>
+ <text id="IDS_COM_POP_AM_M_ABB">上午</text>
+ <text id="IDS_MSGF_BODY_BLOCKED_WORDS">封鎖的字詞</text>
+ <text id="IDS_COM_BODY_SUBJECT">主旨</text>
+ <text id="IDS_MSGF_POP_UNRECOGNISED">無法辨識</text>
+ <text id="IDS_MSGF_BODY_SEND_READ_REPORT">傳送讀取報告</text>
+ <text id="IDS_MSGF_SK_RESTORE">還原</text>
+ <text id="IDS_MSGF_BODY_REQUEST_READ_REPORT">要求讀取報告</text>
+ <text id="IDS_MSGF_BODY_ENTER_WORD">輸入字詞</text>
+ <text id="IDS_COM_SK3_COMPOSE">撰寫</text>
+ <text id="IDS_COM_POP_UNKNOWN_ERROR_OCCURRED">已發生未知錯誤</text>
+ <text id="IDS_MSGF_BODY_REQUEST_DELIVERY_REPORT">要求傳遞報告</text>
+ <text id="IDS_MSGF_BODY_INVALID_RECIPIENTS">無效接收者</text>
+ <text id="IDS_MSGF_BODY_BROADCASTMESSAGES">廣播訊息</text>
+ <text id="IDS_MSGF_OPT_SAVE_ATTACHMENT">儲存附件</text>
+ <text id="IDS_MSGF_BODY_DELIVERY_REPORT">傳遞報告</text>
+ <text id="IDS_MSGC_POP_DISCARD_CURRENT_MESSAGE_Q">放棄目前訊息</text>
+ <text id="IDS_COM_POP_ATTACH">附件</text>
+ <text id="IDS_COM_BODY_CALENDAR">日曆</text>
+ <text id="IDS_COM_SK_OK">確定</text>
+ <text id="IDS_COM_SK_CALL">通話</text>
+ <text id="IDS_MSGC_BODY_CAPTURE_VIDEO">拍攝影片</text>
+ <text id="IDS_MSG_HEADER_SELECT_RECIPIENT">選擇收件人</text>
+</string_table>
--- /dev/null
+//\r
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.\r
+//\r
+// Licensed under the Flora License, Version 1.0 (the License);\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+// http://floralicense.org/license/\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an AS IS BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+//\r
+\r
+#include <FApp.h>\r
+#include <FIo.h>\r
+#include <FMedia.h>\r
+#include <FSysEnvironment.h>\r
+\r
+#include "MsgAttachListPanel.h"\r
+#include "MsgBitmapUtility.h"\r
+#include "MsgCommonUtil.h"\r
+#include "MsgTypes.h"\r
+#include "MsgMessageData.h"\r
+\r
+using namespace Tizen::App;\r
+using namespace Tizen::Base;\r
+using namespace Tizen::Base::Collection;\r
+using namespace Tizen::Graphics;\r
+using namespace Tizen::Io;\r
+using namespace Tizen::Media;\r
+using namespace Tizen::System;\r
+using namespace Tizen::Ui::Controls;\r
+\r
+const wchar_t* IDB_CONTROLBAR_ICON_SAVE = L"M01_controlbar_icon_save.png";\r
+const wchar_t* IDB_ICON_SAVE = L"M01_icon_save.png";\r
+const wchar_t* IDS_LOCAL_DOWNLOADS = L"Downloads/";\r
+\r
+enum ListElementID\r
+{\r
+ LIST_ELEMENT_ICON,\r
+ LIST_ELEMENT_TEXT,\r
+ LIST_ELEMENT_SAVE_IMAGE\r
+};\r
+\r
+AttachListPanel::AttachListPanel(MessageData* pMessageDta)\r
+ : __messageData(pMessageDta)\r
+ , __pAttachFileArray(null)\r
+ , __pPanel(null)\r
+ , __pListView(null)\r
+{\r
+\r
+\r
+}\r
+\r
+AttachListPanel::~AttachListPanel()\r
+{\r
+\r
+ AppLogDebug("ENTER");\r
+ if (__pAttachFileArray)\r
+ {\r
+ __pAttachFileArray->RemoveAll(true);\r
+ delete __pAttachFileArray;\r
+ }\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+\r
+}\r
+\r
+result\r
+AttachListPanel::Construct(void)\r
+{\r
+\r
+ AppLogDebug("ENTER");\r
+ result r = Panel::Construct(L"IDL_PANEL_ATTACH_FILES_LIST");\r
+ if (!IsFailed(r))\r
+ {\r
+ // Inialize attachments file path\r
+ __pAttachFileArray = new (std::nothrow) ArrayList();\r
+ __pAttachFileArray->Construct();\r
+ int attachCount = __messageData->GetAttachmentCount();\r
+ const ArrayList* pAttachList = __messageData->GetAttachList();\r
+ for (int attachIndex = 0; attachIndex < attachCount; attachIndex++)\r
+ {\r
+ String* pAttachFile = (String*) pAttachList->GetAt(attachIndex);\r
+ if (pAttachFile && !(pAttachFile->IsEmpty()))\r
+ {\r
+ Bitmap* pIconBitmap = GetIconN(*pAttachFile);\r
+ AttachMentsObject* pAttachmentObj = new (std::nothrow) AttachMentsObject(*pAttachFile, pIconBitmap);\r
+ __pAttachFileArray->Add(pAttachmentObj);\r
+ }\r
+ }\r
+ ListView* pAttachmentsListview = static_cast<ListView*>(GetControl(L"IDC_ATTACH_FILES_LISTVIEW"));\r
+ pAttachmentsListview->SetBackgroundColor(COLOR_LIST_DIALOGUE_GROUP_BG);\r
+ pAttachmentsListview->SetItemProvider(*this);\r
+ pAttachmentsListview->AddListViewItemEventListener(*this);\r
+\r
+ int increaseHeight(0);\r
+ if (__pAttachFileArray->GetCount() > 0)\r
+ {\r
+ int visibleListItemCount(__pAttachFileArray->GetCount());\r
+ if (visibleListItemCount > 6)\r
+ {\r
+ visibleListItemCount = 6;\r
+ }\r
+ increaseHeight = (visibleListItemCount + 1) * H_LIST_ITEM_128PX;\r
+ }\r
+ // Adjust size and control position.\r
+ Panel::SetSize(Dimension(GetWidth(), increaseHeight));\r
+ Panel::SetPosition(16, 96);\r
+ pAttachmentsListview->SetSize(pAttachmentsListview->GetWidth(), increaseHeight);\r
+\r
+\r
+ }\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return r;\r
+}\r
+\r
+//IListViewItemProvider\r
+ListItemBase*\r
+AttachListPanel::CreateItem(int index, int itemWidth)\r
+{\r
+ AppLogDebug("ENTER");\r
+ CustomItem* pItem = new (std::nothrow) CustomItem();\r
+ pItem->Construct(Dimension(itemWidth, H_LIST_ITEM_128PX), LIST_ANNEX_STYLE_NORMAL);\r
+ if (index == 0)\r
+ {\r
+ const String fileName(L"Save all"); // = static_cast<String*>(__pAttachFileArray->GetAt(index));\r
+ pItem->AddElement(Rectangle(16, 28, 400, 72), LIST_ELEMENT_TEXT, fileName);\r
+ Bitmap* pBitMap = AppResource::GetInstance()->GetBitmapN(IDB_CONTROLBAR_ICON_SAVE);\r
+ pItem->AddElement(Rectangle(600, 28, 72, 72), LIST_ELEMENT_SAVE_IMAGE, *pBitMap);\r
+ delete pBitMap;\r
+ }\r
+ else\r
+ {\r
+ const AttachMentsObject* pAttachment = static_cast<AttachMentsObject*>(__pAttachFileArray->GetAt(index - 1));\r
+ if (pAttachment->GetIcon())\r
+ {\r
+ pItem->AddElement(Rectangle(MARGIN_16PX, (H_LIST_ITEM_112PX - pAttachment->GetIcon()->GetHeight()) / 2,\r
+ pAttachment->GetIcon()->GetWidth(), pAttachment->GetIcon()->GetHeight()),\r
+ LIST_ELEMENT_ICON, *pAttachment->GetIcon());\r
+ pItem->AddElement(Rectangle(104, 28, 400, 72),\r
+ LIST_ELEMENT_TEXT, File::GetFileName(pAttachment->GetAttachmentPath()));\r
+ Bitmap* pBitMap = AppResource::GetInstance()->GetBitmapN(IDB_CONTROLBAR_ICON_SAVE);\r
+ pItem->AddElement(Rectangle(600, 28, 72, 72), LIST_ELEMENT_SAVE_IMAGE, *pBitMap);\r
+ delete pBitMap;\r
+ }\r
+ else\r
+ {\r
+ pItem->AddElement(Rectangle(104, 28, 400, 72),\r
+ LIST_ELEMENT_TEXT, File::GetFileName(pAttachment->GetAttachmentPath()));\r
+ Bitmap* pBitMap = AppResource::GetInstance()->GetBitmapN(IDB_ICON_SAVE);\r
+ pItem->AddElement(Rectangle(600, 28, 72, 72), LIST_ELEMENT_SAVE_IMAGE, *pBitMap);\r
+ delete pBitMap;\r
+ }\r
+ }\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return pItem;\r
+}\r
+\r
+void\r
+AttachListPanel::OnListViewItemStateChanged(ListView& listView, int index,\r
+ int elementId, ListItemStatus status)\r
+{\r
+ AppLogDebug("ENTER");\r
+ switch (status)\r
+ {\r
+ case LIST_ITEM_STATUS_SELECTED:\r
+ {\r
+ if (index == 0 && elementId == LIST_ELEMENT_SAVE_IMAGE)\r
+ {\r
+ for (int attachFileNumber = 0; attachFileNumber < __pAttachFileArray->GetCount(); attachFileNumber++)\r
+ {\r
+ AttachMentsObject* pAttachment = (AttachMentsObject*) __pAttachFileArray->GetAt(attachFileNumber);\r
+ if (pAttachment && !pAttachment->GetAttachmentPath().IsEmpty())\r
+ {\r
+ String destFile;\r
+ destFile.Append(Environment::GetMediaPath() + IDS_LOCAL_DOWNLOADS + File::GetFileName(pAttachment->GetAttachmentPath()));\r
+ AppLogDebug("Source File: %S, Destination File: %S", pAttachment->GetAttachmentPath().GetPointer(), destFile.GetPointer());\r
+ File::Copy(pAttachment->GetAttachmentPath(), destFile, false);\r
+ }\r
+ }\r
+ }\r
+ else if (elementId == LIST_ELEMENT_SAVE_IMAGE)\r
+ {\r
+ AttachMentsObject* pAttachment = (AttachMentsObject*) __pAttachFileArray->GetAt(index - 1);\r
+ if (pAttachment && !pAttachment->GetAttachmentPath().IsEmpty())\r
+ {\r
+ String destFile;\r
+ destFile.Append(Environment::GetMediaPath() + IDS_LOCAL_DOWNLOADS + File::GetFileName(pAttachment->GetAttachmentPath()));\r
+ AppLogDebug("Source File: %S, Destination File: %S", pAttachment->GetAttachmentPath().GetPointer(), destFile.GetPointer());\r
+ File::Copy(pAttachment->GetAttachmentPath(), destFile, false);\r
+ }\r
+ }\r
+ }\r
+ break;\r
+\r
+ case LIST_ITEM_STATUS_HIGHLIGHTED:\r
+ case LIST_ITEM_STATUS_CHECKED:\r
+ case LIST_ITEM_STATUS_UNCHECKED:\r
+ case LIST_ITEM_STATUS_MORE:\r
+ break;\r
+ }\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
+\r
+bool\r
+AttachListPanel::DeleteItem(int index, ListItemBase* pItem, int itemWidth)\r
+{\r
+ AppLogDebug("ENTER");\r
+ if (pItem)\r
+ {\r
+ delete pItem;\r
+ }\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return true;\r
+}\r
+\r
+int\r
+AttachListPanel::GetItemCount(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return (__pAttachFileArray->GetCount() + 1);\r
+}\r
+\r
+Bitmap*\r
+AttachListPanel::GetIconN(const String& filePath) const\r
+{\r
+ AppLogDebug("ENTER");\r
+ Bitmap* pBitmap = null;\r
+ if (CommonUtil::IsImageFile(filePath))\r
+ {\r
+ Image* pImage = new (std::nothrow) Image();\r
+ if (pImage)\r
+ {\r
+ pImage->Construct();\r
+ pBitmap = pImage->DecodeN(filePath,\r
+ BITMAP_PIXEL_FORMAT_ARGB8888, W_ICON_64PX, H_ICON_64PX);\r
+ delete pImage;\r
+ }\r
+ }\r
+ else\r
+ {\r
+ pBitmap = BitmapUtility::GetInstance()->GetIconByFileExtN(filePath);\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return pBitmap;\r
+}\r
--- /dev/null
+//\r
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.\r
+//\r
+// Licensed under the Flora License, Version 1.0 (the License);\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+// http://floralicense.org/license/\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an AS IS BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+//\r
+\r
+#include <FApp.h>\r
+\r
+#include "MsgAttachListPopup.h"\r
+#include "MsgBitmapUtility.h"\r
+#include "MsgTypes.h"\r
+\r
+using namespace Tizen::App;\r
+using namespace Tizen::Base;\r
+using namespace Tizen::Base::Collection;\r
+using namespace Tizen::Graphics;\r
+using namespace Tizen::Ui::Controls;\r
+\r
+AttachListPopup::AttachListPopup(Control& parent)\r
+ : __parentCntl(parent)\r
+ , __pAttachList(null)\r
+ , __pAttachListView(null)\r
+ , __pCloseButton(null)\r
+{\r
+}\r
+\r
+AttachListPopup::~AttachListPopup(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+ if (__pAttachList)\r
+ {\r
+ __pAttachList->RemoveAll(true);\r
+ delete __pAttachList;\r
+ }\r
+}\r
+\r
+result\r
+AttachListPopup::Construct(bool hideSubject)\r
+{\r
+ AppLogDebug("ENTER");\r
+ result r = Popup::Construct(L"IDL_ATTACH_LIST_POPUP");\r
+ if (!IsFailed(r))\r
+ {\r
+ // Transfer ownership\r
+ Bitmap* pBottomBg = BitmapUtility::GetInstance()->GetIconN(MSG_ICON_BUTTON_PANEL_BG);\r
+ SetFooterBackgroundBitmap(pBottomBg);\r
+ __pAttachList = new (std::nothrow) ArrayList();\r
+ __pAttachList->Construct();\r
+ // Load attach list element.\r
+ String strText;\r
+ AttachObject* pAttachItem = null;\r
+ if (!hideSubject)\r
+ {\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_COM_BODY_SUBJECT", strText);\r
+ pAttachItem = new (std::nothrow) AttachObject(strText, ATTACH_ELEMENT_SUBJECT);\r
+ if (__pAttachList->Add(pAttachItem) != E_SUCCESS)\r
+ {\r
+ delete pAttachItem;\r
+ }\r
+ }\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_COM_BODY_GALLERY", strText);\r
+ pAttachItem = new (std::nothrow) AttachObject(strText, ATTACH_ELEMENT_GALLERY);\r
+ if (__pAttachList->Add(pAttachItem) != E_SUCCESS)\r
+ {\r
+ delete pAttachItem;\r
+ }\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGC_BODY_TAKE_PICTURE", strText);\r
+ pAttachItem = new (std::nothrow) AttachObject(strText, ATTACH_ELEMENT_TAKE_PICTURE);\r
+ if (__pAttachList->Add(pAttachItem) != E_SUCCESS)\r
+ {\r
+ delete pAttachItem;\r
+ }\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGC_BODY_CAPTURE_VIDEO", strText);\r
+ pAttachItem = new (std::nothrow) AttachObject(strText, ATTACH_ELEMENT_CAPTURE_VIDEO);\r
+ if (__pAttachList->Add(pAttachItem) != E_SUCCESS)\r
+ {\r
+ delete pAttachItem;\r
+ }\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGC_BODY_RECORD_AUDIO", strText);\r
+ pAttachItem = new (std::nothrow) AttachObject(strText, ATTACH_ELEMENT_RECORD_AUDIO);\r
+ if (__pAttachList->Add(pAttachItem) != E_SUCCESS)\r
+ {\r
+ delete pAttachItem;\r
+ }\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_COM_BODY_MY_FILES", strText);\r
+ pAttachItem = new (std::nothrow) AttachObject(strText, ATTACH_ELEMENT_MY_FILES);\r
+ if (__pAttachList->Add(pAttachItem) != E_SUCCESS)\r
+ {\r
+ delete pAttachItem;\r
+ }\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_COM_BODY_CONTACTS", strText);\r
+ pAttachItem = new (std::nothrow) AttachObject(strText, ATTACH_ELEMENT_CONTACTS);\r
+ if (__pAttachList->Add(pAttachItem) != E_SUCCESS)\r
+ {\r
+ delete pAttachItem;\r
+ }\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_COM_BODY_CALENDAR", strText);\r
+ pAttachItem = new (std::nothrow) AttachObject(strText, ATTACH_ELEMENT_CALENDAR);\r
+ if (__pAttachList->Add(pAttachItem) != E_SUCCESS)\r
+ {\r
+ delete pAttachItem;\r
+ }\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_COM_BODY_MEMO", strText);\r
+ pAttachItem = new (std::nothrow) AttachObject(strText, ATTACH_ELEMENT_MEMO);\r
+ if (__pAttachList->Add(pAttachItem) != E_SUCCESS)\r
+ {\r
+ delete pAttachItem;\r
+ }\r
+ __pAttachListView = static_cast<ListView*>(GetControl(L"IDC_ATTACH_LISTVIEW"));\r
+ __pAttachListView->SetItemProvider(*this);\r
+ __pAttachListView->AddListViewItemEventListener(*this);\r
+// __pCloseButton = static_cast<Button*>((static_cast<Panel*>(\r
+// GetControl(L"IDC_BUTTON_PANEL")))->GetControl(L"IDC_BUTTON_CLOSE"));\r
+ __pCloseButton = static_cast<Button*>(GetControl(L"IDC_BUTTON_CLOSE"));\r
+ __pCloseButton->SetActionId(IDA_CLOSE);\r
+ __pCloseButton->AddActionEventListener(*this);\r
+\r
+ int increaseHeight(0);\r
+ if (__pAttachList->GetCount() > 1)\r
+ {\r
+ int visibleListItemCount(__pAttachList->GetCount());\r
+ if (visibleListItemCount > 4)\r
+ {\r
+ visibleListItemCount = 4;\r
+ }\r
+ increaseHeight = (visibleListItemCount - 1) * H_LIST_ITEM_112PX;\r
+ }\r
+ __pAttachListView->SetSize(__pAttachListView->GetWidth(), __pAttachListView->GetHeight() + increaseHeight);\r
+\r
+ Popup::SetSize(Dimension(GetWidth(), GetHeight() + increaseHeight));\r
+ Point pos = GetControl(L"IDC_BUTTON_CLOSE")->GetPosition();\r
+ pos.y += increaseHeight;\r
+ GetControl(L"IDC_BUTTON_CLOSE")->SetPosition(pos);\r
+ }\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return r;\r
+}\r
+\r
+void\r
+AttachListPopup::OnListViewItemStateChanged(ListView& listView, int index,\r
+ int elementId, ListItemStatus status)\r
+{\r
+ AppLogDebug("ENTER");\r
+ if (status != LIST_ITEM_STATUS_SELECTED)\r
+ {\r
+ return;\r
+ }\r
+ const AttachObject* pAttachObj = static_cast<AttachObject*>(__pAttachList->GetAt(index));\r
+ RequestId requestId;\r
+ switch (pAttachObj->GetAttachId())\r
+ {\r
+ case ATTACH_ELEMENT_SUBJECT:\r
+ {\r
+ requestId = REQUEST_ADD_SUBJECT;\r
+ __parentCntl.SendUserEvent(requestId, null);\r
+ }\r
+ break;\r
+\r
+ case ATTACH_ELEMENT_GALLERY:\r
+ {\r
+ requestId = REQUEST_OPEN_GALLARY;\r
+ __parentCntl.SendUserEvent(requestId, null);\r
+ }\r
+ break;\r
+\r
+ case ATTACH_ELEMENT_TAKE_PICTURE:\r
+ {\r
+ requestId = REQUEST_TAKE_PICTURE;\r
+ __parentCntl.SendUserEvent(requestId, null);\r
+ }\r
+ break;\r
+\r
+ case ATTACH_ELEMENT_CAPTURE_VIDEO:\r
+ {\r
+ requestId = REQUEST_CAPTURE_VIDEO;\r
+ __parentCntl.SendUserEvent(requestId, null);\r
+ }\r
+ break;\r
+\r
+ case ATTACH_ELEMENT_RECORD_AUDIO:\r
+ {\r
+ requestId = REQUEST_RECORD_AUDIO;\r
+ __parentCntl.SendUserEvent(requestId, null);\r
+ }\r
+ break;\r
+\r
+ case ATTACH_ELEMENT_MY_FILES:\r
+ {\r
+ requestId = REQUEST_OPEN_MY_FILES;\r
+ __parentCntl.SendUserEvent(requestId, null);\r
+ }\r
+ break;\r
+\r
+ case ATTACH_ELEMENT_CONTACTS:\r
+ {\r
+ requestId = REQUEST_ADD_CONTACTS;\r
+ __parentCntl.SendUserEvent(requestId, null);\r
+ }\r
+ break;\r
+\r
+ case ATTACH_ELEMENT_CALENDAR:\r
+ {\r
+ requestId = REQUEST_ADD_CALENDAR;\r
+ __parentCntl.SendUserEvent(requestId, null);\r
+ }\r
+ break;\r
+\r
+ case ATTACH_ELEMENT_MEMO:\r
+ {\r
+ requestId = REQUEST_ADD_MEMO;\r
+ __parentCntl.SendUserEvent(requestId, null);\r
+ }\r
+ break;\r
+ }\r
+ // Destroy object.\r
+ SetShowState(false);\r
+ requestId = REQUEST_DESTROY_ATTACH_POPUP;\r
+ __parentCntl.SendUserEvent(requestId, null);\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
+\r
+//IListViewItemProvider\r
+ListItemBase*\r
+AttachListPopup::CreateItem(int index, int itemWidth)\r
+{\r
+ AppLogDebug("ENTER");\r
+ CustomItem* pItem = new (std::nothrow) CustomItem();\r
+ const AttachObject* pAttachObj = static_cast<AttachObject*>(__pAttachList->GetAt(index));\r
+ pItem->Construct(Dimension(itemWidth, H_LIST_ITEM_112PX), LIST_ANNEX_STYLE_NORMAL);\r
+ pItem->AddElement(Rectangle(MARGIN_16PX, 0, (itemWidth - MARGIN_16PX), H_LIST_ITEM_112PX),\r
+ pAttachObj->GetAttachId(), pAttachObj->GetAttachName());\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return pItem;\r
+}\r
+\r
+bool\r
+AttachListPopup::DeleteItem(int index, ListItemBase* pItem, int itemWidth)\r
+{\r
+ AppLogDebug("ENTER");\r
+ if (pItem)\r
+ {\r
+ delete pItem;\r
+ }\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return true;\r
+}\r
+\r
+int\r
+AttachListPopup::GetItemCount(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return __pAttachList->GetCount();\r
+}\r
+\r
+// From IActionEventListener\r
+void\r
+AttachListPopup::OnActionPerformed(const Control& source, int actionId)\r
+{\r
+ AppLogDebug("ENTER");\r
+ switch (actionId)\r
+ {\r
+ case IDA_CLOSE:\r
+ {\r
+ SetShowState(false);\r
+ RequestId requestId = REQUEST_DESTROY_ATTACH_POPUP;\r
+ __parentCntl.SendUserEvent(requestId, null);\r
+ }\r
+ break;\r
+ }\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
--- /dev/null
+//\r
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.\r
+//\r
+// Licensed under the Flora License, Version 1.0 (the License);\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+// http://floralicense.org/license/\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an AS IS BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+//\r
+\r
+#include <FApp.h>\r
+#include <FIo.h>\r
+\r
+#include "MsgAttachementControl.h"\r
+#include "MsgBitmapUtility.h"\r
+#include "MsgTypes.h"\r
+\r
+using namespace Tizen::App;\r
+using namespace Tizen::Base;\r
+using namespace Tizen::Graphics;\r
+using namespace Tizen::Io;\r
+using namespace Tizen::Ui;\r
+using namespace Tizen::Ui::Controls;\r
+\r
+AttachementControl::AttachementControl(const String& attachFile)\r
+ : __pBgBitmap(null)\r
+ , __attachFilePath(attachFile)\r
+ , __pAttachIcon(null)\r
+ , __pAttachLabel(null)\r
+ , __pDeleteButton(null)\r
+{\r
+ // Empty implementation\r
+}\r
+\r
+AttachementControl::~AttachementControl(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+ if (__pBgBitmap)\r
+ {\r
+ delete __pBgBitmap;\r
+ }\r
+ if (__pAttachIcon)\r
+ {\r
+ delete __pAttachIcon;\r
+ }\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
+\r
+result\r
+AttachementControl::Construct(const Rectangle& rectangle)\r
+{\r
+ AppLogDebug("ENTER");\r
+ result r = E_SUCCESS;\r
+ r = Container::Construct(Rectangle(rectangle.x, rectangle.y,\r
+ rectangle.width, rectangle.height));\r
+ // Create icon\r
+ BitmapUtility* pBitmapUtility = BitmapUtility::GetInstance();\r
+ __pBgBitmap = pBitmapUtility->GetIconN(MSG_ICON_SEARCH_INPUT_BG);\r
+ __pAttachIcon = pBitmapUtility->GetIconByFileExtN(__attachFilePath);\r
+ // add delete button\r
+ __pDeleteButton = new (std::nothrow) Button();\r
+ __pDeleteButton->Construct(Rectangle(rectangle.width - W_ICON_48PX - MARGIN_16PX,\r
+ (rectangle.height - H_ICON_48PX) / 2, W_ICON_48PX, H_ICON_48PX));\r
+ Bitmap* pNormalBitMap = pBitmapUtility->GetIconN(MSG_ICON_PAGE_DELETE);\r
+ __pDeleteButton->SetNormalBackgroundBitmap(*pNormalBitMap);\r
+ Bitmap* pPressBitMap = pBitmapUtility->GetIconN(MSG_ICON_PAGE_DELETE_PRESS);\r
+ __pDeleteButton->SetPressedBackgroundBitmap(*pPressBitMap);\r
+ AddControl(*__pDeleteButton);\r
+ delete pPressBitMap;\r
+ delete pNormalBitMap;\r
+ // Add label\r
+ String strText;\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_COM_POP_ATTACH", strText);\r
+ __pAttachLabel = new (std::nothrow) Label();\r
+ __pAttachLabel->Construct(Rectangle((MARGIN_16PX + W_ICON_48PX + MARGIN_16PX), 0,\r
+ (rectangle.width - (W_ICON_48PX * 2 + MARGIN_16PX * 3)), rectangle.height), strText);\r
+ __pAttachLabel->SetTextHorizontalAlignment(ALIGNMENT_LEFT);\r
+ __pAttachLabel->SetText(File::GetFileName(__attachFilePath));\r
+ AddControl(*__pAttachLabel);\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return r;\r
+}\r
+\r
+void\r
+AttachementControl::SetAttachmentFile(const String& attachFile)\r
+{\r
+ AppLogDebug("ENTER");\r
+ __attachFilePath = attachFile;\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
+\r
+const String&\r
+AttachementControl::GetAttachementFilepath(void) const\r
+{\r
+ AppLogDebug("ENTER");\r
+ return __attachFilePath;\r
+}\r
+\r
+void\r
+AttachementControl::SetDeleteActionId(int actionId)\r
+{\r
+ AppLogDebug("ENTER");\r
+ __pDeleteButton->SetActionId(actionId);\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
+\r
+void\r
+AttachementControl::AddActionEventListener(IActionEventListener& listener)\r
+{\r
+ AppLogDebug("ENTER");\r
+ __pDeleteButton->AddActionEventListener(listener);\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
+\r
+result\r
+AttachementControl::OnDraw(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+ result r = E_SUCCESS;\r
+ Canvas* pCanvas = GetCanvasN();\r
+ if (pCanvas)\r
+ {\r
+ Rectangle rect = GetBounds();\r
+ pCanvas->FillRectangle(COLOR_COMPOSE_PANEL_BG,\r
+ Rectangle(0, 0, rect.width, rect.height));\r
+ r = pCanvas->DrawNinePatchedBitmap(Rectangle(0, 0, rect.width, rect.height),\r
+ *__pBgBitmap);\r
+ if (r != E_SUCCESS)\r
+ {\r
+ pCanvas->FillRectangle(Color::GetColor(COLOR_ID_WHITE),\r
+ Rectangle(0, 0, rect.width, rect.height));\r
+ }\r
+ pCanvas->DrawBitmap(Rectangle(MARGIN_16PX, (rect.height - __pAttachIcon->GetHeight()) / 2, __pAttachIcon->GetWidth(), __pAttachIcon->GetHeight()), *__pAttachIcon);\r
+ delete pCanvas;\r
+ }\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return r;\r
+}\r
+\r
+ComposeControlType\r
+AttachementControl::GetControlType(void) const\r
+{\r
+ AppLogDebug("ENTER");\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return COMPOSE_CONTROL_ATTACHEMENT;\r
+}\r
--- /dev/null
+//\r
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.\r
+//\r
+// Licensed under the Flora License, Version 1.0 (the License);\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+// http://floralicense.org/license/\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an AS IS BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+//\r
+\r
+#include <FApp.h>\r
+#include <FIo.h>\r
+#include <FMedia.h>\r
+#include <FSysEnvironment.h>\r
+\r
+#include "MsgAttachmentSavePopup.h"\r
+#include "MsgBitmapUtility.h"\r
+#include "MsgCommonUtil.h"\r
+#include "MsgMessageData.h"\r
+#include "MsgTypes.h"\r
+\r
+using namespace Tizen::App;\r
+using namespace Tizen::Base;\r
+using namespace Tizen::Base::Collection;\r
+using namespace Tizen::Graphics;\r
+using namespace Tizen::Io;\r
+using namespace Tizen::Media;\r
+using namespace Tizen::System;\r
+using namespace Tizen::Ui::Controls;\r
+\r
+const wchar_t* IDS_DOWNLOADS = L"Downloads/";\r
+\r
+enum ListElementID\r
+{\r
+ LIST_ELEMENT_TEXT,\r
+ LIST_ELEMENT_ICON_IMAGE\r
+};\r
+\r
+AttachementSavePopup::AttachementSavePopup(Control& parent, MessageData* pMessageData)\r
+ : __parentCntl(parent)\r
+ , __pMessageData(pMessageData)\r
+ , __pAttachFileArray(null)\r
+ , __pSelectedFiles(null)\r
+{\r
+}\r
+\r
+AttachementSavePopup::~AttachementSavePopup(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+ if (__pSelectedFiles)\r
+ {\r
+ __pSelectedFiles->RemoveAll(true);\r
+ delete __pSelectedFiles;\r
+ }\r
+ if (__pAttachFileArray)\r
+ {\r
+ __pAttachFileArray->RemoveAll(true);\r
+ delete __pAttachFileArray;\r
+ }\r
+\r
+ if (__pMessageData)\r
+ {\r
+ delete __pMessageData;\r
+ }\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
+\r
+result\r
+AttachementSavePopup::Construct(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+ result r = Popup::Construct(L"IDL_ATTACHMENTS_POPUP");\r
+ if (!IsFailed(r))\r
+ {\r
+ // Transfer ownership\r
+ Bitmap* pBottomBg = BitmapUtility::GetInstance()->GetIconN(MSG_ICON_BUTTON_PANEL_BG);\r
+ SetFooterBackgroundBitmap(pBottomBg);\r
+ // Inialize attachments file path\r
+ __pAttachFileArray = new (std::nothrow) ArrayList();\r
+ __pAttachFileArray->Construct();\r
+ __pSelectedFiles = new (std::nothrow) ArrayList();\r
+ __pSelectedFiles->Construct();\r
+ int pageCount = __pMessageData->GetPageCount();\r
+ const ArrayList* pPageList = __pMessageData->GetPageList();\r
+ for (int pageIndex = 0; pageIndex < pageCount; pageIndex++)\r
+ {\r
+ MmsPageData* pPageData = (MmsPageData*) pPageList->GetAt(pageIndex);\r
+ if (pPageData)\r
+ {\r
+ String imagePath(pPageData->GetImagePath());\r
+ if (!imagePath.IsEmpty())\r
+ {\r
+ Bitmap* pIconBitmap = GetIconN(imagePath);\r
+ AttachMentsObject* pAttachmentObj = new (std::nothrow) AttachMentsObject(imagePath, pIconBitmap);\r
+ __pAttachFileArray->Add(pAttachmentObj);\r
+ }\r
+\r
+ String audioPath(pPageData->GetAudioPath());\r
+ if (!audioPath.IsEmpty())\r
+ {\r
+ Bitmap* pIconBitmap = GetIconN(audioPath);\r
+ AttachMentsObject* pAttachmentObj = new (std::nothrow) AttachMentsObject(audioPath, pIconBitmap);\r
+ __pAttachFileArray->Add(pAttachmentObj);\r
+ }\r
+\r
+ String videoPath(pPageData->GetVideoPath());\r
+ if (!videoPath.IsEmpty())\r
+ {\r
+ Bitmap* pIconBitmap = GetIconN(videoPath);\r
+ AttachMentsObject* pAttachmentObj = new (std::nothrow) AttachMentsObject(videoPath, pIconBitmap);\r
+ __pAttachFileArray->Add(pAttachmentObj);\r
+ }\r
+ }\r
+ }\r
+ int attachCount = __pMessageData->GetAttachmentCount();\r
+ const ArrayList* pAttachList = __pMessageData->GetAttachList();\r
+ for (int attachIndex = 0; attachIndex < attachCount; attachIndex++)\r
+ {\r
+ String* pAttachFile = (String*) pAttachList->GetAt(attachIndex);\r
+ if (pAttachFile && !(pAttachFile->IsEmpty()))\r
+ {\r
+ Bitmap* pIconBitmap = GetIconN(*pAttachFile);\r
+ AttachMentsObject* pAttachmentObj = new (std::nothrow) AttachMentsObject(*pAttachFile, pIconBitmap);\r
+ __pAttachFileArray->Add(pAttachmentObj);\r
+ }\r
+ }\r
+ ListView* pAttachmentsListview = static_cast<ListView*>(GetControl(L"IDC_ATTACH_LISTVIEW"));\r
+ pAttachmentsListview->SetItemProvider(*this);\r
+ pAttachmentsListview->AddListViewItemEventListener(*this);\r
+\r
+ Button* pCancelButton = static_cast<Button*>(GetControl(L"IDC_BUTTON_CANCEL"));\r
+ pCancelButton->SetActionId(IDA_CLOSE);\r
+ pCancelButton->AddActionEventListener(*this);\r
+ Button* pSaveButton = static_cast<Button*>(GetControl(L"IDC_BUTTON_SAVE"));\r
+ pSaveButton->SetActionId(IDA_SAVE);\r
+ pSaveButton->AddActionEventListener(*this);\r
+ pSaveButton->SetEnabled(false);\r
+\r
+ int increaseHeight(0);\r
+ if (__pAttachFileArray->GetCount() > 0)\r
+ {\r
+ if (__pAttachFileArray->GetCount() > 1)\r
+ {\r
+ String strText;\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_COM_BODY_SELECT_ALL", strText);\r
+ __pAttachFileArray->InsertAt((new (std::nothrow) String(strText)), 0);\r
+ }\r
+ int visibleListItemCount(__pAttachFileArray->GetCount());\r
+ if (visibleListItemCount > 4)\r
+ {\r
+ visibleListItemCount = 4;\r
+ }\r
+ increaseHeight = (visibleListItemCount - 1) * H_LIST_ITEM_112PX;\r
+ }\r
+ // Adjust size and control position.\r
+ Popup::SetSize(Dimension(GetWidth(), GetHeight() + increaseHeight));\r
+ pAttachmentsListview->SetSize(pAttachmentsListview->GetWidth(),\r
+ pAttachmentsListview->GetHeight() + increaseHeight);\r
+ Point pos = pCancelButton->GetPosition();\r
+ pos.y += increaseHeight;\r
+ pCancelButton->SetPosition(pos);\r
+ pos = pSaveButton->GetPosition();\r
+ pos.y += increaseHeight;\r
+ pSaveButton->SetPosition(pos);\r
+ }\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return r;\r
+}\r
+\r
+void\r
+AttachementSavePopup::OnListViewItemStateChanged(ListView& listView, int index,\r
+ int elementId, ListItemStatus status)\r
+{\r
+ AppLogDebug("ENTER");\r
+ switch (status)\r
+ {\r
+ case LIST_ITEM_STATUS_CHECKED:\r
+ {\r
+ if (index == 0 && __pAttachFileArray->GetCount() > 2)\r
+ {\r
+ CheckAll(true);\r
+ }\r
+ else\r
+ {\r
+ __pSelectedFiles->Add((new (std::nothrow) Integer(index)));\r
+ if (__pAttachFileArray->GetCount() > 2 && __pSelectedFiles->GetCount() == __pAttachFileArray->GetCount() - 1)\r
+ {\r
+ ListView* pAttachmentsListview = static_cast<ListView*>(GetControl(L"IDC_ATTACH_LISTVIEW"));\r
+ pAttachmentsListview->SetItemChecked(0, true);\r
+ }\r
+ }\r
+ }\r
+ break;\r
+\r
+ case LIST_ITEM_STATUS_UNCHECKED:\r
+ {\r
+ if (index == 0 && __pAttachFileArray->GetCount() > 2)\r
+ {\r
+ CheckAll(false);\r
+ }\r
+ else\r
+ {\r
+ __pSelectedFiles->Remove(*(new (std::nothrow) Integer(index)), true);\r
+ if (__pAttachFileArray->GetCount() > 2 && __pSelectedFiles->GetCount() < __pAttachFileArray->GetCount())\r
+ {\r
+ ListView* pAttachmentsListview = static_cast<ListView*>(GetControl(L"IDC_ATTACH_LISTVIEW"));\r
+ pAttachmentsListview->SetItemChecked(0, false);\r
+ }\r
+ }\r
+ }\r
+ break;\r
+\r
+ case LIST_ITEM_STATUS_SELECTED:\r
+ case LIST_ITEM_STATUS_HIGHLIGHTED:\r
+ case LIST_ITEM_STATUS_MORE:\r
+ break;\r
+ }\r
+ Button* pSaveButton = static_cast<Button*>(GetControl(L"IDC_BUTTON_SAVE"));\r
+ pSaveButton->SetEnabled(__pSelectedFiles->GetCount() > 0);\r
+ pSaveButton->Draw();\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
+\r
+//IListViewItemProvider\r
+ListItemBase*\r
+AttachementSavePopup::CreateItem(int index, int itemWidth)\r
+{\r
+ AppLogDebug("ENTER");\r
+ CustomItem* pItem = new (std::nothrow) CustomItem();\r
+ pItem->Construct(Dimension(itemWidth, H_LIST_ITEM_112PX), LIST_ANNEX_STYLE_MARK);\r
+ if (index == 0 && GetItemCount() > 2)\r
+ {\r
+ const String* pFileName = static_cast<String*>(__pAttachFileArray->GetAt(index));\r
+ pItem->AddElement(Rectangle(MARGIN_16PX, 0, (itemWidth - MARGIN_16PX), H_LIST_ITEM_112PX),\r
+ LIST_ELEMENT_TEXT, *pFileName);\r
+ }\r
+ else\r
+ {\r
+ const AttachMentsObject* pAttachment = static_cast<AttachMentsObject*>(__pAttachFileArray->GetAt(index));\r
+ if (pAttachment->GetIcon())\r
+ {\r
+ pItem->AddElement(Rectangle(MARGIN_16PX, (H_LIST_ITEM_112PX - pAttachment->GetIcon()->GetHeight()) / 2,\r
+ pAttachment->GetIcon()->GetWidth(), pAttachment->GetIcon()->GetHeight()),\r
+ LIST_ELEMENT_ICON_IMAGE, *pAttachment->GetIcon());\r
+ pItem->AddElement(Rectangle(MARGIN_16PX * 2 + pAttachment->GetIcon()->GetWidth(), 0, (itemWidth - MARGIN_16PX * 2 + W_ICON_64PX), H_LIST_ITEM_112PX),\r
+ LIST_ELEMENT_TEXT, File::GetFileName(pAttachment->GetAttachmentPath()));\r
+ }\r
+ else\r
+ {\r
+ pItem->AddElement(Rectangle(MARGIN_16PX, 0, (itemWidth - MARGIN_16PX), H_LIST_ITEM_112PX),\r
+ LIST_ELEMENT_TEXT, File::GetFileName(pAttachment->GetAttachmentPath()));\r
+ }\r
+ }\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return pItem;\r
+}\r
+\r
+bool\r
+AttachementSavePopup::DeleteItem(int index, ListItemBase* pItem, int itemWidth)\r
+{\r
+ AppLogDebug("ENTER");\r
+ if (pItem)\r
+ {\r
+ delete pItem;\r
+ }\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return true;\r
+}\r
+\r
+int\r
+AttachementSavePopup::GetItemCount(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+ return __pAttachFileArray->GetCount();\r
+}\r
+\r
+// From IActionEventListener\r
+void\r
+AttachementSavePopup::OnActionPerformed(const Control& source, int actionId)\r
+{\r
+ AppLogDebug("ENTER");\r
+ switch (actionId)\r
+ {\r
+ case IDA_SAVE:\r
+ {\r
+ SaveSelectedAttachments();\r
+ ExitPopup();\r
+ }\r
+ break;\r
+\r
+ case IDA_CLOSE:\r
+ {\r
+ ExitPopup();\r
+ }\r
+ break;\r
+ }\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
+\r
+//result\r
+//AttachementSavePopup::OnDraw(void)\r
+//{\r
+// AppLogDebug("ENTER");\r
+//\r
+// result r = E_SUCCESS;\r
+// Canvas* pCanvas = GetCanvasN();\r
+// if (__pBottomBg)\r
+// {\r
+// pCanvas->DrawNinePatchedBitmap(Rectangle(MARGIN_10PX,\r
+// GetHeight() - (H_POPUP_BOTTOM_96PX + MARGIN_10PX),\r
+// GetWidth() - (MARGIN_10PX * 2), H_POPUP_BOTTOM_96PX), *__pBottomBg);\r
+// }\r
+// delete pCanvas;\r
+//\r
+// AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+// return r;\r
+//}\r
+\r
+void\r
+AttachementSavePopup::CheckAll(bool state)\r
+{\r
+ AppLogDebug("ENTER");\r
+ __pSelectedFiles->RemoveAll(true);\r
+ ListView* pAttachmentsListview = static_cast<ListView*>(GetControl(L"IDC_ATTACH_LISTVIEW"));\r
+ for (int itemIndex = 1; itemIndex < __pAttachFileArray->GetCount(); itemIndex++)\r
+ {\r
+ pAttachmentsListview->SetItemChecked(itemIndex, state);\r
+ if (state)\r
+ __pSelectedFiles->Add((new (std::nothrow) Integer(itemIndex)));\r
+ }\r
+ Invalidate(true);\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
+\r
+void\r
+AttachementSavePopup::SaveSelectedAttachments(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+ for (int index = 0; index < __pSelectedFiles->GetCount(); index++)\r
+ {\r
+ Integer* pSlectIndex = (Integer*) __pSelectedFiles->GetAt(index);\r
+ AttachMentsObject* pAttachment = (AttachMentsObject*) __pAttachFileArray->GetAt(pSlectIndex->ToInt());\r
+ if (pAttachment && !pAttachment->GetAttachmentPath().IsEmpty())\r
+ {\r
+ String destFile;\r
+ destFile.Append(Environment::GetMediaPath() + IDS_DOWNLOADS + File::GetFileName(pAttachment->GetAttachmentPath()));\r
+ AppLogDebug("Source File: %S, Destination File: %S", pAttachment->GetAttachmentPath().GetPointer(), destFile.GetPointer());\r
+ File::Copy(pAttachment->GetAttachmentPath(), destFile, false);\r
+ }\r
+ }\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
+\r
+Bitmap*\r
+AttachementSavePopup::GetIconN(const String& filePath) const\r
+{\r
+ AppLogDebug("ENTER");\r
+ Bitmap* pBitmap = null;\r
+ if (CommonUtil::IsImageFile(filePath))\r
+ {\r
+ Image* pImage = new (std::nothrow) Image();\r
+ if (pImage)\r
+ {\r
+ pImage->Construct();\r
+ pBitmap = pImage->DecodeN(filePath,\r
+ BITMAP_PIXEL_FORMAT_ARGB8888, W_ICON_64PX, H_ICON_64PX);\r
+ delete pImage;\r
+ }\r
+ }\r
+ else\r
+ {\r
+ pBitmap = BitmapUtility::GetInstance()->GetIconByFileExtN(filePath);\r
+ }\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return pBitmap;\r
+}\r
+\r
+void\r
+AttachementSavePopup::ExitPopup(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+ SetShowState(false);\r
+ RequestId requestId = REQUEST_DESTROY_SAVE_ATTACHMENT_POPUP;\r
+ __parentCntl.SendUserEvent(requestId, null);\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return;\r
+}\r
--- /dev/null
+//\r
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.\r
+//\r
+// Licensed under the Flora License, Version 1.0 (the License);\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+// http://floralicense.org/license/\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an AS IS BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+//\r
+\r
+#include <FApp.h>\r
+\r
+#include "MsgBaseCustomPopup.h"\r
+#include "MsgTypes.h"\r
+\r
+using namespace Tizen::App;\r
+using namespace Tizen::Base;\r
+using namespace Tizen::Base::Collection;\r
+using namespace Tizen::Graphics;\r
+using namespace Tizen::Ui::Controls;\r
+\r
+BaseCustomPopup::BaseCustomPopup(void)\r
+ : __pBottomBg(null)\r
+{\r
+\r
+}\r
+\r
+BaseCustomPopup::~BaseCustomPopup(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+ if (__pBottomBg)\r
+ {\r
+ delete __pBottomBg;\r
+ }\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
+\r
+void\r
+BaseCustomPopup::SetFooterBackgroundBitmap(Bitmap* pFooterBg)\r
+{\r
+ AppLogDebug("ENTER");\r
+ __pBottomBg = pFooterBg;\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
+\r
+result\r
+BaseCustomPopup::OnDraw(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ result r = Popup::OnDraw();\r
+ Canvas* pCanvas = GetCanvasN();\r
+ if (__pBottomBg)\r
+ {\r
+ pCanvas->DrawNinePatchedBitmap(Rectangle(MARGIN_10PX,\r
+ GetHeight() - (H_POPUP_BOTTOM_96PX + MARGIN_10PX),\r
+ GetWidth() - MARGIN_10PX * 2, H_POPUP_BOTTOM_96PX), *__pBottomBg);\r
+ }\r
+ delete pCanvas;\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return r;\r
+}\r
--- /dev/null
+//\r
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.\r
+//\r
+// Licensed under the Flora License, Version 1.0 (the License);\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+// http://floralicense.org/license/\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an AS IS BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+//\r
+\r
+#include "MsgBaseData.h"\r
+#include "MsgTypes.h"\r
+\r
+using namespace Tizen::Base;\r
+using namespace Tizen::Base::Collection;\r
+\r
+\r
+AddressInfo::AddressInfo()\r
+ : needToValidate(true)\r
+{\r
+ // Empty implementation.\r
+}\r
+\r
+MmsPageData::MmsPageData(const String& bodyText, bool isTextTop)\r
+ : __pageDuration(MIN_MMS_SLIDE_DURATION)\r
+ , __bodyText(bodyText)\r
+ , __isTextTop(isTextTop)\r
+{\r
+ // Empty implementation.\r
+}\r
+\r
+MessageComposeData::MessageComposeData(const String& subjectText, ArrayList* pPageList, ArrayList* pAttachList)\r
+ : __isMms(true)\r
+ , __subjectText(subjectText)\r
+ , __pPageList(pPageList)\r
+ , __pAttachList(pAttachList)\r
+ , __pRecipientList(null)\r
+{\r
+ // Empty implementation.\r
+}\r
+\r
+MessageComposeData::MessageComposeData(const String& smsBodyText)\r
+ : __isMms(false)\r
+ , __smsText(smsBodyText)\r
+ , __pPageList(null)\r
+ , __pAttachList(null)\r
+ , __pRecipientList(null)\r
+{\r
+ // Empty implementation.\r
+}\r
+\r
+MessageComposeData::~MessageComposeData()\r
+{\r
+ AppLogDebug("ENTER");\r
+ if (__pPageList)\r
+ {\r
+ __pPageList->RemoveAll(true);\r
+ delete __pPageList;\r
+ }\r
+ if (__pAttachList)\r
+ {\r
+ __pAttachList->RemoveAll(true);\r
+ delete __pAttachList;\r
+ }\r
+ if (__pRecipientList)\r
+ {\r
+ __pRecipientList->RemoveAll(true);\r
+ delete __pRecipientList;\r
+ }\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
+\r
+void\r
+MessageComposeData::AddRecipient(AddressInfo* pRecipient)\r
+{\r
+ AppLogDebug("ENTER");\r
+ if (!__pRecipientList)\r
+ {\r
+ __pRecipientList = new (std::nothrow) ArrayList();\r
+ __pRecipientList->Construct();\r
+ }\r
+ __pRecipientList->Add(pRecipient);\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
+\r
+void\r
+MessageComposeData::AddAttachment(const String& attachFilepath)\r
+{\r
+ AppLogDebug("ENTER");\r
+ if (!__pAttachList)\r
+ {\r
+ __pAttachList = new (std::nothrow) ArrayList();\r
+ __pAttachList->Construct();\r
+ }\r
+ __pAttachList->Add(new (std::nothrow) String(attachFilepath));\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+\r
+}\r
+\r
+void\r
+MessageComposeData::AddPage(MmsPageData* pMmsPage)\r
+{\r
+ AppLogDebug("ENTER");\r
+ if (!__pPageList)\r
+ {\r
+ __pPageList = new (std::nothrow) ArrayList();\r
+ __pPageList->Construct();\r
+ }\r
+ __pPageList->Add(pMmsPage);\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
+\r
+void\r
+MessageComposeData::SetSmsBody(const String& smsBodyText)\r
+{\r
+ AppLogDebug("ENTER");\r
+ __smsText.Clear();\r
+ __smsText.Append(smsBodyText);\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
+\r
+void\r
+MessageComposeData::SetSubject(const String& subjectText)\r
+{\r
+ AppLogDebug("ENTER");\r
+ __subjectText.Clear();\r
+ __subjectText.Append(subjectText);\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
--- /dev/null
+//\r
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.\r
+//\r
+// Licensed under the Flora License, Version 1.0 (the License);\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+// http://floralicense.org/license/\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an AS IS BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+//\r
+\r
+#include <FBaseResult.h>\r
+\r
+#include "MsgBaseEvent.h"\r
+\r
+using namespace Tizen::Base::Runtime;\r
+\r
+BaseEvent::BaseEvent(const IEventListener* pEvent)\r
+ : __pEvent(pEvent)\r
+{\r
+ AppLogDebug("ENTER");\r
+ //Empty implementation\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
+\r
+BaseEvent::~BaseEvent()\r
+{\r
+ AppLogDebug("ENTER");\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
+\r
+bool\r
+BaseEvent::IsSame(const IEventListener* pEvent)\r
+{\r
+ AppLogDebug("ENTER");\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return (this->__pEvent == pEvent);\r
+}\r
+\r
+const IEventListener*\r
+BaseEvent::GetEvent() const\r
+{\r
+ AppLogDebug("ENTER");\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return this->__pEvent;\r
+}\r
--- /dev/null
+//\r
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.\r
+//\r
+// Licensed under the Flora License, Version 1.0 (the License);\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+// http://floralicense.org/license/\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an AS IS BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+//\r
+\r
+#include <FApp.h>\r
+#include <FUiCtrlFooter.h>\r
+#include <FUiCtrlHeader.h>\r
+\r
+#include "MsgBaseForm.h"\r
+\r
+using namespace Tizen::App;\r
+using namespace Tizen::Ui::Controls;\r
+\r
+BaseForm::BaseForm(void)\r
+{\r
+ //Empty implementation\r
+}\r
+\r
+BaseForm::~BaseForm(void)\r
+{\r
+ //Empty implementation\r
+}\r
+\r
+void\r
+BaseForm::OnIntializeFooter(Footer& footer)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ // Default implementation.\r
+ footer.SetStyle(FOOTER_STYLE_SEGMENTED_TEXT);\r
+ footer.SetBackButton();\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
+\r
+void\r
+BaseForm::OnIntializeHeader(Header& header)\r
+{\r
+ AppLogDebug("ENTER");\r
+ // Default implementation.\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
+\r
+void\r
+BaseForm::OnActionPerformed(const Control& source, int actionId)\r
+{\r
+ AppLogDebug("ENTER");\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
+\r
+result\r
+BaseForm::InitializeBase(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+ SetOrientation(Tizen::Ui::ORIENTATION_PORTRAIT);\r
+ result r = E_SUCCESS;\r
+ Header* pHeader = GetHeader();\r
+ if (pHeader)\r
+ {\r
+ OnIntializeHeader(*pHeader);\r
+ }\r
+ Footer* pFooter = GetFooter();\r
+ if (pFooter)\r
+ {\r
+ OnIntializeFooter(*pFooter);\r
+ }\r
+ SetFormBackEventListener(this);\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return r;\r
+}\r
+\r
+void\r
+BaseForm::OnFormBackRequested(Form& source)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ // Close App.\r
+ UiApp* pApp = UiApp::GetInstance();\r
+ AppAssert(pApp);\r
+ pApp->Terminate();\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
--- /dev/null
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+#include <msg.h>
+#include <msg_storage.h>
+#include <FBaseColIListT.h>
+
+
+#include "MsgBasePresentationModel.h"
+#include "MsgCommonUtil.h"
+#include "MsgContactList.h"
+#include "MsgDeleteHandlerThread.h"
+#include "MsgMessageData.h"
+#include "MsgSpamRestoreHandler.h"
+#include "MsgThreadData.h"
+#include "MsgTypes.h"
+
+using namespace Tizen::Base;
+using namespace Tizen::Base::Collection;
+using namespace Tizen::Base::Runtime;
+using namespace Tizen::Ui;
+
+BasePresentationModel::BasePresentationModel(void)
+ : __pMsgHandle(null)
+ , __pDeleteHandler(null)
+ , __pSpamRestoreHandler(null)
+
+{
+ //Empty implementation
+}
+
+BasePresentationModel::~BasePresentationModel(void)
+{
+ AppLogDebug("ENTER");
+
+ if (__pDeleteHandler)
+ {
+ __pDeleteHandler->Join();
+ delete __pDeleteHandler;
+ __pDeleteHandler = null;
+ }
+
+ if(__pSpamRestoreHandler)
+ {
+ __pSpamRestoreHandler->Join();
+ delete __pSpamRestoreHandler;
+ }
+
+ if (__pMsgHandle)
+ {
+ // Close open handle with message service
+ msg_close_msg_handle(&__pMsgHandle);
+ }
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+}
+
+result
+BasePresentationModel::Construct(void)
+{
+ AppLogDebug("ENTER");
+
+ result r = E_SUCCESS;
+ // Open session with message service.
+ msg_error_t err = msg_open_msg_handle(&__pMsgHandle);
+ if (err != MSG_SUCCESS)
+ {
+ CommonUtil::ShowErrorInfo(err);
+ AppLogDebug("msg_open_msg_handle err = %d", (int) err);
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ r = E_FAILURE;
+ return r;
+ }
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(r));
+ return r;
+}
+
+void
+BasePresentationModel::Delete(int deleteId, int requestType)
+{
+ AppLogDebug("ENTER");
+
+ msg_error_t err = MSG_SUCCESS;
+ if (requestType == REQUEST_DELETE_THREAD)
+ {
+ err = msg_delete_thread_message_list(__pMsgHandle, (msg_thread_id_t) deleteId, true);
+ }
+ else if (requestType == REQUEST_DELETE_MESSAGE)
+ {
+ err = msg_delete_message(__pMsgHandle, (msg_message_id_t) deleteId);
+ }
+
+ AppLogDebug("Thread and message delete ID = %u err = %d", deleteId, (int) err);
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+}
+
+void
+BasePresentationModel::Delete(IListT< int >* pIdList,
+ Control& listener, int requestType)
+{
+ AppLogDebug("ENTER");
+
+ if (__pDeleteHandler)
+ {
+ delete __pDeleteHandler;
+ }
+ __pDeleteHandler = new (std::nothrow) DeleteHandlerThread(pIdList, listener, requestType);
+ __pDeleteHandler->Construct();
+ __pDeleteHandler->Start();
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+}
+
+void
+BasePresentationModel::Delete(int deleteId, Control& listener, int requestType)
+{
+ AppLogDebug("ENTER");
+
+ if (__pDeleteHandler)
+ {
+ delete __pDeleteHandler;
+ }
+ __pDeleteHandler = new (std::nothrow) DeleteHandlerThread(deleteId, listener, requestType);
+ __pDeleteHandler->Construct();
+ __pDeleteHandler->Start();
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+}
+
+
+ArrayList*
+BasePresentationModel::GetPhoneNumberListN(int threadId) const
+{
+ AppLogDebug("ENTER");
+
+ msg_error_t err = MSG_SUCCESS;
+ msg_struct_list_s pAddressList = {0};
+ if ((err = msg_get_address_list(__pMsgHandle, (msg_thread_id_t) threadId, &pAddressList)) != MSG_SUCCESS)
+ {
+ AppLogDebug("msg_get_address_list error=%d", (int) err);
+ return null;
+ }
+ ArrayList* pPhoneNumberList = null;
+ // Prepare list here
+ if (pAddressList.nCount > 0)
+ {
+ pPhoneNumberList = new (std::nothrow) ArrayList();
+ //4. Set Address
+ char recipient[MAX_ADDRESS_VAL_LEN] = {0};
+ for (int count = 0; count < pAddressList.nCount; count++)
+ {
+ msg_get_str_value(pAddressList.msg_struct_info[count],
+ MSG_ADDRESS_INFO_ADDRESS_VALUE_STR, recipient, MAX_ADDRESS_VAL_LEN);
+ pPhoneNumberList->Add((new (std::nothrow) String(recipient)));
+ }
+ }
+ // Free memory
+ msg_release_list_struct(&pAddressList);
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return pPhoneNumberList;
+}
+
+ArrayList*
+BasePresentationModel::GetRecipientDetailsListN(int threadId) const
+{
+ AppLogDebug("ENTER");
+
+ msg_error_t err = MSG_SUCCESS;
+ msg_struct_list_s pAddressList = {0};
+ if ((err = msg_get_address_list(__pMsgHandle, (msg_thread_id_t) threadId, &pAddressList)) != MSG_SUCCESS)
+ {
+ AppLogDebug("msg_get_address_list error=%d", (int) err);
+ return null;
+ }
+ ArrayList* pRecipientDetailsList = null;
+
+ if (pAddressList.nCount > 0)
+ {
+ pRecipientDetailsList = new (std::nothrow) ArrayList();
+ char recipientNumber[MAX_ADDRESS_VAL_LEN] = {0};
+ char recipientName[MAX_ADDRESS_VAL_LEN] = {0};
+ for (int count = 0; count < pAddressList.nCount; count++)
+ {
+ msg_get_str_value(pAddressList.msg_struct_info[count],
+ MSG_ADDRESS_INFO_ADDRESS_VALUE_STR, recipientNumber, MAX_ADDRESS_VAL_LEN);
+ msg_get_str_value(pAddressList.msg_struct_info[count],
+ MSG_ADDRESS_INFO_DISPLAYNAME_STR, recipientName, MAX_ADDRESS_VAL_LEN);
+ ContactDetails* pConDetails = new (std::nothrow) ContactDetails();
+ pConDetails->contactName = recipientName;
+ pConDetails->contactNumber = recipientNumber;
+ if(pConDetails->contactName.CompareTo(String(IDS_BLANK)) == 0)
+ {
+ pConDetails->contactName = IDS_UNKNOWN;
+ }
+ pRecipientDetailsList->Add(pConDetails);
+ }
+ }
+ // Free memory
+ msg_release_list_struct(&pAddressList);
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return pRecipientDetailsList;
+}
+
+int
+BasePresentationModel::GetMessageDeliveryStatus(int messageId)
+{
+ AppLogDebug("ENTER");
+
+ int reportStatus(MSG_DELIVERY_REPORT_NONE);
+ msg_struct_list_s deliveryStatusList = {0};
+ msg_get_report_status(__pMsgHandle, (msg_message_id_t) messageId, &deliveryStatusList);
+ if (deliveryStatusList.nCount > 0)
+ {
+ msg_get_int_value(deliveryStatusList.msg_struct_info[0], MSG_REPORT_STATUS_INT, &reportStatus);
+ }
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return reportStatus;
+}
+
+bool
+BasePresentationModel::MoveMessageToSIM(int messageId)
+{
+ AppLogDebug("ENTER");
+
+ msg_message_id_t msgId = messageId;
+ msg_storage_id_t storageId = MSG_STORAGE_SIM;
+ msg_error_t err = msg_move_msg_to_storage(__pMsgHandle, msgId, storageId);
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return (err == MSG_SUCCESS);
+}
+
+bool
+BasePresentationModel::MoveMessageToPhone(int messageId)
+{
+ AppLogDebug("ENTER");
+
+ msg_message_id_t msgId = messageId;
+ msg_storage_id_t storageId = MSG_STORAGE_PHONE;
+ msg_error_t err = msg_move_msg_to_storage(__pMsgHandle, msgId, storageId);
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return (err == MSG_SUCCESS);
+}
+
+bool
+BasePresentationModel::MoveMessageToInbox(int messageId)
+{
+ AppLogDebug("ENTER");
+
+ msg_message_id_t msgId = messageId;
+ msg_folder_id_t storageId = MSG_INBOX_ID;
+ msg_error_t err = msg_move_msg_to_folder(__pMsgHandle, msgId, storageId);
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return (err == MSG_SUCCESS);
+}
+
+void
+BasePresentationModel::RestoreSpamMsgs(ArrayListT<int>* pSelectedId,Control* threadCtrl)
+{
+ AppLogDebug("ENTER");
+
+
+ if (__pSpamRestoreHandler)
+ {
+ delete __pSpamRestoreHandler;
+ }
+
+ __pSpamRestoreHandler = new (std::nothrow) SpamRestoreHandler(pSelectedId,threadCtrl);
+ __pSpamRestoreHandler->Construct();
+ __pSpamRestoreHandler->Start();
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+}
+
+void
+BasePresentationModel::CancelRestore()
+{
+ AppLogDebug("ENTER");
+
+
+ if(__pSpamRestoreHandler)
+ {
+ __pSpamRestoreHandler->Join();
+ delete __pSpamRestoreHandler;
+ __pSpamRestoreHandler = null;
+ }
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+}
+
+
+MessageData*
+BasePresentationModel::GetMessageDataByIdN(int messageId) const
+{
+ AppLogDebug("ENTER");
+ MessageData* pMessageData = null;
+ result r = E_SUCCESS;
+ if (messageId >= 0)
+ {
+ msg_struct_t pMsgInfo = msg_create_struct(MSG_STRUCT_MESSAGE_INFO);
+ if (pMsgInfo)
+ {
+ msg_struct_t pMsgSendOpt = msg_create_struct(MSG_STRUCT_SENDOPT);
+ if (pMsgSendOpt)
+ {
+ if (msg_get_message(__pMsgHandle, (msg_message_id_t) messageId,
+ pMsgInfo, pMsgSendOpt) == MSG_SUCCESS)
+ {
+ pMessageData = new (std::nothrow) MessageData();
+ r = pMessageData->Construct(pMsgInfo, true);
+ if (r != E_SUCCESS)
+ {
+ delete pMessageData;
+ pMessageData = null;
+ }
+ }
+ msg_release_struct(&pMsgSendOpt);
+ }
+ msg_release_struct(&pMsgInfo);
+ }
+ }
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return pMessageData;
+}
+
+ThreadData*
+BasePresentationModel::GetThreadDataByIdN(int threadId) const
+{
+ AppLogDebug("ENTER");
+ ThreadData* pThreadData = null;
+ result r = E_SUCCESS;
+ if (threadId >= 0)
+ {
+ msg_struct_t pThreadInfo = msg_create_struct(MSG_STRUCT_THREAD_INFO);
+ if (pThreadInfo)
+ {
+ if (msg_get_thread(__pMsgHandle, (msg_thread_id_t) threadId,
+ pThreadInfo) == MSG_SUCCESS)
+ {
+ pThreadData = new (std::nothrow) ThreadData(__pMsgHandle);
+ r = pThreadData->Construct(pThreadInfo);
+ if (r != E_SUCCESS)
+ {
+ delete pThreadData;
+ pThreadData = null;
+ }
+ }
+ msg_release_struct(&pThreadInfo);
+ }
+ }
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return pThreadData;
+}
+
+
+void
+BasePresentationModel::CancelDelete(void)
+{
+ AppLogDebug("ENTER");
+
+ if(__pDeleteHandler)
+ {
+ __pDeleteHandler->Join();
+ delete __pDeleteHandler;
+ __pDeleteHandler = null;
+ }
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
--- /dev/null
+//\r
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.\r
+//\r
+// Licensed under the Flora License, Version 1.0 (the License);\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+// http://floralicense.org/license/\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an AS IS BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+//\r
+\r
+#include <cstdlib>\r
+#include <FApp.h>\r
+#include <FBaseColHashMap.h>\r
+#include <FBaseDataType.h>\r
+#include <FGraphics.h>\r
+#include <FGrpCanvas.h>\r
+\r
+#include "MsgBitmapUtility.h"\r
+#include "MsgTypes.h"\r
+\r
+using namespace Tizen::App;\r
+using namespace Tizen::Base;\r
+using namespace Tizen::Base::Collection;\r
+using namespace Tizen::Graphics;\r
+\r
+const wchar_t* IDS_WINSET_LIST_PROCESS = L"00_winset_list_process_%02d.png";\r
+const wchar_t* IDB_ICON_TEXT = L"M01_icon_text.png";\r
+const wchar_t* IDB_ICON_WORD = L"M01_icon_word.png";\r
+const wchar_t* IDB_ICON_UNKNOWN = L"M01_icon_unknown";\r
+const wchar_t* FILE_EXTENSION_TXT = L".txt";\r
+const wchar_t* FILE_EXTENSION_DOC = L".doc";\r
+\r
+BitmapUtility* BitmapUtility::__pInstance = null;\r
+\r
+BitmapUtility*\r
+BitmapUtility::GetInstance(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ if (__pInstance == null)\r
+ {\r
+ CreateInstance();\r
+ }\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return __pInstance;\r
+}\r
+\r
+BitmapUtility::BitmapUtility(void)\r
+ : __pBitmapList(null)\r
+{\r
+ //Empty implementation\r
+}\r
+\r
+BitmapUtility::~BitmapUtility()\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ if (__pBitmapList)\r
+ {\r
+ __pBitmapList->RemoveAll(true);\r
+ delete __pBitmapList;\r
+ }\r
+\r
+ AppLogDebug("EXIT: r = %s", GetErrorMessage(GetLastResult()));\r
+}\r
+\r
+result\r
+BitmapUtility::Construct(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ result r = E_SUCCESS;\r
+ __pBitmapList = new (std::nothrow) HashMap();\r
+ r = __pBitmapList->Construct();\r
+\r
+ AppLogDebug("EXIT: r = %s", GetErrorMessage(r));\r
+ return r;\r
+}\r
+\r
+void\r
+BitmapUtility::CreateInstance(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+ __pInstance = new (std::nothrow) BitmapUtility();\r
+ if (E_SUCCESS != __pInstance->Construct())\r
+ {\r
+ delete __pInstance;\r
+ __pInstance = null;\r
+ }\r
+ // To destroy singletone instance on application exit\r
+ std::atexit(DestroyInstance);\r
+ AppLogDebug("EXIT: r = %s", GetErrorMessage(GetLastResult()));\r
+}\r
+\r
+void\r
+BitmapUtility::DestroyInstance(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+ delete __pInstance;\r
+ AppLogDebug("EXIT: r = %s", GetErrorMessage(GetLastResult()));\r
+}\r
+\r
+Bitmap*\r
+BitmapUtility::GetIconN(MessageIconType iconType, const Dimension& size)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ String pngFile;\r
+ Bitmap* pBitmap = null;\r
+ bool validIcon = true;\r
+ AppResource* pAppResource = Application::GetInstance()->GetAppResource();\r
+ switch (iconType)\r
+ {\r
+ case MSG_ICON_UNREAD:\r
+ pngFile.Append("00_winset_list_bubble_bg.9.png");\r
+ pBitmap = Get9PatchBitmapIconN(pngFile, size);\r
+ break;\r
+\r
+ case MSG_ICON_UNREAD_PRESS:\r
+ pngFile.Append("00_winset_list_bubble_bg.9.png");\r
+ pBitmap = Get9PatchBitmapIconN(pngFile, size);\r
+ break;\r
+\r
+ case MSG_ICON_BROADCASTMSG:\r
+ pngFile.Append("M01_icon_broadcasting.png");\r
+ break;\r
+\r
+ case MSG_ICON_BROADCASTMSG_PRESS:\r
+ pngFile.Append("M01_icon_broadcasting_press.png");\r
+ break;\r
+\r
+ case MSG_ICON_OTA:\r
+ pngFile.Append("M01_icon_OTA.png");\r
+ break;\r
+\r
+ case MSG_ICON_OTA_PRESS:\r
+ pngFile.Append("M01_icon_OTA_press.png");\r
+ break;\r
+\r
+ case MSG_ICON_PUSH:\r
+ pngFile.Append("M01_icon_Push.png");\r
+ break;\r
+\r
+ case MSG_ICON_PUSH_PRESS:\r
+ pngFile.Append("M01_icon_Push_press.png");\r
+ break;\r
+\r
+ case MSG_ICON_EDIT:\r
+ pngFile.Append("M01_controlbar_icon_edit.png");\r
+ break;\r
+\r
+ case MSG_ICON_TRAY:\r
+ pngFile.Append("00_winset_more.png");\r
+ break;\r
+\r
+ case MSG_ICON_TRAY_PRESS:\r
+ pngFile.Append("00_winset_more_press.png");\r
+ break;\r
+\r
+ case MSG_ICON_COMPOSE:\r
+ pngFile.Append("M01_title_icon_compose_web.png");\r
+ break;\r
+\r
+ case MSG_ICON_COMPOSE_PRESS:\r
+ pngFile.Append("M01_title_icon_compose_press_web.png");\r
+ break;\r
+\r
+ case MSG_ICON_DELETE:\r
+ pngFile.Append("M01_icon_delete.png");\r
+ break;\r
+\r
+ case MSG_ICON_CONTACT_INFO:\r
+ pngFile.Append("M01_icon_contact_info.png");\r
+ break;\r
+\r
+ case MSG_ICON_PLUS:\r
+ pngFile.Append("00_button_plus.png");\r
+ break;\r
+\r
+ case MSG_ICON_PLUS_PRESS:\r
+ pngFile.Append("00_button_plus_press.png");\r
+ break;\r
+\r
+ case MSG_ICON_BACK:\r
+ pngFile.Append("00_icon_Back.png");\r
+ break;\r
+\r
+ case MSG_ICON_BACK_PRESSED:\r
+ pngFile.Append("00_icon_Back_press.png");\r
+ break;\r
+\r
+ case MSG_ICON_HEADER_BACK:\r
+ pngFile.Append("00_icon_Back_64.png");\r
+ break;\r
+\r
+ case MSG_ICON_HEADER_BACK_PRESSED:\r
+ pngFile.Append("00_icon_Back_press_64.png");\r
+ break;\r
+\r
+ case MSG_ICON_CALL:\r
+ pngFile.Append("M01_icon_call.png");\r
+ break;\r
+\r
+ case MSG_ICON_CANCEL:\r
+ pngFile.Append("M01_controlbar_icon_cancel.png");\r
+ break;\r
+\r
+ case MSG_ICON_BUBBLE_RECEIVE_BG:\r
+ pngFile.Append("00_messagebubble_bg_receive.9.png");\r
+ //pBitmap = Get9PatchBitmapIconN(pngFile, size);\r
+ break;\r
+\r
+ case MSG_ICON_BUBBLE_SENT_BG:\r
+ pngFile.Append("00_messagebubble_bg_sent.9.png");\r
+ //pBitmap = Get9PatchBitmapIconN(pngFile, size);\r
+ break;\r
+\r
+ case MSG_ICON_DELETE_SWEEP:\r
+ pngFile.Append("00_button_sweep_delete.9.png");\r
+ pBitmap = Get9PatchBitmapIconN(pngFile, size);\r
+ break;\r
+\r
+ case MSG_ICON_DELETE_PRESS_SWEEP:\r
+ pngFile.Append("00_button_sweep_delete_press.9.png");\r
+ pBitmap = Get9PatchBitmapIconN(pngFile, size);\r
+ break;\r
+\r
+ case MSG_ICON_LIST_EXPAND_CLOSE:\r
+ pngFile.Append("00_list_expand_closed.png");\r
+ break;\r
+\r
+ case MSG_ICON_LIST_EXPAND_CLOSE_PRESS:\r
+ pngFile.Append("00_list_expand_closed_press.png");\r
+ break;\r
+\r
+ case MSG_ICON_LIST_EXPAND_OPENED:\r
+ pngFile.Append("00_list_expand_opened.png");\r
+ break;\r
+\r
+ case MSG_ICON_LIST_EXPAND_OPENED_PRESS:\r
+ pngFile.Append("00_list_expand_opened_press.png");\r
+ break;\r
+\r
+ case MSG_ICON_RADIO_BUTTON_UNCHECK:\r
+ pngFile.Append("00_button_radio_normal2.png");\r
+ break;\r
+\r
+ case MSG_ICON_RADIO_BUTTON_UNCHECK_PRESS:\r
+ pngFile.Append("00_button_radio_press2.png");\r
+ break;\r
+\r
+ case MSG_ICON_RADIO_BUTTON_CHECK:\r
+ pngFile.Append("00_button_radio_normal1.png");\r
+ break;\r
+\r
+ case MSG_ICON_RADIO_BUTTON_CHECK_PRESS:\r
+ pngFile.Append("00_button_radio_press1.png");\r
+ break;\r
+\r
+ case MSG_ICON_SEND_MESSAGE:\r
+ pngFile.Append("M01_btn_message_send.png");\r
+ break;\r
+\r
+ case MSG_ICON_SEND_MESSAGE_DIM:\r
+ pngFile.Append("M01_btn_message_send_dim.png");\r
+ break;\r
+\r
+ case MSG_ICON_BUBBLE_DATE_BG:\r
+ pngFile.Append("00_MessageBubble_date_bg.9.png");\r
+ pBitmap = Get9PatchBitmapIconN(pngFile, size);\r
+ break;\r
+\r
+ case MSG_ICON_WARNING:\r
+ pngFile.Append("00_button_warning.png");\r
+ break;\r
+\r
+ case MSG_ICON_WARNING_PRESS:\r
+ pngFile.Append("00_button_warning_press.png");\r
+ break;\r
+\r
+ case MSG_ICON_CIRCLE_BUTTON_BG:\r
+ pngFile.Append("00_btn_circle_bg_normal.png");\r
+ break;\r
+\r
+ case MSG_ICON_CIRCLE_BUTTON_BG_PRESS:\r
+ pngFile.Append("00_btn_circle_bg_press.png");\r
+ break;\r
+\r
+ case MSG_ICON_CIRCLE_BUTTON_BG_DIM:\r
+ pngFile.Append("00_circle_button_dim.png");\r
+ break;\r
+\r
+ case MSG_ICON_WARNING_CIRCLE_BUTTON_BG:\r
+ pngFile.Append("00_btn_circle_bg_normal_01.png");\r
+ break;\r
+\r
+ case MSG_ICON_WARNING_CIRCLE_BUTTON_BG_PRESS:\r
+ pngFile.Append("00_btn_circle_bg_normal_01_press.png");\r
+ break;\r
+\r
+ case MSG_ICON_EMPTY_LIST:\r
+ pngFile.Append("00_Nocontents_text.png");\r
+ break;\r
+\r
+ case MSG_ICON_SETTINGS:\r
+ pngFile.Append("01_controlbar_icon_settings.png");\r
+ break;\r
+\r
+ case MSG_ICON_COPY_TO_PHONE:\r
+ pngFile.Append("M01_controlbar_icon_copy_to_phone.png");\r
+ break;\r
+\r
+ case MSG_ICON_RESTORE:\r
+ pngFile.Append("M01_controlbar_icon_restore.png");\r
+ break;\r
+\r
+ case MSG_ICON_MESSAGE_BOXES:\r
+ pngFile.Append("M01_controlbar_icon_message_boxes.png");\r
+ break;\r
+\r
+ case MSG_ICON_Add:\r
+ pngFile.Append("01_controlbar_icon_create.png");\r
+ break;\r
+\r
+ case MSG_ICON_DRAFT:\r
+ pngFile.Append("M01_icon_message_status_sms_sent_n.png");\r
+ break;\r
+\r
+ case MSG_ICON_SEND_MMS:\r
+ pngFile.Append("M01_btn_mms_message_send.png");\r
+ break;\r
+\r
+ case MSG_ICON_SEND_MMS_DIM:\r
+ pngFile.Append("M01_btn_mms_message_send_dim.png");\r
+ break;\r
+\r
+ case MSG_ICON_ARROW_EXPAND:\r
+ pngFile.Append("00_arrow_expand.png");\r
+ break;\r
+\r
+ case MSG_ICON_ARROW_EXPAND_PRESS:\r
+ pngFile.Append("00_arrow_expand_press.png");\r
+ break;\r
+\r
+ case MSG_ICON_ARROW_EXPAND_DIM:\r
+ pngFile.Append("00_arrow_expand_dim.png");\r
+ break;\r
+\r
+ case MSG_ICON_ATTACHEMENT:\r
+ pngFile.Append("attach_icon.png");\r
+ break;\r
+\r
+ case MSG_ICON_BUTTON_PANEL_BG:\r
+ pngFile.Append("00_popup_bottom_bg.9.png");\r
+ //pBitmap = Get9PatchBitmapIconN(pngFile, size);\r
+ break;\r
+\r
+ case MSG_ICON_SAVE_ATTACHMENT:\r
+ pngFile.Append("M01_controlbar_icon_attach.png");\r
+ break;\r
+\r
+ case MSG_ICON_SMIL_VOLUME:\r
+ pngFile.Append("M01_play_btn_volume_press.png");\r
+ break;\r
+\r
+ case MSG_ICON_SMIL_PLAY:\r
+ pngFile.Append("M01_play_btn_play_press.png");\r
+ break;\r
+\r
+ case MSG_ICON_SMIL_PAUSE:\r
+ pngFile.Append("M01_play_btn_pause_press.png");\r
+ break;\r
+\r
+ case MSG_ICON_SMIL_NEXT:\r
+ pngFile.Append("M01_play_btn_next_press.png");\r
+ break;\r
+\r
+ case MSG_ICON_SMIL_PREVIOUS:\r
+ pngFile.Append("M01_play_btn_previous_press.png");\r
+ break;\r
+\r
+ case MSG_ICON_MORE:\r
+ pngFile.Append("00_icon_more.png");\r
+ break;\r
+\r
+ case MSG_ICON_MORE_PRESSED:\r
+ pngFile.Append("00_icon_more_press.png");\r
+ break;\r
+\r
+ case MSG_ICON_MORE_DISABLED:\r
+ pngFile.Append("00_icon_more_dim.png");\r
+ break;\r
+\r
+ case MSG_ICON_RESEND:\r
+ pngFile.Append("M01_controlbar_icon_resend.png");\r
+ break;\r
+\r
+ case MSG_ICON_REPLY:\r
+ pngFile.Append("M01_controlbar_icon_reply.png");\r
+ break;\r
+\r
+ case MSG_ICON_PAGE_DELETE:\r
+ pngFile.Append("M01_btn_delete.png");\r
+ break;\r
+\r
+ case MSG_ICON_PAGE_DELETE_PRESS:\r
+ pngFile.Append("M01_btn_delete_press.png");\r
+ break;\r
+\r
+ case MSG_ICON_VIEW_CONTACT:\r
+ pngFile.Append("M01_contact_default_image.png");\r
+ break;\r
+\r
+ case MSG_ICON_SEARCH_INPUT_BG:\r
+ pngFile.Append("M01_search_input_field_bg.9.png");\r
+ break;\r
+\r
+ case MSG_ICON_PHOTO_DELETE:\r
+ pngFile.Append("M01_photo_btn_delete.png");\r
+ break;\r
+\r
+ case MSG_ICON_PHOTO_DELETE_PRESS:\r
+ pngFile.Append("M01_photo_btn_delete_press.png");\r
+ break;\r
+\r
+ default:\r
+ if (iconType >= MSG_ICON_PROGRESS_01 && iconType <= MSG_ICON_PROGRESS_30)\r
+ {\r
+ int fileindex = (iconType - MSG_ICON_PROGRESS_01) + 1;\r
+ pngFile.Format(256, IDS_WINSET_LIST_PROCESS, fileindex);\r
+ }\r
+ else\r
+ {\r
+ validIcon = false;\r
+ }\r
+ break;\r
+ }\r
+ if (!pBitmap && !pngFile.IsEmpty() && validIcon)\r
+ {\r
+ AppLogDebug("PNG: %S", pngFile.GetPointer());\r
+ pBitmap = pAppResource->GetBitmapN(pngFile);\r
+ if ((size.width > 0) && (size.height > 0))\r
+ {\r
+ pBitmap->Scale(size);\r
+ }\r
+ }\r
+\r
+ AppLogDebug("EXIT: r = %s", GetErrorMessage(GetLastResult()));\r
+ return pBitmap;\r
+}\r
+\r
+Bitmap*\r
+BitmapUtility::GetIcon(MessageIconType iconType, const Dimension& size)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ Bitmap* pBitmap = null;\r
+ String* pKey = new (std::nothrow) String();\r
+ if (pKey)\r
+ {\r
+ pKey->Append(iconType);\r
+ pBitmap = static_cast<Bitmap*>(__pBitmapList->GetValue(*pKey));\r
+ if (pBitmap == null)\r
+ {\r
+ pBitmap = GetIconN(iconType, size);\r
+ if (pBitmap != null)\r
+ {\r
+ __pBitmapList->Add(pKey, pBitmap);\r
+ }\r
+ // Ownership transfer;\r
+ pKey = null;\r
+ }\r
+ delete pKey;\r
+ }\r
+\r
+ AppLogDebug("EXIT: r = %s", GetErrorMessage(GetLastResult()));\r
+ return pBitmap;\r
+}\r
+\r
+Bitmap*\r
+BitmapUtility::Get9PatchBitmapIconN(const String& pngFile, const Dimension& size)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ Bitmap* pBitmap = Application::GetInstance()->GetAppResource()->GetBitmapN(pngFile, BITMAP_PIXEL_FORMAT_ARGB8888);\r
+ if (pBitmap)\r
+ {\r
+ int height = pBitmap->GetHeight();\r
+ if (size.height > 0)\r
+ {\r
+ height = size.height;\r
+ }\r
+ int width = pBitmap->GetWidth();\r
+ if (size.width > 0)\r
+ {\r
+ width = size.width;\r
+ }\r
+ Canvas* pCanvas = new (std::nothrow) Canvas();\r
+ if (pCanvas)\r
+ {\r
+ result r = pCanvas->Construct(Rectangle(0, 0, width, height));\r
+ if (!IsFailed(r))\r
+ {\r
+ r = pCanvas->DrawNinePatchedBitmap(Rectangle(0, 0, width, height), *pBitmap);\r
+ if (r != E_SUCCESS)\r
+ {\r
+ pCanvas->DrawBitmap(Rectangle(0, 0, width, height), *pBitmap);\r
+ }\r
+ pBitmap = new (std::nothrow) Bitmap();\r
+ r = pBitmap->Construct(*pCanvas, Rectangle(0, 0, width, height));\r
+ if (IsFailed(r))\r
+ {\r
+ delete pBitmap;\r
+ pBitmap = null;\r
+ }\r
+ }\r
+ delete pCanvas;\r
+ }\r
+\r
+ }\r
+ AppLogDebug("EXIT: r = %s", GetErrorMessage(GetLastResult()));\r
+ return pBitmap;\r
+}\r
+\r
+Bitmap*\r
+BitmapUtility::GetMergeIconN(const Bitmap& bitmap1, Bitmap& bitmap2)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ Bitmap* pBitmap = null;\r
+ Canvas* pCanvas = new (std::nothrow) Canvas();\r
+ if (pCanvas)\r
+ {\r
+ result r = pCanvas->Construct(Rectangle(0, 0, bitmap1.GetWidth(), bitmap1.GetHeight()));\r
+ if (!IsFailed(r))\r
+ {\r
+ r = pCanvas->DrawNinePatchedBitmap(Rectangle(0, 0, bitmap1.GetWidth(), bitmap1.GetHeight()), bitmap1);\r
+ if (r != E_SUCCESS)\r
+ {\r
+ pCanvas->DrawBitmap(Rectangle(0, 0, bitmap1.GetWidth(), bitmap1.GetHeight()), bitmap1);\r
+ }\r
+ r = pCanvas->DrawNinePatchedBitmap(Rectangle(0, 0, bitmap1.GetWidth(), bitmap1.GetHeight()), bitmap2);\r
+ if (r != E_SUCCESS)\r
+ {\r
+ pCanvas->DrawBitmap(Rectangle(0, 0, bitmap1.GetWidth(), bitmap1.GetHeight()), bitmap2);\r
+ }\r
+ pBitmap = new (std::nothrow) Bitmap();\r
+ r = pBitmap->Construct(*pCanvas, Rectangle(0, 0, bitmap1.GetWidth(), bitmap1.GetHeight()));\r
+ if (IsFailed(r))\r
+ {\r
+ delete pBitmap;\r
+ pBitmap = null;\r
+ }\r
+ }\r
+ delete pCanvas;\r
+ }\r
+\r
+ AppLogDebug("EXIT: r = %s", GetErrorMessage(GetLastResult()));\r
+ return pBitmap;\r
+}\r
+\r
+result\r
+BitmapUtility::Release(MessageIconType iconType)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ result r = E_SUCCESS;\r
+ String* pKey = new (std::nothrow) String();\r
+ if (pKey)\r
+ {\r
+ pKey->Append(iconType);\r
+ if (__pBitmapList->GetValue(*pKey))\r
+ {\r
+ r = __pBitmapList->Remove(*pKey, true);\r
+ }\r
+ delete pKey;\r
+ }\r
+\r
+ AppLogDebug("EXIT: r = %s", GetErrorMessage(r));\r
+ return r;\r
+}\r
+\r
+Bitmap*\r
+BitmapUtility::GetBubbleGroupBgBitmap(GroupBgBitmapType groupType,\r
+ const String& groupName, const Dimension& size)\r
+{\r
+ AppLogDebug("ENTER");\r
+ Bitmap* pBitmap = null;\r
+ Canvas* pCanvas = new (std::nothrow) Canvas();\r
+ if (pCanvas)\r
+ {\r
+ result r = pCanvas->Construct(Rectangle(0, 0, size.width, size.height));\r
+ if (!IsFailed(r))\r
+ {\r
+ // Draw rectangle\r
+ pCanvas->FillRectangle(COLOR_BUBBLE_BG, Rectangle(0, 0, size.width, size.height));\r
+ pCanvas->FillRectangle(Color::GetColor(COLOR_ID_GREY), Rectangle(0, size.height / 2 - 2, size.width / 5, 5));\r
+ // Create and draw text.\r
+ EnrichedText pEnrichedText;\r
+ pEnrichedText.Construct(Dimension(size.width, size.height));\r
+ pEnrichedText.SetVerticalAlignment(TEXT_ALIGNMENT_MIDDLE);\r
+ pEnrichedText.SetHorizontalAlignment(TEXT_ALIGNMENT_CENTER);\r
+ // Add new text element.\r
+ TextElement pTextElement;\r
+ pTextElement.Construct(groupName);\r
+ Font font;\r
+ font.Construct(FONT_STYLE_PLAIN, LIST_GROUP_TEXT_FONT_SIZE);\r
+ pTextElement.SetFont(font);\r
+ pTextElement.SetTextColor(COLOR_THREADLIST_DATE_TIME_SHORTMSG_ITEM);\r
+ pEnrichedText.Add(pTextElement);\r
+ pCanvas->DrawText(Point(0, 0), pEnrichedText);\r
+ // Draw rectangle\r
+ pCanvas->FillRectangle(Color::GetColor(COLOR_ID_GREY), Rectangle((size.width - size.width / 5), size.height / 2 - 2, size.width / 5, 5));\r
+ // Get bitmap\r
+ pBitmap = new (std::nothrow) Bitmap();\r
+ r = pBitmap->Construct(*pCanvas, Rectangle(0, 0, size.width, size.height));\r
+ if (IsFailed(r))\r
+ {\r
+ delete pBitmap;\r
+ pBitmap = null;\r
+ }\r
+ }\r
+ delete pCanvas;\r
+ }\r
+ AppLogDebug("EXIT: r = %s", GetErrorMessage(GetLastResult()));\r
+ return pBitmap;\r
+}\r
+\r
+Bitmap*\r
+BitmapUtility::GetIconByFileExtN(const String& fileName, const Dimension& size)\r
+{\r
+ AppLogDebug("ENTER");\r
+ Bitmap* pIconBitmap = null;\r
+ String strFileExtnTxt(FILE_EXTENSION_TXT);\r
+ String strFileExtnDoc(FILE_EXTENSION_DOC);\r
+ String strIconText(IDB_ICON_TEXT);\r
+ String strIconWord(IDB_ICON_WORD);\r
+ String strIconUnknown(IDB_ICON_UNKNOWN);\r
+\r
+ if (fileName.EndsWith(strFileExtnTxt))\r
+ {\r
+ pIconBitmap = AppResource::GetInstance()->GetBitmapN(strIconText);\r
+ }\r
+ else if (fileName.EndsWith(strFileExtnDoc))\r
+ {\r
+ pIconBitmap = AppResource::GetInstance()->GetBitmapN(strIconWord);\r
+ }\r
+ else\r
+ {\r
+ pIconBitmap = AppResource::GetInstance()->GetBitmapN(strIconUnknown);\r
+ }\r
+\r
+ if (pIconBitmap && size.height > 0 && size.width > 0)\r
+ {\r
+ pIconBitmap->Scale(size);\r
+ }\r
+ AppLogDebug("EXIT: r = %s", GetErrorMessage(GetLastResult()));\r
+ return pIconBitmap;\r
+\r
+}\r
--- /dev/null
+//\r
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.\r
+//\r
+// Licensed under the Flora License, Version 1.0 (the License);\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+// http://floralicense.org/license/\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an AS IS BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+//\r
+\r
+#include <msg.h>\r
+\r
+#include <FBaseErrorDefine.h>\r
+#include <FBaseResult.h>\r
+\r
+#include "MsgCbReceiveSettings.h"\r
+\r
+using namespace Tizen::Base;\r
+\r
+CbReceiveSettings::CbReceiveSettings(msg_struct_t pCbSetting)\r
+ : __pCbSetting(pCbSetting)\r
+{\r
+ //Empty implementation\r
+}\r
+\r
+CbReceiveSettings::~CbReceiveSettings(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+ if (__pCbSetting)\r
+ {\r
+ msg_release_struct(&__pCbSetting);\r
+ }\r
+ AppLogDebug("EXIT: r = %s ", GetErrorMessage(GetLastResult()));\r
+}\r
+\r
+msg_struct_t\r
+CbReceiveSettings::GetCbOpt(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+ AppLogDebug("EXIT: r = %s ", GetErrorMessage(GetLastResult()));\r
+ return __pCbSetting;\r
+}\r
+\r
+bool\r
+CbReceiveSettings::IsCbMessagesOn(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ bool cbMessagesOn(false);\r
+ msg_get_bool_value(__pCbSetting, MSG_CB_RECEIVE_BOOL, &cbMessagesOn);\r
+\r
+ AppLogDebug("EXIT: r = %s ", GetErrorMessage(GetLastResult()));\r
+ return cbMessagesOn;\r
+}\r
+\r
+result\r
+CbReceiveSettings::SetCbMessagesStatus(bool status)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ result r = E_SUCCESS;\r
+ msg_error_t err;\r
+ err = msg_set_bool_value(__pCbSetting, MSG_CB_RECEIVE_BOOL, status);\r
+ if (err != MSG_SUCCESS)\r
+ {\r
+ AppLogDebug("Cell broadcast messages error [%d]", (int) err);\r
+ }\r
+\r
+ r = GetLastResult();\r
+ AppLogDebug("EXIT: r = %s ", GetErrorMessage(r));\r
+ return r;\r
+}\r
--- /dev/null
+//\r
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.\r
+//\r
+// Licensed under the Flora License, Version 1.0 (the License);\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+// http://floralicense.org/license/\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an AS IS BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+//\r
+\r
+#include <msg.h>\r
+\r
+#include <FApp.h>\r
+#include <FIo.h>\r
+#include <FCntAudioMetadata.h>\r
+#include <FCntVideoMetadata.h>\r
+#include <FCntContentManagerUtil.h>\r
+#include <FSysEnvironment.h>\r
+#include <FTelSimInfo.h>\r
+#include <FUiClipboard.h>\r
+#include <FUiClipboardItem.h>\r
+#include <FUiCtrlMessageBox.h>\r
+#include <FUiScenes.h>\r
+#include <wctype.h>\r
+\r
+#include "MsgCommonUtil.h"\r
+#include "MsgMessageData.h"\r
+#include "MsgSmsSendSettings.h"\r
+#include "MsgTypes.h"\r
+\r
+using namespace Tizen::App;\r
+using namespace Tizen::Base;\r
+using namespace Tizen::Base::Collection;\r
+using namespace Tizen::Content;\r
+using namespace Tizen::Io;\r
+using namespace Tizen::Media;\r
+using namespace Tizen::System;\r
+using namespace Tizen::Telephony;\r
+using namespace Tizen::Ui;\r
+using namespace Tizen::Ui::Controls;\r
+using namespace Tizen::Ui::Scenes;\r
+\r
+bool\r
+CommonUtil::IsImageFile(const String& filePath)\r
+{\r
+ AppLogDebug("ENTER");\r
+ String imagePath(filePath);\r
+ imagePath.ToLowerCase();\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return (imagePath.EndsWith(L".jpg") ||\r
+ imagePath.EndsWith(L".jpeg") ||\r
+ imagePath.EndsWith(L".jpe") ||\r
+ imagePath.EndsWith(L".png") ||\r
+ imagePath.EndsWith(L".tif") ||\r
+ imagePath.EndsWith(L".pmd") ||\r
+ imagePath.EndsWith(L".bmp") ||\r
+ imagePath.EndsWith(L".wbmp") ||\r
+ imagePath.EndsWith(L".gif"));\r
+}\r
+\r
+bool\r
+CommonUtil::IsVideoFile(const String& filePath)\r
+{\r
+ AppLogDebug("ENTER");\r
+ String mediaFilePath(filePath);\r
+ mediaFilePath.ToLowerCase();\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return (mediaFilePath.EndsWith(L".3gp") ||\r
+ mediaFilePath.EndsWith(L".asf") ||\r
+ mediaFilePath.EndsWith(L".asx") ||\r
+ mediaFilePath.EndsWith(L".avi") ||\r
+ mediaFilePath.EndsWith(L".mp2") ||\r
+ mediaFilePath.EndsWith(L".mp4") ||\r
+ mediaFilePath.EndsWith(L".mpg") ||\r
+ mediaFilePath.EndsWith(L".mpeg") ||\r
+ mediaFilePath.EndsWith(L".rm") ||\r
+ mediaFilePath.EndsWith(L".rv") ||\r
+ mediaFilePath.EndsWith(L".sdp") ||\r
+ mediaFilePath.EndsWith(L".wmv"));\r
+}\r
+\r
+bool\r
+CommonUtil::IsAudioFile(const String& filePath)\r
+{\r
+ AppLogDebug("ENTER");\r
+ String audiFilePath(filePath);\r
+ audiFilePath.ToLowerCase();\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return (audiFilePath.EndsWith(L".aac") ||\r
+ audiFilePath.EndsWith(L".amr") ||\r
+ audiFilePath.EndsWith(L".imy") ||\r
+ audiFilePath.EndsWith(L".mid") ||\r
+ audiFilePath.EndsWith(L".midi") ||\r
+ audiFilePath.EndsWith(L".mmf") ||\r
+ audiFilePath.EndsWith(L".mp3") ||\r
+ audiFilePath.EndsWith(L".mpg") ||\r
+ audiFilePath.EndsWith(L".m4a") ||\r
+ audiFilePath.EndsWith(L".ra") ||\r
+ audiFilePath.EndsWith(L".rm") ||\r
+ audiFilePath.EndsWith(L".spm") ||\r
+ audiFilePath.EndsWith(L".wav") ||\r
+ audiFilePath.EndsWith(L".wma") ||\r
+ audiFilePath.EndsWith(L".xmf"));\r
+}\r
+\r
+char*\r
+CommonUtil::ConvertStringToPointerCharArrayN(const String& strToConvert)\r
+{\r
+ AppLogDebug("ENTER");\r
+ int length = strToConvert.GetLength() * 4 + 1; // For null terminated.\r
+ char* pChar = new (std::nothrow) char[length];\r
+ if (pChar)\r
+ {\r
+ const wchar_t* pWchar = strToConvert.GetPointer();\r
+ wcstombs(pChar, pWchar, (size_t) length);\r
+ }\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return pChar;\r
+}\r
+\r
+bool\r
+CommonUtil::CopyTextToClipBoard(const String& copyText)\r
+{\r
+ AppLogDebug("ENTER");\r
+ Clipboard* pClipboard = Clipboard::GetInstance();\r
+ if (pClipboard)\r
+ {\r
+ ClipboardItem item;\r
+ item.Construct(CLIPBOARD_DATA_TYPE_TEXT, copyText);\r
+ // Content of the item is copied to the clipboard\r
+ pClipboard->CopyItem(item);\r
+ }\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return true;\r
+}\r
+\r
+result\r
+CommonUtil::ForwardMessage(MessageData* pMsgData)\r
+{\r
+ AppLogDebug("ENTER");\r
+ result r = E_SUCCESS;\r
+\r
+ ArrayList* pArgList = new (std::nothrow) ArrayList();\r
+ // Set action type\r
+ pArgList->Add((new Integer(COMPOSER_LAUNCH_FORWORD_MESSAGE)));\r
+ pArgList->Add(pMsgData);\r
+ // Transfer ownership pArgList\r
+ SceneManager* pSceneManager = SceneManager::GetInstance();\r
+ r = pSceneManager->GoForward(ForwardSceneTransition(IDSCN_COMPOSER, SCENE_TRANSITION_ANIMATION_TYPE_NONE), pArgList);\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return r;\r
+}\r
+\r
+int\r
+CommonUtil::GetDuration(const String& mediaFileName)\r
+{\r
+ AppLogDebug("ENTER");\r
+ int duration(0);\r
+ result r = E_SUCCESS;\r
+ if (CommonUtil::IsAudioFile(mediaFileName))\r
+ {\r
+ AudioMetadata* pAudioMeta = ContentManagerUtil::GetAudioMetaN(mediaFileName);\r
+ String contentPath;\r
+ if (pAudioMeta == null)\r
+ {\r
+ contentPath = Environment::GetMediaPath() + File::GetFileName(mediaFileName);\r
+ r = File::Copy(mediaFileName, contentPath, true);\r
+ pAudioMeta = ContentManagerUtil::GetAudioMetaN(contentPath);\r
+ }\r
+ if (pAudioMeta)\r
+ {\r
+ duration = pAudioMeta->GetDuration();\r
+ delete pAudioMeta;\r
+ }\r
+ // Remove temp file\r
+ if (r != E_FILE_ALREADY_EXIST)\r
+ {\r
+ File::Remove(contentPath);\r
+ }\r
+ }\r
+ else if (CommonUtil::IsVideoFile(mediaFileName))\r
+ {\r
+ VideoMetadata* pVideoMeta = ContentManagerUtil::GetVideoMetaN(mediaFileName);\r
+ String contentPath;\r
+ if (pVideoMeta == null)\r
+ {\r
+ contentPath = Environment::GetMediaPath() + File::GetFileName(mediaFileName);\r
+ r = File::Copy(mediaFileName, contentPath, true);\r
+ pVideoMeta = ContentManagerUtil::GetVideoMetaN(contentPath);\r
+ }\r
+ if (pVideoMeta)\r
+ {\r
+ duration = pVideoMeta->GetDuration();\r
+ delete pVideoMeta;\r
+ }\r
+ // Remove temp file\r
+ if (r != E_FILE_ALREADY_EXIST)\r
+ {\r
+ File::Remove(contentPath);\r
+ }\r
+ }\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return (duration / 1000);\r
+}\r
+\r
+MediaType\r
+CommonUtil::GetMediaType(const String& fileName)\r
+{\r
+ AppLogDebug("ENTER");\r
+ if (CommonUtil::IsImageFile(fileName))\r
+ {\r
+ return MEDIA_TYPE_IMAGE;\r
+ }\r
+ if (CommonUtil::IsAudioFile(fileName))\r
+ {\r
+ return MEDIA_TYPE_AUDIO;\r
+ }\r
+ if (CommonUtil::IsVideoFile(fileName))\r
+ {\r
+ return MEDIA_TYPE_VIDEO;\r
+ }\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return MEDIA_TYPE_UNKNOWN;\r
+}\r
+\r
+result\r
+CommonUtil::ReplyMessage(MessageData* pMsgData)\r
+{\r
+ AppLogDebug("ENTER");\r
+ result r = E_SUCCESS;\r
+\r
+ ArrayList* pArgList = new (std::nothrow) ArrayList();\r
+ // Set action type\r
+ pArgList->Add((new (std::nothrow) Integer(COMPOSER_LAUNCH_REPLY_MESSAGE)));\r
+ r |= pArgList->Add(pMsgData);\r
+ // Transfer ownership pArgList\r
+ SceneManager* pSceneManager = SceneManager::GetInstance();\r
+ r |= pSceneManager->GoForward(ForwardSceneTransition(IDSCN_COMPOSER, SCENE_TRANSITION_ANIMATION_TYPE_NONE), pArgList);\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return r;\r
+}\r
+\r
+bool\r
+CommonUtil::IsValidPhoneNumber(const String& phoneNumber)\r
+{\r
+ AppLogDebug("ENTER");\r
+ bool validPhoneNumber(false);\r
+ if (phoneNumber.GetLength() > 2 && phoneNumber.GetLength() <= 20)\r
+ {\r
+ validPhoneNumber = true;\r
+ String strPlus(L"+");\r
+ int index(0);\r
+ wchar_t wChar;\r
+ phoneNumber.GetCharAt(index, wChar);\r
+ if (strPlus.CompareTo(String(wChar)) == 0)\r
+ {\r
+ index++;\r
+ }\r
+ while (index < phoneNumber.GetLength())\r
+ {\r
+ phoneNumber.GetCharAt(index, wChar);\r
+ if (!iswdigit(wChar) /*&& (*pPhoneNumber == '*') && *pPhoneNumber == '#'*/)\r
+ {\r
+ validPhoneNumber = false;\r
+ break;\r
+ }\r
+ ++index;\r
+ }\r
+ }\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return validPhoneNumber;\r
+}\r
+\r
+void\r
+CommonUtil::ShowInfoPopup(const String& info, const String& title)\r
+{\r
+ int modalResult;\r
+ MessageBox messageBox;\r
+ messageBox.Construct(title, info, MSGBOX_STYLE_NONE, 3000);\r
+ messageBox.ShowAndWait(modalResult);\r
+ return;\r
+}\r
+\r
+void\r
+CommonUtil::ShowErrorInfo(msg_error_t err)\r
+{\r
+ AppResource* pAppResource = Application::GetInstance()->GetAppResource();\r
+ if (pAppResource)\r
+ {\r
+ String strText;\r
+ switch (err)\r
+ {\r
+ case MSG_ERR_NO_SIM:\r
+ pAppResource->GetString(L"IDS_SLCD_POP_TEXT_SIM_CARD_ERROR", strText);\r
+ break;\r
+\r
+ case MSG_ERR_SERVER_NOT_READY:\r
+ pAppResource->GetString(L"IDS_COM_POP_SERVICE_UNAVAILABLE", strText);\r
+ break;\r
+\r
+ default:\r
+ pAppResource->GetString(L"IDS_COM_POP_UNKNOWN_ERROR_OCCURRED", strText);\r
+ break;\r
+ }\r
+ ShowInfoPopup(strText);\r
+ }\r
+ return;\r
+}\r
+\r
+bool\r
+CommonUtil::IsSimAvailable(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ bool simAvailable(false);\r
+\r
+ SimInfo* pSimInfo = new (std::nothrow) SimInfo();\r
+ result r = pSimInfo->Construct();\r
+ simAvailable = !(r == E_DEVICE_UNAVAILABLE);\r
+ if (r == E_SUCCESS)\r
+ {\r
+ simAvailable = pSimInfo->IsAvailable();\r
+ }\r
+ delete pSimInfo;\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return simAvailable;\r
+}\r
+\r
+CharCounterInfo\r
+CommonUtil::GetMessageCharCounterInfo(const String& messageText, const SmsSendSettings* pSmsSendSetting)\r
+{\r
+ AppLogDebug("ENTER");\r
+ CharCounterInfo charCountInfo;\r
+ //TODO: SLP API not working for all encoding type.\r
+ // const char* pMessageText = ConvertStringToPointerCharArrayN(messageText);\r
+ // msg_encode_type_t encodeType = MSG_ENCODE_GSM7BIT;\r
+ // if (pSmsSendSetting)\r
+ // {\r
+ // encodeType = pSmsSendSetting->GetEncodeMode();\r
+ // }\r
+ // int returnValue = msg_util_calculate_text_length(pMessageText, encodeType,\r
+ // &charCountInfo.__textSize, &charCountInfo.__segSize, &charCountInfo.__encodeType);\r
+ // AppLogDebug("Return value: %d", returnValue);\r
+ //\r
+ // delete[] pMessageText;\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return charCountInfo;\r
+}\r
--- /dev/null
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+#include "MsgBitmapUtility.h"
+#include "MsgDurationPopup.h"
+#include "MsgComposerForm.h"
+#include "MsgConversationPresentationModel.h"
+#include "MsgFontsettings.h"
+#include "MsgMessagesApp.h"
+#include "MsgMessageComposePanel.h"
+#include "MsgMessageData.h"
+#include "MsgMessagePresentationModel.h"
+#include "MsgRecipientPanel.h"
+#include "MsgSettingPresentationModel.h"
+#include "MsgSmsManager.h"
+#include "MsgThreadData.h"
+#include "MsgTypes.h"
+
+using namespace Tizen::App;
+using namespace Tizen::Base;
+using namespace Tizen::Base::Collection;
+using namespace Tizen::Base::Utility;
+using namespace Tizen::Graphics;
+using namespace Tizen::Ui;
+using namespace Tizen::Ui::Controls;
+using namespace Tizen::Ui::Scenes;
+
+ComposerForm::ComposerForm(void)
+ : __pRecipientPanel(null)
+ , __pMsgComposePanel(null)
+ , __pDraftMessageEntry(null)
+ , __pMessagePopup(null)
+ , __pTrayPanel(null)
+ , __pDurationPopup(null)
+ , __needToSetFocusRecipient(false)
+{
+ //Empty implementation
+}
+
+ComposerForm::~ComposerForm(void)
+{
+ AppLogDebug("ENTER");
+ if (__pDurationPopup)
+ {
+ delete __pDurationPopup;
+ }
+ if (__pDraftMessageEntry)
+ {
+ delete __pDraftMessageEntry;
+ }
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+}
+
+
+bool
+ComposerForm::Initialize(void)
+{
+ AppLogDebug("ENTER");
+
+ result r = Construct(L"IDL_COMPOSER_FORM");
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return (!IsFailed(r));
+}
+
+result
+ComposerForm::OnTerminating(void)
+{
+ AppLogDebug("ENTER");
+
+ result r = E_SUCCESS;
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return r;
+}
+
+void
+ComposerForm::OnIntializeHeader(Header& header)
+{
+ AppLogDebug("ENTER");
+ header.AddActionEventListener(*this);
+ header.SetStyle(HEADER_STYLE_TITLE);
+
+ String strText;
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_COM_POP_NEW_MESSAGE", strText);
+ header.SetTitleText(strText);
+
+ ButtonItem buttonRightItem;
+ buttonRightItem.Construct(BUTTON_ITEM_STYLE_TEXT, IDA_HEADER_BACK);
+ Bitmap* pBitMap = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_HEADER_BACK);
+ buttonRightItem.SetIcon(BUTTON_ITEM_STATUS_NORMAL, pBitMap);
+ pBitMap = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_HEADER_BACK_PRESSED);
+ buttonRightItem.SetIcon(BUTTON_ITEM_STATUS_PRESSED, pBitMap);
+ header.SetButton(BUTTON_POSITION_RIGHT, buttonRightItem);
+
+ ButtonItem btnLeft;
+ btnLeft.Construct(BUTTON_ITEM_STYLE_ICON, IDA_OPTION_TRAY_COMMAND);
+
+#ifndef _DISABLE_MMS_FEATURE_
+ pBitMap = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_MORE);
+ btnLeft.SetIcon(BUTTON_ITEM_STATUS_NORMAL, pBitMap);
+ pBitMap = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_MORE_PRESSED);
+ btnLeft.SetIcon(BUTTON_ITEM_STATUS_PRESSED, pBitMap);
+ header.SetButton(BUTTON_POSITION_LEFT, btnLeft);
+#else
+ pBitMap = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_MORE_DISABLED);
+ btnLeft.SetIcon(BUTTON_ITEM_STATUS_DISABLED,pBitMap);
+ //header.SetButton(BUTTON_POSITION_LEFT, btnLeft);
+ header.SetButtonEnabled(BUTTON_POSITION_LEFT,false);
+#endif
+}
+
+void
+ComposerForm::OnUserEventReceivedN(RequestId requestId, IList* pArgs)
+{
+ AppLogDebug("ENTER");
+ switch (requestId)
+ {
+ case REQUEST_DESTROY_DURATION_POPUP:
+ {
+ if (__pDurationPopup)
+ {
+ __pMsgComposePanel->SetDefaultPageDuration(__pDurationPopup->GetDuration());
+ String strFormat;
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGC_BUTTON2_DURATION_N_HPD_SECS", strFormat);
+ String strText;
+ strText.Format(strFormat.GetLength() * 2, strFormat.GetPointer(), __pMsgComposePanel->GetDefaultPageDuration());
+ Button* pDurationButton = static_cast<Button*>(__pTrayPanel->GetControl(L"IDC_BUTTON_DURATION"));
+ pDurationButton->SetText(strText);
+ pDurationButton->Invalidate(false);
+ delete __pDurationPopup;
+ __pDurationPopup = null;
+ }
+ }
+ break;
+
+ case REQUEST_ENABLE_DISABLE_SEND_BUTTON:
+ {
+ //TODO
+ if(__pMsgComposePanel && __pRecipientPanel)
+ {
+ if(__pMsgComposePanel->IsComposeFieldEmpty() ||__pRecipientPanel->IsEmptyRecipent())
+ {
+ __pMsgComposePanel->EnableSendButton(false);
+ }
+ else
+ {
+ __pMsgComposePanel->EnableSendButton(true);
+ }
+ }
+ }
+ break;
+
+ case REQUEST_MOVE_FOCUS_RECIPIENT:
+ {
+ __needToSetFocusRecipient = true;
+ }
+ break;
+
+ case REQUEST_UDATE_FOCUS:
+ {
+ if( __needToSetFocusRecipient )
+ {
+ RequestId requestId = REQUEST_SET_FOCUS_RECIPIENT;
+ __pRecipientPanel->SendUserEvent(requestId, null);
+ __needToSetFocusRecipient = false;
+ }
+ }
+ break;
+
+ default:
+ break;
+ }
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+}
+
+result
+ComposerForm::OnInitializing(void)
+{
+ AppLogDebug("ENTER");
+
+ result r = BaseForm::InitializeBase();
+ if (!IsFailed(r))
+ {
+ Rectangle rect = GetClientAreaBounds();
+ __pRecipientPanel = new (std::nothrow) RecipientPanel();
+ if (__pRecipientPanel)
+ {
+ __pRecipientPanel->Construct(Rectangle(0, 0, rect.width, H_MSG_COMPOSE_EDITOR + (MARGIN_28PX * 2)));
+ __pRecipientPanel->SetSizeChangeEventListener(*this);
+ __pRecipientPanel->SetKeypadEventListener(*this);
+ AddControl(*__pRecipientPanel);
+ __pRecipientPanel->EnableContactSearch(true);
+ }
+ __pMsgComposePanel = new (std::nothrow) MessageComposePanel();
+ if (__pMsgComposePanel)
+ {
+ __pMsgComposePanel->Construct(L"IDL_MSG_COMPOSE_PANEL");
+ __pMsgComposePanel->SetKeypadEventListener(*this);
+ __pMsgComposePanel->SetSizeChangeEventListener(*this);
+ __pMsgComposePanel->SetBounds(Rectangle(0, rect.height - PANEL_HEIGHT, rect.width, PANEL_HEIGHT));
+ if (__pRecipientPanel)
+ {
+ __pMsgComposePanel->SetMaximumSize(Dimension(__pMsgComposePanel->GetWidth(), rect.height - __pRecipientPanel->GetHeight()));
+ }
+ __pMsgComposePanel->SetBackgroundColor(COLOR_COMPOSE_PANEL_BG);
+ __pMsgComposePanel->SetComposeEventListener(*this);
+ AddControl(*__pMsgComposePanel);
+ __pMsgComposePanel->ShowDefaultUi();
+ }
+ // For volume key press
+ AddKeyEventListener(*this);
+ __pRecipientPanel->SetFocus();
+ }
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return r;
+}
+
+
+void
+ComposerForm::OnSceneActivatedN(const SceneId& previousSceneId,
+ const SceneId& currentSceneId, IList* pArgs)
+{
+ AppLogDebug("ENTER");
+
+ // Set editor text based on font settings
+ FontSettings* pFontSettings = SettingPresentationModel::GetInstance()->GetFontSettings();
+ int size = pFontSettings->GetMessageTextSize(pFontSettings->GetMessageFontType());
+ __pMsgComposePanel->SetTextSize(size);
+ __pRecipientPanel->SetTextSize(size);
+ if (pArgs)
+ {
+ Integer* launchType = (Integer*) pArgs->GetAt(0);
+ switch (launchType->ToInt())
+ {
+ case COMPOSER_LAUNCH_APP_CONTROL:
+ {
+ MessageComposeData* pComposedata = (MessageComposeData*) pArgs->GetAt(1);
+ if (pComposedata)
+ {
+ LoadComposeData(*pComposedata);
+ }
+ }
+ break;
+
+ case COMPOSER_LAUNCH_FORWORD_MESSAGE:
+ {
+ MessageData* pMessageData = (MessageData*) pArgs->GetAt(1);
+ __pMsgComposePanel->LoadMessageData(*pMessageData);
+ }
+ break;
+
+ case COMPOSER_LAUNCH_REPLY_MESSAGE:
+ {
+ MessageData* pMessageData = (MessageData*) pArgs->GetAt(1);
+ ArrayList* pAddressList = const_cast<ArrayList*>(pMessageData->GetAddressList());
+ __pRecipientPanel->SetRecipientList(pAddressList);
+ }
+ break;
+
+ case COMPOSER_LAUNCH_DRAFT_MESSAGE:
+ {
+ __pDraftMessageEntry = (MessageData*) pArgs->GetAt(1);
+ pArgs->RemoveAt(1);
+ LoadDraftMessage();
+ }
+ break;
+ }
+ // Release argument list
+ pArgs->RemoveAll(true);
+ delete pArgs;
+ }
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+ComposerForm::OnSceneDeactivated(const SceneId& currentSceneId,
+ const SceneId& nextSceneId)
+{
+ AppLogDebug("ENTER");
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+ComposerForm::OnSizeIncrease(const Control& control)
+{
+ AppLogDebug("ENTER");
+
+ Rectangle clientArea = GetClientAreaBounds();
+ int panelHeight = __pMsgComposePanel->GetDisplayHeight();
+ if (__pRecipientPanel->Equals(control))
+ {
+ //TODO:
+ }
+ else if (__pMsgComposePanel->Equals(control))
+ {
+ Point currentPosition = __pMsgComposePanel->GetPosition();
+ __pMsgComposePanel->SetBounds(Rectangle(currentPosition.x, clientArea.height - panelHeight,
+ __pMsgComposePanel->GetWidth(), panelHeight));
+ __pMsgComposePanel->SetShowState(true);
+ }
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+ComposerForm::OnSizeDecrease(const Control& control)
+{
+ AppLogDebug("ENTER");
+
+ Rectangle clientArea = GetClientAreaBounds();
+ if (__pRecipientPanel->Equals(control))
+ {
+ // TODO:
+ }
+ else if (__pMsgComposePanel->Equals(control))
+ {
+ Rectangle prePanelBounds = __pMsgComposePanel->GetBounds();
+ int panelHeight = __pMsgComposePanel->GetDisplayHeight();
+ __pMsgComposePanel->SetBounds(Rectangle(prePanelBounds.x, clientArea.height - panelHeight,
+ __pMsgComposePanel->GetWidth(), panelHeight));
+ __pMsgComposePanel->SetShowState(true);
+ }
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+ComposerForm::OnComposeStateChange(ComposeType type)
+{
+ AppLogDebug("ENTER");
+ bool mmsMode(type == COMPOSE_MMS);
+ if (__pTrayPanel)
+ {
+ Button* pPreviewButton = static_cast<Button*>(__pTrayPanel->GetControl(L"IDC_BUTTON_PREVIEW"));
+ pPreviewButton->SetEnabled(mmsMode);
+ pPreviewButton->Invalidate(false);
+ Button* pDurationButton = static_cast<Button*>(__pTrayPanel->GetControl(L"IDC_BUTTON_DURATION"));
+ pDurationButton->SetEnabled(mmsMode);
+ pDurationButton->Invalidate(false);
+ }
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+}
+
+void
+ComposerForm::OnSendButtonClick(void)
+{
+ AppLogDebug("ENTER");
+
+ // If entered text not yet converted to token, then check it can it be converted to token.
+ if (!__pRecipientPanel->CheckRecipentForToken(false))
+ {
+ SendUserEvent(REQUEST_ENABLE_DISABLE_SEND_BUTTON,null);
+ AppLogDebug("Invalid recipients");
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+ }
+ ArrayList* pRecipientList = __pRecipientPanel->GeRecipientNumberListN();
+ if (pRecipientList)
+ {
+ MessageComposeData* pComposeData = __pMsgComposePanel->GetMessageComposeDataN();
+ if (pComposeData)
+ {
+ MessagePresentationModel* pMsgPrModel = MessagePresentationModel::GetInstance();
+ int threadId(-1);
+ if (pMsgPrModel)
+ {
+ pMsgPrModel->SendMessage(*pComposeData, *pRecipientList, threadId);
+ }
+ delete pComposeData;
+ // If draft message send, remove draft entry
+ if (pMsgPrModel && __pDraftMessageEntry)
+ {
+ pMsgPrModel->Delete(__pDraftMessageEntry->GetEntryId(), REQUEST_DELETE_MESSAGE);
+ }
+ __pMsgComposePanel->HideKeypad();
+ MessagesApp* pMsgApp = (MessagesApp*) UiApp::GetInstance();
+ if (pMsgApp->IsAppRunningEmbededMode())
+ {
+ pMsgApp->ExitApp();
+ }
+ else
+ {
+ SceneManager* pSceneManager = SceneManager::GetInstance();
+ if (pMsgPrModel && (threadId > -1))
+ {
+ ArrayList* pArgList = new (std::nothrow) ArrayList();
+ ThreadData* pConvData = pMsgPrModel->GetThreadDataByIdN(threadId);
+ pArgList->Add(pConvData);
+ // transfer ownership pArgList
+ pSceneManager->GoForward(ForwardSceneTransition(IDSCN_CONVERSATION_LIST,
+ SCENE_TRANSITION_ANIMATION_TYPE_NONE, SCENE_HISTORY_OPTION_NO_HISTORY, SCENE_DESTROY_OPTION_DESTROY), pArgList);
+ }
+ else
+ {
+ // Back to thread list view.
+ pSceneManager->GoBackward(BackwardSceneTransition(IDSCN_THREAD_LIST,
+ SCENE_TRANSITION_ANIMATION_TYPE_NONE), null);
+ }
+ }
+ }
+ pRecipientList->RemoveAll(true);
+ delete pRecipientList;
+ }
+ else
+ {
+ RequestId requestId = REQUEST_SET_FOCUS_RECIPIENT;
+ __pRecipientPanel->SendUserEvent(requestId, null);
+ }
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void ComposerForm::CreateDraftMsgAndExit(MessageComposeData* pComposeData)
+{
+ ArrayList* pRecipientsNumberArray = __pRecipientPanel->GeRecipientNumberListN();
+ if (pRecipientsNumberArray)
+ {
+ MessagePresentationModel* pMessagePresentationModel = MessagePresentationModel::GetInstance();
+ if (pMessagePresentationModel)
+ {
+ pMessagePresentationModel->SaveMessage(*pComposeData, *pRecipientsNumberArray);
+ }
+ pRecipientsNumberArray->RemoveAll(true);
+ delete pRecipientsNumberArray;
+ }
+}
+
+void
+ComposerForm::OnActionPerformed(const Control& source, int actionId)
+{
+ AppLogDebug("ENTER");
+
+ switch (actionId)
+ {
+ case IDA_HEADER_BACK:
+ {
+ MessageComposeData* pComposeData = __pMsgComposePanel->GetMessageComposeDataN();
+ if (((!pComposeData) && (__pRecipientPanel->IsTextForTokenExist() || __pRecipientPanel->GetRecipientCount() > 0)) ||
+ ((pComposeData) && (__pRecipientPanel->IsTextForTokenExist() || __pRecipientPanel->GetRecipientCount() <= 0)))
+ {
+ __pRecipientPanel->EnableValidationOnFocusLost(false);
+ if(__pRecipientPanel->IsTextForTokenExist() && __pRecipientPanel->CheckRecipentForToken())
+ {
+// ArrayList* pRecipientsNumberArray = __pRecipientPanel->GeRecipientNumberListN();
+// if (pRecipientsNumberArray)
+// {
+// MessagePresentationModel* pMessagePresentationModel = MessagePresentationModel::GetInstance();
+// if (pMessagePresentationModel)
+// {
+// pMessagePresentationModel->SaveMessage(*pComposeData, *pRecipientsNumberArray);
+// }
+// pRecipientsNumberArray->RemoveAll(true);
+// delete pRecipientsNumberArray;
+// }
+ if(pComposeData)
+ {
+ CreateDraftMsgAndExit(pComposeData);
+ }
+ else
+ {
+ String warningMessage;
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGC_POP_DISCARD_CURRENT_MESSAGE_Q", warningMessage);
+ ShowMessagePopup(warningMessage, IDA_DISCARD_MESSAGE_OK, IDA_DISCARD_MESSAGE_CANCEL);
+ break;
+ }
+ MessagesApp* pMsgApp = (MessagesApp*) UiApp::GetInstance();
+ if (pMsgApp->IsAppRunningEmbededMode())
+ {
+ delete pComposeData;
+ pMsgApp->ExitApp(APP_CTRL_RESULT_CANCELED);
+ break;
+ }
+ else
+ {
+ SceneManager* pSceneManager = SceneManager::GetInstance();
+ pSceneManager->GoBackward(BackwardSceneTransition());
+ }
+ }
+ else if(__pRecipientPanel->GetRecipientCount() > 0)
+ {
+// ArrayList* pRecipientsNumberArray = __pRecipientPanel->GeRecipientNumberListN();
+// if (pRecipientsNumberArray)
+// {
+// MessagePresentationModel* pMessagePresentationModel = MessagePresentationModel::GetInstance();
+// if (pMessagePresentationModel)
+// {
+// pMessagePresentationModel->SaveMessage(*pComposeData, *pRecipientsNumberArray);
+// }
+// pRecipientsNumberArray->RemoveAll(true);
+// delete pRecipientsNumberArray;
+// }
+ if(pComposeData)
+ {
+ CreateDraftMsgAndExit(pComposeData);
+ }
+ else
+ {
+ String warningMessage;
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGC_POP_DISCARD_CURRENT_MESSAGE_Q", warningMessage);
+ ShowMessagePopup(warningMessage, IDA_DISCARD_MESSAGE_OK, IDA_DISCARD_MESSAGE_CANCEL);
+ break;
+ }
+ MessagesApp* pMsgApp = (MessagesApp*) UiApp::GetInstance();
+ if (pMsgApp->IsAppRunningEmbededMode())
+ {
+ delete pComposeData;
+ pMsgApp->ExitApp(APP_CTRL_RESULT_CANCELED);
+ break;
+ }
+ else
+ {
+ SceneManager* pSceneManager = SceneManager::GetInstance();
+ pSceneManager->GoBackward(BackwardSceneTransition());
+ }
+ }
+ else
+ {
+ String warningMessage;
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGC_POP_DISCARD_CURRENT_MESSAGE_Q", warningMessage);
+ ShowMessagePopup(warningMessage, IDA_DISCARD_MESSAGE_OK, IDA_DISCARD_MESSAGE_CANCEL);
+ }
+ }
+ else
+ {
+ __pMsgComposePanel->HideKeypad();
+ __pRecipientPanel->HideKeypad();
+ if (pComposeData)
+ {
+ // Save message to draft
+ ArrayList* pRecipientsNumberArray = __pRecipientPanel->GeRecipientNumberListN();
+ if (pRecipientsNumberArray)
+ {
+ MessagePresentationModel* pMessagePresentationModel = MessagePresentationModel::GetInstance();
+ if (pMessagePresentationModel)
+ {
+ pMessagePresentationModel->SaveMessage(*pComposeData, *pRecipientsNumberArray);
+ }
+ pRecipientsNumberArray->RemoveAll(true);
+ delete pRecipientsNumberArray;
+ }
+ }
+ // Close App.
+ MessagesApp* pMsgApp = (MessagesApp*) UiApp::GetInstance();
+ if (pMsgApp->IsAppRunningEmbededMode())
+ {
+ delete pComposeData;
+ pMsgApp->ExitApp(APP_CTRL_RESULT_CANCELED);
+ break;
+ }
+ else
+ {
+ SceneManager* pSceneManager = SceneManager::GetInstance();
+ pSceneManager->GoBackward(BackwardSceneTransition());
+ }
+ }
+ delete pComposeData;
+ }
+ break;
+
+ case IDA_DISCARD_MESSAGE_OK:
+ {
+ __pMsgComposePanel->HideKeypad();
+ __pRecipientPanel->HideKeypad();
+ DestroyMessagePopup();
+ // remove draft entry
+ if (__pDraftMessageEntry)
+ {
+ ConversationPresentationModel* pConvPrModel = ConversationPresentationModel::GetInstance();
+ if (pConvPrModel)
+ {
+ pConvPrModel->Delete(__pDraftMessageEntry->GetEntryId(), REQUEST_DELETE_MESSAGE);
+ }
+ }
+ MessagesApp* pMsgApp = (MessagesApp*) UiApp::GetInstance();
+ if (pMsgApp->IsAppRunningEmbededMode())
+ {
+ pMsgApp->ExitApp();
+ }
+ else
+ {
+ SceneManager* pSceneManager = SceneManager::GetInstance();
+ //pSceneManager->GoBackward(BackwardSceneTransition(SCENE_TRANSITION_ANIMATION_TYPE_NONE), null);
+ pSceneManager->GoBackward(BackwardSceneTransition(SCENE_TRANSITION_ANIMATION_TYPE_NONE), null);
+ }
+ }
+ break;
+
+ case IDA_DISCARD_MESSAGE_CANCEL:
+ {
+ __pMsgComposePanel->ShowKeypad();
+ DestroyMessagePopup();
+ if(__pRecipientPanel->GetRecipientCount() > 0)
+ {
+ __pMsgComposePanel->SetFocusToEditor();
+ }
+ else
+ {
+ __pRecipientPanel->SetFocus();
+ }
+ }
+ break;
+
+ case IDA_OPTION_TRAY_COMMAND:
+ {
+#ifndef _DISABLE_MMS_FEATURE_
+ Rectangle rect = GetClientAreaBounds();
+ if (!__pTrayPanel)
+ {
+ //Creates Option Tray Panel
+ __pTrayPanel = new (std::nothrow) Panel();
+ if (__pTrayPanel)
+ {
+ __pTrayPanel->Construct(L"IDL_COMPOSER_OPTION_TRAY_PANEL");
+ __pTrayPanel->SetPosition(0, 0);
+ __pTrayPanel->SetBackgroundColor(COLOR_LIST_DIALOGUE_GROUP_TITLE);
+
+ Button* pPreviewButton = static_cast<Button*>(__pTrayPanel->GetControl(L"IDC_BUTTON_PREVIEW"));
+ pPreviewButton->AddActionEventListener(*this);
+ pPreviewButton->SetActionId(IDA_PREVIEW);
+ bool mmsMode(__pMsgComposePanel->IsMmsMode());
+ pPreviewButton->SetEnabled(mmsMode);
+ Button* pDurationButton = static_cast<Button*>(__pTrayPanel->GetControl(L"IDC_BUTTON_DURATION"));
+ pDurationButton->AddActionEventListener(*this);
+ pDurationButton->SetActionId(IDA_PAGE_DURATION);
+ String strFormat;
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGC_BUTTON2_DURATION_N_HPD_SECS", strFormat);
+ String strText;
+ strText.Format(strFormat.GetLength() * 2, strFormat.GetPointer(), __pMsgComposePanel->GetDefaultPageDuration());
+ pDurationButton->SetText(strText);
+ pDurationButton->SetEnabled(mmsMode);
+ __pRecipientPanel->SetBounds(Rectangle(0, __pTrayPanel->GetHeight(), __pRecipientPanel->GetWidth(),
+ __pRecipientPanel->GetHeight()));
+ AddControl(*__pTrayPanel);
+ }
+ }
+ else
+ {
+ if (__pTrayPanel->GetShowState())
+ {
+ __pRecipientPanel->SetBounds(Rectangle(0, 0, __pRecipientPanel->GetWidth(), __pRecipientPanel->GetHeight()));
+ __pTrayPanel->SetShowState(false);
+ }
+ else
+ {
+ __pRecipientPanel->SetBounds(Rectangle(0, __pTrayPanel->GetHeight(), __pRecipientPanel->GetWidth(), __pRecipientPanel->GetHeight()));
+ __pTrayPanel->SetShowState(true);
+ }
+ }
+#endif
+ }
+ break;
+
+ case IDA_PREVIEW:
+ {
+ // Save to draft
+ __pMsgComposePanel->HideKeypad(); // To avoid control overlapping
+ // Save to draft
+ MessageComposeData* pComposeData = __pMsgComposePanel->GetMessageComposeDataN();
+ if (pComposeData)
+ {
+ //Priview MMS
+ ArrayList* pArgList = new (std::nothrow) ArrayList();
+ pArgList->Add((new (std::nothrow) Integer(MMS_FORM_PREVIEW)));
+ MessageData* pMessageData = new (std::nothrow) MessageData();
+ pMessageData->Construct(*pComposeData);
+ pArgList->Add(pMessageData);
+ SceneManager* pSceneManager = SceneManager::GetInstance();
+ pSceneManager->GoForward(ForwardSceneTransition(IDSCN_MMS_DETAIL, SCENE_TRANSITION_ANIMATION_TYPE_NONE), pArgList);
+ delete pComposeData;
+ }
+ }
+ break;
+
+ case IDA_PAGE_DURATION:
+ {
+ if (__pDurationPopup)
+ {
+ delete __pDurationPopup;
+ }
+ __pDurationPopup = new (std::nothrow) DurationPopup(*this);
+ __pDurationPopup->Construct(L"IDL_DURATION_POPUP");
+ __pDurationPopup->SetDuration(__pMsgComposePanel->GetDefaultPageDuration());
+ __pDurationPopup->Show();
+ __pDurationPopup->SetFocusToEditor();
+ }
+ break;
+
+ default:
+ break;
+ }
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+ComposerForm::OnKeypadOpened(Control& source)
+{
+ AppLogDebug("ENTER");
+
+ Rectangle clientArea = GetClientAreaBounds();
+ if (__pMsgComposePanel != null && __pRecipientPanel)
+ {
+ __pMsgComposePanel->SetMaximumSize(Dimension(__pMsgComposePanel->GetWidth(), clientArea.height - __pRecipientPanel->GetHeight() + 1));
+ Rectangle cpmposePanelBounds = __pMsgComposePanel->GetBounds();
+ __pMsgComposePanel->SetBounds(Rectangle(cpmposePanelBounds.x, clientArea.height - __pMsgComposePanel->GetDisplayHeight(), clientArea.width, __pMsgComposePanel->GetDisplayHeight()));
+ }
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+ComposerForm::OnKeypadClosed(Control& source)
+{
+ AppLogDebug("ENTER");
+
+ Rectangle clientArea = GetClientAreaBounds();
+ if (__pMsgComposePanel != null)
+ {
+ __pMsgComposePanel->SetMaximumSize(Dimension(__pMsgComposePanel->GetWidth(), clientArea.height - __pRecipientPanel->GetHeight() + 1));
+ Rectangle prePanelBounds = __pMsgComposePanel->GetBounds();
+ Clipboard* pClibBoard = Clipboard::GetInstance();
+ if (pClibBoard && pClibBoard->IsPopupVisible())
+ {
+ __pMsgComposePanel->SetBounds(Rectangle(0, prePanelBounds.y - PANEL_HEIGHT + 35, clientArea.width, __pMsgComposePanel->GetDisplayHeight()));
+ }
+ else
+ {
+ if(__pMsgComposePanel->GetDisplayHeight() > __pMsgComposePanel->GetMaximumSize().height)
+ {
+ __pMsgComposePanel->SetBounds(Rectangle(0, clientArea.height - __pMsgComposePanel->GetDisplayHeight(), clientArea.width, __pMsgComposePanel->GetMaximumSize().height));
+ }
+ else
+ {
+ __pMsgComposePanel->SetBounds(Rectangle(0, clientArea.height - __pMsgComposePanel->GetDisplayHeight(), clientArea.width, __pMsgComposePanel->GetDisplayHeight()));
+ }
+ }
+ }
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+ComposerForm::OnKeypadBoundsChanged(Control& source)
+{
+ AppLogDebug("ENTER");
+
+ Rectangle clientArea = GetClientAreaBounds();
+ if (__pMsgComposePanel != null)
+ {
+ __pMsgComposePanel->SetMaximumSize(Dimension(__pMsgComposePanel->GetWidth(), clientArea.height - __pRecipientPanel->GetHeight() + 1));
+ Rectangle prePanelBounds = __pMsgComposePanel->GetBounds();
+ __pMsgComposePanel->SetPosition(prePanelBounds.x, clientArea.height - prePanelBounds.height);
+ }
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+ComposerForm::OnKeyReleased(const Control& source, KeyCode keyCode)
+{
+ AppLogDebug("ENTER");
+
+ switch (keyCode)
+ {
+ case KEY_SIDE_UP:
+ case KEY_SIDE_DOWN:
+ {
+ SettingPresentationModel* pSettingPrModel = SettingPresentationModel::GetInstance();
+ if (pSettingPrModel->IsVolumeKeyOn())
+ {
+ if (keyCode == KEY_SIDE_UP)
+ {
+ FontSettings* pFontSettings = SettingPresentationModel::GetInstance()->GetFontSettings();
+ int fontType = (int) pFontSettings->GetMessageFontType();
+ if (fontType < SETTING_HUGE_FONT)
+ {
+ fontType++;
+ pFontSettings->SetMessageFonttype((SettingFontType) fontType);
+ }
+ int size = pFontSettings->GetMessageTextSize((SettingFontType) fontType);
+ __pMsgComposePanel->SetTextSize(size);
+ __pRecipientPanel->SetTextSize(size);
+ }
+ else if (keyCode == KEY_SIDE_DOWN)
+ {
+ FontSettings* pFontSettings = SettingPresentationModel::GetInstance()->GetFontSettings();
+ int fontType = pFontSettings->GetMessageFontType();
+ if (fontType > SETTING_TINY_FONT)
+ {
+ fontType--;
+ pFontSettings->SetMessageFonttype((SettingFontType) fontType);
+ }
+ int size = pFontSettings->GetMessageTextSize((SettingFontType) fontType);
+ __pMsgComposePanel->SetTextSize(size);
+ __pRecipientPanel->SetTextSize(size);
+ }
+ }
+ }
+ break;
+
+ default:
+ break;
+ }
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+
+void
+ComposerForm::LoadComposeData(const MessageComposeData& composeData)
+{
+ AppLogDebug("ENTER");
+
+ const ArrayList* pAddressList = composeData.GetRecipientList();
+ __pRecipientPanel->SetRecipientList(pAddressList);
+ // Set Body text.
+ __pMsgComposePanel->LoadComposeData(composeData);
+ // Set cursor based available data when loading form appcontrol
+ bool recipientExist(pAddressList && pAddressList->GetCount()>0);
+ if( recipientExist )
+ {
+ __pMsgComposePanel->SetFocusToEditor();
+ }
+ else
+ {
+ __pRecipientPanel->SetFocus();
+ }
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+ComposerForm::LoadDraftMessage(void)
+{
+ AppLogDebug("ENTER");
+
+ if (__pDraftMessageEntry)
+ {
+ // Set recipients list.
+ ArrayList* pAddressList = const_cast<ArrayList*>(__pDraftMessageEntry->GetAddressList());
+ __pRecipientPanel->SetRecipientList(pAddressList);
+ // Set Body text.
+ __pMsgComposePanel->LoadMessageData(*__pDraftMessageEntry);
+ }
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+ComposerForm::ShowMessagePopup(const String& message, int leftActionId,
+ int rightActionId)
+{
+ AppLogDebug("ENTER");
+
+ if (__pMessagePopup == null)
+ {
+ __pMessagePopup = new (std::nothrow) Popup();
+ __pMessagePopup->Construct(L"IDL_BLOCK_POPUP");
+ }
+ Button* pButtonOk = static_cast<Button*>(__pMessagePopup->GetControl(L"IDC_BUTTON_OK"));
+ pButtonOk->SetActionId(leftActionId);
+ pButtonOk->AddActionEventListener(*this);
+ Button* pButtonCancel = static_cast<Button*>(__pMessagePopup->GetControl(L"IDC_BUTTON_CANCEL"));
+ pButtonCancel->SetActionId(rightActionId);
+ pButtonCancel->AddActionEventListener(*this);
+ Label* pLabelNumber = static_cast<Label*>(__pMessagePopup->GetControl(L"IDC_BLOCKNUMBER_LABEL"));
+ pLabelNumber->SetText(message);
+ __pMessagePopup->Show();
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+ComposerForm::DestroyMessagePopup(void)
+{
+ AppLogDebug("ENTER");
+
+ __pRecipientPanel->EnableValidationOnFocusLost(true);
+ if (__pMessagePopup)
+ {
+ delete __pMessagePopup;
+ __pMessagePopup = null;
+ }
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
--- /dev/null
+//\r
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.\r
+//\r
+// Licensed under the Flora License, Version 1.0 (the License);\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+// http://floralicense.org/license/\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an AS IS BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+//\r
+\r
+#include "MsgCompressPopup.h"\r
+#include "MsgBitmapUtility.h"\r
+\r
+using namespace Tizen::Graphics;\r
+using namespace Tizen::Ui;\r
+using namespace Tizen::Ui::Controls;\r
+using namespace Tizen::Base::Runtime;\r
+\r
+CompressPopup::CompressPopup(void)\r
+ : __iconIndex(10)\r
+ , __pButton(null)\r
+ , __pTimer(null)\r
+{\r
+\r
+}\r
+\r
+CompressPopup::~CompressPopup(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+ if (__pTimer)\r
+ {\r
+ __pTimer->Cancel();\r
+ delete __pTimer;\r
+ }\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
+\r
+result\r
+CompressPopup::Construct(bool hideSubject)\r
+{\r
+ AppLogDebug("ENTER");\r
+ result r = Popup::Construct(L"IDL_IMAGE_COMPRESS_POPUP");\r
+ if (!IsFailed(r))\r
+ {\r
+ __pButton = static_cast<Button*>(GetControl(L"IDC_BUTTON_PROGRESS"));\r
+ Bitmap* pBitMap = BitmapUtility::GetInstance()->GetIcon((MessageIconType) __iconIndex);\r
+ __pButton->SetNormalBackgroundBitmap(*pBitMap);\r
+ if (!__pTimer)\r
+ {\r
+ __pTimer = new (std::nothrow) Timer();\r
+ __pTimer->Construct(*this);\r
+ __pTimer->StartAsRepeatable(100);\r
+ }\r
+\r
+ }\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return r;\r
+}\r
+\r
+result\r
+CompressPopup::OnDraw(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+//\r
+ result r = E_SUCCESS;\r
+// Canvas* pCanvas = GetCanvasN();\r
+// if (__pBottomBg)\r
+// {\r
+// pCanvas->DrawNinePatchedBitmap(Rectangle(MARGIN_10PX,\r
+// GetHeight() - (H_POPUP_BOTTOM_96PX + MARGIN_10PX),\r
+// GetWidth() - MARGIN_10PX * 2, H_POPUP_BOTTOM_96PX), *__pBottomBg);\r
+// }\r
+// delete pCanvas;\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return r;\r
+}\r
+\r
+void\r
+CompressPopup::OnTimerExpired(Timer& timer)\r
+{\r
+ AppLogDebug("ENTER");\r
+ if (__iconIndex < 39)\r
+ {\r
+ __iconIndex++;\r
+ }\r
+ else\r
+ {\r
+ __iconIndex = 10;\r
+ }\r
+ Bitmap* pBitMap = BitmapUtility::GetInstance()->GetIcon((MessageIconType) __iconIndex);\r
+ __pButton->SetNormalBackgroundBitmap(*pBitMap);\r
+ __pButton->RequestRedraw(true);\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
--- /dev/null
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+#include <FApp.h>
+
+#include "MsgCommonUtil.h"
+#include "MsgContactList.h"
+#include "MsgContactPopup.h"
+#include "MsgContactUtility.h"
+#include "MsgIDeleteEventListener.h"
+#include "MsgSettingPresentationModel.h"
+#include "MsgTypes.h"
+
+using namespace Tizen::App;
+using namespace Tizen::Base;
+using namespace Tizen::Base::Collection;
+using namespace Tizen::Graphics;
+using namespace Tizen::Ui;
+using namespace Tizen::Ui::Controls;
+
+ContactList::ContactList(void)
+:__pContactList(null)
+, __pContactPopup(null)
+, __pBlockConfirmPopup(null)
+{
+ //Empty Implementation
+}
+
+ContactList::~ContactList(void)
+{
+ AppLogDebug("ENTER");
+
+ if(__pContactPopup)
+ {
+ delete __pContactPopup;
+ }
+ if(__pBlockConfirmPopup)
+ {
+ delete __pBlockConfirmPopup;
+ }
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+}
+
+result
+ContactList::Construct(ArrayList* pPhoneNumberList)
+{
+ AppLogDebug("ENTER");
+
+ result r = E_SUCCESS;
+ __pContactList = pPhoneNumberList;
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return r;
+}
+
+void
+ContactList::OnListViewItemStateChanged(ListView& listView, int index, int elementId,
+ ListItemStatus status)
+{
+ AppLogDebug("ENTER");
+
+ ContactDetails* contactdetails = static_cast<ContactDetails*>(__pContactList->GetAt(index));
+ __titleName = contactdetails->contactName;
+ __contactNumber = contactdetails->contactNumber;
+ ContactListPopup();
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+ContactList::OnListViewItemSwept(ListView& listView, int index,
+ SweepDirection direction)
+{
+ AppLogDebug("ENTER");
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+ContactList::OnListViewContextItemStateChanged(ListView& listView, int index, int elementId,
+ ListContextItemStatus state)
+{
+ AppLogDebug("ENTER");
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+ContactList::OnListViewItemLongPressed(ListView& listView, int index, int elementId,
+ bool& invokeListViewItemCallback)
+{
+ AppLogDebug("ENTER");
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+int
+ContactList::GetItemCount(void)
+{
+ AppLogDebug("ENTER");
+
+ int count(0);
+ // In case of single recipient, it will never be invoked.
+ if(__pContactList && __pContactList->GetCount() > 1)
+ {
+ count = __pContactList->GetCount();
+ }
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return count;
+}
+
+ListItemBase*
+ContactList::CreateItem(int index, int itemWidth)
+{
+ AppLogDebug("ENTER");
+
+ CustomItem* pItem = new (std::nothrow) CustomItem();
+ pItem->Construct(Dimension(itemWidth, H_LIST_ITEM_128PX), LIST_ANNEX_STYLE_NORMAL);
+ ContactDetails* pContactDetails = static_cast<ContactDetails*>(__pContactList->GetAt(index));
+ if(pContactDetails)
+ {
+ pItem->AddElement(Rectangle(MARGIN_16PX,0, itemWidth, H_TITLE_LINE), IDC_CONTACT_NAME_LIST, pContactDetails->contactName, THREAD_LIST_MAIN_TEXT_FONT_SIZE,
+ Color::GetColor(COLOR_ID_BLACK),Color::GetColor(COLOR_ID_BLACK),Color::GetColor(COLOR_ID_BLACK));
+ pItem->AddElement(Rectangle(MARGIN_16PX,LIST_ITEM_SUBITEM, itemWidth, H_SUB_TITLE), IDC_CONTACT_NUMBER_LIST,pContactDetails->contactNumber, THREAD_LIST_SUB_TEXT_FONT_SIZE,
+ COLOR_THREADLIST_DATE_TIME_SHORTMSG_ITEM, COLOR_THREADLIST_DATE_TIME_SHORTMSG_ITEM, COLOR_THREADLIST_DATE_TIME_SHORTMSG_ITEM);
+ }
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return pItem;
+}
+
+bool
+ContactList::DeleteItem(int index, ListItemBase* pItem, int itemWidth)
+{
+ AppLogDebug("ENTER");
+
+ if(pItem)
+ {
+ delete pItem;
+ pItem = null;
+ }
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return true;
+}
+
+void
+ContactList::ContactListPopup(void)
+{
+ AppLogDebug("ENTER");
+ // Release memory if exist
+ if(__pContactPopup)
+ {
+ delete __pContactPopup;
+ __pContactPopup = null;
+ }
+ __pContactPopup = new (std::nothrow) ContactPopup(*this);
+ __pContactPopup->Construct(__titleName,__contactNumber);
+ __pContactPopup->Show();
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+
+}
+
+void
+ContactList::OnPopupListItemSelected(const Control& popup, int selectedItem, const Object* pPopupListItem)
+{
+ AppLogDebug("ENTER");
+
+ if(!pPopupListItem)
+ {
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+ }
+ const PopupListItem* pPopupSelectItem = (PopupListItem*)pPopupListItem;
+ switch(pPopupSelectItem->GetActionId())
+ {
+ case IDA_CONVERSATION_FORM_VOICE_CALL:
+ {
+ if( CommonUtil::IsSimAvailable())
+ {
+ ContactUtility::VoiceCall(__contactNumber);
+ }
+ else
+ {
+ // Show error message.
+ String msgText;
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_SLCD_POP_TEXT_SIM_CARD_ERROR", msgText);
+ CommonUtil::ShowInfoPopup(msgText);
+ }
+ }
+ break;
+
+ case IDA_CONVERSATION_FORM_VIEW_CONTACT:
+ ContactUtility::ViewContact(__contactNumber);
+ break;
+
+ case IDA_CONVERSATION_FORM_ADD_CONTACT:
+ ContactUtility::AddContact(__contactNumber);
+ break;
+
+ case IDA_CONVERSATION_FORM_BLOCK:
+ BlockPopup();
+ break;
+
+ case IDA_CONVERSATION_FORM_UNBLOCK:
+ UnBlockPhoneNumber();
+ break;
+ default:
+ break;
+
+ }
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+ContactList::OnPopupClose(Object* pObject )
+{
+ if(__pContactPopup && __pContactPopup->Equals(*pObject))
+ {
+ delete __pContactPopup;
+ __pContactPopup = null;
+ }
+
+ if(__pBlockConfirmPopup && __pBlockConfirmPopup->Equals(*pObject))
+ {
+ delete __pBlockConfirmPopup;
+ __pBlockConfirmPopup = null;
+ }
+}
+
+
+void
+ContactList::BlockPopup(void)
+{
+ AppLogDebug("ENTER");
+
+ String number;
+ String strText;
+ __pBlockConfirmPopup = new (std::nothrow) Popup();
+ __pBlockConfirmPopup->Construct(L"IDL_BLOCK_POPUP");
+ Button* pButtonOk = static_cast<Button*>(__pBlockConfirmPopup->GetControl(L"IDC_BUTTON_OK"));
+ pButtonOk->SetActionId(IDA_PHONENUMBER_BLOCK_OK);
+ pButtonOk->AddActionEventListener(*this);
+ Button* pButtonCancel = static_cast<Button*>(__pBlockConfirmPopup->GetControl(L"IDC_BUTTON_CANCEL"));
+ pButtonCancel->SetActionId(IDA_PHONENUMBER_BLOCK_CANCEL);
+ pButtonCancel->AddActionEventListener(*this);
+ Label* pLabelNumber = static_cast<Label*>(__pBlockConfirmPopup->GetControl(L"IDC_BLOCKNUMBER_LABEL"));
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_POP_BLOCK_PS_Q", strText);
+ strText.Replace(L"%s", __contactNumber);
+ number.Append(strText);
+ pLabelNumber->SetText(number);
+
+ __pBlockConfirmPopup->Show();
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+ContactList::OnActionPerformed(const Control& source, int actionId)
+{
+ AppLogDebug("ENTER");
+
+ switch(actionId)
+ {
+ case IDA_PHONENUMBER_BLOCK_OK:
+ {
+ SettingPresentationModel* pSettingPrModel = SettingPresentationModel::GetInstance();
+ pSettingPrModel->AddToFilter(__contactNumber, 1);
+ pSettingPrModel->RefreshSpamFilterList();
+ if(__pBlockConfirmPopup)
+ {
+ __pBlockConfirmPopup->SetShowState(false);
+ delete __pBlockConfirmPopup;
+ __pBlockConfirmPopup = null;
+ }
+ }
+ break;
+
+ case IDA_PHONENUMBER_BLOCK_CANCEL:
+ {
+ if(__pBlockConfirmPopup)
+ {
+ __pBlockConfirmPopup->SetShowState(false);
+ delete __pBlockConfirmPopup;
+ __pBlockConfirmPopup = null;
+ }
+ }
+ break;
+
+ default:
+ break;
+ }
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+ContactList::UnBlockPhoneNumber(void)
+{
+ AppLogDebug("ENTER");
+
+ SettingPresentationModel* pSettingPrModel = SettingPresentationModel::GetInstance();
+ int filterIndex = pSettingPrModel->GetFilterListIndex(__contactNumber);
+ pSettingPrModel->DeleteFilter(filterIndex,1);
+ pSettingPrModel->RefreshSpamFilterList();
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
--- /dev/null
+\r
+//\r
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.\r
+//\r
+// Licensed under the Flora License, Version 1.0 (the License);\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+// http://floralicense.org/license/\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an AS IS BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+//\r
+\r
+#include "MsgContactListItem.h"\r
+#include "MsgLVMultiLineTextItem.h"\r
+#include "MsgTypes.h"\r
+\r
+using namespace Tizen::Base;\r
+using namespace Tizen::Base::Utility;\r
+using namespace Tizen::Graphics;\r
+using namespace Tizen::Ui::Controls;\r
+\r
+enum ContactDetail\r
+{\r
+ CONTACT_DETAIL_ITEM_NAME,\r
+ CONTACT_DETAIL_ITEM_NUMBER\r
+};\r
+\r
+ContactListItem::ContactListItem(const String& contactName, const String& contactNumber, int width, bool editMode)\r
+ : __IsEditMode(editMode)\r
+ , __Width(width)\r
+ , __contactName(contactName)\r
+ , __contactNumber(contactNumber)\r
+ , __pTitleFont(null)\r
+ , __pSubTextFont(null)\r
+ , __pMtTextName(null)\r
+ , __pMtTextNumber(null)\r
+{\r
+ // Empty implementation\r
+}\r
+\r
+ContactListItem::~ContactListItem(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ if (__pMtTextNumber)\r
+ {\r
+ delete __pMtTextNumber;\r
+ }\r
+ if (__pMtTextName)\r
+ {\r
+ delete __pMtTextName;\r
+ }\r
+ if (__pSubTextFont)\r
+ {\r
+ delete __pSubTextFont;\r
+ }\r
+ if (__pTitleFont)\r
+ {\r
+ delete __pTitleFont;\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
+\r
+\r
+void\r
+ContactListItem::CreateContactListItemLayout(const String& searchText)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ if (__contactName.IsEmpty())\r
+ {\r
+ __contactName.Append(__contactNumber);\r
+ }\r
+ // Check item is in edit mode.\r
+ ListAnnexStyle listStyle = LIST_ANNEX_STYLE_NORMAL;\r
+ int itemWidth(__Width);\r
+ if (__IsEditMode)\r
+ {\r
+ listStyle = LIST_ANNEX_STYLE_MARK;\r
+ itemWidth -= W_CHECKBOX;\r
+ }\r
+ Construct(Dimension(__Width, H_LIST_ITEM_128PX), listStyle);\r
+\r
+ int posX = MARGIN_16PX;\r
+ int posY = MARGIN_10PX;\r
+ int width = itemWidth - MARGIN_16PX;\r
+ int height = H_TITLE_LINE;\r
+ // For contact title.\r
+ CreateContactTitleElement(searchText);\r
+ __pMtTextName->CreateTextLayout(width, true);\r
+ AddElement(Rectangle(posX, posY, width, height), CONTACT_DETAIL_ITEM_NAME, *__pMtTextName);\r
+ SetElementSelectionEnabled(IDC_LIST_TEXT_CONTACT, false);\r
+ SetElementTextVerticalAlignment(IDC_LIST_TEXT_CONTACT, ALIGNMENT_MIDDLE);\r
+ SetElementTextHorizontalAlignment(IDC_LIST_TEXT_CONTACT, ALIGNMENT_LEFT);\r
+\r
+ // For contact number\r
+ posY = MARGIN_10PX + H_TITLE_LINE;\r
+ height = H_SUB_TITLE;\r
+ CreateContactNumberElement(searchText);\r
+ __pMtTextNumber->CreateTextLayout(width, true);\r
+ AddElement(Rectangle(posX, posY, width, height), CONTACT_DETAIL_ITEM_NUMBER, *__pMtTextNumber);\r
+ SetElementSelectionEnabled(CONTACT_DETAIL_ITEM_NUMBER, false);\r
+ SetElementTextVerticalAlignment(CONTACT_DETAIL_ITEM_NUMBER, ALIGNMENT_MIDDLE);\r
+ SetElementTextHorizontalAlignment(CONTACT_DETAIL_ITEM_NUMBER, ALIGNMENT_LEFT);\r
+\r
+ SetElementSelectionEnabled(IDC_LIST_TEXT_DATE_TIME, false);\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return;\r
+}\r
+\r
+void\r
+ContactListItem::CreateContactTitleElement(const String& searchText)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ if (__pMtTextName)\r
+ {\r
+ delete __pMtTextName;\r
+ }\r
+ __pMtTextName = new (std::nothrow) LVMultiLineTextItem();\r
+ __pTitleFont = new (std::nothrow) Font();\r
+ __pTitleFont->Construct(FONT_STYLE_PLAIN, THREAD_LIST_MAIN_TEXT_FONT_SIZE);\r
+ if (searchText.IsEmpty())\r
+ {\r
+ __pMtTextName->AddText(__contactName, COLOR_BLACK, COLOR_BLACK, __pTitleFont);\r
+ }\r
+ else\r
+ {\r
+ int searchIndex(-1);\r
+ String displayName(__contactName);\r
+ displayName.ToLowerCase();\r
+ String tempSearchText(searchText);\r
+ tempSearchText.ToLowerCase();\r
+ displayName.IndexOf(tempSearchText, 0, searchIndex);\r
+ int strLength = displayName.GetLength();\r
+ if (searchIndex >= 0)\r
+ {\r
+ String strText;\r
+ if (searchIndex > 0)\r
+ {\r
+ __contactName.SubString(0, searchIndex, strText);\r
+ __pMtTextName->AddText(strText, COLOR_BLACK, COLOR_BLACK, __pTitleFont);\r
+ }\r
+ __contactName.SubString(searchIndex, searchText.GetLength(), strText);\r
+ __pMtTextName->AddText(strText, COLOR_SEARCH_TEXT, COLOR_SEARCH_TEXT, __pTitleFont);\r
+ if (searchIndex + searchText.GetLength() < strLength)\r
+ {\r
+ __contactName.SubString(searchIndex + searchText.GetLength(), strText);\r
+ __pMtTextName->AddText(strText, COLOR_BLACK, COLOR_BLACK, __pTitleFont);\r
+ }\r
+ }\r
+ else\r
+ {\r
+ __pMtTextName->AddText(__contactName, COLOR_BLACK, COLOR_BLACK, __pTitleFont);\r
+ }\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return;\r
+}\r
+\r
+void\r
+ContactListItem::CreateContactNumberElement(const String& searchText)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ if (__pMtTextNumber)\r
+ {\r
+ delete __pMtTextNumber;\r
+ }\r
+ __pMtTextNumber = new (std::nothrow) LVMultiLineTextItem();\r
+ __pSubTextFont = new (std::nothrow) Font();\r
+ __pSubTextFont->Construct(FONT_STYLE_PLAIN, THREAD_LIST_SUB_TEXT_FONT_SIZE);\r
+ if (searchText.IsEmpty())\r
+ {\r
+ __pMtTextNumber->AddText(__contactNumber, COLOR_BLACK, COLOR_BLACK, __pSubTextFont);\r
+ }\r
+ else\r
+ {\r
+ int searchIndex(-1);\r
+ String msgText(__contactNumber);\r
+ msgText.ToLowerCase();\r
+ msgText.IndexOf(searchText, 0, searchIndex);\r
+ int strLength = msgText.GetLength();\r
+ // Search text\r
+ if (searchIndex >= 0)\r
+ {\r
+ String strText;\r
+ if (searchIndex > 0)\r
+ {\r
+ __contactNumber.SubString(0, searchIndex, strText);\r
+ __pMtTextNumber->AddText(strText, COLOR_BLACK, COLOR_BLACK, __pSubTextFont);\r
+ }\r
+ __contactNumber.SubString(searchIndex, searchText.GetLength(), strText);\r
+ __pMtTextNumber->AddText(strText, COLOR_SEARCH_TEXT, COLOR_SEARCH_TEXT, __pSubTextFont);\r
+ if (searchIndex + searchText.GetLength() < strLength)\r
+ {\r
+ __contactNumber.SubString(searchIndex + searchText.GetLength(), strText);\r
+ __pMtTextNumber->AddText(strText, COLOR_BLACK, COLOR_BLACK, __pSubTextFont);\r
+ }\r
+ }\r
+ else\r
+ {\r
+ __pMtTextNumber->AddText(__contactNumber, COLOR_BLACK, COLOR_BLACK, __pSubTextFont);\r
+ }\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return;\r
+}\r
--- /dev/null
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+#include <FSocial.h>
+
+#include "MsgContactPopup.h"
+#include "MsgContactUtility.h"
+#include "MsgSettingPresentationModel.h"
+#include "MsgTypes.h"
+
+using namespace Tizen::App;
+using namespace Tizen::Base;
+using namespace Tizen::Base::Collection;
+using namespace Tizen::Graphics;
+using namespace Tizen::Ui::Controls;
+
+#define H_POPUP 550
+#define H_LIST 512
+#define VERTICAL_PADDING 110
+
+ContactPopup::ContactPopup(IPopupEventListener& listener)
+ : __pCancelButton(null)
+ , __popupListener(listener)
+ , __pPopupItemList(null)
+{
+
+}
+
+ContactPopup::~ContactPopup(void)
+{
+ if (__pPopupItemList)
+ {
+ __pPopupItemList->RemoveAll(true);
+ delete __pPopupItemList;
+ }
+}
+
+result
+ContactPopup::Construct(const String& contactName, const String& contactNumber)
+{
+ AppLogDebug("ENTER");
+
+ result r = Popup::Construct(L"IDL_RECIPIENT_LIST_POPUP");
+ if (!IsFailed(r))
+ {
+ __contactName = contactName;
+ __contactNumber = contactNumber;
+ InitalizePopupItems();
+ SetTitleText(__contactName);
+ ListView* pList = static_cast<ListView*>(GetControl(L"IDC_OPTION_LISTVIEW"));
+ pList->AddListViewItemEventListener(*this);
+ pList->SetItemProvider(*this);
+ __pCancelButton = static_cast<Button*>(GetControl(L"IDC_BUTTON_CLOSE"));
+ __pCancelButton->SetActionId(IDA_BUTTON_CLOSE_HELPER_POPUP);
+ __pCancelButton->AddActionEventListener(*this);
+ }
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return r;
+}
+
+void
+ContactPopup::InitalizePopupItems(void)
+{
+ AppLogDebug("ENTER");
+
+ __pPopupItemList = new (std::nothrow) ArrayList();
+ __pPopupItemList->Construct();
+ // For voice call
+ String strText;
+ int actionId(-1);
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_COM_BODY_VOICE_CALL", strText);
+ actionId = IDA_CONVERSATION_FORM_VOICE_CALL;
+ PopupListItem* pPopupListItem = new (std::nothrow) PopupListItem(strText, actionId);
+ __pPopupItemList->Add(pPopupListItem);
+ // For contact
+ if (__contactName.CompareTo(String(IDS_UNKNOWN)) == 0)
+ {
+ actionId = IDA_CONVERSATION_FORM_ADD_CONTACT;
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_COM_OPT_ADD_CONTACT", strText);
+ }
+ else
+ {
+ actionId = IDA_CONVERSATION_FORM_VIEW_CONTACT;
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGC_OPT_VIEW_CONTACT", strText);
+ }
+ pPopupListItem = new (std::nothrow) PopupListItem(strText, actionId);
+ __pPopupItemList->Add(pPopupListItem);
+ // For Spam block
+ SettingPresentationModel* pSettingPrModel = SettingPresentationModel::GetInstance();
+ pSettingPrModel->RefreshSpamFilterList();
+ int filterIndex = pSettingPrModel->GetFilterListIndex(__contactNumber);
+ if (filterIndex == -1)
+ {
+ actionId = IDA_CONVERSATION_FORM_BLOCK;
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_OPT_BLOCK", strText);
+ }
+ else
+ {
+ actionId = IDA_CONVERSATION_FORM_UNBLOCK;
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_OPT_UNBLOCK", strText);
+ }
+ pPopupListItem = new (std::nothrow) PopupListItem(strText, actionId);
+ __pPopupItemList->Add(pPopupListItem);
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+ContactPopup::OnActionPerformed(const Control& source, int actionId)
+{
+ AppLogDebug("ENTER");
+
+ switch (actionId)
+ {
+ case IDA_BUTTON_CLOSE_HELPER_POPUP:
+ {
+ Popup::SetShowState(false);
+ __popupListener.OnPopupClose(this);
+ }
+ break;
+ }
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+}
+
+void
+ContactPopup::OnListViewItemStateChanged(ListView& listView, int index, int elementId,
+ ListItemStatus status)
+{
+ AppLogDebug("ENTER");
+
+ // Notify pop up list item selected.
+ PopupListItem* pPopupListItem = (PopupListItem*) __pPopupItemList->GetAt(index);
+ Popup::SetShowState(false);
+ __popupListener.OnPopupListItemSelected(*this, index, pPopupListItem);
+ // Hide popup and send destroy event.
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+ContactPopup::OnListViewItemSwept(ListView& listView, int index,
+ SweepDirection direction)
+{
+ AppLogDebug("ENTER");
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+ContactPopup::OnListViewContextItemStateChanged(ListView& listView, int index, int elementId,
+ ListContextItemStatus state)
+{
+ AppLogDebug("ENTER");
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+ContactPopup::OnListViewItemLongPressed(ListView& listView, int index, int elementId,
+ bool& invokeListViewItemCallback)
+{
+ AppLogDebug("ENTER");
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+int
+ContactPopup::GetItemCount(void)
+{
+ AppLogDebug("ENTER");
+ int count(0);
+ if (__pPopupItemList)
+ {
+ count = __pPopupItemList->GetCount();
+ }
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return count;
+}
+
+ListItemBase*
+ContactPopup::CreateItem(int index, int itemWidth)
+{
+ AppLogDebug("ENTER");
+
+ CustomItem* pItem = new (std::nothrow) CustomItem();
+ pItem->Construct(Dimension(itemWidth, H_LIST_ITEM_112PX), LIST_ANNEX_STYLE_NORMAL);
+ PopupListItem* pPopupListItem = (PopupListItem*) __pPopupItemList->GetAt(index);
+ if (pPopupListItem)
+ {
+ pItem->AddElement(Rectangle(MARGIN_16PX, 0, itemWidth, H_LIST_ITEM_112PX),
+ IDC_OPTIONS_LIST, pPopupListItem->GetItemText());
+ }
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return pItem;
+}
+
+bool
+ContactPopup::DeleteItem(int index, ListItemBase* pItem, int itemWidth)
+{
+ AppLogDebug("ENTER");
+
+ if (pItem)
+ {
+ delete pItem;
+ pItem = null;
+ }
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return true;
+}
--- /dev/null
+//\r
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.\r
+//\r
+// Licensed under the Flora License, Version 1.0 (the License);\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+// http://floralicense.org/license/\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an AS IS BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+//\r
+\r
+#include <FApp.h>\r
+#include <FSocial.h>\r
+\r
+#include "MsgContactUtility.h"\r
+#include "MsgTypes.h"\r
+\r
+using namespace Tizen::App;\r
+using namespace Tizen::Base;\r
+using namespace Tizen::Base::Collection;\r
+using namespace Tizen::Social;\r
+\r
+const wchar_t* IDS_TELEPHONE = L"tel:";\r
+const wchar_t* IDS_TYPE_VOICE = L"type:voice";\r
+const wchar_t* IDS_PHONE = L"phone:";\r
+const wchar_t* IDS_PATH = L"path:/";\r
+const wchar_t* FILE_EXTENSION_VCF = L".vcf";\r
+const wchar_t* IDS_SLASH = L"/";\r
+const wchar_t* IDS_VIEW_TYPE_VCF = L"viewType:vcf";\r
+\r
+void\r
+ContactUtility::VoiceCall(const String& phoneNumber)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ AppControl* pAppCntl = AppManager::FindAppControlN(IDS_APPCONTROL_PROVIDER_CALL,\r
+ IDS_APPCONTROL_OPERATION_CALL);\r
+ if (pAppCntl)\r
+ {\r
+ HashMap* pHashMap = new (std::nothrow) HashMap();\r
+ pHashMap->Construct();\r
+ // Add argument\r
+ String* pTelKey = new (std::nothrow) String(L"tel");\r
+ String* pTelVal = new (std::nothrow) String(phoneNumber);\r
+ pHashMap->Add(pTelKey, pTelVal);\r
+ // Add argument\r
+ String* pTypeKey = new (std::nothrow) String(L"type");\r
+ String* pTypeVal = new (std::nothrow) String(L"voice");\r
+ pHashMap->Add(pTypeKey, pTypeVal);\r
+ // Start App control\r
+ pAppCntl->Start(null, null, pHashMap, null);\r
+ pHashMap->RemoveAll(true);\r
+ delete pHashMap;\r
+ delete pAppCntl;\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
+\r
+void\r
+ContactUtility::AddContact(const String& phoneNumber)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ AppControl* pAppCntl = AppManager::FindAppControlN(IDS_APPCONTROL_PROVIDER_CONTACT,\r
+ IDS_APPCONTROL_OPERATION_ADD);\r
+ if (pAppCntl)\r
+ {\r
+ HashMap* pHashMap = new (std::nothrow) HashMap();\r
+ pHashMap->Construct();\r
+ String* pModeKey = new (std::nothrow) String(L"phone");\r
+ String* pModeVal = new (std::nothrow) String(phoneNumber);\r
+ pHashMap->Add(pModeKey, pModeVal);\r
+ // Start app control\r
+ pAppCntl->Start(null, null, pHashMap, null);\r
+ pHashMap->RemoveAll(true);\r
+ delete pHashMap;\r
+ delete pAppCntl;\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
+\r
+void\r
+ContactUtility::ViewContact(const String& contactNumber)\r
+{\r
+ AppLogDebug("ENTER");\r
+ String viewContact;\r
+\r
+ AppControl* pAppCntl = AppManager::FindAppControlN(IDS_APPCONTROL_PROVIDER_CONTACT,\r
+ IDS_APPCONTROL_OPERATION_VIEW);\r
+\r
+ if (pAppCntl)\r
+ {\r
+ Addressbook* pAddressbook = AddressbookManager::GetInstance()->GetAddressbookN();\r
+ if (pAddressbook)\r
+ {\r
+ pAddressbook->SetEventListener(null);\r
+ IList* pContactList = pAddressbook->SearchContactsByPhoneNumberN(contactNumber);\r
+ if (pContactList)\r
+ {\r
+ Contact* pContact = GetContact(pContactList, contactNumber);\r
+ if (pContact)\r
+ {\r
+ RecordId contactId = pContact->GetRecordId();\r
+ viewContact.Format(256, L"%ld", contactId);\r
+ HashMap* pHashMap = new (std::nothrow) HashMap();\r
+ pHashMap->Construct();\r
+ String* pModeKey = new (std::nothrow) String(L"viewType");\r
+ String* pModeVal = new (std::nothrow) String(L"contact");\r
+ pHashMap->Add(pModeKey, pModeVal);\r
+ String* pTypeKey = new (std::nothrow) String(L"contactId");\r
+ String* pTypeVal = new (std::nothrow) String(viewContact);\r
+ pHashMap->Add(pTypeKey, pTypeVal);\r
+ pAppCntl->Start(null, null, pHashMap, null);\r
+ pHashMap->RemoveAll(true);\r
+ delete pHashMap;\r
+ }\r
+ pContactList->RemoveAll(true);\r
+ delete pContactList;\r
+ }\r
+ delete pAddressbook;\r
+ }\r
+ delete pAppCntl;\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
+\r
+Contact*\r
+ContactUtility::GetContact(IList* pContactList, const String& phoneNumber)\r
+{\r
+ Contact* pRecipientContact = null;\r
+ bool matchFound(false);\r
+ for(int index = 0;index < pContactList->GetCount();index++)\r
+ {\r
+ pRecipientContact = (Contact*) pContactList->GetAt(index);\r
+ if (pRecipientContact)\r
+ {\r
+ IList* pPhoneNumberList = pRecipientContact->GetValuesN(CONTACT_MPROPERTY_ID_PHONE_NUMBERS);\r
+ if( pPhoneNumberList )\r
+ {\r
+ PhoneNumber* pPhoneNumber = null;\r
+ IEnumerator* pEnum = pPhoneNumberList->GetEnumeratorN();\r
+ if (pEnum)\r
+ {\r
+ while (E_SUCCESS == pEnum->MoveNext())\r
+ {\r
+ pPhoneNumber = (PhoneNumber*) pEnum->GetCurrent();\r
+ if (pPhoneNumber->GetPhoneNumber().CompareTo(phoneNumber) == 0)\r
+ {\r
+ matchFound = true;\r
+ break;\r
+ }\r
+ }\r
+ delete pEnum;\r
+ }\r
+ pPhoneNumberList->RemoveAll(true);\r
+ delete pPhoneNumberList;\r
+ if(matchFound)\r
+ {\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ // return match contact\r
+ return pRecipientContact;\r
+ }\r
+ }\r
+ }\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ // Contact not found\r
+ return null;\r
+}\r
--- /dev/null
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+#include <msg.h>
+
+#include <FApp.h>
+#include <FBaseColArrayList.h>
+#include <FBaseString.h>
+#include <FMedia.h>
+#include <time.h>
+
+
+#include "MsgConversationData.h"
+#include "MsgTypes.h"
+
+using namespace Tizen::App;
+using namespace Tizen::Base;
+using namespace Tizen::Base::Collection;
+using namespace Tizen::Graphics;
+using namespace Tizen::Io;
+using namespace Tizen::Media;
+
+ConversationData::ConversationData(const String& threadName)
+ : __messageId(-1)
+ , __threadId(-1)
+ , __messageType(0)
+ , __folderId(-1)
+ , __displayTime(0)
+ , __networkStatus(-1)
+ , __isRead(true)
+ , __messageDirection(0)
+ , __displayName(threadName)
+ , __pageCount(0)
+ , __attachmentCount(0)
+ , __pThumbnailBitmap(null)
+ , __subjectStr(IDS_BLANK)
+ , __animationIconIndex(MSG_ICON_PROGRESS_01)
+{
+ AppLogDebug("ENTER");
+ AppLogDebug("EXIT");
+}
+
+ConversationData::~ConversationData(void)
+{
+ AppLogDebug("ENTER");
+
+ if (__pThumbnailBitmap)
+ {
+ delete __pThumbnailBitmap;
+ }
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+}
+
+result
+ConversationData::Construct(msg_struct_t pMessageInfo)
+{
+ AppLogDebug("ENTER");
+
+ result r = E_SUCCESS;
+ if (!pMessageInfo)
+ {
+ r = E_FAILURE;
+ return r;
+ }
+ // conversation message id
+ msg_error_t err = msg_get_int_value(pMessageInfo, MSG_CONV_MSG_ID_INT, &__messageId);
+ if (err != MSG_SUCCESS)
+ {
+ AppLogDebug("EXIT:Unable to fetch conversation message ID err = %d", (int) err);
+ r = E_FAILURE;
+ return r;
+ }
+ // conversation message thread id
+ err = msg_get_int_value(pMessageInfo, MSG_CONV_MSG_THREAD_ID_INT, &__threadId);
+ if (err != MSG_SUCCESS)
+ {
+ AppLogDebug("EXIT:Unable to fetch conv message thread ID err = %d", (int) err);
+ r = E_FAILURE;
+ return r;
+ }
+ err = msg_get_int_value(pMessageInfo, MSG_CONV_MSG_FOLDER_ID_INT, &__folderId);
+ if (err != MSG_SUCCESS)
+ {
+ AppLogDebug("EXIT:Unable to fetch conv message folder ID err = %d", (int) err);
+ r = E_FAILURE;
+ return r;
+ }
+ // message Type
+ err = msg_get_int_value(pMessageInfo, MSG_CONV_MSG_TYPE_INT, &__messageType);
+ AppLogDebug("Message TYPE =%d", __messageType);
+
+ if (err != MSG_SUCCESS)
+ {
+ AppLogDebug("EXIT:Unable to fetch conv message type err =%d", (int) err);
+ r = E_FAILURE;
+ return r;
+ }
+ if (__messageType == MSG_TYPE_MMS)
+ {
+ //Initialize MMS related data
+ InitMmsData(pMessageInfo);
+ }
+ err = msg_get_int_value(pMessageInfo, MSG_CONV_MSG_DISPLAY_TIME_INT, &__displayTime);
+ if (err != MSG_SUCCESS)
+ {
+ AppLogDebug("EXIT:Unable to fetch conv message display time err =%d", (int) err);
+ r = E_FAILURE;
+ return r;
+ }
+ err = msg_get_int_value(pMessageInfo, MSG_CONV_MSG_NETWORK_STATUS_INT, &__networkStatus);
+ if (err != MSG_SUCCESS)
+ {
+ AppLogDebug("EXIT:Unable to fetch conv network status err =%d", (int) err);
+ r = E_FAILURE;
+ return r;
+ }
+ err = msg_get_bool_value(pMessageInfo, MSG_CONV_MSG_READ_BOOL, &__isRead);
+ if (err != MSG_SUCCESS)
+ {
+ AppLogDebug("EXIT:Unable to fetch conv read status err =%d", (int) err);
+ r = E_FAILURE;
+ return r;
+ }
+ err = msg_get_int_value(pMessageInfo, MSG_CONV_MSG_DIRECTION_INT, &__messageDirection);
+ if (err != MSG_SUCCESS)
+ {
+ AppLogDebug("EXIT:Unable to fetch conv direction err =%d", (int) err);
+ r = E_FAILURE;
+ return r;
+ }
+ InitMessageBody(pMessageInfo);
+ InitTimeStampGroupName();
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(r));
+ return r;
+}
+
+BaseData*
+ConversationData::CloneN(void)
+{
+ AppLogDebug("ENTER");
+ ConversationData* convData = new (std::nothrow) ConversationData(__displayName);
+ if (convData)
+ {
+ convData->__messageId = this->__messageId;
+ convData->__threadId = this->__threadId;
+ convData->__messageType = this->__messageType;
+ convData->__displayTime = this->__displayTime;
+ convData->__networkStatus = this->__networkStatus;
+ convData->__isRead = this->__isRead;
+ convData->__messageDirection = this->__messageDirection;
+ convData->__displayName = this->__displayName;
+ convData->__messageBody = this->__messageBody;
+ convData->__groupName = this->__groupName;
+ convData->__timeStamp = this->__timeStamp;
+ convData->__pageCount = this->__pageCount;
+ convData->__attachmentCount = this->__attachmentCount;
+ convData->__thumbnailPath = this->__thumbnailPath;
+ convData->__subjectStr = this->__subjectStr;
+ }
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return convData;
+}
+
+// Get message short description of given thread index.
+const String&
+ConversationData::GetMessageText(void) const
+{
+ AppLogDebug("ENTER");
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return __messageBody;
+}
+
+// Get message type of given thread list index.
+int
+ConversationData::GetMessageType(void) const
+{
+ AppLogDebug("ENTER");
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return __messageType;
+}
+
+int
+ConversationData::GetEntryId(void) const
+{
+ AppLogDebug("ENTER");
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return __messageId;
+}
+
+// Fetch display name for a message entry.
+const String&
+ConversationData::GetDisplayName(void) const
+{
+ AppLogDebug("ENTER");
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return __displayName;
+}
+
+// Fetch time stamp of given thread index.
+const String&
+ConversationData::GetTimeStamp(void) const
+{
+ AppLogDebug("ENTER");
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return __timeStamp;
+}
+
+// Fetch time stamp of given thread index.
+const String&
+ConversationData::GetGroupName(void) const
+{
+ AppLogDebug("ENTER");
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return __groupName;
+}
+
+int
+ConversationData::GetUnreadCount(void) const
+{
+ AppLogDebug("ENTER");
+
+ if (!__isRead && (__folderId != MSG_DRAFT_ID))
+ {
+ return 1;
+ }
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return 0;
+}
+
+DataType
+ConversationData::GetDataType(void)
+{
+ AppLogDebug("ENTER");
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return DATA_TYPE_CONV;
+}
+
+void
+ConversationData::SetDisplayName(const String& strName)
+{
+ __displayName = strName;
+}
+
+int
+ConversationData::GetThreadId(void) const
+{
+ AppLogDebug("ENTER");
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return __threadId;
+}
+
+int
+ConversationData::GetMessageId(void) const
+{
+ AppLogDebug("ENTER");
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return __messageId;
+}
+
+bool
+ConversationData::IsSent(void) const
+{
+ AppLogDebug("ENTER");
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return (__messageDirection == MSG_DIRECTION_TYPE_MO);
+}
+
+bool
+ConversationData::IsUnRead(void) const
+{
+ AppLogDebug("ENTER");
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return (!__isRead);
+}
+
+bool
+ConversationData::IsSentFail(void) const
+{
+ AppLogDebug("ENTER");
+
+ bool setFaild(false);
+ setFaild = (__networkStatus == MSG_NETWORK_SEND_FAIL);
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return setFaild;
+}
+
+bool
+ConversationData::IsSending(void) const
+{
+ AppLogDebug("ENTER");
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return (__networkStatus == MSG_NETWORK_SENDING);
+}
+
+bool
+ConversationData::IsMms(void) const
+{
+ AppLogDebug("ENTER");
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return (__messageType == MSG_TYPE_MMS);
+}
+
+result
+ConversationData::InitMessageBody(msg_struct_t pMessageInfo)
+{
+ AppLogDebug("ENTER");
+
+ result r = E_SUCCESS;
+ char* pMsgText = new (std::nothrow) char[MAX_MSG_TEXT_LEN];
+ msg_error_t err = msg_get_str_value(pMessageInfo, MSG_CONV_MSG_TEXT_STR, pMsgText
+ , MAX_MSG_TEXT_LEN);
+ if (err == MSG_SUCCESS && pMsgText && (int) strlen(pMsgText) > 0)
+ {
+ __messageBody.Append(pMsgText);
+ }
+ else
+ {
+ // To prevent crash
+ __messageBody.Append(L"");
+ }
+ AppLogDebug("Fetching message body = [%S] err = [%d]", __messageBody.GetPointer(), (int) err);
+ delete[] pMsgText;
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return r;
+}
+
+result
+ConversationData::InitTimeStampGroupName(void)
+{
+ AppLogDebug("ENTER");
+
+ result r = E_SUCCESS;
+ time_t displayTime(__displayTime);
+ struct tm msgTimeInfo, currentTimeInfo;
+ // Fetch Message time.
+ localtime_r(&displayTime, &msgTimeInfo);
+ // Fetch current time.
+ time_t now;
+ time(&now);
+ localtime_r(&now, ¤tTimeInfo);
+
+ // Calculate time difference
+ int msgDay = (msgTimeInfo.tm_year - YEAR_1900) * DAYS_365 + msgTimeInfo.tm_yday
+ + (msgTimeInfo.tm_year - YEAR_1900 - 1) / LEAP_YEAR_GAP;
+
+ int curDay = (currentTimeInfo.tm_year - YEAR_1900) * DAYS_365 + currentTimeInfo.tm_yday
+ + (currentTimeInfo.tm_year - YEAR_1900 - 1) / LEAP_YEAR_GAP;
+
+ char timeStamp[MAX_DATE_LEN];
+ char groupName[MAX_DATE_LEN];
+ char timestm[MAX_DATE_LEN];
+ int dayDiff = curDay - msgDay;
+ if (dayDiff == 0)
+ {
+ __groupName.Append(L"Today");
+ strftime(groupName, (size_t) MAX_DATE_LEN, " (%a, %02d. %b.)", &msgTimeInfo);
+ __groupName.Append(groupName);
+ strftime(timeStamp, (size_t) MAX_DATE_LEN, "%I:%M ", &msgTimeInfo);
+ strftime(timestm, (size_t) MAX_DATE_LEN, "%H", &msgTimeInfo);
+ }
+ else if (dayDiff == 1)
+ {
+ __groupName.Append(L"Yesterday");
+ strftime(groupName, (size_t) MAX_DATE_LEN, " (%a, %02d. %b.)", &msgTimeInfo);
+ __groupName.Append(groupName);
+ //strcpy(timeStamp, "Yesterday");
+ strftime(timeStamp, (size_t) MAX_DATE_LEN, "%I:%M ", &msgTimeInfo);
+ strftime(timestm, (size_t) MAX_DATE_LEN, "%H", &msgTimeInfo);
+ }
+ else
+ {
+ //strftime(timeStamp, MAX_DATE_LEN, "%d-%m-%Y", &msgTimeInfo);
+ strftime(timeStamp, (size_t) MAX_DATE_LEN, "%I:%M ", &msgTimeInfo);
+ strftime(groupName, (size_t) MAX_DATE_LEN, "%a, %02d %b", &msgTimeInfo);
+ strftime(timestm, (size_t) MAX_DATE_LEN, "%H", &msgTimeInfo);
+ __groupName.Append(groupName);
+ }
+ String strtext;
+ String str(L"");
+ str.Append(timestm);
+ if (12 > atoi(timestm))
+ {
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_COM_POP_AM_M_ABB", strtext);
+ }
+ else
+ {
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_COM_POP_PM", strtext);
+ }
+
+ __timeStamp.Append(timeStamp);
+ __timeStamp.Append(strtext);
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return r;
+}
+
+void
+ConversationData::SetAnimationIconIndex(int index)
+{
+ AppLogDebug("ENTER");
+ if (index <= MSG_ICON_PROGRESS_30)
+ {
+ __animationIconIndex = index;
+ }
+ else
+ {
+ __animationIconIndex = MSG_ICON_PROGRESS_01;
+ }
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+}
+
+int
+ConversationData::GetAnimationIconIndex(void) const
+{
+ AppLogDebug("ENTER");
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return __animationIconIndex;
+}
+
+const int
+ConversationData::GetDraftMessageCount(void) const
+{
+ AppLogDebug("ENTER");
+ if (__folderId == MSG_DRAFT_ID)
+ {
+ return 1;
+ }
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return 0;
+}
+
+Bitmap*
+ConversationData::GetThumbnail(void)
+{
+ AppLogDebug("ENTER");
+ if (!__pThumbnailBitmap && __thumbnailPath.GetLength() > 0)
+ {
+ Image* pImage = new (std::nothrow) Image();
+ pImage->Construct();
+ __pThumbnailBitmap = pImage->DecodeN(__thumbnailPath, BITMAP_PIXEL_FORMAT_ARGB8888,
+ 310, 204);
+ delete pImage;
+ }
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return __pThumbnailBitmap;
+}
+
+const String&
+ConversationData::GetSubject(void) const
+{
+ AppLogDebug("ENTER");
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return __subjectStr;
+}
+
+int
+ConversationData::GetAttachmentCount(void) const
+{
+ AppLogDebug("ENTER");
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return __attachmentCount;
+}
+
+result
+ConversationData::InitMmsData(msg_struct_t pMessageInfo)
+{
+ AppLogDebug("ENTER");
+ result r = E_SUCCESS;
+
+ // Load Subject Field: MSG_CONV_MSG_SUBJECT_STR
+ char subjectText[MAX_SUBJECT_LEN + 1];
+ msg_error_t err = msg_get_str_value(pMessageInfo, MSG_CONV_MSG_SUBJECT_STR, subjectText, MAX_SUBJECT_LEN);
+ if (err != MSG_SUCCESS)
+ {
+ AppLogDebug("EXIT:Unable to fetch conv subject err =%d", (int) err);
+ r = E_FAILURE;
+ return r;
+ }
+ __subjectStr.Append(subjectText);
+ // Get attachement count Field: MSG_CONV_MSG_ATTACH_COUNT_INT
+ err = msg_get_int_value(pMessageInfo, MSG_CONV_MSG_ATTACH_COUNT_INT, &__attachmentCount);
+ if (err != MSG_SUCCESS)
+ {
+ AppLogDebug("EXIT:Unable to fetch conv attachement count err =%d", (int) err);
+ r = E_FAILURE;
+ return r;
+ }
+ // Get default thumbnail path; Field: MSG_CONV_MSG_IMAGE_THUMB_PATH_STR/MSG_CONV_MSG_VIDEO_THUMB_PATH_STR
+ char thumbnailPath[MAX_IMAGE_PATH_LEN + 1];
+ err = msg_get_str_value(pMessageInfo, MSG_CONV_MSG_IMAGE_THUMB_PATH_STR, thumbnailPath, MAX_IMAGE_PATH_LEN);
+ if (err != MSG_SUCCESS)
+ {
+ AppLogDebug("EXIT:Unable to fetch thumbnail path err =%d", (int) err);
+ r = E_FAILURE;
+ return r;
+ }
+ __thumbnailPath.Append(thumbnailPath);
+ AppLog("THUMNAIL PATH: %S", __thumbnailPath.GetPointer());
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return r;
+}
--- /dev/null
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+#include <FApp.h>
+
+#include "MsgAttachmentSavePopup.h"
+#include "MsgBitmapUtility.h"
+#include "MsgCommonUtil.h"
+#include "MsgContactList.h"
+#include "MsgContactPopup.h"
+#include "MsgContactUtility.h"
+#include "MsgConversationData.h"
+#include "MsgConversationForm.h"
+#include "MsgConversationPresentationModel.h"
+#include "MsgDurationPopup.h"
+#include "MsgFontsettings.h"
+#include "MsgLVBubbleListItem.h"
+#include "MsgMessageComposePanel.h"
+#include "MsgMessageData.h"
+#include "MsgMessagePresentationModel.h"
+#include "MsgProgressPopup.h"
+#include "MsgOptionPopup.h"
+#include "MsgResendDeletePopup.h"
+#include "MsgSettingPresentationModel.h"
+#include "MsgSmsManager.h"
+#include "MsgThreadData.h"
+#include "MsgTypes.h"
+
+using namespace Tizen::Base;
+using namespace Tizen::App;
+using namespace Tizen::Ui;
+using namespace Tizen::Ui::Controls;
+using namespace Tizen::Graphics;
+using namespace Tizen::Ui::Scenes;
+using namespace Tizen::Base::Collection;
+using namespace Tizen::Base::Utility;
+
+ConversationForm::ConversationForm(ConversationListFormType convListType)
+ : __convFormType(convListType)
+ , __pMsgComposePanel(null)
+ , __pConvMessageList(null)
+ , __pCurrentThreadEntry(null)
+ , __pCheckAll(null)
+ , __pSelectionInfo(null)
+ , __pSelectedIds(null)
+ , __pProgressPopup(null)
+ , __pList(null)
+ , __pConContactList(null)
+ , __pContextMenuText(null)
+ , __pDeleteConfirmPopup(null)
+ , __pContactDetails(null)
+ , __pResendDelete(null)
+ , __pTrayPanel(null)
+ , __pOptionPopup(null)
+ , __pResendDeletePopup(null)
+ , __pBlockPopup(null)
+ , __pSaveAttachmentsPopup(null)
+ , __pDurationPopup(null)
+ , __isListViewItemLongPressed(false)
+{
+ //Empty implementation
+}
+
+ConversationForm::~ConversationForm(void)
+{
+ AppLogDebug("ENTER");
+
+ // Cancel ongoing operation.
+ ConversationPresentationModel* pConvPrModel = ConversationPresentationModel::GetInstance();
+ if(pConvPrModel)
+ {
+ pConvPrModel->RemoveConversationEventListener(*this);
+ pConvPrModel->CancelDelete();
+ }
+ if (__pDurationPopup)
+ {
+ delete __pDurationPopup;
+ }
+ if (__pSaveAttachmentsPopup)
+ {
+ delete __pSaveAttachmentsPopup;
+ }
+
+ if (__pCurrentThreadEntry)
+ {
+ delete __pCurrentThreadEntry;
+ }
+ if (__pContactDetails)
+ {
+ __pContactDetails->RemoveAll(true);
+ delete __pContactDetails;
+ }
+ if (__pBlockPopup)
+ {
+ delete __pBlockPopup;
+ }
+ if (__pDeleteConfirmPopup)
+ {
+ delete __pDeleteConfirmPopup;
+ }
+}
+
+bool
+ConversationForm::Initialize(void)
+{
+ AppLogDebug("ENTER");
+
+ result r = E_SUCCESS;
+ if (__convFormType == CONVERSATION_LIST_FORM_VIEW)
+ {
+ r = Construct(L"IDL_CONVERSATION_LIST_FORM");
+ }
+ else
+ {
+ r = Construct(L"IDL_CONVERSATION_LIST_EDIT_FORM");
+ }
+ AddKeyEventListener(*this);
+ AppLogDebug("EXIT: r= %s", GetErrorMessage(GetLastResult()));
+ return (!IsFailed(r));
+}
+
+void
+ConversationForm::OnIntializeFooter(Footer& footer)
+{
+ AppLogDebug("ENTER");
+
+ // Footer should be visible on demand.
+ SetActionBarsVisible(FORM_ACTION_BAR_FOOTER, false);
+ footer.AddActionEventListener(*this);
+
+ AppLogDebug("EXIT: r= %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+ConversationForm::OnIntializeHeader(Header& header)
+{
+ AppLogDebug("ENTER");
+
+ header.AddActionEventListener(*this);
+
+ AppLogDebug("EXIT: r= %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+ConversationForm::SetFooter(void)
+{
+ AppLogDebug("ENTER");
+
+ Footer* footer = GetFooter();
+ {
+ if (__convFormType == CONVERSATION_LIST_FORM_VIEW)
+ {
+ SetViewModeFooter(*footer);
+ }
+ else
+ {
+ SetEditModeFooter(*footer);
+ }
+ }
+
+ AppLogDebug("EXIT: r= %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+ConversationForm::SetViewModeFooter(Footer& footer)
+{
+ AppLogDebug("ENTER");
+
+ footer.RemoveAllItems();
+ footer.RemoveAllButtons();
+
+ AppLogDebug("EXIT: r= %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+ConversationForm::SetEditModeFooter(Footer& footer)
+{
+ AppLogDebug("ENTER");
+
+ // String strText;
+ // footer.RemoveAllItems();
+ // footer.RemoveAllButtons();
+ // footer.SetStyle(FOOTER_STYLE_SEGMENTED_ICON_TEXT);
+ //
+ // ButtonItem deleteBtn;
+ // deleteBtn.Construct(BUTTON_ITEM_STYLE_TEXT, IDA_DELETE_CMD);
+ // Application::GetInstance()->GetAppResource()->GetString(L"IDS_COM_SK_DELETE", strText);
+ // deleteBtn.SetText(strText);
+ // footer.SetButton(BUTTON_POSITION_LEFT, deleteBtn);
+ // Bitmap* pDeleteIcon = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_DELETE);
+ // if (pDeleteIcon)
+ // {
+ // deleteBtn.SetIcon(BUTTON_ITEM_STATUS_NORMAL, pDeleteIcon);
+ // }
+ //
+ // ButtonItem cancelBtn;
+ // cancelBtn.Construct(BUTTON_ITEM_STYLE_TEXT, IDA_CANCEL_CMD);
+ // Application::GetInstance()->GetAppResource()->GetString(L"IDS_COM_SK_CANCEL", strText);
+ // cancelBtn.SetText(strText);
+ // footer.SetButton(BUTTON_POSITION_RIGHT, cancelBtn);
+ //
+ // // Enable disable footer item
+ // if (__pSelectedIds && __pSelectedIds->GetCount() > 0)
+ // {
+ // footer.SetButtonEnabled(BUTTON_POSITION_LEFT, true);
+ // }
+ // else
+ // {
+ // footer.SetButtonEnabled(BUTTON_POSITION_LEFT, false);
+ // }
+
+ String strText;
+ footer.RemoveAllItems();
+ footer.RemoveAllButtons();
+ footer.SetStyle(FOOTER_STYLE_BUTTON_ICON_TEXT);
+
+ FooterItem deleteBtn;
+ deleteBtn.Construct(IDA_DELETE_CMD);
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_COM_SK_DELETE", strText);
+ deleteBtn.SetText(strText);
+// Bitmap* pDeleteIcon = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_DELETE);
+// if (pDeleteIcon)
+// {
+// deleteBtn.SetIcon(FOOTER_ITEM_STATUS_NORMAL, pDeleteIcon);
+// }
+ footer.AddItem(deleteBtn);
+
+
+// FooterItem cancelBtn;
+// cancelBtn.Construct(IDA_CANCEL_CMD);
+// Bitmap* pCanelIcon = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_BACK);
+// if (pCanelIcon)
+// {
+// cancelBtn.SetIcon(FOOTER_ITEM_STATUS_NORMAL, pCanelIcon);
+// }
+// footer.AddItem(cancelBtn);
+
+ // close button creation
+
+ ButtonItem closeBtn;
+ closeBtn.Construct(BUTTON_ITEM_STYLE_ICON, IDA_CANCEL_CMD);
+ Bitmap* pCloseIcon = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_BACK);
+ if (pCloseIcon)
+ {
+ closeBtn.SetIcon(BUTTON_ITEM_STATUS_NORMAL, pCloseIcon);
+ }
+ Bitmap* pCloseIconPressed = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_BACK_PRESSED);
+ if (pCloseIconPressed)
+ {
+ closeBtn.SetIcon(BUTTON_ITEM_STATUS_PRESSED, pCloseIconPressed);
+ }
+ footer.SetButton(BUTTON_POSITION_RIGHT, closeBtn);
+
+ if (__pSelectedIds && __pSelectedIds->GetCount() > 0)
+ {
+ footer.SetItemEnabled(0, true);
+ }
+ else
+ {
+ footer.SetItemEnabled(0, false);
+ }
+
+ AppLogDebug("EXIT: r= %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+ConversationForm::SetHeader(void)
+{
+ AppLogDebug("ENTER");
+
+ Header* header = GetHeader();
+ if (header)
+ {
+ if (__convFormType == CONVERSATION_LIST_FORM_VIEW)
+ {
+ SetViewModeHeader(*header);
+ }
+ else
+ {
+ SetEditModeHeader(*header);
+ }
+ }
+
+ AppLogDebug("EXIT: r= %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+ConversationForm::SetEditModeHeader(Header& header)
+{
+ AppLogDebug("ENTER");
+
+ // Update header.
+ header.RemoveAllItems();
+ header.RemoveAllButtons();
+ header.SetStyle(HEADER_STYLE_TITLE);
+ String strText;
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_COM_SK_DELETE", strText);
+ header.SetTitleText(strText);
+ header.Draw();
+
+ AppLogDebug("EXIT: r= %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+ConversationForm::SetViewModeHeader(Header& header)
+{
+ AppLogDebug("ENTER");
+
+ // Update header.
+ header.RemoveAllItems();
+ header.RemoveAllButtons();
+
+ header.SetStyle(HEADER_STYLE_SEGMENTED);
+ String strText;
+ HeaderItem headerLeftItem;
+ headerLeftItem.Construct(IDA_CONVERSATION_FORM_HEADER_TITLEITEM);
+ headerLeftItem.SetText(GetTitleText());
+ header.AddItem(headerLeftItem);
+
+ ButtonItem btnRight;
+ btnRight.Construct(BUTTON_ITEM_STYLE_ICON, IDA_BACK_CMD);
+ Bitmap* pBitMap = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_HEADER_BACK);
+ btnRight.SetIcon(BUTTON_ITEM_STATUS_NORMAL, pBitMap);
+ pBitMap = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_HEADER_BACK_PRESSED);
+ btnRight.SetIcon(BUTTON_ITEM_STATUS_PRESSED, pBitMap);
+ header.SetButton(BUTTON_POSITION_RIGHT, btnRight);
+
+ ButtonItem btnLeft;
+ btnLeft.Construct(BUTTON_ITEM_STYLE_TEXT, IDA_OPTION_TRAY_COMMAND);
+ pBitMap = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_MORE);
+ btnLeft.SetIcon(BUTTON_ITEM_STATUS_NORMAL, pBitMap);
+ pBitMap = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_MORE_PRESSED);
+ btnLeft.SetIcon(BUTTON_ITEM_STATUS_PRESSED, pBitMap);
+ header.SetButton(BUTTON_POSITION_LEFT, btnLeft);
+
+ //header.Draw();
+
+ AppLogDebug("EXIT: r= %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+result
+ConversationForm::OnInitializing(void)
+{
+ AppLogDebug("ENTER");
+
+ result r = E_SUCCESS;
+ r = BaseForm::InitializeBase();
+ if (!IsFailed(r))
+ {
+ if (__convFormType == CONVERSATION_LIST_FORM_VIEW)
+ {
+ r = InitializeConversationViewControls();
+ }
+ else
+ {
+ r = InitializeConversationEditControls();
+ }
+ }
+
+ AppLogDebug("EXIT: r= %s", GetErrorMessage(GetLastResult()));
+ return r;
+}
+
+result
+ConversationForm::InitializeConversationViewControls(void)
+{
+ AppLogDebug("ENTER");
+
+ result r = E_SUCCESS;
+ //Initialize from element
+ __pConvMessageList = static_cast<GroupedListView*>(GetControl(L"IDC_MESSAGES_GROUPEDLIST"));
+ String strText;
+ Rectangle rect = GetClientAreaBounds();
+ int panelHeight = 0;
+ __pMsgComposePanel = new (std::nothrow) MessageComposePanel();
+ if (__pMsgComposePanel)
+ {
+ __pMsgComposePanel->Construct(L"IDL_MSG_COMPOSE_PANEL");
+ __pMsgComposePanel->SetKeypadEventListener(*this);
+ __pMsgComposePanel->SetSizeChangeEventListener(*this);
+ __pMsgComposePanel->SetBounds(Rectangle(0, rect.height - PANEL_HEIGHT, rect.width, PANEL_HEIGHT));
+ __pMsgComposePanel->SetMaximumSize(Dimension(__pMsgComposePanel->GetWidth(), __pMsgComposePanel->GetHeight() * 6));
+ __pMsgComposePanel->SetBackgroundColor(COLOR_COMPOSE_PANEL_BG);
+ __pMsgComposePanel->SetComposeEventListener(*this);
+ AddControl(*__pMsgComposePanel);
+ __pMsgComposePanel->ShowDefaultUi();
+ panelHeight = __pMsgComposePanel->GetHeight();
+ }
+ // Creates Conversation list
+ if (__pConvMessageList)
+ {
+ __pConvMessageList->SetBounds(Rectangle(0, 0, rect.width, rect.height - panelHeight));
+ __pConvMessageList->SetTextOfEmptyList(IDS_BLANK);
+ __pConvMessageList->SetItemProvider(*this);
+ __pConvMessageList->AddGroupedListViewItemEventListener(*this);
+ __pConvMessageList->SetBackgroundColor(COLOR_BUBBLE_BG);
+ __pConvMessageList->AddKeyEventListener(*this);
+ __pConvMessageList->AddTouchEventListener(*this);
+ }
+
+ AppLogDebug("EXIT: r= %s", GetErrorMessage(GetLastResult()));
+ return r;
+}
+
+result
+ConversationForm::InitializeConversationEditControls(void)
+{
+ AppLogDebug("ENTER");
+
+ result r = E_SUCCESS;
+ Rectangle rect = GetClientAreaBounds();
+
+ __pConvMessageList = static_cast<GroupedListView*>(GetControl(L"IDC_CONV_EDIT_GROUPEDLIST"));
+ if (__pConvMessageList)
+ {
+ __pConvMessageList->SetBounds(Rectangle(0, 0, rect.width, rect.height));
+ __pConvMessageList->SetItemProvider(*this);
+ __pConvMessageList->AddGroupedListViewItemEventListener(*this);
+ __pConvMessageList->SetBackgroundColor(COLOR_BUBBLE_BG);
+ }
+ else
+ {
+ r = E_FAILURE;
+ return r;
+ }
+ SetActionBarsVisible(FORM_ACTION_BAR_FOOTER, true);
+ SetEditModeHeader(*GetHeader());
+ SetEditModeFooter(*GetFooter());
+ __pSelectedIds = new (std::nothrow) ArrayListT< int>();
+ __pSelectedIds->Construct();
+ AddEditCheckBox();
+ AddLabelSelectionInfo();
+
+ AppLogDebug("EXIT: r= %s", GetErrorMessage(GetLastResult()));
+ return r;
+}
+
+result
+ConversationForm::OnTerminating(void)
+{
+ AppLogDebug("ENTER");
+
+ result r = E_SUCCESS;
+ if (__pConContactList)
+ {
+ delete __pConContactList;
+ }
+
+ if (__pContextMenuText)
+ {
+ delete __pContextMenuText;
+ }
+
+ AppLogDebug("EXIT: r= %s", GetErrorMessage(GetLastResult()));
+ return r;
+}
+
+void
+ConversationForm::OnSceneActivatedN(const SceneId& previousSceneId,
+ const SceneId& currentSceneId, IList* pArgs)
+{
+ AppLogDebug("ENTER");
+
+ if (pArgs)
+ {
+ if (__pCurrentThreadEntry)
+ {
+ delete __pCurrentThreadEntry;
+ }
+ __pCurrentThreadEntry = static_cast<ThreadData*>(pArgs->GetAt(0));
+ pArgs->RemoveAll();
+ delete pArgs;
+ }
+ ConversationPresentationModel* pConvPrModel = ConversationPresentationModel::GetInstance();
+ if (pConvPrModel)
+ {
+ int threadId = __pCurrentThreadEntry->GetEntryId();
+ pConvPrModel->GetConversationMessageList(threadId);
+ pConvPrModel->AddConversationEventListener(*this, threadId);
+ const MessageData* draftMessage = pConvPrModel->GetDraftMessage();
+ if ((__convFormType == CONVERSATION_LIST_FORM_VIEW) && draftMessage)
+ {
+ // Load draft to UI
+ __pMsgComposePanel->LoadMessageData(*draftMessage);
+ }
+ if (__convFormType == CONVERSATION_LIST_FORM_VIEW)
+ {
+ __pMsgComposePanel->ShowKeypad();
+ }
+ }
+ __pConvMessageList->UpdateList();
+ // Scroll to latest message.
+ int lastGroupIndex = __pConvMessageList->GetGroupCount() - 1;
+ int listItemCount = __pConvMessageList->GetItemCountAt(lastGroupIndex);
+ if (lastGroupIndex>= 0 && listItemCount > 0)
+ {
+ __pConvMessageList->ScrollToItem(lastGroupIndex, listItemCount - 1, LIST_SCROLL_ITEM_ALIGNMENT_BOTTOM);
+ }
+ // Prepare contact list
+ PrepareContactList();
+ SetHeader();
+ if (__pMsgComposePanel)
+ {
+ // Set text size based on settings
+ FontSettings* pFontSettings = SettingPresentationModel::GetInstance()->GetFontSettings();
+ int size = pFontSettings->GetMessageTextSize(pFontSettings->GetMessageFontType());
+ __pMsgComposePanel->SetTextSize(size);
+ }
+
+ AppLogDebug("EXIT: r= %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+ConversationForm::OnSceneDeactivated(const SceneId& currentSceneId,
+ const SceneId& nextSceneId)
+{
+ AppLogDebug("ENTER");
+
+ ConversationPresentationModel* pConvPrModel = ConversationPresentationModel::GetInstance();
+ if (pConvPrModel)
+ {
+ pConvPrModel->RemoveConversationEventListener(*this);
+ if (__convFormType == CONVERSATION_LIST_FORM_VIEW)
+ {
+ __pMsgComposePanel->HideKeypad();
+ }
+ }
+
+ AppLogDebug("EXIT: r= %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+ConversationForm::OnOrientationChanged(const Control& source, OrientationStatus orientationStatus)
+{
+ AppLogDebug("ENTER");
+ AppLogDebug("EXIT: r= %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+ConversationForm::OnActionPerformed(const Control& source, int actionId)
+{
+ AppLogDebug("ENTER");
+
+ //Handle command
+ switch (actionId)
+ {
+ case IDA_SELECT_ALL_ON:
+ {
+ CheckAll(true);
+ break;
+ }
+
+ case IDA_SELECT_ALL_OFF:
+ {
+ CheckAll(false);
+ break;
+ }
+
+ case IDA_BACK_CMD:
+ {
+ // Back to thread list view.
+ __pMsgComposePanel->HideKeypad(); // To avoid control overlapping
+ // Save SMS to draft
+ MessageComposeData* pComposeData = __pMsgComposePanel->GetMessageComposeDataN();
+ if (pComposeData)
+ {
+ MessagePresentationModel* pMessagePresentationModel = MessagePresentationModel::GetInstance();
+ if (pMessagePresentationModel)
+ {
+ pMessagePresentationModel->SaveMessage(*pComposeData, __pCurrentThreadEntry->GetEntryId());
+ }
+ delete pComposeData;
+ }
+ else
+ {
+ // If draft entry text deleted, then delete message
+ ConversationPresentationModel* pConvPrModel = ConversationPresentationModel::GetInstance();
+ if (pConvPrModel)
+ {
+ const MessageData* pDraftMessage = pConvPrModel->GetDraftMessage();
+ if (pDraftMessage)
+ {
+ pConvPrModel->Delete(pDraftMessage->GetEntryId(), REQUEST_DELETE_MESSAGE);
+ }
+ }
+ }
+ SceneManager* pSceneManager = SceneManager::GetInstance();
+ pSceneManager->GoBackward(BackwardSceneTransition(IDSCN_THREAD_LIST, SCENE_TRANSITION_ANIMATION_TYPE_NONE));
+ }
+ break;
+
+ case IDA_CONVLISTEDIT_MESSAGE_CANCEL:
+ {
+ if (__pDeleteConfirmPopup)
+ {
+ __pDeleteConfirmPopup->SetShowState(false);
+ delete __pDeleteConfirmPopup;
+ __pDeleteConfirmPopup = null;
+ }
+ }
+ break;
+
+ case IDA_CONVLISTEDIT_MESSAGE_DELETE:
+ {
+ __pDeleteConfirmPopup->SetShowState(false);
+ DeleteSelectedItem();
+ }
+ break;
+
+ case IDA_OPTION_TRAY_COMMAND:
+ {
+ ShowContactList(false);
+ Rectangle rect = GetClientAreaBounds();
+ if (!__pTrayPanel)
+ {
+ //Creates Option Tray Panel
+ __pTrayPanel = new (std::nothrow) Panel();
+ if (__pTrayPanel)
+ {
+ __pTrayPanel->Construct(L"IDL_OPTION_TRAY_PANEL");
+ __pTrayPanel->SetPosition(0, 0);
+ __pTrayPanel->SetBackgroundColor(COLOR_LIST_DIALOGUE_GROUP_TITLE);
+ // Set delete button
+ Button* pDeleteButton = static_cast<Button*>(__pTrayPanel->GetControl(L"IDC_BUTTON_DELETE"));
+ pDeleteButton->AddActionEventListener(*this);
+ pDeleteButton->SetActionId(IDA_CONVERSATION_DELETE);
+ bool enableDelete(false);
+ ConversationPresentationModel* pConvPrModel = ConversationPresentationModel::GetInstance();
+ if (pConvPrModel)
+ {
+ enableDelete = (pConvPrModel->GetCount() > 0);
+ }
+ pDeleteButton->SetEnabled(enableDelete);
+ Button* pPreviewButton = static_cast<Button*>(__pTrayPanel->GetControl(L"IDC_BUTTON_PREVIEW"));
+ pPreviewButton->AddActionEventListener(*this);
+ pPreviewButton->SetActionId(IDA_PREVIEW);
+ bool mmsMode(__pMsgComposePanel->IsMmsMode());
+ pPreviewButton->SetEnabled(mmsMode);
+ Button* pDurationButton = static_cast<Button*>(__pTrayPanel->GetControl(L"IDC_BUTTON_DURATION"));
+ pDurationButton->AddActionEventListener(*this);
+ pDurationButton->SetActionId(IDA_PAGE_DURATION);
+ String strFormat;
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGC_BUTTON2_DURATION_N_HPD_SECS", strFormat);
+ String strText;
+ strText.Format(strFormat.GetLength() * 2, strFormat.GetPointer(), __pMsgComposePanel->GetDefaultPageDuration());
+ pDurationButton->SetText(strText);
+ pDurationButton->SetEnabled(mmsMode);
+ __pConvMessageList->SetBounds(Rectangle(0, __pTrayPanel->GetHeight(), rect.width,
+ rect.height - __pTrayPanel->GetHeight() - __pMsgComposePanel->GetHeight()));
+ AddControl(*__pTrayPanel);
+ }
+ }
+ else
+ {
+ if (__pTrayPanel->GetShowState())
+ {
+ __pTrayPanel->SetShowState(false);
+ __pConvMessageList->SetBounds(Rectangle(0, 0, rect.width, rect.height - __pMsgComposePanel->GetHeight()));
+ }
+ else
+ {
+ __pConvMessageList->SetBounds(Rectangle(0, __pTrayPanel->GetHeight(), rect.width, rect.height - __pTrayPanel->GetHeight() - __pMsgComposePanel->GetHeight()));
+ __pTrayPanel->SetShowState(true);
+ }
+ }
+ }
+ break;
+
+ case IDA_CONVERSATION_DELETE:
+ {
+ __pTrayPanel->SetShowState(false);
+ __pConvMessageList->SetBounds(Rectangle(0, 0, GetClientAreaBounds().width, GetClientAreaBounds().height - __pMsgComposePanel->GetHeight()));
+ ArrayList* pArgList = new (std::nothrow) ArrayList();
+ if (pArgList)
+ {
+ //Transfer ownership
+ ThreadData* pThreadEntry = static_cast<ThreadData*>(__pCurrentThreadEntry->CloneN());
+ pArgList->Add(pThreadEntry);
+ SceneManager* pSceneManager = SceneManager::GetInstance();
+ pSceneManager->GoForward(ForwardSceneTransition(IDSCN_CONVERSATION_LIST_EDITOR, SCENE_TRANSITION_ANIMATION_TYPE_NONE), pArgList);
+ }
+ }
+ break;
+
+ case IDA_EDIT_CMD:
+ {
+ __pMsgComposePanel->HideKeypad(); // To avoid control overlapping
+ // Save to draft
+ MessageComposeData* pComposeData = __pMsgComposePanel->GetMessageComposeDataN();
+ if (pComposeData)
+ {
+ MessagePresentationModel* pmessagePresentationModel = MessagePresentationModel::GetInstance();
+ if (pmessagePresentationModel)
+ {
+ pmessagePresentationModel->SaveMessage(*pComposeData, __pCurrentThreadEntry->GetEntryId());
+ }
+ delete pComposeData;
+ }
+ // Goto edit view
+ ArrayList* pArgList = new (std::nothrow) ArrayList();
+ if (pArgList)
+ {
+ //Transfer ownership
+ ThreadData* pThreadEntry = static_cast<ThreadData*>(__pCurrentThreadEntry->CloneN());
+ pArgList->Add(pThreadEntry);
+ SceneManager* pSceneManager = SceneManager::GetInstance();
+ pSceneManager->GoForward(ForwardSceneTransition(IDSCN_CONVERSATION_LIST_EDITOR, SCENE_TRANSITION_ANIMATION_TYPE_NONE), pArgList);
+ }
+ }
+ break;
+
+ case IDA_DELETE_CMD:
+ {
+ // Show confirmation popup to delete messages.
+ ShowDeleteConfirmPopup();
+ break;
+ }
+
+ case IDA_CANCEL_CMD:
+ {
+ // Back to thread list view.
+ ArrayList* pArgList = new (std::nothrow) ArrayList();
+ if (pArgList)
+ {
+ ThreadData* pThreadEntry = static_cast<ThreadData*>(__pCurrentThreadEntry->CloneN());
+ pArgList->Add(pThreadEntry);
+
+ SceneManager* pSceneManager = SceneManager::GetInstance();
+ pSceneManager->GoBackward(BackwardSceneTransition(IDSCN_CONVERSATION_LIST, SCENE_TRANSITION_ANIMATION_TYPE_NONE), pArgList);
+ }
+ break;
+ }
+
+ case IDA_VOICE_CALL_CMD:
+ case IDA_VIDEO_CALL_CMD:
+ case IDA_VIEW_CONTACT:
+ break;
+
+ case IDA_CONVERSATION_FORM_VOICE_CALL:
+ {
+ ContactHelper(IDA_CONVERSATION_FORM_VOICE_CALL);
+ }
+ break;
+
+ case IDA_CONVERSATION_FORM_VIEW_CONTACT:
+ {
+ ContactHelper(IDA_CONVERSATION_FORM_VIEW_CONTACT);
+ }
+ break;
+
+ case IDA_CONVERSATION_FORM_ADD_CONTACT:
+ {
+ ContactHelper(IDA_CONVERSATION_FORM_ADD_CONTACT);
+ }
+ break;
+
+ case IDA_CONVERSATION_FORM_BLOCK:
+ {
+ ContactHelper(IDA_CONVERSATION_FORM_BLOCK);
+ }
+ break;
+
+ case IDA_CONVERSATION_FORM_UNBLOCK:
+ {
+ ContactHelper(IDA_CONVERSATION_FORM_UNBLOCK);
+ }
+ break;
+
+ case IDA_CONVERSATION_FORM_HEADER_TITLEITEM:
+ {
+ if (__pContactDetails && __pContactDetails->GetCount() > 1)
+ {
+
+ if (!__pList || !__pList->GetShowState())
+ {
+ ShowContactList(true);
+ }
+ else
+ {
+ ShowContactList(false);
+ }
+ }
+ else
+ {
+ CreateContextMenu(source);
+ }
+ }
+ break;
+
+ case IDA_BUTTON_MESSAGE_RESEND_DELETE_POPUP:
+ {
+ if (__pResendDelete)
+ {
+ delete __pResendDelete;
+ __pResendDelete = null;
+ }
+ }
+ break;
+
+ case IDA_PHONENUMBER_BLOCK_OK:
+ {
+ SettingPresentationModel* pSettingPrModel = SettingPresentationModel::GetInstance();
+ pSettingPrModel->AddToFilter(__pPhoneNumber, 1);
+ pSettingPrModel->RefreshSpamFilterList();
+ if (__pBlockPopup)
+ {
+ __pBlockPopup->SetShowState(false);
+ delete __pBlockPopup;
+ __pBlockPopup = null;
+ }
+
+ }
+ break;
+
+ case IDA_PHONENUMBER_BLOCK_CANCEL:
+ {
+ if (__pBlockPopup)
+ {
+ __pBlockPopup->SetShowState(false);
+ delete __pBlockPopup;
+ __pBlockPopup = null;
+ }
+ }
+ break;
+
+ case IDA_PREVIEW:
+ {
+ // Save to draft
+ __pMsgComposePanel->HideKeypad(); // To avoid control overlapping
+ // Save to draft
+ MessageComposeData* pComposeData = __pMsgComposePanel->GetMessageComposeDataN();
+ if (pComposeData)
+ {
+ //Priview MMS
+ ArrayList* pArgList = new (std::nothrow) ArrayList();
+ pArgList->Add((new (std::nothrow) Integer(MMS_FORM_PREVIEW)));
+ MessageData* pMessageData = new (std::nothrow) MessageData();
+ pMessageData->Construct(*pComposeData);
+ pArgList->Add(pMessageData);
+ SceneManager* pSceneManager = SceneManager::GetInstance();
+ pSceneManager->GoForward(ForwardSceneTransition(IDSCN_MMS_DETAIL, SCENE_TRANSITION_ANIMATION_TYPE_NONE), pArgList);
+ delete pComposeData;
+ }
+ }
+ break;
+
+ case IDA_PAGE_DURATION:
+ {
+ if (__pDurationPopup)
+ {
+ delete __pDurationPopup;
+ }
+ __pDurationPopup = new (std::nothrow) DurationPopup(*this);
+ __pDurationPopup->Construct(L"IDL_DURATION_POPUP");
+ __pDurationPopup->SetDuration(__pMsgComposePanel->GetDefaultPageDuration());
+ __pDurationPopup->Show();
+ __pDurationPopup->SetFocusToEditor();
+ }
+ break;
+
+ }
+
+ AppLogDebug("EXIT: r= %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+ConversationForm::OnKeypadActionPerformed(Control& source, KeypadAction keypadAction)
+{
+ AppLogDebug("ENTER");
+ AppLogDebug("EXIT: r= %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+ConversationForm::OnKeypadClosed(Control& source)
+{
+ AppLogDebug("ENTER");
+
+ Rectangle clientArea = GetClientAreaBounds();
+ Rectangle prePanelBounds = __pMsgComposePanel->GetBounds();
+
+ int listHeight(clientArea.height - __pMsgComposePanel->GetHeight());
+ if (__pTrayPanel && __pTrayPanel->GetShowState())
+ {
+ listHeight -= __pTrayPanel->GetHeight();
+ }
+ __pConvMessageList->SetSize(clientArea.width, listHeight);
+ Clipboard* pClibBoard = Clipboard::GetInstance();
+ if (pClibBoard && pClibBoard->IsPopupVisible()) // When clipboard is visible, panel position should change
+ {
+ __pMsgComposePanel->SetBounds(Rectangle(0, prePanelBounds.y - PANEL_HEIGHT + 35, clientArea.width, __pMsgComposePanel->GetDisplayHeight()));
+ }
+ else
+ {
+ __pMsgComposePanel->SetPosition(prePanelBounds.x, clientArea.height - prePanelBounds.height);
+ }
+ //
+ // Scroll to latest message.
+ int lastGroupIndex = __pConvMessageList->GetGroupCount() - 1;
+ int listItemCount = __pConvMessageList->GetItemCountAt(lastGroupIndex);
+ if (lastGroupIndex>= 0 && listItemCount > 0)
+ {
+ __pConvMessageList->ScrollToItem(lastGroupIndex, listItemCount - 1, LIST_SCROLL_ITEM_ALIGNMENT_BOTTOM);
+ }
+ AppLogDebug("EXIT: r= %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+ConversationForm::OnKeypadBoundsChanged(Control& source)
+{
+ AppLogDebug("ENTER");
+
+ Rectangle clientArea = GetClientAreaBounds();
+ if (__pMsgComposePanel != null)
+ {
+ __pMsgComposePanel->SetMaximumSize(Dimension(__pMsgComposePanel->GetWidth(), clientArea.height));
+ Rectangle prePanelBounds = __pMsgComposePanel->GetBounds();
+ __pMsgComposePanel->SetPosition(prePanelBounds.x, clientArea.height - prePanelBounds.height);
+ int listHeight(clientArea.height - __pMsgComposePanel->GetHeight());
+ __pConvMessageList->SetSize(clientArea.width, listHeight);
+ }
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+ConversationForm::OnKeypadOpened(Control& source)
+{
+ AppLogDebug("ENTER");
+
+ Rectangle clientArea = GetClientAreaBounds();
+ Rectangle prePanelBounds = __pMsgComposePanel->GetBounds();
+ int panelHeight = __pMsgComposePanel->GetDisplayHeight();
+ __pMsgComposePanel->SetBounds(Rectangle(prePanelBounds.x,
+ clientArea.height - panelHeight, __pMsgComposePanel->GetWidth(), panelHeight));
+ __pMsgComposePanel->SetShowState(true);
+ int listHeight(clientArea.height - __pMsgComposePanel->GetHeight());
+ if (__pTrayPanel && __pTrayPanel->GetShowState())
+ {
+ listHeight -= __pTrayPanel->GetHeight();
+ }
+ __pConvMessageList->SetSize(clientArea.width, listHeight);
+ int lastGroupIndex = __pConvMessageList->GetGroupCount() - 1;
+ int listItemCount = __pConvMessageList->GetItemCountAt(lastGroupIndex);
+ if (lastGroupIndex>=0 && listItemCount > 0)
+ {
+ __pConvMessageList->ScrollToItem(lastGroupIndex, listItemCount - 1, LIST_SCROLL_ITEM_ALIGNMENT_BOTTOM);
+ }
+ AppLogDebug("EXIT: r= %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+ConversationForm::OnKeypadWillOpen(Control& source)
+{
+ AppLogDebug("ENTER");
+ AppLogDebug("EXIT: r= %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+ConversationForm::OnSizeIncrease(const Tizen::Ui::Control& control)
+{
+ AppLogDebug("ENTER");
+ Rectangle clientArea = GetClientAreaBounds();
+ Rectangle prePanelBounds = __pMsgComposePanel->GetBounds();
+ int panelHeight = __pMsgComposePanel->GetDisplayHeight();
+ __pMsgComposePanel->SetBounds(Rectangle(prePanelBounds.x, clientArea.height - panelHeight,
+ __pMsgComposePanel->GetWidth(), panelHeight));
+ __pMsgComposePanel->SetShowState(true);
+ __pConvMessageList->SetSize(clientArea.width, clientArea.height - panelHeight);
+ int lastGroupIndex = __pConvMessageList->GetGroupCount() - 1;
+ int listItemCount = __pConvMessageList->GetItemCountAt(lastGroupIndex);
+ if (lastGroupIndex>= 0 && listItemCount > 0 )
+ {
+ __pConvMessageList->ScrollToItem(lastGroupIndex, listItemCount - 1, LIST_SCROLL_ITEM_ALIGNMENT_BOTTOM);
+ }
+ // Draw();
+ // Show();
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+}
+
+void
+ConversationForm::OnSizeDecrease(const Tizen::Ui::Control& control)
+{
+ AppLogDebug("ENTER");
+ Rectangle clientArea = GetClientAreaBounds();
+ Rectangle prePanelBounds = __pMsgComposePanel->GetBounds();
+ int panelHeight = __pMsgComposePanel->GetDisplayHeight();
+ __pMsgComposePanel->SetBounds(Rectangle(prePanelBounds.x, clientArea.height - panelHeight,
+ __pMsgComposePanel->GetWidth(), panelHeight));
+ __pMsgComposePanel->SetShowState(true);
+ __pConvMessageList->SetSize(clientArea.width, clientArea.height - panelHeight);
+ int lastGroupIndex = __pConvMessageList->GetGroupCount() - 1;
+ int listItemCount = __pConvMessageList->GetItemCountAt(lastGroupIndex);
+ if (lastGroupIndex>= 0 && listItemCount > 0)
+ {
+ __pConvMessageList->ScrollToItem(lastGroupIndex, listItemCount - 1, LIST_SCROLL_ITEM_ALIGNMENT_BOTTOM);
+ }
+ // Draw();
+ // Show();
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+}
+
+void
+ConversationForm::OnFormBackRequested(Form& source)
+{
+ AppLogDebug("ENTER");
+
+ switch (__convFormType)
+ {
+ case CONVERSATION_LIST_FORM_VIEW:
+ {
+ SceneManager* pSceneManager = SceneManager::GetInstance();
+ pSceneManager->GoBackward(BackwardSceneTransition(IDSCN_THREAD_LIST, SCENE_TRANSITION_ANIMATION_TYPE_NONE));
+
+ }
+ break;
+
+ case CONVERSATION_LIST_FORM_EDIT:
+ {
+ SceneManager* pSceneManager = SceneManager::GetInstance();
+ pSceneManager->GoBackward(BackwardSceneTransition(IDSCN_CONVERSATION_LIST, SCENE_TRANSITION_ANIMATION_TYPE_NONE));
+
+ }
+ break;
+ }
+
+ AppLogDebug("EXIT: r= %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+ConversationForm::OnConversationListChange(MsgStorageChangeType msgStorageChangeType)
+{
+ AppLogDebug("ENTER");
+
+ if (__convFormType == CONVERSATION_LIST_FORM_EDIT)
+ {
+ // NO need to update, it will go back previous scene after deleting conversation
+ // asychronusly, Otherwise it will try to update data each deletion. It may delete
+ // with notify end user.
+ AppLogDebug("EXIT: r= %s", GetErrorMessage(GetLastResult()));
+ return;
+ }
+ if(msgStorageChangeType == MSG_STORAGE_UPDATE_CONTACT)
+ {
+ ConversationPresentationModel* pConvPrModel = ConversationPresentationModel::GetInstance();
+ if (pConvPrModel && __pCurrentThreadEntry)
+ {
+ int threadId = __pCurrentThreadEntry->GetEntryId();
+ ThreadData* pThreadData = pConvPrModel->GetThreadDataByIdN(threadId);
+ if(__pCurrentThreadEntry)
+ {
+ delete __pCurrentThreadEntry;
+ }
+ __pCurrentThreadEntry = pThreadData;
+ Header* pHeader = GetHeader();
+ pHeader->Invalidate(true);
+ if(__pContactDetails)
+ {
+ delete __pContactDetails;
+ __pContactDetails = null;
+ }
+ PrepareContactList();
+ SetViewModeHeader(*pHeader);
+ if(__pList)
+ {
+ ShowContactList(true);
+ }
+ }
+ }
+ else
+ {
+ ConversationPresentationModel* pConvPrModel = ConversationPresentationModel::GetInstance();
+ if (pConvPrModel && __pCurrentThreadEntry)
+ {
+ int threadId = __pCurrentThreadEntry->GetEntryId();
+ pConvPrModel->GetConversationMessageList(threadId);
+ if (pConvPrModel->GetCount() <= 0)
+ {
+ // Back to thread list view.
+ SceneManager* pSceneManager = SceneManager::GetInstance();
+ pSceneManager->GoBackward(BackwardSceneTransition(IDSCN_THREAD_LIST, SCENE_TRANSITION_ANIMATION_TYPE_NONE));
+ }
+ else
+ {
+ __pConvMessageList->UpdateList();
+ if(__pTrayPanel)
+ {
+ Button* pDeleteButton = static_cast<Button*>(__pTrayPanel->GetControl(L"IDC_BUTTON_DELETE"));
+ pDeleteButton->SetEnabled(pConvPrModel->GetCount()>0);
+ pDeleteButton->Invalidate(true);
+ }
+ // Scroll to latest message.
+ int lastGroupIndex = __pConvMessageList->GetGroupCount() - 1;
+ AppLogDebug("lastGroupIndex :%d", lastGroupIndex);
+ int listItemCount = __pConvMessageList->GetItemCountAt(lastGroupIndex);
+ AppLogDebug("listItemCount : %d", listItemCount);
+ if (lastGroupIndex>= 0 && listItemCount > 0)
+ {
+ __pConvMessageList->ScrollToItem(lastGroupIndex, listItemCount - 1, LIST_SCROLL_ITEM_ALIGNMENT_BOTTOM);
+ __pConvMessageList->Draw();
+ }
+ }
+ }
+ }
+ AppLogDebug("EXIT: r= %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+result
+ConversationForm::AddEditCheckBox(void)
+{
+ AppLogDebug("ENTER");
+
+ result r = E_SUCCESS;
+ __pCheckAll = static_cast<CheckButton*>(GetControl(L"IDC_CHECKALL_BUTTON"));
+ if (__pCheckAll == null)
+ {
+ r = E_FAILURE;
+ return r;
+ }
+ Rectangle rect = GetClientAreaBounds();
+ __pCheckAll->SetColor(CHECK_BUTTON_STATUS_NORMAL, COLOR_CHECKBOX_BUTTON);
+ String strText;
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_COM_BODY_SELECT_ALL", strText);
+ __pCheckAll->SetText(strText);
+ __pCheckAll->SetActionId(IDA_SELECT_ALL_ON, IDA_SELECT_ALL_OFF);
+ __pCheckAll->AddActionEventListener(*this);
+ __pConvMessageList->SetBounds(Rectangle(0, __pCheckAll->GetHeight(), rect.width, rect.height - PANEL_HEIGHT));
+
+ AppLogDebug("EXIT: r= %s", GetErrorMessage(GetLastResult()));
+ return r;
+}
+
+result
+ConversationForm::AddLabelSelectionInfo()
+{
+ AppLogDebug("ENTER");
+ String strText,selcInfo;
+ result r = E_SUCCESS;
+ Rectangle rect = GetClientAreaBounds();
+ __pSelectionInfo = static_cast<Label*>(GetControl(L"IDC_CONV_EDIT_LABEL"));
+ if (__pSelectionInfo == null)
+ {
+ r = E_FAILURE;
+ return r;
+ }
+
+ __pSelectionInfo->SetBackgroundColor(COLOR_SELECTION_INFO_LABEL);
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_COM_BODY_PD_SELECTED", strText);
+ selcInfo.Format(MAX_LEN_SELECTION_INFO, strText.GetPointer(), __pSelectedIds->GetCount());
+ __pConvMessageList->SetBounds(Rectangle(rect.x, __pCheckAll->GetHeight(), rect.width,
+ rect.height - PANEL_HEIGHT - H_MSG_SELECTION_INFO_LABEL));
+ __pSelectionInfo->SetText(selcInfo);
+
+ AppLogDebug("EXIT: r= %s", GetErrorMessage(GetLastResult()));
+ return r;
+}
+
+void
+ConversationForm::CheckAll(bool value)
+{
+ AppLogDebug("ENTER");
+ if (__pSelectedIds)
+ {
+ __pSelectedIds->RemoveAll();
+ ConversationPresentationModel* pConvPrModel = ConversationPresentationModel::GetInstance();
+ if (pConvPrModel)
+ {
+ __pSelectedIds->RemoveAll();
+ int groupItemCount(0);
+
+ for (int groupIndex = 0; groupIndex < pConvPrModel->GetGroupCount(); groupIndex++)
+ {
+ groupItemCount = pConvPrModel->GetGroupItemCount(groupIndex);
+ for (int index = 0; index < groupItemCount; index++)
+ {
+ __pConvMessageList->SetItemChecked(groupIndex, index, value);
+ // If item check add it in selected list.
+ if (value)
+ {
+ int actualDataIndex = pConvPrModel->GetSelectedIndex(groupIndex) + index;
+ BaseData* pConvData = pConvPrModel->GetDataAt(actualDataIndex);
+ __pSelectedIds->Add(pConvData->GetEntryId());
+ }
+ }
+ }
+ }
+ Invalidate(true);
+ ShowHideSelectionInfo();
+ }
+
+ AppLogDebug("EXIT: r= %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+ConversationForm::ShowHideSelectionInfo(void)
+{
+ AppLogDebug("ENTER");
+ String strText,selcInfo;
+ int selectCount(0);
+ if (__pSelectedIds)
+ {
+ selectCount = __pSelectedIds->GetCount();
+ }
+ bool showInfo = (selectCount > 0);
+//TODO: SetBodus not retaining the check box state, because of this
+// Always showing selection information time being.
+#if 0
+ Rectangle rect = GetClientAreaBounds();
+ if (true)
+ {
+ if (__pSelectionInfo == null)
+ {
+ Rectangle rect = GetClientAreaBounds();
+ __pSelectionInfo = new (std::nothrow) Label();
+ __pSelectionInfo->Construct(Rectangle(rect.x, rect.height - H_MSG_SELECTION_INFO_LABEL, rect.width, H_MSG_SELECTION_INFO_LABEL), L"");
+ __pSelectionInfo->SetBackgroundColor(COLOR_SELECTION_INFO_LABEL);
+ __pConvMessageList->SetBounds(Rectangle(rect.x, __pCheckAll->GetHeight(), rect.width,
+ rect.height - __pCheckAll->GetHeight() - H_MSG_SELECTION_INFO_LABEL));
+ AddControl(*__pSelectionInfo);
+ }
+#endif
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_COM_BODY_PD_SELECTED", strText);
+ selcInfo.Format(MAX_LEN_SELECTION_INFO, strText.GetPointer(), selectCount);
+ __pSelectionInfo->SetShowState(true);
+ __pSelectionInfo->SetText(selcInfo);
+ __pSelectionInfo->RequestRedraw();
+#if 0
+}
+else
+{
+ __pSelectionInfo->SetShowState(false);
+ __pConvMessageList->SetBounds(Rectangle(rect.x, __pCheckAll->GetHeight(), rect.width,
+ rect.height - __pCheckAll->GetHeight()));
+
+ if (__pSelectionInfo)
+ {
+ // Hide selection info bar.
+ RemoveControl(*__pSelectionInfo);
+ __pSelectionInfo = null;
+ }
+ __pCheckAll->SetSelected(false);
+}
+#endif
+
+ GetFooter()->SetItemEnabled(0, showInfo);
+ GetFooter()->Draw();
+
+ AppLogDebug("EXIT: r= %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+ConversationForm::OnUserEventReceivedN(RequestId requestId, IList* pArgs)
+{
+ AppLogDebug("ENTER");
+
+ ConversationPresentationModel* pConvPrModel = ConversationPresentationModel::GetInstance();
+ switch (requestId)
+ {
+ case REQUEST_ENABLE_DISABLE_SEND_BUTTON:
+ {
+ __pMsgComposePanel->EnableSendButton(!__pMsgComposePanel->IsComposeFieldEmpty());
+ }
+ break;
+
+ case REQUEST_NORMAL_VIEW:
+ {
+ // Go back to thread list view
+ if (pConvPrModel && pConvPrModel->GetCount() <= 0)
+ {
+ // Back to thread list view.
+ SceneManager* pSceneManager = SceneManager::GetInstance();
+ pSceneManager->GoBackward(BackwardSceneTransition(IDSCN_THREAD_LIST, SCENE_TRANSITION_ANIMATION_TYPE_NONE));
+ }
+ else
+ {
+ ArrayList* pArgList = new (std::nothrow) ArrayList();
+ if (pArgList)
+ {
+ ThreadData* pThreadEntry = static_cast<ThreadData*>(__pCurrentThreadEntry->CloneN());
+ pArgList->Add(pThreadEntry);
+ SceneManager* pSceneManager = SceneManager::GetInstance();
+ pSceneManager->GoBackward(BackwardSceneTransition(IDSCN_CONVERSATION_LIST, SCENE_TRANSITION_ANIMATION_TYPE_NONE), pArgList);
+ }
+ }
+ }
+ break;
+
+ case REQUEST_SAVE_MESSAGE_ATTACHMENTS:
+ {
+#ifndef _DISABLE_MMS_FEATURE_
+
+ if (pArgs && pArgs->GetCount() > 0)
+ {
+ Integer* pMessageId = (Integer*) pArgs->GetAt(0);
+ MessagePresentationModel* pMsgPrModel = MessagePresentationModel::GetInstance();
+ if (pMsgPrModel)
+ {
+ // Transfer ownership to popup
+ MessageData* pMessageData = pMsgPrModel->GetMessageDataByIdN(pMessageId->ToInt());
+ if (pMessageData)
+ {
+ __pSaveAttachmentsPopup = new (std::nothrow) AttachementSavePopup(*this, pMessageData);
+ __pSaveAttachmentsPopup->Construct();
+ __pSaveAttachmentsPopup->Show();
+ }
+ }
+ pArgs->RemoveAll(true);
+ }
+#endif
+ }
+ break;
+
+ case REQUEST_OPTION_POPUP:
+ {
+ if (__pOptionPopup)
+ {
+ delete __pOptionPopup;
+ __pOptionPopup = null;
+ }
+ }
+ break;
+
+ case REQUEST_DESTROY_SAVE_ATTACHMENT_POPUP:
+ {
+ if (__pSaveAttachmentsPopup)
+ {
+ delete __pSaveAttachmentsPopup;
+ __pSaveAttachmentsPopup = null;
+ }
+ }
+ break;
+
+ case REQUEST_DESTROY_DURATION_POPUP:
+ {
+ if (__pDurationPopup)
+ {
+ __pMsgComposePanel->SetDefaultPageDuration(__pDurationPopup->GetDuration());
+ String strFormat;
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGC_BUTTON2_DURATION_N_HPD_SECS", strFormat);
+ String strText;
+ strText.Format(strFormat.GetLength() * 2, strFormat.GetPointer(), __pMsgComposePanel->GetDefaultPageDuration());
+ Button* pDurationButton = static_cast<Button*>(__pTrayPanel->GetControl(L"IDC_BUTTON_DURATION"));
+ pDurationButton->SetText(strText);
+ pDurationButton->Invalidate(false);
+ delete __pDurationPopup;
+ __pDurationPopup = null;
+ }
+ }
+ break;
+
+ case REQUEST_DELETE_START:
+ if(pArgs->GetCount() > 0)
+ {
+ Integer* pTotalCount = (Integer*)pArgs->GetAt(0);
+ OnDeleteStart(pTotalCount->ToInt());
+ }
+ break;
+
+ case REQUEST_DELETE_UPDATE:
+ if(pArgs->GetCount() > 0)
+ {
+ Integer* pCurrentCount = (Integer*)pArgs->GetAt(0);
+ Integer* pTotalCount = (Integer*)pArgs->GetAt(1);
+ OnDeleteUpdate(pCurrentCount->ToInt(),pTotalCount->ToInt());
+ }
+ break;
+
+ case REQUEST_DELETE_COMPLETE:
+ if(pArgs->GetCount() > 0)
+ {
+ Integer* pStatus = (Integer*)pArgs->GetAt(0);
+ OnDeleteComplete(pStatus->ToInt(),null);
+ }
+ break;
+
+ default:
+ break;
+
+
+ }
+
+ delete pArgs;
+ AppLogDebug("EXIT: r= %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+ConversationForm::OnDeleteStart(int totalCount)
+{
+ AppLogDebug("ENTER");
+
+ if (__pProgressPopup)
+ {
+ __pProgressPopup->ShowPopup();
+ }
+ AppLogDebug("EXIT: r= %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+ConversationForm::OnDeleteUpdate(int deleteCount, int totalCount)
+{
+ AppLogDebug("ENTER");
+
+ if (__pProgressPopup)
+ {
+ String statusInfo;
+ statusInfo.Format(MAX_LEN_SELECTION_INFO, IDS_DELETED_NUMBER_IDS, deleteCount, totalCount);
+ __pProgressPopup->UpdateProgressInfo(statusInfo);
+ __pProgressPopup->SetProgressValue(deleteCount);
+ }
+
+ AppLogDebug("EXIT: r= %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+ConversationForm::OnDeleteComplete(int errCode, Object* pThreadObject)
+{
+ // Back to thread view mode
+ AppLogDebug("ENTER");
+
+ if (__pProgressPopup)
+ {
+ __pProgressPopup->HidePopup();
+ delete __pProgressPopup;
+ __pProgressPopup = null;
+ }
+ // UI thread, Back to list view mode.
+ if (__convFormType == CONVERSATION_LIST_FORM_EDIT)
+ {
+ // Deletion completed, so update conversation presentation data
+ ConversationPresentationModel* pConvPrModel = ConversationPresentationModel::GetInstance();
+ if (pConvPrModel)
+ {
+ int threadId = __pCurrentThreadEntry->GetEntryId();
+ pConvPrModel->GetConversationMessageList(threadId);
+ }
+ RequestId requestId = REQUEST_NORMAL_VIEW;
+ SendUserEvent(requestId, null);
+ }
+
+ AppLogDebug("EXIT: r= %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+ConversationForm::DeleteSelectedItem(void)
+{
+ AppLogDebug("ENTER");
+
+ if (!__pSelectedIds || __pSelectedIds->GetCount() <= 0)
+ {
+ return;
+ }
+ // Create progress dialog.
+ if (!__pProgressPopup)
+ {
+ __pProgressPopup = new (std::nothrow) MsgProgressPopup();
+ String strTitle(IDS_DELETED_NUMBER_IDS);
+ __pProgressPopup->Construct(0, __pSelectedIds->GetCount(),strTitle);
+ }
+ ConversationPresentationModel* pConvPrModel = ConversationPresentationModel::GetInstance();
+ if (pConvPrModel)
+ {
+ pConvPrModel->Delete(__pSelectedIds, *this, REQUEST_DELETE_MESSAGE);
+ __pSelectedIds = null;
+ }
+ AppLogDebug("EXIT: r= %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+String
+ConversationForm::GetTitleText() const
+{
+
+ AppLogDebug("ENTER");
+ String contactName;
+ if(__pContactDetails && __pContactDetails->GetCount()>0)
+ {
+ ContactDetails* firstRecipientName = static_cast<ContactDetails*>(__pContactDetails->GetAt(0));
+ if(firstRecipientName->contactName.CompareTo(String(IDS_UNKNOWN))== 0)
+ {
+ contactName.Append(firstRecipientName->contactNumber);
+ }
+ else
+ {
+ contactName.Append(firstRecipientName->contactName);
+ }
+ if(__pContactDetails->GetCount() >= 2)
+ {
+ contactName.Append(IDS_PLUS_SPACE);
+ contactName.Append(__pContactDetails->GetCount() - 1);
+ }
+ }
+ else
+ {
+ contactName.Append(IDS_UNKNOWN);
+ }
+ AppLogDebug("EXIT: r= %s", GetErrorMessage(GetLastResult()));
+ return contactName;
+}
+
+void
+ConversationForm::PrepareContactList(void)
+{
+ AppLogDebug("ENTER");
+
+ if (__pContactDetails == null)
+ {
+ __pContactDetails = new (std::nothrow) ArrayList();
+ if (__pContactDetails)
+ {
+ __pContactDetails->Construct();
+ ConversationPresentationModel* pConvPrModel = ConversationPresentationModel::GetInstance();
+ int threadId = __pCurrentThreadEntry->GetEntryId();
+ if (pConvPrModel)
+ {
+ ArrayList* pContactList = pConvPrModel->GetRecipientDetailsListN(threadId);
+ if (pContactList)
+ {
+ for (int i = 0; i < pContactList->GetCount(); i++)
+ {
+ ContactDetails* recipientDetails = static_cast<ContactDetails*>(pContactList->GetAt(i));
+ ContactDetails* contactDetails = new (std::nothrow) ContactDetails();
+ contactDetails->contactName = recipientDetails->contactName;
+ contactDetails->contactNumber = recipientDetails->contactNumber;
+ __pContactDetails->Add(contactDetails);
+ }
+ pContactList->RemoveAll(true);
+ }
+ delete pContactList;
+ }
+ }
+ }
+
+
+ AppLogDebug("EXIT: r= %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+ConversationForm::ShowContactList(bool value)
+{
+ AppLogDebug("ENTER");
+
+ int height = H_LIST_ITEM_128PX * 3;
+
+ if (value)
+ {
+ if (__pList == null)
+ {
+ __pConContactList = new (std::nothrow) ContactList();
+ __pConContactList->Construct(__pContactDetails);
+ __pList = new (std::nothrow) ListView();
+ if (__pContactDetails->GetCount() < 3)
+ {
+ height = __pContactDetails->GetCount() * H_LIST_ITEM_128PX;
+ }
+ Rectangle rect = GetClientAreaBounds();
+ __pList->Construct(Rectangle(MARGIN_10PX * 5, 0, W_POPUP_CONTROL, height), true, SCROLL_STYLE_FADE_OUT);
+ __pList->SetBackgroundColor(Color::GetColor(COLOR_ID_WHITE));
+
+ __pList->AddListViewItemEventListener(*__pConContactList);
+ __pList->SetItemProvider(*__pConContactList);
+ AddControl(*__pList);
+ }
+ __pList->UpdateList();
+ __pList->SetShowState(true);
+ }
+ else
+ {
+ if (__pList)
+ {
+ RemoveControl(*__pList);
+ __pList = null;
+ }
+ if (__pConContactList)
+ {
+ delete __pConContactList;
+ __pConContactList = null;
+ }
+ }
+
+ AppLogDebug("EXIT: r= %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+result
+ConversationForm::CreateContextMenu(const Control& source)
+{
+ AppLogDebug("ENTER");
+
+ result r = E_SUCCESS;
+ String strText;
+ int index = -1;
+ if (__pContextMenuText)
+ {
+ delete __pContextMenuText;
+ __pContextMenuText = null;
+ }
+ if (__pContactDetails && __pContactDetails->GetCount()>0)
+ {
+ __pContextMenuText = new (std::nothrow) ContextMenu();
+ r = __pContextMenuText->Construct( Point(source.GetX() + source.GetWidth() / 2, source.GetY() + source.GetHeight()),
+ CONTEXT_MENU_STYLE_GRID);
+ if (r != E_SUCCESS)
+ {
+ delete __pContextMenuText;
+ __pContextMenuText = null;
+ AppLogDebug("EXIT: r= %s", GetErrorMessage(GetLastResult()));
+ return r;
+ }
+
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_COM_BODY_VOICE_CALL", strText);
+ __pContextMenuText->AddItem(strText, IDA_CONVERSATION_FORM_VOICE_CALL);
+
+ ContactDetails* contactname = static_cast<ContactDetails*>(__pContactDetails->GetAt(0));
+ String strUnknown(IDS_UNKNOWN);
+ if (contactname->contactName.CompareTo(strUnknown) == 0)
+ {
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_COM_OPT_ADD_CONTACT", strText);
+ __pContextMenuText->AddItem(strText, IDA_CONVERSATION_FORM_ADD_CONTACT);
+ }
+ else
+ {
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGC_OPT_VIEW_CONTACT", strText);
+ __pContextMenuText->AddItem(strText, IDA_CONVERSATION_FORM_VIEW_CONTACT);
+ }
+
+ SettingPresentationModel* pSettingPrModel = SettingPresentationModel::GetInstance();
+ pSettingPrModel->GetSpamFilterList();
+ pSettingPrModel->RefreshSpamFilterList();
+ index = pSettingPrModel->GetFilterListIndex(contactname->contactNumber);
+ if (index == -1)
+ {
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_OPT_BLOCK", strText);
+ __pContextMenuText->AddItem(strText, IDA_CONVERSATION_FORM_BLOCK);
+ }
+ else
+ {
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_OPT_UNBLOCK", strText);
+ __pContextMenuText->AddItem(strText, IDA_CONVERSATION_FORM_UNBLOCK);
+ }
+ __pContextMenuText->AddActionEventListener(*this);
+ __pContextMenuText->SetShowState(true);
+ __pContextMenuText->Show();
+ }
+
+
+ AppLogDebug("EXIT: r= %s", GetErrorMessage(GetLastResult()));
+ return r;
+}
+
+void
+ConversationForm::ContactHelper(int helperType)
+{
+ AppLogDebug("ENTER");
+
+ ContactDetails* contact = static_cast<ContactDetails*>(__pContactDetails->GetAt(0));
+ switch (helperType)
+ {
+ case IDA_CONVERSATION_FORM_VOICE_CALL:
+ {
+ if (CommonUtil::IsSimAvailable())
+ {
+ ContactUtility::VoiceCall(contact->contactNumber);
+ }
+ else
+ {
+ // Show error message.
+ String msgText;
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_SLCD_POP_TEXT_SIM_CARD_ERROR", msgText);
+ CommonUtil::ShowInfoPopup(msgText);
+ }
+ }
+ break;
+
+ case IDA_CONVERSATION_FORM_ADD_CONTACT:
+ {
+ ContactUtility::AddContact(contact->contactNumber);
+ }
+ break;
+
+ case IDA_CONVERSATION_FORM_VIEW_CONTACT:
+ {
+ ContactUtility::ViewContact(contact->contactNumber);
+ }
+ break;
+
+ case IDA_CONVERSATION_FORM_BLOCK:
+ {
+ BlockPopup(contact->contactNumber);
+ }
+ break;
+
+ case IDA_CONVERSATION_FORM_UNBLOCK:
+ {
+ UnBlockPhoneNumber(contact->contactNumber);
+ }
+ break;
+
+ }
+
+ AppLogDebug("EXIT: r= %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+
+void
+ConversationForm::ResendDeletePopup(int index)
+{
+ AppLogDebug("ENTER");
+ if (!__pResendDeletePopup)
+ {
+ ConversationPresentationModel* pConvPrModel = ConversationPresentationModel::GetInstance();
+ if (pConvPrModel)
+ {
+ ConversationData* pConvData = (ConversationData*) pConvPrModel->GetDataAt(index)->CloneN();
+ __pResendDeletePopup = new (std::nothrow) MsgResendDeletePopup(pConvData, *this);
+ if (__pResendDeletePopup->Construct() != E_SUCCESS)
+ {
+ delete __pResendDeletePopup;
+ __pResendDeletePopup = null;
+ }
+ else
+ {
+ __pResendDeletePopup->SetShowState(true);
+ __pResendDeletePopup->Draw();
+ __pResendDeletePopup->Show();
+ }
+ }
+ }
+
+ AppLogDebug("EXIT: r= %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+ConversationForm::OnKeyReleased(const Control& source, KeyCode keyCode)
+{
+ AppLogDebug("ENTER");
+
+ SettingPresentationModel* pSettingPrModel = SettingPresentationModel::GetInstance();
+ if (pSettingPrModel->IsVolumeKeyOn())
+ {
+ if (keyCode == KEY_SIDE_UP)
+ {
+ FontSettings* pFontSettings = SettingPresentationModel::GetInstance()->GetFontSettings();
+ int fontType = (int) pFontSettings->GetMessageFontType();
+ if (fontType < SETTING_HUGE_FONT)
+ {
+ fontType++;
+ pFontSettings->SetMessageFonttype((SettingFontType) fontType);
+ }
+ int size = pFontSettings->GetMessageTextSize((SettingFontType) fontType);
+ __pMsgComposePanel->SetTextSize(size);
+ __pConvMessageList->UpdateList();
+ }
+ else if (keyCode == KEY_SIDE_DOWN)
+ {
+ FontSettings* pFontSettings = SettingPresentationModel::GetInstance()->GetFontSettings();
+ int fontType = (int) pFontSettings->GetMessageFontType();
+ if (fontType > SETTING_TINY_FONT)
+ {
+ fontType--;
+ pFontSettings->SetMessageFonttype((SettingFontType) fontType);
+ }
+ int size = pFontSettings->GetMessageTextSize((SettingFontType) fontType);
+ __pMsgComposePanel->SetTextSize(size);
+ __pConvMessageList->UpdateList();
+ }
+ }
+
+ AppLogDebug("EXIT: r= %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+ConversationForm::OnPopupListItemSelected(const Control& popup, int selectIndex, const Object* pPopupListItem)
+{
+ AppLogDebug("ENTER");
+ AppLogDebug("EXIT: r= %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+ConversationForm::OnPopupClose(Object* pObject)
+{
+ AppLogDebug("ENTER");
+
+ if (__pResendDeletePopup && __pResendDeletePopup->Equals(*pObject))
+ {
+ delete __pResendDeletePopup;
+ __pResendDeletePopup = null;
+ }
+
+ if (__pOptionPopup && __pOptionPopup->Equals(*pObject))
+ {
+ delete __pOptionPopup;
+ __pOptionPopup = null;
+ }
+
+ AppLogDebug("EXIT: r= %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+
+void
+ConversationForm::OnTouchPressed(const Control& source,
+ const Point& currentPosition, const TouchEventInfo& touchInfo)
+{
+ AppLogDebug("ENTER");
+
+ if (__pList && __pList->IsVisible())
+ {
+ __pList->SetShowState(false);
+ }
+
+ if (source.Equals(*__pConvMessageList))
+ {
+ __pMsgComposePanel->HideKeypad();
+ }
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+ConversationForm::BlockPopup(const String& phoneNumber)
+{
+ AppLogDebug("ENTER");
+
+ String number;
+ String strText;
+ __pPhoneNumber.Clear();
+ __pPhoneNumber = phoneNumber;
+ __pBlockPopup = new (std::nothrow) Popup();
+ __pBlockPopup->Construct(L"IDL_BLOCK_POPUP");
+ Button* pButtonOk = static_cast<Button*>(__pBlockPopup->GetControl(L"IDC_BUTTON_OK"));
+ pButtonOk->SetActionId(IDA_PHONENUMBER_BLOCK_OK);
+ pButtonOk->AddActionEventListener(*this);
+ Button* pButtonCancel = static_cast<Button*>(__pBlockPopup->GetControl(L"IDC_BUTTON_CANCEL"));
+ pButtonCancel->SetActionId(IDA_PHONENUMBER_BLOCK_CANCEL);
+ pButtonCancel->AddActionEventListener(*this);
+ Label* pLabelNumber = static_cast<Label*>(__pBlockPopup->GetControl(L"IDC_BLOCKNUMBER_LABEL"));
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_POP_BLOCK_PS_Q", strText);
+ strText.Replace(L"%s", phoneNumber);
+ number.Append(strText);
+ pLabelNumber->SetText(number);
+ __pBlockPopup->Show();
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+ConversationForm::UnBlockPhoneNumber(const String& phoneNumber)
+{
+ AppLogDebug("ENTER");
+
+ SettingPresentationModel* pSettingPrModel = SettingPresentationModel::GetInstance();
+ int filterIndex = pSettingPrModel->GetFilterListIndex(phoneNumber);
+ if (filterIndex >= 0)
+ {
+ pSettingPrModel->DeleteFilter(filterIndex, 1);
+ pSettingPrModel->RefreshSpamFilterList();
+ }
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+
+void
+ConversationForm::OnGroupedListViewItemStateChanged(GroupedListView& listView, int groupIndex, int itemIndex, int elementId, ListItemStatus status)
+{
+ AppLogDebug("ENTER");
+
+ //List item selected.
+ ConversationPresentationModel* pConvPrModel = ConversationPresentationModel::GetInstance();
+ if (pConvPrModel)
+ {
+ int index = pConvPrModel->GetSelectedIndex(groupIndex) + itemIndex;
+ BaseData* pConvData = pConvPrModel->GetDataAt(index);
+
+ switch (status)
+ {
+ case LIST_ITEM_STATUS_CHECKED:
+ {
+ __pSelectedIds->Add(pConvData->GetEntryId());
+ if (__pSelectedIds->GetCount() > 0)
+ {
+ GetFooter()->SetItemEnabled(0, true);
+ GetFooter()->Draw();
+ }
+ if (__pSelectedIds->GetCount() == pConvPrModel->GetCount())
+ {
+ __pCheckAll->SetSelected(true);
+ }
+ ShowHideSelectionInfo();
+ }
+ break;
+
+ case LIST_ITEM_STATUS_UNCHECKED:
+ {
+ __pSelectedIds->Remove(pConvData->GetEntryId());
+ if (__pSelectedIds->GetCount() <= pConvPrModel->GetCount())
+ {
+ __pCheckAll->SetSelected(false);
+ }
+ ShowHideSelectionInfo();
+ }
+ break;
+
+ case LIST_ITEM_STATUS_SELECTED:
+ {
+ if (elementId == LVBubbleListItem::MSG_BUBBLE_ITEM_FAIL_STATUS)
+ {
+ ResendDeletePopup(index);
+ }
+ else if (elementId == LVBubbleListItem::MSG_BUBBLE_ITEM_TEXT ||
+ elementId == LVBubbleListItem::MSG_BUBBLE_ITEM_BG)
+ {
+ if (__pList && __pList->GetShowState())
+ {
+ ShowContactList(false);
+ return;
+ }
+ if (__isListViewItemLongPressed)
+ {
+ __isListViewItemLongPressed = false;
+ ConversationPresentationModel* pConvPrModel = ConversationPresentationModel::GetInstance();
+ if (pConvPrModel && (elementId == LVBubbleListItem::MSG_BUBBLE_ITEM_TEXT))
+ {
+ __pMsgComposePanel->HideKeypad();
+ int index = pConvPrModel->GetSelectedIndex(groupIndex) + itemIndex;
+ ConversationData* pConvData = (ConversationData*) pConvPrModel->GetDataAt(index)->CloneN();
+ pConvData->SetDisplayName(__pCurrentThreadEntry->GetDisplayName());
+ if (pConvData)
+ {
+ __pOptionPopup = new (std::nothrow) OptionPopup(*this, pConvData);
+ __pOptionPopup->Construct(__pCurrentThreadEntry->GetEntryId(), index);
+ __pOptionPopup->SetShowState(true);
+ __pOptionPopup->Draw();
+ __pOptionPopup->Show();
+ // pConvData = null; // Transfer ownership to popup
+ }
+ }
+ }
+ }
+ else if (elementId == LVBubbleListItem::MSG_BUBBLE_ITEM_DETAILS)
+ {
+#ifndef _DISABLE_MMS_FEATURE_
+
+ // Show MMS details
+ ArrayList* pArgList = new (std::nothrow) ArrayList();
+ pArgList->Add((new (std::nothrow) Integer(MMS_FORM_NORMAL)));
+ pArgList->Add((new (std::nothrow) Integer(pConvData->GetEntryId())));
+ SceneManager* pSceneManager = SceneManager::GetInstance();
+ pSceneManager->GoForward(ForwardSceneTransition(IDSCN_MMS_DETAIL, SCENE_TRANSITION_ANIMATION_TYPE_NONE), pArgList);
+#endif
+ }
+ }
+ break;
+
+ case LIST_ITEM_STATUS_HIGHLIGHTED:
+ case LIST_ITEM_STATUS_MORE:
+ break;
+ }
+ }
+
+ AppLogDebug("EXIT: r= %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+ConversationForm::OnGroupedListViewItemSwept(GroupedListView& listView, int groupIndex,
+ int itemIndex, SweepDirection direction)
+{
+ AppLogDebug("ENTER");
+ AppLogDebug("EXIT: r= %s", GetErrorMessage(GetLastResult()));
+ return;
+
+}
+
+void
+ConversationForm::OnGroupedListViewContextItemStateChanged(GroupedListView& listView, int groupIndex,
+ int itemIndex, int elementId, ListContextItemStatus status)
+{
+ AppLogDebug("ENTER");
+ AppLogDebug("EXIT: r= %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+ConversationForm::OnGroupedListViewItemLongPressed(GroupedListView& listView, int groupIndex,
+ int itemIndex, int elementId, bool& invokeListViewItemCallback)
+{
+ AppLogDebug("ENTER");
+ invokeListViewItemCallback = true;
+ __isListViewItemLongPressed = true;
+// //TODO: Long key press crashing
+// ConversationPresentationModel* pConvPrModel = ConversationPresentationModel::GetInstance();
+// if (pConvPrModel && (elementId == LVBubbleListItem::MSG_BUBBLE_ITEM_TEXT))
+// {
+// __pMsgComposePanel->HideKeypad();
+// int index = pConvPrModel->GetSelectedIndex(groupIndex) + itemIndex;
+// ConversationData* pConvData = (ConversationData*) pConvPrModel->GetDataAt(index)->CloneN();
+// if (pConvData)
+// {
+// __pOptionPopup = new (std::nothrow) OptionPopup(*this, pConvData);
+// __pOptionPopup->Construct(__pCurrentThreadEntry->GetEntryId(), index);
+// __pOptionPopup->SetShowState(true);
+// __pOptionPopup->Draw();
+// __pOptionPopup->Show();
+// pConvData = null; // Transfer ownership to popup
+// }
+//
+// }
+
+ AppLogDebug("EXIT: r= %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+
+int
+ConversationForm::GetGroupCount(void)
+{
+ AppLogDebug("ENTER");
+
+ int groupCount = 0;
+ ConversationPresentationModel* pConvPrModel = ConversationPresentationModel::GetInstance();
+ if (pConvPrModel)
+ {
+ groupCount = pConvPrModel->GetGroupCount();
+ }
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return groupCount;
+}
+
+int
+ConversationForm::GetItemCount(int groupIndex)
+{
+ AppLogDebug("ENTER");
+ int groupItemCount = 0;
+ ConversationPresentationModel* pConvPrModel = ConversationPresentationModel::GetInstance();
+ if (pConvPrModel)
+ {
+ groupItemCount = pConvPrModel->GetGroupItemCount(groupIndex);
+ }
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return groupItemCount;
+}
+
+GroupItem*
+ConversationForm::CreateGroupItem(int groupIndex, int itemWidth)
+{
+ AppLogDebug("ENTER");
+ GroupItem* pItem = new (std::nothrow) GroupItem();
+ ConversationPresentationModel* pConvPrModel = ConversationPresentationModel::GetInstance();
+ if (pConvPrModel)
+ {
+ pItem->Construct(Dimension(itemWidth, H_GROUP_HEADER));
+ Bitmap* pGroupBgBitmap = BitmapUtility::GetInstance()->GetBubbleGroupBgBitmap(MSG_GROUP_BG_BITMAP_BUBBLE,
+ pConvPrModel->GetGroupName(groupIndex), Dimension(itemWidth, 46));
+ if (pGroupBgBitmap)
+ {
+ pItem->SetBackgroundBitmap(pGroupBgBitmap);
+ delete pGroupBgBitmap;
+ }
+ }
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return pItem;
+}
+
+bool
+ConversationForm::DeleteGroupItem(int groupIndex, GroupItem* pItem, int itemWidth)
+{
+ AppLogDebug("ENTER");
+
+ if (pItem)
+ {
+ delete pItem;
+ pItem = null;
+ }
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return true;
+}
+
+ListItemBase*
+ConversationForm::CreateItem(int groupIndex, int itemIndex, int itemWidth)
+{
+ AppLogDebug("ENTER");
+ LVBubbleListItem* pCustomItem = null;
+ ConversationPresentationModel* pConvPrModel = ConversationPresentationModel::GetInstance();
+ if (pConvPrModel)
+ {
+ int index = pConvPrModel->GetSelectedIndex(groupIndex) + itemIndex;
+ // Creates an item format of the CustomList
+ SettingPresentationModel* pSettingPrModel = SettingPresentationModel::GetInstance();
+ ConversationData* pConvData = (ConversationData*) pConvPrModel->GetDataAt(index);
+ FontSettings* pFontSettings = pSettingPrModel->GetFontSettings();
+ bool editMode = (__convFormType == CONVERSATION_LIST_FORM_EDIT);
+ pCustomItem = new (std::nothrow) LVBubbleListItem(*pConvData, *__pConvMessageList, groupIndex, itemIndex, itemWidth,
+ *pFontSettings, editMode);
+ // Create layout.
+ pCustomItem->CreateBubbleLayout();
+ }
+ AppLogDebug("EXIT: r= %s", GetErrorMessage(GetLastResult()));
+ return pCustomItem;
+}
+
+bool
+ConversationForm::DeleteItem(int groupIndex, int itemIndex, ListItemBase* pItem, int itemWidth)
+{
+ AppLogDebug("ENTER");
+
+ if (pItem)
+ {
+ delete pItem;
+ pItem = null;
+ }
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return true;
+}
+
+void
+ConversationForm::OnComposeStateChange(ComposeType type)
+{
+ AppLogDebug("ENTER");
+ bool mmsMode(type == COMPOSE_MMS);
+ if (__pTrayPanel)
+ {
+ Button* pPreviewButton = static_cast<Button*>(__pTrayPanel->GetControl(L"IDC_BUTTON_PREVIEW"));
+ pPreviewButton->SetEnabled(mmsMode);
+ pPreviewButton->Invalidate(false);
+ Button* pDurationButton = static_cast<Button*>(__pTrayPanel->GetControl(L"IDC_BUTTON_DURATION"));
+ pDurationButton->SetEnabled(mmsMode);
+ pDurationButton->Invalidate(false);
+ }
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+}
+
+void
+ConversationForm::OnSendButtonClick(void)
+{
+ AppLogDebug("ENTER");
+
+ MessageComposeData* pComposeData = __pMsgComposePanel->GetMessageComposeDataN();
+ if (pComposeData)
+ {
+ MessagePresentationModel* pMsgPrModel = MessagePresentationModel::GetInstance();
+ if (pMsgPrModel)
+ {
+ pMsgPrModel->SendMessage(*pComposeData, __pCurrentThreadEntry->GetEntryId());
+ }
+ delete pComposeData;
+ }
+// __pMsgComposePanel->Reset();
+ __pMsgComposePanel->HideKeypad();
+ UiApp* pAppUi = UiApp::GetInstance();
+ if( pAppUi && pAppUi->GetAppUiState() == APP_UI_STATE_FOREGROUND)
+ {
+ __pMsgComposePanel->SetFocusToEditor();
+ }
+ __pMsgComposePanel->ClearText();
+ __pMsgComposePanel->Invalidate(true);
+
+ ShowContactList(false); //To hide contact list on send button click
+
+ // If draft entry send delete it
+ ConversationPresentationModel* pConvPrModel = ConversationPresentationModel::GetInstance();
+ if (pConvPrModel)
+ {
+ const MessageData* pDraftMessage = pConvPrModel->GetDraftMessage();
+ if (pDraftMessage)
+ {
+
+ pConvPrModel->Delete(pDraftMessage->GetEntryId(), REQUEST_DELETE_MESSAGE);
+ }
+ }
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+ConversationForm::ShowDeleteConfirmPopup(void)
+{
+ AppLogDebug("ENTER");
+
+ if (!__pDeleteConfirmPopup)
+ {
+ AppLogDebug("ENTER");
+ __pDeleteConfirmPopup = new (std::nothrow) BaseCustomPopup();
+ __pDeleteConfirmPopup->Construct(L"IDL_DELETE_POPUP");
+ Button* pButtonDelete = static_cast<Button*>(__pDeleteConfirmPopup->GetControl(L"IDC_BUTTON_LEFT"));
+ Button* pButtonCancel = static_cast<Button*>(__pDeleteConfirmPopup->GetControl(L"IDC_BUTTON_RIGHT"));
+ pButtonDelete->SetActionId(IDA_CONVLISTEDIT_MESSAGE_DELETE);
+ pButtonDelete->AddActionEventListener(*this);
+ pButtonCancel->SetActionId(IDA_CONVLISTEDIT_MESSAGE_CANCEL);
+ pButtonCancel->AddActionEventListener(*this);
+ __pDeleteConfirmPopup->Show();
+ }
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
--- /dev/null
+//\r
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.\r
+//\r
+// Licensed under the Flora License, Version 1.0 (the License);\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+// http://floralicense.org/license/\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an AS IS BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+//\r
+\r
+#include <cstdlib>\r
+#include <msg.h>\r
+#include <msg_storage.h>\r
+#include <msg_storage_types.h>\r
+\r
+#include <FBase.h>\r
+#include <FBaseColIMapEnumerator.h>\r
+#include <FBaseErrorDefine.h>\r
+#include <FBaseRtIEventListener.h>\r
+\r
+#include "MsgConversationData.h"\r
+#include "MsgConversationPresentationModel.h"\r
+#include "MsgDeleteHandlerThread.h"\r
+#include "MsgEvent.h"\r
+#include "MsgIConversationEventListener.h"\r
+#include "MsgIThreadEventListener.h"\r
+#include "MsgMessageData.h"\r
+#include "MsgTypes.h"\r
+\r
+using namespace Tizen::Base;\r
+using namespace Tizen::Base::Collection;\r
+using namespace Tizen::Base::Runtime;\r
+\r
+ConversationPresentationModel* ConversationPresentationModel::__pInstance = null;\r
+\r
+ConversationPresentationModel*\r
+ConversationPresentationModel::GetInstance(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ if (__pInstance == null)\r
+ {\r
+ CreateInstance();\r
+ }\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return __pInstance;\r
+}\r
+\r
+ConversationPresentationModel::ConversationPresentationModel(void)\r
+ : __pConversationListener(null)\r
+ , __draftMessageId(-1)\r
+ , __pDraftMessage(null)\r
+{\r
+ //Empty implementation\r
+}\r
+\r
+ConversationPresentationModel::~ConversationPresentationModel(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ if (__pDraftMessage)\r
+ {\r
+ delete __pDraftMessage;\r
+ }\r
+\r
+ if (__pConversationListener)\r
+ {\r
+ __pConversationListener->RemoveAll(true);\r
+ delete __pConversationListener;\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
+\r
+result\r
+ConversationPresentationModel::Construct(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ result r = ListPresentationModel::Construct();\r
+ if (r == E_SUCCESS)\r
+ {\r
+\r
+ void (* msg_storage_change_cb)(msg_handle_t, msg_storage_change_type_t, msg_id_list_s*, void*);\r
+ msg_storage_change_cb = MessageStorageChangeCallback;\r
+ msg_error_t err = msg_reg_storage_change_callback(__pMsgHandle, msg_storage_change_cb, (void*) this);\r
+ if (err != MSG_SUCCESS)\r
+ {\r
+ AppLogDebug("msg_reg_storage_change_callback err = %d", (int) err);\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ r = E_FAILURE;\r
+ return r;\r
+ }\r
+ // Create conversation observer list.\r
+ __pConversationListener = new (std::nothrow) ArrayList();\r
+ __pConversationListener->Construct();\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(r));\r
+ return r;\r
+}\r
+\r
+void\r
+ConversationPresentationModel::CreateInstance(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+ __pInstance = new (std::nothrow) ConversationPresentationModel();\r
+ if (E_SUCCESS != __pInstance->Construct())\r
+ {\r
+ delete __pInstance;\r
+ __pInstance = null;\r
+ return;\r
+ }\r
+ // To destroy singletone instance on app exit\r
+ std::atexit(DestroyInstance);\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
+\r
+void\r
+ConversationPresentationModel::DestroyInstance(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+ delete __pInstance;\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
+\r
+// Fetch thread message list\r
+void\r
+ConversationPresentationModel::GetConversationMessageList(int threadId)\r
+{\r
+ AppLogDebug("ENTER");\r
+ // Need to reset group info, else it will keep wrong info\r
+ __pGroupInfo->RemoveAll(true);\r
+ __pDataList->RemoveAll(true);\r
+ delete __pDraftMessage;\r
+ __pDraftMessage = null;\r
+ result r = E_SUCCESS;\r
+ msg_error_t err = MSG_SUCCESS;\r
+ msg_struct_list_s* pMsgDataList = new (std::nothrow) msg_struct_list_s();\r
+ pMsgDataList->nCount = 0;\r
+ pMsgDataList->msg_struct_info = NULL;\r
+ msg_thread_id_t convThreadID = (msg_thread_id_t) threadId;\r
+ err = msg_get_conversation_view_list(__pMsgHandle, convThreadID, pMsgDataList);\r
+ //err = msg_get_message_list(__pMsgHandle, MSG_ALLBOX_ID, convThreadID, 0, MSG_STORAGE_PHONE, pMsgDataList);\r
+ if (err == MSG_SUCCESS)\r
+ {\r
+ ConversationData* pConvData = null;\r
+ for (int index = 0; index < pMsgDataList->nCount; index++)\r
+ {\r
+ int folderId(MSG_FOLDER_TYPE_DRAFT);\r
+ msg_get_int_value(pMsgDataList->msg_struct_info[index], MSG_CONV_MSG_FOLDER_ID_INT, &folderId);\r
+ if (folderId == MSG_DRAFT_ID)\r
+ {\r
+ err = msg_get_int_value(pMsgDataList->msg_struct_info[index],\r
+ MSG_CONV_MSG_ID_INT, &__draftMessageId);\r
+ continue;\r
+ }\r
+ pConvData = new (std::nothrow) ConversationData(IDS_BLANK_SPACE);\r
+ r = pConvData->Construct(pMsgDataList->msg_struct_info[index]);\r
+ if (r == E_SUCCESS)\r
+ {\r
+ r = __pDataList->Add(pConvData);\r
+ if (r != E_SUCCESS)\r
+ {\r
+ delete pConvData;\r
+ }\r
+ }\r
+ else\r
+ {\r
+ delete pConvData;\r
+ }\r
+ }\r
+ PrepareGroupInfo();\r
+ }\r
+ AppLogDebug(" msg_get_conversation_view_list err = %d", (int) err);\r
+ msg_release_list_struct(pMsgDataList);\r
+ delete pMsgDataList;\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return;\r
+}\r
+\r
+result\r
+ConversationPresentationModel::AddConversationEventListener(const IConversationEventListener& convLitener,\r
+ const int threadId)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ ConversationEvent* pConvEvent = new (std::nothrow) ConversationEvent(&convLitener, threadId);\r
+ result res = __pConversationListener->Add(pConvEvent); // Transfer ownership.\r
+ if (res != E_SUCCESS)\r
+ {\r
+ delete pConvEvent;\r
+ pConvEvent = null;\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return res;\r
+}\r
+\r
+result\r
+ConversationPresentationModel::RemoveConversationEventListener(const IConversationEventListener& convLitener)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ result r = E_SUCCESS;\r
+ if (__pConversationListener)\r
+ {\r
+ IEnumerator* pEventenum = __pConversationListener->GetEnumeratorN();\r
+ if (pEventenum)\r
+ {\r
+ ConversationEvent* pConvEvent = null;\r
+ while (pEventenum->MoveNext() == E_SUCCESS)\r
+ {\r
+ pConvEvent = static_cast<ConversationEvent*>(pEventenum->GetCurrent());\r
+\r
+ if (pConvEvent->IsSame(&convLitener))\r
+ {\r
+ // Took ownership, delete element object.\r
+ r = __pConversationListener->Remove(*pConvEvent, true);\r
+ break;\r
+ }\r
+ }\r
+ }\r
+ // Free memory\r
+ if (pEventenum)\r
+ {\r
+ delete pEventenum;\r
+ pEventenum = null;\r
+ }\r
+ }\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return r;\r
+}\r
+\r
+void\r
+ConversationPresentationModel::MessageStorageChangeCallback(msg_handle_t pHandle,\r
+ msg_storage_change_type_t storageChangeType, msg_id_list_s* pMsgIdList, void* pUserData)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ if (!pUserData || !pMsgIdList)\r
+ {\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return;\r
+ }\r
+ static_cast<ConversationPresentationModel*>(pUserData)->OnMessageStorageChange(storageChangeType, pMsgIdList);\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return;\r
+}\r
+\r
+void\r
+ConversationPresentationModel::OnMessageStorageChange(msg_storage_change_type_t storageChangeType, msg_id_list_s* pMsgIdList)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ if (__pConversationListener->GetCount() > 0)\r
+ {\r
+ NotifyConversationChange(storageChangeType);\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return;\r
+}\r
+\r
+void\r
+ConversationPresentationModel::NotifyConversationChange(msg_storage_change_type_t storageChangeType)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ IEnumerator* pEventenum = __pConversationListener->GetEnumeratorN();\r
+ if (pEventenum)\r
+ {\r
+ ConversationEvent* pConvEvent = null;\r
+ while (pEventenum->MoveNext() == E_SUCCESS)\r
+ {\r
+ pConvEvent = static_cast<ConversationEvent*>(pEventenum->GetCurrent());\r
+ IConversationEventListener* pConvObserver = static_cast<IConversationEventListener*>(\r
+ const_cast<IEventListener*>(pConvEvent->GetEvent()));\r
+ if (pConvObserver)\r
+ {\r
+ pConvObserver->OnConversationListChange((MsgStorageChangeType)storageChangeType);\r
+ }\r
+ }\r
+ }\r
+ // Free memory\r
+ if (pEventenum)\r
+ {\r
+ delete pEventenum;\r
+ pEventenum = null;\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return;\r
+}\r
+\r
+const MessageData*\r
+ConversationPresentationModel::GetDraftMessage(void) const\r
+{\r
+ AppLogDebug("ENTER");\r
+ if (__pDraftMessage == null && __draftMessageId >= 0)\r
+ {\r
+ __pDraftMessage = GetMessageDataByIdN(__draftMessageId);\r
+ }\r
+#ifdef _DISABLE_MMS_FEATURE_\r
+ if (__pDraftMessage && __pDraftMessage->IsMms())\r
+ {\r
+ delete __pDraftMessage;\r
+ __pDraftMessage = null;\r
+ }\r
+#endif\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return __pDraftMessage;\r
+}\r
--- /dev/null
+//\r
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.\r
+//\r
+// Licensed under the Flora License, Version 1.0 (the License);\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+// http://floralicense.org/license/\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an AS IS BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+//\r
+\r
+#include "MsgCustomTableViewItem.h"\r
+#include "MsgTypes.h"\r
+\r
+using namespace Tizen::Graphics;\r
+using namespace Tizen::Ui::Controls;\r
+\r
+static const int W_GROUP_LIST_LEFT_MARGIN = 7;\r
+\r
+\r
+CustomTableViewItem::CustomTableViewItem(void)\r
+{\r
+}\r
+\r
+CustomTableViewItem::~CustomTableViewItem(void)\r
+{\r
+}\r
+\r
+result\r
+CustomTableViewItem::Construct(const Tizen::Graphics::Dimension& itemSize, TableViewAnnexStyle style)\r
+{\r
+ result r = TableViewItem::Construct(itemSize, style);\r
+\r
+ // Set default background.\r
+ if (r == E_SUCCESS)\r
+ {\r
+ Canvas* pViewCanvas = new (std::nothrow) Canvas();\r
+ if (pViewCanvas)\r
+ {\r
+ pViewCanvas->Construct(Rectangle(0, 0, GetWidth(), GetHeight()));\r
+ pViewCanvas->FillRectangle(COLOR_GROUP_BORDER, Rectangle(0, 0, W_GROUP_LIST_LEFT_MARGIN, GetHeight()));\r
+ Bitmap* pBackgroundBg = new (std::nothrow) Bitmap();\r
+ pBackgroundBg->Construct(*pViewCanvas, pViewCanvas->GetBounds());\r
+ SetBackgroundBitmap(pBackgroundBg);\r
+ SetBackgroundBitmap(pBackgroundBg, TABLE_VIEW_ITEM_DRAWING_STATUS_PRESSED);\r
+ delete pBackgroundBg;\r
+ delete pViewCanvas;\r
+ }\r
+ }\r
+ return r;\r
+}\r
+\r
+void\r
+CustomTableViewItem::EnableExpandViewModeStyle(const Bitmap* pNormalBitmap, const Bitmap* pPressBitmap)\r
+{\r
+ AppLogDebug("ENTER");\r
+ Canvas* pViewCanvas = new (std::nothrow) Canvas();\r
+ if (pViewCanvas)\r
+ {\r
+ pViewCanvas->Construct(Rectangle(0, 0, GetWidth(), GetHeight()));\r
+ pViewCanvas->FillRectangle(COLOR_GROUP_BORDER, Rectangle(0, 0, W_GROUP_LIST_LEFT_MARGIN, GetHeight()));\r
+ pViewCanvas->DrawBitmap(Rectangle(GetWidth() - W_ICON_64PX - MARGIN_16PX, (H_LIST_ITEM_112PX - W_ICON_64PX) / 2,\r
+ W_ICON_64PX, H_ICON_64PX), *pNormalBitmap);\r
+ Bitmap* pBackgroundBg = new (std::nothrow) Bitmap();\r
+ pBackgroundBg->Construct(*pViewCanvas, pViewCanvas->GetBounds());\r
+ SetBackgroundBitmap(pBackgroundBg);\r
+ delete pBackgroundBg;\r
+ delete pViewCanvas;\r
+ }\r
+ // Set press background image.\r
+ pViewCanvas = new (std::nothrow) Canvas();\r
+ if (pViewCanvas)\r
+ {\r
+ pViewCanvas->Construct(Rectangle(0, 0, GetWidth(), GetHeight()));\r
+ pViewCanvas->FillRectangle(COLOR_GROUP_BORDER, Rectangle(0, 0, W_GROUP_LIST_LEFT_MARGIN, GetHeight()));\r
+ pViewCanvas->DrawBitmap(Rectangle(GetWidth() - W_ICON_64PX - MARGIN_16PX, (H_LIST_ITEM_112PX - W_ICON_64PX) / 2,\r
+ W_ICON_64PX, H_ICON_64PX), *pPressBitmap);\r
+ Bitmap* pBackgroundBg = new (std::nothrow) Bitmap();\r
+ pBackgroundBg->Construct(*pViewCanvas, pViewCanvas->GetBounds());\r
+ SetBackgroundBitmap(pBackgroundBg, TABLE_VIEW_ITEM_DRAWING_STATUS_PRESSED);\r
+ delete pBackgroundBg;\r
+ delete pViewCanvas;\r
+ }\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
+\r
+void\r
+CustomTableViewItem::EnableDetailsViewModeStyle(const Tizen::Graphics::Bitmap* pNormalBitmap, const Tizen::Graphics::Bitmap* pPressBitmap)\r
+{\r
+ AppLogDebug("ENTER");\r
+ // Set normal background image.\r
+ Canvas* pViewCanvas = new (std::nothrow) Canvas();\r
+ if (pViewCanvas)\r
+ {\r
+ pViewCanvas->Construct(Rectangle(0, 0, GetWidth(), GetHeight()));\r
+ pViewCanvas->FillRectangle(COLOR_GROUP_BORDER, Rectangle(0, 0, W_GROUP_LIST_LEFT_MARGIN, GetHeight()));\r
+ pViewCanvas->DrawBitmap(Rectangle(MARGIN_16PX, (H_LIST_ITEM_112PX - W_ICON_60PX) / 2, W_ICON_60PX, H_ICON_60PX), *pNormalBitmap);\r
+ Bitmap* pBackgroundBg = new (std::nothrow) Bitmap();\r
+ pBackgroundBg->Construct(*pViewCanvas, pViewCanvas->GetBounds());\r
+ SetBackgroundBitmap(pBackgroundBg);\r
+ delete pBackgroundBg;\r
+ delete pViewCanvas;\r
+ }\r
+ // Set press background image.\r
+ pViewCanvas = new (std::nothrow) Canvas();\r
+ if (pViewCanvas)\r
+ {\r
+ pViewCanvas->Construct(Rectangle(0, 0, GetWidth(), GetHeight()));\r
+ pViewCanvas->FillRectangle(COLOR_GROUP_BORDER, Rectangle(0, 0, W_GROUP_LIST_LEFT_MARGIN, GetHeight()));\r
+ pViewCanvas->DrawBitmap(Rectangle(MARGIN_16PX, (H_LIST_ITEM_112PX - W_ICON_60PX) / 2, W_ICON_60PX, H_ICON_60PX), *pPressBitmap);\r
+ Bitmap* pBackgroundBg = new (std::nothrow) Bitmap();\r
+ pBackgroundBg->Construct(*pViewCanvas, pViewCanvas->GetBounds());\r
+ SetBackgroundBitmap(pBackgroundBg, TABLE_VIEW_ITEM_DRAWING_STATUS_PRESSED);\r
+ delete pBackgroundBg;\r
+ delete pViewCanvas;\r
+ }\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
+\r
+result\r
+CustomTableViewItem::OnDraw(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ result r = TableViewItem::OnDraw();\r
+ //TODO: Override draw hiding section mode background.\r
+// Canvas* pCanvas = GetCanvasN(Rectangle(0, 0, W_GROUP_LIST_LEFT_MARGIN, GetHeight()));\r
+// pCanvas->FillRectangle(COLOR_GROUP_BORDER, Rectangle(0, 0, W_GROUP_LIST_LEFT_MARGIN, GetHeight()));\r
+// delete pCanvas;\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return r;\r
+}\r
+\r
+\r
+// From base class\r
+result\r
+CustomTableViewGroupItem::OnDraw(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+ result r = TableViewGroupItem::OnDraw();\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return r;\r
+\r
+}\r
--- /dev/null
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+#include <FBaseColArrayListT.h>
+
+#include "MsgDeleteHandlerThread.h"
+#include "MsgIDeleteEventListener.h"
+#include "MsgThreadPresentationModel.h"
+#include "MsgTypes.h"
+using namespace Tizen::Base;
+using namespace Tizen::Base::Collection;
+using namespace Tizen::Ui;
+
+
+DeleteHandlerThread::DeleteHandlerThread(IListT< int >* pIdList, Control& listener, int requestType)
+ : __pDeleteIdList(pIdList)
+ , __deleteId(-1)
+ , __requestType(requestType)
+ , __parentCntl(&listener)
+{
+ AppLogDebug("ENTER");
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+}
+
+DeleteHandlerThread::DeleteHandlerThread(int deleteId, Control& listener, int requestType)
+ : __pDeleteIdList(null)
+ , __deleteId(deleteId)
+ , __requestType(requestType)
+ , __parentCntl(&listener)
+{
+ AppLogDebug("ENTER");
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+}
+
+DeleteHandlerThread::~DeleteHandlerThread(void)
+{
+ AppLogDebug("ENTER");
+
+ __parentCntl = null;
+ delete __pDeleteIdList;
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+}
+
+result
+DeleteHandlerThread::Construct(void)
+{
+ AppLogDebug("ENTER");
+
+ result r = Thread::Construct();
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return r;
+}
+
+Object*
+DeleteHandlerThread::Run(void)
+{
+ AppLogDebug("ENTER");
+
+ ThreadPresentationModel* pThreadManager = ThreadPresentationModel::GetInstance();
+ IList* pArgs = null;
+ int totalCount(1);
+ if (__parentCntl && pThreadManager)
+ {
+ if (__pDeleteIdList)
+ {
+ totalCount = __pDeleteIdList->GetCount();
+ pArgs = new (std::nothrow) ArrayList(SingleObjectDeleter);
+ if(pArgs)
+ {
+ pArgs->Add(new Integer(totalCount));
+ __parentCntl->SendUserEvent(REQUEST_DELETE_START,pArgs);
+ }
+
+ for (int count = 0; count < totalCount; ++count)
+ {
+ int deleteId(0);
+ if (__pDeleteIdList->GetAt(count, deleteId) == E_SUCCESS)
+ {
+ pThreadManager->Delete(deleteId, __requestType);
+ }
+
+ pArgs = new (std::nothrow) ArrayList(SingleObjectDeleter);
+ if(pArgs)
+ {
+ pArgs->Add(new Integer(count + 1));
+ pArgs->Add(new Integer(totalCount));
+ __parentCntl->SendUserEvent(REQUEST_DELETE_UPDATE,pArgs);
+ }
+ }
+ }
+ else
+ {
+ pArgs = new (std::nothrow) ArrayList(SingleObjectDeleter);
+ if(pArgs)
+ {
+ pArgs->Add(new Integer(totalCount));
+ __parentCntl->SendUserEvent(REQUEST_DELETE_START,pArgs);
+ }
+ pThreadManager->Delete(__deleteId, __requestType);
+ pArgs = new (std::nothrow) ArrayList(SingleObjectDeleter);
+ if(pArgs)
+ {
+ pArgs->Add(new Integer(totalCount));
+ pArgs->Add(new Integer(totalCount));
+ __parentCntl->SendUserEvent(REQUEST_DELETE_UPDATE,pArgs);
+ }
+ }
+
+ pArgs = new (std::nothrow) ArrayList(SingleObjectDeleter);
+ if(pArgs)
+ {
+ pArgs->Add(new Integer(E_SUCCESS));
+ __parentCntl->SendUserEvent(REQUEST_DELETE_COMPLETE,pArgs);
+ }
+
+ }
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return null;
+}
--- /dev/null
+//\r
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.\r
+//\r
+// Licensed under the Flora License, Version 1.0 (the License);\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+// http://floralicense.org/license/\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an AS IS BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+//\r
+\r
+#include "MsgDurationPopup.h"\r
+#include "MsgTypes.h"\r
+\r
+using namespace Tizen::App;\r
+using namespace Tizen::Base;\r
+using namespace Tizen::Base::Collection;\r
+using namespace Tizen::Graphics;\r
+using namespace Tizen::Ui::Controls;\r
+\r
+DurationPopup::DurationPopup(Control& parent)\r
+: __parentCntl(parent)\r
+{\r
+}\r
+\r
+DurationPopup::~DurationPopup(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
+\r
+result\r
+DurationPopup::Construct(const String& resourceId)\r
+{\r
+ AppLogDebug("ENTER");\r
+ result r = Popup::Construct(resourceId);\r
+ if (!IsFailed(r))\r
+ {\r
+ Button* pButtonOk = (Button*)GetControl(L"IDC_BUTTON_OK");\r
+ pButtonOk->SetActionId(IDA_OK);\r
+ pButtonOk->AddActionEventListener(*this);\r
+ Button* pButtonCancel = (Button*)GetControl(L"IDC_BUTTON_CANCEL");\r
+ pButtonCancel->SetActionId(IDA_CANCEL);\r
+ pButtonCancel->AddActionEventListener(*this);\r
+ }\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return r;\r
+}\r
+\r
+int\r
+DurationPopup::GetDuration(void) const\r
+{\r
+ AppLogDebug("ENTER");\r
+ int slideDuration(5);\r
+ EditField* pDurationField = (EditField*)GetControl(L"IDC_EDITFIELD_DURATION");\r
+ if(pDurationField)\r
+ {\r
+ String durationTextValue = pDurationField->GetText();\r
+ Integer::Parse(durationTextValue, slideDuration);\r
+ }\r
+ if(slideDuration<5)\r
+ {\r
+ slideDuration = 5;\r
+ }\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return slideDuration;\r
+}\r
+\r
+result\r
+DurationPopup::SetDuration(int duration)\r
+{\r
+ AppLogDebug("ENTER");\r
+ result r = E_SUCCESS;\r
+ EditField* pDurationField = (EditField*)GetControl(L"IDC_EDITFIELD_DURATION");\r
+ if(pDurationField)\r
+ {\r
+ String durationText;\r
+ durationText.Append(duration);\r
+ r |= pDurationField->SetText(durationText);\r
+ }\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return r;\r
+}\r
+\r
+result\r
+DurationPopup::SetInfoText(const String& infoText)\r
+{\r
+ AppLogDebug("ENTER");\r
+ result r = E_SUCCESS;\r
+ Label* pInfoLabel = (Label*)GetControl(L"IDC_DURATION_LABEL");\r
+ if(pInfoLabel)\r
+ {\r
+ pInfoLabel->SetText(infoText);\r
+ }\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return r;\r
+\r
+}\r
+\r
+result\r
+DurationPopup::SetFocusToEditor(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+ EditField* pDurationField = (EditField*)GetControl(L"IDC_EDITFIELD_DURATION");\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return pDurationField->SetFocus();\r
+}\r
+\r
+\r
+// From IActionEventListener\r
+void\r
+DurationPopup::OnActionPerformed(const Control& source, int actionId)\r
+{\r
+ AppLogDebug("ENTER");\r
+ switch (actionId)\r
+ {\r
+ case IDA_OK:\r
+ case IDA_CANCEL:\r
+ {\r
+ SetShowState(false);\r
+ RequestId requestId = REQUEST_DESTROY_DURATION_POPUP;\r
+ __parentCntl.SendUserEvent(requestId, null);\r
+ }\r
+ break;\r
+ }\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
--- /dev/null
+//\r
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.\r
+//\r
+// Licensed under the Flora License, Version 1.0 (the License);\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+// http://floralicense.org/license/\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an AS IS BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+//\r
+\r
+#include "MsgEvent.h"\r
+\r
+using namespace Tizen::Base::Runtime;\r
+\r
+ThreadEvent::ThreadEvent(const IEventListener* pEvent)\r
+ : BaseEvent(pEvent)\r
+{\r
+}\r
+\r
+ConversationEvent::ConversationEvent(const IEventListener* pEvent, const int threadId)\r
+ : BaseEvent(pEvent)\r
+ , __threadId(threadId)\r
+{\r
+ AppLogDebug("ENTER");\r
+ AppLogDebug("EXIT");\r
+}\r
+\r
+const int\r
+ConversationEvent::GetThreadId(void) const\r
+{\r
+ AppLogDebug("ENTER");\r
+ AppLogDebug("EXIT");\r
+ return this->__threadId;\r
+}\r
+\r
+SmsEvent::SmsEvent(const IEventListener* pEvent)\r
+ : BaseEvent(pEvent)\r
+{\r
+ AppLogDebug("ENTER");\r
+ AppLogDebug("EXIT");\r
+}\r
+\r
+\r
+MmsEvent::MmsEvent(const IEventListener* pEvent)\r
+ : BaseEvent(pEvent)\r
+{\r
+ AppLogDebug("ENTER");\r
+ AppLogDebug("EXIT");\r
+}\r
--- /dev/null
+//\r
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.\r
+//\r
+// Licensed under the Flora License, Version 1.0 (the License);\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+// http://floralicense.org/license/\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an AS IS BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+//\r
+\r
+#include <FBaseErrorDefine.h>\r
+\r
+#include "MsgBitmapUtility.h"\r
+#include "MsgConversationPresentationModel.h"\r
+#include "MsgFacadeManager.h"\r
+#include "MsgSmsManager.h"\r
+#include "MsgThreadPresentationModel.h"\r
+#include "MsgSettingPresentationModel.h"\r
+#include "MsgMessagePresentationModel.h"\r
+\r
+// Constructor\r
+FacadeManager::FacadeManager(void)\r
+{\r
+ // Empty implementation\r
+}\r
+\r
+// Destructor\r
+FacadeManager::~FacadeManager(void)\r
+{\r
+ // Empty implementation\r
+}\r
+\r
+// Initialise all application manager\r
+result\r
+FacadeManager::Initialize(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ result r = E_SUCCESS;\r
+ ThreadPresentationModel* pThreadPrModel = ThreadPresentationModel::GetInstance();\r
+ if (pThreadPrModel == null)\r
+ {\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ r = E_FAILURE;\r
+ return r;\r
+ }\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return r;\r
+}\r
+\r
+// Uninitialize all manager\r
+result\r
+FacadeManager::Uninitialize(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ result r = E_SUCCESS;\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return r;\r
+}\r
--- /dev/null
+//\r
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.\r
+//\r
+// Licensed under the Flora License, Version 1.0 (the License);\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+// http://floralicense.org/license/\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an AS IS BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+//\r
+\r
+\r
+#include <FApp.h>\r
+#include <FBaseColHashMap.h>\r
+#include <FBaseDataType.h>\r
+#include <FGrpFont.h>\r
+\r
+#include "MsgFontsettings.h"\r
+#include "MsgTypes.h"\r
+\r
+using namespace Tizen::App;\r
+using namespace Tizen::Base;\r
+using namespace Tizen::Base::Collection;\r
+using namespace Tizen::Graphics;\r
+\r
+FontSettings::FontSettings(void)\r
+ : __FontList(null)\r
+{\r
+ //Empty implementation\r
+}\r
+\r
+FontSettings::~FontSettings(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+ if (__FontList)\r
+ {\r
+ __FontList->RemoveAll(true);\r
+ delete __FontList;\r
+ }\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
+\r
+result\r
+FontSettings::Construct(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+ result r = E_SUCCESS;\r
+\r
+ __FontList = new (std::nothrow) HashMap();\r
+ r = __FontList->Construct();\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return r;\r
+}\r
+\r
+SettingFontType\r
+FontSettings::GetMessageFontType(void) const\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ AppRegistry* pAppRegistry = Application::GetInstance()->GetAppRegistry();\r
+ SettingFontType settingFontType = SETTING_NORMAL_FONT;\r
+ int fontType(settingFontType);\r
+ result r = pAppRegistry->Get(IDS_SETTING_FONT_TYPE, fontType);\r
+ if (r == E_KEY_NOT_FOUND)\r
+ {\r
+ pAppRegistry->Add(IDS_SETTING_FONT_TYPE, fontType);\r
+ r = pAppRegistry->Save();\r
+ }\r
+ else\r
+ {\r
+ settingFontType = (SettingFontType) fontType;\r
+ }\r
+ AppLogDebug("EXIT: r = %s", GetErrorMessage(r));\r
+ return settingFontType;\r
+}\r
+\r
+void\r
+FontSettings::SetMessageFonttype(SettingFontType fontSize)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ AppRegistry* pAppRegistry = Application::GetInstance()->GetAppRegistry();\r
+ result r = pAppRegistry->Set(IDS_SETTING_FONT_TYPE, fontSize);\r
+ if (r == E_KEY_NOT_FOUND)\r
+ {\r
+ r = pAppRegistry->Add(IDS_SETTING_FONT_TYPE, fontSize);\r
+ if (IsFailed(r))\r
+ {\r
+ AppLogDebug("Unable add font setting in registry");\r
+ }\r
+ }\r
+ r = pAppRegistry->Save();\r
+\r
+ AppLogDebug("EXIT: r = %s", GetErrorMessage(r));\r
+ return;\r
+}\r
+\r
+int\r
+FontSettings::GetMessageTextSize(SettingFontType settingFont) const\r
+{\r
+ AppLogDebug("ENTER");\r
+ int size = MSG_NORMAL_FONT_SIZE;\r
+ switch (settingFont)\r
+ {\r
+ case SETTING_SYSTEM_FONT:\r
+ size = MSG_SYSTEM_FONT_SIZE;\r
+ break;\r
+\r
+ case SETTING_HUGE_FONT:\r
+ size = MSG_HUGE_FONT_SIZE;\r
+ break;\r
+\r
+ case SETTING_LARGE_FONT:\r
+ size = MSG_LARGE_FONT_SIZE;\r
+ break;\r
+\r
+ case SETTING_NORMAL_FONT:\r
+ size = MSG_NORMAL_FONT_SIZE;\r
+ break;\r
+\r
+ case SETTING_SMALL_FONT:\r
+ size = MSG_SMALL_FONT_SIZE;\r
+ break;\r
+\r
+ case SETTING_TINY_FONT:\r
+ size = MSG_TINY_FONT_SIZE;\r
+ break;\r
+ }\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return size;\r
+}\r
+\r
+\r
+Font*\r
+FontSettings::GetMessageFont(void) const\r
+{\r
+ AppLogDebug("ENTER");\r
+ Font* pFont = null;\r
+ switch (GetMessageFontType())\r
+ {\r
+ case SETTING_SYSTEM_FONT:\r
+ pFont = GetFont(MSG_FONT_ID_SYSTEM);\r
+ break;\r
+\r
+ case SETTING_HUGE_FONT:\r
+ pFont = GetFont(MSG_FONT_ID_HUGE);\r
+ break;\r
+\r
+ case SETTING_LARGE_FONT:\r
+ pFont = GetFont(MSG_FONT_ID_LARGE);\r
+ break;\r
+\r
+ case SETTING_NORMAL_FONT:\r
+ pFont = GetFont(MSG_FONT_ID_NORMAL);\r
+ break;\r
+\r
+ case SETTING_SMALL_FONT:\r
+ pFont = GetFont(MSG_FONT_ID_SMALL);\r
+ break;\r
+\r
+ case SETTING_TINY_FONT:\r
+ pFont = GetFont(MSG_FONT_ID_TINY);\r
+ break;\r
+ }\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return pFont;\r
+}\r
+\r
+Font*\r
+FontSettings::GetFont(MsgFontIds fontId) const\r
+{\r
+ AppLogDebug("ENTER");\r
+ String* pKey = new (std::nothrow) String();\r
+ pKey->Append(fontId);\r
+ Font* pFont = static_cast<Font*>(__FontList->GetValue(*pKey));\r
+ delete pKey;\r
+ if (pFont == null)\r
+ {\r
+ Font* newFont = new (std::nothrow) Font();\r
+ // Set Size if applicable\r
+ switch (fontId)\r
+ {\r
+ case MSG_FONT_ID_HUGE:\r
+ {\r
+ newFont->Construct(FONT_STYLE_PLAIN, MSG_HUGE_FONT_SIZE);\r
+ __FontList->Add((new (std::nothrow) String(fontId)), newFont);\r
+ }\r
+ break;\r
+\r
+ case MSG_FONT_ID_LARGE:\r
+ {\r
+ newFont->Construct(FONT_STYLE_PLAIN, MSG_LARGE_FONT_SIZE);\r
+ __FontList->Add((new (std::nothrow) String(fontId)), newFont);\r
+ }\r
+ break;\r
+\r
+ case MSG_FONT_ID_NORMAL:\r
+ {\r
+ newFont->Construct(FONT_STYLE_PLAIN, MSG_NORMAL_FONT_SIZE);\r
+ __FontList->Add((new (std::nothrow) String(fontId)), newFont);\r
+ }\r
+ break;\r
+\r
+ case MSG_FONT_ID_SMALL:\r
+ {\r
+ newFont->Construct(FONT_STYLE_PLAIN, MSG_SMALL_FONT_SIZE);\r
+ __FontList->Add((new (std::nothrow) String(fontId)), newFont);\r
+ }\r
+ break;\r
+\r
+ case MSG_FONT_ID_TINY:\r
+ {\r
+ newFont->Construct(FONT_STYLE_PLAIN, MSG_TINY_FONT_SIZE);\r
+ __FontList->Add((new (std::nothrow) String(fontId)), newFont);\r
+ }\r
+ break;\r
+\r
+ case MSG_FONT_ID_TIME_STAMP:\r
+ {\r
+ newFont->Construct(FONT_STYLE_BOLD, MSG_TIME_FONT_SIZE);\r
+ __FontList->Add((new (std::nothrow) String(fontId)), newFont);\r
+ }\r
+ break;\r
+\r
+ case MSG_FONT_ID_SYSTEM:\r
+ default:\r
+ {\r
+ delete newFont;\r
+ newFont = null;\r
+ }\r
+ break;\r
+ }\r
+ pFont = newFont;\r
+ }\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return pFont;\r
+}\r
--- /dev/null
+//\r
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.\r
+//\r
+// Licensed under the Flora License, Version 1.0 (the License);\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+// http://floralicense.org/license/\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an AS IS BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+//\r
+\r
+#include <FUiScenesSceneManager.h>\r
+\r
+#include "MsgComposerForm.h"\r
+#include "MsgConversationForm.h"\r
+#include "MsgFormFactory.h"\r
+#include "MsgMmsDetailForm.h"\r
+#include "MsgMultimediaSettingsForm.h"\r
+#include "MsgSettingsForm.h"\r
+#include "MsgSmsViewerForm.h"\r
+#include "MsgSpamSettingsForm.h"\r
+#include "MsgThreadListForm.h"\r
+#include "MsgTypes.h"\r
+\r
+\r
+using namespace Tizen::Base;\r
+using namespace Tizen::Ui::Controls;\r
+using namespace Tizen::Ui::Scenes;\r
+\r
+// Default constructor\r
+FormFactory::FormFactory(void) //Empty implementation\r
+{\r
+}\r
+\r
+// Default destructor.\r
+FormFactory::~FormFactory(void)\r
+{\r
+ //empty implementation\r
+ AppLogDebug("ENTER");\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
+\r
+// Create new form based on demand.\r
+Form*\r
+FormFactory::CreateFormN(const String& formId, const SceneId& sceneId)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ SceneManager* pSceneManager = SceneManager::GetInstance();\r
+ AppAssert(pSceneManager);\r
+\r
+ Form* pNewForm = null;\r
+\r
+ if (formId == IDFRM_THREAD_LIST)\r
+ {\r
+ ThreadListForm* pMsgThreadListForm = new (std::nothrow) ThreadListForm(THREAD_LIST_FORM_VIEW, THREAD_LIST_TYPE_THREAD);\r
+ pMsgThreadListForm->Initialize();\r
+ pSceneManager->AddSceneEventListener(sceneId, *pMsgThreadListForm);\r
+ pNewForm = pMsgThreadListForm;\r
+ }\r
+ else if (formId == IDFRM_THREAD_LIST_EDITOR)\r
+ {\r
+ ThreadListForm* pMsgThreadListForm = new (std::nothrow) ThreadListForm(THREAD_LIST_FORM_EDIT, THREAD_LIST_TYPE_THREAD);\r
+ pMsgThreadListForm->Initialize();\r
+ pSceneManager->AddSceneEventListener(sceneId, *pMsgThreadListForm);\r
+ pNewForm = pMsgThreadListForm;\r
+ }\r
+ else if (formId == IDFRM_SIM_MESSAGE_LIST)\r
+ {\r
+ ThreadListForm* pMsgThreadListForm = new (std::nothrow) ThreadListForm(THREAD_LIST_FORM_SIMMSG_VIEW, THREAD_LIST_TYPE_SIM);\r
+ pMsgThreadListForm->Initialize();\r
+ pSceneManager->AddSceneEventListener(sceneId, *pMsgThreadListForm);\r
+ pNewForm = pMsgThreadListForm;\r
+ }\r
+ else if (formId == IDFRM_SIM_MESSAGE_LIST_EDITOR)\r
+ {\r
+ ThreadListForm* pMsgThreadListForm = new (std::nothrow) ThreadListForm(THREAD_LIST_FORM_SIMMSG_EDIT, THREAD_LIST_TYPE_SIM);\r
+ pMsgThreadListForm->Initialize();\r
+ pSceneManager->AddSceneEventListener(sceneId, *pMsgThreadListForm);\r
+ pNewForm = pMsgThreadListForm;\r
+ }\r
+ else if (formId == IDFRM_CB_MESSAGE_LIST)\r
+ {\r
+ ThreadListForm* pMsgThreadListForm = new (std::nothrow) ThreadListForm(THREAD_LIST_FORM_CBMSG_VIEW, THREAD_LIST_TYPE_CBMSG);\r
+ pMsgThreadListForm->Initialize();\r
+ pSceneManager->AddSceneEventListener(sceneId, *pMsgThreadListForm);\r
+ pNewForm = pMsgThreadListForm;\r
+ }\r
+ else if (formId == IDFRM_CB_MESSAGE_LIST_EDITOR)\r
+ {\r
+ ThreadListForm* pMsgThreadListForm = new (std::nothrow) ThreadListForm(THREAD_LIST_FORM_CBMSG_EDIT, THREAD_LIST_TYPE_CBMSG);\r
+ pMsgThreadListForm->Initialize();\r
+ pSceneManager->AddSceneEventListener(sceneId, *pMsgThreadListForm);\r
+ pNewForm = pMsgThreadListForm;\r
+ }\r
+ else if (formId == IDFRM_SPAM_MESSAGE_LIST)\r
+ {\r
+ ThreadListForm* pMsgThreadListForm = new (std::nothrow) ThreadListForm(THREAD_LIST_FORM_SPAMMSG_VIEW, THREAD_LIST_TYPE_SPAM);\r
+ pMsgThreadListForm->Initialize();\r
+ pSceneManager->AddSceneEventListener(sceneId, *pMsgThreadListForm);\r
+ pNewForm = pMsgThreadListForm;\r
+ }\r
+ else if (formId == IDFRM_SPAM_MESSAGE_LIST_EDITOR)\r
+ {\r
+ ThreadListForm* pMsgThreadListForm = new (std::nothrow) ThreadListForm(THREAD_LIST_FORM_SPAMMSG_EDIT, THREAD_LIST_TYPE_SPAM);\r
+ pMsgThreadListForm->Initialize();\r
+ pSceneManager->AddSceneEventListener(sceneId, *pMsgThreadListForm);\r
+ pNewForm = pMsgThreadListForm;\r
+ }\r
+ else if (formId == IDFRM_DRAFT_MESSAGE_LIST)\r
+ {\r
+ ThreadListForm* pMsgThreadListForm = new (std::nothrow) ThreadListForm(THREAD_LIST_FORM_DRAFTMSG_VIEW, THREAD_LIST_TYPE_DRAFT);\r
+ pMsgThreadListForm->Initialize();\r
+ pSceneManager->AddSceneEventListener(sceneId, *pMsgThreadListForm);\r
+ pNewForm = pMsgThreadListForm;\r
+ }\r
+ else if (formId == IDFRM_DRAFT_MESSAGE_LIST_EDITOR)\r
+ {\r
+ ThreadListForm* pMsgThreadListForm = new (std::nothrow) ThreadListForm(THREAD_LIST_FORM_DRAFTMSG_EDIT, THREAD_LIST_TYPE_DRAFT);\r
+ pMsgThreadListForm->Initialize();\r
+ pSceneManager->AddSceneEventListener(sceneId, *pMsgThreadListForm);\r
+ pNewForm = pMsgThreadListForm;\r
+ }\r
+ else if (formId == IDFRM_CONVERSATION_LIST)\r
+ {\r
+ ConversationForm* pMsgConvForm = new (std::nothrow) ConversationForm(CONVERSATION_LIST_FORM_VIEW);\r
+ pMsgConvForm->Initialize();\r
+ pSceneManager->AddSceneEventListener(sceneId, *pMsgConvForm);\r
+ pNewForm = pMsgConvForm;\r
+\r
+ }\r
+ else if (formId == IDFRM_CONVERSATION_LIST_EDITOR)\r
+ {\r
+ ConversationForm* pMsgConvForm = new (std::nothrow) ConversationForm(CONVERSATION_LIST_FORM_EDIT);\r
+ pMsgConvForm->Initialize();\r
+ pSceneManager->AddSceneEventListener(sceneId, *pMsgConvForm);\r
+ pNewForm = pMsgConvForm;\r
+\r
+ }\r
+ else if (formId == IDFRM_COMPOSER)\r
+ {\r
+ ComposerForm* pMsgComposeForm = new (std::nothrow) ComposerForm();\r
+ pMsgComposeForm->Initialize();\r
+ pSceneManager->AddSceneEventListener(sceneId, *pMsgComposeForm);\r
+ pNewForm = pMsgComposeForm;\r
+\r
+ }\r
+ else if (formId == IDFRM_SMS_VIEWER)\r
+ {\r
+ SmsViewerForm* pSmsViewerForm = new (std::nothrow) SmsViewerForm();\r
+ pSmsViewerForm->Initialize();\r
+ pSceneManager->AddSceneEventListener(sceneId, *pSmsViewerForm);\r
+ pNewForm = pSmsViewerForm;\r
+ }\r
+ else if (formId == IDFRM_MMS_DETAIL)\r
+ {\r
+ MmsDetailForm* pMmsDetailForm = new (std::nothrow) MmsDetailForm();\r
+ pMmsDetailForm->Initialize();\r
+ pSceneManager->AddSceneEventListener(sceneId, *pMmsDetailForm);\r
+ pNewForm = pMmsDetailForm;\r
+ }\r
+ else if (formId == IDFRM_SETTINGS)\r
+ {\r
+ SettingsForm* pSettingsForm;\r
+ pSettingsForm = new (std::nothrow) SettingsForm(MESSAGE_SETTING_FORM_MESSAGE_MAIN);\r
+ pSettingsForm->Initialize();\r
+ pSceneManager->AddSceneEventListener(sceneId, *pSettingsForm);\r
+ pNewForm = pSettingsForm;\r
+ }\r
+ else if (formId == IDFRM_SETTINGS_TEXT_MESSAGE)\r
+ {\r
+ SettingsForm* pSettingsForm;\r
+ pSettingsForm = new (std::nothrow) SettingsForm(MESSAGE_SETTING_FORM_TEXT_MESSAGES);\r
+ pSettingsForm->Initialize();\r
+ pSceneManager->AddSceneEventListener(sceneId, *pSettingsForm);\r
+ pNewForm = pSettingsForm;\r
+ }\r
+ else if (formId == IDFRM_SETTINGS_TEXT_MESSAGE_SERVICE_CENTERS)\r
+ {\r
+ SettingsForm* pSettingsForm;\r
+ pSettingsForm = new (std::nothrow) SettingsForm(MESSAGE_SETTING_FORM_SERVICE_CENTER);\r
+ pSettingsForm->Initialize();\r
+ pSceneManager->AddSceneEventListener(sceneId, *pSettingsForm);\r
+ pNewForm = pSettingsForm;\r
+ }\r
+ else if (formId == IDFRM_SETTINGS_TEXT_MESSAGE_EDIT_SERVICE_CENTER)\r
+ {\r
+ SettingsForm* pSettingsForm;\r
+ pSettingsForm = new (std::nothrow) SettingsForm(MESSAGE_SETTING_FORM_EDIT_SERVICE_CENTER);\r
+ pSettingsForm->Initialize();\r
+ pSceneManager->AddSceneEventListener(sceneId, *pSettingsForm);\r
+ pNewForm = pSettingsForm;\r
+ }\r
+ else if (formId == IDFRM_SETTINGS_MULTIMEDIA_MESSAGE)\r
+ {\r
+ MutimediaSettingsForm* pMMediaSettingsForm = new (std::nothrow) MutimediaSettingsForm(MULTIMEDIA_SETTING_MESSAGES_FORM);\r
+ pMMediaSettingsForm->Initialize();\r
+ pSceneManager->AddSceneEventListener(sceneId, *pMMediaSettingsForm);\r
+ pNewForm = pMMediaSettingsForm;\r
+ }\r
+ else if (formId == IDFRM_SETTINGS_MULTIMEDIA_RECEIVING_OPTIONS)\r
+ {\r
+ MutimediaSettingsForm* pMMediaSettingsForm = new (std::nothrow) MutimediaSettingsForm(MULTIMEDIA_SETTING_RECEIVE_OPTIONS_FORM);\r
+ pMMediaSettingsForm->Initialize();\r
+ pSceneManager->AddSceneEventListener(sceneId, *pMMediaSettingsForm);\r
+ pNewForm = pMMediaSettingsForm;\r
+\r
+ }\r
+ else if (formId == IDFRM_SETTINGS_MULTIMEDIA_READ_REPORT)\r
+ {\r
+ MutimediaSettingsForm* pMMediaSettingsForm = new (std::nothrow) MutimediaSettingsForm(MULTIMEDIA_SETTING_READ_REPORT_FORM);\r
+ pMMediaSettingsForm->Initialize();\r
+ pSceneManager->AddSceneEventListener(sceneId, *pMMediaSettingsForm);\r
+ pNewForm = pMMediaSettingsForm;\r
+\r
+ }\r
+ else if (formId == IDFRM_SETTINGS_SPAM_MESSAGE)\r
+ {\r
+ SpamSettingsForm* pSpamSettingsForm = new (std::nothrow) SpamSettingsForm(SPAM_SETTING_FORM_MAIN);\r
+ pSpamSettingsForm->Initialize();\r
+ pSceneManager->AddSceneEventListener(sceneId, *pSpamSettingsForm);\r
+ pNewForm = pSpamSettingsForm;\r
+ }\r
+ else if (formId == IDFRM_SETTINGS_SPAM_AUTO_REJECT)\r
+ {\r
+ SpamSettingsForm* pSpamSettingsForm = new (std::nothrow) SpamSettingsForm(SPAM_SETTING_FORM_AUTO_REJECT);\r
+ pSpamSettingsForm->Initialize();\r
+ pSceneManager->AddSceneEventListener(sceneId, *pSpamSettingsForm);\r
+ pNewForm = pSpamSettingsForm;\r
+ }\r
+ else if (formId == IDFRM_SETTINGS_SPAM_ADD_REJECT_NUMBER)\r
+ {\r
+ SpamSettingsForm* pSpamSettingsForm = new (std::nothrow) SpamSettingsForm(SPAM_SETTING_FORM_ADD_REJECT_NUMBER);\r
+ pSpamSettingsForm->Initialize();\r
+ pSceneManager->AddSceneEventListener(sceneId, *pSpamSettingsForm);\r
+ pNewForm = pSpamSettingsForm;\r
+ }\r
+ else if (formId == IDFRM_SETTINGS_SPAM_DELETE_REJECT_NUMBER)\r
+ {\r
+ SpamSettingsForm* pSpamSettingsForm = new (std::nothrow) SpamSettingsForm(SPAM_SETTING_FORM_DELETE_REJECT_NUMBER);\r
+ pSpamSettingsForm->Initialize();\r
+ pSceneManager->AddSceneEventListener(sceneId, *pSpamSettingsForm);\r
+ pNewForm = pSpamSettingsForm;\r
+ }\r
+ else if (formId == IDFRM_SETTINGS_SPAM_BLOCK_WORD)\r
+ {\r
+ SpamSettingsForm* pSpamSettingsForm = new (std::nothrow) SpamSettingsForm(SPAM_SETTING_FORM_BLOCK_WORD);\r
+ pSpamSettingsForm->Initialize();\r
+ pSceneManager->AddSceneEventListener(sceneId, *pSpamSettingsForm);\r
+ pNewForm = pSpamSettingsForm;\r
+ }\r
+ else if (formId == IDFRM_SETTINGS_SPAM_ADD_BLOCK_WORD)\r
+ {\r
+ SpamSettingsForm* pSpamSettingsForm = new (std::nothrow) SpamSettingsForm(SPAM_SETTING_FORM_ADD_BLOCK_WORD);\r
+ pSpamSettingsForm->Initialize();\r
+ pSceneManager->AddSceneEventListener(sceneId, *pSpamSettingsForm);\r
+ pNewForm = pSpamSettingsForm;\r
+ }\r
+ else if (formId == IDFRM_SETTINGS_SPAM_DELETE_BLOCK_WORD)\r
+ {\r
+ SpamSettingsForm* pSpamSettingsForm = new (std::nothrow) SpamSettingsForm(SPAM_SETTING_FORM_DELETE_BLOCK_WORD);\r
+ pSpamSettingsForm->Initialize();\r
+ pSceneManager->AddSceneEventListener(sceneId, *pSpamSettingsForm);\r
+ pNewForm = pSpamSettingsForm;\r
+ }\r
+ else if (formId == IDFRM_SETTINGS_FONT_SIZE)\r
+ {\r
+ SettingsForm* pSettingsForm;\r
+ pSettingsForm = new (std::nothrow) SettingsForm(MESSAGE_SETTING_FORM_FONT_SIZE);\r
+ pSettingsForm->Initialize();\r
+ pSceneManager->AddSceneEventListener(sceneId, *pSettingsForm);\r
+ pNewForm = pSettingsForm;\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return pNewForm;\r
+}\r
--- /dev/null
+//\r
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.\r
+//\r
+// Licensed under the Flora License, Version 1.0 (the License);\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+// http://floralicense.org/license/\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an AS IS BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+//\r
+\r
+#include <FGrpEnrichedText.h>\r
+\r
+#include "MsgLVAttachItem.h"\r
+\r
+const Tizen::Graphics::Color COLOR_BLACK(0, 0, 0);\r
+\r
+using namespace Tizen::Base;\r
+using namespace Tizen::Graphics;\r
+using namespace Tizen::Ui::Controls;\r
+\r
+LVAttachItem::LVAttachItem(void)\r
+ : __pAttachIcon(null)\r
+ , __pEnrichedText(null)\r
+{\r
+ //Empty implementation\r
+}\r
+\r
+LVAttachItem::~LVAttachItem(void)\r
+{\r
+ //Empty implementation\r
+}\r
+\r
+bool\r
+LVAttachItem::OnDraw(Canvas& canvas, const Rectangle& rect, ListItemDrawingStatus status)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ result r = E_SUCCESS;\r
+ Canvas* pCanvas = const_cast<Canvas*>(&canvas);\r
+ // Draw Icon\r
+ int xPos(rect.x);\r
+ int yPos;\r
+ if (__pAttachIcon)\r
+ {\r
+ yPos = rect.y + (rect.height - __pAttachIcon->GetHeight()) / 2;\r
+ r |= pCanvas->DrawBitmap(Point(xPos, yPos), *__pAttachIcon);\r
+ xPos += __pAttachIcon->GetWidth();\r
+ }\r
+ if (__pEnrichedText)\r
+ {\r
+ __pEnrichedText->SetSize(__pEnrichedText->GetWidth(),\r
+ __pEnrichedText->GetTotalLineHeight());\r
+ yPos = rect.y + (rect.height - __pEnrichedText->GetHeight()) / 2;\r
+ r |= pCanvas->DrawText(Point(xPos, yPos), *__pEnrichedText);\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return (r == E_SUCCESS);\r
+}\r
+\r
+void\r
+LVAttachItem::SetAttachIcon(const Bitmap& selectionImage)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ __pAttachIcon = &selectionImage;\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
+\r
+void\r
+LVAttachItem::SetText(const String& strText, const Font* ptextFont)\r
+{\r
+ AppLogDebug("ENTER");\r
+ if (__pEnrichedText == null)\r
+ {\r
+ __pEnrichedText = new (std::nothrow) EnrichedText();\r
+ __pEnrichedText->Construct(Dimension(44, 44));\r
+ __pEnrichedText->SetTextWrapStyle(TEXT_WRAP_NONE);\r
+ __pEnrichedText->SetTextAbbreviationEnabled(true);\r
+ __pEnrichedText->SetElementVerticalAlignment(TEXT_ALIGNMENT_MIDDLE);\r
+ }\r
+ // Add new text element.\r
+ TextElement* pTextElement = new (std::nothrow) TextElement();\r
+ pTextElement->Construct(strText);\r
+ pTextElement->SetTextColor(COLOR_BLACK);\r
+ pTextElement->SetFont(*ptextFont);\r
+ __pEnrichedText->Add(*pTextElement);\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
+\r
+int\r
+LVAttachItem::GetMinimumHeight(void) const\r
+{\r
+ AppLogDebug("ENTER");\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return 0;\r
+}\r
+\r
+int\r
+LVAttachItem::GetMimimumWidth(void) const\r
+{\r
+ AppLogDebug("ENTER");\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return 0;\r
+\r
+}\r
--- /dev/null
+//\r
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.\r
+//\r
+// Licensed under the Flora License, Version 1.0 (the License);\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+// http://floralicense.org/license/\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an AS IS BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+//\r
+\r
+#include "MsgLVBackgroundItem.h"\r
+\r
+using namespace Tizen::Graphics;\r
+using namespace Tizen::Ui::Controls;\r
+\r
+LVBackgroundItem::LVBackgroundItem(void)\r
+ : __pBackgroundBitmap(null)\r
+ , __pSelectedBitmap(null)\r
+{\r
+ //Empty implementation\r
+}\r
+\r
+LVBackgroundItem::~LVBackgroundItem(void)\r
+{\r
+ //Empty implementation\r
+ AppLogDebug("ENTER");\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
+\r
+void\r
+LVBackgroundItem::SetBackgroundBitmap(const Bitmap& normalBackgroudBg,\r
+ const Bitmap& selectBackgroudBg)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ __pBackgroundBitmap = &normalBackgroudBg;\r
+ __pSelectedBitmap = &selectBackgroudBg;\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
+\r
+bool\r
+LVBackgroundItem::OnDraw(Canvas& canvas, const Rectangle& rect,\r
+ ListItemDrawingStatus status)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ result r = E_SUCCESS;\r
+ Canvas* pCanvas = const_cast<Canvas*>(&canvas);\r
+ if (status == LIST_ITEM_DRAWING_STATUS_NORMAL)\r
+ {\r
+ if (__pBackgroundBitmap)\r
+ {\r
+ r |= pCanvas->DrawNinePatchedBitmap(rect, *__pBackgroundBitmap);\r
+ }\r
+ }\r
+ else if (status == LIST_ITEM_DRAWING_STATUS_PRESSED\r
+ || status == LIST_ITEM_DRAWING_STATUS_HIGHLIGHTED)\r
+ {\r
+ if (__pSelectedBitmap)\r
+ {\r
+ r |= pCanvas->DrawNinePatchedBitmap(rect, *__pSelectedBitmap);\r
+ }\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return (r == E_SUCCESS);\r
+}\r
--- /dev/null
+//\r
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.\r
+//\r
+// Licensed under the Flora License, Version 1.0 (the License);\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+// http://floralicense.org/license/\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an AS IS BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+//\r
+\r
+#include <msg_types.h>\r
+\r
+#include <FApp.h>\r
+#include <FBase.h>\r
+#include <FGraphics.h>\r
+\r
+#include "MsgBitmapUtility.h"\r
+#include "MsgConversationData.h"\r
+#include "MsgFontsettings.h"\r
+#include "MsgLVAttachItem.h"\r
+#include "MsgLVBackgroundItem.h"\r
+#include "MsgLVButtonItem.h"\r
+#include "MsgLVBubbleListItem.h"\r
+#include "MsgLVMultiLineTextItem.h"\r
+#include "MsgTypes.h"\r
+\r
+using namespace Tizen::App;\r
+using namespace Tizen::Base;\r
+using namespace Tizen::Base::Runtime;\r
+using namespace Tizen::Graphics;\r
+using namespace Tizen::Ui::Controls;\r
+\r
+LVBubbleListItem::LVBubbleListItem(ConversationData& msgEntry, GroupedListView& listView, int groupIndex, int index, int width, FontSettings& fontSettings, bool editMode)\r
+ : __convData(msgEntry)\r
+ , __listView(listView)\r
+ , __groupIndex(groupIndex)\r
+ , __index(index)\r
+ , __Width(width)\r
+ , __editMode(editMode)\r
+ , __fontSettings(fontSettings)\r
+ , __pBackgroudItem(null)\r
+ , __pMsgContent(null)\r
+ , __pMsgDate(null)\r
+ , __pProgressIcon(null)\r
+ , __pAnimationTimer(null)\r
+ , __pAttachmentItem(null)\r
+ , __pMediaThumbnail(null)\r
+ , __pDetailButton(null)\r
+ , __pFailIndicator(null)\r
+{\r
+ AppLogDebug("ENTER");\r
+ //intialize default bubble margin\r
+ if (msgEntry.IsSent())\r
+ {\r
+ __leftMargin = (int) MARGIN_20PX;\r
+ __rightMargin = (int) MARGIN_46PX;\r
+ __topMargin = (int) MARGIN_14PX;\r
+ __bottomMargin = (int) MARGIN_22PX;\r
+\r
+ }\r
+ else\r
+ {\r
+ __leftMargin = (int) MARGIN_46PX;\r
+ __rightMargin = (int) MARGIN_28PX;\r
+ __topMargin = (int) MARGIN_14PX;\r
+ __bottomMargin = (int) MARGIN_22PX;\r
+ }\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
+\r
+LVBubbleListItem::~LVBubbleListItem(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ if (__pMsgContent)\r
+ {\r
+ delete __pMsgContent;\r
+ }\r
+ if (__pMsgDate)\r
+ {\r
+ delete __pMsgDate;\r
+ }\r
+ if (__pFailIndicator)\r
+ {\r
+ delete __pFailIndicator;\r
+ }\r
+ if (__pAttachmentItem)\r
+ {\r
+ delete __pAttachmentItem;\r
+ }\r
+ if (__pDetailButton)\r
+ {\r
+ delete __pDetailButton;\r
+ }\r
+ if (__pBackgroudItem)\r
+ {\r
+ delete __pBackgroudItem;\r
+ }\r
+ if (__pAnimationTimer)\r
+ {\r
+ __pAnimationTimer->Cancel();\r
+ delete __pAnimationTimer;\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
+\r
+void\r
+LVBubbleListItem::CreateTimeStampElement(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ if (__pMsgDate == null)\r
+ {\r
+ __pMsgDate = new (std::nothrow) LVMultiLineTextItem();\r
+ Bitmap* pTimeStampBg = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_BUBBLE_DATE_BG);\r
+ __pMsgDate->SetBackgroundImage(*pTimeStampBg);\r
+ __pMsgDate->SetSelectionImage(*pTimeStampBg);\r
+ }\r
+ Font* pTimeStampFont = __fontSettings.GetFont(MSG_FONT_ID_TIME_STAMP);\r
+ if (__convData.IsSent())\r
+ {\r
+ __pMsgDate->AddText(__convData.GetTimeStamp(),\r
+ COLOR_BUBBLE_SENT_TIME_STAMP, COLOR_BUBBLE_SENT_TIME_STAMP,\r
+ pTimeStampFont);\r
+ }\r
+ else\r
+ {\r
+ __pMsgDate->AddText(__convData.GetTimeStamp(),\r
+ COLOR_BUBBLE_RECEIVE_TIME_STAMP, COLOR_BUBBLE_RECEIVE_TIME_STAMP,\r
+ pTimeStampFont);\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return;\r
+}\r
+\r
+void\r
+LVBubbleListItem::CreateContentElement(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ // Create contet background\r
+ if (__pBackgroudItem == null)\r
+ {\r
+ __pBackgroudItem = new (std::nothrow) LVBackgroundItem();\r
+ }\r
+ if (__convData.IsSent())\r
+ {\r
+ Bitmap* pSentBgBitmap = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_BUBBLE_SENT_BG, Dimension(68, MIN_BUBBLE_HEIGHT));\r
+ __pBackgroudItem->SetBackgroundBitmap(*pSentBgBitmap, *pSentBgBitmap);\r
+ }\r
+ else\r
+ {\r
+ Bitmap* pRecvBgBitmap = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_BUBBLE_RECEIVE_BG, Dimension(76, MIN_BUBBLE_HEIGHT));\r
+ __pBackgroudItem->SetBackgroundBitmap(*pRecvBgBitmap, *pRecvBgBitmap);\r
+ }\r
+ // Create content\r
+ String bodyText(__convData.GetMessageText());\r
+ String subject(__convData.GetSubject());\r
+ if ((bodyText.GetLength() > 0 || subject.GetLength() > 0) && __pMsgContent == null)\r
+ {\r
+ __pMsgContent = new (std::nothrow) LVMultiLineTextItem();\r
+ __pMsgContent->SetTextMargin(__leftMargin, __rightMargin, 0, 0);\r
+ __pMsgContent->SetMinimumHeight(MIN_BUBBLE_HEIGHT);\r
+ }\r
+ // If subject exist Add it.\r
+ if (subject.GetLength() > 0)\r
+ {\r
+ if (bodyText.GetLength() > 0)\r
+ {\r
+ bodyText.Insert("\n", 0);\r
+ }\r
+ __pMsgContent->AddText(subject, COLOR_SEARCH_TEXT, COLOR_SEARCH_TEXT,\r
+ __fontSettings.GetMessageFont());\r
+ }\r
+ // Set Body Text\r
+ if (bodyText.GetLength() > 0)\r
+ {\r
+ __pMsgContent->AddText(bodyText, COLOR_BUBBLE_TEXT_NORMAL,\r
+ COLOR_BUBBLE_TEXT_NORMAL, __fontSettings.GetMessageFont());\r
+ }\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return;\r
+\r
+}\r
+\r
+\r
+void\r
+LVBubbleListItem::CreateBubbleLayout(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ int leftX(0), leftY(MARGIN_12PX);\r
+ // Check mode\r
+ int checkboxWidth(0);\r
+ ListAnnexStyle listStyle = LIST_ANNEX_STYLE_NORMAL;\r
+ if (__editMode)\r
+ {\r
+ // add check box element here for edit mode.\r
+ checkboxWidth = W_CHECKBOX;\r
+ listStyle = LIST_ANNEX_STYLE_MARK;\r
+ }\r
+ //Reserver space for check box, traditional way.\r
+ int itemWidth = __Width - checkboxWidth;\r
+ // For faild item date field won't be there.\r
+ int statusWidth(0), statusHeight(0);\r
+ if (__convData.IsSending())\r
+ {\r
+ __pProgressIcon = BitmapUtility::GetInstance()->GetIcon((MessageIconType) __convData.GetAnimationIconIndex(), Dimension(W_ICON_32PX, H_ICON_32PX));\r
+ if (__pProgressIcon)\r
+ {\r
+ statusWidth = __pProgressIcon->GetWidth() + MARGIN_16PX + MARGIN_10PX;\r
+ statusHeight = __pProgressIcon->GetHeight();\r
+ }\r
+ }\r
+ else if (__convData.IsSentFail())\r
+ {\r
+ __pFailIndicator = new (std::nothrow) LVButtonItem();\r
+ if (__pFailIndicator)\r
+ {\r
+ Bitmap* pNormalBgBitmap = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_WARNING_CIRCLE_BUTTON_BG);\r
+ Bitmap* pPressBgBitmap = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_WARNING_CIRCLE_BUTTON_BG_PRESS);\r
+ __pFailIndicator->SetBackgroundImage(*pNormalBgBitmap, *pPressBgBitmap);\r
+ Bitmap* pIconBitmap = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_WARNING, Dimension(W_ICON_64PX, H_ICON_64PX));\r
+ __pFailIndicator->SetIcon(*pIconBitmap);\r
+ statusWidth = H_ICON_64PX + MARGIN_16PX + MARGIN_10PX;\r
+ statusHeight = H_ICON_64PX;\r
+ }\r
+ }\r
+ else\r
+ {\r
+ CreateTimeStampElement();\r
+ __pMsgDate->CreateTextLayout(__Width);\r
+ statusWidth = __pMsgDate->GetMaxWidth() + MARGIN_16PX + MARGIN_10PX;\r
+ statusHeight = __pMsgDate->GetMinHeight();\r
+ }\r
+ //Create text layout.\r
+ int bubbleWidth(0);\r
+ int bubbleHeight(__topMargin + __bottomMargin);\r
+ CreateContentElement();\r
+ if (__pMsgContent)\r
+ {\r
+ __pMsgContent->CreateTextLayout(itemWidth - statusWidth);\r
+ bubbleHeight += __pMsgContent->GetMinHeight();\r
+ bubbleWidth += __pMsgContent->GetMaxWidth();\r
+ }\r
+ // MMS realted bubble elment height need to be include\r
+ if (__convData.IsMms())\r
+ {\r
+ if (__convData.GetAttachmentCount() > 0)\r
+ {\r
+ // Create attachment layout.\r
+ __pAttachmentItem = new (std::nothrow) LVAttachItem();\r
+ if (__pAttachmentItem)\r
+ {\r
+ String attachTitle;\r
+ attachTitle.Append(__convData.GetAttachmentCount());\r
+ __pAttachmentItem->SetText(attachTitle, __fontSettings.GetFont(MSG_FONT_ID_TINY));\r
+ Bitmap* pIconBitmap = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_ATTACHEMENT);\r
+ __pAttachmentItem->SetAttachIcon(*pIconBitmap);\r
+ bubbleHeight += H_ICON_64PX;\r
+ if (bubbleWidth < (W_ICON_64PX * 3 + __leftMargin + __rightMargin))\r
+ {\r
+ bubbleWidth = (W_ICON_64PX * 3 + __leftMargin + __rightMargin);\r
+ }\r
+ }\r
+ }\r
+ bubbleHeight += MARGIN_14PX;\r
+ // Set MMS thumbnail bitmap.\r
+ __pMediaThumbnail = __convData.GetThumbnail();\r
+ if (__pMediaThumbnail)\r
+ {\r
+ if (bubbleWidth < (W_BUBBLE_THUMBNAIL_310PX + __leftMargin + __rightMargin))\r
+ {\r
+ bubbleWidth = W_BUBBLE_THUMBNAIL_310PX + __leftMargin + __rightMargin;\r
+ }\r
+ bubbleHeight += (MARGIN_14PX + H_BUBBLE_THUMBNAIL_204PX);\r
+ }\r
+ // Detail button\r
+ if (!__convData.IsSending())\r
+ {\r
+ __pDetailButton = new (std::nothrow) LVButtonItem();\r
+ if (__pDetailButton)\r
+ {\r
+ Bitmap* pNormalBgBitmap = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_CIRCLE_BUTTON_BG);\r
+ Bitmap* pPressBgBitmap = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_CIRCLE_BUTTON_BG_PRESS);\r
+ __pDetailButton->SetBackgroundImage(*pNormalBgBitmap, *pPressBgBitmap);\r
+ Bitmap* pIconBitmap = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_ARROW_EXPAND);\r
+ __pDetailButton->SetIcon(*pIconBitmap);\r
+ bubbleHeight += H_ICON_64PX;\r
+ if (bubbleWidth < (W_ICON_64PX * 3 + __leftMargin + __rightMargin))\r
+ {\r
+ bubbleWidth = (W_ICON_64PX * 3 + __leftMargin + __rightMargin);\r
+ }\r
+ }\r
+ }\r
+ }\r
+ bubbleHeight += (MARGIN_12PX * 2); // Include margin between two bubble\r
+ Construct(Dimension(__Width, bubbleHeight), listStyle);\r
+ // Disable default list item selection color\r
+ SetBackgroundColor(LIST_ITEM_DRAWING_STATUS_HIGHLIGHTED, GetBackgroundColor(LIST_ITEM_DRAWING_STATUS_NORMAL));\r
+ SetBackgroundColor(LIST_ITEM_DRAWING_STATUS_PRESSED, GetBackgroundColor(LIST_ITEM_DRAWING_STATUS_NORMAL));\r
+ SetBackgroundColor(LIST_ITEM_DRAWING_STATUS_NORMAL, GetBackgroundColor(LIST_ITEM_DRAWING_STATUS_NORMAL));\r
+ if (__convData.IsSent())\r
+ {\r
+ leftX = itemWidth - bubbleWidth;\r
+ }\r
+ AddElement(Rectangle(leftX, leftY, bubbleWidth, bubbleHeight - MARGIN_12PX * 2)\r
+ , MSG_BUBBLE_ITEM_BG, *__pBackgroudItem);\r
+\r
+ int yPos(__topMargin + MARGIN_12PX);\r
+ if (__pMsgContent)\r
+ {\r
+ AddElement(Rectangle(leftX, yPos, __pMsgContent->GetMaxWidth(), __pMsgContent->GetMinHeight())\r
+ , MSG_BUBBLE_ITEM_TEXT, *__pMsgContent);\r
+ // Enable event dispatch\r
+ SetElementSelectionEnabled(MSG_BUBBLE_ITEM_TEXT, true);\r
+ yPos += __pMsgContent->GetMinHeight();\r
+ }\r
+ if (__convData.IsSent())\r
+ {\r
+ if (__pProgressIcon)\r
+ {\r
+ AddElement(Rectangle(leftX - statusWidth + MARGIN_16PX\r
+ , bubbleHeight - statusHeight - MARGIN_20PX, statusWidth - MARGIN_16PX - MARGIN_10PX, statusHeight)\r
+ , MSG_BUBBLE_ITEM_FAIL_STATUS, *__pProgressIcon,\r
+ __pProgressIcon);\r
+ SetElementSelectionEnabled(MSG_BUBBLE_ITEM_FAIL_STATUS, true);\r
+ __pAnimationTimer = new (std::nothrow) Timer();\r
+ __pAnimationTimer->Construct(*this);\r
+ __pAnimationTimer->Start(200);\r
+ }\r
+ else if (__pFailIndicator)\r
+ {\r
+ SetElementSelectionEnabled(MSG_BUBBLE_ITEM_FAIL_STATUS, true);\r
+ AddElement(Rectangle(leftX - statusWidth + MARGIN_16PX\r
+ , bubbleHeight - statusHeight - __bottomMargin - MARGIN_12PX, statusWidth - MARGIN_16PX - MARGIN_10PX, statusHeight)\r
+ , MSG_BUBBLE_ITEM_FAIL_STATUS, *__pFailIndicator);\r
+ SetElementSelectionEnabled(MSG_BUBBLE_ITEM_FAIL_STATUS, true);\r
+ }\r
+ else\r
+ {\r
+ AddElement(Rectangle(leftX - statusWidth, bubbleHeight - statusHeight - __bottomMargin - MARGIN_12PX\r
+ , __pMsgDate->GetMaxWidth(), statusHeight)\r
+ , MSG_BUBBLE_ITEM_DATE, *__pMsgDate);\r
+ SetElementSelectionEnabled(MSG_BUBBLE_ITEM_DATE, false);\r
+ }\r
+ }\r
+ else\r
+ {\r
+ AddElement(Rectangle(leftX + bubbleWidth + MARGIN_16PX,\r
+ bubbleHeight - statusHeight - __bottomMargin, __pMsgDate->GetMaxWidth(), MARGIN_26PX)\r
+ , MSG_BUBBLE_ITEM_DATE, *__pMsgDate);\r
+ // if (__convData.IsUnRead())\r
+ if (0)\r
+ {\r
+ String strText(IDS_BLANK);\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_SK3_UNREAD", strText);\r
+ AddElement(Rectangle(leftX + bubbleWidth + MARGIN_16PX\r
+ , bubbleHeight - __bottomMargin - MARGIN_4PX - MARGIN_26PX * 2, statusWidth, MARGIN_26PX)\r
+ , MSG_BUBBLE_ITEM_UNREAD_STATUS, strText, MSG_TIME_FONT_SIZE,\r
+ COLOR_BUBBLE_RECEIVE_TIME_STAMP, COLOR_BUBBLE_RECEIVE_TIME_STAMP,\r
+ COLOR_BUBBLE_RECEIVE_TIME_STAMP);\r
+ SetElementSelectionEnabled(MSG_BUBBLE_ITEM_UNREAD_STATUS, false);\r
+ }\r
+ SetElementSelectionEnabled(MSG_BUBBLE_ITEM_DATE, false);\r
+ }\r
+ // Add Attachement\r
+ if (__pAttachmentItem)\r
+ {\r
+ AddElement(Rectangle(leftX + MARGIN_16PX, yPos,\r
+ W_ICON_64PX * 2, H_ICON_64PX), MSG_BUBBLE_ITEM_ATTACHMENT, *__pAttachmentItem);\r
+ yPos += H_ICON_64PX;\r
+ SetElementSelectionEnabled(MSG_BUBBLE_ITEM_ATTACHMENT, false);\r
+ }\r
+ // Add mms thumnail\r
+ if (__pMediaThumbnail)\r
+ {\r
+ if (!__pAttachmentItem) yPos += MARGIN_14PX;\r
+ AddElement(Rectangle(leftX + MARGIN_16PX,\r
+ yPos, W_BUBBLE_THUMBNAIL_310PX, H_BUBBLE_THUMBNAIL_204PX),\r
+ MSG_BUBBLE_ITEM_IMAGE, *__pMediaThumbnail);\r
+ yPos += (H_BUBBLE_THUMBNAIL_204PX + MARGIN_14PX);\r
+ SetElementSelectionEnabled(MSG_BUBBLE_ITEM_IMAGE, false);\r
+ }\r
+ //Add detail button\r
+ if (__pDetailButton)\r
+ {\r
+ AddElement(Rectangle(leftX + bubbleWidth - H_ICON_64PX - __rightMargin, yPos,\r
+ W_ICON_64PX, H_ICON_64PX), MSG_BUBBLE_ITEM_DETAILS, *__pDetailButton);\r
+ SetElementSelectionEnabled(MSG_BUBBLE_ITEM_DETAILS, true);\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return;\r
+}\r
+\r
+void\r
+LVBubbleListItem::OnTimerExpired(Timer& timer)\r
+{\r
+ AppLogDebug("ENTER");\r
+ if (__index >= 0 && (&__listView))\r
+ {\r
+ int index = __convData.GetAnimationIconIndex() + 1;\r
+ __convData.SetAnimationIconIndex(index);\r
+ __listView.RefreshList(__groupIndex, __index, LIST_REFRESH_TYPE_ITEM_MODIFY);\r
+ }\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
--- /dev/null
+//\r
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.\r
+//\r
+// Licensed under the Flora License, Version 1.0 (the License);\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+// http://floralicense.org/license/\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an AS IS BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+//\r
+\r
+#include "MsgLVButtonItem.h"\r
+\r
+using namespace Tizen::Graphics;\r
+using namespace Tizen::Ui::Controls;\r
+\r
+LVButtonItem::LVButtonItem(void)\r
+ : __pBackgroundBitmap(null)\r
+ , __pSelectedBitmap(null)\r
+ , __pIconBitmap(null)\r
+{\r
+ //Empty implementation\r
+}\r
+\r
+LVButtonItem::~LVButtonItem(void)\r
+{\r
+ //Empty implementation\r
+ AppLogDebug("ENTER");\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
+\r
+bool\r
+LVButtonItem::OnDraw(Canvas& canvas, const Rectangle& rect, ListItemDrawingStatus status)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ result r = E_SUCCESS;\r
+ Canvas* pCanvas = const_cast<Canvas*>(&canvas);\r
+ if (status == LIST_ITEM_DRAWING_STATUS_NORMAL)\r
+ {\r
+ if (__pBackgroundBitmap)\r
+ {\r
+ r |= pCanvas->DrawBitmap(rect, *__pBackgroundBitmap);\r
+ }\r
+ }\r
+ else if (status == LIST_ITEM_DRAWING_STATUS_PRESSED\r
+ || status == LIST_ITEM_DRAWING_STATUS_HIGHLIGHTED)\r
+ {\r
+ if (__pSelectedBitmap)\r
+ {\r
+ r |= pCanvas->DrawBitmap(rect, *__pSelectedBitmap);\r
+ }\r
+ }\r
+ // Draw Icon\r
+ if (__pIconBitmap)\r
+ {\r
+ int x = rect.x + (rect.width - __pIconBitmap->GetWidth()) / 2;\r
+ int y = rect.y + (rect.height - __pIconBitmap->GetHeight()) / 2;\r
+ r |= pCanvas->DrawBitmap(Point(x, y), *__pIconBitmap);\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return (r == E_SUCCESS);\r
+}\r
+\r
+void\r
+LVButtonItem::SetBackgroundImage(const Bitmap& normalIBg, const Bitmap& selectBg)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ __pBackgroundBitmap = &normalIBg;\r
+ __pSelectedBitmap = &selectBg;\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
+\r
+void\r
+LVButtonItem::SetIcon(const Bitmap& selectionImage)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ __pIconBitmap = &selectionImage;\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
--- /dev/null
+//\r
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.\r
+//\r
+// Licensed under the Flora License, Version 1.0 (the License);\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+// http://floralicense.org/license/\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an AS IS BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+//\r
+\r
+#include <FGrpEnrichedText.h>\r
+\r
+#include "MsgLVMultiLineTextItem.h"\r
+#include "MsgTypes.h"\r
+\r
+using namespace Tizen::Base;\r
+using namespace Tizen::Base::Collection;\r
+using namespace Tizen::Graphics;\r
+using namespace Tizen::Ui::Controls;\r
+\r
+LVMultiLineTextItem::LVMultiLineTextItem(void)\r
+ : __pBackgroundBitmap(null)\r
+ , __pSelectedBitmap(null)\r
+ , __pEnrichedText(null)\r
+ , __pNormalColor(null)\r
+ , __pSelectionColor(null)\r
+ , __verticalAlignment(TEXT_ALIGNMENT_TOP)\r
+ , __horizontalAlignment(TEXT_ALIGNMENT_LEFT)\r
+ , __viewRectWidth(0)\r
+ , __leftMargin(0)\r
+ , __rightMargin(0)\r
+ , __topMargin(0)\r
+ , __bottomMargin(0)\r
+ , __minHeight(0)\r
+ , __minWidth(0)\r
+{\r
+ //Empty implementation\r
+}\r
+\r
+LVMultiLineTextItem::~LVMultiLineTextItem(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ if (__pEnrichedText)\r
+ {\r
+ __pEnrichedText->RemoveAll(true);\r
+ delete __pEnrichedText;\r
+ }\r
+ if (__pNormalColor)\r
+ {\r
+ __pNormalColor->RemoveAll(false);\r
+ delete __pNormalColor;\r
+ }\r
+ if (__pSelectionColor)\r
+ {\r
+ __pSelectionColor->RemoveAll(false);\r
+ delete __pSelectionColor;\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
+void\r
+LVMultiLineTextItem::SetViewRectWidth(int rectWidth)\r
+{\r
+ AppLogDebug("ENTER");\r
+ __viewRectWidth = rectWidth;\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return;\r
+}\r
+\r
+void\r
+LVMultiLineTextItem::CreateTextLayout(int width, bool singleLine)\r
+{\r
+ AppLogDebug("ENTER");\r
+ if (width > 0)\r
+ {\r
+ __viewRectWidth = width;\r
+ }\r
+ __pEnrichedText->SetSize(Dimension(__viewRectWidth - __leftMargin - __rightMargin, 800));\r
+ __pEnrichedText->SetVerticalAlignment(__verticalAlignment);\r
+ __pEnrichedText->SetHorizontalAlignment(__horizontalAlignment);\r
+ if (singleLine)\r
+ {\r
+ __pEnrichedText->SetTextWrapStyle(TEXT_WRAP_NONE);\r
+ __pEnrichedText->SetTextAbbreviationEnabled(true);\r
+\r
+ }\r
+ else\r
+ {\r
+ __pEnrichedText->SetTextWrapStyle(TEXT_WRAP_WORD_WRAP);\r
+ __pEnrichedText->SetTextAbbreviationEnabled(false);\r
+ }\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return;\r
+}\r
+\r
+void\r
+LVMultiLineTextItem::SetTextMargin(int left, int right, int top, int bottom)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ __leftMargin = left;\r
+ __rightMargin = right;\r
+ __topMargin = top;\r
+ __bottomMargin = bottom;\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return;\r
+}\r
+\r
+void\r
+LVMultiLineTextItem::AddText(const String& msgText, const Color& textColor,\r
+ const Color& textSelectionColor, const Font* ptextFont)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ if (__pEnrichedText == null)\r
+ {\r
+ __pEnrichedText = new (std::nothrow) EnrichedText();\r
+ // Dummy dimension\r
+ if (__pEnrichedText == null)\r
+ {\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return;\r
+ }\r
+ __pEnrichedText->Construct(Dimension(5, 40));\r
+ }\r
+\r
+ // Add new text element.\r
+ TextElement* pTextElement = new (std::nothrow) TextElement();\r
+ if (pTextElement == null)\r
+ {\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return;\r
+ }\r
+ pTextElement->Construct(msgText);\r
+ pTextElement->SetTextColor(textColor);\r
+ // Set font.\r
+ if (ptextFont)\r
+ {\r
+ pTextElement->SetFont(*ptextFont);\r
+ }\r
+ //Store color for future drawing\r
+ if (__pNormalColor == null)\r
+ {\r
+ __pNormalColor = new (std::nothrow) ArrayList();\r
+ __pNormalColor->Construct();\r
+ }\r
+ __pNormalColor->Add(new Color(textColor));\r
+\r
+ if (__pSelectionColor == null)\r
+ {\r
+ __pSelectionColor = new (std::nothrow) ArrayList();\r
+ __pSelectionColor->Construct();\r
+ }\r
+ __pSelectionColor->Add(new Color(textSelectionColor));\r
+ // Explicitly need to remove element.\r
+ __pEnrichedText->Add(*pTextElement);\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return;\r
+}\r
+\r
+int\r
+LVMultiLineTextItem::GetMinHeight(void) const\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ int minHeight = 0;\r
+ if (__pEnrichedText)\r
+ {\r
+ int height, width, length, startIndex = 0;\r
+ __pEnrichedText->GetTextExtent(startIndex, __pEnrichedText->GetLineLength(0), width, height, length);\r
+ minHeight = __pEnrichedText->GetTotalLineHeight() + __topMargin + __bottomMargin;\r
+ }\r
+ if (minHeight <= __minHeight)\r
+ {\r
+ __topMargin = (__minHeight - minHeight) / 2;\r
+ __bottomMargin = (__minHeight - minHeight) / 2;\r
+ minHeight = __minHeight;\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return minHeight;\r
+}\r
+\r
+void\r
+LVMultiLineTextItem::SetMinimumHeight(int minHeight)\r
+{\r
+ AppLogDebug("ENTER");\r
+ __minHeight = minHeight;\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
+void\r
+LVMultiLineTextItem::SetMinimumWidth(int minWidth)\r
+{\r
+ AppLogDebug("ENTER");\r
+ __minWidth = minWidth;\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
+\r
+int\r
+LVMultiLineTextItem::GetMaxWidth(void) const\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ int maxWidth = 0;\r
+ if (__pEnrichedText)\r
+ {\r
+ int height, width, length, lineTextLength, startIndex = 0;\r
+ int lineCount = __pEnrichedText->GetTotalLineCount();\r
+ for (int count = 0; count < lineCount; count++)\r
+ {\r
+ lineTextLength = __pEnrichedText->GetLineLength(count);\r
+ __pEnrichedText->GetTextExtent(startIndex, lineTextLength, width, height, length);\r
+ startIndex += lineTextLength;\r
+ if (maxWidth < width)\r
+ {\r
+ maxWidth = width;\r
+ }\r
+ }\r
+ }\r
+ if ((maxWidth + __leftMargin + __rightMargin) < __minWidth)\r
+ {\r
+ __leftMargin += (__minWidth - maxWidth) / 2;\r
+ __rightMargin += (__minWidth - maxWidth) / 2;\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return (maxWidth + __leftMargin + __rightMargin); // for bubble\r
+}\r
+\r
+void\r
+LVMultiLineTextItem::SetBackgroundImage(const Bitmap& backgroudImage)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ __pBackgroundBitmap = &backgroudImage;\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return;\r
+}\r
+\r
+void\r
+LVMultiLineTextItem::SetSelectionImage(const Bitmap& selectionImage)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ __pSelectedBitmap = &selectionImage;\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return;\r
+}\r
+\r
+void\r
+LVMultiLineTextItem::SetVerticalAlignment(TextVerticalAlignment alignment)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ __verticalAlignment = alignment;\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return;\r
+}\r
+\r
+void\r
+LVMultiLineTextItem::SetHorizentalAlignment(TextHorizontalAlignment alignment)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ __horizontalAlignment = alignment;\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return;\r
+}\r
+\r
+\r
+bool\r
+LVMultiLineTextItem::OnDraw(Canvas& canvas,\r
+ const Rectangle& rect,\r
+ ListItemDrawingStatus status)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ result r = E_SUCCESS;\r
+ // Text element count\r
+ int elementCount = __pEnrichedText->GetTextElementCount();\r
+ // Normal mode\r
+ if (status == LIST_ITEM_DRAWING_STATUS_NORMAL)\r
+ {\r
+ __pEnrichedText->SetSize(Dimension(__viewRectWidth - __leftMargin - __rightMargin,\r
+ __pEnrichedText->GetTotalLineHeight()));\r
+ // Draw background normal mode\r
+ if (__pBackgroundBitmap)\r
+ {\r
+ r = canvas.DrawNinePatchedBitmap(rect, *__pBackgroundBitmap);\r
+ if (r != E_SUCCESS)\r
+ {\r
+ canvas.DrawBitmap(rect, *__pBackgroundBitmap);\r
+ }\r
+ }\r
+ // Update text element colour in normal mode.\r
+ for (int count = 0; count < elementCount; count++)\r
+ {\r
+ __pEnrichedText->GetTextElementAt(count)->SetTextColor(\r
+ *(static_cast<Color*>(__pNormalColor->GetAt(count))));\r
+ }\r
+ canvas.DrawText(Point(rect.x + __leftMargin, rect.y + __topMargin), *__pEnrichedText);\r
+ }\r
+ // selection mode.\r
+ else if (status == LIST_ITEM_DRAWING_STATUS_PRESSED ||\r
+ status == LIST_ITEM_DRAWING_STATUS_HIGHLIGHTED)\r
+ {\r
+ // Draw background selection mode\r
+ if (__pSelectedBitmap)\r
+ {\r
+ r = canvas.DrawNinePatchedBitmap(rect, *__pSelectedBitmap);\r
+ if (r != E_SUCCESS)\r
+ {\r
+ canvas.DrawBitmap(rect, *__pSelectedBitmap);\r
+ }\r
+ }\r
+ // Update text element colour in selection mode.\r
+ for (int count = 0; count < elementCount; count++)\r
+ {\r
+ __pEnrichedText->GetTextElementAt(count)->SetTextColor(\r
+ *(static_cast<Color*>(__pSelectionColor->GetAt(count))));\r
+\r
+ }\r
+ canvas.DrawText(Point(rect.x + __leftMargin, rect.y + __topMargin), *__pEnrichedText);\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return true;\r
+}\r
--- /dev/null
+//\r
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.\r
+//\r
+// Licensed under the Flora License, Version 1.0 (the License);\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+// http://floralicense.org/license/\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an AS IS BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+//\r
+\r
+#include <msg_types.h>\r
+\r
+#include <FApp.h>\r
+#include <FBase.h>\r
+\r
+#include "MsgBaseData.h"\r
+#include "MsgBitmapUtility.h"\r
+#include "MsgLVMultiLineTextItem.h"\r
+#include "MsgLVThreadListItem.h"\r
+#include "MsgTypes.h"\r
+\r
+// Define constant.\r
+#define STATUS_ITEM_WIDTH 156\r
+\r
+using namespace Tizen::App;\r
+using namespace Tizen::Base;\r
+using namespace Tizen::Graphics;\r
+using namespace Tizen::Ui::Controls;\r
+\r
+\r
+LVThreadListItem::LVThreadListItem(BaseData& baseEntry, int width, bool editMode)\r
+ : __entryData(baseEntry)\r
+ , __pStatusText(null)\r
+ , __pTitleText(null)\r
+ , __pShortMsgText(null)\r
+ , __pMainTextFont(null)\r
+ , __pSubTextFont(null)\r
+ , __msgType(0)\r
+ , __Width(width)\r
+ , __IsEditMode(editMode)\r
+{\r
+ //Empty implementation\r
+}\r
+\r
+LVThreadListItem::~LVThreadListItem(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ if (__pSubTextFont)\r
+ {\r
+ delete __pSubTextFont;\r
+ }\r
+ if (__pMainTextFont)\r
+ {\r
+ delete __pMainTextFont;\r
+ }\r
+ if (__pStatusText)\r
+ {\r
+ delete __pStatusText;\r
+ }\r
+ if (__pTitleText)\r
+ {\r
+ delete __pTitleText;\r
+ }\r
+ if (__pShortMsgText)\r
+ {\r
+ delete __pShortMsgText;\r
+ }\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
+\r
+// Set Unread count.\r
+void\r
+LVThreadListItem::CreateStatusElement(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+ if (__pStatusText)\r
+ {\r
+ delete __pStatusText;\r
+ }\r
+ __pStatusText = new (std::nothrow) LVMultiLineTextItem();\r
+ String statusText;\r
+ if (__entryData.GetUnreadCount() > 0)\r
+ {\r
+ statusText.Format(4, L"%d", __entryData.GetUnreadCount());\r
+ __pStatusText->SetMinimumWidth(W_UNREAD_ICON);\r
+ __pStatusText->SetMinimumHeight(H_UNREAD_ICON);\r
+ Bitmap* pBitmap = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_UNREAD);\r
+ __pStatusText->SetBackgroundImage(*pBitmap);\r
+ __pStatusText->SetSelectionImage(*pBitmap);\r
+ }\r
+ else if (__entryData.GetDraftMessageCount() > 0)\r
+ {\r
+ statusText.Append(IDS_DRAFT);\r
+ }\r
+\r
+ if (!__pSubTextFont)\r
+ {\r
+ __pSubTextFont = new (std::nothrow) Font();\r
+ __pSubTextFont->Construct(FONT_STYLE_PLAIN, THREAD_LIST_SUB_TEXT_FONT_SIZE);\r
+ }\r
+ __pStatusText->AddText(statusText, COLOR_BLACK, COLOR_BLACK, __pSubTextFont);\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return;\r
+}\r
+\r
+void\r
+LVThreadListItem::CreateTitleElement(const String& searchText)\r
+{\r
+ AppLogDebug("ENTER");\r
+ if (__pTitleText)\r
+ {\r
+ delete __pTitleText;\r
+ }\r
+ __pTitleText = new (std::nothrow) LVMultiLineTextItem();\r
+ __pMainTextFont = new (std::nothrow) Font();\r
+ __pMainTextFont->Construct(FONT_STYLE_PLAIN, THREAD_LIST_MAIN_TEXT_FONT_SIZE);\r
+ if (searchText.IsEmpty())\r
+ {\r
+ __pTitleText->AddText(__entryData.GetDisplayName(), COLOR_THREADLIST_DISPLAY_NAME_ITEM, COLOR_THREADLIST_DISPLAY_NAME_ITEM, __pMainTextFont);\r
+ }\r
+ else\r
+ {\r
+ int searchIndex(-1);\r
+ String displayName(__entryData.GetDisplayName());\r
+ displayName.ToLowerCase();\r
+ displayName.IndexOf(searchText, 0, searchIndex);\r
+ int strLength = displayName.GetLength();\r
+ if (searchIndex >= 0)\r
+ {\r
+ String strText;\r
+ if (searchIndex > 0)\r
+ {\r
+ __entryData.GetDisplayName().SubString(0, searchIndex, strText);\r
+ __pTitleText->AddText(strText, COLOR_THREADLIST_DISPLAY_NAME_ITEM, COLOR_THREADLIST_DISPLAY_NAME_ITEM, __pMainTextFont);\r
+ }\r
+ __entryData.GetDisplayName().SubString(searchIndex, searchText.GetLength(), strText);\r
+ __pTitleText->AddText(strText, COLOR_SEARCH_TEXT, COLOR_SEARCH_TEXT, __pMainTextFont);\r
+ if (searchIndex + searchText.GetLength() < strLength)\r
+ {\r
+ __entryData.GetDisplayName().SubString(searchIndex + searchText.GetLength(), strText);\r
+ __pTitleText->AddText(strText, COLOR_THREADLIST_DISPLAY_NAME_ITEM, COLOR_THREADLIST_DISPLAY_NAME_ITEM, __pMainTextFont);\r
+ }\r
+ }\r
+ else\r
+ {\r
+ __pTitleText->AddText(__entryData.GetDisplayName(), COLOR_THREADLIST_DISPLAY_NAME_ITEM, COLOR_THREADLIST_DISPLAY_NAME_ITEM, __pMainTextFont);\r
+\r
+ }\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return;\r
+\r
+}\r
+\r
+void\r
+LVThreadListItem::CreateMessageElement(const String& searchText)\r
+{\r
+ AppLogDebug("ENTER");\r
+ if (__pShortMsgText)\r
+ {\r
+ delete __pShortMsgText;\r
+ }\r
+ __pShortMsgText = new (std::nothrow) LVMultiLineTextItem();\r
+ if (!__pSubTextFont)\r
+ {\r
+ __pSubTextFont = new (std::nothrow) Font();\r
+ __pSubTextFont->Construct(FONT_STYLE_PLAIN, THREAD_LIST_SUB_TEXT_FONT_SIZE);\r
+ }\r
+ if (searchText.IsEmpty())\r
+ {\r
+ __pShortMsgText->AddText(__entryData.GetMessageText(),\r
+ COLOR_THREADLIST_DATE_TIME_SHORTMSG_ITEM,\r
+ COLOR_THREADLIST_DATE_TIME_SHORTMSG_ITEM, __pSubTextFont);\r
+ }\r
+ else\r
+ {\r
+ int searchIndex(-1);\r
+ String msgText(__entryData.GetMessageText());\r
+ msgText.ToLowerCase();\r
+ msgText.IndexOf(searchText, 0, searchIndex);\r
+ int strLength = msgText.GetLength();\r
+ // Search text\r
+ if (searchIndex >= 0)\r
+ {\r
+ String strText;\r
+ if (searchIndex > 0)\r
+ {\r
+ __entryData.GetMessageText().SubString(0, searchIndex, strText);\r
+ __pShortMsgText->AddText(strText,\r
+ COLOR_THREADLIST_DATE_TIME_SHORTMSG_ITEM,\r
+ COLOR_THREADLIST_DATE_TIME_SHORTMSG_ITEM, __pSubTextFont);\r
+ }\r
+ __entryData.GetMessageText().SubString(searchIndex, searchText.GetLength(), strText);\r
+ __pShortMsgText->AddText(strText, COLOR_SEARCH_TEXT, COLOR_SEARCH_TEXT, __pSubTextFont);\r
+ if (searchIndex + searchText.GetLength() < strLength)\r
+ {\r
+ __entryData.GetMessageText().SubString(searchIndex + searchText.GetLength(), strText);\r
+ __pShortMsgText->AddText(strText,\r
+ COLOR_THREADLIST_DATE_TIME_SHORTMSG_ITEM,\r
+ COLOR_THREADLIST_DATE_TIME_SHORTMSG_ITEM, __pSubTextFont);\r
+ }\r
+\r
+ }\r
+ else\r
+ {\r
+ __pShortMsgText->AddText(__entryData.GetMessageText(),\r
+ COLOR_THREADLIST_DATE_TIME_SHORTMSG_ITEM,\r
+ COLOR_THREADLIST_DATE_TIME_SHORTMSG_ITEM, __pSubTextFont);\r
+ }\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return;\r
+}\r
+\r
+void\r
+LVThreadListItem::CreateThreadItemLayout(const String& searchText)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ // Check item is in edit mode.\r
+ ListAnnexStyle listStyle = LIST_ANNEX_STYLE_NORMAL;\r
+ int itemWidth(__Width);\r
+ if (__IsEditMode)\r
+ {\r
+ listStyle = LIST_ANNEX_STYLE_MARK;\r
+ itemWidth -= W_CHECKBOX;\r
+ }\r
+ Construct(Dimension(__Width, H_LIST_ITEM_128PX), listStyle);\r
+\r
+ int posX = MARGIN_16PX;\r
+ int posY = MARGIN_10PX;\r
+ int width = itemWidth - MARGIN_16PX - STATUS_ITEM_WIDTH;\r
+ int height = H_TITLE_LINE;\r
+ // For display name.\r
+ CreateTitleElement(searchText);\r
+ __pTitleText->CreateTextLayout(width, true);\r
+ AddElement(Rectangle(posX, posY, width, height), IDC_LIST_TEXT_CONTACT, *__pTitleText);\r
+ SetElementSelectionEnabled(IDC_LIST_TEXT_CONTACT, false);\r
+ // For message type icon.\r
+ BitmapUtility* pBitmapManger = BitmapUtility::GetInstance();\r
+ posX = itemWidth - STATUS_ITEM_WIDTH + MARGIN_16PX;\r
+ width = height = W_ICON_48PX;\r
+ posY += (H_TITLE_LINE - W_ICON_48PX) / 2;\r
+ MessageIconType msgType = ConvertIconType(__entryData.GetMessageType());\r
+ if (msgType != MSG_ICON_INVALID)\r
+ {\r
+ Bitmap* pNormalIcon = pBitmapManger->GetIcon(msgType);\r
+ int nextMsgType = int(msgType) + 1;\r
+ Bitmap* pSelectionIcon = pBitmapManger->GetIcon((MessageIconType) nextMsgType);\r
+ AddElement(Rectangle(posX, posY, width, height),\r
+ IDC_LIST_MSG_ICON, *pNormalIcon, pSelectionIcon);\r
+ }\r
+ // For Draft and Unread status.\r
+ posX = MARGIN_16PX;\r
+ int draftIconWidth(0);\r
+ if (__entryData.GetUnreadCount() > 0 || (__entryData.GetDraftMessageCount() > 0))\r
+ {\r
+ if (__entryData.GetDataType() == DATA_TYPE_MESSAGE)\r
+ {\r
+ posX = MARGIN_16PX;\r
+ posY = MARGIN_10PX + H_TITLE_LINE;\r
+ Bitmap* pNormalIcon = pBitmapManger->GetIcon((MessageIconType) MSG_ICON_DRAFT);\r
+ AddElement(Rectangle(posX, posY, W_ICON_48PX, H_ICON_48PX),\r
+ IDC_LIST_DRAFT_ICON, *pNormalIcon, pNormalIcon);\r
+ posX += W_ICON_48PX + MARGIN_10PX;\r
+ draftIconWidth = W_ICON_48PX;\r
+ }\r
+ else\r
+ {\r
+ CreateStatusElement();\r
+ __pStatusText->CreateTextLayout(itemWidth);\r
+ posX = itemWidth - __pStatusText->GetMaxWidth() - MARGIN_16PX;\r
+ AddElement(Rectangle(posX, posY, __pStatusText->GetMaxWidth(), __pStatusText->GetMinHeight()), IDC_LIST_MSG_UNREAD, *__pStatusText);\r
+ SetElementTextHorizontalAlignment(IDC_LIST_MSG_UNREAD, ALIGNMENT_CENTER);\r
+ posX = MARGIN_16PX;\r
+ }\r
+ }\r
+ // For short message info\r
+ posY = MARGIN_10PX + H_TITLE_LINE;\r
+ width = itemWidth - MARGIN_16PX * 2 - STATUS_ITEM_WIDTH - draftIconWidth;\r
+ height = H_SUB_TITLE;\r
+ CreateMessageElement(searchText);\r
+ __pShortMsgText->CreateTextLayout(width, true);\r
+ AddElement(Rectangle(posX, posY, width, height), IDC_LIST_TEXT_MSG, *__pShortMsgText);\r
+ SetElementSelectionEnabled(IDC_LIST_TEXT_MSG, false);\r
+ SetElementTextVerticalAlignment(IDC_LIST_TEXT_MSG, ALIGNMENT_MIDDLE);\r
+ SetElementTextHorizontalAlignment(IDC_LIST_TEXT_MSG, ALIGNMENT_LEFT);\r
+ // For Date & time\r
+ posX = itemWidth - STATUS_ITEM_WIDTH + MARGIN_4PX;\r
+ width = STATUS_ITEM_WIDTH;\r
+ AddElement(Rectangle(posX, posY, width, height),\r
+ IDC_LIST_TEXT_DATE_TIME, __entryData.GetTimeStamp(), MSG_DATE_FONT_SIZE,\r
+ COLOR_THREADLIST_DATE_TIME_SHORTMSG_ITEM, COLOR_THREADLIST_DATE_TIME_SHORTMSG_ITEM, COLOR_THREADLIST_DATE_TIME_SHORTMSG_ITEM);\r
+ //SetElementTextHorizontalAlignment(IDC_LIST_TEXT_DATE_TIME, ALIGNMENT_RIGHT);\r
+ SetElementSelectionEnabled(IDC_LIST_TEXT_DATE_TIME, false);\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return;\r
+}\r
+\r
+MessageIconType\r
+LVThreadListItem::ConvertIconType(int msgType)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ MessageIconType invalideIcon = MSG_ICON_INVALID;\r
+ switch (msgType)\r
+ {\r
+ case MSG_TYPE_SMS_CB:\r
+ case MSG_TYPE_SMS_JAVACB:\r
+ {\r
+ invalideIcon = MSG_ICON_BROADCASTMSG;\r
+ }\r
+ break;\r
+\r
+ case MSG_TYPE_SMS_WAPPUSH:\r
+ {\r
+ invalideIcon = MSG_ICON_PUSH;\r
+ }\r
+ break;\r
+\r
+ default:\r
+ break;\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return invalideIcon;\r
+}\r
--- /dev/null
+//\r
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.\r
+//\r
+// Licensed under the Flora License, Version 1.0 (the License);\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+// http://floralicense.org/license/\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an AS IS BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+//\r
+\r
+\r
+#include "MsgBaseData.h"\r
+#include "MsgListPresentationModel.h"\r
+\r
+\r
+using namespace Tizen::Base;\r
+using namespace Tizen::Base::Collection;\r
+using namespace Tizen::Base::Runtime;\r
+\r
+\r
+ListPresentationModel::ListPresentationModel(void)\r
+ : __pDataList(null)\r
+ , __pGroupInfo(null)\r
+{\r
+ //Empty implementation\r
+}\r
+\r
+ListPresentationModel::~ListPresentationModel(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+ if (__pDataList)\r
+ {\r
+ __pDataList->RemoveAll(true);\r
+ delete __pDataList;\r
+ }\r
+\r
+ if (__pGroupInfo)\r
+ {\r
+ __pGroupInfo->RemoveAll(true);\r
+ delete __pGroupInfo;\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+\r
+}\r
+\r
+result\r
+ListPresentationModel::Construct(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ result r = BasePresentationModel::Construct();\r
+ if (r == E_SUCCESS)\r
+ {\r
+ __pDataList = new (std::nothrow) ArrayList();\r
+ __pDataList->Construct();\r
+\r
+ __pGroupInfo = new (std::nothrow) ArrayList();\r
+ __pGroupInfo->Construct();\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(r));\r
+ return r;\r
+}\r
+\r
+BaseData*\r
+ListPresentationModel::GetDataAt(int index) const\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ BaseData* pBaseEntry = static_cast<BaseData*>(__pDataList->GetAt(index));\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return pBaseEntry;\r
+}\r
+\r
+int\r
+ListPresentationModel::GetCount(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ if (__pDataList)\r
+ {\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return __pDataList->GetCount();\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return 0;\r
+}\r
+\r
+\r
+void\r
+ListPresentationModel::PrepareGroupInfo(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ __pGroupInfo->RemoveAll(true);\r
+ int messageCount = __pDataList->GetCount();\r
+ int itemCount = 1;\r
+ if (messageCount == 1)\r
+ {\r
+ GroupInfo* pNewGroup = new (std::nothrow) GroupInfo();\r
+ BaseData* pBaseEntry = static_cast<BaseData*>(__pDataList->GetAt(0));\r
+ pNewGroup->groupName = pBaseEntry->GetGroupName();\r
+ pNewGroup->itemCount = itemCount;\r
+ __pGroupInfo->Add(pNewGroup);\r
+\r
+ }\r
+ else if (messageCount > 0)\r
+ {\r
+ BaseData* pBaseEntry = static_cast<BaseData*>(__pDataList->GetAt(0));\r
+ String groupName = pBaseEntry->GetGroupName();\r
+ String matchString = null;\r
+ for (int count = 1; count < messageCount; count++)\r
+ {\r
+ pBaseEntry = static_cast<BaseData*>(__pDataList->GetAt(count));\r
+ matchString = pBaseEntry->GetGroupName();\r
+ if (groupName.CompareTo(matchString) == 0)\r
+ {\r
+ itemCount++;\r
+ }\r
+ else\r
+ {\r
+ GroupInfo* pNewGrouop = new (std::nothrow) GroupInfo();\r
+ pNewGrouop->groupName = groupName;\r
+ pNewGrouop->itemCount = itemCount;\r
+ __pGroupInfo->Add(pNewGrouop);\r
+ itemCount = 1;\r
+ }\r
+ groupName = matchString;\r
+ // Last message then add in group\r
+ if (count + 1 == messageCount)\r
+ {\r
+ GroupInfo* pNewGrouop = new (std::nothrow) GroupInfo();\r
+ pNewGrouop->groupName = groupName;\r
+ pNewGrouop->itemCount = itemCount;\r
+ __pGroupInfo->Add(pNewGrouop);\r
+ }\r
+ }\r
+ }\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
+\r
+\r
+int\r
+ListPresentationModel::GetGroupCount(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ int grpCount(0);\r
+\r
+ if (__pGroupInfo->GetCount() > 0)\r
+ {\r
+ grpCount = __pGroupInfo->GetCount();\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return grpCount;\r
+}\r
+\r
+int\r
+ListPresentationModel::GetGroupItemCount(int groupIndex)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ int itemCount(0);\r
+ if (__pGroupInfo->GetCount() > 0)\r
+ {\r
+ GroupInfo* itemcount = static_cast<GroupInfo*>(__pGroupInfo->GetAt(groupIndex));\r
+ itemCount = itemcount->itemCount;\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return itemCount;\r
+}\r
+\r
+int\r
+ListPresentationModel::GetSelectedIndex(int groupIndex)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ int selectedIndex = 0;\r
+ for (int index = 0; index < groupIndex; index++)\r
+ {\r
+ GroupInfo* pGroup = static_cast<GroupInfo*>(__pGroupInfo->GetAt(index));\r
+ selectedIndex += pGroup->itemCount;\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return selectedIndex;\r
+}\r
+\r
+String\r
+ListPresentationModel::GetGroupName(int groupIndex)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ String groupName;\r
+ if (__pGroupInfo->GetCount() > 0)\r
+ {\r
+ GroupInfo* pGroup = static_cast<GroupInfo*>(__pGroupInfo->GetAt(groupIndex));\r
+ groupName = pGroup->groupName;\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return groupName;\r
+}\r
+\r
+void\r
+ListPresentationModel::Clear(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ __pDataList->RemoveAll(true);\r
+ __pGroupInfo->RemoveAll(true);\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return;\r
+}\r
--- /dev/null
+//\r
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.\r
+//\r
+// Licensed under the Flora License, Version 1.0 (the License);\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+// http://floralicense.org/license/\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an AS IS BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+//\r
+\r
+#include <FApp.h>\r
+\r
+#include "MsgFormFactory.h"\r
+#include "MsgMainFrame.h"\r
+#include "MsgMessagesApp.h"\r
+#include "MsgTypes.h"\r
+\r
+using namespace Tizen::App;\r
+using namespace Tizen::Base;\r
+using namespace Tizen::Base::Collection;\r
+using namespace Tizen::Ui;\r
+using namespace Tizen::Ui::Controls;\r
+using namespace Tizen::Ui::Scenes;\r
+\r
+MainFrame::MainFrame(void)\r
+ : __pFormFactory(null)\r
+{\r
+// Empty implementation\r
+}\r
+\r
+MainFrame::~MainFrame(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+ if (__pFormFactory)\r
+ {\r
+ delete __pFormFactory;\r
+ }\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
+\r
+result\r
+MainFrame::OnInitializing(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+ result r = E_SUCCESS;\r
+\r
+ r = RegisterAllScenes();\r
+ TryReturn(r == E_SUCCESS, r, "Scene Registeration failed");\r
+ //goto next form\r
+ MessagesApp* pMsgApp = static_cast<MessagesApp*>(UiApp::GetInstance());\r
+ SceneManager* pSceneManager = SceneManager::GetInstance();\r
+ IList* pArgList = pMsgApp->GetLaunchArgumentsN();\r
+ r |= pSceneManager->GoForward(ForwardSceneTransition(pMsgApp->GetInitialScene()), pArgList);\r
+ if (r != E_SUCCESS && pArgList)\r
+ {\r
+ pArgList->RemoveAll(true);\r
+ delete pArgList;\r
+ }\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return r;\r
+}\r
+\r
+result\r
+MainFrame::OnTerminating(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+ result r = E_SUCCESS;\r
+\r
+ // TODO:\r
+ // Add your termination code here\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return r;\r
+}\r
+\r
+result\r
+MainFrame::RegisterAllScenes(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+ result r = E_SUCCESS;\r
+ // Prepare Scene management.\r
+ __pFormFactory = new (std::nothrow) FormFactory();\r
+\r
+ SceneManager* pSceneManager = SceneManager::GetInstance();\r
+ r = pSceneManager->RegisterFormFactory(*__pFormFactory);\r
+\r
+ // Register thread and message form for scene manager\r
+ r |= pSceneManager->RegisterScene(IDSCN_THREAD_LIST,\r
+ IDFRM_THREAD_LIST, IDS_BLANK);\r
+ r |= pSceneManager->RegisterScene(IDSCN_THREAD_LIST_EDITOR,\r
+ IDFRM_THREAD_LIST_EDITOR, IDS_BLANK);\r
+ r |= pSceneManager->RegisterScene(IDSCN_SIM_MESSAGE_LIST,\r
+ IDFRM_SIM_MESSAGE_LIST, IDS_BLANK);\r
+ r |= pSceneManager->RegisterScene(IDSCN_SIM_MESSAGE_LIST_EDITOR,\r
+ IDFRM_SIM_MESSAGE_LIST_EDITOR, IDS_BLANK);\r
+ r |= pSceneManager->RegisterScene(IDSCN_SPAM_MESSAGE_LIST,\r
+ IDFRM_SPAM_MESSAGE_LIST, IDS_BLANK);\r
+ r |= pSceneManager->RegisterScene(IDSCN_SPAM_MESSAGE_LIST_EDITOR,\r
+ IDFRM_SPAM_MESSAGE_LIST_EDITOR, IDS_BLANK);\r
+ r |= pSceneManager->RegisterScene(IDSCN_CB_MESSAGE_LIST,\r
+ IDFRM_CB_MESSAGE_LIST, IDS_BLANK);\r
+ r |= pSceneManager->RegisterScene(IDSCN_CB_MESSAGE_LIST_EDITOR,\r
+ IDFRM_CB_MESSAGE_LIST_EDITOR, IDS_BLANK);\r
+ r |= pSceneManager->RegisterScene(IDSCN_DRAFT_MESSAGE_LIST,\r
+ IDFRM_DRAFT_MESSAGE_LIST, IDS_BLANK);\r
+ r |= pSceneManager->RegisterScene(IDSCN_DRAFT_MESSAGE_LIST_EDITOR,\r
+ IDFRM_DRAFT_MESSAGE_LIST_EDITOR, IDS_BLANK);\r
+\r
+ // Register Conversation form for scene manager\r
+ r |= pSceneManager->RegisterScene(IDSCN_CONVERSATION_LIST,\r
+ IDFRM_CONVERSATION_LIST, IDS_BLANK);\r
+ r |= pSceneManager->RegisterScene(IDSCN_CONVERSATION_LIST_EDITOR,\r
+ IDFRM_CONVERSATION_LIST_EDITOR, IDS_BLANK);\r
+\r
+ // Register Composer form for scene manager\r
+ r |= pSceneManager->RegisterScene(IDSCN_COMPOSER,\r
+ IDFRM_COMPOSER, IDS_BLANK);\r
+ // Register Sms viewer form for scene manager\r
+ r |= pSceneManager->RegisterScene(IDSCN_SMS_VIEWER,\r
+ IDFRM_SMS_VIEWER, IDS_BLANK);\r
+ // MMS detail form\r
+ r |= pSceneManager->RegisterScene(IDSCN_MMS_DETAIL,\r
+ IDFRM_MMS_DETAIL, IDS_BLANK);\r
+ // Register Setting form\r
+ r |= pSceneManager->RegisterScene(IDSCN_SETTINGS,\r
+ IDFRM_SETTINGS, IDS_BLANK);\r
+ r |= pSceneManager->RegisterScene(IDSCN_SETTINGS_TEXT_MESSAGE,\r
+ IDFRM_SETTINGS_TEXT_MESSAGE, IDS_BLANK);\r
+ r |= pSceneManager->RegisterScene(IDSCN_SETTINGS_TEXT_MESSAGE_SERVICE_CENTERS,\r
+ IDFRM_SETTINGS_TEXT_MESSAGE_SERVICE_CENTERS, IDS_BLANK);\r
+ r |= pSceneManager->RegisterScene(IDSCN_SETTINGS_TEXT_MESSAGE_EDIT_SERVICE_CENTER,\r
+ IDFRM_SETTINGS_TEXT_MESSAGE_EDIT_SERVICE_CENTER, IDS_BLANK);\r
+ r |= pSceneManager->RegisterScene(IDSCN_SETTINGS_MULTIMEDIA_MESSAGE,\r
+ IDFRM_SETTINGS_MULTIMEDIA_MESSAGE, IDS_BLANK);\r
+ r |= pSceneManager->RegisterScene(IDSCN_SETTINGS_MULTIMEDIA_RECEIVING_OPTIONS,\r
+ IDFRM_SETTINGS_MULTIMEDIA_RECEIVING_OPTIONS, IDS_BLANK);\r
+ r |= pSceneManager->RegisterScene(IDSCN_SETTINGS_MULTIMEDIA_READ_REPORT,\r
+ IDFRM_SETTINGS_MULTIMEDIA_READ_REPORT, IDS_BLANK);\r
+ r |= pSceneManager->RegisterScene(IDSCN_SETTINGS_SPAM_MESSAGE,\r
+ IDFRM_SETTINGS_SPAM_MESSAGE, IDS_BLANK);\r
+ r |= pSceneManager->RegisterScene(IDSCN_SETTINGS_SPAM_AUTO_REJECT,\r
+ IDFRM_SETTINGS_SPAM_AUTO_REJECT, IDS_BLANK);\r
+ r |= pSceneManager->RegisterScene(IDSCN_SETTINGS_SPAM_ADD_REJECT_NUMBER,\r
+ IDFRM_SETTINGS_SPAM_ADD_REJECT_NUMBER, IDS_BLANK);\r
+ r |= pSceneManager->RegisterScene(IDSCN_SETTINGS_SPAM_DELETE_REJECT_NUMBER,\r
+ IDFRM_SETTINGS_SPAM_DELETE_REJECT_NUMBER, IDS_BLANK);\r
+ r |= pSceneManager->RegisterScene(IDSCN_SETTINGS_SPAM_BLOCK_WORD,\r
+ IDFRM_SETTINGS_SPAM_BLOCK_WORD, IDS_BLANK);\r
+ r |= pSceneManager->RegisterScene(IDSCN_SETTINGS_SPAM_ADD_BLOCK_WORD,\r
+ IDFRM_SETTINGS_SPAM_ADD_BLOCK_WORD, IDS_BLANK);\r
+ r |= pSceneManager->RegisterScene(IDSCN_SETTINGS_SPAM_DELETE_BLOCK_WORD,\r
+ IDFRM_SETTINGS_SPAM_DELETE_BLOCK_WORD, IDS_BLANK);\r
+ r |= pSceneManager->RegisterScene(IDSCN_SETTINGS_FONT_SIZE,\r
+ IDFRM_SETTINGS_FONT_SIZE, IDS_BLANK);\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return r;\r
+}\r
--- /dev/null
+//\r
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.\r
+//\r
+// Licensed under the Flora License, Version 1.0 (the License);\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+// http://floralicense.org/license/\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an AS IS BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+//\r
+\r
+#include <FApp.h>\r
+//#include <FContent.h>\r
+#include <FCntAudioMetadata.h>\r
+#include <FCntVideoMetadata.h>\r
+#include <FCntContentManagerUtil.h>\r
+#include <FIo.h>\r
+#include <FMedia.h>\r
+#include <FSysEnvironment.h>\r
+\r
+#include "MsgBitmapUtility.h"\r
+#include "MsgCommonUtil.h"\r
+#include "MsgMediaControl.h"\r
+#include "MsgTypes.h"\r
+\r
+using namespace Tizen::App;\r
+using namespace Tizen::Base;\r
+using namespace Tizen::Base::Runtime;\r
+using namespace Tizen::Base::Collection;\r
+using namespace Tizen::Content;\r
+using namespace Tizen::Graphics;\r
+using namespace Tizen::Io;\r
+using namespace Tizen::Media;\r
+using namespace Tizen::System;\r
+using namespace Tizen::Ui::Controls;\r
+using namespace Tizen::Ui;\r
+\r
+const wchar_t* IDS_PATH_COLON = L"path:";\r
+\r
+// Internal event\r
+enum ImageEventType\r
+{\r
+ ID_EVENT_IMAGE_LOADING,\r
+ ID_EVENT_IMAGE_LOADED\r
+};\r
+\r
+MediaControl::MediaControl(void)\r
+ : __mediaType(MEDIA_TYPE_IMAGE)\r
+ , __pDeleteMedia(null)\r
+ , __pMediaIconBitmap(null)\r
+ , __pWorkerThread(null)\r
+{\r
+ // Empty\r
+}\r
+\r
+MediaControl::~MediaControl(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ if (__pMediaIconBitmap)\r
+ {\r
+ delete __pMediaIconBitmap;\r
+ }\r
+ if (__pWorkerThread)\r
+ {\r
+ __pWorkerThread->Exit(); // stop is deprecated. Hence the replacement with exit function call\r
+ delete __pWorkerThread;\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
+\r
+result\r
+MediaControl::Construct(const Rectangle& rectangle)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ result r = E_SUCCESS;\r
+ r = Container::Construct(rectangle);\r
+ // Initialize delete button\r
+ __pDeleteMedia = new (std::nothrow) Button();\r
+ __pDeleteMedia->Construct(Rectangle((rectangle.width - W_ICON_48PX), 0, W_ICON_48PX, H_ICON_48PX));\r
+ BitmapUtility* pBitmapUtility = BitmapUtility::GetInstance();\r
+ Bitmap* pNormalBitMap = pBitmapUtility->GetIconN(MSG_ICON_PHOTO_DELETE);\r
+ __pDeleteMedia->SetNormalBackgroundBitmap(*pNormalBitMap);\r
+ Bitmap* pPressBitMap = pBitmapUtility->GetIconN(MSG_ICON_PHOTO_DELETE_PRESS);\r
+ __pDeleteMedia->SetPressedBackgroundBitmap(*pPressBitMap);\r
+ __pDeleteMedia->SetShowState(false);\r
+ AddControl(*__pDeleteMedia);\r
+ delete pNormalBitMap;\r
+ delete pPressBitMap;\r
+ // Add touch listener to open media on touch\r
+ AddTouchEventListener(*this);\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return r;\r
+}\r
+\r
+void\r
+MediaControl::SetMediaPath(const String& mediaPath, MediaType mediaType)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ __mediaPath = mediaPath;\r
+ // Load media icon image\r
+ if (!__mediaPath.IsEmpty())\r
+ {\r
+ delete __pWorkerThread;\r
+ __pWorkerThread = new (std::nothrow) Thread();\r
+ __pWorkerThread->Construct(*this);\r
+ __pWorkerThread->Start();\r
+ __mediaType = mediaType;\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return;\r
+}\r
+\r
+String\r
+MediaControl::GetMediaPath(void) const\r
+{\r
+ AppLogDebug("ENTER");\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return __mediaPath;\r
+}\r
+\r
+void\r
+MediaControl::SetDeleteActionId(int actionId)\r
+{\r
+ AppLogDebug("ENTER");\r
+ __pDeleteMedia->SetActionId(actionId);\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
+\r
+void\r
+MediaControl::AddActionEventListener(IActionEventListener& listener)\r
+{\r
+ AppLogDebug("ENTER");\r
+ __pDeleteMedia->AddActionEventListener(listener);\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
+\r
+void\r
+MediaControl::OnUserEventReceivedN(RequestId requestId, IList* pArgs)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ if (pArgs)\r
+ {\r
+ switch (requestId)\r
+ {\r
+ case ID_EVENT_IMAGE_LOADED:\r
+ {\r
+ delete __pMediaIconBitmap;\r
+ __pMediaIconBitmap = static_cast<Bitmap*>(pArgs->GetAt(0));\r
+ __pDeleteMedia->SetShowState(true);\r
+ pArgs->RemoveAt(0);\r
+ Draw();\r
+ Show();\r
+ }\r
+ break;\r
+ }\r
+ pArgs->RemoveAll(true);\r
+ delete pArgs;\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return;\r
+}\r
+\r
+result\r
+MediaControl::OnDraw(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ result r = E_SUCCESS;\r
+ Canvas* pCanvas = GetCanvasN();\r
+ Rectangle rect = GetBounds();\r
+ pCanvas->FillRectangle(Color::GetColor(COLOR_ID_WHITE), Rectangle(0, 0, rect.width, rect.height));\r
+ pCanvas->FillRoundRectangle(Color::GetColor(COLOR_ID_GREY),\r
+ Rectangle(0, 0, rect.width, rect.height), Dimension(6, 6));\r
+ if (__pMediaIconBitmap)\r
+ {\r
+ pCanvas->DrawBitmap(Point((rect.width - __pMediaIconBitmap->GetWidth()) / 2,\r
+ (rect.height - __pMediaIconBitmap->GetHeight()) / 2), *__pMediaIconBitmap);\r
+ }\r
+ delete pCanvas;\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return r;\r
+}\r
+\r
+void\r
+MediaControl::OnTouchPressed(const Control& source, const Point& currentPosition,\r
+ const TouchEventInfo& touchInfo)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ AppControl* pAppControl = AppManager::FindAppControlN(IDS_APPCONTROL_PROVIDER_IMAGE,\r
+ IDS_APPCONTROL_OPERATION_VIEW);\r
+ if (pAppControl)\r
+ {\r
+ HashMap* pHashMap = new (std::nothrow) HashMap();\r
+ pHashMap->Construct();\r
+ String* pModeKey = new (std::nothrow) String(L"type");\r
+ String* pModeVal = new (std::nothrow) String(L"image");\r
+ pHashMap->Add(pModeKey, pModeVal);\r
+ String* pTypeKey = new (std::nothrow) String(L"path");\r
+ String* pTypeVal = new (std::nothrow) String(__mediaPath);\r
+ pHashMap->Add(pTypeKey, pTypeVal);\r
+ pAppControl->Start(null, null, pHashMap, null);\r
+ pHashMap->RemoveAll(true);\r
+ delete pHashMap;\r
+ delete pAppControl;\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return;\r
+}\r
+\r
+Object*\r
+MediaControl::Run(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ LoadMediaIcon();\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return null;\r
+}\r
+\r
+void\r
+MediaControl::LoadMediaIcon(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ Bitmap* pBitmap = null;\r
+ result r = E_SUCCESS;\r
+ if (CommonUtil::IsVideoFile(__mediaPath))\r
+ {\r
+ VideoMetadata* pVideoMeta = ContentManagerUtil::GetVideoMetaN(__mediaPath);\r
+ String contentPath;\r
+ if (!pVideoMeta)\r
+ {\r
+ contentPath = Environment::GetMediaPath() + File::GetFileName(__mediaPath);\r
+ r = File::Copy(__mediaPath, contentPath, true);\r
+ pVideoMeta = ContentManagerUtil::GetVideoMetaN(contentPath);\r
+ }\r
+ if (pVideoMeta)\r
+ {\r
+ pBitmap = pVideoMeta->GetAlbumArtN();\r
+ delete pVideoMeta;\r
+ }\r
+ // Remove temp file\r
+ if (r != E_FILE_ALREADY_EXIST)\r
+ {\r
+ File::Remove(contentPath);\r
+ }\r
+ }\r
+ else\r
+ {\r
+ // Load icon image.\r
+ Image* pImage = new (std::nothrow) Image();\r
+ pImage->Construct();\r
+ pBitmap = pImage->DecodeN(__mediaPath, BITMAP_PIXEL_FORMAT_ARGB8888,\r
+ W_COMPOSE_IMAGE_132PX, H_COMPOSE_IMAGE_132PX);\r
+ delete pImage;\r
+ }\r
+\r
+ ArrayList* pArgList = new (std::nothrow) ArrayList();\r
+ pArgList->Construct();\r
+ pArgList->Add(pBitmap);\r
+ RequestId requestId = ID_EVENT_IMAGE_LOADED;\r
+ this->SendUserEvent(requestId, pArgList);\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return;\r
+}\r
--- /dev/null
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+#include <FApp.h>
+#include <FIo.h>
+
+#include "MsgAttachementControl.h"
+#include "MsgBitmapUtility.h"
+#include "MsgISizeChangeEventListener.h"
+#include "MsgMediaControl.h"
+#include "MsgMediaTextExpandEditArea.h"
+#include "MsgTypes.h"
+
+using namespace Tizen::App;
+using namespace Tizen::Base;
+using namespace Tizen::Graphics;
+using namespace Tizen::Io;
+using namespace Tizen::Ui::Controls;
+using namespace Tizen::Ui;
+
+enum InternalActionIds
+{
+ IDA_DELETE_IMAGE,
+ IDA_DELETE_AUDIO,
+ IDA_VIEW_IMAGE
+};
+
+MediaTextExpandEditArea::MediaTextExpandEditArea(void)
+ : __pBgBitmap(null)
+ , __pSizeChangeListener(null)
+ , __pMediaCntl(null)
+ , __pExpandEditArea(null)
+ , __pDeleteButton(null)
+ , __pAttachCntrl(null)
+{
+ // Empty
+}
+MediaTextExpandEditArea::~MediaTextExpandEditArea(void)
+{
+ AppLogDebug("ENTER");
+ // Remove temporary compose file.
+ if (__pMediaCntl)
+ {
+ File::Remove(__pMediaCntl->GetMediaPath());
+ }
+ if (__pBgBitmap)
+ {
+ delete __pBgBitmap;
+ }
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+}
+
+result
+MediaTextExpandEditArea::Construct(const Rectangle& rectangle)
+{
+ AppLogDebug("ENTER");
+ result r = E_SUCCESS;
+ r = Container::Construct(rectangle);
+ // Background bitmap
+ BitmapUtility* pBitmapUtility = BitmapUtility::GetInstance();
+
+ // Edit area
+ __pExpandEditArea = new (std::nothrow) ExpandableEditArea();
+ __prevBounds = Rectangle(0, 0, rectangle.width, rectangle.height);
+ __pExpandEditArea->Construct(__prevBounds, EXPANDABLE_EDIT_AREA_STYLE_NORMAL,
+ EXPANDABLE_EDIT_AREA_TITLE_STYLE_NONE, 99);
+ __pExpandEditArea->SetLimitLength(1529); // for 10 page of SMS
+ __pExpandEditArea->AddExpandableEditAreaEventListener(*this);
+ __pExpandEditArea->SetAutoResizingEnabled(false);
+ __pExpandEditArea->SetAutoShrinkModeEnabled(false);
+ __pExpandEditArea->SetColor(EDIT_STATUS_PRESSED, __pExpandEditArea->GetColor(EDIT_STATUS_NORMAL));
+ __pExpandEditArea->SetTextColor(EDIT_TEXT_COLOR_HIGHLIGHTED, __pExpandEditArea->GetTextColor(EDIT_TEXT_COLOR_NORMAL));
+ AddControl(*__pExpandEditArea);
+ //Initialize editor background bitmap to avoid flicker
+ Rectangle editorBound = __pExpandEditArea->GetBounds();
+ __pBgBitmap = new (std::nothrow) Bitmap();
+ Canvas* pEditorBgCanvas = new (std::nothrow) Canvas();
+ pEditorBgCanvas->Construct(editorBound);
+ pEditorBgCanvas->FillRoundRectangle( __pExpandEditArea->GetColor(EDIT_STATUS_NORMAL), editorBound, Dimension(2,2));
+ __pBgBitmap->Construct(*pEditorBgCanvas, editorBound);
+ delete pEditorBgCanvas;
+ // add delete button
+ __pDeleteButton = new (std::nothrow) Button();
+ __pDeleteButton->Construct(Rectangle(rectangle.width - W_ICON_48PX - MARGIN_16PX,
+ (rectangle.height - H_ICON_48PX) / 2, W_ICON_48PX, H_ICON_48PX));
+ Bitmap* pNormalBitMap = pBitmapUtility->GetIconN(MSG_ICON_PAGE_DELETE);
+ __pDeleteButton->SetNormalBackgroundBitmap(*pNormalBitMap);
+ Bitmap* pPressBitMap = pBitmapUtility->GetIconN(MSG_ICON_PAGE_DELETE_PRESS);
+ __pDeleteButton->SetPressedBackgroundBitmap(*pPressBitMap);
+ __pDeleteButton->SetShowState(false);
+ AddControl(*__pDeleteButton);
+ delete pPressBitMap;
+ delete pNormalBitMap;
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return r;
+}
+
+void
+MediaTextExpandEditArea::AddActionEventListener(IActionEventListener& listener)
+{
+ AppLogDebug("ENTER");
+ __pDeleteButton->AddActionEventListener(listener);
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+}
+
+void
+MediaTextExpandEditArea::AddKeypadEventListener(IKeypadEventListener& listener)
+{
+ AppLogDebug("ENTER");
+ __pExpandEditArea->AddKeypadEventListener(listener);
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+}
+
+void
+MediaTextExpandEditArea::AddTextEventListener(ITextEventListener& listener)
+{
+ AppLogDebug("ENTER");
+ __pExpandEditArea->AddTextEventListener(listener);
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+}
+
+void
+MediaTextExpandEditArea::AddKeyEventListener(IKeyEventListener& listener)
+{
+ AppLogDebug("ENTER");
+ __pExpandEditArea->AddKeyEventListener(listener);
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+}
+
+void
+MediaTextExpandEditArea::SetSizeChangeEventListener(ISizeChangeEventListener& listener)
+{
+ AppLogDebug("ENTER");
+ __pSizeChangeListener = &listener;
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+}
+
+void
+MediaTextExpandEditArea::AddFocusEventListener(IFocusEventListener& listener)
+{
+ AppLogDebug("ENTER");
+ __pExpandEditArea->AddFocusEventListener(listener);
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+}
+
+void
+MediaTextExpandEditArea::SetDeleteActionId(int actionId)
+{
+ AppLogDebug("ENTER");
+ __pDeleteButton->SetActionId(actionId);
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+}
+
+result
+MediaTextExpandEditArea::SetText(const String& strText)
+{
+ AppLogDebug("ENTER");
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return __pExpandEditArea->SetText(strText);
+}
+
+result
+MediaTextExpandEditArea::ClearText(void)
+{
+ AppLogDebug("ENTER");
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return __pExpandEditArea->Clear();
+}
+
+String
+MediaTextExpandEditArea::GetText(void) const
+{
+ AppLogDebug("ENTER");
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return __pExpandEditArea->GetText();
+}
+
+bool
+MediaTextExpandEditArea::IsAudioExist() const
+{
+ AppLogDebug("ENTER");
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return (__pAttachCntrl != null);
+}
+
+bool
+MediaTextExpandEditArea::IsImageExist() const
+{
+ AppLogDebug("ENTER");
+ bool imageExist(false);
+ if (__pMediaCntl)
+ {
+ imageExist = (__pMediaCntl->GetMediaType() == MEDIA_TYPE_IMAGE);
+ }
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return imageExist;
+}
+
+bool
+MediaTextExpandEditArea::IsVideoExist() const
+{
+ AppLogDebug("ENTER");
+ bool videoExist(false);
+ if (__pMediaCntl)
+ {
+ videoExist = (__pMediaCntl->GetMediaType() == MEDIA_TYPE_VIDEO);
+ }
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return videoExist;
+}
+
+result
+MediaTextExpandEditArea::SetMedia(const String& mediafilePath, MediaType mediaType)
+{
+ AppLogDebug("ENTER");
+ result r = E_SUCCESS;
+ if (mediafilePath.IsEmpty())
+ {
+ return r;
+ }
+ //int PosY(MARGIN_15PX);
+ int height(MARGIN_15PX);
+ if (mediaType == MEDIA_TYPE_IMAGE || mediaType == MEDIA_TYPE_VIDEO)
+ {
+ if (!__pMediaCntl)
+ {
+ __pMediaCntl = new (std::nothrow) MediaControl();
+ __pMediaCntl->Construct(Rectangle(MARGIN_16PX, height, W_COMPOSE_IMAGE_132PX, H_COMPOSE_IMAGE_132PX));
+ __pMediaCntl->SetDeleteActionId(IDA_DELETE_IMAGE);
+ __pMediaCntl->AddActionEventListener(*this);
+ if (IsAudioExist())
+ {
+ __pAttachCntrl->SetBounds(MARGIN_16PX, height + __pMediaCntl->GetHeight() + MARGIN_16PX, 452, 60);
+ height += MARGIN_16PX * 2 + __pAttachCntrl->GetHeight() + __pMediaCntl->GetHeight();
+ }
+ else
+ {
+ height += __pMediaCntl->GetHeight() + MARGIN_16PX;
+ }
+ AddControl(*__pMediaCntl);
+ }
+ __pMediaCntl->SetMediaPath(mediafilePath, mediaType);
+ }
+ if (mediaType == MEDIA_TYPE_AUDIO && !__pAttachCntrl)
+ {
+ __pAttachCntrl = new (std::nothrow) AttachementControl(mediafilePath);
+ if (IsImageExist())
+ {
+ __pAttachCntrl->Construct(Rectangle(MARGIN_16PX, height + __pMediaCntl->GetHeight() + MARGIN_16PX, 452, 60));
+ height += MARGIN_16PX * 2 + __pAttachCntrl->GetHeight() + __pMediaCntl->GetHeight();
+ }
+ else
+ {
+ __pAttachCntrl->Construct(Rectangle(MARGIN_16PX, height, GetWidth() - MARGIN_16PX * 2, 60));
+ height += __pAttachCntrl->GetHeight() + MARGIN_16PX;
+ }
+ __pAttachCntrl->SetDeleteActionId(IDA_DELETE_AUDIO);
+ __pAttachCntrl->AddActionEventListener(*this);
+ AddControl(*__pAttachCntrl);
+ }
+ __pExpandEditArea->SetBounds(0, height, __prevBounds.width, __prevBounds.height);
+ height += __pExpandEditArea->GetHeight();
+ SetSize(GetWidth(), height);
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return r;
+}
+
+String
+MediaTextExpandEditArea::GetMediaPath(MediaType mediaType) const
+{
+ AppLogDebug("ENTER");
+ String mediaPath;
+ switch (mediaType)
+ {
+ case MEDIA_TYPE_AUDIO:
+ {
+ if (__pAttachCntrl)
+ {
+ mediaPath.Append(__pAttachCntrl->GetAttachementFilepath());
+ }
+ }
+ break;
+
+ case MEDIA_TYPE_IMAGE:
+ case MEDIA_TYPE_VIDEO:
+ {
+ if (__pMediaCntl)
+ {
+ mediaPath.Append(__pMediaCntl->GetMediaPath());
+ }
+ }
+ break;
+
+ default:
+ break;
+ }
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return mediaPath;
+}
+
+void
+MediaTextExpandEditArea::OnActionPerformed(const Control& source,
+ int actionId)
+{
+ AppLogDebug("ENTER");
+ switch (actionId)
+ {
+ case IDA_DELETE_IMAGE:
+ {
+ File::Remove(__pMediaCntl->GetMediaPath());
+ RemoveControl(*__pMediaCntl);
+ __pMediaCntl = null;
+ if (__pAttachCntrl)
+ {
+ __pAttachCntrl->SetPosition(MARGIN_16PX, MARGIN_16PX);
+ __pExpandEditArea->SetBounds(0, __pAttachCntrl->GetHeight() + MARGIN_16PX + MARGIN_16PX, __prevBounds.width, __prevBounds.height);
+ SetSize(GetWidth(), __pExpandEditArea->GetHeight() + __pAttachCntrl->GetHeight() + MARGIN_16PX);
+ }
+ else
+ {
+ __pExpandEditArea->SetBounds(0, 0, __prevBounds.width, __prevBounds.height);
+ SetSize(GetWidth(), __pExpandEditArea->GetHeight());
+ }
+ RequestId requestId = REQUEST_CHECK_COMPOSE_STATE;
+ static_cast<Panel*>(GetParent()->GetParent()->GetParent())->SendUserEvent(requestId, null);
+ }
+ break;
+
+ case IDA_DELETE_AUDIO:
+ {
+ RemoveControl(*__pAttachCntrl);
+ __pAttachCntrl = null;
+ if (__pMediaCntl)
+ {
+ __pExpandEditArea->SetBounds(0, __pMediaCntl->GetHeight() + MARGIN_16PX + MARGIN_16PX, __prevBounds.width, __prevBounds.height);
+ SetSize(GetWidth(), __pExpandEditArea->GetHeight() + __pMediaCntl->GetHeight() + MARGIN_16PX + MARGIN_16PX);
+ }
+ else
+ {
+ __pExpandEditArea->SetBounds(0, 0, __prevBounds.width, __prevBounds.height);
+ SetSize(GetWidth(), __pExpandEditArea->GetHeight());
+ }
+ }
+ break;
+ }
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+
+}
+
+result
+MediaTextExpandEditArea::OnDraw(void)
+{
+ AppLogDebug("ENTER");
+ result r = E_SUCCESS;
+ Canvas* pCanvas = GetCanvasN();
+ if (pCanvas)
+ {
+ Rectangle rect = GetBounds();
+ pCanvas->FillRectangle(COLOR_COMPOSE_PANEL_BG,
+ Rectangle(0, 0, rect.width, rect.height));
+ pCanvas->DrawBitmap(Rectangle(0, 0, rect.width, rect.height),
+ *__pBgBitmap);
+ delete pCanvas;
+ }
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return r;
+}
+
+void
+MediaTextExpandEditArea::OnBoundsChanged(const Rectangle& oldRect, const Rectangle& newRect)
+{
+ AppLogDebug("ENTER");
+ if (__pSizeChangeListener)
+ {
+ if (newRect.height > oldRect.height)
+ {
+ __pSizeChangeListener->OnSizeIncrease(*this);
+ }
+ else
+ {
+ __pSizeChangeListener->OnSizeDecrease(*this);
+ }
+ }
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+}
+
+void
+MediaTextExpandEditArea::OnExpandableEditAreaLineAdded(ExpandableEditArea& source,
+ int newLineCount)
+{
+ AppLogDebug("ENTER");
+ Rectangle newBounds = __pExpandEditArea->GetBounds();
+ Dimension curSize = GetSize();
+ curSize.height += (newBounds.height - __prevBounds.height);
+ SetSize(curSize);
+ __prevBounds = __pExpandEditArea->GetBounds();
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+}
+
+void
+MediaTextExpandEditArea::OnExpandableEditAreaLineRemoved(ExpandableEditArea& source,
+ int newLineCount)
+{
+ AppLogDebug("ENTER");
+ Rectangle newBounds = __pExpandEditArea->GetBounds();
+ Dimension curSize = GetSize();
+ curSize.height -= (__prevBounds.height - newBounds.height);
+ SetSize(curSize);
+ __prevBounds = __pExpandEditArea->GetBounds();
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+}
+
+ComposeControlType
+MediaTextExpandEditArea::GetControlType(void) const
+{
+ AppLogDebug("ENTER");
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return COMPOSE_CONTROL_IMAGE_TEXT;
+}
+
+void
+MediaTextExpandEditArea::SetDeleteShowState(bool visible)
+{
+ AppLogDebug("ENTER");
+ __pDeleteButton->SetShowState(visible);
+ Rectangle rectangle = GetBounds();
+ Dimension editorSize = __pExpandEditArea->GetSize();
+ if (visible)
+ {
+ editorSize.width = rectangle.width - (W_ICON_48PX + MARGIN_16PX * 2);
+ }
+ else
+ {
+ editorSize.width = rectangle.width;
+ }
+ __pExpandEditArea->SetSize(editorSize);
+ Draw();
+ Show();
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+}
+
+result
+MediaTextExpandEditArea::ShowKeypad(bool visible)
+{
+ AppLogDebug("ENTER");
+ result r = E_SUCCESS;
+ if (visible)
+ {
+ r = __pExpandEditArea->ShowKeypad();
+ }
+ else
+ {
+ r = __pExpandEditArea->HideKeypad();
+ }
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return r;
+}
+
+result
+MediaTextExpandEditArea::SetFocus(void)
+{
+ AppLogDebug("ENTER");
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return __pExpandEditArea->SetFocus();
+}
+
+result
+MediaTextExpandEditArea::SetTextSize(int textSize)
+{
+ AppLogDebug("ENTER");
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return __pExpandEditArea->SetTextSize(textSize);
+}
+
+void
+MediaTextExpandEditArea::SetLimitLength(int length)
+{
+ AppLogDebug("ENTER");
+ __pExpandEditArea->SetLimitLength(length);
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+}
--- /dev/null
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+#include <FApp.h>
+#include <FIo.h>
+#include <FMedia.h>
+#include <FSysEnvironment.h>
+
+#include "MsgAttachListPopup.h"
+#include "MsgAttachementControl.h"
+#include "MsgBitmapUtility.h"
+#include "MsgCommonUtil.h"
+#include "MsgCompressPopup.h"
+#include "MsgIComposeEventObserver.h"
+#include "MsgMediaTextExpandEditArea.h"
+#include "MsgMessageComposePanel.h"
+#include "MsgMessageData.h"
+//#include "MsgSettingPresentationModel.h"
+#include "MsgSubjectControl.h"
+#include "MsgTypes.h"
+
+using namespace Tizen::App;
+using namespace Tizen::Base;
+using namespace Tizen::Base::Collection;
+using namespace Tizen::Base::Runtime;
+using namespace Tizen::Base::Utility;
+using namespace Tizen::Graphics;
+using namespace Tizen::Io;
+using namespace Tizen::Media;
+using namespace Tizen::Ui::Controls;
+using namespace Tizen::Ui;
+
+
+const wchar_t* IDS_SELTYPE_MULTIPLE = L"selectionType:multiple";
+const wchar_t* IDS_TYPE_CAMERA = L"type:camera";
+const wchar_t* IDS_TYPE_CAMCORDER = L"type:camcorder";
+const wchar_t* IDS_TYPE_AUDIO = L"type:audio";
+const wchar_t* IDS_TYPE_ALL = L"type:all";
+const wchar_t* IDS_SELMODE_SINGLE = L"selectionMode:single";
+const wchar_t* IDS_TYPE_VCARD = L"returnType:vcard";
+const wchar_t* IDS_ITEM_TYPE_EVENT = L"itemType:event";
+const wchar_t* IDS_ITEM_TYPE_MEMO = L"itemType:memo";
+const wchar_t* IDS_COMPRESS = L"compress_";
+const wchar_t* IDS_VALUE_KEY = L"value";
+// For internal communication
+enum ComposeActionId
+{
+ IDA_COMPOSE_ADD_ATTACHEMENT,
+ IDA_COMPOSE_DELETE_ATTACHEMENT,
+ IDA_COMPOSE_SEND,
+ IDA_CLOSE_POPUP,
+};
+
+MessageComposePanel::MessageComposePanel(void)
+ : __pCompseEventListener(null)
+ , __pFocusControl(null)
+ , __pKeypadListener(null)
+ , __pSizeChangeListener(null)
+ , __pScrollPanel(null)
+ , __pSendMessage(null)
+ , __pAddAttachement(null)
+ , __pComposeInfoLabel(null)
+ , __pSizeExceedPopup(null)
+ , __pCompressProgressPopup(null)
+ , __pAttachPopup(null)
+ , __pWorkerThread(null)
+ , __remainSizeBytes(300000)
+ , __defaultPageDuration(MIN_MMS_SLIDE_DURATION)
+ , __pSelectedFilesQueue(null)
+{
+ // Empty implementation
+}
+
+MessageComposePanel::~MessageComposePanel(void)
+{
+ AppLogDebug("ENTER");
+ if (__pSelectedFilesQueue)
+ {
+ __pSelectedFilesQueue->RemoveAll(true);
+ delete __pSelectedFilesQueue;
+ }
+ if (__pAttachPopup)
+ {
+ delete __pAttachPopup;
+ }
+ if (__pSizeExceedPopup)
+ {
+ delete __pSizeExceedPopup;
+ }
+ if (__pCompressProgressPopup)
+ {
+ delete __pCompressProgressPopup;
+ }
+ if (__pWorkerThread)
+ {
+ __pWorkerThread->Join();
+ delete __pWorkerThread;
+ }
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+}
+
+result
+MessageComposePanel::Construct(const String& resourceId)
+{
+ AppLogDebug("ENTER");
+ result r = E_SUCCESS;
+ String strText;
+ r = Panel::Construct(resourceId);
+ SetMinimumSize(GetSize());
+ int panelHeight = GetHeight();
+ __pAddAttachement = static_cast<Button*>(GetControl(L"IDC_ATTACH_BUTTON"));
+ if (__pAddAttachement)
+ {
+ __pAddAttachement->SetBounds(Rectangle(MARGIN_16PX, (panelHeight - H_ATTACH_BUTTON) / 2, W_ATTACH_BUTTON, H_ATTACH_BUTTON));
+ Bitmap* pNormalBitmap = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_PLUS);
+ if (pNormalBitmap)
+ {
+ pNormalBitmap->Scale(Dimension(W_ATTACH_BUTTON, W_ATTACH_BUTTON));
+ __pAddAttachement->SetNormalBitmap(Point(0, 0), *pNormalBitmap);
+ }
+ Bitmap* pPressBitmap = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_PLUS_PRESS);
+ if (pPressBitmap)
+ {
+ pPressBitmap->Scale(Dimension(W_ATTACH_BUTTON, W_ATTACH_BUTTON));
+ __pAddAttachement->SetPressedBitmap(Point(0, 0), *pPressBitmap);
+ }
+ __pAddAttachement->SetActionId(IDA_COMPOSE_ADD_ATTACHEMENT);
+ __pAddAttachement->AddActionEventListener(*this);
+
+#ifdef _DISABLE_MMS_FEATURE_
+ __pAddAttachement->SetEnabled(false);
+ Bitmap* pCircleDimBg = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_CIRCLE_BUTTON_BG_DIM);
+ if (pCircleDimBg)
+ {
+ pCircleDimBg->Scale(Dimension(W_ATTACH_BUTTON, W_ATTACH_BUTTON));
+ __pAddAttachement->SetNormalBackgroundBitmap(*pCircleDimBg);
+ }
+ __pAddAttachement->SetDisabledBitmap(Point(0, 0), *pNormalBitmap);
+#endif
+ }
+ __pSendMessage = static_cast<Button*>(GetControl(L"IDC_SEND_BUTTON"));
+ if (__pSendMessage)
+ {
+ int pointY = (panelHeight - __pSendMessage->GetHeight()) / 2;
+ __pSendMessage->SetBounds(Rectangle(GetWidth() - (MARGIN_16PX + __pSendMessage->GetWidth()), pointY, __pSendMessage->GetWidth(), __pSendMessage->GetHeight()));
+// Bitmap* pNormalBitmap = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_SEND_MESSAGE, Dimension(W_ICON_64PX, H_ICON_64PX));
+// if (pNormalBitmap)
+// {
+// __pSendMessage->SetNormalBitmap(Point((__pSendMessage->GetWidth() - pNormalBitmap->GetWidth()) / 2, (__pSendMessage->GetHeight() - pNormalBitmap->GetHeight()) / 2), *pNormalBitmap);
+// __pSendMessage->SetPressedBitmap(Point((__pSendMessage->GetWidth() - pNormalBitmap->GetWidth()) / 2, (__pSendMessage->GetHeight() - pNormalBitmap->GetHeight()) / 2), *pNormalBitmap);
+// __pSendMessage->SetDisabledBitmap(Point((__pSendMessage->GetWidth() - pNormalBitmap->GetWidth()) / 2, (__pSendMessage->GetHeight() - pNormalBitmap->GetHeight()) / 2), *pNormalBitmap);
+// }
+ __pSendMessage->SetActionId(IDA_COMPOSE_SEND);
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_COM_SK_SEND_ABB", strText);
+ __pSendMessage->SetText(strText);
+ __pSendMessage->AddActionEventListener(*this);
+ __pSendMessage->SetEnabled(false);
+ }
+ __pComposeInfoLabel = static_cast<Label*>(GetControl(L"IDC_CHARCOUNTER_LABEL"));
+ if (__pComposeInfoLabel && __pSendMessage)
+ {
+ __pComposeInfoLabel->SetMargin(0, 0);
+ int pointY = (__pSendMessage->GetY() - __pComposeInfoLabel->GetHeight() - MARGIN_5PX);
+ __pComposeInfoLabel->SetBounds(Rectangle(GetWidth() - (MARGIN_16PX + __pComposeInfoLabel->GetWidth()), pointY,
+ __pComposeInfoLabel->GetWidth(), __pComposeInfoLabel->GetHeight()));
+ __pComposeInfoLabel->SetTextColor(Color::GetColor(COLOR_ID_WHITE));
+ __pComposeInfoLabel->SetShowState(false);
+ }
+ __pScrollPanel = static_cast<ScrollPanel*>(GetControl(L"IDC_SCROLLPANEL"));
+ SetShowState(false);
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return r;
+}
+
+void
+MessageComposePanel::ShowDefaultUi(void)
+{
+ AppLogDebug("ENTER");
+ CreatePage();
+ SetShowState(true);
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+}
+
+MediaTextExpandEditArea*
+MessageComposePanel::CreatePage(const String& pageText)
+{
+ AppLogDebug("ENTER");
+ Panel* pImageTextPanel = static_cast<Panel*>(__pScrollPanel->
+ GetControl(L"IDC_PANEL_IMAGE_TEXT"));
+ MediaTextExpandEditArea* pComposePage = null;
+ if (pImageTextPanel)
+ {
+ int controlCount = pImageTextPanel->GetControlCount();
+ int posY(0);
+ if (controlCount > 0)
+ {
+ Control* pControl = pImageTextPanel->GetControl(controlCount - 1);
+ posY += pControl->GetHeight() + MARGIN_16PX;
+ }
+ pComposePage = new (std::nothrow) MediaTextExpandEditArea();
+ pComposePage->Construct(Rectangle(0, posY, __pScrollPanel->GetWidth(), MIN_COMPOSE_EDITOR_HEIGHT));
+ pComposePage->AddKeypadEventListener(*this);
+ pComposePage->SetSizeChangeEventListener(*this);
+ pComposePage->AddFocusEventListener(*this);
+ pComposePage->AddTextEventListener(*this);
+ pComposePage->SetDeleteActionId(IDA_COMPOSE_DELETE_ATTACHEMENT);
+ pComposePage->AddActionEventListener(*this);
+ pComposePage->SetText(pageText);
+ pImageTextPanel->AddControl(*pComposePage);
+ __pScrollPanel->ScrollToBottom();
+ if (__pSizeChangeListener)
+ {
+ __pSizeChangeListener->OnSizeIncrease(*this);
+ }
+ }
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return pComposePage;
+}
+
+void
+MessageComposePanel::AddAttachementElement(const String& attachFile)
+{
+ AppLogDebug("ENTER");
+ Panel* pAttachementPanel = static_cast<Panel*>(__pScrollPanel->
+ GetControl(L"IDC_PANEL_ATTACHEMENT"));
+ if (pAttachementPanel)
+ {
+ int controlCount = pAttachementPanel->GetControlCount();
+ int posY(0);
+ if (controlCount > 0)
+ {
+ Control* pControl = pAttachementPanel->GetControl(controlCount - 1);
+ posY += pControl->GetHeight() + MARGIN_16PX;
+ }
+ AttachementControl* pAttachCntl = new (std::nothrow) AttachementControl(attachFile);
+ pAttachCntl->Construct(Rectangle(0, posY, __pScrollPanel->GetWidth(), 60));
+ pAttachCntl->SetDeleteActionId(IDA_COMPOSE_DELETE_ATTACHEMENT);
+ pAttachCntl->AddActionEventListener(*this);
+ pAttachementPanel->AddControl(*pAttachCntl);
+ __pScrollPanel->ScrollToTop();
+
+ if (__pSizeChangeListener)
+ {
+ __pSizeChangeListener->OnSizeIncrease(*this);
+ }
+ }
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+}
+
+void
+MessageComposePanel::AddSubjectField(const String& subjectText)
+{
+ AppLogDebug("ENTER");
+ Panel* pSubjectPanel = static_cast<Panel*>(__pScrollPanel->
+ GetControl(L"IDC_PANEL_SUBJECT"));
+ if (pSubjectPanel)
+ {
+ SubjectControl* pSubjectCntl = new (std::nothrow) SubjectControl();
+ pSubjectCntl->Construct(Rectangle(0, 0, __pScrollPanel->GetWidth(), 71));
+ pSubjectCntl->SetDeleteActionId(IDA_COMPOSE_DELETE_ATTACHEMENT);
+ pSubjectCntl->AddActionEventListener(*this);
+ pSubjectCntl->AddKeypadEventListener(*this);
+ pSubjectCntl->AddFocusEventListener(*this);
+ pSubjectCntl->AddTextEventListener(*this);
+ pSubjectCntl->SetText(subjectText);
+ pSubjectPanel->AddControl(*pSubjectCntl);
+ if (__pSizeChangeListener)
+ {
+ __pSizeChangeListener->OnSizeIncrease(*this);
+ }
+ __pScrollPanel->ScrollToTop();
+ // Check is it MMS, change button icon.
+ RequestId requestId = REQUEST_CHECK_COMPOSE_STATE;
+ SendUserEvent(requestId, null);
+ }
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+}
+
+MsgResponse
+MessageComposePanel::InsertFileToPage(const String& selectFilepath)
+{
+ AppLogDebug("ENTER");
+ __pSelectFilePath = selectFilepath;
+ // Check DRM file.
+ bool isDrmFile(false);
+ // DrmInfo drmInfo;
+ // result r = drmInfo.Construct(filePath);
+ // if( r == E_SUCCESS )
+ // {
+ // DrmMethodType methodType = drmInfo.GetDrmMethodType();
+ // if((methodType == DRM_METHOD_TYPE_FORWARD_LOCK) ||
+ // (methodType == DRM_METHOD_TYPE_FORWARD_LOCK))
+ // {
+ // AppLogDebug("EXIT: r= %s", GetErrorMessage(GetLastResult()));
+ // return COMPOSER_RETURN_DRM_FORWARDLOCK;
+ // }
+ // isDrmFile = drmInfo.IsDrmFile();
+ // }
+ MsgResponse returnType(MSG_RESPONSE_SUCCESS);
+ //Check file Size before insert it.
+ long long int composeSize = GetMessageComposeSize();
+ long long int fileSizeBytes = GetFileSize(selectFilepath);
+ __remainSizeBytes = (MAX_MMS_SIZE - composeSize);
+ if (__remainSizeBytes > fileSizeBytes)
+ {
+ // Check is it image file
+ MediaType mediaType = CommonUtil::GetMediaType(selectFilepath);
+ if (mediaType == MEDIA_TYPE_IMAGE ||
+ mediaType == MEDIA_TYPE_VIDEO ||
+ mediaType == MEDIA_TYPE_AUDIO)
+ {
+ // Copy To MMS compose temp file.
+ String mmsDataPath(App::GetInstance()->GetAppDataPath());
+ mmsDataPath.Append(File::GetFileName(selectFilepath));
+ AppLogDebug("***MMS DATA PATH: %S ****", mmsDataPath.GetPointer());
+ File::Copy(selectFilepath, mmsDataPath, true);
+ if (!__pFocusControl)
+ {
+ Panel* pImageTextPanel = static_cast<Panel*>(__pScrollPanel->GetControl(L"IDC_PANEL_IMAGE_TEXT"));
+ __pFocusControl = static_cast<ComposeBaseControl*>(pImageTextPanel->GetControl(0));
+ }
+ MediaTextExpandEditArea* pFocusComposePage = static_cast<MediaTextExpandEditArea*>(__pFocusControl);
+ if (pFocusComposePage->IsVideoExist() ||
+ (pFocusComposePage->IsImageExist() && mediaType == MEDIA_TYPE_IMAGE) ||
+ (pFocusComposePage->IsAudioExist() && mediaType == MEDIA_TYPE_AUDIO))
+ {
+ MediaTextExpandEditArea* pNewComposePage = CreatePage();
+ if (pNewComposePage)
+ {
+ pNewComposePage->SetMedia(mmsDataPath, mediaType);
+ }
+ }
+ else
+ {
+ pFocusComposePage->SetMedia(mmsDataPath, mediaType);
+ pFocusComposePage->SetFocus();
+ }
+ }
+ else
+ {
+ AddAttachementElement(selectFilepath);
+ }
+ RequestId requestId = REQUEST_CHECK_COMPOSE_STATE;
+ SendUserEvent(requestId, null);
+ }
+ else
+ {
+ if (!CommonUtil::IsImageFile(selectFilepath) || isDrmFile)
+ {
+ AppLog("Return: COMPOSER_RETURN_OVERSIZE_FILE");
+ ShowSizeErrorPopup();
+ return MSG_RESPONSE_OVERSIZE_FILE;
+ }
+ // Check resizing quality.
+ int percent = __remainSizeBytes * 100 / fileSizeBytes;
+ if (percent < 10)
+ {
+ ShowSizeErrorPopup();
+ // Low quality.
+ AppLog("Too low space, not enough size to attach");
+ return MSG_RESPONSE_FAIL;
+ }
+ if (!__pCompressProgressPopup)
+ {
+ __pCompressProgressPopup = new (std::nothrow) CompressPopup();
+ __pCompressProgressPopup->Construct(false);
+ __pCompressProgressPopup->Show();
+ }
+ // Create thread to resize.
+ if (__pWorkerThread)
+ {
+ delete __pWorkerThread;
+ }
+ __pWorkerThread = new (std::nothrow) Thread();
+ __pWorkerThread->Construct(*this);
+ result r = __pWorkerThread->Start();
+ if (r != E_SUCCESS)
+ {
+ AppLogDebug("Resize image: Unable to start worker thread");
+ return MSG_RESPONSE_FAIL;
+ }
+ AppLogDebug("Resizing image in worker thread");
+ return MSG_RESPONSE_RESIZE_IMAGE;
+ }
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return returnType;
+}
+
+void
+MessageComposePanel::ShowSizeErrorPopup(void)
+{
+ AppLogDebug("ENTER");
+ if (__pCompressProgressPopup)
+ {
+ delete __pCompressProgressPopup;
+ __pCompressProgressPopup = null;
+ }
+ if (!__pSizeExceedPopup)
+ {
+ __pSizeExceedPopup = new (std::nothrow) Popup();
+ __pSizeExceedPopup->Construct(L"IDL_UNABLE_ATTACH_MESSAGE_POPUP");
+ Button* pCloseButton = static_cast<Button*>(__pSizeExceedPopup->GetControl(L"IDC_CLOSE_BUTTON"));
+ pCloseButton->SetActionId(IDA_CLOSE_POPUP);
+ pCloseButton->AddActionEventListener(*this);
+ Panel* pPanel = static_cast<Panel*>(__pSizeExceedPopup->GetControl(L"IDC_LABEL"));
+ pPanel->SetBackgroundColor(COLOR_COMPOSE_PANEL_BG);
+ Timer* pTimerForMaximumsizePopup = new (std::nothrow) Timer();
+ pTimerForMaximumsizePopup->Construct(*this);
+ pTimerForMaximumsizePopup->Start(3000);
+ __pSizeExceedPopup->Show();
+ }
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+}
+
+void
+MessageComposePanel::OnTimerExpired(Timer& timer)
+{
+ AppLogDebug("ENTER");
+ if (__pSizeExceedPopup)
+ {
+ delete __pSizeExceedPopup;
+ __pSizeExceedPopup = null;
+ }
+ delete &timer;
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+}
+void
+MessageComposePanel::SetComposeEventListener(IComposeEventObserver& listener)
+{
+ AppLogDebug("ENTER");
+ __pCompseEventListener = &listener;
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+}
+
+void
+MessageComposePanel::SetKeypadEventListener(IKeypadEventListener& listener)
+{
+ AppLogDebug("ENTER");
+ __pKeypadListener = &listener;
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+}
+
+void
+MessageComposePanel::SetSizeChangeEventListener(ISizeChangeEventListener& listener)
+{
+ AppLogDebug("ENTER");
+ __pSizeChangeListener = &listener;
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+}
+
+int
+MessageComposePanel::GetPanelHeight(const Panel& panel) const
+{
+ AppLogDebug("ENTER");
+ int controlCount = panel.GetControlCount();
+ int height(0);
+ if (controlCount > 0)
+ {
+ for (int index = 0; index < controlCount; index++)
+ {
+ Control* pControl = panel.GetControl(index);
+ height += pControl->GetHeight();
+ }
+ height += (MARGIN_16PX * (controlCount - 1));
+ }
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return height;
+}
+
+int
+MessageComposePanel::GetDisplayHeight(void) const
+{
+ AppLogDebug("ENTER");
+ // Include top and bottom margin
+ int panelCount = __pScrollPanel->GetControlCount();
+ int height(0);
+ if (panelCount > 0)
+ {
+ for (int index = 0; index < panelCount; index++)
+ {
+ Panel* pPanel = static_cast<Panel*>(__pScrollPanel->GetControl(index));
+ int panelHeight = GetPanelHeight(*pPanel);
+ if (panelHeight > 0)
+ {
+ height += panelHeight + MARGIN_16PX;
+ }
+ }
+ height -= MARGIN_16PX; // Gap should be add between two panel.
+ }
+ else
+ {
+ height = GetMinimumSize().height;
+ }
+ // Add to margin and bottom margin
+ height = height + MARGIN_20PX + MARGIN_20PX;
+
+ if (height > GetMaximumSize().height)
+ {
+ height = GetMaximumSize().height;
+ }
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return height;
+}
+
+result
+MessageComposePanel::SetBounds(const Rectangle& rect)
+{
+ AppLogDebug("ENTER");
+ result r = E_SUCCESS;
+ Rectangle prvBounds = GetBounds();
+ if (prvBounds.height == rect.height)
+ {
+ AdjustChildControl();
+ __pScrollPanel->ScrollToBottom();
+ }
+ r = Panel::SetBounds(rect);
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return r;
+}
+
+void
+MessageComposePanel::AdjustChildControl(void)
+{
+ AppLogDebug("ENTER");
+ int panelPosY(0);
+ int controlCount = __pScrollPanel->GetControlCount();
+ for (int index = 0; index < controlCount; index++)
+ {
+ Panel* pControlPanel = static_cast<Panel*>(__pScrollPanel->GetControl(index));
+ int cntlPosY(0);
+ for (int cntlIndex = 0; cntlIndex < pControlPanel->GetControlCount(); cntlIndex++)
+ {
+ Control* pControl = pControlPanel->GetControl(cntlIndex);
+ pControl->SetBounds(Rectangle(0, cntlPosY, pControl->GetWidth(), pControl->GetHeight()));
+ cntlPosY += pControl->GetHeight() + MARGIN_16PX;
+ }
+ int panelHeight = GetPanelHeight(*pControlPanel);
+ pControlPanel->SetBounds(Rectangle(0, panelPosY, __pScrollPanel->GetWidth(), panelHeight));
+ if (panelHeight > 0)
+ {
+ panelPosY += panelHeight + MARGIN_16PX;
+ }
+ }
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+}
+
+void
+MessageComposePanel::OnBoundsChanged(const Rectangle& oldRect, const Rectangle& newRect)
+{
+ AppLogDebug("ENTER");
+ // Control initialization not yet done
+ if (__pAddAttachement == null)
+ return;
+ // Keep send and attachment button current position
+ int heightOffset = newRect.height - oldRect.height;
+ Point pos = __pAddAttachement->GetPosition();
+ pos.y += heightOffset;
+ __pAddAttachement->SetPosition(pos);
+ pos = __pSendMessage->GetPosition();
+ pos.y += heightOffset;
+ __pSendMessage->SetPosition(pos);
+ pos.y -= (__pComposeInfoLabel->GetHeight() + MARGIN_5PX);
+ __pComposeInfoLabel->SetPosition(pos);
+ // Reduce top and bottom margin
+ pos = __pScrollPanel->GetPosition();
+ __pScrollPanel->SetBounds(Rectangle(pos.x, pos.y,
+ __pScrollPanel->GetWidth(), GetHeight() - (MARGIN_20PX * 2)));
+ // Adjust child control
+ AdjustChildControl();
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+}
+
+void
+MessageComposePanel::OnKeypadActionPerformed(Control& source,
+ KeypadAction keypadAction)
+{
+ AppLogDebug("ENTER");
+ if (__pKeypadListener)
+ {
+ __pKeypadListener->OnKeypadActionPerformed(source, keypadAction);
+ }
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+}
+
+void
+MessageComposePanel::OnKeypadClosed(Control& source)
+{
+ AppLogDebug("ENTER");
+ if (__pKeypadListener)
+ {
+ __pKeypadListener->OnKeypadClosed(source);
+ }
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+}
+
+void
+MessageComposePanel::OnKeypadOpened(Control& source)
+{
+ AppLogDebug("ENTER");
+ if (__pKeypadListener)
+ {
+ __pKeypadListener->OnKeypadOpened(source);
+ }
+ AppLogDebug("Exit");
+}
+
+void
+MessageComposePanel::OnKeypadBoundsChanged(Control& source)
+{
+ AppLogDebug("ENTER");
+ if (__pKeypadListener)
+ {
+ __pKeypadListener->OnKeypadBoundsChanged(source);
+ }
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+}
+
+void
+MessageComposePanel::OnKeypadWillOpen(Control& source)
+{
+ AppLogDebug("ENTER");
+ if (__pKeypadListener)
+ {
+ __pKeypadListener->OnKeypadWillOpen(source);
+ }
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+}
+
+void
+MessageComposePanel::OnSizeIncrease(const Control& control)
+{
+ AppLogDebug("ENTER");
+ if (__pSizeChangeListener)
+ {
+ __pScrollPanel->SetScrollBarVisible(true);
+ __pSizeChangeListener->OnSizeIncrease(*this);
+ }
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+}
+
+void
+MessageComposePanel::OnSizeDecrease(const Control& control)
+{
+ AppLogDebug("ENTER");
+ if (__pSizeChangeListener)
+ {
+ __pSizeChangeListener->OnSizeDecrease(*this);
+ }
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+}
+
+void
+MessageComposePanel::OnActionPerformed(const Control& source, int actionId)
+{
+ AppLogDebug("ENTER");
+ switch (actionId)
+ {
+ case IDA_COMPOSE_ADD_ATTACHEMENT:
+ {
+ if (__pAttachPopup)
+ {
+ delete __pAttachPopup;
+ }
+ __pAttachPopup = new (std::nothrow) AttachListPopup(*this);
+ Panel* pSubjectPanel = static_cast<Panel*>(__pScrollPanel->GetControl(L"IDC_PANEL_SUBJECT"));
+ __pAttachPopup->Construct(pSubjectPanel->GetControlCount() > 0);
+ __pAttachPopup->Show();
+ }
+ break;
+
+ case IDA_COMPOSE_DELETE_ATTACHEMENT:
+ {
+ ComposeBaseControl* pComposeCntl = static_cast<ComposeBaseControl*>(source.GetParent());
+ if (pComposeCntl->GetControlType() == COMPOSE_CONTROL_IMAGE_TEXT)
+ {
+ static_cast<MediaTextExpandEditArea*>(pComposeCntl)->ShowKeypad(false);
+ static_cast<Panel*>(__pScrollPanel->GetControl(L"IDC_PANEL_IMAGE_TEXT"))->
+ RemoveControl(*source.GetParent());
+ }
+ else if (pComposeCntl->GetControlType() == COMPOSE_CONTROL_SUBJECT)
+ {
+ static_cast<Panel*>(__pScrollPanel->GetControl(L"IDC_PANEL_SUBJECT"))->
+ RemoveControl(*source.GetParent());
+ // SetFocus
+ Panel* pImageTextPanel = static_cast<Panel*>(__pScrollPanel->GetControl(L"IDC_PANEL_IMAGE_TEXT"));
+ if (pImageTextPanel)
+ {
+ (static_cast<MediaTextExpandEditArea*>(pImageTextPanel->GetControl(0)))->SetFocus();
+ }
+ }
+ else if (pComposeCntl->GetControlType() == COMPOSE_CONTROL_ATTACHEMENT)
+ {
+ static_cast<Panel*>(__pScrollPanel->GetControl(L"IDC_PANEL_ATTACHEMENT"))->
+ RemoveControl(*source.GetParent());
+ }
+ // At least there should be one compose element
+ __pSizeChangeListener->OnSizeDecrease(*this);
+ // Check is it MMS, change button icon.
+ RequestId requestId = REQUEST_CHECK_COMPOSE_STATE;
+ SendUserEvent(requestId, null);
+ }
+ break;
+
+ case IDA_COMPOSE_SEND:
+ {
+ if (__pCompseEventListener)
+ {
+ __pCompseEventListener->OnSendButtonClick();
+ }
+ }
+ break;
+
+ case IDA_CLOSE_POPUP:
+ {
+ if (__pSizeExceedPopup)
+ {
+ delete __pSizeExceedPopup;
+ __pSizeExceedPopup = null;
+ }
+ }
+ break;
+ }
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+}
+
+void
+MessageComposePanel::OnFocusGained(const Control& source)
+{
+ AppLogDebug("ENTER");
+ __pFocusControl = static_cast<ComposeBaseControl*>(source.GetParent());
+ // Check delete operation need to enable for image text control,
+ // By default at least there should be one compose element.
+ if (__pFocusControl->GetControlType() == COMPOSE_CONTROL_IMAGE_TEXT)
+ {
+ Panel* pImageTextPanel = static_cast<Panel*>(__pScrollPanel->GetControl(L"IDC_PANEL_IMAGE_TEXT"));
+ int elementCount = pImageTextPanel->GetControlCount();
+ int imageTextCntlCount(0);
+ for (int index = 0; index < elementCount; index++)
+ {
+ ComposeBaseControl* pComposeElement = static_cast<ComposeBaseControl*>(pImageTextPanel->GetControl(index));
+ if (pComposeElement->GetControlType() == COMPOSE_CONTROL_IMAGE_TEXT)
+ {
+ imageTextCntlCount++;
+ }
+ }
+ static_cast<MediaTextExpandEditArea*>(__pFocusControl)->SetDeleteShowState(imageTextCntlCount > 1);
+ }
+ else if (__pFocusControl->GetControlType() == COMPOSE_CONTROL_SUBJECT)
+ {
+ static_cast<SubjectControl*>(__pFocusControl)->SetDeleteShowState(true);
+ }
+
+ RequestId requestId = REQUEST_UDATE_FOCUS;
+ GetParent()->SendUserEvent(requestId, null);
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+MessageComposePanel::OnFocusLost(const Control& source)
+{
+ AppLogDebug("ENTER");
+ ComposeBaseControl* pComposeElement = static_cast<ComposeBaseControl*>(source.GetParent());
+ if(__pFocusControl)
+ {
+ if (__pFocusControl->GetControlType() == COMPOSE_CONTROL_IMAGE_TEXT)
+ {
+ static_cast<MediaTextExpandEditArea*>(pComposeElement)->SetDeleteShowState(false);
+ }
+ else if (__pFocusControl->GetControlType() == COMPOSE_CONTROL_SUBJECT)
+ {
+ static_cast<SubjectControl*>(pComposeElement)->SetDeleteShowState(false);
+ }
+ }
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+}
+
+void
+MessageComposePanel::OnAppControlCompleteResponseReceived(const AppId& appId, const String& operationId,
+ AppCtrlResult appControlResult, const IMap* pResultMap)
+{
+ AppLogDebug("ENTER");
+
+ if (pResultMap && pResultMap->GetCount() > 0)
+ {
+ AppLogDebug("Reasult list Count : %d", pResultMap->GetCount());
+
+ if (appControlResult == APP_CTRL_RESULT_SUCCEEDED)
+ {
+ // Prepare selected file list and start processing
+ __pSelectedFilesQueue = (ArrayList*) GetSelectedFileListN(operationId, pResultMap);
+ ProcessNextFileComposeQueue();
+ }
+ else if (appControlResult == APP_CTRL_RESULT_CANCELED)
+ {
+ AppLogDebug("Appcontrol operation canceled");
+ }
+ else if (appControlResult == APP_CTRL_RESULT_FAILED)
+ {
+ AppLogDebug("Appcontrol operation faild");
+ }
+ }
+
+ AppLogDebug("EXIT: r= %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+result
+MessageComposePanel::OnDraw(void)
+{
+ AppLogDebug("ENTER");
+
+ result r = E_SUCCESS;
+ Canvas* pCanvas = GetCanvasN();
+ if (pCanvas)
+ {
+ Rectangle rect = GetBounds();
+ pCanvas->SetForegroundColor(Color(57, 60, 65));
+ pCanvas->DrawLine(Point(0, 0), Point(rect.width, 0));
+ delete pCanvas;
+ }
+
+ AppLogDebug("EXIT: r= %s", GetErrorMessage(GetLastResult()));
+ return r;
+}
+
+void
+MessageComposePanel::OnUserEventReceivedN(RequestId requestId, IList* pArgs)
+{
+ AppLogDebug("ENTER");
+ switch (requestId)
+ {
+ case REQUEST_CHECK_COMPOSE_STATE:
+ {
+ ShowComposeInfo();
+ // Check is it MMS, change button icon.
+ if (IsMmsMode())
+ {
+ __pCompseEventListener->OnComposeStateChange(COMPOSE_MMS);
+ //Bitmap* pNormalBitmap = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_SEND_MMS, Dimension(W_ICON_64PX, H_ICON_64PX));
+ //if (pNormalBitmap)
+ //{
+ //__pSendMessage->SetNormalBitmap(Point((__pSendMessage->GetWidth() - pNormalBitmap->GetWidth()) / 2, (__pSendMessage->GetHeight() - pNormalBitmap->GetHeight()) / 2), *pNormalBitmap);
+ //__pSendMessage->SetPressedBitmap(Point((__pSendMessage->GetWidth() - pNormalBitmap->GetWidth()) / 2, (__pSendMessage->GetHeight() - pNormalBitmap->GetHeight()) / 2), *pNormalBitmap);
+ //__pSendMessage->SetDisabledBitmap(Point((__pSendMessage->GetWidth() - pNormalBitmap->GetWidth()) / 2, (__pSendMessage->GetHeight() - pNormalBitmap->GetHeight()) / 2), *pNormalBitmap);
+ //}
+ }
+ else
+ {
+ __pCompseEventListener->OnComposeStateChange(COMPOSE_SMS);
+ //Bitmap* pNormalBitmap = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_SEND_MESSAGE, Dimension(W_ICON_64PX, H_ICON_64PX));
+ //if (pNormalBitmap)
+ //{
+ //__pSendMessage->SetNormalBitmap(Point((__pSendMessage->GetWidth() - pNormalBitmap->GetWidth()) / 2, (__pSendMessage->GetHeight() - pNormalBitmap->GetHeight()) / 2), *pNormalBitmap);
+ //__pSendMessage->SetPressedBitmap(Point((__pSendMessage->GetWidth() - pNormalBitmap->GetWidth()) / 2, (__pSendMessage->GetHeight() - pNormalBitmap->GetHeight()) / 2), *pNormalBitmap);
+ //__pSendMessage->SetDisabledBitmap(Point((__pSendMessage->GetWidth() - pNormalBitmap->GetWidth()) / 2, (__pSendMessage->GetHeight() - pNormalBitmap->GetHeight()) / 2), *pNormalBitmap);
+ //}
+ }
+ __pSendMessage->Draw();
+ __pSendMessage->Show();
+ }
+ break;
+
+ case REQUEST_IMAGE_RESIZE_RESPONSE:
+ {
+ int rType = ((Integer*) pArgs->GetAt(0))->ToInt();
+ if (rType == MSG_RESPONSE_RESIZE_IMAGE)
+ {
+ if (!__pFocusControl)
+ {
+ Panel* pImageTextPanel = static_cast<Panel*>(__pScrollPanel->GetControl(L"IDC_PANEL_IMAGE_TEXT"));
+ __pFocusControl = static_cast<ComposeBaseControl*>(pImageTextPanel->GetControl(0));
+ }
+ MediaTextExpandEditArea* pFocusComposePage = static_cast<MediaTextExpandEditArea*>(__pFocusControl);
+ if (pFocusComposePage->IsVideoExist() || pFocusComposePage->IsImageExist())
+ {
+ MediaTextExpandEditArea* pComposePage = CreatePage();
+ if (pComposePage)
+ {
+ pComposePage->SetMedia(__pSelectFilePath, MEDIA_TYPE_IMAGE);
+ }
+ }
+ else
+ {
+ pFocusComposePage->SetMedia(__pSelectFilePath, MEDIA_TYPE_IMAGE);
+ pFocusComposePage->SetFocus();
+ }
+ }
+ RequestId rqstId = REQUEST_CHECK_COMPOSE_STATE;
+ SendUserEvent(rqstId, null);
+ // After resizing image need to look selected file in queue.
+ ProcessNextFileComposeQueue();
+ }
+ break;
+
+ case REQUEST_DESTROY_ATTACH_POPUP:
+ {
+ if (__pAttachPopup)
+ {
+ delete __pAttachPopup;
+ __pAttachPopup = null;
+ }
+ }
+ break;
+
+ case REQUEST_ADD_SUBJECT:
+ {
+ AddSubjectField();
+ }
+ break;
+
+ case REQUEST_SHOW_COMPOSE_INFO:
+ {
+ ShowComposeInfo();
+ }
+ break;
+
+ case REQUEST_OPEN_GALLARY:
+ case REQUEST_TAKE_PICTURE:
+ case REQUEST_CAPTURE_VIDEO:
+ case REQUEST_RECORD_AUDIO:
+ case REQUEST_OPEN_MY_FILES:
+ case REQUEST_ADD_CONTACTS:
+ case REQUEST_ADD_CALENDAR:
+ case REQUEST_ADD_MEMO:
+ {
+ RequestType requestType = (RequestType) requestId;
+ LaunchAppControl(requestType);
+ }
+ break;
+ }
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+}
+
+void
+MessageComposePanel::OnKeyReleased(const Control& source, KeyCode keyCode)
+{
+ AppLogDebug("ENTER");
+ // Show char counter and byte information respect to SMS and MMS.
+ ShowComposeInfo();
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+}
+
+void
+MessageComposePanel::OnTextValueChanged(const Control& source)
+{
+ AppLogDebug("ENTER");
+ ShowComposeInfo();
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+}
+
+bool
+MessageComposePanel::IsComposeFieldEmpty(void)
+{
+ AppLogDebug("ENTER");
+ String strComposeText = GetSmsText();
+ if(strComposeText.GetLength() > 0)
+ {
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return false;
+ }
+ else
+ {
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return true;
+ }
+}
+
+result
+MessageComposePanel::LaunchAppControl(RequestType requestType)
+{
+ AppLogDebug("ENTER");
+ result r = E_SUCCESS;
+ AppControl* pAppCntl = null;
+
+ HashMap* pHashMap = new (std::nothrow) HashMap();
+ if (pHashMap)
+ {
+ pHashMap->Construct();
+ switch (requestType)
+ {
+ case REQUEST_OPEN_GALLARY:
+ {
+ pHashMap->Add((new (std::nothrow) String(L"type")), (new (std::nothrow) String(IDS_TYPE_IMAGE)));
+ pHashMap->Add((new (std::nothrow) String(L"selectionType")), (new (std::nothrow) String(IDS_SELTYPE_MULTIPLE)));
+ pAppCntl = AppManager::FindAppControlN(IDS_APPCONTROL_PROVIDER_GALLERY, IDS_APPCONTROL_OPERATION_PICK);
+ }
+ break;
+
+ case REQUEST_TAKE_PICTURE:
+ {
+ pHashMap->Add((new (std::nothrow) String(L"type")), (new (std::nothrow) String(IDS_TYPE_CAMERA)));
+ pAppCntl = AppManager::FindAppControlN(IDS_APPCONTROL_PROVIDER_CAMERA, IDS_APPCONTROL_OPERATION_CAPTURE);
+ }
+ break;
+
+ case REQUEST_CAPTURE_VIDEO:
+ {
+ pHashMap->Add((new (std::nothrow) String(L"type")), (new (std::nothrow) String(L"video")));
+ pAppCntl = AppManager::FindAppControlN(IDS_APPCONTROL_PROVIDER_CAMERA, IDS_APPCONTROL_OPERATION_RECORD);
+ }
+ break;
+
+ case REQUEST_RECORD_AUDIO:
+ {
+ pHashMap->Add((new (std::nothrow) String(L"type")), (new (std::nothrow) String(IDS_TYPE_AUDIO)));
+ pAppCntl = AppManager::FindAppControlN(IDS_APPCONTROL_PROVIDER_AUDIO, IDS_APPCONTROL_OPERATION_RECORD);
+ }
+ break;
+
+ case REQUEST_OPEN_MY_FILES:
+ {
+ pHashMap->Add((new (std::nothrow) String(L"type")), (new (std::nothrow) String(L"all")));
+ pHashMap->Add((new (std::nothrow) String(L"selectionType")), (new (std::nothrow) String(L"multiple")));
+ pAppCntl = AppManager::FindAppControlN(IDS_APPCONTROL_PROVIDER_MEDIA, IDS_APPCONTROL_OPERATION_PICK);
+ }
+ break;
+
+ case REQUEST_ADD_CONTACTS:
+ {
+ pHashMap->Add((new (std::nothrow) String(L"selectionMode")), (new (std::nothrow) String(L"single")));
+ pHashMap->Add((new (std::nothrow) String(L"returnType")), (new (std::nothrow) String(L"vcard")));
+ pAppCntl = AppManager::FindAppControlN(IDS_APPCONTROL_PROVIDER_CONTACT, IDS_APPCONTROL_OPERATION_PICK);
+ }
+ break;
+
+ case REQUEST_ADD_CALENDAR:
+ {
+ pHashMap->Add((new (std::nothrow) String(L"itemType")), (new (std::nothrow) String(L"event")));
+ pAppCntl = AppManager::FindAppControlN(IDS_APPCONTROL_PROVIDER_CALENDAR, IDS_APPCONTROL_OPERATION_PICK);
+ }
+ break;
+
+ case REQUEST_ADD_MEMO:
+ {
+ pHashMap->Add((new (std::nothrow) String(L"itemType")), (new (std::nothrow) String(L"memo")));
+ pAppCntl = AppManager::FindAppControlN(IDS_APPCONTROL_PROVIDER_MEMO, IDS_APPCONTROL_OPERATION_PICK);
+ }
+ break;
+
+ default:
+ break;
+ }
+
+ if (pAppCntl)
+ {
+ pAppCntl->Start(null, null, pHashMap, this);
+ delete pAppCntl;
+ }
+ pHashMap->RemoveAll(true);
+ delete pHashMap;
+ }
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return r;
+}
+
+String
+MessageComposePanel::GetSmsText(void) const
+{
+ AppLogDebug("ENTER");
+ Panel* pCompoasePanel = static_cast<Panel*>(__pScrollPanel->GetControl(L"IDC_PANEL_IMAGE_TEXT"));
+ MediaTextExpandEditArea* pComposePage = static_cast<MediaTextExpandEditArea*>(pCompoasePanel->GetControl(0));
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return pComposePage->GetText();
+}
+
+MessageComposeData*
+MessageComposePanel::GetMessageComposeDataN(void) const
+{
+ AppLogDebug("ENTER");
+
+ MessageComposeData* pComposeData = null;
+ if (IsMmsMode())
+ {
+ String subjectText;
+ Panel* pSubjectPanel = static_cast<Panel*>(__pScrollPanel->
+ GetControl(L"IDC_PANEL_SUBJECT"));
+ if (pSubjectPanel->GetControlCount() > 0)
+ {
+ subjectText.Append(((SubjectControl*) pSubjectPanel->GetControl(0))->GetText());
+ }
+ Panel* pCompoasePanel = static_cast<Panel*>(__pScrollPanel->
+ GetControl(L"IDC_PANEL_IMAGE_TEXT"));
+ ArrayList* pPageList = null;
+ if (pCompoasePanel && pCompoasePanel->GetControlCount() > 0)
+ {
+ pPageList = new (std::nothrow) ArrayList();
+ pPageList->Construct();
+ for (int pageIndex = 0; pageIndex < pCompoasePanel->GetControlCount(); pageIndex++)
+ {
+ MediaTextExpandEditArea* pPageCntl = static_cast<MediaTextExpandEditArea*>(pCompoasePanel->
+ GetControl(pageIndex));
+ int maxDuration(__defaultPageDuration);
+ MmsPageData* pPageData = new (std::nothrow) MmsPageData(pPageCntl->GetText());
+ if (pPageData)
+ {
+ if (pPageCntl->IsImageExist())
+ {
+ pPageData->SetImagePath(pPageCntl->GetMediaPath(MEDIA_TYPE_IMAGE));
+ }
+ else if (pPageCntl->IsVideoExist())
+ {
+ pPageData->SetVideoPath(pPageCntl->GetMediaPath(MEDIA_TYPE_VIDEO));
+ int fileDuration = CommonUtil::GetDuration(pPageCntl->GetMediaPath(MEDIA_TYPE_VIDEO));
+ if (maxDuration < fileDuration)
+ {
+ maxDuration = fileDuration;
+ }
+ }
+ if (pPageCntl->IsAudioExist())
+ {
+ pPageData->SetAudioPath(pPageCntl->GetMediaPath(MEDIA_TYPE_AUDIO));
+ int fileDuration = CommonUtil::GetDuration(pPageCntl->GetMediaPath(MEDIA_TYPE_AUDIO));
+ if (maxDuration < fileDuration)
+ {
+ maxDuration = fileDuration;
+ }
+ }
+ pPageData->setPageDuration(maxDuration);
+ if (pPageList->Add(pPageData) != E_SUCCESS)
+ {
+ delete pPageData;
+ }
+ }
+ }
+ }
+ Panel* pAttachmentPanel = static_cast<Panel*>(__pScrollPanel->
+ GetControl(L"IDC_PANEL_ATTACHEMENT"));
+ ArrayList* pAttachList = null;
+ if (pAttachmentPanel && pAttachmentPanel->GetControlCount() > 0)
+ {
+ pAttachList = new (std::nothrow) ArrayList();
+ pAttachList->Construct();
+ for (int attachIndex = 0; attachIndex < pAttachmentPanel->GetControlCount(); attachIndex++)
+ {
+ AttachementControl* pAttachCntl = static_cast<AttachementControl*>(pAttachmentPanel->
+ GetControl(attachIndex));
+ String* pAttachPath = new (std::nothrow) String(pAttachCntl->GetAttachementFilepath());
+ if (pAttachPath && pAttachList->Add(pAttachPath) != E_SUCCESS)
+ {
+ delete pAttachPath;
+ }
+ }
+ }
+ if (subjectText.GetLength() > 0 || pPageList || pAttachList)
+ {
+ pComposeData = new (std::nothrow) MessageComposeData(subjectText, pPageList, pAttachList);
+ }
+ }
+ else
+ {
+ Panel* pCompoasePanel = static_cast<Panel*>(__pScrollPanel->GetControl(L"IDC_PANEL_IMAGE_TEXT"));
+ MediaTextExpandEditArea* pPageCntl = static_cast<MediaTextExpandEditArea*>(
+ pCompoasePanel->GetControl(0));
+ String smsBodyText = pPageCntl->GetText();
+ if (smsBodyText.GetLength() > 0)
+ {
+ pComposeData = new (std::nothrow) MessageComposeData(smsBodyText);
+ }
+ }
+
+ AppLogDebug("EXIT: r= %s", GetErrorMessage(GetLastResult()));
+ return pComposeData;
+}
+
+String
+MessageComposePanel::GetMessageCounterInfo(int msgLength) const
+{
+ AppLogDebug("ENTER");
+
+ String counterMsg;
+ int length = 0;
+ int messagecount = 0;
+ int messaglength = MESSAGE_LENGTH;
+ if (msgLength < MESSAGE_LENGTH)
+ {
+ messagecount = msgLength / MESSAGE_LENGTH;
+ if (messagecount != 0)
+ {
+ messaglength = MESSAGE_LENGTH * (messagecount + 1);
+ }
+ length = messaglength - msgLength;
+ counterMsg.Append(length);
+ if (messagecount != 0)
+ {
+ counterMsg.Append("/");
+ counterMsg.Append(messagecount);
+ }
+ }
+ else if (msgLength < MESSAGE_LENGTH + MESSAGE_LENGTH_2)
+ {
+ length = msgLength - MESSAGE_LENGTH ;
+ messagecount = length / MESSAGE_LENGTH_2 + 1;
+ messaglength = MESSAGE_LENGTH + MESSAGE_LENGTH_2;
+ length = messaglength - msgLength;
+ counterMsg.Append(length);
+ counterMsg.Append("/");
+ counterMsg.Append(messagecount + 1);
+ }
+ else
+ {
+ length = msgLength - MESSAGE_LENGTH - MESSAGE_LENGTH_2;
+ messagecount = length / MESSAGE_LENGTH_3 + 1;
+ if (messagecount > 1)
+ {
+ messaglength = MESSAGE_LENGTH + MESSAGE_LENGTH_2 +(MESSAGE_LENGTH_3 * (messagecount));
+ }
+ else
+ {
+ messaglength = MESSAGE_LENGTH + MESSAGE_LENGTH_2 + MESSAGE_LENGTH_3;
+ }
+ length = messaglength - msgLength;
+ counterMsg.Append(length);
+ counterMsg.Append("/");
+ counterMsg.Append(messagecount + 2);
+ }
+
+ Panel* pCompoasePanel = static_cast<Panel*>(__pScrollPanel->GetControl(L"IDC_PANEL_IMAGE_TEXT"));
+ MediaTextExpandEditArea* pPageCntl = static_cast<MediaTextExpandEditArea*>(pCompoasePanel->GetControl(0));
+ pPageCntl->SetLimitLength(1529);
+ if (messagecount >= 8)
+ {
+ if (messagecount > 8)
+ {
+ String smsBodyText = pPageCntl->GetText();
+ int maxLength = msgLength - 1525;
+ smsBodyText.Remove(1524/4, maxLength/4);
+ pPageCntl->ClearText();
+ pPageCntl->SetText(smsBodyText);
+ RequestId requestId = REQUEST_SHOW_COMPOSE_INFO;
+ SendUserEvent(requestId, null);
+ }
+ else if (length < 5)
+ {
+ String smsBodyText = pPageCntl->GetText();
+ pPageCntl->SetLimitLength(smsBodyText.GetLength());
+ counterMsg.Clear();
+ counterMsg.Append(L"0");
+ counterMsg.Append("/");
+ counterMsg.Append(messagecount + 2);
+ }
+ }
+
+ AppLogDebug("EXIT: r= %s", GetErrorMessage(GetLastResult()));
+ return counterMsg;
+}
+
+long long int
+MessageComposePanel::GetMessageComposeSize(void) const
+{
+ AppLogDebug("ENTER");
+ result r = E_SUCCESS;
+ long long sizeBytes(0);
+ // Calculate attachment size
+ Panel* pAttachmentPanel = static_cast<Panel*>(__pScrollPanel->
+ GetControl(L"IDC_PANEL_ATTACHEMENT"));
+ for (int index = 0; index < pAttachmentPanel->GetControlCount(); index++)
+ {
+ AttachementControl* pAttachCntl = (AttachementControl*) pAttachmentPanel->GetControl(index);
+ if (!pAttachCntl->GetAttachementFilepath().IsEmpty())
+ {
+ FileAttributes fileAttr;
+ r = File::GetAttributes(pAttachCntl->GetAttachementFilepath(), fileAttr);
+ if (r == E_SUCCESS)
+ {
+ sizeBytes += fileAttr.GetFileSize();
+ }
+ }
+ }
+ // Calculate image/Text size
+ Panel* pImageTextSlidePanel = static_cast<Panel*>(__pScrollPanel->
+ GetControl(L"IDC_PANEL_IMAGE_TEXT"));
+ for (int index = 0; index < pImageTextSlidePanel->GetControlCount(); index++)
+ {
+ MediaTextExpandEditArea* pComposeElement = (MediaTextExpandEditArea*)
+ pImageTextSlidePanel->GetControl(index);
+ // For Video
+ if (!pComposeElement->GetMediaPath(MEDIA_TYPE_VIDEO).IsEmpty())
+ {
+ FileAttributes fileAttr;
+ r = File::GetAttributes(pComposeElement->GetMediaPath(MEDIA_TYPE_IMAGE), fileAttr);
+ if (r == E_SUCCESS)
+ {
+ sizeBytes += fileAttr.GetFileSize();
+ }
+ }
+ else
+ {
+ // For Audio
+ if (!pComposeElement->GetMediaPath(MEDIA_TYPE_AUDIO).IsEmpty())
+ {
+ FileAttributes fileAttr;
+ r = File::GetAttributes(pComposeElement->GetMediaPath(MEDIA_TYPE_IMAGE), fileAttr);
+ if (r == E_SUCCESS)
+ {
+ sizeBytes += fileAttr.GetFileSize();
+ }
+ }
+ // For image
+ if (!pComposeElement->GetMediaPath(MEDIA_TYPE_IMAGE).IsEmpty())
+ {
+ FileAttributes fileAttr;
+ r = File::GetAttributes(pComposeElement->GetMediaPath(MEDIA_TYPE_IMAGE), fileAttr);
+ if (r == E_SUCCESS)
+ {
+ sizeBytes += fileAttr.GetFileSize();
+ }
+ }
+ }
+ // Include text length
+ sizeBytes += pComposeElement->GetText().GetLength();
+ }
+ Panel* pSubjectPanel = static_cast<Panel*>(__pScrollPanel->
+ GetControl(L"IDC_PANEL_SUBJECT"));
+ if (pSubjectPanel && pSubjectPanel->GetControlCount() > 0)
+ {
+ sizeBytes += ((SubjectControl*) pSubjectPanel->GetControl(0))->GetText().GetLength();
+ }
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return sizeBytes;
+
+}
+
+long long int
+MessageComposePanel::GetFileSize(const String& filePath) const
+{
+ AppLogDebug("ENTER");
+ result r = E_SUCCESS;
+ long long int fileSizeBytes(0);
+ FileAttributes fileAttr;
+ r = File::GetAttributes(filePath, fileAttr);
+ if (r == E_SUCCESS)
+ {
+ fileSizeBytes = fileAttr.GetFileSize();
+ }
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return fileSizeBytes;
+}
+
+bool
+MessageComposePanel::IsMmsMode(void) const
+{
+ AppLogDebug("ENTER");
+
+ Panel* pSubjectPanel = static_cast<Panel*>(__pScrollPanel->
+ GetControl(L"IDC_PANEL_SUBJECT"));
+ // Subject field available, it is MMS
+ if (pSubjectPanel->GetControlCount() > 0)
+ return true;
+ Panel* pAttachmentPanel = static_cast<Panel*>(__pScrollPanel->
+ GetControl(L"IDC_PANEL_ATTACHEMENT"));
+ if (pAttachmentPanel->GetControlCount() > 0)
+ return true;
+ Panel* pCompoasePanel = static_cast<Panel*>(__pScrollPanel->
+ GetControl(L"IDC_PANEL_IMAGE_TEXT"));
+ if (pCompoasePanel->GetControlCount() > 1)
+ return true;
+ MediaTextExpandEditArea* pMediaTextArea = static_cast<MediaTextExpandEditArea*>(pCompoasePanel->
+ GetControl(0));
+ if (pMediaTextArea->IsImageExist() || pMediaTextArea->IsAudioExist() || pMediaTextArea->IsVideoExist())
+ return true;
+
+ AppLogDebug("EXIT: r= %s", GetErrorMessage(GetLastResult()));
+ return false;
+}
+
+void
+MessageComposePanel::Reset(void)
+{
+ AppLogDebug("ENTER");
+
+ Panel* pSubjectPanel = static_cast<Panel*>(__pScrollPanel->
+ GetControl(L"IDC_PANEL_SUBJECT"));
+ pSubjectPanel->RemoveAllControls();
+ Panel* pAttachmentPanel = static_cast<Panel*>(__pScrollPanel->
+ GetControl(L"IDC_PANEL_ATTACHEMENT"));
+ pAttachmentPanel->RemoveAllControls();
+ Panel* pComposePanel = static_cast<Panel*>(__pScrollPanel->
+ GetControl(L"IDC_PANEL_IMAGE_TEXT"));
+ pComposePanel->RemoveAllControls();
+ __pComposeInfoLabel->SetShowState(false);
+ CreatePage();
+ SetShowState(true);
+ __pSendMessage->SetEnabled(false);
+ AppLogDebug("EXIT: r= %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+MessageComposePanel::HideKeypad(void)
+{
+ AppLogDebug("ENTER");
+ ComposeBaseControl* pFocusCntl = ((ComposeBaseControl*) __pFocusControl);
+ if (pFocusCntl)
+ {
+ if (pFocusCntl->GetControlType() == COMPOSE_CONTROL_SUBJECT)
+ {
+ ((SubjectControl*) pFocusCntl)->ShowKeypad(false);
+ }
+ else if (pFocusCntl->GetControlType() == COMPOSE_CONTROL_IMAGE_TEXT)
+ {
+ ((MediaTextExpandEditArea*) pFocusCntl)->ShowKeypad(false);
+ }
+ }
+ AppLogDebug("EXIT: r= %s", GetErrorMessage(GetLastResult()));
+ return;
+
+}
+
+void
+MessageComposePanel::ShowKeypad(void)
+{
+ AppLogDebug("ENTER");
+ ComposeBaseControl* pFocusCntl = ((ComposeBaseControl*) __pFocusControl);
+ if (pFocusCntl)
+ {
+ if (pFocusCntl->GetControlType() == COMPOSE_CONTROL_SUBJECT)
+ {
+ ((SubjectControl*) pFocusCntl)->ShowKeypad(true);
+ }
+ else if (pFocusCntl->GetControlType() == COMPOSE_CONTROL_IMAGE_TEXT)
+ {
+ ((MediaTextExpandEditArea*) pFocusCntl)->ShowKeypad(true);
+ }
+ }
+ AppLogDebug("EXIT: r= %s", GetErrorMessage(GetLastResult()));
+ return;
+
+}
+
+void
+MessageComposePanel::SetTextSize(int textSize)
+{
+ AppLogDebug("ENTER");
+ //Set compose editor text size
+ Panel* pImageTextSlidePanel = static_cast<Panel*>(__pScrollPanel->
+ GetControl(L"IDC_PANEL_IMAGE_TEXT"));
+ for (int index = 0; index < pImageTextSlidePanel->GetControlCount(); index++)
+ {
+ MediaTextExpandEditArea* pComposeElement = (MediaTextExpandEditArea*)
+ pImageTextSlidePanel->GetControl(index);
+ pComposeElement->SetTextSize(textSize);
+ }
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+}
+
+void
+MessageComposePanel::ClearText(void)
+{
+ AppLogDebug("ENTER");
+ //Set compose editor text size
+ Panel* pImageTextSlidePanel = static_cast<Panel*>(__pScrollPanel->
+ GetControl(L"IDC_PANEL_IMAGE_TEXT"));
+ for (int index = 0; index < pImageTextSlidePanel->GetControlCount(); index++)
+ {
+ MediaTextExpandEditArea* pComposeElement = (MediaTextExpandEditArea*)
+ pImageTextSlidePanel->GetControl(index);
+ pComposeElement->ClearText();
+ }
+ __pComposeInfoLabel->SetShowState(false);
+ __pSendMessage->SetEnabled(false);
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+}
+
+void
+MessageComposePanel::SetFocusToEditor(void)
+{
+ AppLogDebug("ENTER");
+ Panel* pComposePanel = static_cast<Panel*>(__pScrollPanel->
+ GetControl(L"IDC_PANEL_IMAGE_TEXT"));
+ int focusIndex = pComposePanel->GetControlCount() - 1;
+ MediaTextExpandEditArea* pComposePage = (MediaTextExpandEditArea*) pComposePanel->GetControl(focusIndex);
+ pComposePage->SetFocus();
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+
+}
+
+void
+MessageComposePanel::SetDefaultPageDuration(int pageDuration)
+{
+ AppLogDebug("ENTER");
+ __defaultPageDuration = pageDuration;
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+}
+
+int
+MessageComposePanel::GetDefaultPageDuration(void) const
+{
+ AppLogDebug("ENTER");
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return __defaultPageDuration;
+}
+
+void
+MessageComposePanel::LoadMessageData(const MessageData& msgData)
+{
+ AppLogDebug("ENTER");
+ // In case of SMS, need to check MMS use case
+ if (msgData.IsMms())
+ {
+#ifndef _DISABLE_MMS_FEATURE_
+ // Load Subject
+ String subjectText = msgData.GetSubject();
+ if (subjectText.GetLength() > 0)
+ {
+ AddSubjectField(subjectText);
+ }
+ // Load attachement
+ if (msgData.GetAttachmentCount() > 0)
+ {
+ const ArrayList* pAttachList = msgData.GetAttachList();
+ for (int index = 0; index < pAttachList->GetCount(); index++)
+ {
+ String* pAttachFilePath = (String*) pAttachList->GetAt(index);
+ AddAttachementElement(*pAttachFilePath);
+ }
+ }
+ // Load page
+ if (msgData.GetPageCount() > 0)
+ {
+ Panel* pImageTextSlidePanel = static_cast<Panel*>(__pScrollPanel->
+ GetControl(L"IDC_PANEL_IMAGE_TEXT"));
+ // For 1st draft compose element.
+ const ArrayList* pPageList = msgData.GetPageList();
+ MmsPageData* pPageData = (MmsPageData*) pPageList->GetAt(0);
+ MediaTextExpandEditArea* pComposePage = (MediaTextExpandEditArea*)
+ pImageTextSlidePanel->GetControl(0);
+ pComposePage->SetText(pPageData->GetBodyText());
+ if (pPageData->IsImageExist())
+ {
+ pComposePage->SetMedia(pPageData->GetImagePath(), MEDIA_TYPE_IMAGE);
+ }
+ else if (pPageData->IsVideoExist())
+ {
+ pComposePage->SetMedia(pPageData->GetVideoPath(), MEDIA_TYPE_VIDEO);
+ }
+ if (pPageData->IsAudioExist())
+ {
+ pComposePage->SetMedia(pPageData->GetAudioPath(), MEDIA_TYPE_AUDIO);
+ }
+ // For 2nd page onwords.
+ for (int index = 1; index < pPageList->GetCount(); index++)
+ {
+ MmsPageData* pPageData = (MmsPageData*) pPageList->GetAt(index);
+ MediaTextExpandEditArea* pComposePage = CreatePage(pPageData->GetBodyText());
+ if (pComposePage)
+ {
+ pComposePage->SetText(pPageData->GetBodyText());
+ if (pPageData->IsImageExist())
+ {
+ pComposePage->SetMedia(pPageData->GetImagePath(), MEDIA_TYPE_IMAGE);
+ }
+ else if (pPageData->IsVideoExist())
+ {
+ pComposePage->SetMedia(pPageData->GetVideoPath(), MEDIA_TYPE_VIDEO);
+ }
+
+ if (pPageData->IsAudioExist())
+ {
+ pComposePage->SetMedia(pPageData->GetAudioPath(), MEDIA_TYPE_AUDIO);
+ }
+ }
+ }
+ }
+ //__pSendMessage->SetEnabled(true);
+ GetParent()->SendUserEvent(REQUEST_ENABLE_DISABLE_SEND_BUTTON,null);
+#endif
+ }
+ else
+ {
+ Panel* pImageTextSlidePanel = static_cast<Panel*>(__pScrollPanel->
+ GetControl(L"IDC_PANEL_IMAGE_TEXT"));
+ MediaTextExpandEditArea* pComposeElement = (MediaTextExpandEditArea*)
+ pImageTextSlidePanel->GetControl(0);
+ pComposeElement->SetText(msgData.GetMessageText());
+ //__pSendMessage->SetEnabled(true);
+ GetParent()->SendUserEvent(REQUEST_ENABLE_DISABLE_SEND_BUTTON,null);
+ }
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+}
+
+void
+MessageComposePanel::ShowComposeInfo(void)
+{
+ AppLogDebug("ENTER");
+
+ if (IsMmsMode())
+ {
+ // Show Byte info
+ long long int size = GetMessageComposeSize();
+ //__pSendMessage->SetEnabled(size > 0);
+ GetParent()->SendUserEvent(REQUEST_ENABLE_DISABLE_SEND_BUTTON,null);
+ int sizeKb = size / SIZE_1KB;
+ if (sizeKb == 0) sizeKb = 1;
+ String mmsByteCount;
+ mmsByteCount.Format(10, L"%d KB", sizeKb);
+ __pComposeInfoLabel->SetText(mmsByteCount);
+ __pComposeInfoLabel->SetShowState(true);
+ }
+ else
+ {
+ String msgText = GetSmsText();
+ //__pSendMessage->SetEnabled(msgText.GetLength() > 0);
+ GetParent()->SendUserEvent(REQUEST_ENABLE_DISABLE_SEND_BUTTON,null);
+ if (GetHeight() > GetMinimumSize().height)
+ {
+ //TODO: SLP API is throwing -9 in case of UCS2 type encodeing.
+// const SmsSendSettings* pSmsSendSetting = SettingPresentationModel::GetInstance()->GetSmsSendSetting();
+// CharCounterInfo charinfo = CommonUtil::GetMessageCharCounterInfo(msgText,pSmsSendSetting);
+ int msgLength = msgText.GetLength() * 4 + 1; // For null terminated.
+ const wchar_t* pText = msgText.GetPointer();
+ char* pBodyText = new (std::nothrow) char[msgLength];
+ if (pBodyText)
+ {
+ wcstombs(pBodyText, pText, (size_t) msgLength);
+ int size((int) strlen(pBodyText));
+ delete[] pBodyText;
+ __pComposeInfoLabel->SetText(GetMessageCounterInfo(size));
+ }
+ __pComposeInfoLabel->SetShowState(true);
+ }
+ else
+ {
+ __pComposeInfoLabel->SetShowState(false);
+ __pComposeInfoLabel->Invalidate(true);
+ }
+ }
+ __pSendMessage->Draw();
+ __pComposeInfoLabel->Draw();
+
+ AppLogDebug("EXIT: r= %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+result
+MessageComposePanel::ChangeResolution(const String& sourcPath)
+{
+ AppLogDebug("ENTER");
+
+ result r = E_SUCCESS;
+ Image* pImage = new (std::nothrow) Image();
+ if (!pImage)
+ {
+ r = E_FAILURE;
+ return r;
+ }
+// TryReturn(pImage != null,r = E_FAILURE, "pImage == null");
+ pImage->Construct();
+ // Decode image file to check resolution.
+ Bitmap* pBitmap = pImage->DecodeN(sourcPath, BITMAP_PIXEL_FORMAT_ARGB8888);
+ if (pBitmap)
+ {
+ AppLogDebug("Image resolution( %d, %d )", pBitmap->GetWidth(), pBitmap->GetHeight());
+ unsigned int orgWidth = pBitmap->GetWidth();
+ unsigned int orgHeight = pBitmap->GetHeight();
+ unsigned int restrictWidth = 0;
+ unsigned int restrictHeight = 0;
+ unsigned int destWidth = 0;
+ unsigned int destHeight = 0;
+ if (orgWidth > orgHeight)
+ {
+ restrictWidth = MAX_RESTRICT_IMG_W;
+ restrictHeight = MAX_RESTRICT_IMG_H;
+ }
+ else
+ {
+ restrictWidth = MAX_RESTRICT_IMG_H;
+ restrictHeight = MAX_RESTRICT_IMG_W;
+ }
+ AppLogDebug("RESTRICT resolution( %d, %d )", restrictWidth, restrictHeight);
+ if (orgWidth > restrictWidth && orgHeight > restrictHeight)
+ {
+ double widthPercent = (double) restrictWidth / orgWidth;
+ double heightPercent = (double) restrictHeight / orgHeight;
+ if (widthPercent < heightPercent)
+ {
+ destWidth = restrictWidth;
+ destHeight = orgHeight * widthPercent;
+ }
+ else if (widthPercent > heightPercent)
+ {
+ destWidth = orgWidth * heightPercent;
+ destHeight = restrictHeight;
+ }
+ else
+ {
+ destWidth = restrictWidth;
+ destHeight = restrictHeight;
+ }
+ }
+ else if (orgWidth > restrictWidth)
+ {
+ double widthPercent = (double) restrictWidth / orgWidth;
+ destWidth = restrictWidth;
+ destHeight = orgHeight * widthPercent;
+ }
+ else if (orgHeight > restrictHeight)
+ {
+ double heightPercent = (double) restrictHeight / orgHeight;
+ destWidth = orgWidth * heightPercent;
+ destHeight = restrictHeight;
+ }
+ else
+ {
+ r = pImage->EncodeToFile(*pBitmap, IMG_FORMAT_JPG, sourcPath, true);
+ delete pBitmap;
+ delete pImage;
+ AppLogDebug("EXIT: r= %s", GetErrorMessage(GetLastResult()));
+ return r;
+ }
+
+ if (pBitmap->Scale(Dimension(destWidth, destHeight)) == E_SUCCESS)
+ {
+ AppLogDebug("PATH = %S", sourcPath.GetPointer());
+ r = pImage->EncodeToFile(*pBitmap, IMG_FORMAT_JPG, sourcPath, true);
+ }
+ delete pBitmap;
+ }
+ delete pImage;
+
+ AppLogDebug("EXIT: r= %s", GetErrorMessage(GetLastResult()));
+ return r;
+}
+
+Object*
+MessageComposePanel::Run(void)
+{
+ AppLogDebug("ENTER");
+
+ MsgResponse status(MSG_RESPONSE_RESIZE_IMAGE);
+ // Copy To MMS compose temp file.
+ String mmsDataPath(App::GetInstance()->GetAppDataPath());
+ mmsDataPath.Append(File::GetFileName(__pSelectFilePath));
+ AppLogDebug("MMS DATA PATH: %S", mmsDataPath.GetPointer());
+ File::Copy(__pSelectFilePath, mmsDataPath, true);
+ __pSelectFilePath.Clear();
+ result r = E_SUCCESS;
+ if (!IsSutitableCreationMode(mmsDataPath))
+ {
+ r = ChangeResolution(mmsDataPath);
+ }
+ if (r == E_SUCCESS)
+ {
+ if ((GetFileSize(mmsDataPath) > __remainSizeBytes))
+ {
+ // Compress file file.
+ String compressDataPath(App::GetInstance()->GetAppDataPath());
+ compressDataPath.Append(IDS_COMPRESS + File::GetFileName(mmsDataPath));
+ AppLogDebug("Compress data PATH: %S", compressDataPath.GetPointer());
+ Image* pImage = new (std::nothrow) Image();
+ pImage->Construct();
+ r = pImage->CompressJpeg(mmsDataPath, compressDataPath, __remainSizeBytes);
+ if (r == E_SUCCESS)
+ {
+ __pSelectFilePath = compressDataPath;
+ }
+ else
+ {
+ // Remove intermediate temp file.
+ File::Remove(compressDataPath);
+ status = MSG_RESPONSE_FAIL;
+ }
+ delete pImage;
+ // Remove intermediate temp file.
+ File::Remove(mmsDataPath);
+ }
+ else
+ {
+ __pSelectFilePath = mmsDataPath;
+ }
+ }
+ else
+ {
+ // Remove intermediate temp file.
+ File::Remove(mmsDataPath);
+ status = MSG_RESPONSE_FAIL;
+ }
+ // Send event to main thread from worker thread.
+ ArrayList* pArgList = new ArrayList();
+ pArgList->Construct();
+ pArgList->Add((new Integer(status)));
+ RequestId requestId = REQUEST_IMAGE_RESIZE_RESPONSE;
+ SendUserEvent(requestId, pArgList);
+
+ AppLogDebug("EXIT: r= %s Status = %d", GetErrorMessage(GetLastResult()), status);
+ return null;
+}
+
+bool
+MessageComposePanel::IsSutitableCreationMode(const String& filePath) const
+{
+ AppLogDebug("ENTER");
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ //TODO: Need to check MMS settings
+ return false;
+}
+
+void
+MessageComposePanel::ProcessNextFileComposeQueue(void)
+{
+ AppLogDebug("ENTER");
+ while (__pSelectedFilesQueue && __pSelectedFilesQueue->GetCount() > 0)
+ {
+ String* pFileName = (String*) __pSelectedFilesQueue->GetAt(0);
+ if (InsertFileToPage(*pFileName) != MSG_RESPONSE_SUCCESS)
+ {
+ // Remove already process element.
+ __pSelectedFilesQueue->RemoveAt(0, true);
+ break;
+ }
+ // Remove already process element.
+ __pSelectedFilesQueue->RemoveAt(0, true);
+ }
+ if (__pSelectedFilesQueue && __pSelectedFilesQueue->GetCount() <= 0)
+ {
+ if (__pCompressProgressPopup)
+ {
+ delete __pCompressProgressPopup;
+ __pCompressProgressPopup = null;
+ }
+ delete __pSelectedFilesQueue;
+ __pSelectedFilesQueue = null;
+ SetFocusToEditor();
+ }
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+}
+
+void
+MessageComposePanel::LoadComposeData(const MessageComposeData& composeData)
+{
+ AppLogDebug("ENTER");
+ // In case of SMS, need to check MMS use case
+ if (composeData.IsMms())
+ {
+#ifndef _DISABLE_MMS_FEATURE_
+ // Load Subject
+ String subjectText = composeData.GetSubject();
+ if (subjectText.GetLength() > 0)
+ {
+ AddSubjectField(subjectText);
+ }
+ // Load attachement
+ const ArrayList* pAttachList = composeData.GetAttachList();
+ if (pAttachList)
+ {
+ for (int index = 0; index < pAttachList->GetCount(); index++)
+ {
+ String* pAttachFilePath = (String*) pAttachList->GetAt(index);
+ AddAttachementElement(*pAttachFilePath);
+ }
+ }
+ // Load page
+ const ArrayList* pPageList = composeData.GetPageList();
+ if (pPageList && pPageList->GetCount() > 0)
+ {
+ Panel* pImageTextSlidePanel = static_cast<Panel*>(__pScrollPanel->
+ GetControl(L"IDC_PANEL_IMAGE_TEXT"));
+ // For 1st draft compose element.
+ MmsPageData* pPageData = (MmsPageData*) pPageList->GetAt(0);
+ MediaTextExpandEditArea* pComposePage = (MediaTextExpandEditArea*)
+ pImageTextSlidePanel->GetControl(0);
+ pComposePage->SetText(pPageData->GetBodyText());
+ if (pPageData->IsImageExist())
+ {
+ pComposePage->SetMedia(pPageData->GetImagePath(), MEDIA_TYPE_IMAGE);
+ }
+ else if (pPageData->IsVideoExist())
+ {
+ pComposePage->SetMedia(pPageData->GetVideoPath(), MEDIA_TYPE_VIDEO);
+ }
+ if (pPageData->IsAudioExist())
+ {
+ pComposePage->SetMedia(pPageData->GetAudioPath(), MEDIA_TYPE_AUDIO);
+ }
+ // For 2nd page onwords.
+ for (int index = 1; index < pPageList->GetCount(); index++)
+ {
+ MmsPageData* pPageData = (MmsPageData*) pPageList->GetAt(index);
+ MediaTextExpandEditArea* pComposePage = CreatePage(pPageData->GetBodyText());
+ if (pComposePage && pPageData)
+ {
+ pComposePage->SetText(pPageData->GetBodyText());
+ if (pPageData->IsImageExist())
+ {
+ pComposePage->SetMedia(pPageData->GetImagePath(), MEDIA_TYPE_IMAGE);
+ }
+ else if (pPageData->IsVideoExist())
+ {
+ pComposePage->SetMedia(pPageData->GetVideoPath(), MEDIA_TYPE_VIDEO);
+ }
+
+ if (pPageData->IsAudioExist())
+ {
+ pComposePage->SetMedia(pPageData->GetAudioPath(), MEDIA_TYPE_AUDIO);
+ }
+ }
+ }
+ }
+ //__pSendMessage->SetEnabled(true);
+ GetParent()->SendUserEvent(REQUEST_ENABLE_DISABLE_SEND_BUTTON,null);
+#endif
+ }
+ else
+ {
+ Panel* pImageTextSlidePanel = static_cast<Panel*>(__pScrollPanel->
+ GetControl(L"IDC_PANEL_IMAGE_TEXT"));
+ MediaTextExpandEditArea* pComposeElement = (MediaTextExpandEditArea*)
+ pImageTextSlidePanel->GetControl(0);
+ pComposeElement->SetText(composeData.GetSmsBody());
+ if(composeData.GetSmsBody().GetLength() > 0)
+ {
+ //__pSendMessage->SetEnabled(true);
+ GetParent()->SendUserEvent(REQUEST_ENABLE_DISABLE_SEND_BUTTON,null);
+ }
+ else
+ {
+ __pSendMessage->SetEnabled(false);
+ }
+ }
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+}
+
+IList*
+MessageComposePanel::GetSelectedFileListN(const String& operationId, const IMap* pResultMap)
+{
+ AppLogDebug("ENTER");
+
+ ArrayList* pSelectedFileList = null;
+ String* pSelectedFiles = (String*) pResultMap->GetValue(String(IDS_VALUE_KEY));
+ if (pSelectedFiles)
+ {
+ pSelectedFileList = new (std::nothrow) ArrayList();
+ pSelectedFileList->Construct();
+ String delim(L";");
+ StringTokenizer strToken(*pSelectedFiles, delim);
+ String* pFilePath = new (std::nothrow) String();
+ int tokenCount = strToken.GetTokenCount();
+ if (tokenCount > 0)
+ {
+ for (int index = 0; index < tokenCount; index++)
+ {
+ strToken.GetNextToken(*pFilePath);
+ pSelectedFileList->Add(pFilePath);
+ }
+ }
+ else
+ {
+ pFilePath->Append(*pSelectedFiles);
+ pSelectedFileList->Add(pFilePath);
+ }
+ }
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return pSelectedFileList;
+}
+
+void
+MessageComposePanel::EnableSendButton(bool status)
+{
+ AppLogDebug("ENTER");
+
+ if(__pSendMessage)
+ {
+ __pSendMessage->SetEnabled(status);
+ Invalidate(true);
+ }
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+}
+
+
--- /dev/null
+//\r
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.\r
+//\r
+// Licensed under the Flora License, Version 1.0 (the License);\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+// http://floralicense.org/license/\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an AS IS BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+//\r
+\r
+#include <msg.h>\r
+\r
+#include "FApp.h"\r
+#include <FBaseColArrayList.h>\r
+#include <FBaseString.h>\r
+#include <FMedia.h>\r
+#include <time.h>\r
+\r
+#include "MsgMessageData.h"\r
+#include "MsgTypes.h"\r
+\r
+using namespace Tizen::App;\r
+using namespace Tizen::Base;\r
+using namespace Tizen::Base::Collection;\r
+using namespace Tizen::Graphics;\r
+using namespace Tizen::Io;\r
+using namespace Tizen::Media;\r
+\r
+const wchar_t* IDS_PREVIEW = L"Preview";\r
+const wchar_t* IDS_CHAR = L"r";\r
+\r
+MessageData::MessageData(void)\r
+ : __messageId(-1)\r
+ , __threadId(-1)\r
+ , __folderId(-1)\r
+ , __messageType(0)\r
+ , __displayTime(0)\r
+ , __networkStatus(-1)\r
+ , __isRead(true)\r
+ , __messageDirection(0)\r
+ , __pAddressList(null)\r
+ , __attachmentCount(0)\r
+ , __pThumbnailBitmap(null)\r
+ , __pAttachList(null)\r
+ , __pPageList(null)\r
+{\r
+ AppLogDebug("ENTER");\r
+ AppLogDebug("EXIT");\r
+}\r
+\r
+MessageData::~MessageData(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ if (__pAddressList)\r
+ {\r
+ __pAddressList->RemoveAll(true);\r
+ delete __pAddressList;\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
+\r
+result\r
+MessageData::Construct(msg_struct_t pMessageInfo, bool mmsDetailInfo)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ result r = E_SUCCESS;\r
+ if (!pMessageInfo)\r
+ {\r
+ r = E_FAILURE;\r
+ return r;\r
+ }\r
+ // message id\r
+ msg_error_t err = msg_get_int_value(pMessageInfo, MSG_MESSAGE_ID_INT, &__messageId);\r
+ if (err != MSG_SUCCESS)\r
+ {\r
+ AppLogDebug("EXIT:Unable to fetch message ID err = %d", (int) err);\r
+ r = E_FAILURE;\r
+ return r;\r
+ }\r
+ // message thread id\r
+ err = msg_get_int_value(pMessageInfo, MSG_MESSAGE_THREAD_ID_INT, &__threadId);\r
+ if (err != MSG_SUCCESS)\r
+ {\r
+ AppLogDebug("EXIT:Unable to fetch message thread ID err = %d", (int) err);\r
+ r = E_FAILURE;\r
+ return r;\r
+ }\r
+ err = msg_get_int_value(pMessageInfo, MSG_MESSAGE_FOLDER_ID_INT, &__folderId);\r
+ if (err != MSG_SUCCESS)\r
+ {\r
+ AppLogDebug("EXIT:Unable to fetch message folder ID err = %d", (int) err);\r
+ r = E_FAILURE;\r
+ return r;\r
+ }\r
+ // message Type\r
+ err = msg_get_int_value(pMessageInfo, MSG_MESSAGE_TYPE_INT, &__messageType);\r
+ if (err != MSG_SUCCESS)\r
+ {\r
+ AppLogDebug("EXIT:Unable to fetch message type err =%d", (int) err);\r
+ r = E_FAILURE;\r
+ return r;\r
+ }\r
+ if (__messageType == MSG_TYPE_MMS)\r
+ {\r
+ //Initialize MMS related data\r
+ InitMmsData(pMessageInfo, mmsDetailInfo);\r
+ }\r
+ err = msg_get_int_value(pMessageInfo, MSG_MESSAGE_DISPLAY_TIME_INT, &__displayTime);\r
+ if (err != MSG_SUCCESS)\r
+ {\r
+ AppLogDebug("EXIT:Unable to fetch message display time err =%d", (int) err);\r
+ r = E_FAILURE;\r
+ return r;\r
+ }\r
+ err = msg_get_int_value(pMessageInfo, MSG_MESSAGE_NETWORK_STATUS_INT, &__networkStatus);\r
+ if (err != MSG_SUCCESS)\r
+ {\r
+ AppLogDebug("EXIT:Unable to fetch network status err =%d", (int) err);\r
+ r = E_FAILURE;\r
+ return r;\r
+ }\r
+ err = msg_get_bool_value(pMessageInfo, MSG_MESSAGE_READ_BOOL, &__isRead);\r
+ if (err != MSG_SUCCESS)\r
+ {\r
+ AppLogDebug("EXIT:Unable to fetch read status err =%d", (int) err);\r
+ r = E_FAILURE;\r
+ return r;\r
+ }\r
+ err = msg_get_int_value(pMessageInfo, MSG_MESSAGE_DIRECTION_INT, &__messageDirection);\r
+ if (err != MSG_SUCCESS)\r
+ {\r
+ AppLogDebug("EXIT:Unable to fetch message direction err =%d", (int) err);\r
+ if ((__networkStatus == MSG_NETWORK_SENDING) ||\r
+ (__networkStatus == MSG_NETWORK_SEND_SUCCESS) ||\r
+ (__networkStatus == MSG_NETWORK_SEND_FAIL))\r
+ {\r
+ __messageDirection = MSG_DIRECTION_TYPE_MO;\r
+ }\r
+ else\r
+ {\r
+ __messageDirection = MSG_DIRECTION_TYPE_MT;\r
+ }\r
+ // return E_FAILURE;\r
+ }\r
+ InitAddrListDisplayName(pMessageInfo);\r
+ InitMessageBody(pMessageInfo);\r
+ InitTimeStampGroupName();\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(r));\r
+ return r;\r
+}\r
+\r
+result\r
+MessageData::Construct(MessageComposeData& compseData)\r
+{\r
+ AppLogDebug("ENTER");\r
+ result r = E_SUCCESS;\r
+ //Initialize message basic info.\r
+ __pAddressList = new (std::nothrow) ArrayList();\r
+ __pAddressList->Construct();\r
+ __displayName.Append(IDS_PREVIEW);\r
+ if (compseData.IsMms())\r
+ {\r
+ __messageType = MSG_TYPE_MMS;\r
+ __subjectStr.Append(compseData.GetSubject());\r
+ // Intialize page list\r
+ __pPageList = new (std::nothrow) ArrayList();\r
+ const ArrayList* pPageList = compseData.GetPageList();\r
+ if (pPageList)\r
+ {\r
+ __pPageList->Construct(*pPageList);\r
+ }\r
+ else\r
+ {\r
+ __pPageList->Construct();\r
+ }\r
+ }\r
+ else\r
+ {\r
+ __messageBody.Append(compseData.GetSmsBody());\r
+ __messageType = MSG_TYPE_SMS;\r
+ }\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return r;\r
+}\r
+\r
+BaseData*\r
+MessageData::CloneN(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+ MessageData* pMsgData = new (std::nothrow) MessageData();\r
+ if (pMsgData)\r
+ {\r
+ pMsgData->__messageId = this->__messageId;\r
+ pMsgData->__threadId = this->__threadId;\r
+ pMsgData->__messageType = this->__messageType;\r
+ pMsgData->__displayTime = this->__displayTime;\r
+ pMsgData->__networkStatus = this->__networkStatus;\r
+ pMsgData->__isRead = this->__isRead;\r
+ pMsgData->__messageDirection = this->__messageDirection;\r
+\r
+ pMsgData->__pAddressList = new (std::nothrow) ArrayList();\r
+ pMsgData->__pAddressList->Construct();\r
+ for (int index = 0; index < this->__pAddressList->GetCount(); index++)\r
+ {\r
+ AddressInfo* pNewAddressInfo = new (std::nothrow) AddressInfo();\r
+ AddressInfo* pAddressInfo = static_cast<AddressInfo*>(this->__pAddressList->GetAt(index));\r
+ pNewAddressInfo->displayName = pAddressInfo->displayName;\r
+ pNewAddressInfo->phoneNumber = pAddressInfo->phoneNumber;\r
+ pNewAddressInfo->needToValidate = pAddressInfo->needToValidate;\r
+ pMsgData->__pAddressList->Add(pNewAddressInfo);\r
+ }\r
+ pMsgData->__displayName = this->__displayName;\r
+ pMsgData->__messageBody = this->__messageBody;\r
+ pMsgData->__groupName = this->__groupName;\r
+ pMsgData->__timeStamp = this->__timeStamp;\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return pMsgData;\r
+}\r
+\r
+// Get message short description of given thread index.\r
+const String&\r
+MessageData::GetMessageText(void) const\r
+{\r
+ AppLogDebug("ENTER");\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return __messageBody;\r
+}\r
+\r
+// Get message type of given thread list index.\r
+int\r
+MessageData::GetMessageType(void) const\r
+{\r
+ AppLogDebug("ENTER");\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return __messageType;\r
+}\r
+\r
+int\r
+MessageData::GetEntryId(void) const\r
+{\r
+ AppLogDebug("ENTER");\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return __messageId;\r
+}\r
+\r
+// Fetch display name for a message entry.\r
+const String&\r
+MessageData::GetDisplayName(void) const\r
+{\r
+ AppLogDebug("ENTER");\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return __displayName;\r
+}\r
+\r
+// Fetch time stamp of given thread index.\r
+const String&\r
+MessageData::GetTimeStamp(void) const\r
+{\r
+ AppLogDebug("ENTER");\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return __timeStamp;\r
+}\r
+\r
+// Fetch time stamp of given thread index.\r
+const String&\r
+MessageData::GetGroupName(void) const\r
+{\r
+ AppLogDebug("ENTER");\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return __groupName;\r
+}\r
+\r
+int\r
+MessageData::GetUnreadCount(void) const\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ if (!__isRead && (__folderId != MSG_DRAFT_ID))\r
+ {\r
+ return 1;\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return 0;\r
+}\r
+\r
+bool\r
+MessageData::IsSent(void) const\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return (__messageDirection == MSG_DIRECTION_TYPE_MO);\r
+}\r
+\r
+DataType\r
+MessageData::GetDataType(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return DATA_TYPE_MESSAGE;\r
+}\r
+\r
+bool\r
+MessageData::IsUnRead(void) const\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return (!__isRead);\r
+}\r
+\r
+bool\r
+MessageData::IsSentFail(void) const\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ bool setFaild(false);\r
+ setFaild = (__networkStatus == MSG_NETWORK_SEND_FAIL);\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return setFaild;\r
+}\r
+\r
+bool\r
+MessageData::IsSending(void) const\r
+{\r
+ AppLogDebug("ENTER");\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return (__networkStatus == MSG_NETWORK_SENDING);\r
+}\r
+\r
+bool\r
+MessageData::IsMms(void) const\r
+{\r
+ AppLogDebug("ENTER");\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return (__messageType == MSG_TYPE_MMS);\r
+}\r
+\r
+result\r
+MessageData::InitAddrListDisplayName(msg_struct_t pMessageInfo)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ result r = E_SUCCESS;\r
+ msg_struct_list_s* pAddrList = NULL;\r
+ msg_error_t err = msg_get_list_handle(pMessageInfo, MSG_MESSAGE_ADDR_LIST_STRUCT, (void**) &pAddrList);\r
+ if ((err == MSG_SUCCESS) && (pAddrList->nCount > 0))\r
+ {\r
+ __pAddressList = new (std::nothrow) ArrayList();\r
+ __pAddressList->Construct();\r
+ char recipient[MAX_ADDRESS_VAL_LEN] = {0};\r
+ for (int count = 0; count < pAddrList->nCount; count++)\r
+ {\r
+ AddressInfo* pAddressInfo = new (std::nothrow) AddressInfo();\r
+ msg_get_str_value(pAddrList->msg_struct_info[count],\r
+ MSG_ADDRESS_INFO_ADDRESS_VALUE_STR, recipient, MAX_ADDRESS_VAL_LEN);\r
+ pAddressInfo->phoneNumber.Append(recipient);\r
+ msg_get_str_value(pAddrList->msg_struct_info[count],\r
+ MSG_ADDRESS_INFO_DISPLAYNAME_STR, recipient, MSG_THREAD_DISPLAY_LEN);\r
+ if ((int) strlen(recipient) > 0)\r
+ {\r
+ pAddressInfo->displayName.Append(recipient);\r
+ }\r
+ else\r
+ {\r
+ pAddressInfo->displayName.Append(pAddressInfo->phoneNumber);\r
+ }\r
+ pAddressInfo->needToValidate = false;\r
+ __pAddressList->Add(pAddressInfo);\r
+ }\r
+ AddressInfo* pAddressInfo = static_cast<AddressInfo*>(this->__pAddressList->GetAt(0));\r
+ __displayName = pAddressInfo->displayName;\r
+ }\r
+ else\r
+ {\r
+ // To prevent crash\r
+ __displayName.Append(IDS_BLANK_SPACE);\r
+ }\r
+ AppLogDebug("Fetching display name = [%S] err = [%d]", __displayName.GetPointer(), (int) err);\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return r;\r
+}\r
+\r
+result\r
+MessageData::InitMessageBody(msg_struct_t pMessageInfo)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ result r = E_SUCCESS;\r
+ char* pMsgText = new (std::nothrow) char[MAX_MSG_TEXT_LEN];\r
+ msg_error_t err = msg_get_str_value(pMessageInfo, MSG_MESSAGE_SMS_DATA_STR, pMsgText\r
+ , MAX_MSG_TEXT_LEN);\r
+ if (err == MSG_SUCCESS && pMsgText && (int) strlen(pMsgText) > 0)\r
+ {\r
+ __messageBody.Append(pMsgText);\r
+ }\r
+ else\r
+ {\r
+ // To prevent crash\r
+ __messageBody.Append(IDS_BLANK_SPACE);\r
+ }\r
+ AppLogDebug("Fetching message body = [%S] err = [%d]", __messageBody.GetPointer(), (int) err);\r
+ delete[] pMsgText;\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return r;\r
+}\r
+\r
+result\r
+MessageData::InitTimeStampGroupName(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ result r = E_SUCCESS;\r
+ time_t displayTime(__displayTime);\r
+ struct tm msgTimeInfo, currentTimeInfo;\r
+ // Fetch Message time.\r
+ localtime_r(&displayTime, &msgTimeInfo);\r
+ // Fetch current time.\r
+ time_t now;\r
+ time(&now);\r
+ localtime_r(&now, ¤tTimeInfo);\r
+\r
+ // Calculate time difference\r
+ int msgDay = (msgTimeInfo.tm_year - YEAR_1900) * DAYS_365 + msgTimeInfo.tm_yday\r
+ + (msgTimeInfo.tm_year - YEAR_1900 - 1) / LEAP_YEAR_GAP;\r
+\r
+ int curDay = (currentTimeInfo.tm_year - YEAR_1900) * DAYS_365 + currentTimeInfo.tm_yday\r
+ + (currentTimeInfo.tm_year - YEAR_1900 - 1) / LEAP_YEAR_GAP;\r
+\r
+ char timeStamp[MAX_DATE_LEN];\r
+ char groupName[MAX_DATE_LEN];\r
+ int dayDiff = curDay - msgDay;\r
+ if (dayDiff == 0)\r
+ {\r
+ __groupName.Append(L"Today");\r
+ strftime(groupName, (size_t) MAX_DATE_LEN, " (%a, %02d. %b.)", &msgTimeInfo);\r
+ __groupName.Append(groupName);\r
+ strftime(timeStamp, (size_t) MAX_DATE_LEN, "%I:%M %p", &msgTimeInfo);\r
+ }\r
+ else if (dayDiff == 1)\r
+ {\r
+\r
+ __groupName.Append(L"Yesterday");\r
+ strftime(groupName, (size_t) MAX_DATE_LEN, " (%a, %02d. %b.)", &msgTimeInfo);\r
+ __groupName.Append(groupName);\r
+ //strcpy(timeStamp, "Yesterday");\r
+ strftime(timeStamp, (size_t) MAX_DATE_LEN, "%I:%M %p", &msgTimeInfo);\r
+ }\r
+ else\r
+ {\r
+ //strftime(timeStamp, MAX_DATE_LEN, "%d-%m-%Y", &msgTimeInfo);\r
+ strftime(timeStamp, (size_t) MAX_DATE_LEN, "%I:%M %p", &msgTimeInfo);\r
+ strftime(groupName, (size_t) MAX_DATE_LEN, "%a, %02d %b", &msgTimeInfo);\r
+ __groupName.Append(groupName);\r
+ }\r
+ __timeStamp.Append(timeStamp);\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return r;\r
+}\r
+\r
+const int\r
+MessageData::GetDraftMessageCount(void) const\r
+{\r
+ AppLogDebug("ENTER");\r
+ if (__folderId == MSG_DRAFT_ID)\r
+ {\r
+ return 1;\r
+ }\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return 0;\r
+}\r
+\r
+const ArrayList*\r
+MessageData::GetAddressList(void) const\r
+{\r
+ AppLogDebug("ENTER");\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return __pAddressList;\r
+}\r
+\r
+Bitmap*\r
+MessageData::GetThumbnail(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+ if (!__pThumbnailBitmap && __thumbnailPath.GetLength() > 0)\r
+ {\r
+ Image* pImage = new (std::nothrow) Image();\r
+ pImage->Construct();\r
+ __pThumbnailBitmap = pImage->DecodeN(__thumbnailPath, BITMAP_PIXEL_FORMAT_ARGB8888,\r
+ 310, 204);\r
+ delete pImage;\r
+ }\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return __pThumbnailBitmap;\r
+}\r
+\r
+const String&\r
+MessageData::GetSubject(void) const\r
+{\r
+ AppLogDebug("ENTER");\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return __subjectStr;\r
+}\r
+\r
+int\r
+MessageData::GetAttachmentCount(void) const\r
+{\r
+ AppLogDebug("ENTER");\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return __attachmentCount;\r
+}\r
+\r
+const ArrayList*\r
+MessageData::GetAttachList(void) const\r
+{\r
+ AppLogDebug("ENTER");\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return __pAttachList;\r
+}\r
+\r
+int\r
+MessageData::GetPageCount(void) const\r
+{\r
+ AppLogDebug("ENTER");\r
+ if (__pPageList)\r
+ {\r
+ return __pPageList->GetCount();\r
+ }\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return 0;\r
+}\r
+\r
+const ArrayList*\r
+MessageData::GetPageList(void) const\r
+{\r
+ AppLogDebug("ENTER");\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return __pPageList;\r
+}\r
+\r
+int\r
+MessageData::GetThreadId(void) const\r
+{\r
+ AppLogDebug("ENTER");\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return __threadId;\r
+}\r
+\r
+result\r
+MessageData::InitMmsData(msg_struct_t pMessageInfo, bool mmsDetailInfo)\r
+{\r
+ AppLogDebug("ENTER");\r
+ result r = E_SUCCESS;\r
+\r
+ // Load Subject\r
+ char subjectText[MAX_SUBJECT_LEN + 1];\r
+ msg_error_t err = msg_get_str_value(pMessageInfo, MSG_MESSAGE_SUBJECT_STR, subjectText, MAX_SUBJECT_LEN);\r
+ if (err != MSG_SUCCESS)\r
+ {\r
+ AppLogDebug("EXIT:Unable to fetch subject err =%d", (int) err);\r
+ result r = E_FAILURE;\r
+ return r;\r
+ }\r
+ __subjectStr.Append(subjectText);\r
+ // Get attachement count\r
+ err = msg_get_int_value(pMessageInfo, MSG_MESSAGE_ATTACH_COUNT_INT, &__attachmentCount);\r
+ if (err != MSG_SUCCESS)\r
+ {\r
+ AppLogDebug("EXIT:Unable to fetch attachement count err =%d", (int) err);\r
+ r = E_FAILURE;\r
+ return r;\r
+ }\r
+ // Get default thumbnail path;\r
+ char thumbnailPath[MAX_IMAGE_PATH_LEN + 1];\r
+ err = msg_get_str_value(pMessageInfo, MSG_MESSAGE_THUMBNAIL_PATH_STR, thumbnailPath, MAX_IMAGE_PATH_LEN);\r
+ if (err != MSG_SUCCESS)\r
+ {\r
+ AppLogDebug("EXIT:Unable to fetch thumbnail path err =%d", (int) err);\r
+ r = E_FAILURE;\r
+ return r;\r
+ }\r
+ __thumbnailPath.Append(thumbnailPath);\r
+\r
+ if (mmsDetailInfo)\r
+ {\r
+ // Retrive MMS body in details\r
+ msg_struct_t pMmsBody = msg_create_struct(MSG_STRUCT_MMS);\r
+ if (!pMmsBody)\r
+ {\r
+ r = E_FAILURE;\r
+ return r;\r
+ }\r
+ err = msg_get_mms_struct(pMessageInfo, pMmsBody);\r
+ if (err != MSG_SUCCESS)\r
+ {\r
+ msg_release_struct(&pMmsBody);\r
+ AppLogDebug("EXIT:Unable to fetch MMS Data err =%d", (int) err);\r
+ r = E_FAILURE;\r
+ return r;\r
+ }\r
+ // Load region, as of now not require, because as per spec text is always coming up.\r
+ // Load attachment details.\r
+ msg_list_handle_t pAttachList = NULL;\r
+ msg_get_list_handle(pMmsBody, MSG_MMS_ATTACH_LIST_HND, (void**) &pAttachList);\r
+ __attachmentCount = msg_list_length(pAttachList);\r
+ if (__attachmentCount > 0)\r
+ {\r
+ __pAttachList = new (std::nothrow) ArrayList();\r
+ __pAttachList->Construct();\r
+ for (int count = 0; count < __attachmentCount; count++)\r
+ {\r
+ msg_struct_t pAttachInfo = (msg_struct_t) msg_list_nth_data(pAttachList, count);\r
+ if (!pAttachInfo)\r
+ {\r
+ AppLogDebug("[ERROR] attachment [%d]th item loading error ", count);\r
+ continue;\r
+ }\r
+ int fileType;\r
+ msg_get_int_value(pAttachInfo, MSG_MMS_ATTACH_MIME_TYPE_INT, &fileType);\r
+ char* pFilePath = new (std::nothrow) char[MSG_FILEPATH_LEN_MAX];\r
+ msg_get_str_value(pAttachInfo, MSG_MMS_ATTACH_FILEPATH_STR, pFilePath, MSG_FILEPATH_LEN_MAX);\r
+ __pAttachList->Add((new (std::nothrow) String(pFilePath)));\r
+ delete[] pFilePath;\r
+ }\r
+ }\r
+ // Load Page details\r
+ msg_list_handle_t pPageList = null;\r
+ msg_get_list_handle(pMmsBody, MSG_MMS_PAGE_LIST_HND, (void**) &pPageList);\r
+ int pageCount = msg_list_length(pPageList);\r
+ if (pageCount > 0)\r
+ {\r
+ __pPageList = new (std::nothrow) ArrayList();\r
+ __pPageList->Construct();\r
+ for (int pageIndex = 0; pageIndex < pageCount; pageIndex++)\r
+ {\r
+ msg_struct_t pPageInfo = msg_list_nth_data(pPageList, pageIndex);\r
+ if (!pPageInfo)\r
+ {\r
+ AppLogDebug("[ERROR] MMS PAGE [%d]th page loading error ", pageIndex);\r
+ continue;\r
+ }\r
+ MmsPageData* pPageData = new (std::nothrow) MmsPageData(IDS_BLANK);\r
+ // get page duration\r
+ int pPageDuration = 0;\r
+ msg_get_int_value(pPageInfo, MSG_MMS_PAGE_PAGE_DURATION_INT, &pPageDuration);\r
+ if (pPageDuration % 1000)\r
+ pPageDuration = pPageDuration / 1000 + 1;\r
+ else\r
+ pPageDuration = pPageDuration / 1000;\r
+ pPageData->setPageDuration(pPageDuration);\r
+ msg_list_handle_t pMediaList = null;\r
+ msg_get_list_handle(pPageInfo, MSG_MMS_PAGE_MEDIA_LIST_HND, (void**) &pMediaList);\r
+ int mediaCount = msg_list_length(pMediaList);\r
+ if (mediaCount > 0)\r
+ {\r
+ for (int mediaIndex = 0; mediaIndex < mediaCount; mediaIndex++)\r
+ {\r
+ msg_struct_t pMediaInfo = msg_list_nth_data(pMediaList, mediaIndex);\r
+ if (!pMediaInfo)\r
+ {\r
+ AppLogDebug("[ERROR] MMS PAGE [%d]th page loading error ", mediaIndex);\r
+ continue;\r
+ }\r
+ int mediaType;\r
+ msg_get_int_value(pMediaInfo, MSG_MMS_MEDIA_TYPE_INT, &mediaType);\r
+ if (mediaType == MMS_SMIL_MEDIA_IMG)\r
+ {\r
+ pPageData->SetImagePath(GetMediaPath(pMediaInfo));\r
+ }\r
+ else if ((mediaType == MMS_SMIL_MEDIA_VIDEO) ||\r
+ (mediaType == MMS_SMIL_MEDIA_IMG_OR_VIDEO))\r
+ {\r
+ pPageData->SetVideoPath(GetMediaPath(pMediaInfo));\r
+ }\r
+ else if (mediaType == MMS_SMIL_MEDIA_AUDIO)\r
+ {\r
+ pPageData->SetAudioPath(GetMediaPath(pMediaInfo));\r
+ }\r
+ else if (mediaType == MMS_SMIL_MEDIA_TEXT)\r
+ {\r
+ String pageBodyText;\r
+ char* pFilePath = new (std::nothrow) char[MSG_FILEPATH_LEN_MAX];\r
+ if (pFilePath)\r
+ {\r
+ msg_get_str_value(pMediaInfo, MSG_MMS_MEDIA_FILEPATH_STR, pFilePath, MSG_FILEPATH_LEN_MAX);\r
+ FileAttributes fileAttributes;\r
+ result r = File::GetAttributes(pFilePath, fileAttributes);\r
+ if (r != E_SUCCESS || fileAttributes.GetFileSize() <= 0)\r
+ {\r
+ delete[] pFilePath;\r
+ continue;\r
+ }\r
+ File file;\r
+ r = file.Construct(pFilePath, IDS_CHAR);\r
+ if (r != E_SUCCESS)\r
+ {\r
+ // Unable to open file.\r
+ delete[] pFilePath;\r
+ continue;\r
+ }\r
+ file.Read(pageBodyText);\r
+ delete[] pFilePath;\r
+ }\r
+ pPageData->SetBodyText(pageBodyText);\r
+ }\r
+ else\r
+ {\r
+ AppLogDebug("[ERROR] MMS PAGE [%d]th page invalid media ", mediaIndex);\r
+ }\r
+ }\r
+ }\r
+ if (__pPageList->Add(pPageData) != E_SUCCESS)\r
+ {\r
+ delete pPageData;\r
+ }\r
+ }\r
+ }\r
+ msg_release_struct(&pMmsBody);\r
+ }\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return r;\r
+}\r
+\r
+String\r
+MessageData::GetMediaPath(msg_struct_t pMediaInfo) const\r
+{\r
+ AppLogDebug("ENTER");\r
+ String mediaPath;\r
+ char* pFilePath = new (std::nothrow) char[MSG_FILEPATH_LEN_MAX];\r
+ msg_get_str_value(pMediaInfo, MSG_MMS_MEDIA_FILEPATH_STR, pFilePath, MSG_FILEPATH_LEN_MAX);\r
+ const char* pFilePth = const_cast<const char*>(pFilePath);\r
+ if (pFilePth)\r
+ {\r
+ mediaPath.Format((int) strlen(pFilePth) + 1, L"%s", pFilePth);\r
+ }\r
+ delete[] pFilePath;\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return mediaPath;\r
+}\r
--- /dev/null
+//\r
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.\r
+//\r
+// Licensed under the Flora License, Version 1.0 (the License);\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+// http://floralicense.org/license/\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an AS IS BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+//\r
+\r
+#include <cstdlib>\r
+#include <msg.h>\r
+\r
+#include <FBase.h>\r
+#include <FBaseErrorDefine.h>\r
+#include <FSocial.h>\r
+\r
+#include "MsgBaseData.h"\r
+#include "MsgMessagePresentationModel.h"\r
+#include "MsgSettingPresentationModel.h"\r
+#include "MsgMmsManager.h"\r
+#include "MsgSmsManager.h"\r
+#include "MsgSmsSendSettings.h"\r
+\r
+using namespace Tizen::Base;\r
+using namespace Tizen::Base::Collection;\r
+using namespace Tizen::Base::Runtime;\r
+using namespace Tizen::Base::Utility;\r
+using namespace Tizen::Social;\r
+\r
+MessagePresentationModel* MessagePresentationModel::__pInstance = null;\r
+\r
+MessagePresentationModel*\r
+MessagePresentationModel::GetInstance(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ if (__pInstance == null)\r
+ {\r
+ CreateInstance();\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return __pInstance;\r
+}\r
+\r
+MessagePresentationModel::MessagePresentationModel(void)\r
+ : __pActiveSearchNamesList(null)\r
+ , __pActiveSearchContactNumbersList(null)\r
+ , __pSmsManager(null)\r
+ , __pMmsManger(null)\r
+ , __pAddressbook(null)\r
+{\r
+ //Empty implementation\r
+}\r
+\r
+MessagePresentationModel::~MessagePresentationModel(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ if (__pActiveSearchNamesList)\r
+ {\r
+ __pActiveSearchNamesList->RemoveAll(true);\r
+ delete __pActiveSearchNamesList;\r
+ }\r
+\r
+ if (__pActiveSearchContactNumbersList)\r
+ {\r
+ __pActiveSearchContactNumbersList->RemoveAll(true);\r
+ delete __pActiveSearchContactNumbersList;\r
+ }\r
+\r
+ if (__pSmsManager)\r
+ {\r
+ delete __pSmsManager;\r
+ }\r
+ if (__pMmsManger)\r
+ {\r
+ delete __pMmsManger;\r
+ }\r
+\r
+ if (__pAddressbook)\r
+ {\r
+ delete __pAddressbook;\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
+\r
+result\r
+MessagePresentationModel::Construct(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ result r = E_SUCCESS;\r
+ r = BasePresentationModel::Construct();\r
+ if (r == E_SUCCESS)\r
+ {\r
+ __pActiveSearchNamesList = new (std::nothrow) ArrayList();\r
+ if (__pActiveSearchNamesList == null)\r
+ {\r
+ r = E_FAILURE;\r
+ return r;\r
+ }\r
+ __pActiveSearchNamesList->Construct();\r
+\r
+ __pActiveSearchContactNumbersList = new (std::nothrow) ArrayList();\r
+ if (__pActiveSearchContactNumbersList == null)\r
+ {\r
+ r = E_FAILURE;\r
+ return r;\r
+ }\r
+ __pActiveSearchContactNumbersList->Construct();\r
+\r
+ __pSmsManager = new (std::nothrow) SmsManager(__pMsgHandle);\r
+ if (__pSmsManager == null)\r
+ {\r
+ r = E_FAILURE;\r
+ return r;\r
+ }\r
+ __pSmsManager->Construct();\r
+ __pMmsManger = new (std::nothrow) MmsManager(__pMsgHandle);\r
+ if (__pMmsManger == null)\r
+ {\r
+ r = E_FAILURE;\r
+ return r;\r
+ }\r
+ __pMmsManger->Construct();\r
+ }\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(r));\r
+ return r;\r
+}\r
+\r
+void\r
+MessagePresentationModel::CreateInstance(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+ __pInstance = new (std::nothrow) MessagePresentationModel();\r
+ if (E_SUCCESS != __pInstance->Construct())\r
+ {\r
+ delete __pInstance;\r
+ __pInstance = null;\r
+ return;\r
+ }\r
+ // Destroy singletone instance application exit.\r
+ std::atexit(DestroyInstance);\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
+\r
+void\r
+MessagePresentationModel::DestroyInstance(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+ delete __pInstance;\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+\r
+}\r
+\r
+void\r
+MessagePresentationModel::SearchContact(const String& inputText)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ if (__pAddressbook == null)\r
+ {\r
+ __pAddressbook = AddressbookManager::GetInstance()->GetAddressbookN();\r
+ }\r
+ __pActiveSearchNamesList->RemoveAll(true);\r
+ __pActiveSearchContactNumbersList->RemoveAll(true);\r
+ //TODO: If there is any performance issue we need to do it through thread.\r
+ if (__pAddressbook)\r
+ {\r
+ IList* pSearchContactList = __pAddressbook->SearchContactsByNameN(inputText);\r
+ if (pSearchContactList)\r
+ {\r
+ UpdateSearchContactList(*pSearchContactList);\r
+ pSearchContactList->RemoveAll(true);\r
+ delete pSearchContactList;\r
+ }\r
+ //\r
+ if (inputText.GetLength() > 3)\r
+ {\r
+ pSearchContactList = __pAddressbook->SearchContactsByPhoneNumberN(inputText);\r
+ if (pSearchContactList)\r
+ {\r
+ UpdateSearchContactList(*pSearchContactList, inputText);\r
+ pSearchContactList->RemoveAll(true);\r
+ delete pSearchContactList;\r
+ }\r
+ }\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return;\r
+\r
+}\r
+\r
+void\r
+MessagePresentationModel::UpdateSearchContactList(const IList& searchResultList, const String& searchNumber)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ IEnumerator* pContactEnum = searchResultList.GetEnumeratorN();\r
+ if (pContactEnum)\r
+ {\r
+ String firstName;\r
+ String lastName;\r
+ String contactName;\r
+ Contact* pContact(null);\r
+ while (!IsFailed(pContactEnum->MoveNext()))\r
+ {\r
+ pContact = (Contact*) pContactEnum->GetCurrent();\r
+ pContact->GetValue(CONTACT_PROPERTY_ID_FIRST_NAME, firstName);\r
+ pContact->GetValue(CONTACT_PROPERTY_ID_LAST_NAME, lastName);\r
+ contactName.Clear();\r
+ contactName.Append(firstName);\r
+ contactName.Append(IDS_BLANK_SPACE);\r
+ contactName.Append(lastName);\r
+ IList* pPhoneNumberList = pContact->GetValuesN(CONTACT_MPROPERTY_ID_PHONE_NUMBERS);\r
+ if (pPhoneNumberList != null)\r
+ {\r
+ PhoneNumber* pPhoneNumber = null;\r
+ IEnumerator* pEnum = pPhoneNumberList->GetEnumeratorN();\r
+ if (pEnum)\r
+ {\r
+ while (E_SUCCESS == pEnum->MoveNext())\r
+ {\r
+ pPhoneNumber = (PhoneNumber*) pEnum->GetCurrent();\r
+ // Search by contact or search by number\r
+ if (searchNumber.IsEmpty() || (pPhoneNumber->GetPhoneNumber().StartsWith(searchNumber, 0)))\r
+ {\r
+ __pActiveSearchNamesList->Add((new String(contactName)));\r
+ __pActiveSearchContactNumbersList->Add((new String(pPhoneNumber->GetPhoneNumber())));\r
+ }\r
+ }\r
+ delete pEnum;\r
+ }\r
+ pPhoneNumberList->RemoveAll(true);\r
+ delete pPhoneNumberList;\r
+ }\r
+ }\r
+ delete pContactEnum;\r
+ }\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return;\r
+}\r
+\r
+int\r
+MessagePresentationModel::GetContactsCount(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ int count = 0;\r
+ count = __pActiveSearchNamesList->GetCount();\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return count;\r
+}\r
+\r
+\r
+String\r
+MessagePresentationModel::GetContactNameAt(int index)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ String contactName;\r
+ if (__pActiveSearchNamesList->GetCount() > 0)\r
+ {\r
+ String* pName = static_cast<String*>(__pActiveSearchNamesList->GetAt(index));\r
+ contactName = *pName;\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return contactName;\r
+}\r
+\r
+String\r
+MessagePresentationModel::GetContactNumberAt(int index)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ String contactNumber;\r
+ if (__pActiveSearchContactNumbersList->GetCount() > 0)\r
+ {\r
+ String* pNumber = static_cast<String*>(__pActiveSearchContactNumbersList->GetAt(index));\r
+ contactNumber.Append(*pNumber);\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return contactNumber;\r
+}\r
+\r
+MsgResponse\r
+MessagePresentationModel::SendMessage(const MessageComposeData& composeData, int threadId)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ MsgResponse response = MSG_RESPONSE_SUCCESS;\r
+ SettingPresentationModel* pSettingPrModel = SettingPresentationModel::GetInstance();\r
+ if (composeData.IsMms())\r
+ {\r
+ // Send MMS\r
+ response = __pMmsManger->SendMessage(composeData, threadId, pSettingPrModel->GetMmsSendSettings());\r
+ }\r
+ else\r
+ {\r
+ response = __pSmsManager->SendMessage(composeData.GetSmsBody(), threadId, pSettingPrModel->GetSmsSendSetting());\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return response;\r
+}\r
+\r
+MsgResponse\r
+MessagePresentationModel::SendMessage(const MessageComposeData& composeData, const IList& addressList,\r
+ int& threadId)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ MsgResponse response = MSG_RESPONSE_SUCCESS;\r
+ SettingPresentationModel* pSettingPrModel = SettingPresentationModel::GetInstance();\r
+ if (composeData.IsMms())\r
+ {\r
+ // Send MMS\r
+ response = __pMmsManger->SendMessage(composeData, addressList, threadId, pSettingPrModel->GetMmsSendSettings());\r
+ }\r
+ else\r
+ {\r
+ response = __pSmsManager->SendMessage(composeData.GetSmsBody(), addressList, threadId, pSettingPrModel->GetSmsSendSetting());\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return response;\r
+}\r
+\r
+MsgResponse\r
+MessagePresentationModel::SaveMessage(const MessageComposeData& composeData, int threadId)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ MsgResponse response = MSG_RESPONSE_SUCCESS;\r
+ if (composeData.IsMms())\r
+ {\r
+ // Save MMS\r
+ response = __pMmsManger->SaveMessage(composeData, threadId);\r
+ }\r
+ else\r
+ {\r
+ if (composeData.GetSmsBody().GetLength() > 0)\r
+ {\r
+ response = __pSmsManager->SaveMessage(composeData.GetSmsBody(), threadId);\r
+ }\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return response;\r
+}\r
+\r
+MsgResponse\r
+MessagePresentationModel::SaveMessage(const MessageComposeData& composeData, const IList& addressList)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ MsgResponse response = MSG_RESPONSE_SUCCESS;\r
+ if (composeData.IsMms())\r
+ {\r
+#ifndef _DISABLE_MMS_FEATURE_\r
+ // Save MMS\r
+ response = __pMmsManger->SaveMessage(composeData, addressList);\r
+#endif\r
+ }\r
+ else\r
+ {\r
+ response = __pSmsManager->SaveMessage(composeData.GetSmsBody(), addressList);\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return response;\r
+}\r
+\r
+MsgResponse\r
+MessagePresentationModel::ReSendMessage(int messageId, bool ismms)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ MsgResponse response = MSG_RESPONSE_SUCCESS;\r
+ if (ismms)\r
+ {\r
+#ifndef _DISABLE_MMS_FEATURE_\r
+ // Save MMS\r
+ response = __pMmsManger->ReSendMessage(messageId);\r
+#endif\r
+ }\r
+ else\r
+ {\r
+ response = __pSmsManager->ReSendMessage(messageId);\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return response;\r
+}\r
--- /dev/null
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+#include <FBaseUtilStringTokenizer.h>
+#include <FSocial.h>
+
+#include "MsgBaseData.h"
+#include "MsgComposerForm.h"
+#include "MsgCommonUtil.h"
+#include "MsgContactUtility.h"
+#include "MsgFacadeManager.h"
+#include "MsgMainFrame.h"
+#include "MsgMessagesApp.h"
+#include "MsgThreadPresentationModel.h"
+#include "MsgTypes.h"
+
+using namespace Tizen::App;
+using namespace Tizen::Base;
+using namespace Tizen::Base::Collection;
+using namespace Tizen::Base::Utility;
+using namespace Tizen::Social;
+using namespace Tizen::System;
+using namespace Tizen::Ui;
+using namespace Tizen::Ui::Controls;
+using namespace Tizen::Ui::Scenes;
+
+const wchar_t* COMPOSE_KEY_TYPE = L"type";
+const wchar_t* COMPOSE_KEY_TO = L"to";
+const wchar_t* COMPOSE_KEY_TEXT = L"text";
+const wchar_t* COMPOSE_KEY_SUBJECT = L"subject";
+const wchar_t* COMPOSE_KEY_IMAGE = L"attachImage";
+const wchar_t* COMPOSE_KEY_AUDIO = L"attachAudio";
+const wchar_t* COMPOSE_KEY_VIDEO = L"attachVideo";
+const wchar_t* COMPOSE_KEY_VCARD = L"attachVcard";
+const wchar_t* COMPOSE_KEY_VCALENDAR = L"attachVcalendar";
+const wchar_t* COMPOSE_MSG_TYPE_SMS = L"SMS";
+const wchar_t* COMPOSE_MSG_TYPE_MMS = L"MMS";
+const wchar_t* IDC_FRAME_NAME = L"Messages";
+
+
+MessagesApp::MessagesApp(void)
+ : __pClientAppRequestId(-1)
+ , __appCntlResult(APP_CTRL_RESULT_SUCCEEDED)
+ , __isApplicationRunning(false)
+ , __isAppRunningEmbededMode(false)
+ , __pFacadeManager(null)
+ , __pAddressBook(null)
+ , __initialScene(null)
+ , __pLaunchArgs(null)
+{
+ //empty implementation
+}
+
+MessagesApp::~MessagesApp(void)
+{
+ AppLogDebug("ENTER");
+ if (__pLaunchArgs)
+ {
+ __pLaunchArgs->RemoveAll(true);
+ delete __pLaunchArgs;
+ }
+ if (__pFacadeManager)
+ {
+ __pFacadeManager->Uninitialize();
+ delete __pFacadeManager;
+ }
+ if (__pAddressBook)
+ {
+ delete __pAddressBook;
+ }
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+}
+
+UiApp*
+MessagesApp::CreateInstance(void)
+{
+ AppLogDebug("ENTER");
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ // Create the instance through the constructor.
+ return new MessagesApp();
+}
+
+bool
+MessagesApp::OnAppInitializing(AppRegistry& appRegistry)
+{
+ AppLogDebug("ENTER");
+ __pFacadeManager = new (std::nothrow) FacadeManager();
+ result r = __pFacadeManager->Initialize();
+ if (!__pFacadeManager || r != E_SUCCESS)
+ {
+ AppLogDebug("Unable to initialize MsgFacadeManager");
+ return false;
+ }
+ AppControlProviderManager::GetInstance()->SetAppControlProviderEventListener(this);
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return true;
+}
+
+bool
+MessagesApp::OnAppInitialized(void)
+{
+ AppLogDebug("ENTER");
+
+ // Application not running so, initialize default scene
+ if (!__isApplicationRunning && __initialScene == null)
+ {
+ __initialScene = IDSCN_THREAD_LIST;
+ }
+ __isApplicationRunning = true;
+
+ // Create default application Frame
+ Frame* pMsgFrame = new (std::nothrow) MainFrame();
+ pMsgFrame->Construct();
+ pMsgFrame->SetName(IDC_FRAME_NAME);
+ AddFrame(*pMsgFrame); // Transfer ownership.
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return true;
+}
+
+bool
+MessagesApp::OnAppWillTerminate(void)
+{
+ // Call when app will terminate not gracefull way.
+ AppLogDebug("ENTER");
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return true;
+}
+
+bool
+MessagesApp::OnAppTerminating(AppRegistry& appRegistry,
+ bool forcedTermination)
+{
+ AppLogDebug("ENTER");
+
+ // Deallocate resources allocated by this App for termination.
+ // The App's permanent data and context can be saved via appRegistry.
+// result r = E_SUCCESS;
+ __pFacadeManager->Uninitialize();
+// if (r != E_SUCCESS)
+// {
+// AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+// }
+
+ if (__pFacadeManager)
+ {
+ delete __pFacadeManager;
+ __pFacadeManager = null;
+ }
+
+ //Set appcontrol complete result.
+ if (__isAppRunningEmbededMode)
+ {
+ AppControlProviderManager::GetInstance()->SendAppControlResult(__pClientAppRequestId, __appCntlResult, null);
+ }
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return true;
+}
+
+void
+MessagesApp::OnForeground(void)
+{
+ AppLogDebug("ENTER");
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+MessagesApp::OnBackground(void)
+{
+ AppLogDebug("ENTER");
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+MessagesApp::OnLowMemory(void)
+{
+ AppLogDebug("ENTER");
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+MessagesApp::OnBatteryLevelChanged(BatteryLevel batteryLevel)
+{
+ AppLogDebug("ENTER");
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+MessagesApp::OnScreenOn(void)
+{
+ AppLogDebug("ENTER");
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+MessagesApp::OnScreenOff(void)
+{
+ AppLogDebug("ENTER");
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+MessagesApp::OnAppControlRequestReceived(RequestId reqId, const String& operationId,
+ const String* pUriScheme, const String* pDataType, const IMap* pArgs)
+{
+ AppLogDebug("ENTER");
+ AppLogDebug("Messages:ReqId :%d ", (int) reqId);
+ AppLogDebug("Messages:OperationId :%S ", operationId.GetPointer());
+
+ __pClientAppRequestId = reqId;
+ // Message support only compose and setting app control. Setting not taking any data for launching
+ // through app control
+ ArrayList* pArgList = null;
+ if (pArgs)
+ {
+ AppLogDebug("Argument count: %d", pArgs->GetCount());
+ if (operationId.CompareTo(IDS_APPCONTROL_OPERATION_COMPOSE) == 0)
+ {
+ pArgList = new (std::nothrow) ArrayList();
+ pArgList->Construct();
+ MessageComposeData* pCompseData = new (std::nothrow) MessageComposeData(L"");
+ // Check Message Type
+ bool msgTypeMms(false);
+ const String typeKey(COMPOSE_KEY_TYPE);
+ const String* pMsgType = (String*) pArgs->GetValue(typeKey);
+ if (pMsgType)
+ {
+ msgTypeMms = (pMsgType->CompareTo(String(COMPOSE_MSG_TYPE_MMS)) == 0);
+ AppLogDebug("Key: %S Value: %S", typeKey.GetPointer(), pMsgType->GetPointer());
+ }
+ pCompseData->SetComposeMms(msgTypeMms);
+ // Check To field for SMS/MMS
+ const String toKey(COMPOSE_KEY_TO);
+ const String* pRecipients = (String*) pArgs->GetValue(toKey);
+ if (pRecipients)
+ {
+ UpdateRecipients(*pCompseData, *pRecipients);
+ AppLogDebug("Key: %S Value: %S", toKey.GetPointer(), pRecipients->GetPointer());
+ }
+ if (msgTypeMms)
+ {
+ //TODO: For MMS
+ }
+ else
+ {
+ // SMS Body text.
+ const String textKey(COMPOSE_KEY_TEXT);
+ const String* pSmsText = (String*) pArgs->GetValue(textKey);
+ // Body text exist
+ if (pSmsText)
+ {
+ pCompseData->SetSmsBody(*pSmsText);
+ AppLogDebug("Key: %S Value: %S", textKey.GetPointer(), pSmsText->GetPointer());
+ }
+ }
+ pArgList->Add(pCompseData);
+ }
+ }
+ // Handle From switching based on app control received.
+ HandleAppControlRequestReceived(operationId, pArgList);
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+MessagesApp::HandleAppControlRequestReceived(const String& operationId, IList* pArgsList)
+{
+ AppLogDebug("ENTER");
+
+ // previous instance ownership already transfered
+ __pLaunchArgs = null;
+ if (operationId.CompareTo(IDS_APPCONTROL_OPERATION_COMPOSE) == 0)
+ {
+ __pLaunchArgs = (ArrayList*) pArgsList;
+ pArgsList = null;
+ __pLaunchArgs->InsertAt((new (std::nothrow) Integer(COMPOSER_LAUNCH_APP_CONTROL)), 0);
+ __initialScene = IDSCN_COMPOSER;
+
+ SetAppEmbededMode(true);
+ }
+ else if (operationId.CompareTo(IDS_APPCONTROL_OPERATION_SETTINGS) == 0)
+ {
+ __initialScene = IDSCN_SETTINGS;
+ SetAppEmbededMode(true);
+ }
+ // App launch bring current scene.
+ if (__isApplicationRunning && __initialScene != null)
+ {
+ result r = E_FAILURE;
+ // In case of current view and target view same then scene transition will not work.
+ // so, need to refresh the view data
+ SceneManager* pSceneManager = SceneManager::GetInstance();
+ if (__pLaunchArgs && (__initialScene.CompareTo(pSceneManager->GetCurrentSceneId()) == 0))
+ {
+ Integer* launchType = (Integer*) __pLaunchArgs->GetAt(0);
+ if (launchType->ToInt() == COMPOSER_LAUNCH_APP_CONTROL)
+ {
+ Frame* pAppFrame = UiApp::GetInstance()->GetFrame(IDC_FRAME_NAME);
+ if (pAppFrame)
+ {
+ ComposerForm* pComposeForm = (ComposerForm*) pAppFrame->GetCurrentForm();
+ if (pComposeForm)
+ {
+ MessageComposeData* pComposedata = (MessageComposeData*) __pLaunchArgs->GetAt(1);
+ pComposeForm->LoadComposeData(*pComposedata);
+ }
+ }
+ }
+ }
+ else
+ {
+ r = pSceneManager->GoForward(ForwardSceneTransition(__initialScene, SCENE_TRANSITION_ANIMATION_TYPE_NONE),
+ __pLaunchArgs);
+ }
+ // Scene transition success
+ if (r == E_SUCCESS)
+ {
+ // Ownership transferr
+ __pLaunchArgs = null;
+ }
+ else
+ {
+ if (__pLaunchArgs)
+ {
+ __pLaunchArgs->RemoveAll(true);
+ delete __pLaunchArgs;
+ __pLaunchArgs = null;
+ }
+ }
+ }
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+IList*
+MessagesApp::GetLaunchArgumentsN(void)
+{
+ AppLogDebug("ENTER");
+ // Transfer ownership
+ IList* pLaunchArgs = __pLaunchArgs;
+ __pLaunchArgs = null;
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return pLaunchArgs;
+}
+
+void
+MessagesApp::ExitApp(AppCtrlResult result)
+{
+ AppLogDebug("ENTER");
+
+ __appCntlResult = result;
+
+ UiApp* pApp = UiApp::GetInstance();
+ AppAssert(pApp);
+ pApp->Terminate();
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+MessagesApp::UpdateRecipients(MessageComposeData& composeDta, const String& recipientsStr)
+{
+ AppLogDebug("ENTER");
+
+ String delim(L";");
+ // Create a StringTokenizer instance
+ StringTokenizer strToken(recipientsStr, delim);
+ String phoneNumber;
+ int tokenCount = strToken.GetTokenCount();
+ if (tokenCount > 0)
+ {
+ // Max 10 recipients can be added
+ for (int index = 0; index < tokenCount; index++)
+ {
+ strToken.GetNextToken(phoneNumber);
+ if (CommonUtil::IsValidPhoneNumber(phoneNumber))
+ {
+ // Create Recipient list
+ AddressInfo* pNewAddrInfo = new (std::nothrow) AddressInfo();
+ pNewAddrInfo->phoneNumber.Append(phoneNumber);
+ pNewAddrInfo->needToValidate = false;
+ // Get recipient name
+ GetRecipientName(*pNewAddrInfo, phoneNumber);
+ composeDta.AddRecipient(pNewAddrInfo);
+ }
+ else
+ {
+ AppLogDebug("invalid phone number");
+ }
+ }
+ }
+ else if (CommonUtil::IsValidPhoneNumber(recipientsStr))
+ {
+ // Create Recipient list
+ AddressInfo* pNewAddrInfo = new (std::nothrow) AddressInfo();
+ pNewAddrInfo->phoneNumber.Append(recipientsStr);
+ pNewAddrInfo->needToValidate = false;
+ // Get recipient name
+ GetRecipientName(*pNewAddrInfo,recipientsStr);
+ composeDta.AddRecipient(pNewAddrInfo);
+ }
+ else
+ {
+ AppLogDebug("invalid phone number");
+ }
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+MessagesApp::GetRecipientName(AddressInfo& addressInfo, const String& strPhoneNumber)
+{
+ AppLogDebug("ENTER");
+ if (!__pAddressBook)
+ {
+ __pAddressBook = AddressbookManager::GetInstance()->GetAddressbookN();
+ if (__pAddressBook)
+ {
+ __pAddressBook->SetEventListener(null);
+ }
+ }
+ if(__pAddressBook)
+ {
+ IList* pRecipientNameList = __pAddressBook->SearchContactsByPhoneNumberN(strPhoneNumber);
+ if (pRecipientNameList)
+ {
+ Contact* pRecipientContact = ContactUtility::GetContact(pRecipientNameList,strPhoneNumber);
+ if(pRecipientContact)
+ {
+ pRecipientContact->GetValue(CONTACT_PROPERTY_ID_FIRST_NAME, addressInfo.displayName);
+ }
+ pRecipientNameList->RemoveAll(true);
+ delete pRecipientNameList;
+ }
+ }
+ if(addressInfo.displayName.CompareTo(String(IDS_BLANK)) == 0)
+ {
+ addressInfo.displayName.Append(strPhoneNumber);
+ }
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
--- /dev/null
+//\r
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.\r
+//\r
+// Licensed under the Flora License, Version 1.0 (the License);\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+// http://floralicense.org/license/\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an AS IS BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+//\r
+\r
+#include "MsgMessagesApp.h"\r
+\r
+using namespace Tizen::App;\r
+using namespace Tizen::Base;\r
+using namespace Tizen::Base::Collection;\r
+\r
+#ifdef __cplusplus\r
+extern "C"\r
+{\r
+#endif // __cplusplus\r
+\r
+_EXPORT_ int OspMain(int argc, char* pArgv[]);\r
+\r
+int\r
+OspMain(int argc, char* pArgv[])\r
+{\r
+ AppLogDebug("ENTER");\r
+ result r = E_SUCCESS;\r
+\r
+ AppLog("Application started.");\r
+ ArrayList* pArgs = new ArrayList();\r
+ pArgs->Construct();\r
+ for (int i = 0; i < argc; i++)\r
+ {\r
+ pArgs->Add((new String(pArgv[i])));\r
+ }\r
+\r
+ r = UiApp::Execute(MessagesApp::CreateInstance, pArgs);\r
+ if (IsFailed(r))\r
+ {\r
+ AppLogException("Application execution failed-[%s].", GetErrorMessage(r));\r
+ r &= 0x0000FFFF;\r
+ }\r
+\r
+ pArgs->RemoveAll(true);\r
+ delete pArgs;\r
+ AppLog("Application finished.");\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+\r
+ return static_cast<int>(r);\r
+}\r
+#ifdef __cplusplus\r
+}\r
+#endif // __cplusplus\r
--- /dev/null
+//\r
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.\r
+//\r
+// Licensed under the Flora License, Version 1.0 (the License);\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+// http://floralicense.org/license/\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an AS IS BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+//\r
+\r
+#include <FApp.h>\r
+#include <FBase.h>\r
+#include <FMedia.h>\r
+#include <FSystem.h>\r
+#include <FUiCtrlFooter.h>\r
+#include <FUiCtrlHeader.h>\r
+#include <FUiScenesBackwardSceneTransition.h>\r
+#include <FUiScenesSceneManager.h>\r
+\r
+#include "MsgAttachListPanel.h"\r
+#include "MsgAttachmentSavePopup.h"\r
+#include "MsgBaseCustomPopup.h"\r
+#include "MsgBitmapUtility.h"\r
+#include "MsgContactUtility.h"\r
+#include "MsgCommonUtil.h"\r
+#include "MsgMessageData.h"\r
+#include "MsgMessagePresentationModel.h"\r
+#include "MsgSettingPresentationModel.h"\r
+#include "MsgMmsDetailForm.h"\r
+#include "MsgConversationPresentationModel.h"\r
+#include "MsgTypes.h"\r
+\r
+\r
+using namespace Tizen::Base;\r
+using namespace Tizen::Base::Collection;\r
+using namespace Tizen::Graphics;\r
+using namespace Tizen::Ui;\r
+using namespace Tizen::Ui::Controls;\r
+using namespace Tizen::Ui::Scenes;\r
+using namespace Tizen::App;\r
+using namespace Tizen::Media;\r
+using namespace Tizen::Base::Runtime;\r
+using namespace Tizen::System;\r
+\r
+const wchar_t* IDS_TIZEN_MEDIA = L"tizen.sound.media.volume";\r
+\r
+MmsDetailForm::MmsDetailForm(void)\r
+ : __pMessageData(null)\r
+ , __pMsgAttachListPanel(null)\r
+ , __pAttachFileArray(null)\r
+ , __pGallery(null)\r
+ , __pMmsTextBox(null)\r
+ , __pPlayControlPanel(null)\r
+ , __pPreviousButton(null)\r
+ , __pPlayPausebutton(null)\r
+ , __pNextbutton(null)\r
+ , __pProgress(null)\r
+ , __pTimeElapsedLabel(null)\r
+ , __pPageNumberLabel(null)\r
+ , __pAttachFilesInfoLabel(null)\r
+ , __pMessageDetailsPopup(null)\r
+ , __pDeletePopup(null)\r
+ , __pVolumePopup(null)\r
+ , __pBlockPopup(null)\r
+ , __pContextMenu(null)\r
+ , __pContextMenuText(null)\r
+ , __pMediaVolumeSlider(null)\r
+ , __pOverlay(null)\r
+ , __pPlayer(null)\r
+ , __pSaveAttachmentsPopup(null)\r
+ , __pPageDuration(null)\r
+ , __bIsPlaying(false)\r
+ , __totalDuration(0)\r
+ , __timeElapsed(0)\r
+ , __pageCountOfCurrentMessageData(0)\r
+ , __currentPage(0)\r
+ , __pTimer(null)\r
+ , __pTimerforVolumePopup(null)\r
+ , __pTimerForControlBar(null)\r
+ , __mmsFormType(MMS_FORM_NORMAL)\r
+{\r
+ //Empty implementation\r
+}\r
+\r
+MmsDetailForm::~MmsDetailForm(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+ if (__pTimerforVolumePopup)\r
+ {\r
+ __pTimerforVolumePopup->Cancel();\r
+ delete __pTimerforVolumePopup;\r
+ }\r
+ if (__pTimer)\r
+ {\r
+ __pTimer->Cancel();\r
+ delete __pTimer;\r
+ }\r
+ if (__pTimerForControlBar)\r
+ {\r
+ __pTimerForControlBar->Cancel();\r
+ delete __pTimerForControlBar;\r
+ }\r
+ if (__pSaveAttachmentsPopup)\r
+ {\r
+ delete __pSaveAttachmentsPopup;\r
+ }\r
+ if (__pMessageData)\r
+ {\r
+ delete __pMessageData;\r
+ }\r
+ if (__pPageDuration)\r
+ {\r
+ delete[] __pPageDuration;\r
+ __pPageDuration = null;\r
+ }\r
+ if (__pVolumePopup)\r
+ {\r
+ delete __pVolumePopup;\r
+ }\r
+ if (__pContextMenu)\r
+ {\r
+ delete __pContextMenu;\r
+ }\r
+ if (__pBlockPopup)\r
+ {\r
+ delete __pBlockPopup;\r
+ }\r
+ if (__pMessageDetailsPopup)\r
+ {\r
+ delete __pMessageDetailsPopup;\r
+ }\r
+ if (__pPlayer)\r
+ {\r
+ delete __pPlayer;\r
+ }\r
+ if (__pOverlay)\r
+ {\r
+ delete __pOverlay;\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
+\r
+bool\r
+MmsDetailForm::Initialize(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ Construct(L"IDL_MMS_DETAIL_FORM");\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return true;\r
+}\r
+\r
+void\r
+MmsDetailForm::OnIntializeFooter(Footer& footer)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ // Set event listener\r
+ footer.AddActionEventListener(*this);\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
+\r
+void\r
+MmsDetailForm::SetFooter(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+ Footer* pFooter = GetFooter();\r
+ if (pFooter)\r
+ {\r
+ pFooter->RemoveAllButtons();\r
+ pFooter->RemoveAllItems();\r
+ if (__mmsFormType == MMS_FORM_NORMAL)\r
+ {\r
+ FooterItem saveButton;\r
+ saveButton.Construct(IDA_SAVE_ATTACHMENT);\r
+ Bitmap* pIconBitmap = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_SAVE_ATTACHMENT);\r
+ if (pIconBitmap)\r
+ {\r
+ saveButton.SetIcon(FOOTER_ITEM_STATUS_NORMAL, pIconBitmap);\r
+ }\r
+ pFooter->AddItem(saveButton);\r
+ FooterItem deleteBtn;\r
+ deleteBtn.Construct(IDA_DELETE_MESSAGE);\r
+ pIconBitmap = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_DELETE);\r
+ if (pIconBitmap)\r
+ {\r
+ deleteBtn.SetIcon(FOOTER_ITEM_STATUS_NORMAL, pIconBitmap);\r
+ }\r
+ pFooter->AddItem(deleteBtn);\r
+ //Set Resend/Reply button on footer\r
+ if (__pMessageData && __pMessageData->IsSentFail())\r
+ {\r
+ FooterItem resendButton;\r
+ resendButton.Construct(IDA_RESEND_MESSAGE);\r
+ pIconBitmap = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_RESEND);\r
+ if (pIconBitmap)\r
+ {\r
+ resendButton.SetIcon(FOOTER_ITEM_STATUS_NORMAL, pIconBitmap);\r
+ }\r
+ pFooter->AddItem(resendButton);\r
+ }\r
+ else\r
+ {\r
+ FooterItem replyButton;\r
+ replyButton.Construct(IDA_REPLY_MESSAGE);\r
+ pIconBitmap = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_REPLY);\r
+ if (pIconBitmap)\r
+ {\r
+ replyButton.SetIcon(FOOTER_ITEM_STATUS_NORMAL, pIconBitmap);\r
+ }\r
+ pFooter->AddItem(replyButton);\r
+ }\r
+ FooterItem moreButton;\r
+ moreButton.Construct(IDA_MORE);\r
+ pIconBitmap = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_MORE);\r
+ if (pIconBitmap)\r
+ {\r
+ moreButton.SetIcon(FOOTER_ITEM_STATUS_NORMAL, pIconBitmap);\r
+ }\r
+ pFooter->AddItem(moreButton);\r
+ }\r
+ pFooter->SetBackButton();\r
+ }\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
+\r
+void\r
+MmsDetailForm::OnIntializeHeader(Header& header)\r
+{\r
+ AppLogDebug("ENTER");\r
+ // Set event listener\r
+ header.SetStyle(HEADER_STYLE_SEGMENTED);\r
+ header.AddActionEventListener(*this);\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
+\r
+void\r
+MmsDetailForm::OnUserEventReceivedN(RequestId requestId, IList* pArgs)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ switch (requestId)\r
+ {\r
+ case REQUEST_DESTROY_SAVE_ATTACHMENT_POPUP:\r
+ {\r
+ if (__pSaveAttachmentsPopup)\r
+ {\r
+ delete __pSaveAttachmentsPopup;\r
+ __pSaveAttachmentsPopup = null;\r
+ }\r
+ }\r
+ break;\r
+ }\r
+\r
+ // Release resource\r
+ if (pArgs)\r
+ {\r
+ pArgs->RemoveAll(true);\r
+ delete pArgs;\r
+ }\r
+ AppLogDebug("EXIT: r= %s", GetErrorMessage(GetLastResult()));\r
+ return;\r
+\r
+}\r
+\r
+result\r
+MmsDetailForm::OnInitializing(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ result r = E_SUCCESS;\r
+ Font font;\r
+ r = BaseForm::InitializeBase();\r
+ __pGallery = static_cast<Gallery*>(GetControl(L"IDC_GALLERY_MMS_IMAGE"));\r
+ __pGallery->SetShowState(false);\r
+ __pGallery->AddTouchEventListener(*this);\r
+ __pAttachFilesInfoLabel = static_cast<Label*>(GetControl(L"IDC_ATTACH_FILES_INFO_LABEL"));\r
+ __pAttachFilesInfoLabel->SetShowState(false);\r
+ __pAttachFilesInfoLabel->SetBackgroundColor(GetBackgroundColor());\r
+ __pMmsTextBox = static_cast<TextBox*>(GetControl(L"IDC_MMS_TEXT"));\r
+ if (__pMmsTextBox)\r
+ {\r
+ __pMmsTextBox->SetColor(TEXT_BOX_STATUS_NORMAL, GetBackgroundColor());\r
+ __pMmsTextBox->SetColor(TEXT_BOX_STATUS_HIGHLIGHTED, GetBackgroundColor());\r
+ __pMmsTextBox->SetColor(TEXT_BOX_STATUS_DISABLED, GetBackgroundColor());\r
+ //TODO: If touchevent lsitener is added scroll do not work.\r
+// __pMmsTextBox->AddTouchEventListener(*this);\r
+ __pMmsTextBox->SetShowState(true);\r
+ }\r
+\r
+ __pPlayControlPanel = static_cast<Panel*>(GetControl(L"IDC_PLAY_CONTROLS_PANEL"));\r
+ if (__pPlayControlPanel)\r
+ {\r
+ //__pPlayControlPanel->SetShowState(false);\r
+ __pPlayControlPanel->SetBackgroundColor(COLOR_PANEL_BORDER);\r
+ Button* pVolumeButton = static_cast<Button*>(__pPlayControlPanel->GetControl(L"IDC_VOLUME_BUTTON"));\r
+ if (pVolumeButton)\r
+ {\r
+ pVolumeButton->SetActionId(IDA_VOLUME);\r
+ pVolumeButton->AddActionEventListener(*this);\r
+ pVolumeButton->SetSize(W_PLAYCONTROL_BUTTON, H_PLAYCONTROL_BUTTON);\r
+\r
+ }\r
+ __pPreviousButton = static_cast<Button*>(__pPlayControlPanel->GetControl(L"IDC_PREVIOUS_BUTTON"));\r
+ if (__pPreviousButton)\r
+ {\r
+ __pPreviousButton->SetActionId(IDA_PREVIOUS);\r
+ __pPreviousButton->AddActionEventListener(*this);\r
+ __pPreviousButton->SetSize(W_PLAYCONTROL_BUTTON, H_PLAYCONTROL_BUTTON);\r
+\r
+ }\r
+ __pPlayPausebutton = static_cast<Button*>(__pPlayControlPanel->GetControl(L"IDC_PLAY_PAUSE_BUTTON"));\r
+ if (__pPlayPausebutton)\r
+ {\r
+ __pPlayPausebutton->SetActionId(IDA_PLAY);\r
+ __pPlayPausebutton->AddActionEventListener(*this);\r
+ __pPlayPausebutton->SetSize(W_PLAYCONTROL_BUTTON, H_PLAYCONTROL_BUTTON);\r
+ Bitmap* pBitMap = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_SMIL_PLAY);\r
+ if (pBitMap)\r
+ {\r
+ pBitMap->Scale(Dimension(W_PLAYCONTROL_BUTTON, H_PLAYCONTROL_BUTTON));\r
+ }\r
+ __pPlayPausebutton->SetNormalBitmap(Point(0, 0), *pBitMap);\r
+ }\r
+ __pNextbutton = static_cast<Button*>(__pPlayControlPanel->GetControl(L"IDC_NEXT_BUTTON"));\r
+ if (__pNextbutton)\r
+ {\r
+ __pNextbutton->SetActionId(IDA_NEXT);\r
+ __pNextbutton->AddActionEventListener(*this);\r
+ __pNextbutton->SetSize(W_PLAYCONTROL_BUTTON, H_PLAYCONTROL_BUTTON);\r
+\r
+ }\r
+ __pProgress = static_cast<Progress*>(__pPlayControlPanel->GetControl(L"IDC_PROGRESS"));\r
+ if (__pProgress)\r
+ {\r
+ __pProgress->SetSize(482, 17);\r
+ __pProgress->SetValue(0);\r
+ }\r
+ __pTimeElapsedLabel = static_cast<Label*>(__pPlayControlPanel->GetControl(L"IDC_TIME_ELAPSED_LABEL"));\r
+ }\r
+ __pPageNumberLabel = static_cast<Label*>(GetControl(L"IDC_PAGE_NUMBER_LABEL"));\r
+ if (__pPageNumberLabel)\r
+ {\r
+ __pPageNumberLabel->SetTextHorizontalAlignment(ALIGNMENT_RIGHT);\r
+ __pPageNumberLabel->SetTextVerticalAlignment(ALIGNMENT_MIDDLE);\r
+ __pPageNumberLabel->SetBackgroundColor(COLOR_BUBBLE_BG);\r
+ __pPageNumberLabel->AddTouchEventListener(*this);\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return r;\r
+}\r
+\r
+result\r
+MmsDetailForm::OnTerminating(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ result r = E_SUCCESS;\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return r;\r
+}\r
+\r
+void\r
+MmsDetailForm::OnSceneActivatedN(const SceneId& previousSceneId,\r
+ const SceneId& currentSceneId, IList* pArgs)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ if (__previousSceneId.IsEmpty())\r
+ {\r
+ __previousSceneId.Append(previousSceneId);\r
+ }\r
+ if (pArgs && pArgs->GetCount() > 0)\r
+ {\r
+ // MMS form mode\r
+ __mmsFormType = (MmsFormType) ((Integer*) pArgs->GetAt(0))->ToInt();\r
+ if (__mmsFormType == MMS_FORM_PREVIEW)\r
+ {\r
+ __pMessageData = (MessageData*) pArgs->GetAt(1);\r
+ }\r
+ else\r
+ {\r
+ Integer* pMessageId = (Integer*) pArgs->GetAt(1);\r
+ if (pMessageId->ToInt() > 0)\r
+ {\r
+ MessagePresentationModel* pMsgPrModel = MessagePresentationModel::GetInstance();\r
+ if (pMsgPrModel)\r
+ {\r
+ __pMessageData = pMsgPrModel->GetMessageDataByIdN(pMessageId->ToInt());\r
+ }\r
+ }\r
+ }\r
+ delete pArgs;\r
+ }\r
+ SetFooter();\r
+ // Load data to UI from message data\r
+ if (__pMessageData)\r
+ {\r
+ // Set title\r
+ HeaderItem headerLeftItem;\r
+ headerLeftItem.Construct(IDA_MMSDETAIL_FORM_HEADER_TITLEITEM);\r
+ headerLeftItem.SetText(__pMessageData->GetDisplayName());\r
+ GetHeader()->AddItem(headerLeftItem);\r
+ // GetHeader()->SetTitleText(__pMessageData->GetDisplayName());\r
+ ArrayList* pAttachList = const_cast<ArrayList*>(__pMessageData->GetPageList());\r
+ //Get Page count\r
+ __pageCountOfCurrentMessageData = __pMessageData->GetPageCount();\r
+ __pPageDuration = new int[__pageCountOfCurrentMessageData];\r
+\r
+ for (int i = 0; i < __pageCountOfCurrentMessageData; i++)\r
+ {\r
+ MmsPageData* pPageData = static_cast<MmsPageData*>(pAttachList->GetAt(i));\r
+ if (pPageData)\r
+ {\r
+ const String mmsBodyText = pPageData->GetBodyText();\r
+ if (__pMmsTextBox && !i)\r
+ {\r
+ __pMmsTextBox->SetText(mmsBodyText);\r
+ }\r
+ __totalDuration = __totalDuration + pPageData->GetPageDuration();\r
+ __pPageDuration[i] = pPageData->GetPageDuration();\r
+ }\r
+ }\r
+ if (__pMessageData->GetAttachmentCount())\r
+ {\r
+ __totalDuration = __totalDuration + 5;\r
+ __pageCountOfCurrentMessageData++;\r
+ }\r
+ //For slide having only subject\r
+ if (!__pageCountOfCurrentMessageData && !__totalDuration)\r
+ {\r
+ __pageCountOfCurrentMessageData = 1;\r
+ __totalDuration = 5;\r
+ }\r
+ if (__pageCountOfCurrentMessageData < 2)\r
+ {\r
+ __pNextbutton->SetEnabled(false);\r
+ }\r
+ if (__pProgress)\r
+ {\r
+ __pProgress->SetRange(0, __totalDuration);\r
+ }\r
+ Label* pTotalTimeDuratonLabel = static_cast<Label*>(__pPlayControlPanel->GetControl(L"IDC_TOTAL_TIME_DURATION_LABEL"));\r
+ if (pTotalTimeDuratonLabel)\r
+ {\r
+ String strTotaltime(L"00:");\r
+ if (__totalDuration < 9)\r
+ {\r
+ strTotaltime = (L"00:0");\r
+ }\r
+ strTotaltime.Append(__totalDuration);\r
+ pTotalTimeDuratonLabel->SetText(strTotaltime);\r
+ }\r
+ if (__pPageNumberLabel)\r
+ {\r
+ String slideNumber(L"1/");\r
+ slideNumber.Append(__pageCountOfCurrentMessageData);\r
+\r
+ __pPageNumberLabel->SetText(slideNumber);\r
+ }\r
+ Label* pSubjectLabel = static_cast<Label*>(GetControl(L"IDC_LABEL_SUBJECT"));\r
+ if (pSubjectLabel)\r
+ {\r
+ pSubjectLabel->SetBackgroundColor(COLOR_BUBBLE_BG);\r
+ pSubjectLabel->SetText(__pMessageData->GetSubject());\r
+ pSubjectLabel->AddTouchEventListener(*this);\r
+ }\r
+ __pPreviousButton->SetEnabled(false);\r
+ }\r
+ UpdateForm(GetSlideType(__currentPage));\r
+ StartSlideShow();\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return;\r
+}\r
+\r
+void\r
+MmsDetailForm::OnSceneDeactivated(const SceneId& currentSceneId,\r
+ const SceneId& nextSceneId)\r
+{\r
+ AppLogDebug("ENTER");\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return;\r
+}\r
+\r
+void\r
+MmsDetailForm::OnOrientationChanged(const Control& source, OrientationStatus orientationStatus)\r
+{\r
+ AppLogDebug("ENTER");\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return;\r
+}\r
+\r
+void\r
+MmsDetailForm::OnActionPerformed(const Control& source, int actionId)\r
+{\r
+ AppLogDebug("ENTER");\r
+ switch (actionId)\r
+ {\r
+ case IDA_VOLUME:\r
+ {\r
+ ShowVolumePopup();\r
+ }\r
+ break;\r
+\r
+ case IDA_PLAY:\r
+ {\r
+ if (!__bIsPlaying)\r
+ {\r
+ if (__timeElapsed == __totalDuration)\r
+ {\r
+ __timeElapsed = 0;\r
+ __currentPage = 0;\r
+ if (__pageCountOfCurrentMessageData > 1)\r
+ {\r
+ __pNextbutton->SetEnabled(true);\r
+ }\r
+ if (__pProgress)\r
+ {\r
+ __pProgress->SetValue(__timeElapsed);\r
+ __pProgress->RequestRedraw(true);\r
+ }\r
+ UpdateForm(GetSlideType(__currentPage));\r
+ UpdateMmsBodyText();\r
+ StartSlideShow();\r
+ }\r
+ else\r
+ {\r
+ __bIsPlaying = true;\r
+ PlaySlideShow();\r
+ }\r
+ }\r
+ else\r
+ {\r
+ __bIsPlaying = false;\r
+ PauseSlideShow();\r
+ }\r
+ }\r
+ break;\r
+\r
+ case IDA_NEXT:\r
+ {\r
+ __pTimer->Cancel();\r
+ if (GetSlideType(__currentPage) == VideoSlide)\r
+ {\r
+ __pPlayer->Stop();\r
+ __pPlayer->Close();\r
+ }\r
+ int timeToRefreshGallery = GetTimeToChangeslide(__currentPage + 2);\r
+ if (__pProgress)\r
+ {\r
+ __pProgress->SetValue(timeToRefreshGallery);\r
+ __pProgress->RequestRedraw(true);\r
+ }\r
+ __timeElapsed = timeToRefreshGallery;\r
+ __currentPage++;\r
+ UpdateForm(GetSlideType(__currentPage));\r
+ UpdateMmsBodyText();\r
+ UpdateTimeElapsedLabel(__timeElapsed);\r
+ UpdateSlideNumber(__currentPage + 1);\r
+ if (__pPreviousButton)\r
+ {\r
+ __pPreviousButton->SetEnabled(true);\r
+ }\r
+ if (__currentPage + 1 == __pageCountOfCurrentMessageData)\r
+ {\r
+ __pNextbutton->SetEnabled(false);\r
+ }\r
+ __pTimer->StartAsRepeatable(1000);\r
+ }\r
+ break;\r
+\r
+ case IDA_PREVIOUS:\r
+ {\r
+ __pTimer->Cancel();\r
+ if (GetSlideType(__currentPage) == VideoSlide)\r
+ {\r
+ __pPlayer->Stop();\r
+ __pPlayer->Close();\r
+ }\r
+ int timeToRefreshGallery = GetTimeToChangeslide(__currentPage);\r
+ if (__pProgress)\r
+ {\r
+ __pProgress->SetValue(timeToRefreshGallery);\r
+ __pProgress->RequestRedraw(true);\r
+ }\r
+ __timeElapsed = timeToRefreshGallery;\r
+ __currentPage--;\r
+ UpdateForm(GetSlideType(__currentPage));\r
+ UpdateMmsBodyText();\r
+ UpdateTimeElapsedLabel(__timeElapsed);\r
+ UpdateSlideNumber(__currentPage + 1);\r
+ if (!__currentPage)\r
+ {\r
+ __pPreviousButton->SetEnabled(false);\r
+ }\r
+ if (__pNextbutton)\r
+ {\r
+ __pNextbutton->SetEnabled(true);\r
+ }\r
+ __pTimer->StartAsRepeatable(1000);\r
+ }\r
+ break;\r
+\r
+ case IDA_DELETE_MESSAGE:\r
+ {\r
+ ShowDeletePopup();\r
+ }\r
+ break;\r
+\r
+ case IDA_MORE:\r
+ {\r
+ ShowMoreContextMenu();\r
+ }\r
+ break;\r
+\r
+ case IDA_SAVE_ATTACHMENT:\r
+ {\r
+ MessagePresentationModel* pMsgPrModel = MessagePresentationModel::GetInstance();\r
+ if (pMsgPrModel)\r
+ {\r
+ // Transfer ownership to popup\r
+ MessageData* pMessageData = pMsgPrModel->GetMessageDataByIdN(__pMessageData->GetEntryId());\r
+ if (pMessageData)\r
+ {\r
+ __pSaveAttachmentsPopup = new (std::nothrow) AttachementSavePopup(*this, pMessageData);\r
+ //pMessageData = null; // Transfer ownership\r
+ __pSaveAttachmentsPopup->Construct();\r
+ __pSaveAttachmentsPopup->Show();\r
+ }\r
+ }\r
+ }\r
+ break;\r
+\r
+ case IDA_OK_DELETE:\r
+ {\r
+ __pDeletePopup->SetShowState(false);\r
+ delete __pDeletePopup;\r
+ __pDeletePopup = null;\r
+\r
+ ConversationPresentationModel* pConvPrModel = ConversationPresentationModel::GetInstance();\r
+ if (pConvPrModel)\r
+ {\r
+ pConvPrModel->Delete(__pMessageData->GetEntryId(), REQUEST_DELETE_MESSAGE);\r
+ OnFormBackRequested(*this);\r
+ }\r
+ }\r
+ break;\r
+\r
+ case IDA_CANCEL_DELETE:\r
+ {\r
+ __pDeletePopup->SetShowState(false);\r
+ delete __pDeletePopup;\r
+ __pDeletePopup = null;\r
+ }\r
+ break;\r
+\r
+ case IDA_MMSDETAIL_FORM_HEADER_TITLEITEM:\r
+ {\r
+ __pTimer->Cancel();\r
+ __bIsPlaying = false;\r
+ UpdatePlayButton();\r
+ String strText;\r
+ int index = -1;\r
+ if (__pContextMenuText)\r
+ {\r
+ delete __pContextMenuText;\r
+ __pContextMenuText = null;\r
+ }\r
+ __pContextMenuText = new (std::nothrow) ContextMenu();\r
+ __pContextMenuText->Construct(Point(source.GetX() + source.GetWidth() / 2, source.GetY() + source.GetHeight()),\r
+ CONTEXT_MENU_STYLE_GRID);\r
+\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_COM_BODY_VOICE_CALL", strText);\r
+ __pContextMenuText->AddItem(strText, IDA_CONVERSATION_FORM_VOICE_CALL);\r
+\r
+ if (__pMessageData->GetDisplayName().CompareTo(IDS_UNKNOWN) == 0)\r
+ {\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_COM_OPT_ADD_CONTACT", strText);\r
+ __pContextMenuText->AddItem(strText, IDA_CONVERSATION_FORM_ADD_CONTACT);\r
+ }\r
+ else\r
+ {\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGC_OPT_VIEW_CONTACT", strText);\r
+ __pContextMenuText->AddItem(strText, IDA_CONVERSATION_FORM_VIEW_CONTACT);\r
+ }\r
+\r
+ SettingPresentationModel* pSettingPrModel = SettingPresentationModel::GetInstance();\r
+ pSettingPrModel->GetSpamFilterList();\r
+ pSettingPrModel->RefreshSpamFilterList();\r
+ index = pSettingPrModel->GetFilterListIndex(__pMessageData->GetDisplayName());\r
+ if (index == -1)\r
+ {\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_OPT_BLOCK", strText);\r
+ __pContextMenuText->AddItem(strText, IDA_CONVERSATION_FORM_BLOCK);\r
+ }\r
+ else\r
+ {\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_OPT_UNBLOCK", strText);\r
+ __pContextMenuText->AddItem(strText, IDA_CONVERSATION_FORM_UNBLOCK);\r
+ }\r
+\r
+ __pContextMenuText->AddActionEventListener(*this);\r
+ __pContextMenuText->SetShowState(true);\r
+ __pContextMenuText->Show();\r
+ }\r
+ break;\r
+\r
+ case IDA_CONVERSATION_FORM_VOICE_CALL:\r
+ {\r
+ if (CommonUtil::IsSimAvailable())\r
+ {\r
+ ContactUtility::VoiceCall(__pMessageData->GetDisplayName());\r
+ }\r
+ else\r
+ {\r
+ // Show error message.\r
+ String msgText;\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_SLCD_POP_TEXT_SIM_CARD_ERROR", msgText);\r
+ CommonUtil::ShowInfoPopup(msgText);\r
+ }\r
+ }\r
+ break;\r
+\r
+ case IDA_CONVERSATION_FORM_VIEW_CONTACT:\r
+ {\r
+ ContactUtility::AddContact(__pMessageData->GetDisplayName());\r
+ }\r
+ break;\r
+\r
+ case IDA_CONVERSATION_FORM_BLOCK:\r
+ {\r
+ BlockPopup(__pMessageData->GetDisplayName());\r
+ }\r
+ break;\r
+\r
+ case IDA_PHONENUMBER_BLOCK_OK:\r
+ {\r
+ SettingPresentationModel* pSettingPrModel = SettingPresentationModel::GetInstance();\r
+ pSettingPrModel->AddToFilter(__pMessageData->GetDisplayName(), 1);\r
+ pSettingPrModel->RefreshSpamFilterList();\r
+ if (__pBlockPopup)\r
+ {\r
+ __pBlockPopup->SetShowState(false);\r
+ delete __pBlockPopup;\r
+ __pBlockPopup = null;\r
+ }\r
+\r
+ }\r
+ break;\r
+\r
+ case IDA_PHONENUMBER_BLOCK_CANCEL:\r
+ {\r
+ if (__pBlockPopup)\r
+ {\r
+ __pBlockPopup->SetShowState(false);\r
+ delete __pBlockPopup;\r
+ __pBlockPopup = null;\r
+ }\r
+ }\r
+ break;\r
+\r
+ case IDA_CONVERSATION_FORM_UNBLOCK:\r
+ {\r
+ UnBlockPhoneNumber(__pMessageData->GetDisplayName());\r
+ }\r
+ break;\r
+\r
+ case IDA_BUTTON_MESSAGE_DETAILS_POPUP:\r
+ {\r
+ ShowMessageDetails();\r
+ }\r
+ break;\r
+\r
+ case IDA_BUTTON_CLOSE_OPTIONS_POPUP:\r
+ {\r
+ __pMessageDetailsPopup->SetShowState(false);\r
+ }\r
+ break;\r
+\r
+ case IDA_FORWARD_MESSAGE:\r
+ {\r
+ // Forward message\r
+ MessagePresentationModel* pMsgPrModel = MessagePresentationModel::GetInstance();\r
+ if (pMsgPrModel)\r
+ {\r
+ MessageData* pMsgData = pMsgPrModel->GetMessageDataByIdN(__pMessageData->GetEntryId());\r
+\r
+ if (CommonUtil::ForwardMessage(pMsgData) != E_SUCCESS)\r
+ {\r
+ delete pMsgData;\r
+ }\r
+ }\r
+ }\r
+ break;\r
+\r
+ case IDA_REPLY_MESSAGE:\r
+ {\r
+ // Reply message\r
+ MessagePresentationModel* pMsgPrModel = MessagePresentationModel::GetInstance();\r
+ if (pMsgPrModel)\r
+ {\r
+ MessageData* pMsgData = pMsgPrModel->GetMessageDataByIdN(__pMessageData->GetEntryId());\r
+ if (CommonUtil::ReplyMessage(pMsgData) != E_SUCCESS)\r
+ {\r
+ delete pMsgData;\r
+ }\r
+ }\r
+ }\r
+ break;\r
+\r
+ case IDA_RESEND_MESSAGE:\r
+ {\r
+ MessagePresentationModel* pMsgPrModel = MessagePresentationModel::GetInstance();\r
+ if (pMsgPrModel)\r
+ {\r
+ pMsgPrModel->ReSendMessage(__pMessageData->GetEntryId(), __pMessageData->IsMms());\r
+ }\r
+ SceneManager* pSceneManager = SceneManager::GetInstance();\r
+ pSceneManager->GoBackward(BackwardSceneTransition(__previousSceneId,\r
+ SCENE_TRANSITION_ANIMATION_TYPE_NONE));\r
+ }\r
+ break;\r
+\r
+ case IDA_COPY_MESSAGE_TEXT:\r
+ {\r
+ MmsPageData* pPageData = (MmsPageData*) __pMessageData->GetPageList()->GetAt(__currentPage);\r
+ if (pPageData)\r
+ {\r
+ CommonUtil::CopyTextToClipBoard(pPageData->GetBodyText());\r
+ }\r
+ }\r
+ break;\r
+\r
+ default:\r
+ break;\r
+ }\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return;\r
+}\r
+\r
+MmsDetailForm::SlideType\r
+MmsDetailForm::GetSlideType(int slideNumber)\r
+{\r
+ AppLogDebug("ENTER");\r
+ SlideType slideType = TextSlide;\r
+ if (__pMessageData)\r
+ {\r
+ ArrayList* pPageList = const_cast<ArrayList*>(__pMessageData->GetPageList());\r
+ if (pPageList)\r
+ {\r
+ MmsPageData* pPageData = static_cast<MmsPageData*>(pPageList->GetAt(slideNumber));\r
+ if (pPageData)\r
+ {\r
+ if (pPageData->IsImageExist())\r
+ {\r
+ if (pPageData->IsAudioExist())\r
+ {\r
+ slideType = AudioImageSlide;\r
+ }\r
+ else\r
+ {\r
+ slideType = ImageSlide;\r
+ }\r
+ }\r
+ else if (pPageData->IsVideoExist())\r
+ {\r
+ slideType = VideoSlide;\r
+ }\r
+ else if (pPageData->IsAudioExist())\r
+ {\r
+ if (pPageData->IsImageExist())\r
+ {\r
+ slideType = AudioImageSlide;\r
+ }\r
+ else\r
+ {\r
+ slideType = AudioSlide;\r
+ }\r
+ }\r
+ else\r
+ {\r
+ slideType = TextSlide;\r
+ }\r
+ }\r
+ else\r
+ {\r
+ slideType = AttachmentSlide;\r
+ }\r
+ }\r
+ else if ((__pMessageData->GetSubject()).GetLength() > 0)\r
+ {\r
+ slideType = SubjectSlide;\r
+ }\r
+ else\r
+ {\r
+ slideType = AttachmentSlide;\r
+ }\r
+ }\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return slideType;\r
+}\r
+\r
+void\r
+MmsDetailForm::UpdateForm(SlideType slideType)\r
+{\r
+ AppLogDebug("ENTER");\r
+ switch (slideType)\r
+ {\r
+ case ImageSlide:\r
+ {\r
+ if (__pPlayer)\r
+ {\r
+ __pPlayer->Stop();\r
+ __pPlayer->Close();\r
+ }\r
+ if (__pMsgAttachListPanel)\r
+ {\r
+ __pAttachFilesInfoLabel->SetShowState(false);\r
+ RemoveControl(*__pMsgAttachListPanel);\r
+ __pMsgAttachListPanel = null;\r
+ }\r
+ __pGallery->SetItemProvider(*this);\r
+ __pGallery->RefreshGallery(0, GALLERY_REFRESH_TYPE_ITEM_MODIFY);\r
+ __pGallery->SetShowState(true);\r
+ if (__pMmsTextBox)\r
+ {\r
+ __pMmsTextBox->SetBounds(0, 520, __pMmsTextBox->GetWidth(), __pMmsTextBox->GetHeight());\r
+ }\r
+ }\r
+ break;\r
+\r
+ case VideoSlide:\r
+ case AudioSlide:\r
+ {\r
+ if (__pGallery)\r
+ {\r
+ __pGallery->SetShowState(false);\r
+ }\r
+ if (__pMsgAttachListPanel)\r
+ {\r
+ __pAttachFilesInfoLabel->SetShowState(false);\r
+ RemoveControl(*__pMsgAttachListPanel);\r
+ __pMsgAttachListPanel = null;\r
+ }\r
+ if (!__pOverlay)\r
+ {\r
+ Rectangle rect(200, 82, 320, 240);\r
+ BufferInfo bufferInfo;\r
+ __pOverlay = GetOverlayRegionN(rect, OVERLAY_REGION_TYPE_NORMAL);\r
+ __pOverlay->GetBackgroundBufferInfo(bufferInfo);\r
+ __pPlayer = new (std::nothrow) Player();\r
+ __pPlayer->Construct(*this, &bufferInfo);\r
+ }\r
+ ArrayList* pPageList = const_cast<ArrayList*>(__pMessageData->GetPageList());\r
+ if (pPageList)\r
+ {\r
+ MmsPageData* pPageData = static_cast<MmsPageData*>(pPageList->GetAt(__currentPage));\r
+ if (pPageData)\r
+ {\r
+ if (slideType == VideoSlide)\r
+ {\r
+ const String filePath = pPageData->GetVideoPath();\r
+ __pPlayer->OpenFile(filePath, false);\r
+ }\r
+ else\r
+ {\r
+ const String filePath = pPageData->GetAudioPath();\r
+ __pPlayer->OpenFile(filePath, false);\r
+ }\r
+ __pPlayer->SetLooping(false);\r
+ __pPlayer->Play();\r
+ }\r
+ }\r
+ if (__pMmsTextBox)\r
+ {\r
+ __pMmsTextBox->SetBounds(0, 356, __pMmsTextBox->GetWidth(), __pMmsTextBox->GetHeight() * 2);\r
+ }\r
+ }\r
+ break;\r
+\r
+ case AttachmentSlide:\r
+ {\r
+ if (__pPlayer)\r
+ {\r
+ __pPlayer->Stop();\r
+ __pPlayer->Close();\r
+ }\r
+ if (__pGallery)\r
+ {\r
+ __pGallery->SetShowState(false);\r
+ }\r
+ if (!__pMsgAttachListPanel)\r
+ {\r
+ __pMsgAttachListPanel = new (std::nothrow) AttachListPanel(__pMessageData);\r
+ __pMsgAttachListPanel->Construct();\r
+ __pMsgAttachListPanel->SetPosition(16, 146);\r
+ __pAttachFilesInfoLabel->SetText(L"This message includes attached files not shown");\r
+ __pAttachFilesInfoLabel->SetShowState(true);\r
+ }\r
+ if (__pMmsTextBox)\r
+ {\r
+ __pMmsTextBox->SetBounds(0, 520, __pMmsTextBox->GetWidth(), __pMmsTextBox->GetHeight());\r
+ }\r
+ AddControl(*__pMsgAttachListPanel);\r
+\r
+ }\r
+ break;\r
+\r
+ case AudioImageSlide:\r
+ {\r
+ if (__pMsgAttachListPanel)\r
+ {\r
+ __pAttachFilesInfoLabel->SetShowState(false);\r
+ RemoveControl(*__pMsgAttachListPanel);\r
+ __pMsgAttachListPanel = null;\r
+ }\r
+ if (__pMmsTextBox)\r
+ {\r
+ __pMmsTextBox->SetBounds(0, 520, __pMmsTextBox->GetWidth(), __pMmsTextBox->GetHeight());\r
+ }\r
+ __pGallery->SetItemProvider(*this);\r
+ __pGallery->RefreshGallery(0, GALLERY_REFRESH_TYPE_ITEM_MODIFY);\r
+ __pGallery->SetShowState(true);\r
+ if (!__pOverlay)\r
+ {\r
+ Rectangle rect(200, 82, 320, 240);\r
+ BufferInfo bufferInfo;\r
+ __pOverlay = GetOverlayRegionN(rect, OVERLAY_REGION_TYPE_NORMAL);\r
+ __pOverlay->GetBackgroundBufferInfo(bufferInfo);\r
+ __pPlayer = new (std::nothrow) Player();\r
+ __pPlayer->Construct(*this, &bufferInfo);\r
+ }\r
+ ArrayList* pPageList = const_cast<ArrayList*>(__pMessageData->GetPageList());\r
+ if (pPageList)\r
+ {\r
+ MmsPageData* pPageData = static_cast<MmsPageData*>(pPageList->GetAt(__currentPage));\r
+ if (pPageData)\r
+ {\r
+ const String filePath = pPageData->GetAudioPath();\r
+ __pPlayer->OpenFile(filePath, false);\r
+ __pPlayer->SetLooping(false);\r
+ __pPlayer->Play();\r
+ }\r
+ }\r
+ }\r
+ break;\r
+\r
+ case TextSlide:\r
+ case SubjectSlide:\r
+ {\r
+ if (__pGallery)\r
+ {\r
+ __pGallery->SetShowState(false);\r
+ }\r
+ if (__pMsgAttachListPanel)\r
+ {\r
+ __pAttachFilesInfoLabel->SetShowState(false);\r
+ RemoveControl(*__pMsgAttachListPanel);\r
+ __pMsgAttachListPanel = null;\r
+ }\r
+ if (__pPlayer)\r
+ {\r
+ __pPlayer->Stop();\r
+ __pPlayer->Close();\r
+ }\r
+ if (__pMmsTextBox)\r
+ {\r
+ __pMmsTextBox->SetBounds(0, 84, __pMmsTextBox->GetWidth(), __pMmsTextBox->GetHeight() * 3);\r
+ }\r
+ }\r
+ break;\r
+\r
+ default:\r
+ break;\r
+ }\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
+\r
+void\r
+MmsDetailForm::StartSlideShow()\r
+{\r
+ AppLogDebug("ENTER");\r
+ if (!__pTimer)\r
+ {\r
+ __pTimer = new (std::nothrow) Timer();\r
+ __pTimer->Construct(*this);\r
+ }\r
+ if (!__pTimerForControlBar)\r
+ {\r
+ __pTimerForControlBar = new (std::nothrow) Timer();\r
+ __pTimerForControlBar->Construct(*this);\r
+ }\r
+ __bIsPlaying = true;\r
+ Bitmap* pBitMap = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_SMIL_PAUSE, Dimension(W_PLAYCONTROL_BUTTON, H_PLAYCONTROL_BUTTON));\r
+ __pPlayPausebutton->SetNormalBitmap(Point(0, 0), *pBitMap);\r
+ __pPlayPausebutton->RequestRedraw(true);\r
+\r
+ if (GetSlideType(__currentPage) == VideoSlide || GetSlideType(__currentPage) == AudioSlide)\r
+ {\r
+ __pPlayer->Play();\r
+ }\r
+ UpdateSlideNumber(__currentPage + 1);\r
+ __pTimer->StartAsRepeatable(1000);\r
+ __pTimerForControlBar->Start(3000);\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
+\r
+void\r
+MmsDetailForm::PlaySlideShow()\r
+{\r
+\r
+ AppLogDebug("ENTER");\r
+ SlideType slideType = GetSlideType(__currentPage);\r
+ if (slideType == VideoSlide || slideType == AudioSlide)\r
+ {\r
+ __pPlayer->Play();\r
+ }\r
+ UpdateForm(GetSlideType(__currentPage));\r
+ UpdateMmsBodyText();\r
+ UpdatePlayButton();\r
+ UpdateSlideNumber(__currentPage + 1);\r
+ __pTimer->StartAsRepeatable(1000);\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
+\r
+void\r
+MmsDetailForm::PauseSlideShow()\r
+{\r
+ AppLogDebug("ENTER");\r
+ __pTimer->Cancel();\r
+\r
+ SlideType slideType = GetSlideType(__currentPage);\r
+ if (slideType == VideoSlide || slideType == AudioSlide)\r
+ {\r
+ __pPlayer->Pause();\r
+ }\r
+ UpdatePlayButton();\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
+\r
+void\r
+MmsDetailForm::ShowVolumePopup()\r
+{\r
+ AppLogDebug("ENTER");\r
+ if (!__pTimerforVolumePopup)\r
+ {\r
+ __pTimerforVolumePopup = new (std::nothrow) Timer();\r
+ __pTimerforVolumePopup->Construct(*this);\r
+ }\r
+ __pVolumePopup = new Popup();\r
+ __pVolumePopup->Construct(L"IDL_VOLUME_POPUP");\r
+ __pMediaVolumeSlider = static_cast<Slider*>(__pVolumePopup->GetControl(L"IDC_MEDIA_VOLUME_SLIDER"));\r
+ int mediaVolumeLevel = 4;\r
+ String key(IDS_TIZEN_MEDIA);\r
+ SettingInfo::GetValue(key, mediaVolumeLevel);\r
+ __pMediaVolumeSlider->SetValue(mediaVolumeLevel);\r
+ __pVolumePopup->SetShowState(true);\r
+ __pVolumePopup->Show();\r
+ __pTimerforVolumePopup->Start(2000);\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
+\r
+void\r
+MmsDetailForm::ShowDeletePopup()\r
+{\r
+ AppLogDebug("ENTER");\r
+ __pTimer->Cancel();\r
+ __bIsPlaying = false;\r
+ UpdatePlayButton();\r
+ // Create a Popup\r
+\r
+ __pDeletePopup = new (std::nothrow) BaseCustomPopup();\r
+ __pDeletePopup->Construct(L"IDL_DELETE_POPUP");\r
+\r
+ Button* pButtonDelete = static_cast<Button*>(__pDeletePopup->GetControl(L"IDC_BUTTON_LEFT"));\r
+ Button* pButtonCancel = static_cast<Button*>(__pDeletePopup->GetControl(L"IDC_BUTTON_RIGHT"));\r
+\r
+ pButtonDelete->SetActionId(IDA_OK_DELETE);\r
+ pButtonDelete->AddActionEventListener(*this);\r
+\r
+ pButtonCancel->SetActionId(IDA_CANCEL_DELETE);\r
+ pButtonCancel->AddActionEventListener(*this);\r
+\r
+ __pDeletePopup->Show();\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return;\r
+}\r
+\r
+void\r
+MmsDetailForm::ShowMoreContextMenu()\r
+{\r
+ AppLogDebug("ENTER");\r
+ __pTimer->Cancel();\r
+ __bIsPlaying = false;\r
+ UpdatePlayButton();\r
+ if (!__pContextMenu)\r
+ {\r
+ __pContextMenu = new (std::nothrow) ContextMenu();\r
+ int footerItemWidth = GetFooter()->GetWidth() / (GetFooter()->GetItemCount() + 1);\r
+ __pContextMenu->Construct(Point(footerItemWidth * 3 + footerItemWidth / 2, GetFooter()->GetY()), CONTEXT_MENU_STYLE_LIST);\r
+ String strText;\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_COM_BODY_FORWARD", strText);\r
+ __pContextMenu->AddItem(strText, IDA_FORWARD_MESSAGE);\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_BODY_COPY_MESSAGE_TEXT_ABB", strText);\r
+ __pContextMenu->AddItem(strText, IDA_COPY_MESSAGE_TEXT);\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_BODY_VIEW_MESSAGE_DETAILS_ABB", strText);\r
+ __pContextMenu->AddItem(strText, IDA_BUTTON_MESSAGE_DETAILS_POPUP);\r
+ __pContextMenu->AddActionEventListener(*this);\r
+ }\r
+ __pContextMenu->SetShowState(true);\r
+ __pContextMenu->Show();\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
+\r
+void\r
+MmsDetailForm::OnFormBackRequested(Form& source)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ // Back to message list form\r
+ SceneManager* pSceneManager = SceneManager::GetInstance();\r
+ pSceneManager->GoBackward(BackwardSceneTransition(__previousSceneId,\r
+ SCENE_TRANSITION_ANIMATION_TYPE_NONE));\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return;\r
+}\r
+\r
+// Implement IGalleryItemProvider\r
+GalleryItem*\r
+MmsDetailForm::CreateItem(int index)\r
+{\r
+ AppLogDebug("ENTER");\r
+ ArrayList* pPageList = const_cast<ArrayList*>(__pMessageData->GetPageList());\r
+\r
+ if (pPageList)\r
+ {\r
+ MmsPageData* pPageData = static_cast<MmsPageData*>(pPageList->GetAt(__currentPage));\r
+ if (pPageData)\r
+ {\r
+ const String filePath = pPageData->GetImagePath();\r
+ // Get a Bitmap\r
+ Image* pImage = new (std::nothrow) Image();\r
+ pImage->Construct();\r
+ Bitmap* pBitmap = pImage->DecodeN(filePath, BITMAP_PIXEL_FORMAT_ARGB8888, W_GALLERY, H_GALLERY);\r
+ // IGalleryEventListener\r
+ GalleryItem* pGallery = new GalleryItem();\r
+ pGallery->Construct(*pBitmap);\r
+ // Deallocates the Bitmaps\r
+ delete pBitmap;\r
+ delete pImage;\r
+ return pGallery;\r
+ }\r
+ }\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return null;\r
+}\r
+\r
+bool\r
+MmsDetailForm::DeleteItem(int index, GalleryItem* pItem)\r
+{\r
+ AppLogDebug("ENTER");\r
+ delete pItem;\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return true;\r
+}\r
+\r
+int\r
+MmsDetailForm::GetItemCount(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return 1;\r
+}\r
+\r
+void\r
+MmsDetailForm::OnTimerExpired(Timer& timer)\r
+{\r
+ AppLogDebug("ENTER");\r
+ if (__pTimerforVolumePopup && __pTimerforVolumePopup->Equals(timer))\r
+ {\r
+ if (__pVolumePopup)\r
+ {\r
+ __pVolumePopup->SetShowState(false);\r
+ Invalidate(true);\r
+ }\r
+ }\r
+ if (__pTimerForControlBar && __pTimerForControlBar->Equals(timer))\r
+ {\r
+ if (__pPlayControlPanel)\r
+ {\r
+ __pPlayControlPanel->SetShowState(false);\r
+ }\r
+ }\r
+ if (__pTimer->Equals(timer))\r
+ {\r
+ __timeElapsed++;\r
+ if (__pProgress)\r
+ {\r
+ __pProgress->SetValue(__timeElapsed);\r
+ __pProgress->Invalidate(false);\r
+ }\r
+ UpdateTimeElapsedLabel(__timeElapsed);\r
+ if (__timeElapsed == __totalDuration)\r
+ {\r
+ __pNextbutton->SetEnabled(false);\r
+ __pPreviousButton->SetEnabled(false);\r
+ if (__pPlayControlPanel)\r
+ {\r
+ __pPlayControlPanel->SetShowState(true);\r
+ }\r
+ if (__pTimerForControlBar)\r
+ {\r
+ __pTimerForControlBar->Cancel();\r
+ }\r
+ OnActionPerformed(*this, IDA_PLAY);\r
+ }\r
+ int timeToRefreshGallery = GetTimeToChangeslide(__currentPage + 2);\r
+ if (__timeElapsed == timeToRefreshGallery && timeToRefreshGallery != __totalDuration)\r
+ {\r
+ __currentPage++;\r
+ UpdateForm(GetSlideType(__currentPage));\r
+ UpdateMmsBodyText();\r
+ UpdateSlideNumber(__currentPage + 1);\r
+ if (__pPreviousButton)\r
+ {\r
+ __pPreviousButton->SetEnabled(true);\r
+ }\r
+ if (__currentPage + 1 == __pageCountOfCurrentMessageData)\r
+ {\r
+ __pNextbutton->SetEnabled(false);\r
+ }\r
+ }\r
+ }\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
+\r
+void\r
+MmsDetailForm::UpdatePlayButton(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+ Bitmap* pBitMap = null;\r
+ if (__bIsPlaying)\r
+ {\r
+ pBitMap = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_SMIL_PAUSE);\r
+ }\r
+ else\r
+ {\r
+ pBitMap = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_SMIL_PLAY);\r
+ }\r
+\r
+ if (pBitMap)\r
+ {\r
+ pBitMap->Scale(Dimension(W_PLAYCONTROL_BUTTON, H_PLAYCONTROL_BUTTON));\r
+ if (__pPlayPausebutton)\r
+ {\r
+ __pPlayPausebutton->SetNormalBitmap(Point(0, 0), *pBitMap);\r
+ __pPlayPausebutton->RequestRedraw(true);\r
+ }\r
+ }\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
+\r
+void\r
+MmsDetailForm::UpdateMmsBodyText(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+ if (__pMessageData)\r
+ {\r
+ ArrayList* pAttachList = const_cast<ArrayList*>(__pMessageData->GetPageList());\r
+\r
+ if (pAttachList)\r
+ {\r
+ MmsPageData* pPageData = static_cast<MmsPageData*>(pAttachList->GetAt(__currentPage));\r
+ if (pPageData)\r
+ {\r
+ const String mmsBodyText = pPageData->GetBodyText();\r
+ if (__pMmsTextBox)\r
+ {\r
+ __pMmsTextBox->SetText(mmsBodyText);\r
+ __pMmsTextBox->RequestRedraw(true);\r
+ }\r
+ }\r
+ else\r
+ {\r
+ __pMmsTextBox->SetText(IDS_BLANK);\r
+ __pMmsTextBox->RequestRedraw(true);\r
+ }\r
+ }\r
+ }\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return;\r
+}\r
+\r
+void\r
+MmsDetailForm::UpdateSlideNumber(int currentSlideNumber)\r
+{\r
+ AppLogDebug("ENTER");\r
+ if (__pPageNumberLabel)\r
+ {\r
+ String slideNumber;\r
+ slideNumber.Append(currentSlideNumber);\r
+ slideNumber.Append(IDS_CHAR_SLASH);\r
+ slideNumber.Append(__pageCountOfCurrentMessageData);\r
+ __pPageNumberLabel->SetText(slideNumber);\r
+ __pPageNumberLabel->RequestRedraw(true);\r
+ }\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
+\r
+void\r
+MmsDetailForm::UpdateTimeElapsedLabel(int timeElapsed)\r
+{\r
+ AppLogDebug("ENTER");\r
+ if (__pTimeElapsedLabel)\r
+ {\r
+ String strTimeElapsed(L"00:");\r
+ if (__timeElapsed < 10)\r
+ {\r
+ strTimeElapsed = L"00:0";\r
+ }\r
+ strTimeElapsed.Append(timeElapsed);\r
+ __pTimeElapsedLabel->SetText(strTimeElapsed);\r
+ __pTimeElapsedLabel->RequestRedraw(true);\r
+ }\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
+\r
+bool\r
+MmsDetailForm::IsTextExist(int slideIndex)\r
+{\r
+ AppLogDebug("ENTER");\r
+ bool textExist(false);\r
+ if (__currentPage < __pMessageData->GetPageCount())\r
+ {\r
+ const ArrayList* pPageList = __pMessageData->GetPageList();\r
+ MmsPageData* pMmsPageData = (MmsPageData*) pPageList->GetAt(__currentPage);\r
+ textExist = (!pMmsPageData->GetBodyText().IsEmpty());\r
+ }\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return textExist;\r
+}\r
+\r
+void\r
+MmsDetailForm::OnAdjustmentValueChanged(const Control& source, int adjustment)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ String key(IDS_TIZEN_MEDIA);\r
+ result r = SettingInfo::SetVolume(key, adjustment);\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(r));\r
+}\r
+\r
+void\r
+MmsDetailForm::BlockPopup(const String& phoneNumber)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ String number;\r
+ String strText;\r
+ __pBlockPopup = new (std::nothrow) Popup();\r
+ __pBlockPopup->Construct(L"IDL_BLOCK_POPUP");\r
+ Button* pButtonOk = static_cast<Button*>(__pBlockPopup->GetControl(L"IDC_BUTTON_OK"));\r
+ pButtonOk->SetActionId(IDA_PHONENUMBER_BLOCK_OK);\r
+ pButtonOk->AddActionEventListener(*this);\r
+ Button* pButtonCancel = static_cast<Button*>(__pBlockPopup->GetControl(L"IDC_BUTTON_CANCEL"));\r
+ pButtonCancel->SetActionId(IDA_PHONENUMBER_BLOCK_CANCEL);\r
+ pButtonCancel->AddActionEventListener(*this);\r
+\r
+ Label* pLabelNumber = static_cast<Label*>(__pBlockPopup->GetControl(L"IDC_BLOCKNUMBER_LABEL"));\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_POP_BLOCK_PS_Q", strText);\r
+ strText.Replace(L"%s", phoneNumber);\r
+ number.Append(strText);\r
+ pLabelNumber->SetText(number);\r
+ __pBlockPopup->Show();\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return;\r
+}\r
+\r
+void\r
+MmsDetailForm::UnBlockPhoneNumber(const String& phoneNumber)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ SettingPresentationModel* pSettingPrModel = SettingPresentationModel::GetInstance();\r
+ int filterIndex = pSettingPrModel->GetFilterListIndex(phoneNumber);\r
+ if (filterIndex >= 0)\r
+ {\r
+ pSettingPrModel->DeleteFilter(filterIndex, 1);\r
+ pSettingPrModel->RefreshSpamFilterList();\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return;\r
+}\r
+\r
+void\r
+MmsDetailForm::ShowMessageDetails(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ __pMessageDetailsPopup = new (std::nothrow) Popup();\r
+ result r = __pMessageDetailsPopup->Construct(L"IDL_MSG_OPTION_DETAILS_POPUP");\r
+ if (r == E_SUCCESS)\r
+ {\r
+ MessagePresentationModel* pMsgPrModel = MessagePresentationModel::GetInstance();\r
+ if (pMsgPrModel)\r
+ {\r
+ TextBox* pTextBox = static_cast<TextBox*>(__pMessageDetailsPopup->GetControl(L"IDC_TEXTBOX_MSG_DETAILS"));\r
+ if (pTextBox)\r
+ {\r
+ String messageDetails;\r
+ String strText;\r
+ pTextBox->SetTextSize(36);\r
+ pTextBox->SetColor(TEXT_BOX_STATUS_NORMAL, __pMessageDetailsPopup->GetColor());\r
+ pTextBox->SetColor(TEXT_BOX_STATUS_HIGHLIGHTED, __pMessageDetailsPopup->GetColor());\r
+ pTextBox->SetColor(TEXT_BOX_STATUS_DISABLED, __pMessageDetailsPopup->GetColor());\r
+\r
+ //To get Message Type\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_COM_BODY_DETAILS_TYPE", strText);\r
+ strText.Append(IDS_COLON);\r
+ messageDetails.Append(strText);\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_BODY_SETTINGS_MULTIMEDIAMESSAGE", strText);\r
+ messageDetails.Append(strText);\r
+\r
+ messageDetails.Append(IDS_NEW_LINE);\r
+\r
+ //Message contactlist\r
+ if (__pMessageData->IsSent())\r
+ {\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_COM_BODY_TO", strText);\r
+ strText.Append(IDS_COLON);\r
+ messageDetails.Append(strText);\r
+ }\r
+ else\r
+ {\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_BODY_FROM", strText);\r
+ strText.Append(IDS_COLON);\r
+ messageDetails.Append(strText);\r
+ }\r
+ ArrayList* pPhoneNumberList = pMsgPrModel->GetPhoneNumberListN(__pMessageData->GetThreadId());\r
+ if (pPhoneNumberList)\r
+ {\r
+ for (int index = 0; index < pPhoneNumberList->GetCount(); index++)\r
+ {\r
+ String* contactNumber = static_cast<String*>(pPhoneNumberList->GetAt(index));\r
+ messageDetails.Append(*contactNumber);\r
+ if (index != pPhoneNumberList->GetCount() - 1)\r
+ messageDetails.Append(", ");\r
+ }\r
+ pPhoneNumberList->RemoveAll(true);\r
+ delete pPhoneNumberList;\r
+ }\r
+ messageDetails.Append(IDS_NEW_LINE);\r
+\r
+ //Message sent/received time\r
+ if (__pMessageData->IsSent())\r
+ {\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_BODY_MMSNOTIMSGSTATUSSENT", strText);\r
+ strText.Append(IDS_COLON);\r
+ messageDetails.Append(strText);\r
+ }\r
+ else\r
+ {\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_BODY_RECEIVED", strText);\r
+ strText.Append(IDS_COLON);\r
+ messageDetails.Append(strText);\r
+ }\r
+ messageDetails.Append(__pMessageData->GetTimeStamp());\r
+ messageDetails.Append(IDS_NEW_LINE);\r
+\r
+ //Message Subject\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_COM_BODY_SUBJECT", strText);\r
+ strText.Append(IDS_COLON);\r
+ messageDetails.Append(strText);\r
+ messageDetails.Append(__pMessageData->GetSubject());\r
+ messageDetails.Append(IDS_NEW_LINE);\r
+\r
+ //Message Size\r
+ // Application::GetInstance()->GetAppResource()->GetString(L"IDS_SIZE", strText);\r
+ // messageDetails.Append(strText);\r
+ // messageDetails.Append(__pMessageData->Get);\r
+ // messageDetails.Append(L"\n");\r
+\r
+ //Message delivery report.\r
+ int deliveryStatus = pMsgPrModel->GetMessageDeliveryStatus(__pMessageData->GetEntryId());\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_BODY_DELIVERY_REPORT", strText);\r
+ strText.Append(IDS_COLON);\r
+ messageDetails.Append(strText);\r
+ switch (deliveryStatus)\r
+ {\r
+ // Indicates the status unavailable\r
+ case MSG_DELIVERY_REPORT_NONE:\r
+ {\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_OPT_STATUS_UNAVAILABLE", strText);\r
+ messageDetails.Append(strText);\r
+ }\r
+ break;\r
+\r
+ // Indicates the expired status of message\r
+ case MSG_DELIVERY_REPORT_EXPIRED:\r
+ {\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_BODY_EXPIRED", strText);\r
+ messageDetails.Append(strText);\r
+ }\r
+ break;\r
+\r
+ // Indicates the success status of message\r
+ case MSG_DELIVERY_REPORT_SUCCESS:\r
+ {\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_COM_POP_SUCCESS", strText);\r
+ messageDetails.Append(strText);\r
+ }\r
+ break;\r
+\r
+ // Indicates the rejected status of message\r
+ case MSG_DELIVERY_REPORT_REJECTED:\r
+ {\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_COM_POP_REJECTED", strText);\r
+ messageDetails.Append(strText);\r
+ }\r
+ break;\r
+\r
+ // Indicates the deferred status of message\r
+ case MSG_DELIVERY_REPORT_DEFERRED:\r
+ {\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_POP_DEFERRED", strText);\r
+ messageDetails.Append(strText);\r
+ }\r
+ break;\r
+\r
+ // Indicates the unrecongnised status of message\r
+ case MSG_DELIVERY_REPORT_UNRECOGNISED:\r
+ case MSG_DELIVERY_REPORT_INDETERMINATE:\r
+ {\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_POP_UNRECOGNISED", strText);\r
+ messageDetails.Append(strText);\r
+ }\r
+ break;\r
+\r
+ // Indicates the forwarded status of message\r
+ case MSG_DELIVERY_REPORT_FORWARDED:\r
+ {\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_POP_FORWARDED", strText);\r
+ messageDetails.Append(strText);\r
+ }\r
+ break;\r
+\r
+ // Indicates the unreachable status of message\r
+ case MSG_DELIVERY_REPORT_UNREACHABLE:\r
+ {\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_POP_UNREACHABLE", strText);\r
+ messageDetails.Append(strText);\r
+ }\r
+ break;\r
+\r
+ default:\r
+ break;\r
+ }\r
+\r
+ messageDetails.Append(IDS_NEW_LINE);\r
+\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_OPT_STATUS", strText);\r
+ strText.Append(IDS_COLON);\r
+ //Message Status\r
+ bool msgStatus = pMsgPrModel->GetMessageDeliveryStatus(__pMessageData->GetEntryId());\r
+ messageDetails.Append(strText);\r
+ if (msgStatus)\r
+ {\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_COM_POP_FAILED", strText);\r
+ messageDetails.Append(strText);\r
+ }\r
+ else\r
+ {\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_COM_POP_SUCCESS", strText);\r
+ messageDetails.Append(strText);\r
+ }\r
+ pTextBox->SetText(messageDetails);\r
+ }\r
+ }\r
+\r
+ }\r
+ Button* pCloseButton = static_cast<Button*>(__pMessageDetailsPopup->GetControl(L"IDC_MSG_CLOSE_BUTTON"));\r
+ pCloseButton->SetActionId(IDA_BUTTON_CLOSE_OPTIONS_POPUP);\r
+ pCloseButton->AddActionEventListener(*this);\r
+\r
+ // Show popup\r
+ __pMessageDetailsPopup->SetShowState(true);\r
+ __pMessageDetailsPopup->Show();\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return;\r
+}\r
+\r
+int\r
+MmsDetailForm::GetTimeToChangeslide(int slideNumber)\r
+{\r
+ AppLogDebug("ENTER");\r
+ int timeToChangeSlide = 0;\r
+ for (int slide = 0; slide < slideNumber - 1; slide++)\r
+ {\r
+ timeToChangeSlide = timeToChangeSlide + __pPageDuration[slide];\r
+ }\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return timeToChangeSlide;\r
+}\r
+\r
+void\r
+MmsDetailForm::OnTouchPressed(const Control& source, const Point& currentPosition,\r
+ const TouchEventInfo& touchInfo)\r
+{\r
+ AppLogDebug("ENTER");\r
+ if (__pPlayControlPanel->GetShowState())\r
+ {\r
+ __pPlayControlPanel->SetShowState(false);\r
+ __pTimerForControlBar->Cancel();\r
+ }\r
+ else\r
+ {\r
+ __pPlayControlPanel->SetShowState(true);\r
+ __pTimerForControlBar->Cancel();\r
+ __pTimerForControlBar->Start(3000);\r
+ }\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
--- /dev/null
+//\r
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.\r
+//\r
+// Licensed under the Flora License, Version 1.0 (the License);\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+// http://floralicense.org/license/\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an AS IS BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+//\r
+\r
+#include <msg.h>\r
+#include <msg_storage.h>\r
+#include <msg_transport.h>\r
+#include <msg_types.h>\r
+\r
+#include <FApp.h>\r
+#include <FIo.h>\r
+\r
+#include "MsgBaseData.h"\r
+#include "MsgCommonUtil.h"\r
+#include "MsgEvent.h"\r
+#include "MsgIMmsEventListener.h"\r
+#include "MsgMmsManager.h"\r
+#include "MsgMmsSendSettings.h"\r
+#include "MsgTypes.h"\r
+\r
+using namespace Tizen::App;\r
+using namespace Tizen::Base;\r
+using namespace Tizen::Base::Collection;\r
+using namespace Tizen::Base::Runtime;\r
+using namespace Tizen::Base::Utility;\r
+using namespace Tizen::Io;\r
+\r
+const wchar_t* IDS_LOCAL_TEXT = L"Text";\r
+const wchar_t* IDS_LOCAL_IMAGE = L"Image";\r
+\r
+/* defines */\r
+#define MSG_COMPOSER_SMIL_SCREEN_WIDTH 480\r
+#define MSG_COMPOSER_SMIL_SCREEN_HEIGHT 800\r
+\r
+#define MSG_COMPOSER_SMIL_POS_TOP 1\r
+#define MSG_COMPOSER_SMIL_POS_BOTTOM 50\r
+#define MSG_COMPOSER_SMIL_POS_LEFT 0\r
+\r
+#define MSG_COMPOSER_SMIL_REGION_WIDTH 100\r
+#define MSG_COMPOSER_SMIL_REGION_HEIGHT 50\r
+\r
+#define MSG_COMPOSER_SMIL_DEFAULT_BGCOLOR 0xFFFFFF\r
+#define MSG_COMPOSER_SMIL_DEFAULT_FONT_COLOR 0x000000\r
+#define MSG_COMPOSER_SMIL_DEFAULT_FONT_SIZE 30\r
+#define MSG_COMPOSER_SMIL_DEFAULT_BOLD false\r
+#define MSG_COMPOSER_SMIL_DEFAULT_UNDERLINE false\r
+\r
+MmsManager::MmsManager(msg_handle_t pMsgHandle)\r
+ : __pMsgHandle(pMsgHandle)\r
+ , __pMmsEventListener(null)\r
+{\r
+ //Empty implementation\r
+}\r
+\r
+// Destructor\r
+MmsManager::~MmsManager(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ if (__pMmsEventListener)\r
+ {\r
+ __pMmsEventListener->RemoveAll(true);\r
+ delete __pMmsEventListener;\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
+\r
+\r
+result\r
+MmsManager::Construct(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ result r = E_SUCCESS;\r
+ msg_error_t err = MSG_SUCCESS;\r
+\r
+ void (* pIncommingMmscb)(msg_handle_t, msg_struct_t, void*);\r
+ pIncommingMmscb = IncommingMmsCallback;\r
+ err = msg_reg_mms_conf_message_callback(__pMsgHandle, pIncommingMmscb, null, (void*) this);\r
+ if (err != MSG_SUCCESS)\r
+ {\r
+ AppLogDebug("msg_reg_sms_message_callback err = %d", (int) err);\r
+ r = E_FAILURE;\r
+ }\r
+\r
+ // Keep thread observer\r
+ __pMmsEventListener = new (std::nothrow) ArrayList();\r
+ __pMmsEventListener->Construct();\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return r;\r
+}\r
+\r
+result\r
+MmsManager::AddMmsEventListener(const IMmsEventListener& eventListener)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ MmsEvent* pMmsEvent = new (std::nothrow) MmsEvent(&eventListener);\r
+ result r = __pMmsEventListener->Add(pMmsEvent); // Transfer ownership.\r
+ if (r != E_SUCCESS)\r
+ {\r
+ delete pMmsEvent;\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return r;\r
+}\r
+\r
+result\r
+MmsManager::RemoveMmsEventListener(const IMmsEventListener& eventListener)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ result r = E_SUCCESS;\r
+ if (__pMmsEventListener)\r
+ {\r
+ IEnumerator* pEventenum = __pMmsEventListener->GetEnumeratorN();\r
+ if (pEventenum)\r
+ {\r
+ MmsEvent* pMmsEvent = null;\r
+ while (pEventenum->MoveNext() == E_SUCCESS)\r
+ {\r
+ pMmsEvent = static_cast<MmsEvent*>(pEventenum->GetCurrent());\r
+ if (pMmsEvent->IsSame(&eventListener))\r
+ {\r
+ // Took ownership, delete element object.\r
+ r = __pMmsEventListener->Remove(*pMmsEvent, true);\r
+ break;\r
+ }\r
+ }\r
+ }\r
+ // Free memory\r
+ if (pEventenum)\r
+ {\r
+ delete pEventenum;\r
+ pEventenum = null;\r
+ }\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return r;\r
+}\r
+\r
+void\r
+MmsManager::IncommingMmsCallback(msg_handle_t pHandle, msg_struct_t pMsg, void* pUserParam)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ if (!pUserParam || !pMsg)\r
+ {\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return;\r
+ }\r
+ static_cast<MmsManager*>(pUserParam)->IncommingMms(pHandle, pMsg);\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
+\r
+void\r
+MmsManager::IncommingMms(msg_handle_t pHandle, msg_struct_t pMsg)\r
+{\r
+ AppLogDebug("ENTER");\r
+ if (__pMmsEventListener->GetCount() > 0)\r
+ {\r
+ IEnumerator* pEventenum = __pMmsEventListener->GetEnumeratorN();\r
+ if (pEventenum)\r
+ {\r
+ MmsEvent* pMmsEvent = null;\r
+ while (pEventenum->MoveNext() == E_SUCCESS)\r
+ {\r
+ pMmsEvent = static_cast<MmsEvent*>(pEventenum->GetCurrent());\r
+ IMmsEventListener* pMmsListener = static_cast<IMmsEventListener*>(\r
+ const_cast<IEventListener*>(pMmsEvent->GetEvent()));\r
+ if (pMmsListener)\r
+ {\r
+ pMmsListener->OnMmsReceive();\r
+ }\r
+ }\r
+ }\r
+ // Free memory\r
+ if (pEventenum)\r
+ {\r
+ delete pEventenum;\r
+ pEventenum = null;\r
+ }\r
+ }\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return;\r
+}\r
+\r
+MsgResponse\r
+MmsManager::SendMessage(const MessageComposeData& mmsComposeData, int threadId, const MmsSendSettings* pMmsSendSetting)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ // 1. Create new message\r
+ msg_struct_t pMsgInfo = msg_create_struct(MSG_STRUCT_MESSAGE_INFO);\r
+ if (!pMsgInfo)\r
+ {\r
+ AppLogDebug("msg_new_message fail");\r
+ return MSG_RESPONSE_FAIL;\r
+ }\r
+ msg_error_t err = MSG_SUCCESS;\r
+ // 2. Make SMS\r
+ MsgResponse response = CreateMms(pMsgInfo, mmsComposeData, threadId);\r
+ if (response == MSG_RESPONSE_SUCCESS)\r
+ {\r
+ // 3. Send SMS\r
+ msg_struct_t pRequest = msg_create_struct(MSG_STRUCT_REQUEST_INFO);\r
+ msg_struct_t pSendOpt = NULL;\r
+ msg_get_struct_handle(pRequest, MSG_REQUEST_SENDOPT_HND, &pSendOpt);\r
+ msg_set_bool_value(pSendOpt, MSG_SEND_OPT_SETTING_BOOL, false);\r
+ bool reqDeliveryReport(false);\r
+ if (pMmsSendSetting)\r
+ {\r
+ reqDeliveryReport = pMmsSendSetting->IsMmsDeliveryReportOn();\r
+ }\r
+ msg_set_bool_value(pSendOpt, MSG_SEND_OPT_DELIVER_REQ_BOOL, reqDeliveryReport);\r
+ msg_set_struct_handle(pRequest, MSG_REQUEST_MESSAGE_HND, pMsgInfo);\r
+ err = msg_mms_send_message(__pMsgHandle, pRequest);\r
+ if (err != MSG_SUCCESS)\r
+ {\r
+ AppLogDebug("msg_mms_send_message fail = %d", (int) err);\r
+ response = MSG_RESPONSE_FAIL;\r
+ }\r
+ // Release send message struct.\r
+ msg_release_struct(&pRequest);\r
+ }\r
+ //4. Release message info.\r
+ err = msg_release_struct(&pMsgInfo);\r
+ if (err != MSG_SUCCESS)\r
+ {\r
+ AppLogDebug("msg_release_message fail = %d", (int) err);\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return response;\r
+}\r
+\r
+MsgResponse\r
+MmsManager::SaveMessage(const MessageComposeData& mmsComposeData, int threadId)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ // 1. Create new message\r
+ msg_struct_t pMsgInfo = msg_create_struct(MSG_STRUCT_MESSAGE_INFO);\r
+ if (!pMsgInfo)\r
+ {\r
+ AppLogDebug("msg_new_message fail");\r
+ return MSG_RESPONSE_FAIL;\r
+ }\r
+ msg_error_t err = MSG_SUCCESS;\r
+ // 2. Make SMS\r
+ MsgResponse response = CreateMms(pMsgInfo, mmsComposeData, threadId);\r
+ if (response == MSG_RESPONSE_SUCCESS)\r
+ {\r
+ // 3. Save SMS\r
+ msg_struct_t pSendOpt = msg_create_struct(MSG_STRUCT_SENDOPT);\r
+ msg_set_bool_value(pSendOpt, MSG_SEND_OPT_SETTING_BOOL, false);\r
+ err = msg_add_message(__pMsgHandle, (const msg_struct_t) pMsgInfo, (const msg_struct_t) pSendOpt);\r
+ if (err != MSG_SUCCESS)\r
+ {\r
+ AppLogDebug("msg_add_message fail = %d", (int) err);\r
+ response = MSG_RESPONSE_FAIL;\r
+ }\r
+ // Release struct.\r
+ msg_release_struct(&pSendOpt);\r
+ }\r
+ //4. Release message info.\r
+ err = msg_release_struct(&pMsgInfo);\r
+ if (err != MSG_SUCCESS)\r
+ {\r
+ AppLogDebug("msg_release_message fail = %d", (int) err);\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return response;\r
+}\r
+\r
+MsgResponse\r
+MmsManager::CreateMms(msg_struct_t pMsgInfo, const MessageComposeData& mmsComposeData, int threadId)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ //1. Fetch recipients\r
+ MsgResponse response = MSG_RESPONSE_SUCCESS;\r
+ response = SetRecipientList(pMsgInfo, threadId);\r
+ if (response != MSG_RESPONSE_SUCCESS)\r
+ {\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return response;\r
+ }\r
+ // 3. Set message type.\r
+ response = SetMessageType(pMsgInfo);\r
+ if (response != MSG_RESPONSE_SUCCESS)\r
+ {\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return response;\r
+ }\r
+ // Set Subject\r
+ String subJectText = mmsComposeData.GetSubject();\r
+ if (subJectText.GetLength() > 0)\r
+ {\r
+ char* pSubText = CommonUtil::ConvertStringToPointerCharArrayN(subJectText);\r
+ if (msg_set_str_value(pMsgInfo, MSG_MESSAGE_SUBJECT_STR, pSubText, (int) strlen(pSubText)) != MSG_SUCCESS)\r
+ {\r
+ AppLogDebug("Unable to set subject");\r
+ }\r
+ delete[] pSubText;\r
+ }\r
+ // Create MMS DATA\r
+ msg_struct_t pMmsData = null;\r
+ pMmsData = msg_create_struct(MSG_STRUCT_MMS);\r
+ if (pMmsData)\r
+ {\r
+ SetMmsData(pMmsData, mmsComposeData);\r
+// if (response != MSG_RESPONSE_SUCCESS)\r
+// {\r
+// msg_release_struct(&pMmsData);\r
+// return response;\r
+// }\r
+ msg_set_mms_struct(pMsgInfo, pMmsData);\r
+ msg_release_struct(&pMmsData);\r
+ }\r
+ else\r
+ {\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return MSG_RESPONSE_INVALID_BODY;\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return MSG_RESPONSE_SUCCESS;\r
+}\r
+\r
+MsgResponse\r
+MmsManager::CreateMms(msg_struct_t pMsgInfo, const MessageComposeData& mmsComposeData, const IList& addressList)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ //1. Fetch recipients\r
+ MsgResponse response = SetRecipientList(pMsgInfo, addressList);\r
+ if (response != MSG_RESPONSE_SUCCESS)\r
+ {\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return response;\r
+ }\r
+\r
+ // 2. Set message type.\r
+ response = SetMessageType(pMsgInfo);\r
+ if (response != MSG_RESPONSE_SUCCESS)\r
+ {\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return response;\r
+ }\r
+\r
+ // 3.Set Subject\r
+ String subJectText = mmsComposeData.GetSubject();\r
+ if (subJectText.GetLength() > 0)\r
+ {\r
+ char* pSubText = CommonUtil::ConvertStringToPointerCharArrayN(subJectText);\r
+ if (msg_set_str_value(pMsgInfo, MSG_MESSAGE_SUBJECT_STR, pSubText, (int) strlen(pSubText)) != MSG_SUCCESS)\r
+ {\r
+ AppLogDebug("Unable to set subject");\r
+ }\r
+ delete[] pSubText;\r
+ }\r
+\r
+ //4. Create MMS DATA\r
+ msg_struct_t pMmsData = null;\r
+ pMmsData = msg_create_struct(MSG_STRUCT_MMS);\r
+ if (pMmsData)\r
+ {\r
+ SetMmsData(pMmsData, mmsComposeData);\r
+// if (response != MSG_RESPONSE_SUCCESS)\r
+// {\r
+// msg_release_struct(&pMmsData);\r
+// return response;\r
+// }\r
+ msg_set_mms_struct(pMsgInfo, pMmsData);\r
+ msg_release_struct(&pMmsData);\r
+ }\r
+ else\r
+ {\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return MSG_RESPONSE_INVALID_BODY;\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return MSG_RESPONSE_SUCCESS;\r
+}\r
+\r
+MsgResponse\r
+MmsManager::SendMessage(const MessageComposeData& mmsData, const IList& addressList, int& msgThreadId, const MmsSendSettings* pMmsSendSetting)\r
+{\r
+ AppLogDebug("ENTER");\r
+ // 1. Create new message\r
+ msg_struct_t pMsgInfo = msg_create_struct(MSG_STRUCT_MESSAGE_INFO);\r
+ if (!pMsgInfo)\r
+ {\r
+ AppLogDebug("msg_new_message fail");\r
+ return MSG_RESPONSE_FAIL;\r
+ }\r
+ msg_error_t err = MSG_SUCCESS;\r
+ // 2. Make SMS\r
+ MsgResponse response = CreateMms(pMsgInfo, mmsData, addressList);\r
+ if (response == MSG_RESPONSE_SUCCESS)\r
+ {\r
+ // 3. Send SMS\r
+ msg_struct_t pRequest = msg_create_struct(MSG_STRUCT_REQUEST_INFO);\r
+ msg_struct_t pSendOpt = NULL;\r
+ msg_get_struct_handle(pRequest, MSG_REQUEST_SENDOPT_HND, &pSendOpt);\r
+ msg_set_bool_value(pSendOpt, MSG_SEND_OPT_SETTING_BOOL, false);\r
+ bool reqDeliveryReport(false);\r
+ if (pMmsSendSetting)\r
+ {\r
+ reqDeliveryReport = pMmsSendSetting->IsMmsDeliveryReportOn();\r
+ }\r
+ msg_set_bool_value(pSendOpt, MSG_SEND_OPT_DELIVER_REQ_BOOL, reqDeliveryReport);\r
+ msg_set_struct_handle(pRequest, MSG_REQUEST_MESSAGE_HND, pMsgInfo);\r
+ err = msg_mms_send_message(__pMsgHandle, pRequest);\r
+ if (err != MSG_SUCCESS)\r
+ {\r
+ AppLogDebug("msg_sms_send_message fail = %d", (int) err);\r
+ response = MSG_RESPONSE_FAIL;\r
+ }\r
+ // Get thread ID\r
+ msg_thread_id_t threadId;\r
+ msg_struct_list_s* pRecepientList = NULL;\r
+ msg_get_list_handle(pMsgInfo, MSG_MESSAGE_ADDR_LIST_STRUCT, (void**) &pRecepientList);\r
+ msg_get_thread_id_by_address(__pMsgHandle, pRecepientList, &threadId);\r
+ AppLogDebug("msg_get_thread_id_by_address err = %d", (int) err);\r
+ if (err == MSG_SUCCESS)\r
+ {\r
+ msgThreadId = (int) threadId;\r
+ }\r
+ // Release send message struct.\r
+ msg_release_struct(&pRequest);\r
+ }\r
+ //4. Release message info.\r
+ err = msg_release_struct(&pMsgInfo);\r
+ if (err != MSG_SUCCESS)\r
+ {\r
+ AppLogDebug("msg_release_message fail = %d", (int) err);\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return response;\r
+}\r
+\r
+MsgResponse\r
+MmsManager::SaveMessage(const MessageComposeData& mmsData, const IList& addressList)\r
+{\r
+ AppLogDebug("ENTER");\r
+ // 1. Create new message\r
+ msg_struct_t pMsgInfo = msg_create_struct(MSG_STRUCT_MESSAGE_INFO);\r
+ if (!pMsgInfo)\r
+ {\r
+ AppLogDebug("msg_new_message fail");\r
+ return MSG_RESPONSE_FAIL;\r
+ }\r
+ msg_error_t err = MSG_SUCCESS;\r
+ // 2. Make SMS\r
+ MsgResponse response = CreateMms(pMsgInfo, mmsData, addressList);\r
+ if (response == MSG_RESPONSE_SUCCESS)\r
+ {\r
+ // 3. Save SMS\r
+ msg_struct_t pSendOpt = msg_create_struct(MSG_STRUCT_SENDOPT);\r
+ msg_set_bool_value(pSendOpt, MSG_SEND_OPT_SETTING_BOOL, false);\r
+ err = msg_add_message(__pMsgHandle, (const msg_struct_t) pMsgInfo, (const msg_struct_t) pSendOpt);\r
+ if (err != MSG_SUCCESS)\r
+ {\r
+ AppLogDebug("msg_add_message fail = %d", (int) err);\r
+ response = MSG_RESPONSE_FAIL;\r
+ }\r
+ // Release struct.\r
+ msg_release_struct(&pSendOpt);\r
+ }\r
+ //4. Release message info.\r
+ err = msg_release_struct(&pMsgInfo);\r
+ if (err != MSG_SUCCESS)\r
+ {\r
+ AppLogDebug("msg_release_message fail = %d", (int) err);\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return response;\r
+}\r
+\r
+MsgResponse\r
+MmsManager::SetMessageType(msg_struct_t pMsgInfo)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ msg_error_t err = MSG_SUCCESS;\r
+ if ((err = msg_set_int_value(pMsgInfo, MSG_MESSAGE_TYPE_INT, MSG_TYPE_MMS)) != MSG_SUCCESS)\r
+ {\r
+ AppLogDebug("msg_set_message_type error=%d", (int) err);\r
+ AppLogDebug("EXIT");\r
+ return MSG_RESPONSE_INVALID_MSG_TYPE;\r
+ }\r
+\r
+ AppLogDebug("EXIT");\r
+ return MSG_RESPONSE_SUCCESS;\r
+}\r
+\r
+MsgResponse\r
+MmsManager::SetMmsData(msg_struct_t pMmsData, const MessageComposeData& mmsComposeData)\r
+{\r
+ AppLogDebug("ENTER");\r
+ // Set SMIL header.\r
+ SetSmilHeader(pMmsData);\r
+\r
+ // add attachement\r
+ const ArrayList* pAttachList = mmsComposeData.GetAttachList();\r
+ if (pAttachList && pAttachList->GetCount() > 0)\r
+ {\r
+ for (int count = 0; count < pAttachList->GetCount(); count++)\r
+ {\r
+ String* pAttachPath = (String*) pAttachList->GetAt(count);\r
+ if (!pAttachPath)\r
+ continue;\r
+ char* pFilePath = CommonUtil::ConvertStringToPointerCharArrayN(*pAttachPath);\r
+ msg_struct_t pAttachment = NULL;\r
+ msg_mms_add_item(pMmsData, MSG_STRUCT_MMS_ATTACH, &pAttachment);\r
+ msg_set_str_value(pAttachment, MSG_MMS_ATTACH_FILEPATH_STR, pFilePath, (int) strlen(pFilePath));\r
+ delete[] pFilePath;\r
+ }\r
+ }\r
+ // Add page\r
+ const ArrayList* pPageList = mmsComposeData.GetPageList();\r
+ if (pPageList && pPageList->GetCount() > 0)\r
+ {\r
+ for (int pageCount = 0; pageCount < pPageList->GetCount(); pageCount++)\r
+ {\r
+ MmsPageData* pPageData = (MmsPageData*) pPageList->GetAt(pageCount);\r
+ if (!pPageData)\r
+ {\r
+ continue;\r
+ }\r
+ msg_struct_t pMmsPage = NULL;\r
+ msg_mms_add_item(pMmsData, MSG_STRUCT_MMS_PAGE, &pMmsPage);\r
+ msg_set_int_value(pMmsPage, MSG_MMS_PAGE_PAGE_DURATION_INT, pPageData->GetPageDuration() * 1000);\r
+\r
+ if (pPageData->GetBodyText().GetLength() > 0)\r
+ {\r
+ // Create Temp file for body text\r
+ String tempFilePath;\r
+ tempFilePath.Format(250, L"%SMMS_TEMP_%d.txt",\r
+ App::GetInstance()->GetAppDataPath().GetPointer(), pageCount);\r
+ File file;\r
+ result r = file.Construct(tempFilePath, L"wb");\r
+ if (r == E_SUCCESS)\r
+ {\r
+ file.Write(pPageData->GetBodyText());\r
+ file.Flush();\r
+ char* pFilePath = CommonUtil::ConvertStringToPointerCharArrayN(tempFilePath);\r
+ msg_struct_t pAddPageText = null;\r
+ msg_mms_add_item(pMmsPage, MSG_STRUCT_MMS_MEDIA, &pAddPageText);\r
+ msg_set_int_value(pAddPageText, MSG_MMS_MEDIA_TYPE_INT, MMS_SMIL_MEDIA_TEXT);\r
+ String textRegionId(IDS_LOCAL_TEXT);\r
+ char* pRegionId = CommonUtil::ConvertStringToPointerCharArrayN(textRegionId);\r
+ msg_set_str_value(pAddPageText, MSG_MMS_MEDIA_REGION_ID_STR, pRegionId, (int) strlen(pRegionId));\r
+ delete[] pRegionId;\r
+ msg_set_str_value(pAddPageText, MSG_MMS_MEDIA_FILEPATH_STR, pFilePath, (int) strlen(pFilePath));\r
+ delete[] pFilePath;\r
+ // Set body SMIL text style\r
+ msg_struct_t pTextStyle = msg_create_struct(MSG_STRUCT_MMS_SMIL_TEXT);\r
+ msg_set_int_value(pTextStyle, MSG_MMS_SMIL_TEXT_COLOR_INT, MSG_COMPOSER_SMIL_DEFAULT_FONT_COLOR);\r
+ msg_set_int_value(pTextStyle, MSG_MMS_SMIL_TEXT_SIZE_INT, MSG_COMPOSER_SMIL_DEFAULT_FONT_SIZE);\r
+ msg_set_int_value(pTextStyle, MSG_MMS_SMIL_TEXT_BOLD_BOOL, MSG_COMPOSER_SMIL_DEFAULT_BOLD);\r
+ msg_set_int_value(pTextStyle, MSG_MMS_SMIL_TEXT_BOLD_BOOL, MSG_COMPOSER_SMIL_DEFAULT_UNDERLINE);\r
+\r
+ msg_set_struct_handle(pAddPageText, MSG_MMS_MEDIA_SMIL_TEXT_HND, pTextStyle);\r
+ msg_release_struct(&pTextStyle);\r
+ }\r
+ }\r
+ // Image(Video)\r
+ if (pPageData->IsImageExist())\r
+ {\r
+ msg_struct_t pAddImage = NULL;\r
+ char* pFilePath = CommonUtil::ConvertStringToPointerCharArrayN(pPageData->GetImagePath());\r
+\r
+ msg_mms_add_item(pMmsPage, MSG_STRUCT_MMS_MEDIA, &pAddImage);\r
+ msg_set_int_value(pAddImage, MSG_MMS_MEDIA_TYPE_INT, MMS_SMIL_MEDIA_IMG);\r
+ String imageRegionId(IDS_LOCAL_IMAGE);\r
+ char* pRegionId = CommonUtil::ConvertStringToPointerCharArrayN(imageRegionId);\r
+ msg_set_str_value(pAddImage, MSG_MMS_MEDIA_REGION_ID_STR, pRegionId, (int) strlen(pRegionId));\r
+ delete[] pRegionId;\r
+ msg_set_str_value(pAddImage, MSG_MMS_MEDIA_FILEPATH_STR, pFilePath, (int) strlen(pFilePath));\r
+ delete[] pFilePath;\r
+ }\r
+ else if (pPageData->IsVideoExist())\r
+ {\r
+ msg_struct_t pAddVideo = NULL;\r
+ char* pFilePath = CommonUtil::ConvertStringToPointerCharArrayN(pPageData->GetVideoPath());\r
+ msg_mms_add_item(pMmsPage, MSG_STRUCT_MMS_MEDIA, &pAddVideo);\r
+ msg_set_int_value(pAddVideo, MSG_MMS_MEDIA_TYPE_INT, MMS_SMIL_MEDIA_VIDEO);\r
+ String imageRegionId(IDS_LOCAL_IMAGE);\r
+ char* pRegionId = CommonUtil::ConvertStringToPointerCharArrayN(imageRegionId);\r
+ msg_set_str_value(pAddVideo, MSG_MMS_MEDIA_REGION_ID_STR, pRegionId, (int) strlen(pRegionId));\r
+ delete[] pRegionId;\r
+ msg_set_str_value(pAddVideo, MSG_MMS_MEDIA_FILEPATH_STR, pFilePath, (int) strlen(pFilePath));\r
+ delete[] pFilePath;\r
+ } // Check Audio File\r
+ if (pPageData->IsAudioExist())\r
+ {\r
+ char* pFilePath = CommonUtil::ConvertStringToPointerCharArrayN(pPageData->GetAudioPath());\r
+ msg_struct_t pAddAudioFile = NULL;\r
+ msg_mms_add_item(pMmsPage, MSG_STRUCT_MMS_MEDIA, &pAddAudioFile);\r
+ msg_set_int_value(pAddAudioFile, MSG_MMS_MEDIA_TYPE_INT, MMS_SMIL_MEDIA_AUDIO);\r
+ msg_set_str_value(pAddAudioFile, MSG_MMS_MEDIA_FILEPATH_STR, pFilePath, (int) strlen(pFilePath));\r
+ delete[] pFilePath;\r
+ }\r
+ }\r
+ }\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return MSG_RESPONSE_SUCCESS;\r
+}\r
+\r
+MsgResponse\r
+MmsManager::SetRecipientList(msg_struct_t pMsgInfo, int threadId)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ msg_error_t err = MSG_SUCCESS;\r
+ MsgResponse response = MSG_RESPONSE_SUCCESS;\r
+ msg_struct_list_s pAddressList = {0};\r
+ msg_thread_id_t thrdId = threadId;\r
+ if ((err = msg_get_address_list(__pMsgHandle, thrdId, &pAddressList)) != MSG_SUCCESS)\r
+ {\r
+ AppLogDebug("msg_get_address_list error=%d", (int) err);\r
+ return MSG_RESPONSE_RECIPIENT_INVALID;\r
+ }\r
+ // Set recipient list here\r
+ if (pAddressList.nCount > 0)\r
+ {\r
+ //4. Set Address\r
+ char recipient[MAX_ADDRESS_VAL_LEN] = {0};\r
+ msg_struct_list_s* pRecepientList = NULL;\r
+ msg_get_list_handle(pMsgInfo, MSG_MESSAGE_ADDR_LIST_STRUCT, (void**) &pRecepientList);\r
+ pRecepientList->nCount = pAddressList.nCount;\r
+ for (int count = 0; count < pAddressList.nCount; count++)\r
+ {\r
+ err = msg_get_str_value(pAddressList.msg_struct_info[count],\r
+ MSG_ADDRESS_INFO_ADDRESS_VALUE_STR, recipient, MAX_ADDRESS_VAL_LEN);\r
+\r
+ if (err != MSG_SUCCESS)\r
+ {\r
+ continue;\r
+ }\r
+ //TODO: Need to check if address type is email or number.\r
+ msg_set_int_value(pRecepientList->msg_struct_info[count], MSG_ADDRESS_INFO_ADDRESS_TYPE_INT, MSG_ADDRESS_TYPE_PLMN);\r
+ msg_set_int_value(pRecepientList->msg_struct_info[count], MSG_ADDRESS_INFO_RECIPIENT_TYPE_INT, MSG_RECIPIENTS_TYPE_TO);\r
+ err = msg_set_str_value(pRecepientList->msg_struct_info[count], MSG_ADDRESS_INFO_ADDRESS_VALUE_STR, recipient, (int) strlen(recipient));\r
+ if (err != MSG_SUCCESS)\r
+ {\r
+ AppLogDebug(" msg_set_str_value error=%d", (int) err);\r
+ response = MSG_RESPONSE_RECIPIENT_INVALID;\r
+ break;\r
+ }\r
+ }\r
+ }\r
+ else\r
+ {\r
+ response = MSG_RESPONSE_RECIPIENT_ZERO;\r
+ }\r
+ // Free memory\r
+ msg_release_list_struct(&pAddressList);\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return response;\r
+}\r
+\r
+MsgResponse\r
+MmsManager::SetRecipientList(msg_struct_t pMsgInfo, const IList& addressList)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ int addressListCount(0);\r
+ if ((addressListCount = addressList.GetCount()) <= 0)\r
+ {\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return MSG_RESPONSE_RECIPIENT_ZERO;\r
+ }\r
+ MsgResponse response = MSG_RESPONSE_SUCCESS;\r
+ msg_error_t err = MSG_SUCCESS;\r
+ msg_struct_list_s* pRecepientList = NULL;\r
+ msg_get_list_handle(pMsgInfo, MSG_MESSAGE_ADDR_LIST_STRUCT, (void**) &pRecepientList);\r
+ pRecepientList->nCount = addressListCount;\r
+ AppLogDebug("Address list count = %d", pRecepientList->nCount);\r
+ for (int count = 0; count < addressListCount; count++)\r
+ {\r
+ const String* pPhoneNumberObj = static_cast<String*>(\r
+ const_cast<Object*>(addressList.GetAt(count)));\r
+ int phoneNumberLen = pPhoneNumberObj->GetLength() * 4 + 1;\r
+ char* pPhoneNumber = new (std::nothrow) char[phoneNumberLen];\r
+ const wchar_t* pNumber = pPhoneNumberObj->GetPointer();\r
+ wcstombs(pPhoneNumber, pNumber, (size_t) phoneNumberLen);\r
+ AppLogDebug("Phone Number = %S", pPhoneNumberObj->GetPointer());\r
+ //TODO: Need to check if address type is email or number.\r
+ msg_set_int_value(pRecepientList->msg_struct_info[count], MSG_ADDRESS_INFO_ADDRESS_TYPE_INT, MSG_ADDRESS_TYPE_PLMN);\r
+ msg_set_int_value(pRecepientList->msg_struct_info[count], MSG_ADDRESS_INFO_RECIPIENT_TYPE_INT, MSG_RECIPIENTS_TYPE_TO);\r
+ if (pPhoneNumber)\r
+ {\r
+ err = msg_set_str_value(pRecepientList->msg_struct_info[count], MSG_ADDRESS_INFO_ADDRESS_VALUE_STR, pPhoneNumber, (int) strlen(pPhoneNumber));\r
+ }\r
+ if (err != MSG_SUCCESS)\r
+ {\r
+ AppLogDebug(" msg_set_str_value error=%d", (int) err);\r
+ response = MSG_RESPONSE_RECIPIENT_INVALID;\r
+ delete[] pPhoneNumber;\r
+ break;\r
+ }\r
+ // Release memory\r
+ delete[] pPhoneNumber;\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return response;\r
+}\r
+\r
+MsgResponse\r
+MmsManager::SetSmilHeader(msg_struct_t pMmsData)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ // Set SMIL header\r
+ // Root layout\r
+ msg_set_int_value(pMmsData, MSG_MMS_ROOTLAYOUT_WIDTH_INT, MSG_COMPOSER_SMIL_SCREEN_WIDTH);\r
+ msg_set_int_value(pMmsData, MSG_MMS_ROOTLAYOUT_HEIGHT_INT, MSG_COMPOSER_SMIL_SCREEN_HEIGHT);\r
+ msg_set_int_value(pMmsData, MSG_MMS_ROOTLAYOUT_BGCOLOR_INT, MSG_COMPOSER_SMIL_DEFAULT_BGCOLOR);\r
+ // Add text region\r
+ msg_struct_t pTextRegion = NULL;\r
+ msg_mms_add_item(pMmsData, MSG_STRUCT_MMS_REGION, &pTextRegion);\r
+ String regionId(IDS_LOCAL_TEXT);\r
+ char* pText = CommonUtil::ConvertStringToPointerCharArrayN(regionId);\r
+ msg_set_str_value(pTextRegion, MSG_MMS_REGION_ID_STR, pText, (int) strlen(pText));\r
+ msg_set_int_value(pTextRegion, MSG_MMS_REGION_LENGTH_LEFT_INT, MSG_COMPOSER_SMIL_POS_LEFT);\r
+ msg_set_int_value(pTextRegion, MSG_MMS_REGION_LENGTH_TOP_INT, MSG_COMPOSER_SMIL_POS_TOP);\r
+ delete[] pText;\r
+\r
+ msg_set_int_value(pTextRegion, MSG_MMS_REGION_LENGTH_WIDTH_INT, MSG_COMPOSER_SMIL_REGION_WIDTH);\r
+ msg_set_int_value(pTextRegion, MSG_MMS_REGION_LENGTH_HEIGHT_INT, MSG_COMPOSER_SMIL_REGION_HEIGHT);\r
+ msg_set_int_value(pTextRegion, MSG_MMS_REGION_BGCOLOR_INT, MSG_COMPOSER_SMIL_DEFAULT_BGCOLOR);\r
+\r
+ // Image(video) region\r
+ msg_struct_t pImageRegion = NULL;\r
+ String imageRegionId(IDS_LOCAL_IMAGE);\r
+ char* pImageId = CommonUtil::ConvertStringToPointerCharArrayN(imageRegionId);\r
+ msg_mms_add_item(pMmsData, MSG_STRUCT_MMS_REGION, &pImageRegion);\r
+ msg_set_str_value(pImageRegion, MSG_MMS_REGION_ID_STR, pImageId, (int) strlen(pImageId));\r
+ msg_set_int_value(pImageRegion, MSG_MMS_REGION_LENGTH_LEFT_INT, MSG_COMPOSER_SMIL_POS_LEFT);\r
+ msg_set_int_value(pImageRegion, MSG_MMS_REGION_LENGTH_TOP_INT, MSG_COMPOSER_SMIL_POS_BOTTOM);\r
+ delete[] pImageId;\r
+\r
+ msg_set_int_value(pImageRegion, MSG_MMS_REGION_LENGTH_WIDTH_INT, MSG_COMPOSER_SMIL_REGION_WIDTH);\r
+ msg_set_int_value(pImageRegion, MSG_MMS_REGION_LENGTH_HEIGHT_INT, MSG_COMPOSER_SMIL_REGION_HEIGHT);\r
+ msg_set_int_value(pImageRegion, MSG_MMS_REGION_BGCOLOR_INT, MSG_COMPOSER_SMIL_DEFAULT_BGCOLOR);\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return MSG_RESPONSE_SUCCESS;\r
+}\r
+\r
+\r
+MsgResponse\r
+MmsManager::ReSendMessage(int messageId)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ MsgResponse response = MSG_RESPONSE_SUCCESS;\r
+ msg_struct_t pFaildMsg = msg_create_struct(MSG_STRUCT_MESSAGE_INFO);\r
+ msg_struct_t pSendOpt = msg_create_struct(MSG_STRUCT_SENDOPT);\r
+ msg_message_id_t msgId = messageId;\r
+ msg_error_t err = msg_get_message(__pMsgHandle, msgId, pFaildMsg, pSendOpt);\r
+ if (err == MSG_SUCCESS)\r
+ {\r
+ msg_struct_t pResenRequest = msg_create_struct(MSG_STRUCT_REQUEST_INFO);\r
+ msg_set_struct_handle(pResenRequest, MSG_REQUEST_MESSAGE_HND, pFaildMsg);\r
+ msg_set_struct_handle(pResenRequest, MSG_REQUEST_SENDOPT_HND, pSendOpt);\r
+ err = msg_mms_send_message(__pMsgHandle, pResenRequest);\r
+ if (err != MSG_SUCCESS)\r
+ {\r
+ AppLog("msg_mms_send_message fail = %d", (int) err);\r
+ response = MSG_RESPONSE_FAIL;\r
+ }\r
+ msg_release_struct(&pResenRequest);\r
+ }\r
+ else\r
+ {\r
+ AppLog("msg_get_message fail = %d", (int) err);\r
+ response = MSG_RESPONSE_FAIL;\r
+ }\r
+ msg_release_struct(&pSendOpt);\r
+ msg_release_struct(&pFaildMsg);\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return response;\r
+}\r
--- /dev/null
+//\r
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.\r
+//\r
+// Licensed under the Flora License, Version 1.0 (the License);\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+// http://floralicense.org/license/\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an AS IS BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+//\r
+\r
+#include <msg.h>\r
+#include <FBaseErrorDefine.h>\r
+#include <FBaseResult.h>\r
+\r
+#include "MsgMmsReceiveSettings.h"\r
+\r
+using namespace Tizen::Base;\r
+\r
+MmsReceiveSettings::MmsReceiveSettings(msg_struct_t pMmsRecvSetting)\r
+ : __pMmsRecvSetting(pMmsRecvSetting)\r
+{\r
+ //Empty implementation\r
+}\r
+\r
+MmsReceiveSettings::~MmsReceiveSettings(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ if (__pMmsRecvSetting)\r
+ {\r
+ msg_release_struct(&__pMmsRecvSetting);\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
+\r
+msg_struct_t\r
+MmsReceiveSettings::GetMmsRecvOpt(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return __pMmsRecvSetting;\r
+}\r
+\r
+int\r
+MmsReceiveSettings::GetMmsHomeNetworkRetrieveType(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ int retrieveType(MSG_HOME_AUTO_DOWNLOAD);\r
+ msg_get_int_value(__pMmsRecvSetting, MSG_MMS_RECVOPT_HOME_RETRIEVE_TYPE_INT, &retrieveType);\r
+\r
+ AppLogDebug("EXIT: r = %s ", GetErrorMessage(GetLastResult()));\r
+ return retrieveType;\r
+}\r
+\r
+int\r
+MmsReceiveSettings::GetMmsForigenNetworkRetrieveType(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ int retrieveType(MSG_ABROAD_AUTO_DOWNLOAD);\r
+ msg_get_int_value(__pMmsRecvSetting, MSG_MMS_RECVOPT_ABROAD_RETRIEVE_TYPE_INT, &retrieveType);\r
+\r
+ AppLogDebug("EXIT: r = %s ", GetErrorMessage(GetLastResult()));\r
+ return retrieveType;\r
+}\r
+\r
+bool\r
+MmsReceiveSettings::IsMmsReadReportRequestOn(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ bool readReport(false);\r
+ msg_get_bool_value(__pMmsRecvSetting, MSG_MMS_RECVOPT_READ_REPORT_BOOL, &readReport);\r
+\r
+ AppLogDebug("EXIT: r = %s ", GetErrorMessage(GetLastResult()));\r
+ return readReport;\r
+}\r
+\r
+result\r
+MmsReceiveSettings::SetMmsHomeNetworkRetrieveType(int newType)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ result r = E_SUCCESS;\r
+ msg_error_t err;\r
+ err = msg_set_int_value(__pMmsRecvSetting, MSG_MMS_RECVOPT_HOME_RETRIEVE_TYPE_INT, newType);\r
+ if (err != MSG_SUCCESS)\r
+ {\r
+ AppLogDebug("Home retrieve type setting error [%d]", (int) err);\r
+ }\r
+\r
+ r = GetLastResult();\r
+ AppLogDebug("EXIT: r = %s ", GetErrorMessage(r));\r
+ return r;\r
+}\r
+\r
+result\r
+MmsReceiveSettings::SetMmsForigenNetworkRetrieveType(int newType)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ result r = E_SUCCESS;\r
+ msg_error_t err;\r
+ err = msg_set_int_value(__pMmsRecvSetting, MSG_MMS_RECVOPT_ABROAD_RETRIEVE_TYPE_INT, newType);\r
+ if (err != MSG_SUCCESS)\r
+ {\r
+ AppLogDebug("Abroad retrieve type setting error [%d]", (int) err);\r
+ }\r
+\r
+ r = GetLastResult();\r
+ AppLogDebug("EXIT: r = %s ", GetErrorMessage(r));\r
+ return r;\r
+}\r
+\r
+\r
+result\r
+MmsReceiveSettings::SetMmsReadReportRequestStatus(bool status)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ result r = E_SUCCESS;\r
+ msg_error_t err;\r
+ err = msg_set_bool_value(__pMmsRecvSetting, MSG_MMS_RECVOPT_READ_REPORT_BOOL, status);\r
+ if (err != MSG_SUCCESS)\r
+ {\r
+ AppLogDebug("Read report request setting error [%d]", (int) err);\r
+ }\r
+\r
+ r = GetLastResult();\r
+ AppLogDebug("EXIT: r = %s ", GetErrorMessage(r));\r
+ return r;\r
+}\r
--- /dev/null
+//\r
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.\r
+//\r
+// Licensed under the Flora License, Version 1.0 (the License);\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+// http://floralicense.org/license/\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an AS IS BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+//\r
+\r
+#include <msg.h>\r
+#include <FBaseErrorDefine.h>\r
+#include <FBaseResult.h>\r
+\r
+#include "MsgMmsSendSettings.h"\r
+\r
+using namespace Tizen::Base;\r
+\r
+MmsSendSettings::MmsSendSettings(msg_struct_t pMmsSendSetting)\r
+ : __pMmsSendSetting(pMmsSendSetting)\r
+{\r
+ //Empty implementation\r
+}\r
+\r
+MmsSendSettings::~MmsSendSettings(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ if (__pMmsSendSetting)\r
+ {\r
+ msg_release_struct(&__pMmsSendSetting);\r
+ __pMmsSendSetting = NULL;\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
+\r
+msg_struct_t\r
+MmsSendSettings::GetMmsSendOpt(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return __pMmsSendSetting;\r
+}\r
+\r
+bool\r
+MmsSendSettings::IsMmsDeliveryReportOn(void) const\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ bool deliveryReport(false);\r
+ msg_get_bool_value(__pMmsSendSetting, MSG_MMS_SENDOPT_DELIVERY_REPORT_BOOL, &deliveryReport);\r
+\r
+ AppLogDebug("EXIT: r = %s ", GetErrorMessage(GetLastResult()));\r
+ return deliveryReport;\r
+\r
+}\r
+\r
+bool\r
+MmsSendSettings::IsMmsReadReportSendOn(void) const\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ bool report(false);\r
+ msg_get_bool_value(__pMmsSendSetting, MSG_MMS_SENDOPT_READ_REPLY_BOOL, &report);\r
+\r
+ AppLogDebug("EXIT: r = %s ", GetErrorMessage(GetLastResult()));\r
+ return report;\r
+\r
+}\r
+\r
+int\r
+MmsSendSettings::GetMmsCreationModeType(void) const\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ int creationMode(MSG_ENCODE_GSM7BIT);\r
+ msg_get_int_value(__pMmsSendSetting, MSG_MMS_SENDOPT_CREATION_MODE_INT, &creationMode);\r
+\r
+ AppLogDebug("EXIT: r = %s ", GetErrorMessage(GetLastResult()));\r
+ return creationMode;\r
+\r
+}\r
+\r
+result\r
+MmsSendSettings::SetMmsDeliveryReportStatus(bool status)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ result r = E_SUCCESS;\r
+ msg_error_t err;\r
+ err = msg_set_bool_value(__pMmsSendSetting, MSG_MMS_SENDOPT_DELIVERY_REPORT_BOOL, status);\r
+ if (err != MSG_SUCCESS)\r
+ {\r
+ AppLogDebug("Delivery report setting error [%d]", (int) err);\r
+ }\r
+\r
+ r = GetLastResult();\r
+ AppLogDebug("EXIT: r = %s ", GetErrorMessage(r));\r
+ return r;\r
+\r
+}\r
+\r
+result\r
+MmsSendSettings::SetMmsReadReportSendStatus(bool status)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ result r = E_SUCCESS;\r
+ msg_error_t err;\r
+ err = msg_set_bool_value(__pMmsSendSetting, MSG_MMS_SENDOPT_READ_REPLY_BOOL, status);\r
+ if (err != MSG_SUCCESS)\r
+ {\r
+ AppLogDebug("Delivery report setting error [%d]", (int) err);\r
+ }\r
+\r
+ r = GetLastResult();\r
+ AppLogDebug("EXIT: r = %s ", GetErrorMessage(r));\r
+ return r;\r
+\r
+}\r
+\r
+result\r
+MmsSendSettings::SetMmsCreationModeType(int newType)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ result r = E_SUCCESS;\r
+ msg_error_t err;\r
+ err = msg_set_int_value(__pMmsSendSetting, MSG_MMS_SENDOPT_CREATION_MODE_INT, newType);\r
+ if (err != MSG_SUCCESS)\r
+ {\r
+ AppLogDebug("Creation mode setting error [%d]", (int) err);\r
+ }\r
+\r
+ r = GetLastResult();\r
+ AppLogDebug("EXIT: r = %s ", GetErrorMessage(r));\r
+ return r;\r
+\r
+}\r
--- /dev/null
+//\r
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.\r
+//\r
+// Licensed under the Flora License, Version 1.0 (the License);\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+// http://floralicense.org/license/\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an AS IS BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+//\r
+\r
+#include <FApp.h>\r
+\r
+#include <FUiCtrlFooter.h>\r
+#include <FUiCtrlGroupedTableView.h>\r
+#include <FUiCtrlHeader.h>\r
+#include <FUiCtrlLabel.h>\r
+#include <FUiCtrlTableViewGroupItem.h>\r
+#include <FUiCtrlTableViewItem.h>\r
+#include <FUiScenesBackwardSceneTransition.h>\r
+#include <FUiScenesForwardSceneTransition.h>\r
+#include <FUiScenesSceneManager.h>\r
+\r
+#include "MsgBitmapUtility.h"\r
+#include "MsgCustomTableViewItem.h"\r
+#include "MsgMmsReceiveSettings.h"\r
+#include "MsgMmsSendSettings.h"\r
+#include "MsgMultimediaSettingsForm.h"\r
+#include "MsgSettingPresentationModel.h"\r
+#include "MsgSettingsItemList.h"\r
+#include "MsgTypes.h"\r
+\r
+using namespace Tizen::App;\r
+using namespace Tizen::Base;\r
+using namespace Tizen::Base::Collection;\r
+using namespace Tizen::Graphics;\r
+using namespace Tizen::Ui::Controls;\r
+using namespace Tizen::Ui::Scenes;\r
+\r
+MutimediaSettingsForm::MutimediaSettingsForm(MutimediaSettingFormType formType)\r
+ : __settingFormType(formType)\r
+ , __pSettingGroupTabledView(null)\r
+ , __pSettingItemsArray(null)\r
+{\r
+ //Empty implementation\r
+}\r
+\r
+MutimediaSettingsForm::~MutimediaSettingsForm(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+ if (__pSettingItemsArray)\r
+ {\r
+ delete __pSettingItemsArray;\r
+ }\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
+\r
+bool\r
+MutimediaSettingsForm::Initialize(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ bool status(true);\r
+ result r = Construct(L"IDL_SETTINGS_FORM");\r
+ if (!IsFailed(r))\r
+ {\r
+ Control* pEmptyBgCntl = GetControl(L"IDC_LISTVIEW_EMPTY_BG");\r
+ if (pEmptyBgCntl)\r
+ {\r
+ pEmptyBgCntl->SetShowState(false);\r
+ }\r
+ switch (__settingFormType)\r
+ {\r
+ case MULTIMEDIA_SETTING_MESSAGES_FORM:\r
+ {\r
+ status = InitializeMultimediaSettingItems();\r
+ }\r
+ break;\r
+\r
+ case MULTIMEDIA_SETTING_RECEIVE_OPTIONS_FORM:\r
+ {\r
+ status = InitializMultimediaReceiveSettingItems();\r
+ }\r
+ break;\r
+\r
+ case MULTIMEDIA_SETTING_READ_REPORT_FORM:\r
+ {\r
+ status = InitializMultimediaReadReportSettingItems();\r
+ }\r
+ break;\r
+\r
+ default:\r
+ break;\r
+ }\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return status;\r
+}\r
+\r
+result\r
+MutimediaSettingsForm::OnInitializing(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ result r = E_SUCCESS;\r
+ r = BaseForm::InitializeBase();\r
+ __pSettingGroupTabledView = static_cast<GroupedTableView*>(GetControl(L"IDC_GROUPEDTABLEVIEW_SETTINGS"));\r
+ __pSettingGroupTabledView->SetBackgroundColor(COLOR_LIST_BG);\r
+ __pSettingGroupTabledView->SetItemProvider(this);\r
+ __pSettingGroupTabledView->AddGroupedTableViewItemEventListener(*this);\r
+ __pSettingGroupTabledView->UpdateTableView();\r
+ __pSettingGroupTabledView->CollapseAllGroup();\r
+ // Load intial setting data.\r
+ if (__pSettingItemsArray)\r
+ {\r
+ __pSettingGroupTabledView->CollapseAllGroup();\r
+ LoadCurrentSettings();\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return r;\r
+}\r
+\r
+result\r
+MutimediaSettingsForm::OnTerminating(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ result r = E_SUCCESS;\r
+ // TODO: Add your termination code here\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return r;\r
+}\r
+\r
+void\r
+MutimediaSettingsForm::OnIntializeFooter(Footer& footer)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ // Set event listener\r
+ footer.AddActionEventListener(*this);\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
+\r
+void\r
+MutimediaSettingsForm::OnIntializeHeader(Header& header)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ // Set event listener\r
+ header.AddActionEventListener(*this);\r
+\r
+ String titleText;\r
+ // Empty implementation.\r
+ switch (__settingFormType)\r
+ {\r
+ case MULTIMEDIA_SETTING_MESSAGES_FORM:\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_BODY_SETTINGS_MULTIMEDIAMESSAGE", titleText);\r
+ break;\r
+\r
+ case MULTIMEDIA_SETTING_RECEIVE_OPTIONS_FORM:\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_BODY_RECEIVINGOPTIONS", titleText);\r
+ break;\r
+\r
+ case MULTIMEDIA_SETTING_READ_REPORT_FORM:\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_BODY_READ_REPORT", titleText);\r
+ break;\r
+ }\r
+ header.SetTitleText(titleText);\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
+\r
+void\r
+MutimediaSettingsForm::OnSceneActivatedN(const SceneId& previousSceneId,\r
+ const SceneId& currentSceneId, IList* pArgs)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ if (pArgs)\r
+ {\r
+ delete pArgs;\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return;\r
+}\r
+\r
+void\r
+MutimediaSettingsForm::OnSceneDeactivated(const SceneId& currentSceneId,\r
+ const SceneId& nextSceneId)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return;\r
+}\r
+\r
+void\r
+MutimediaSettingsForm::OnFormBackRequested(Form& source)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ HandleBackNavigation();\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return;\r
+}\r
+\r
+bool\r
+MutimediaSettingsForm::InitializeMultimediaSettingItems(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ String strText;\r
+ __pSettingItemsArray = new (std::nothrow) SettingItemsList();\r
+ int groupIndex = __pSettingItemsArray->AddGroup(IDS_BLANK);\r
+ if (groupIndex >= 0)\r
+ {\r
+\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_BODY_RECEIVINGOPTIONS", strText);\r
+ SettingItem* settingItem = new (std::nothrow) SettingItem(IDA_SETTINGS_MULTIMEDIA_RECV_OPTIONS, strText, SETTING_STYLE_NORMAL);\r
+ __pSettingItemsArray->AddItem(groupIndex, *settingItem);\r
+\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_BODY_DELIVERY_REPORT", strText);\r
+ settingItem = new (std::nothrow) SettingItem(IDA_SETTINGS_MULTIMEDIA_DELIVERY_REPORT, strText, SETTING_STYLE_ONOFF_SLIDING);\r
+ __pSettingItemsArray->AddItem(groupIndex, *settingItem);\r
+\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_BODY_READ_REPORT", strText);\r
+ settingItem = new (std::nothrow) SettingItem(IDA_SETTINGS_MULTIMEDIA_READ_REPORT, strText, SETTING_STYLE_NORMAL);\r
+ __pSettingItemsArray->AddItem(groupIndex, *settingItem);\r
+\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_BODY_MMSCREATIONMODE", strText);\r
+ settingItem = new (std::nothrow) SettingItem(IDA_SETTINGS_MULTIMEDIA_CREATION_MODE, strText,\r
+ SETTING_STYLE_EXPANDABLE,\r
+ SETTING_STATUS_ITEM_CREATION_MODE);\r
+ __pSettingItemsArray->AddItem(groupIndex, *settingItem);\r
+\r
+ groupIndex = __pSettingItemsArray->AddGroup("", SETTING_GROUP_STYLE_NORMAL, false);\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_BODY_MMSCCCREATIONMODEFREE", strText);\r
+ settingItem = new (std::nothrow) SettingItem(IDA_SETTINGS_CREATION_MODE_FREE, strText, SETTING_STYLE_RADIO);\r
+ __pSettingItemsArray->AddItem(groupIndex, *settingItem);\r
+\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_BODY_MMSCCCREATIONMODEWARNING", strText);\r
+ settingItem = new (std::nothrow) SettingItem(IDA_SETTINGS_CREATION_MODE_WARNING, strText, SETTING_STYLE_RADIO);\r
+ __pSettingItemsArray->AddItem(groupIndex, *settingItem);\r
+\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_BODY_ROAMINGRECEPTION_RESTRICTED", strText);\r
+ settingItem = new (std::nothrow) SettingItem(IDA_SETTINGS_CREATION_MODE_RESTRICTED, strText, SETTING_STYLE_RADIO);\r
+ __pSettingItemsArray->AddItem(groupIndex, *settingItem);\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return true;\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return false;\r
+}\r
+\r
+bool\r
+MutimediaSettingsForm::InitializMultimediaReceiveSettingItems(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ String strText;\r
+ __pSettingItemsArray = new (std::nothrow) SettingItemsList();\r
+\r
+ int groupIndex = __pSettingItemsArray->AddGroup(IDS_BLANK);\r
+ if (groupIndex >= 0)\r
+ {\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_OPT_HOME_NETWORK", strText);\r
+ SettingItem* settingItem = new (std::nothrow) SettingItem(IDA_SETTINGS_MULTIMEDIA_RECV_HOME_NETWORK, strText,\r
+ SETTING_STYLE_EXPANDABLE,\r
+ SETTING_STATUS_ITEM_HOME_NETWORK);\r
+ __pSettingItemsArray->AddItem(groupIndex, *settingItem);\r
+\r
+ groupIndex = __pSettingItemsArray->AddGroup(L"", SETTING_GROUP_STYLE_NORMAL, false);\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_BODY_AUTODOWNLOAD", strText);\r
+ settingItem = new (std::nothrow) SettingItem(IDA_SETTINGS_HOME_NETWORK_AUTO_DOWNLOAD, strText,\r
+ SETTING_STYLE_RADIO);\r
+ __pSettingItemsArray->AddItem(groupIndex, *settingItem);\r
+\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_BODY_RECEIVINGOPTIONNETWORK_MANUAL", strText);\r
+ settingItem = new (std::nothrow) SettingItem(IDA_SETTINGS_HOME_NETWORK_MANUAL, strText,\r
+ SETTING_STYLE_RADIO);\r
+ __pSettingItemsArray->AddItem(groupIndex, *settingItem);\r
+\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_BODY_RECEIVINGOPTIONNETWORK_REJECT", strText);\r
+ settingItem = new (std::nothrow) SettingItem(IDA_SETTINGS_HOME_NETWORK_REJECT, strText,\r
+ SETTING_STYLE_RADIO);\r
+ __pSettingItemsArray->AddItem(groupIndex, *settingItem);\r
+\r
+ groupIndex = __pSettingItemsArray->AddGroup(IDS_BLANK);\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_OPT_ROAM_NETWORK", strText);\r
+ settingItem = new (std::nothrow) SettingItem(IDA_SETTINGS_MULTIMEDIA_RECV_FOREIGN_NETWORK, strText,\r
+ SETTING_STYLE_EXPANDABLE,\r
+ SETTING_STATUS_ITEM_FORIGEN_NETWORK);\r
+ __pSettingItemsArray->AddItem(groupIndex, *settingItem);\r
+\r
+ groupIndex = __pSettingItemsArray->AddGroup(IDS_BLANK, SETTING_GROUP_STYLE_NORMAL, false);\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_BODY_AUTODOWNLOAD", strText);\r
+ settingItem = new (std::nothrow) SettingItem(IDA_SETTINGS_FOREIGN_NETWORK_AUTO_DOWNLOAD, strText,\r
+ SETTING_STYLE_RADIO);\r
+ __pSettingItemsArray->AddItem(groupIndex, *settingItem);\r
+\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_BODY_RECEIVINGOPTIONNETWORK_MANUAL", strText);\r
+ settingItem = new (std::nothrow) SettingItem(IDA_SETTINGS_FOREIGN_NETWORK_MANUAL, strText,\r
+ SETTING_STYLE_RADIO);\r
+ __pSettingItemsArray->AddItem(groupIndex, *settingItem);\r
+\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_BODY_ROAMINGRECEPTION_RESTRICTED", strText);\r
+ settingItem = new (std::nothrow) SettingItem(IDA_SETTINGS_FOREIGN_NETWORK_RESTRICTED, strText,\r
+ SETTING_STYLE_RADIO);\r
+ __pSettingItemsArray->AddItem(groupIndex, *settingItem);\r
+\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_BODY_RECEIVINGOPTIONNETWORK_REJECT", strText);\r
+ settingItem = new (std::nothrow) SettingItem(IDA_SETTINGS_FOREIGN_NETWORK_REJECT, strText,\r
+ SETTING_STYLE_RADIO);\r
+ __pSettingItemsArray->AddItem(groupIndex, *settingItem);\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return true;\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return false;\r
+}\r
+\r
+bool\r
+MutimediaSettingsForm::InitializMultimediaReadReportSettingItems(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ __pSettingItemsArray = new (std::nothrow) SettingItemsList();\r
+ int groupIndex = __pSettingItemsArray->AddGroup(IDS_BLANK);\r
+ if (groupIndex >= 0)\r
+ {\r
+ String strText;\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_BODY_REQUEST_READ_REPORT", strText);\r
+ SettingItem* settingItem = new (std::nothrow) SettingItem(IDA_SETTINGS_READ_REPORT_REQUEST, strText, SETTING_STYLE_ONOFF_SLIDING);\r
+ __pSettingItemsArray->AddItem(groupIndex, *settingItem);\r
+\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_BODY_SEND_READ_REPORT", strText);\r
+ settingItem = new (std::nothrow) SettingItem(IDA_SETTINGS_READ_REPORT_SEND, strText, SETTING_STYLE_ONOFF_SLIDING);\r
+ __pSettingItemsArray->AddItem(groupIndex, *settingItem);\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return true;\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return false;\r
+}\r
+\r
+void\r
+MutimediaSettingsForm::HandleBackNavigation(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ SettingPresentationModel* pSettingPrModel = SettingPresentationModel::GetInstance();\r
+ pSettingPrModel->SaveMmsReceiveSettings();\r
+ pSettingPrModel->SaveMmsSendSettings();\r
+\r
+ SceneManager* pSceneManager = SceneManager::GetInstance();\r
+ switch (__settingFormType)\r
+ {\r
+\r
+ case MULTIMEDIA_SETTING_MESSAGES_FORM:\r
+ {\r
+ pSceneManager->GoBackward(BackwardSceneTransition(IDSCN_SETTINGS, SCENE_TRANSITION_ANIMATION_TYPE_NONE));\r
+\r
+ }\r
+ break;\r
+\r
+ case MULTIMEDIA_SETTING_RECEIVE_OPTIONS_FORM:\r
+ case MULTIMEDIA_SETTING_READ_REPORT_FORM:\r
+ {\r
+ pSceneManager->GoBackward(BackwardSceneTransition(IDSCN_SETTINGS_MULTIMEDIA_MESSAGE, SCENE_TRANSITION_ANIMATION_TYPE_NONE));\r
+\r
+ }\r
+ break;\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
+\r
+void\r
+MutimediaSettingsForm::HandleSettingItemSelection(int groupIndex, int itemIndex, TableViewItemStatus status)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ SettingItem& settingItem = __pSettingItemsArray->GetItemAt(groupIndex, itemIndex);\r
+\r
+ switch (settingItem.GetActionId())\r
+ {\r
+ case IDA_SETTINGS_MULTIMEDIA_RECV_OPTIONS:\r
+ {\r
+ SceneManager* pSceneManager = SceneManager::GetInstance();\r
+ pSceneManager->GoForward(ForwardSceneTransition(IDSCN_SETTINGS_MULTIMEDIA_RECEIVING_OPTIONS, SCENE_TRANSITION_ANIMATION_TYPE_NONE), null);\r
+\r
+ }\r
+ break;\r
+\r
+ case IDA_SETTINGS_HOME_NETWORK_AUTO_DOWNLOAD:\r
+ {\r
+ if (status == TABLE_VIEW_ITEM_STATUS_CHECKED || status == TABLE_VIEW_ITEM_STATUS_UNCHECKED)\r
+ {\r
+ MmsReceiveSettings* pMmsReceiveSettings = SettingPresentationModel::GetInstance()->GetMmsReceiveSettings();\r
+ if (pMmsReceiveSettings)\r
+ {\r
+ pMmsReceiveSettings->SetMmsHomeNetworkRetrieveType(SETTING_RECV_DOWNLOAD_AUTO);\r
+ }\r
+ CheckedRadioGroupItem(groupIndex, itemIndex);\r
+ }\r
+ }\r
+ break;\r
+\r
+ case IDA_SETTINGS_HOME_NETWORK_MANUAL:\r
+ {\r
+ if (status == TABLE_VIEW_ITEM_STATUS_CHECKED || status == TABLE_VIEW_ITEM_STATUS_UNCHECKED)\r
+ {\r
+ MmsReceiveSettings* pMmsReceiveSettings = SettingPresentationModel::GetInstance()->GetMmsReceiveSettings();\r
+ if (pMmsReceiveSettings)\r
+ {\r
+ pMmsReceiveSettings->SetMmsHomeNetworkRetrieveType(SETTING_RECV_DOWNLOAD_MANUAL);\r
+ }\r
+ CheckedRadioGroupItem(groupIndex, itemIndex);\r
+ }\r
+ }\r
+ break;\r
+\r
+ case IDA_SETTINGS_HOME_NETWORK_REJECT:\r
+ {\r
+ if (status == TABLE_VIEW_ITEM_STATUS_CHECKED || status == TABLE_VIEW_ITEM_STATUS_UNCHECKED)\r
+ {\r
+ MmsReceiveSettings* pMmsReceiveSettings = SettingPresentationModel::GetInstance()->GetMmsReceiveSettings();\r
+ if (pMmsReceiveSettings)\r
+ {\r
+ pMmsReceiveSettings->SetMmsHomeNetworkRetrieveType(SETTING_RECV_DOWNLOAD_REJECT);\r
+ }\r
+ CheckedRadioGroupItem(groupIndex, itemIndex);\r
+ }\r
+ }\r
+ break;\r
+\r
+ case IDA_SETTINGS_FOREIGN_NETWORK_AUTO_DOWNLOAD:\r
+ {\r
+ if (status == TABLE_VIEW_ITEM_STATUS_CHECKED || status == TABLE_VIEW_ITEM_STATUS_UNCHECKED)\r
+ {\r
+ MmsReceiveSettings* pMmsReceiveSettings = SettingPresentationModel::GetInstance()->GetMmsReceiveSettings();\r
+ if (pMmsReceiveSettings)\r
+ {\r
+ pMmsReceiveSettings->SetMmsForigenNetworkRetrieveType(SETTING_RECV_DOWNLOAD_AUTO);\r
+ }\r
+ CheckedRadioGroupItem(groupIndex, itemIndex);\r
+ }\r
+ }\r
+ break;\r
+\r
+ case IDA_SETTINGS_FOREIGN_NETWORK_MANUAL:\r
+ {\r
+ if (status == TABLE_VIEW_ITEM_STATUS_CHECKED || status == TABLE_VIEW_ITEM_STATUS_UNCHECKED)\r
+ {\r
+ MmsReceiveSettings* pMmsReceiveSettings = SettingPresentationModel::GetInstance()->GetMmsReceiveSettings();\r
+ if (pMmsReceiveSettings)\r
+ {\r
+ pMmsReceiveSettings->SetMmsForigenNetworkRetrieveType(SETTING_RECV_DOWNLOAD_MANUAL);\r
+ }\r
+ CheckedRadioGroupItem(groupIndex, itemIndex);\r
+ }\r
+ }\r
+ break;\r
+\r
+ case IDA_SETTINGS_FOREIGN_NETWORK_RESTRICTED:\r
+ {\r
+ if (status == TABLE_VIEW_ITEM_STATUS_CHECKED || status == TABLE_VIEW_ITEM_STATUS_UNCHECKED)\r
+ {\r
+ MmsReceiveSettings* pMmsReceiveSettings = SettingPresentationModel::GetInstance()->GetMmsReceiveSettings();\r
+ if (pMmsReceiveSettings)\r
+ {\r
+ pMmsReceiveSettings->SetMmsForigenNetworkRetrieveType(SETTING_RECV_DOWNLOAD_RESTRICTED);\r
+ }\r
+ CheckedRadioGroupItem(groupIndex, itemIndex);\r
+ }\r
+ }\r
+ break;\r
+\r
+ case IDA_SETTINGS_FOREIGN_NETWORK_REJECT:\r
+ {\r
+ if (status == TABLE_VIEW_ITEM_STATUS_CHECKED || status == TABLE_VIEW_ITEM_STATUS_UNCHECKED)\r
+ {\r
+ MmsReceiveSettings* pMmsReceiveSettings = SettingPresentationModel::GetInstance()->GetMmsReceiveSettings();\r
+ if (pMmsReceiveSettings)\r
+ {\r
+ pMmsReceiveSettings->SetMmsForigenNetworkRetrieveType(SETTING_RECV_DOWNLOAD_REJECT);\r
+ }\r
+ CheckedRadioGroupItem(groupIndex, itemIndex);\r
+ }\r
+ }\r
+ break;\r
+\r
+ case IDA_SETTINGS_MULTIMEDIA_DELIVERY_REPORT:\r
+ {\r
+ if (status == TABLE_VIEW_ITEM_STATUS_SELECTED)\r
+ {\r
+ bool nextState = !__pSettingGroupTabledView->IsItemChecked(groupIndex, itemIndex);\r
+ __pSettingGroupTabledView->SetItemChecked(groupIndex, itemIndex, nextState);\r
+ MmsSendSettings* pMmsSendSetting = SettingPresentationModel::GetInstance()->GetMmsSendSettings();\r
+ if (pMmsSendSetting)\r
+ {\r
+ pMmsSendSetting->SetMmsDeliveryReportStatus(nextState);\r
+ }\r
+ __pSettingGroupTabledView->RefreshItem(groupIndex, itemIndex, TABLE_VIEW_REFRESH_TYPE_ITEM_MODIFY);\r
+ }\r
+ else if (status == TABLE_VIEW_ITEM_STATUS_CHECKED || status == TABLE_VIEW_ITEM_STATUS_UNCHECKED)\r
+ {\r
+ bool isItemCheck(status == TABLE_VIEW_ITEM_STATUS_CHECKED);\r
+ __pSettingGroupTabledView->SetItemChecked(groupIndex, itemIndex, isItemCheck);\r
+ MmsSendSettings* pMmsSendSetting = SettingPresentationModel::GetInstance()->GetMmsSendSettings();\r
+ if (pMmsSendSetting)\r
+ {\r
+ pMmsSendSetting->SetMmsDeliveryReportStatus(isItemCheck);\r
+ }\r
+ __pSettingGroupTabledView->RefreshItem(groupIndex, itemIndex, TABLE_VIEW_REFRESH_TYPE_ITEM_MODIFY);\r
+ }\r
+ }\r
+ break;\r
+\r
+ case IDA_SETTINGS_MULTIMEDIA_READ_REPORT:\r
+ {\r
+ SceneManager* pSceneManager = SceneManager::GetInstance();\r
+ pSceneManager->GoForward(ForwardSceneTransition(IDSCN_SETTINGS_MULTIMEDIA_READ_REPORT, SCENE_TRANSITION_ANIMATION_TYPE_NONE), null);\r
+\r
+ }\r
+ break;\r
+\r
+ case IDA_SETTINGS_READ_REPORT_REQUEST:\r
+ {\r
+ bool nextState = false;\r
+ if (status == TABLE_VIEW_ITEM_STATUS_SELECTED)\r
+ {\r
+ nextState = !__pSettingGroupTabledView->IsItemChecked(groupIndex, itemIndex);\r
+ }\r
+ else if (status == TABLE_VIEW_ITEM_STATUS_CHECKED || status == TABLE_VIEW_ITEM_STATUS_UNCHECKED)\r
+ {\r
+ nextState = (status == TABLE_VIEW_ITEM_STATUS_CHECKED);\r
+ }\r
+ __pSettingGroupTabledView->SetItemChecked(groupIndex, itemIndex, nextState);\r
+ MmsReceiveSettings* pMmsReceiveSettings = SettingPresentationModel::GetInstance()->GetMmsReceiveSettings();\r
+ if (pMmsReceiveSettings)\r
+ {\r
+ pMmsReceiveSettings->SetMmsReadReportRequestStatus(nextState);\r
+ }\r
+ __pSettingGroupTabledView->RefreshItem(groupIndex, itemIndex, TABLE_VIEW_REFRESH_TYPE_ITEM_MODIFY);\r
+ }\r
+ break;\r
+\r
+ case IDA_SETTINGS_READ_REPORT_SEND:\r
+ {\r
+ bool nextState = false;\r
+ if (status == TABLE_VIEW_ITEM_STATUS_SELECTED)\r
+ {\r
+ nextState = !__pSettingGroupTabledView->IsItemChecked(groupIndex, itemIndex);\r
+ }\r
+ else if (status == TABLE_VIEW_ITEM_STATUS_CHECKED || status == TABLE_VIEW_ITEM_STATUS_UNCHECKED)\r
+ {\r
+ nextState = (status == TABLE_VIEW_ITEM_STATUS_CHECKED);\r
+ }\r
+ __pSettingGroupTabledView->SetItemChecked(groupIndex, itemIndex, nextState);\r
+ MmsSendSettings* pMmsSendSettings = SettingPresentationModel::GetInstance()->GetMmsSendSettings();\r
+ if (pMmsSendSettings)\r
+ {\r
+ pMmsSendSettings->SetMmsReadReportSendStatus(nextState);\r
+ }\r
+ __pSettingGroupTabledView->RefreshItem(groupIndex, itemIndex, TABLE_VIEW_REFRESH_TYPE_ITEM_MODIFY);\r
+ }\r
+ break;\r
+\r
+ case IDA_SETTINGS_MULTIMEDIA_RECV_HOME_NETWORK:\r
+ case IDA_SETTINGS_MULTIMEDIA_RECV_FOREIGN_NETWORK:\r
+ case IDA_SETTINGS_MULTIMEDIA_CREATION_MODE:\r
+ {\r
+ if (__pSettingGroupTabledView->IsGroupExpanded(groupIndex + 1))\r
+ {\r
+ __pSettingGroupTabledView->CollapseGroup(groupIndex + 1);\r
+ __pSettingItemsArray->SetgroupExpandStatus(groupIndex + 1, false);\r
+ }\r
+ else\r
+ {\r
+ __pSettingGroupTabledView->ExpandGroup(groupIndex + 1);\r
+ __pSettingItemsArray->SetgroupExpandStatus(groupIndex + 1, true);\r
+ // __pSettingGroupList->ScrollToItem(groupIndex + 1, __pSettingItemsArray->GetItemCount(groupIndex + 1) - 1);\r
+ }\r
+ __pSettingGroupTabledView->RefreshItem(groupIndex, itemIndex, TABLE_VIEW_REFRESH_TYPE_ITEM_MODIFY);\r
+ }\r
+ break;\r
+\r
+ case IDA_SETTINGS_CREATION_MODE_FREE:\r
+ {\r
+ if (status == TABLE_VIEW_ITEM_STATUS_CHECKED || status == TABLE_VIEW_ITEM_STATUS_UNCHECKED)\r
+ {\r
+ MmsSendSettings* pMmsSendSettings = SettingPresentationModel::GetInstance()->GetMmsSendSettings();\r
+ if (pMmsSendSettings)\r
+ {\r
+ pMmsSendSettings->SetMmsCreationModeType(SETTING_CREATION_MODE_FREE);\r
+ }\r
+ CheckedRadioGroupItem(groupIndex, itemIndex);\r
+ }\r
+ }\r
+ break;\r
+\r
+ case IDA_SETTINGS_CREATION_MODE_WARNING:\r
+ {\r
+ if (status == TABLE_VIEW_ITEM_STATUS_CHECKED || status == TABLE_VIEW_ITEM_STATUS_UNCHECKED)\r
+ {\r
+ MmsSendSettings* pMmsSendSettings = SettingPresentationModel::GetInstance()->GetMmsSendSettings();\r
+ if (pMmsSendSettings)\r
+ {\r
+ pMmsSendSettings->SetMmsCreationModeType(SETTING_CREATION_MODE_WARNING);\r
+ }\r
+ CheckedRadioGroupItem(groupIndex, itemIndex);\r
+ }\r
+ }\r
+ break;\r
+\r
+ case IDA_SETTINGS_CREATION_MODE_RESTRICTED:\r
+ {\r
+ if (status == TABLE_VIEW_ITEM_STATUS_CHECKED || status == TABLE_VIEW_ITEM_STATUS_UNCHECKED)\r
+ {\r
+ MmsSendSettings* pMmsSendSettings = SettingPresentationModel::GetInstance()->GetMmsSendSettings();\r
+ if (pMmsSendSettings)\r
+ {\r
+ pMmsSendSettings->SetMmsCreationModeType(SETTING_CREATION_MODE_RESTRICTED);\r
+ }\r
+ CheckedRadioGroupItem(groupIndex, itemIndex);\r
+ }\r
+ }\r
+ break;\r
+\r
+ default:\r
+ break;\r
+\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return;\r
+}\r
+\r
+\r
+TableViewItem*\r
+MutimediaSettingsForm::CreateItem(int groupIndex, int itemIndex, int itemWidth)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ TableViewItem* pViewItem = null;\r
+ switch (__settingFormType)\r
+ {\r
+ case MULTIMEDIA_SETTING_MESSAGES_FORM:\r
+ case MULTIMEDIA_SETTING_RECEIVE_OPTIONS_FORM:\r
+ case MULTIMEDIA_SETTING_READ_REPORT_FORM:\r
+ pViewItem = CreateSettingItem(groupIndex, itemIndex, itemWidth);\r
+ break;\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return pViewItem;\r
+}\r
+\r
+//From IGroupedListViewItemProvider\r
+int\r
+MutimediaSettingsForm::GetGroupCount(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ int groupCount(0);\r
+ switch (__settingFormType)\r
+ {\r
+ case MULTIMEDIA_SETTING_MESSAGES_FORM:\r
+ case MULTIMEDIA_SETTING_RECEIVE_OPTIONS_FORM:\r
+ case MULTIMEDIA_SETTING_READ_REPORT_FORM:\r
+ groupCount = __pSettingItemsArray->GetGroupCount();\r
+ break;\r
+\r
+ default:\r
+ break;\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return groupCount;\r
+}\r
+\r
+int\r
+MutimediaSettingsForm::GetItemCount(int groupIndex)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ int groupItemCount(0);\r
+ switch (__settingFormType)\r
+ {\r
+ case MULTIMEDIA_SETTING_MESSAGES_FORM:\r
+ case MULTIMEDIA_SETTING_RECEIVE_OPTIONS_FORM:\r
+ case MULTIMEDIA_SETTING_READ_REPORT_FORM:\r
+ groupItemCount = __pSettingItemsArray->GetItemCount(groupIndex);\r
+ break;\r
+\r
+ default:\r
+ break;\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return groupItemCount;\r
+}\r
+\r
+TableViewGroupItem*\r
+MutimediaSettingsForm::CreateGroupItem(int groupIndex, int itemWidth)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ Label* pGroupName = null;\r
+ TableViewGroupItem* pViewGroupItem = new (std::nothrow) TableViewGroupItem();\r
+ switch (__settingFormType)\r
+ {\r
+ case MULTIMEDIA_SETTING_MESSAGES_FORM:\r
+ case MULTIMEDIA_SETTING_RECEIVE_OPTIONS_FORM:\r
+ case MULTIMEDIA_SETTING_READ_REPORT_FORM:\r
+ {\r
+ // For static setting items\r
+ String groupName;\r
+ if (__pSettingItemsArray)\r
+ {\r
+ groupName = __pSettingItemsArray->GetGroupName(groupIndex);\r
+ }\r
+ if (groupName.IsEmpty())\r
+ {\r
+ pViewGroupItem->Construct(Dimension(itemWidth, 1));\r
+ pViewGroupItem->SetShowState(false);\r
+ }\r
+ else\r
+ {\r
+ pViewGroupItem->Construct(Dimension(itemWidth, H_LIST_GROUP));\r
+ pGroupName = new (std::nothrow) Label();\r
+ pGroupName->Construct(Rectangle(0, 0, itemWidth, H_LIST_GROUP), groupName);\r
+ }\r
+ }\r
+ break;\r
+\r
+ default:\r
+ break;\r
+ }\r
+ if (pGroupName)\r
+ {\r
+ pGroupName->SetTextHorizontalAlignment(ALIGNMENT_LEFT);\r
+ pViewGroupItem->AddControl(*pGroupName);\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return pViewGroupItem;\r
+}\r
+\r
+bool\r
+MutimediaSettingsForm::DeleteItem(int groupIndex, int itemIndex, TableViewItem* pItem)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ if (pItem)\r
+ {\r
+ delete pItem;\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return true;\r
+}\r
+\r
+bool\r
+MutimediaSettingsForm::DeleteGroupItem(int groupIndex, TableViewGroupItem* pItem)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ if (pItem)\r
+ {\r
+ delete pItem;\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return true;\r
+}\r
+\r
+void\r
+MutimediaSettingsForm::UpdateItem(int groupIndex, int itemIndex, TableViewItem* pItem)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ switch (__settingFormType)\r
+ {\r
+ case MULTIMEDIA_SETTING_MESSAGES_FORM:\r
+ case MULTIMEDIA_SETTING_RECEIVE_OPTIONS_FORM:\r
+ case MULTIMEDIA_SETTING_READ_REPORT_FORM:\r
+ {\r
+ UpdateSettingItem(groupIndex, itemIndex, pItem);\r
+ }\r
+ break;\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return;\r
+}\r
+\r
+void\r
+MutimediaSettingsForm::UpdateGroupItem(int groupIndex, TableViewGroupItem* pItem)\r
+{\r
+ AppLogDebug("ENTER");\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ // Empty implementation\r
+}\r
+\r
+int\r
+MutimediaSettingsForm::GetDefaultItemHeight(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return H_LIST_ITEM_112PX;\r
+}\r
+\r
+int\r
+MutimediaSettingsForm::GetDefaultGroupItemHeight(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return H_GROUP_HEADER;\r
+}\r
+\r
+//Tableview event\r
+void\r
+MutimediaSettingsForm::OnGroupedTableViewGroupItemStateChanged(GroupedTableView& tableView, int groupIndex,\r
+ TableViewGroupItem* pItem, TableViewItemStatus status)\r
+{\r
+ AppLogDebug("ENTER");\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ // Empty implementation\r
+}\r
+\r
+void\r
+MutimediaSettingsForm::OnGroupedTableViewItemStateChanged(GroupedTableView& tableView, int groupIndex,\r
+ int itemIndex, TableViewItem* pItem, TableViewItemStatus status)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ switch (__settingFormType)\r
+ {\r
+ case MULTIMEDIA_SETTING_RECEIVE_OPTIONS_FORM:\r
+ case MULTIMEDIA_SETTING_MESSAGES_FORM:\r
+ case MULTIMEDIA_SETTING_READ_REPORT_FORM:\r
+ {\r
+ HandleSettingItemSelection(groupIndex, itemIndex, status);\r
+ }\r
+ break;\r
+\r
+ default:\r
+ break;\r
+\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return;\r
+}\r
+\r
+void\r
+MutimediaSettingsForm::OnGroupedTableViewContextItemActivationStateChanged(GroupedTableView& tableView, int groupIndex, int itemIndex,\r
+ TableViewContextItem* pContextItem, bool activated)\r
+{\r
+ AppLogDebug("ENTER");\r
+ // Empty implementation\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
+\r
+TableViewItem*\r
+MutimediaSettingsForm::CreateSettingItem(int groupIndex, int itemIndex, int itemWidth)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ String itemText;\r
+ TableViewAnnexStyle style = TABLE_VIEW_ANNEX_STYLE_NORMAL;\r
+ CustomTableViewItem* pViewItem = new (std::nothrow) CustomTableViewItem();\r
+ SettingItem& settingItem = __pSettingItemsArray->GetItemAt(groupIndex, itemIndex);\r
+ switch (settingItem.GetStyle())\r
+ {\r
+ case SETTING_STYLE_NORMAL:\r
+ style = TABLE_VIEW_ANNEX_STYLE_NORMAL;\r
+ break;\r
+\r
+ case SETTING_STYLE_RADIO:\r
+ style = TABLE_VIEW_ANNEX_STYLE_RADIO;\r
+ break;\r
+\r
+ case SETTING_STYLE_RADIO_DETAILS:\r
+ style = TABLE_VIEW_ANNEX_STYLE_RADIO;\r
+ break;\r
+\r
+ case SETTING_STYLE_ONOFF_SLIDING:\r
+ style = TABLE_VIEW_ANNEX_STYLE_ONOFF_SLIDING;\r
+ break;\r
+\r
+ case SETTING_STYLE_EXPANDABLE:\r
+ style = TABLE_VIEW_ANNEX_STYLE_NORMAL;\r
+ break;\r
+ }\r
+ pViewItem->Construct(Dimension(itemWidth, H_LIST_ITEM_112PX), style);\r
+ pViewItem->SetBackgroundColor(COLOR_LIST_DIALOGUE_GROUP_BG, TABLE_VIEW_ITEM_DRAWING_STATUS_NORMAL);\r
+ // Child control max width.\r
+ itemWidth -= (TableViewItem::GetAnnexWidth(style) + W_LIST_ITEM_GROUP_INDICATOR);\r
+ int settingStatusItem = settingItem.GetStatus();\r
+ if (settingStatusItem == SETTING_STATUS_ITEM_INVALID)\r
+ {\r
+ Label* pSettingName = new (std::nothrow) Label();\r
+ pSettingName->Construct(Rectangle(0, MARGIN_4PX / 2, itemWidth, H_LIST_ITEM_112PX - MARGIN_4PX), settingItem.GetName());\r
+ pSettingName->SetName(IDS_LIST_MAIN_TEXT);\r
+ pSettingName->SetTextHorizontalAlignment(ALIGNMENT_LEFT);\r
+ pSettingName->SetTextConfig(LIST_MAIN_TEXT_FONT_SIZE, LABEL_TEXT_STYLE_NORMAL);\r
+ pViewItem->AddControl(*pSettingName);\r
+ }\r
+ else\r
+ {\r
+ Label* pSettingName = new (std::nothrow) Label();\r
+ pSettingName->Construct(Rectangle(0, 0, itemWidth, H_LIST_ITEM_112PX / 2), settingItem.GetName());\r
+ pSettingName->SetName(IDS_LIST_MAIN_TEXT);\r
+ pSettingName->SetTextHorizontalAlignment(ALIGNMENT_LEFT);\r
+ pSettingName->SetTextConfig(LIST_MAIN_TEXT_FONT_SIZE, LABEL_TEXT_STYLE_NORMAL);\r
+ pViewItem->AddControl(*pSettingName);\r
+\r
+ Label* pSettingStatus = new (std::nothrow) Label();\r
+ pSettingStatus->Construct(Rectangle(0, H_LIST_ITEM_112PX / 2, itemWidth, H_LIST_ITEM_112PX / 2), GetStatusItemText(settingStatusItem));\r
+ pSettingStatus->SetName(IDS_LIST_SUB_TEXT);\r
+ pSettingStatus->SetTextHorizontalAlignment(ALIGNMENT_LEFT);\r
+ pSettingStatus->SetTextConfig(LIST_SUB_TEXT_FONT_SIZE, LABEL_TEXT_STYLE_NORMAL);\r
+ pSettingStatus->SetTextColor(COLOR_SETTING_SUB_TEXT);\r
+ pViewItem->AddControl(*pSettingStatus);\r
+ }\r
+\r
+ if (settingItem.GetStyle() == SETTING_STYLE_EXPANDABLE)\r
+ {\r
+ Bitmap* pNormalIcon = null;\r
+ Bitmap* pPressIcon = null;\r
+ if (__pSettingItemsArray->IsGroupExpanded(groupIndex + 1))\r
+ {\r
+ pNormalIcon = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_LIST_EXPAND_OPENED);\r
+ pPressIcon = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_LIST_EXPAND_OPENED_PRESS);\r
+ }\r
+ else\r
+ {\r
+ pNormalIcon = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_LIST_EXPAND_CLOSE);\r
+ pPressIcon = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_LIST_EXPAND_CLOSE_PRESS);\r
+ }\r
+ pViewItem->EnableExpandViewModeStyle(pNormalIcon, pPressIcon);\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return pViewItem;\r
+}\r
+\r
+\r
+void\r
+MutimediaSettingsForm::CheckedRadioGroupItem(int groupIndex, int itemIndex)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ int groupItemCount = __pSettingItemsArray->GetItemCount(groupIndex);\r
+ for (int index = 0; index < groupItemCount; index++)\r
+ {\r
+ __pSettingGroupTabledView->SetItemChecked(groupIndex, index, (itemIndex == index));\r
+ __pSettingGroupTabledView->RefreshItem(groupIndex, index, TABLE_VIEW_REFRESH_TYPE_ITEM_MODIFY);\r
+ }\r
+ int prvGroupItemCount = __pSettingItemsArray->GetItemCount(groupIndex - 1) - 1;\r
+ __pSettingGroupTabledView->RefreshItem(groupIndex - 1, prvGroupItemCount, TABLE_VIEW_REFRESH_TYPE_ITEM_MODIFY);\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
+\r
+String\r
+MutimediaSettingsForm::GetStatusItemText(int type) const\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ String strText;\r
+ SettingPresentationModel* pSettingPrModel = SettingPresentationModel::GetInstance();\r
+ switch (type)\r
+ {\r
+ case SETTING_STATUS_ITEM_INPUTMODE:\r
+ case SETTING_STATUS_ITEM_SERVICE_CENTER:\r
+ break;\r
+\r
+ case SETTING_STATUS_ITEM_HOME_NETWORK:\r
+ {\r
+ int homeNetworkRetrieveType = pSettingPrModel->GetMmsReceiveSettings()->GetMmsHomeNetworkRetrieveType();\r
+ strText = GetDownloadString(homeNetworkRetrieveType);\r
+ }\r
+ break;\r
+\r
+ case SETTING_STATUS_ITEM_FORIGEN_NETWORK:\r
+ {\r
+ int retrieveType = pSettingPrModel->GetMmsReceiveSettings()->GetMmsForigenNetworkRetrieveType();\r
+ strText = GetDownloadString(retrieveType);\r
+ }\r
+ break;\r
+\r
+ case SETTING_STATUS_ITEM_CREATION_MODE:\r
+ {\r
+ int creationModeType = pSettingPrModel->GetMmsSendSettings()->GetMmsCreationModeType();\r
+ strText = GetCreationModeString(creationModeType);\r
+ }\r
+ break;\r
+\r
+ case SETTING_STATUS_ITEM_INVALID:\r
+ break;\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return strText;\r
+}\r
+\r
+bool\r
+MutimediaSettingsForm::GetItemCheckStatus(int controlId) const\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ bool status(false);\r
+ switch (controlId)\r
+ {\r
+ case IDA_SETTINGS_HOME_NETWORK_AUTO_DOWNLOAD:\r
+ case IDA_SETTINGS_HOME_NETWORK_MANUAL:\r
+ case IDA_SETTINGS_HOME_NETWORK_REJECT:\r
+ case IDA_SETTINGS_FOREIGN_NETWORK_AUTO_DOWNLOAD:\r
+ case IDA_SETTINGS_FOREIGN_NETWORK_MANUAL:\r
+ case IDA_SETTINGS_FOREIGN_NETWORK_RESTRICTED:\r
+ case IDA_SETTINGS_FOREIGN_NETWORK_REJECT:\r
+ case IDA_SETTINGS_READ_REPORT_REQUEST:\r
+ status = GetMmsReceiveStatus(controlId);\r
+ break;\r
+\r
+ case IDA_SETTINGS_MULTIMEDIA_DELIVERY_REPORT:\r
+ case IDA_SETTINGS_READ_REPORT_SEND:\r
+ case IDA_SETTINGS_CREATION_MODE_FREE:\r
+ case IDA_SETTINGS_CREATION_MODE_WARNING:\r
+ case IDA_SETTINGS_CREATION_MODE_RESTRICTED:\r
+ status = GetMmsSendStatus(controlId);\r
+ break;\r
+\r
+ default:\r
+ break;\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return status;\r
+}\r
+bool\r
+MutimediaSettingsForm::GetMmsReceiveStatus(int controlId) const\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ bool status(false);\r
+ SettingPresentationModel* pSettingPrModel = SettingPresentationModel::GetInstance();\r
+ MmsReceiveSettings* pMmsReceiveSettings = pSettingPrModel->GetMmsReceiveSettings();\r
+ if (pMmsReceiveSettings)\r
+ {\r
+ switch (controlId)\r
+ {\r
+ case IDA_SETTINGS_HOME_NETWORK_AUTO_DOWNLOAD:\r
+ status = (pMmsReceiveSettings->GetMmsHomeNetworkRetrieveType() == SETTING_RECV_DOWNLOAD_AUTO);\r
+ break;\r
+\r
+ case IDA_SETTINGS_HOME_NETWORK_MANUAL:\r
+ status = (pMmsReceiveSettings->GetMmsHomeNetworkRetrieveType() == SETTING_RECV_DOWNLOAD_MANUAL);\r
+ break;\r
+\r
+ case IDA_SETTINGS_HOME_NETWORK_REJECT:\r
+ status = (pMmsReceiveSettings->GetMmsHomeNetworkRetrieveType() == SETTING_RECV_DOWNLOAD_REJECT);\r
+ break;\r
+\r
+ case IDA_SETTINGS_FOREIGN_NETWORK_AUTO_DOWNLOAD:\r
+ status = (pMmsReceiveSettings->GetMmsForigenNetworkRetrieveType() == SETTING_RECV_DOWNLOAD_AUTO);\r
+ break;\r
+\r
+ case IDA_SETTINGS_FOREIGN_NETWORK_MANUAL:\r
+ status = (pMmsReceiveSettings->GetMmsForigenNetworkRetrieveType() == SETTING_RECV_DOWNLOAD_MANUAL);\r
+ break;\r
+\r
+ case IDA_SETTINGS_FOREIGN_NETWORK_RESTRICTED:\r
+ status = (pMmsReceiveSettings->GetMmsForigenNetworkRetrieveType() == SETTING_RECV_DOWNLOAD_RESTRICTED);\r
+ break;\r
+\r
+ case IDA_SETTINGS_FOREIGN_NETWORK_REJECT:\r
+ status = (pMmsReceiveSettings->GetMmsForigenNetworkRetrieveType() == SETTING_RECV_DOWNLOAD_REJECT);\r
+ break;\r
+\r
+ case IDA_SETTINGS_READ_REPORT_REQUEST:\r
+ status = pMmsReceiveSettings->IsMmsReadReportRequestOn();\r
+ break;\r
+\r
+ default:\r
+ break;\r
+ }\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return status;\r
+\r
+}\r
+\r
+bool\r
+MutimediaSettingsForm::GetMmsSendStatus(int controlId) const\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ bool status(false);\r
+ SettingPresentationModel* pSettingPrModel = SettingPresentationModel::GetInstance();\r
+ MmsSendSettings* pMmsSendSettings = pSettingPrModel->GetMmsSendSettings();\r
+ if (pMmsSendSettings)\r
+ {\r
+ switch (controlId)\r
+ {\r
+ case IDA_SETTINGS_MULTIMEDIA_DELIVERY_REPORT:\r
+ status = pMmsSendSettings->IsMmsDeliveryReportOn();\r
+ break;\r
+\r
+ case IDA_SETTINGS_READ_REPORT_SEND:\r
+ status = pMmsSendSettings->IsMmsReadReportSendOn();\r
+ break;\r
+\r
+ case IDA_SETTINGS_CREATION_MODE_FREE:\r
+ status = (pMmsSendSettings->GetMmsCreationModeType() == SETTING_CREATION_MODE_FREE);\r
+ break;\r
+\r
+ case IDA_SETTINGS_CREATION_MODE_WARNING:\r
+ status = (pMmsSendSettings->GetMmsCreationModeType() == SETTING_CREATION_MODE_WARNING);\r
+ break;\r
+\r
+ case IDA_SETTINGS_CREATION_MODE_RESTRICTED:\r
+ status = (pMmsSendSettings->GetMmsCreationModeType() == SETTING_CREATION_MODE_RESTRICTED);\r
+ break;\r
+\r
+ default:\r
+ break;\r
+ }\r
+ }\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return status;\r
+}\r
+\r
+\r
+String\r
+MutimediaSettingsForm::GetDownloadString(int type) const\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ String strText;\r
+ switch (type)\r
+ {\r
+ case SETTING_RECV_DOWNLOAD_AUTO:\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_BODY_AUTODOWNLOAD", strText);\r
+ break;\r
+\r
+ case SETTING_RECV_DOWNLOAD_MANUAL:\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_BODY_RECEIVINGOPTIONNETWORK_MANUAL", strText);\r
+ break;\r
+\r
+ case SETTING_RECV_DOWNLOAD_RESTRICTED:\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_BODY_ROAMINGRECEPTION_RESTRICTED", strText);\r
+ break;\r
+\r
+ case SETTING_RECV_DOWNLOAD_REJECT:\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_BODY_RECEIVINGOPTIONNETWORK_REJECT", strText);\r
+ break;\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return strText;\r
+\r
+}\r
+\r
+String\r
+MutimediaSettingsForm::GetCreationModeString(int type) const\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ String strText;\r
+ switch (type)\r
+ {\r
+ case SETTING_CREATION_MODE_FREE:\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_BODY_MMSCCCREATIONMODEFREE", strText);\r
+ break;\r
+\r
+ case SETTING_CREATION_MODE_WARNING:\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_BODY_MMSCCCREATIONMODEWARNING", strText);\r
+ break;\r
+\r
+ case SETTING_CREATION_MODE_RESTRICTED:\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_BODY_ROAMINGRECEPTION_RESTRICTED", strText);\r
+ break;\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return strText;\r
+}\r
+\r
+void\r
+MutimediaSettingsForm::UpdateSettingItem(int groupIndex, int itemIndex, TableViewItem* pViewItem)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ SettingItem& settingItem = __pSettingItemsArray->GetItemAt(groupIndex, itemIndex);\r
+ int settingStatusItem = settingItem.GetStatus();\r
+ Label* pSettingName = (Label*) pViewItem->GetControl(IDS_LIST_MAIN_TEXT);\r
+ if (pSettingName)\r
+ {\r
+ pSettingName->SetText(settingItem.GetName());\r
+ pSettingName->Draw();\r
+ }\r
+ Label* pSettingStatus = static_cast<Label*>(pViewItem->GetControl(IDS_LIST_SUB_TEXT));\r
+ if (pSettingStatus)\r
+ {\r
+ pSettingStatus->SetText(GetStatusItemText(settingStatusItem));\r
+ pSettingStatus->Draw();\r
+ }\r
+ if (settingItem.GetStyle() == SETTING_STYLE_EXPANDABLE)\r
+ {\r
+ Bitmap* pNormalIcon = null;\r
+ Bitmap* pPressIcon = null;\r
+ if (__pSettingItemsArray->IsGroupExpanded(groupIndex + 1))\r
+ {\r
+ pNormalIcon = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_LIST_EXPAND_OPENED);\r
+ pPressIcon = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_LIST_EXPAND_OPENED_PRESS);\r
+ }\r
+ else\r
+ {\r
+ pNormalIcon = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_LIST_EXPAND_CLOSE);\r
+ pPressIcon = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_LIST_EXPAND_CLOSE_PRESS);\r
+ }\r
+ static_cast<CustomTableViewItem*>(pViewItem)->EnableExpandViewModeStyle(pNormalIcon, pPressIcon);\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return;\r
+}\r
+\r
+void\r
+MutimediaSettingsForm::LoadCurrentSettings(void)\r
+{\r
+ if (__pSettingItemsArray)\r
+ {\r
+ for (int groupIndex = 0; groupIndex < __pSettingItemsArray->GetGroupCount(); groupIndex++)\r
+ {\r
+ for (int itemIndex = 0; itemIndex < __pSettingItemsArray->GetItemCount(groupIndex); itemIndex++)\r
+ {\r
+ SettingItem& settingItem = __pSettingItemsArray->GetItemAt(groupIndex, itemIndex);\r
+ __pSettingGroupTabledView->SetItemChecked(groupIndex, itemIndex, GetItemCheckStatus(settingItem.GetActionId()));\r
+ }\r
+ if (__pSettingItemsArray->IsGroupExpanded(groupIndex))\r
+ {\r
+ __pSettingGroupTabledView->ExpandGroup(groupIndex);\r
+ }\r
+ }\r
+ __pSettingGroupTabledView->UpdateTableView();\r
+ }\r
+}\r
--- /dev/null
+//\r
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.\r
+//\r
+// Licensed under the Flora License, Version 1.0 (the License);\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+// http://floralicense.org/license/\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an AS IS BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+//\r
+\r
+#include "MsgBitmapUtility.h"\r
+#include "MsgCommonUtil.h"\r
+#include "MsgConversationData.h"\r
+#include "MsgMessagePresentationModel.h"\r
+#include "MsgOptionPopup.h"\r
+#include "MsgTypes.h"\r
+\r
+using namespace Tizen::App;\r
+using namespace Tizen::Base;\r
+using namespace Tizen::Base::Collection;\r
+using namespace Tizen::Base::Utility;\r
+using namespace Tizen::Graphics;\r
+using namespace Tizen::Ui;\r
+using namespace Tizen::Ui::Controls;\r
+using namespace Tizen::Ui::Scenes;\r
+\r
+OptionPopup::OptionPopup(Control& parentCntl, ConversationData* pConvData)\r
+ : __pParentCnt(parentCntl)\r
+ , __pConvData(pConvData)\r
+ , __pOptionList(null)\r
+ , __pPopup(null)\r
+{\r
+ //Empty implementation\r
+}\r
+\r
+OptionPopup::~OptionPopup(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ if (__pOptionList)\r
+ {\r
+ __pOptionList->RemoveAll(true);\r
+ delete __pOptionList;\r
+ }\r
+ if (__pPopup)\r
+ {\r
+ delete __pPopup;\r
+ }\r
+ if (__pConvData)\r
+ {\r
+ delete __pConvData;\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
+\r
+result\r
+OptionPopup::Construct(int threadId, int selectedIndex)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ result r = Popup::Construct(L"IDL_MSG_OPTION_POPUP");\r
+ if (!__pConvData)\r
+ {\r
+ r = E_FAILURE;\r
+ }\r
+ if (r == E_SUCCESS)\r
+ {\r
+ String shortTextMsg(__pConvData->GetDisplayName());\r
+ shortTextMsg.Append(": ");\r
+ shortTextMsg.Append(__pConvData->GetMessageText());\r
+ Popup::SetTitleText(shortTextMsg);\r
+\r
+ // Transfer ownership\r
+ Bitmap* pBottomBg = BitmapUtility::GetInstance()->GetIconN(MSG_ICON_BUTTON_PANEL_BG);\r
+ SetFooterBackgroundBitmap(pBottomBg);\r
+ InitalizeMessageOptionList();\r
+ Button* pCanelButton = (Button*) GetControl(L"IDC_BUTTON_CLOSE");\r
+ pCanelButton->SetActionId(IDA_BUTTON_CLOSE_OPTIONS_POPUP);\r
+ pCanelButton->AddActionEventListener(*this);\r
+\r
+ int increaseHeight(0);\r
+ if (__pOptionList->GetCount() > 1)\r
+ {\r
+ int visibleListItemCount(__pOptionList->GetCount());\r
+ if (visibleListItemCount > 4)\r
+ {\r
+ visibleListItemCount = 4;\r
+ }\r
+ increaseHeight = visibleListItemCount * H_LIST_ITEM_112PX - H_LIST_ITEM_112PX;\r
+ }\r
+ Popup::SetSize(Dimension(GetWidth(), GetHeight() + increaseHeight));\r
+ ListView* pList = static_cast<ListView*>(GetControl(L"IDC_MSG_OPTION_LISTVIEW"));\r
+ pList->SetSize(pList->GetWidth(), pList->GetHeight() + increaseHeight);\r
+ Point pos = GetControl(L"IDC_BUTTON_CLOSE")->GetPosition();\r
+ pos.y += increaseHeight;\r
+ GetControl(L"IDC_BUTTON_CLOSE")->SetPosition(pos);\r
+\r
+ }\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return r;\r
+}\r
+\r
+void\r
+OptionPopup::InitalizeMessageOptionList(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ ListItemObject* pListItem = null;\r
+ __pOptionList = new (std::nothrow) ArrayList();\r
+ __pOptionList->Construct();\r
+\r
+ String itemText;\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_COM_SK_DELETE", itemText);\r
+ pListItem = new (std::nothrow) ListItemObject(itemText, LIST_ELEMENT_DELETE);\r
+ if (__pOptionList->Add(pListItem) != E_SUCCESS)\r
+ {\r
+ delete pListItem;\r
+ }\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_BODY_COPY_MESSAGE_TEXT_ABB", itemText);\r
+ pListItem = new (std::nothrow) ListItemObject(itemText, LIST_ELEMENT_COPY_MESSAGE_TEXT);\r
+ if (__pOptionList->Add(pListItem) != E_SUCCESS)\r
+ {\r
+ delete pListItem;\r
+ }\r
+ // Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_OPT_PROTECTION_ON", itemText);\r
+ // pListItem = new (std::nothrow) ListItemObject(itemText, LIST_ELEMENT_PROTECTION_ON);\r
+ // if (__pOptionList->Add(pListItem) != E_SUCCESS)\r
+ // {\r
+ // delete pListItem;\r
+ // }\r
+ if (__pConvData->GetMessageType() == MSG_TYPE_SMS)\r
+ {\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_BODY_COPY_TO_SIM", itemText);\r
+ pListItem = new (std::nothrow) ListItemObject(itemText, LIST_ELEMENT_COPY_TO_SIM);\r
+ if (__pOptionList->Add(pListItem) != E_SUCCESS)\r
+ {\r
+ delete pListItem;\r
+ }\r
+ }\r
+\r
+ if (__pConvData->GetMessageType() == MSG_TYPE_MMS)\r
+ {\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_OPT_SAVE_ATTACHMENT", itemText);\r
+ pListItem = new (std::nothrow) ListItemObject(itemText, LIST_ELEMENT_SAVE_ATTACHMENT);\r
+ if (__pOptionList->Add(pListItem) != E_SUCCESS)\r
+ {\r
+ delete pListItem;\r
+ }\r
+ }\r
+\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_COM_BODY_FORWARD", itemText);\r
+ pListItem = new (std::nothrow) ListItemObject(itemText, LIST_ELEMENT_FORWARD);\r
+ if (__pOptionList->Add(pListItem) != E_SUCCESS)\r
+ {\r
+ delete pListItem;\r
+ }\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_BODY_VIEW_MESSAGE_DETAILS_ABB", itemText);\r
+ pListItem = new (std::nothrow) ListItemObject(itemText, LIST_ELEMENT_VIEW_MESSAGE_DETAILS);\r
+ if (__pOptionList->Add(pListItem) != E_SUCCESS)\r
+ {\r
+ delete pListItem;\r
+ }\r
+ ListView* pList = static_cast<ListView*>(GetControl(L"IDC_MSG_OPTION_LISTVIEW"));\r
+ pList->AddListViewItemEventListener(*this);\r
+ pList->SetItemProvider(*this);\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return;\r
+}\r
+\r
+void\r
+OptionPopup::OnListViewItemStateChanged(ListView& listView, int index, int elementId,\r
+ ListItemStatus status)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ if (status == LIST_ITEM_STATUS_SELECTED)\r
+ {\r
+ SetShowState(false);\r
+\r
+ const ListItemObject* pListItem = static_cast<ListItemObject*>(__pOptionList->GetAt(index));\r
+ switch (pListItem->GetItemId())\r
+ {\r
+ case LIST_ELEMENT_DELETE:\r
+ {\r
+ MessagePresentationModel* pMsgPrModel = MessagePresentationModel::GetInstance();\r
+ if (pMsgPrModel)\r
+ {\r
+ pMsgPrModel->Delete(__pConvData->GetEntryId(), *this, REQUEST_DELETE_MESSAGE);\r
+ }\r
+ }\r
+ break;\r
+\r
+ case LIST_ELEMENT_COPY_MESSAGE_TEXT:\r
+ {\r
+ CommonUtil::CopyTextToClipBoard(__pConvData->GetMessageText());\r
+ RequestId requestId = REQUEST_OPTION_POPUP;\r
+ __pParentCnt.SendUserEvent(requestId, null);\r
+ }\r
+ break;\r
+\r
+ case LIST_ELEMENT_PROTECTION_ON:\r
+ {\r
+ // TODO:\r
+ RequestId requestId = REQUEST_OPTION_POPUP;\r
+ __pParentCnt.SendUserEvent(requestId, null);\r
+ }\r
+ break;\r
+\r
+ case LIST_ELEMENT_COPY_TO_SIM:\r
+ {\r
+ MessagePresentationModel* pMsgPrModel = MessagePresentationModel::GetInstance();\r
+ if (pMsgPrModel)\r
+ {\r
+ pMsgPrModel->MoveMessageToSIM(__pConvData->GetEntryId());\r
+ }\r
+ }\r
+ break;\r
+\r
+ case LIST_ELEMENT_SAVE_ATTACHMENT:\r
+ {\r
+ ArrayList* pArgList = new (std::nothrow) ArrayList();\r
+ pArgList->Construct();\r
+ pArgList->Add((new Integer(__pConvData->GetEntryId())));\r
+ RequestId requestId = REQUEST_SAVE_MESSAGE_ATTACHMENTS;\r
+ __pParentCnt.SendUserEvent(requestId, pArgList);\r
+ // Destroy popup\r
+ requestId = REQUEST_OPTION_POPUP;\r
+ __pParentCnt.SendUserEvent(requestId, null);\r
+ }\r
+ break;\r
+\r
+ case LIST_ELEMENT_FORWARD:\r
+ {\r
+ MessagePresentationModel* pMsgPrModel = MessagePresentationModel::GetInstance();\r
+ if (pMsgPrModel)\r
+ {\r
+ MessageData* pMsgData = pMsgPrModel->GetMessageDataByIdN(__pConvData->GetEntryId());\r
+ CommonUtil::ForwardMessage(pMsgData);\r
+ RequestId requestId = REQUEST_OPTION_POPUP;\r
+ __pParentCnt.SendUserEvent(requestId, null);\r
+ }\r
+ }\r
+ break;\r
+\r
+ case LIST_ELEMENT_VIEW_MESSAGE_DETAILS:\r
+ {\r
+ ShowMessageDetails();\r
+ }\r
+ break;\r
+\r
+ default:\r
+ {\r
+ RequestId requestId = REQUEST_OPTION_POPUP;\r
+ __pParentCnt.SendUserEvent(requestId, null);\r
+ }\r
+ break;\r
+ }\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return;\r
+}\r
+\r
+void\r
+OptionPopup::OnListViewItemSwept(ListView& listView, int index,\r
+ SweepDirection direction)\r
+{\r
+ AppLogDebug("ENTER");\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return;\r
+}\r
+\r
+void\r
+OptionPopup::OnListViewContextItemStateChanged(ListView& listView, int index, int elementId,\r
+ ListContextItemStatus state)\r
+{\r
+ AppLogDebug("ENTER");\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return;\r
+}\r
+\r
+void\r
+OptionPopup::OnListViewItemLongPressed(ListView& listView, int index, int elementId,\r
+ bool& invokeListViewItemCallback)\r
+{\r
+ AppLogDebug("ENTER");\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return;\r
+}\r
+\r
+int\r
+OptionPopup::GetItemCount(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+ int count(0);\r
+\r
+ if (__pOptionList)\r
+ count = __pOptionList->GetCount();\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return count;\r
+}\r
+\r
+ListItemBase*\r
+OptionPopup::CreateItem(int index, int itemWidth)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ CustomItem* pItem = new (std::nothrow) CustomItem();\r
+ const ListItemObject* pListItem = static_cast<ListItemObject*>(__pOptionList->GetAt(index));\r
+ pItem->Construct(Dimension(itemWidth, H_LIST_ITEM_112PX), LIST_ANNEX_STYLE_NORMAL);\r
+ pItem->AddElement(Rectangle(MARGIN_16PX + 25, 0, (itemWidth - MARGIN_16PX), H_LIST_ITEM_112PX),\r
+ pListItem->GetItemId(), pListItem->GetItemText());\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return pItem;\r
+}\r
+\r
+bool\r
+OptionPopup::DeleteItem(int index, ListItemBase* pItem, int itemWidth)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ if (pItem)\r
+ {\r
+ delete pItem;\r
+ pItem = null;\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return true;\r
+}\r
+\r
+\r
+void\r
+OptionPopup::OnActionPerformed(const Control& source, int actionId)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ // Destroy Popup\r
+ switch (actionId)\r
+ {\r
+ case IDA_BUTTON_MESSAGE_DETAILS_POPUP:\r
+ case IDA_BUTTON_CLOSE_OPTIONS_POPUP:\r
+ {\r
+ SetShowState(false);\r
+ RequestId requestId = REQUEST_OPTION_POPUP;\r
+ __pParentCnt.SendUserEvent(requestId, null);\r
+ }\r
+ break;\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return;\r
+}\r
+\r
+void\r
+OptionPopup::ShowMessageDetails(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ __pPopup = new (std::nothrow) Popup();\r
+ result r = __pPopup->Construct(L"IDL_MSG_OPTION_DETAILS_POPUP");\r
+ if (r == E_SUCCESS)\r
+ {\r
+\r
+ MessagePresentationModel* pMsgPrModel = MessagePresentationModel::GetInstance();\r
+ if (pMsgPrModel)\r
+ {\r
+ TextBox* pTextBox = static_cast<TextBox*>(__pPopup->GetControl(L"IDC_TEXTBOX_MSG_DETAILS"));\r
+ if (pTextBox)\r
+ {\r
+ String messageDetails;\r
+ String strText;\r
+ pTextBox->SetTextSize(42);\r
+ pTextBox->SetColor(TEXT_BOX_STATUS_NORMAL, __pPopup->GetColor());\r
+ pTextBox->SetColor(TEXT_BOX_STATUS_HIGHLIGHTED, __pPopup->GetColor());\r
+ pTextBox->SetColor(TEXT_BOX_STATUS_DISABLED, __pPopup->GetColor());\r
+\r
+ //To get Message Type\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_COM_BODY_DETAILS_TYPE", strText);\r
+ strText.Append(IDS_BLANK_SPACE);\r
+ strText.Append(IDS_COLON);\r
+ strText.Append(IDS_BLANK_SPACE);\r
+ messageDetails.Append(strText);\r
+ if (__pConvData->GetMessageType() == MSG_TYPE_SMS)\r
+ {\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_COM_BODY_SMS", strText);\r
+ messageDetails.Append(strText);\r
+ }\r
+ else if (__pConvData->GetMessageType() == MSG_TYPE_MMS)\r
+ {\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_BODY_MMS", strText);\r
+ messageDetails.Append(strText);\r
+ }\r
+ messageDetails.Append(IDS_NEW_LINE);\r
+\r
+ //Message contactlist\r
+ if (__pConvData->IsSent())\r
+ {\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_COM_BODY_TO", strText);\r
+ strText.Append(IDS_BLANK_SPACE);\r
+ strText.Append(IDS_COLON);\r
+ strText.Append(IDS_BLANK_SPACE);\r
+ messageDetails.Append(strText);\r
+ }\r
+ else\r
+ {\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_BODY_FROM", strText);\r
+ strText.Append(IDS_BLANK_SPACE);\r
+ strText.Append(IDS_COLON);\r
+ strText.Append(IDS_BLANK_SPACE);\r
+ messageDetails.Append(strText);\r
+ }\r
+ ArrayList* pPhoneNumberList = pMsgPrModel->GetPhoneNumberListN(__pConvData->GetThreadId());\r
+ if (pPhoneNumberList)\r
+ {\r
+ for (int index = 0; index < pPhoneNumberList->GetCount(); index++)\r
+ {\r
+ String* contactNumber = static_cast<String*>(pPhoneNumberList->GetAt(index));\r
+ messageDetails.Append(*contactNumber);\r
+ if (index != pPhoneNumberList->GetCount() - 1)\r
+ messageDetails.Append(", ");\r
+ }\r
+ pPhoneNumberList->RemoveAll(true);\r
+ delete pPhoneNumberList;\r
+ }\r
+ messageDetails.Append(IDS_NEW_LINE);\r
+\r
+ //Message sent/received time\r
+ if (__pConvData->IsSent())\r
+ {\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_BODY_MMSNOTIMSGSTATUSSENT", strText);\r
+ strText.Append(IDS_BLANK_SPACE);\r
+ strText.Append(IDS_COLON);\r
+ strText.Append(IDS_BLANK_SPACE);\r
+ messageDetails.Append(strText);\r
+ }\r
+ else\r
+ {\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_BODY_RECEIVED", strText);\r
+ strText.Append(IDS_BLANK_SPACE);\r
+ strText.Append(IDS_COLON);\r
+ strText.Append(IDS_BLANK_SPACE);\r
+ messageDetails.Append(strText);\r
+ }\r
+ messageDetails.Append(__pConvData->GetTimeStamp());\r
+ messageDetails.Append(IDS_NEW_LINE);\r
+\r
+ //Message delivery report.\r
+ int deliveryStatus = pMsgPrModel->GetMessageDeliveryStatus(__pConvData->GetMessageId());\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_BODY_DELIVERY_REPORT", strText);\r
+ strText.Append(IDS_BLANK_SPACE);\r
+ strText.Append(IDS_COLON);\r
+ strText.Append(IDS_BLANK_SPACE);\r
+ messageDetails.Append(strText);\r
+ switch (deliveryStatus)\r
+ {\r
+ // Indicates the status unavailable\r
+ case MSG_DELIVERY_REPORT_NONE:\r
+ {\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_POP_UNRECOGNISED", strText);\r
+ messageDetails.Append(strText);\r
+ }\r
+ break;\r
+\r
+ // Indicates the expired status of message\r
+ case MSG_DELIVERY_REPORT_EXPIRED:\r
+ {\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_BODY_EXPIRED", strText);\r
+ messageDetails.Append(strText);\r
+ }\r
+ break;\r
+\r
+ // Indicates the success status of message\r
+ case MSG_DELIVERY_REPORT_SUCCESS:\r
+ {\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_COM_POP_SUCCESS", strText);\r
+ messageDetails.Append(strText);\r
+ }\r
+ break;\r
+\r
+ // Indicates the rejected status of message\r
+ case MSG_DELIVERY_REPORT_REJECTED:\r
+ {\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_COM_POP_REJECTED", strText);\r
+ messageDetails.Append(strText);\r
+ }\r
+ break;\r
+\r
+ // Indicates the deferred status of message\r
+ case MSG_DELIVERY_REPORT_DEFERRED:\r
+ {\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_POP_DEFERRED", strText);\r
+ messageDetails.Append(strText);\r
+ }\r
+ break;\r
+\r
+ // Indicates the unrecongnised status of message\r
+ case MSG_DELIVERY_REPORT_UNRECOGNISED:\r
+ case MSG_DELIVERY_REPORT_INDETERMINATE:\r
+ {\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_POP_UNRECOGNISED", strText);\r
+ messageDetails.Append(strText);\r
+ }\r
+ break;\r
+\r
+ // Indicates the forwarded status of message\r
+ case MSG_DELIVERY_REPORT_FORWARDED:\r
+ {\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_POP_FORWARDED", strText);\r
+ messageDetails.Append(strText);\r
+ }\r
+ break;\r
+\r
+ // Indicates the unreachable status of message\r
+ case MSG_DELIVERY_REPORT_UNREACHABLE:\r
+ {\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_POP_UNRECOGNISED", strText);\r
+ messageDetails.Append(strText);\r
+ }\r
+ break;\r
+\r
+\r
+ default:\r
+ {\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_POP_UNRECOGNISED", strText);\r
+ messageDetails.Append(strText);\r
+ }\r
+ break;\r
+ }\r
+\r
+ messageDetails.Append(IDS_NEW_LINE);\r
+\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_OPT_STATUS", strText);\r
+ //Message Status\r
+ strText.Append(IDS_BLANK_SPACE);\r
+ strText.Append(IDS_COLON);\r
+ strText.Append(IDS_BLANK_SPACE);\r
+ messageDetails.Append(strText);\r
+// bool msgStatus = pMsgPrModel->GetMessageDeliveryStatus(__pConvData->GetEntryId());\r
+ if (__pConvData->IsSent() && __pConvData->IsSentFail())\r
+ {\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_COM_POP_FAILED", strText);\r
+ messageDetails.Append(strText);\r
+ }\r
+ else\r
+ {\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_COM_POP_SUCCESS", strText);\r
+ messageDetails.Append(strText);\r
+ }\r
+ pTextBox->SetText(messageDetails);\r
+ }\r
+ }\r
+ Button* pCloseButton = static_cast<Button*>(__pPopup->GetControl(L"IDC_MSG_CLOSE_BUTTON"));\r
+ pCloseButton->SetActionId(IDA_BUTTON_MESSAGE_DETAILS_POPUP);\r
+ pCloseButton->AddActionEventListener(*this);\r
+\r
+ // Show popup\r
+ __pPopup->SetShowState(true);\r
+ __pPopup->Show();\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return;\r
+}\r
+\r
+void\r
+OptionPopup::OnDeleteComplete(int errCode, Object* pThreadObject)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ // Destroy Popup\r
+ RequestId requestId = REQUEST_OPTION_POPUP;\r
+ __pParentCnt.SendUserEvent(requestId, null);\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return;\r
+}\r
--- /dev/null
+//\r
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.\r
+//\r
+// Licensed under the Flora License, Version 1.0 (the License);\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+// http://floralicense.org/license/\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an AS IS BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+//\r
+\r
+#include "MsgContactUtility.h"\r
+#include "MsgIPopupEventListener.h"\r
+#include "MsgPhoneNumberListPopup.h"\r
+#include "MsgTypes.h"\r
+\r
+using namespace Tizen::App;\r
+using namespace Tizen::Base;\r
+using namespace Tizen::Base::Collection;\r
+using namespace Tizen::Graphics;\r
+using namespace Tizen::Ui::Controls;\r
+\r
+PhoneNumberListPopup::PhoneNumberListPopup(IPopupEventListener& listener)\r
+ : __pPhoneNumberList(null)\r
+ , __popupListener(listener)\r
+{\r
+ //Empty implementation\r
+}\r
+\r
+PhoneNumberListPopup::~PhoneNumberListPopup(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ if (__pPhoneNumberList)\r
+ {\r
+ __pPhoneNumberList->RemoveAll(true);\r
+ delete __pPhoneNumberList;\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
+\r
+void\r
+PhoneNumberListPopup::OnUserEventReceivedN(RequestId requestId, IList* pArgs)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ switch(requestId)\r
+ {\r
+ case REQUEST_CLOSE_POPUP:\r
+ __popupListener.OnPopupClose(this);\r
+ break;\r
+ }\r
+ \r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
+\r
+result\r
+PhoneNumberListPopup::Construct(ArrayList* pPhoneNumberList)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ __pPhoneNumberList = pPhoneNumberList;\r
+ result r = Popup::Construct(L"IDL_MSG_CONTACT_NUMBER_POPUP");\r
+ if (!IsFailed(r))\r
+ {\r
+ String strText;\r
+ Button* pCancelButton = static_cast<Button*>(GetControl(L"IDC_MSG_CANCEL_BUTTON"));\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_COM_SK_CANCEL", strText);\r
+ pCancelButton->SetText(strText);\r
+ pCancelButton->SetActionId(IDA_BUTTON_CLOSE_NUMBERLIST_POPUP);\r
+ pCancelButton->AddActionEventListener(*this);\r
+\r
+ ListView* pContactNumberList = static_cast<ListView*>(GetControl(L"IDC_MSG_CONTACT_NUMBER_LISTVIEW"));\r
+ pContactNumberList->AddListViewItemEventListener(*this);\r
+ pContactNumberList->SetItemProvider(*this);\r
+ int increaseHeight(0);\r
+ if (__pPhoneNumberList->GetCount() > 1)\r
+ {\r
+ int visibleListItemCount(__pPhoneNumberList->GetCount());\r
+ if (visibleListItemCount > 4)\r
+ {\r
+ visibleListItemCount = 4;\r
+ }\r
+ increaseHeight = (visibleListItemCount - 1) * H_LIST_ITEM_112PX;\r
+ }\r
+ pContactNumberList->SetSize(pContactNumberList->GetWidth(), pContactNumberList->GetHeight() + increaseHeight);\r
+ Popup::SetSize(Dimension(GetWidth(), GetHeight() + increaseHeight));\r
+ Point pos = pCancelButton->GetPosition();\r
+ pos.y += increaseHeight;\r
+ pCancelButton->SetPosition(pos);\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return r;\r
+}\r
+\r
+void\r
+PhoneNumberListPopup::OnListViewItemStateChanged(ListView& listView, int index, int elementId,\r
+ ListItemStatus status)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ if (status == LIST_ITEM_STATUS_SELECTED)\r
+ {\r
+ SetShowState(false);\r
+ // Send phone number item selection event.\r
+ const Object* pPhoneNumber = __pPhoneNumberList->GetAt(index);\r
+ __popupListener.OnPopupListItemSelected(*this, index, pPhoneNumber);\r
+ // Send Destroy popup event\r
+ SendUserEvent(REQUEST_CLOSE_POPUP, null);\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return;\r
+}\r
+\r
+void\r
+PhoneNumberListPopup::OnListViewItemSwept(ListView& listView, int index,\r
+ SweepDirection direction)\r
+{\r
+ AppLogDebug("ENTER");\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return;\r
+}\r
+\r
+void\r
+PhoneNumberListPopup::OnListViewContextItemStateChanged(ListView& listView, int index, int elementId,\r
+ ListContextItemStatus state)\r
+{\r
+ AppLogDebug("ENTER");\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return;\r
+}\r
+\r
+void\r
+PhoneNumberListPopup::OnListViewItemLongPressed(ListView& listView, int index, int elementId,\r
+ bool& invokeListViewItemCallback)\r
+{\r
+ AppLogDebug("ENTER");\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return;\r
+}\r
+\r
+int\r
+PhoneNumberListPopup::GetItemCount(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ int count(0);\r
+ if (__pPhoneNumberList)\r
+ {\r
+ count = __pPhoneNumberList->GetCount();\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return count;\r
+}\r
+\r
+ListItemBase*\r
+PhoneNumberListPopup::CreateItem(int index, int itemWidth)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ CustomItem* pItem = new (std::nothrow) CustomItem();\r
+ pItem->Construct(Dimension(itemWidth, H_LIST_ITEM_112PX), LIST_ANNEX_STYLE_NORMAL);\r
+ String* pContactNumber = static_cast<String*>(__pPhoneNumberList->GetAt(index));\r
+ if (pContactNumber)\r
+ {\r
+ pItem->AddElement(Rectangle(MARGIN_16PX, 0, itemWidth, H_LIST_ITEM_112PX),\r
+ IDC_PHONENUMBER_LIST, *pContactNumber);\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return pItem;\r
+}\r
+\r
+bool\r
+PhoneNumberListPopup::DeleteItem(int index, ListItemBase* pItem, int itemWidth)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ if (pItem)\r
+ {\r
+ delete pItem;\r
+ pItem = null;\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return true;\r
+}\r
+\r
+void\r
+PhoneNumberListPopup::OnActionPerformed(const Control& source, int actionId)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ switch (actionId)\r
+ {\r
+ case IDA_BUTTON_CLOSE_NUMBERLIST_POPUP:\r
+ {\r
+ SetShowState(false);\r
+ __popupListener.OnPopupClose(this);\r
+ }\r
+ break;\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return;\r
+}\r
--- /dev/null
+//\r
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.\r
+//\r
+// Licensed under the Flora License, Version 1.0 (the License);\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+// http://floralicense.org/license/\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an AS IS BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+//\r
+\r
+#include <FUiControls.h>\r
+\r
+#include "MsgProgressPopup.h"\r
+#include "MsgTypes.h"\r
+\r
+using namespace Tizen::Base;\r
+using namespace Tizen::Graphics;\r
+using namespace Tizen::Ui::Controls;\r
+\r
+MsgProgressPopup::MsgProgressPopup(void)\r
+ : __pStatusInfo(null)\r
+ , __pProgress(null)\r
+{\r
+ //Empty implementation\r
+}\r
+\r
+MsgProgressPopup::~MsgProgressPopup(void)\r
+{\r
+ //Empty implementation\r
+ AppLogDebug("ENTER");\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
+\r
+result\r
+MsgProgressPopup::Construct(int minCount, int maxCount, const String& strTitle)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ result r = Popup::Construct(L"IDL_DELETE_PROGRESS_POPUP");\r
+ if (!IsFailed(r))\r
+ {\r
+ __pStatusInfo = static_cast<Label*>(GetControl(L"IDC_PROGRESS_INFO"));\r
+ __pProgress = static_cast<Progress*>(GetControl(L"IDC_PROGRESSBAR"));\r
+ __pProgress->SetRange(minCount, maxCount);\r
+ __pProgress->SetValue(minCount);\r
+ String statusInfo;\r
+ statusInfo.Format(MAX_LEN_SELECTION_INFO, strTitle.GetPointer(), minCount + 1, maxCount);\r
+ __pStatusInfo->SetText(statusInfo);\r
+ __pStatusInfo->SetTextHorizontalAlignment(ALIGNMENT_CENTER);\r
+\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return r;\r
+}\r
+\r
+void\r
+MsgProgressPopup::UpdateProgressInfo(const String& statusInfo)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ __pStatusInfo->SetText(statusInfo);\r
+ __pStatusInfo->Draw();\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return;\r
+}\r
+\r
+void\r
+MsgProgressPopup::SetProgressValue(int value)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ __pProgress->SetValue(value);\r
+ __pProgress->Draw();\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return;\r
+}\r
+\r
+void\r
+MsgProgressPopup::ShowPopup(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ SetShowState(true);\r
+ Show();\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return;\r
+}\r
+\r
+void\r
+MsgProgressPopup::HidePopup(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ SetShowState(false);\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return;\r
+}\r
--- /dev/null
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+#include <FApp.h>
+#include <FSocial.h>
+
+#include "MsgBitmapUtility.h"
+#include "MsgCommonUtil.h"
+#include "MsgContactListItem.h"
+#include "MsgISizeChangeEventListener.h"
+#include "MsgMessageData.h"
+#include "MsgMessagePresentationModel.h"
+#include "MsgRecipientPanel.h"
+#include "MsgTypes.h"
+
+using namespace Tizen::App;
+using namespace Tizen::Base;
+using namespace Tizen::Base::Runtime;
+using namespace Tizen::Base::Utility;
+using namespace Tizen::Base::Collection;
+using namespace Tizen::Graphics;
+using namespace Tizen::Social;
+using namespace Tizen::Ui::Controls;
+using namespace Tizen::Ui;
+
+const wchar_t* IDS_SELECTION_MODE_KEY = L"selectionMode";
+const wchar_t* IDS_SELECTION_MODE_VALUE = L"multiple";
+const wchar_t* IDS_CONTACT_ID = L"contactId";
+const wchar_t* IDS_RET_TYPE_KEY = L"returnType";
+const wchar_t* IDS_VALUE = L"value";
+
+
+RecipientPanel::RecipientPanel(void)
+ : __pSizeChangeListener(null)
+ , __errorString(IDS_BLANK)
+ , __pExpandEditArea(null)
+ , __pContactButton(null)
+ , __pContactCountLabel(null)
+ , __pContactSearchList(null)
+ , __pRecipientAddrList(null)
+ , __pAddressBook(null)
+ , __pTokenDeleteThread(null)
+ , __deleteTokenIndex(-1)
+ , __validateOnFocusLost(true)
+ , __oneTimeFlag(true)
+{
+ // Empty implementation
+}
+
+RecipientPanel::~RecipientPanel(void)
+{
+ AppLogDebug("ENTER");
+
+ if (__pAddressBook)
+ {
+ delete __pAddressBook;
+ }
+ if (__pRecipientAddrList)
+ {
+ __pRecipientAddrList->RemoveAll(true);
+ delete __pRecipientAddrList;
+
+ }
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+}
+
+result
+RecipientPanel::Construct(const Rectangle& rectangle)
+{
+ AppLogDebug("ENTER");
+
+ result r = E_SUCCESS;
+ r = Panel::Construct(L"IDL_RECIPIENT_PANEL");
+ __pContactButton = (Button*) GetControl(L"IDC_CONTACT_BUTTON");
+ __pContactButton->SetActionId(IDA_CONTACTS);
+ __pContactButton->AddActionEventListener(*this);
+ // Recipient area
+ __pExpandEditArea = (ExpandableEditArea*) GetControl(L"IDC_RECIPIENT_EXPANDABLEEDITAREA");
+ __pExpandEditArea->SetColor(EDIT_STATUS_PRESSED, __pExpandEditArea->GetColor(EDIT_STATUS_NORMAL));
+ String titleText;
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_COM_BODY_TO", titleText);
+ titleText.Append(IDS_COLON);
+ __pExpandEditArea->SetTitleText(titleText);
+ __pExpandEditArea->SetTextColor(EDIT_TEXT_COLOR_HIGHLIGHTED, __pExpandEditArea->GetTextColor(EDIT_TEXT_COLOR_NORMAL));
+ __pExpandEditArea->SetAutoShrinkModeEnabled(true);
+ __pExpandEditArea->AddExpandableEditAreaEventListener(*this);
+ __pExpandEditArea->AddTextEventListener(*this);
+ __pExpandEditArea->AddFocusEventListener(*this);
+ __pExpandEditArea->AddKeyEventListener(*this);
+ __pExpandEditArea->SetTokenFilter(this);
+ __pContactCountLabel = (Label*) GetControl(L"IDC_RECIPINT_COUNT_LABEL");
+ __pContactCountLabel->SetMargin(0,0);
+ __pContactCountLabel->SetShowState(false);
+ // Recipient list
+ __pRecipientAddrList = new (std::nothrow) ArrayList();
+ __pRecipientAddrList->Construct();
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return r;
+}
+
+void
+RecipientPanel::SetSizeChangeEventListener(const ISizeChangeEventListener& listener)
+{
+ AppLogDebug("ENTER");
+ __pSizeChangeListener = const_cast<ISizeChangeEventListener*>(&listener);
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+}
+
+void
+RecipientPanel::SetKeypadEventListener(IKeypadEventListener& listener)
+{
+ AppLogDebug("ENTER");
+ __pExpandEditArea->AddKeypadEventListener(listener);
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+}
+
+int
+RecipientPanel::GetHeight(void) const
+{
+ AppLogDebug("ENTER");
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return __pExpandEditArea->GetHeight() + MARGIN_28PX * 2;
+}
+
+result
+RecipientPanel::SetFocus(void)
+{
+ AppLogDebug("ENTER");
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return __pExpandEditArea->SetFocus();
+}
+
+void
+RecipientPanel::EnableContactSearch(bool value)
+{
+ AppLogDebug("ENTER");
+
+ if (value)
+ {
+ if (!__pContactSearchList)
+ {
+ __pContactSearchList = new (std::nothrow) ListView();
+ __pContactSearchList->Construct(Rectangle(MARGIN_15PX, GetHeight(), GetWidth()-MARGIN_15PX*2,
+ H_LIST_ITEM_128PX), true, SCROLL_STYLE_FADE_OUT);
+ __pContactSearchList->SetItemProvider(*this);
+ __pContactSearchList->AddListViewItemEventListener(*this);
+ __pContactSearchList->SetShowState(false);
+ __pContactSearchList->SetBackgroundColor(Color::GetColor(COLOR_ID_WHITE));
+ __pContactSearchList->SetItemDividerColor(Color::GetColor(COLOR_ID_GREY));
+ GetParent()->AddControl(*__pContactSearchList);
+ GetParent()->SetControlAlwaysOnTop(*__pContactSearchList, true);
+ }
+ }
+ else
+ {
+ GetParent()->RemoveControl(*__pContactSearchList);
+ __pContactSearchList = null;
+ }
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+int
+RecipientPanel::GetRecipientCount(void) const
+{
+ AppLogDebug("ENTER");
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return __pRecipientAddrList->GetCount();
+}
+
+void
+RecipientPanel::AddRecipient(const String& recipientNumber)
+{
+ AppLogDebug("ENTER");
+ if (recipientNumber.GetLength() > 0)
+ {
+ if (__pExpandEditArea->GetTokenCount() >= MAX_COUNT)
+ {
+ String messageText;
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED", messageText);
+ messageText.Format(messageText.GetLength() * 2, messageText.GetPointer(), MAX_COUNT);
+ ShowMessage(messageText);
+ }
+ else
+ {
+ AddressInfo* pRecipient = new (std::nothrow) AddressInfo();
+ pRecipient->phoneNumber = recipientNumber;
+ pRecipient->displayName = recipientNumber;
+ pRecipient->needToValidate = true;
+ __pRecipientAddrList->Add(pRecipient);
+ __pExpandEditArea->AppendToken(recipientNumber);
+ }
+ }
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+RecipientPanel::SetRecipientList(const IList* pRecipientList)
+{
+ AppLogDebug("ENTER");
+
+ if (pRecipientList)
+ {
+ for (int count = 0; count < pRecipientList->GetCount(); count++)
+ {
+ if (__pExpandEditArea->GetTokenCount() >= MAX_COUNT)
+ {
+ String messageText;
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED", messageText);
+ messageText.Format(messageText.GetLength() * 2, messageText.GetPointer(), MAX_COUNT);
+ ShowMessage(messageText);
+ break;
+ }
+ else
+ {
+ AddressInfo* pAddrInfo = static_cast<AddressInfo*>((Object*) pRecipientList->GetAt(count));
+ AddressInfo* pNewAddrInfo = new (std::nothrow) AddressInfo();
+ pNewAddrInfo->displayName = pAddrInfo->displayName;
+ pNewAddrInfo->phoneNumber = pAddrInfo->phoneNumber;
+ pNewAddrInfo->needToValidate = pAddrInfo->needToValidate;
+ __pRecipientAddrList->Add(pNewAddrInfo);
+ __pExpandEditArea->AppendToken(pAddrInfo->displayName);
+ }
+ }
+ }
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+}
+
+ArrayList*
+RecipientPanel::GeRecipientNumberListN(void) const
+{
+ AppLogDebug("ENTER");
+ ArrayList* pRecipientNumberList = null;
+ if (__pRecipientAddrList->GetCount() > 0)
+ {
+ pRecipientNumberList = new (std::nothrow) ArrayList();
+ pRecipientNumberList->Construct();
+ for (int i = 0; i < __pRecipientAddrList->GetCount(); i++)
+ {
+ AddressInfo* phoneNumber = static_cast<AddressInfo*>(__pRecipientAddrList->GetAt(i));
+ pRecipientNumberList->Add((new (std::nothrow) String(phoneNumber->phoneNumber)));
+ }
+ }
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return pRecipientNumberList;
+}
+
+void
+RecipientPanel::SetTextSize(int textSize)
+{
+ AppLogDebug("ENTER");
+ __pExpandEditArea->SetTextSize(textSize);
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+}
+
+void
+RecipientPanel::ShowKeypad(void)
+{
+ AppLogDebug("ENTER");
+ if (__pExpandEditArea)
+ {
+ __pExpandEditArea->ShowKeypad();
+ }
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+}
+void
+RecipientPanel::HideKeypad(void)
+{
+ AppLogDebug("ENTER");
+ if (__pExpandEditArea)
+ {
+ __pExpandEditArea->HideKeypad();
+ }
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+}
+result
+RecipientPanel::OnDraw(void)
+{
+ AppLogDebug("ENTER");
+
+ result r = E_SUCCESS;
+ Canvas* pCanvas = GetCanvasN();
+ Rectangle rect = GetBounds();
+ pCanvas->FillRectangle(Color::GetColor(COLOR_ID_WHITE),
+ Rectangle(0, 0, rect.width, rect.height));
+ pCanvas->SetForegroundColor(COLOR_PANEL_BORDER);
+ pCanvas->DrawLine(Point(0, rect.height - 1), Point(rect.width - 1, rect.height - 1));
+ delete pCanvas;
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return r;
+
+}
+
+void
+RecipientPanel::OnActionPerformed(const Control& source, int actionId)
+{
+ AppLogDebug("ENTER");
+
+ // If entered text not yet converted to token, then check it can it be converted to token.
+ if (CheckRecipentForToken())
+ {
+ switch (actionId)
+ {
+ case IDA_CONTACTS:
+ LaunchContactApp();
+ break;
+ }
+ }
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+RecipientPanel::LaunchContactApp(void)
+{
+ AppLogDebug("ENTER");
+
+ AppControl* pAppContl = AppManager::FindAppControlN(IDS_APPCONTROL_PROVIDER_CONTACT,
+ IDS_APPCONTROL_OPERATION_PICK);
+ if (pAppContl && __oneTimeFlag)
+ {
+ HashMap* pHashMap = new (std::nothrow) HashMap();
+ pHashMap->Construct();
+ String* pModeKey = new (std::nothrow) String(IDS_SELECTION_MODE_KEY);
+ String* pModeVal = new (std::nothrow) String(IDS_SELECTION_MODE_VALUE);
+ pHashMap->Add(pModeKey, pModeVal);
+ String* pTypeKey = new (std::nothrow) String(IDS_RET_TYPE_KEY);
+ String* pTypeVal = new (std::nothrow) String(IDS_CONTACT_ID);
+ pHashMap->Add(pTypeKey, pTypeVal);
+ pAppContl->Start(null, null, pHashMap, this);
+ pHashMap->RemoveAll(true);
+ delete pHashMap;
+ delete pAppContl;
+ __oneTimeFlag = false;
+ }
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+RecipientPanel::OnAppControlCompleteResponseReceived(const AppId& appId, const String& operationId,
+ AppCtrlResult appControlResult, const IMap* pResultMap)
+{
+ AppLogDebug("ENTER");
+ String* pPickResult = null;
+ String operation(IDS_APPCONTROL_OPERATION_PICK);
+
+ if (operationId.Equals(operation)) //
+ {
+ if (pResultMap && (appControlResult == APP_CTRL_RESULT_SUCCEEDED)) //
+ {
+ String* returnTypeValue = (String*) pResultMap->GetValue(String(L"returnType"));
+ AppLogDebug("count : %d", pResultMap->GetCount());
+ if (returnTypeValue->Equals(String(IDS_CONTACT_ID)))
+ {
+ if (!__pAddressBook)
+ {
+ __pAddressBook = AddressbookManager::GetInstance()->GetAddressbookN();
+ if (__pAddressBook)
+ {
+ __pAddressBook->SetEventListener(null);
+ }
+ }
+ IList* pRecipientList = GetSelectContactListN(pResultMap);
+ if (pRecipientList)
+ {
+ bool isMaximumrecipientreached = false;
+ bool isInvalidPhoneNumber = false;
+ String invalidRecipient(IDS_BLANK);
+ for (int index = 0; index < pRecipientList->GetCount(); index++)
+ {
+ pPickResult = (String*) pRecipientList->GetAt(index);
+ int contactId = INVALID_RECORD_ID;
+ if (!pPickResult->IsEmpty())
+ {
+ if (__pExpandEditArea->GetTokenCount() >= MAX_COUNT)
+ {
+ isMaximumrecipientreached = true;
+ String messageText;
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED", messageText);
+ messageText.Format(messageText.GetLength() * 2, messageText.GetPointer(), MAX_COUNT);
+ ShowMessage(messageText);
+ break;
+ }
+ // Convert String value to int type value
+ Integer::Parse(*pPickResult, contactId);
+ RecordId recordId = contactId;
+ Contact* pContact = null;
+ if (__pAddressBook)
+ {
+ pContact = __pAddressBook->GetContactN(recordId);
+ }
+ if (pContact)
+ {
+ IList* pPhoneNumberList = pContact->GetValuesN(CONTACT_MPROPERTY_ID_PHONE_NUMBERS);
+ if (pPhoneNumberList && pPhoneNumberList->GetCount() > 0)
+ {
+ AddressInfo* pRecipent = new (std::nothrow) AddressInfo();
+ pRecipent->phoneNumber.Append(((PhoneNumber*) pPhoneNumberList->GetAt(0))->GetPhoneNumber());
+ if (!IsNumberExistRecipientList(pRecipent->phoneNumber))
+ {
+ if (CommonUtil::IsValidPhoneNumber(pRecipent->phoneNumber))
+ {
+ String firstName;
+ pContact->GetValue(CONTACT_PROPERTY_ID_FIRST_NAME, firstName);
+ String lastName;
+ pContact->GetValue(CONTACT_PROPERTY_ID_LAST_NAME, lastName);
+ String contactName;
+ contactName.Format(50, L"%S %S\n", firstName.GetPointer(), lastName.GetPointer());
+ pRecipent->displayName.Append(contactName);
+ pRecipent->needToValidate = false;
+ __pRecipientAddrList->Add(pRecipent);
+ if (firstName.GetLength() > 0 || lastName.GetLength() > 0)
+ {
+ __pExpandEditArea->AppendToken(contactName);
+ }
+ else
+ {
+ __pExpandEditArea->SetTokenFilter(null);
+ __pExpandEditArea->AppendToken(((PhoneNumber*) pPhoneNumberList->GetAt(0))->GetPhoneNumber());
+ __pExpandEditArea->SetTokenFilter(this);
+ }
+ __pExpandEditArea->Invalidate(true);
+ pRecipent = null; // Transfered ownership
+ }
+ else
+ {
+ isInvalidPhoneNumber = true;
+ if (invalidRecipient.GetLength())
+ {
+ invalidRecipient.Append(IDS_COMMA_SPACE);
+ }
+ invalidRecipient.Append(IDS_BLANK_SPACE);
+ invalidRecipient.Append(pRecipent->phoneNumber);
+ }
+ }
+ if(pRecipent)
+ {
+ delete pRecipent;
+ }
+ pPhoneNumberList->RemoveAll(true);
+ }
+ delete pPhoneNumberList;
+ delete pContact;
+ }
+ }
+ }
+ if (!isMaximumrecipientreached && isInvalidPhoneNumber)
+ {
+ String messageText;
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_BODY_INVALID_RECIPIENTS", messageText);
+ messageText.Append(IDS_COLON);
+ messageText.Append(IDS_BLANK_SPACE);
+ messageText.Append(invalidRecipient);
+ ShowMessage(messageText);
+ }
+ pRecipientList->RemoveAll(true);
+ delete pRecipientList;
+ // Recipients added here, check send button need to be enabled or not.
+ GetParent()->SendUserEvent(REQUEST_ENABLE_DISABLE_SEND_BUTTON,null);
+ }
+ }
+ }
+ __pExpandEditArea->SetFocus();
+ }
+ Invalidate(true);
+ __oneTimeFlag = true;
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+IList*
+RecipientPanel::GetSelectContactListN(const IMap* pResultMap)
+{
+ AppLogDebug("ENTER");
+ ArrayList* pRecipientList = null;
+ String* pContactIds = (String*) pResultMap->GetValue(String(IDS_VALUE));
+ if (pContactIds)
+ {
+ pRecipientList = new (std::nothrow) ArrayList();
+ pRecipientList->Construct();
+ String delim(L";");
+ StringTokenizer strToken(*pContactIds, delim);
+ int tokenCount = strToken.GetTokenCount();
+ if (tokenCount > 0)
+ {
+ for (int index = 0; index < tokenCount; index++)
+ {
+ String* pContactId = new (std::nothrow) String();
+ strToken.GetNextToken(*pContactId);
+ if (pRecipientList->Add(pContactId) != E_SUCCESS)
+ {
+ delete pContactId;
+ }
+ }
+ }
+ else
+ {
+ String* pContactId = new (std::nothrow) String();
+ pContactId->Append(*pContactIds);
+ if (pRecipientList->Add(pContactId) != E_SUCCESS)
+ {
+ delete pContactId;
+ }
+ }
+ }
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return pRecipientList;
+}
+
+void
+RecipientPanel::OnExpandableEditAreaLineAdded(ExpandableEditArea& source,
+ int newLineCount)
+{
+ AppLogDebug("ENTER");
+
+ Dimension curSize = GetSize();
+ curSize.height = source.GetHeight() + MARGIN_28PX * 2;
+ SetSize(curSize);
+ __pSizeChangeListener->OnSizeIncrease(*this);
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+RecipientPanel::OnExpandableEditAreaLineRemoved(ExpandableEditArea& source,
+ int newLineCount)
+{
+ AppLogDebug("ENTER");
+
+ Dimension curSize = GetSize();
+ curSize.height = source.GetHeight() + MARGIN_28PX * 2;
+ SetSize(curSize);
+ __pSizeChangeListener->OnSizeDecrease(*this);
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+RecipientPanel::OnBoundsChanged(const Rectangle& oldRect, const Rectangle& newRect)
+{
+ AppLogDebug("ENTER");
+
+ if (__pExpandEditArea)
+ {
+ __pExpandEditArea->SetSize(Dimension(__pExpandEditArea->GetWidth(),
+ __pExpandEditArea->GetHeight()));
+ }
+ if (__pContactButton)
+ {
+ Point pos = __pContactButton->GetPosition();
+ pos.y += (newRect.height - oldRect.height);
+ __pContactButton->SetPosition(pos);
+ }
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+// IListViewItemEventListener
+void
+RecipientPanel::OnListViewItemStateChanged(ListView& listView, int index,
+ int elementId, ListItemStatus status)
+{
+ AppLogDebug("ENTER");
+ // Hide list box.
+ listView.SetShowState(false);
+ if (__pExpandEditArea->GetTokenCount() >= MAX_COUNT)
+ {
+ String messageText;
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED", messageText);
+ messageText.Format(messageText.GetLength() * 2, messageText.GetPointer(), MAX_COUNT);
+ ShowMessage(messageText);
+ }
+ else
+ {
+ MessagePresentationModel* pMsgPrModel = MessagePresentationModel::GetInstance();
+ if (pMsgPrModel)
+ {
+ AddressInfo* pRecipent = new (std::nothrow) AddressInfo();
+ pRecipent->displayName = pMsgPrModel->GetContactNameAt(index);
+ pRecipent->phoneNumber = pMsgPrModel->GetContactNumberAt(index);
+ if (!IsNumberExistRecipientList(pRecipent->phoneNumber))
+ {
+ pRecipent->needToValidate = false;
+ __pRecipientAddrList->Add(pRecipent);
+ __pExpandEditArea->AppendToken(pMsgPrModel->GetContactNameAt(index));
+ __pExpandEditArea->Invalidate(true);
+ }
+ else
+ {
+ delete pRecipent;
+ }
+ }
+ }
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+ListItemBase*
+RecipientPanel::CreateItem(int index, int itemWidth)
+{
+ AppLogDebug("ENTER");
+
+ ContactListItem* pItem = null;
+ MessagePresentationModel* pMsgPrModel = MessagePresentationModel::GetInstance();
+ if (pMsgPrModel)
+ {
+ String contactNumber(pMsgPrModel->GetContactNumberAt(index));
+ String contactName(pMsgPrModel->GetContactNameAt(index));
+ pItem = new (std::nothrow) ContactListItem(contactName, contactNumber, itemWidth, false);
+ pItem->CreateContactListItemLayout(__pExpandEditArea->GetText());
+ }
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return pItem;
+}
+
+bool
+RecipientPanel::DeleteItem(int index, ListItemBase* pItem, int itemWidth)
+{
+ AppLogDebug("ENTER");
+
+ if (pItem)
+ {
+ delete pItem;
+ pItem = null;
+ }
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return true;
+}
+
+int
+RecipientPanel::GetItemCount(void)
+{
+ AppLogDebug("ENTER");
+
+ int contactCount(0);
+ MessagePresentationModel* pMsgPrModel = MessagePresentationModel::GetInstance();
+ if (pMsgPrModel)
+ {
+ contactCount = pMsgPrModel->GetContactsCount();
+ }
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return contactCount;
+}
+
+// Form ITokenFilter
+bool
+RecipientPanel::ReplaceToken(const String& token, String& replacement)
+{
+ AppLogDebug("ENTER");
+ // Hide search list.
+ if (__pContactSearchList->GetShowState())
+ {
+ __pContactSearchList->SetShowState(false);
+ __pContactSearchList->SetSize(GetWidth()-MARGIN_15PX*2, 0);
+ }
+ // Check need to validate
+ if (IsNeedToValidate(token))
+ {
+ // If token exist, duplicate token.
+ if (IsTokenExist(token) || IsNumberExistRecipientList(token))
+ {
+ __errorString = IDS_BLANK;
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGC_BODY_DUPLICATED_RECIPIENT", __errorString);
+ __errorString.Append(token);
+ // ShowMessage(messageText);
+ // Delete last Token, which will insert after this function call
+ DeleteTokenAt(__pRecipientAddrList->GetCount());
+ return true;
+ }
+ // Check recipient exist by contact number.
+ if ((!IsNumberExistRecipientList(token)) && (!IsRecipientExist(token)))
+ {
+ // New token treat as number
+ AddNumberToRecipientList(token);
+ if (!CommonUtil::IsValidPhoneNumber(token))
+ {
+ __errorString = IDS_BLANK;
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_BODY_INVALID_RECIPIENTS", __errorString);
+ __errorString.Append(IDS_COLON);
+ __errorString.Append(token);
+ //ShowMessage(messageText);
+ // Delete last Token, which will insert after this function call
+ DeleteTokenAt(__pRecipientAddrList->GetCount() - 1);
+ return true;
+ }
+ }
+ // If reach max count then need to delete last token.
+ if (__pRecipientAddrList->GetCount() > MAX_COUNT)
+ {
+ String messageText;
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED", messageText);
+ messageText.Format(messageText.GetLength() * 2, messageText.GetPointer(), MAX_COUNT);
+ __errorString = messageText;
+ //ShowMessage(messageText);
+ DeleteTokenAt(MAX_COUNT);
+ }
+ }
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return true;
+}
+
+//From IFocusEventListener
+void
+RecipientPanel::OnFocusGained(const Control& source)
+{
+ AppLogDebug("ENTER");
+
+ GetParent()->SendUserEvent(REQUEST_ENABLE_DISABLE_SEND_BUTTON,null);
+ __pContactCountLabel->SetShowState(false);
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+
+}
+
+void
+RecipientPanel::OnFocusLost(const Control& source)
+{
+ AppLogDebug("ENTER");
+
+ if (__validateOnFocusLost)
+ {
+ // If entered text not yet converted to token, then check it can it be converted to token.
+ CheckRecipentForToken();
+ }
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+bool
+RecipientPanel::CheckRecipentForToken(bool updateToken)
+{
+ AppLogDebug("ENTER");
+ __pExpandEditArea->SetTokenFilter(null);
+ // Hide search list.
+ if (__pContactSearchList->GetShowState())
+ {
+ __pContactSearchList->SetShowState(false);
+ __pContactSearchList->SetSize(GetWidth()- MARGIN_15PX*2, 0);
+ }
+ bool validRecipinet(true);
+ String messageText(IDS_BLANK);
+ String tokenText = __pExpandEditArea->GetText();
+ //Need to do this as editor inserted token automatically on focus lost.
+ // In this case invalid recipients popup shown on top of contact appcontrol.
+ __pExpandEditArea->Clear();
+ int selectIndex = __pExpandEditArea->GetSelectedTokenIndex();
+ if (selectIndex < 0)
+ {
+ if (tokenText.GetLength() > 0)
+ {
+ if (__pExpandEditArea->GetTokenCount() >= MAX_COUNT)
+ {
+ // Reach max limit
+ validRecipinet = false;
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED", messageText);
+ messageText.Format(messageText.GetLength() * 2, messageText.GetPointer(), MAX_COUNT);
+ RequestId requestId = REQUEST_MOVE_FOCUS_RECIPIENT;
+ GetParent()->SendUserEvent(requestId, null);
+ }
+ else
+ {
+ // If token exist, duplicate token.
+ if (IsTokenExist(tokenText) || IsNumberExistRecipientList(tokenText))
+ {
+ validRecipinet = false;
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGC_BODY_DUPLICATED_RECIPIENT", messageText);
+ messageText.Append(IDS_COLON);
+ messageText.Append(tokenText);
+ RequestId requestId = REQUEST_MOVE_FOCUS_RECIPIENT;
+ GetParent()->SendUserEvent(requestId, null);
+ }
+ else if (!CommonUtil::IsValidPhoneNumber(tokenText))
+ {
+ validRecipinet = false;
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_BODY_INVALID_RECIPIENTS", messageText);
+ messageText.Append(IDS_COLON);
+ messageText.Append(tokenText);
+ RequestId requestId = REQUEST_MOVE_FOCUS_RECIPIENT;
+ GetParent()->SendUserEvent(requestId, null);
+ }
+ else
+ {
+ // New token treat as number
+ AddNumberToRecipientList(tokenText);
+ if (updateToken)
+ {
+ __pExpandEditArea->AppendToken(tokenText);
+ __pExpandEditArea->Invalidate(true);
+ }
+ validRecipinet = true;
+ }
+ if(__validateOnFocusLost && !messageText.IsEmpty())
+ {
+ ShowMessage(messageText);
+ }
+ }
+ }
+ }
+ ShowRecipientCount();
+ if (__pContactSearchList)
+ {
+ __pContactSearchList->SetShowState(false);
+ }
+ __pExpandEditArea->SetTokenFilter(this);
+ RequestId requestId = REQUEST_UDATE_FOCUS;
+ GetParent()->SendUserEvent(requestId, null);
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return validRecipinet;
+}
+
+bool
+RecipientPanel::IsTextForTokenExist(void) const
+{
+ return (!__pExpandEditArea->GetText().IsEmpty());
+}
+
+void
+RecipientPanel::ShowRecipientCount(void)
+{
+ AppLogDebug("ENTER");
+ int tokenNumber = __pExpandEditArea->GetTokenCount();
+ bool isAlpha = false;
+
+ if (__pExpandEditArea->GetTokenCount() > 0)
+ {
+ int tokenFisrtLineLength = 0;
+ int i = 0;
+ int numberContactsShown = 0;
+ String tokenCount;
+ tokenCount.Append(L"+");
+ while (i < tokenNumber)
+ {
+ String tokenLength = __pExpandEditArea->GetTokenAt(i);
+ tokenFisrtLineLength += tokenLength.GetLength();
+
+ String alpha_pattern(L"([a-z]+)");
+ RegularExpression alpha_regex;
+ alpha_regex.Construct(alpha_pattern);
+ isAlpha = alpha_regex.Match(tokenLength, false);
+
+ if (isAlpha)
+ {
+ tokenFisrtLineLength = tokenFisrtLineLength - 2;
+ }
+
+ if (i < 4 && tokenFisrtLineLength <= MAX_LENGTH)
+ {
+ __pContactCountLabel->SetShowState(false);
+ numberContactsShown++;
+ i++;
+ }
+ else
+ {
+ if ((i == 0) || (i == 1 && tokenFisrtLineLength <= MAX_LENGTH + 3) || (i == 2 && tokenFisrtLineLength <= MAX_LENGTH + 1)
+ || (i == 3 && tokenFisrtLineLength <= MAX_LENGTH - 1)
+ || (i == 4 && tokenFisrtLineLength <= MAX_LENGTH - 2))
+ {
+ numberContactsShown++;
+ i++;
+ }
+ else
+ {
+ __pContactCountLabel->SetShowState(true);
+ __pContactCountLabel->Draw();
+ __pContactCountLabel->Show();
+ break;
+ }
+ }
+
+ }
+ tokenCount.Append(tokenNumber - numberContactsShown);
+ __pContactCountLabel->SetText(tokenCount);
+ __pContactCountLabel->RequestRedraw(true);
+ }
+ else
+ {
+ __pContactCountLabel->SetShowState(false);
+ }
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+}
+
+void
+RecipientPanel::OnKeyPressed(const Control& source, KeyCode keyCode)
+{
+ AppLogDebug("ENTER");
+
+ switch (keyCode)
+ {
+
+ case KEY_BACKSPACE:
+ {
+ if (source.Equals(*__pExpandEditArea))
+ {
+ RemoveRecipientFromList();
+ }
+ }
+ break;
+
+ default:
+ break;
+ }
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+RecipientPanel::OnKeyReleased(const Control& source, KeyCode keyCode)
+{
+ AppLogDebug("ENTER");
+
+ switch (keyCode)
+ {
+ case KEY_BACKSPACE:
+ {
+ if (source.Equals(*__pExpandEditArea))
+ {
+ // In case of back key press, it s not calling editor text valu change
+ // callback, So, it is handle here.
+ OnTextValueChanged(source);
+ }
+ }
+ break;
+
+ default:
+ break;
+ }
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+//From ITextEventListener
+void
+RecipientPanel::OnTextValueChanged(const Control& source)
+{
+ AppLogDebug("ENTER");
+
+ GetParent()->SendUserEvent(REQUEST_ENABLE_DISABLE_SEND_BUTTON,null);
+
+ // In case try to edit existing token
+ int selectTokenIndex = __pExpandEditArea->GetSelectedTokenIndex();
+ String tokenText = __pExpandEditArea->GetText();
+ if (selectTokenIndex >= 0 && tokenText.GetLength())
+ {
+ if (IsNumberToken(selectTokenIndex) && CommonUtil::IsValidPhoneNumber(tokenText))
+ {
+ // Valid phone number, if so update recipient list
+ UpdateRecipientList(tokenText, selectTokenIndex);
+ }
+ else
+ {
+ // Contact token, can't edit contact token name. OR not a vild phone number
+ // Delete token as, its name not matching with contact
+ DeleteRecipientAndToken(selectTokenIndex);
+ }
+ AppLogDebug("Selected token index= %d", selectTokenIndex);
+ }
+ else
+ {
+ // Token not yet created entered text. do normal operation
+ MessagePresentationModel* pMsgPrModel = MessagePresentationModel::GetInstance();
+ int searchCount(0);
+ if (pMsgPrModel)
+ {
+ pMsgPrModel->SearchContact(__pExpandEditArea->GetText());
+ searchCount = pMsgPrModel->GetContactsCount();
+ }
+ if (__pContactSearchList)
+ {
+ if (searchCount > 0)
+ {
+ __pContactSearchList->SetShowState(true);
+ int height(2 * H_LIST_ITEM_128PX);
+ if (searchCount <= 2)
+ {
+ height = searchCount * H_LIST_ITEM_128PX;
+ }
+ __pContactSearchList->SetPosition(MARGIN_15PX, GetHeight());
+ __pContactSearchList->SetSize(GetWidth()- MARGIN_15PX*2, height);
+ }
+ else
+ {
+ __pContactSearchList->SetShowState(false);
+ __pContactSearchList->SetSize(GetWidth()-MARGIN_15PX*2, 0);
+ }
+ __pContactSearchList->UpdateList();
+ __pContactSearchList->Draw();
+ }
+ }
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+
+}
+
+bool
+RecipientPanel::IsEmptyRecipent(void)
+{
+ AppLogDebug("ENTER");
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ if(__pExpandEditArea->GetTokenCount() > 0 || __pExpandEditArea->GetTextLength() > 0)
+ {
+ return false;
+ }
+ else
+ {
+ return true;
+ }
+}
+
+
+void
+RecipientPanel::ShowMessage(const String& message)
+{
+ AppLogDebug("ENTER");
+ __pExpandEditArea->RemoveFocusEventListener(*this);
+ int modalResult;
+ MessageBox messageBox;
+ String msg(message);
+ if (message.GetLength() > 399)
+ {
+ msg.Remove(398, message.GetLength()-399);
+ }
+ messageBox.Construct(IDS_MESSAGES, msg, MSGBOX_STYLE_OK, 3000);
+ messageBox.ShowAndWait(modalResult);
+ //Wait for modalResult updated value.
+ __pExpandEditArea->AddFocusEventListener(*this);
+ __pExpandEditArea->Invalidate(true);
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+RecipientPanel::RemoveRecipientFromList(void)
+{
+ AppLogDebug("ENTER");
+
+ if (__pExpandEditArea->GetTokenCount() > 0)
+ {
+ int selectedIndex = __pExpandEditArea->GetSelectedTokenIndex();
+ if (selectedIndex < 0 && __pExpandEditArea->GetTextLength() <= 0)
+ {
+ // Turn on selected mode.
+ __pExpandEditArea->SetTokenSelected(__pExpandEditArea->GetTokenCount() - 1, true);
+ selectedIndex = __pExpandEditArea->GetSelectedTokenIndex();
+ }
+ // Syncup recipient list , because selected token will be removed.
+ if (selectedIndex >= 0)
+ {
+ __pRecipientAddrList->RemoveAt(selectedIndex, true);
+ }
+ }
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+RecipientPanel::AddNumberToRecipientList(const String& contactNumber)
+{
+ AppLogDebug("ENTER");
+ AddressInfo* recipent = new (std::nothrow) AddressInfo();
+ recipent->phoneNumber.Append(contactNumber);
+ recipent->displayName.Append(contactNumber);
+ __pRecipientAddrList->Add(recipent);
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+}
+
+void
+RecipientPanel::DeleteTokenAt(int tokenIndex)
+{
+ AppLogDebug("ENTER");
+ if (__pTokenDeleteThread)
+ {
+ __pTokenDeleteThread->Join();
+ delete __pTokenDeleteThread;
+ __pTokenDeleteThread = null;
+ }
+ __deleteTokenIndex = tokenIndex;
+ __pTokenDeleteThread = new (std::nothrow) Thread();
+ __pTokenDeleteThread->Construct(*this);
+ __pTokenDeleteThread->Start();
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+}
+
+Object*
+RecipientPanel::Run(void)
+{
+ AppLogDebug("ENTER");
+ RequestId requestId = REQUEST_SHOW_MESSAGE;
+ SendUserEvent(requestId, null);
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return null;
+}
+
+bool
+RecipientPanel::IsRecipientExist(const String& tokenText) const
+{
+ AppLogDebug("ENTER");
+ int recipientCount = __pRecipientAddrList->GetCount();
+ for (int index = 0; index < recipientCount; index++)
+ {
+ AddressInfo* pRecipientAddress = static_cast<AddressInfo*>(__pRecipientAddrList->GetAt(index));
+ if (pRecipientAddress->displayName.CompareTo(tokenText) == 0)
+ {
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return true;
+ }
+ }
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return false;
+}
+
+bool
+RecipientPanel::IsNumberExistRecipientList(const String& conatctNumber) const
+{
+ AppLogDebug("ENTER");
+ int recipientCount = __pRecipientAddrList->GetCount();
+ for (int index = 0; index < recipientCount; index++)
+ {
+ AddressInfo* pRecipientAddress = static_cast<AddressInfo*>(__pRecipientAddrList->GetAt(index));
+ if (pRecipientAddress->phoneNumber.CompareTo(conatctNumber) == 0)
+ {
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return true;
+ }
+ }
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return false;
+}
+
+bool
+RecipientPanel::IsTokenExist(const String& tokenName) const
+{
+ AppLogDebug("ENTER");
+ bool tokenExist(false);
+ int tokenCount = __pExpandEditArea->GetTokenCount();
+ for (int index = 0; index < tokenCount; index++)
+ {
+ if (__pExpandEditArea->GetTokenAt(index).CompareTo(tokenName) == 0)
+ {
+ tokenExist = true;
+ break;
+ }
+ }
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return tokenExist;
+}
+
+bool
+RecipientPanel::IsNumberToken(int tokenIndex) const
+{
+ AppLogDebug("ENTER");
+
+ if (__pRecipientAddrList->GetCount() > tokenIndex)
+ {
+ AddressInfo* pRecipientAddress = static_cast<AddressInfo*>(__pRecipientAddrList->GetAt(tokenIndex));
+ if ( pRecipientAddress && pRecipientAddress->phoneNumber.CompareTo(pRecipientAddress->displayName) == 0)
+ {
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return true;
+ }
+ }
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return false;
+}
+
+void
+RecipientPanel::DeleteRecipientAndToken(int index)
+{
+ AppLogDebug("ENTER");
+ // This gets called in case of when try to add new token only.
+ int tokenCount = __pExpandEditArea->GetTokenCount();
+ if (index >= 0 && index < tokenCount)
+ {
+ // For duplicate entry
+ if (tokenCount == __pRecipientAddrList->GetCount())
+ {
+ __pRecipientAddrList->RemoveAt(index);
+ }
+ __pExpandEditArea->RemoveTokenAt(index);
+ //ShowRecipientCount();
+ __pExpandEditArea->Invalidate(true);
+ }
+ __pExpandEditArea->SetFocus();
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+}
+
+void
+RecipientPanel::UpdateRecipientList(const String& phoneNumber, int recipientIndex)
+{
+ AppLogDebug("ENTER");
+ AddressInfo* pRecipientAddress = static_cast<AddressInfo*>(__pRecipientAddrList->GetAt(recipientIndex));
+ if (pRecipientAddress)
+ {
+ pRecipientAddress->displayName = phoneNumber;
+ pRecipientAddress->phoneNumber = phoneNumber;
+ }
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+}
+
+bool
+RecipientPanel::IsNeedToValidate(const String& tokenText)
+{
+ AppLogDebug("ENTER");
+ int recipientCount = __pRecipientAddrList->GetCount();
+ for (int index = 0; index < recipientCount; index++)
+ {
+ AddressInfo* pRecipientAddress = static_cast<AddressInfo*>(__pRecipientAddrList->GetAt(index));
+ if (pRecipientAddress->displayName.CompareTo(tokenText) == 0)
+ {
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return pRecipientAddress->needToValidate;
+ }
+ }
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return true;
+
+}
+
+void
+RecipientPanel::OnUserEventReceivedN(RequestId requestId, IList* pArgs)
+{
+ switch (requestId)
+ {
+ case REQUEST_SHOW_MESSAGE:
+ {
+ ShowMessage(__errorString);
+ DeleteRecipientAndToken(__deleteTokenIndex);
+ __deleteTokenIndex = -1;
+ __pExpandEditArea->SetFocus();
+ }
+ break;
+
+ case REQUEST_SET_FOCUS_RECIPIENT:
+ {
+ __pExpandEditArea->SetFocus();
+ }
+ break;
+ }
+
+}
--- /dev/null
+//\r
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.\r
+//\r
+// Licensed under the Flora License, Version 1.0 (the License);\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+// http://floralicense.org/license/\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an AS IS BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+//\r
+\r
+#include <FApp.h>\r
+#include <FUiCtrlCustomItem.h>\r
+#include <FUiCtrlListView.h>\r
+\r
+#include "MsgContactUtility.h"\r
+#include "MsgConversationData.h"\r
+#include "MsgIPopupEventListener.h"\r
+#include "MsgMessagePresentationModel.h"\r
+#include "MsgResendDeletePopup.h"\r
+#include "MsgSmsManager.h"\r
+#include "MsgTypes.h"\r
+\r
+using namespace Tizen::App;\r
+using namespace Tizen::Base;\r
+using namespace Tizen::Base::Collection;\r
+using namespace Tizen::Graphics;\r
+using namespace Tizen::Ui::Controls;\r
+\r
+MsgResendDeletePopup::MsgResendDeletePopup(ConversationData* pConvData, IPopupEventListener& listener)\r
+ : __pConvData(pConvData)\r
+ , __pCancelButton(null)\r
+ , __popupListener(listener)\r
+{\r
+}\r
+\r
+MsgResendDeletePopup::~MsgResendDeletePopup(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+ if (__pConvData)\r
+ {\r
+ delete __pConvData;\r
+ }\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
+\r
+result\r
+MsgResendDeletePopup::Construct(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ result r = E_FAILURE;\r
+ if (!__pConvData)\r
+ {\r
+ return r;\r
+ }\r
+ r = Popup::Construct(L"IDL_MSG_RESEND_DELETE_POPUP");\r
+ if (r == E_SUCCESS)\r
+ {\r
+ String strText;\r
+ Button* __pCancelButton = static_cast<Button*>(GetControl(L"IDC_MSG_CANCEL_BUTTON"));\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_COM_SK_CANCEL", strText);\r
+ __pCancelButton->SetText(strText);\r
+ __pCancelButton->SetActionId(IDA_BUTTON_MESSAGE_RESEND_DELETE_POPUP);\r
+ __pCancelButton->AddActionEventListener(*this);\r
+\r
+ ListView* __pList = static_cast<ListView*>(GetControl(L"IDC_MSG_RESEND_DELETE_LISTVIEW"));\r
+ __pList->AddListViewItemEventListener(*this);\r
+ __pList->SetItemProvider(*this);\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return r;\r
+\r
+}\r
+\r
+void\r
+MsgResendDeletePopup::OnActionPerformed(const Control& source, int actionId)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ switch (actionId)\r
+ {\r
+ case IDA_BUTTON_MESSAGE_RESEND_DELETE_POPUP:\r
+ {\r
+ Popup::SetShowState(false);\r
+ __popupListener.OnPopupClose(this);\r
+ break;\r
+ }\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return;\r
+}\r
+\r
+void\r
+MsgResendDeletePopup::OnUserEventReceivedN(RequestId requestId, IList* pArgs)\r
+{\r
+ switch(requestId)\r
+ {\r
+ case REQUEST_CLOSE_POPUP:\r
+ __popupListener.OnPopupClose(this);\r
+ break;\r
+ }\r
+}\r
+\r
+void\r
+MsgResendDeletePopup::OnListViewItemStateChanged(ListView& listView, int index, int elementId,\r
+ ListItemStatus status)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ Popup::SetShowState(false);\r
+ MessagePresentationModel* pMsgPrModel = MessagePresentationModel::GetInstance();\r
+ if ((status == LIST_ITEM_STATUS_SELECTED) && pMsgPrModel)\r
+ {\r
+ switch (index)\r
+ {\r
+ case 0:\r
+ {\r
+ pMsgPrModel->ReSendMessage(__pConvData->GetEntryId(), __pConvData->IsMms());\r
+ // Send Destroy popup event\r
+ SendUserEvent(REQUEST_CLOSE_POPUP, null);\r
+ }\r
+ break;\r
+\r
+ case 1:\r
+ {\r
+ // Pop destroy will once deletion is done\r
+ pMsgPrModel->Delete(__pConvData->GetEntryId(), *this, REQUEST_DELETE_MESSAGE);\r
+ }\r
+ break;\r
+\r
+ default:\r
+ {\r
+ // Send Destroy popup event\r
+ SendUserEvent(REQUEST_CLOSE_POPUP, null);\r
+ }\r
+ break;\r
+ }\r
+ }\r
+\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return;\r
+}\r
+\r
+void\r
+MsgResendDeletePopup::OnListViewItemSwept(ListView& listView, int index, SweepDirection direction)\r
+{\r
+ AppLogDebug("ENTER");\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return;\r
+}\r
+\r
+void\r
+MsgResendDeletePopup::OnListViewContextItemStateChanged(ListView& listView, int index, int elementId,\r
+ ListContextItemStatus state)\r
+{\r
+ AppLogDebug("ENTER");\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return;\r
+}\r
+\r
+void\r
+MsgResendDeletePopup::OnListViewItemLongPressed(ListView& listView, int index, int elementId,\r
+ bool& invokeListViewItemCallback)\r
+{\r
+ AppLogDebug("ENTER");\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return;\r
+}\r
+\r
+int\r
+MsgResendDeletePopup::GetItemCount(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return 2;\r
+}\r
+\r
+ListItemBase*\r
+MsgResendDeletePopup::CreateItem(int index, int itemWidth)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ String strText;\r
+ ListAnnexStyle style = LIST_ANNEX_STYLE_NORMAL;\r
+ CustomItem* pItem = new (std::nothrow) CustomItem();\r
+ pItem->Construct(Dimension(itemWidth, H_LIST_ITEM_112PX), style);\r
+ switch (index)\r
+ {\r
+ case 0:\r
+ {\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_SK_RESEND", strText);\r
+ pItem->AddElement(Rectangle(MARGIN_16PX, 0, itemWidth, H_LIST_ITEM_112PX), IDC_RESEND_LIST, strText);\r
+ }\r
+ break;\r
+\r
+ case 1:\r
+ {\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_COM_SK_DELETE", strText);\r
+ pItem->AddElement(Rectangle(MARGIN_16PX, 0, itemWidth, H_LIST_ITEM_112PX), IDC_DELETE_LIST, strText);\r
+ }\r
+ break;\r
+\r
+ default:\r
+ break;\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return pItem;\r
+}\r
+\r
+bool\r
+MsgResendDeletePopup::DeleteItem(int index, ListItemBase* pItem, int itemWidth)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ if (pItem)\r
+ {\r
+ delete pItem;\r
+ pItem = null;\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return true;\r
+}\r
+\r
+void\r
+MsgResendDeletePopup::OnDeleteComplete(int errCode, Object* pThreadObject)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ __popupListener.OnPopupClose(this);\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return;\r
+}\r
--- /dev/null
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+#include <cstdlib>
+#include <msg.h>
+#include <msg_storage.h>
+#include <msg_storage_types.h>
+
+#include <FApp.h>
+#include <FBase.h>
+#include <FBaseErrorDefine.h>
+
+#include "MsgCbReceiveSettings.h"
+#include "MsgCommonUtil.h"
+#include "MsgFontsettings.h"
+#include "MsgIDeleteEventListener.h"
+#include "MsgMmsReceiveSettings.h"
+#include "MsgMmsSendSettings.h"
+#include "MsgSettingPresentationModel.h"
+#include "MsgSmscCenterList.h"
+#include "MsgSmsSendSettings.h"
+#include "MsgSpamFilterList.h"
+#include "MsgTypes.h"
+
+
+using namespace Tizen::App;
+using namespace Tizen::Base;
+using namespace Tizen::Base::Collection;
+using namespace Tizen::Base::Runtime;
+using namespace Tizen::Ui;
+
+SettingPresentationModel* SettingPresentationModel::__pInstance = null;
+
+SettingPresentationModel*
+SettingPresentationModel::GetInstance(void)
+{
+ AppLogDebug("ENTER");
+ if (__pInstance == null)
+ {
+ __pInstance = new (std::nothrow) SettingPresentationModel();
+ if (E_SUCCESS != __pInstance->Construct())
+ {
+ delete __pInstance;
+ __pInstance = null;
+ }
+ }
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return __pInstance;
+}
+
+SettingPresentationModel::SettingPresentationModel(void)
+ : __pMsgHandle(null)
+ , __pMmsRecvSettings(null)
+ , __pMmsSendSettings(null)
+ , __pSmscCentersList(null)
+ , __pSmsSendSettings(null)
+ , __pSpamFilterList(null)
+ , __pCbSettings(null)
+ , __pFontSettings(null)
+ , __pDeleteFilterThread(null)
+ , __pDeleteFilterIndexList(null)
+{
+ //Empty implementation
+}
+
+SettingPresentationModel::~SettingPresentationModel(void)
+{
+ AppLogDebug("ENTER");
+
+ if (__pDeleteFilterThread)
+ {
+ __pDeleteFilterThread->Join();
+ delete __pDeleteFilterThread;
+ }
+
+ if (__pDeleteFilterIndexList)
+ {
+ __pDeleteFilterIndexList->RemoveAll();
+ delete __pDeleteFilterIndexList;
+ }
+
+ if (__pSpamFilterList)
+ {
+ delete __pSpamFilterList;
+ }
+ if (__pSmsSendSettings)
+ {
+ delete __pSmsSendSettings;
+ }
+ if (__pMmsSendSettings)
+ {
+ delete __pMmsSendSettings;
+ }
+ if (__pSmscCentersList)
+ {
+ delete __pSmscCentersList;
+ }
+ if (__pMmsRecvSettings)
+ {
+ delete __pMmsRecvSettings;
+ }
+ if (__pMsgHandle)
+ {
+ // Close open handle with message service
+ msg_close_msg_handle(&__pMsgHandle);
+ }
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+}
+
+result
+SettingPresentationModel::Construct(void)
+{
+ AppLogDebug("ENTER");
+
+ result r = E_SUCCESS;
+ msg_error_t err = MSG_SUCCESS;
+ // Open session with message service.
+ err = msg_open_msg_handle(&__pMsgHandle);
+ if (err != MSG_SUCCESS)
+ {
+ AppLogDebug("msg_open_msg_handle err = %d", (int) err);
+ result r = E_FAILURE;
+ return r;
+ }
+ // On filter operation if it is disabled
+ bool filterFlag(false);
+ err = msg_get_filter_operation(__pMsgHandle, &filterFlag);
+ AppLogDebug("msg_get_filter_operation err = %d", (int) err);
+ if (!filterFlag)
+ {
+ err = msg_set_filter_operation(__pMsgHandle, true);
+ AppLogDebug("msg_set_filter_operation err = %d", (int) err);
+ }
+ __pFontSettings = new (std::nothrow) FontSettings();
+ __pFontSettings->Construct();
+ // Update spam filter.
+ RefreshSpamFilterList();
+
+ AppLogDebug("EXIT: r = %s", GetErrorMessage(r));
+ return r;
+}
+
+void
+SettingPresentationModel::CreateInstance(void)
+{
+ AppLogDebug("ENTER");
+ __pInstance = new (std::nothrow) SettingPresentationModel();
+ if (E_SUCCESS != __pInstance->Construct())
+ {
+ delete __pInstance;
+ __pInstance = null;
+ return;
+ }
+ // To destroy singletone object application exit.
+ std::atexit(DestroyInstance);
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+}
+
+void
+SettingPresentationModel::DestroyInstance(void)
+{
+ AppLogDebug("ENTER");
+ delete __pInstance;
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+}
+
+SmscCenterList*
+SettingPresentationModel::GetSMSCList(void)
+{
+ AppLogDebug("ENTER");
+
+ result r = E_SUCCESS;
+ if (__pSmscCentersList == null)
+ {
+ msg_struct_t pSmscInfo = msg_create_struct(MSG_STRUCT_SETTING_SMSC_OPT);
+ msg_error_t err = msg_get_smsc_opt(__pMsgHandle, pSmscInfo);
+ if (err == MSG_SUCCESS)
+ {
+ __pSmscCentersList = new (std::nothrow) SmscCenterList(pSmscInfo);
+ __pSmscCentersList->Construct();
+ }
+ else
+ {
+ r = E_FAILURE;
+ msg_release_struct(&pSmscInfo);
+ }
+ AppLogDebug("msg_get_smsc_opt err [%d]", (int) err);
+ }
+
+
+ AppLogDebug("EXIT: r = %s", GetErrorMessage(r));
+ return __pSmscCentersList;
+}
+
+void
+SettingPresentationModel::UpdateSmscCenter(void)
+{
+ AppLogDebug("ENTER");
+
+ if (__pSmscCentersList)
+ {
+ msg_error_t err = msg_set_smsc_opt(__pMsgHandle, __pSmscCentersList->GetSmscOpt());
+ AppLogDebug("msg_set_smsc_opt = [%d]", (int) err);
+ }
+
+ AppLogDebug("EXIT");
+ return;
+}
+
+SmsSendSettings*
+SettingPresentationModel::GetSmsSendSetting(void)
+{
+ AppLogDebug("ENTER");
+
+ result r = E_SUCCESS;
+ if (__pSmsSendSettings == null)
+ {
+ msg_struct_t pSmsSendOpt = msg_create_struct(MSG_STRUCT_SETTING_SMS_SEND_OPT);
+ if (msg_get_sms_send_opt(__pMsgHandle, pSmsSendOpt) == MSG_SUCCESS)
+ {
+ // Transfer ownership of pSmsSendOpt
+ __pSmsSendSettings = new (std::nothrow) SmsSendSettings(pSmsSendOpt);
+ }
+ else
+ {
+ r = E_FAILURE;
+ msg_release_struct(&pSmsSendOpt);
+ }
+ }
+ AppLogDebug("EXIT: r = %s", GetErrorMessage(r));
+ return __pSmsSendSettings;
+}
+
+void
+SettingPresentationModel::SaveSmsSendSetting(void)
+{
+ AppLogDebug("ENTER");
+
+ result r = E_SUCCESS;
+ if (__pSmsSendSettings)
+ {
+ msg_error_t err = msg_set_sms_send_opt(__pMsgHandle, __pSmsSendSettings->GetSmsSendOpt());
+ if (err != MSG_SUCCESS)
+ {
+ r = E_FAILURE;
+ }
+ AppLogDebug("msg_set_sms_send_opt = [%d]", (int) err);
+ }
+ else
+ {
+ r = E_FAILURE;
+ AppLogDebug("SMS send settings not yet intialized, __pSmsSendSettings == NULL");
+ }
+
+ AppLogDebug("EXIT: r = %s", GetErrorMessage(r));
+ return;
+}
+
+MmsReceiveSettings*
+SettingPresentationModel::GetMmsReceiveSettings(void)
+{
+ AppLogDebug("ENTER");
+
+ result r = E_SUCCESS;
+ if (__pMmsRecvSettings == null)
+ {
+ msg_struct_t pMmsRecvOpt = msg_create_struct(MSG_STRUCT_SETTING_MMS_RECV_OPT);
+ if (msg_get_mms_recv_opt(__pMsgHandle, pMmsRecvOpt) == MSG_SUCCESS)
+ {
+ // Transfer ownership of pMmsRecvOpt
+ __pMmsRecvSettings = new (std::nothrow) MmsReceiveSettings(pMmsRecvOpt);
+ }
+ else
+ {
+ r = E_FAILURE;
+ msg_release_struct(&pMmsRecvOpt);
+ }
+ }
+
+ AppLogDebug("EXIT: r = %s", GetErrorMessage(r));
+ return __pMmsRecvSettings;
+}
+
+void
+SettingPresentationModel::SaveMmsReceiveSettings(void)
+{
+ AppLogDebug("ENTER");
+ if (__pMmsRecvSettings)
+ {
+ msg_error_t err = msg_set_mms_recv_opt(__pMsgHandle, __pMmsRecvSettings->GetMmsRecvOpt());
+ AppLogDebug("msg_set_mms_recv_opt = [%d]", (int) err);
+ }
+ AppLogDebug("EXIT");
+ return;
+}
+
+MmsSendSettings*
+SettingPresentationModel::GetMmsSendSettings(void)
+{
+ AppLogDebug("ENTER");
+
+ result r = E_SUCCESS;
+ if (__pMmsSendSettings == null)
+ {
+ msg_struct_t pMmsSendOpt = msg_create_struct(MSG_STRUCT_SETTING_MMS_SEND_OPT);
+ msg_error_t err = msg_get_mms_send_opt(__pMsgHandle, pMmsSendOpt);
+ if (err == MSG_SUCCESS)
+ {
+ // Transfer ownership of pMmsSendOpt
+ __pMmsSendSettings = new (std::nothrow) MmsSendSettings(pMmsSendOpt);
+ }
+ else
+ {
+ r = E_FAILURE;
+ msg_release_struct(&pMmsSendOpt);
+ }
+ AppLogDebug("msg_get_sms_send_opt err [%d]", (int) err);
+ }
+
+ AppLogDebug("EXIT: r = %s", GetErrorMessage(r));
+ return __pMmsSendSettings;
+}
+
+void
+SettingPresentationModel::SaveMmsSendSettings(void)
+{
+ AppLogDebug("ENTER");
+
+ msg_error_t err = MSG_SUCCESS;
+ if (__pMmsSendSettings)
+ {
+ err = msg_set_mms_send_opt(__pMsgHandle, __pMmsSendSettings->GetMmsSendOpt());
+ }
+
+ AppLogDebug("EXIT: msg_set_mms_send_opt = [%d]", (int) err);
+ return;
+}
+
+SpamFilterList*
+SettingPresentationModel::GetSpamFilterList()
+{
+ AppLogDebug("ENTER");
+
+ result r = E_SUCCESS;
+ if (__pSpamFilterList == null)
+ {
+ msg_struct_list_s* pFilterList = new (std::nothrow) msg_struct_list_s();
+ pFilterList->msg_struct_info = null;
+ pFilterList->nCount = 0;
+ msg_error_t err = msg_get_filter_list(__pMsgHandle, pFilterList);
+ if (err == MSG_SUCCESS)
+ {
+ __pSpamFilterList = new (std::nothrow) SpamFilterList(pFilterList);
+ __pSpamFilterList->Construct();
+ }
+ else
+ {
+ r = E_FAILURE;
+ msg_release_list_struct(pFilterList);
+ delete pFilterList;
+ }
+ }
+
+ AppLogDebug("EXIT: r = %s", GetErrorMessage(r));
+ return __pSpamFilterList;
+}
+
+void
+SettingPresentationModel::RefreshSpamFilterList(void)
+{
+ AppLogDebug("ENTER");
+
+ if (__pSpamFilterList)
+ {
+ delete __pSpamFilterList;
+ __pSpamFilterList = null;
+ }
+ GetSpamFilterList();
+
+ AppLogDebug("EXIT");
+ return;
+}
+
+result
+SettingPresentationModel::AddToFilter(const String& strFilter, int matchType)
+{
+ AppLogDebug("ENTER");
+
+ msg_error_t err = MSG_SUCCESS;
+ result r = E_SUCCESS;
+ msg_struct_t pFilter = msg_create_struct(MSG_STRUCT_FILTER);
+ // Set filter type
+ switch (matchType)
+ {
+ case MSG_FILTER_BY_WORD:
+ case MSG_FILTER_BY_ADDRESS_SAME:
+ case MSG_FILTER_BY_ADDRESS_START:
+ case MSG_FILTER_BY_ADDRESS_INCLUDE:
+ {
+ err = msg_set_int_value(pFilter, MSG_FILTER_TYPE_INT, matchType);
+ }
+ break;
+ }
+ if (err != MSG_SUCCESS)
+ {
+ r = E_FAILURE;
+ msg_release_struct(&pFilter);
+ AppLogDebug("EXIT: r = %S", GetErrorMessage(r));
+ return r;
+ }
+ // Set filter string.
+ char* pfilterString = CommonUtil::ConvertStringToPointerCharArrayN(strFilter);
+ err = msg_set_str_value(pFilter, MSG_FILTER_VALUE_STR, pfilterString, (int) strlen(pfilterString));
+ if (err != MSG_SUCCESS)
+ {
+ result r = E_FAILURE;
+ AppLogDebug("EXIT: r = %s", GetErrorMessage(r));
+ delete[] pfilterString;
+ msg_release_struct(&pFilter);
+ return r;
+ }
+ err = msg_add_filter(__pMsgHandle, (const msg_struct_t) pFilter);
+ if (err != MSG_SUCCESS)
+ {
+ delete[] pfilterString;
+ r = E_FAILURE;
+ msg_release_struct(&pFilter);
+ AppLogDebug("EXIT: r = %s", GetErrorMessage(r));
+ return r;
+ }
+ delete[] pfilterString;
+
+ msg_release_struct(&pFilter);
+ AppLogDebug("EXIT: r = %s", GetErrorMessage(r));
+ return r;
+}
+
+result
+SettingPresentationModel::UpdateFilter(int index, int filterType, const String& strFilter, int matchType)
+{
+ AppLogDebug("ENTER");
+
+ result r = E_SUCCESS;
+ if (!__pSpamFilterList)
+ {
+ AppLogDebug("Spam filter list not yet intialize, __pSpamFilterList == NULL");
+ AppLogDebug("EXIT: r = %s", GetErrorMessage(r));
+ r = E_FAILURE;
+ return r;
+ }
+ // Set filter string.
+ int filterLength = strFilter.GetLength() * 4 + 1;
+ char* pfilterString = new (std::nothrow) char[filterLength];
+ wcstombs(pfilterString, strFilter.GetPointer(), (size_t) filterLength);
+ msg_struct_t pFilter = __pSpamFilterList->GetFilter(index, filterType);
+ msg_error_t err = msg_set_int_value(pFilter, MSG_FILTER_TYPE_INT, matchType);
+ if (err != MSG_SUCCESS)
+ {
+ r |= E_FAILURE;
+ }
+ err = msg_set_str_value(pFilter, MSG_FILTER_VALUE_STR, pfilterString, filterLength);
+ if (err != MSG_SUCCESS)
+ {
+ r |= E_FAILURE;
+ }
+ err = msg_update_filter(__pMsgHandle, (const msg_struct_t) pFilter);
+ if (err != MSG_SUCCESS)
+ {
+ r |= E_FAILURE;
+ }
+ AppLogDebug("msg_update_filter err [%d]", (int) err);
+ delete[] pfilterString;
+
+ AppLogDebug("EXIT: r = %s", GetErrorMessage(r));
+ return r;
+}
+
+result
+SettingPresentationModel::DeleteFilter(int filterIndex, int filterType)
+{
+ AppLogDebug("ENTER");
+
+ result r = E_SUCCESS;
+
+ if (!__pSpamFilterList)
+ {
+ AppLogDebug("Spam filter list not yet intialize, __pSpamFilterList == NULL");
+ AppLogDebug("EXIT: r = %s", GetErrorMessage(r));
+ r = E_FAILURE;
+ return r;
+ }
+ msg_filter_id_t filterId = (msg_filter_id_t) __pSpamFilterList->GetFilterId(filterIndex, filterType);
+ msg_error_t err = msg_delete_filter(__pMsgHandle, filterId);
+ if (err != MSG_SUCCESS)
+ {
+ r = E_FAILURE;
+ }
+ AppLogDebug("msg_delete_filter err [%d]", (int) err);
+
+ AppLogDebug("EXIT: r = %s", GetErrorMessage(r));
+ return r;
+}
+
+result
+SettingPresentationModel::DeleteFilter(IListT< int >* pDeleteIdList, int filterType, Control* pListener)
+{
+ AppLogDebug("ENTER");
+
+ result r = E_SUCCESS;
+ if (__pDeleteFilterThread)
+ {
+ __pDeleteFilterThread->Join();
+ delete __pDeleteFilterThread;
+ __pDeleteFilterThread = null;
+ }
+ if (__pDeleteFilterIndexList)
+ {
+ __pDeleteFilterIndexList->RemoveAll();
+ delete __pDeleteFilterIndexList;
+ __pDeleteFilterIndexList = null;
+ }
+ __pDeleteFilterListener = pListener;
+ __pDeleteFilterIndexList = pDeleteIdList;
+ __filterType = filterType;
+ __pDeleteFilterThread = new (std::nothrow) Thread();
+ __pDeleteFilterThread->Construct(*this);
+ r = __pDeleteFilterThread->Start();
+
+ AppLogDebug("EXIT: r = %s", GetErrorMessage(GetLastResult()));
+ return r;
+}
+
+CbReceiveSettings*
+SettingPresentationModel::GetCbSettings(void)
+{
+ AppLogDebug("ENTER");
+
+ result r = E_SUCCESS;
+ if (__pCbSettings == null)
+ {
+ msg_struct_t pCbInfo = msg_create_struct(MSG_STRUCT_SETTING_CB_OPT);
+ msg_error_t err = msg_get_cb_opt(__pMsgHandle, pCbInfo);
+ if (err == MSG_SUCCESS)
+ {
+ __pCbSettings = new (std::nothrow) CbReceiveSettings(pCbInfo);
+ }
+ else
+ {
+ r = E_FAILURE;
+ msg_release_struct(&pCbInfo);
+ }
+ AppLogDebug("msg_get_smsc_opt err [%d]", (int) err);
+ }
+
+ AppLogDebug("EXIT: r = %s", GetErrorMessage(r));
+ return __pCbSettings;
+
+}
+
+void
+SettingPresentationModel::SaveCbSettings(void)
+{
+ AppLogDebug("ENTER");
+
+ msg_error_t err = E_SUCCESS;
+ if (__pCbSettings)
+ {
+ err = msg_set_cb_opt(__pMsgHandle, __pCbSettings->GetCbOpt());
+ }
+
+ AppLogDebug("EXIT: msg_set_mms_send_opt = [%d]", (int) err);
+ return;
+}
+
+FontSettings*
+SettingPresentationModel::GetFontSettings(void)
+{
+ AppLogDebug("ENTER");
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return __pFontSettings;
+}
+
+bool
+SettingPresentationModel::IsVolumeKeyOn(void) const
+{
+ AppLogDebug("ENTER");
+
+ AppRegistry* pAppRegistry = Application::GetInstance()->GetAppRegistry();
+ int isVolumeKeyUse(0);
+ result r = pAppRegistry->Get(IDS_SETTING_VOLUME_KEY, isVolumeKeyUse);
+ if (r == E_KEY_NOT_FOUND)
+ {
+ pAppRegistry->Add(IDS_SETTING_VOLUME_KEY, isVolumeKeyUse);
+ r = pAppRegistry->Save();
+ }
+
+ AppLogDebug("EXIT: r = %s", GetErrorMessage(r));
+ return (isVolumeKeyUse > 0);
+}
+
+void
+SettingPresentationModel::SetVolumeKeyStatus(bool status)
+{
+ AppLogDebug("ENTER");
+
+ AppRegistry* pAppRegistry = Application::GetInstance()->GetAppRegistry();
+ result r = pAppRegistry->Set(IDS_SETTING_VOLUME_KEY, status);
+ if (r == E_KEY_NOT_FOUND)
+ {
+ r = pAppRegistry->Add(IDS_SETTING_VOLUME_KEY, status);
+ if (IsFailed(r))
+ {
+ AppLogDebug("Unable add volume key setting");
+ }
+ }
+ r = pAppRegistry->Save();
+
+ AppLogDebug("EXIT: r = %s", GetErrorMessage(r));
+ return;
+}
+
+
+int
+SettingPresentationModel::GetFilterListIndex(const String& strFilter)
+{
+ AppLogDebug("ENTER");
+
+ int filterIndex = -1;
+ if (__pSpamFilterList)
+ {
+ filterIndex = __pSpamFilterList->GetFilterListIndex(strFilter, 1);
+ }
+
+ AppLogDebug("EXIT: r = %s", GetErrorMessage(GetLastResult()));
+ return filterIndex;
+}
+
+Object*
+SettingPresentationModel::Run(void)
+{
+ AppLogDebug("ENTER");
+
+ int totalCount(0);
+ IList* pArgs = null;
+ result r = E_SUCCESS;
+ if (__pDeleteFilterIndexList)
+ {
+ totalCount = __pDeleteFilterIndexList->GetCount();
+ if (__pDeleteFilterListener)
+ {
+ pArgs = new (std::nothrow) ArrayList(SingleObjectDeleter);
+ if(pArgs)
+ {
+ pArgs->Add(new Integer(totalCount));
+ __pDeleteFilterListener->SendUserEvent(REQUEST_DELETE_START,pArgs);
+ }
+ }
+ for (int count = 0; count < totalCount; ++count)
+ {
+ int filterIndex(-1);
+ r = __pDeleteFilterIndexList->GetAt(count, filterIndex);
+ if (filterIndex >= 0)
+ {
+ DeleteFilter(filterIndex, __filterType);
+ if (__pDeleteFilterListener)
+ {
+ pArgs = new (std::nothrow) ArrayList(SingleObjectDeleter);
+ if(pArgs)
+ {
+ pArgs->Add(new Integer(count + 1));
+ pArgs->Add(new Integer(totalCount));
+ __pDeleteFilterListener->SendUserEvent(REQUEST_DELETE_UPDATE,pArgs);
+ }
+ }
+ }
+ }
+ __pDeleteFilterIndexList->RemoveAll();
+ delete __pDeleteFilterIndexList;
+ __pDeleteFilterIndexList = null;
+ RefreshSpamFilterList();
+ }
+
+ if (__pDeleteFilterListener)
+ {
+ pArgs = new (std::nothrow) ArrayList(SingleObjectDeleter);
+ if(pArgs)
+ {
+ pArgs->Add(new Integer(E_SUCCESS));
+ __pDeleteFilterListener->SendUserEvent(REQUEST_DELETE_COMPLETE,pArgs);
+ }
+ }
+
+ AppLogDebug("EXIT: r = %s", GetErrorMessage(GetLastResult()));
+ return null;
+}
--- /dev/null
+//\r
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.\r
+//\r
+// Licensed under the Flora License, Version 1.0 (the License);\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+// http://floralicense.org/license/\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an AS IS BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+//\r
+\r
+#include <FApp.h>\r
+#include <FUiCtrlEditField.h>\r
+#include <FUiCtrlFooter.h>\r
+#include <FUiCtrlHeader.h>\r
+#include <FUiCtrlLabel.h>\r
+#include <FUiScenesBackwardSceneTransition.h>\r
+#include <FUiScenesForwardSceneTransition.h>\r
+#include <FUiScenesSceneManager.h>\r
+\r
+#include "MsgBitmapUtility.h"\r
+#include "MsgCbReceiveSettings.h"\r
+#include "MsgCommonUtil.h"\r
+#include "MsgCustomTableViewItem.h"\r
+#include "MsgFontsettings.h"\r
+#include "MsgMessagesApp.h"\r
+#include "MsgMmsReceiveSettings.h"\r
+#include "MsgMmsSendSettings.h"\r
+#include "MsgSettingsForm.h"\r
+#include "MsgSettingPresentationModel.h"\r
+#include "MsgSpamFilterList.h"\r
+#include "MsgSmscCenterList.h"\r
+#include "MsgSmsSendSettings.h"\r
+#include "MsgSettingsItemList.h"\r
+#include "MsgTypes.h"\r
+\r
+using namespace Tizen::App;\r
+using namespace Tizen::Base;\r
+using namespace Tizen::Base::Collection;\r
+using namespace Tizen::Graphics;\r
+using namespace Tizen::Ui::Controls;\r
+using namespace Tizen::Ui::Scenes;\r
+\r
+const wchar_t* IDS_CENTER = L"Center ";\r
+\r
+SettingsForm::SettingsForm(MessageSettingFormType settingFormType)\r
+ : __settingFormType(settingFormType)\r
+ , __pSettingGroupTableView(null)\r
+ , __pSettingItemsArray(null)\r
+ , __editSmscIndex(-1)\r
+{\r
+ //Empty implementation\r
+}\r
+\r
+SettingsForm::~SettingsForm(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+ if (__pSettingItemsArray)\r
+ {\r
+ delete __pSettingItemsArray;\r
+ }\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
+\r
+bool\r
+SettingsForm::Initialize(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ bool status(true);\r
+ result r = E_SUCCESS;\r
+ if (__settingFormType == MESSAGE_SETTING_FORM_EDIT_SERVICE_CENTER)\r
+ {\r
+ r = Construct(L"IDL_SETTING_EDIT_SERVICE_CENTER_FORM");\r
+ }\r
+ else\r
+ {\r
+ r = Construct(L"IDL_SETTINGS_FORM");\r
+ }\r
+ if (!IsFailed(r))\r
+ {\r
+ switch (__settingFormType)\r
+ {\r
+ case MESSAGE_SETTING_FORM_MESSAGE_MAIN:\r
+ {\r
+ status = InitializeMessageSettingItems();\r
+ }\r
+ break;\r
+\r
+ case MESSAGE_SETTING_FORM_TEXT_MESSAGES:\r
+ {\r
+ status = InitializeTextMessageSettingItems();\r
+ }\r
+ break;\r
+\r
+ case MESSAGE_SETTING_FORM_FONT_SIZE:\r
+ {\r
+ status = InitializeFontSettingItems();\r
+ }\r
+ break;\r
+\r
+ case MESSAGE_SETTING_FORM_SERVICE_CENTER:\r
+ case MESSAGE_SETTING_FORM_EDIT_SERVICE_CENTER:\r
+ default:\r
+ break;\r
+ }\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return status;\r
+}\r
+\r
+bool\r
+SettingsForm::InitializeMessageSettingItems(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ String strText;\r
+ __pSettingItemsArray = new (std::nothrow) SettingItemsList();\r
+ int groupIndex = __pSettingItemsArray->AddGroup(IDS_BLANK);\r
+ if (groupIndex >= 0)\r
+ {\r
+\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_BODY_TEXT_MESSAGES", strText);\r
+ SettingItem* settingItem = new (std::nothrow) SettingItem(IDA_SETTINGS_TEXT_MESSAGES, strText, SETTING_STYLE_NORMAL);\r
+ __pSettingItemsArray->AddItem(groupIndex, *settingItem);\r
+#ifndef _DISABLE_MMS_FEATURE_\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_BODY_SETTINGS_MULTIMEDIAMESSAGE", strText);\r
+ settingItem = new (std::nothrow) SettingItem(IDA_SETTINGS_MULTIMEDIA_MESSAGES, strText, SETTING_STYLE_NORMAL);\r
+ __pSettingItemsArray->AddItem(groupIndex, *settingItem);\r
+#endif\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_BODY_SPAM_MESSAGES", strText);\r
+ settingItem = new (std::nothrow) SettingItem(IDA_SETTINGS_SPAM_MESSAGES, strText, SETTING_STYLE_NORMAL);\r
+ __pSettingItemsArray->AddItem(groupIndex, *settingItem);\r
+#if 0\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_BODY_BROADCASTMESSAGES", strText);\r
+ settingItem = new (std::nothrow) SettingItem(IDA_SETTINGS_BROADCAST_MESSAGES, strText, SETTING_STYLE_ONOFF_SLIDING);\r
+ __pSettingItemsArray->AddItem(groupIndex, *settingItem);\r
+#endif\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_COM_BODY_DISPLAY", strText);\r
+ groupIndex = __pSettingItemsArray->AddGroup(strText, SETTING_GROUP_STYLE_TITLE);\r
+#if 0\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_FONTSIZE", strText);\r
+ settingItem = new (std::nothrow) SettingItem(IDA_SETTINGS_FONT_SIZE, strText, SETTING_STYLE_NORMAL);\r
+ __pSettingItemsArray->AddItem(groupIndex, *settingItem);\r
+#endif\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSG_MBODY_USE_THE_VOLUME_KEY", strText);\r
+ settingItem = new (std::nothrow) SettingItem(IDA_SETTINGS_VOLUME_KEY, strText, SETTING_STYLE_ONOFF_SLIDING);\r
+ __pSettingItemsArray->AddItem(groupIndex, *settingItem);\r
+\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSG_BODY_CHANGE_TEXT_SIZE_USING_THE_VOLUME_KEY", strText);\r
+ __pSettingItemsArray->AddGroup(strText, SETTING_GROUP_STYLE_HELP_TEXT);\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return true;\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return false;\r
+}\r
+\r
+bool\r
+SettingsForm::InitializeTextMessageSettingItems(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ String strText;\r
+ __pSettingItemsArray = new (std::nothrow) SettingItemsList();\r
+\r
+ int groupIndex = __pSettingItemsArray->AddGroup("");\r
+ if (groupIndex >= 0)\r
+ {\r
+ /* Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_BODY_REQUEST_DELIVERY_REPORT", strText);\r
+ SettingItem* settingItem = new (std::nothrow) SettingItem(IDA_SETTINGS_TEXTMSG_REQ_DELIVERY_REPORT,\r
+ strText, SETTING_STYLE_ONOFF_SLIDING);\r
+ __pSettingItemsArray->AddItem(groupIndex, *settingItem);\r
+ */ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGC_HEADER_INPUTMODE", strText);\r
+ SettingItem* settingItem = new (std::nothrow) SettingItem(IDA_SETTINGS_TEXTMSG_INPUT_MODE, strText,\r
+ SETTING_STYLE_EXPANDABLE,\r
+ SETTING_STATUS_ITEM_INPUTMODE);\r
+ __pSettingItemsArray->AddItem(groupIndex, *settingItem);\r
+\r
+ groupIndex = __pSettingItemsArray->AddGroup("", SETTING_GROUP_STYLE_NORMAL, false);\r
+\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_BODY_GSM_ALPHABET", strText);\r
+ settingItem = new (std::nothrow) SettingItem(IDA_SETTINGS_TEXTMSG_GSM_ALPHABET, strText,\r
+ SETTING_STYLE_RADIO);\r
+ __pSettingItemsArray->AddItem(groupIndex, *settingItem);\r
+\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_BODY_UNICODE", strText);\r
+ settingItem = new (std::nothrow) SettingItem(IDA_SETTINGS_TEXTMSG_GSM_UNICODE, strText,\r
+ SETTING_STYLE_RADIO);\r
+ __pSettingItemsArray->AddItem(groupIndex, *settingItem);\r
+\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_BODY_AUTOMATIC", strText);\r
+ settingItem = new (std::nothrow) SettingItem(IDA_SETTINGS_TEXTMSG_GSM_AUTOMATIC, strText,\r
+ SETTING_STYLE_RADIO);\r
+ __pSettingItemsArray->AddItem(groupIndex, *settingItem);\r
+\r
+ groupIndex = __pSettingItemsArray->AddGroup("");\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_BODY_SERVICECENTRE", strText);\r
+ settingItem = new (std::nothrow) SettingItem(IDA_SETTINGS_SERVICE_CENTERS, strText,\r
+ SETTING_STYLE_NORMAL,\r
+ SETTING_STATUS_ITEM_SERVICE_CENTER);\r
+ __pSettingItemsArray->AddItem(groupIndex, *settingItem);\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return true;\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return false;\r
+}\r
+\r
+bool\r
+SettingsForm::InitializeFontSettingItems(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ __pSettingItemsArray = new (std::nothrow) SettingItemsList();\r
+ int groupIndex = __pSettingItemsArray->AddGroup(IDS_BLANK);\r
+ if (groupIndex >= 0)\r
+ {\r
+ // Font settings\r
+ String strText;\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_SYSTEM_FONT", strText);\r
+ SettingItem* settingItem = new (std::nothrow) SettingItem(IDA_SETTINGS_SYSTEM_FONT, strText, SETTING_STYLE_RADIO);\r
+ __pSettingItemsArray->AddItem(groupIndex, *settingItem);\r
+\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_HUGE_FONT", strText);\r
+ settingItem = new (std::nothrow) SettingItem(IDA_SETTINGS_HUGE_FONT, strText, SETTING_STYLE_RADIO);\r
+ __pSettingItemsArray->AddItem(groupIndex, *settingItem);\r
+\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_LARGE_FONT", strText);\r
+ settingItem = new (std::nothrow) SettingItem(IDA_SETTINGS_LARGE_FONT, strText, SETTING_STYLE_RADIO);\r
+ __pSettingItemsArray->AddItem(groupIndex, *settingItem);\r
+\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_COM_SK_NORMAL_FONT", strText);\r
+ settingItem = new (std::nothrow) SettingItem(IDA_SETTINGS_NORMAL_FONT, strText, SETTING_STYLE_RADIO);\r
+ __pSettingItemsArray->AddItem(groupIndex, *settingItem);\r
+\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_SMALL_FONT", strText);\r
+ settingItem = new (std::nothrow) SettingItem(IDA_SETTINGS_SMALL_FONT, strText, SETTING_STYLE_RADIO);\r
+ __pSettingItemsArray->AddItem(groupIndex, *settingItem);\r
+\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_TINY_FONT", strText);\r
+ settingItem = new (std::nothrow) SettingItem(IDA_SETTINGS_TINY_FONT, strText, SETTING_STYLE_RADIO);\r
+ __pSettingItemsArray->AddItem(groupIndex, *settingItem);\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return true;\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return false;\r
+}\r
+\r
+result\r
+SettingsForm::OnInitializing(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ result r = E_SUCCESS;\r
+ r = BaseForm::InitializeBase();\r
+ Control* pEmptyBgCntl = GetControl(L"IDC_LISTVIEW_EMPTY_BG");\r
+ if (pEmptyBgCntl)\r
+ {\r
+ pEmptyBgCntl->SetShowState(false);\r
+ }\r
+\r
+ if (__settingFormType == MESSAGE_SETTING_FORM_EDIT_SERVICE_CENTER)\r
+ {\r
+ EditField* __pEditField = static_cast<EditField*>(GetControl(L"IDC_EDITFIELD"));\r
+ __pEditField->SetOverlayKeypadCommandButtonVisible(false);\r
+ __pEditField->SetFocus();\r
+ }\r
+ else\r
+ {\r
+ __pSettingGroupTableView = static_cast<GroupedTableView*>(GetControl(L"IDC_GROUPEDTABLEVIEW_SETTINGS"));\r
+ __pSettingGroupTableView->SetBackgroundColor(COLOR_LIST_BG);\r
+ __pSettingGroupTableView->SetItemProvider(this);\r
+ __pSettingGroupTableView->AddGroupedTableViewItemEventListener(*this);\r
+ __pSettingGroupTableView->UpdateTableView();\r
+ }\r
+ // Load intial setting data.\r
+ if (__pSettingItemsArray)\r
+ {\r
+ __pSettingGroupTableView->CollapseAllGroup();\r
+ LoadCurrentSettings();\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return r;\r
+}\r
+\r
+result\r
+SettingsForm::OnTerminating(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ result r = E_SUCCESS;\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return r;\r
+}\r
+\r
+void\r
+SettingsForm::OnIntializeFooter(Footer& footer)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ // Set event listener\r
+ footer.AddActionEventListener(*this);\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return;\r
+}\r
+\r
+void\r
+SettingsForm::OnIntializeHeader(Header& header)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ // Set event listener\r
+ header.AddActionEventListener(*this);\r
+\r
+ String titleText;\r
+ switch (__settingFormType)\r
+ {\r
+ case MESSAGE_SETTING_FORM_MESSAGE_MAIN:\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_COM_BODY_MESSAGES", titleText);\r
+ break;\r
+\r
+ case MESSAGE_SETTING_FORM_TEXT_MESSAGES:\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_BODY_TEXT_MESSAGES", titleText);\r
+ break;\r
+\r
+ case MESSAGE_SETTING_FORM_SERVICE_CENTER:\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_BODY_SERVICECENTRE", titleText);\r
+ break;\r
+\r
+ case MESSAGE_SETTING_FORM_EDIT_SERVICE_CENTER:\r
+ {\r
+ header.SetStyle(HEADER_STYLE_TITLE);\r
+ // left button\r
+ ButtonItem leftButton;\r
+ leftButton.Construct(BUTTON_ITEM_STYLE_TEXT, IDA_DONE);\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_COM_SK_DONE", titleText);\r
+ leftButton.SetText(titleText);\r
+ header.SetButton(BUTTON_POSITION_LEFT, leftButton);\r
+ // right button\r
+ ButtonItem rightButton;\r
+ rightButton.Construct(BUTTON_ITEM_STYLE_TEXT, IDA_CANCEL);\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_COM_SK_CANCEL", titleText);\r
+ rightButton.SetText(titleText);\r
+ header.SetButton(BUTTON_POSITION_RIGHT, rightButton);\r
+ // Title text\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_BODY_CENTRE_PD", titleText);\r
+ titleText.Replace(L"%d", L"");\r
+ break;\r
+ }\r
+\r
+ case MESSAGE_SETTING_FORM_FONT_SIZE:\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_FONTSIZE", titleText);\r
+ break;\r
+ }\r
+ header.SetTitleText(titleText);\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
+\r
+void\r
+SettingsForm::OnSceneActivatedN(const SceneId& previousSceneId,\r
+ const SceneId& currentSceneId, IList* pArgs)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ if (__previoussceneId.IsEmpty())\r
+ {\r
+ __previoussceneId.Append(previousSceneId);\r
+ }\r
+ if (pArgs)\r
+ {\r
+ if (__settingFormType == MESSAGE_SETTING_FORM_EDIT_SERVICE_CENTER)\r
+ {\r
+ Integer* pInteger = static_cast<Integer*>(pArgs->GetAt(0));\r
+ __editSmscIndex = pInteger->ToInt();\r
+ SettingPresentationModel* pSettingPrModel = SettingPresentationModel::GetInstance();\r
+ String smscAddr = pSettingPrModel->GetSMSCList()->GetSmscAdress(__editSmscIndex);\r
+ EditField* pEdirField = static_cast<EditField*>(GetControl(L"IDC_EDITFIELD"));\r
+ pEdirField->SetText(smscAddr);\r
+ }\r
+ pArgs->RemoveAll(true);\r
+ delete pArgs;\r
+ }\r
+ if (__pSettingGroupTableView)\r
+ {\r
+ __pSettingGroupTableView->UpdateTableView();\r
+ }\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return;\r
+}\r
+\r
+void\r
+SettingsForm::OnSceneDeactivated(const SceneId& currentSceneId, const SceneId& nextSceneId)\r
+{\r
+ // Add your scene de-activate code here\r
+ AppLogDebug("ENTER");\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return;\r
+}\r
+\r
+void\r
+SettingsForm::OnFormBackRequested(Form& source)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ HandleBackNavigation();\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return;\r
+}\r
+\r
+void\r
+SettingsForm::OnActionPerformed(const Control& source, int actionId)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ switch (actionId)\r
+ {\r
+ case IDA_DONE:\r
+ {\r
+ SettingPresentationModel* pSettingPrModel = SettingPresentationModel::GetInstance();\r
+ EditField* pEdirField = static_cast<EditField*>(GetControl(L"IDC_EDITFIELD"));\r
+ if (CommonUtil::IsValidPhoneNumber(pEdirField->GetText()))\r
+ {\r
+ pSettingPrModel->GetSMSCList()->SetSmscAdress(__editSmscIndex, pEdirField->GetText());\r
+ pSettingPrModel->UpdateSmscCenter();\r
+ // Go back previous screen\r
+ SceneManager* pSceneManager = SceneManager::GetInstance();\r
+ pSceneManager->GoBackward(BackwardSceneTransition(IDSCN_SETTINGS_TEXT_MESSAGE_SERVICE_CENTERS, SCENE_TRANSITION_ANIMATION_TYPE_NONE));\r
+ }\r
+ else\r
+ {\r
+ MessageBox messageBox;\r
+ int modalResult;\r
+ String msgText;\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_BODY_INVALID_SERVICE_CENTRE_ADDRESS", msgText);\r
+ messageBox.Construct(IDS_BLANK, msgText, MSGBOX_STYLE_OK, 3000);\r
+ messageBox.ShowAndWait(modalResult);\r
+ }\r
+ }\r
+ break;\r
+\r
+ case IDA_CANCEL:\r
+ {\r
+ SceneManager* pSceneManager = SceneManager::GetInstance();\r
+ pSceneManager->GoBackward(BackwardSceneTransition(IDSCN_SETTINGS_TEXT_MESSAGE_SERVICE_CENTERS, SCENE_TRANSITION_ANIMATION_TYPE_NONE));\r
+\r
+ }\r
+ break;\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
+\r
+void\r
+SettingsForm::HandleBackNavigation()\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ SceneManager* pSceneManager = SceneManager::GetInstance();\r
+ switch (__settingFormType)\r
+ {\r
+ case MESSAGE_SETTING_FORM_MESSAGE_MAIN:\r
+ {\r
+ // Close App.\r
+ MessagesApp* pMsgApp = (MessagesApp*) UiApp::GetInstance();\r
+ if (pMsgApp->IsAppRunningEmbededMode())\r
+ {\r
+ pMsgApp->ExitApp();\r
+ break;\r
+ }\r
+ pSceneManager->GoBackward(BackwardSceneTransition(SCENE_TRANSITION_ANIMATION_TYPE_NONE));\r
+ }\r
+ break;\r
+\r
+ case MESSAGE_SETTING_FORM_TEXT_MESSAGES:\r
+ {\r
+ SettingPresentationModel::GetInstance()->SaveSmsSendSetting();\r
+ pSceneManager->GoBackward(BackwardSceneTransition(IDSCN_SETTINGS, SCENE_TRANSITION_ANIMATION_TYPE_NONE));\r
+ }\r
+ break;\r
+\r
+ case MESSAGE_SETTING_FORM_FONT_SIZE:\r
+ {\r
+ pSceneManager->GoBackward(BackwardSceneTransition(IDSCN_SETTINGS, SCENE_TRANSITION_ANIMATION_TYPE_NONE));\r
+ }\r
+ break;\r
+\r
+ case MESSAGE_SETTING_FORM_SERVICE_CENTER:\r
+ {\r
+ pSceneManager->GoBackward(BackwardSceneTransition(IDSCN_SETTINGS_TEXT_MESSAGE, SCENE_TRANSITION_ANIMATION_TYPE_NONE));\r
+ }\r
+ break;\r
+\r
+ case MESSAGE_SETTING_FORM_EDIT_SERVICE_CENTER:\r
+ {\r
+ pSceneManager->GoBackward(BackwardSceneTransition(IDSCN_SETTINGS_TEXT_MESSAGE_SERVICE_CENTERS, SCENE_TRANSITION_ANIMATION_TYPE_NONE));\r
+ }\r
+ break;\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
+\r
+\r
+void\r
+SettingsForm::HandleSettingSelection(int groupIndex, int itemIndex, TableViewItemStatus status)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ SettingItem& settingItem = __pSettingItemsArray->GetItemAt(groupIndex, itemIndex);\r
+ SceneManager* pSceneManager = SceneManager::GetInstance();\r
+ switch (settingItem.GetActionId())\r
+ {\r
+ case IDA_SETTINGS_TEXT_MESSAGES:\r
+ {\r
+ pSceneManager->GoForward(ForwardSceneTransition(IDSCN_SETTINGS_TEXT_MESSAGE, SCENE_TRANSITION_ANIMATION_TYPE_NONE), null);\r
+ }\r
+ break;\r
+\r
+ case IDA_SETTINGS_MULTIMEDIA_MESSAGES:\r
+ {\r
+ pSceneManager->GoForward(ForwardSceneTransition(IDSCN_SETTINGS_MULTIMEDIA_MESSAGE), null);\r
+ }\r
+ break;\r
+\r
+ case IDA_SETTINGS_SPAM_MESSAGES:\r
+ {\r
+ pSceneManager->GoForward(ForwardSceneTransition(IDSCN_SETTINGS_SPAM_MESSAGE, SCENE_TRANSITION_ANIMATION_TYPE_NONE), null);\r
+ }\r
+ break;\r
+\r
+ case IDA_SETTINGS_BROADCAST_MESSAGES:\r
+ {\r
+ if (CommonUtil::IsSimAvailable())\r
+ {\r
+ bool nextState = false;\r
+ if (status == TABLE_VIEW_ITEM_STATUS_SELECTED)\r
+ {\r
+ nextState = !__pSettingGroupTableView->IsItemChecked(groupIndex, itemIndex);\r
+ }\r
+ else if (status == TABLE_VIEW_ITEM_STATUS_CHECKED || status == TABLE_VIEW_ITEM_STATUS_UNCHECKED)\r
+ {\r
+ nextState = (status == TABLE_VIEW_ITEM_STATUS_CHECKED);\r
+ }\r
+ __pSettingGroupTableView->SetItemChecked(groupIndex, itemIndex, nextState);\r
+ CbReceiveSettings* pCbSettings = SettingPresentationModel::GetInstance()->GetCbSettings();\r
+ if (pCbSettings)\r
+ {\r
+ pCbSettings->SetCbMessagesStatus(nextState);\r
+ __pSettingGroupTableView->RefreshItem(groupIndex, itemIndex, TABLE_VIEW_REFRESH_TYPE_ITEM_MODIFY);\r
+ SettingPresentationModel::GetInstance()->SaveCbSettings();\r
+ }\r
+ }\r
+ else\r
+ {\r
+ __pSettingGroupTableView->SetItemChecked(groupIndex, itemIndex, false);\r
+ String msgText;\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_SLCD_POP_TEXT_SIM_CARD_ERROR", msgText);\r
+ CommonUtil::ShowInfoPopup(msgText);\r
+ }\r
+ }\r
+ break;\r
+\r
+ case IDA_SETTINGS_FONT_SIZE:\r
+ {\r
+ pSceneManager->GoForward(ForwardSceneTransition(IDSCN_SETTINGS_FONT_SIZE, SCENE_TRANSITION_ANIMATION_TYPE_NONE), null);\r
+ }\r
+ break;\r
+\r
+ case IDA_SETTINGS_VOLUME_KEY:\r
+ {\r
+ bool nextState = false;\r
+ if (status == TABLE_VIEW_ITEM_STATUS_SELECTED)\r
+ {\r
+ nextState = !__pSettingGroupTableView->IsItemChecked(groupIndex, itemIndex);\r
+ }\r
+ else if (status == TABLE_VIEW_ITEM_STATUS_CHECKED || status == TABLE_VIEW_ITEM_STATUS_UNCHECKED)\r
+ {\r
+ nextState = (status == TABLE_VIEW_ITEM_STATUS_CHECKED);\r
+ }\r
+ __pSettingGroupTableView->SetItemChecked(groupIndex, itemIndex, nextState);\r
+ SettingPresentationModel::GetInstance()->SetVolumeKeyStatus(nextState);\r
+ __pSettingGroupTableView->RefreshItem(groupIndex, itemIndex, TABLE_VIEW_REFRESH_TYPE_ITEM_MODIFY);\r
+ }\r
+ break;\r
+\r
+ case IDA_SETTINGS_TEXTMSG_INPUT_MODE:\r
+ {\r
+ if (__pSettingGroupTableView->IsGroupExpanded(groupIndex + 1))\r
+ {\r
+ __pSettingGroupTableView->CollapseGroup(groupIndex + 1);\r
+ __pSettingItemsArray->SetgroupExpandStatus(groupIndex + 1, false);\r
+ }\r
+ else\r
+ {\r
+ __pSettingGroupTableView->ExpandGroup(groupIndex + 1);\r
+ __pSettingItemsArray->SetgroupExpandStatus(groupIndex + 1, true);\r
+ }\r
+ __pSettingGroupTableView->RefreshItem(groupIndex, itemIndex, TABLE_VIEW_REFRESH_TYPE_ITEM_MODIFY);\r
+ }\r
+ break;\r
+\r
+ case IDA_SETTINGS_TEXTMSG_REQ_DELIVERY_REPORT:\r
+ {\r
+ bool nextState = false;\r
+ if (status == TABLE_VIEW_ITEM_STATUS_SELECTED)\r
+ {\r
+ nextState = !__pSettingGroupTableView->IsItemChecked(groupIndex, itemIndex);\r
+ }\r
+ else if (status == TABLE_VIEW_ITEM_STATUS_CHECKED || status == TABLE_VIEW_ITEM_STATUS_UNCHECKED)\r
+ {\r
+ nextState = (status == TABLE_VIEW_ITEM_STATUS_CHECKED);\r
+ }\r
+ __pSettingGroupTableView->SetItemChecked(groupIndex, itemIndex, nextState);\r
+ SmsSendSettings* pSmsSendSettings = SettingPresentationModel::GetInstance()->GetSmsSendSetting();\r
+ if (pSmsSendSettings)\r
+ {\r
+ pSmsSendSettings->SetDeliveryReportRequestStatus(nextState);\r
+ __pSettingGroupTableView->RefreshItem(groupIndex, itemIndex, TABLE_VIEW_REFRESH_TYPE_ITEM_MODIFY);\r
+ }\r
+ }\r
+ break;\r
+\r
+ case IDA_SETTINGS_TEXTMSG_GSM_ALPHABET:\r
+ {\r
+ if (status == TABLE_VIEW_ITEM_STATUS_CHECKED || status == TABLE_VIEW_ITEM_STATUS_UNCHECKED)\r
+ {\r
+ SmsSendSettings* pSmsSendSettings = SettingPresentationModel::GetInstance()->GetSmsSendSetting();\r
+ if (pSmsSendSettings)\r
+ {\r
+ pSmsSendSettings->SetEncodeMode(SETTING_INPUTMODE_ENCODE_GSM_ALPHABET);\r
+ }\r
+ CheckedRadioGroupItem(groupIndex, itemIndex);\r
+ }\r
+ }\r
+ break;\r
+\r
+ case IDA_SETTINGS_TEXTMSG_GSM_UNICODE:\r
+ {\r
+ if (status == TABLE_VIEW_ITEM_STATUS_CHECKED || status == TABLE_VIEW_ITEM_STATUS_UNCHECKED)\r
+ {\r
+ SmsSendSettings* pSmsSendSettings = SettingPresentationModel::GetInstance()->GetSmsSendSetting();\r
+ if (pSmsSendSettings)\r
+ {\r
+ pSmsSendSettings->SetEncodeMode(SETTING_INPUTMODE_ENCODE_UCS2);\r
+ }\r
+ CheckedRadioGroupItem(groupIndex, itemIndex);\r
+ }\r
+ }\r
+ break;\r
+\r
+ case IDA_SETTINGS_TEXTMSG_GSM_AUTOMATIC:\r
+ {\r
+ if (status == TABLE_VIEW_ITEM_STATUS_CHECKED || status == TABLE_VIEW_ITEM_STATUS_UNCHECKED)\r
+ {\r
+ SmsSendSettings* pSmsSendSettings = SettingPresentationModel::GetInstance()->GetSmsSendSetting();\r
+ if (pSmsSendSettings)\r
+ {\r
+ pSmsSendSettings->SetEncodeMode(SETTING_INPUTMODE_ENCODE_AUTO);\r
+ }\r
+ CheckedRadioGroupItem(groupIndex, itemIndex);\r
+ }\r
+ }\r
+ break;\r
+\r
+ case IDA_SETTINGS_SERVICE_CENTERS:\r
+ {\r
+ if (CommonUtil::IsSimAvailable())\r
+ {\r
+ SmscCenterList* pSmscCenterList = SettingPresentationModel::GetInstance()->GetSMSCList();\r
+ if (pSmscCenterList)\r
+ {\r
+ pSceneManager->GoForward(ForwardSceneTransition(IDSCN_SETTINGS_TEXT_MESSAGE_SERVICE_CENTERS, SCENE_TRANSITION_ANIMATION_TYPE_NONE), null);\r
+ }\r
+ }\r
+ else\r
+ {\r
+ String msgText;\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_SLCD_POP_TEXT_SIM_CARD_ERROR", msgText);\r
+ CommonUtil::ShowInfoPopup(msgText);\r
+ }\r
+ }\r
+ break;\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
+\r
+void\r
+SettingsForm::HandleSmscCenterSelection(int groupIndex, int itemIndex, TableViewItemStatus status)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ if (status == TABLE_VIEW_ITEM_STATUS_MORE)\r
+ {\r
+ ArrayList* pArgList = new (std::nothrow) ArrayList();\r
+ pArgList->Add((new (std::nothrow) Integer(itemIndex)));\r
+\r
+ SceneManager* pSceneManager = SceneManager::GetInstance();\r
+ pSceneManager->GoForward(ForwardSceneTransition(IDSCN_SETTINGS_TEXT_MESSAGE_EDIT_SERVICE_CENTER, SCENE_TRANSITION_ANIMATION_TYPE_NONE), pArgList);\r
+ }\r
+ else\r
+ {\r
+ SettingPresentationModel* pSettingPrModel = SettingPresentationModel::GetInstance();\r
+ result r = pSettingPrModel->GetSMSCList()->SetSelectedSmscIndex(itemIndex);\r
+ if (IsFailed(r))\r
+ {\r
+ AppLogDebug("Unable to set SMSC center");\r
+ }\r
+ }\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return;\r
+}\r
+\r
+void\r
+SettingsForm::HandleFontSelection(int groupIndex, int itemIndex, TableViewItemStatus status)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ if (status == TABLE_VIEW_ITEM_STATUS_CHECKED || status == TABLE_VIEW_ITEM_STATUS_UNCHECKED)\r
+ {\r
+ SettingItem& settingItem = __pSettingItemsArray->GetItemAt(groupIndex, itemIndex);\r
+ FontSettings* pFontSettings = SettingPresentationModel::GetInstance()->GetFontSettings();\r
+ switch (settingItem.GetActionId())\r
+ {\r
+ case IDA_SETTINGS_SYSTEM_FONT:\r
+ pFontSettings->SetMessageFonttype(SETTING_SYSTEM_FONT);\r
+ break;\r
+\r
+ case IDA_SETTINGS_HUGE_FONT:\r
+ pFontSettings->SetMessageFonttype(SETTING_HUGE_FONT);\r
+ break;\r
+\r
+ case IDA_SETTINGS_LARGE_FONT:\r
+ pFontSettings->SetMessageFonttype(SETTING_LARGE_FONT);\r
+ break;\r
+\r
+ case IDA_SETTINGS_NORMAL_FONT:\r
+ pFontSettings->SetMessageFonttype(SETTING_NORMAL_FONT);\r
+ break;\r
+\r
+ case IDA_SETTINGS_SMALL_FONT:\r
+ pFontSettings->SetMessageFonttype(SETTING_SMALL_FONT);\r
+ break;\r
+\r
+ case IDA_SETTINGS_TINY_FONT:\r
+ pFontSettings->SetMessageFonttype(SETTING_TINY_FONT);\r
+ break;\r
+ }\r
+ int groupItemCount = __pSettingItemsArray->GetItemCount(groupIndex);\r
+ for (int index = 0; index < groupItemCount; index++)\r
+ {\r
+ __pSettingGroupTableView->SetItemChecked(groupIndex, index, (itemIndex == index));\r
+ __pSettingGroupTableView->RefreshItem(groupIndex, index, TABLE_VIEW_REFRESH_TYPE_ITEM_MODIFY);\r
+ }\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
+\r
+void\r
+SettingsForm::CheckedRadioGroupItem(int groupIndex, int itemIndex)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ int groupItemCount = __pSettingItemsArray->GetItemCount(groupIndex);\r
+ for (int index = 0; index < groupItemCount; index++)\r
+ {\r
+ __pSettingGroupTableView->SetItemChecked(groupIndex, index, (itemIndex == index));\r
+ __pSettingGroupTableView->RefreshItem(groupIndex, index, TABLE_VIEW_REFRESH_TYPE_ITEM_MODIFY);\r
+ }\r
+ int prvGroupItemCount = __pSettingItemsArray->GetItemCount(groupIndex - 1) - 1;\r
+ __pSettingGroupTableView->RefreshItem(groupIndex - 1, prvGroupItemCount, TABLE_VIEW_REFRESH_TYPE_ITEM_MODIFY);\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
+\r
+TableViewItem*\r
+SettingsForm::CreateSettingItemN(int groupIndex, int itemIndex, int itemWidth)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ String itemText;\r
+ TableViewAnnexStyle style = TABLE_VIEW_ANNEX_STYLE_NORMAL;\r
+ SettingItem& settingItem = __pSettingItemsArray->GetItemAt(groupIndex, itemIndex);\r
+ switch (settingItem.GetStyle())\r
+ {\r
+ case SETTING_STYLE_NORMAL:\r
+ case SETTING_STYLE_EXPANDABLE:\r
+ {\r
+ style = TABLE_VIEW_ANNEX_STYLE_NORMAL;\r
+ }\r
+ break;\r
+\r
+ case SETTING_STYLE_RADIO:\r
+ case SETTING_STYLE_RADIO_DETAILS:\r
+ {\r
+ style = TABLE_VIEW_ANNEX_STYLE_RADIO;\r
+ }\r
+ break;\r
+\r
+ case SETTING_STYLE_ONOFF_SLIDING:\r
+ {\r
+ style = TABLE_VIEW_ANNEX_STYLE_ONOFF_SLIDING;\r
+ }\r
+ break;\r
+ }\r
+ CustomTableViewItem* pViewItem = new (std::nothrow) CustomTableViewItem();\r
+ pViewItem->Construct(Dimension(itemWidth, H_LIST_ITEM_112PX), style);\r
+ // Child control max width.\r
+ itemWidth -= (TableViewItem::GetAnnexWidth(style) + W_LIST_ITEM_GROUP_INDICATOR);\r
+ pViewItem->SetBackgroundColor(COLOR_LIST_DIALOGUE_GROUP_BG, TABLE_VIEW_ITEM_DRAWING_STATUS_NORMAL);\r
+ int settingStatusItem = settingItem.GetStatus();\r
+ int fontSize = GetFontSize(settingItem.GetActionId());\r
+ if (settingStatusItem == SETTING_STATUS_ITEM_INVALID)\r
+ {\r
+ Label* pSettingName = new (std::nothrow) Label();\r
+ pSettingName->Construct(Rectangle(0, MARGIN_4PX / 2, itemWidth, H_LIST_ITEM_112PX - MARGIN_4PX), settingItem.GetName());\r
+ pSettingName->SetName(IDS_LIST_MAIN_TEXT);\r
+ pSettingName->SetTextHorizontalAlignment(ALIGNMENT_LEFT);\r
+ pSettingName->SetTextConfig(fontSize, LABEL_TEXT_STYLE_NORMAL);\r
+ pViewItem->AddControl(*pSettingName);\r
+ }\r
+ else\r
+ {\r
+ Label* pSettingName = new (std::nothrow) Label();\r
+ pSettingName->Construct(Rectangle(0, 0, itemWidth, H_LIST_ITEM_112PX / 2), settingItem.GetName());\r
+ pSettingName->SetName(IDS_LIST_MAIN_TEXT);\r
+ pSettingName->SetTextHorizontalAlignment(ALIGNMENT_LEFT);\r
+ pSettingName->SetTextConfig(fontSize, LABEL_TEXT_STYLE_NORMAL);\r
+ pViewItem->AddControl(*pSettingName);\r
+\r
+ Label* pSettingStatus = new (std::nothrow) Label();\r
+ pSettingStatus->Construct(Rectangle(0, H_LIST_ITEM_112PX / 2, itemWidth, H_LIST_ITEM_112PX / 2), GetStatusItemText(settingStatusItem));\r
+ pSettingStatus->SetName(IDS_LIST_SUB_TEXT);\r
+ pSettingStatus->SetTextHorizontalAlignment(ALIGNMENT_LEFT);\r
+ pSettingStatus->SetTextConfig(LIST_SUB_TEXT_FONT_SIZE, LABEL_TEXT_STYLE_NORMAL);\r
+ pSettingStatus->SetTextColor(COLOR_SETTING_SUB_TEXT);\r
+ pViewItem->AddControl(*pSettingStatus);\r
+ }\r
+\r
+ if (settingItem.GetStyle() == SETTING_STYLE_EXPANDABLE)\r
+ {\r
+ Bitmap* pNormalIcon = null;\r
+ Bitmap* pPressIcon = null;\r
+ if (__pSettingItemsArray->IsGroupExpanded(groupIndex + 1))\r
+ {\r
+ pNormalIcon = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_LIST_EXPAND_OPENED);\r
+ pPressIcon = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_LIST_EXPAND_OPENED_PRESS);\r
+ }\r
+ else\r
+ {\r
+ pNormalIcon = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_LIST_EXPAND_CLOSE);\r
+ pPressIcon = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_LIST_EXPAND_CLOSE_PRESS);\r
+ }\r
+ pViewItem->EnableExpandViewModeStyle(pNormalIcon, pPressIcon);\r
+\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return pViewItem;\r
+}\r
+\r
+void\r
+SettingsForm::UpdateSettingItem(int groupIndex, int itemIndex, TableViewItem* pViewItem)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ SettingItem& settingItem = __pSettingItemsArray->GetItemAt(groupIndex, itemIndex);\r
+ int settingStatusItem = settingItem.GetStatus();\r
+ Label* pSettingName = (Label*) pViewItem->GetControl(IDS_LIST_MAIN_TEXT);\r
+ if (pSettingName)\r
+ {\r
+ pSettingName->SetText(settingItem.GetName());\r
+ pSettingName->Draw();\r
+ }\r
+ Label* pSettingStatus = static_cast<Label*>(pViewItem->GetControl(IDS_LIST_SUB_TEXT));\r
+ if (pSettingStatus)\r
+ {\r
+ pSettingStatus->SetText(GetStatusItemText(settingStatusItem));\r
+ pSettingStatus->Draw();\r
+ }\r
+ if (settingItem.GetStyle() == SETTING_STYLE_EXPANDABLE)\r
+ {\r
+ Bitmap* pNormalIcon = null;\r
+ Bitmap* pPressIcon = null;\r
+ if (__pSettingItemsArray->IsGroupExpanded(groupIndex + 1))\r
+ {\r
+ pNormalIcon = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_LIST_EXPAND_OPENED);\r
+ pPressIcon = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_LIST_EXPAND_OPENED_PRESS);\r
+ }\r
+ else\r
+ {\r
+ pNormalIcon = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_LIST_EXPAND_CLOSE);\r
+ pPressIcon = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_LIST_EXPAND_CLOSE_PRESS);\r
+ }\r
+ static_cast<CustomTableViewItem*>(pViewItem)->EnableExpandViewModeStyle(pNormalIcon, pPressIcon);\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return;\r
+}\r
+\r
+TableViewItem*\r
+SettingsForm::CreateSmscCenterListItemN(int groupIndex, int itemIndex, int itemWidth)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ CustomTableViewItem* pViewItem = new (std::nothrow) CustomTableViewItem();\r
+ if (pViewItem)\r
+ {\r
+ pViewItem->Construct(Dimension(itemWidth, H_LIST_ITEM_112PX), TABLE_VIEW_ANNEX_STYLE_DETAILED);\r
+ pViewItem->SetBackgroundColor(COLOR_LIST_DIALOGUE_GROUP_BG, TABLE_VIEW_ITEM_DRAWING_STATUS_NORMAL);\r
+ // Child control max width.\r
+ itemWidth -= (TableViewItem::GetAnnexWidth(TABLE_VIEW_ANNEX_STYLE_DETAILED) + W_LIST_ITEM_GROUP_INDICATOR);\r
+ String itemText(IDS_CENTER);\r
+ itemText.Append(itemIndex + 1);\r
+ Label* pSmscCenterName = new (std::nothrow) Label();\r
+ pSmscCenterName->Construct(Rectangle(MARGIN_16PX * 2 + W_ICON_60PX, 0, itemWidth, H_LIST_ITEM_112PX), itemText);\r
+ pSmscCenterName->SetTextHorizontalAlignment(ALIGNMENT_LEFT);\r
+ pSmscCenterName->SetTextConfig(LIST_MAIN_TEXT_FONT_SIZE, LABEL_TEXT_STYLE_NORMAL);\r
+ pViewItem->AddControl(*pSmscCenterName);\r
+\r
+ Bitmap* pNormalIcon = null;\r
+ Bitmap* pPressIcon = null;\r
+ // Fetch selected service center\r
+ SettingPresentationModel* pSettingPrModel = SettingPresentationModel::GetInstance();\r
+ bool isCheck = (itemIndex == pSettingPrModel->GetSMSCList()->GetSelectedId());\r
+ if (isCheck)\r
+ {\r
+ pNormalIcon = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_RADIO_BUTTON_CHECK);\r
+ pPressIcon = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_RADIO_BUTTON_CHECK_PRESS);\r
+ }\r
+ else\r
+ {\r
+ pNormalIcon = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_RADIO_BUTTON_UNCHECK);\r
+ pPressIcon = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_RADIO_BUTTON_UNCHECK_PRESS);\r
+ }\r
+ pViewItem->EnableDetailsViewModeStyle(pNormalIcon, pPressIcon);\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return pViewItem;\r
+}\r
+\r
+//IGroupedTableViewItemProvider\r
+int\r
+SettingsForm::GetGroupCount(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ int groupCount(0);\r
+ switch (__settingFormType)\r
+ {\r
+ case MESSAGE_SETTING_FORM_MESSAGE_MAIN:\r
+ case MESSAGE_SETTING_FORM_TEXT_MESSAGES:\r
+ case MESSAGE_SETTING_FORM_FONT_SIZE:\r
+ groupCount = __pSettingItemsArray->GetGroupCount();\r
+ break;\r
+\r
+ case MESSAGE_SETTING_FORM_SERVICE_CENTER:\r
+ groupCount = 1;\r
+ break;\r
+\r
+ case MESSAGE_SETTING_FORM_EDIT_SERVICE_CENTER:\r
+ default:\r
+ break;\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return groupCount;\r
+}\r
+\r
+int\r
+SettingsForm::GetItemCount(int groupIndex)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ int groupItemCount(0);\r
+ switch (__settingFormType)\r
+ {\r
+ case MESSAGE_SETTING_FORM_MESSAGE_MAIN:\r
+ case MESSAGE_SETTING_FORM_TEXT_MESSAGES:\r
+ case MESSAGE_SETTING_FORM_FONT_SIZE:\r
+ groupItemCount = __pSettingItemsArray->GetItemCount(groupIndex);\r
+ break;\r
+\r
+ case MESSAGE_SETTING_FORM_SERVICE_CENTER:\r
+ {\r
+ SmscCenterList* pSmscCenterList = SettingPresentationModel::GetInstance()->GetSMSCList();\r
+ if (pSmscCenterList)\r
+ {\r
+ groupItemCount = pSmscCenterList->GetCount();\r
+ }\r
+ }\r
+ break;\r
+\r
+ case MESSAGE_SETTING_FORM_EDIT_SERVICE_CENTER:\r
+ default:\r
+ break;\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return groupItemCount;\r
+}\r
+\r
+TableViewGroupItem*\r
+SettingsForm::CreateGroupItem(int groupIndex, int itemWidth)\r
+{\r
+ AppLogDebug("ENTER");\r
+ Label* pGroupName = null;\r
+ CustomTableViewGroupItem* pGroupItem = new (std::nothrow) CustomTableViewGroupItem();\r
+ switch (__settingFormType)\r
+ {\r
+ case MESSAGE_SETTING_FORM_MESSAGE_MAIN:\r
+ case MESSAGE_SETTING_FORM_TEXT_MESSAGES:\r
+ case MESSAGE_SETTING_FORM_FONT_SIZE:\r
+ {\r
+ // For static setting items\r
+ String groupName = __pSettingItemsArray->GetGroupName(groupIndex);\r
+ if (groupName.IsEmpty())\r
+ {\r
+ pGroupItem->Construct(Dimension(itemWidth, 1));\r
+ pGroupItem->SetShowState(false);\r
+ }\r
+ else\r
+ {\r
+ SettingGroupStyle groupStyle = __pSettingItemsArray->GetGroupStyle(groupIndex);\r
+ if (groupStyle == SETTING_GROUP_STYLE_TITLE)\r
+ {\r
+ pGroupItem->Construct(Dimension(itemWidth, H_LIST_GROUP));\r
+ pGroupName = new (std::nothrow) Label();\r
+ pGroupName->Construct(Rectangle(0, H_LIST_GROUP / 2 - MARGIN_10PX, itemWidth, (H_LIST_GROUP - MARGIN_10PX) / 2), groupName);\r
+ pGroupName->SetTextColor(COLOR_LIST_DIALOGUE_GROUP_TITLE);\r
+ pGroupName->SetTextConfig(LIST_SUB_TEXT_FONT_SIZE, LABEL_TEXT_STYLE_NORMAL);\r
+ }\r
+ else if (groupStyle == SETTING_GROUP_STYLE_HELP_TEXT)\r
+ {\r
+ pGroupItem->Construct(Dimension(itemWidth, H_LIST_ITEM_112PX));\r
+ pGroupName = new (std::nothrow) Label();\r
+ pGroupName->Construct(Rectangle(0, 0, itemWidth, H_LIST_ITEM_112PX), groupName);\r
+ pGroupName->SetTextColor(COLOR_SETTING_SUB_TEXT);\r
+ pGroupName->SetTextConfig(LIST_SUB_TEXT_FONT_SIZE, LABEL_TEXT_STYLE_NORMAL);\r
+ }\r
+ else\r
+ {\r
+ pGroupItem->Construct(Dimension(itemWidth, GetDefaultGroupItemHeight()));\r
+ pGroupName = new (std::nothrow) Label();\r
+ pGroupName->Construct(Rectangle(0, 0, itemWidth, GetDefaultGroupItemHeight()), groupName);\r
+ }\r
+ }\r
+ }\r
+ break;\r
+\r
+ case MESSAGE_SETTING_FORM_SERVICE_CENTER:\r
+ {\r
+ pGroupItem->Construct(Dimension(itemWidth, 1));\r
+ pGroupItem->SetShowState(false);\r
+ }\r
+ break;\r
+\r
+ case MESSAGE_SETTING_FORM_EDIT_SERVICE_CENTER:\r
+ default:\r
+ break;\r
+ }\r
+ if (pGroupName)\r
+ {\r
+ pGroupName->SetTextHorizontalAlignment(ALIGNMENT_LEFT);\r
+ pGroupItem->AddControl(*pGroupName);\r
+ }\r
+ pGroupItem->SetEnabled(false);\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return pGroupItem;\r
+}\r
+\r
+TableViewItem*\r
+SettingsForm::CreateItem(int groupIndex, int itemIndex, int itemWidth)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ TableViewItem* pCustomItem = null;\r
+ switch (__settingFormType)\r
+ {\r
+ case MESSAGE_SETTING_FORM_MESSAGE_MAIN:\r
+ case MESSAGE_SETTING_FORM_TEXT_MESSAGES:\r
+ case MESSAGE_SETTING_FORM_FONT_SIZE:\r
+ pCustomItem = CreateSettingItemN(groupIndex, itemIndex, itemWidth);\r
+ break;\r
+\r
+ case MESSAGE_SETTING_FORM_SERVICE_CENTER:\r
+ pCustomItem = CreateSmscCenterListItemN(groupIndex, itemIndex, itemWidth);\r
+ break;\r
+\r
+ case MESSAGE_SETTING_FORM_EDIT_SERVICE_CENTER:\r
+ default:\r
+ break;\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return pCustomItem;\r
+}\r
+\r
+bool\r
+SettingsForm::DeleteItem(int groupIndex, int itemIndex, TableViewItem* pItem)\r
+{\r
+ AppLogDebug("ENTER");\r
+ if (pItem)\r
+ {\r
+ delete pItem;\r
+ }\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return true;\r
+\r
+}\r
+\r
+bool\r
+SettingsForm::DeleteGroupItem(int groupIndex, TableViewGroupItem* pItem)\r
+{\r
+ AppLogDebug("ENTER");\r
+ if (pItem)\r
+ {\r
+ delete pItem;\r
+ }\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return true;\r
+}\r
+\r
+void\r
+SettingsForm::UpdateItem(int groupIndex, int itemIndex, TableViewItem* pItem)\r
+{\r
+\r
+ AppLogDebug("ENTER");\r
+ UpdateSettingItem(groupIndex, itemIndex, pItem);\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
+\r
+void\r
+SettingsForm::UpdateGroupItem(int groupIndex, TableViewGroupItem* pItem)\r
+{\r
+ AppLogDebug("ENTER");\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
+\r
+int\r
+SettingsForm::GetDefaultItemHeight(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return H_LIST_ITEM_112PX;\r
+}\r
+\r
+int\r
+SettingsForm::GetDefaultGroupItemHeight(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return H_GROUP_HEADER;\r
+}\r
+\r
+void\r
+SettingsForm::OnGroupedTableViewGroupItemStateChanged(GroupedTableView& tableView, int groupIndex,\r
+ TableViewGroupItem* pItem, TableViewItemStatus status)\r
+{\r
+ AppLogDebug("ENTER");\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ // Empty implementation\r
+}\r
+\r
+void\r
+SettingsForm::OnGroupedTableViewItemStateChanged(GroupedTableView& tableView, int groupIndex, int itemIndex,\r
+ TableViewItem* pItem, TableViewItemStatus status)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ switch (__settingFormType)\r
+ {\r
+ case MESSAGE_SETTING_FORM_MESSAGE_MAIN:\r
+ case MESSAGE_SETTING_FORM_TEXT_MESSAGES:\r
+ HandleSettingSelection(groupIndex, itemIndex, status);\r
+ break;\r
+\r
+ case MESSAGE_SETTING_FORM_FONT_SIZE:\r
+ HandleFontSelection(groupIndex, itemIndex, status);\r
+ break;\r
+\r
+ case MESSAGE_SETTING_FORM_SERVICE_CENTER:\r
+ HandleSmscCenterSelection(groupIndex, itemIndex, status);\r
+ break;\r
+\r
+ case MESSAGE_SETTING_FORM_EDIT_SERVICE_CENTER:\r
+ default:\r
+ break;\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return;\r
+}\r
+\r
+void\r
+SettingsForm::OnGroupedTableViewContextItemActivationStateChanged(GroupedTableView& tableView,\r
+ int groupIndex, int itemIndex, TableViewContextItem* pContextItem, bool activated)\r
+{\r
+// Empty implementation\r
+ AppLogDebug("ENTER");\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
+\r
+String\r
+SettingsForm::GetInputModeText(int type) const\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ String strText;\r
+ switch (type)\r
+ {\r
+ case SETTING_INPUTMODE_ENCODE_GSM_ALPHABET:\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_BODY_GSM_ALPHABET", strText);\r
+ break;\r
+\r
+ case SETTING_INPUTMODE_ENCODE_UCS2:\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_BODY_UNICODE", strText);\r
+ break;\r
+\r
+ case SETTING_INPUTMODE_ENCODE_AUTO:\r
+ default:\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_BODY_AUTOMATIC", strText);\r
+ break;\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return strText;\r
+}\r
+\r
+\r
+String\r
+SettingsForm::GetStatusItemText(int type) const\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ String strText;\r
+ SettingPresentationModel* pSettingPrModel = SettingPresentationModel::GetInstance();\r
+ switch (type)\r
+ {\r
+ case SETTING_STATUS_ITEM_INPUTMODE:\r
+ {\r
+ SmsSendSettings* pSmsSendSetting = pSettingPrModel->GetSmsSendSetting();\r
+ int encodeMode(-1);\r
+ if (pSmsSendSetting)\r
+ {\r
+ encodeMode = pSmsSendSetting->GetEncodeMode();\r
+ }\r
+ strText = GetInputModeText(encodeMode);\r
+ }\r
+ break;\r
+\r
+ case SETTING_STATUS_ITEM_SERVICE_CENTER:\r
+ {\r
+ SmscCenterList* pSmscCenters = pSettingPrModel->GetSMSCList();\r
+ int selectCenterIndex(0);\r
+ if (pSmscCenters)\r
+ {\r
+ selectCenterIndex = pSmscCenters->GetSelectedId();\r
+ }\r
+ strText.Append(IDS_CENTER);\r
+ strText.Append(selectCenterIndex + 1);\r
+ }\r
+ break;\r
+\r
+ case SETTING_STATUS_ITEM_INVALID:\r
+ case SETTING_STATUS_ITEM_HOME_NETWORK:\r
+ case SETTING_STATUS_ITEM_FORIGEN_NETWORK:\r
+ case SETTING_STATUS_ITEM_CREATION_MODE:\r
+ break;\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return strText;\r
+}\r
+\r
+bool\r
+SettingsForm::GetItemCheckStatus(int controlId) const\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ bool status(false);\r
+ SettingPresentationModel* pSettingPrModel = SettingPresentationModel::GetInstance();\r
+ switch (controlId)\r
+ {\r
+ case IDA_SETTINGS_TEXTMSG_REQ_DELIVERY_REPORT:\r
+ {\r
+ SmsSendSettings* pSmsSendSettings = pSettingPrModel->GetSmsSendSetting();\r
+ if (pSmsSendSettings)\r
+ {\r
+ status = pSmsSendSettings->IsDeliveryReportOn();\r
+ }\r
+ }\r
+ break;\r
+\r
+ case IDA_SETTINGS_TEXTMSG_GSM_ALPHABET:\r
+ {\r
+ SmsSendSettings* pSmsSendSettings = pSettingPrModel->GetSmsSendSetting();\r
+ if (pSmsSendSettings)\r
+ {\r
+ status = (pSmsSendSettings->GetEncodeMode() == SETTING_INPUTMODE_ENCODE_GSM_ALPHABET);\r
+ }\r
+ }\r
+ break;\r
+\r
+ case IDA_SETTINGS_TEXTMSG_GSM_UNICODE:\r
+ {\r
+ SmsSendSettings* pSmsSendSettings = pSettingPrModel->GetSmsSendSetting();\r
+ if (pSmsSendSettings)\r
+ {\r
+ status = (pSmsSendSettings->GetEncodeMode() == SETTING_INPUTMODE_ENCODE_UCS2);\r
+ }\r
+ }\r
+ break;\r
+\r
+ case IDA_SETTINGS_TEXTMSG_GSM_AUTOMATIC:\r
+ {\r
+ SmsSendSettings* pSmsSendSettings = pSettingPrModel->GetSmsSendSetting();\r
+ if (pSmsSendSettings)\r
+ {\r
+ status = (pSmsSendSettings->GetEncodeMode() == SETTING_INPUTMODE_ENCODE_AUTO);\r
+ }\r
+ }\r
+ break;\r
+\r
+ case IDA_SETTINGS_BROADCAST_MESSAGES:\r
+ {\r
+ CbReceiveSettings* pCbSetting = pSettingPrModel->GetCbSettings();\r
+ if (pCbSetting)\r
+ {\r
+ status = pCbSetting->IsCbMessagesOn();\r
+ }\r
+ }\r
+ break;\r
+\r
+ case IDA_SETTINGS_SYSTEM_FONT:\r
+ status = (pSettingPrModel->GetFontSettings()->GetMessageFontType() == SETTING_SYSTEM_FONT);\r
+ break;\r
+\r
+ case IDA_SETTINGS_HUGE_FONT:\r
+ status = (pSettingPrModel->GetFontSettings()->GetMessageFontType() == SETTING_HUGE_FONT);\r
+ break;\r
+\r
+ case IDA_SETTINGS_LARGE_FONT:\r
+ status = (pSettingPrModel->GetFontSettings()->GetMessageFontType() == SETTING_LARGE_FONT);\r
+ break;\r
+\r
+ case IDA_SETTINGS_NORMAL_FONT:\r
+ status = (pSettingPrModel->GetFontSettings()->GetMessageFontType() == SETTING_NORMAL_FONT);\r
+ break;\r
+\r
+ case IDA_SETTINGS_SMALL_FONT:\r
+ status = (pSettingPrModel->GetFontSettings()->GetMessageFontType() == SETTING_SMALL_FONT);\r
+ break;\r
+\r
+ case IDA_SETTINGS_TINY_FONT:\r
+ status = (pSettingPrModel->GetFontSettings()->GetMessageFontType() == SETTING_TINY_FONT);\r
+ break;\r
+\r
+ case IDA_SETTINGS_VOLUME_KEY:\r
+ status = pSettingPrModel->IsVolumeKeyOn();\r
+ break;\r
+\r
+ default:\r
+ break;\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return status;\r
+}\r
+\r
+int\r
+SettingsForm::GetFontSize(int controlActionId) const\r
+{\r
+ AppLogDebug("ENTER");\r
+ int fontSize;\r
+ SettingPresentationModel* pSettingPrModel = SettingPresentationModel::GetInstance();\r
+ switch (controlActionId)\r
+ {\r
+ case IDA_SETTINGS_SYSTEM_FONT:\r
+ fontSize = pSettingPrModel->GetFontSettings()->GetMessageTextSize(SETTING_SYSTEM_FONT);\r
+ break;\r
+\r
+ case IDA_SETTINGS_HUGE_FONT:\r
+ fontSize = pSettingPrModel->GetFontSettings()->GetMessageTextSize(SETTING_HUGE_FONT);\r
+ break;\r
+\r
+ case IDA_SETTINGS_LARGE_FONT:\r
+ fontSize = pSettingPrModel->GetFontSettings()->GetMessageTextSize(SETTING_LARGE_FONT);\r
+ break;\r
+\r
+ case IDA_SETTINGS_NORMAL_FONT:\r
+ fontSize = pSettingPrModel->GetFontSettings()->GetMessageTextSize(SETTING_NORMAL_FONT);\r
+ break;\r
+\r
+ case IDA_SETTINGS_SMALL_FONT:\r
+ fontSize = pSettingPrModel->GetFontSettings()->GetMessageTextSize(SETTING_SMALL_FONT);\r
+ break;\r
+\r
+ case IDA_SETTINGS_TINY_FONT:\r
+ fontSize = pSettingPrModel->GetFontSettings()->GetMessageTextSize(SETTING_TINY_FONT);\r
+ break;\r
+\r
+ default:\r
+ fontSize = LIST_MAIN_TEXT_FONT_SIZE;\r
+ break;\r
+ }\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return fontSize;\r
+}\r
+\r
+void\r
+SettingsForm::LoadCurrentSettings(void)\r
+{\r
+ if (__pSettingItemsArray)\r
+ {\r
+ for (int groupIndex = 0; groupIndex < __pSettingItemsArray->GetGroupCount(); groupIndex++)\r
+ {\r
+ for (int itemIndex = 0; itemIndex < __pSettingItemsArray->GetItemCount(groupIndex); itemIndex++)\r
+ {\r
+ SettingItem& settingItem = __pSettingItemsArray->GetItemAt(groupIndex, itemIndex);\r
+ __pSettingGroupTableView->SetItemChecked(groupIndex, itemIndex, GetItemCheckStatus(settingItem.GetActionId()));\r
+ }\r
+ if (__pSettingItemsArray->IsGroupExpanded(groupIndex))\r
+ {\r
+ __pSettingGroupTableView->ExpandGroup(groupIndex);\r
+ }\r
+ }\r
+ __pSettingGroupTableView->UpdateTableView();\r
+ }\r
+}\r
--- /dev/null
+//\r
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.\r
+//\r
+// Licensed under the Flora License, Version 1.0 (the License);\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+// http://floralicense.org/license/\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an AS IS BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+//\r
+\r
+#include "MsgSettingsItemList.h"\r
+\r
+using namespace Tizen::App;\r
+using namespace Tizen::Base;\r
+using namespace Tizen::Base::Collection;\r
+using namespace Tizen::Graphics;\r
+using namespace Tizen::Ui;\r
+using namespace Tizen::Ui::Controls;\r
+\r
+SettingItemsList::SettingItemsList(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ __settingGroupArray.Construct();\r
+ __settingItemArray.Construct();\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
+int\r
+SettingItemsList::GetGroupCount(void) const\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return __settingGroupArray.GetCount();\r
+}\r
+int\r
+SettingItemsList::GetItemCount(int groupIndex) const\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ Object* obj = const_cast<Object*>(__settingGroupArray.GetAt(groupIndex));\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return static_cast<GroupData*>(obj)->groupItemCount;\r
+}\r
+\r
+int\r
+SettingItemsList::AddGroup(const String& groupName, SettingGroupStyle groupStyle, bool isExpanded)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ GroupData* pGroupData = new (std::nothrow) GroupData();\r
+ pGroupData->groupName = groupName;\r
+ pGroupData->groupStyle = groupStyle;\r
+ pGroupData->groupExpanded = isExpanded;\r
+ __settingGroupArray.Add(pGroupData);\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return (__settingGroupArray.GetCount() - 1);\r
+}\r
+\r
+const String&\r
+SettingItemsList::GetGroupName(int groupIndex) const\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ GroupData* pGroupData = static_cast<GroupData*>(const_cast<Object*>(__settingGroupArray.GetAt(groupIndex)));\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return pGroupData->groupName;\r
+}\r
+\r
+SettingGroupStyle\r
+SettingItemsList::GetGroupStyle(int groupIndex) const\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ GroupData* pGroupData = static_cast<GroupData*>(const_cast<Object*>(__settingGroupArray.GetAt(groupIndex)));\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return pGroupData->groupStyle;\r
+}\r
+\r
+void\r
+SettingItemsList::SetgroupExpandStatus(int groupIndex, bool value)\r
+{\r
+ AppLogDebug("ENTER");\r
+ GroupData* pGroupData = static_cast<GroupData*>(__settingGroupArray.GetAt(groupIndex));\r
+ pGroupData->groupExpanded = value;\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
+\r
+bool\r
+SettingItemsList::IsGroupExpanded(int groupIndex)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ GroupData* pGroupData = static_cast<GroupData*>(__settingGroupArray.GetAt(groupIndex));\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return pGroupData->groupExpanded;\r
+}\r
+\r
+\r
+void\r
+SettingItemsList::AddItem(int groupIndex, SettingItem& settingItem)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ Object* pObject = __settingGroupArray.GetAt(groupIndex);\r
+ static_cast<GroupData*>(pObject)->groupItemCount++;\r
+ __settingItemArray.Add(&settingItem);\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
+\r
+SettingItem&\r
+SettingItemsList::GetItemAt(int groupIndex, int selectIndex) const\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ int index(selectIndex);\r
+ for (int curIndex = 0; curIndex < groupIndex; curIndex++)\r
+ {\r
+ index += static_cast<GroupData*>(const_cast<Object*>(__settingGroupArray.GetAt(curIndex)))->groupItemCount;\r
+ }\r
+ SettingItem* pSettingItem = static_cast<SettingItem*>(const_cast<Object*>(__settingItemArray.GetAt(index)));\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return *pSettingItem;\r
+}\r
--- /dev/null
+//\r
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.\r
+//\r
+// Licensed under the Flora License, Version 1.0 (the License);\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+// http://floralicense.org/license/\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an AS IS BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+//\r
+\r
+#include <msg.h>\r
+#include <msg_storage.h>\r
+#include <msg_transport.h>\r
+#include <msg_types.h>\r
+\r
+#include <FBase.h>\r
+#include <FBaseErrorDefine.h>\r
+\r
+#include "MsgEvent.h"\r
+#include "MsgISmsEventListener.h"\r
+#include "MsgSmsManager.h"\r
+#include "MsgSmsSendSettings.h"\r
+\r
+using namespace Tizen::Base;\r
+using namespace Tizen::Base::Collection;\r
+using namespace Tizen::Base::Runtime;\r
+using namespace Tizen::Base::Utility;\r
+\r
+SmsManager::SmsManager(msg_handle_t pMsgHandle)\r
+ : __pMsgHandle(pMsgHandle)\r
+ , __pSmsEventListener(null)\r
+{\r
+ //Empty implementation\r
+}\r
+\r
+// Destructor\r
+SmsManager::~SmsManager(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ if (__pSmsEventListener)\r
+ {\r
+ __pSmsEventListener->RemoveAll(true);\r
+ delete __pSmsEventListener;\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
+\r
+\r
+result\r
+SmsManager::Construct(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ result r = E_SUCCESS;\r
+ msg_error_t err = MSG_SUCCESS;\r
+ err = msg_reg_sent_status_callback(__pMsgHandle, &MessageSentStatusCallback, this);\r
+ if (err != MSG_SUCCESS)\r
+ {\r
+ AppLogDebug("msg_reg_sent_status_callback err = %d", (int) err);\r
+ r |= E_FAILURE;\r
+ }\r
+ err = msg_reg_sms_message_callback(__pMsgHandle, &IncommingSmsCallback, 0, this);\r
+ if (err != MSG_SUCCESS)\r
+ {\r
+ AppLogDebug("msg_reg_sms_message_callback err = %d", (int) err);\r
+ r |= E_FAILURE;\r
+ }\r
+\r
+ // Keep thread observer\r
+ __pSmsEventListener = new (std::nothrow) ArrayList();\r
+ __pSmsEventListener->Construct();\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return r;\r
+}\r
+\r
+result\r
+SmsManager::AddSmsEventListener(const ISmsEventListener& eventListener)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ SmsEvent* pSmsEvent = new (std::nothrow) SmsEvent(&eventListener);\r
+ result r = __pSmsEventListener->Add(pSmsEvent); // Transfer ownership.\r
+ if (r != E_SUCCESS)\r
+ {\r
+ delete pSmsEvent;\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return r;\r
+}\r
+\r
+result\r
+SmsManager::RemoveSmsEventListener(const ISmsEventListener& eventListener)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ result r = E_SUCCESS;\r
+ if (__pSmsEventListener)\r
+ {\r
+ IEnumerator* pEventenum = __pSmsEventListener->GetEnumeratorN();\r
+ if (pEventenum)\r
+ {\r
+ SmsEvent* pSmsEvent = null;\r
+ while (pEventenum->MoveNext() == E_SUCCESS)\r
+ {\r
+ pSmsEvent = static_cast<SmsEvent*>(pEventenum->GetCurrent());\r
+ if (pSmsEvent->IsSame(&eventListener))\r
+ {\r
+ // Took ownership, delete element object.\r
+ r = __pSmsEventListener->Remove(*pSmsEvent, true);\r
+ break;\r
+ }\r
+ }\r
+ }\r
+ // Free memory\r
+ if (pEventenum)\r
+ {\r
+ delete pEventenum;\r
+ pEventenum = null;\r
+ }\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return r;\r
+}\r
+\r
+void\r
+SmsManager::IncommingSmsCallback(msg_handle_t pHandle, msg_struct_t pMsg, void* pUserParam)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ if (!pUserParam || !pMsg)\r
+ {\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return;\r
+ }\r
+ static_cast<SmsManager*>(pUserParam)->IncommingSMS(pHandle, pMsg);\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
+\r
+void\r
+SmsManager::MessageSentStatusCallback(msg_handle_t pHandle, msg_struct_t pSentStatus, void* pUserParam)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ if (!pUserParam || !pSentStatus)\r
+ {\r
+ return;\r
+ }\r
+ static_cast<SmsManager*>(pUserParam)->SentMessageStatus(pHandle, pSentStatus);\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
+\r
+void\r
+SmsManager::IncommingSMS(msg_handle_t pHandle, msg_struct_t pMsg)\r
+{\r
+ AppLogDebug("ENTER");\r
+ if (__pSmsEventListener->GetCount() > 0)\r
+ {\r
+ IEnumerator* pEventenum = __pSmsEventListener->GetEnumeratorN();\r
+ if (pEventenum)\r
+ {\r
+ SmsEvent* pSmsEvent = null;\r
+ while (pEventenum->MoveNext() == E_SUCCESS)\r
+ {\r
+ pSmsEvent = static_cast<SmsEvent*>(pEventenum->GetCurrent());\r
+ ISmsEventListener* pSmsListener = static_cast<ISmsEventListener*>(\r
+ const_cast<IEventListener*>(pSmsEvent->GetEvent()));\r
+ if (pSmsListener)\r
+ {\r
+ pSmsListener->OnSmsReceive();\r
+ }\r
+ }\r
+ }\r
+ // Free memory\r
+ if (pEventenum)\r
+ {\r
+ delete pEventenum;\r
+ pEventenum = null;\r
+ }\r
+ }\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return;\r
+}\r
+\r
+void\r
+SmsManager::SentMessageStatus(msg_handle_t pHandle, msg_struct_t pSentStatus)\r
+{\r
+ AppLogDebug("ENTER");\r
+ if (__pSmsEventListener->GetCount() > 0)\r
+ {\r
+ IEnumerator* pEventenum = __pSmsEventListener->GetEnumeratorN();\r
+ if (pEventenum)\r
+ {\r
+ SmsEvent* pSmsEvent = null;\r
+ while (pEventenum->MoveNext() == E_SUCCESS)\r
+ {\r
+ pSmsEvent = static_cast<SmsEvent*>(pEventenum->GetCurrent());\r
+ ISmsEventListener* pSmsListener = static_cast<ISmsEventListener*>(\r
+ const_cast<IEventListener*>(pSmsEvent->GetEvent()));\r
+ if (pSmsListener)\r
+ {\r
+ int sentStatus = MSG_NETWORK_SEND_FAIL;\r
+ msg_get_int_value(pSentStatus, MSG_SENT_STATUS_NETWORK_STATUS_INT, &sentStatus);\r
+ pSmsListener->OnSmsSentStatusChange(sentStatus);\r
+ }\r
+ }\r
+ }\r
+ // Free memory\r
+ if (pEventenum)\r
+ {\r
+ delete pEventenum;\r
+ pEventenum = null;\r
+ }\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return;\r
+}\r
+\r
+MsgResponse\r
+SmsManager::SendMessage(const String& msgText, int threadId, const SmsSendSettings* pSmsSendings)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ // 1. Create new message\r
+ msg_struct_t pMsgInfo = msg_create_struct(MSG_STRUCT_MESSAGE_INFO);\r
+ if (!pMsgInfo)\r
+ {\r
+ AppLogDebug("msg_new_message fail");\r
+ return MSG_RESPONSE_FAIL;\r
+ }\r
+ msg_error_t err = MSG_SUCCESS;\r
+ // 2. Make SMS\r
+ MsgResponse response = CreateSms(pMsgInfo, msgText, threadId);\r
+ if (response == MSG_RESPONSE_SUCCESS)\r
+ {\r
+ // 3. Send SMS\r
+ msg_struct_t pRequest = msg_create_struct(MSG_STRUCT_REQUEST_INFO);\r
+ msg_struct_t pSendOpt = NULL;\r
+ msg_get_struct_handle(pRequest, MSG_REQUEST_SENDOPT_HND, &pSendOpt);\r
+ msg_set_bool_value(pSendOpt, MSG_SEND_OPT_SETTING_BOOL, false);\r
+ bool reqDeliveryReport(false);\r
+ if (pSmsSendings)\r
+ {\r
+ // Set encoding type based on setting\r
+ msg_encode_type_t encodeType = pSmsSendings->GetEncodeType();\r
+ msg_set_int_value(pMsgInfo, MSG_MESSAGE_ENCODE_TYPE_INT, encodeType);\r
+ reqDeliveryReport = pSmsSendings->IsDeliveryReportOn();\r
+ }\r
+ msg_set_bool_value(pSendOpt, MSG_SEND_OPT_DELIVER_REQ_BOOL, reqDeliveryReport);\r
+ msg_set_struct_handle(pRequest, MSG_REQUEST_MESSAGE_HND, pMsgInfo);\r
+ err = msg_sms_send_message(__pMsgHandle, pRequest);\r
+ if (err != MSG_SUCCESS)\r
+ {\r
+ AppLogDebug("msg_sms_send_message fail = %d", (int) err);\r
+ response = MSG_RESPONSE_FAIL;\r
+ }\r
+ // Release send message struct.\r
+ msg_release_struct(&pRequest);\r
+ }\r
+ //4. Release message info.\r
+ err = msg_release_struct(&pMsgInfo);\r
+ if (err != MSG_SUCCESS)\r
+ {\r
+ AppLogDebug("msg_release_message fail = %d", (int) err);\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return response;\r
+}\r
+\r
+MsgResponse\r
+SmsManager::SaveMessage(const String& msgText, int threadId)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ // 1. Create new message\r
+ msg_struct_t pMsgInfo = msg_create_struct(MSG_STRUCT_MESSAGE_INFO);\r
+ if (!pMsgInfo)\r
+ {\r
+ AppLogDebug("msg_new_message fail");\r
+ return MSG_RESPONSE_FAIL;\r
+ }\r
+ msg_error_t err = MSG_SUCCESS;\r
+ // 2. Make SMS\r
+ MsgResponse response = CreateSms(pMsgInfo, msgText, threadId);\r
+ if (response == MSG_RESPONSE_SUCCESS)\r
+ {\r
+ // 3. Save SMS\r
+ msg_struct_t pSendOpt = msg_create_struct(MSG_STRUCT_SENDOPT);\r
+ msg_set_bool_value(pSendOpt, MSG_SEND_OPT_SETTING_BOOL, false);\r
+ err = msg_add_message(__pMsgHandle, (const msg_struct_t) pMsgInfo, (const msg_struct_t) pSendOpt);\r
+ if (err != MSG_SUCCESS)\r
+ {\r
+ AppLogDebug("msg_add_message fail = %d", (int) err);\r
+ response = MSG_RESPONSE_FAIL;\r
+ }\r
+ // Release struct.\r
+ msg_release_struct(&pSendOpt);\r
+ }\r
+ //4. Release message info.\r
+ err = msg_release_struct(&pMsgInfo);\r
+ if (err != MSG_SUCCESS)\r
+ {\r
+ AppLogDebug("msg_release_message fail = %d", (int) err);\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return response;\r
+}\r
+\r
+MsgResponse\r
+SmsManager::CreateSms(msg_struct_t pMsgInfo, const String& msgText, int threadId)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ // 1. Set message type.\r
+ MsgResponse response = SetMessageType(pMsgInfo);\r
+ if (response != MSG_RESPONSE_SUCCESS)\r
+ {\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return response;\r
+ }\r
+ //2. Set body.\r
+ response = SetMessageBody(pMsgInfo, msgText);\r
+ if (response != MSG_RESPONSE_SUCCESS)\r
+ {\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return response;\r
+ }\r
+\r
+ //3. Fetch recipients\r
+ response = SetRecipientList(pMsgInfo, threadId);\r
+ if (response != MSG_RESPONSE_SUCCESS)\r
+ {\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return response;\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return MSG_RESPONSE_SUCCESS;\r
+}\r
+\r
+MsgResponse\r
+SmsManager::CreateSms(msg_struct_t pMsgInfo, const String& msgText, const IList& addressList)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ // 1. Set message type.\r
+ MsgResponse response = SetMessageType(pMsgInfo);\r
+ if (response != MSG_RESPONSE_SUCCESS)\r
+ {\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return response;\r
+ }\r
+ //2. Set body.\r
+ response = SetMessageBody(pMsgInfo, msgText);\r
+ if (response != MSG_RESPONSE_SUCCESS)\r
+ {\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return response;\r
+ }\r
+ //3. Fetch recipients\r
+ response = SetRecipientList(pMsgInfo, addressList);\r
+ if (response != MSG_RESPONSE_SUCCESS)\r
+ {\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return response;\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return MSG_RESPONSE_SUCCESS;\r
+}\r
+\r
+MsgResponse\r
+SmsManager::SendMessage(const String& msgText, const IList& addressList, int& msgThreadId, const SmsSendSettings* pSmsSendings)\r
+{\r
+ AppLogDebug("ENTER");\r
+ // 1. Create new message\r
+ msg_struct_t pMsgInfo = msg_create_struct(MSG_STRUCT_MESSAGE_INFO);\r
+ if (!pMsgInfo)\r
+ {\r
+ AppLogDebug("msg_new_message fail");\r
+ return MSG_RESPONSE_FAIL;\r
+ }\r
+ msg_error_t err = MSG_SUCCESS;\r
+ // 2. Make SMS\r
+ MsgResponse response = CreateSms(pMsgInfo, msgText, addressList);\r
+ if (response == MSG_RESPONSE_SUCCESS)\r
+ {\r
+ // 3. Send SMS\r
+ msg_struct_t pRequest = msg_create_struct(MSG_STRUCT_REQUEST_INFO);\r
+ msg_struct_t pSendOpt = NULL;\r
+ msg_get_struct_handle(pRequest, MSG_REQUEST_SENDOPT_HND, &pSendOpt);\r
+ msg_set_bool_value(pSendOpt, MSG_SEND_OPT_SETTING_BOOL, false);\r
+ bool reqDeliveryReport(false);\r
+ if (pSmsSendings)\r
+ {\r
+ // Set encoding type based on setting\r
+ msg_encode_type_t encodeType = pSmsSendings->GetEncodeType();\r
+ msg_set_int_value(pMsgInfo, MSG_MESSAGE_ENCODE_TYPE_INT, encodeType);\r
+ reqDeliveryReport = pSmsSendings->IsDeliveryReportOn();\r
+ }\r
+ msg_set_bool_value(pSendOpt, MSG_SEND_OPT_DELIVER_REQ_BOOL, reqDeliveryReport);\r
+ msg_set_struct_handle(pRequest, MSG_REQUEST_MESSAGE_HND, pMsgInfo);\r
+ err = msg_sms_send_message(__pMsgHandle, pRequest);\r
+ if (err != MSG_SUCCESS)\r
+ {\r
+ AppLogDebug("msg_sms_send_message fail = %d", (int) err);\r
+ response = MSG_RESPONSE_FAIL;\r
+ }\r
+ // Get thread ID\r
+ msg_thread_id_t threadId;\r
+ msg_struct_list_s* pRecepientList = NULL;\r
+ msg_get_list_handle(pMsgInfo, MSG_MESSAGE_ADDR_LIST_STRUCT, (void**) &pRecepientList);\r
+ err = msg_get_thread_id_by_address(__pMsgHandle, pRecepientList, &threadId);\r
+ AppLogDebug("msg_get_thread_id_by_address err = %d", (int) err);\r
+ if (err == MSG_SUCCESS)\r
+ {\r
+ msgThreadId = (int) threadId;\r
+ }\r
+ // Release send message struct.\r
+ msg_release_struct(&pRequest);\r
+ }\r
+ //4. Release message info.\r
+ err = msg_release_struct(&pMsgInfo);\r
+ if (err != MSG_SUCCESS)\r
+ {\r
+ AppLogDebug("msg_release_message fail = %d", (int) err);\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return response;\r
+}\r
+\r
+MsgResponse\r
+SmsManager::SaveMessage(const String& msgText, const IList& addressList)\r
+{\r
+ AppLogDebug("ENTER");\r
+ // 1. Create new message\r
+ msg_struct_t pMsgInfo = msg_create_struct(MSG_STRUCT_MESSAGE_INFO);\r
+ if (!pMsgInfo)\r
+ {\r
+ AppLogDebug("msg_new_message fail");\r
+ return MSG_RESPONSE_FAIL;\r
+ }\r
+ msg_error_t err = MSG_SUCCESS;\r
+ // 2. Make SMS\r
+ MsgResponse response = CreateSms(pMsgInfo, msgText, addressList);\r
+ if (response == MSG_RESPONSE_SUCCESS)\r
+ {\r
+ // 3. Save SMS\r
+ msg_struct_t pSendOpt = msg_create_struct(MSG_STRUCT_SENDOPT);\r
+ msg_set_bool_value(pSendOpt, MSG_SEND_OPT_SETTING_BOOL, false);\r
+ err = msg_add_message(__pMsgHandle, (const msg_struct_t) pMsgInfo, (const msg_struct_t) pSendOpt);\r
+ if (err != MSG_SUCCESS)\r
+ {\r
+ AppLogDebug("msg_add_message fail = %d", (int) err);\r
+ response = MSG_RESPONSE_FAIL;\r
+ }\r
+ // Release struct.\r
+ msg_release_struct(&pSendOpt);\r
+ }\r
+ //4. Release message info.\r
+ err = msg_release_struct(&pMsgInfo);\r
+ if (err != MSG_SUCCESS)\r
+ {\r
+ AppLogDebug("msg_release_message fail = %d", (int) err);\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return response;\r
+}\r
+\r
+MsgResponse\r
+SmsManager::SetMessageType(msg_struct_t pMsgInfo)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ msg_error_t err = MSG_SUCCESS;\r
+ if ((err = msg_set_int_value(pMsgInfo, MSG_MESSAGE_TYPE_INT, MSG_TYPE_SMS)) != MSG_SUCCESS)\r
+ {\r
+ AppLogDebug("msg_set_message_type error = %d", (int) err);\r
+ AppLogDebug("EXIT");\r
+ return MSG_RESPONSE_INVALID_MSG_TYPE;\r
+ }\r
+\r
+ AppLogDebug("EXIT");\r
+ return MSG_RESPONSE_SUCCESS;\r
+}\r
+\r
+MsgResponse\r
+SmsManager::SetMessageBody(msg_struct_t pMsgInfo, const String& msgText)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ if (msgText.GetLength() <= 0)\r
+ {\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return MSG_RESPONSE_EMPTY_BODY;\r
+ }\r
+ int msgLength = msgText.GetLength() * 4 + 1; // For null terminated.\r
+ char* pBodyText = new (std::nothrow) char[msgLength];\r
+ if (pBodyText)\r
+ {\r
+ memset(pBodyText, '\0', (size_t) msgLength);\r
+ const wchar_t* pText = msgText.GetPointer();\r
+ wcstombs(pBodyText, pText, (size_t) msgLength);\r
+ msg_error_t err = MSG_SUCCESS;\r
+ if ((err = msg_set_str_value(pMsgInfo, MSG_MESSAGE_SMS_DATA_STR, pBodyText\r
+ , (int) strlen(pBodyText))) != MSG_SUCCESS)\r
+ {\r
+ delete[] pBodyText;\r
+ AppLogDebug("msg_sms_set_message_body error=%d", (int) err);\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return MSG_RESPONSE_INVALID_BODY;\r
+ }\r
+ // release body text.\r
+ delete[] pBodyText;\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return MSG_RESPONSE_SUCCESS;\r
+}\r
+\r
+MsgResponse\r
+SmsManager::SetRecipientList(msg_struct_t pMsgInfo, int threadId)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ msg_error_t err = MSG_SUCCESS;\r
+ MsgResponse response = MSG_RESPONSE_SUCCESS;\r
+ msg_struct_list_s pAddressList = {0};\r
+ msg_thread_id_t thrdId = threadId;\r
+ if ((err = msg_get_address_list(__pMsgHandle, thrdId, &pAddressList)) != MSG_SUCCESS)\r
+ {\r
+ AppLogDebug("msg_get_address_list error=%d", (int) err);\r
+ return MSG_RESPONSE_RECIPIENT_INVALID;\r
+ }\r
+ // Set recipient list here\r
+ if (pAddressList.nCount > 0)\r
+ {\r
+ //4. Set Address\r
+ char recipient[MAX_ADDRESS_VAL_LEN] = {0};\r
+ msg_struct_list_s* pRecepientList = NULL;\r
+ msg_get_list_handle(pMsgInfo, MSG_MESSAGE_ADDR_LIST_STRUCT, (void**) &pRecepientList);\r
+ pRecepientList->nCount = pAddressList.nCount;\r
+ for (int count = 0; count < pAddressList.nCount; count++)\r
+ {\r
+ err = msg_get_str_value(pAddressList.msg_struct_info[count],\r
+ MSG_ADDRESS_INFO_ADDRESS_VALUE_STR, recipient, MAX_ADDRESS_VAL_LEN);\r
+\r
+ if (err != MSG_SUCCESS)\r
+ {\r
+ continue;\r
+ }\r
+ //TODO: Need to check if address type is email or number.\r
+ msg_set_int_value(pRecepientList->msg_struct_info[count], MSG_ADDRESS_INFO_ADDRESS_TYPE_INT, MSG_ADDRESS_TYPE_PLMN);\r
+ msg_set_int_value(pRecepientList->msg_struct_info[count], MSG_ADDRESS_INFO_RECIPIENT_TYPE_INT, MSG_RECIPIENTS_TYPE_TO);\r
+ err = msg_set_str_value(pRecepientList->msg_struct_info[count], MSG_ADDRESS_INFO_ADDRESS_VALUE_STR, recipient, (int) strlen(recipient));\r
+ if (err != MSG_SUCCESS)\r
+ {\r
+ AppLogDebug(" msg_set_str_value error=%d", (int) err);\r
+ response = MSG_RESPONSE_RECIPIENT_INVALID;\r
+ break;\r
+ }\r
+ }\r
+ }\r
+ else\r
+ {\r
+ response = MSG_RESPONSE_RECIPIENT_ZERO;\r
+ }\r
+ // Free memory\r
+ msg_release_list_struct(&pAddressList);\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return response;\r
+}\r
+\r
+MsgResponse\r
+SmsManager::SetRecipientList(msg_struct_t pMsgInfo, const IList& addressList)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ int addressListCount(0);\r
+ if ((addressListCount = addressList.GetCount()) <= 0)\r
+ {\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return MSG_RESPONSE_RECIPIENT_ZERO;\r
+ }\r
+ MsgResponse response = MSG_RESPONSE_SUCCESS;\r
+ msg_error_t err = MSG_SUCCESS;\r
+ msg_struct_list_s* pRecepientList = NULL;\r
+ msg_get_list_handle(pMsgInfo, MSG_MESSAGE_ADDR_LIST_STRUCT, (void**) &pRecepientList);\r
+ pRecepientList->nCount = addressListCount;\r
+ AppLogDebug("Address list count = %d", pRecepientList->nCount);\r
+ for (int count = 0; count < addressListCount; count++)\r
+ {\r
+ const String* pPhoneNumberObj = static_cast<String*>(\r
+ const_cast<Object*>(addressList.GetAt(count)));\r
+ int phoneNumberLen = pPhoneNumberObj->GetLength() * 4 + 1;\r
+ char* pPhoneNumber = new (std::nothrow) char[phoneNumberLen];\r
+ const wchar_t* pNumber = pPhoneNumberObj->GetPointer();\r
+ wcstombs(pPhoneNumber, pNumber, (size_t) phoneNumberLen);\r
+ AppLogDebug("Phone Number = %S", pPhoneNumberObj->GetPointer());\r
+ //TODO: Need to check if address type is email or number.\r
+ msg_set_int_value(pRecepientList->msg_struct_info[count], MSG_ADDRESS_INFO_ADDRESS_TYPE_INT, MSG_ADDRESS_TYPE_PLMN);\r
+ msg_set_int_value(pRecepientList->msg_struct_info[count], MSG_ADDRESS_INFO_RECIPIENT_TYPE_INT, MSG_RECIPIENTS_TYPE_TO);\r
+ if (pPhoneNumber)\r
+ {\r
+ err = msg_set_str_value(pRecepientList->msg_struct_info[count], MSG_ADDRESS_INFO_ADDRESS_VALUE_STR, pPhoneNumber, (int) strlen(pPhoneNumber));\r
+ }\r
+ if (err != MSG_SUCCESS)\r
+ {\r
+ AppLogDebug(" msg_set_str_value error=%d", (int) err);\r
+ response = MSG_RESPONSE_RECIPIENT_INVALID;\r
+ delete[] pPhoneNumber;\r
+ break;\r
+ }\r
+ // Release memory\r
+ delete[] pPhoneNumber;\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return response;\r
+}\r
+\r
+\r
+MsgResponse\r
+SmsManager::ReSendMessage(int messageId)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ MsgResponse response = MSG_RESPONSE_SUCCESS;\r
+ msg_struct_t pFaildMsg = msg_create_struct(MSG_STRUCT_MESSAGE_INFO);\r
+ msg_struct_t pSendOpt = msg_create_struct(MSG_STRUCT_SENDOPT);\r
+ msg_message_id_t msgId = messageId;\r
+ msg_error_t err = msg_get_message(__pMsgHandle, msgId, pFaildMsg, pSendOpt);\r
+ if (err == MSG_SUCCESS)\r
+ {\r
+ msg_struct_t pResenRequest = msg_create_struct(MSG_STRUCT_REQUEST_INFO);\r
+ msg_set_struct_handle(pResenRequest, MSG_REQUEST_MESSAGE_HND, pFaildMsg);\r
+ msg_set_struct_handle(pResenRequest, MSG_REQUEST_SENDOPT_HND, pSendOpt);\r
+ err = msg_sms_send_message(__pMsgHandle, pResenRequest);\r
+ if (err != MSG_SUCCESS)\r
+ {\r
+ AppLog("msg_sms_send_message fail = %d", (int) err);\r
+ response = MSG_RESPONSE_FAIL;\r
+ }\r
+ msg_release_struct(&pResenRequest);\r
+ }\r
+ else\r
+ {\r
+ AppLog("msg_get_message fail = %d", (int) err);\r
+ response = MSG_RESPONSE_FAIL;\r
+ }\r
+ msg_release_struct(&pSendOpt);\r
+ msg_release_struct(&pFaildMsg);\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return response;\r
+}\r
--- /dev/null
+//\r
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.\r
+//\r
+// Licensed under the Flora License, Version 1.0 (the License);\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+// http://floralicense.org/license/\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an AS IS BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+//\r
+\r
+#include <msg.h>\r
+\r
+#include <FBaseErrorDefine.h>\r
+#include <FBaseResult.h>\r
+\r
+\r
+#include "MsgSmsSendSettings.h"\r
+#include "MsgTypes.h"\r
+\r
+using namespace Tizen::Base;\r
+\r
+SmsSendSettings::SmsSendSettings(msg_struct_t pSmsSendSetting)\r
+ : __pSmsSendSetting(pSmsSendSetting)\r
+{\r
+ //Empty implementation\r
+}\r
+\r
+SmsSendSettings::~SmsSendSettings(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ if (__pSmsSendSetting)\r
+ {\r
+ msg_release_struct(&__pSmsSendSetting);\r
+ __pSmsSendSetting = null;\r
+ }\r
+\r
+ AppLogDebug("EXIT: r = %s ", GetErrorMessage(GetLastResult()));\r
+}\r
+\r
+msg_struct_t\r
+SmsSendSettings::GetSmsSendOpt(void) const\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ AppLogDebug("EXIT: r = %s ", GetErrorMessage(GetLastResult()));\r
+ return __pSmsSendSetting;\r
+\r
+}\r
+int\r
+SmsSendSettings::GetEncodeType(void) const\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ int encodeType(MSG_ENCODE_GSM7BIT);\r
+ msg_get_int_value(__pSmsSendSetting, MSG_SMS_SENDOPT_ENCODE_TYPE_INT, &encodeType);\r
+\r
+ AppLogDebug("EXIT: r = %s ", GetErrorMessage(GetLastResult()));\r
+ return encodeType;\r
+}\r
+\r
+int\r
+SmsSendSettings::GetEncodeMode(void) const\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ int encodeType(GetEncodeType());\r
+ switch (GetEncodeType())\r
+ {\r
+ case MSG_ENCODE_GSM7BIT:\r
+ case MSG_ENCODE_8BIT:\r
+ {\r
+ encodeType = SETTING_INPUTMODE_ENCODE_GSM_ALPHABET;\r
+ }\r
+ break;\r
+\r
+ case MSG_ENCODE_UCS2:\r
+ {\r
+ encodeType = SETTING_INPUTMODE_ENCODE_UCS2;\r
+ }\r
+ break;\r
+\r
+ case MSG_ENCODE_AUTO:\r
+ {\r
+ encodeType = SETTING_INPUTMODE_ENCODE_AUTO;\r
+ }\r
+ break;\r
+ }\r
+\r
+ AppLogDebug("EXIT: r = %s ", GetErrorMessage(GetLastResult()));\r
+ return encodeType;\r
+}\r
+\r
+bool\r
+SmsSendSettings::IsDeliveryReportOn(void) const\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ bool report(false);\r
+ msg_get_bool_value(__pSmsSendSetting, MSG_SMS_SENDOPT_DELIVERY_REPORT_BOOL, &report);\r
+\r
+ AppLogDebug("EXIT: r = %s ", GetErrorMessage(GetLastResult()));\r
+ return report;\r
+}\r
+\r
+result\r
+SmsSendSettings::SetEncodeMode(int newType)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ result r = E_SUCCESS;\r
+\r
+ switch (newType)\r
+ {\r
+ case SETTING_INPUTMODE_ENCODE_GSM_ALPHABET:\r
+ {\r
+ newType = MSG_ENCODE_GSM7BIT;\r
+ }\r
+ break;\r
+\r
+ case SETTING_INPUTMODE_ENCODE_UCS2:\r
+ {\r
+ newType = MSG_ENCODE_UCS2;\r
+ }\r
+ break;\r
+\r
+ case SETTING_INPUTMODE_ENCODE_AUTO:\r
+ {\r
+ newType = MSG_ENCODE_AUTO;\r
+ }\r
+ break;\r
+ }\r
+\r
+ msg_error_t err;\r
+ err = msg_set_int_value(__pSmsSendSetting, MSG_SMS_SENDOPT_ENCODE_TYPE_INT, newType);\r
+ if (err != MSG_SUCCESS)\r
+ {\r
+ AppLogDebug("Encode mode setting error [%d]", (int) err);\r
+ }\r
+\r
+ r = GetLastResult();\r
+ AppLogDebug("EXIT: r = %s ", GetErrorMessage(r));\r
+ return r;\r
+}\r
+\r
+result\r
+SmsSendSettings::SetDeliveryReportRequestStatus(bool status)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ result r = E_SUCCESS;\r
+ msg_error_t err;\r
+ err = msg_set_bool_value(__pSmsSendSetting, MSG_SMS_SENDOPT_DELIVERY_REPORT_BOOL, status);\r
+ if (err != MSG_SUCCESS)\r
+ {\r
+ AppLogDebug("Delivery report setting error [%d]", (int) err);\r
+ }\r
+\r
+ r = GetLastResult();\r
+ AppLogDebug("EXIT: r = %s ", GetErrorMessage(r));\r
+ return r;\r
+}\r
--- /dev/null
+//\r
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.\r
+//\r
+// Licensed under the Flora License, Version 1.0 (the License);\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+// http://floralicense.org/license/\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an AS IS BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+//\r
+\r
+#include <FUiCtrlFooter.h>\r
+#include <FUiCtrlHeader.h>\r
+#include <FUiScenesBackwardSceneTransition.h>\r
+#include <FUiScenesSceneManager.h>\r
+\r
+#include "MsgMessageData.h"\r
+#include "MsgMessagePresentationModel.h"\r
+#include "MsgSmsViewerForm.h"\r
+#include "MsgTypes.h"\r
+\r
+\r
+using namespace Tizen::Base::Collection;\r
+using namespace Tizen::Graphics;\r
+using namespace Tizen::Ui;\r
+using namespace Tizen::Ui::Controls;\r
+using namespace Tizen::Ui::Scenes;\r
+\r
+SmsViewerForm::SmsViewerForm(void)\r
+ : __pMessageEntry(null)\r
+ , __pMessageTextBox(null)\r
+{\r
+ //Empty implementation\r
+}\r
+\r
+SmsViewerForm::~SmsViewerForm(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ if (__pMessageEntry)\r
+ {\r
+ delete __pMessageEntry;\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
+\r
+bool\r
+SmsViewerForm::Initialize(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ result r = Construct(L"IDL_SMS_VIEWER_FORM");\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return (!IsFailed(r));\r
+}\r
+\r
+void\r
+SmsViewerForm::OnIntializeFooter(Footer& footer)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ // Set event listener\r
+ footer.AddActionEventListener(*this);\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
+\r
+void\r
+SmsViewerForm::OnIntializeHeader(Header& header)\r
+{\r
+ AppLogDebug("ENTER");\r
+ // Set event listener\r
+ header.AddActionEventListener(*this);\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
+\r
+result\r
+SmsViewerForm::OnInitializing(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ result r = BaseForm::InitializeBase();\r
+ __pMessageTextBox = new (std::nothrow) TextBox();\r
+ if (r != E_SUCCESS || !__pMessageTextBox)\r
+ {\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ r = E_FAILURE;\r
+ return r;\r
+ }\r
+ Rectangle rect = GetClientAreaBounds();\r
+ r = __pMessageTextBox->Construct(Rectangle(0, 0, rect.width, rect.height),\r
+ TEXT_BOX_BORDER_NONE);\r
+ AddControl(*__pMessageTextBox);\r
+ __pMessageTextBox->SetTextSize(MSG_SMS_VIEWER_FONT_SIZE);\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return r;\r
+}\r
+\r
+result\r
+SmsViewerForm::OnTerminating(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ result r = E_SUCCESS;\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return r;\r
+}\r
+\r
+void\r
+SmsViewerForm::OnSceneActivatedN(const SceneId& previousSceneId,\r
+ const SceneId& currentSceneId, IList* pArgs)\r
+{\r
+ AppLogDebug("ENTER");\r
+ if (__previousSceneId.IsEmpty())\r
+ {\r
+ __previousSceneId.Append(previousSceneId);\r
+ }\r
+ if (pArgs)\r
+ {\r
+ BaseData* pBaseData = (BaseData*) pArgs->GetAt(0);\r
+ MessagePresentationModel* pMessagePresentationModel = MessagePresentationModel::GetInstance();\r
+ if (pMessagePresentationModel && pBaseData)\r
+ {\r
+ __pMessageEntry = pMessagePresentationModel->GetMessageDataByIdN(pBaseData->GetEntryId());\r
+ }\r
+ pArgs->RemoveAll(true);\r
+ delete pArgs;\r
+ }\r
+ // Load data to UI\r
+ if (__pMessageEntry)\r
+ {\r
+ // Set title\r
+ GetHeader()->SetTitleText(__pMessageEntry->GetDisplayName());\r
+ // Set Body text\r
+ __pMessageTextBox->SetText(__pMessageEntry->GetMessageText());\r
+ }\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return;\r
+}\r
+\r
+void\r
+SmsViewerForm::OnSceneDeactivated(const SceneId& currentSceneId,\r
+ const SceneId& nextSceneId)\r
+{\r
+ AppLogDebug("ENTER");\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return;\r
+}\r
+\r
+void\r
+SmsViewerForm::OnOrientationChanged(const Control& source, OrientationStatus orientationStatus)\r
+{\r
+ AppLogDebug("ENTER");\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return;\r
+}\r
+\r
+void\r
+SmsViewerForm::OnActionPerformed(const Control& source, int actionId)\r
+{\r
+ AppLogDebug("ENTER");\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ // Empty implementation.\r
+ return;\r
+}\r
+\r
+void\r
+SmsViewerForm::OnFormBackRequested(Form& source)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ // Back to message list form\r
+ SceneManager* pSceneManager = SceneManager::GetInstance();\r
+ pSceneManager->GoBackward(BackwardSceneTransition(__previousSceneId, SCENE_TRANSITION_ANIMATION_TYPE_NONE));\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return;\r
+}\r
--- /dev/null
+//\r
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.\r
+//\r
+// Licensed under the Flora License, Version 1.0 (the License);\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+// http://floralicense.org/license/\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an AS IS BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+//\r
+\r
+#include <msg.h>\r
+#include <msg_storage.h>\r
+\r
+#include <FBaseErrorDefine.h>\r
+#include <FBaseResult.h>\r
+#include <FBaseString.h>\r
+\r
+#include "MsgSmscCenterList.h"\r
+\r
+using namespace Tizen::Base;\r
+\r
+// Constructor\r
+SmscCenterList::SmscCenterList(msg_struct_t pSmscInfo)\r
+ : __pSmscOpt(pSmscInfo)\r
+ , __pSmscList(null)\r
+{\r
+ //Empty implementation\r
+}\r
+\r
+// Destructor\r
+SmscCenterList::~SmscCenterList(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ // Release resource;\r
+ if (__pSmscOpt)\r
+ {\r
+ msg_release_struct(&__pSmscOpt);\r
+ }\r
+\r
+ AppLogDebug("EXIT: r = %s", GetErrorMessage(GetLastResult()));\r
+}\r
+\r
+// Second phase constructor\r
+void\r
+SmscCenterList::Construct(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ msg_error_t err = msg_get_list_handle(__pSmscOpt, MSG_SMSC_LIST_STRUCT, (void**) &__pSmscList);\r
+ AppLogDebug("SMSC list fetching error [%d]", (int) err);\r
+\r
+ AppLogDebug("EXIT: r = %s", GetErrorMessage(GetLastResult()));\r
+ return;\r
+}\r
+\r
+int\r
+SmscCenterList::GetCount(void) const\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ if (__pSmscList)\r
+ {\r
+ AppLogDebug("EXIT: SMSC center count = [%d]", __pSmscList->nCount);\r
+ return __pSmscList->nCount;\r
+ }\r
+\r
+ AppLogDebug("EXIT");\r
+ return 0;\r
+}\r
+\r
+int\r
+SmscCenterList::GetSelectedId(void) const\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ int selectedId(0);\r
+ msg_error_t err = msg_get_int_value(__pSmscOpt, MSG_SMSC_SELECTED_ID_INT, &selectedId);\r
+\r
+ AppLogDebug("EXIT: msg_get_int_value err [%d]", (int) err);\r
+ return selectedId;\r
+}\r
+\r
+result\r
+SmscCenterList::SetSelectedSmscIndex(int smscIndex)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ result r = E_SUCCESS;\r
+ msg_error_t err = msg_set_int_value(__pSmscOpt, MSG_SMSC_SELECTED_ID_INT, smscIndex);\r
+ if (err != MSG_SUCCESS)\r
+ {\r
+ r = E_FAILURE;\r
+ }\r
+\r
+ AppLogDebug("EXIT: msg_set_int_value err [%d]", (int) err);\r
+ return r;\r
+}\r
+\r
+msg_struct_t\r
+SmscCenterList::GetSmscOpt(void) const\r
+{\r
+ AppLogDebug("ENTER");\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return __pSmscOpt;\r
+}\r
+\r
+String\r
+SmscCenterList::GetSmscName(int index) const\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ char smscName[SMSC_NAME_MAX + 1] = {0};\r
+ msg_get_str_value(__pSmscList->msg_struct_info[index], MSG_SMSC_NAME_STR, smscName, SMSC_NAME_MAX);\r
+\r
+ AppLogDebug("EXIT: r = %s", GetErrorMessage(GetLastResult()));\r
+ return smscName;\r
+}\r
+\r
+String\r
+SmscCenterList::GetSmscAdress(int index) const\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ char smscAddr[SMSC_ADDR_MAX + 1] = {0};\r
+ msg_get_str_value(__pSmscList->msg_struct_info[index], MSG_SMSC_ADDR_STR, smscAddr, SMSC_ADDR_MAX);\r
+\r
+ AppLogDebug("EXIT: r = %s", GetErrorMessage(GetLastResult()));\r
+ return smscAddr;\r
+}\r
+\r
+result\r
+SmscCenterList::SetSmscName(int index, const String& smscName)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ result r = E_SUCCESS;\r
+ int nameLength = smscName.GetLength() * 4;\r
+ char* pSmscName = new (std::nothrow) char[nameLength];\r
+ wcstombs(pSmscName, smscName.GetPointer(), (size_t) nameLength);\r
+ if (msg_set_str_value(__pSmscList->msg_struct_info[index], MSG_SMSC_NAME_STR, pSmscName, nameLength) == MSG_SUCCESS)\r
+ {\r
+ r = E_FAILURE;\r
+ }\r
+ delete[] pSmscName;\r
+\r
+ AppLogDebug("EXIT: r = %s", GetErrorMessage(r));\r
+ return r;\r
+}\r
+\r
+result\r
+SmscCenterList::SetSmscAdress(int index, const String& smscAddress)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ result r = E_SUCCESS;\r
+ int addrLength = smscAddress.GetLength() + 1;\r
+ char* pSmscAddr = new (std::nothrow) char[addrLength];\r
+ wcstombs(pSmscAddr, smscAddress.GetPointer(), (size_t) addrLength);\r
+ if (msg_set_str_value(__pSmscList->msg_struct_info[index], MSG_SMSC_ADDR_STR, pSmscAddr, addrLength) == MSG_SUCCESS)\r
+ {\r
+ r = E_FAILURE;\r
+ }\r
+ delete[] pSmscAddr;\r
+\r
+ AppLogDebug("EXIT: r = %s", GetErrorMessage(r));\r
+ return r;\r
+}\r
--- /dev/null
+//\r
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.\r
+//\r
+// Licensed under the Flora License, Version 1.0 (the License);\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+// http://floralicense.org/license/\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an AS IS BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+//\r
+\r
+#include <msg.h>\r
+#include <msg_storage.h>\r
+#include <msg_types.h>\r
+\r
+#include <FBaseErrorDefine.h>\r
+#include <FBaseResult.h>\r
+#include <FBaseString.h>\r
+\r
+#include "MsgSpamFilterList.h"\r
+#include "MsgTypes.h"\r
+\r
+using namespace Tizen::Base;\r
+using namespace Tizen::Base::Collection;\r
+\r
+// Destructor\r
+SpamFilterList::~SpamFilterList(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ if (__pBlockWordFilterIndex)\r
+ {\r
+ __pBlockWordFilterIndex->RemoveAll();\r
+ delete __pBlockWordFilterIndex;\r
+ }\r
+\r
+ if (__pNumberFilterIndex)\r
+ {\r
+ __pNumberFilterIndex->RemoveAll();\r
+ delete __pNumberFilterIndex;\r
+ }\r
+ // Release resource;\r
+ if (__pFilterList)\r
+ {\r
+ msg_release_list_struct(__pFilterList);\r
+ delete __pFilterList;\r
+ }\r
+\r
+ AppLogDebug("EXIT: r = %s", GetErrorMessage(GetLastResult()));\r
+}\r
+\r
+// Second phase initialization\r
+result\r
+SpamFilterList::Construct(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ result r = E_SUCCESS;\r
+ __pBlockWordFilterIndex = new (std::nothrow) ArrayListT< int>();\r
+ __pBlockWordFilterIndex->Construct();\r
+ __pNumberFilterIndex = new (std::nothrow) ArrayListT< int>();\r
+ __pNumberFilterIndex->Construct();\r
+\r
+\r
+ // Filter out index based on filter typed.\r
+ for (int index = 0; index < __pFilterList->nCount; index++)\r
+ {\r
+ int filterType(-1);\r
+ msg_get_int_value(__pFilterList->msg_struct_info[index], MSG_FILTER_TYPE_INT, &filterType);\r
+ if (filterType == MSG_FILTER_BY_WORD)\r
+ {\r
+ __pBlockWordFilterIndex->Add(index);\r
+ }\r
+ else\r
+ {\r
+ __pNumberFilterIndex->Add(index);\r
+ }\r
+ }\r
+\r
+ AppLogDebug("EXIT: r = %s", GetErrorMessage(GetLastResult()));\r
+ return r;\r
+}\r
+\r
+// Constructor\r
+SpamFilterList::SpamFilterList(msg_struct_list_s* pFilterList)\r
+ : __pFilterList(pFilterList)\r
+ , __pBlockWordFilterIndex(null)\r
+ , __pNumberFilterIndex(null)\r
+{\r
+}\r
+\r
+int\r
+SpamFilterList::GetBlockWordCount(void) const\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ if (__pBlockWordFilterIndex)\r
+ {\r
+ AppLogDebug("EXIT: r = %s ", GetErrorMessage(GetLastResult()));\r
+ return __pBlockWordFilterIndex->GetCount();\r
+ }\r
+\r
+ AppLogDebug("EXIT: r = %s ", GetErrorMessage(GetLastResult()));\r
+ return 0;\r
+}\r
+\r
+int\r
+SpamFilterList::GetBlockNumberCount(void) const\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ if (__pNumberFilterIndex)\r
+ {\r
+ AppLogDebug("EXIT: r = %s ", GetErrorMessage(GetLastResult()));\r
+ return __pNumberFilterIndex->GetCount();\r
+ }\r
+\r
+ AppLogDebug("EXIT: r = %s ", GetErrorMessage(GetLastResult()));\r
+ return 0;\r
+}\r
+\r
+msg_struct_t\r
+SpamFilterList::GetFilter(int index, int type) const\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ // Get filter ID\r
+ int filterIndex(-1);\r
+\r
+ if (type == SPAM_FILTER_TYPE_BLOCK_WORD)\r
+ {\r
+ __pBlockWordFilterIndex->GetAt(index, filterIndex);\r
+ }\r
+ else\r
+ {\r
+ __pNumberFilterIndex->GetAt(index, filterIndex);\r
+ }\r
+\r
+ AppLogDebug("EXIT: r = %s ", GetErrorMessage(GetLastResult()));\r
+ return __pFilterList->msg_struct_info[filterIndex];\r
+}\r
+\r
+int\r
+SpamFilterList::GetFilterId(int index, int type) const\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ result r = E_SUCCESS;\r
+ msg_error_t err = MSG_SUCCESS;\r
+ int filterId(-1);\r
+ // Get filter ID\r
+ int filterIndex(-1);\r
+ if (type == SPAM_FILTER_TYPE_BLOCK_WORD)\r
+ {\r
+ __pBlockWordFilterIndex->GetAt(index, filterIndex);\r
+ }\r
+ else\r
+ {\r
+ __pNumberFilterIndex->GetAt(index, filterIndex);\r
+ }\r
+ if (filterIndex > -1)\r
+ {\r
+ err = msg_get_int_value(__pFilterList->msg_struct_info[filterIndex], MSG_FILTER_ID_INT, &filterId);\r
+ if (err != MSG_SUCCESS)\r
+ {\r
+ AppLogDebug("Filter ID fetching err = %d", (int) err);\r
+ r = E_FAILURE;\r
+ }\r
+ }\r
+ AppLogDebug("EXIT: r = %s", GetErrorMessage(r));\r
+ return filterId;\r
+}\r
+\r
+int\r
+SpamFilterList::GetFilterType(int index, int type) const\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ result res = E_SUCCESS;\r
+ msg_error_t err = MSG_SUCCESS;\r
+ int filterType(-1);\r
+ // Get filter ID\r
+ int filterIndex(-1);\r
+ if (type == SPAM_FILTER_TYPE_BLOCK_WORD)\r
+ {\r
+ __pBlockWordFilterIndex->GetAt(index, filterIndex);\r
+ }\r
+ else\r
+ {\r
+ __pNumberFilterIndex->GetAt(index, filterIndex);\r
+ }\r
+ err = msg_get_int_value(__pFilterList->msg_struct_info[filterIndex], MSG_FILTER_TYPE_INT, &filterType);\r
+ if (err != MSG_SUCCESS)\r
+ {\r
+ AppLogDebug("Filter ID fetching err = %d", (int) err);\r
+ res = E_FAILURE;\r
+ }\r
+\r
+ AppLogDebug("EXIT: r = %s", GetErrorMessage(res));\r
+ return filterType;\r
+\r
+}\r
+\r
+String\r
+SpamFilterList::GetFilterText(int index, int type) const\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ result res = E_SUCCESS;\r
+ msg_error_t err = MSG_SUCCESS;\r
+ char filterText[MAX_FILTER_VALUE_LEN] = {0};\r
+ // Get filter ID\r
+ int filterIndex(-1);\r
+ if (type == SPAM_FILTER_TYPE_BLOCK_WORD)\r
+ {\r
+ __pBlockWordFilterIndex->GetAt(index, filterIndex);\r
+ }\r
+ else\r
+ {\r
+ __pNumberFilterIndex->GetAt(index, filterIndex);\r
+ }\r
+ err = msg_get_str_value(__pFilterList->msg_struct_info[filterIndex], MSG_FILTER_VALUE_STR, filterText, sizeof(filterText));\r
+ if (err != MSG_SUCCESS)\r
+ {\r
+ AppLogDebug("Filter text fetching err = %d", (int) err);\r
+ res = E_FAILURE;\r
+ }\r
+\r
+ AppLogDebug("EXIT: r = %s", GetErrorMessage(res));\r
+ return filterText;\r
+\r
+}\r
+\r
+\r
+int\r
+SpamFilterList::GetFilterListIndex(const String& strFilter, int matchType) const\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ int count = __pNumberFilterIndex->GetCount();\r
+ for (int filterIndex = 0; filterIndex < count; filterIndex++)\r
+ {\r
+ if (strFilter.CompareTo(GetFilterText(filterIndex, matchType)) == 0)\r
+ {\r
+ return filterIndex;\r
+ }\r
+ }\r
+\r
+ AppLogDebug("EXIT: r = %s", GetErrorMessage(GetLastResult()));\r
+ return -1;\r
+}\r
--- /dev/null
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+#include "MsgSpamRestoreHandler.h"
+#include "MsgThreadPresentationModel.h"
+#include "MsgTypes.h"
+
+using namespace Tizen::Base;
+using namespace Tizen::Base::Collection;
+using namespace Tizen::Base::Runtime;
+using namespace Tizen::Ui;
+
+SpamRestoreHandler::SpamRestoreHandler(ArrayListT<int>* pSelectedId,Control* threadCtrl)
+ : __parentCtrl(threadCtrl)
+ , __pselectedIds(pSelectedId)
+{
+ AppLogDebug("ENTER");
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+}
+
+SpamRestoreHandler::~SpamRestoreHandler()
+{
+ AppLogDebug("ENTER");
+
+ if(__pselectedIds)
+ {
+ __pselectedIds->RemoveAll();
+ delete __pselectedIds;
+ __pselectedIds = null;
+ }
+ __parentCtrl = null;
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+}
+
+result
+SpamRestoreHandler::Construct(void)
+{
+ AppLogDebug("ENTER");
+
+ result r = Thread::Construct();
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return r;
+}
+
+Object*
+SpamRestoreHandler::Run(void)
+{
+ AppLogDebug("ENTER");
+
+ IList* pArgs = null;
+ if(__parentCtrl)
+ {
+ if(__pselectedIds->GetCount() > 0)
+ {
+ ThreadPresentationModel* pThreadPrModel = ThreadPresentationModel::GetInstance();
+ pArgs = new (std::nothrow) ArrayList(SingleObjectDeleter);
+ if(pArgs)
+ {
+ pArgs->Add(new Integer(__pselectedIds->GetCount()));
+ __parentCtrl->SendUserEvent(REQUEST_DELETE_START,pArgs);
+ }
+ for(int index = 0;index < __pselectedIds->GetCount();index++)
+ {
+ int entryId = 0;
+ if(__pselectedIds->GetAt(index,entryId) == E_SUCCESS)
+ {
+ pThreadPrModel->MoveMessageToInbox(entryId);
+ pArgs = new (std::nothrow) ArrayList(SingleObjectDeleter);
+ if(pArgs)
+ {
+ pArgs->Add(new Integer(index + 1));
+ pArgs->Add(new Integer(__pselectedIds->GetCount()));
+ __parentCtrl->SendUserEvent(REQUEST_DELETE_UPDATE,pArgs);
+ }
+ }
+ }
+ }
+ pArgs = new (std::nothrow) ArrayList(SingleObjectDeleter);
+ if(pArgs)
+ {
+ pArgs->Add(new Integer(0));
+ __parentCtrl->SendUserEvent(REQUEST_DELETE_COMPLETE,pArgs);
+ }
+ }
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return null;
+
+}
--- /dev/null
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+#include <FApp.h>
+#include <FBaseColArrayListT.h>
+#include <FUiCtrlEditField.h>
+#include <FUiCtrlFooter.h>
+#include <FUiCtrlHeader.h>
+#include <FUiCtrlLabel.h>
+
+#include "MsgBitmapUtility.h"
+#include "MsgCustomTableViewItem.h"
+#include "MsgCommonUtil.h"
+#include "MsgProgressPopup.h"
+#include "MsgSettingsItemList.h"
+#include "MsgSettingPresentationModel.h"
+#include "MsgSpamFilterList.h"
+#include "MsgSpamSettingsForm.h"
+#include "MsgTypes.h"
+
+using namespace Tizen::App;
+using namespace Tizen::Base;
+using namespace Tizen::Base::Collection;
+using namespace Tizen::Base::Utility;
+using namespace Tizen::Graphics;
+using namespace Tizen::Ui;
+using namespace Tizen::Ui::Controls;
+using namespace Tizen::Ui::Scenes;
+
+const wchar_t* IDS_SELECT_NUMBERS = L"Select numbers (%d)";
+const wchar_t* IDS_SELECT_WORDS = L"Select words (%d)";
+const wchar_t* IDS_RET_TYPE_PHONE = L"returnType:phone";
+const wchar_t* IDS_SELECTION_MODE_SINGLE = L"selectionMode:single";
+
+enum SpamAutoRejectGroup
+{
+ SPAM_AUTO_REJECT_GROUP_NUMBER,
+ SPAM_AUTO_REJECT_GROUP_COUNT
+};
+
+SpamSettingsForm::SpamSettingsForm(SpamSettingFromType formType)
+ : __spamFormType(formType)
+ , __pGroupedTableView(null)
+ , __pEditField(null)
+ , __pSettingItemsArray(null)
+ , __selectedMatchCriteriaIndex(0)
+ , __editSpamFilterIndex(-1)
+ , __pSelectedIds(null)
+ , __previousSceneId(IDS_BLANK)
+ , __pConfirmationPopup(null)
+ , __pProgressPopup(null)
+ , __oneTimeFlag(true)
+{
+}
+
+SpamSettingsForm::~SpamSettingsForm(void)
+{
+ AppLogDebug("ENTER");
+
+ if (__pProgressPopup)
+ {
+ delete __pProgressPopup;
+ }
+ if (__pSelectedIds)
+ {
+ __pSelectedIds->RemoveAll();
+ delete __pSelectedIds;
+ }
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+}
+
+bool
+SpamSettingsForm::Initialize(void)
+{
+ AppLogDebug("ENTER");
+
+ result r = E_SUCCESS;
+ switch (__spamFormType)
+ {
+ case SPAM_SETTING_FORM_MAIN:
+ case SPAM_SETTING_FORM_AUTO_REJECT:
+ case SPAM_SETTING_FORM_BLOCK_WORD:
+ r = Construct(L"IDL_SETTINGS_FORM");
+ break;
+
+ case SPAM_SETTING_FORM_ADD_BLOCK_WORD:
+ r = Construct(L"IDL_SETTING_EDIT_ADD_WORDS_FORM");
+ break;
+
+ case SPAM_SETTING_FORM_ADD_REJECT_NUMBER:
+ r = Construct(L"IDL_SETTING_EDIT_ADD_REJECT_NUMBER_FORM");
+ break;
+
+ case SPAM_SETTING_FORM_DELETE_BLOCK_WORD:
+ case SPAM_SETTING_FORM_DELETE_REJECT_NUMBER:
+ {
+ r = Construct(L"IDL_SETTING_DELETE_FILTER_FORM");
+ ShowSelectionInfo();
+ }
+ break;
+ }
+ if (!IsFailed(r))
+ {
+ if (__spamFormType == SPAM_SETTING_FORM_MAIN)
+ {
+ String strText;
+ __pSettingItemsArray = new (std::nothrow) SettingItemsList();
+ int groupIndex = __pSettingItemsArray->AddGroup("");
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_BODY_BLOCKED_NUMBERS", strText);
+ SettingItem* settingItem = new (std::nothrow) SettingItem(IDA_SETTINGS_SPAM_REJECT_NUMBERS, strText, SETTING_STYLE_NORMAL);
+ __pSettingItemsArray->AddItem(groupIndex, *settingItem);
+
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_BODY_BLOCKED_WORDS", strText);
+ settingItem = new (std::nothrow) SettingItem(IDA_SETTINGS_SPAM_BLOCK_WORDS, strText, SETTING_STYLE_NORMAL);
+ __pSettingItemsArray->AddItem(groupIndex, *settingItem);
+ }
+ else if (__spamFormType == SPAM_SETTING_FORM_ADD_REJECT_NUMBER)
+ {
+ String strText;
+ __pSettingItemsArray = new (std::nothrow) SettingItemsList();
+ int groupIndex = __pSettingItemsArray->AddGroup(IDS_BLANK);
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_BODY_SETBLOCK_MATCH_CRITERIA", strText);
+ SettingItem* settingItem = new (std::nothrow) SettingItem(IDA_SETTINGS_MATCH_CRITERIA, strText,
+ SETTING_STYLE_EXPANDABLE,
+ SETTING_STATUS_ITEM_MATCH_CRITERIA);
+ __pSettingItemsArray->AddItem(groupIndex, *settingItem);
+
+ groupIndex = __pSettingItemsArray->AddGroup(IDS_BLANK, SETTING_GROUP_STYLE_NORMAL, false);
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_BODY_SETBLOCK_EXACTLY_THE_SAME_AS", strText);
+ settingItem = new (std::nothrow) SettingItem(IDA_SETTINGS_MATCH_CRITERIA_EXACTLY, strText, SETTING_STYLE_RADIO);
+ __pSettingItemsArray->AddItem(groupIndex, *settingItem);
+
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_BODY_SETBLOCK_START_WITH", strText);
+ settingItem = new (std::nothrow) SettingItem(IDA_SETTINGS_MATCH_CRITERIA_START_WITH, strText, SETTING_STYLE_RADIO);
+ __pSettingItemsArray->AddItem(groupIndex, *settingItem);
+
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_BODY_SETBLOCK_INCLUDE", strText);
+ settingItem = new (std::nothrow) SettingItem(IDA_SETTINGS_MATCH_CRITERIA_INCLUDE, strText, SETTING_STYLE_RADIO);
+ __pSettingItemsArray->AddItem(groupIndex, *settingItem);
+ }
+ }
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return (!IsFailed(r));
+}
+
+result
+SpamSettingsForm::OnInitializing(void)
+{
+ AppLogDebug("ENTER");
+
+ result r = E_SUCCESS;
+ r = BaseForm::InitializeBase();
+ if (!IsFailed(r))
+ {
+ Control* pEmptyBgCntl = GetControl(L"IDC_LISTVIEW_EMPTY_BG");
+ if (pEmptyBgCntl)
+ {
+ pEmptyBgCntl->SetShowState(false);
+ }
+ switch (__spamFormType)
+ {
+ case SPAM_SETTING_FORM_MAIN:
+ case SPAM_SETTING_FORM_AUTO_REJECT:
+ case SPAM_SETTING_FORM_BLOCK_WORD:
+ {
+ __pGroupedTableView = static_cast<GroupedTableView*>(GetControl(L"IDC_GROUPEDTABLEVIEW_SETTINGS"));
+ }
+ break;
+
+ case SPAM_SETTING_FORM_ADD_REJECT_NUMBER:
+ {
+ __pEditField = static_cast<EditField*>(GetControl(L"IDC_EDITFIELD_NUMBER"));
+ __pEditField->SetOverlayKeypadCommandButtonVisible(false);
+ __pEditField->AddFocusEventListener(*this);
+ __pEditField->AddTextEventListener(*this);
+ __pGroupedTableView = static_cast<GroupedTableView*>(GetControl(L"IDC_GROUPEDTABLEVIEW_MATCH_CRITERIA"));
+ __pGroupedTableView->SetGroupedLookEnabled(true);
+ Button* pContactButton = static_cast<Button*>(GetControl(L"IDC_BUTTON_CONTACT"));
+ pContactButton->SetActionId(IDA_SELECT_SPAM_CONTACT_NUMBER);
+ pContactButton->AddActionEventListener(*this);
+
+ }
+ break;
+
+ case SPAM_SETTING_FORM_DELETE_BLOCK_WORD:
+ case SPAM_SETTING_FORM_DELETE_REJECT_NUMBER:
+ {
+ __pSelectedIds = new (std::nothrow) ArrayListT< int>();
+ __pSelectedIds->Construct();
+ CheckButton* pCheckAll = static_cast<CheckButton*>(GetControl(L"IDC_CHECKBUTTON_SELECTALL"));
+ pCheckAll->SetActionId(IDA_SELECT_ALL_ON, IDA_SELECT_ALL_OFF);
+ pCheckAll->AddActionEventListener(*this);
+ __pGroupedTableView = static_cast<GroupedTableView*>(GetControl(L"IDC_GROUPEDTABLEVIEW_FILTERLIST"));
+ }
+ break;
+
+ case SPAM_SETTING_FORM_ADD_BLOCK_WORD:
+ {
+ __pEditField = static_cast<EditField*>(GetControl(L"IDC_EDITFIELD_WORD"));
+ __pEditField->SetEllipsisPosition(ELLIPSIS_POSITION_END);
+ __pEditField->SetOverlayKeypadCommandButtonVisible(false);
+ __pEditField->AddTextEventListener(*this);
+ }
+ break;
+ }
+ if (__pGroupedTableView)
+ {
+ __pGroupedTableView->SetBackgroundColor(COLOR_LIST_BG);
+ __pGroupedTableView->SetItemProvider(this);
+ __pGroupedTableView->AddGroupedTableViewItemEventListener(*this);
+ __pGroupedTableView->UpdateTableView();
+ if (__pSettingItemsArray)
+ {
+ __pGroupedTableView->CollapseAllGroup();
+ LoadCurrentSettings();
+ }
+ }
+ if (__pEditField)
+ {
+ __pEditField->SetFocus();
+ }
+ }
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return r;
+}
+
+result
+SpamSettingsForm::OnTerminating(void)
+{
+ AppLogDebug("ENTER");
+
+ result r = E_SUCCESS;
+
+ // TODO: Add your termination code here
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return r;
+}
+
+void
+SpamSettingsForm::OnIntializeFooter(Footer& footer)
+{
+ AppLogDebug("ENTER");
+
+ // Set event listener
+ footer.AddActionEventListener(*this);
+
+ switch (__spamFormType)
+ {
+ case SPAM_SETTING_FORM_MAIN:
+ case SPAM_SETTING_FORM_ADD_BLOCK_WORD:
+ case SPAM_SETTING_FORM_ADD_REJECT_NUMBER:
+ break;
+
+ case SPAM_SETTING_FORM_AUTO_REJECT:
+ case SPAM_SETTING_FORM_BLOCK_WORD:
+ {
+ // Set Footer
+ footer.SetStyle(FOOTER_STYLE_BUTTON_ICON_TEXT);
+ FooterItem leftItem;
+ leftItem.Construct(IDA_ADD);
+ String strText;
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_COM_SK_ADD", strText);
+ leftItem.SetText(strText);
+// Bitmap* pAddIcon = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_Add);
+// if (pAddIcon)
+// {
+// leftItem.SetIcon(FOOTER_ITEM_STATUS_NORMAL, pAddIcon);
+// }
+ FooterItem centerItem;
+ centerItem.Construct(IDA_EDIT);
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_COM_SK_DELETE", strText);
+ centerItem.SetText(strText);
+// Bitmap* pDeleteIcon = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_DELETE);
+// if (pDeleteIcon)
+// {
+// centerItem.SetIcon(FOOTER_ITEM_STATUS_NORMAL, pDeleteIcon);
+// }
+ ButtonItem backItem;
+ backItem.Construct(BUTTON_ITEM_STYLE_ICON, IDA_BACK);
+ Bitmap* pBackIcon = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_BACK);
+ backItem.SetIcon(BUTTON_ITEM_STATUS_NORMAL, pBackIcon);
+ Bitmap* pBackIconPress = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_BACK_PRESSED);
+ backItem.SetIcon(BUTTON_ITEM_STATUS_PRESSED, pBackIconPress);
+
+ footer.AddItem(leftItem);
+ footer.AddItem(centerItem);
+ footer.SetButton(BUTTON_POSITION_RIGHT, backItem);
+
+ }
+ break;
+
+ case SPAM_SETTING_FORM_DELETE_REJECT_NUMBER:
+ case SPAM_SETTING_FORM_DELETE_BLOCK_WORD:
+ {
+ String strText;
+ footer.SetStyle(FOOTER_STYLE_BUTTON_ICON_TEXT);
+ // Left footer item
+ FooterItem deleteItem;
+ deleteItem.Construct(IDA_DELETE_SPAM_FILTER);
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_COM_SK_DELETE", strText);
+ deleteItem.SetText(strText);
+ footer.AddItem(deleteItem);
+
+ // Right footer item
+ FooterItem cancelItem;
+ cancelItem.Construct(IDA_CANCEL_SPAM_FILTER);
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_COM_SK_CANCEL", strText);
+ cancelItem.SetText(strText);
+ footer.AddItem(cancelItem);
+ }
+ break;
+
+ }
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+}
+
+
+void
+SpamSettingsForm::OnIntializeHeader(Header& header)
+{
+ AppLogDebug("ENTER");
+
+ // Set event listener
+ header.AddActionEventListener(*this);
+
+ // Set Header text
+ String titleText;
+ switch (__spamFormType)
+ {
+ case SPAM_SETTING_FORM_MAIN:
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_BODY_SPAM_MESSAGES", titleText);
+ break;
+
+ case SPAM_SETTING_FORM_AUTO_REJECT:
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_BODY_BLOCKED_NUMBERS", titleText);
+ break;
+
+ case SPAM_SETTING_FORM_BLOCK_WORD:
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_BODY_BLOCKED_WORDS", titleText);
+ break;
+
+ case SPAM_SETTING_FORM_ADD_REJECT_NUMBER:
+ {
+ header.SetStyle(HEADER_STYLE_TITLE);
+ ButtonItem leftButton;
+ leftButton.Construct(BUTTON_ITEM_STYLE_TEXT, IDA_SAVE_REJECT_NUMBER);
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_COM_SK_SAVE", titleText);
+ leftButton.SetText(titleText);
+ header.SetButton(BUTTON_POSITION_LEFT, leftButton);
+ header.SetButtonEnabled(BUTTON_POSITION_LEFT, false);
+
+ ButtonItem rightButton;
+ rightButton.Construct(BUTTON_ITEM_STYLE_TEXT, IDA_CANCEL_REJECT_NUMBER);
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_COM_SK_CANCEL", titleText);
+ rightButton.SetText(titleText);
+ header.SetButton(BUTTON_POSITION_RIGHT, rightButton);
+
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_HEADER_ADD_NUMBER", titleText);
+ break;
+ }
+
+ case SPAM_SETTING_FORM_ADD_BLOCK_WORD:
+ {
+ header.SetStyle(HEADER_STYLE_TITLE);
+ ButtonItem leftButton;
+ leftButton.Construct(BUTTON_ITEM_STYLE_TEXT, IDA_SAVE);
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_COM_SK_SAVE", titleText);
+ leftButton.SetText(titleText);
+ header.SetButton(BUTTON_POSITION_LEFT, leftButton);
+ header.SetButtonEnabled(BUTTON_POSITION_LEFT, false);
+
+ ButtonItem rightButton;
+ rightButton.Construct(BUTTON_ITEM_STYLE_TEXT, IDA_CANCEL);
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_COM_SK_CANCEL", titleText);
+ rightButton.SetText(titleText);
+ header.SetButton(BUTTON_POSITION_RIGHT, rightButton);
+
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_OPT_CREATEMSG_ADD_WORD", titleText);
+ break;
+ }
+
+ case SPAM_SETTING_FORM_DELETE_REJECT_NUMBER:
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_HEADER_DELETE_NUMBER", titleText);
+ break;
+
+ case SPAM_SETTING_FORM_DELETE_BLOCK_WORD:
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_HEADER_DELETE_WORDS", titleText);
+ break;
+ }
+ header.SetTitleText(titleText);
+ header.Draw();
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+}
+
+void
+SpamSettingsForm::OnSceneActivatedN(const SceneId& previousSceneId,
+ const SceneId& currentSceneId, IList* pArgs)
+{
+ AppLogDebug("ENTER");
+ if (__previousSceneId.IsEmpty())
+ {
+ __previousSceneId = previousSceneId;
+ }
+ SpamFilterList* pFilterList = SettingPresentationModel::GetInstance()->GetSpamFilterList();
+ if (pArgs)
+ {
+ if (pArgs->GetCount() > 0 && pFilterList)
+ {
+ String strText;
+ Integer* pInteger = static_cast<Integer*>(pArgs->GetAt(0));
+ __editSpamFilterIndex = pInteger->ToInt();
+ // Check setting type.
+ switch (__spamFormType)
+ {
+ case SPAM_SETTING_FORM_MAIN:
+ break;
+
+ case SPAM_SETTING_FORM_AUTO_REJECT:
+ case SPAM_SETTING_FORM_BLOCK_WORD:
+ case SPAM_SETTING_FORM_DELETE_BLOCK_WORD:
+ case SPAM_SETTING_FORM_DELETE_REJECT_NUMBER:
+ break;
+
+ case SPAM_SETTING_FORM_ADD_BLOCK_WORD:
+ {
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_BODY_EDIT_WORD", strText);
+ GetHeader()->SetTitleText(strText);
+ strText = pFilterList->GetFilterText(__editSpamFilterIndex, SPAM_FILTER_TYPE_BLOCK_WORD);
+ }
+ break;
+
+ case SPAM_SETTING_FORM_ADD_REJECT_NUMBER:
+ {
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_HEADER_EDIT_NUMBER", strText);
+ GetHeader()->SetTitleText(strText);
+ __selectedMatchCriteriaIndex = pFilterList->GetFilterType(__editSpamFilterIndex, SPAM_FILTER_TYPE_BLOCK_NUMBER) - 1;
+ strText = pFilterList->GetFilterText(__editSpamFilterIndex, SPAM_FILTER_TYPE_BLOCK_NUMBER);
+ }
+ break;
+ }
+ __pEditField->SetText(strText);
+ }
+ pArgs->RemoveAll(true);
+ delete pArgs;
+ }
+ // Set footer
+ if (GetFooter() && pFilterList)
+ {
+ switch (__spamFormType)
+ {
+ case SPAM_SETTING_FORM_MAIN:
+ break;
+
+ case SPAM_SETTING_FORM_AUTO_REJECT:
+ {
+ GetFooter()->SetItemEnabled(1, pFilterList->GetBlockNumberCount() > 0);
+ ListView* pEmptyBgCntl = (ListView*) GetControl(L"IDC_LISTVIEW_EMPTY_BG");
+ if (pEmptyBgCntl)
+ {
+ String strText;
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_BODY_NO_BLOCKED_NUMBERS", strText);
+ pEmptyBgCntl->SetTextOfEmptyList(strText);
+ pEmptyBgCntl->SetShowState(pFilterList->GetBlockNumberCount() <= 0);
+ }
+ }
+ break;
+
+ case SPAM_SETTING_FORM_BLOCK_WORD:
+ {
+ GetFooter()->SetItemEnabled(1, pFilterList->GetBlockWordCount() > 0);
+ ListView* pEmptyBgCntl = (ListView*) GetControl(L"IDC_LISTVIEW_EMPTY_BG");
+ if (pEmptyBgCntl)
+ {
+ String strText;
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_BODY_NO_BLOCKED_WORDS", strText);
+ pEmptyBgCntl->SetTextOfEmptyList(strText);
+ pEmptyBgCntl->SetShowState(pFilterList->GetBlockWordCount() <= 0);
+ }
+ }
+ break;
+
+ case SPAM_SETTING_FORM_DELETE_REJECT_NUMBER:
+ case SPAM_SETTING_FORM_DELETE_BLOCK_WORD:
+ GetFooter()->SetItemEnabled(0, (__pSelectedIds && __pSelectedIds->GetCount() > 0));
+ break;
+
+ case SPAM_SETTING_FORM_ADD_BLOCK_WORD:
+ break;
+
+ case SPAM_SETTING_FORM_ADD_REJECT_NUMBER:
+ break;
+ }
+ }
+ // Refresh list.
+ if (__pGroupedTableView)
+ {
+ __pGroupedTableView->UpdateTableView();
+ }
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+SpamSettingsForm::OnSceneDeactivated(const SceneId& currentSceneId,
+ const SceneId& nextSceneId)
+{
+ AppLogDebug("ENTER");
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ // Add your scene deactivate code here
+ return;
+}
+
+
+void
+SpamSettingsForm::OnFormBackRequested(Form& source)
+{
+ AppLogDebug("ENTER");
+
+ // Back to thread/ message list form
+ HandleBackNavigation();
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+}
+
+void
+SpamSettingsForm::OnActionPerformed(const Control& source, int actionId)
+{
+ AppLogDebug("ENTER");
+
+ switch (actionId)
+ {
+ case IDA_SELECT_ALL_ON:
+ CheckAll(true);
+ break;
+
+ case IDA_SELECT_ALL_OFF:
+ CheckAll(false);
+ break;
+
+ case IDA_ADD:
+ HandleAddNavigation();
+ break;
+
+ case IDA_BACK:
+ HandleBackNavigation();
+ break;
+
+ case IDA_EDIT:
+ HandleEditNavigation();
+ break;
+
+ case IDA_SAVE:
+ case IDA_SAVE_REJECT_NUMBER:
+ {
+ String number = __pEditField->GetText();
+ char* pPhoneNumber = CommonUtil::ConvertStringToPointerCharArrayN(number);
+ int size = strlen(pPhoneNumber);
+ if (size > 40)
+ {
+ int modalResult;
+ MessageBox messageBox;
+ String msgText;
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_DB_POP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED_DELETE_SOME_CHARACTERS", msgText);
+ messageBox.Construct(IDS_BLANK, msgText, MSGBOX_STYLE_OK, 2000);
+ messageBox.ShowAndWait(modalResult);
+ __pEditField->SetFocus();
+ }
+ else if (!number.IsEmpty())
+ {
+ ShowConfirmationPopup();
+ }
+ else
+ {
+ SceneManager* pSceneManager = SceneManager::GetInstance();
+ pSceneManager->GoBackward(BackwardSceneTransition(__previousSceneId, SCENE_TRANSITION_ANIMATION_TYPE_NONE));
+ }
+ delete[] pPhoneNumber;
+ }
+ break;
+
+ case IDA_SPAM_WORD_CONFIRMATION_YES:
+ {
+ if (__pEditField)
+ {
+ __pEditField->HideKeypad();
+ SaveSpamFilter(SPAM_FILTER_TYPE_BLOCK_WORD);
+ }
+ }
+ break;
+
+ case IDA_SPAM_NUMBER_CONFIRMATION_YES:
+ {
+ if (__pEditField)
+ {
+ __pEditField->HideKeypad();
+ SaveSpamFilter(SPAM_FILTER_TYPE_BLOCK_NUMBER);
+ }
+ }
+ break;
+
+ case IDA_SPAM_WORD_CONFIRMATION_NO:
+ case IDA_SPAM_NUMBER_CONFIRMATION_NO:
+ {
+ if (__pConfirmationPopup)
+ {
+ delete __pConfirmationPopup;
+ __pConfirmationPopup = null;
+ }
+ __pEditField->SetFocus();
+ }
+ break;
+
+ case IDA_CANCEL:
+ case IDA_CANCEL_REJECT_NUMBER:
+ case IDA_CANCEL_SPAM_FILTER:
+ {
+ HandleBackNavigation();
+ }
+ break;
+
+ case IDA_DELETE_SPAM_FILTER:
+ {
+ DeleteSelectedSpamFilters();
+ }
+ break;
+
+ case IDA_SELECT_SPAM_CONTACT_NUMBER:
+ {
+ SelectContact();
+ }
+ break;
+ }
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+}
+
+void
+SpamSettingsForm::HandleSpamSettingItemSelection(int groupIndex, int itemIndex, TableViewItemStatus status)
+{
+ AppLogDebug("ENTER");
+
+ // There is only on group in spam setting else need to consider group index as well.
+ SettingItem& settingItem = __pSettingItemsArray->GetItemAt(groupIndex, itemIndex);
+ SceneManager* pSceneManager = SceneManager::GetInstance();
+
+ switch (settingItem.GetActionId())
+ {
+ case IDA_SETTINGS_SPAM_REJECT_NUMBERS:
+ {
+ pSceneManager->GoForward(ForwardSceneTransition(IDSCN_SETTINGS_SPAM_AUTO_REJECT, SCENE_TRANSITION_ANIMATION_TYPE_NONE), null);
+ }
+ break;
+
+ case IDA_SETTINGS_SPAM_BLOCK_WORDS:
+ {
+ pSceneManager->GoForward(ForwardSceneTransition(IDSCN_SETTINGS_SPAM_BLOCK_WORD, SCENE_TRANSITION_ANIMATION_TYPE_NONE), null);
+ }
+ break;
+
+ default:
+ break;
+ }
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+}
+
+void
+SpamSettingsForm::HandleSpamMatchCriteriaItemSelection(int groupIndex, int itemIndex)
+{
+ AppLogDebug("ENTER");
+
+ SetActionBarsVisible(FORM_ACTION_BAR_FOOTER, true);
+ __pGroupedTableView->SetFocus();
+
+ // Set Header & Footer
+ Header* header = GetHeader();
+ if (header)
+ {
+ header->RemoveAllButtons();
+ header->Draw();
+ }
+
+ Footer* pFooter = GetFooter();
+ if (pFooter)
+ {
+ String strText;
+ pFooter->RemoveAllItems();
+ pFooter->RemoveAllButtons();
+ pFooter->SetStyle(FOOTER_STYLE_BUTTON_ICON_TEXT);
+
+ FooterItem saveBtn;
+ saveBtn.Construct(IDA_SAVE_REJECT_NUMBER);
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_COM_SK_SAVE", strText);
+ saveBtn.SetText(strText);
+// Bitmap* pSaveIcon = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_SAVE);
+// if (pSaveIcon)
+// {
+// saveBtn.SetIcon(FOOTER_ITEM_STATUS_NORMAL, pSaveIcon);
+// }
+ pFooter->AddItem(saveBtn);
+ pFooter->SetItemEnabled(0, __pEditField->GetTextLength() > 0);
+
+ FooterItem cancelBtn;
+ cancelBtn.Construct(IDA_CANCEL_REJECT_NUMBER);
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_COM_SK_CANCEL", strText);
+ cancelBtn.SetText(strText);
+// Bitmap* pCanelIcon = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_CANCEL);
+// if (pCanelIcon)
+// {
+// cancelBtn.SetIcon(FOOTER_ITEM_STATUS_NORMAL, pCanelIcon);
+// }
+ pFooter->AddItem(cancelBtn);
+ }
+
+ SettingItem& settingItem = __pSettingItemsArray->GetItemAt(groupIndex, itemIndex);
+ switch (settingItem.GetActionId())
+ {
+ case IDA_SETTINGS_MATCH_CRITERIA:
+ {
+ if (__pGroupedTableView->IsGroupExpanded(groupIndex + 1))
+ {
+ __pGroupedTableView->CollapseGroup(groupIndex + 1);
+ __pSettingItemsArray->SetgroupExpandStatus(groupIndex + 1, false);
+
+ }
+ else
+ {
+ __pGroupedTableView->ExpandGroup(groupIndex + 1);
+ __pSettingItemsArray->SetgroupExpandStatus(groupIndex + 1, true);
+ // __pGroupList->ScrollToItem(groupIndex + 1, __pSettingItemsArray->GetItemCount(groupIndex + 1) - 1);
+ }
+ __pGroupedTableView->RefreshItem(groupIndex, itemIndex, TABLE_VIEW_REFRESH_TYPE_ITEM_MODIFY);
+ }
+ break;
+
+ case IDA_SETTINGS_MATCH_CRITERIA_EXACTLY:
+ {
+ CheckedRadioGroupItem(groupIndex, itemIndex);
+ }
+ break;
+
+ case IDA_SETTINGS_MATCH_CRITERIA_START_WITH:
+ {
+ CheckedRadioGroupItem(groupIndex, itemIndex);
+ }
+ break;
+
+ case IDA_SETTINGS_MATCH_CRITERIA_INCLUDE:
+ {
+ CheckedRadioGroupItem(groupIndex, itemIndex);
+ }
+ break;
+ }
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+}
+
+void
+SpamSettingsForm::HandleSpamAutoRejectItemSelection(int groupIndex, int itemIndex, TableViewItemStatus status)
+{
+ AppLogDebug("ENTER");
+
+ switch (status)
+ {
+ case TABLE_VIEW_ITEM_STATUS_CHECKED:
+ {
+ if (__spamFormType == SPAM_SETTING_FORM_DELETE_REJECT_NUMBER)
+ {
+ int totalCount = __pGroupedTableView->GetItemCountAt(groupIndex);
+ __pSelectedIds->Add(itemIndex);
+ if (__pSelectedIds->GetCount() == totalCount)
+ {
+ CheckButton* pCheckAll = static_cast<CheckButton*>(GetControl(L"IDC_CHECKBUTTON_SELECTALL"));
+ pCheckAll->SetSelected(true);
+ }
+ ShowSelectionInfo();
+ }
+ else
+ {
+ //TODO: NO C API to block unknown number
+ }
+ }
+ break;
+
+ case TABLE_VIEW_ITEM_STATUS_UNCHECKED:
+ {
+ if (__spamFormType == SPAM_SETTING_FORM_DELETE_REJECT_NUMBER)
+ {
+ int totalCount = __pGroupedTableView->GetItemCountAt(groupIndex);
+ __pSelectedIds->Remove(itemIndex);
+ if (__pSelectedIds->GetCount() <= totalCount)
+ {
+ CheckButton* pCheckAll = static_cast<CheckButton*>(GetControl(L"IDC_CHECKBUTTON_SELECTALL"));
+ pCheckAll->SetSelected(false);
+ }
+ ShowSelectionInfo();
+ }
+ else
+ {
+ //TODO: NO C API to block unknown number
+ }
+ }
+ break;
+
+ case TABLE_VIEW_ITEM_STATUS_SELECTED:
+ {
+ ArrayList* pArgList = new (std::nothrow) ArrayList();
+ if (pArgList == null)
+ {
+ return;
+ }
+ pArgList->Add((new Integer(itemIndex)));
+
+ // Edit number, passing edit number index in argument list
+ SceneManager* pSceneManager = SceneManager::GetInstance();
+ pSceneManager->GoForward(ForwardSceneTransition(IDSCN_SETTINGS_SPAM_ADD_REJECT_NUMBER, SCENE_TRANSITION_ANIMATION_TYPE_NONE), pArgList);
+ }
+ break;
+
+ case TABLE_VIEW_ITEM_STATUS_HIGHLIGHTED:
+ case TABLE_VIEW_ITEM_STATUS_MORE:
+ break;
+ }
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+
+}
+
+void
+SpamSettingsForm::HandleSpamBlockWordItemSelection(int groupIndex, int itemIndex, TableViewItemStatus status)
+{
+ AppLogDebug("ENTER");
+
+ switch (status)
+ {
+ case TABLE_VIEW_ITEM_STATUS_CHECKED:
+ {
+ int totalCount = __pGroupedTableView->GetItemCountAt(groupIndex);
+ __pSelectedIds->Add(itemIndex);
+ if (__pSelectedIds->GetCount() == totalCount)
+ {
+ CheckButton* pCheckAll = static_cast<CheckButton*>(GetControl(L"IDC_CHECKBUTTON_SELECTALL"));
+ pCheckAll->SetSelected(true);
+ }
+ Invalidate(true);
+ ShowSelectionInfo();
+ }
+ break;
+
+ case TABLE_VIEW_ITEM_STATUS_UNCHECKED:
+ {
+ int totalCount = __pGroupedTableView->GetItemCountAt(groupIndex);
+ __pSelectedIds->Remove(itemIndex);
+ if (__pSelectedIds->GetCount() <= totalCount)
+ {
+ CheckButton* pCheckAll = static_cast<CheckButton*>(GetControl(L"IDC_CHECKBUTTON_SELECTALL"));
+ pCheckAll->SetSelected(false);
+ }
+ Invalidate(true);
+ ShowSelectionInfo();
+ }
+ break;
+
+ case TABLE_VIEW_ITEM_STATUS_SELECTED:
+ {
+ ArrayList* pArgList = new (std::nothrow) ArrayList();
+ if (pArgList == null)
+ {
+ return;
+ }
+ pArgList->Add((new Integer(itemIndex)));
+ // Edit number, passing edit number index in argument list
+ SceneManager* pSceneManager = SceneManager::GetInstance();
+ pSceneManager->GoForward(ForwardSceneTransition(IDSCN_SETTINGS_SPAM_ADD_BLOCK_WORD, SCENE_TRANSITION_ANIMATION_TYPE_NONE), pArgList);
+ }
+ break;
+
+ case TABLE_VIEW_ITEM_STATUS_HIGHLIGHTED:
+ case TABLE_VIEW_ITEM_STATUS_MORE:
+ break;
+ }
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+SpamSettingsForm::HandleBackNavigation()
+{
+ AppLogDebug("ENTER");
+
+ // destroy popup if exist
+ if (__pConfirmationPopup)
+ {
+ delete __pConfirmationPopup;
+ __pConfirmationPopup = null;
+ }
+ SceneManager* pSceneManager = SceneManager::GetInstance();
+ pSceneManager->GoBackward(BackwardSceneTransition(__previousSceneId, SCENE_TRANSITION_ANIMATION_TYPE_NONE));
+ __previousSceneId.Clear();
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+SpamSettingsForm::HandleAddNavigation(void)
+{
+ AppLogDebug("ENTER");
+
+ SceneManager* pSceneManager = SceneManager::GetInstance();
+ switch (__spamFormType)
+ {
+ case SPAM_SETTING_FORM_AUTO_REJECT:
+ {
+ pSceneManager->GoForward(ForwardSceneTransition(IDSCN_SETTINGS_SPAM_ADD_REJECT_NUMBER, SCENE_TRANSITION_ANIMATION_TYPE_NONE));
+ }
+ break;
+
+ case SPAM_SETTING_FORM_BLOCK_WORD:
+ {
+ pSceneManager->GoForward(ForwardSceneTransition(IDSCN_SETTINGS_SPAM_ADD_BLOCK_WORD, SCENE_TRANSITION_ANIMATION_TYPE_NONE));
+ }
+ break;
+
+ case SPAM_SETTING_FORM_MAIN:
+ case SPAM_SETTING_FORM_ADD_REJECT_NUMBER:
+ case SPAM_SETTING_FORM_DELETE_REJECT_NUMBER:
+ case SPAM_SETTING_FORM_ADD_BLOCK_WORD:
+ case SPAM_SETTING_FORM_DELETE_BLOCK_WORD:
+ break;
+ }
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+SpamSettingsForm::HandleEditNavigation(void)
+{
+ AppLogDebug("ENTER");
+
+ SceneManager* pSceneManager = SceneManager::GetInstance();
+ switch (__spamFormType)
+ {
+ case SPAM_SETTING_FORM_AUTO_REJECT:
+ {
+ pSceneManager->GoForward(ForwardSceneTransition(IDSCN_SETTINGS_SPAM_DELETE_REJECT_NUMBER, SCENE_TRANSITION_ANIMATION_TYPE_NONE));
+ }
+ break;
+
+ case SPAM_SETTING_FORM_BLOCK_WORD:
+ {
+ pSceneManager->GoForward(ForwardSceneTransition(IDSCN_SETTINGS_SPAM_DELETE_BLOCK_WORD, SCENE_TRANSITION_ANIMATION_TYPE_NONE));
+ }
+ break;
+
+ case SPAM_SETTING_FORM_MAIN:
+ case SPAM_SETTING_FORM_ADD_REJECT_NUMBER:
+ case SPAM_SETTING_FORM_DELETE_REJECT_NUMBER:
+ case SPAM_SETTING_FORM_ADD_BLOCK_WORD:
+ case SPAM_SETTING_FORM_DELETE_BLOCK_WORD:
+ break;
+ }
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+}
+
+//IGroupedTableViewItemProvider
+int
+SpamSettingsForm::GetGroupCount(void)
+{
+ AppLogDebug("ENTER");
+
+ int groupCount(0);
+ switch (__spamFormType)
+ {
+ case SPAM_SETTING_FORM_MAIN:
+ groupCount = __pSettingItemsArray->GetGroupCount();
+ break;
+
+ // Text message setting has no group
+ case SPAM_SETTING_FORM_AUTO_REJECT:
+ groupCount = SPAM_AUTO_REJECT_GROUP_COUNT;
+ break;
+
+ case SPAM_SETTING_FORM_DELETE_REJECT_NUMBER:
+ groupCount = 1;
+ break;
+
+ case SPAM_SETTING_FORM_ADD_REJECT_NUMBER:
+ groupCount = __pSettingItemsArray->GetGroupCount();
+ break;
+
+ // Font setting has no group.
+ case SPAM_SETTING_FORM_DELETE_BLOCK_WORD:
+ case SPAM_SETTING_FORM_BLOCK_WORD:
+ {
+ SpamFilterList* pFilterList = SettingPresentationModel::GetInstance()->GetSpamFilterList();
+ if (pFilterList->GetBlockWordCount() > 0)
+ {
+ groupCount = 1;
+ }
+ }
+ break;
+
+ // Need to fetch data from message service
+ //return ID_BLOCK_WORD_GROUP_COUNT;
+ case SPAM_SETTING_FORM_ADD_BLOCK_WORD:
+
+ default:
+ break;
+ }
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return groupCount;
+
+}
+
+int
+SpamSettingsForm::GetItemCount(int groupIndex)
+{
+ AppLogDebug("ENTER");
+
+ int itemCount(0);
+ switch (__spamFormType)
+ {
+ case SPAM_SETTING_FORM_MAIN:
+ itemCount = __pSettingItemsArray->GetItemCount(groupIndex);
+ break;
+
+ // Text message setting has no group
+ case SPAM_SETTING_FORM_AUTO_REJECT:
+ itemCount = GetAutoRejectGroupItemCount(groupIndex);
+ break;
+
+ case SPAM_SETTING_FORM_ADD_REJECT_NUMBER:
+ itemCount = __pSettingItemsArray->GetItemCount(groupIndex);
+ break;
+
+ case SPAM_SETTING_FORM_DELETE_REJECT_NUMBER:
+ {
+ SpamFilterList* pFilterList = SettingPresentationModel::GetInstance()->GetSpamFilterList();
+ if (pFilterList)
+ {
+ itemCount = pFilterList->GetBlockNumberCount();
+ }
+ }
+ break;
+
+ // Font setting has no group.
+ case SPAM_SETTING_FORM_DELETE_BLOCK_WORD:
+ case SPAM_SETTING_FORM_BLOCK_WORD:
+ {
+ SpamFilterList* pFilterList = SettingPresentationModel::GetInstance()->GetSpamFilterList();
+ if (pFilterList)
+ {
+ itemCount = pFilterList->GetBlockWordCount();
+ }
+ }
+ break;
+
+ case SPAM_SETTING_FORM_ADD_BLOCK_WORD:
+ default:
+ break;
+ }
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return itemCount;
+}
+
+TableViewGroupItem*
+SpamSettingsForm::CreateGroupItem(int groupIndex, int itemWidth)
+{
+ AppLogDebug("ENTER");
+
+ TableViewGroupItem* pViewGroupItem = null;
+ switch (__spamFormType)
+ {
+ case SPAM_SETTING_FORM_MAIN:
+ case SPAM_SETTING_FORM_AUTO_REJECT:
+ case SPAM_SETTING_FORM_BLOCK_WORD:
+ case SPAM_SETTING_FORM_ADD_REJECT_NUMBER:
+ case SPAM_SETTING_FORM_DELETE_BLOCK_WORD:
+ case SPAM_SETTING_FORM_DELETE_REJECT_NUMBER:
+ {
+ pViewGroupItem = new (std::nothrow) TableViewGroupItem();
+ pViewGroupItem->Construct(Dimension(itemWidth, 1));
+ pViewGroupItem->SetShowState(false);
+ }
+ break;
+
+ default:
+ break;
+ }
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return pViewGroupItem;
+
+}
+
+TableViewItem*
+SpamSettingsForm::CreateItem(int groupIndex, int itemIndex, int itemWidth)
+{
+ AppLogDebug("ENTER");
+
+ switch (__spamFormType)
+ {
+ case SPAM_SETTING_FORM_MAIN:
+ // Only one group for this settings
+ return CreateSpamMessageSettingItemN(groupIndex, itemIndex, itemWidth);
+
+ case SPAM_SETTING_FORM_AUTO_REJECT:
+ return CreateAutoRejectSettingGroupItemsN(groupIndex, itemIndex, itemWidth);
+
+ case SPAM_SETTING_FORM_DELETE_REJECT_NUMBER:
+ return CreateAutoRejectNumberSettingItemN(itemIndex, itemWidth);
+
+ case SPAM_SETTING_FORM_BLOCK_WORD:
+ case SPAM_SETTING_FORM_DELETE_BLOCK_WORD:
+ return CreateBlockWordSettingItemN(groupIndex, itemIndex, itemWidth);
+
+ case SPAM_SETTING_FORM_ADD_REJECT_NUMBER:
+ return CreateMatchCriteriaSettingItemsN(groupIndex, itemIndex, itemWidth);
+
+ default:
+ break;
+ }
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return null;
+
+}
+
+bool
+SpamSettingsForm::DeleteItem(int groupIndex, int itemIndex, TableViewItem* pItem)
+{
+ AppLogDebug("ENTER");
+
+ if (pItem)
+ {
+ delete pItem;
+ }
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return true;
+
+}
+
+bool
+SpamSettingsForm::DeleteGroupItem(int groupIndex, TableViewGroupItem* pItem)
+{
+ AppLogDebug("ENTER");
+
+ if (pItem)
+ {
+ delete pItem;
+ }
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return true;
+}
+
+void
+SpamSettingsForm::UpdateItem(int groupIndex, int itemIndex, TableViewItem* pItem)
+{
+ AppLogDebug("ENTER");
+
+ switch (__spamFormType)
+ {
+ case SPAM_SETTING_FORM_MAIN:
+ case SPAM_SETTING_FORM_AUTO_REJECT:
+ case SPAM_SETTING_FORM_DELETE_REJECT_NUMBER:
+ case SPAM_SETTING_FORM_BLOCK_WORD:
+ case SPAM_SETTING_FORM_DELETE_BLOCK_WORD:
+ break;
+
+ case SPAM_SETTING_FORM_ADD_REJECT_NUMBER:
+ UpdateMatchCriteriaSettingItem(groupIndex, itemIndex, pItem);
+ break;
+
+ default:
+ break;
+ }
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+}
+
+void
+SpamSettingsForm::UpdateGroupItem(int groupIndex, TableViewGroupItem* pItem)
+{
+ AppLogDebug("ENTER");
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+}
+
+int
+SpamSettingsForm::GetDefaultItemHeight(void)
+{
+ AppLogDebug("ENTER");
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return H_LIST_ITEM_112PX;
+}
+
+int
+SpamSettingsForm::GetDefaultGroupItemHeight(void)
+{
+ AppLogDebug("ENTER");
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return H_GROUP_HEADER;
+}
+
+//Tableview event
+void
+SpamSettingsForm::OnGroupedTableViewGroupItemStateChanged(GroupedTableView& tableView, int groupIndex,
+ TableViewGroupItem* pItem, TableViewItemStatus status)
+{
+ AppLogDebug("ENTER");
+ // Empty implementation
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+}
+
+void
+SpamSettingsForm::OnGroupedTableViewItemStateChanged(GroupedTableView& tableView, int groupIndex, int itemIndex,
+ TableViewItem* pItem, TableViewItemStatus status)
+{
+ AppLogDebug("ENTER");
+
+ switch (__spamFormType)
+ {
+ case SPAM_SETTING_FORM_MAIN:
+ HandleSpamSettingItemSelection(groupIndex, itemIndex, status);
+ break;
+
+ case SPAM_SETTING_FORM_AUTO_REJECT:
+ case SPAM_SETTING_FORM_DELETE_REJECT_NUMBER:
+ HandleSpamAutoRejectItemSelection(groupIndex, itemIndex, status);
+ break;
+
+ case SPAM_SETTING_FORM_BLOCK_WORD:
+ case SPAM_SETTING_FORM_DELETE_BLOCK_WORD:
+ HandleSpamBlockWordItemSelection(groupIndex, itemIndex, status);
+ break;
+
+ case SPAM_SETTING_FORM_ADD_REJECT_NUMBER:
+ HandleSpamMatchCriteriaItemSelection(groupIndex, itemIndex);
+ break;
+
+ case SPAM_SETTING_FORM_ADD_BLOCK_WORD:
+ break;
+ }
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+
+}
+
+void
+SpamSettingsForm::OnGroupedTableViewContextItemActivationStateChanged(GroupedTableView& tableView,
+ int groupIndex, int itemIndex, TableViewContextItem* pContextItem, bool activated)
+{
+ AppLogDebug("ENTER");
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ // Empty implementation
+}
+
+
+int
+SpamSettingsForm::GetAutoRejectGroupItemCount(int groupIndex) const
+{
+ AppLogDebug("ENTER");
+
+ int groupItemCount(0);
+ switch (groupIndex)
+ {
+ case SPAM_AUTO_REJECT_GROUP_NUMBER:
+ {
+ SpamFilterList* pSpamFilterList = SettingPresentationModel::GetInstance()->GetSpamFilterList();
+ if (pSpamFilterList)
+ {
+ groupItemCount = pSpamFilterList->GetBlockNumberCount();
+ }
+ }
+ break;
+ }
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return groupItemCount;
+}
+
+TableViewItem*
+SpamSettingsForm::CreateSpamMessageSettingItemN(int groupIndex, int itemIndex, int itemWidth)
+{
+ AppLogDebug("ENTER");
+
+ String itemText;
+ TableViewAnnexStyle style = TABLE_VIEW_ANNEX_STYLE_NORMAL;
+ CustomTableViewItem* pViewItem = new (std::nothrow) CustomTableViewItem();
+ SettingItem& settingItem = __pSettingItemsArray->GetItemAt(groupIndex, itemIndex);
+ switch (settingItem.GetStyle())
+ {
+ case SETTING_STYLE_NORMAL:
+ case SETTING_STYLE_EXPANDABLE:
+ style = TABLE_VIEW_ANNEX_STYLE_NORMAL;
+ break;
+
+ case SETTING_STYLE_RADIO:
+ case SETTING_STYLE_RADIO_DETAILS:
+ style = TABLE_VIEW_ANNEX_STYLE_RADIO;
+ break;
+
+ case SETTING_STYLE_ONOFF_SLIDING:
+ style = TABLE_VIEW_ANNEX_STYLE_ONOFF_SLIDING;
+ break;
+ }
+ pViewItem->Construct(Dimension(itemWidth, H_LIST_ITEM_112PX), style);
+ pViewItem->SetBackgroundColor(COLOR_LIST_DIALOGUE_GROUP_BG, TABLE_VIEW_ITEM_DRAWING_STATUS_NORMAL);
+ // Child control max width.
+ itemWidth -= (TableViewItem::GetAnnexWidth(style) + W_LIST_ITEM_GROUP_INDICATOR);
+ Label* pSettingName = new (std::nothrow) Label();
+ pSettingName->Construct(Rectangle(0, 0, itemWidth, H_LIST_ITEM_112PX), settingItem.GetName());
+ pSettingName->SetTextHorizontalAlignment(ALIGNMENT_LEFT);
+ pSettingName->SetTextConfig(LIST_MAIN_TEXT_FONT_SIZE, LABEL_TEXT_STYLE_NORMAL);
+ pViewItem->AddControl(*pSettingName);
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return pViewItem;
+}
+
+TableViewItem*
+SpamSettingsForm::CreateAutoRejectSettingGroupItemsN(int groupIndex, int itemIndex, int itemWidth)
+{
+ AppLogDebug("ENTER");
+
+ TableViewItem* pViewItem = null;
+ switch (groupIndex)
+ {
+ case SPAM_AUTO_REJECT_GROUP_NUMBER:
+ {
+ return (CreateAutoRejectNumberSettingItemN(itemIndex, itemWidth));
+ }
+ break;
+ }
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return pViewItem;
+}
+
+TableViewItem*
+SpamSettingsForm::CreateMatchCriteriaSettingItemsN(int groupIndex, int itemIndex, int itemWidth)
+{
+ AppLogDebug("ENTER");
+
+ String itemText;
+ TableViewAnnexStyle style = TABLE_VIEW_ANNEX_STYLE_NORMAL;
+ CustomTableViewItem* pViewItem = new (std::nothrow) CustomTableViewItem();
+ SettingItem& settingItem = __pSettingItemsArray->GetItemAt(groupIndex, itemIndex);
+ switch (settingItem.GetStyle())
+ {
+ case SETTING_STYLE_NORMAL:
+ style = TABLE_VIEW_ANNEX_STYLE_NORMAL;
+ break;
+
+ case SETTING_STYLE_RADIO:
+ style = TABLE_VIEW_ANNEX_STYLE_RADIO;
+ break;
+
+ case SETTING_STYLE_RADIO_DETAILS:
+ style = TABLE_VIEW_ANNEX_STYLE_RADIO;
+ break;
+
+ case SETTING_STYLE_ONOFF_SLIDING:
+ style = TABLE_VIEW_ANNEX_STYLE_ONOFF_SLIDING;
+ break;
+
+ case SETTING_STYLE_EXPANDABLE:
+ style = TABLE_VIEW_ANNEX_STYLE_NORMAL;
+ break;
+ }
+ int settingStatusItem = settingItem.GetStatus();
+ pViewItem->Construct(Dimension(itemWidth, H_LIST_ITEM_112PX), style);
+ pViewItem->SetBackgroundColor(COLOR_LIST_DIALOGUE_GROUP_BG, TABLE_VIEW_ITEM_DRAWING_STATUS_NORMAL);
+ // Child control max width.
+ itemWidth -= (TableViewItem::GetAnnexWidth(style) + W_LIST_ITEM_GROUP_INDICATOR);
+ if (settingStatusItem == SETTING_STATUS_ITEM_INVALID)
+ {
+ Label* pSettingName = new (std::nothrow) Label();
+ pSettingName->Construct(Rectangle(0, MARGIN_4PX / 2, itemWidth, H_LIST_ITEM_112PX - MARGIN_4PX), settingItem.GetName());
+ pSettingName->SetName(IDS_LIST_MAIN_TEXT);
+ pSettingName->SetTextHorizontalAlignment(ALIGNMENT_LEFT);
+ pSettingName->SetTextConfig(LIST_MAIN_TEXT_FONT_SIZE, LABEL_TEXT_STYLE_NORMAL);
+ pViewItem->AddControl(*pSettingName);
+ }
+ else
+ {
+ Label* pSettingName = new (std::nothrow) Label();
+ pSettingName->Construct(Rectangle(0, 0, itemWidth, H_LIST_ITEM_112PX / 2), settingItem.GetName());
+ pSettingName->SetName(IDS_LIST_MAIN_TEXT);
+ pSettingName->SetTextHorizontalAlignment(ALIGNMENT_LEFT);
+ pSettingName->SetTextConfig(LIST_MAIN_TEXT_FONT_SIZE, LABEL_TEXT_STYLE_NORMAL);
+ pViewItem->AddControl(*pSettingName);
+
+ Label* pSettingStatus = new (std::nothrow) Label();
+ pSettingStatus->Construct(Rectangle(0, H_LIST_ITEM_112PX / 2, itemWidth, H_LIST_ITEM_112PX / 2), GetMatchCriteriadString(__selectedMatchCriteriaIndex));
+ pSettingStatus->SetName(IDS_LIST_SUB_TEXT);
+ pSettingStatus->SetTextHorizontalAlignment(ALIGNMENT_LEFT);
+ pSettingStatus->SetTextConfig(LIST_SUB_TEXT_FONT_SIZE, LABEL_TEXT_STYLE_NORMAL);
+ pSettingStatus->SetTextColor(COLOR_SETTING_SUB_TEXT);
+ pViewItem->AddControl(*pSettingStatus);
+ }
+
+ if (settingItem.GetStyle() == SETTING_STYLE_EXPANDABLE)
+ {
+ Bitmap* pNormalIcon = null;
+ Bitmap* pPressIcon = null;
+ if (__pSettingItemsArray->IsGroupExpanded(groupIndex + 1))
+ {
+ pNormalIcon = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_LIST_EXPAND_OPENED);
+ pPressIcon = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_LIST_EXPAND_OPENED_PRESS);
+ }
+ else
+ {
+ pNormalIcon = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_LIST_EXPAND_CLOSE);
+ pPressIcon = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_LIST_EXPAND_CLOSE_PRESS);
+ }
+ pViewItem->EnableExpandViewModeStyle(pNormalIcon, pPressIcon);
+ }
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return pViewItem;
+}
+
+TableViewItem*
+SpamSettingsForm::CreateAutoRejectNumberSettingItemN(int itemIndex, int itemWidth)
+{
+ AppLogDebug("ENTER");
+
+ CustomTableViewItem* pViewItem = null;
+ SettingPresentationModel* pSettingPrModel = SettingPresentationModel::GetInstance();
+ if (pSettingPrModel)
+ {
+ String blockNumber = pSettingPrModel->GetSpamFilterList()->GetFilterText(itemIndex, SPAM_FILTER_TYPE_BLOCK_NUMBER);
+ int filterType = pSettingPrModel->GetSpamFilterList()->GetFilterType(itemIndex, SPAM_FILTER_TYPE_BLOCK_NUMBER);
+ pViewItem = new (std::nothrow) CustomTableViewItem();
+ TableViewAnnexStyle style = TABLE_VIEW_ANNEX_STYLE_NORMAL;
+ if (__spamFormType == SPAM_SETTING_FORM_DELETE_REJECT_NUMBER)
+ {
+ style = TABLE_VIEW_ANNEX_STYLE_MARK;
+ }
+ pViewItem->Construct(Dimension(itemWidth, H_LIST_ITEM_112PX), style);
+ pViewItem->SetBackgroundColor(COLOR_LIST_DIALOGUE_GROUP_BG, TABLE_VIEW_ITEM_DRAWING_STATUS_NORMAL);
+ // Child control max width.
+ itemWidth -= (TableViewItem::GetAnnexWidth(style) + W_LIST_ITEM_GROUP_INDICATOR);
+ Label* pBlockNumber = new (std::nothrow) Label();
+ pBlockNumber->Construct(Rectangle(0, 0, itemWidth-20, H_LIST_ITEM_112PX / 2), blockNumber);
+ pBlockNumber->SetTextHorizontalAlignment(ALIGNMENT_LEFT);
+ pBlockNumber->SetTextConfig(LIST_MAIN_TEXT_FONT_SIZE, LABEL_TEXT_STYLE_NORMAL);
+ pViewItem->AddControl(*pBlockNumber);
+
+ Label* pMatchCriteria = new (std::nothrow) Label();
+ pMatchCriteria->Construct(Rectangle(0, H_LIST_ITEM_112PX / 2, itemWidth, H_LIST_ITEM_112PX / 2), GetMatchCriteriadString(filterType - 1));
+ pMatchCriteria->SetTextHorizontalAlignment(ALIGNMENT_LEFT);
+ pMatchCriteria->SetTextConfig(LIST_SUB_TEXT_FONT_SIZE, LABEL_TEXT_STYLE_NORMAL);
+ pMatchCriteria->SetTextColor(COLOR_SETTING_SUB_TEXT);
+ pViewItem->AddControl(*pMatchCriteria);
+ }
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return pViewItem;
+}
+
+TableViewItem*
+SpamSettingsForm::CreateBlockWordSettingItemN(int groupIndex, int itemIndex, int itemWidth)
+{
+ AppLogDebug("ENTER");
+
+ CustomTableViewItem* pViewItem = null;
+ SettingPresentationModel* pSettingPrModel = SettingPresentationModel::GetInstance();
+ if (pSettingPrModel)
+ {
+ String blockWord = pSettingPrModel->GetSpamFilterList()->GetFilterText(itemIndex,
+ SPAM_FILTER_TYPE_BLOCK_WORD);
+ pViewItem = new (std::nothrow) CustomTableViewItem();
+ TableViewAnnexStyle style = TABLE_VIEW_ANNEX_STYLE_NORMAL;
+ if (__spamFormType == SPAM_SETTING_FORM_DELETE_BLOCK_WORD)
+ {
+ style = TABLE_VIEW_ANNEX_STYLE_MARK;
+ }
+ pViewItem->Construct(Dimension(itemWidth, H_LIST_ITEM_112PX), style);
+ pViewItem->SetBackgroundColor(COLOR_LIST_DIALOGUE_GROUP_BG, TABLE_VIEW_ITEM_DRAWING_STATUS_NORMAL);
+ // Child control max width.
+ itemWidth -= (TableViewItem::GetAnnexWidth(style) + W_LIST_ITEM_GROUP_INDICATOR);
+ Label* pBlockWord = new (std::nothrow) Label();
+ pBlockWord->Construct(Rectangle(0, 0, itemWidth-20, H_LIST_ITEM_112PX), blockWord);
+ pBlockWord->SetTextHorizontalAlignment(ALIGNMENT_LEFT);
+ pBlockWord->SetTextConfig(LIST_MAIN_TEXT_FONT_SIZE, LABEL_TEXT_STYLE_NORMAL);
+ pViewItem->AddControl(*pBlockWord);
+ }
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return pViewItem;
+}
+
+
+void
+SpamSettingsForm::OnFocusGained(const Control& source)
+{
+ AppLogDebug("ENTER");
+
+ if (&source == __pEditField)
+ {
+ SetActionBarsVisible(FORM_ACTION_BAR_FOOTER, false);
+
+ Header& header = *GetHeader();
+ String titleText = header.GetTitleText();
+ header.SetStyle(HEADER_STYLE_TITLE);
+ String strText;
+ ButtonItem leftButton;
+ leftButton.Construct(BUTTON_ITEM_STYLE_TEXT, IDA_SAVE_REJECT_NUMBER);
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_COM_SK_SAVE", strText);
+ leftButton.SetText(strText);
+ header.SetButton(BUTTON_POSITION_LEFT, leftButton);
+ header.SetButtonEnabled(BUTTON_POSITION_LEFT, __pEditField->GetTextLength() > 0);
+
+ ButtonItem rightButton;
+ rightButton.Construct(BUTTON_ITEM_STYLE_TEXT, IDA_CANCEL_REJECT_NUMBER);
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_COM_SK_CANCEL", strText);
+ rightButton.SetText(strText);
+ header.SetButton(BUTTON_POSITION_RIGHT, rightButton);
+ header.SetTitleText(titleText);
+ header.Invalidate(true);
+ }
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+}
+
+void
+SpamSettingsForm::OnFocusLost(const Control& source)
+{
+ AppLogDebug("ENTER");
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ //Empty implementation
+}
+
+void
+SpamSettingsForm::CheckedRadioGroupItem(int groupIndex, int itemIndex)
+{
+ AppLogDebug("ENTER");
+
+ __selectedMatchCriteriaIndex = itemIndex;
+ int groupItemCount = __pSettingItemsArray->GetItemCount(groupIndex);
+
+ for (int index = 0; index < groupItemCount; index++)
+ {
+ __pGroupedTableView->SetItemChecked(groupIndex, index, (itemIndex == index));
+ __pGroupedTableView->RefreshItem(groupIndex, index, TABLE_VIEW_REFRESH_TYPE_ITEM_MODIFY);
+
+ }
+ int prvGroupItemCount = __pSettingItemsArray->GetItemCount(groupIndex - 1) - 1;
+ __pGroupedTableView->RefreshItem(groupIndex - 1, prvGroupItemCount, TABLE_VIEW_REFRESH_TYPE_ITEM_MODIFY);
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+String
+SpamSettingsForm::GetMatchCriteriadString(int type)
+{
+ AppLogDebug("ENTER");
+
+ String strText;
+ switch (type)
+ {
+ case SETTING_MATCH_CRITERIA_ADDRESS_SAME:
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_BODY_SETBLOCK_EXACTLY_THE_SAME_AS", strText);
+ break;
+
+ case SETTING_MATCH_CRITERIA_ADDRESS_START:
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_BODY_SETBLOCK_START_WITH", strText);
+ break;
+
+ case SETTING_MATCH_CRITERIA_ADDRESS_INCLUDE:
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_BODY_SETBLOCK_INCLUDE", strText);
+ break;
+ }
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return strText;
+}
+
+void
+SpamSettingsForm::ShowSelectionInfo(void)
+{
+ AppLogDebug("ENTER");
+ String strText,selcInfo;
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_COM_BODY_PD_SELECTED", strText);
+ Label* pSelectionInfo = static_cast<Label*>(GetControl(L"IDC_LABEL_SELECTINFO"));
+ pSelectionInfo->SetTextHorizontalAlignment(ALIGNMENT_CENTER);
+ pSelectionInfo->SetBackgroundColor(COLOR_SELECTION_INFO_LABEL);
+ if (__pSelectedIds)
+ {
+ bool showInfo = (__pSelectedIds && __pSelectedIds->GetCount() > 0);
+ if (__spamFormType == SPAM_SETTING_FORM_DELETE_REJECT_NUMBER)
+ {
+ selcInfo.Format(MAX_LEN_SELECTION_INFO, strText.GetPointer(), __pSelectedIds->GetCount());
+ }
+ else if (__spamFormType == SPAM_SETTING_FORM_DELETE_BLOCK_WORD)
+ {
+ selcInfo.Format(MAX_LEN_SELECTION_INFO, strText.GetPointer(), __pSelectedIds->GetCount());
+ }
+ GetFooter()->SetItemEnabled(0, showInfo);
+ GetFooter()->Draw();
+ }
+ else
+ {
+ selcInfo.Format(MAX_LEN_SELECTION_INFO, strText.GetPointer(), 0);
+ }
+ pSelectionInfo->SetText(selcInfo);
+ pSelectionInfo->RequestRedraw();
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+SpamSettingsForm::CheckAll(bool value)
+{
+ AppLogDebug("ENTER");
+
+ __pSelectedIds->RemoveAll();
+ int groupItemCount(0);
+ for (int groupIndex = 0; groupIndex < __pGroupedTableView->GetGroupCount(); groupIndex++)
+ {
+ groupItemCount = __pGroupedTableView->GetItemCountAt(groupIndex);
+ for (int index = 0; index < groupItemCount; index++)
+ {
+ __pGroupedTableView->SetItemChecked(groupIndex, index, value);
+ // If item check add it in selected list.
+ if (value)
+ {
+ __pSelectedIds->Add(index);
+ }
+ }
+ }
+ Invalidate(true);
+ ShowSelectionInfo();
+ GetFooter()->SetItemEnabled(0, value);
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+SpamSettingsForm::DeleteSelectedSpamFilters(void)
+{
+ AppLogDebug("ENTER");
+
+ SettingPresentationModel* pSettingPrModel = SettingPresentationModel::GetInstance();
+ SpamFiterType filterType = SPAM_FILTER_TYPE_BLOCK_WORD;
+ if (__spamFormType == SPAM_SETTING_FORM_DELETE_REJECT_NUMBER)
+ {
+ filterType = SPAM_FILTER_TYPE_BLOCK_NUMBER;
+ }
+ int selectedFilterCount = __pSelectedIds->GetCount();
+ if (selectedFilterCount > 0)
+ {
+ // Create delete progress popup
+ if (!__pProgressPopup)
+ {
+ __pProgressPopup = new (std::nothrow) MsgProgressPopup();
+ String strTitle(IDS_DELETED_NUMBER_IDS);
+ __pProgressPopup->Construct(0, selectedFilterCount, strTitle);
+ }
+ pSettingPrModel->DeleteFilter(__pSelectedIds, filterType, this);
+ __pSelectedIds = null;
+ }
+ else
+ {
+ HandleBackNavigation();
+ }
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+SpamSettingsForm::SelectContact(void)
+{
+ AppLogDebug("ENTER");
+
+ AppControl* pAppContl = AppManager::FindAppControlN(IDS_APPCONTROL_PROVIDER_CONTACT,
+ IDS_APPCONTROL_OPERATION_PICK);
+ if (pAppContl && __oneTimeFlag)
+ {
+ HashMap* pHashMap = new (std::nothrow) HashMap();
+ pHashMap->Construct();
+ String* pModeKey = new (std::nothrow) String(L"selectionMode");
+ String* pModeVal = new (std::nothrow) String(L"single");
+ pHashMap->Add(pModeKey, pModeVal);
+ String* pTypeKey = new (std::nothrow) String(L"returnType");
+ String* pTypeVal = new (std::nothrow) String(L"phone");
+ pHashMap->Add(pTypeKey, pTypeVal);
+ pAppContl->Start(null, null, pHashMap, this);
+ pHashMap->RemoveAll(true);
+ delete pHashMap;
+ delete pAppContl;
+ __oneTimeFlag = false;
+ }
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+SpamSettingsForm::OnAppControlCompleteResponseReceived(const AppId& appId, const String& operationId,
+ AppCtrlResult appControlResult, const IMap* pResultMap)
+{
+ AppLogDebug("ENTER");
+ String provider(IDS_APPCONTROL_PROVIDER_CONTACT);
+ String operation(IDS_APPCONTROL_OPERATION_PICK);
+
+ if ( /*appId.Equals(provider) &&*/
+ operationId.Equals(operation))
+ {
+ AppLogDebug("ENTER");
+ if (appControlResult == APP_CTRL_RESULT_SUCCEEDED)
+ {
+ AppLogDebug("ENTER");
+ if (pResultMap && pResultMap->GetCount() > 0)
+ {
+ String* pPhoneNumber = (String*) pResultMap->GetValue(String(L"value"));
+ if (pPhoneNumber)
+ {
+ __pEditField->SetText(*pPhoneNumber);
+ }
+ if(__pEditField->HasFocus() == false)
+ {
+ __pEditField->SetFocus();
+ }
+ }
+ }
+ }
+ __oneTimeFlag = true;
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+
+void
+SpamSettingsForm::ShowConfirmationPopup(void)
+{
+ AppLogDebug("ENTER");
+
+ if (__pConfirmationPopup == null)
+ {
+ __pConfirmationPopup = new (std::nothrow) Popup();
+ __pConfirmationPopup->Construct(L"IDL_BLOCK_MESSAGE_INFO_POPUP");
+
+ TextBox* pTextBoxPopup = static_cast<TextBox*>(__pConfirmationPopup->GetControl(L"IDC_BLOCK_INFO_TEXTBOX"));
+ Button* pButtonYes = static_cast<Button*>(__pConfirmationPopup->GetControl(L"IDC_BUTTON_YES"));
+ Button* pButtonNo = static_cast<Button*>(__pConfirmationPopup->GetControl(L"IDC_BUTTON_NO"));
+ String strText;
+
+ if (__spamFormType == SPAM_SETTING_FORM_ADD_REJECT_NUMBER)
+ {
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_POP_MESSAGES_RECEIVED_FROM_YOUR_CONTACTS_WILL_NOT_BE_BLOCKED_EVEN_IF_THEY_CONTAIN_BLOCKED_NUMBERS", strText);
+ pTextBoxPopup->SetText(strText);
+ pButtonYes->SetActionId(IDA_SPAM_NUMBER_CONFIRMATION_YES);
+ pButtonNo->SetActionId(IDA_SPAM_NUMBER_CONFIRMATION_NO);
+ }
+ else if (__spamFormType == SPAM_SETTING_FORM_ADD_BLOCK_WORD)
+ {
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_POP_MESSAGES_RECEIVED_FROM_YOUR_CONTACTS_WILL_NOT_BE_BLOCKED_EVEN_IF_THEY_CONTAIN_BLOCKED_WORDS", strText);
+ pTextBoxPopup->SetText(strText);
+ pButtonYes->SetActionId(IDA_SPAM_WORD_CONFIRMATION_YES);
+ pButtonNo->SetActionId(IDA_SPAM_WORD_CONFIRMATION_NO);
+ }
+ pButtonYes->AddActionEventListener(*this);
+ pButtonNo->AddActionEventListener(*this);
+ __pConfirmationPopup->Show();
+ }
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+SpamSettingsForm::SaveSpamFilter(SpamFiterType filterType)
+{
+ AppLogDebug("ENTER");
+ bool alreadyExist(false);
+ int index(0),count(0);
+ if (__pConfirmationPopup)
+ {
+ delete __pConfirmationPopup;
+ __pConfirmationPopup = null;
+ }
+ SettingPresentationModel* pSettingPrModel = SettingPresentationModel::GetInstance();
+ if (pSettingPrModel)
+ {
+ String filterText = __pEditField->GetText();
+ if (filterType == SPAM_FILTER_TYPE_BLOCK_WORD)
+ {
+ count = pSettingPrModel->GetSpamFilterList()->GetBlockWordCount();
+ while(index++ < count)
+ {
+ // Check for duplicate word
+ if(filterText.CompareTo(pSettingPrModel->GetSpamFilterList()->GetFilterText(index - 1,filterType)) == 0)
+ {
+ alreadyExist = true;
+ break;
+ }
+ }
+ if(!alreadyExist)
+ {
+ if (__editSpamFilterIndex >= 0)
+ {
+ // Existing word filter edit
+ pSettingPrModel->UpdateFilter(__editSpamFilterIndex, SPAM_FILTER_TYPE_BLOCK_WORD, filterText, 0);
+ }
+ else
+ {
+ pSettingPrModel->AddToFilter(filterText, 0);
+ }
+ }
+ }
+ else
+ {
+ count = pSettingPrModel->GetSpamFilterList()->GetBlockNumberCount();
+ while(index++ < count)
+ {
+ // Check for duplicate number
+ if(filterText.CompareTo(pSettingPrModel->GetSpamFilterList()->GetFilterText(index - 1,filterType)) == 0)
+ {
+ alreadyExist = true;
+ break;
+ }
+ }
+ if(!alreadyExist)
+ {
+ if (__editSpamFilterIndex >= 0)
+ {
+ // Existing number filter edit
+ pSettingPrModel->UpdateFilter(__editSpamFilterIndex, SPAM_FILTER_TYPE_BLOCK_NUMBER, filterText, __selectedMatchCriteriaIndex + 1);
+ }
+ else
+ {
+ pSettingPrModel->AddToFilter(filterText, __selectedMatchCriteriaIndex + 1);
+ }
+ }
+ }
+ pSettingPrModel->RefreshSpamFilterList();
+ }
+ SceneManager* pSceneManager = SceneManager::GetInstance();
+ pSceneManager->GoBackward(BackwardSceneTransition(__previousSceneId, SCENE_TRANSITION_ANIMATION_TYPE_NONE));
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+SpamSettingsForm::OnTextValueChanged(const Control& source)
+{
+ AppLogDebug("ENTER");
+ String editText = __pEditField->GetText();
+ int index(0);
+
+ if(editText.IndexOf(L'\n',0,index) == E_SUCCESS)
+ {
+ editText.Replace(L'\n',' ');
+ __pEditField->SetText(editText);
+ }
+
+ Header* pHeader = GetHeader();
+ if (pHeader)
+ {
+ pHeader->SetButtonEnabled(BUTTON_POSITION_LEFT, __pEditField->GetTextLength() > 0);
+ pHeader->Draw();
+ }
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+}
+
+void
+SpamSettingsForm::OnTextValueChangeCanceled(const Control& source)
+{
+ AppLogDebug("ENTER");
+ //Empty implementation
+}
+
+void
+SpamSettingsForm::UpdateMatchCriteriaSettingItem(int groupIndex, int itemIndex, TableViewItem* pViewItem)
+{
+ AppLogDebug("ENTER");
+ SettingItem& settingItem = __pSettingItemsArray->GetItemAt(groupIndex, itemIndex);
+ Label* pSettingName = (Label*) pViewItem->GetControl(IDS_LIST_MAIN_TEXT);
+ if (pSettingName)
+ {
+ pSettingName->SetText(settingItem.GetName());
+ pSettingName->Draw();
+ }
+ Label* pSettingStatus = static_cast<Label*>(pViewItem->GetControl(IDS_LIST_SUB_TEXT));
+ if (pSettingStatus)
+ {
+ pSettingStatus->SetText(GetMatchCriteriadString(__selectedMatchCriteriaIndex));
+ pSettingStatus->Draw();
+ }
+
+ if (settingItem.GetStyle() == SETTING_STYLE_EXPANDABLE)
+ {
+ Bitmap* pNormalIcon = null;
+ Bitmap* pPressIcon = null;
+ if (__pSettingItemsArray->IsGroupExpanded(groupIndex + 1))
+ {
+ pNormalIcon = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_LIST_EXPAND_OPENED);
+ pPressIcon = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_LIST_EXPAND_OPENED_PRESS);
+ }
+ else
+ {
+ pNormalIcon = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_LIST_EXPAND_CLOSE);
+ pPressIcon = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_LIST_EXPAND_CLOSE_PRESS);
+ }
+ static_cast<CustomTableViewItem*>(pViewItem)->EnableExpandViewModeStyle(pNormalIcon, pPressIcon);
+ }
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+}
+
+void
+SpamSettingsForm::LoadCurrentSettings(void)
+{
+ if (__pSettingItemsArray)
+ {
+ for (int groupIndex = 0; groupIndex < __pSettingItemsArray->GetGroupCount(); groupIndex++)
+ {
+ for (int itemIndex = 0; itemIndex < __pSettingItemsArray->GetItemCount(groupIndex); itemIndex++)
+ {
+ __pGroupedTableView->SetItemChecked(groupIndex, itemIndex, (__selectedMatchCriteriaIndex == itemIndex));
+ }
+ if (__pSettingItemsArray->IsGroupExpanded(groupIndex))
+ {
+ __pGroupedTableView->ExpandGroup(groupIndex);
+ }
+ }
+ __pGroupedTableView->UpdateTableView();
+ }
+}
+
+
+void
+SpamSettingsForm::OnDeleteStart(int totalCount)
+{
+ AppLogDebug("ENTER");
+
+ if (__pProgressPopup)
+ {
+ __pProgressPopup->ShowPopup();
+ }
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+SpamSettingsForm::OnDeleteUpdate(int deleteCount, int totalCount)
+{
+ AppLogDebug("ENTER");
+
+ if (__pProgressPopup)
+ {
+ String statusInfo;
+ statusInfo.Format(MAX_LEN_SELECTION_INFO, IDS_DELETED_NUMBER_IDS, deleteCount, totalCount);
+ __pProgressPopup->UpdateProgressInfo(statusInfo);
+ __pProgressPopup->SetProgressValue(deleteCount);
+ }
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+SpamSettingsForm::OnDeleteComplete(int errCode, Object* pThreadObject)
+{
+ AppLogDebug("ENTER");
+
+ // Back to thread view mode
+ if (__pProgressPopup)
+ {
+ __pProgressPopup->HidePopup();
+ delete __pProgressPopup;
+ __pProgressPopup = null;
+ }
+
+ // UI thread, Back to list view mode.
+ RequestId requestId = REQUEST_NORMAL_VIEW;
+ SendUserEvent(requestId, null);
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+SpamSettingsForm::OnUserEventReceivedN(RequestId requestId, IList* pArgs)
+{
+ AppLogDebug("ENTER");
+
+ switch (requestId)
+ {
+ case REQUEST_NORMAL_VIEW:
+ HandleBackNavigation();
+ break;
+
+ case REQUEST_DELETE_START:
+ if(pArgs->GetCount() > 0)
+ {
+ Integer* pTotalCount = (Integer*)pArgs->GetAt(0);
+ OnDeleteStart(pTotalCount->ToInt());
+ delete pArgs;
+ }
+ break;
+
+ case REQUEST_DELETE_UPDATE:
+ if(pArgs->GetCount() > 0)
+ {
+ Integer* pCurrentCount = (Integer*)pArgs->GetAt(0);
+ Integer* pTotalCount = (Integer*)pArgs->GetAt(1);
+ OnDeleteUpdate(pCurrentCount->ToInt(),pTotalCount->ToInt());
+ delete pArgs;
+ }
+ break;
+
+ case REQUEST_DELETE_COMPLETE:
+ if(pArgs->GetCount() > 0)
+ {
+ Integer* pStatus = (Integer*)pArgs->GetAt(0);
+ OnDeleteComplete(pStatus->ToInt(),null);
+ delete pArgs;
+ }
+ break;
+
+ default:
+ break;
+ }
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
--- /dev/null
+//\r
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.\r
+//\r
+// Licensed under the Flora License, Version 1.0 (the License);\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+// http://floralicense.org/license/\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an AS IS BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+//\r
+\r
+//#include <FApp.h>\r
+\r
+#include "MsgBitmapUtility.h"\r
+#include "MsgSubjectControl.h"\r
+#include "MsgTypes.h"\r
+\r
+\r
+using namespace Tizen::App;\r
+using namespace Tizen::Base;\r
+using namespace Tizen::Graphics;\r
+using namespace Tizen::Ui::Controls;\r
+using namespace Tizen::Ui;\r
+\r
+SubjectControl::SubjectControl(void)\r
+ : __pFocusEvent(null)\r
+ , __pEditArea(null)\r
+ , __pDeleteButton(null)\r
+ , __pBgBitmap(null)\r
+{\r
+ // Empty implementation\r
+}\r
+\r
+SubjectControl::~SubjectControl(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+ // Empty implementation\r
+ if (__pBgBitmap)\r
+ {\r
+ delete __pBgBitmap;\r
+ }\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
+\r
+result\r
+SubjectControl::Construct(const Rectangle& rectangle)\r
+{\r
+ AppLogDebug("ENTER");\r
+ result r = E_SUCCESS;\r
+ r = Container::Construct(rectangle);\r
+ __pBgBitmap = BitmapUtility::GetInstance()->GetIconN(MSG_ICON_SEARCH_INPUT_BG);\r
+ // add delete button\r
+ __pDeleteButton = new (std::nothrow) Button();\r
+ __pDeleteButton->Construct(Rectangle(rectangle.width - W_ICON_48PX - MARGIN_16PX,\r
+ (rectangle.height - H_ICON_48PX) / 2, W_ICON_48PX, H_ICON_48PX));\r
+ Bitmap* pNormalBitMap = BitmapUtility::GetInstance()->GetIconN(MSG_ICON_PAGE_DELETE);\r
+ __pDeleteButton->SetNormalBackgroundBitmap(*pNormalBitMap);\r
+ Bitmap* pPressBitMap = BitmapUtility::GetInstance()->GetIconN(MSG_ICON_PAGE_DELETE_PRESS);\r
+ __pDeleteButton->SetPressedBackgroundBitmap(*pPressBitMap);\r
+ __pDeleteButton->SetShowState(false);\r
+ AddControl(*__pDeleteButton);\r
+ delete pPressBitMap;\r
+ delete pNormalBitMap;\r
+ // Subject edit filed.\r
+ __pEditArea = new (std::nothrow) EditField();\r
+ __pEditArea->Construct(Rectangle(0, 0, rectangle.width, rectangle.height),\r
+ EDIT_FIELD_STYLE_NORMAL, INPUT_STYLE_OVERLAY);\r
+ __pEditArea->AddFocusEventListener(*this);\r
+ __pEditArea->SetOverlayKeypadCommandButtonVisible(false);\r
+ //__pEditArea->SetGuideText(L"Subject");\r
+ __pEditArea->SetColor(EDIT_STATUS_PRESSED, __pEditArea->GetColor(EDIT_STATUS_NORMAL));\r
+ __pEditArea->SetTextColor(EDIT_TEXT_COLOR_HIGHLIGHTED, __pEditArea->GetTextColor(EDIT_TEXT_COLOR_NORMAL));\r
+ AddControl(*__pEditArea);\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return r;\r
+}\r
+\r
+result\r
+SubjectControl::OnDraw(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+ result r = E_SUCCESS;\r
+ Canvas* pCanvas = GetCanvasN();\r
+ if (pCanvas)\r
+ {\r
+ Rectangle rect = GetBounds();\r
+ pCanvas->FillRectangle(COLOR_COMPOSE_PANEL_BG,\r
+ Rectangle(0, 0, rect.width, rect.height));\r
+ if (__pBgBitmap)\r
+ {\r
+ pCanvas->DrawNinePatchedBitmap(Rectangle(0, 0, rect.width, rect.height), *__pBgBitmap);\r
+ }\r
+ delete pCanvas;\r
+ }\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return r;\r
+}\r
+\r
+// Form ComposeBaseControl\r
+ComposeControlType\r
+SubjectControl::GetControlType(void) const\r
+{\r
+ AppLogDebug("ENTER");\r
+ return COMPOSE_CONTROL_SUBJECT;\r
+}\r
+\r
+void\r
+SubjectControl::AddKeypadEventListener(IKeypadEventListener& listener)\r
+{\r
+ AppLogDebug("ENTER");\r
+ __pEditArea->AddKeypadEventListener(listener);\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
+\r
+void\r
+SubjectControl::AddTextEventListener(ITextEventListener& listener)\r
+{\r
+ AppLogDebug("ENTER");\r
+ __pEditArea->AddTextEventListener(listener);\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
+\r
+void\r
+SubjectControl::AddFocusEventListener(IFocusEventListener& listener)\r
+{\r
+ AppLogDebug("ENTER");\r
+ __pEditArea->AddFocusEventListener(listener);\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
+\r
+void\r
+SubjectControl::AddActionEventListener(IActionEventListener& listener)\r
+{\r
+ AppLogDebug("ENTER");\r
+ __pDeleteButton->AddActionEventListener(listener);\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
+\r
+void\r
+SubjectControl::SetDeleteActionId(int actionId)\r
+{\r
+ AppLogDebug("ENTER");\r
+ __pDeleteButton->SetActionId(actionId);\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
+\r
+void\r
+SubjectControl::SetDeleteShowState(bool visible)\r
+{\r
+ AppLogDebug("ENTER");\r
+ __pDeleteButton->SetShowState(visible);\r
+ Rectangle rectangle = GetBounds();\r
+ Dimension editorSize = __pEditArea->GetSize();\r
+ if (visible)\r
+ {\r
+ editorSize.width = rectangle.width - (W_ICON_48PX + MARGIN_16PX * 2);\r
+ }\r
+ else\r
+ {\r
+ editorSize.width = rectangle.width;\r
+ }\r
+ __pEditArea->SetSize(editorSize);\r
+ Draw();\r
+ Show();\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
+\r
+result\r
+SubjectControl::ShowKeypad(bool visible)\r
+{\r
+ AppLogDebug("ENTER");\r
+ result r = E_SUCCESS;\r
+ if (visible)\r
+ {\r
+ r = __pEditArea->ShowKeypad();\r
+ }\r
+ else\r
+ {\r
+ r = __pEditArea->HideKeypad();\r
+ }\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return r;\r
+}\r
+\r
+result\r
+SubjectControl::SetFocus(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return __pEditArea->SetFocus();\r
+}\r
+\r
+\r
+void\r
+SubjectControl::OnFocusGained(const Control& source)\r
+{\r
+ AppLogDebug("ENTER");\r
+ __pEditArea->SetGuideText(IDS_BLANK);\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
+\r
+void\r
+SubjectControl::OnFocusLost(const Control& source)\r
+{\r
+ AppLogDebug("ENTER");\r
+ __pEditArea->SetGuideText(IDS_SUBJECT);\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
+\r
+\r
+result\r
+SubjectControl::SetText(const String& strText)\r
+{\r
+ AppLogDebug("ENTER");\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return __pEditArea->SetText(strText);\r
+}\r
+\r
+String\r
+SubjectControl::GetText(void) const\r
+{\r
+ AppLogDebug("ENTER");\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return __pEditArea->GetText();\r
+}\r
--- /dev/null
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+#include <msg.h>
+#include <msg_storage.h>
+
+#include <FApp.h>
+#include <FBaseResult.h>
+#include <FBaseString.h>
+#include <time.h>
+
+#include "MsgThreadData.h"
+#include "MsgTypes.h"
+
+using namespace Tizen::App;
+using namespace Tizen::Base;
+
+
+ThreadData::ThreadData(msg_handle_t msgHandle)
+ : __pMsgHandle(msgHandle)
+ , __threadId(-1)
+ , __threadName(IDS_BLANK)
+ , __messageType(MSG_TYPE_SMS)
+ , __shortDes(IDS_BLANK)
+ , __messageTime(-1)
+ , __unreadCount(0)
+ , __draftMsgCount(0)
+{
+ //Empty implementation
+}
+
+result
+ThreadData::Construct(msg_struct_t pThreadInfo)
+{
+ AppLogDebug("ENTER");
+
+ result r = E_SUCCESS;
+ //Thread id
+ msg_error_t err = msg_get_int_value(pThreadInfo, MSG_THREAD_ID_INT, &__threadId);
+ if (err != MSG_SUCCESS)
+ {
+ AppLogDebug("EXIT:Unable to fetch thread ID err =%d", (int) err);
+ result r = E_FAILURE;
+ return r;
+ }
+ // Thread name
+ r = InitThreadName(pThreadInfo);
+ if (IsFailed(r))
+ {
+ AppLogDebug("EXIT: %s", GetErrorMessage(r));
+ return r;
+ }
+ // Get last message type.
+ err = msg_get_int_value(pThreadInfo, MSG_THREAD_MSG_TYPE_INT, &__messageType);
+ if (err != MSG_SUCCESS)
+ {
+ AppLogDebug("EXIT:Unable to fetch thread last message type err =%d", (int) err);
+ result r = E_FAILURE;
+ return r;
+ }
+ // Short description
+ r = InitShortDescription(pThreadInfo);
+ if (IsFailed(r))
+ {
+ AppLogDebug("EXIT: %s", GetErrorMessage(r));
+ return r;
+ }
+ //Get message time
+ err = msg_get_int_value(pThreadInfo, MSG_THREAD_MSG_TIME_INT, &__messageTime);
+ if (err != MSG_SUCCESS)
+ {
+ AppLogDebug("EXIT:Unable to fetch thread message time err =%d", (int) err);
+ r = E_FAILURE;
+ return r;
+ }
+ // Get Unread count
+ err = msg_get_int_value(pThreadInfo, MSG_THREAD_UNREAD_COUNT_INT, &__unreadCount);
+ if (err != MSG_SUCCESS)
+ {
+ AppLogDebug("EXIT:Unable to fetch thread unread count err =%d", (int) err);
+ r = E_FAILURE;
+ return r;
+ }
+ // Group name
+ InitTimeStampGroupName();
+ //Initialize draft property
+ msg_struct_list_s draftList;
+ msg_folder_id_t folderId = MSG_DRAFT_ID;
+ msg_thread_id_t thrdId = __threadId;
+ msg_storage_id_t storageId = MSG_STORAGE_PHONE;
+ msg_message_type_t msgType = 0;
+ msg_get_message_list(__pMsgHandle, folderId, thrdId, msgType, storageId, &draftList);
+ __draftMsgCount = draftList.nCount;
+ msg_release_list_struct(&draftList);
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return r;
+}
+
+BaseData*
+ThreadData::CloneN(void)
+{
+ AppLogDebug("ENTER");
+ ThreadData* pThreadData = new (std::nothrow) ThreadData(__pMsgHandle);
+ if (pThreadData)
+ {
+ pThreadData->__threadId = this->__threadId;
+ pThreadData->__threadName = this->__threadName;
+ pThreadData->__messageType = this->__messageType;
+ pThreadData->__shortDes = this->__shortDes;
+ pThreadData->__messageTime = this->__messageTime;
+ pThreadData->__unreadCount = this->__unreadCount;
+ pThreadData->__timeStamp = this->__timeStamp;
+ pThreadData->__groupName = this->__groupName;
+ pThreadData->__draftMsgCount = this->__draftMsgCount;
+ }
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return pThreadData;
+}
+
+ThreadData::~ThreadData(void)
+{
+ AppLogDebug("ENTER");
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+}
+
+// Get Thread name
+const String&
+ThreadData::GetDisplayName(void) const
+{
+ AppLogDebug("ENTER");
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return __threadName;
+}
+
+// Get unread message count of given thread index.
+int
+ThreadData::GetUnreadCount(void) const
+{
+ AppLogDebug("ENTER");
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+
+ return __unreadCount;
+}
+
+// Get message short description of given thread index.
+const String&
+ThreadData::GetMessageText(void) const
+{
+ AppLogDebug("ENTER");
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+
+ return __shortDes;
+}
+
+// Get last message type of given thread list index.
+int
+ThreadData::GetMessageType(void) const
+{
+ AppLogDebug("ENTER");
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+
+ return __messageType;
+}
+
+// Get thread ID of given thread index.
+int
+ThreadData::GetEntryId(void) const
+{
+ AppLogDebug("ENTER");
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+
+ return __threadId;
+}
+
+
+// Fetch time stamp of given thread index.
+const String&
+ThreadData::GetTimeStamp(void) const
+{
+ AppLogDebug("ENTER");
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return __timeStamp;
+}
+
+const String&
+ThreadData::GetGroupName(void) const
+{
+ AppLogDebug("ENTER");
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return __groupName;
+}
+
+DataType
+ThreadData::GetDataType(void)
+{
+ AppLogDebug("ENTER");
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return DATA_TYPE_THREAD;
+}
+
+result
+ThreadData::InitThreadName(msg_struct_t pThreadInfo)
+{
+ AppLogDebug("ENTER");
+
+ result r = E_SUCCESS;
+ char* pThreadName = new (std::nothrow) char[MAX_DISPLAY_NAME_LEN];
+ msg_error_t err = msg_get_str_value(pThreadInfo, MSG_THREAD_NAME_STR, pThreadName, MAX_DISPLAY_NAME_LEN);
+ if (err != MSG_SUCCESS)
+ {
+ delete[] pThreadName;
+ AppLogDebug("EXIT:Unable to fetch thread name err =%d", (int) err);
+ r = E_FAILURE;
+ return r;
+ }
+ __threadName.Append(pThreadName);
+ delete[] pThreadName;
+ if (__threadName.IsEmpty())
+ {
+ __threadName.Append(IDS_BLANK_SPACE);
+ }
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return r;
+}
+
+result
+ThreadData::InitShortDescription(msg_struct_t pThreadInfo)
+{
+ AppLogDebug("ENTER");
+
+ result r = E_SUCCESS;
+ char* pShortDes = new (std::nothrow) char[MAX_MSG_TEXT_LEN];
+ if (pShortDes)
+ {
+ msg_error_t err = msg_get_str_value(pThreadInfo, MSG_THREAD_MSG_DATA_STR, pShortDes, MAX_MSG_TEXT_LEN);
+ if (err != MSG_SUCCESS)
+ {
+ delete[] pShortDes;
+ AppLogDebug("EXIT:Unable to fetch thread short description =%d", (int) err);
+ r = E_FAILURE;
+ return r;
+ }
+ __shortDes.Append(pShortDes);
+ if ((__messageType == MSG_TYPE_MMS) && __shortDes.IsEmpty())
+ {
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_BODY_NO_SUBJECT", __shortDes);
+ }
+ delete[] pShortDes;
+ }
+ if (__shortDes.IsEmpty())
+ {
+ __shortDes.Append(IDS_BLANK_SPACE);
+ }
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return r;
+}
+
+result
+ThreadData::InitTimeStampGroupName(void)
+{
+ AppLogDebug("ENTER");
+
+ result r = E_SUCCESS;
+ char timeStamp[MAX_DATE_LEN];
+ char groupName[MAX_DATE_LEN];
+ char timestm[MAX_DATE_LEN];
+ struct tm msgTimeInfo, currentTimeInfo;
+ tzset();
+ // Fetch Message time.
+ time_t pTime(__messageTime);
+ localtime_r(&pTime, &msgTimeInfo);
+ // Fetch current time.
+ time_t now;
+ time(&now);
+ localtime_r(&now, ¤tTimeInfo);
+
+ // Calculate time difference
+ int msgDay = (msgTimeInfo.tm_year - YEAR_1900) * DAYS_365 + msgTimeInfo.tm_yday + (msgTimeInfo.tm_year - YEAR_1900 - 1) / LEAP_YEAR_GAP;
+ int curDay = (currentTimeInfo.tm_year - YEAR_1900) * DAYS_365 + currentTimeInfo.tm_yday + (currentTimeInfo.tm_year - YEAR_1900 - 1) / LEAP_YEAR_GAP;
+ int dayDiff = curDay - msgDay;
+ if (dayDiff == 0)
+ {
+ strftime(timeStamp, (size_t) MAX_DATE_LEN, "%I:%M ", &msgTimeInfo);
+ strftime(timestm, (size_t) MAX_DATE_LEN, "%H", &msgTimeInfo);
+ __groupName.Append(L"Today");
+ strftime(groupName, (size_t) MAX_DATE_LEN, " (%a, %02d. %b.)", &msgTimeInfo);
+ __groupName.Append(groupName);
+ }
+ else if (dayDiff == 1)
+ {
+ //strcpy(timeStamp, "Yesterday");
+ strftime(timeStamp, (size_t) MAX_DATE_LEN, "%I:%M ", &msgTimeInfo);
+ strftime(timestm, (size_t) MAX_DATE_LEN, "%H", &msgTimeInfo);
+ __groupName.Append(L"Yesterday");
+ strftime(groupName, (size_t) MAX_DATE_LEN, " (%a, %02d. %b.)", &msgTimeInfo);
+ __groupName.Append(groupName);
+ }
+ else
+ {
+ strftime(timeStamp, (size_t) MAX_DATE_LEN, "%I:%M ", &msgTimeInfo);
+ strftime(timestm, (size_t) MAX_DATE_LEN, "%H", &msgTimeInfo);
+ //strftime(timeStamp, MAX_DATE_LEN, "%02d %b", &msgTimeInfo);
+ strftime(groupName, (size_t) MAX_DATE_LEN, "%a, %02d %b", &msgTimeInfo);
+ __groupName.Append(groupName);
+ }
+ String strtext;
+ String str(L"");
+ str.Append(timestm);
+ if (12 > atoi(timestm))
+ {
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_COM_POP_AM_M_ABB", strtext);
+ }
+ else
+ {
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_COM_POP_PM", strtext);
+ }
+ __timeStamp.Append(timeStamp);
+ __timeStamp.Append(strtext);
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return r;
+}
+
+const int
+ThreadData::GetDraftMessageCount(void) const
+{
+ AppLogDebug("ENTER");
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return __draftMsgCount;
+}
--- /dev/null
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+#include "MsgBaseCustomPopup.h"
+#include "MsgBitmapUtility.h"
+#include "MsgCommonUtil.h"
+#include "MsgContactUtility.h"
+#include "MsgLVThreadListItem.h"
+#include "MsgMessageData.h"
+#include "MsgPhoneNumberListPopup.h"
+#include "MsgProgressPopup.h"
+#include "MsgSettingPresentationModel.h"
+#include "MsgSmsManager.h"
+#include "MsgThreadData.h"
+#include "MsgThreadListForm.h"
+#include "MsgThreadPresentationModel.h"
+#include "MsgTypes.h"
+
+using namespace Tizen::App;
+using namespace Tizen::Base;
+using namespace Tizen::Base::Collection;
+using namespace Tizen::Graphics;
+using namespace Tizen::Ui;
+using namespace Tizen::Ui::Controls;
+using namespace Tizen::Ui::Scenes;
+
+ThreadListForm::ThreadListForm(ThreadListFormType threadListFormType, ThreadListType threadListType)
+ : __isSearchBarClicked(false)
+ , __threadListFormType(threadListFormType)
+ , __listType(threadListType)
+ , __pThreadGroupList(null)
+ , __pItemContext(null)
+ , __pSearchList(null)
+ , __pSearchBar(null)
+ , __pCheckAll(null)
+ , __pSelectionInfo(null)
+ , __pSelectedIds(null)
+ , __pProgressPopup(null)
+ , __pContextMenu(null)
+ , __pDeletePopup(null)
+ , __msgListItemIndex(-1)
+ , __pPhoneNumberListPopup(null)
+ , __pBlockPopup(null)
+ , __contextItemType(MSG_CONTEXT_ITEM_CALL_TYPE)
+ , __pItemContextUnblock(null)
+ , __blockGroupIndex(0)
+ , __blockItemIndex(0)
+{
+ // Empty implementation
+}
+
+ThreadListForm::~ThreadListForm(void)
+{
+ AppLogDebug("ENTER");
+
+ // Cancel ongoing operation.
+ ThreadPresentationModel* pThreadPrModel = ThreadPresentationModel::GetInstance();
+ if(pThreadPrModel)
+ {
+ pThreadPrModel->RemoveThreadListEventListener(*this);
+ pThreadPrModel->CancelDelete();
+ pThreadPrModel->CancelRestore();
+ }
+ if (__pContextMenu)
+ {
+ delete __pContextMenu;
+ }
+ if (__pItemContext)
+ {
+ delete __pItemContext;
+ }
+ if (__pDeletePopup)
+ {
+ delete __pDeletePopup;
+ }
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+}
+
+bool
+ThreadListForm::Initialize(void)
+{
+ AppLogDebug("ENTER");
+
+ result r = E_SUCCESS;
+ switch (__threadListFormType)
+ {
+ case THREAD_LIST_FORM_VIEW:
+ case THREAD_LIST_FORM_SIMMSG_VIEW:
+ case THREAD_LIST_FORM_SPAMMSG_VIEW:
+ case THREAD_LIST_FORM_CBMSG_VIEW:
+ case THREAD_LIST_FORM_DRAFTMSG_VIEW:
+ {
+ r = Construct(L"IDL_THREAD_LIST_FORM");
+ }
+ break;
+
+ case THREAD_LIST_FORM_EDIT:
+ case THREAD_LIST_FORM_SIMMSG_EDIT:
+ case THREAD_LIST_FORM_SPAMMSG_EDIT:
+ case THREAD_LIST_FORM_CBMSG_EDIT:
+ case THREAD_LIST_FORM_DRAFTMSG_EDIT:
+ {
+ r = Construct(L"IDL_THREAD_LIST_EDIT_FORM");
+ }
+ break;
+ }
+
+ ThreadPresentationModel* pThreadPrModel = ThreadPresentationModel::GetInstance();
+ if (pThreadPrModel)
+ {
+ pThreadPrModel->Clear();
+ }
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return (!IsFailed(r));
+}
+
+void
+ThreadListForm::OnIntializeFooter(Footer& footer)
+{
+ AppLogDebug("ENTER");
+
+ // Update footer.
+ SetFooter();
+ footer.AddActionEventListener(*this);
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+ThreadListForm::OnIntializeHeader(Header& header)
+{
+ AppLogDebug("ENTER");
+
+ // Update header.
+ SetHeader();
+ header.AddActionEventListener(*this);
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+result
+ThreadListForm::OnInitializing(void)
+{
+// result r = E_SUCCESS;
+ BaseForm::InitializeBase();
+// if (r != E_SUCCESS)
+// {
+// AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+// return r;
+// }
+
+ result r = CreateContextMenu();
+ if (r != E_SUCCESS)
+ {
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return r;
+ }
+
+ r = CreateContextMenuUnBlock();
+ if (r != E_SUCCESS)
+ {
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return r;
+ }
+ switch (__threadListFormType)
+ {
+ case THREAD_LIST_FORM_VIEW:
+ case THREAD_LIST_FORM_SIMMSG_VIEW:
+ case THREAD_LIST_FORM_SPAMMSG_VIEW:
+ case THREAD_LIST_FORM_CBMSG_VIEW:
+ case THREAD_LIST_FORM_DRAFTMSG_VIEW:
+ {
+ r = AddSearchBar();
+ }
+ break;
+
+ case THREAD_LIST_FORM_EDIT:
+ case THREAD_LIST_FORM_SIMMSG_EDIT:
+ case THREAD_LIST_FORM_SPAMMSG_EDIT:
+ case THREAD_LIST_FORM_CBMSG_EDIT:
+ case THREAD_LIST_FORM_DRAFTMSG_EDIT:
+ {
+ r = AddEditCheckBox();
+ __pSelectedIds = new (std::nothrow) ArrayListT< int>();
+ __pSelectedIds->Construct();
+ AddLabelSelectionInfo();
+ }
+ break;
+
+ }
+ if (r != E_SUCCESS)
+ {
+ AppLogDebug("EXIT: %s", GetErrorMessage(r));
+ return r;
+ }
+
+ r = AddListBox();
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(r));
+ return r;
+}
+
+result
+ThreadListForm::CreateContextMenu()
+{
+ AppLogDebug("ENTER");
+
+ // Create List context menu
+ __pItemContext = new (std::nothrow) ListContextItem();
+ result r = __pItemContext->Construct();
+
+ //ThreadList
+ String strText;
+
+ switch (__threadListFormType)
+ {
+ case THREAD_LIST_FORM_VIEW:
+ {
+ //ThreadList
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_COM_SK_CALL", strText);
+ __pItemContext->AddElement(IDC_VOICE_CALL_ITEM, strText);
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_OPT_BLOCK", strText);
+ __pItemContext->AddElement(IDC_BLOCK_ITEM, strText);
+ }
+ break;
+
+ case THREAD_LIST_FORM_SIMMSG_VIEW:
+ {
+ //SIM Messages
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_BODY_COPY_TO_PHONE", strText);
+ __pItemContext->AddElement(IDC_COPY_TO_PHONE, strText);
+ }
+ break;
+
+ case THREAD_LIST_FORM_SPAMMSG_VIEW:
+ {
+ //SPAM Messages
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_SK_RESTORE", strText);
+ __pItemContext->AddElement(IDC_RESTORE, strText);
+ }
+ break;
+
+ case THREAD_LIST_FORM_CBMSG_VIEW:
+ case THREAD_LIST_FORM_DRAFTMSG_VIEW:
+ default:
+ break;
+ }
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_COM_SK_DELETE", strText);
+ Bitmap* pSweepNormalIcon = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_DELETE_SWEEP,
+ Dimension(W_LIST_SWEEP_BUTTON_100PX, H_LIST_SWEEP_BUTTON_74PX));
+ Bitmap* pSweepPressIcon = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_DELETE_PRESS_SWEEP,
+ Dimension(W_LIST_SWEEP_BUTTON_100PX, H_LIST_SWEEP_BUTTON_74PX));
+ __pItemContext->AddElement(IDC_DELETE_CONTEXT_ITEM, strText, *pSweepNormalIcon, *pSweepPressIcon);
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return r;
+}
+
+result
+ThreadListForm::AddSearchBar(void)
+{
+ AppLogDebug("ENTER");
+
+ result r = E_SUCCESS;
+ Rectangle rect = GetClientAreaBounds();
+
+ String strText;
+ __pSearchBar = static_cast<SearchBar*>(GetControl(L"IDC_SEARCHBAR"));
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_COM_BODY_SEARCH", strText);
+ __pSearchBar->SetGuideText(strText);
+ __pSearchBar->AddSearchBarEventListener(*this);
+ __pSearchBar->AddTextEventListener(*this);
+ __pSearchBar->AddKeyEventListener(*this);
+ __pSearchBar->AddKeypadEventListener(*this);
+ __pSearchBar->AddTouchEventListener(*this);
+ __pSearchBar->SetSearchFieldTextColor(SEARCH_FIELD_STATUS_NORMAL, COLOR_THREADLIST_SEARCH_TEXT);
+
+ // Creates search list
+ __pSearchList = new (std::nothrow) GroupedListView();
+ r = __pSearchList->Construct(Rectangle(0, 0, rect.width, rect.height), GROUPED_LIST_VIEW_STYLE_INDEXED, true, SCROLL_STYLE_FADE_OUT);
+ if (r != E_SUCCESS)
+ {
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return r;
+ }
+ __pSearchList->SetItemProvider(*this);
+ __pSearchList->AddGroupedListViewItemEventListener(*this);
+ __pSearchList->AddTouchEventListener(*this);
+ __pSearchList->SetBackgroundColor(COLOR_THREADLIST_SEARCH_BG);
+ __pSearchList->SetShowState(false);
+ __pSearchBar->SetContent(__pSearchList); // Transfer ownership
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return r;
+}
+
+result
+ThreadListForm::AddEditCheckBox(void)
+{
+ AppLogDebug("ENTER");
+
+ result r = E_SUCCESS;
+ __pCheckAll = static_cast<CheckButton*>(GetControl(L"IDC_CHECKALL_BUTTON"));
+ __pCheckAll->SetColor(CHECK_BUTTON_STATUS_NORMAL, COLOR_CHECKBOX_BUTTON);
+ String strText;
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_COM_BODY_SELECT_ALL", strText);
+ __pCheckAll->SetText(strText);
+ __pCheckAll->SetActionId(IDA_SELECT_ALL_ON, IDA_SELECT_ALL_OFF);
+ __pCheckAll->AddActionEventListener(*this);
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(r));
+ return r;
+}
+
+result
+ThreadListForm::AddLabelSelectionInfo(void)
+{
+ AppLogDebug("ENTER");
+ String strText,selcInfo;
+ result r = E_SUCCESS;
+ Rectangle rect = GetClientAreaBounds();
+ __pSelectionInfo = static_cast<Label*>(GetControl(L"IDC_THREAD_EDIT_LABEL"));
+ if (__pSelectionInfo == null)
+ {
+ r = E_FAILURE;
+ return r;
+ }
+ __pSelectionInfo->SetBackgroundColor(COLOR_SELECTION_INFO_LABEL);
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_COM_BODY_PD_SELECTED", strText);
+ selcInfo.Format(MAX_LEN_SELECTION_INFO, strText.GetPointer(), __pSelectedIds->GetCount());
+ __pSelectionInfo->SetText(selcInfo);
+
+ AppLogDebug("EXIT: r= %s", GetErrorMessage(GetLastResult()));
+ return r;
+}
+
+result
+ThreadListForm::AddListBox(void)
+{
+ AppLogDebug("ENTER");
+
+ result r = E_SUCCESS;
+ __pThreadGroupList = static_cast<GroupedListView*>(GetControl(L"IDC_THREAD_GROUPEDLISTVIEW"));
+ __pThreadGroupList->SetItemProvider(*this);
+ __pThreadGroupList->AddGroupedListViewItemEventListener(*this);
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return r;
+}
+
+void
+ThreadListForm::CheckAll(bool value)
+{
+ AppLogDebug("ENTER");
+
+ ThreadPresentationModel* pThreadPrModel = ThreadPresentationModel::GetInstance();
+
+ if (pThreadPrModel)
+ {
+ __pSelectedIds->RemoveAll();
+ int groupItemCount(0), threadIndex(0);
+ if (__listType == THREAD_LIST_TYPE_THREAD)
+ {
+ for (int groupIndex = 0; groupIndex < pThreadPrModel->GetGroupCount(); groupIndex++)
+ {
+ groupItemCount = pThreadPrModel->GetGroupItemCount(groupIndex);
+ for (int index = 0; index < groupItemCount; index++)
+ {
+ __pThreadGroupList->SetItemChecked(groupIndex, index, value);
+ // If item check add it in selected list.
+ if (value)
+ {
+ __pSelectedIds->Add(pThreadPrModel->GetDataAt(threadIndex)->GetEntryId());
+ threadIndex++;
+ }
+ }
+ }
+ }
+ else
+ {
+ for (int groupIndex = 0; groupIndex < pThreadPrModel->GetGroupCount(); groupIndex++)
+ {
+ groupItemCount = pThreadPrModel->GetGroupItemCount(groupIndex);
+ for (int index = 0; index < groupItemCount; index++)
+ {
+ __pThreadGroupList->SetItemChecked(groupIndex, index, value);
+ // If item check add it in selected list.
+ if (value)
+ {
+ __pSelectedIds->Add(pThreadPrModel->GetDataAt(threadIndex)->GetEntryId());
+ threadIndex++;
+ }
+ }
+ }
+ }
+ Invalidate(true);
+ }
+ ShowSelectionInfo();
+ GetFooter()->SetItemEnabled(0, value);
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+ThreadListForm::DeleteSelectedItem(void)
+{
+ AppLogDebug("ENTER");
+
+ if (!__pSelectedIds || __pSelectedIds->GetCount() <= 0)
+ {
+ return;
+ }
+ ThreadPresentationModel* pThreadManager = ThreadPresentationModel::GetInstance();
+ if (pThreadManager)
+ {
+ if (__listType == THREAD_LIST_TYPE_THREAD)
+ {
+ pThreadManager->Delete(__pSelectedIds, *this, REQUEST_DELETE_THREAD);
+ }
+ else
+ {
+ pThreadManager->Delete(__pSelectedIds, *this, REQUEST_DELETE_MESSAGE);
+
+ }
+ }
+ __pSelectedIds = null;
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+result
+ThreadListForm::OnTerminating(void)
+{
+ AppLogDebug("ENTER");
+
+ result r = E_SUCCESS;
+
+ if (__pItemContext)
+ {
+ delete __pItemContext;
+ __pItemContext = null;
+ }
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return r;
+}
+
+void
+ThreadListForm::SetFooter(void)
+{
+ AppLogDebug("ENTER");
+
+ Footer* footer = GetFooter();
+ if (footer)
+ {
+ switch (__threadListFormType)
+ {
+ case THREAD_LIST_FORM_VIEW:
+ SetThreadListViewModeFooter(*footer);
+ break;
+
+ case THREAD_LIST_FORM_SIMMSG_VIEW:
+ case THREAD_LIST_FORM_SPAMMSG_VIEW:
+ case THREAD_LIST_FORM_CBMSG_VIEW:
+ case THREAD_LIST_FORM_DRAFTMSG_VIEW:
+ SetMessageListViewModeFooter(*footer);
+ break;
+
+ case THREAD_LIST_FORM_EDIT:
+ SetThreadListEditModeFooter(*footer);
+ break;
+
+ case THREAD_LIST_FORM_SIMMSG_EDIT:
+ case THREAD_LIST_FORM_SPAMMSG_EDIT:
+ case THREAD_LIST_FORM_CBMSG_EDIT:
+ case THREAD_LIST_FORM_DRAFTMSG_EDIT:
+ SetMessageListEditModeFooter(*footer);
+ break;
+ }
+ }
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+ThreadListForm::SetThreadListViewModeFooter(Footer& footer)
+{
+ AppLogDebug("ENTER");
+
+ footer.RemoveAllItems();
+ footer.RemoveAllButtons();
+
+// String strText;
+//
+// FooterItem composeBtn;
+// composeBtn.Construct(IDA_COMPOSE_CMD);
+// Application::GetInstance()->GetAppResource()->GetString(L"IDS_COM_SK3_COMPOSE", strText);
+// composeBtn.SetText(strText);
+// Bitmap* pComposeIcon = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_COMPOSE);
+// if (pComposeIcon)
+// {
+// composeBtn.SetIcon(FOOTER_ITEM_STATUS_NORMAL, pComposeIcon);
+// }
+//
+// FooterItem deleteBtn;
+// deleteBtn.Construct(IDA_DELETE_CMD);
+// Application::GetInstance()->GetAppResource()->GetString(L"IDS_COM_SK_DELETE", strText);
+// deleteBtn.SetText(strText);
+// Bitmap* pDeleteIcon = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_DELETE);
+// if (pDeleteIcon)
+// {
+// deleteBtn.SetIcon(FOOTER_ITEM_STATUS_NORMAL, pDeleteIcon);
+// }
+//
+// FooterItem msgBoxesBtn;
+// msgBoxesBtn.Construct(IDA_MORE_CMD);
+// Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_HEADER_MESSAGE_BOXES", strText);
+// msgBoxesBtn.SetText(strText);
+// Bitmap* pMsgBoxesIcon = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_MESSAGE_BOXES);
+// if (pMsgBoxesIcon)
+// {
+// msgBoxesBtn.SetIcon(FOOTER_ITEM_STATUS_NORMAL, pMsgBoxesIcon);
+// }
+//
+// FooterItem closeBtn;
+// closeBtn.Construct(IDA_BACK_CMD);
+// Bitmap* pCloseIcon = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_BACK);
+// if (pCloseIcon)
+// {
+// closeBtn.SetIcon(FOOTER_ITEM_STATUS_NORMAL, pCloseIcon);
+// }
+//
+// footer.SetStyle(FOOTER_STYLE_BUTTON_ICON_TEXT);
+// footer.AddItem(composeBtn);
+// footer.AddItem(deleteBtn);
+// footer.AddItem(msgBoxesBtn);
+// footer.AddItem(closeBtn);
+
+ // compose button creation
+ footer.SetStyle(FOOTER_STYLE_BUTTON_ICON_TEXT);
+ // Add more button creation
+ ButtonItem moreBtn;
+ moreBtn.Construct(BUTTON_ITEM_STYLE_ICON, IDA_MORE_CMD);
+ Bitmap* pMoreIcon = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_MORE);
+ if (pMoreIcon)
+ {
+ moreBtn.SetIcon(BUTTON_ITEM_STATUS_NORMAL, pMoreIcon);
+ }
+ Bitmap* pMoreIconPressed = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_MORE_PRESSED);
+ if (pMoreIconPressed)
+ {
+ moreBtn.SetIcon(BUTTON_ITEM_STATUS_PRESSED, pMoreIconPressed);
+ }
+ footer.SetButton(BUTTON_POSITION_LEFT, moreBtn);
+ // Add compose buttoon
+ String strText;
+ FooterItem composeBtn;
+ composeBtn.Construct(IDA_COMPOSE_CMD);
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_COM_SK3_COMPOSE", strText);
+ composeBtn.SetText(strText);
+ footer.AddItem(composeBtn); // adding compose button to footer as item
+
+ //Add back button
+ ButtonItem closeBtn;
+ closeBtn.Construct(BUTTON_ITEM_STYLE_ICON, IDA_BACK_CMD);
+ Bitmap* pCloseIcon = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_BACK);
+ if (pCloseIcon)
+ {
+ closeBtn.SetIcon(BUTTON_ITEM_STATUS_NORMAL, pCloseIcon);
+ }
+ Bitmap* pCloseIconPressed = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_BACK_PRESSED);
+ if (pCloseIconPressed)
+ {
+ closeBtn.SetIcon(BUTTON_ITEM_STATUS_PRESSED, pCloseIconPressed);
+ }
+ footer.SetButton(BUTTON_POSITION_RIGHT, closeBtn);
+
+
+ // Enable disable footer item
+ ThreadPresentationModel* pThreadPrModel = ThreadPresentationModel::GetInstance();
+ if (pThreadPrModel && pThreadPrModel->GetCount() > 0)
+ {
+ footer.SetItemEnabled(1, true);
+ }
+ else
+ {
+ footer.SetItemEnabled(1, false);
+ }
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+ThreadListForm::SetThreadListEditModeFooter(Footer& footer)
+{
+ AppLogDebug("ENTER");
+
+ //Commented for now as icon and text overlapping.
+ // String strText;
+ // footer.RemoveAllItems();
+ // footer.RemoveAllButtons();
+ // footer.SetStyle(FOOTER_STYLE_SEGMENTED_ICON_TEXT);
+ //
+ // ButtonItem deleteBtn;
+ // deleteBtn.Construct(BUTTON_ITEM_STYLE_TEXT, IDA_DELETE_CMD);
+ // Application::GetInstance()->GetAppResource()->GetString(L"IDS_COM_SK_DELETE", strText);
+ // deleteBtn.SetText(strText);
+ // Bitmap* pDeleteIcon = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_DELETE);
+ // if (pDeleteIcon)
+ // {
+ // deleteBtn.SetIcon(BUTTON_ITEM_STATUS_NORMAL, pDeleteIcon);
+ // }
+ // footer.SetButton(BUTTON_POSITION_LEFT, deleteBtn);
+ //
+ // ButtonItem cancelBtn;
+ // cancelBtn.Construct(BUTTON_ITEM_STYLE_TEXT, IDA_CANCEL_CMD);
+ // Application::GetInstance()->GetAppResource()->GetString(L"IDS_COM_SK_CANCEL", strText);
+ // cancelBtn.SetText(strText);
+ // Bitmap* pCancelIcon = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_CANCEL);
+ // if (pCancelIcon)
+ // {
+ // cancelBtn.SetIcon(BUTTON_ITEM_STATUS_NORMAL, pCancelIcon);
+ // }
+ // footer.SetButton(BUTTON_POSITION_RIGHT, cancelBtn);
+ //
+ // // Enable disable footer item
+ // if (__pSelectedIds && __pSelectedIds->GetCount() > 0)
+ // {
+ // footer.SetButtonEnabled(BUTTON_POSITION_LEFT, true);
+ // }
+ // else
+ // {
+ // footer.SetButtonEnabled(BUTTON_POSITION_LEFT, false);
+ // }
+
+ String strText;
+ footer.RemoveAllItems();
+ footer.RemoveAllButtons();
+ footer.SetStyle(FOOTER_STYLE_BUTTON_ICON_TEXT);
+
+ // Delete footer item
+ FooterItem deleteBtn;
+ deleteBtn.Construct(IDA_DELETE_CMD);
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_COM_SK_DELETE", strText);
+ deleteBtn.SetText(strText);
+// Bitmap* pDeleteIcon = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_DELETE);
+// if (pDeleteIcon)
+// {
+// deleteBtn.SetIcon(FOOTER_ITEM_STATUS_NORMAL, pDeleteIcon);
+// }
+ footer.AddItem(deleteBtn);
+
+ // Dummy footer item
+ //FooterItem dummyBtnOne;
+ //dummyBtnOne.Construct(0);
+ //footer.AddItem(dummyBtnOne);
+ //footer.SetItemEnabled(1, false);
+
+ // Cancel footer item
+// FooterItem cancelBtn;
+// cancelBtn.Construct(IDA_CANCEL_CMD);
+// Bitmap* pCanelIcon = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_CANCEL);
+// Application::GetInstance()->GetAppResource()->GetString(L"IDS_COM_SK_CANCEL", strText);
+// cancelBtn.SetText(strText);
+// if (pCanelIcon)
+// {
+// cancelBtn.SetIcon(FOOTER_ITEM_STATUS_NORMAL, pCanelIcon);
+// }
+
+ ButtonItem closeBtn;
+ closeBtn.Construct(BUTTON_ITEM_STYLE_ICON, IDA_BACK_CMD);
+ Bitmap* pCloseIcon = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_BACK);
+ if (pCloseIcon)
+ {
+ closeBtn.SetIcon(BUTTON_ITEM_STATUS_NORMAL, pCloseIcon);
+ Bitmap* pCloseIconPressed = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_BACK_PRESSED);
+ if (pCloseIconPressed)
+ closeBtn.SetIcon(BUTTON_ITEM_STATUS_PRESSED, pCloseIconPressed);
+
+ }
+ footer.SetButton(BUTTON_POSITION_RIGHT, closeBtn);
+
+ // Enable disable footer item
+ if (__pSelectedIds && __pSelectedIds->GetCount() > 0)
+ {
+ footer.SetItemEnabled(0, true);
+ }
+ else
+ {
+ footer.SetItemEnabled(0, false);
+ }
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+ThreadListForm::SetMessageListViewModeFooter(Footer& footer)
+{
+ AppLogDebug("ENTER");
+
+ String strText;
+ footer.RemoveAllItems();
+ footer.RemoveAllButtons();
+ footer.SetStyle(FOOTER_STYLE_BUTTON_ICON_TEXT);
+
+ if (__threadListFormType == THREAD_LIST_FORM_CBMSG_VIEW)
+ {
+ FooterItem deleteBtn;
+ deleteBtn.Construct(IDA_DELETE_CMD);
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_COM_SK_DELETE", strText);
+ deleteBtn.SetText(strText);
+// Bitmap* pDeleteIcon = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_DELETE);
+// if (pDeleteIcon)
+// {
+// deleteBtn.SetIcon(FOOTER_ITEM_STATUS_NORMAL, pDeleteIcon);
+// }
+ footer.AddItem(deleteBtn);
+ }
+ else
+ {
+ FooterItem editBtn;
+ editBtn.Construct(IDA_EDIT);
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_COM_SK_EDIT", strText);
+ editBtn.SetText(strText);
+// Bitmap* pEditIcon = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_EDIT);
+// if (pEditIcon)
+// {
+// deleteBtn.SetIcon(FOOTER_ITEM_STATUS_NORMAL, pEditIcon);
+// }
+ footer.AddItem(editBtn);
+ }
+ if (__threadListFormType == THREAD_LIST_FORM_SPAMMSG_VIEW)
+ {
+ FooterItem settingsBtn;
+ settingsBtn.Construct(IDA_SETTINGS_SPAM_MESSAGES);
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_COM_BODY_SETTINGS", strText);
+ settingsBtn.SetText(strText);
+// Bitmap* pSettingsIcon = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_SETTINGS);
+// if (pSettingsIcon)
+// {
+// settingsBtn.SetIcon(FOOTER_ITEM_STATUS_NORMAL, pSettingsIcon);
+// }
+ footer.AddItem(settingsBtn);
+ }
+
+// FooterItem closeBtn;
+// closeBtn.Construct(IDA_BACK_CMD);
+// Bitmap* pCloseIcon = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_BACK);
+// if (pCloseIcon)
+// {
+// closeBtn.SetIcon(FOOTER_ITEM_STATUS_NORMAL, pCloseIcon);
+// }
+// footer.AddItem(closeBtn);
+
+ // close button creation
+ ButtonItem closeBtn;
+ closeBtn.Construct(BUTTON_ITEM_STYLE_ICON, IDA_BACK_CMD);
+ Bitmap* pCloseIcon = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_BACK);
+ if (pCloseIcon)
+ {
+ closeBtn.SetIcon(BUTTON_ITEM_STATUS_NORMAL, pCloseIcon);
+ }
+ Bitmap* pCloseIconPressed = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_BACK_PRESSED);
+ if (pCloseIconPressed)
+ {
+ closeBtn.SetIcon(BUTTON_ITEM_STATUS_PRESSED, pCloseIconPressed);
+ }
+ footer.SetButton(BUTTON_POSITION_RIGHT, closeBtn);
+
+ // Enable disable footer item
+ ThreadPresentationModel* pThreadPrModel = ThreadPresentationModel::GetInstance();
+ if (pThreadPrModel && pThreadPrModel->GetCount() > 0)
+ {
+ footer.SetItemEnabled(0, true);
+ }
+ else
+ {
+ footer.SetItemEnabled(0, false);
+ }
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+ThreadListForm::SetMessageListEditModeFooter(Footer& footer)
+{
+ AppLogDebug("ENTER");
+
+ String strText;
+ footer.RemoveAllItems();
+ footer.RemoveAllButtons();
+ footer.SetStyle(FOOTER_STYLE_BUTTON_ICON_TEXT);
+
+ FooterItem deleteBtn;
+ deleteBtn.Construct(IDA_DELETE_CMD);
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_COM_SK_DELETE", strText);
+ deleteBtn.SetText(strText);
+ //Bitmap* pDeleteIcon = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_DELETE);
+ //if (pDeleteIcon)
+ //{
+ // deleteBtn.SetIcon(FOOTER_ITEM_STATUS_NORMAL, pDeleteIcon);
+ //}
+ footer.AddItem(deleteBtn);
+
+ switch (__threadListFormType)
+ {
+ case THREAD_LIST_FORM_SIMMSG_EDIT:
+ {
+ FooterItem copyToPhoneBtn;
+ copyToPhoneBtn.Construct(IDA_COPY_TO_PHONE);
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_BODY_COPY_TO_PHONE", strText);
+ copyToPhoneBtn.SetText(strText);
+ //Bitmap* pCoptToPhoneIcon = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_COPY_TO_PHONE);
+ //if (pCoptToPhoneIcon)
+ //{
+ // copyToPhoneBtn.SetIcon(FOOTER_ITEM_STATUS_NORMAL, pCoptToPhoneIcon);
+ //}
+ footer.AddItem(copyToPhoneBtn);
+ }
+ break;
+
+ case THREAD_LIST_FORM_SPAMMSG_EDIT:
+ {
+ FooterItem restoreBtn;
+ restoreBtn.Construct(IDA_RESTORE);
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_SK_RESTORE", strText);
+ restoreBtn.SetText(strText);
+ //Bitmap* pRestoreIcon = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_RESTORE);
+ //if (pRestoreIcon)
+ //{
+ // restoreBtn.SetIcon(FOOTER_ITEM_STATUS_NORMAL, pRestoreIcon);
+ //}
+ footer.AddItem(restoreBtn);
+ }
+ break;
+
+ default:
+ {
+ FooterItem dummyBtnTwo;
+ dummyBtnTwo.Construct(0);
+ //footer.AddItem(dummyBtnTwo);
+ footer.SetItemEnabled(3, false);
+ }
+ break;
+ }
+ ButtonItem closeBtn;
+ closeBtn.Construct(BUTTON_ITEM_STYLE_ICON, IDA_CANCEL_CMD);
+ Bitmap* pCloseIcon = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_BACK);
+ if (pCloseIcon)
+ {
+ closeBtn.SetIcon(BUTTON_ITEM_STATUS_NORMAL, pCloseIcon);
+ }
+ Bitmap* pCloseIconPressed = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_BACK_PRESSED);
+ if (pCloseIconPressed)
+ {
+ closeBtn.SetIcon(BUTTON_ITEM_STATUS_PRESSED, pCloseIconPressed);
+ }
+ footer.SetButton(BUTTON_POSITION_RIGHT, closeBtn);
+ // Enable disable footer item
+ if (__pSelectedIds && __pSelectedIds->GetCount() > 0)
+ {
+ footer.SetItemEnabled(0, true);
+ footer.SetItemEnabled(1, true);
+ }
+ else
+ {
+ footer.SetItemEnabled(0, false);
+ footer.SetItemEnabled(1, false);
+ }
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+ThreadListForm::SetHeader()
+{
+ AppLogDebug("ENTER");
+
+ Header* header = GetHeader();
+ if (header)
+ {
+ String strText;
+ switch (__threadListFormType)
+ {
+ case THREAD_LIST_FORM_VIEW:
+ {
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_COM_BODY_MESSAGES", strText);
+ header->SetTitleText(strText);
+ header->Draw();
+ }
+ break;
+
+ case THREAD_LIST_FORM_SIMMSG_VIEW:
+ {
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_BODY_SIM_CARD_MESSAGES", strText);
+ header->SetTitleText(strText);
+ header->Draw();
+ }
+ break;
+
+ case THREAD_LIST_FORM_SPAMMSG_VIEW:
+ {
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_BODY_SPAM_MESSAGES", strText);
+ header->SetTitleText(strText);
+ header->Draw();
+ }
+ break;
+
+ case THREAD_LIST_FORM_CBMSG_VIEW:
+ {
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_BODY_CB_MESSAGES", strText);
+ header->SetTitleText(strText);
+ header->Draw();
+ }
+ break;
+
+ case THREAD_LIST_FORM_DRAFTMSG_VIEW:
+ {
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSG_BODY_DRAFT_MESSAGES", strText);
+ header->SetTitleText(strText);
+ header->Draw();
+ }
+ break;
+
+ case THREAD_LIST_FORM_EDIT:
+ case THREAD_LIST_FORM_SIMMSG_EDIT:
+ case THREAD_LIST_FORM_SPAMMSG_EDIT:
+ case THREAD_LIST_FORM_CBMSG_EDIT:
+ case THREAD_LIST_FORM_DRAFTMSG_EDIT:
+ {
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_COM_SK_DELETE", strText);
+ header->SetTitleText(strText);
+ header->Draw();
+ }
+ break;
+ }
+ }
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+
+void
+ThreadListForm::ShowSelectionInfo()
+{
+ AppLogDebug("ENTER");
+
+ int selectCount(0);
+ String selcInfo,strText;
+ if (__pSelectedIds)
+ {
+ selectCount = __pSelectedIds->GetCount();
+ }
+ bool showInfo = (selectCount > 0);
+ __pSelectionInfo->SetShowState(true);
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_COM_BODY_PD_SELECTED", strText);
+ selcInfo.Format(MAX_LEN_SELECTION_INFO, strText.GetPointer(), selectCount);
+ __pSelectionInfo->SetText(selcInfo);
+ __pSelectionInfo->RequestRedraw();
+
+ GetFooter()->SetItemEnabled(0, showInfo);
+ if (__threadListFormType == THREAD_LIST_FORM_SPAMMSG_EDIT)
+ {
+ GetFooter()->SetItemEnabled(1, showInfo);
+ }
+ GetFooter()->Draw();
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+ThreadListForm::OnUserEventReceivedN(RequestId requestId, IList* pArgs)
+{
+ AppLogDebug("ENTER");
+ int totalcount = 0;
+ switch (requestId)
+ {
+ case REQUEST_NORMAL_VIEW:
+ HandleBackNavigation();
+ break;
+
+ case REQUEST_DELETE_START:
+ if(pArgs->GetCount() > 0)
+ {
+ Integer* pTotalCount = (Integer*)pArgs->GetAt(0);
+ totalcount = pTotalCount->ToInt();
+ OnDeleteStart(totalcount);
+ delete pArgs;
+ }
+ break;
+
+ case REQUEST_DELETE_UPDATE:
+ if(pArgs->GetCount() > 0)
+ {
+ Integer* pCurrentCount = (Integer*)pArgs->GetAt(0);
+ Integer* pTotalCount = (Integer*)pArgs->GetAt(1);
+ OnDeleteUpdate(pCurrentCount->ToInt(),pTotalCount->ToInt());
+ delete pArgs;
+ }
+ break;
+
+ case REQUEST_DELETE_COMPLETE:
+ if(pArgs->GetCount() > 0)
+ {
+ AppLogDebug("complete");
+ Integer* pStatus = (Integer*)pArgs->GetAt(0);
+ OnDeleteComplete(pStatus->ToInt(),null);
+ delete pArgs;
+ }
+ break;
+
+ default:
+ break;
+ }
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+ThreadListForm::OnSearchBarModeChanged(SearchBar& source, SearchBarMode mode)
+{
+ AppLogDebug("ENTER");
+
+ Rectangle clientRect;
+ __pSearchBar->SetText(IDS_BLANK);
+ if (mode == SEARCH_BAR_MODE_INPUT)
+ {
+ clientRect = GetClientAreaBounds();
+ SetActionBarsVisible(FORM_ACTION_BAR_FOOTER, false);
+ __pSearchBar->SetContentAreaSize(Dimension(clientRect.width, clientRect.height));
+ __pThreadGroupList->SetShowState(false);
+ __pSearchList->SetShowState(true);
+ __pSearchList->UpdateList();
+ }
+ else
+ {
+ __isSearchBarClicked = false;
+ ThreadPresentationModel* pThreadprModel = ThreadPresentationModel::GetInstance();
+ if (pThreadprModel)
+ {
+ pThreadprModel->GetThreadList(__listType);
+ }
+ SetActionBarsVisible(FORM_ACTION_BAR_FOOTER, true);
+ String strText;
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_COM_BODY_SEARCH", strText);
+ __pSearchBar->SetGuideText(strText);
+ __pSearchList->SetShowState(false);
+ __pThreadGroupList->SetShowState(true);
+ __pThreadGroupList->UpdateList();
+ }
+ Draw();
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+//ISearchBarEventListener
+void
+ThreadListForm::OnTextValueChanged(const Control& source)
+{
+ AppLogDebug("ENTER");
+ ThreadPresentationModel* pThreadPrModel = ThreadPresentationModel::GetInstance();
+ if (pThreadPrModel)
+ {
+ if (__pSearchBar->GetTextLength() > 0)
+ {
+ pThreadPrModel->GetSearchThreadList(__pSearchBar->GetText(), __listType);
+ if(pThreadPrModel->GetSearchListCount() <= 0)
+ {
+ __isSearchBarClicked = true;
+ }
+ else
+ {
+ __isSearchBarClicked = false;
+ }
+ }
+ else
+ {
+ __isSearchBarClicked = false;
+ pThreadPrModel->GetThreadList(__listType);
+ }
+ if (__pThreadGroupList->GetShowState())
+ {
+ __pThreadGroupList->SetShowState(false);
+ __pSearchList->SetShowState(true);
+ }
+ __pSearchList->UpdateList();
+ }
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+ThreadListForm::OnKeyReleased(const Control& source, KeyCode keyCode)
+{
+ AppLogDebug("ENTER");
+
+ switch (keyCode)
+ {
+ case KEY_BACKSPACE:
+ {
+ OnTextValueChanged(source);
+ }
+ break;
+
+ default:
+ break;
+ }
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+ThreadListForm::OnSceneActivatedN(const SceneId& previousSceneId, const SceneId& currentSceneId,
+ IList* pArgs)
+{
+ AppLogDebug("ENTER");
+
+ // Request thread list notification.
+ ThreadPresentationModel* pThreadPrModel = ThreadPresentationModel::GetInstance();
+ if (pThreadPrModel)
+ {
+ pThreadPrModel->AddThreadListEventListener(*this);
+ }
+ UpdateMessageThreadList();
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+ThreadListForm::OnSceneDeactivated(const SceneId& currentSceneId, const SceneId& nextSceneId)
+{
+ AppLogDebug("ENTER");
+
+ // Remove thread list notification.
+ ThreadPresentationModel* pThreadPrModel = ThreadPresentationModel::GetInstance();
+ if (pThreadPrModel)
+ {
+ pThreadPrModel->RemoveThreadListEventListener(*this);
+ }
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+
+void
+ThreadListForm::OnFormBackRequested(Form& source)
+{
+ AppLogDebug("ENTER");
+
+ HandleBackNavigation();
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+ThreadListForm::OnActionPerformed(const Control& source, int actionId)
+{
+ AppLogDebug("ENTER");
+
+ //Handle command
+ switch (actionId)
+ {
+
+ case IDA_BACK_CMD:
+ {
+ HandleBackNavigation();
+ }
+ break;
+
+ case IDA_SELECT_ALL_ON:
+ {
+ CheckAll(true);
+ }
+ break;
+
+ case IDA_SELECT_ALL_OFF:
+ {
+ CheckAll(false);
+ }
+ break;
+
+ case IDA_RESTORE:
+ {
+ ThreadPresentationModel* pThreadPrModel = ThreadPresentationModel::GetInstance();
+ if (__pProgressPopup == null)
+ {
+ __pProgressPopup = new (std::nothrow) MsgProgressPopup();
+ __stringTitle.Clear();
+ __stringTitle.Append(IDS_RESTORE_NUMBER_IDS);
+ __pProgressPopup->Construct(0, __pSelectedIds->GetCount(), __stringTitle);
+ }
+ pThreadPrModel->RestoreSpamMsgs(__pSelectedIds,this);
+ }
+ break;
+
+ case IDA_COMPOSE_CMD:
+ {
+
+ SceneManager* pSceneManager = SceneManager::GetInstance();
+ pSceneManager->GoForward(ForwardSceneTransition(IDSCN_COMPOSER, SCENE_TRANSITION_ANIMATION_TYPE_NONE), null);
+ }
+ break;
+
+ case IDA_CANCEL_CMD:
+ {
+ HandleBackNavigation();
+ }
+ break;
+
+ case IDA_EDIT:
+ case IDA_DELETE_CMD:
+ {
+ HandleDeleteOperation();
+ }
+ break;
+
+ case IDA_MORE_CMD:
+ {
+ Point point = source.GetPosition();
+ ShowContextPopup(point);
+ }
+ break;
+
+ case IDA_SIM_MESSAGES_CMD:
+ {
+ SceneManager* pSceneManager = SceneManager::GetInstance();
+ pSceneManager->GoForward(ForwardSceneTransition(IDSCN_SIM_MESSAGE_LIST, SCENE_TRANSITION_ANIMATION_TYPE_NONE), null);
+ }
+ break;
+
+ case IDA_SPAM_MESSAGES_CMD:
+ {
+ SceneManager* pSceneManager = SceneManager::GetInstance();
+ pSceneManager->GoForward(ForwardSceneTransition(IDSCN_SPAM_MESSAGE_LIST, SCENE_TRANSITION_ANIMATION_TYPE_NONE), null);
+ }
+ break;
+
+ case IDA_DRAFT_MESSAGES_CMD:
+ {
+ SceneManager* pSceneManager = SceneManager::GetInstance();
+ pSceneManager->GoForward(ForwardSceneTransition(IDSCN_DRAFT_MESSAGE_LIST, SCENE_TRANSITION_ANIMATION_TYPE_NONE), null);
+ }
+ break;
+
+ case IDA_SETTING_CMD:
+ {
+ SceneManager* pSceneManager = SceneManager::GetInstance();
+ // Show settings form
+ pSceneManager->GoForward(ForwardSceneTransition(IDSCN_SETTINGS, SCENE_TRANSITION_ANIMATION_TYPE_NONE), null);
+ }
+ break;
+
+ case IDA_THREADLIST_MESSAGE_CANCEL:
+ {
+ if (__pDeletePopup)
+ {
+ __pDeletePopup->SetShowState(false);
+ delete __pDeletePopup;
+ __pDeletePopup = null;
+ }
+ }
+ break;
+
+ case IDA_THREADLIST_MESSAGE_DELETE:
+ {
+ if (__pDeletePopup)
+ {
+ __pDeletePopup->SetShowState(false);
+ delete __pDeletePopup;
+ __pDeletePopup = null;
+ }
+ if (__msgListItemIndex > -1)
+ {
+
+ ThreadPresentationModel* pThreadPrModel = ThreadPresentationModel::GetInstance();
+ if (pThreadPrModel)
+ {
+ // Create delete progress popup
+ if (!__pProgressPopup)
+ {
+ __pProgressPopup = new (std::nothrow) MsgProgressPopup();
+ __stringTitle.Clear();
+ __stringTitle.Append(IDS_DELETED_NUMBER_IDS);
+ int maxcount = 1;
+ if (__pSelectedIds)
+ {
+ maxcount = __pSelectedIds->GetCount();
+ }
+ __pProgressPopup->Construct(0, maxcount, __stringTitle);
+ }
+ int deleteId = pThreadPrModel->GetDataAt(__msgListItemIndex)->GetEntryId();
+ if (__listType == THREAD_LIST_TYPE_THREAD)
+ {
+ pThreadPrModel->Delete(deleteId, *this, REQUEST_DELETE_THREAD);
+ }
+ else
+ {
+ pThreadPrModel->Delete(deleteId, *this, REQUEST_DELETE_MESSAGE);
+ }
+ }
+ __msgListItemIndex = -1;
+ }
+ else
+ {
+ if (__pProgressPopup == null)
+ {
+ __pProgressPopup = new (std::nothrow) MsgProgressPopup();
+ __stringTitle.Append(IDS_DELETED_NUMBER_IDS);
+ __pProgressPopup->Construct(0, __pSelectedIds->GetCount(), __stringTitle);
+ }
+ DeleteSelectedItem();
+ }
+ }
+ break;
+
+ case IDA_SETTINGS_SPAM_MESSAGES:
+ {
+ SceneManager* pSceneManager = SceneManager::GetInstance();
+ pSceneManager->GoForward(ForwardSceneTransition(IDSCN_SETTINGS_SPAM_MESSAGE, SCENE_TRANSITION_ANIMATION_TYPE_NONE), null);
+ }
+ break;
+
+ case IDA_PHONENUMBER_BLOCK_OK:
+ {
+ SettingPresentationModel* pSettingPrModel = SettingPresentationModel::GetInstance();
+ pSettingPrModel->AddToFilter(__pPhoneNumber, 1);
+ pSettingPrModel->RefreshSpamFilterList();
+ __pThreadGroupList->RefreshList(__blockGroupIndex, __blockItemIndex, LIST_REFRESH_TYPE_ITEM_MODIFY);
+ if (__pBlockPopup)
+ {
+ __pBlockPopup->SetShowState(false);
+ delete __pBlockPopup;
+ __pBlockPopup = null;
+ }
+
+ }
+ break;
+
+ case IDA_PHONENUMBER_BLOCK_CANCEL:
+ {
+ if (__pBlockPopup)
+ {
+ __pBlockPopup->SetShowState(false);
+ delete __pBlockPopup;
+ __pBlockPopup = null;
+ }
+ }
+ break;
+
+ }
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+ThreadListForm::OnMessageThreadListChange()
+{
+ AppLogDebug("ENTER");
+
+ if (!IsEditForm())
+ {
+ UpdateMessageThreadList();
+ }
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+ThreadListForm::OnDeleteStart(int totalCount)
+{
+ AppLogDebug("ENTER");
+
+ if (__pProgressPopup)
+ {
+ __pProgressPopup->ShowPopup();
+ }
+
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+ThreadListForm::OnDeleteUpdate(int deleteCount, int totalCount)
+{
+ AppLogDebug("ENTER");
+
+ if (__pProgressPopup)
+ {
+ String statusInfo;
+ statusInfo.Format(MAX_LEN_SELECTION_INFO, __stringTitle.GetPointer(), deleteCount, totalCount);
+ __pProgressPopup->UpdateProgressInfo(statusInfo);
+ __pProgressPopup->SetProgressValue(deleteCount);
+ }
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+ThreadListForm::OnDeleteComplete(int errCode, Object* pThreadObject)
+{
+ AppLogDebug("ENTER");
+
+ // Back to thread view mode
+ if (__pProgressPopup)
+ {
+ __pProgressPopup->HidePopup();
+ delete __pProgressPopup;
+ __pProgressPopup = null;
+ }
+
+ // UI thread, Back to list view mode.
+ if (IsEditForm())
+ {
+ RequestId requestId = REQUEST_NORMAL_VIEW;
+ SendUserEvent(requestId, null);
+ }
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+
+void
+ThreadListForm::OnTouchPressed(const Control& source,
+ const Point& currentPosition, const TouchEventInfo& touchInfo)
+{
+ AppLogDebug("ENTER");
+
+ __pSearchBar->HideKeypad();
+ Draw();
+ Show();
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+ThreadListForm::OnGroupedListViewItemStateChanged(GroupedListView& listView, int groupIndex,
+ int itemIndex, int elementId, ListItemStatus status)
+{
+ AppLogDebug("ENTER");
+
+ if(groupIndex == 0 && itemIndex == 0 && __isSearchBarClicked)
+ {
+ return;
+ }
+ ThreadPresentationModel* pThreadPrModel = ThreadPresentationModel::GetInstance();
+ if (pThreadPrModel)
+ {
+ // List item selected.
+ int index = pThreadPrModel->GetSelectedIndex(groupIndex) + itemIndex;
+ switch (status)
+ {
+ case LIST_ITEM_STATUS_CHECKED:
+ {
+ int selectId(0), totalCount(0);
+ selectId = pThreadPrModel->GetDataAt(index)->GetEntryId();
+ totalCount = pThreadPrModel->GetCount();
+ __pSelectedIds->Add(selectId);
+ if (__pSelectedIds->GetCount() == totalCount)
+ {
+ __pCheckAll->SetSelected(true);
+ }
+ ShowSelectionInfo();
+ }
+ break;
+
+ case LIST_ITEM_STATUS_UNCHECKED:
+ {
+ int selectId(0), totalCount(0);
+ selectId = pThreadPrModel->GetDataAt(index)->GetEntryId();
+ totalCount = pThreadPrModel->GetCount();
+ __pSelectedIds->Remove(selectId);
+ if (__pSelectedIds->GetCount() <= totalCount)
+ {
+ __pCheckAll->SetSelected(false);
+ }
+ ShowSelectionInfo();
+ }
+ break;
+
+ case LIST_ITEM_STATUS_SELECTED:
+ {
+ ArrayList* pArgList = new (std::nothrow) ArrayList();
+ if (pArgList == null)
+ {
+ return;
+ }
+ SceneManager* pSceneManager = SceneManager::GetInstance();
+ if (__listType == THREAD_LIST_TYPE_THREAD)
+ {
+ // Transfer ownership
+ BaseData* pThreaddata = pThreadPrModel->GetDataAt(index)->CloneN();
+ pArgList->Add(pThreaddata);
+ pSceneManager->GoForward(ForwardSceneTransition(IDSCN_CONVERSATION_LIST, SCENE_TRANSITION_ANIMATION_TYPE_NONE), pArgList);
+ }
+ else if (__listType == THREAD_LIST_TYPE_DRAFT)
+ {
+ // Load draft message in composer
+ pArgList->Add((new Integer(COMPOSER_LAUNCH_DRAFT_MESSAGE)));
+ int messageId = pThreadPrModel->GetDataAt(index)->GetEntryId();
+ BaseData* pMessageData = pThreadPrModel->GetMessageDataByIdN(messageId);
+ pArgList->Add(pMessageData);
+ pSceneManager->GoForward(ForwardSceneTransition(IDSCN_COMPOSER), pArgList);
+ }
+ else
+ {
+ // Show SMS viewer for SPAM,SIM and broadcast messages.
+ BaseData* pMessageData = pThreadPrModel->GetDataAt(index)->CloneN();
+ pArgList->Add(pMessageData);
+ pSceneManager->GoForward(ForwardSceneTransition(IDSCN_SMS_VIEWER, SCENE_TRANSITION_ANIMATION_TYPE_NONE), pArgList);
+ }
+ }
+ break;
+
+ case LIST_ITEM_STATUS_HIGHLIGHTED:
+ case LIST_ITEM_STATUS_MORE:
+ break;
+ }
+ }
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+ThreadListForm::OnGroupedListViewContextItemStateChanged(GroupedListView& listView, int groupIndex, int itemIndex, int elementId, ListContextItemStatus status)
+{
+ AppLogDebug("ENTER");
+
+ //TODO: When context list item selected.
+ if (status != LIST_CONTEXT_ITEM_STATUS_SELECTED)
+ {
+ return;
+ }
+
+ ThreadPresentationModel* pThreadPrModel = ThreadPresentationModel::GetInstance();
+ if (pThreadPrModel)
+ {
+ int index = pThreadPrModel->GetSelectedIndex(groupIndex) + itemIndex;
+ // Handle context menu command.
+ switch (elementId)
+ {
+ // Delete menu press
+ case IDC_DELETE_CONTEXT_ITEM:
+ {
+ __msgListItemIndex = index;
+ DeletePopup();
+ }
+ break;
+
+ case IDC_VOICE_CALL_ITEM:
+ {
+ __contextItemType = MSG_CONTEXT_ITEM_CALL_TYPE;
+ ContextItemPopup(MSG_CONTEXT_ITEM_CALL_TYPE, index);
+ }
+ break;
+
+ case IDC_BLOCK_ITEM:
+ {
+ __blockGroupIndex = groupIndex;
+ __blockItemIndex = itemIndex;
+ __contextItemType = MSG_CONTEXT_ITEM_BLOCK_TYPE;
+ ContextItemPopup(MSG_CONTEXT_ITEM_BLOCK_TYPE, index);
+ }
+ break;
+
+ case IDC_UNBLOCK_ITEM:
+ {
+ __blockGroupIndex = groupIndex;
+ __blockItemIndex = itemIndex;
+ __contextItemType = MSG_CONTEXT_ITEM_UNBLOCK_TYPE;
+ ContextItemPopup(MSG_CONTEXT_ITEM_UNBLOCK_TYPE, index);
+ }
+ break;
+
+ case IDC_RESTORE:
+ {
+ BaseData* pMsgData = pThreadPrModel->GetDataAt(index);
+ pThreadPrModel->MoveMessageToInbox(pMsgData->GetEntryId());
+ }
+ break;
+
+ case IDC_COPY_TO_PHONE:
+ {
+ BaseData* pMsgData = pThreadPrModel->GetDataAt(index);
+ pThreadPrModel->MoveMessageToPhone(pMsgData->GetEntryId());
+ }
+ break;
+ }
+ }
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+int
+ThreadListForm::GetGroupCount(void)
+{
+ AppLogDebug("ENTER");
+
+ int groupCount = 0;
+ ThreadPresentationModel* pThreadPrModel = ThreadPresentationModel::GetInstance();
+ if (pThreadPrModel)
+ {
+ groupCount = pThreadPrModel->GetGroupCount();
+ }
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ if(groupCount == 0 && __isSearchBarClicked)
+ {
+ groupCount = 1;
+ }
+ return groupCount;
+}
+
+int
+ThreadListForm::GetItemCount(int groupIndex)
+{
+ AppLogDebug("ENTER");
+ int groupItemCount = 0;
+ ThreadPresentationModel* pThreadPrModel = ThreadPresentationModel::GetInstance();
+ if (pThreadPrModel)
+ {
+ groupItemCount = pThreadPrModel->GetGroupItemCount(groupIndex);
+ }
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ if(groupItemCount == 0 && __isSearchBarClicked)
+ {
+ groupItemCount = 1;
+ }
+ return groupItemCount;
+}
+
+GroupItem*
+ThreadListForm::CreateGroupItem(int groupIndex, int itemWidth)
+{
+ AppLogDebug("ENTER");
+
+ if(!__isSearchBarClicked)
+ {
+ GroupItem* pItem = new (std::nothrow) GroupItem();
+ ThreadPresentationModel* pThreadPrModel = ThreadPresentationModel::GetInstance();
+ if (pThreadPrModel)
+ {
+ pItem->Construct(Dimension(itemWidth, H_GROUP_HEADER));
+ String text = pThreadPrModel->GetGroupName(groupIndex);
+ pItem->SetElement(text, null);
+ }
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return pItem;
+ }
+ else
+ {
+ return null;
+ }
+}
+
+bool
+ThreadListForm::DeleteGroupItem(int groupIndex, GroupItem* pItem, int itemWidth)
+{
+ AppLogDebug("ENTER");
+
+ if (pItem)
+ {
+ delete pItem;
+ pItem = null;
+ }
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return true;
+}
+
+ListItemBase*
+ThreadListForm::CreateItem(int groupIndex, int itemIndex, int itemWidth)
+{
+ AppLogDebug("ENTER");
+
+ if(!__isSearchBarClicked )
+ {
+ LVThreadListItem* pThreadListItem = null;
+ ThreadPresentationModel* pThreadPrModel = ThreadPresentationModel::GetInstance();
+ if (pThreadPrModel)
+ {
+ itemIndex = pThreadPrModel->GetSelectedIndex(groupIndex) + itemIndex;
+ bool editMode = IsEditForm();
+ BaseData* pBaseEntry = pThreadPrModel->GetDataAt(itemIndex);
+ pThreadListItem = new (std::nothrow) LVThreadListItem(*pBaseEntry, itemWidth, editMode);
+ // In case search enable
+ String searchText;
+ if (__pSearchBar)
+ {
+ searchText = __pSearchBar->GetText();
+ searchText.ToLowerCase();
+ }
+
+ pThreadListItem->CreateThreadItemLayout(searchText);
+ //For search list no need to display sweep menu.
+ if (!editMode && __pThreadGroupList->GetShowState())
+ {
+ if (__listType == THREAD_LIST_TYPE_THREAD)
+ {
+ bool showBlockContext(false);
+ int threadId = pThreadPrModel->GetDataAt(itemIndex)->GetEntryId();
+ ArrayList* pPhoneNumberList = pThreadPrModel->GetPhoneNumberListN(threadId);
+ if (pPhoneNumberList)
+ {
+ SettingPresentationModel* pSettingPrModel = SettingPresentationModel::GetInstance();
+ for (int index = 0; index < pPhoneNumberList->GetCount(); index++)
+ {
+ String* pNumber = static_cast<String*>(pPhoneNumberList->GetAt(index));
+ int filterIndex = pSettingPrModel->GetFilterListIndex(*pNumber);
+ if (filterIndex == -1)
+ {
+ showBlockContext = true;
+ break;
+ }
+ }
+ pPhoneNumberList->RemoveAll(true);
+ delete pPhoneNumberList;
+ }
+ if (showBlockContext)
+ {
+ pThreadListItem->SetContextItem(__pItemContext);
+ }
+ else
+ {
+ pThreadListItem->SetContextItem(__pItemContextUnblock);
+ }
+ }
+ else
+ {
+ pThreadListItem->SetContextItem(__pItemContext);
+ }
+ }
+ }
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return pThreadListItem;
+ }
+ else
+ {
+ String strText;
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_COM_BODY_NO_SEARCH_RESULTS", strText);
+ CustomItem* pItem = new (std::nothrow) CustomItem();
+ pItem->Construct(Dimension(500,100),LIST_ANNEX_STYLE_NORMAL);
+ //pItem->AddElement(Rectangle(150,25,500,50),1, strText, false);
+ pItem->AddElement(Rectangle(200, 25, 500, 50),
+ 1, strText, 34,
+ COLOR_THREADLIST_DATE_TIME_SHORTMSG_ITEM, COLOR_THREADLIST_DATE_TIME_SHORTMSG_ITEM, COLOR_THREADLIST_DATE_TIME_SHORTMSG_ITEM, false);
+ return pItem;
+ }
+}
+
+bool
+ThreadListForm::DeleteItem(int groupIndex, int itemIndex, ListItemBase* pItem, int itemWidth)
+{
+ AppLogDebug("ENTER");
+
+ if (pItem)
+ {
+ delete pItem;
+ pItem = null;
+ }
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return true;
+}
+
+void
+ThreadListForm::OnKeypadActionPerformed(Control& source, KeypadAction keypadAction)
+{
+ AppLogDebug("ENTER");
+
+ switch(keypadAction)
+ {
+ case KEYPAD_ACTION_SEARCH:
+ __pSearchBar->HideKeypad();
+ break;
+ default:
+ break;
+ }
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+ThreadListForm::UpdateMessageThreadList()
+{
+ AppLogDebug("ENTER");
+
+ if (__pContextMenu)
+ {
+ __pContextMenu->SetShowState(false);
+ delete __pContextMenu;
+ __pContextMenu = null;
+ }
+ //Get thread data list
+ ThreadPresentationModel* pThreadprModel = ThreadPresentationModel::GetInstance();
+ if (pThreadprModel)
+ {
+ if (__pSearchBar && __pSearchBar->GetTextLength() > 0)
+ {
+ pThreadprModel->GetSearchThreadList(__pSearchBar->GetText(), __listType);
+ if(pThreadprModel->GetSearchListCount() <= 0)
+ {
+ __isSearchBarClicked = true;
+ }
+ else
+ {
+ __isSearchBarClicked = false;
+ }
+ }
+ else
+ {
+ pThreadprModel->GetThreadList(__listType);
+ }
+ }
+ SetFooter();
+ SetHeader();
+
+ if(__pThreadGroupList->GetShowState())
+ {
+ __pThreadGroupList->UpdateList();
+ }
+ if(__pSearchList && __pSearchList->GetShowState())
+ {
+ __pSearchList->UpdateList();
+ }
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+result
+ThreadListForm::ShowContextPopup(Point& position)
+{
+ AppLogDebug("ENTER");
+ result r = E_SUCCESS;
+ if (__pContextMenu)
+ {
+ delete __pContextMenu;
+ }
+ __pContextMenu = new (std::nothrow) ContextMenu();
+ r = __pContextMenu->Construct(position, CONTEXT_MENU_STYLE_LIST);
+ if (r != E_SUCCESS)
+ {
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ delete __pContextMenu;
+ __pContextMenu = null;
+ return r;
+ }
+ String strText;
+ ThreadPresentationModel* pThreadPrModel = ThreadPresentationModel::GetInstance();
+ if (pThreadPrModel && pThreadPrModel->GetCount() > 0)
+ {
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_COM_SK_DELETE", strText);
+ __pContextMenu->AddItem(strText, IDA_DELETE_CMD);
+ }
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_BODY_SIM_CARD_MESSAGES", strText);
+ __pContextMenu->AddItem(strText, IDA_SIM_MESSAGES_CMD);
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_BODY_SPAM_MESSAGES", strText);
+ __pContextMenu->AddItem(strText, IDA_SPAM_MESSAGES_CMD);
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSG_BODY_DRAFT_MESSAGES", strText);
+ __pContextMenu->AddItem(strText, IDA_DRAFT_MESSAGES_CMD);
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_COM_BODY_SETTINGS", strText);
+ __pContextMenu->AddItem(strText, IDA_SETTING_CMD);
+ __pContextMenu->AddActionEventListener(*this);
+ __pContextMenu->SetShowState(true);
+ __pContextMenu->SetMaxVisibleItemsCount(6);
+ __pContextMenu->Show();
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return r;
+}
+
+void
+ThreadListForm::VoiceCall(const String& phoneNumber)
+{
+ AppLogDebug("ENTER");
+
+ if (CommonUtil::IsSimAvailable())
+ {
+ ContactUtility::VoiceCall(phoneNumber);
+ }
+ else
+ {
+ // Show error message.
+ String msgText;
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_SLCD_POP_TEXT_SIM_CARD_ERROR", msgText);
+ CommonUtil::ShowInfoPopup(msgText);
+ }
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+ThreadListForm::DeletePopup(void)
+{
+ AppLogDebug("ENTER");
+
+ __pDeletePopup = new (std::nothrow) BaseCustomPopup();
+ __pDeletePopup->Construct(L"IDL_DELETE_POPUP");
+
+ Button* pButtonDelete = static_cast<Button*>(__pDeletePopup->GetControl(L"IDC_BUTTON_LEFT"));
+ Button* pButtonCancel = static_cast<Button*>(__pDeletePopup->GetControl(L"IDC_BUTTON_RIGHT"));
+
+ pButtonDelete->SetActionId(IDA_THREADLIST_MESSAGE_DELETE);
+ pButtonDelete->AddActionEventListener(*this);
+
+ pButtonCancel->SetActionId(IDA_THREADLIST_MESSAGE_CANCEL);
+ pButtonCancel->AddActionEventListener(*this);
+
+ __pDeletePopup->Show();
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+ThreadListForm::OnPopupListItemSelected(const Control& popup, int selectedItem, const Object* pPopupListItem)
+{
+ AppLogDebug("ENTER");
+ if (pPopupListItem)
+ {
+ const String* pNumber = (String*) pPopupListItem;
+ __pPhoneNumber = *pNumber;
+ if (__contextItemType == MSG_CONTEXT_ITEM_CALL_TYPE)
+ {
+ VoiceCall(*pNumber);
+ }
+ else if (__contextItemType == MSG_CONTEXT_ITEM_BLOCK_TYPE)
+ {
+ BlockPopup(*pNumber);
+ }
+ else
+ {
+ UnBlockNumber(*pNumber);
+ }
+ }
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+ThreadListForm::OnPopupClose(Object* pObject)
+{
+ AppLogDebug("ENTER");
+
+ if (__pPhoneNumberListPopup && __pPhoneNumberListPopup->Equals(*pObject))
+ {
+ delete __pPhoneNumberListPopup;
+ __pPhoneNumberListPopup = null;
+ }
+
+ AppLogDebug("EXIT: r= %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+ThreadListForm::HandleDeleteOperation(void)
+{
+ AppLogDebug("ENTER");
+
+ switch (__threadListFormType)
+ {
+ case THREAD_LIST_FORM_VIEW:
+ {
+ SceneManager* pSceneManager = SceneManager::GetInstance();
+ pSceneManager->GoForward(ForwardSceneTransition(IDSCN_THREAD_LIST_EDITOR, SCENE_TRANSITION_ANIMATION_TYPE_NONE), null);
+ }
+ break;
+
+ case THREAD_LIST_FORM_SIMMSG_VIEW:
+ {
+ SceneManager* pSceneManager = SceneManager::GetInstance();
+ pSceneManager->GoForward(ForwardSceneTransition(IDSCN_SIM_MESSAGE_LIST_EDITOR, SCENE_TRANSITION_ANIMATION_TYPE_NONE), null);
+ }
+ break;
+
+ case THREAD_LIST_FORM_SPAMMSG_VIEW:
+ {
+ SceneManager* pSceneManager = SceneManager::GetInstance();
+ pSceneManager->GoForward(ForwardSceneTransition(IDSCN_SPAM_MESSAGE_LIST_EDITOR, SCENE_TRANSITION_ANIMATION_TYPE_NONE), null);
+ }
+ break;
+
+ case THREAD_LIST_FORM_CBMSG_VIEW:
+ {
+ SceneManager* pSceneManager = SceneManager::GetInstance();
+ pSceneManager->GoForward(ForwardSceneTransition(IDSCN_CB_MESSAGE_LIST_EDITOR, SCENE_TRANSITION_ANIMATION_TYPE_NONE), null);
+ }
+ break;
+
+ case THREAD_LIST_FORM_DRAFTMSG_VIEW:
+ {
+ SceneManager* pSceneManager = SceneManager::GetInstance();
+ pSceneManager->GoForward(ForwardSceneTransition(IDSCN_DRAFT_MESSAGE_LIST_EDITOR, SCENE_TRANSITION_ANIMATION_TYPE_NONE), null);
+ }
+ break;
+
+ case THREAD_LIST_FORM_EDIT:
+ case THREAD_LIST_FORM_SIMMSG_EDIT:
+ case THREAD_LIST_FORM_SPAMMSG_EDIT:
+ case THREAD_LIST_FORM_CBMSG_EDIT:
+ case THREAD_LIST_FORM_DRAFTMSG_EDIT:
+ {
+ DeletePopup();
+ }
+ break;
+ }
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+ThreadListForm::HandleBackNavigation(void)
+{
+ AppLogDebug("ENTER");
+
+ switch (__threadListFormType)
+ {
+ case THREAD_LIST_FORM_VIEW:
+ {
+ // Close App.
+ UiApp* pApp = UiApp::GetInstance();
+ AppAssert(pApp);
+ pApp->Terminate();
+ }
+ break;
+
+ case THREAD_LIST_FORM_SIMMSG_VIEW:
+ case THREAD_LIST_FORM_SPAMMSG_VIEW:
+ case THREAD_LIST_FORM_CBMSG_VIEW:
+ case THREAD_LIST_FORM_DRAFTMSG_VIEW:
+ case THREAD_LIST_FORM_EDIT:
+ {
+ SceneManager* pSceneManager = SceneManager::GetInstance();
+ pSceneManager->GoBackward(BackwardSceneTransition(IDSCN_THREAD_LIST, SCENE_TRANSITION_ANIMATION_TYPE_NONE), null);
+ }
+ break;
+
+ case THREAD_LIST_FORM_SIMMSG_EDIT:
+ {
+ SceneManager* pSceneManager = SceneManager::GetInstance();
+ pSceneManager->GoBackward(BackwardSceneTransition(IDSCN_SIM_MESSAGE_LIST, SCENE_TRANSITION_ANIMATION_TYPE_NONE), null);
+ }
+ break;
+
+ case THREAD_LIST_FORM_SPAMMSG_EDIT:
+ {
+ SceneManager* pSceneManager = SceneManager::GetInstance();
+ pSceneManager->GoBackward(BackwardSceneTransition(IDSCN_SPAM_MESSAGE_LIST, SCENE_TRANSITION_ANIMATION_TYPE_NONE), null);
+ }
+ break;
+
+ case THREAD_LIST_FORM_CBMSG_EDIT:
+ {
+ SceneManager* pSceneManager = SceneManager::GetInstance();
+ pSceneManager->GoBackward(BackwardSceneTransition(IDSCN_CB_MESSAGE_LIST, SCENE_TRANSITION_ANIMATION_TYPE_NONE), null);
+ }
+ break;
+
+ case THREAD_LIST_FORM_DRAFTMSG_EDIT:
+ {
+ SceneManager* pSceneManager = SceneManager::GetInstance();
+ pSceneManager->GoBackward(BackwardSceneTransition(IDSCN_DRAFT_MESSAGE_LIST, SCENE_TRANSITION_ANIMATION_TYPE_NONE), null);
+ }
+ break;
+ }
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+bool
+ThreadListForm::IsEditForm(void)
+{
+ AppLogDebug("ENTER");
+
+ bool editMode(false);
+ switch (__threadListFormType)
+ {
+ case THREAD_LIST_FORM_VIEW:
+ case THREAD_LIST_FORM_SIMMSG_VIEW:
+ case THREAD_LIST_FORM_SPAMMSG_VIEW:
+ case THREAD_LIST_FORM_CBMSG_VIEW:
+ case THREAD_LIST_FORM_DRAFTMSG_VIEW:
+ {
+ editMode = false;
+ }
+ break;
+
+ case THREAD_LIST_FORM_EDIT:
+ case THREAD_LIST_FORM_SIMMSG_EDIT:
+ case THREAD_LIST_FORM_SPAMMSG_EDIT:
+ case THREAD_LIST_FORM_CBMSG_EDIT:
+ case THREAD_LIST_FORM_DRAFTMSG_EDIT:
+ {
+ editMode = true;
+ }
+ break;
+ }
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return editMode;
+}
+
+void
+ThreadListForm::BlockPopup(const String& phoneNumber)
+{
+ AppLogDebug("ENTER");
+
+ String number;
+ String strText;
+
+ __pBlockPopup = new (std::nothrow) Popup();
+ __pBlockPopup->Construct(L"IDL_BLOCK_POPUP");
+ Button* pButtonOk = static_cast<Button*>(__pBlockPopup->GetControl(L"IDC_BUTTON_OK"));
+ pButtonOk->SetActionId(IDA_PHONENUMBER_BLOCK_OK);
+ pButtonOk->AddActionEventListener(*this);
+ Button* pButtonCancel = static_cast<Button*>(__pBlockPopup->GetControl(L"IDC_BUTTON_CANCEL"));
+ pButtonCancel->SetActionId(IDA_PHONENUMBER_BLOCK_CANCEL);
+ pButtonCancel->AddActionEventListener(*this);
+ Label* pLabelNumber = static_cast<Label*>(__pBlockPopup->GetControl(L"IDC_BLOCKNUMBER_LABEL"));
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_POP_BLOCK_PS_Q", strText);
+ strText.Replace(L"%s", phoneNumber);
+ number.Append(strText);
+ pLabelNumber->SetText(number);
+
+ __pBlockPopup->Show();
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+ThreadListForm::ContextItemPopup(int itemType, int itemIndex)
+{
+ AppLogDebug("ENTER");
+
+ ThreadPresentationModel* pThreadPrModel = ThreadPresentationModel::GetInstance();
+ if (pThreadPrModel)
+ {
+ int threadId = pThreadPrModel->GetDataAt(itemIndex)->GetEntryId();
+ ArrayList* pPhoneNumberList = pThreadPrModel->GetPhoneNumberListN(threadId);
+ if (pPhoneNumberList)
+ {
+ if (pPhoneNumberList->GetCount() > 1)
+ {
+ if ((itemType == MSG_CONTEXT_ITEM_BLOCK_TYPE) || (itemType == MSG_CONTEXT_ITEM_UNBLOCK_TYPE))
+ {
+ FilterBlockUnblockNumberList(*pPhoneNumberList, (itemType == MSG_CONTEXT_ITEM_BLOCK_TYPE));
+ }
+ __pPhoneNumberListPopup = new (std::nothrow) PhoneNumberListPopup(*this);
+ __pPhoneNumberListPopup->Construct(pPhoneNumberList);
+ __pPhoneNumberListPopup->Show();
+ pPhoneNumberList = null;
+ }
+ else
+ {
+ String* pNumber = static_cast<String*>(pPhoneNumberList->GetAt(0));
+ __pPhoneNumber = *pNumber;
+ switch (itemType)
+ {
+ case MSG_CONTEXT_ITEM_CALL_TYPE:
+ {
+ VoiceCall(*pNumber);
+ }
+ break;
+
+ case MSG_CONTEXT_ITEM_BLOCK_TYPE:
+ {
+ BlockPopup(*pNumber);
+ }
+ break;
+
+ case MSG_CONTEXT_ITEM_UNBLOCK_TYPE:
+ {
+ UnBlockNumber(*pNumber);
+ }
+ break;
+ }
+ }
+ // If ownership not yet transferred released it.
+ if (pPhoneNumberList)
+ {
+ pPhoneNumberList->RemoveAll(true);
+ delete pPhoneNumberList;
+ pPhoneNumberList = null;
+ }
+ }
+ }
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+ThreadListForm::UnBlockNumber(const String& phoneNumber)
+{
+ AppLogDebug("ENTER");
+
+ SettingPresentationModel* pSettingPrModel = SettingPresentationModel::GetInstance();
+ pSettingPrModel->GetSpamFilterList();
+ int filterIndex = pSettingPrModel->GetFilterListIndex(phoneNumber);
+ if (filterIndex >= 0)
+ {
+ pSettingPrModel->DeleteFilter(filterIndex, 1);
+ pSettingPrModel->RefreshSpamFilterList();
+ __pThreadGroupList->RefreshList(__blockGroupIndex, __blockItemIndex, LIST_REFRESH_TYPE_ITEM_MODIFY);
+ }
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+ThreadListForm::FilterBlockUnblockNumberList(IList& numberList, bool blockList)
+{
+ AppLogDebug("ENTER");
+
+ SettingPresentationModel* pSettingPrModel = SettingPresentationModel::GetInstance();
+ if (pSettingPrModel)
+ {
+ pSettingPrModel->GetSpamFilterList();
+ for (int index = 0; index < numberList.GetCount(); index++)
+ {
+ String* pPhoneNumber = (String*) numberList.GetAt(index);
+ int filterIndex = pSettingPrModel->GetFilterListIndex(*pPhoneNumber);
+ if (blockList)
+ {
+ if (filterIndex >= 0)
+ {
+ numberList.RemoveAt(index, true);
+ index--;
+ }
+ }
+ else
+ {
+ if (filterIndex < 0)
+ {
+ numberList.RemoveAt(index, true);
+ index--;
+ }
+ }
+ }
+ }
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+result
+ThreadListForm::CreateContextMenuUnBlock()
+{
+ AppLogDebug("ENTER");
+
+ // Create List context menu
+ __pItemContextUnblock = new (std::nothrow) ListContextItem();
+ result r = __pItemContextUnblock->Construct();
+ //ThreadList
+ String strText;
+ switch (__threadListFormType)
+ {
+ case THREAD_LIST_FORM_VIEW:
+ {
+ //ThreadList
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_COM_SK_CALL", strText);
+ __pItemContextUnblock->AddElement(IDC_VOICE_CALL_ITEM, strText);
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_OPT_UNBLOCK", strText);
+ __pItemContextUnblock->AddElement(IDC_UNBLOCK_ITEM, strText);
+ }
+ break;
+
+ default:
+ break;
+ }
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_COM_SK_DELETE", strText);
+ Bitmap* pSweepNormalIcon = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_DELETE_SWEEP,
+ Dimension(W_LIST_SWEEP_BUTTON_100PX, H_LIST_SWEEP_BUTTON_74PX));
+ Bitmap* pSweepPressIcon = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_DELETE_PRESS_SWEEP,
+ Dimension(W_LIST_SWEEP_BUTTON_100PX, H_LIST_SWEEP_BUTTON_74PX));
+ __pItemContextUnblock->AddElement(IDC_DELETE_CONTEXT_ITEM, strText, *pSweepNormalIcon, *pSweepPressIcon);
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return r;
+}
--- /dev/null
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+#include <cstdlib>
+#include <msg.h>
+#include <msg_storage.h>
+#include <msg_storage_types.h>
+
+#include <FBase.h>
+#include <FBaseColIMapEnumerator.h>
+#include <FBaseErrorDefine.h>
+#include <FBaseRtIEventListener.h>
+
+#include "MsgDeleteHandlerThread.h"
+#include "MsgEvent.h"
+#include "MsgIConversationEventListener.h"
+#include "MsgIThreadEventListener.h"
+#include "MsgMessageData.h"
+#include "MsgThreadData.h"
+#include "MsgThreadPresentationModel.h"
+#include "MsgTypes.h"
+
+using namespace Tizen::Base;
+using namespace Tizen::Base::Collection;
+using namespace Tizen::Base::Runtime;
+using namespace Tizen::Ui;
+
+ThreadPresentationModel* ThreadPresentationModel::__pInstance = null;
+
+ThreadPresentationModel*
+ThreadPresentationModel::GetInstance(void)
+{
+ AppLogDebug("ENTER");
+
+ if (__pInstance == null)
+ {
+ CreateInstance();
+ }
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return __pInstance;
+}
+
+ThreadPresentationModel::ThreadPresentationModel(void)
+ : __pThreadListListener(null)
+ , __listType(-1)
+ , __searchListCount(0)
+{
+ //Empty implementation
+}
+
+ThreadPresentationModel::~ThreadPresentationModel(void)
+{
+ AppLogDebug("ENTER");
+
+ if (__pThreadListListener)
+ {
+ __pThreadListListener->RemoveAll(true);
+ delete __pThreadListListener;
+ }
+
+ // Destructor call, so make sure static instance does not have wrong address.
+ __pInstance = null;
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+
+}
+
+result
+ThreadPresentationModel::Construct(void)
+{
+ AppLogDebug("ENTER");
+
+ result r = E_SUCCESS;
+ r = ListPresentationModel::Construct();
+ if (r == E_SUCCESS)
+ {
+ msg_error_t err = msg_reg_storage_change_callback(__pMsgHandle, &MessageStorageChangeCallback, this);
+ if (err != MSG_SUCCESS)
+ {
+ AppLogDebug("msg_reg_storage_change_callback err = %d", (int) err);
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ r = E_FAILURE;
+ return r;
+ }
+ // Create thread observer list
+ __pThreadListListener = new (std::nothrow) ArrayList();
+ __pThreadListListener->Construct();
+ }
+ AppLogDebug("EXIT: %s", GetErrorMessage(r));
+ return r;
+}
+
+void
+ThreadPresentationModel::CreateInstance(void)
+{
+ AppLogDebug("ENTER");
+ __pInstance = new (std::nothrow) ThreadPresentationModel();
+ if (E_SUCCESS != __pInstance->Construct())
+ {
+ delete __pInstance;
+ __pInstance = null;
+ return;
+ }
+ std::atexit(DestroyInstance);
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+}
+
+void
+ThreadPresentationModel::DestroyInstance(void)
+{
+ AppLogDebug("ENTER");
+ delete __pInstance;
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+}
+
+void
+ThreadPresentationModel::GetThreadList(int threadListType)
+{
+ AppLogDebug("ENTER");
+
+ __listType = threadListType;
+ __pDataList->RemoveAll(true);
+ __pGroupInfo->RemoveAll(true);
+ result r = E_SUCCESS;
+ msg_error_t err = MSG_SUCCESS;
+ msg_struct_list_s* pMsgDataList = new (std::nothrow) msg_struct_list_s();
+ pMsgDataList->nCount = 0;
+ pMsgDataList->msg_struct_info = NULL;
+
+ switch (threadListType)
+ {
+ case THREAD_LIST_TYPE_THREAD:
+ {
+ // Set up sort rule
+ msg_struct_t sortRule = {0};
+ msg_set_int_value(sortRule, MSG_SORT_RULE_SORT_TYPE_INT, MSG_SORT_BY_THREAD_DATE);
+ msg_set_bool_value(sortRule, MSG_SORT_RULE_ACSCEND_BOOL, false);
+ err = msg_get_thread_view_list(__pMsgHandle, (const msg_struct_t) sortRule, pMsgDataList);
+ }
+ break;
+
+ case THREAD_LIST_TYPE_SPAM:
+ {
+ msg_folder_id_t folderId = MSG_SPAMBOX_ID;
+ err = msg_get_message_list(__pMsgHandle, folderId, 0, 0, 0, pMsgDataList);
+ }
+ break;
+
+ case THREAD_LIST_TYPE_SIM:
+ {
+ err = msg_get_message_list(__pMsgHandle, MSG_ALLBOX_ID, 0, MSG_TYPE_SMS, MSG_STORAGE_SIM, pMsgDataList);
+ }
+ break;
+
+ case THREAD_LIST_TYPE_CBMSG:
+ {
+ err = msg_get_message_list(__pMsgHandle, MSG_CBMSGBOX_ID, 0, 0, 0, pMsgDataList);
+ }
+ break;
+
+ case THREAD_LIST_TYPE_DRAFT:
+ {
+ err = msg_get_message_list(__pMsgHandle, MSG_DRAFT_ID, 0, 0, 0, pMsgDataList);
+ }
+ break;
+ }
+
+ if (err == MSG_SUCCESS)
+ {
+ if (__listType == THREAD_LIST_TYPE_THREAD)
+ {
+ ThreadData* pThreadData = null;
+ for (int index = 0; index < pMsgDataList->nCount; index++)
+ {
+ // Take structure ownership
+ pThreadData = new (std::nothrow) ThreadData(__pMsgHandle);
+ pThreadData->Construct(pMsgDataList->msg_struct_info[index]);
+ r = __pDataList->Add(pThreadData);
+ if (IsFailed(r))
+ {
+ delete pThreadData;
+ }
+ }
+ }
+ else
+ {
+ MessageData* pMessageData = null;
+ for (int index = 0; index < pMsgDataList->nCount; index++)
+ {
+ // Take structure ownership
+ pMessageData = new (std::nothrow) MessageData();
+ pMessageData->Construct(pMsgDataList->msg_struct_info[index]);
+#ifdef _DISABLE_MMS_FEATURE_
+ if (pMessageData && pMessageData->IsMms())
+ {
+ delete pMessageData;
+ pMessageData = null;
+ }
+#endif
+ if (pMessageData)
+ {
+ r = __pDataList->Add(pMessageData);
+ if (IsFailed(r))
+ {
+ delete pMessageData;
+ }
+ }
+ }
+ }
+ PrepareGroupInfo();
+ }
+ AppLogDebug(" msg_get_thread_view_list err = %d", (int) err);
+ msg_release_list_struct(pMsgDataList);
+ delete pMsgDataList;
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+ThreadPresentationModel::GetSearchThreadList(const String& msgSearchText, int threadListType)
+{
+ AppLogDebug("ENTER");
+
+ __listType = threadListType;
+ __pDataList->RemoveAll(true);
+ __pGroupInfo->RemoveAll(true);
+ result r = E_SUCCESS;
+ // Prepare search string.
+ int msgLength = msgSearchText.GetLength() * 4 + 1; // For null terminated.
+ char* pSearchText = new (std::nothrow) char[msgLength];
+ if (pSearchText)
+ {
+ memset(pSearchText, '\0', msgLength);
+ const wchar_t* pText = msgSearchText.GetPointer();
+ wcstombs(pSearchText, pText, (size_t) msgLength);
+ }
+
+ msg_struct_t pSearchCondition = null;
+ switch (threadListType)
+ {
+ case THREAD_LIST_TYPE_THREAD:
+ {
+ // Set up sort rule
+ msg_struct_t sortRule = {0};
+ msg_set_int_value(sortRule, MSG_SORT_RULE_SORT_TYPE_INT, MSG_SORT_BY_THREAD_DATE);
+ msg_set_bool_value(sortRule, MSG_SORT_RULE_ACSCEND_BOOL, false);
+ }
+ break;
+
+ case THREAD_LIST_TYPE_SPAM:
+ {
+ pSearchCondition = msg_create_struct(MSG_STRUCT_SEARCH_CONDITION);
+ msg_set_int_value(pSearchCondition, MSG_SEARCH_CONDITION_FOLDERID_INT, MSG_SPAMBOX_ID);
+ }
+ break;
+
+ case THREAD_LIST_TYPE_SIM:
+ {
+ pSearchCondition = msg_create_struct(MSG_STRUCT_SEARCH_CONDITION);
+ msg_set_int_value(pSearchCondition, MSG_SEARCH_CONDITION_FOLDERID_INT, MSG_ALLBOX_ID);
+ msg_set_int_value(pSearchCondition, MSG_SEARCH_CONDITION_MSGTYPE_INT, MSG_TYPE_SMS);
+ }
+ break;
+
+ case THREAD_LIST_TYPE_CBMSG:
+ {
+ pSearchCondition = msg_create_struct(MSG_STRUCT_SEARCH_CONDITION);
+ msg_set_int_value(pSearchCondition, MSG_SEARCH_CONDITION_FOLDERID_INT, MSG_CBMSGBOX_ID);
+ }
+ break;
+
+ case THREAD_LIST_TYPE_DRAFT:
+ {
+ pSearchCondition = msg_create_struct(MSG_STRUCT_SEARCH_CONDITION);
+ msg_set_int_value(pSearchCondition, MSG_SEARCH_CONDITION_FOLDERID_INT, MSG_DRAFT_ID);
+ }
+ break;
+ }
+
+ msg_struct_list_s* pMsgDataList = new (std::nothrow) msg_struct_list_s();
+ pMsgDataList->nCount = 0;
+ pMsgDataList->msg_struct_info = NULL;
+ msg_error_t err = MSG_SUCCESS;
+ if (pSearchText)
+ {
+ if (threadListType == THREAD_LIST_TYPE_THREAD)
+ {
+ err = msg_search_message_for_thread_view(__pMsgHandle, pSearchText, pMsgDataList);
+
+ }
+ else
+ {
+ msg_set_str_value(pSearchCondition, MSG_SEARCH_CONDITION_SEARCH_VALUE_STR, pSearchText, (int) strlen(pSearchText));
+ err = msg_search_message(__pMsgHandle, (const msg_struct_t) pSearchCondition, 0, 0, pMsgDataList);
+ }
+ }
+ delete[] pSearchText;
+ msg_release_struct(&pSearchCondition);
+
+ if (err == MSG_SUCCESS)
+ {
+ __searchListCount = pMsgDataList->nCount;
+
+ if (__listType == THREAD_LIST_TYPE_THREAD)
+ {
+ ThreadData* pThreadData = null;
+ for (int index = 0; index < pMsgDataList->nCount; index++)
+ {
+ pThreadData = new (std::nothrow) ThreadData(__pMsgHandle);
+ pThreadData->Construct(pMsgDataList->msg_struct_info[index]);
+ r = __pDataList->Add(pThreadData);
+ if (IsFailed(r))
+ {
+ delete pThreadData;
+ }
+ }
+ }
+ else
+ {
+ MessageData* pMessageData = null;
+ for (int index = 0; index < pMsgDataList->nCount; index++)
+ {
+ pMessageData = new (std::nothrow) MessageData();
+ pMessageData->Construct(pMsgDataList->msg_struct_info[index]);
+ r = __pDataList->Add(pMessageData);
+ if (IsFailed(r))
+ {
+ delete pMessageData;
+ }
+ }
+ }
+ PrepareGroupInfo();
+ }
+ AppLogDebug(" msg_get_thread_view_list err = %d", (int) err);
+ msg_release_list_struct(pMsgDataList);
+ delete pMsgDataList;
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+int
+ThreadPresentationModel::GetSearchListCount(void)
+{
+ AppLogDebug("ENTER");
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return __searchListCount;
+}
+
+result
+ThreadPresentationModel::AddThreadListEventListener(const IThreadEventListener& threadListener)
+{
+ AppLogDebug("ENTER");
+
+ ThreadEvent* pThreadEvent = new (std::nothrow) ThreadEvent(&threadListener);
+ result r = __pThreadListListener->Add(pThreadEvent); // Transfer ownership.
+ if (r != E_SUCCESS)
+ {
+ delete pThreadEvent;
+ pThreadEvent = null;
+ }
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return r;
+}
+
+result
+ThreadPresentationModel::RemoveThreadListEventListener(const IThreadEventListener& threadLitener)
+{
+ AppLogDebug("ENTER");
+
+ result r = E_SUCCESS;
+ if (__pThreadListListener)
+ {
+ IEnumerator* pEventenum = __pThreadListListener->GetEnumeratorN();
+ if (pEventenum)
+ {
+ ThreadEvent* pThreadEvent = null;
+ while (pEventenum->MoveNext() == E_SUCCESS)
+ {
+ pThreadEvent = static_cast<ThreadEvent*>(pEventenum->GetCurrent());
+ if (pThreadEvent->IsSame(&threadLitener))
+ {
+ // Took ownership, delete element object.
+ r = __pThreadListListener->Remove(*pThreadEvent, true);
+ break;
+ }
+ }
+ }
+ // Free memory
+ if (pEventenum)
+ {
+ delete pEventenum;
+ pEventenum = null;
+ }
+ }
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return r;
+}
+
+void
+ThreadPresentationModel::MessageStorageChangeCallback(msg_handle_t pHandle,
+ msg_storage_change_type_t storageChangeType, msg_id_list_s* pMsgIdList, void* pUserData)
+{
+ AppLogDebug("ENTER");
+
+ if (!pUserData || !pMsgIdList)
+ {
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+ }
+ static_cast<ThreadPresentationModel*>(pUserData)->OnMessageStorageChange(storageChangeType, pMsgIdList);
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+ThreadPresentationModel::OnMessageStorageChange(msg_storage_change_type_t storageChangeType, msg_id_list_s* pMsgIdList)
+{
+ AppLogDebug("ENTER");
+
+ if (__pThreadListListener->GetCount( ) > 0)
+ {
+ NotifyThreadChange();
+ }
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+ThreadPresentationModel::NotifyThreadChange(void)
+{
+ AppLogDebug("ENTER");
+
+ IEnumerator* pEventenum = __pThreadListListener->GetEnumeratorN();
+ if (pEventenum)
+ {
+ ThreadEvent* pThreadEvent = null;
+ while (pEventenum->MoveNext() == E_SUCCESS)
+ {
+ pThreadEvent = static_cast<ThreadEvent*>(pEventenum->GetCurrent());
+ IThreadEventListener* pThreadObserver = static_cast<IThreadEventListener*>(
+ const_cast<IEventListener*>(pThreadEvent->GetEvent()));
+ if (pThreadObserver)
+ {
+ pThreadObserver->OnMessageThreadListChange();
+ }
+ }
+ }
+ // Free memory
+ if (pEventenum)
+ {
+ delete pEventenum;
+ pEventenum = null;
+ }
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
--- /dev/null
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+#include <FGraphics.h>
+
+#include "MsgTypes.h"
+
+using namespace Tizen::Graphics;
+
+// constant
+const int YEAR_1900 = 1900;
+const int DAYS_365 = 365;
+const int LEAP_YEAR_GAP = 4;
+
+//Button
+const int W_CANCEL_BUTTON = 400;
+const int H_CANCEL_BUTTON = 72;
+const int W_SEND_BUTTON = 108;
+const int W_ATTACH_BUTTON = 64;
+const int H_ATTACH_BUTTON = 64;
+const int W_PLAYCONTROL_BUTTON = 56;
+const int H_PLAYCONTROL_BUTTON = 56;
+
+//Check Box
+const int H_CHECKBOX = 75;
+const int W_CHECKBOX = 90;
+
+//Editor
+const int MAX_MSG_EDITOR_LINE = 4;
+const int MIN_COMPOSE_EDITOR_HEIGHT = 74;
+const int H_MSG_COMPOSE_EDITOR = 90;
+
+//Recipent count
+const int MAX_COUNT = 10;
+const int MAX_ITEM = 10;
+const int MAX_LENGTH = 20;
+
+//Panel
+const int PANEL_HEIGHT = 114;
+
+//Label
+const int H_MSG_SELECTION_INFO_LABEL = 50;
+const int H_MSG_DETAILS_LABEL = 60;
+
+// List item
+const int H_LIST_ITEM_112PX = 112;
+const int H_GROUP_HEADER = 48;
+const int W_LIST_ITEM_GROUP_INDICATOR = 10;
+const int H_LIST_GROUP = 82;
+const int H_TITLE_LINE = 60;
+const int H_SUB_TITLE = 48;
+const int H_LIST_ITEM_128PX = 128;
+const int H_LIST_SWEEP_BUTTON_74PX = 74;
+const int W_LIST_SWEEP_BUTTON_100PX = 100;
+const int H_CONTACT_LIST_ITEM = 165;
+const int W_LIST_SUB_ITEMS = 60;
+
+// Message Counter
+const int MESSAGE_LENGTH = 160;
+const int MESSAGE_LENGTH_2 = 146;
+const int MESSAGE_LENGTH_3 = 153;
+const int H_SHOW_COUNTER_TEXT = 130;
+
+// Margin
+const int MARGIN_4PX = 4;
+const int MARGIN_5PX = 5;
+const int MARGIN_10PX = 10;
+const int MARGIN_12PX = 12;
+const int MARGIN_13PX = 13;
+const int MARGIN_14PX = 14;
+const int MARGIN_15PX = 15;
+const int MARGIN_16PX = 16;
+const int MARGIN_20PX = 20;
+const int MARGIN_22PX = 22;
+const int MARGIN_26PX = 26;
+const int MARGIN_28PX = 28;
+const int MARGIN_42PX = 42;
+const int MARGIN_46PX = 46;
+
+// Icon realted
+const int H_UNREAD_ICON = 42;
+const int W_UNREAD_ICON = 60;
+const int H_ICON_32PX = 32;
+const int W_ICON_32PX = 32;
+const int W_ICON_48PX = 48;
+const int H_ICON_48PX = 48;
+const int H_ICON_60PX = 60;
+const int W_ICON_60PX = 60;
+const int H_ICON_64PX = 64;
+const int W_ICON_64PX = 64;
+const int H_COMPOSE_IMAGE_132PX = 132;
+const int W_COMPOSE_IMAGE_132PX = 132;
+const int W_BUBBLE_THUMBNAIL_310PX = 310;
+const int H_BUBBLE_THUMBNAIL_204PX = 204;
+const int MAX_RESTRICT_IMG_W = 640;
+const int MAX_RESTRICT_IMG_H = 480;
+
+//Popup
+const int LIST_ITEM_SUBITEM = 70;
+const int H_POPUP_BOTTOM_96PX = 96;
+const int W_POPUP_CONTROL = 620;
+
+//Gallery
+const int H_GALLERY = 438;
+const int W_GALLERY = 688;
+
+// Selection info
+const int MAX_LEN_SELECTION_INFO = 50;
+const int SIZE_1KB = 1024;
+const int MAX_MMS_SIZE = 300 * 1024; // 300 KB
+
+// Font Size
+const int MSG_SYSTEM_FONT_SIZE = 44;
+const int MSG_HUGE_FONT_SIZE = 94;
+const int MSG_LARGE_FONT_SIZE = 70;
+const int MSG_NORMAL_FONT_SIZE = 44;
+const int MSG_SMALL_FONT_SIZE = 36;
+const int MSG_TINY_FONT_SIZE = 28;
+const int MSG_TIME_FONT_SIZE = 26;
+const int MSG_DATE_FONT_SIZE = 32;
+const int MSG_SMS_VIEWER_FONT_SIZE = 30;
+
+// Thread list
+const int THREAD_LIST_MAIN_TEXT_FONT_SIZE = 44;
+const int THREAD_LIST_SUB_TEXT_FONT_SIZE = 32;
+// List= settings;
+const int LIST_MAIN_TEXT_FONT_SIZE = 48;
+const int LIST_SUB_TEXT_FONT_SIZE = 32;
+const int LIST_GROUP_TEXT_FONT_SIZE = 32;
+
+//Bubble and thread
+const int MIN_BUBBLE_HEIGHT = 64;
+const int MSG_THREAD_ADDR_LEN = 200;
+const int MSG_THREAD_DISPLAY_LEN = 200;
+const int MAX_DATE_LEN = 64;
+// SMIL MMS
+const int MIN_MMS_SLIDE_DURATION = 5;
+
+// Color constant
+const Color COLOR_THREADLIST_SEARCH_TEXT = Color(100, 100, 100);
+const Color COLOR_THREADLIST_SEARCH_BG = Color(250, 250, 250);
+const Color COLOR_CHECKBOX_BUTTON = Color(215, 225, 232);
+const Color COLOR_SELECTION_INFO_LABEL = Color(209, 227, 238);
+const Color COLOR_SPAM_SETTINGS_ITEM = Color(35, 35, 35);
+const Color COLOR_THREADLIST_DISPLAY_NAME_ITEM = Color(16, 37, 63);
+const Color COLOR_THREADLIST_DATE_TIME_SHORTMSG_ITEM = Color(102, 102, 102);
+const Color COLOR_THREADLIST_UNREAD_NORMAL_ITEM = Color(255, 0, 0);
+const Color COLOR_COMPOSE_PANEL_BG = Color(182, 206, 219);
+const Color COLOR_BUBBLE_BG = Color(236, 236, 236);
+const Color COLOR_SEARCH_TEXT = Color(0, 128, 192);
+const Color COLOR_CONTACT_SUGGESTION = Color(39, 66, 123);
+const Color COLOR_BUBBLE_SENT_TIME_STAMP = Color(92, 151, 187);
+const Color COLOR_BUBBLE_RECEIVE_TIME_STAMP = Color(139, 139, 139);
+const Color COLOR_BUBBLE_SOS_TIME_STAMP = Color(187, 92, 92);
+const Color COLOR_BUBBLE_TEXT_NORMAL = Color(0, 0, 0);
+const Color COLOR_BUBBLE_SOS_TEXT_NORMAL = Color(192, 23, 23);
+const Color COLOR_SETTING_MAIN_TEXT = Color(0, 0, 0);
+const Color COLOR_SETTING_SUB_TEXT = Color(124, 124, 124);
+const Color COLOR_LIST_BG = Color(249, 249, 249);
+const Color COLOR_LIST_DIALOGUE_GROUP_BG = Color(236, 240, 242);
+const Color COLOR_LIST_DIALOGUE_GROUP_TITLE = Color(92, 151, 187);
+const Color COLOR_BLACK = Color(0, 0, 0);
+const Color COLOR_PANEL_BORDER = Color(57, 60, 65);
+const Color COLOR_GROUP_BORDER = Color(108, 168, 199);
+
+/// scene ID.
+const wchar_t* IDSCN_THREAD_LIST = L"MsgThreadListView";
+const wchar_t* IDSCN_THREAD_LIST_EDITOR = L"MsgThreadEditListView";
+const wchar_t* IDSCN_SIM_MESSAGE_LIST = L"SimMessageViewList";
+const wchar_t* IDSCN_SIM_MESSAGE_LIST_EDITOR = L"SimMessageEditList";
+const wchar_t* IDSCN_CB_MESSAGE_LIST = L"CbMessageViewList";
+const wchar_t* IDSCN_CB_MESSAGE_LIST_EDITOR = L"CbMessageEditList";
+const wchar_t* IDSCN_SPAM_MESSAGE_LIST = L"SpamMessageViewList";
+const wchar_t* IDSCN_SPAM_MESSAGE_LIST_EDITOR = L"SpamMessageEditList";
+const wchar_t* IDSCN_DRAFT_MESSAGE_LIST = L"DraftMessageViewList";
+const wchar_t* IDSCN_DRAFT_MESSAGE_LIST_EDITOR = L"DraftMessageEditList";
+const wchar_t* IDSCN_CONVERSATION_LIST = L"MsgConversationView";
+const wchar_t* IDSCN_CONVERSATION_LIST_EDITOR = L"MsgConversationEditView";
+const wchar_t* IDSCN_COMPOSER = L"MsgComposerView";
+const wchar_t* IDSCN_SMS_VIEWER = L"MsgSmsViewer";
+const wchar_t* IDSCN_MMS_DETAIL = L"MsgMmsDetail";
+const wchar_t* IDSCN_SETTINGS = L"Settings";
+const wchar_t* IDSCN_SETTINGS_TEXT_MESSAGE = L"TextMessage";
+const wchar_t* IDSCN_SETTINGS_TEXT_MESSAGE_SERVICE_CENTERS = L"ServiceCenters";
+const wchar_t* IDSCN_SETTINGS_TEXT_MESSAGE_EDIT_SERVICE_CENTER = L"EditServiceCenter";
+const wchar_t* IDSCN_SETTINGS_MULTIMEDIA_MESSAGE = L"MultimediaMessage";
+const wchar_t* IDSCN_SETTINGS_MULTIMEDIA_RECEIVING_OPTIONS = L"ReceivingOptions";
+const wchar_t* IDSCN_SETTINGS_MULTIMEDIA_READ_REPORT = L"ReadReport";
+const wchar_t* IDSCN_SETTINGS_SPAM_MESSAGE = L"SpamMessage";
+const wchar_t* IDSCN_SETTINGS_SPAM_AUTO_REJECT = L"AutoReject";
+const wchar_t* IDSCN_SETTINGS_SPAM_ADD_REJECT_NUMBER = L"AutoRejectNumber";
+const wchar_t* IDSCN_SETTINGS_SPAM_DELETE_REJECT_NUMBER = L"DeleteRejectNumber";
+const wchar_t* IDSCN_SETTINGS_SPAM_BLOCK_WORD = L"BlockWord";
+const wchar_t* IDSCN_SETTINGS_SPAM_ADD_BLOCK_WORD = L"AddBlockWord";
+const wchar_t* IDSCN_SETTINGS_SPAM_DELETE_BLOCK_WORD = L"DeleteBlockWord";
+const wchar_t* IDSCN_SETTINGS_FONT_SIZE = L"FontSize";
+
+/// From ID
+const wchar_t* IDFRM_THREAD_LIST = L"MsgThreadListView";
+const wchar_t* IDFRM_THREAD_LIST_EDITOR = L"MsgThreadListEditView";
+const wchar_t* IDFRM_SIM_MESSAGE_LIST = L"SimMessageViewList";
+const wchar_t* IDFRM_SIM_MESSAGE_LIST_EDITOR = L"SimMessageEditList";
+const wchar_t* IDFRM_CB_MESSAGE_LIST = L"CbMessageViewList";
+const wchar_t* IDFRM_CB_MESSAGE_LIST_EDITOR = L"CbMessageEditList";
+const wchar_t* IDFRM_SPAM_MESSAGE_LIST = L"SpamMessageViewList";
+const wchar_t* IDFRM_SPAM_MESSAGE_LIST_EDITOR = L"SpamMessageEditList";
+const wchar_t* IDFRM_DRAFT_MESSAGE_LIST = L"DraftMessageViewList";
+const wchar_t* IDFRM_DRAFT_MESSAGE_LIST_EDITOR = L"DraftMessageEditList";
+const wchar_t* IDFRM_CONVERSATION_LIST = L"MsgConversationView";
+const wchar_t* IDFRM_CONVERSATION_LIST_EDITOR = L"MsgConversationEditView";
+const wchar_t* IDFRM_COMPOSER = L"MsgComposerView";
+const wchar_t* IDFRM_SMS_VIEWER = L"MsgSmsViewer";
+const wchar_t* IDFRM_MMS_DETAIL = L"MsgMmsDetail";
+const wchar_t* IDFRM_SETTINGS = L"Settings";
+const wchar_t* IDFRM_SETTINGS_TEXT_MESSAGE = L"TextMessage";
+const wchar_t* IDFRM_SETTINGS_TEXT_MESSAGE_SERVICE_CENTERS = L"ServiceCenters";
+const wchar_t* IDFRM_SETTINGS_TEXT_MESSAGE_EDIT_SERVICE_CENTER = L"EditServiceCenter";
+const wchar_t* IDFRM_SETTINGS_MULTIMEDIA_MESSAGE = L"MultimediaMessage";
+const wchar_t* IDFRM_SETTINGS_MULTIMEDIA_RECEIVING_OPTIONS = L"ReceivingOptions";
+const wchar_t* IDFRM_SETTINGS_MULTIMEDIA_READ_REPORT = L"ReadReport";
+const wchar_t* IDFRM_SETTINGS_SPAM_MESSAGE = L"SpamMessage";
+const wchar_t* IDFRM_SETTINGS_SPAM_AUTO_REJECT = L"AutoReject";
+const wchar_t* IDFRM_SETTINGS_SPAM_ADD_REJECT_NUMBER = L"AutoRejectNumber";
+const wchar_t* IDFRM_SETTINGS_SPAM_DELETE_REJECT_NUMBER = L"DeleteRejectNumber";
+const wchar_t* IDFRM_SETTINGS_SPAM_BLOCK_WORD = L"BlockWord";
+const wchar_t* IDFRM_SETTINGS_SPAM_ADD_BLOCK_WORD = L"AddBlockWord";
+const wchar_t* IDFRM_SETTINGS_SPAM_DELETE_BLOCK_WORD = L"DeleteBlockWord";
+const wchar_t* IDFRM_SETTINGS_FONT_SIZE = L"FontSize";
+
+const wchar_t* IDS_SETTING_FONT_TYPE = L"FontType";
+const wchar_t* IDS_SETTING_VOLUME_KEY = L"VolumeKey";
+const wchar_t* IDS_LIST_MAIN_TEXT = L"listmaintext";
+const wchar_t* IDS_LIST_SUB_TEXT = L"listsubtext";
+//// App Controls
+const wchar_t* IDS_APPCONTROL_OPERATION_MAIN = L"http://tizen.org/appcontrol/operation/main";
+const wchar_t* IDS_APPCONTROL_OPERATION_CALL = L"http://tizen.org/appcontrol/operation/call";
+const wchar_t* IDS_APPCONTROL_OPERATION_ADD = L"http://tizen.org/appcontrol/operation/add";
+const wchar_t* IDS_APPCONTROL_OPERATION_VIEW = L"http://tizen.org/appcontrol/operation/view";
+const wchar_t* IDS_APPCONTROL_OPERATION_PICK = L"http://tizen.org/appcontrol/operation/pick";
+const wchar_t* IDS_APPCONTROL_OPERATION_COMPOSE = L"http://tizen.org/appcontrol/operation/compose";
+const wchar_t* IDS_APPCONTROL_OPERATION_SETTINGS = L"http://tizen.org/appcontrol/operation/configure";
+const wchar_t* IDS_APPCONTROL_OPERATION_RECORD = L"http://tizen.org/appcontrol/operation/record";
+const wchar_t* IDS_APPCONTROL_OPERATION_CAPTURE = L"http://tizen.org/appcontrol/operation/capture";
+
+const wchar_t* IDS_APPCONTROL_PROVIDER_MESSAGE = L"tizen.messages";
+const wchar_t* IDS_APPCONTROL_PROVIDER_CALL = L"tizen.phone";
+const wchar_t* IDS_APPCONTROL_PROVIDER_CONTACT = L"tizen.contacts";
+const wchar_t* IDS_APPCONTROL_PROVIDER_MEDIA = L"tizen.filemanager";
+const wchar_t* IDS_APPCONTROL_PROVIDER_IMAGE = L"tizen.imageviewer";
+const wchar_t* IDS_APPCONTROL_PROVIDER_CAMERA = L"tizen.camera";
+const wchar_t* IDS_APPCONTROL_PROVIDER_VIDEO = L"tizen.videoplayer";
+const wchar_t* IDS_APPCONTROL_PROVIDER_AUDIO = L"tizen.musicplayer";
+const wchar_t* IDS_APPCONTROL_PROVIDER_CALENDAR = L"tizen.calendar";
+const wchar_t* IDS_APPCONTROL_PROVIDER_GALLERY = L"tizen.gallery";
+const wchar_t* IDS_APPCONTROL_PROVIDER_MEMO = L"tizen.memo";
+const wchar_t* IDS_MESSAGING = L"Messaging";
+const wchar_t* IDS_MESSAGES = L"Messages";
+const wchar_t* IDS_FONT_HELVETICA_NEUE = L"Helvetica Neue";
+const wchar_t* IDS_SUBJECT = L"Subject";
+const wchar_t* IDS_BLANK = L"";
+const wchar_t* IDS_BLANK_SPACE = L" ";
+const wchar_t* IDS_NEW_LINE = L"\n";
+const wchar_t* IDS_CHAR_SLASH = L"/";
+const wchar_t* IDS_COLON = L":";
+const wchar_t* IDS_SEMICOLON = L";";
+const wchar_t* IDS_COMMA_SPACE = L",";
+const wchar_t* IDS_PLUS_SPACE = L" + ";
+const wchar_t* IDS_TYPE = L"type";
+const wchar_t* IDS_TEXT = L"text";
+const wchar_t* IDS_TO = L"to";
+const wchar_t* IDS_SMS = L"SMS";
+const wchar_t* IDS_UNKNOWN = L"Unknown";
+const wchar_t* IDS_SELECTED_NUMBER_IDS = L"Selected (%d)";
+const wchar_t* IDS_DELETED_NUMBER_IDS = L"Deleting %d/\%d";
+const wchar_t* IDS_RESTORE_NUMBER_IDS = L"Restoring %d/\%d";
+const wchar_t* FORMAT_SPECIFIER_INT = L"%d";
+const wchar_t* IDS_DRAFT = L"Draft";
+const wchar_t* IDS_TYPE_IMAGE = L"type:image";
+