--- /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 MsgAttachItemCntl.h
+ * @brief This is the header file for the %AttachItemCntl class.
+ *
+ * This header file contains the declarations of the %AttachItemCntl class.
+ */
+#ifndef _MSG_ATTACH_ITEM_CNTL_H_
+#define _MSG_ATTACH_ITEM_CNTL_H_
+
+#include <FGrpTextElement.h>
+#include <FUiCtrlButton.h>
+#include <FUiContainer.h>
+
+/**
+ * @class AttachItemCntl
+ *
+ * This class AttachItemCntl is used to display attachment along with icon.
+ */
+
+enum AttachmentType
+{
+ ATTACHMENT_TYPE_ATTACH_COUNT,
+ ATTACHMENT_TYPE_IMAGE,
+ ATTACHMENT_TYPE_AUDIO,
+ ATTACHMENT_TYPE_VIDEO,
+ ATTACHMENT_TYPE_OTHERS,
+};
+
+class AttachItemCntl
+ : public Tizen::Ui::Container
+{
+public:
+ /**
+ * Default constructor for this class.
+ */
+ AttachItemCntl(AttachmentType attachmentType, const Tizen::Graphics::Bitmap* pAttachIcon = null);
+
+ /**
+ * Default destructor for this class.
+ */
+ ~AttachItemCntl(void);
+
+ /**
+ * 2nd phase constructor
+ */
+ result Construct(int maxWidth);
+
+ void SetTitleText(const Tizen::Base::String& msgText, const Tizen::Graphics::Font* ptextFont = null);
+ void AddTouchEventListener(Tizen::Ui::ITouchEventListener& listener);
+ int GetMinimumHeight(void) const;
+ int GetMimimumWidth(void) const;
+
+protected:
+ /// From Container class
+ result OnDraw(void);
+ void InitializeAttachUi(void);
+ const Tizen::Base::String GetAttachIconName(void) const;
+private:
+ /// Empty copy constructor.
+ AttachItemCntl(const AttachItemCntl& rhs);
+ // Empty assignment operator.
+ AttachItemCntl& operator =(const AttachItemCntl& rhs);
+
+private:
+ AttachmentType __attachMentType;
+ Tizen::Base::String __attachMenntIconPath;
+ Tizen::Ui::Controls::Button* __pAttachIconButton;
+ const Tizen::Graphics::Bitmap* __pNormalAttachIcon; // Not own
+ const Tizen::Graphics::Bitmap* __pPressedAttachIcon; // Not own
+ Tizen::Graphics::EnrichedText* __pEnrichedText; // Own
+ int __maxWidth;
+};
+
+
+#endif //_MSG_ATTACH_ITEM_CNTL_H_
AttachListPanel(MessageData* pMessageDta);\r
result Construct(void);\r
virtual ~AttachListPanel();\r
+ void SetPanelSize(void);\r
\r
// IListViewItemEventListener\r
virtual void OnListViewContextItemStateChanged(Tizen::Ui::Controls::ListView& listView, int index, int elementId, Tizen::Ui::Controls::ListContextItemStatus state){}\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
#ifndef _MSG_ATTACH_LIST_POPUP_H_\r
#define _MSG_ATTACH_LIST_POPUP_H_\r
\r
+#include <FUiIActionEventListener.h>\r
+#include <FUiCtrlButton.h>\r
+#include <FUiCtrlIListViewItemEventListener.h>\r
+#include <FUiCtrlIListViewItemProvider.h>\r
+\r
#include "MsgBaseCustomPopup.h"\r
\r
class AttachListPopup\r
\r
class AttachementControl\r
: public ComposeBaseControl\r
+ , public Tizen::Ui::IActionEventListener\r
{\r
public:\r
AttachementControl(const Tizen::Base::String& attachFile);\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
+ void SetActionEventListener(Tizen::Ui::IActionEventListener& listener);\r
+ // Form IActionEventListener\r
+ virtual void OnActionPerformed(const Tizen::Ui::Control& source, int actionId);\r
\r
protected:\r
// Form Base class\r
Tizen::Graphics::Bitmap* __pAttachIcon;\r
Tizen::Ui::Controls::Label* __pAttachLabel;\r
Tizen::Ui::Controls::Button* __pDeleteButton;\r
+ Tizen::Ui::IActionEventListener* __pActionEventListener;\r
+ int __deleteActionId;\r
};\r
\r
#endif //_MSG_ATTACHEMENT_CONTROL_H_\r
#ifndef _MSG_ATTACHMENT_SAVE_POPUP_H_\r
#define _MSG_ATTACHMENT_SAVE_POPUP_H_\r
\r
+#include <FUiIActionEventListener.h>\r
+#include <FUiCtrlIListViewItemEventListener.h>\r
+#include <FUiCtrlIListViewItemProvider.h>\r
+\r
#include "MsgBaseCustomPopup.h"\r
\r
class MessageData;\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
#ifndef _MSG_BASE_CUSTOM_POPUP_H_\r
#define _MSG_BASE_CUSTOM_POPUP_H_\r
\r
-#include "FUi.h"\r
+#include <FUiCtrlPopup.h>\r
\r
class BaseCustomPopup\r
: public Tizen::Ui::Controls::Popup\r
Tizen::Base::String displayName; // display name\r
Tizen::Base::String phoneNumber; // phone number\r
bool needToValidate;\r
+ bool isAddFromContacts;\r
AddressInfo();\r
};\r
\r
{\r
public:\r
MmsPageData(const Tizen::Base::String& bodyText, bool isTextTop = true);\r
+ MmsPageData* CloneN(void);\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
#include <msg_types.h>
#include <FBase.h>
-#include <FUiControl.h>
namespace Tizen { namespace Base { namespace Collection
{
class ArrayList;
}}};
-class DeleteHandlerThread;
+class DeleteHandler;
class IDeleteEventListener;
+class IRestoreEventListener;
class MessageData;
class SpamRestoreHandler;
class ThreadData;
* 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
+ * @param pDeleteListener - delete event listener.
*
*/
- void Delete(Tizen::Base::Collection::IListT< int >* pDeleteIdList, Tizen::Ui::Control& listener, int requestType);
+ void Delete(Tizen::Base::Collection::IListT<int>* pDeleteIdList, int requestType, IDeleteEventListener* pDeleteListener);
/**
* 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
+ * @param pDeleteListener - delete event listener.
*/
- void Delete(int deleteId, Tizen::Ui::Control& listener, int requestType);
+ void Delete(int deleteId, int requestType, IDeleteEventListener* pDeleteListener);
/**
* Fetch phone number list for given thread ID..
* 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);
+
+ /**
+ * Get thread data by thread ID.
+ */
+ ThreadData* GetThreadDataByIdN(int threadId) const;
+
+ /**
+ * Restore spam messages to inbox progressively.
+ */
+ void RestoreSpamMessages(Tizen::Base::Collection::IListT<int>* pSelectedIds, IRestoreEventListener* pRestoreListener);
+
+ /**
+ * Cancel restore operation.
+ */
void CancelRestore(void);
-
+
/**
* Cancel ongoing delete operation.
*/
void CancelDelete(void);
+
+ /**
+ * Get last draft message ID for current thread.
+ */
+ int GetDraftMessageId(int threadId) const;
+
protected:
/**
* Default constructor for this class.
* Second phase construction
*/
result Construct(void);
+
private:
//! To prevent copy constructor and assignment
BasePresentationModel(const BasePresentationModel& rhs);
protected:
msg_handle_t __pMsgHandle; //! Message service handler.
- DeleteHandlerThread* __pDeleteHandler; //! Delete event listener
+ DeleteHandler* __pDeleteHandler; //! Delete event listener
SpamRestoreHandler* __pSpamRestoreHandler;
};
*\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
+ Tizen::Graphics::Bitmap* GetBubbleGroupBgBitmapN(GroupBgBitmapType groupType, const Tizen::Base::String& groupName, const Tizen::Graphics::Dimension& size);\r
\r
private:\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.
+//
+
+/**
+ * @file MsgBubbleBackgroundCntl.h
+ * @brief This is the header file for the %BubbleBackgroundCntl class.
+ *
+ * This header file contains the declarations of the %BubbleBackgroundCntl class.
+ */
+#ifndef _MSG_BUBBLE_BACKGROUND_CNTL_H_
+#define _MSG_BUBBLE_BACKGROUND_CNTL_H_
+
+#include <FGrpTextElement.h>
+#include <FUiContainer.h>
+
+/**
+ * @class BubbleBackgroundCntl
+ *
+ * This class BubbleBackgroundCntl is used to draw bubble background
+ * image based on message type.
+ */
+
+class BubbleBackgroundCntl
+ : public Tizen::Ui::Container
+{
+public:
+ /**
+ * Default constructor for this class.
+ */
+ BubbleBackgroundCntl(void);
+
+ /**
+ * Default destructor for this class.
+ */
+ ~BubbleBackgroundCntl(void);
+
+ /**
+ * Second phase constructor
+ */
+ result Construct(bool isSendBubble);
+
+protected:
+ /// From Base calss
+ result OnDraw(void);
+
+private:
+ /// Empty copy constructor.
+ BubbleBackgroundCntl(const BubbleBackgroundCntl& rhs);
+ // Empty assignment operator.
+ BubbleBackgroundCntl& operator =(const BubbleBackgroundCntl& rhs);
+
+private:
+ const Tizen::Graphics::Bitmap* __pBackgroundBitmap; // Not own
+};
+
+
+#endif //_MSG_BUBBLE_BACKGROUND_CNTL_H_
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
+ static void ShowImage(const Tizen::Base::String& filePath);\r
+ static void PlayVideo(const Tizen::Base::String& filePath);\r
+ static void PlayAudio(const Tizen::Base::String& filePath);\r
};\r
\r
\r
enum ComposeControlType\r
{\r
COMPOSE_CONTROL_SUBJECT,\r
- COMPOSE_CONTROL_IMAGE_TEXT,\r
+ COMPOSE_CONTROL_MEDIA_TEXT,\r
COMPOSE_CONTROL_ATTACHEMENT,\r
};\r
\r
#define _MSG_COMPOSE_FORM_H_\r
\r
#include <FApp.h>\r
+#include <FSystem.h>\r
\r
#include <FUiCtrlIExpandableEditAreaEventListener.h>\r
#include <FUiCtrlIListViewItemProvider.h>\r
namespace Tizen { namespace Ui { namespace Controls\r
{\r
class Button;\r
+class ContextMenu;\r
class ExpandableEditArea;\r
class Label;\r
class ListView;\r
, public Tizen::Ui::IKeypadEventListener\r
, public Tizen::Ui::IKeyEventListener\r
, public Tizen::Ui::Scenes::ISceneEventListener\r
+ , public Tizen::System::ISettingEventListener\r
, public IComposeEventObserver\r
, public ISizeChangeEventListener\r
{\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
+ //ISettingEventLisetener\r
+ virtual void OnSettingChanged(Tizen::Base::String& key);\r
+\r
private:\r
/**\r
* create message launching from app control.\r
void ShowMessagePopup(const Tizen::Base::String& message, int leftActionId, int rightActionId);\r
void DestroyMessagePopup(void);\r
void CreateDraftMsgAndExit(MessageComposeData* pMsgComposeData);\r
+ result ShowMoreContextMenu(const Tizen::Ui::Control& source);\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
+ Tizen::Ui::Controls::ContextMenu* __pMoreContextMenu;\r
DurationPopup* __pDurationPopup;\r
- bool __needToSetFocusRecipient;\r
+ bool __needToSetFocusRecipient;\r
+ int __volumeLevel;\r
+ bool __isLaunchedAsForward;\r
\r
};\r
\r
virtual ~ContactList(void);\r
\r
result Construct(Tizen::Base::Collection::ArrayList* pPhoneNumberList);\r
+ void UpdateContactListDetails(Tizen::Base::Collection::IList* pContactListDetails);\r
\r
// IListViewItemEventListener\r
virtual void OnListViewContextItemStateChanged(Tizen::Ui::Controls::ListView& listView, int index, int elementId, Tizen::Ui::Controls::ListContextItemStatus state);\r
Tizen::Graphics::Bitmap* GetThumbnail(void);\r
\r
/**\r
+ * Get Audo path .\r
+ */\r
+ const Tizen::Base::String& GetAudioPath(void) const;\r
+ const Tizen::Base::String& GetImagePath(void) const;\r
+ const Tizen::Base::String& GetVideoPath(void) const;\r
+\r
+ /**\r
* Return subject string if exist.\r
*/\r
const Tizen::Base::String& GetSubject(void) const;\r
// Progress realted animation API\r
void SetAnimationIconIndex(int index);\r
int GetAnimationIconIndex(void) const;\r
+ bool GetAnimationShowState(void) const { return __isAnimationStarted;};\r
+ void SetAnimationShowState(bool showState) { __isAnimationStarted = showState;};\r
\r
private:\r
result InitMessageBody(msg_struct_t pMessageInfo);\r
//! conversation field MMS related\r
int __pageCount;\r
int __attachmentCount;\r
- Tizen::Base::String __thumbnailPath;\r
+ Tizen::Base::String __audioPath;\r
+ Tizen::Base::String __imagePath;\r
+ Tizen::Base::String __videoPath;\r
Tizen::Graphics::Bitmap* __pThumbnailBitmap;\r
Tizen::Base::String __subjectStr;\r
//! Animation icon index for sending message\r
int __animationIconIndex;\r
+ bool __isAnimationStarted;\r
};\r
\r
#endif // _MSG_CONVERSATION_DATA_H_\r
#ifndef _MSG_CONVERSATION_FORM_H_\r
#define _MSG_CONVERSATION_FORM_H_\r
\r
-#include <FUiCtrlIGroupedListViewItemEventListener.h>\r
-#include <FUiCtrlIGroupedListViewItemProvider.h>\r
+#include <FSystem.h>\r
+#include <FUiCtrlTableViewTypes.h>\r
+#include <FUiCtrlIGroupedTableViewItemEventListener.h>\r
+#include <FUiCtrlIGroupedTableViewItemProvider.h>\r
#include <FUiScenesISceneEventListener.h>\r
\r
#include "MsgBaseForm.h"\r
class AttachementSavePopup;\r
class DurationPopup;\r
class ThreadData;\r
-class MessageComposePanel;\r
class ContactList;\r
class ContactPopup;\r
+class MessageComposePanel;\r
class MsgProgressPopup;\r
-class OptionPopup;\r
class MsgResendDeletePopup;\r
-//class ThreadData;\r
+class OptionPopup;\r
\r
/**\r
* @class ConversationForm\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::Controls::IGroupedTableViewItemEventListener\r
+ , public Tizen::Ui::Controls::IGroupedTableViewItemProvider\r
, public Tizen::Ui::Scenes::ISceneEventListener\r
+ , public Tizen::System::ISettingEventListener\r
, public IComposeEventObserver\r
, public IConversationEventListener\r
, public IDeleteEventListener\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
+ //IGroupedTableViewItemProvider\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
+ 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
//Form ISizeChangeEventListener\r
virtual void OnSizeIncrease(const Tizen::Ui::Control& control);\r
virtual void OnSizeDecrease(const Tizen::Ui::Control& control);\r
\r
+ //ISettingEventLisetener\r
+ virtual void OnSettingChanged(Tizen::Base::String& key);\r
+\r
// Form IComposeEventObserver\r
virtual void OnComposeStateChange(ComposeType type);\r
virtual void OnSendButtonClick(void);\r
void ShowDeleteConfirmPopup(void);\r
+ // New API\r
+ void OnGroupedTableViewItemLongPressed(Tizen::Ui::Controls::GroupedTableView& tableView, int groupIndex, int itemIndex, int elementId);\r
+ void OnGroupedTableViewItemSelected(Tizen::Ui::Controls::GroupedTableView& tableView, int groupIndex, int itemIndex, int elementId);\r
\r
private:\r
// New API\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
*\r
* @return void\r
*/\r
- result CreateContextMenu(const Tizen::Ui::Control& source);\r
+ result ShowRecipientContextMenu(const Tizen::Ui::Control& source);\r
+ \r
+ result ShowMoreContextMenu(const Tizen::Ui::Control& source);\r
\r
/**\r
* Context menu to Call,View/Add,Block contact\r
ConversationListFormType __convFormType;\r
MessageComposePanel* __pMsgComposePanel;\r
Tizen::Graphics::Rectangle __prevBounds;\r
- Tizen::Ui::Controls::GroupedListView* __pConvMessageList;\r
+ Tizen::Ui::Controls::GroupedTableView* __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
+ 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::ContextMenu* __pRecipientContextMenu;\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
+ Tizen::Ui::Controls::ContextMenu* __pMoreContextMenu;\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
+ bool __isConvNeedToUpdate;\r
+ int __volumeLevel;\r
};\r
\r
//}\r
class ArrayList;\r
}}};\r
\r
-class DeleteHandlerThread;\r
class IConversationEventListener;\r
class IDeleteEventListener;\r
class MessageData;\r
* Get conversation data and hold it for given thread.\r
*/\r
void GetConversationMessageList(int threadId);\r
+ Tizen::Base::Collection::ArrayList* GetThreadIdListN(msg_id_list_s* pMsgIdList);\r
+ bool IsThreadIdExist(int threadId, Tizen::Base::Collection::IList* pThreadIdList) const;\r
\r
protected:\r
/**\r
*\r
* @return void.\r
*/\r
- void NotifyConversationChange(msg_storage_change_type_t storageChangeType);\r
+ void NotifyConversationChange(msg_storage_change_type_t storageChangeType, Tizen::Base::Collection::IList* pThreadIdList);\r
\r
private:\r
/**\r
\r
private:\r
//! To prevent copy constructor and assignment\r
- ConversationPresentationModel(const ConversationPresentationModel&);\r
- ConversationPresentationModel& operator =(const ConversationPresentationModel& msg);\r
+ ConversationPresentationModel(const ConversationPresentationModel& rhs);\r
+ ConversationPresentationModel& operator =(const ConversationPresentationModel& rhs);\r
\r
private:\r
static ConversationPresentationModel* __pInstance; //! Self instance for singleton design.\r
//
/**
- * @file MsgDeleteHandlerThread.h
- * @brief This is the header file for the %DeleteHandlerThread class.
+ * @file MsgDeleteHandler.h
+ * @brief This is the header file for the %DeleteHandler class.
*
- * This header file contains the declarations of the %DeleteHandlerThread class.
+ * This header file contains the declarations of the %DeleteHandler class.
*/
-#ifndef _MSG_DLETE_HANDLER_THREAD_H_
-#define _MSG_DLETE_HANDLER_THREAD_H_
+#ifndef _MSG_DLETE_HANDLER_H_
+#define _MSG_DLETE_HANDLER_H_
+
+#include <FBase.h>
-#include <FBaseRtThread.h>
-#include "FUi.h"
class IDeleteEventListener;
/**
- * @class MsgDeleteHandlerThread
+ * @class MsgDeleteHandler
*
* This is a thread class use to delete thread and messages.
*/
-class DeleteHandlerThread
- : public Tizen::Base::Runtime::Thread
+class DeleteHandler
+ : public Tizen::Base::Object
+ , public Tizen::Base::Runtime::IRunnable
{
public:
/**
* This is argument constructor for this class
*
+ * @param pDeleteListener - Delete event listener
+ */
+ DeleteHandler(IDeleteEventListener* pDeleteListener);
+
+ /**
+ * This is 2nd phase 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);
+ result Construct(Tizen::Base::Collection::IListT<int>* pList, int requestType);
/**
- * This is argument constructor for this class
+ * This is 2nd phase 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);
+ result Construct(int deleteId, int requestType);
/**
* This is the destructor for this class.
*/
- virtual ~DeleteHandlerThread(void);
+ virtual ~DeleteHandler(void);
- //! From base class
- result Construct(void);
- Object* Run(void);
+ /**
+ * Start delete operation
+ */
+ void Start(void);
+
+ /**
+ * Cancel ongoing delete operation.
+ */
+ void Cancel(void);
+
+private:
+ //Form IRunnable
+ virtual Tizen::Base::Object* Run(void);
+ //! To prevent copy constructor and assignment
+ DeleteHandler(const DeleteHandler& rhs);
+ DeleteHandler& operator =(const DeleteHandler& rhs);
private:
- Tizen::Base::Collection::IListT< int >* __pDeleteIdList; //! Delete id list
+ IDeleteEventListener* __pDeleteListener;
+ Tizen::Base::Runtime::Thread* __pDeleteThread;
+ 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_
#ifndef _MSG_DURATION_POPUP_H_\r
#define _MSG_DURATION_POPUP_H_\r
\r
+#include <FUiIActionEventListener.h>\r
+#include <FUiITextEventListener.h>\r
+\r
#include "MsgBaseCustomPopup.h"\r
\r
class DurationPopup\r
: public BaseCustomPopup\r
+ , public Tizen::Base::Runtime::ITimerEventListener\r
, public Tizen::Ui::IActionEventListener\r
+ , public Tizen::Ui::ITextEventListener\r
{\r
\r
public:\r
int GetDuration(void) const;\r
result SetDuration(int duration);\r
result SetInfoText(const Tizen::Base::String& infoText);\r
- result SetFocusToEditor(void);\r
+ result ShowPopup(void);\r
// From IActionEventListener\r
virtual void OnActionPerformed(const Tizen::Ui::Control& source, int actionId);\r
-\r
+protected:\r
+ virtual void OnTextValueChanged(const Tizen::Ui::Control& source);\r
+ virtual void OnTextValueChangeCanceled(const Tizen::Ui::Control& source){};\r
+ virtual void OnTimerExpired(Tizen::Base::Runtime::Timer& timer);\r
private:\r
-\r
Tizen::Ui::Control& __parentCntl;\r
+ Tizen::Base::Runtime::Timer* __pLaunchTimer;\r
+ int __previousValue;\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 MsgIRestoreEventListener.h\r
+ * @brief This is the header file for the %IRestoreEventListener interface.\r
+ *\r
+ * This header file contains the declarations of the %IRestoreEventListener interface.\r
+ */\r
+#ifndef _MSG_IRESTORE_EVENT_LISTENER_H_\r
+#define _MSG_IRESTORE_EVENT_LISTENER_H_\r
+\r
+#include <FBaseRtIEventListener.h>\r
+\r
+namespace Tizen { namespace Base\r
+{\r
+class Object;\r
+}};\r
+\r
+/**\r
+ * @interface IRestoreEventListener\r
+ *\r
+ * Interface IRestoreEventListener is a listener for give progressive call back for message or\r
+ * thread restoring.\r
+ */\r
+\r
+class IRestoreEventListener\r
+ : public Tizen::Base::Runtime::IEventListener\r
+{\r
+public:\r
+ /**\r
+ * This is the destructor for this class.\r
+ */\r
+ virtual ~IRestoreEventListener(void) {}\r
+\r
+ /**\r
+ * Call when restore started by worker thread.\r
+ *\r
+ * @param totalCount Total number of item to be restored.\r
+ *\r
+ */\r
+ virtual void OnRestoreStart(int totalCount) = 0;\r
+\r
+ /**\r
+ * Call after each and every restore operation.\r
+ *\r
+ * @param restoreCount Number of item restored\r
+ * @param totalCount Total number of item to be deleted.\r
+ *\r
+ */\r
+ virtual void OnRestoreUpdate(int restoreCount, int totalCount) = 0;\r
+\r
+ /**\r
+ * Call once delete completed.\r
+ *\r
+ * @param errCode In case of restore error return restore specific error code.\r
+ * @param pRestoreHandler Restore handler object responsible for delete operation.\r
+ *\r
+ */\r
+ virtual void OnRestoreComplete(int errCode, Tizen::Base::Object* pRestoreHandler) = 0;\r
+\r
+};\r
+\r
+#endif // _MSG_IRESTORE_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
{\r
public:\r
MediaControl(void);\r
- ~MediaControl(void);\r
+ virtual ~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
public:\r
// Constructor and destructor\r
MediaTextExpandEditArea(void);\r
- ~MediaTextExpandEditArea(void);\r
+ virtual ~MediaTextExpandEditArea(void);\r
result Construct(const Tizen::Graphics::Rectangle& rectangle);\r
\r
// Set listener API\r
- void AddActionEventListener(Tizen::Ui::IActionEventListener& listener);\r
+ void SetActionEventListener(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
result SetMedia(const Tizen::Base::String& mediaFilePath, MediaType mediaType);\r
Tizen::Base::String GetMediaPath(MediaType mediaType) const;\r
void SetDeleteActionId(int actionId);\r
+ void SetUpdateActionId(int actionId);\r
bool IsImageExist() const;\r
bool IsAudioExist() const;\r
bool IsVideoExist() const;\r
Tizen::Ui::Controls::Button* __pDeleteButton;\r
Tizen::Graphics::Rectangle __prevBounds;\r
AttachementControl* __pAttachCntrl;\r
-\r
+ Tizen::Ui::IActionEventListener* __pActionEventListener;\r
+ int __deleteActionId;\r
+ int __updateActionId;\r
};\r
\r
\r
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 ClearText(bool redraw = false);
void LoadMessageData(const MessageData& msgData);
void LoadComposeData(const MessageComposeData& composeData);
void SetFocusToEditor(void);
+ void SetFocusToSubject(void);
void SetDefaultPageDuration(int pageDuration);
int GetDefaultPageDuration(void) const;
virtual result SetBounds(const Tizen::Graphics::Rectangle& rect);
void EnableSendButton(bool status);
- bool IsComposeFieldEmpty(void);
+ bool IsComposeFieldEmpty(void) const;
+ bool IsSubjectExists(void) const;
protected:
// Form ISizeChangeEventListener
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;
+ bool IsSuitableCreationMode(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);
+ bool IsConvertedToMms(void) const;
Tizen::Base::Collection::IList* GetSelectedFileListN(const Tizen::Base::String& operationId, const Tizen::Base::Collection::IMap* pResultMap);
private:
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
int GetThreadId(void) const;\r
\r
+ bool IsFilePresent(void) const;\r
+\r
private:\r
result InitAddrListDisplayName(msg_struct_t pMessageInfo);\r
result InitMessageBody(msg_struct_t pMessageInfo);\r
int __displayTime;\r
int __networkStatus;\r
bool __isRead;\r
+ bool __isMediaFilePresent;\r
int __messageDirection;\r
Tizen::Base::Collection::ArrayList* __pAddressList;\r
Tizen::Base::String __displayName;\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
void OnScreenOn(void);
void OnScreenOff(void);
void GetRecipientName(AddressInfo& addressInfo, const Tizen::Base::String& strPhoneNumber);
+ int CheckMesageServiceAvailable(void) const;
private:
RequestId __pClientAppRequestId;
\r
class AttachListPanel;\r
class AttachementSavePopup;\r
+class ContactList;\r
class MessageData;\r
\r
/**\r
virtual void OnTouchReleased(const Tizen::Ui::Control& source, const Tizen::Graphics::Point& currentPosition, const Tizen::Ui::TouchEventInfo& touchInfo){};\r
\r
private:\r
+ void SetHeader(void);\r
void SetFooter(void);\r
bool IsTextExist(int slideIndex);\r
void StartSlideShow(void);\r
void UpdateMmsBodyText(void);\r
void UpdateSlideNumber(int currentSlideNumber);\r
void UpdateTimeElapsedLabel(int timeElapsed);\r
+ void SetTotalTimeDuration(int totalDuration);\r
void BlockPopup(const Tizen::Base::String& phoneNumber);\r
void UnBlockPhoneNumber(const Tizen::Base::String& phoneNumber);\r
void ShowMessageDetails(void);\r
void Stop(void){};\r
void Pause(void){};\r
Tizen::Graphics::Bitmap* GetIconN(const Tizen::Base::String& filePath) const;\r
+ \r
+ /**\r
+ * To show context menu for single recipient Call,View/Add,Block\r
+ *\r
+ * @return void\r
+ */\r
+ result ShowRecipientContextMenu(const Tizen::Ui::Control& source);\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 ShowRecipientList(bool value);\r
+ void PrepareRecipientList(void);\r
\r
private:\r
// Member variable.\r
+ ContactList* __pConContactList;\r
MessageData* __pMessageData;\r
AttachListPanel* __pMsgAttachListPanel;\r
Tizen::Ui::Scenes::SceneId __previousSceneId;\r
Tizen::Base::Collection::ArrayList* __pAttachFileArray;\r
+ Tizen::Base::Collection::ArrayList* __pRecipientNameList;\r
Tizen::Ui::Controls::Gallery* __pGallery;\r
Tizen::Ui::Controls::TextBox* __pMmsTextBox;\r
Tizen::Ui::Controls::Panel* __pPlayControlPanel;\r
Tizen::Ui::Controls::Label* __pTimeElapsedLabel;\r
Tizen::Ui::Controls::Label* __pPageNumberLabel;\r
Tizen::Ui::Controls::Label* __pAttachFilesInfoLabel;\r
+ Tizen::Ui::Controls::ListView* __pList;\r
Tizen::Ui::Controls::Popup* __pMessageDetailsPopup;\r
Tizen::Ui::Controls::Popup* __pDeletePopup;\r
Tizen::Ui::Controls::Popup* __pVolumePopup;\r
Tizen::Ui::Controls::ContextMenu* __pContextMenu;\r
Tizen::Ui::Controls::ContextMenu* __pContextMenuText;\r
Tizen::Ui::Controls::Slider* __pMediaVolumeSlider;\r
+ Tizen::Ui::Controls::ScrollPanel* __pScrollPanel;\r
Tizen::Ui::Controls::OverlayRegion* __pOverlay;\r
Tizen::Media::Player* __pPlayer;\r
AttachementSavePopup* __pSaveAttachmentsPopup;\r
Tizen::Base::Runtime::Timer* __pTimerforVolumePopup;\r
Tizen::Base::Runtime::Timer* __pTimerForControlBar;\r
MmsFormType __mmsFormType;\r
+ Tizen::Base::String __recipientPhoneNumber;\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 MsgMmsSlideData.h\r
+ * @brief This is the header file for the %MmsSlideData class.\r
+ *\r
+ * This header file contains the declarations of the %MmsSlideData class.\r
+ */\r
+#ifndef _MSG_MMS_SLIDE_DATA_H_\r
+#define _MSG_MMS_SLIDE_DATA_H_\r
+\r
+namespace Tizen { namespace Base { namespace Collection {\r
+class ArrayList;\r
+}}};\r
+class MessageData;\r
+class MmsSlideBase;\r
+\r
+enum MmsSlideType\r
+{\r
+ MMS_SLIDE_EMPTY,\r
+ MMS_SLIDE_AUDIO,\r
+ MMS_SLIDE_AUDIO_TEXT,\r
+ MMS_SLIDE_AUDIO_IMAGE,\r
+ MMS_SLIDE_AUDIO_IMAGE_TEXT,\r
+ MMS_SLIDE_TEXT,\r
+ MMS_SLIDE_TEXT_IMAGE,\r
+ MMS_SLIDE_TEXT_VIDEO,\r
+ MMS_SLIDE_IMAGE,\r
+ MMS_SLIDE_VIDEO,\r
+ MMS_SLIDE_ATTACHMENT,\r
+};\r
+\r
+/**\r
+ * @class MmsSlideData\r
+ *\r
+ * Class MmsSlideData keep slide information for single MMS message.\r
+ */\r
+class MmsSlideData\r
+ : public Tizen::Base::Object\r
+{\r
+public:\r
+ /**\r
+ * Default constructor for this class.\r
+ */\r
+ MmsSlideData(void);\r
+\r
+ /**\r
+ * Default destructor for this class.\r
+ */\r
+ virtual ~MmsSlideData(void);\r
+\r
+ /**\r
+ * 2nd phase constructor\r
+ */\r
+ result Construct(MessageData* pMessageData);\r
+\r
+ /**\r
+ * Slide count for MMS data\r
+ */\r
+ int GetSlideCount(void) const;\r
+\r
+ /**\r
+ * Get Slide Type.\r
+ */\r
+ MmsSlideType GetSlideType(int slideindex) const;\r
+\r
+ /**\r
+ * Get Slide object.\r
+ */\r
+ const MmsSlideBase* GetSlideAt(int slideIndex) const;\r
+\r
+ /**\r
+ * Get Slide message data\r
+ */\r
+ const MessageData* GetSlideMessageData(void) const;\r
+\r
+private:\r
+ //! To prevent copy constructor and assignment\r
+ MmsSlideData(const MmsSlideData& rhs);\r
+ MmsSlideData& operator =(const MmsSlideData& rhs);\r
+ MmsSlideType GetSlideType(MmsPageData* pPageData) const;\r
+\r
+private:\r
+ //! Message entry information\r
+ MessageData* __pMessageData;\r
+ //! Slide information\r
+ Tizen::Base::Collection::ArrayList* __pSlideList;\r
+};\r
+\r
+class MmsSlideBase\r
+ : public Tizen::Base::Object\r
+{\r
+public:\r
+ virtual ~MmsSlideBase(void) {}\r
+ virtual MmsSlideType GetSlideType(void) const = 0;\r
+};\r
+\r
+class MmsEmptySlide\r
+ : public MmsSlideBase\r
+{\r
+public:\r
+ virtual MmsSlideType GetSlideType(void) const;\r
+};\r
+\r
+//! MMS media slide\r
+class MmsMediaSlide\r
+ : public MmsSlideBase\r
+{\r
+\r
+public:\r
+ MmsMediaSlide(MmsPageData& pageData, MmsSlideType slideType);\r
+ virtual ~ MmsMediaSlide();\r
+ const Tizen::Base::String& GetSlideText(void) const;\r
+ const Tizen::Base::String& GetAudioFile(void) const;\r
+ const Tizen::Base::String& GetImageFile(void) const;\r
+ const Tizen::Base::String& GetVideoFile(void) const;\r
+ // Form Base class\r
+ virtual MmsSlideType GetSlideType(void) const;\r
+private:\r
+ MmsPageData& __pageData;\r
+ MmsSlideType __slideType;\r
+};\r
+\r
+// MMS attachment slide\r
+class MmsAttachmentSlide\r
+ : public MmsSlideBase\r
+{\r
+\r
+public:\r
+ MmsAttachmentSlide(const Tizen::Base::Collection::IList& attachFiles, MmsSlideType slideType);\r
+ virtual ~MmsAttachmentSlide(void);\r
+ const Tizen::Base::Collection::IList& GetAttachFileList(void) const;\r
+ // Form Base class\r
+ virtual MmsSlideType GetSlideType(void) const;\r
+private:\r
+ const Tizen::Base::Collection::IList& __attachFileList;\r
+ MmsSlideType __slideType;\r
+};\r
+\r
+#endif // _MSG_MMS_SLIDE_DATA_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 MsgMultiLineTextItemCntl.h
+ * @brief This is the header file for the %MultiLineTextItemCntl class.
+ *
+ * This header file contains the declarations of the %MultiLineTextItemCntl class.
+ */
+#ifndef _MSG_MULTILINE_TEXTITEM_CNTL_H_
+#define _MSG_MULTILINE_TEXTITEM_CNTL_H_
+
+#include <FGrpEnrichedText.h>
+#include <FGrpTextElement.h>
+#include <FUiContainer.h>
+/**
+ * @class MultiLineTextItemCntl
+ *
+ * This class MultiLineTextItemCntl display multiline text in list.Using this class
+ * display text colour and font size/type can be control.
+ *
+ */
+
+class MultiLineTextItemCntl
+ : public Tizen::Ui::Container
+{
+public:
+ /**
+ * This is the default constructor for this class.
+ */
+ MultiLineTextItemCntl(void);
+
+ /**
+ * This is the default destructor for this class.
+ */
+ ~MultiLineTextItemCntl(void);
+
+ /**
+ * 2nd phase constructor
+ */
+ result Construct(void);
+
+ /**
+ * Set text need to be displayed in this list item.
+ *
+ * @param msgText - Text need to be displayed.
+ * @param textColor - Text color
+ * @param font - Text font.
+ *
+ * @return void
+ */
+ void AddText(const Tizen::Base::String& msgText, const Tizen::Graphics::Color& textColor, const Tizen::Graphics::Color& textSelectionColor, const Tizen::Graphics::Font* ptextFont = null);
+ /**
+ * Set background image for this list item
+ *
+ * @param backgroudImage - Background image bitmap.
+ *
+ * @return void
+ */
+ void SetBackgroundImage(const Tizen::Graphics::Bitmap& backgroudImage);
+
+ /**
+ * Set selection image for this list item.
+ *
+ * @param selectionImage - Selection image bitmap.
+ *
+ * @param void
+ */
+ void SetSelectionImage(const Tizen::Graphics::Bitmap& selectionImage);
+
+ /**
+ * Set max view rect width for list item.
+ *
+ * @param rectWidth View rect width for list item.
+ * @return void
+ */
+ void SetViewRectWidth(const int rectWidth);
+
+ /**
+ * Set margin for text element.
+ * @param left left padding
+ * @param right right padding
+ * @param top top padding
+ * @param bottom bottom padding
+ */
+ void SetTextMargin(int left, int right, int top, int bottom);
+
+ /**
+ * Return minimum height of the list item. This should be call only after
+ * CreateTextLayout().
+ *
+ * @param none
+ * @return int - Minimum height to display list item.
+ *
+ */
+ int GetMinHeight(void) const;
+
+ /**
+ * Return minimum width of the list item. This should be call only after
+ * CreateTextLayout().
+ *
+ * @param none
+ * @return int - Minimum width to display list item.
+ *
+ */
+ int GetMaxWidth(void) const;
+
+ /**
+ * Set vertical alignment for multiline text.
+ *
+ * @param alignment - vertical position of the text.
+ * @return void.
+ *
+ */
+ void SetVerticalAlignment(Tizen::Graphics::TextVerticalAlignment alignment);
+
+ /**
+ * Set Horizontal alignment for multiline text.
+ *
+ * @param alignment - Horizontal position of the text.
+ * @return void.
+ *
+ */
+ void SetHorizentalAlignment(Tizen::Graphics::TextHorizontalAlignment alignment);
+
+
+ /**
+ * Create layout for item which will display in list. This should be call
+ * after setting the list item properties.
+ *
+ * @param width - Width of the list item.
+ *
+ * @return void
+ */
+ void CreateTextLayout(int width = 0, bool singleLine = false);
+ void SetMinimumHeight(int minHeight);
+ void SetMinimumWidth(int minWidth);
+
+private:
+ // Form Base class
+ result OnDraw(void);
+
+ /**
+ * Empty Copy constructor
+ */
+ MultiLineTextItemCntl(const MultiLineTextItemCntl& rhs);
+
+ /**
+ * Empty Assignment operator.
+ *
+ */
+ MultiLineTextItemCntl& operator =(const MultiLineTextItemCntl& rhs);
+
+private:
+ const Tizen::Graphics::Bitmap* __pBackgroundBitmap; // Not own
+ const Tizen::Graphics::Bitmap* __pSelectedBitmap; // Not own
+ Tizen::Graphics::EnrichedText* __pEnrichedText; // Own
+ Tizen::Base::Collection::ArrayList* __pNormalColor; // own
+ Tizen::Base::Collection::ArrayList* __pSelectionColor; // own
+ Tizen::Graphics::TextVerticalAlignment __verticalAlignment;
+ Tizen::Graphics::TextHorizontalAlignment __horizontalAlignment;
+ mutable int __viewRectWidth;
+ mutable int __leftMargin;
+ mutable int __rightMargin;
+ mutable int __topMargin;
+ mutable int __bottomMargin;
+ int __minHeight;
+ int __minWidth;
+};
+
+
+#endif // _MSG_MULTILINE_TEXTITEM_CNTL_H_
#include <FUi.h>\r
\r
#include "MsgBaseCustomPopup.h"\r
-#include "MsgIDeleteEventListener.h"\r
#include "MsgIPopupEventListener.h"\r
\r
class ConversationData;\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
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
--- /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 MsgProgressCntl.h
+ * @brief This is the header file for the %ProgressCntl class.
+ *
+ * This header file contains the declarations of the %ProgressCntl class.
+ */
+
+#ifndef _MSG_PROGRESS_CNTL_H_
+#define _MSG_PROGRESS_CNTL_H_
+
+#include <FUiContainer.h>
+#include <FUiCtrlLabel.h>
+
+#include "MsgTypes.h"
+
+class ProgressCntl
+ : public Tizen::Ui::Container
+ , public Tizen::Base::Runtime::ITimerEventListener
+{
+public:
+ ProgressCntl(void);
+ virtual ~ProgressCntl(void);
+
+ result Construct(Tizen::Graphics::Rectangle rect);
+ virtual void OnTimerExpired(Tizen::Base::Runtime::Timer& timer);
+
+ void Start(void);
+ void Cancel(void);
+
+private:
+ Tizen::Ui::Controls::Label* __pProgressIcon;
+ Tizen::Base::Runtime::Timer* __pTimer;
+ MessageIconType __progressIconType;
+};
+
+#endif // _MSG_PROGRESS_CNTL_H_
class Addressbook;
}};
class ISizeChangeEventListener;
+class TokenOptionPopup;
class RecipientPanel
: public Tizen::Ui::Controls::Panel
, public Tizen::Ui::IFocusEventListener
, public Tizen::Ui::IKeyEventListener
, public Tizen::Ui::ITextEventListener
+ , public Tizen::Ui::ITouchEventListener
, public Tizen::Ui::Controls::IExpandableEditAreaEventListener
, public Tizen::Ui::Controls::IListViewItemEventListener
, public Tizen::Ui::Controls::IListViewItemProvider
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 AddRecipient(const Tizen::Base::String& recipientNumber);
+ Tizen::Base::Collection::ArrayList* GetRecipientNumberListN(void) const;
void SetTextSize(int textSize);
void ShowKeypad(void);
void HideKeypad(void);
- bool CheckRecipentForToken(bool updateToken = true);
+ bool CheckRecipientForToken(bool updateToken = true);
bool IsTextForTokenExist(void) const;
void EnableValidationOnFocusLost(bool state) { __validateOnFocusLost = state;}
bool IsEmptyRecipent(void);
+ void Clear(void);
+
protected:
// Form Base class
virtual result OnDraw(void);
virtual void OnTextValueChanged(const Tizen::Ui::Control& source);
// Form IRunable
virtual Tizen::Base::Object* Run(void);
+ // ITouchEventListener
+ virtual void OnTouchFocusIn(const Tizen::Ui::Control& source, const Tizen::Graphics::Point& currentPosition, const Tizen::Ui::TouchEventInfo& touchInfo){};
+ virtual void OnTouchFocusOut(const Tizen::Ui::Control& source, const Tizen::Graphics::Point& currentPosition, const Tizen::Ui::TouchEventInfo& touchInfo){};
+ virtual void OnTouchMoved(const Tizen::Ui::Control& source, const Tizen::Graphics::Point& currentPosition, const Tizen::Ui::TouchEventInfo& touchInfo){};
+ virtual void OnTouchPressed(const Tizen::Ui::Control& source, const Tizen::Graphics::Point& currentPosition, const Tizen::Ui::TouchEventInfo& touchInfo){};
+ virtual void OnTouchReleased(const Tizen::Ui::Control& source, const Tizen::Graphics::Point& currentPosition, const Tizen::Ui::TouchEventInfo& touchInfo);
/**
* Show Message in popup
Tizen::Base::String __inProperlist;
Tizen::Social::Addressbook* __pAddressBook;
Tizen::Base::Runtime::Thread* __pTokenDeleteThread;
+ TokenOptionPopup * __pTokenOptionPopup;
int __deleteTokenIndex;
bool __validateOnFocusLost;
bool __oneTimeFlag;
+ int __selectedIndex;
};
#endif //_MSG_RECIPIENT_PANEL_H_
#include <FUiIActionEventListener.h>\r
#include <FUiCtrlPopup.h>\r
\r
-#include "MsgIDeleteEventListener.h"\r
-\r
class ConversationData;\r
class IPopupEventListener;\r
\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
// 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
#include <msg_types.h>
#include <FBaseColIListT.h>
-#include "FUi.h"
#include "MsgTypes.h"
class CbReceiveSettings;
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);
+ result DeleteFilter(Tizen::Base::Collection::IListT<int>* pDeleteIdList, int filterType, IDeleteEventListener* pDeleteListener = null);
// For Cell broadcast Messages
CbReceiveSettings* GetCbSettings(void);
CbReceiveSettings* __pCbSettings;
FontSettings* __pFontSettings;
Tizen::Base::Runtime::Thread* __pDeleteFilterThread;
- Tizen::Base::Collection::IListT< int >* __pDeleteFilterIndexList;
- Tizen::Ui::Control* __pDeleteFilterListener;
+ Tizen::Base::Collection::IListT<int>* __pDeleteFilterIndexList;
+ IDeleteEventListener* __pDeleteFilterListener;
int __filterType;
};
\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
+ Tizen::Base::Collection::ArrayListT<int>* __pBlockWordFilterIndex;\r
+ Tizen::Base::Collection::ArrayListT<int>* __pNumberFilterIndex;\r
\r
};\r
\r
#ifndef _MSG_SPAM_RESTORE_HANDLER_H_
#define _MSG_SPAM_RESTORE_HANDLER_H_
+class IRestoreEventListener;
-#include <FBaseRtThread.h>
-#include "FUi.h"
+#include <FBase.h>
class SpamRestoreHandler
- : public Tizen::Base::Runtime::Thread
+ : public Tizen::Base::Object
+ , public Tizen::Base::Runtime::IRunnable
{
public:
- SpamRestoreHandler(Tizen::Base::Collection::ArrayListT<int>* pSelectedIds, Tizen::Ui::Control* parentCtl);
- ~SpamRestoreHandler(void);
- result Construct(void);
+ /**
+ * Constructor.
+ */
+ SpamRestoreHandler(IRestoreEventListener* pRestoreListener);
+
+ /**
+ * Destructor
+ */
+ virtual ~SpamRestoreHandler(void);
+
+ /**
+ * 2nd phase constructor.
+ */
+ result Construct(Tizen::Base::Collection::IListT<int>* pSelectedIds);
+
+ /**
+ * Start delete operation
+ */
+ void Start(void);
+
+ /**
+ * Cancel delete operation
+ */
+ void Cancel(void);
+
private:
- virtual Tizen::Base::Object* Run(void);
+ // Form IRunnable;
+ virtual Tizen::Base::Object* Run(void);
+ //! To prevent copy constructor and assignment
+ SpamRestoreHandler(const SpamRestoreHandler& rhs);
+ SpamRestoreHandler& operator =(const SpamRestoreHandler& rhs);
+
private:
- Tizen::Ui::Control* __parentCtrl;
- Tizen::Base::Collection::ArrayListT<int>* __pselectedIds;
+ IRestoreEventListener* __pRestoreListener; //! To give async update
+ Tizen::Base::Runtime::Thread* __pRestoreThread; //! Restore Worker thread
+ Tizen::Base::Collection::ArrayListT<int>* __pselectedIds; // ! List Message id to be restored
};
#endif // _MSG_SPAM_RESTORE_HANDLER_H_
// From IMsgDeleteEventListener\r
void OnDeleteStart(int totalCount);\r
void OnDeleteUpdate(int deleteCount, int totalCount);\r
- void OnDeleteComplete(int errCode, Tizen::Base::Object* pThreadObject);\r
+ void OnDeleteComplete(int errCode, Tizen::Base::Object* pDeleteHandler);\r
\r
private:\r
Tizen::Ui::Controls::TableViewItem* CreateMatchCriteriaSettingItemsN(int groupIndex, int itemIndex, int itemWidth);\r
void DeleteSelectedSpamFilters(void);\r
void SelectContact(void);\r
void ShowConfirmationPopup(void);\r
- void SaveSpamFilter(SpamFiterType filterType);\r
+ void SaveSpamFilter(SpamFilterType filterType);\r
void UpdateMatchCriteriaSettingItem(int groupIndex, int itemIndex, Tizen::Ui::Controls::TableViewItem* pViewItem);\r
void LoadCurrentSettings(void);\r
\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::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
\r
class SubjectControl\r
: public ComposeBaseControl\r
+ , public Tizen::Ui::IActionEventListener\r
, public Tizen::Ui::IFocusEventListener\r
{\r
public:\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 SetActionEventListener(Tizen::Ui::IActionEventListener& listener);\r
void AddTextEventListener(Tizen::Ui::ITextEventListener& listener);\r
void SetDeleteActionId(int actionId);\r
result ShowKeypad(bool visible);\r
result SetText(const Tizen::Base::String& strText);\r
Tizen::Base::String GetText(void) const;\r
\r
+ // Form IActionEventListener\r
+ virtual void OnActionPerformed(const Tizen::Ui::Control& source, int actionId);\r
// Form IFocusEventListener\r
virtual void OnFocusGained(const Tizen::Ui::Control& source);\r
virtual void OnFocusLost(const Tizen::Ui::Control& source);\r
Tizen::Ui::Controls::EditField* __pEditArea;\r
Tizen::Ui::Controls::Button* __pDeleteButton;\r
Tizen::Graphics::Bitmap* __pBgBitmap;\r
+ Tizen::Ui::IActionEventListener* __pActionEventListener;\r
+ int __deleteActionId;\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.
+//
+
+/**
+ * @file MsgTVBubbleListItem.h
+ * @brief This is the header file for the %TVBubbleListItem class.
+ *
+ * This header file contains the declarations of the %TVBubbleListItem class.
+ */
+#ifndef _MSG_TV_BUBBLE_LIST_ITEM_H_
+#define _MSG_TV_BUBBLE_LIST_ITEM_H_
+
+#include <FUiCtrlTableViewItem.h>
+
+class AttachItemCntl;
+class ConversationData;
+class FontSettings;
+class MultiLineTextItemCntl;
+class ProgressCntl;
+
+enum MsgStatus
+{
+ MSG_STATUS_RECEIVE,
+ MSG_STATUS_SENDING,
+ MSG_STATUS_SENT,
+ MSG_STATUS_FAIL,
+ MSG_STATUS_DRAFT
+};
+
+/**
+ * @class TVBubbleListItem
+ *
+ * This class MsgTVBubbleListItem display text in bubble layout.
+ */
+
+class TVBubbleListItem
+ : public Tizen::Ui::Controls::TableViewItem
+ , public Tizen::Base::Runtime::ITimerEventListener
+ , public Tizen::Ui::ITouchEventListener
+{
+public:
+ enum BubbleItemId
+ {
+ BUBBLE_ITEM_INVALID,
+ BUBBLE_ITEM,
+ BUBBLE_ITEM_TEXT,
+ BUBBLE_ITEM_DATE,
+ BUBBLE_ITEM_SENDING_STATUS,
+ BUBBLE_ITEM_FAIL_STATUS,
+ BUBBLE_ITEM_UNREAD_STATUS,
+ BUBBLE_ITEM_ATTACHMENT_NAME,
+ BUBBLE_ITEM_ATTACHMENT_COUNT,
+ BUBBLE_ITEM_THUMBNAIL_IMAGE,
+ BUBBLE_ITEM_DETAILS,
+ BUBBLE_ITEM_PLAY_AUDIO,
+ BUBBLE_ITEM_VIEW_IMAGE,
+ BUBBLE_ITEM_PLAY_VIDEO,
+ BUBBLE_ITEM_ATTACHMENT,
+ };
+
+public:
+ /**
+ * One argument constructor for this class.
+ *
+ * @param width Maximum width of this list item.
+ *
+ */
+ TVBubbleListItem(ConversationData& convData, int width, FontSettings& fontSettings, bool editMode);
+
+ /**
+ * Default Destructor for this class
+ */
+ ~TVBubbleListItem(void);
+
+ /**
+ * Prepare layout based on content, this should be call after setting list item data.
+ *
+ * @param showAnimation - Indicate current bubble message need to show prgress animation.
+
+ * @return void
+ */
+ void CreateBubbleLayout(bool showAnimation = true);
+ int GetSelectedElementId(void) const;
+ bool IsLongPressed(void) const;
+
+ //From ITouchEventListener
+ virtual void OnTouchPressed(const Tizen::Ui::Control& source, const Tizen::Graphics::Point& currentPosition, const Tizen::Ui::TouchEventInfo& touchInfo);
+ virtual void OnTouchReleased(const Tizen::Ui::Control& source, const Tizen::Graphics::Point& currentPosition, const Tizen::Ui::TouchEventInfo& touchInfo);
+ virtual void OnTouchMoved(const Tizen::Ui::Control& source, const Tizen::Graphics::Point& currentPosition, const Tizen::Ui::TouchEventInfo& touchInfo){};
+ virtual void OnTouchFocusIn(const Tizen::Ui::Control& source, const Tizen::Graphics::Point& currentPosition, const Tizen::Ui::TouchEventInfo& touchInfo){};
+ virtual void OnTouchFocusOut(const Tizen::Ui::Control& source, const Tizen::Graphics::Point& currentPosition, const Tizen::Ui::TouchEventInfo& touchInfo){};
+ // Form ITimerEventListener;
+ virtual void OnTimerExpired(Tizen::Base::Runtime::Timer& timer);
+
+private:
+ /**
+ * Create time stamp for this bubble message.
+ *
+ * @param timeStamp - Time stamp of the bubble.
+ */
+ MultiLineTextItemCntl* CreateTimeStampElementN(void);
+
+ /**
+ * Create content element for message body.
+ */
+ MultiLineTextItemCntl* CreateContentElementN(void);
+
+ //! Empty copy constructor
+ TVBubbleListItem(const TVBubbleListItem& rhs);
+ //! Empty assignment operator.
+ TVBubbleListItem& operator =(const TVBubbleListItem& rhs);
+
+private:
+ ConversationData& __convData;
+ int __leftMargin;
+ int __rightMargin;
+ int __topMargin;
+ int __bottomMargin;
+ int __Width;
+ bool __editMode;
+ FontSettings& __fontSettings;
+ Tizen::Base::Runtime::Timer* __pLongPressTimer; // Own
+ int __selectBubbleItemId;
+ bool __isLongPressed;
+};
+
+
+#endif //_MSG_TV_BUBBLE_LIST_ITEM_H_
const Tizen::Base::String& GetGroupName(void) const;\r
const int GetDraftMessageCount(void) const;\r
DataType GetDataType(void);\r
+ int GetSendReceiveCount(void) const;\r
\r
private:\r
result InitThreadName(msg_struct_t pThreadInfo);\r
Tizen::Base::String __timeStamp;\r
Tizen::Base::String __groupName;\r
int __draftMsgCount;\r
+ int __sendReceiveCount;\r
};\r
\r
\r
#include "MsgBaseForm.h"\r
#include "MsgIDeleteEventListener.h"\r
#include "MsgIPopupEventListener.h"\r
+#include "MsgIRestoreEventListener.h"\r
#include "MsgIThreadEventListener.h"\r
#include "MsgTypes.h"\r
\r
, public Tizen::Ui::Scenes::ISceneEventListener\r
, public IDeleteEventListener\r
, public IPopupEventListener\r
+ , public IRestoreEventListener\r
, public IThreadEventListener\r
{\r
public:\r
void OnFormBackRequested(Tizen::Ui::Controls::Form& source);\r
void OnUserEventReceivedN(RequestId requestId, Tizen::Base::Collection::IList* pArgs);\r
\r
+ // Form IRestoreEventListener\r
+ virtual void OnRestoreStart(int totalCount);\r
+ virtual void OnRestoreUpdate(int restoreCount, int totalCount);\r
+ virtual void OnRestoreComplete(int errCode, Tizen::Base::Object* pRestoreHandler);\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
* 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
/**\r
* Add thread list list box control.\r
*/\r
- result AddListBox(void);\r
+ result AddGroupListView(void);\r
\r
/**\r
* Create list context menu, display this menu when list item swipe.\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
+ Tizen::Base::Collection::ArrayListT<int>* __pSelectedIds;\r
MsgProgressPopup* __pProgressPopup;\r
Tizen::Ui::Controls::ContextMenu* __pContextMenu;\r
Tizen::Ui::Controls::Popup* __pDeletePopup;\r
Tizen::Ui::Controls::ListContextItem* __pItemContextUnblock;\r
int __blockGroupIndex;\r
int __blockItemIndex;\r
- Tizen::Base::String __stringTitle;\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.
+//
+
+/**
+ * @file MsgTokenOptionPopup.h
+ * @brief This is the header file for the %TokenOptionPopup class.
+ *
+ * This header file contains the declarations of the %TokenOptionPopup class.
+ */
+#ifndef _MSG_TOKEN_OPTION_POPUP_H_
+#define _MSG_TOKEN_OPTION_POPUP_H_
+
+#include <FUiIActionEventListener.h>
+#include <FUiCtrlButton.h>
+#include <FUiCtrlIListViewItemEventListener.h>
+#include <FUiCtrlIListViewItemProvider.h>
+
+#include "MsgBaseCustomPopup.h"
+
+class AddressInfo;
+
+class TokenOptionPopup
+ : public BaseCustomPopup
+ , public Tizen::Ui::IActionEventListener
+ , public Tizen::Ui::Controls::IListViewItemEventListener
+ , public Tizen::Ui::Controls::IListViewItemProvider
+{
+
+public:
+ TokenOptionPopup(Tizen::Ui::Control& parent);
+ virtual ~TokenOptionPopup(void);
+ result Construct(AddressInfo* pRecipient);
+ // 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);
+ // From IActionEventListener
+ virtual void OnActionPerformed(const Tizen::Ui::Control& source, int actionId);
+
+private:
+
+ Tizen::Ui::Control& __parentCntl;
+ Tizen::Base::Collection::ArrayList* __pOptionList;
+ Tizen::Ui::Controls::ListView* __pOptionListView;
+ Tizen::Ui::Controls::Button* __pCloseButton;
+};
+
+#endif
}};
// To block MMS functionality, Will remove in final released along with this macro
-#define _DISABLE_MMS_FEATURE_
+//#define _DISABLE_MMS_FEATURE_
enum MessageIconType
{
MSG_ICON_BACK_PRESSED,
MSG_ICON_HEADER_BACK,
MSG_ICON_HEADER_BACK_PRESSED,
+ MSG_ICON_SELECT_ALL,
+ MSG_ICON_SELECT_ALL_PRESSED,
MSG_ICON_CALL,
MSG_ICON_CANCEL,
MSG_ICON_BUBBLE_RECEIVE_BG,
MSG_ICON_BUTTON_PANEL_BG,
MSG_ICON_SMIL_DELETE,
MSG_ICON_SAVE_ATTACHMENT,
+ MSG_ICON_SAVE_ATTACHMENT_PRESSED,
MSG_ICON_SMIL_VOLUME,
MSG_ICON_SMIL_PLAY,
MSG_ICON_SMIL_PAUSE,
MSG_ICON_PHOTO_DELETE,
MSG_ICON_PHOTO_DELETE_PRESS,
MSG_ICON_REPLY,
+ MSG_ICON_PLAY,
+ MSG_ICON_PLAY_PRESS,
+ MSG_ICON_VIDEO_PLAY,
+ MSG_ICON_VIDEO_PLAY_PRESS,
+ MSG_ICON_SEARCH,
+ MSG_ICON_SEARCH_PRESS,
+ //Adding drop down button:
+ MSG_ICON_SIP_CLOSE,
+ MSG_ICON_SIP_CLOSE_PRESS,
};
enum MsgControlIds
IDA_VOICE_CALL_CMD,
IDA_VIDEO_CALL_CMD,
IDA_VIEW_CONTACT,
+ IDA_SELECT_ALL,
IDA_SELECT_ALL_ON,
IDA_SELECT_ALL_OFF,
IDA_PROTECTED_MESSAGES_CMD,
IDA_RESEND_MESSAGE,
IDA_COPY_MESSAGE_TEXT,
IDA_MORE,
+ IDA_ADD_SUBJECT,
IDA_PREVIEW,
IDA_PAGE_DURATION,
+ IDA_BUTTON_DROP_DOWN,
IDA_MMSDETAIL_FORM_HEADER_TITLEITEM,
IDA_VOLUME,
IDA_PREVIOUS,
REQUEST_EDIT_VIEW,
// MMS Compose add element request
REQUEST_ADD_SUBJECT,
- REQUEST_OPEN_GALLARY,
+ REQUEST_OPEN_GALLERY,
REQUEST_TAKE_PICTURE,
REQUEST_CAPTURE_VIDEO,
REQUEST_RECORD_AUDIO,
REQUEST_SHOW_COMPOSE_INFO,
REQUEST_IMAGE_RESIZE_RESPONSE,
REQUEST_DESTROY_ATTACH_POPUP,
+ REQUEST_DESTROY_TOKEN_OPTION_POPUP,
REQUEST_SAVE_MESSAGE_ATTACHMENTS,
- REQUEST_OPTION_POPUP,
+ REQUEST_SHOW_OPTION_POPUP,
+ REQUEST_DESTROY_OPTION_POPUP,
REQUEST_DESTROY_SAVE_ATTACHMENT_POPUP,
REQUEST_DESTROY_DURATION_POPUP,
REQUEST_SHOW_MESSAGE,
REQUEST_SET_FOCUS_RECIPIENT,
+ REQUEST_SHOW_TOKEN_POPUP,
+ REQUEST_EDIT_TOKEN,
+ REQUEST_DELETE_TOKEN,
+ REQUEST_ADD_VIEW_CONTACT,
REQUEST_DELETE_START,
REQUEST_DELETE_UPDATE,
REQUEST_DELETE_COMPLETE,
REQUEST_ENABLE_DISABLE_SEND_BUTTON,
REQUEST_CLOSE_POPUP,
REQUEST_MOVE_FOCUS_RECIPIENT,
- REQUEST_UDATE_FOCUS,
+ REQUEST_UPDATE_FOCUS,
+ REQUEST_UPDATE_CONV_LIST,
+ REQUEST_PAUSE_PREVIEW_VIEWER,
+ REQUEST_SHOW_IMAGE,
+ REQUEST_PLAY_AUDIO,
+ REQUEST_PLAY_VIDEO,
+ REQUEST_SHOW_RESEND_DELETE_POPUP,
+ REQUEST_DESTROY_RESEND_DELETE_POPUP,
+ REQUEST_RESTORE_START,
+ REQUEST_RESTORE_UPDATE,
+ REQUEST_RESTORE_COMPLETE,
+ REQUEST_SHOW_PROGRESS_POPUP,
+ REQUEST_UPDATE_PROGRESS_POPUP,
+ REQUEST_DESTROY_PROGRESS_POPUP,
};
-enum SpamFiterType
+enum SpamFilterType
{
SPAM_FILTER_TYPE_BLOCK_WORD,
SPAM_FILTER_TYPE_BLOCK_NUMBER
//Panel
extern const int PANEL_HEIGHT;
+extern const int CLIPBOARD_HEIGHT_OFFSET;
//Label
extern const int H_MSG_DETAILS_LABEL;
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;
+// Control IDS
+extern const wchar_t* IDC_BUTTON_VIEW_IMAGE;
+extern const wchar_t* IDC_BUTTON_PLAY_AUDIO;
+extern const wchar_t* IDC_BUTTON_VIDEO_THUMBNAIL;
+extern const wchar_t* IDC_BUTTON_PLAY_VIDEO;
+extern const wchar_t* IDC_BUTTON_ATTACH_COUNT;
+extern const wchar_t* IDC_BUTTON_ATTACHMENT;
extern const wchar_t* IDS_SETTING_FONT_TYPE;
extern const wchar_t* IDS_SETTING_VOLUME_KEY;
extern const wchar_t* IDS_APPCONTROL_PROVIDER_GALLERY;
extern const wchar_t* IDS_APPCONTROL_PROVIDER_MEMO;
+extern const wchar_t* IDS_KEY_VOLUME_LEVEL;
extern const wchar_t* IDS_MESSAGING;
extern const wchar_t* IDS_MESSAGES;
extern const wchar_t* IDS_FONT_HELVETICA_NEUE;
<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>
+ <Feature Name="http://tizen.org/feature/platform.core.cpu.arch.x86">true</Feature>
+ <Feature Name="http://tizen.org/feature/platform.core.fpu.arch.vfpv3">true</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/application.launch</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>
+ <Privilege>http://tizen.org/privilege/systeminfo</Privilege>
</Privileges>
<UiApp Main="True" MenuIconVisible="True" Name="Messages" SubMode="True">
<UiScalability BaseScreenSize="Normal" CoordinateSystem="Logical" LogicalCoordinate="720"/>
<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
+ <property disableTextColor="" disabledBitmapPath="" disabledColor="" disabledColorOpacity="100" highlightedBGBitmapPath="" highlightedColor="" highlightedColorOpacity="100" highlightedTextColor="" horizontalAlign="ALIGN_CENTER" normalBGBitmapPath="00_button_popup_normal.#.png" normalBitmapPath="" normalColor="" normalColorOpacity="100" normalTextColor="" pressedBGBitmapPath="00_button_popup_press.#.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="10" y="136"/>\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="10" y="136"/>\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
+ <property disableTextColor="" disabledBitmapPath="00_button_popup_dim.9.png" disabledColor="" disabledColorOpacity="100" highlightedBGBitmapPath="00_button_popup_normal.#.png" highlightedColor="" highlightedColorOpacity="100" highlightedTextColor="" horizontalAlign="ALIGN_CENTER" normalBGBitmapPath="00_button_popup_normal.#.png" normalBitmapPath="" normalColor="" normalColorOpacity="100" normalTextColor="" pressedBGBitmapPath="00_button_popup_press.#.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="345" y="136"/>\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="345" y="136"/>\r
</Button>\r
</ScenePopup>\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
+ <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.#.png" normalBitmapPath="" normalColor="" normalColorOpacity="100" normalTextColor="" pressedBGBitmapPath="00_button_popup_press.#.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="136"/>\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="136"/>\r
</Button>\r
</ScenePopup>\r
<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"/>
+ <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.#.png" normalBitmapPath="" normalColor="" normalColorOpacity="100" normalTextColor="" pressedBGBitmapPath="00_button_popup_press.#.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="196"/>
+ <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="198"/>
</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"/>
+ <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.#.png" normalBitmapPath="" normalColor="" normalColorOpacity="100" normalTextColor="" pressedBGBitmapPath="00_button_popup_press.#.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="196"/>
+ <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="198"/>
</Button>
</ScenePopup>
<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
+ <property disableTextColor="" disabledBitmapPath="00_button_popup_dim.#.png" disabledColor="" disabledColorOpacity="100" highlightedBGBitmapPath="" highlightedColor="" highlightedColorOpacity="100" highlightedTextColor="" horizontalAlign="ALIGN_CENTER" normalBGBitmapPath="00_button_popup_normal.#.png" normalBitmapPath="" normalColor="" normalColorOpacity="100" normalTextColor="" pressedBGBitmapPath="00_button_popup_press.#.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="16" y="114"/>\r
+ <layout height="72" mode="Landscape" width="288" x="16" 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
+ <property disableTextColor="" disabledBitmapPath="00_button_popup_dim.#.png" disabledColor="" disabledColorOpacity="100" highlightedBGBitmapPath="" highlightedColor="" highlightedColorOpacity="100" highlightedTextColor="" horizontalAlign="ALIGN_CENTER" normalBGBitmapPath="00_button_popup_normal.#.png" normalBitmapPath="" normalColor="" normalColorOpacity="100" normalTextColor="" pressedBGBitmapPath="00_button_popup_press.#.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="376" y="114"/>\r
+ <layout height="72" mode="Landscape" width="288" x="376" 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="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
+ <property disableTextColor="" disabledBitmapPath="" disabledColor="" disabledColorOpacity="100" highlightedBGBitmapPath="" highlightedColor="" highlightedColorOpacity="100" highlightedTextColor="" horizontalAlign="ALIGN_CENTER" normalBGBitmapPath="00_button_popup_normal.#.png" normalBitmapPath="" normalColor="" normalColorOpacity="100" normalTextColor="" pressedBGBitmapPath="00_button_popup_press.#.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
+ <property disableTextColor="" disabledBitmapPath="" disabledColor="" disabledColorOpacity="100" highlightedBGBitmapPath="" highlightedColor="" highlightedColorOpacity="100" highlightedTextColor="" horizontalAlign="ALIGN_CENTER" normalBGBitmapPath="00_button_popup_normal.#.png" normalBitmapPath="" normalColor="" normalColorOpacity="100" normalTextColor="" pressedBGBitmapPath="00_button_popup_press.#.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
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">
+<Scene Bversion="2.0.0.201303041025" 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"/>
<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>
+ <GroupedTableView id="IDC_CONV_GROUPEDTABLELIST" parent="IDL_CONVERSATION_LIST_EDIT_FORM">
+ <property backgroundColor="" backgroundColorOpacity="0" collapseByPinchEnabled="false" fastScrollIndex="" groupedLookEnabled="false" itemDivider="false" itemDividerColor="" scrollBarStyle="TABLE_VIEW_SCROLL_BAR_STYLE_FADE_OUT" scrollInputMode="SCROLL_INPUT_MODE_ALLOW_ANY_DIRECTION" useSearchIcon="false"/>
+ <layout bottomRelation="IDC_CONV_EDIT_LABEL" bottomRelationType="RECT_EDGE_RELATION_BOTTOM_TO_TOP" centerHorizontal="false" centerVertical="false" height="962" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Portrait" rightRelation="" rightRelationType="" topRelation="IDC_CHECKALL_BUTTON" topRelationType="RECT_EDGE_RELATION_TOP_TO_BOTTOM" verticalFitPolicy="FIT_POLICY_FIXED" width="720" x="0" y="-1"/>
+ <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="547" x="732" y="165"/>
+ </GroupedTableView>
</Scene>
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">
+<Scene Bversion="2.0.0.201302151552" 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"/>
<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>
+ <GroupedTableView id="IDC_CONV_GROUPEDTABLELIST" parent="IDL_CONVERSATION_LIST_FORM">
+ <property backgroundColor="" backgroundColorOpacity="0" collapseByPinchEnabled="false" fastScrollIndex="" groupedLookEnabled="false" itemDivider="false" itemDividerColor="" scrollBarStyle="TABLE_VIEW_SCROLL_BAR_STYLE_FADE_OUT" scrollInputMode="SCROLL_INPUT_MODE_ALLOW_ANY_DIRECTION" useSearchIcon="false"/>
+ <layout bottomRelation="" bottomRelationType="" 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="None" 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="" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="730" x="480" y="35"/>
+ </GroupedTableView>
</Scene>
-<?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
+<?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="2.0.0.201303041025" Dversion="20120315">
+ <Popup id="IDL_DELETE_POPUP">
+ <property color="" titleText="" titleTextColor=""/>
+ <layout height="214" mode="Portrait" style="" type="NONE" width="720"/>
+ <layout height="214" mode="Landscape" style="" type="NONE" width="720"/>
+ </Popup>
+ <Label id="IDC_DELETE_LABEL" parent="IDL_DELETE_POPUP">
+ <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"/>
+ <layout height="62" mode="Portrait" width="648" x="0" y="18"/>
+ <layout height="62" mode="Landscape" width="648" x="0" y="18"/>
+ </Label>
+ <Button id="IDC_BUTTON_LEFT" parent="IDL_DELETE_POPUP">
+ <property DisabledBitmapX="0" DisabledBitmapY="0" NormalBitmapX="0" NormalBitmapY="0" PressedBitmapX="0" PressedBitmapY="0" disableTextColor="" disabledBGBitmapPath="" disabledBitmapPath="00_button_popup_dim.9.png" disabledColor="" disabledColorOpacity="100" highlightedBGBitmapPath="" highlightedBitmapPath="" highlightedBitmapX="0" highlightedBitmapY="0" highlightedColor="" highlightedColorOpacity="100" highlightedTextColor="" horizontalAlign="ALIGN_CENTER" normalBGBitmapPath="00_button_popup_normal.#.png" normalBitmapPath="" normalColor="" normalColorOpacity="100" normalTextColor="" pressedBGBitmapPath="00_button_popup_press.#.png" pressedBitmapPath="" pressedColor="" pressedColorOpacity="100" pressedTextColor="" text="::IDS_COM_SK_OK" textSize="33" verticalAlign="ALIGN_MIDDLE"/>
+ <layout height="72" mode="Portrait" width="288" x="16" y="100"/>
+ <layout height="72" mode="Landscape" width="288" x="16" y="100"/>
+ </Button>
+ <Button id="IDC_BUTTON_RIGHT" parent="IDL_DELETE_POPUP">
+ <property DisabledBitmapX="0" DisabledBitmapY="0" NormalBitmapX="0" NormalBitmapY="0" PressedBitmapX="0" PressedBitmapY="0" disableTextColor="" disabledBGBitmapPath="" disabledBitmapPath="00_button_popup_dim.9.png" disabledColor="" disabledColorOpacity="100" highlightedBGBitmapPath="" highlightedBitmapPath="" highlightedBitmapX="0" highlightedBitmapY="0" highlightedColor="" highlightedColorOpacity="100" highlightedTextColor="" horizontalAlign="ALIGN_CENTER" normalBGBitmapPath="00_button_popup_normal.#.png" normalBitmapPath="" normalColor="" normalColorOpacity="100" normalTextColor="" pressedBGBitmapPath="00_button_popup_press.#.png" pressedBitmapPath="" pressedColor="" pressedColorOpacity="100" pressedTextColor="" text="::IDS_COM_SK_CANCEL" textSize="33" verticalAlign="ALIGN_MIDDLE"/>
+ <layout height="72" mode="Portrait" width="288" x="376" y="100"/>
+ <layout height="72" mode="Landscape" width="288" x="376" y="100"/>
+ </Button>
+</ScenePopup>
</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="true" centerVertical="false" height="101" 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="658" x="11" y="1"/>\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
+ <property DisabledBitmapX="0" DisabledBitmapY="0" NormalBitmapX="0" NormalBitmapY="0" PressedBitmapX="0" PressedBitmapY="0" disableTextColor="" disabledBGBitmapPath="" disabledBitmapPath="00_button_popup_dim.9.png" disabledColor="" disabledColorOpacity="100" highlightedBGBitmapPath="" highlightedBitmapPath="" highlightedBitmapX="0" highlightedBitmapY="0" highlightedColor="" highlightedColorOpacity="100" highlightedTextColor="" horizontalAlign="ALIGN_CENTER" normalBGBitmapPath="00_button_popup_normal.#.png" normalBitmapPath="" normalColor="" normalColorOpacity="100" normalTextColor="" pressedBGBitmapPath="00_button_popup_press.#.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="16" 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="16" 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
+ <property DisabledBitmapX="0" DisabledBitmapY="0" NormalBitmapX="0" NormalBitmapY="0" PressedBitmapX="0" PressedBitmapY="0" disableTextColor="" disabledBGBitmapPath="" disabledBitmapPath="00_button_popup_dim.9.png" disabledColor="" disabledColorOpacity="100" highlightedBGBitmapPath="" highlightedBitmapPath="" highlightedBitmapX="0" highlightedBitmapY="0" highlightedColor="" highlightedColorOpacity="100" highlightedTextColor="" horizontalAlign="ALIGN_CENTER" normalBGBitmapPath="00_button_popup_normal.#.png" normalBitmapPath="" normalColor="" normalColorOpacity="100" normalTextColor="" pressedBGBitmapPath="00_button_popup_press.#.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="350" 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="350" 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
+ <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="16" 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="16" y="102"/>\r
</EditField>\r
</ScenePopup>\r
-<?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
+<?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="2.0.0.201303041025" Dversion="20120315">
+ <LogicalCoordinate>720</LogicalCoordinate>
+ <Form id="IDL_MMS_DETAIL_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="NONE"/>
+ <layout mode="Landscape" style="FORM_STYLE_INDICATOR|FORM_STYLE_HEADER|FORM_STYLE_FOOTER" type="NONE"/>
+ </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>
+ <Panel id="IDC_PLAY_CONTROLS_PANEL" parent="IDL_MMS_DETAIL_FORM">
+ <property backgroundColor="#4D4D4D" backgroundColorOpacity="0" compositeEnabled="true" groupStyle="GROUP_STYLE_NONE"/>
+ <layout height="216" mode="Portrait" type="NONE" width="720" x="0" y="788"/>
+ <layout height="46" mode="Landscape" type="NONE" width="533" x="90" y="418"/>
+ </Panel>
+ <Button id="IDC_VOLUME_BUTTON" parent="IDC_PLAY_CONTROLS_PANEL">
+ <property DisabledBitmapX="0" DisabledBitmapY="0" NormalBitmapX="0" NormalBitmapY="0" PressedBitmapX="0" PressedBitmapY="0" disableTextColor="" disabledBGBitmapPath="" disabledBitmapPath="" disabledColor="" disabledColorOpacity="100" highlightedBGBitmapPath="" highlightedBitmapPath="" highlightedBitmapX="0" highlightedBitmapY="0" highlightedColor="" highlightedColorOpacity="100" highlightedTextColor="" horizontalAlign="ALIGN_CENTER" normalBGBitmapPath="M01_play_btn_volume_press.png" normalBitmapPath="" normalColor="" normalColorOpacity="100" normalTextColor="" pressedBGBitmapPath="M01_play_btn_volume_press.png" pressedBitmapPath="" pressedColor="" pressedColorOpacity="100" pressedTextColor="" text="" textSize="20" verticalAlign="ALIGN_MIDDLE"/>
+ <layout height="74" mode="Portrait" width="74" x="32" y="120"/>
+ <layout height="356" mode="Landscape" width="78" x="4" y="0"/>
+ </Button>
+ <Button id="IDC_NEXT_BUTTON" parent="IDC_PLAY_CONTROLS_PANEL">
+ <property DisabledBitmapX="0" DisabledBitmapY="0" NormalBitmapX="0" NormalBitmapY="0" PressedBitmapX="0" PressedBitmapY="0" disableTextColor="" disabledBGBitmapPath="" disabledBitmapPath="M01_play_btn_next_press.png" disabledColor="" disabledColorOpacity="100" highlightedBGBitmapPath="" highlightedBitmapPath="" highlightedBitmapX="0" highlightedBitmapY="0" highlightedColor="" highlightedColorOpacity="100" highlightedTextColor="" horizontalAlign="ALIGN_CENTER" normalBGBitmapPath="M01_play_btn_next_press.png" normalBitmapPath="" normalColor="" normalColorOpacity="100" normalTextColor="" pressedBGBitmapPath="M01_play_btn_next_press.png" pressedBitmapPath="" pressedColor="" pressedColorOpacity="100" pressedTextColor="" text="" textSize="33" verticalAlign="ALIGN_MIDDLE"/>
+ <layout height="74" mode="Portrait" width="74" x="466" y="120"/>
+ <layout height="356" mode="Landscape" width="78" x="14" y="0"/>
+ </Button>
+ <Button id="IDC_PLAY_PAUSE_BUTTON" parent="IDC_PLAY_CONTROLS_PANEL">
+ <property DisabledBitmapX="0" DisabledBitmapY="0" NormalBitmapX="0" NormalBitmapY="0" PressedBitmapX="0" PressedBitmapY="0" disableTextColor="" disabledBGBitmapPath="" disabledBitmapPath="" disabledColor="" disabledColorOpacity="100" highlightedBGBitmapPath="" highlightedBitmapPath="" highlightedBitmapX="0" highlightedBitmapY="0" 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"/>
+ <layout height="74" mode="Portrait" width="74" x="322" y="120"/>
+ <layout height="356" mode="Landscape" width="78" x="14" y="0"/>
+ </Button>
+ <Button id="IDC_PREVIOUS_BUTTON" parent="IDC_PLAY_CONTROLS_PANEL">
+ <property DisabledBitmapX="0" DisabledBitmapY="0" NormalBitmapX="0" NormalBitmapY="0" PressedBitmapX="0" PressedBitmapY="0" disableTextColor="" disabledBGBitmapPath="" disabledBitmapPath="M01_play_btn_previous_press.png" disabledColor="" disabledColorOpacity="100" highlightedBGBitmapPath="" highlightedBitmapPath="" highlightedBitmapX="0" highlightedBitmapY="0" highlightedColor="" highlightedColorOpacity="100" highlightedTextColor="" horizontalAlign="ALIGN_CENTER" normalBGBitmapPath="M01_play_btn_previous_press.png" normalBitmapPath="" normalColor="" normalColorOpacity="100" normalTextColor="" pressedBGBitmapPath="M01_play_btn_previous_press.png" pressedBitmapPath="" pressedColor="" pressedColorOpacity="100" pressedTextColor="" text="" textSize="33" verticalAlign="ALIGN_MIDDLE"/>
+ <layout height="74" mode="Portrait" width="74" x="178" y="120"/>
+ <layout height="356" mode="Landscape" width="78" x="14" y="0"/>
+ </Button>
+ <Progress id="IDC_PROGRESS" parent="IDC_PLAY_CONTROLS_PANEL">
+ <property backgroundColor="" barColor="#FFFFFF" leftText="" max="20" min="0" rightText="" showValueState="true" value="0"/>
+ <layout height="28" mode="Portrait" style="PROGRESS_STYLE_NONE" width="486" x="119" y="50"/>
+ <layout height="356" mode="Landscape" style="PROGRESS_STYLE_NONE" width="144" x="39" y="0"/>
+ </Progress>
+ <Label id="IDC_TIME_ELAPSED_LABEL" parent="IDC_PLAY_CONTROLS_PANEL">
+ <property backgroundBitmapPath="" backgroundColor="" backgroundColorOpacity="0" horizontalAlign="ALIGN_CENTER" text="00:00" textColor="#FFFFFF" textSize="18" textStyle="LABEL_TEXT_STYLE_NORMAL" verticalAlign="ALIGN_MIDDLE"/>
+ <layout height="28" mode="Portrait" width="77" x="20" y="50"/>
+ <layout height="356" mode="Landscape" width="78" x="4" y="0"/>
+ </Label>
+ <Label id="IDC_TOTAL_TIME_DURATION_LABEL" parent="IDC_PLAY_CONTROLS_PANEL">
+ <property backgroundBitmapPath="" backgroundColor="" backgroundColorOpacity="0" horizontalAlign="ALIGN_CENTER" text="00:05" textColor="#FFFFFF" textSize="18" textStyle="LABEL_TEXT_STYLE_NORMAL" verticalAlign="ALIGN_MIDDLE"/>
+ <layout height="28" mode="Portrait" width="77" x="623" y="50"/>
+ <layout height="356" mode="Landscape" width="78" x="14" y="0"/>
+ </Label>
+ <Label id="IDC_PAGE_NUMBER_LABEL" parent="IDL_MMS_DETAIL_FORM">
+ <property backgroundBitmapPath="" backgroundColor="" backgroundColorOpacity="0" horizontalAlign="ALIGN_RIGHT" text="" textColor="" textSize="29" textStyle="LABEL_TEXT_STYLE_NORMAL" verticalAlign="ALIGN_TOP"/>
+ <layout height="56" mode="Portrait" width="155" x="564" y="5"/>
+ <layout height="52" mode="Landscape" width="533" x="236" y="0"/>
+ </Label>
+ <Label id="IDC_LABEL_SUBJECT" parent="IDL_MMS_DETAIL_FORM">
+ <property backgroundBitmapPath="" backgroundColor="" backgroundColorOpacity="0" horizontalAlign="ALIGN_LEFT" text="" textColor="" textSize="29" textStyle="LABEL_TEXT_STYLE_NORMAL" verticalAlign="ALIGN_MIDDLE"/>
+ <layout height="56" mode="Portrait" width="564" x="0" y="5"/>
+ <layout height="52" mode="Landscape" width="533" x="96" y="0"/>
+ </Label>
+ <Label id="IDC_ATTACH_FILES_INFO_LABEL" parent="IDL_MMS_DETAIL_FORM">
+ <property backgroundBitmapPath="" backgroundColor="" backgroundColorOpacity="0" horizontalAlign="ALIGN_LEFT" text="" textColor="#1E90FF" textSize="29" textStyle="LABEL_TEXT_STYLE_NORMAL" verticalAlign="ALIGN_MIDDLE"/>
+ <layout height="64" mode="Portrait" width="688" x="16" y="82"/>
+ <layout height="52" mode="Landscape" width="533" x="248" y="0"/>
+ </Label>
+ <ScrollPanel id="IDC_SCROLLPANEL" parent="IDL_MMS_DETAIL_FORM">
+ <property autoResizingEnabled="true" backgroundColor="" backgroundColorOpacity="0" clientAreaHeight="0" clientAreaWidth="0" pageScrollEnabled="true" scrollBarVisible="true" scrollDirection="SCROLL_PANEL_SCROLL_DIRECTION_VERTICAL" scrollInputMode="SCROLL_INPUT_MODE_ALLOW_ANY_DIRECTION"/>
+ <panelLayout height="905" mode="Portrait" width="688"/>
+ <panelLayout height="152" mode="Landscape" width="533"/>
+ <layout height="905" mode="Portrait" type="NONE" width="688" x="16" y="82"/>
+ <layout height="52" mode="Landscape" type="NONE" width="533" x="42" y="370"/>
+ </ScrollPanel>
+ <TextBox id="IDC_MMS_TEXT" parent="IDC_SCROLLPANEL">
+ <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"/>
+ <layout height="193" mode="Portrait" width="688" x="0" y="0"/>
+ <layout height="538" mode="Landscape" width="115" x="18" y="0"/>
+ </TextBox>
+ <Gallery id="IDC_GALLERY_MMS_IMAGE" parent="IDC_SCROLLPANEL">
+ <property backgroundColor="" bitmapPathOfEmptyGallery="" slideShowAnimation="GALLERY_ANIMATION_PAGE" slideShowAnimationDuration="3000" slideShowViewDuration="10" textOfEmptyGallery="" zoomingEnabled="true"/>
+ <layout height="438" mode="Portrait" width="688" x="0" y="0"/>
+ <layout height="466" mode="Landscape" width="115" x="14" y="0"/>
+ </Gallery>
+</Scene>
<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
+ <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.#.png" normalBitmapPath="" normalColor="" normalColorOpacity="100" normalTextColor="" pressedBGBitmapPath="00_button_popup_press.#.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
<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
+ <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.#.png" normalBitmapPath="" normalColor="" normalColorOpacity="100" normalTextColor="" pressedBGBitmapPath="00_button_popup_press.#.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
<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
+ <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.#.png" normalBitmapPath="" normalColor="" normalColorOpacity="100" normalTextColor="" pressedBGBitmapPath="00_button_popup_press.#.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
<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
+ <property disableTextColor="" disabledBitmapPath="" disabledColor="" disabledColorOpacity="100" highlightedBGBitmapPath="" highlightedColor="" highlightedColorOpacity="100" highlightedTextColor="" horizontalAlign="ALIGN_CENTER" normalBGBitmapPath="00_button_popup_normal.#.png" normalBitmapPath="" normalColor="" normalColorOpacity="100" normalTextColor="" pressedBGBitmapPath="00_button_popup_press.#.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
</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
+ <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="16" 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="16" 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
+ <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="16" 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="16" 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
+ <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.#.png" normalBitmapPath="" normalColor="" normalColorOpacity="100" normalTextColor="" pressedBGBitmapPath="00_button_popup_press.#.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="196" 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="196" 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
<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
+ <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.#.png" normalBitmapPath="" normalColor="" normalColorOpacity="100" normalTextColor="" pressedBGBitmapPath="00_button_popup_press.#.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
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">
+<ScenePanel Bversion="2.0.0.201302151552" 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="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"/>
+ <property backgroundBitmapPath="" backgroundColor="" backgroundColorOpacity="0" horizontalAlign="ALIGN_CENTER" text="" textColor="" textSize="25" 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>
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">
+<Scene Bversion="2.0.0.201303041025" 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"/>
<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"/>
+ <property backgroundColor="" backgroundColorOpacity="0" collapseByPinchEnabled="false" fastScrollIndex="" groupedLookEnabled="false" itemDivider="true" itemDividerColor="" scrollBarStyle="TABLE_VIEW_SCROLL_BAR_STYLE_FADE_OUT" 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="967" 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="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="467" y="123"/>
</GroupedTableView>
</Scene>
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">
+<Scene Bversion="2.0.0.201303041025" 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 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="IDC_THREAD_EDIT_LABEL" bottomRelationType="RECT_EDGE_RELATION_BOTTOM_TO_TOP" centerHorizontal="false" centerVertical="false" height="966" 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="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="CUSTOM_LIST_STYLE_NORMAL" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="741" x="506" y="77"/>
</GroupedListView>
</Scene>
<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"/>
+ <property backgroundBitmapPath="" buttonActionId="0" buttonText="" color="" colorOpacity="100" disabledButtonColor="" disabledButtonTextColor="" disabledSearchFieldColor="" disabledSearchFieldTextColor="" ellipsisPosition="ELLIPSIS_POSITION_END" guideText="::IDS_COM_SK_SEARCH" 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="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="None" topRelationType="" 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>
</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
+ <layout height="110" mode="Portrait" width="720" x="0" y="18"/>\r
+ <layout height="110" mode="Landscape" width="720" 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
+ <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.#.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="64" mode="Portrait" width="288" x="180" y="142"/>\r
+ <layout height="64" mode="Landscape" width="288" x="180" y="142"/>\r
</Button>\r
</ScenePopup>\r
-<?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
+<?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="2.0.0.201302151552" Dversion="20120315">
+ <Popup id="IDL_VOLUME_POPUP">
+ <property color="" titleText="::IDS_COM_BODY_SETTINGS" titleTextColor=""/>
+ <layout height="263" mode="Portrait" style="" type="NONE" width="720"/>
+ <layout height="263" mode="Landscape" style="" type="NONE" width="720"/>
+ </Popup>
+ <Slider id="IDC_MEDIA_VOLUME_SLIDER" parent="IDL_VOLUME_POPUP">
+ <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" titleText="" value="4"/>
+ <layout height="134" mode="Portrait" width="647" x="16" y="11"/>
+ <layout height="134" mode="Landscape" width="648" x="16" y="14"/>
+ </Slider>
+</ScenePopup>
--- /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 <FGrpEnrichedText.h>
+
+#include "MsgAttachItemCntl.h"
+#include "MsgBitmapUtility.h"
+#include "MsgTypes.h"
+
+using namespace Tizen::Base;
+using namespace Tizen::Graphics;
+using namespace Tizen::Ui;
+using namespace Tizen::Ui::Controls;
+
+AttachItemCntl::AttachItemCntl(AttachmentType attachmentType, const Bitmap* pAttachIcon)
+ : __attachMentType(attachmentType)
+ , __pNormalAttachIcon(pAttachIcon)
+ , __pPressedAttachIcon(null)
+ , __pEnrichedText(null)
+{
+ //Empty implementation
+}
+
+AttachItemCntl::~AttachItemCntl(void)
+{
+ //Empty implementation
+ if (__pEnrichedText)
+ {
+ __pEnrichedText->RemoveAll(true);
+ delete __pEnrichedText;
+ }
+}
+
+result
+AttachItemCntl::Construct(int maxWidth)
+{
+ AppLogDebug("ENTER");
+
+ result r = E_SUCCESS;
+ __maxWidth = maxWidth;
+ r = Container::Construct();
+ InitializeAttachUi();
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return r;
+}
+
+result
+AttachItemCntl::OnDraw(void)
+{
+ AppLogDebug("ENTER");
+ //__pAttachIconButton->Invalidate(true);
+ result r = E_SUCCESS;
+ Rectangle rect = GetBounds();
+ rect.x = 0;
+ rect.y = 0;
+ Canvas* pCanvas = GetCanvasN();
+ if (pCanvas)
+ {
+ // Make it transparent
+ pCanvas->SetBackgroundColor(Color(0, 0, 0, 0));
+ pCanvas->Clear();
+ // Draw Icon
+ int xPos(rect.x);
+ int yPos;
+ if (__pNormalAttachIcon)
+ {
+ xPos += __pNormalAttachIcon->GetWidth() + MARGIN_5PX;
+ }
+ // Draw text
+ if (__pEnrichedText)
+ {
+ __pEnrichedText->SetSize(GetMimimumWidth(), __pEnrichedText->GetTotalLineHeight());
+ yPos = rect.y + (rect.height - __pEnrichedText->GetHeight()) / 2;
+ r |= pCanvas->DrawText(Point(xPos, yPos), *__pEnrichedText);
+ }
+ delete pCanvas;
+ }
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return r;
+}
+
+void
+AttachItemCntl::InitializeAttachUi(void)
+{
+ AppLogDebug("ENTER");
+
+ // Create attachement icon button
+ __pAttachIconButton = new (std::nothrow) Button();
+ __pAttachIconButton->Construct(Rectangle(0, 0, W_ICON_64PX, H_ICON_64PX));
+ __pAttachIconButton->SetName(GetAttachIconName());
+ switch (__attachMentType)
+ {
+ case ATTACHMENT_TYPE_ATTACH_COUNT:
+ case ATTACHMENT_TYPE_OTHERS:
+ {
+ if (!__pNormalAttachIcon)
+ {
+ __pNormalAttachIcon = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_ATTACHEMENT);
+ }
+ if (!__pPressedAttachIcon)
+ {
+ __pPressedAttachIcon = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_ATTACHEMENT);
+ }
+ }
+ break;
+
+ case ATTACHMENT_TYPE_AUDIO:
+ {
+ if (!__pNormalAttachIcon)
+ {
+ __pNormalAttachIcon = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_PLAY, Dimension(W_ICON_64PX, H_ICON_64PX));
+ }
+ if (!__pPressedAttachIcon)
+ {
+ __pPressedAttachIcon = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_PLAY_PRESS, Dimension(W_ICON_64PX, H_ICON_64PX));
+ }
+ }
+ break;
+
+ case ATTACHMENT_TYPE_IMAGE:
+ case ATTACHMENT_TYPE_VIDEO:
+ {
+ __pPressedAttachIcon = __pNormalAttachIcon;
+ }
+ break;
+
+ }
+ // Load default image size.
+ Dimension iconSize;
+ iconSize.width = __pNormalAttachIcon->GetWidth();
+ iconSize.height = __pNormalAttachIcon->GetHeight();
+ __pAttachIconButton->SetBounds(Rectangle(0, 0, iconSize.width, iconSize.height));
+ __pAttachIconButton->SetNormalBackgroundBitmap(*__pNormalAttachIcon);
+ __pAttachIconButton->SetPressedBackgroundBitmap(*__pPressedAttachIcon);
+ AddControl(*__pAttachIconButton);
+ // For Video file need to add play icon.
+ if (__attachMentType == ATTACHMENT_TYPE_VIDEO)
+ {
+ Bitmap* pVideoPlayIcon = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_VIDEO_PLAY);
+ Bitmap* pVideoPlayPressIcon = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_VIDEO_PLAY_PRESS);
+ Button* pVideoPlayButton = new (std::nothrow) Button();
+ pVideoPlayButton->Construct(Rectangle(0, 0, pVideoPlayIcon->GetWidth(), pVideoPlayIcon->GetHeight()));
+ pVideoPlayButton->SetName(IDC_BUTTON_PLAY_VIDEO);
+ pVideoPlayButton->SetNormalBackgroundBitmap(*pVideoPlayIcon);
+ pVideoPlayButton->SetPressedBackgroundBitmap(*pVideoPlayPressIcon);
+ pVideoPlayButton->SetPosition(Point((__pAttachIconButton->GetWidth() - pVideoPlayButton->GetWidth()) / 2, (__pAttachIconButton->GetHeight() - pVideoPlayButton->GetHeight()) / 2));
+ AddControl(*pVideoPlayButton);
+ SetControlAlwaysOnTop(*pVideoPlayButton, true);
+ }
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+}
+
+const String
+AttachItemCntl::GetAttachIconName(void) const
+{
+ AppLogDebug("ENTER");
+
+ switch (__attachMentType)
+ {
+ case ATTACHMENT_TYPE_IMAGE:
+ return IDC_BUTTON_VIEW_IMAGE;
+
+ case ATTACHMENT_TYPE_VIDEO:
+ return IDC_BUTTON_VIDEO_THUMBNAIL;
+
+ case ATTACHMENT_TYPE_AUDIO:
+ return IDC_BUTTON_PLAY_AUDIO;
+
+ case ATTACHMENT_TYPE_ATTACH_COUNT:
+ return IDC_BUTTON_ATTACH_COUNT;
+
+ case ATTACHMENT_TYPE_OTHERS:
+ default:
+ return IDC_BUTTON_ATTACHMENT;
+ }
+}
+
+void
+AttachItemCntl::SetTitleText(const String& strText, const Font* ptextFont)
+{
+ AppLogDebug("ENTER");
+
+ if (strText.IsEmpty())
+ {
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+ }
+ if (!__pEnrichedText)
+ {
+ __pEnrichedText = new (std::nothrow) EnrichedText();
+ int fileNameWidth(__maxWidth);
+ if (__pNormalAttachIcon)
+ {
+ fileNameWidth -= (__pNormalAttachIcon->GetWidth() + MARGIN_10PX);
+ }
+ __pEnrichedText->Construct(Dimension(fileNameWidth, 20));
+ __pEnrichedText->SetTextWrapStyle(TEXT_WRAP_WORD_WRAP);
+ __pEnrichedText->SetTextAbbreviationEnabled(false);
+ __pEnrichedText->SetElementVerticalAlignment(TEXT_ALIGNMENT_MIDDLE);
+ __pEnrichedText->SetHorizontalAlignment(TEXT_ALIGNMENT_LEFT);
+ }
+ // Add new text element.
+ TextElement* pTextElement = new (std::nothrow) TextElement();
+ pTextElement->Construct(strText);
+ pTextElement->SetTextColor(Color::GetColor(COLOR_ID_BLACK));
+ pTextElement->SetFont(*ptextFont);
+ __pEnrichedText->Add(*pTextElement);
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+AttachItemCntl::AddTouchEventListener(ITouchEventListener& listener)
+{
+ AppLogDebug("ENTER");
+
+ Container::AddTouchEventListener(listener);
+ Control* pVideoPlayButton = GetControl(IDC_BUTTON_PLAY_VIDEO);
+ if (pVideoPlayButton)
+ {
+ pVideoPlayButton->AddTouchEventListener(listener);
+ }
+ __pAttachIconButton->AddTouchEventListener(listener);
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+}
+
+int
+AttachItemCntl::GetMinimumHeight(void) const
+{
+ AppLogDebug("ENTER");
+
+ int minHeight(0);
+ if (__pEnrichedText)
+ {
+ int height, width, length, startIndex = 0;
+ __pEnrichedText->GetTextExtent(startIndex, __pEnrichedText->GetLineLength(0), width, height, length);
+ minHeight = __pEnrichedText->GetTotalLineHeight();
+ }
+ bool isTitleOnBottom((__attachMentType == ATTACHMENT_TYPE_IMAGE) || (__attachMentType == ATTACHMENT_TYPE_IMAGE));
+ if (__pNormalAttachIcon)
+ {
+ if (isTitleOnBottom)
+ {
+ minHeight += __pNormalAttachIcon->GetHeight();
+ }
+ else if (minHeight < __pNormalAttachIcon->GetHeight())
+ {
+ minHeight = __pNormalAttachIcon->GetHeight();
+ }
+ }
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return minHeight;
+}
+
+int
+AttachItemCntl::GetMimimumWidth(void) const
+{
+ AppLogDebug("ENTER");
+
+ int maxWidth = 0;
+ if (__pEnrichedText)
+ {
+ int height, width, length, lineTextLength, startIndex = 0;
+ int lineCount = __pEnrichedText->GetTotalLineCount();
+ for (int count = 0; count < lineCount; count++)
+ {
+ lineTextLength = __pEnrichedText->GetLineLength(count);
+ __pEnrichedText->GetTextExtent(startIndex, lineTextLength, width, height, length);
+ startIndex += lineTextLength;
+ if (maxWidth < width)
+ {
+ maxWidth = width;
+ }
+ }
+ }
+
+ if (__pNormalAttachIcon)
+ {
+ bool isTitleOnBottom((__attachMentType == ATTACHMENT_TYPE_IMAGE) || (__attachMentType == ATTACHMENT_TYPE_IMAGE));
+ if (isTitleOnBottom)
+ {
+ if (maxWidth < __pNormalAttachIcon->GetWidth())
+ {
+ maxWidth = __pNormalAttachIcon->GetWidth();
+ }
+ }
+ else
+ {
+ maxWidth += __pNormalAttachIcon->GetWidth() + MARGIN_10PX;
+ }
+ }
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return maxWidth;
+}
#include "MsgAttachListPanel.h"\r
#include "MsgBitmapUtility.h"\r
#include "MsgCommonUtil.h"\r
-#include "MsgTypes.h"\r
#include "MsgMessageData.h"\r
+#include "MsgTypes.h"\r
\r
using namespace Tizen::App;\r
using namespace Tizen::Base;\r
: __messageData(pMessageDta)\r
, __pAttachFileArray(null)\r
, __pPanel(null)\r
- , __pListView(null)\r
{\r
\r
\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
+ if (visibleListItemCount > 4)\r
{\r
- visibleListItemCount = 6;\r
+ visibleListItemCount = 4;\r
}\r
- increaseHeight = (visibleListItemCount + 1) * H_LIST_ITEM_128PX;\r
+ increaseHeight = (visibleListItemCount + 1) * H_LIST_ITEM_112PX;\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
+ Panel::SetPosition(16, 146);\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->SetSize(pAttachmentsListview->GetWidth(), increaseHeight);\r
+ pAttachmentsListview->AddListViewItemEventListener(*this);\r
}\r
AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
return r;\r
AttachListPanel::CreateItem(int index, int itemWidth)\r
{\r
AppLogDebug("ENTER");\r
+\r
+ bool needToAddSaveAll(__pAttachFileArray->GetCount()>1);\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
+ pItem->Construct(Dimension(itemWidth, H_LIST_ITEM_112PX), LIST_ANNEX_STYLE_NORMAL);\r
+ if (index == 0 && needToAddSaveAll)\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
+ 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
else\r
{\r
- const AttachMentsObject* pAttachment = static_cast<AttachMentsObject*>(__pAttachFileArray->GetAt(index - 1));\r
+ if(needToAddSaveAll)\r
+ {\r
+ index--; //Adjust list item index to add save all item for more than one attach file.\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, *pAttachment->GetIcon());\r
- pItem->AddElement(Rectangle(104, 28, 400, 72),\r
+ pItem->AddElement(Rectangle(104, 28, 470, 72),\r
LIST_ELEMENT_TEXT, File::GetFileName(pAttachment->GetAttachmentPath()));\r
- Bitmap* pBitMap = AppResource::GetInstance()->GetBitmapN(IDB_CONTROLBAR_ICON_SAVE);\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
else\r
{\r
- pItem->AddElement(Rectangle(104, 28, 400, 72),\r
+ pItem->AddElement(Rectangle(104, 28, 470, 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
int elementId, ListItemStatus status)\r
{\r
AppLogDebug("ENTER");\r
+ bool saveAllExist(__pAttachFileArray->GetCount()>1);\r
switch (status)\r
{\r
case LIST_ITEM_STATUS_SELECTED:\r
{\r
- if (index == 0 && elementId == LIST_ELEMENT_SAVE_IMAGE)\r
+ if (index == 0 && saveAllExist && elementId == LIST_ELEMENT_SAVE_IMAGE)\r
{\r
for (int attachFileNumber = 0; attachFileNumber < __pAttachFileArray->GetCount(); attachFileNumber++)\r
{\r
}\r
else if (elementId == LIST_ELEMENT_SAVE_IMAGE)\r
{\r
- AttachMentsObject* pAttachment = (AttachMentsObject*) __pAttachFileArray->GetAt(index - 1);\r
+ if(saveAllExist)\r
+ {\r
+ index--; //Adjust index for save all list item.\r
+ }\r
+ AttachMentsObject* pAttachment = (AttachMentsObject*) __pAttachFileArray->GetAt(index);\r
if (pAttachment && !pAttachment->GetAttachmentPath().IsEmpty())\r
{\r
String destFile;\r
AttachListPanel::GetItemCount(void)\r
{\r
AppLogDebug("ENTER");\r
+\r
+ int itemCount(__pAttachFileArray->GetCount());\r
+ if(itemCount>1)\r
+ {\r
+ itemCount++; // For save all list item\r
+ }\r
AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
- return (__pAttachFileArray->GetCount() + 1);\r
+ return itemCount;\r
}\r
\r
Bitmap*\r
AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
return pBitmap;\r
}\r
+\r
+void\r
+AttachListPanel::SetPanelSize(void)\r
+{\r
+ ListView* pAttachmentsListview = static_cast<ListView*>(GetControl(L"IDC_ATTACH_FILES_LISTVIEW"));\r
+ int increaseHeight(0);\r
+ if (__pAttachFileArray->GetCount() > 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
+ Panel::SetSize(Dimension(GetWidth(), increaseHeight));\r
+ pAttachmentsListview->SetSize(pAttachmentsListview->GetWidth(), increaseHeight);\r
+}\r
//\r
\r
#include <FApp.h>\r
+#include <FUi.h>\r
\r
#include "MsgAttachListPopup.h"\r
#include "MsgBitmapUtility.h"\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
+// 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_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_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_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
+// TODO: Memo does not support app control.\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
case ATTACH_ELEMENT_GALLERY:\r
{\r
- requestId = REQUEST_OPEN_GALLARY;\r
+ requestId = REQUEST_OPEN_GALLERY;\r
__parentCntl.SendUserEvent(requestId, null);\r
}\r
break;\r
using namespace Tizen::Ui;\r
using namespace Tizen::Ui::Controls;\r
\r
+enum InternalActionIds\r
+{\r
+ IDA_DELETE_ATTACH_ITEM,\r
+};\r
+\r
AttachementControl::AttachementControl(const String& attachFile)\r
: __pBgBitmap(null)\r
, __attachFilePath(attachFile)\r
, __pAttachIcon(null)\r
, __pAttachLabel(null)\r
, __pDeleteButton(null)\r
+ , __pActionEventListener(null)\r
{\r
// Empty implementation\r
}\r
__pDeleteButton->SetNormalBackgroundBitmap(*pNormalBitMap);\r
Bitmap* pPressBitMap = pBitmapUtility->GetIconN(MSG_ICON_PAGE_DELETE_PRESS);\r
__pDeleteButton->SetPressedBackgroundBitmap(*pPressBitMap);\r
+ __pDeleteButton->SetActionId(IDA_DELETE_ATTACH_ITEM);\r
+ __pDeleteButton->AddActionEventListener(*this);\r
AddControl(*__pDeleteButton);\r
delete pPressBitMap;\r
delete pNormalBitMap;\r
AttachementControl::SetDeleteActionId(int actionId)\r
{\r
AppLogDebug("ENTER");\r
- __pDeleteButton->SetActionId(actionId);\r
+ __deleteActionId = actionId;\r
AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
}\r
\r
void\r
-AttachementControl::AddActionEventListener(IActionEventListener& listener)\r
+AttachementControl::SetActionEventListener(IActionEventListener& listener)\r
{\r
AppLogDebug("ENTER");\r
- __pDeleteButton->AddActionEventListener(listener);\r
+ __pActionEventListener = &listener;\r
AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
}\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
+ if (__pAttachIcon)\r
+ {\r
+ pCanvas->DrawBitmap(Rectangle(MARGIN_16PX, (rect.height - __pAttachIcon->GetHeight()) / 2, __pAttachIcon->GetWidth(), __pAttachIcon->GetHeight()), *__pAttachIcon);\r
+ }\r
delete pCanvas;\r
}\r
AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
return COMPOSE_CONTROL_ATTACHEMENT;\r
}\r
+\r
+void\r
+AttachementControl::OnActionPerformed(const Control& source, int actionId)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ switch(actionId)\r
+ {\r
+ case IDA_DELETE_ATTACH_ITEM:\r
+ {\r
+ if(__pActionEventListener)\r
+ {\r
+ __pActionEventListener->OnActionPerformed(*this, __deleteActionId);\r
+ }\r
+ }\r
+ break;\r
+\r
+ }\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
#include <FIo.h>\r
#include <FMedia.h>\r
#include <FSysEnvironment.h>\r
+#include <FUi.h>\r
\r
#include "MsgAttachmentSavePopup.h"\r
#include "MsgBitmapUtility.h"\r
{\r
ListView* pAttachmentsListview = static_cast<ListView*>(GetControl(L"IDC_ATTACH_LISTVIEW"));\r
pAttachmentsListview->SetItemChecked(0, true);\r
+ pAttachmentsListview->Invalidate(true);\r
}\r
}\r
}\r
{\r
ListView* pAttachmentsListview = static_cast<ListView*>(GetControl(L"IDC_ATTACH_LISTVIEW"));\r
pAttachmentsListview->SetItemChecked(0, false);\r
+ pAttachmentsListview->Invalidate(true);\r
}\r
}\r
}\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
+ pItem->AddElement(Rectangle(MARGIN_16PX, 0, (itemWidth - MARGIN_16PX - MARGIN_16PX), H_LIST_ITEM_112PX),\r
LIST_ELEMENT_TEXT, *pFileName);\r
}\r
else\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
+ pItem->AddElement(Rectangle(MARGIN_16PX * 2 + pAttachment->GetIcon()->GetWidth(), 0, (itemWidth - MARGIN_16PX * 5 - pAttachment->GetIcon()->GetWidth() * 2), 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
+ pItem->AddElement(Rectangle(MARGIN_16PX, 0, (itemWidth - MARGIN_16PX - MARGIN_16PX), H_LIST_ITEM_112PX),\r
LIST_ELEMENT_TEXT, File::GetFileName(pAttachment->GetAttachmentPath()));\r
}\r
}\r
\r
AddressInfo::AddressInfo()\r
: needToValidate(true)\r
+ , isAddFromContacts(false)\r
{\r
// Empty implementation.\r
}\r
// Empty implementation.\r
}\r
\r
+MmsPageData*\r
+MmsPageData::CloneN(void)\r
+{\r
+ MmsPageData* pCloneObject = new (std::nothrow) MmsPageData(this->__bodyText, this->__isTextTop);\r
+ pCloneObject->__pageDuration = this->__pageDuration;\r
+ pCloneObject->__audioPath = this->__audioPath;\r
+ pCloneObject->__imagePath = this->__imagePath;\r
+ pCloneObject->__videoPath = this->__videoPath;\r
+ return pCloneObject;\r
+}\r
+\r
MessageComposeData::MessageComposeData(const String& subjectText, ArrayList* pPageList, ArrayList* pAttachList)\r
: __isMms(true)\r
, __subjectText(subjectText)\r
#include <msg.h>
#include <msg_storage.h>
#include <FBaseColIListT.h>
-
+#include <FSocial.h>
#include "MsgBasePresentationModel.h"
#include "MsgCommonUtil.h"
+#include "MsgContactUtility.h"
#include "MsgContactList.h"
-#include "MsgDeleteHandlerThread.h"
+#include "MsgDeleteHandler.h"
#include "MsgMessageData.h"
#include "MsgSpamRestoreHandler.h"
#include "MsgThreadData.h"
using namespace Tizen::Base;
using namespace Tizen::Base::Collection;
using namespace Tizen::Base::Runtime;
+using namespace Tizen::Social;
using namespace Tizen::Ui;
BasePresentationModel::BasePresentationModel(void)
: __pMsgHandle(null)
, __pDeleteHandler(null)
, __pSpamRestoreHandler(null)
-
{
//Empty implementation
}
if (__pDeleteHandler)
{
- __pDeleteHandler->Join();
+ __pDeleteHandler->Cancel();
delete __pDeleteHandler;
- __pDeleteHandler = null;
}
- if(__pSpamRestoreHandler)
+ if (__pSpamRestoreHandler)
{
- __pSpamRestoreHandler->Join();
+ __pSpamRestoreHandler->Cancel();
delete __pSpamRestoreHandler;
}
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;
}
void
-BasePresentationModel::Delete(IListT< int >* pIdList,
- Control& listener, int requestType)
+BasePresentationModel::Delete(IListT<int>* pIdList, int requestType, IDeleteEventListener* pDeleteListener)
{
AppLogDebug("ENTER");
- if (__pDeleteHandler)
- {
- delete __pDeleteHandler;
- }
- __pDeleteHandler = new (std::nothrow) DeleteHandlerThread(pIdList, listener, requestType);
- __pDeleteHandler->Construct();
+ CancelDelete();
+ __pDeleteHandler = new (std::nothrow) DeleteHandler(pDeleteListener);
+ __pDeleteHandler->Construct(pIdList, requestType);
__pDeleteHandler->Start();
AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
}
void
-BasePresentationModel::Delete(int deleteId, Control& listener, int requestType)
+BasePresentationModel::Delete(int deleteId, int requestType, IDeleteEventListener* pDeleteListener)
{
AppLogDebug("ENTER");
- if (__pDeleteHandler)
- {
- delete __pDeleteHandler;
- }
- __pDeleteHandler = new (std::nothrow) DeleteHandlerThread(deleteId, listener, requestType);
- __pDeleteHandler->Construct();
+ CancelDelete();
+ __pDeleteHandler = new (std::nothrow) DeleteHandler(pDeleteListener);
+ __pDeleteHandler->Construct(deleteId, requestType);
__pDeleteHandler->Start();
AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
if (pAddressList.nCount > 0)
{
+ Addressbook* pAddressBook = AddressbookManager::GetInstance()->GetAddressbookN();
pRecipientDetailsList = new (std::nothrow) ArrayList();
char recipientNumber[MAX_ADDRESS_VAL_LEN] = {0};
char recipientName[MAX_ADDRESS_VAL_LEN] = {0};
ContactDetails* pConDetails = new (std::nothrow) ContactDetails();
pConDetails->contactName = recipientName;
pConDetails->contactNumber = recipientNumber;
- if(pConDetails->contactName.CompareTo(String(IDS_BLANK)) == 0)
+ if (pConDetails->contactName.CompareTo(String(IDS_BLANK)) == 0)
{
pConDetails->contactName = IDS_UNKNOWN;
+ if (pAddressBook)
+ {
+ IList* pRecipientNameList = pAddressBook->SearchContactsByPhoneNumberN(pConDetails->contactNumber);
+ if (pRecipientNameList)
+ {
+ Contact* pRecipientContact = ContactUtility::GetContact(pRecipientNameList, pConDetails->contactNumber);
+ if (pRecipientContact)
+ {
+ pConDetails->contactName = recipientNumber;
+ }
+ pRecipientNameList->RemoveAll(true);
+ delete pRecipientNameList;
+ }
+ }
}
pRecipientDetailsList->Add(pConDetails);
}
+ if(pAddressBook)
+ {
+ delete pAddressBook;
+ }
}
// Free memory
msg_release_list_struct(&pAddressList);
}
void
-BasePresentationModel::RestoreSpamMsgs(ArrayListT<int>* pSelectedId,Control* threadCtrl)
+BasePresentationModel::RestoreSpamMessages(IListT<int>* pSelectedId, IRestoreEventListener* pRestoreListener)
{
AppLogDebug("ENTER");
-
- if (__pSpamRestoreHandler)
- {
- delete __pSpamRestoreHandler;
- }
-
- __pSpamRestoreHandler = new (std::nothrow) SpamRestoreHandler(pSelectedId,threadCtrl);
- __pSpamRestoreHandler->Construct();
+ CancelRestore();
+ __pSpamRestoreHandler = new (std::nothrow) SpamRestoreHandler(pRestoreListener);
+ __pSpamRestoreHandler->Construct(pSelectedId);
__pSpamRestoreHandler->Start();
AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
AppLogDebug("ENTER");
- if(__pSpamRestoreHandler)
+ if (__pSpamRestoreHandler)
{
- __pSpamRestoreHandler->Join();
+ __pSpamRestoreHandler->Cancel();
delete __pSpamRestoreHandler;
__pSpamRestoreHandler = null;
}
{
AppLogDebug("ENTER");
- if(__pDeleteHandler)
- {
- __pDeleteHandler->Join();
- delete __pDeleteHandler;
- __pDeleteHandler = null;
- }
+ if (__pDeleteHandler)
+ {
+ __pDeleteHandler->Cancel();
+ delete __pDeleteHandler;
+ __pDeleteHandler = null;
+ }
AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
return;
}
+
+int
+BasePresentationModel::GetDraftMessageId(int threadId) const
+{
+ int messageId(-1);
+ msg_struct_list_s draftMsgList = {0, NULL};
+ msg_get_message_list(__pMsgHandle, MSG_DRAFT_ID, threadId, 0, 0, &draftMsgList);
+ if(draftMsgList.nCount>0)
+ {
+ msg_get_int_value(draftMsgList.msg_struct_info[draftMsgList.nCount-1], MSG_MESSAGE_ID_INT, &messageId);
+ }
+ msg_release_list_struct(&draftMsgList);
+ return messageId;
+}
+
#include <FGrpCanvas.h>\r
\r
#include "MsgBitmapUtility.h"\r
+#include "MsgCommonUtil.h"\r
#include "MsgTypes.h"\r
\r
using namespace Tizen::App;\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* IDB_ICON_MUSIC = L"M01_icon_music.png";\r
+const wchar_t* IDB_ICON_UNKNOWN = L"M01_icon_unkown.png";\r
+const wchar_t* IDB_ICON_EXCEL = L"M01_icon_excel.png";\r
+const wchar_t* IDB_ICON_PDF = L"M01_icon_pdf.png";\r
+const wchar_t* IDB_ICON_PPT = L"M01_icon_ppt.png";\r
+const wchar_t* IDB_ICON_HTML = L"M01_icon_html.png";\r
+const wchar_t* IDB_ICON_RSS = L"M01_icon_rss.png";\r
+const wchar_t* IDB_ICON_SVG = L"M01_icon_svg.png";\r
+const wchar_t* IDB_ICON_SWF = L"M01_icon_swf.png";\r
+\r
const wchar_t* FILE_EXTENSION_TXT = L".txt";\r
const wchar_t* FILE_EXTENSION_DOC = L".doc";\r
+const wchar_t* FILE_EXTENSION_CONTACT_INFO = L".vcf";\r
+const wchar_t* FILE_EXTENSION_EXCEL = L".xlsx";\r
+const wchar_t* FILE_EXTENSION_PDF = L".pdf";\r
+const wchar_t* FILE_EXTENSION_RSS = L".rss";\r
+const wchar_t* FILE_EXTENSION_PPT = L".ppt";\r
+const wchar_t* FILE_EXTENSION_SVG = L".svg";\r
+const wchar_t* FILE_EXTENSION_HTML = L".html";\r
+const wchar_t* FILE_EXTENSION_SWF = L".swf";\r
\r
BitmapUtility* BitmapUtility::__pInstance = null;\r
\r
pngFile.Append("00_icon_Back_press_64.png");\r
break;\r
\r
+ case MSG_ICON_SELECT_ALL:\r
+ pngFile.Append("00_icon_select_all_ef.#.png");\r
+ break;\r
+\r
+ case MSG_ICON_SELECT_ALL_PRESSED:\r
+ pngFile.Append("00_icon_select_all.#.png");\r
+ break;\r
+\r
case MSG_ICON_CALL:\r
pngFile.Append("M01_icon_call.png");\r
break;\r
break;\r
\r
case MSG_ICON_SAVE_ATTACHMENT:\r
- pngFile.Append("M01_controlbar_icon_attach.png");\r
+ pngFile.Append("M01_title_icon_attach_web.png");\r
+ break;\r
+\r
+ case MSG_ICON_SAVE_ATTACHMENT_PRESSED:\r
+ pngFile.Append("M01_title_icon_attach_press_web.png");\r
break;\r
\r
case MSG_ICON_SMIL_VOLUME:\r
pngFile.Append("M01_photo_btn_delete_press.png");\r
break;\r
\r
+ case MSG_ICON_PLAY:\r
+ pngFile.Append("M01_icon_play.png");\r
+ break;\r
+\r
+ case MSG_ICON_PLAY_PRESS:\r
+ pngFile.Append("00_Video_play.png");\r
+ break;\r
+\r
+ case MSG_ICON_VIDEO_PLAY:\r
+ pngFile.Append("00_Video_play.png");\r
+ break;\r
+\r
+ case MSG_ICON_VIDEO_PLAY_PRESS:\r
+ pngFile.Append("M01_icon_play.png");\r
+ break;\r
+\r
+ case MSG_ICON_SEARCH:\r
+ pngFile.Append("M01_title_icon_search_web.png");\r
+ break;\r
+\r
+ case MSG_ICON_SEARCH_PRESS:\r
+ pngFile.Append("M01_title_icon_search_press_web.png");\r
+ break;\r
+\r
+ case MSG_ICON_SIP_CLOSE:\r
+ pngFile.Append("M01_input_close.png");\r
+ break;\r
+\r
+ case MSG_ICON_SIP_CLOSE_PRESS:\r
+ pngFile.Append("M01_input_close.png");\r
+ break;\r
+\r
default:\r
if (iconType >= MSG_ICON_PROGRESS_01 && iconType <= MSG_ICON_PROGRESS_30)\r
{\r
}\r
\r
Bitmap*\r
-BitmapUtility::GetBubbleGroupBgBitmap(GroupBgBitmapType groupType,\r
+BitmapUtility::GetBubbleGroupBgBitmapN(GroupBgBitmapType groupType,\r
const String& groupName, 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 strfileExtnExcel(FILE_EXTENSION_EXCEL);\r
+ String strfileExtnPdf(FILE_EXTENSION_PDF);\r
+ String strfileExtnPpt(FILE_EXTENSION_PPT);\r
+ String strfileExtnHtml(FILE_EXTENSION_HTML);\r
+ String strfileExtnRss(FILE_EXTENSION_RSS);\r
+ String strfileExtnSvg(FILE_EXTENSION_SVG);\r
+ String strfileExtnSwf(FILE_EXTENSION_SWF);\r
+\r
String strIconText(IDB_ICON_TEXT);\r
String strIconWord(IDB_ICON_WORD);\r
+ String strIconMusic(IDB_ICON_MUSIC);\r
String strIconUnknown(IDB_ICON_UNKNOWN);\r
+ String strIconExcel(IDB_ICON_EXCEL);\r
+ String strIconPdf(IDB_ICON_PDF);\r
+ String strIconPpt(IDB_ICON_PPT);\r
+ String strIconHtml(IDB_ICON_HTML);\r
+ String strIconRss(IDB_ICON_RSS);\r
+ String strIconSvg(IDB_ICON_SVG);\r
+ String strIconSwf(IDB_ICON_SWF);\r
\r
if (fileName.EndsWith(strFileExtnTxt))\r
{\r
{\r
pIconBitmap = AppResource::GetInstance()->GetBitmapN(strIconWord);\r
}\r
+ else if (CommonUtil::IsAudioFile(fileName))\r
+ {\r
+ pIconBitmap = AppResource::GetInstance()->GetBitmapN(strIconMusic);\r
+ }\r
+ else if (fileName.EndsWith(strfileExtnExcel))\r
+ {\r
+ pIconBitmap = AppResource::GetInstance()->GetBitmapN(strIconExcel);\r
+ }\r
+ else if (fileName.EndsWith(strfileExtnPdf))\r
+ {\r
+ pIconBitmap = AppResource::GetInstance()->GetBitmapN(strIconPdf);\r
+ }\r
+ else if (fileName.EndsWith(strfileExtnHtml))\r
+ {\r
+ pIconBitmap = AppResource::GetInstance()->GetBitmapN(strIconHtml);\r
+ }\r
+ else if (fileName.EndsWith(strfileExtnRss))\r
+ {\r
+ pIconBitmap = AppResource::GetInstance()->GetBitmapN(strIconRss);\r
+ }\r
+ else if (fileName.EndsWith(strfileExtnPpt))\r
+ {\r
+ pIconBitmap = AppResource::GetInstance()->GetBitmapN(strIconPpt);\r
+ }\r
+ else if (fileName.EndsWith(strfileExtnSvg))\r
+ {\r
+ pIconBitmap = AppResource::GetInstance()->GetBitmapN(strIconSvg);\r
+ }\r
+ else if (fileName.EndsWith(strfileExtnSwf))\r
+ {\r
+ pIconBitmap = AppResource::GetInstance()->GetBitmapN(strIconSwf);\r
+ }\r
else\r
{\r
pIconBitmap = AppResource::GetInstance()->GetBitmapN(strIconUnknown);\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 "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
+//
+// 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 "MsgBubbleBackgroundCntl.h"
+
+
+using namespace Tizen::Graphics;
+using namespace Tizen::Ui::Controls;
+
+BubbleBackgroundCntl::BubbleBackgroundCntl(void)
+ : __pBackgroundBitmap(null)
+{
+ AppLogDebug("ENTER");
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+}
+
+BubbleBackgroundCntl::~BubbleBackgroundCntl(void)
+{
+ AppLogDebug("ENTER");
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+}
+
+result
+BubbleBackgroundCntl::Construct(bool isSendBubble)
+{
+ AppLogDebug("ENTER");
+
+ result r = Container::Construct();
+ BitmapUtility* pBitmapUtility = BitmapUtility::GetInstance();
+ if (isSendBubble)
+ {
+ __pBackgroundBitmap = pBitmapUtility->GetIcon(MSG_ICON_BUBBLE_SENT_BG, Dimension(68, MIN_BUBBLE_HEIGHT));
+ }
+ else
+ {
+ __pBackgroundBitmap = pBitmapUtility->GetIcon(MSG_ICON_BUBBLE_RECEIVE_BG, Dimension(76, MIN_BUBBLE_HEIGHT));
+ }
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return r;
+}
+
+result
+BubbleBackgroundCntl::OnDraw(void)
+{
+ AppLogDebug("ENTER");
+
+ result r = E_SUCCESS;
+ Rectangle rect = GetBounds();
+ rect.x = 0;
+ rect.y = 0;
+ Canvas* pCanvas = GetCanvasN();
+ if (pCanvas)
+ {
+ // Make it transparent
+ pCanvas->SetBackgroundColor(Color(0, 0, 0, 0));
+ pCanvas->Clear();
+ if (__pBackgroundBitmap)
+ {
+ r |= pCanvas->DrawNinePatchedBitmap(rect, *__pBackgroundBitmap);
+ }
+ delete pCanvas;
+ }
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return r;
+}
AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
return charCountInfo;\r
}\r
+\r
+void\r
+CommonUtil::ShowImage(const String& filePath)\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"email");\r
+ pHashMap->Add(pModeKey, pModeVal);\r
+ String* pTypeKey = new (std::nothrow) String(L"path");\r
+ String* pTypeVal = new (std::nothrow) String(filePath);\r
+ pHashMap->Add(pTypeKey, pTypeVal);\r
+ pAppControl->Start(null, null, pHashMap, null);\r
+ pHashMap->RemoveAll(true);\r
+ delete pHashMap;\r
+ delete pAppControl;\r
+ }\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
+\r
+void\r
+CommonUtil::PlayVideo(const String& filePath)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ AppControl* pAppControl = AppManager::FindAppControlN(IDS_APPCONTROL_PROVIDER_VIDEO,\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"video");\r
+ pHashMap->Add(pModeKey, pModeVal);\r
+ String* pTypeKey = new (std::nothrow) String(L"path");\r
+ String* pTypeVal = new (std::nothrow) String(filePath);\r
+ pHashMap->Add(pTypeKey, pTypeVal);\r
+ pAppControl->Start(null, null, pHashMap, null);\r
+ pHashMap->RemoveAll(true);\r
+ delete pHashMap;\r
+ delete pAppControl;\r
+ }\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+\r
+}\r
+\r
+void\r
+CommonUtil::PlayAudio(const String& filePath)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ AppControl* pAppControl = AppManager::FindAppControlN(IDS_APPCONTROL_PROVIDER_AUDIO,\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"audio");\r
+ pHashMap->Add(pModeKey, pModeVal);\r
+ String* pTypeKey = new (std::nothrow) String(L"path");\r
+ String* pTypeVal = new (std::nothrow) String(filePath);\r
+ pHashMap->Add(pTypeKey, pTypeVal);\r
+ pAppControl->Start(null, null, pHashMap, null);\r
+ pHashMap->RemoveAll(true);\r
+ delete pHashMap;\r
+ delete pAppControl;\r
+ }\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
using namespace Tizen::Ui;
using namespace Tizen::Ui::Controls;
using namespace Tizen::Ui::Scenes;
+using namespace Tizen::System;
ComposerForm::ComposerForm(void)
: __pRecipientPanel(null)
, __pMsgComposePanel(null)
, __pDraftMessageEntry(null)
, __pMessagePopup(null)
- , __pTrayPanel(null)
+ , __pMoreContextMenu(null)
, __pDurationPopup(null)
, __needToSetFocusRecipient(false)
+ , __volumeLevel(-1)
+ , __isLaunchedAsForward(false)
{
//Empty implementation
}
ComposerForm::~ComposerForm(void)
{
AppLogDebug("ENTER");
+ SettingInfo::RemoveSettingEventListener(*this);
+ if(__pMoreContextMenu)
+ {
+ delete __pMoreContextMenu;
+ }
if (__pDurationPopup)
{
delete __pDurationPopup;
ComposerForm::OnIntializeHeader(Header& header)
{
AppLogDebug("ENTER");
+
header.AddActionEventListener(*this);
header.SetStyle(HEADER_STYLE_TITLE);
-
+ // Set title
String strText;
Application::GetInstance()->GetAppResource()->GetString(L"IDS_COM_POP_NEW_MESSAGE", strText);
header.SetTitleText(strText);
-
+ // Set right button
ButtonItem buttonRightItem;
buttonRightItem.Construct(BUTTON_ITEM_STYLE_TEXT, IDA_HEADER_BACK);
Bitmap* pBitMap = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_HEADER_BACK);
pBitMap = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_HEADER_BACK_PRESSED);
buttonRightItem.SetIcon(BUTTON_ITEM_STATUS_PRESSED, pBitMap);
header.SetButton(BUTTON_POSITION_RIGHT, buttonRightItem);
-
+ // Set left button
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
+ btnLeft.SetIcon(BUTTON_ITEM_STATUS_DISABLED, pBitMap);
+ header.SetButton(BUTTON_POSITION_LEFT, btnLeft);
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
}
void
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;
}
+ // Set Focus to editor.
+ if (__pRecipientPanel->GetRecipientCount() > 0)
+ {
+ __pMsgComposePanel->SetFocusToEditor();
+ }
+ else
+ {
+ __pRecipientPanel->SetFocus();
+ }
}
break;
case REQUEST_ENABLE_DISABLE_SEND_BUTTON:
{
//TODO
- if(__pMsgComposePanel && __pRecipientPanel)
+ if (__pMsgComposePanel && __pRecipientPanel)
{
- if(__pMsgComposePanel->IsComposeFieldEmpty() ||__pRecipientPanel->IsEmptyRecipent())
+ if (__pMsgComposePanel->IsComposeFieldEmpty())
{
__pMsgComposePanel->EnableSendButton(false);
}
}
break;
- case REQUEST_UDATE_FOCUS:
+ case REQUEST_UPDATE_FOCUS:
{
- if( __needToSetFocusRecipient )
+ if (__needToSetFocusRecipient)
{
- RequestId requestId = REQUEST_SET_FOCUS_RECIPIENT;
- __pRecipientPanel->SendUserEvent(requestId, null);
+ RequestId rqsttId = REQUEST_SET_FOCUS_RECIPIENT;
+ __pRecipientPanel->SendUserEvent(rqsttId, null);
__needToSetFocusRecipient = false;
}
}
// For volume key press
AddKeyEventListener(*this);
__pRecipientPanel->SetFocus();
+
+ // For increasing/decreasing font size when volume level is changed:
+ SettingInfo::AddSettingEventListener(*this);
+ SettingInfo::GetValue(IDS_KEY_VOLUME_LEVEL, __volumeLevel);
}
AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
return r;
case COMPOSER_LAUNCH_FORWORD_MESSAGE:
{
+ __isLaunchedAsForward = true;
MessageData* pMessageData = (MessageData*) pArgs->GetAt(1);
__pMsgComposePanel->LoadMessageData(*pMessageData);
}
int panelHeight = __pMsgComposePanel->GetDisplayHeight();
if (__pRecipientPanel->Equals(control))
{
- //TODO:
+ //Check if compose panel overlap with recipient panel
+ int recipientPanelEndPosY = __pRecipientPanel->GetY() + __pRecipientPanel->GetHeight();
+ int composePanelPosY = __pMsgComposePanel->GetY();
+ if (recipientPanelEndPosY > composePanelPosY)
+ {
+ int sizeToReduce = recipientPanelEndPosY - composePanelPosY;
+ __pMsgComposePanel->SetBounds(Rectangle(__pMsgComposePanel->GetX(), recipientPanelEndPosY,
+ __pMsgComposePanel->GetWidth(), (panelHeight - sizeToReduce)));
+ }
}
else if (__pMsgComposePanel->Equals(control))
{
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);
- }
+// Header* pHeader = GetHeader();
+// if (pHeader)
+// {
+// bool mmsMode(type == COMPOSE_MMS);
+// pHeader->SetButtonEnabled(BUTTON_POSITION_LEFT, mmsMode);
+// pHeader->Invalidate(true);
+// }
AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
}
AppLogDebug("ENTER");
// If entered text not yet converted to token, then check it can it be converted to token.
- if (!__pRecipientPanel->CheckRecipentForToken(false))
+ if (!__pRecipientPanel->CheckRecipientForToken(false))
{
- SendUserEvent(REQUEST_ENABLE_DISABLE_SEND_BUTTON,null);
+ SendUserEvent(REQUEST_ENABLE_DISABLE_SEND_BUTTON, null);
AppLogDebug("Invalid recipients");
AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
return;
}
- ArrayList* pRecipientList = __pRecipientPanel->GeRecipientNumberListN();
+ ArrayList* pRecipientList = __pRecipientPanel->GetRecipientNumberListN();
if (pRecipientList)
{
+ if (pRecipientList->GetCount() > 10)
+ {
+ pRecipientList->RemoveItems(10, pRecipientList->GetCount()-10);
+ }
MessageComposeData* pComposeData = __pMsgComposePanel->GetMessageComposeDataN();
if (pComposeData)
{
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);
+ if (!__isLaunchedAsForward)
+ {
+ pSceneManager->GoForward(ForwardSceneTransition(IDSCN_CONVERSATION_LIST,
+ SCENE_TRANSITION_ANIMATION_TYPE_NONE, SCENE_HISTORY_OPTION_NO_HISTORY, SCENE_DESTROY_OPTION_DESTROY), pArgList);
+ }
+ else
+ {
+ __isLaunchedAsForward = false;
+ pSceneManager->GoForward(ForwardSceneTransition(IDSCN_CONVERSATION_LIST,
+ SCENE_TRANSITION_ANIMATION_TYPE_NONE, SCENE_HISTORY_OPTION_NO_HISTORY, SCENE_DESTROY_OPTION_DESTROY), null);
+ }
}
else
{
return;
}
-void ComposerForm::CreateDraftMsgAndExit(MessageComposeData* pComposeData)
+void
+ComposerForm::CreateDraftMsgAndExit(MessageComposeData* pComposeData)
{
- ArrayList* pRecipientsNumberArray = __pRecipientPanel->GeRecipientNumberListN();
+ ArrayList* pRecipientsNumberArray = __pRecipientPanel->GetRecipientNumberListN();
if (pRecipientsNumberArray)
{
MessagePresentationModel* pMessagePresentationModel = MessagePresentationModel::GetInstance();
if (pMessagePresentationModel)
{
+ int draftId(-1);\r
+ if (__pDraftMessageEntry)\r
+ {\r
+ draftId = __pDraftMessageEntry->GetEntryId();\r
+ }\r
pMessagePresentationModel->SaveMessage(*pComposeData, *pRecipientsNumberArray);
+ if (draftId > -1)\r
+ {\r
+ pMessagePresentationModel->Delete(draftId, REQUEST_DELETE_MESSAGE);\r
+ }\r
}
pRecipientsNumberArray->RemoveAll(true);
delete pRecipientsNumberArray;
}
}
+result
+ComposerForm::ShowMoreContextMenu(const Control& source)
+{
+ AppLogDebug("ENTER");
+
+ result r = E_SUCCESS;
+ if (__pMoreContextMenu)
+ {
+ delete __pMoreContextMenu;
+ __pMoreContextMenu = null;
+ }
+ __pMoreContextMenu = new (std::nothrow) ContextMenu();
+ __pMoreContextMenu->Construct(Point(source.GetWidth()*4/5,source.GetHeight() + MARGIN_15PX), CONTEXT_MENU_STYLE_LIST);
+ __pMoreContextMenu->SetColor(Color::GetColor(COLOR_ID_WHITE));
+ __pMoreContextMenu->SetItemTextColor(CONTEXT_MENU_ITEM_STATUS_NORMAL,Color::GetColor(COLOR_ID_BLACK));
+ String strText;
+ if (!__pMsgComposePanel->IsSubjectExists())
+ {
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_COM_BODY_SUBJECT", strText);
+ __pMoreContextMenu->AddItem(strText, IDA_ADD_SUBJECT);
+ }
+
+ if(__pMsgComposePanel->IsMmsMode())
+ {
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_COM_SK3_PREVIEW", strText);
+ __pMoreContextMenu->AddItem(strText, IDA_PREVIEW);
+ String strFormat;
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGC_BUTTON2_DURATION_N_HPD_SECS", strFormat);
+ strText.Format(strFormat.GetLength() * 2, strFormat.GetPointer(), __pMsgComposePanel->GetDefaultPageDuration());
+ __pMoreContextMenu->AddItem(strFormat, IDA_PAGE_DURATION);
+ }
+ __pMoreContextMenu->AddActionEventListener(*this);
+ __pMoreContextMenu->SetShowState(true);
+ __pMoreContextMenu->Show();
+
+ AppLogDebug("EXIT: r= %s", GetErrorMessage(GetLastResult()));
+ return r;
+}
+
+
void
ComposerForm::OnActionPerformed(const Control& source, int actionId)
{
((pComposeData) && (__pRecipientPanel->IsTextForTokenExist() || __pRecipientPanel->GetRecipientCount() <= 0)))
{
__pRecipientPanel->EnableValidationOnFocusLost(false);
- if(__pRecipientPanel->IsTextForTokenExist() && __pRecipientPanel->CheckRecipentForToken())
+ if (__pRecipientPanel->IsTextForTokenExist() && __pRecipientPanel->CheckRecipientForToken())
{
// ArrayList* pRecipientsNumberArray = __pRecipientPanel->GeRecipientNumberListN();
// if (pRecipientsNumberArray)
// pRecipientsNumberArray->RemoveAll(true);
// delete pRecipientsNumberArray;
// }
- if(pComposeData)
+ if (pComposeData)
{
CreateDraftMsgAndExit(pComposeData);
}
pSceneManager->GoBackward(BackwardSceneTransition());
}
}
- else if(__pRecipientPanel->GetRecipientCount() > 0)
+ else if (__pRecipientPanel->GetRecipientCount() > 0)
{
// ArrayList* pRecipientsNumberArray = __pRecipientPanel->GeRecipientNumberListN();
// if (pRecipientsNumberArray)
// pRecipientsNumberArray->RemoveAll(true);
// delete pRecipientsNumberArray;
// }
- if(pComposeData)
+ if (pComposeData)
{
CreateDraftMsgAndExit(pComposeData);
}
if (pComposeData)
{
// Save message to draft
- ArrayList* pRecipientsNumberArray = __pRecipientPanel->GeRecipientNumberListN();
+ ArrayList* pRecipientsNumberArray = __pRecipientPanel->GetRecipientNumberListN();
if (pRecipientsNumberArray)
{
MessagePresentationModel* pMessagePresentationModel = MessagePresentationModel::GetInstance();
if (pMessagePresentationModel)
{
+ int draftId(-1);\r
+ if (__pDraftMessageEntry)\r
+ {\r
+ draftId = __pDraftMessageEntry->GetEntryId();\r
+ }\r
pMessagePresentationModel->SaveMessage(*pComposeData, *pRecipientsNumberArray);
+ if (draftId > -1)\r
+ {\r
+ pMessagePresentationModel->Delete(draftId, REQUEST_DELETE_MESSAGE);\r
+ }\r
}
pRecipientsNumberArray->RemoveAll(true);
delete pRecipientsNumberArray;
case IDA_DISCARD_MESSAGE_CANCEL:
{
- __pMsgComposePanel->ShowKeypad();
DestroyMessagePopup();
- if(__pRecipientPanel->GetRecipientCount() > 0)
+ if (__pRecipientPanel->GetRecipientCount() > 0)
{
__pMsgComposePanel->SetFocusToEditor();
}
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
+ ShowMoreContextMenu(source);
+ }
+ break;
+
+ case IDA_ADD_SUBJECT:
+ {
+ RequestId requestId = REQUEST_ADD_SUBJECT;
+ __pMsgComposePanel->SendUserEvent(requestId,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
+ //Preview MMS
ArrayList* pArgList = new (std::nothrow) ArrayList();
pArgList->Add((new (std::nothrow) Integer(MMS_FORM_PREVIEW)));
MessageData* pMessageData = new (std::nothrow) MessageData();
case IDA_PAGE_DURATION:
{
+ __pMsgComposePanel->HideKeypad();
+ __pRecipientPanel->HideKeypad();
if (__pDurationPopup)
{
delete __pDurationPopup;
+ __pDurationPopup = null;
}
__pDurationPopup = new (std::nothrow) DurationPopup(*this);
__pDurationPopup->Construct(L"IDL_DURATION_POPUP");
__pDurationPopup->SetDuration(__pMsgComposePanel->GetDefaultPageDuration());
- __pDurationPopup->Show();
- __pDurationPopup->SetFocusToEditor();
+ __pDurationPopup->ShowPopup();
}
break;
AppLogDebug("ENTER");
Rectangle clientArea = GetClientAreaBounds();
+ AppLogDebug("clientArea : %d",clientArea.height);
if (__pMsgComposePanel != null)
{
__pMsgComposePanel->SetMaximumSize(Dimension(__pMsgComposePanel->GetWidth(), clientArea.height - __pRecipientPanel->GetHeight() + 1));
Clipboard* pClibBoard = Clipboard::GetInstance();
if (pClibBoard && pClibBoard->IsPopupVisible())
{
- __pMsgComposePanel->SetBounds(Rectangle(0, prePanelBounds.y - PANEL_HEIGHT + 35, clientArea.width, __pMsgComposePanel->GetDisplayHeight()));
+ Point composePanelPosition = __pRecipientPanel->GetPosition();\r
+ composePanelPosition.y += __pRecipientPanel->GetHeight();\r
+ // Platform not returning correct rectangle in case of clip board open, do calculation here\r
+ int composePosY = prePanelBounds.y - __pMsgComposePanel->GetDisplayHeight() + 35;\r
+ if (composePanelPosition.y < composePosY)\r
+ {\r
+ composePanelPosition.y = composePosY;\r
+ }\r
+ if (__pMsgComposePanel->GetDisplayHeight() > __pMsgComposePanel->GetMaximumSize().height)\r
+ {\r
+ __pMsgComposePanel->SetBounds(Rectangle(composePanelPosition.x, composePanelPosition.y, clientArea.width, __pMsgComposePanel->GetMaximumSize().height));\r
+ }\r
+ else\r
+ {\r
+ __pMsgComposePanel->SetBounds(Rectangle(composePanelPosition.x, composePanelPosition.y, clientArea.width, __pMsgComposePanel->GetDisplayHeight()));\r
+ }\r
}
else
{
- if(__pMsgComposePanel->GetDisplayHeight() > __pMsgComposePanel->GetMaximumSize().height)
+ if (__pMsgComposePanel->GetDisplayHeight() > __pMsgComposePanel->GetMaximumSize().height)
{
__pMsgComposePanel->SetBounds(Rectangle(0, clientArea.height - __pMsgComposePanel->GetDisplayHeight(), clientArea.width, __pMsgComposePanel->GetMaximumSize().height));
}
}
+
+void
+ComposerForm::OnSettingChanged(Tizen::Base::String& key)
+{
+ AppLogDebug("ENTER");
+ AppLogDebug("Initial volume level is %d", __volumeLevel);
+ result r = E_SUCCESS;
+
+ int mediaVolumeLevel = -1;
+ r = SettingInfo::GetValue(IDS_KEY_VOLUME_LEVEL, mediaVolumeLevel);
+ if (r == E_SUCCESS)
+ {
+ if (mediaVolumeLevel > __volumeLevel)
+ {
+ 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);
+ __pMsgComposePanel->Invalidate(true);
+ __pRecipientPanel->Invalidate(true);
+
+ }
+ else if (mediaVolumeLevel < __volumeLevel)
+ {
+ 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);
+ __pMsgComposePanel->Invalidate(true);
+ __pRecipientPanel->Invalidate(true);
+ }
+
+ __volumeLevel = mediaVolumeLevel;
+ }
+
+ AppLogDebug("Volume level is %d and result is %d", mediaVolumeLevel, r);
+ AppLogDebug("EXIT: r= %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+
void
ComposerForm::LoadComposeData(const MessageComposeData& composeData)
{
// Set Body text.
__pMsgComposePanel->LoadComposeData(composeData);
// Set cursor based available data when loading form appcontrol
- bool recipientExist(pAddressList && pAddressList->GetCount()>0);
- if( recipientExist )
+ bool recipientExist(pAddressList && pAddressList->GetCount() > 0);
+ if (recipientExist)
{
__pMsgComposePanel->SetFocusToEditor();
}
using namespace Tizen::Ui::Controls;
ContactList::ContactList(void)
-:__pContactList(null)
-, __pContactPopup(null)
-, __pBlockConfirmPopup(null)
+ : __pContactList(null)
+ , __pContactPopup(null)
+ , __pBlockConfirmPopup(null)
{
//Empty Implementation
}
{
AppLogDebug("ENTER");
- if(__pContactPopup)
+ if (__pContactPopup)
{
delete __pContactPopup;
}
- if(__pBlockConfirmPopup)
+ if (__pBlockConfirmPopup)
{
delete __pBlockConfirmPopup;
}
void
ContactList::OnListViewItemStateChanged(ListView& listView, int index, int elementId,
- ListItemStatus status)
+ ListItemStatus status)
{
AppLogDebug("ENTER");
void
ContactList::OnListViewItemSwept(ListView& listView, int index,
- SweepDirection direction)
+ SweepDirection direction)
{
AppLogDebug("ENTER");
AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
void
ContactList::OnListViewContextItemStateChanged(ListView& listView, int index, int elementId,
- ListContextItemStatus state)
+ ListContextItemStatus state)
{
AppLogDebug("ENTER");
AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
void
ContactList::OnListViewItemLongPressed(ListView& listView, int index, int elementId,
- bool& invokeListViewItemCallback)
+ bool& invokeListViewItemCallback)
{
AppLogDebug("ENTER");
AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
int count(0);
// In case of single recipient, it will never be invoked.
- if(__pContactList && __pContactList->GetCount() > 1)
+ if (__pContactList && __pContactList->GetCount() > 1)
{
count = __pContactList->GetCount();
}
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)
+ 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);
+ 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()));
{
AppLogDebug("ENTER");
- if(pItem)
+ if (pItem)
{
delete pItem;
pItem = null;
{
AppLogDebug("ENTER");
// Release memory if exist
- if(__pContactPopup)
+ if (__pContactPopup)
{
- delete __pContactPopup;
+ delete __pContactPopup;
__pContactPopup = null;
}
__pContactPopup = new (std::nothrow) ContactPopup(*this);
- __pContactPopup->Construct(__titleName,__contactNumber);
+ __pContactPopup->Construct(__titleName, __contactNumber);
__pContactPopup->Show();
AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
{
AppLogDebug("ENTER");
- if(!pPopupListItem)
+ if (!pPopupListItem)
{
AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
return;
}
- const PopupListItem* pPopupSelectItem = (PopupListItem*)pPopupListItem;
- switch(pPopupSelectItem->GetActionId())
+ const PopupListItem* pPopupSelectItem = (PopupListItem*) pPopupListItem;
+ switch (pPopupSelectItem->GetActionId())
{
case IDA_CONVERSATION_FORM_VOICE_CALL:
{
- if( CommonUtil::IsSimAvailable())
+ if (CommonUtil::IsSimAvailable())
{
ContactUtility::VoiceCall(__contactNumber);
}
case IDA_CONVERSATION_FORM_UNBLOCK:
UnBlockPhoneNumber();
break;
+
default:
break;
}
void
-ContactList::OnPopupClose(Object* pObject )
+ContactList::OnPopupClose(Object* pObject)
{
- if(__pContactPopup && __pContactPopup->Equals(*pObject))
+ if (__pContactPopup && __pContactPopup->Equals(*pObject))
{
delete __pContactPopup;
__pContactPopup = null;
}
- if(__pBlockConfirmPopup && __pBlockConfirmPopup->Equals(*pObject))
+ if (__pBlockConfirmPopup && __pBlockConfirmPopup->Equals(*pObject))
{
delete __pBlockConfirmPopup;
__pBlockConfirmPopup = null;
{
AppLogDebug("ENTER");
- switch(actionId)
+ switch (actionId)
{
case IDA_PHONENUMBER_BLOCK_OK:
{
SettingPresentationModel* pSettingPrModel = SettingPresentationModel::GetInstance();
pSettingPrModel->AddToFilter(__contactNumber, 1);
pSettingPrModel->RefreshSpamFilterList();
- if(__pBlockConfirmPopup)
+ if (__pBlockConfirmPopup)
{
__pBlockConfirmPopup->SetShowState(false);
delete __pBlockConfirmPopup;
case IDA_PHONENUMBER_BLOCK_CANCEL:
{
- if(__pBlockConfirmPopup)
+ if (__pBlockConfirmPopup)
{
__pBlockConfirmPopup->SetShowState(false);
delete __pBlockConfirmPopup;
}
void
+ContactList::UpdateContactListDetails(IList* pContactListDetails)
+{
+ // Not taking ownership
+ __pContactList = (ArrayList*) pContactListDetails;
+}
+
+void
ContactList::UnBlockPhoneNumber(void)
{
AppLogDebug("ENTER");
SettingPresentationModel* pSettingPrModel = SettingPresentationModel::GetInstance();
int filterIndex = pSettingPrModel->GetFilterListIndex(__contactNumber);
- pSettingPrModel->DeleteFilter(filterIndex,1);
+ pSettingPrModel->DeleteFilter(filterIndex, 1);
pSettingPrModel->RefreshSpamFilterList();
AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
Addressbook* pAddressbook = AddressbookManager::GetInstance()->GetAddressbookN();\r
if (pAddressbook)\r
{\r
- pAddressbook->SetEventListener(null);\r
IList* pContactList = pAddressbook->SearchContactsByPhoneNumberN(contactNumber);\r
if (pContactList)\r
{\r
{\r
Contact* pRecipientContact = null;\r
bool matchFound(false);\r
- for(int index = 0;index < pContactList->GetCount();index++)\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
+ if (pPhoneNumberList)\r
{\r
PhoneNumber* pPhoneNumber = null;\r
IEnumerator* pEnum = pPhoneNumberList->GetEnumeratorN();\r
}\r
pPhoneNumberList->RemoveAll(true);\r
delete pPhoneNumberList;\r
- if(matchFound)\r
+ if (matchFound)\r
{\r
AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
// return match contact\r
, __pThumbnailBitmap(null)
, __subjectStr(IDS_BLANK)
, __animationIconIndex(MSG_ICON_PROGRESS_01)
+ , __isAnimationStarted(false)
{
AppLogDebug("ENTER");
AppLogDebug("EXIT");
convData->__timeStamp = this->__timeStamp;
convData->__pageCount = this->__pageCount;
convData->__attachmentCount = this->__attachmentCount;
- convData->__thumbnailPath = this->__thumbnailPath;
+ convData->__imagePath = this->__audioPath;
+ convData->__imagePath = this->__imagePath;
+ convData->__imagePath = this->__videoPath;
convData->__subjectStr = this->__subjectStr;
}
{
AppLogDebug("ENTER");
- bool setFaild(false);
- setFaild = (__networkStatus == MSG_NETWORK_SEND_FAIL);
+ bool sentFaild(false);
+ sentFaild = (__networkStatus == MSG_NETWORK_SEND_FAIL);
AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
- return setFaild;
+ return sentFaild;
}
bool
{
AppLogDebug("ENTER");
AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
- return (__networkStatus == MSG_NETWORK_SENDING);
+ return (__networkStatus == MSG_NETWORK_SENDING);
}
bool
AppLogDebug("ENTER");
result r = E_SUCCESS;
- char* pMsgText = new (std::nothrow) char[MAX_MSG_TEXT_LEN];
+ char* pMsgText = new (std::nothrow) char[MAX_MSG_TEXT_LEN + 1];
+ memset(pMsgText, 0, MAX_MSG_TEXT_LEN + 1);
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)
ConversationData::GetThumbnail(void)
{
AppLogDebug("ENTER");
- if (!__pThumbnailBitmap && __thumbnailPath.GetLength() > 0)
+
+ if (!__pThumbnailBitmap)
{
- Image* pImage = new (std::nothrow) Image();
- pImage->Construct();
- __pThumbnailBitmap = pImage->DecodeN(__thumbnailPath, BITMAP_PIXEL_FORMAT_ARGB8888,
- 310, 204);
- delete pImage;
+ if (!__videoPath.IsEmpty())
+ {
+ // Check Video path exist or not.
+ Image* pImage = new (std::nothrow) Image();
+ pImage->Construct();
+ __pThumbnailBitmap = pImage->DecodeN(__videoPath, BITMAP_PIXEL_FORMAT_ARGB8888,
+ W_BUBBLE_THUMBNAIL_310PX, H_BUBBLE_THUMBNAIL_204PX);
+ }
+ else if (!__imagePath.IsEmpty())
+ {
+ // Check Video path exist or not.
+ Image* pImage = new (std::nothrow) Image();
+ pImage->Construct();
+ __pThumbnailBitmap = pImage->DecodeN(__imagePath, BITMAP_PIXEL_FORMAT_ARGB8888,
+ W_BUBBLE_THUMBNAIL_310PX, H_BUBBLE_THUMBNAIL_204PX);
+ }
}
+
AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
return __pThumbnailBitmap;
}
const String&
+ConversationData::GetVideoPath(void) const
+{
+ AppLogDebug("ENTER");
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ // It will return empty in case video file does not exist
+ return __videoPath;
+}
+
+const String&
+ConversationData::GetImagePath(void) const
+{
+ AppLogDebug("ENTER");
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ // It will return empty in case image file does not exist
+ return __imagePath;
+}
+
+const String&
+ConversationData::GetAudioPath(void) const
+{
+ AppLogDebug("ENTER");
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ // It will return empty in case audio file does not exist
+ return __audioPath;
+}
+
+const String&
ConversationData::GetSubject(void) const
{
AppLogDebug("ENTER");
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);
+ char filePath[MSG_FILEPATH_LEN_MAX + 1];
+ err = msg_get_str_value(pMessageInfo, MSG_CONV_MSG_AUDIO_NAME_STR, filePath, MSG_FILEPATH_LEN_MAX);
+ if (err != MSG_SUCCESS)
+ {
+ AppLogDebug("EXIT:Unable to audio file path err =%d", (int) err);
+ r = E_FAILURE;
+ return r;
+ }
+ __audioPath.Append(filePath);
+ AppLogDebug("Audio PATH: %S", __audioPath.GetPointer());
+
+ // Get default thumbnail path; Field: MSG_CONV_MSG_IMAGE_THUMB_PATH_STR/MSG_CONV_MSG_VIDEO_THUMB_PATH_STR
+ err = msg_get_str_value(pMessageInfo, MSG_CONV_MSG_IMAGE_THUMB_PATH_STR, filePath, MAX_IMAGE_PATH_LEN);
+ if (err != MSG_SUCCESS)
+ {
+ AppLogDebug("EXIT:Unable to fetch image thumbnail path err =%d", (int) err);
+ r = E_FAILURE;
+ return r;
+ }
+ __imagePath.Append(filePath);
+ AppLogDebug("IMAGE VIDEO PATH: %S", __imagePath.GetPointer());
+
+ err = msg_get_str_value(pMessageInfo, MSG_CONV_MSG_VIDEO_THUMB_PATH_STR, filePath, MAX_IMAGE_PATH_LEN);
if (err != MSG_SUCCESS)
{
- AppLogDebug("EXIT:Unable to fetch thumbnail path err =%d", (int) err);
+ AppLogDebug("EXIT: Fetch video thumb nail path err = %d", (int) err);
r = E_FAILURE;
return r;
}
- __thumbnailPath.Append(thumbnailPath);
- AppLog("THUMNAIL PATH: %S", __thumbnailPath.GetPointer());
+ __videoPath.Append(filePath);
+ AppLogDebug("IMAGE VIDEO PATH: %S", __videoPath.GetPointer());
AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
return r;
#include "MsgConversationPresentationModel.h"
#include "MsgDurationPopup.h"
#include "MsgFontsettings.h"
-#include "MsgLVBubbleListItem.h"
#include "MsgMessageComposePanel.h"
#include "MsgMessageData.h"
#include "MsgMessagePresentationModel.h"
#include "MsgSettingPresentationModel.h"
#include "MsgSmsManager.h"
#include "MsgThreadData.h"
+#include "MsgTVBubbleListItem.h"
#include "MsgTypes.h"
-using namespace Tizen::Base;
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::Graphics;
using namespace Tizen::Ui::Scenes;
-using namespace Tizen::Base::Collection;
-using namespace Tizen::Base::Utility;
+using namespace Tizen::System;
+
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)
+ , __pRecipientContextMenu(null)
, __pDeleteConfirmPopup(null)
, __pContactDetails(null)
, __pResendDelete(null)
- , __pTrayPanel(null)
+ , __pMoreContextMenu(null)
, __pOptionPopup(null)
, __pResendDeletePopup(null)
, __pBlockPopup(null)
, __pSaveAttachmentsPopup(null)
, __pDurationPopup(null)
- , __isListViewItemLongPressed(false)
+ , __isConvNeedToUpdate(false)
+ , __volumeLevel(-1)
{
//Empty implementation
}
// Cancel ongoing operation.
ConversationPresentationModel* pConvPrModel = ConversationPresentationModel::GetInstance();
- if(pConvPrModel)
+ if (pConvPrModel)
{
pConvPrModel->RemoveConversationEventListener(*this);
pConvPrModel->CancelDelete();
}
+ SettingInfo::RemoveSettingEventListener(*this);
+ if (__pOptionPopup)
+ {
+ delete __pOptionPopup;
+ }
+ if (__pResendDelete)
+ {
+ delete __pResendDelete;
+ }
if (__pDurationPopup)
{
delete __pDurationPopup;
r = Construct(L"IDL_CONVERSATION_LIST_EDIT_FORM");
}
AddKeyEventListener(*this);
+
+ // For increasing/decreasing font size when volume level is changed:
+ SettingInfo::AddSettingEventListener(*this);
+ SettingInfo::GetValue(IDS_KEY_VOLUME_LEVEL, __volumeLevel);
+
AppLogDebug("EXIT: r= %s", GetErrorMessage(GetLastResult()));
return (!IsFailed(r));
}
{
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();
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);
String strText;
Application::GetInstance()->GetAppResource()->GetString(L"IDS_COM_SK_DELETE", strText);
header.SetTitleText(strText);
+
+ ButtonItem buttonRightItem;
+ buttonRightItem.Construct(BUTTON_ITEM_STYLE_TEXT, IDA_SELECT_ALL);
+ Bitmap* pBitMap = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_SELECT_ALL);
+ buttonRightItem.SetIcon(BUTTON_ITEM_STATUS_NORMAL, pBitMap);
+ pBitMap = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_SELECT_ALL_PRESSED);
+ buttonRightItem.SetIcon(BUTTON_ITEM_STATUS_PRESSED, pBitMap);
+ header.SetButton(BUTTON_POSITION_RIGHT, buttonRightItem);
+ header.Invalidate(true);
+
header.Draw();
AppLogDebug("EXIT: r= %s", GetErrorMessage(GetLastResult()));
// Update header.
header.RemoveAllItems();
header.RemoveAllButtons();
-
header.SetStyle(HEADER_STYLE_SEGMENTED);
String strText;
HeaderItem headerLeftItem;
result r = E_SUCCESS;
//Initialize from element
- __pConvMessageList = static_cast<GroupedListView*>(GetControl(L"IDC_MESSAGES_GROUPEDLIST"));
- String strText;
+ __pConvMessageList = static_cast<GroupedTableView*>(GetControl(L"IDC_CONV_GROUPEDTABLELIST"));
+ __pConvMessageList->SetMinimumSize(Dimension(__pConvMessageList->GetWidth(), H_LIST_ITEM_112PX));
Rectangle rect = GetClientAreaBounds();
int panelHeight = 0;
__pMsgComposePanel = new (std::nothrow) MessageComposePanel();
if (__pConvMessageList)
{
__pConvMessageList->SetBounds(Rectangle(0, 0, rect.width, rect.height - panelHeight));
- __pConvMessageList->SetTextOfEmptyList(IDS_BLANK);
- __pConvMessageList->SetItemProvider(*this);
- __pConvMessageList->AddGroupedListViewItemEventListener(*this);
+ __pConvMessageList->SetItemProvider(this);
+ __pConvMessageList->AddGroupedTableViewItemEventListener(*this);
__pConvMessageList->SetBackgroundColor(COLOR_BUBBLE_BG);
__pConvMessageList->AddKeyEventListener(*this);
__pConvMessageList->AddTouchEventListener(*this);
result r = E_SUCCESS;
Rectangle rect = GetClientAreaBounds();
- __pConvMessageList = static_cast<GroupedListView*>(GetControl(L"IDC_CONV_EDIT_GROUPEDLIST"));
+ __pConvMessageList = static_cast<GroupedTableView*>(GetControl(L"IDC_CONV_GROUPEDTABLELIST"));
if (__pConvMessageList)
{
__pConvMessageList->SetBounds(Rectangle(0, 0, rect.width, rect.height));
- __pConvMessageList->SetItemProvider(*this);
- __pConvMessageList->AddGroupedListViewItemEventListener(*this);
+ __pConvMessageList->AddGroupedTableViewItemEventListener(*this);
+ __pConvMessageList->SetItemProvider(this);
__pConvMessageList->SetBackgroundColor(COLOR_BUBBLE_BG);
}
else
SetActionBarsVisible(FORM_ACTION_BAR_FOOTER, true);
SetEditModeHeader(*GetHeader());
SetEditModeFooter(*GetFooter());
- __pSelectedIds = new (std::nothrow) ArrayListT< int>();
+ __pSelectedIds = new (std::nothrow) ArrayListT<int>();
__pSelectedIds->Construct();
- AddEditCheckBox();
AddLabelSelectionInfo();
AppLogDebug("EXIT: r= %s", GetErrorMessage(GetLastResult()));
delete __pConContactList;
}
- if (__pContextMenuText)
+ if (__pRecipientContextMenu)
{
- delete __pContextMenuText;
+ delete __pRecipientContextMenu;
}
AppLogDebug("EXIT: r= %s", GetErrorMessage(GetLastResult()));
__pMsgComposePanel->ShowKeypad();
}
}
- __pConvMessageList->UpdateList();
+ __pConvMessageList->UpdateTableView();
// Scroll to latest message.
int lastGroupIndex = __pConvMessageList->GetGroupCount() - 1;
int listItemCount = __pConvMessageList->GetItemCountAt(lastGroupIndex);
- if (lastGroupIndex>= 0 && listItemCount > 0)
+ if (lastGroupIndex >= 0 && listItemCount > 0)
{
- __pConvMessageList->ScrollToItem(lastGroupIndex, listItemCount - 1, LIST_SCROLL_ITEM_ALIGNMENT_BOTTOM);
+ __pConvMessageList->ScrollToItem(lastGroupIndex, listItemCount - 1, TABLE_VIEW_SCROLL_ITEM_ALIGNMENT_BOTTOM);
}
// Prepare contact list
PrepareContactList();
//Handle command
switch (actionId)
{
+ case IDA_SELECT_ALL:
+ {
+ ConversationPresentationModel* pConvPrModel = ConversationPresentationModel::GetInstance();
+ int totalCount = pConvPrModel->GetCount();
+ bool selectAll(totalCount != __pSelectedIds->GetCount());
+ CheckAll(selectAll);
+ }
+ break;
+
case IDA_SELECT_ALL_ON:
{
CheckAll(true);
MessageComposeData* pComposeData = __pMsgComposePanel->GetMessageComposeDataN();
if (pComposeData)
{
+ ConversationPresentationModel* pConvPrModel = ConversationPresentationModel::GetInstance();\r
+ int draftId(-1);\r
+ if (pConvPrModel)\r
+ {\r
+ const MessageData* pDraftMessage = pConvPrModel->GetDraftMessage();\r
+ if (pDraftMessage)\r
+ {\r
+ draftId = pDraftMessage->GetEntryId();\r
+ }\r
+ }\r
MessagePresentationModel* pMessagePresentationModel = MessagePresentationModel::GetInstance();
if (pMessagePresentationModel)
{
pMessagePresentationModel->SaveMessage(*pComposeData, __pCurrentThreadEntry->GetEntryId());
}
+ if (draftId > -1)\r
+ {\r
+ pConvPrModel->Delete(draftId, REQUEST_DELETE_MESSAGE);\r
+ }\r
delete pComposeData;
}
else
case IDA_OPTION_TRAY_COMMAND:
{
- ShowContactList(false);
- Rectangle rect = GetClientAreaBounds();
- if (!__pTrayPanel)
+ if(__pList && __pList->GetShowState())
{
- //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);
- }
+ ShowContactList(false);
}
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);
- }
+ ShowMoreContextMenu(source);
}
}
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)
{
MessageComposeData* pComposeData = __pMsgComposePanel->GetMessageComposeDataN();
if (pComposeData)
{
- MessagePresentationModel* pmessagePresentationModel = MessagePresentationModel::GetInstance();
- if (pmessagePresentationModel)
- {
- pmessagePresentationModel->SaveMessage(*pComposeData, __pCurrentThreadEntry->GetEntryId());
+ ConversationPresentationModel* pConvPrModel = ConversationPresentationModel::GetInstance();\r
+ int draftId(-1);\r
+ if (pConvPrModel)\r
+ {\r
+ const MessageData* pDraftMessage = pConvPrModel->GetDraftMessage();\r
+ if (pDraftMessage)\r
+ {\r
+ draftId = pDraftMessage->GetEntryId();\r
+ }\r
+ }\r
+ MessagePresentationModel* pMessagePresentationModel = MessagePresentationModel::GetInstance();\r
+ if (pMessagePresentationModel)\r
+ {\r
+ pMessagePresentationModel->SaveMessage(*pComposeData, __pCurrentThreadEntry->GetEntryId());\r
+ }\r
+ if (draftId > -1)\r
+ {\r
+ pConvPrModel->Delete(draftId, REQUEST_DELETE_MESSAGE);\r
}
delete pComposeData;
}
}
else
{
- CreateContextMenu(source);
+ ShowRecipientContextMenu(source);
}
}
break;
}
break;
+ case IDA_ADD_SUBJECT:
+ {
+ RequestId requestId = REQUEST_ADD_SUBJECT;
+ __pMsgComposePanel->SendUserEvent(requestId,null);
+ }
+ break;
+
case IDA_PREVIEW:
{
// Save to draft
__pDurationPopup = new (std::nothrow) DurationPopup(*this);
__pDurationPopup->Construct(L"IDL_DURATION_POPUP");
__pDurationPopup->SetDuration(__pMsgComposePanel->GetDefaultPageDuration());
- __pDurationPopup->Show();
- __pDurationPopup->SetFocusToEditor();
+ __pDurationPopup->ShowPopup();
+ }
+ break;
+
+ case IDA_BUTTON_DROP_DOWN:
+ {
+ __pMsgComposePanel->HideKeypad();
}
break;
{
AppLogDebug("ENTER");
+ //Hide drop-down button in header and display back button:
+ GetHeader()->RemoveButtonAt(BUTTON_POSITION_RIGHT);
+ 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);
+ GetHeader()->SetButton(BUTTON_POSITION_RIGHT, btnRight);
+
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
+ if (pClibBoard && pClibBoard->IsPopupVisible())
{
- __pMsgComposePanel->SetBounds(Rectangle(0, prePanelBounds.y - PANEL_HEIGHT + 35, clientArea.width, __pMsgComposePanel->GetDisplayHeight()));
+ // When clip board is visible, panel position should change
+ // This if condition should be removed later
+ __pMsgComposePanel->SetBounds(Rectangle(0, prePanelBounds.y - CLIPBOARD_HEIGHT_OFFSET, clientArea.width, __pMsgComposePanel->GetDisplayHeight()));
+ int listHeight(__pMsgComposePanel->GetY());
+ __pConvMessageList->SetSize(__pConvMessageList->GetWidth(), listHeight);
}
else
{
+ int listHeight(clientArea.height - __pMsgComposePanel->GetHeight());
+ __pConvMessageList->SetSize(clientArea.width, listHeight);
__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)
+ if (lastGroupIndex >= 0 && listItemCount > 0)
{
- __pConvMessageList->ScrollToItem(lastGroupIndex, listItemCount - 1, LIST_SCROLL_ITEM_ALIGNMENT_BOTTOM);
+ __pConvMessageList->ScrollToItem(lastGroupIndex, listItemCount - 1, TABLE_VIEW_SCROLL_ITEM_ALIGNMENT_BOTTOM);
}
AppLogDebug("EXIT: r= %s", GetErrorMessage(GetLastResult()));
return;
{
AppLogDebug("ENTER");
+ //Hide Back button in header and display drop down button:
+ GetHeader()->RemoveButtonAt(BUTTON_POSITION_RIGHT);
+ ButtonItem btnRight;
+ btnRight.Construct(BUTTON_ITEM_STYLE_ICON, IDA_BUTTON_DROP_DOWN);
+ Bitmap* pBitMap = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_SIP_CLOSE);
+ btnRight.SetIcon(BUTTON_ITEM_STATUS_NORMAL, pBitMap);
+ pBitMap = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_SIP_CLOSE_PRESS);
+ btnRight.SetIcon(BUTTON_ITEM_STATUS_PRESSED, pBitMap);
+ GetHeader()->SetButton(BUTTON_POSITION_RIGHT, btnRight);
+
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)
+ if (lastGroupIndex >= 0 && listItemCount > 0)
{
- __pConvMessageList->ScrollToItem(lastGroupIndex, listItemCount - 1, LIST_SCROLL_ITEM_ALIGNMENT_BOTTOM);
+ __pConvMessageList->ScrollToItem(lastGroupIndex, listItemCount - 1, TABLE_VIEW_SCROLL_ITEM_ALIGNMENT_BOTTOM);
}
AppLogDebug("EXIT: r= %s", GetErrorMessage(GetLastResult()));
return;
ConversationForm::OnSizeIncrease(const Tizen::Ui::Control& control)
{
AppLogDebug("ENTER");
+
Rectangle clientArea = GetClientAreaBounds();
Rectangle prePanelBounds = __pMsgComposePanel->GetBounds();
int panelHeight = __pMsgComposePanel->GetDisplayHeight();
__pConvMessageList->SetSize(clientArea.width, clientArea.height - panelHeight);
int lastGroupIndex = __pConvMessageList->GetGroupCount() - 1;
int listItemCount = __pConvMessageList->GetItemCountAt(lastGroupIndex);
- if (lastGroupIndex>= 0 && listItemCount > 0 )
+ if (lastGroupIndex >= 0 && listItemCount > 0)
{
- __pConvMessageList->ScrollToItem(lastGroupIndex, listItemCount - 1, LIST_SCROLL_ITEM_ALIGNMENT_BOTTOM);
+ __pConvMessageList->ScrollToItem(lastGroupIndex, listItemCount - 1, TABLE_VIEW_SCROLL_ITEM_ALIGNMENT_BOTTOM);
}
// Draw();
// Show();
ConversationForm::OnSizeDecrease(const Tizen::Ui::Control& control)
{
AppLogDebug("ENTER");
+
Rectangle clientArea = GetClientAreaBounds();
Rectangle prePanelBounds = __pMsgComposePanel->GetBounds();
int panelHeight = __pMsgComposePanel->GetDisplayHeight();
__pConvMessageList->SetSize(clientArea.width, clientArea.height - panelHeight);
int lastGroupIndex = __pConvMessageList->GetGroupCount() - 1;
int listItemCount = __pConvMessageList->GetItemCountAt(lastGroupIndex);
- if (lastGroupIndex>= 0 && listItemCount > 0)
+ if (lastGroupIndex >= 0 && listItemCount > 0)
{
- __pConvMessageList->ScrollToItem(lastGroupIndex, listItemCount - 1, LIST_SCROLL_ITEM_ALIGNMENT_BOTTOM);
+ __pConvMessageList->ScrollToItem(lastGroupIndex, listItemCount - 1, TABLE_VIEW_SCROLL_ITEM_ALIGNMENT_BOTTOM);
}
// Draw();
// Show();
AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
}
+
+void
+ConversationForm::OnSettingChanged(Tizen::Base::String& key)
+{
+ AppLogDebug("ENTER");
+ AppLogDebug("Initial volume level is %d", __volumeLevel);
+ result r = E_SUCCESS;
+
+ int mediaVolumeLevel = -1;
+ r = SettingInfo::GetValue(IDS_KEY_VOLUME_LEVEL, mediaVolumeLevel);
+ if (r == E_SUCCESS)
+ {
+ if (mediaVolumeLevel > __volumeLevel)
+ {
+ 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);
+ if (__convFormType == CONVERSATION_LIST_FORM_VIEW)
+ {
+ __pMsgComposePanel->SetTextSize(size);
+ __pMsgComposePanel->Invalidate(true);
+ }
+ __pConvMessageList->UpdateTableView();
+ }
+ else if (mediaVolumeLevel < __volumeLevel)
+ {
+ 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);
+ if (__convFormType == CONVERSATION_LIST_FORM_VIEW)
+ {
+ __pMsgComposePanel->SetTextSize(size);
+ __pMsgComposePanel->Invalidate(true);
+ }
+ __pConvMessageList->UpdateTableView();
+ }
+
+ __volumeLevel = mediaVolumeLevel;
+ }
+
+ AppLogDebug("Volume level is %d and result is %d", mediaVolumeLevel, r);
+ AppLogDebug("EXIT: r= %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+
+
void
ConversationForm::OnFormBackRequested(Form& source)
{
{
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)
+ if (msgStorageChangeType == MSG_STORAGE_UPDATE_CONTACT)
{
ConversationPresentationModel* pConvPrModel = ConversationPresentationModel::GetInstance();
if (pConvPrModel && __pCurrentThreadEntry)
{
int threadId = __pCurrentThreadEntry->GetEntryId();
ThreadData* pThreadData = pConvPrModel->GetThreadDataByIdN(threadId);
- if(__pCurrentThreadEntry)
+ if (__pCurrentThreadEntry)
{
delete __pCurrentThreadEntry;
}
__pCurrentThreadEntry = pThreadData;
Header* pHeader = GetHeader();
pHeader->Invalidate(true);
- if(__pContactDetails)
+ if (__pContactDetails)
{
delete __pContactDetails;
__pContactDetails = null;
}
PrepareContactList();
SetViewModeHeader(*pHeader);
- if(__pList)
+ if (__pList)
{
- ShowContactList(true);
+ if (__pContactDetails && __pContactDetails->GetCount() > 1)
+ {
+ ShowContactList(true);
+ }
}
}
}
- else
+
+ UiApp* pAppUi = UiApp::GetInstance();
+ if (pAppUi && pAppUi->GetAppUiState() != APP_UI_STATE_FOREGROUND)
{
- ConversationPresentationModel* pConvPrModel = ConversationPresentationModel::GetInstance();
- if (pConvPrModel && __pCurrentThreadEntry)
+ __isConvNeedToUpdate = true;
+ return;
+ }
+
+ 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;
+ }
+
+ ConversationPresentationModel* pConvPrModel = ConversationPresentationModel::GetInstance();
+ if (pConvPrModel && __pCurrentThreadEntry)
+ {
+ int threadId = __pCurrentThreadEntry->GetEntryId();
+ pConvPrModel->GetConversationMessageList(threadId);
+ if (pConvPrModel->GetCount() <= 0)
{
- 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->UpdateTableView();
+ const MessageData* draftMessage = pConvPrModel->GetDraftMessage();
+ if ((__convFormType == CONVERSATION_LIST_FORM_VIEW) && draftMessage)
{
- // Back to thread list view.
- SceneManager* pSceneManager = SceneManager::GetInstance();
- pSceneManager->GoBackward(BackwardSceneTransition(IDSCN_THREAD_LIST, SCENE_TRANSITION_ANIMATION_TYPE_NONE));
+ // Load draft to UI
+ __pMsgComposePanel->LoadMessageData(*draftMessage);
}
- else
+ // 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->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();
- }
+ __pConvMessageList->ScrollToItem(lastGroupIndex, listItemCount - 1, TABLE_VIEW_SCROLL_ITEM_ALIGNMENT_BOTTOM);
+ __pConvMessageList->Invalidate(true);
}
}
}
}
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;
+ String strText, selcInfo;
result r = E_SUCCESS;
Rectangle rect = GetClientAreaBounds();
__pSelectionInfo = static_cast<Label*>(GetControl(L"IDC_CONV_EDIT_LABEL"));
__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));
+ __pConvMessageList->SetBounds(Rectangle(rect.x, 0, rect.width,
+ rect.height - H_MSG_SELECTION_INFO_LABEL));
__pSelectionInfo->SetText(selcInfo);
AppLogDebug("EXIT: r= %s", GetErrorMessage(GetLastResult()));
ConversationForm::ShowHideSelectionInfo(void)
{
AppLogDebug("ENTER");
- String strText,selcInfo;
+ String strText, selcInfo;
int selectCount(0);
if (__pSelectedIds)
{
}
break;
- case REQUEST_OPTION_POPUP:
+ case REQUEST_SHOW_OPTION_POPUP:
+ {
+ if (pArgs->GetCount() > 0)
+ {
+ Integer* pDataIndex = (Integer*) pArgs->GetAt(0);
+ ConversationData* pConvData = (ConversationData*) pConvPrModel->GetDataAt(pDataIndex->ToInt())->CloneN();
+ pConvData->SetDisplayName(__pCurrentThreadEntry->GetDisplayName());
+ if (pConvData)
+ {
+ __pOptionPopup = new (std::nothrow) OptionPopup(*this, pConvData);
+ __pOptionPopup->Construct(__pCurrentThreadEntry->GetEntryId(), pDataIndex->ToInt());
+ __pOptionPopup->SetShowState(true);
+ __pOptionPopup->Show();
+ // pConvData = null; // Transfer ownership to popup
+ }
+ }
+ }
+ break;
+
+ case REQUEST_DESTROY_OPTION_POPUP:
{
if (__pOptionPopup)
{
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;
+ // Apply focus to compose panel.
+ __pMsgComposePanel->SetFocusToEditor();
}
}
break;
- case REQUEST_DELETE_START:
- if(pArgs->GetCount() > 0)
+ case REQUEST_UPDATE_CONV_LIST:
+ if (__isConvNeedToUpdate)
{
- Integer* pTotalCount = (Integer*)pArgs->GetAt(0);
- OnDeleteStart(pTotalCount->ToInt());
+ __isConvNeedToUpdate = false;
+ OnConversationListChange(MSG_STORAGE_UPDATE);
+ Invalidate(true);
}
break;
- case REQUEST_DELETE_UPDATE:
- if(pArgs->GetCount() > 0)
+ case REQUEST_SHOW_IMAGE:
+ {
+ if (pArgs->GetCount() > 0)
{
- Integer* pCurrentCount = (Integer*)pArgs->GetAt(0);
- Integer* pTotalCount = (Integer*)pArgs->GetAt(1);
- OnDeleteUpdate(pCurrentCount->ToInt(),pTotalCount->ToInt());
+ String* pFilePath = (String*) pArgs->GetAt(0);
+ CommonUtil::ShowImage(*pFilePath);
}
- break;
+ }
+ break;
- case REQUEST_DELETE_COMPLETE:
- if(pArgs->GetCount() > 0)
+ case REQUEST_PLAY_AUDIO:
+ {
+ if (pArgs->GetCount() > 0)
{
- Integer* pStatus = (Integer*)pArgs->GetAt(0);
- OnDeleteComplete(pStatus->ToInt(),null);
+ String* pFilePath = (String*) pArgs->GetAt(0);
+ CommonUtil::PlayAudio(*pFilePath);
}
- break;
+ }
+ break;
- default:
- break;
+ case REQUEST_PLAY_VIDEO:
+ {
+ if (pArgs->GetCount() > 0)
+ {
+ String* pFilePath = (String*) pArgs->GetAt(0);
+ CommonUtil::PlayVideo(*pFilePath);
+ }
+ }
+ break;
+ case REQUEST_SHOW_RESEND_DELETE_POPUP:
+ {
+ if (pArgs->GetCount() > 0)
+ {
+ Integer* pDataIndex = (Integer*) pArgs->GetAt(0);
+ ResendDeletePopup(pDataIndex->ToInt());
+ }
+ }
+ break;
+ case REQUEST_SHOW_PROGRESS_POPUP:
+ {
+ // Create progress dialog.
+ if (!__pProgressPopup)
+ {
+ String* pTitleText = (String*) pArgs->GetAt(0);
+ Integer* pTotalCount = (Integer*) pArgs->GetAt(1);
+ __pProgressPopup = new (std::nothrow) MsgProgressPopup();
+ __pProgressPopup->Construct(0, pTotalCount->ToInt(), *pTitleText);
+ }
+ if (__pProgressPopup)
+ {
+ __pProgressPopup->ShowPopup();
+ }
}
+ break;
+ case REQUEST_UPDATE_PROGRESS_POPUP:
+ {
+ if (__pProgressPopup && pArgs->GetCount() > 1)
+ {
+ String* pStatusInfo = (String*) pArgs->GetAt(0);
+ Integer* pProgressValue = (Integer*) pArgs->GetAt(1);
+ __pProgressPopup->UpdateProgressInfo(*pStatusInfo);
+ __pProgressPopup->SetProgressValue(pProgressValue->ToInt());
+ }
+ }
+ break;
+
+ case REQUEST_DESTROY_PROGRESS_POPUP:
+ {
+ if (__pProgressPopup)
+ {
+ __pProgressPopup->HidePopup();
+ delete __pProgressPopup;
+ __pProgressPopup = null;
+ }
+ }
+ break;
+
+ default:
+ break;
+
+ }
delete pArgs;
+
AppLogDebug("EXIT: r= %s", GetErrorMessage(GetLastResult()));
return;
}
{
AppLogDebug("ENTER");
- if (__pProgressPopup)
- {
- __pProgressPopup->ShowPopup();
- }
+ ArrayList* pArgs = new (std::nothrow) ArrayList(SingleObjectDeleter);
+ pArgs->Construct();
+ pArgs->Add(new (std::nothrow) String(IDS_DELETED_NUMBER_IDS));
+ pArgs->Add(new (std::nothrow) Integer(totalCount));
+ SendUserEvent(REQUEST_SHOW_PROGRESS_POPUP, pArgs);
+
AppLogDebug("EXIT: r= %s", GetErrorMessage(GetLastResult()));
return;
}
{
String statusInfo;
statusInfo.Format(MAX_LEN_SELECTION_INFO, IDS_DELETED_NUMBER_IDS, deleteCount, totalCount);
- __pProgressPopup->UpdateProgressInfo(statusInfo);
- __pProgressPopup->SetProgressValue(deleteCount);
+ ArrayList* pArgs = new (std::nothrow) ArrayList(SingleObjectDeleter);
+ pArgs->Construct();
+ pArgs->Add(new (std::nothrow) String(statusInfo));
+ pArgs->Add(new (std::nothrow) Integer(deleteCount));
+ SendUserEvent(REQUEST_UPDATE_PROGRESS_POPUP, pArgs);
}
AppLogDebug("EXIT: r= %s", GetErrorMessage(GetLastResult()));
// Back to thread view mode
AppLogDebug("ENTER");
- if (__pProgressPopup)
- {
- __pProgressPopup->HidePopup();
- delete __pProgressPopup;
- __pProgressPopup = null;
- }
+ SendUserEvent(REQUEST_DESTROY_PROGRESS_POPUP, null);
// UI thread, Back to list view mode.
if (__convFormType == CONVERSATION_LIST_FORM_EDIT)
{
{
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);
+ pConvPrModel->Delete(__pSelectedIds, REQUEST_DELETE_MESSAGE, this);
__pSelectedIds = null;
}
AppLogDebug("EXIT: r= %s", GetErrorMessage(GetLastResult()));
AppLogDebug("ENTER");
String contactName;
- if(__pContactDetails && __pContactDetails->GetCount()>0)
+ if (__pContactDetails && __pContactDetails->GetCount() > 0)
{
ContactDetails* firstRecipientName = static_cast<ContactDetails*>(__pContactDetails->GetAt(0));
- if(firstRecipientName->contactName.CompareTo(String(IDS_UNKNOWN))== 0)
+ if (firstRecipientName->contactName.CompareTo(String(IDS_UNKNOWN)) == 0)
{
contactName.Append(firstRecipientName->contactNumber);
}
{
contactName.Append(firstRecipientName->contactName);
}
- if(__pContactDetails->GetCount() >= 2)
+ if (__pContactDetails->GetCount() >= 2)
{
contactName.Append(IDS_PLUS_SPACE);
contactName.Append(__pContactDetails->GetCount() - 1);
__pList->SetItemProvider(*__pConContactList);
AddControl(*__pList);
}
+ __pConContactList->UpdateContactListDetails(__pContactDetails);
__pList->UpdateList();
__pList->SetShowState(true);
}
}
result
-ConversationForm::CreateContextMenu(const Control& source)
+ConversationForm::ShowRecipientContextMenu(const Control& source)
{
AppLogDebug("ENTER");
result r = E_SUCCESS;
String strText;
- int index = -1;
- if (__pContextMenuText)
+ if (__pRecipientContextMenu)
{
- delete __pContextMenuText;
- __pContextMenuText = null;
+ delete __pRecipientContextMenu;
+ __pRecipientContextMenu = null;
}
- if (__pContactDetails && __pContactDetails->GetCount()>0)
+ 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);
+ __pRecipientContextMenu = new (std::nothrow) ContextMenu();
+ r = __pRecipientContextMenu->Construct(Point(source.GetWidth()/4,source.GetHeight()), CONTEXT_MENU_STYLE_LIST);
+ __pRecipientContextMenu->SetColor(Color::GetColor(COLOR_ID_WHITE));
+ __pRecipientContextMenu->SetItemTextColor(CONTEXT_MENU_ITEM_STATUS_NORMAL,Color::GetColor(COLOR_ID_BLACK));
if (r != E_SUCCESS)
{
- delete __pContextMenuText;
- __pContextMenuText = null;
+ delete __pRecipientContextMenu;
+ __pRecipientContextMenu = 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);
+ __pRecipientContextMenu->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);
+ __pRecipientContextMenu->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);
+ __pRecipientContextMenu->AddItem(strText, IDA_CONVERSATION_FORM_VIEW_CONTACT);
}
SettingPresentationModel* pSettingPrModel = SettingPresentationModel::GetInstance();
pSettingPrModel->GetSpamFilterList();
pSettingPrModel->RefreshSpamFilterList();
- index = pSettingPrModel->GetFilterListIndex(contactname->contactNumber);
+ int 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);
+ __pRecipientContextMenu->AddItem(strText, IDA_CONVERSATION_FORM_BLOCK);
}
else
{
Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_OPT_UNBLOCK", strText);
- __pContextMenuText->AddItem(strText, IDA_CONVERSATION_FORM_UNBLOCK);
+ __pRecipientContextMenu->AddItem(strText, IDA_CONVERSATION_FORM_UNBLOCK);
}
- __pContextMenuText->AddActionEventListener(*this);
- __pContextMenuText->SetShowState(true);
- __pContextMenuText->Show();
+ __pRecipientContextMenu->AddActionEventListener(*this);
+ __pRecipientContextMenu->SetShowState(true);
+ __pRecipientContextMenu->Show();
}
+ AppLogDebug("EXIT: r= %s", GetErrorMessage(GetLastResult()));
+ return r;
+}
+
+result
+ConversationForm::ShowMoreContextMenu(const Control& source)
+{
+ AppLogDebug("ENTER");
+
+ result r = E_SUCCESS;
+ if (__pMoreContextMenu)
+ {
+ delete __pMoreContextMenu;
+ __pMoreContextMenu = null;
+ }
+ __pMoreContextMenu = new (std::nothrow) ContextMenu();
+ __pMoreContextMenu->Construct(Point(source.GetWidth()*4/5,source.GetHeight() + MARGIN_15PX), CONTEXT_MENU_STYLE_LIST);
+ __pMoreContextMenu->SetColor(Color::GetColor(COLOR_ID_WHITE));
+ __pMoreContextMenu->SetItemTextColor(CONTEXT_MENU_ITEM_STATUS_NORMAL,Color::GetColor(COLOR_ID_BLACK));
+ String strText;
+ if (!__pMsgComposePanel->IsSubjectExists())
+ {
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_COM_BODY_SUBJECT", strText);
+ __pMoreContextMenu->AddItem(strText, IDA_ADD_SUBJECT);
+ }
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_COM_SK_DELETE", strText);
+ __pMoreContextMenu->AddItem(strText, IDA_CONVERSATION_DELETE);
+ if(__pMsgComposePanel->IsMmsMode())
+ {
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_COM_SK3_PREVIEW", strText);
+ __pMoreContextMenu->AddItem(strText, IDA_PREVIEW);
+ String strFormat;
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGC_BUTTON2_DURATION_N_HPD_SECS", strFormat);
+ strText.Format(strFormat.GetLength() * 2, strFormat.GetPointer(), __pMsgComposePanel->GetDefaultPageDuration());
+ __pMoreContextMenu->AddItem(strFormat, IDA_PAGE_DURATION);
+ }
+ __pMoreContextMenu->AddActionEventListener(*this);
+ __pMoreContextMenu->SetShowState(true);
+ __pMoreContextMenu->Show();
AppLogDebug("EXIT: r= %s", GetErrorMessage(GetLastResult()));
return r;
}
+
void
ConversationForm::ContactHelper(int helperType)
{
}
int size = pFontSettings->GetMessageTextSize((SettingFontType) fontType);
__pMsgComposePanel->SetTextSize(size);
- __pConvMessageList->UpdateList();
+ __pConvMessageList->UpdateTableView();
}
else if (keyCode == KEY_SIDE_DOWN)
{
}
int size = pFontSettings->GetMessageTextSize((SettingFontType) fontType);
__pMsgComposePanel->SetTextSize(size);
- __pConvMessageList->UpdateList();
+ __pConvMessageList->UpdateTableView();
}
}
if (source.Equals(*__pConvMessageList))
{
+ Clipboard* pClibBoard = Clipboard::GetInstance();
+ if (pClibBoard->IsPopupVisible())
+ {
+ Rectangle rect = GetClientAreaBounds();
+ __pMsgComposePanel->SetPosition(rect.x, rect.height - __pMsgComposePanel->GetDisplayHeight());
+
+ int listHeight(__pMsgComposePanel->GetY());
+ __pConvMessageList->SetSize(__pConvMessageList->GetWidth(), listHeight);
+ __pMsgComposePanel->Invalidate(true);
+ }
__pMsgComposePanel->HideKeypad();
}
return;
}
+//Tableview event
+void
+ConversationForm::OnGroupedTableViewGroupItemStateChanged(GroupedTableView& tableView, int groupIndex, TableViewGroupItem* pItem, TableViewItemStatus status)
+{
+ AppLogDebug("ENTER");
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+
+}
void
-ConversationForm::OnGroupedListViewItemStateChanged(GroupedListView& listView, int groupIndex, int itemIndex, int elementId, ListItemStatus status)
+ConversationForm::OnGroupedTableViewItemStateChanged(GroupedTableView& tableView, int groupIndex, int itemIndex, TableViewItem* pItem, TableViewItemStatus status)
{
AppLogDebug("ENTER");
+ TVBubbleListItem* pBubbleItem = (TVBubbleListItem*) pItem;
+ int elementId = pBubbleItem->GetSelectedElementId();
+ // If long pressed then handle it, it is valid for only view mode.
+ if (pBubbleItem->IsLongPressed() && (__convFormType == CONVERSATION_LIST_FORM_VIEW) )
+ {
+ OnGroupedTableViewItemLongPressed(tableView, groupIndex, itemIndex, elementId);
+ AppLogDebug("EXIT: r= %s", GetErrorMessage(GetLastResult()));
+ return;
+ }
//List item selected.
ConversationPresentationModel* pConvPrModel = ConversationPresentationModel::GetInstance();
- if (pConvPrModel)
+ if (!pConvPrModel)
+ {
+ AppLogDebug("EXIT: r= %s", GetErrorMessage(GetLastResult()));
+ return;
+ }
+ switch (status)
+ {
+ case TABLE_VIEW_ITEM_STATUS_CHECKED:
{
int index = pConvPrModel->GetSelectedIndex(groupIndex) + itemIndex;
BaseData* pConvData = pConvPrModel->GetDataAt(index);
-
- switch (status)
+ __pSelectedIds->Add(pConvData->GetEntryId());
+ if (__pSelectedIds->GetCount() > 0)
{
- case LIST_ITEM_STATUS_CHECKED:
+ GetFooter()->SetItemEnabled(0, true);
+ GetFooter()->Draw();
+ }
+ if (__pSelectedIds->GetCount() == pConvPrModel->GetCount())
{
- __pSelectedIds->Add(pConvData->GetEntryId());
- if (__pSelectedIds->GetCount() > 0)
- {
- GetFooter()->SetItemEnabled(0, true);
- GetFooter()->Draw();
- }
- if (__pSelectedIds->GetCount() == pConvPrModel->GetCount())
- {
- __pCheckAll->SetSelected(true);
- }
- ShowHideSelectionInfo();
+ //TODO: Need to update check box
}
- break;
+ ShowHideSelectionInfo();
+ }
+ break;
- case LIST_ITEM_STATUS_UNCHECKED:
+ case TABLE_VIEW_ITEM_STATUS_UNCHECKED:
+ {
+ int index = pConvPrModel->GetSelectedIndex(groupIndex) + itemIndex;
+ BaseData* pConvData = pConvPrModel->GetDataAt(index);
+ __pSelectedIds->Remove(pConvData->GetEntryId());
+ if (__pSelectedIds->GetCount() <= pConvPrModel->GetCount())
{
- __pSelectedIds->Remove(pConvData->GetEntryId());
- if (__pSelectedIds->GetCount() <= pConvPrModel->GetCount())
- {
- __pCheckAll->SetSelected(false);
- }
- ShowHideSelectionInfo();
+ //TODO: Need to update check box
}
- break;
-
- case LIST_ITEM_STATUS_SELECTED:
+ if (__pSelectedIds->GetCount() == 0)
{
- 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
- }
+ GetFooter()->SetItemEnabled(0, false);
+ GetFooter()->Draw();
}
- break;
+ ShowHideSelectionInfo();
+ }
+ break;
- case LIST_ITEM_STATUS_HIGHLIGHTED:
- case LIST_ITEM_STATUS_MORE:
- break;
- }
+ case TABLE_VIEW_ITEM_STATUS_SELECTED:
+ {
+ __pMsgComposePanel->HideKeypad();
+ OnGroupedTableViewItemSelected(tableView, groupIndex, itemIndex, elementId);
+ }
+ break;
+
+ case TABLE_VIEW_ITEM_STATUS_HIGHLIGHTED:
+ case TABLE_VIEW_ITEM_STATUS_MORE:
+ break;
}
AppLogDebug("EXIT: r= %s", GetErrorMessage(GetLastResult()));
}
void
-ConversationForm::OnGroupedListViewItemSwept(GroupedListView& listView, int groupIndex,
- int itemIndex, SweepDirection direction)
+ConversationForm::OnGroupedTableViewContextItemActivationStateChanged(GroupedTableView& tableView, int groupIndex, int itemIndex, TableViewContextItem* pContextItem, bool activated)
{
AppLogDebug("ENTER");
- AppLogDebug("EXIT: r= %s", GetErrorMessage(GetLastResult()));
- return;
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
}
void
-ConversationForm::OnGroupedListViewContextItemStateChanged(GroupedListView& listView, int groupIndex,
- int itemIndex, int elementId, ListContextItemStatus status)
+ConversationForm::OnGroupedTableViewItemLongPressed(GroupedTableView& tableView, int groupIndex, int itemIndex, int elementId)
{
AppLogDebug("ENTER");
+
+ if (__pList && __pList->GetShowState())
+ {
+ ShowContactList(false);
+ return;
+ }
+ //List item selected.
+ ConversationPresentationModel* pConvPrModel = ConversationPresentationModel::GetInstance();
+ if (!pConvPrModel)
+ {
+ AppLogDebug("EXIT: r= %s", GetErrorMessage(GetLastResult()));
+ return;
+ }
+ switch (elementId)
+ {
+ case TVBubbleListItem::BUBBLE_ITEM_INVALID:
+ case TVBubbleListItem::BUBBLE_ITEM_DATE:
+ case TVBubbleListItem::BUBBLE_ITEM_SENDING_STATUS:
+ case TVBubbleListItem::BUBBLE_ITEM_FAIL_STATUS:
+ case TVBubbleListItem::BUBBLE_ITEM_UNREAD_STATUS:
+ case TVBubbleListItem::BUBBLE_ITEM_PLAY_AUDIO:
+ case TVBubbleListItem::BUBBLE_ITEM_PLAY_VIDEO:
+ case TVBubbleListItem::BUBBLE_ITEM_ATTACHMENT:
+ case TVBubbleListItem::BUBBLE_ITEM_DETAILS:
+ break;
+
+ case TVBubbleListItem::BUBBLE_ITEM:
+ case TVBubbleListItem::BUBBLE_ITEM_TEXT:
+ case TVBubbleListItem::BUBBLE_ITEM_ATTACHMENT_NAME:
+ case TVBubbleListItem::BUBBLE_ITEM_ATTACHMENT_COUNT:
+ case TVBubbleListItem::BUBBLE_ITEM_THUMBNAIL_IMAGE:
+ case TVBubbleListItem::BUBBLE_ITEM_VIEW_IMAGE:
+ {
+ int index = pConvPrModel->GetSelectedIndex(groupIndex) + itemIndex;
+ ArrayList* pArgs = new (std::nothrow) ArrayList(SingleObjectDeleter);
+ pArgs->Construct();
+ pArgs->Add(new (std::nothrow) Integer(index));
+ SendUserEvent(REQUEST_SHOW_OPTION_POPUP, pArgs);
+ }
+ break;
+ }
+
AppLogDebug("EXIT: r= %s", GetErrorMessage(GetLastResult()));
return;
}
void
-ConversationForm::OnGroupedListViewItemLongPressed(GroupedListView& listView, int groupIndex,
- int itemIndex, int elementId, bool& invokeListViewItemCallback)
+ConversationForm::OnGroupedTableViewItemSelected(GroupedTableView& tableView, int groupIndex, int itemIndex, int elementId)
{
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
-// }
-//
-// }
+ // Form List view call back if try to show any popup then it is not changing the child control
+ // state, So, using SendUserEvent to do the same.
+ if (__pList && __pList->GetShowState())
+ {
+ ShowContactList(false);
+ return;
+ }
+ //List item selected.
+ ConversationPresentationModel* pConvPrModel = ConversationPresentationModel::GetInstance();
+ if (!pConvPrModel)
+ {
+ AppLogDebug("EXIT: r= %s", GetErrorMessage(GetLastResult()));
+ return;
+ }
+ int index = pConvPrModel->GetSelectedIndex(groupIndex) + itemIndex;
+ BaseData* pConvData = pConvPrModel->GetDataAt(index);
- AppLogDebug("EXIT: r= %s", GetErrorMessage(GetLastResult()));
+ switch (elementId)
+ {
+ case TVBubbleListItem::BUBBLE_ITEM_FAIL_STATUS:
+ {
+ int index = pConvPrModel->GetSelectedIndex(groupIndex) + itemIndex;
+ ArrayList* pArgs = new (std::nothrow) ArrayList(SingleObjectDeleter);
+ pArgs->Construct();
+ pArgs->Add(new (std::nothrow) Integer(index));
+ SendUserEvent(REQUEST_SHOW_RESEND_DELETE_POPUP, pArgs);
+ }
+ break;
+
+ case TVBubbleListItem::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 TVBubbleListItem::BUBBLE_ITEM_PLAY_AUDIO:
+ {
+ MessageData* pMessageData = pConvPrModel->GetMessageDataByIdN(pConvData->GetEntryId());
+ if (pMessageData)
+ {
+ const ArrayList* pPageList = pMessageData->GetPageList();
+ if (pPageList && pPageList->GetCount() > 0)
+ {
+ const MmsPageData* pMmsPageData = (MmsPageData*) pPageList->GetAt(0);
+ ArrayList* pArgs = new (std::nothrow) ArrayList(SingleObjectDeleter);
+ pArgs->Construct();
+ pArgs->Add(new (std::nothrow) String(pMmsPageData->GetAudioPath()));
+ SendUserEvent(REQUEST_PLAY_AUDIO, pArgs); // Taking ownership
+ }
+ delete pMessageData;
+ }
+ }
+ break;
+
+ case TVBubbleListItem::BUBBLE_ITEM_VIEW_IMAGE:
+ {
+ MessageData* pMessageData = pConvPrModel->GetMessageDataByIdN(pConvData->GetEntryId());
+ if (pMessageData)
+ {
+ const ArrayList* pPageList = pMessageData->GetPageList();
+ if (pPageList && pPageList->GetCount() > 0)
+ {
+ const MmsPageData* pMmsPageData = (MmsPageData*) pPageList->GetAt(0);
+ ArrayList* pArgs = new (std::nothrow) ArrayList(SingleObjectDeleter);
+ pArgs->Construct();
+ pArgs->Add(new (std::nothrow) String(pMmsPageData->GetImagePath()));
+ SendUserEvent(REQUEST_SHOW_IMAGE, pArgs); // Taking ownership
+ }
+ delete pMessageData;
+ }
+ }
+ break;
+
+ case TVBubbleListItem::BUBBLE_ITEM_PLAY_VIDEO:
+ {
+ MessageData* pMessageData = pConvPrModel->GetMessageDataByIdN(pConvData->GetEntryId());
+ if (pMessageData)
+ {
+ const ArrayList* pPageList = pMessageData->GetPageList();
+ if (pPageList && pPageList->GetCount() > 0)
+ {
+ const MmsPageData* pMmsPageData = (MmsPageData*) pPageList->GetAt(0);
+ ArrayList* pArgs = new (std::nothrow) ArrayList(SingleObjectDeleter);
+ pArgs->Construct();
+ pArgs->Add(new (std::nothrow) String(pMmsPageData->GetVideoPath()));
+ SendUserEvent(REQUEST_PLAY_VIDEO, pArgs); // Taking ownership
+ }
+ delete pMessageData;
+ }
+ }
+ break;
+
+ case TVBubbleListItem::BUBBLE_ITEM_UNREAD_STATUS:
+ case TVBubbleListItem::BUBBLE_ITEM_ATTACHMENT_NAME:
+ case TVBubbleListItem::BUBBLE_ITEM_ATTACHMENT_COUNT:
+ case TVBubbleListItem::BUBBLE_ITEM_THUMBNAIL_IMAGE:
+ case TVBubbleListItem::BUBBLE_ITEM_ATTACHMENT:
+ case TVBubbleListItem::BUBBLE_ITEM:
+ case TVBubbleListItem::BUBBLE_ITEM_TEXT:
+ case TVBubbleListItem::BUBBLE_ITEM_DATE:
+ case TVBubbleListItem::BUBBLE_ITEM_SENDING_STATUS:
+ case TVBubbleListItem::BUBBLE_ITEM_INVALID:
+ break;
+ }
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
return;
}
-
int
ConversationForm::GetGroupCount(void)
{
return groupItemCount;
}
-GroupItem*
+//IGroupedTableViewItemProvider
+TableViewGroupItem*
ConversationForm::CreateGroupItem(int groupIndex, int itemWidth)
{
AppLogDebug("ENTER");
- GroupItem* pItem = new (std::nothrow) GroupItem();
+ TableViewGroupItem* pItem = new (std::nothrow) TableViewGroupItem();
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));
+ pItem->SetEnabled(false);
+ Bitmap* pGroupBgBitmap = BitmapUtility::GetInstance()->GetBubbleGroupBgBitmapN(
+ MSG_GROUP_BG_BITMAP_BUBBLE, pConvPrModel->GetGroupName(groupIndex), Dimension(itemWidth, H_GROUP_HEADER));
if (pGroupBgBitmap)
{
pItem->SetBackgroundBitmap(pGroupBgBitmap);
}
bool
-ConversationForm::DeleteGroupItem(int groupIndex, GroupItem* pItem, int itemWidth)
+ConversationForm::DeleteGroupItem(int groupIndex, TableViewGroupItem* pItem)
{
AppLogDebug("ENTER");
return true;
}
-ListItemBase*
+void
+ConversationForm::UpdateGroupItem(int groupIndex, TableViewGroupItem* pItem)
+{
+ AppLogDebug("ENTER");
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+}
+
+
+TableViewItem*
ConversationForm::CreateItem(int groupIndex, int itemIndex, int itemWidth)
{
AppLogDebug("ENTER");
- LVBubbleListItem* pCustomItem = null;
+ TVBubbleListItem* pCustomItem = null;
ConversationPresentationModel* pConvPrModel = ConversationPresentationModel::GetInstance();
if (pConvPrModel)
{
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);
+ pCustomItem = new (std::nothrow) TVBubbleListItem(*pConvData, itemWidth, *pFontSettings, editMode);
// Create layout.
- pCustomItem->CreateBubbleLayout();
+ bool showAnimation(GetShowState() && (!editMode));
+ pCustomItem->CreateBubbleLayout(showAnimation);
}
AppLogDebug("EXIT: r= %s", GetErrorMessage(GetLastResult()));
return pCustomItem;
}
bool
-ConversationForm::DeleteItem(int groupIndex, int itemIndex, ListItemBase* pItem, int itemWidth)
+ConversationForm::DeleteItem(int groupIndex, int itemIndex, TableViewItem* pItem)
{
AppLogDebug("ENTER");
}
void
+ConversationForm::UpdateItem(int groupIndex, int itemIndex, TableViewItem* pItem)
+{
+ AppLogDebug("ENTER");
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+}
+
+int
+ConversationForm::GetDefaultItemHeight(void)
+{
+ return 0;
+}
+
+int
+ConversationForm::GetDefaultGroupItemHeight(void)
+{
+ return 0;
+}
+
+
+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);
- }
+// //TODO:
+// Header* pHeader = GetHeader();
+// if (pHeader)
+// {
+// bool mmsMode(type == COMPOSE_MMS);
+// pHeader->SetButtonEnabled(BUTTON_POSITION_LEFT, mmsMode);
+// pHeader->Invalidate(true);
+// }
AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
}
}
delete pComposeData;
}
-// __pMsgComposePanel->Reset();
- __pMsgComposePanel->HideKeypad();
- UiApp* pAppUi = UiApp::GetInstance();
- if( pAppUi && pAppUi->GetAppUiState() == APP_UI_STATE_FOREGROUND)
- {
- __pMsgComposePanel->SetFocusToEditor();
- }
- __pMsgComposePanel->ClearText();
+ __pMsgComposePanel->SetFocusToEditor();
+ __pMsgComposePanel->ClearText(true);
__pMsgComposePanel->Invalidate(true);
ShowContactList(false); //To hide contact list on send button click
\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
__pDataList->RemoveAll(true);\r
delete __pDraftMessage;\r
__pDraftMessage = null;\r
+ __draftMessageId = -1;\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
//err = msg_get_message_list(__pMsgHandle, MSG_ALLBOX_ID, convThreadID, 0, MSG_STORAGE_PHONE, pMsgDataList);\r
if (err == MSG_SUCCESS)\r
{\r
+ int maxSendingAnimation(0);\r
ConversationData* pConvData = null;\r
for (int index = 0; index < pMsgDataList->nCount; index++)\r
{\r
{\r
delete pConvData;\r
}\r
+ else if (pConvData->IsSending())\r
+ {\r
+ if (maxSendingAnimation < 2)\r
+ {\r
+ pConvData->SetAnimationShowState(true);\r
+ maxSendingAnimation++;\r
+ }\r
+ }\r
}\r
else\r
{\r
return;\r
}\r
\r
+ArrayList*\r
+ConversationPresentationModel::GetThreadIdListN(msg_id_list_s* pMsgIdList)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ ArrayList* pUpdatedThreadIdList = null;\r
+ if (pMsgIdList && pMsgIdList->nCount > 0)\r
+ {\r
+ pUpdatedThreadIdList = new (std::nothrow) ArrayList();\r
+ pUpdatedThreadIdList->Construct();\r
+ for (int index = 0; index < pMsgIdList->nCount; index++)\r
+ {\r
+ msg_struct_t pMsgInfo = msg_create_struct(MSG_STRUCT_MESSAGE_INFO);\r
+ if (pMsgInfo)\r
+ {\r
+ msg_struct_t pMsgSendOpt = msg_create_struct(MSG_STRUCT_SENDOPT);\r
+ if (pMsgSendOpt)\r
+ {\r
+ if (msg_get_message(__pMsgHandle, (msg_message_id_t) pMsgIdList->msgIdList[index],\r
+ pMsgInfo, pMsgSendOpt) == MSG_SUCCESS)\r
+ {\r
+ // Get message thread ID\r
+ int threadId(-1);\r
+ if (msg_get_int_value(pMsgInfo, MSG_MESSAGE_THREAD_ID_INT, &threadId) == MSG_SUCCESS)\r
+ {\r
+ pUpdatedThreadIdList->Add(new (std::nothrow) Integer(threadId));\r
+ }\r
+ }\r
+ msg_release_struct(&pMsgSendOpt);\r
+ }\r
+ msg_release_struct(&pMsgInfo);\r
+ }\r
+ }\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return pUpdatedThreadIdList;\r
+}\r
+\r
+bool\r
+ConversationPresentationModel::IsThreadIdExist(int threadId, IList* pThreadIdList) const\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ bool threadExist(false);\r
+ if (pThreadIdList)\r
+ {\r
+ for (int index = 0; index < pThreadIdList->GetCount(); index++)\r
+ {\r
+ Integer* pThreadId = (Integer*) pThreadIdList->GetAt(index);\r
+ if (pThreadId && pThreadId->ToInt() == threadId)\r
+ {\r
+ threadExist = true;\r
+ break;\r
+ }\r
+ }\r
+ }\r
+ AppLogDebug("Thread exist = %d", threadExist);\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return threadExist;\r
+}\r
+\r
+\r
result\r
ConversationPresentationModel::AddConversationEventListener(const IConversationEventListener& convLitener,\r
const int threadId)\r
\r
if (__pConversationListener->GetCount() > 0)\r
{\r
- NotifyConversationChange(storageChangeType);\r
+ ArrayList* pModifiedThreadIdList = GetThreadIdListN(pMsgIdList);\r
+ NotifyConversationChange(storageChangeType, pModifiedThreadIdList);\r
+ pModifiedThreadIdList = null;\r
}\r
\r
AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
}\r
\r
void\r
-ConversationPresentationModel::NotifyConversationChange(msg_storage_change_type_t storageChangeType)\r
+ConversationPresentationModel::NotifyConversationChange(msg_storage_change_type_t storageChangeType, IList* pThreadIdList)\r
{\r
AppLogDebug("ENTER");\r
\r
const_cast<IEventListener*>(pConvEvent->GetEvent()));\r
if (pConvObserver)\r
{\r
- pConvObserver->OnConversationListChange((MsgStorageChangeType)storageChangeType);\r
+ if ((storageChangeType == MSG_STORAGE_UPDATE_CONTACT) ||\r
+ (storageChangeType == MSG_STORAGE_DELETE) ||\r
+ IsThreadIdExist(pConvEvent->GetThreadId(), pThreadIdList))\r
+ {\r
+ pConvObserver->OnConversationListChange((MsgStorageChangeType) storageChangeType);\r
+ }\r
}\r
}\r
}\r
+ if (pThreadIdList)\r
+ {\r
+ pThreadIdList->RemoveAll(true);\r
+ delete pThreadIdList;\r
+ pThreadIdList = null;\r
+ }\r
// Free memory\r
if (pEventenum)\r
{\r
#include <FBaseColArrayListT.h>
-#include "MsgDeleteHandlerThread.h"
+#include "MsgDeleteHandler.h"
#include "MsgIDeleteEventListener.h"
#include "MsgThreadPresentationModel.h"
#include "MsgTypes.h"
+
using namespace Tizen::Base;
+using namespace Tizen::Base::Runtime;
using namespace Tizen::Base::Collection;
using namespace Tizen::Ui;
-
-DeleteHandlerThread::DeleteHandlerThread(IListT< int >* pIdList, Control& listener, int requestType)
- : __pDeleteIdList(pIdList)
+DeleteHandler::DeleteHandler(IDeleteEventListener* pDeleteListener)
+ : __pDeleteListener(pDeleteListener)
+ , __pDeleteThread(null)
+ , __pDeleteIdList(null)
, __deleteId(-1)
- , __requestType(requestType)
- , __parentCntl(&listener)
+ , __requestType(-1)
+{
+ AppLogDebug("ENTER");
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+}
+
+result
+DeleteHandler::Construct(IListT<int>* pDeleteIdList, int requestType)
{
AppLogDebug("ENTER");
+
+ result r = E_SUCCESS;
+ __requestType = requestType;
+ __pDeleteIdList = pDeleteIdList;
+
AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return r;
}
-DeleteHandlerThread::DeleteHandlerThread(int deleteId, Control& listener, int requestType)
- : __pDeleteIdList(null)
- , __deleteId(deleteId)
- , __requestType(requestType)
- , __parentCntl(&listener)
+result
+DeleteHandler::Construct(int deleteId, int requestType)
{
AppLogDebug("ENTER");
+
+ result r = E_SUCCESS;
+ __requestType = requestType;
+ __deleteId = deleteId;
+
AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return r;
}
-DeleteHandlerThread::~DeleteHandlerThread(void)
+DeleteHandler::~DeleteHandler(void)
{
AppLogDebug("ENTER");
- __parentCntl = null;
+ Cancel();
delete __pDeleteIdList;
AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
}
-result
-DeleteHandlerThread::Construct(void)
+
+void
+DeleteHandler::Start(void)
{
AppLogDebug("ENTER");
- result r = Thread::Construct();
+ Cancel();
+ __pDeleteThread = new (std::nothrow) Thread();
+ __pDeleteThread->Construct(*this);
+ __pDeleteThread->Start();
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+}
+
+void
+DeleteHandler::Cancel(void)
+{
+ AppLogDebug("ENTER");
+
+ if (__pDeleteThread)
+ {
+ __pDeleteThread->Join();
+ delete __pDeleteThread;
+ __pDeleteThread = null;
+ }
+
AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
- return r;
}
+
Object*
-DeleteHandlerThread::Run(void)
+DeleteHandler::Run(void)
{
AppLogDebug("ENTER");
ThreadPresentationModel* pThreadManager = ThreadPresentationModel::GetInstance();
- IList* pArgs = null;
- int totalCount(1);
- if (__parentCntl && pThreadManager)
+ if (pThreadManager)
{
+ int totalCount(1);
if (__pDeleteIdList)
{
totalCount = __pDeleteIdList->GetCount();
- pArgs = new (std::nothrow) ArrayList(SingleObjectDeleter);
- if(pArgs)
+ // Send delete start event
+ if (__pDeleteListener)
{
- pArgs->Add(new Integer(totalCount));
- __parentCntl->SendUserEvent(REQUEST_DELETE_START,pArgs);
+ __pDeleteListener->OnDeleteStart(totalCount);
}
for (int count = 0; count < totalCount; ++count)
{
pThreadManager->Delete(deleteId, __requestType);
}
-
- pArgs = new (std::nothrow) ArrayList(SingleObjectDeleter);
- if(pArgs)
+ // Send delete update event
+ if (__pDeleteListener)
{
- pArgs->Add(new Integer(count + 1));
- pArgs->Add(new Integer(totalCount));
- __parentCntl->SendUserEvent(REQUEST_DELETE_UPDATE,pArgs);
+ __pDeleteListener->OnDeleteUpdate((count + 1), totalCount);
}
}
}
else
{
- pArgs = new (std::nothrow) ArrayList(SingleObjectDeleter);
- if(pArgs)
+ // Send delete start event
+ if (__pDeleteListener)
{
- pArgs->Add(new Integer(totalCount));
- __parentCntl->SendUserEvent(REQUEST_DELETE_START,pArgs);
+ __pDeleteListener->OnDeleteStart(totalCount);
}
pThreadManager->Delete(__deleteId, __requestType);
- pArgs = new (std::nothrow) ArrayList(SingleObjectDeleter);
- if(pArgs)
+ // Send delete update event
+ if (__pDeleteListener)
{
- pArgs->Add(new Integer(totalCount));
- pArgs->Add(new Integer(totalCount));
- __parentCntl->SendUserEvent(REQUEST_DELETE_UPDATE,pArgs);
+ __pDeleteListener->OnDeleteUpdate(totalCount, totalCount);
}
}
-
- pArgs = new (std::nothrow) ArrayList(SingleObjectDeleter);
- if(pArgs)
+ // Send delete complete event
+ if (__pDeleteListener)
{
- pArgs->Add(new Integer(E_SUCCESS));
- __parentCntl->SendUserEvent(REQUEST_DELETE_COMPLETE,pArgs);
+ __pDeleteThread->Sleep(90); // Put this delay to show complete progress.
+ __pDeleteListener->OnDeleteComplete(E_SUCCESS, null);
}
-
}
AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
return null;
// limitations under the License.\r
//\r
\r
+#include <FUi.h>\r
+#include <FApp.h>\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::Base::Runtime;\r
using namespace Tizen::Graphics;\r
using namespace Tizen::Ui::Controls;\r
\r
DurationPopup::DurationPopup(Control& parent)\r
-: __parentCntl(parent)\r
+ : __parentCntl(parent)\r
+ , __pLaunchTimer(null)\r
+ , __previousValue(5)\r
{\r
}\r
\r
DurationPopup::~DurationPopup(void)\r
{\r
AppLogDebug("ENTER");\r
+\r
+ if(__pLaunchTimer)\r
+ {\r
+ __pLaunchTimer->Cancel();\r
+ delete __pLaunchTimer;\r
+ }\r
AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
}\r
\r
result r = Popup::Construct(resourceId);\r
if (!IsFailed(r))\r
{\r
- Button* pButtonOk = (Button*)GetControl(L"IDC_BUTTON_OK");\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
+ Button* pButtonCancel = (Button*) GetControl(L"IDC_BUTTON_CANCEL");\r
pButtonCancel->SetActionId(IDA_CANCEL);\r
pButtonCancel->AddActionEventListener(*this);\r
+ EditField* pDurationField = (EditField*) GetControl(L"IDC_EDITFIELD_DURATION");\r
+ pDurationField->AddTextEventListener(*this);\r
+ Label* pInfoLabel = (Label*) GetControl(L"IDC_DURATION_LABEL");\r
+ String labelText;\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSG_BODY_DURATION_MUST_BE_LONGER_THAN_PD_SECONDS", labelText);\r
+ labelText.Replace(L"%d",L"5");\r
+ pInfoLabel->SetText(labelText);\r
}\r
+ __pLaunchTimer = new (std::nothrow) Timer();\r
+ __pLaunchTimer->Construct(*this);\r
AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
return r;\r
}\r
{\r
AppLogDebug("ENTER");\r
int slideDuration(5);\r
- EditField* pDurationField = (EditField*)GetControl(L"IDC_EDITFIELD_DURATION");\r
- if(pDurationField)\r
+ EditField* pDurationField = (EditField*) GetControl(L"IDC_EDITFIELD_DURATION");\r
+ if (pDurationField)\r
{\r
String durationTextValue = pDurationField->GetText();\r
- Integer::Parse(durationTextValue, slideDuration);\r
+ if (durationTextValue.GetLength() > 0)\r
+ {\r
+ Integer::Parse(durationTextValue, slideDuration);\r
+ }\r
+ else\r
+ {\r
+ slideDuration = __previousValue;\r
+ }\r
}\r
- if(slideDuration<5)\r
+ if (slideDuration < 5)\r
{\r
slideDuration = 5;\r
}\r
{\r
AppLogDebug("ENTER");\r
result r = E_SUCCESS;\r
- EditField* pDurationField = (EditField*)GetControl(L"IDC_EDITFIELD_DURATION");\r
- if(pDurationField)\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
+ __previousValue = duration;\r
AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
return r;\r
}\r
{\r
AppLogDebug("ENTER");\r
result r = E_SUCCESS;\r
- Label* pInfoLabel = (Label*)GetControl(L"IDC_DURATION_LABEL");\r
- if(pInfoLabel)\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
+DurationPopup::ShowPopup(void)\r
{\r
AppLogDebug("ENTER");\r
- EditField* pDurationField = (EditField*)GetControl(L"IDC_EDITFIELD_DURATION");\r
+\r
+ result r = E_SUCCESS;\r
+ Show();\r
+ // To avoid keyboard overlapping.\r
+ r = __pLaunchTimer->Start(10);\r
+\r
AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
- return pDurationField->SetFocus();\r
+ return r;\r
}\r
\r
+// Form ITimerEventListener\r
+void\r
+DurationPopup::OnTimerExpired(Timer& timer)\r
+{\r
+ EditField* pDurationField = (EditField*) GetControl(L"IDC_EDITFIELD_DURATION");\r
+ pDurationField->SetFocus();\r
+}\r
\r
// From IActionEventListener\r
void\r
case IDA_OK:\r
case IDA_CANCEL:\r
{\r
+ EditField* pDurationField = (EditField*) GetControl(L"IDC_EDITFIELD_DURATION");\r
+ pDurationField->HideKeypad();\r
SetShowState(false);\r
RequestId requestId = REQUEST_DESTROY_DURATION_POPUP;\r
__parentCntl.SendUserEvent(requestId, null);\r
}\r
AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
}\r
+\r
+//ITextEventListener\r
+void\r
+DurationPopup::OnTextValueChanged(const Tizen::Ui::Control& source)\r
+{\r
+ AppLogDebug("ENTER in duration popup");\r
+ Button* pButtonOk = (Button*) GetControl(L"IDC_BUTTON_OK");\r
+ EditField* pDurationField = (EditField*) GetControl(L"IDC_EDITFIELD_DURATION");\r
+ if (pDurationField->GetTextLength() > 0)\r
+ {\r
+ pButtonOk->SetEnabled(true);\r
+ }\r
+ else\r
+ {\r
+ pButtonOk->SetEnabled(false);\r
+ }\r
+ pButtonOk->Invalidate(true);\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
+\r
\r
result r = E_SUCCESS;\r
ThreadPresentationModel* pThreadPrModel = ThreadPresentationModel::GetInstance();\r
- if (pThreadPrModel == null)\r
+ if (!pThreadPrModel)\r
{\r
- AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
r = E_FAILURE;\r
- return r;\r
}\r
- AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ AppLogDebug("EXIT: %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 <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 <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
AppLogDebug("ENTER");\r
\r
result r = BasePresentationModel::Construct();\r
- if (r == E_SUCCESS)\r
- {\r
- __pDataList = new (std::nothrow) ArrayList();\r
- __pDataList->Construct();\r
+ __pDataList = new (std::nothrow) ArrayList();\r
+ __pDataList->Construct();\r
\r
- __pGroupInfo = new (std::nothrow) ArrayList();\r
- __pGroupInfo->Construct();\r
- }\r
+ __pGroupInfo = new (std::nothrow) ArrayList();\r
+ __pGroupInfo->Construct();\r
\r
AppLogDebug("EXIT: %s", GetErrorMessage(r));\r
return r;\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
+#include <FMediaVideoFrameExtractor.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
+using namespace Tizen::Ui::Controls;\r
\r
const wchar_t* IDS_PATH_COLON = L"path:";\r
\r
, __pMediaIconBitmap(null)\r
, __pWorkerThread(null)\r
{\r
- // Empty\r
+ AppLogDebug("ENTER");\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
}\r
\r
MediaControl::~MediaControl(void)\r
}\r
if (__pWorkerThread)\r
{\r
- __pWorkerThread->Exit(); // stop is deprecated. Hence the replacement with exit function call\r
+ __pWorkerThread->Join();\r
delete __pWorkerThread;\r
}\r
\r
// Load media icon image\r
if (!__mediaPath.IsEmpty())\r
{\r
- delete __pWorkerThread;\r
+ if(__pWorkerThread)\r
+ {\r
+ __pWorkerThread->Join();\r
+ delete __pWorkerThread;\r
+ }\r
__pWorkerThread = new (std::nothrow) Thread();\r
__pWorkerThread->Construct(*this);\r
__pWorkerThread->Start();\r
{\r
case ID_EVENT_IMAGE_LOADED:\r
{\r
- delete __pMediaIconBitmap;\r
+ if (__pMediaIconBitmap)\r
+ {\r
+ delete __pMediaIconBitmap;\r
+ }\r
__pMediaIconBitmap = static_cast<Bitmap*>(pArgs->GetAt(0));\r
__pDeleteMedia->SetShowState(true);\r
pArgs->RemoveAt(0);\r
{\r
AppLogDebug("ENTER");\r
\r
- AppControl* pAppControl = AppManager::FindAppControlN(IDS_APPCONTROL_PROVIDER_IMAGE,\r
- IDS_APPCONTROL_OPERATION_VIEW);\r
- if (pAppControl)\r
+ if (CommonUtil::IsImageFile(__mediaPath))\r
+ {\r
+ CommonUtil::ShowImage(__mediaPath);\r
+ }\r
+ else // It should be video file\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
+ CommonUtil::PlayVideo(__mediaPath);\r
}\r
\r
AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\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
+ //To extract frame from video:\r
+ VideoFrameExtractor extractor;\r
+ extractor.Construct(__mediaPath, MEDIA_PIXEL_FORMAT_BGRA8888);\r
+ ImageBuffer* pImage = extractor.GetFrameN(0);\r
+ pBitmap = pImage->GetBitmapN(BITMAP_PIXEL_FORMAT_ARGB8888, BUFFER_SCALING_AUTO);\r
+ delete pImage;\r
+ AppLogDebug("Bitmap Album EXIT: %s", GetErrorMessage(GetLastResult()));\r
}\r
else\r
{\r
// See the License for the specific language governing permissions and
// limitations under the License.
//
-#include <FApp.h>
+
#include <FIo.h>
#include "MsgAttachementControl.h"
#include "MsgMediaTextExpandEditArea.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::Ui::Controls;
using namespace Tizen::Ui;
+using namespace Tizen::Ui::Controls;
enum InternalActionIds
{
IDA_DELETE_IMAGE,
IDA_DELETE_AUDIO,
- IDA_VIEW_IMAGE
+ IDA_VIEW_IMAGE,
+ IDA_DELETE_PAGE,
};
MediaTextExpandEditArea::MediaTextExpandEditArea(void)
, __pExpandEditArea(null)
, __pDeleteButton(null)
, __pAttachCntrl(null)
+ , __pActionEventListener(null)
{
// Empty
}
__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->SetLimitLength(1999); // Set To max limit
__pExpandEditArea->AddExpandableEditAreaEventListener(*this);
__pExpandEditArea->SetAutoResizingEnabled(false);
__pExpandEditArea->SetAutoShrinkModeEnabled(false);
__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));
+ pEditorBgCanvas->FillRoundRectangle(__pExpandEditArea->GetColor(EDIT_STATUS_NORMAL), editorBound, Dimension(2, 2));
__pBgBitmap->Construct(*pEditorBgCanvas, editorBound);
delete pEditorBgCanvas;
// add delete button
__pDeleteButton->SetPressedBackgroundBitmap(*pPressBitMap);
__pDeleteButton->SetShowState(false);
AddControl(*__pDeleteButton);
+ __pDeleteButton->SetActionId(IDA_DELETE_PAGE);
+ __pDeleteButton->AddActionEventListener(*this);
delete pPressBitMap;
delete pNormalBitMap;
}
void
-MediaTextExpandEditArea::AddActionEventListener(IActionEventListener& listener)
+MediaTextExpandEditArea::SetActionEventListener(IActionEventListener& listener)
{
AppLogDebug("ENTER");
- __pDeleteButton->AddActionEventListener(listener);
+ __pActionEventListener = &listener;
+ //__pDeleteButton->AddActionEventListener(*this);
AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
}
MediaTextExpandEditArea::SetDeleteActionId(int actionId)
{
AppLogDebug("ENTER");
- __pDeleteButton->SetActionId(actionId);
+ __deleteActionId = actionId;
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+}
+
+void
+MediaTextExpandEditArea::SetUpdateActionId(int actionId)
+{
+ AppLogDebug("ENTER");
+ __updateActionId = actionId;
AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+
}
+
result
MediaTextExpandEditArea::SetText(const String& strText)
{
MediaTextExpandEditArea::ClearText(void)
{
AppLogDebug("ENTER");
+ __pDeleteButton->SetShowState(false);
+ __pExpandEditArea->Clear();
+ if (__pMediaCntl)
+ {
+ RemoveControl(*__pMediaCntl);
+ __pMediaCntl = null;
+ }
+ if (__pAttachCntrl)
+ {
+ RemoveControl(*__pAttachCntrl);
+ __pAttachCntrl = null;
+ }
+ __pExpandEditArea->SetBounds(0, 0, __prevBounds.width, __prevBounds.height);
+ SetSize(GetWidth(), __pExpandEditArea->GetHeight());
AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
- return __pExpandEditArea->Clear();
+ return E_SUCCESS;
}
String
height += __pAttachCntrl->GetHeight() + MARGIN_16PX;
}
__pAttachCntrl->SetDeleteActionId(IDA_DELETE_AUDIO);
- __pAttachCntrl->AddActionEventListener(*this);
+ __pAttachCntrl->SetActionEventListener(*this);
AddControl(*__pAttachCntrl);
}
__pExpandEditArea->SetBounds(0, height, __prevBounds.width, __prevBounds.height);
{
case IDA_DELETE_IMAGE:
{
+ // Check need to delete this page or not
+ int pageCount(GetParent()->GetControlCount());
+ if(( pageCount >1) && __pActionEventListener && (!__pAttachCntrl) && (__pExpandEditArea->GetTextLength() <= 0))
+ {
+ // Send delete event.
+ __pActionEventListener->OnActionPerformed(*this, __deleteActionId);
+ break;
+ }
File::Remove(__pMediaCntl->GetMediaPath());
RemoveControl(*__pMediaCntl);
__pMediaCntl = null;
__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);
+ // Send update event
+ if(__pActionEventListener)
+ {
+ __pActionEventListener->OnActionPerformed(*this, __updateActionId);
+ }
}
break;
case IDA_DELETE_AUDIO:
{
+ // Check need to delete this page or not
+ int pageCount(GetParent()->GetControlCount());
+ if((pageCount>1) && __pActionEventListener && (!__pMediaCntl) && (__pExpandEditArea->GetTextLength() <= 0))
+ {
+ __pActionEventListener->OnActionPerformed(*this, __deleteActionId);
+ break;
+ }
RemoveControl(*__pAttachCntrl);
__pAttachCntrl = null;
+
if (__pMediaCntl)
{
__pExpandEditArea->SetBounds(0, __pMediaCntl->GetHeight() + MARGIN_16PX + MARGIN_16PX, __prevBounds.width, __prevBounds.height);
__pExpandEditArea->SetBounds(0, 0, __prevBounds.width, __prevBounds.height);
SetSize(GetWidth(), __pExpandEditArea->GetHeight());
}
+ // Send update event
+ if(__pActionEventListener)
+ {
+ __pActionEventListener->OnActionPerformed(*this, __updateActionId);
+ }
+ }
+ break;
+ case IDA_DELETE_PAGE:
+ {
+ // Delegate event.
+ // Check need to delete this page or not
+ int pageCount(GetParent()->GetControlCount());
+ if(pageCount>1 && __pActionEventListener)
+ {
+ __pActionEventListener->OnActionPerformed(*this, __deleteActionId );
+ }
}
break;
}
pCanvas->FillRectangle(COLOR_COMPOSE_PANEL_BG,
Rectangle(0, 0, rect.width, rect.height));
pCanvas->DrawBitmap(Rectangle(0, 0, rect.width, rect.height),
- *__pBgBitmap);
+ *__pBgBitmap);
delete pCanvas;
}
AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
{
AppLogDebug("ENTER");
AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
- return COMPOSE_CONTROL_IMAGE_TEXT;
+ return COMPOSE_CONTROL_MEDIA_TEXT;
}
void
MediaTextExpandEditArea::SetDeleteShowState(bool visible)
{
AppLogDebug("ENTER");
+
__pDeleteButton->SetShowState(visible);
Rectangle rectangle = GetBounds();
Dimension editorSize = __pExpandEditArea->GetSize();
editorSize.width = rectangle.width;
}
__pExpandEditArea->SetSize(editorSize);
- Draw();
- Show();
AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
}
const wchar_t* IDS_SELTYPE_MULTIPLE = L"selectionType:multiple";
-const wchar_t* IDS_TYPE_CAMERA = L"type:camera";
+const wchar_t* IDS_TYPE_CAMERA = L"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";
IDA_COMPOSE_DELETE_ATTACHEMENT,
IDA_COMPOSE_SEND,
IDA_CLOSE_POPUP,
+ IDA_CHECK_COMPOSE_STATE,
};
MessageComposePanel::MessageComposePanel(void)
{
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);
AppLogDebug("ENTER");
CreatePage();
SetShowState(true);
+ ShowComposeInfo();
AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
}
MediaTextExpandEditArea*
MessageComposePanel::CreatePage(const String& pageText)
{
+ // Calculate image/Text size
+ Panel* pImageTextSlidePanel = static_cast<Panel*>(__pScrollPanel->
+ GetControl(L"IDC_PANEL_IMAGE_TEXT"));
+ int pageCount = pImageTextSlidePanel->GetControlCount();
+
+ if (pageCount >= 10 )
+ {
+ // TODO : SHOW Popup - Maximum pages created
+ return null;
+ }
AppLogDebug("ENTER");
Panel* pImageTextPanel = static_cast<Panel*>(__pScrollPanel->
GetControl(L"IDC_PANEL_IMAGE_TEXT"));
pComposePage->AddFocusEventListener(*this);
pComposePage->AddTextEventListener(*this);
pComposePage->SetDeleteActionId(IDA_COMPOSE_DELETE_ATTACHEMENT);
- pComposePage->AddActionEventListener(*this);
+ pComposePage->SetUpdateActionId(IDA_CHECK_COMPOSE_STATE);
+ pComposePage->SetActionEventListener(*this);
pComposePage->SetText(pageText);
pImageTextPanel->AddControl(*pComposePage);
__pScrollPanel->ScrollToBottom();
AttachementControl* pAttachCntl = new (std::nothrow) AttachementControl(attachFile);
pAttachCntl->Construct(Rectangle(0, posY, __pScrollPanel->GetWidth(), 60));
pAttachCntl->SetDeleteActionId(IDA_COMPOSE_DELETE_ATTACHEMENT);
- pAttachCntl->AddActionEventListener(*this);
+ pAttachCntl->SetActionEventListener(*this);
pAttachementPanel->AddControl(*pAttachCntl);
__pScrollPanel->ScrollToTop();
SubjectControl* pSubjectCntl = new (std::nothrow) SubjectControl();
pSubjectCntl->Construct(Rectangle(0, 0, __pScrollPanel->GetWidth(), 71));
pSubjectCntl->SetDeleteActionId(IDA_COMPOSE_DELETE_ATTACHEMENT);
- pSubjectCntl->AddActionEventListener(*this);
+ pSubjectCntl->SetActionEventListener(*this);
pSubjectCntl->AddKeypadEventListener(*this);
pSubjectCntl->AddFocusEventListener(*this);
pSubjectCntl->AddTextEventListener(*this);
mmsDataPath.Append(File::GetFileName(selectFilepath));
AppLogDebug("***MMS DATA PATH: %S ****", mmsDataPath.GetPointer());
File::Copy(selectFilepath, mmsDataPath, true);
- if (!__pFocusControl)
+ ComposeBaseControl* pPageInFocus = __pFocusControl;
+ if (!pPageInFocus|| (pPageInFocus && (pPageInFocus->GetControlType() != COMPOSE_CONTROL_MEDIA_TEXT)))
{
+ // Get Default focus page.
Panel* pImageTextPanel = static_cast<Panel*>(__pScrollPanel->GetControl(L"IDC_PANEL_IMAGE_TEXT"));
- __pFocusControl = static_cast<ComposeBaseControl*>(pImageTextPanel->GetControl(0));
+ pPageInFocus = static_cast<ComposeBaseControl*>(pImageTextPanel->GetControl(0));
+ }
+ MediaTextExpandEditArea* pFocusComposePage = static_cast<MediaTextExpandEditArea*>(pPageInFocus);
+ if ((pFocusComposePage->IsAudioExist() && mediaType == MEDIA_TYPE_IMAGE) ||
+ (pFocusComposePage->IsImageExist() && mediaType == MEDIA_TYPE_AUDIO) ||
+ ((mediaType == MEDIA_TYPE_VIDEO) && (!pFocusComposePage->IsAudioExist()) && (!pFocusComposePage->IsImageExist()) && (!pFocusComposePage->IsVideoExist())) ||
+ ((mediaType == MEDIA_TYPE_AUDIO) && (!pFocusComposePage->IsAudioExist()) && (!pFocusComposePage->IsVideoExist())) ||
+ ((mediaType == MEDIA_TYPE_IMAGE) && (!pFocusComposePage->IsVideoExist()) && (!pFocusComposePage->IsImageExist())))
+ {
+ pFocusComposePage->SetMedia(mmsDataPath, mediaType);
}
- MediaTextExpandEditArea* pFocusComposePage = static_cast<MediaTextExpandEditArea*>(__pFocusControl);
- if (pFocusComposePage->IsVideoExist() ||
- (pFocusComposePage->IsImageExist() && mediaType == MEDIA_TYPE_IMAGE) ||
- (pFocusComposePage->IsAudioExist() && mediaType == MEDIA_TYPE_AUDIO))
+ else
{
MediaTextExpandEditArea* pNewComposePage = CreatePage();
if (pNewComposePage)
pNewComposePage->SetMedia(mmsDataPath, mediaType);
}
}
- else
- {
- pFocusComposePage->SetMedia(mmsDataPath, mediaType);
- pFocusComposePage->SetFocus();
- }
}
else
{
// Create thread to resize.
if (__pWorkerThread)
{
+ __pWorkerThread->Join();
delete __pWorkerThread;
+ __pWorkerThread = null;
}
__pWorkerThread = new (std::nothrow) Thread();
__pWorkerThread->Construct(*this);
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"));
+ Label* pPanel = static_cast<Label*>(__pSizeExceedPopup->GetControl(L"IDC_LABEL1"));
pPanel->SetBackgroundColor(COLOR_COMPOSE_PANEL_BG);
Timer* pTimerForMaximumsizePopup = new (std::nothrow) Timer();
pTimerForMaximumsizePopup->Construct(*this);
AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
}
+bool
+MessageComposePanel::IsConvertedToMms(void) const
+{
+ String msgText = GetSmsText();
+ 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;
+ int length = size - MESSAGE_LENGTH - MESSAGE_LENGTH_2;
+ int messagecount = length / MESSAGE_LENGTH_3 + 1;
+ if (messagecount > 8)
+ {
+ return true;
+ }
+ }
+ return false;
+}
void
MessageComposePanel::OnTimerExpired(Timer& timer)
{
if (prvBounds.height == rect.height)
{
AdjustChildControl();
- __pScrollPanel->ScrollToBottom();
+ //TODO:
+ //__pScrollPanel->ScrollToBottom();
}
r = Panel::SetBounds(rect);
AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
case IDA_COMPOSE_DELETE_ATTACHEMENT:
{
- ComposeBaseControl* pComposeCntl = static_cast<ComposeBaseControl*>(source.GetParent());
- if (pComposeCntl->GetControlType() == COMPOSE_CONTROL_IMAGE_TEXT)
+ ComposeBaseControl* pComposeCntl = (ComposeBaseControl*)(const_cast<Control*>(&source));
+ if (pComposeCntl->GetControlType() == COMPOSE_CONTROL_MEDIA_TEXT)
{
+ static_cast<MediaTextExpandEditArea*>(pComposeCntl)->SetFocus();
static_cast<MediaTextExpandEditArea*>(pComposeCntl)->ShowKeypad(false);
static_cast<Panel*>(__pScrollPanel->GetControl(L"IDC_PANEL_IMAGE_TEXT"))->
- RemoveControl(*source.GetParent());
+ RemoveControl(source);
+ // 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_SUBJECT)
{
static_cast<Panel*>(__pScrollPanel->GetControl(L"IDC_PANEL_SUBJECT"))->
- RemoveControl(*source.GetParent());
+ RemoveControl(source);
// SetFocus
Panel* pImageTextPanel = static_cast<Panel*>(__pScrollPanel->GetControl(L"IDC_PANEL_IMAGE_TEXT"));
if (pImageTextPanel)
else if (pComposeCntl->GetControlType() == COMPOSE_CONTROL_ATTACHEMENT)
{
static_cast<Panel*>(__pScrollPanel->GetControl(L"IDC_PANEL_ATTACHEMENT"))->
- RemoveControl(*source.GetParent());
+ RemoveControl(source);
+ // SetFocus
+ Panel* pImageTextPanel = static_cast<Panel*>(__pScrollPanel->GetControl(L"IDC_PANEL_IMAGE_TEXT"));
+ if (pImageTextPanel)
+ {
+ (static_cast<MediaTextExpandEditArea*>(pImageTextPanel->GetControl(0)))->SetFocus();
+ }
}
// At least there should be one compose element
__pSizeChangeListener->OnSizeDecrease(*this);
{
__pCompseEventListener->OnSendButtonClick();
}
+ ShowComposeInfo();
}
break;
}
}
break;
+ case IDA_CHECK_COMPOSE_STATE:
+ {
+ // Check is it MMS, change button icon.
+ RequestId requestId = REQUEST_CHECK_COMPOSE_STATE;
+ SendUserEvent(requestId, null);
+ }
+ break;
+
}
AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
}
MessageComposePanel::OnFocusGained(const Control& source)
{
AppLogDebug("ENTER");
- __pFocusControl = static_cast<ComposeBaseControl*>(source.GetParent());
+ __pFocusControl = dynamic_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)
+ if (__pFocusControl->GetControlType() == COMPOSE_CONTROL_MEDIA_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);
+ static_cast<MediaTextExpandEditArea*>(__pFocusControl)->SetDeleteShowState(elementCount > 1);
+
}
else if (__pFocusControl->GetControlType() == COMPOSE_CONTROL_SUBJECT)
{
static_cast<SubjectControl*>(__pFocusControl)->SetDeleteShowState(true);
}
-
- RequestId requestId = REQUEST_UDATE_FOCUS;
+ RequestId requestId = REQUEST_UPDATE_FOCUS;
GetParent()->SendUserEvent(requestId, null);
AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
{
AppLogDebug("ENTER");
ComposeBaseControl* pComposeElement = static_cast<ComposeBaseControl*>(source.GetParent());
- if(__pFocusControl)
+ if (__pFocusControl)
{
- if (__pFocusControl->GetControlType() == COMPOSE_CONTROL_IMAGE_TEXT)
+ if (__pFocusControl->GetControlType() == COMPOSE_CONTROL_MEDIA_TEXT)
{
static_cast<MediaTextExpandEditArea*>(pComposeElement)->SetDeleteShowState(false);
}
if (appControlResult == APP_CTRL_RESULT_SUCCEEDED)
{
// Prepare selected file list and start processing
- __pSelectedFilesQueue = (ArrayList*) GetSelectedFileListN(operationId, pResultMap);
+ __pSelectedFilesQueue = (ArrayList*) GetSelectedFileListN(appId, pResultMap);
ProcessNextFileComposeQueue();
}
else if (appControlResult == APP_CTRL_RESULT_CANCELED)
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;
int rType = ((Integer*) pArgs->GetAt(0))->ToInt();
if (rType == MSG_RESPONSE_RESIZE_IMAGE)
{
- if (!__pFocusControl)
+ ComposeBaseControl* pPageInFocus = __pFocusControl;
+ if (!pPageInFocus|| (pPageInFocus && pPageInFocus->GetControlType() != COMPOSE_CONTROL_MEDIA_TEXT))
{
+ // Get Default focus page.
Panel* pImageTextPanel = static_cast<Panel*>(__pScrollPanel->GetControl(L"IDC_PANEL_IMAGE_TEXT"));
- __pFocusControl = static_cast<ComposeBaseControl*>(pImageTextPanel->GetControl(0));
+ pPageInFocus = static_cast<ComposeBaseControl*>(pImageTextPanel->GetControl(0));
}
- MediaTextExpandEditArea* pFocusComposePage = static_cast<MediaTextExpandEditArea*>(__pFocusControl);
+ MediaTextExpandEditArea* pFocusComposePage = static_cast<MediaTextExpandEditArea*>(pPageInFocus);
if (pFocusComposePage->IsVideoExist() || pFocusComposePage->IsImageExist())
{
+ // Create new page for inserted item
MediaTextExpandEditArea* pComposePage = CreatePage();
if (pComposePage)
{
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.
+ // After resizing current image, need to look at remaining file(s) in queue.
ProcessNextFileComposeQueue();
}
break;
case REQUEST_ADD_SUBJECT:
{
AddSubjectField();
+ SetFocusToSubject();
}
break;
}
break;
- case REQUEST_OPEN_GALLARY:
+ case REQUEST_OPEN_GALLERY:
case REQUEST_TAKE_PICTURE:
case REQUEST_CAPTURE_VIDEO:
case REQUEST_RECORD_AUDIO:
}
bool
-MessageComposePanel::IsComposeFieldEmpty(void)
+MessageComposePanel::IsComposeFieldEmpty(void) const
{
AppLogDebug("ENTER");
- String strComposeText = GetSmsText();
- if(strComposeText.GetLength() > 0)
- {
- AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
- return false;
- }
- else
- {
- AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
- return true;
- }
+
+ long long int size = GetMessageComposeSize();
+ AppLogDebug("Message Size = %lld bytes", size);
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return ( size <= 0 );
+}
+
+bool
+MessageComposePanel::IsSubjectExists(void) const
+{
+ AppLogDebug("ENTER");
+
+ Panel* pSubjectPanel = static_cast<Panel*>(__pScrollPanel->GetControl(L"IDC_PANEL_SUBJECT"));
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return (pSubjectPanel->GetControlCount() > 0 );
}
result
pHashMap->Construct();
switch (requestType)
{
- case REQUEST_OPEN_GALLARY:
+ case REQUEST_OPEN_GALLERY:
{
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)));
case REQUEST_TAKE_PICTURE:
{
- pHashMap->Add((new (std::nothrow) String(L"type")), (new (std::nothrow) String(IDS_TYPE_CAMERA)));
+ pHashMap->Add((new (std::nothrow) String(L"type")), (new (std::nothrow) String(L"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);
+ pHashMap->Add((new (std::nothrow) String(L"type")), (new (std::nothrow) String(L"camcorder")));
+ pAppCntl = AppManager::FindAppControlN(IDS_APPCONTROL_PROVIDER_CAMERA, IDS_APPCONTROL_OPERATION_CAPTURE);
}
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_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:
{
case REQUEST_ADD_CALENDAR:
{
pHashMap->Add((new (std::nothrow) String(L"itemType")), (new (std::nothrow) String(L"event")));
+ pHashMap->Add((new (std::nothrow) String(L"selectionMode")), (new (std::nothrow) String(L"single")));
pAppCntl = AppManager::FindAppControlN(IDS_APPCONTROL_PROVIDER_CALENDAR, IDS_APPCONTROL_OPERATION_PICK);
}
break;
}
length = messaglength - msgLength;
counterMsg.Append(length);
+ counterMsg.Append("/");
+ counterMsg.Append(messagecount + 1);
+
if (messagecount != 0)
{
counterMsg.Append("/");
}
else if (msgLength < MESSAGE_LENGTH + MESSAGE_LENGTH_2)
{
- length = msgLength - MESSAGE_LENGTH ;
+ length = msgLength - MESSAGE_LENGTH;
messagecount = length / MESSAGE_LENGTH_2 + 1;
messaglength = MESSAGE_LENGTH + MESSAGE_LENGTH_2;
length = messaglength - msgLength;
messagecount = length / MESSAGE_LENGTH_3 + 1;
if (messagecount > 1)
{
- messaglength = MESSAGE_LENGTH + MESSAGE_LENGTH_2 +(MESSAGE_LENGTH_3 * (messagecount));
+ messaglength = MESSAGE_LENGTH + MESSAGE_LENGTH_2 + (MESSAGE_LENGTH_3 * (messagecount));
}
else
{
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;
}
if (!pComposeElement->GetMediaPath(MEDIA_TYPE_AUDIO).IsEmpty())
{
FileAttributes fileAttr;
- r = File::GetAttributes(pComposeElement->GetMediaPath(MEDIA_TYPE_IMAGE), fileAttr);
+ r = File::GetAttributes(pComposeElement->GetMediaPath(MEDIA_TYPE_AUDIO), fileAttr);
if (r == E_SUCCESS)
{
sizeBytes += fileAttr.GetFileSize();
return true;
MediaTextExpandEditArea* pMediaTextArea = static_cast<MediaTextExpandEditArea*>(pCompoasePanel->
GetControl(0));
- if (pMediaTextArea->IsImageExist() || pMediaTextArea->IsAudioExist() || pMediaTextArea->IsVideoExist())
+ if (pMediaTextArea->IsImageExist() || pMediaTextArea->IsAudioExist() || pMediaTextArea->IsVideoExist() || IsConvertedToMms())
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)
{
((SubjectControl*) pFocusCntl)->ShowKeypad(false);
}
- else if (pFocusCntl->GetControlType() == COMPOSE_CONTROL_IMAGE_TEXT)
+ else if (pFocusCntl->GetControlType() == COMPOSE_CONTROL_MEDIA_TEXT)
{
((MediaTextExpandEditArea*) pFocusCntl)->ShowKeypad(false);
}
{
((SubjectControl*) pFocusCntl)->ShowKeypad(true);
}
- else if (pFocusCntl->GetControlType() == COMPOSE_CONTROL_IMAGE_TEXT)
+ else if (pFocusCntl->GetControlType() == COMPOSE_CONTROL_MEDIA_TEXT)
{
((MediaTextExpandEditArea*) pFocusCntl)->ShowKeypad(true);
}
}
AppLogDebug("EXIT: r= %s", GetErrorMessage(GetLastResult()));
return;
-
}
void
}
void
-MessageComposePanel::ClearText(void)
+MessageComposePanel::ClearText(bool redraw)
{
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();
- }
+
+ // Reset subject panel
+ Panel* pSubjectPanel = static_cast<Panel*>(__pScrollPanel->GetControl(L"IDC_PANEL_SUBJECT"));
+ pSubjectPanel->RemoveAllControls();
+ // Reset attach panel
+ Panel* pAttachmentPanel = static_cast<Panel*>(__pScrollPanel->GetControl(L"IDC_PANEL_ATTACHEMENT"));
+ pAttachmentPanel->RemoveAllControls();
+ // Reset image text panel
+ Panel* pImageTextSlidePanel = static_cast<Panel*>(__pScrollPanel->GetControl(L"IDC_PANEL_IMAGE_TEXT"));
+ pImageTextSlidePanel->RemoveAllControls();
+ // Add default page in panel
+ MediaTextExpandEditArea* pDefaultPage = new (std::nothrow) MediaTextExpandEditArea();
+ pDefaultPage->Construct(Rectangle(0, 0, __pScrollPanel->GetWidth(), MIN_COMPOSE_EDITOR_HEIGHT));
+ pDefaultPage->AddKeypadEventListener(*this);
+ pDefaultPage->SetSizeChangeEventListener(*this);
+ pDefaultPage->AddFocusEventListener(*this);
+ pDefaultPage->AddTextEventListener(*this);
+ pDefaultPage->SetDeleteActionId(IDA_COMPOSE_DELETE_ATTACHEMENT);
+ pDefaultPage->SetUpdateActionId(IDA_CHECK_COMPOSE_STATE);
+ pDefaultPage->SetActionEventListener(*this);
+ pImageTextSlidePanel->AddControl(*pDefaultPage);
+ if(redraw)
+ {
+ Draw(); // For immediate refresh, otherwise it will hide behind keypad
+ }
+ pDefaultPage->SetFocus(); // To lunch keyboard.
__pComposeInfoLabel->SetShowState(false);
__pSendMessage->SetEnabled(false);
+ // Notify control size reduced.
+ if (__pSizeChangeListener)
+ {
+ __pSizeChangeListener->OnSizeDecrease(*this);
+ }
+
AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
}
MessageComposePanel::SetFocusToEditor(void)
{
AppLogDebug("ENTER");
- Panel* pComposePanel = static_cast<Panel*>(__pScrollPanel->
- GetControl(L"IDC_PANEL_IMAGE_TEXT"));
+ 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::SetFocusToSubject(void)
+{
+ AppLogDebug("ENTER");
+ Panel* pSubjectPanel = static_cast<Panel*>(__pScrollPanel->
+ GetControl(L"IDC_PANEL_SUBJECT"));
+ int focusIndex = pSubjectPanel->GetControlCount() - 1;
+ SubjectControl* pSubject = (SubjectControl*) pSubjectPanel->GetControl(focusIndex);
+ pSubject->SetFocus();
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
}
void
if (msgData.IsMms())
{
#ifndef _DISABLE_MMS_FEATURE_
- // Load Subject
String subjectText = msgData.GetSubject();
if (subjectText.GetLength() > 0)
{
- AddSubjectField(subjectText);
+ // Load Subject
+ Panel* pSubjectPanel = static_cast<Panel*>(__pScrollPanel->GetControl(L"IDC_PANEL_SUBJECT"));
+ if( pSubjectPanel->GetControlCount()>0 )
+ {
+ //Set Subject
+ SubjectControl* pSubject = (SubjectControl*)pSubjectPanel->GetControl(0);
+ pSubject->SetText(subjectText);
+ }
+ else
+ {
+ AddSubjectField(subjectText);
+ }
}
- // Load attachement
+ // Load attachment
if (msgData.GetAttachmentCount() > 0)
{
+ Panel* pAttachPanel = static_cast<Panel*>(__pScrollPanel->
+ GetControl(L"IDC_PANEL_ATTACHEMENT"));
+ pAttachPanel->RemoveAllControls();
const ArrayList* pAttachList = msgData.GetAttachList();
for (int index = 0; index < pAttachList->GetCount(); index++)
{
{
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++)
+ // Assuming it won't be decrease page count, when try to preview message data.
+ // Reset and load remaining page data
+ for (int index = 0; index < pPageList->GetCount(); index++)
{
MmsPageData* pPageData = (MmsPageData*) pPageList->GetAt(index);
- MediaTextExpandEditArea* pComposePage = CreatePage(pPageData->GetBodyText());
+ MediaTextExpandEditArea* pComposePage = (MediaTextExpandEditArea*) pImageTextSlidePanel->GetControl(index);
+ // Reset old UI data
+ if( pComposePage)
+ {
+ pComposePage->ClearText();
+ }
+ else
+ {
+ // Create new page for display
+ pComposePage = CreatePage(pPageData->GetBodyText());
+ }
+ // Load page data
if (pComposePage)
{
pComposePage->SetText(pPageData->GetBodyText());
}
}
}
- //__pSendMessage->SetEnabled(true);
- GetParent()->SendUserEvent(REQUEST_ENABLE_DISABLE_SEND_BUTTON,null);
+ GetParent()->SendUserEvent(REQUEST_ENABLE_DISABLE_SEND_BUTTON, null);
#endif
}
else
MediaTextExpandEditArea* pComposeElement = (MediaTextExpandEditArea*)
pImageTextSlidePanel->GetControl(0);
pComposeElement->SetText(msgData.GetMessageText());
- //__pSendMessage->SetEnabled(true);
- GetParent()->SendUserEvent(REQUEST_ENABLE_DISABLE_SEND_BUTTON,null);
+ GetParent()->SendUserEvent(REQUEST_ENABLE_DISABLE_SEND_BUTTON, null);
}
+ __pScrollPanel->ScrollToBottom();
+ ShowComposeInfo();
AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
}
// Show Byte info
long long int size = GetMessageComposeSize();
//__pSendMessage->SetEnabled(size > 0);
- GetParent()->SendUserEvent(REQUEST_ENABLE_DISABLE_SEND_BUTTON,null);
+ GetParent()->SendUserEvent(REQUEST_ENABLE_DISABLE_SEND_BUTTON, null);
int sizeKb = size / SIZE_1KB;
if (sizeKb == 0) sizeKb = 1;
String mmsByteCount;
{
String msgText = GetSmsText();
//__pSendMessage->SetEnabled(msgText.GetLength() > 0);
- GetParent()->SendUserEvent(REQUEST_ENABLE_DISABLE_SEND_BUTTON,null);
+ GetParent()->SendUserEvent(REQUEST_ENABLE_DISABLE_SEND_BUTTON, null);
if (GetHeight() > GetMinimumSize().height)
{
//TODO: SLP API is throwing -9 in case of UCS2 type encodeing.
}
__pSendMessage->Draw();
__pComposeInfoLabel->Draw();
+ __pComposeInfoLabel->Invalidate(true);
AppLogDebug("EXIT: r= %s", GetErrorMessage(GetLastResult()));
return;
}
result
-MessageComposePanel::ChangeResolution(const String& sourcPath)
+MessageComposePanel::ChangeResolution(const String& sourcePath)
{
AppLogDebug("ENTER");
// 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);
+ Bitmap* pBitmap = pImage->DecodeN(sourcePath, BITMAP_PIXEL_FORMAT_ARGB8888);
if (pBitmap)
{
AppLogDebug("Image resolution( %d, %d )", pBitmap->GetWidth(), pBitmap->GetHeight());
}
else
{
- r = pImage->EncodeToFile(*pBitmap, IMG_FORMAT_JPG, sourcPath, true);
+ r = pImage->EncodeToFile(*pBitmap, IMG_FORMAT_JPG, sourcePath, true);
delete pBitmap;
delete pImage;
AppLogDebug("EXIT: r= %s", GetErrorMessage(GetLastResult()));
if (pBitmap->Scale(Dimension(destWidth, destHeight)) == E_SUCCESS)
{
- AppLogDebug("PATH = %S", sourcPath.GetPointer());
- r = pImage->EncodeToFile(*pBitmap, IMG_FORMAT_JPG, sourcPath, true);
+ AppLogDebug("PATH = %S", sourcePath.GetPointer());
+ r = pImage->EncodeToFile(*pBitmap, IMG_FORMAT_JPG, sourcePath, true);
}
delete pBitmap;
}
File::Copy(__pSelectFilePath, mmsDataPath, true);
__pSelectFilePath.Clear();
result r = E_SUCCESS;
- if (!IsSutitableCreationMode(mmsDataPath))
+ if (!IsSuitableCreationMode(mmsDataPath))
{
r = ChangeResolution(mmsDataPath);
}
{
if ((GetFileSize(mmsDataPath) > __remainSizeBytes))
{
- // Compress file file.
+ // Compress file.
String compressDataPath(App::GetInstance()->GetAppDataPath());
compressDataPath.Append(IDS_COMPRESS + File::GetFileName(mmsDataPath));
AppLogDebug("Compress data PATH: %S", compressDataPath.GetPointer());
}
bool
-MessageComposePanel::IsSutitableCreationMode(const String& filePath) const
+MessageComposePanel::IsSuitableCreationMode(const String& filePath) const
{
AppLogDebug("ENTER");
AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
{
AppLogDebug("ENTER");
// In case of SMS, need to check MMS use case
+ ClearText();
if (composeData.IsMms())
{
#ifndef _DISABLE_MMS_FEATURE_
}
}
//__pSendMessage->SetEnabled(true);
- GetParent()->SendUserEvent(REQUEST_ENABLE_DISABLE_SEND_BUTTON,null);
+ GetParent()->SendUserEvent(REQUEST_ENABLE_DISABLE_SEND_BUTTON, null);
#endif
}
else
MediaTextExpandEditArea* pComposeElement = (MediaTextExpandEditArea*)
pImageTextSlidePanel->GetControl(0);
pComposeElement->SetText(composeData.GetSmsBody());
- if(composeData.GetSmsBody().GetLength() > 0)
+ if (composeData.GetSmsBody().GetLength() > 0)
{
//__pSendMessage->SetEnabled(true);
- GetParent()->SendUserEvent(REQUEST_ENABLE_DISABLE_SEND_BUTTON,null);
+ GetParent()->SendUserEvent(REQUEST_ENABLE_DISABLE_SEND_BUTTON, null);
}
else
{
__pSendMessage->SetEnabled(false);
}
}
+ __pScrollPanel->ScrollToBottom();
AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
}
IList*
-MessageComposePanel::GetSelectedFileListN(const String& operationId, const IMap* pResultMap)
+MessageComposePanel::GetSelectedFileListN(const String& appId, const IMap* pResultMap)
{
AppLogDebug("ENTER");
ArrayList* pSelectedFileList = null;
- String* pSelectedFiles = (String*) pResultMap->GetValue(String(IDS_VALUE_KEY));
+ String* pSelectedFiles = null;
+ String contactsAppID(L"tizen.contacts");
+ if (appId.Equals(contactsAppID))
+ {
+ pSelectedFiles = (String*) pResultMap->GetValue(String(L"value"));
+ }
+ else
+ {
+ pSelectedFiles = (String*) pResultMap->GetValue(String(L"path"));
+ }
if (pSelectedFiles)
{
pSelectedFileList = new (std::nothrow) ArrayList();
for (int index = 0; index < tokenCount; index++)
{
strToken.GetNextToken(*pFilePath);
- pSelectedFileList->Add(pFilePath);
+ pSelectedFileList->Add(new (std::nothrow) String(*pFilePath));
}
}
else
{
pFilePath->Append(*pSelectedFiles);
- pSelectedFileList->Add(pFilePath);
+ pSelectedFileList->Add(new (std::nothrow) String(*pFilePath));
}
}
{
AppLogDebug("ENTER");
- if(__pSendMessage)
+ if (__pSendMessage)
{
__pSendMessage->SetEnabled(status);
Invalidate(true);
AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
}
-
-
, __displayTime(0)\r
, __networkStatus(-1)\r
, __isRead(true)\r
+ , __isMediaFilePresent(false)\r
, __messageDirection(0)\r
, __pAddressList(null)\r
, __attachmentCount(0)\r
- , __pThumbnailBitmap(null)\r
, __pAttachList(null)\r
, __pPageList(null)\r
{\r
__pAddressList->RemoveAll(true);\r
delete __pAddressList;\r
}\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
+\r
\r
AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
}\r
__subjectStr.Append(compseData.GetSubject());\r
// Intialize page list\r
__pPageList = new (std::nothrow) ArrayList();\r
+ __pPageList->Construct();\r
const ArrayList* pPageList = compseData.GetPageList();\r
- if (pPageList)\r
+ for(int count=0; count<pPageList->GetCount(); count++)\r
{\r
- __pPageList->Construct(*pPageList);\r
- }\r
- else\r
- {\r
- __pPageList->Construct();\r
+ MmsPageData* pMmmsPageData = (MmsPageData*)pPageList->GetAt(count);\r
+ __pPageList->Add(pMmmsPageData->CloneN());\r
}\r
}\r
else\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
pMsgData->__messageBody = this->__messageBody;\r
pMsgData->__groupName = this->__groupName;\r
pMsgData->__timeStamp = this->__timeStamp;\r
+ // For MMS\r
+ pMsgData->__attachmentCount = this->__attachmentCount;\r
+ pMsgData->__thumbnailPath = this->__thumbnailPath;\r
+ pMsgData->__subjectStr = this->__subjectStr;\r
+ pMsgData->__pAttachList = new (std::nothrow) ArrayList();\r
+ pMsgData->__pAttachList->Construct();\r
+ for (int index = 0; index < this->__pAttachList->GetCount(); index++)\r
+ {\r
+ String* pFilePath = (String*)__pAttachList->GetAt(index);\r
+ pMsgData->__pAttachList->Add(new (std::nothrow) String(*pFilePath));\r
+ }\r
+ pMsgData->__pPageList = new (std::nothrow) ArrayList();\r
+ pMsgData->__pPageList->Construct();\r
+ for (int index = 0; index < this->__pAttachList->GetCount(); index++)\r
+ {\r
+ MmsPageData* pMmmsPageData = (MmsPageData*)__pPageList->GetAt(index);\r
+ pMsgData->__pPageList->Add(pMmmsPageData->CloneN());\r
+ }\r
}\r
\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
return __threadId;\r
}\r
\r
+bool\r
+MessageData::IsFilePresent(void) const\r
+{\r
+ if (__isMediaFilePresent || GetAttachmentCount())\r
+ {\r
+ return true;\r
+ }\r
+ return false;\r
+}\r
+\r
result\r
MessageData::InitMmsData(msg_struct_t pMessageInfo, bool mmsDetailInfo)\r
{\r
msg_get_int_value(pMediaInfo, MSG_MMS_MEDIA_TYPE_INT, &mediaType);\r
if (mediaType == MMS_SMIL_MEDIA_IMG)\r
{\r
+ __isMediaFilePresent = true;\r
pPageData->SetImagePath(GetMediaPath(pMediaInfo));\r
}\r
else if ((mediaType == MMS_SMIL_MEDIA_VIDEO) ||\r
(mediaType == MMS_SMIL_MEDIA_IMG_OR_VIDEO))\r
{\r
+ __isMediaFilePresent = true;\r
pPageData->SetVideoPath(GetMediaPath(pMediaInfo));\r
}\r
else if (mediaType == MMS_SMIL_MEDIA_AUDIO)\r
{\r
+ __isMediaFilePresent = true;\r
pPageData->SetAudioPath(GetMediaPath(pMediaInfo));\r
}\r
else if (mediaType == MMS_SMIL_MEDIA_TEXT)\r
{\r
String pageBodyText;\r
+ String pageMmsBodyText;\r
char* pFilePath = new (std::nothrow) char[MSG_FILEPATH_LEN_MAX];\r
if (pFilePath)\r
{\r
delete[] pFilePath;\r
continue;\r
}\r
- file.Read(pageBodyText);\r
+ r = E_SUCCESS;\r
+\r
+ while (r != E_END_OF_FILE)\r
+ {\r
+ r = file.Read(pageBodyText);\r
+ pageMmsBodyText.Append(pageBodyText);\r
+ }\r
delete[] pFilePath;\r
}\r
- pPageData->SetBodyText(pageBodyText);\r
+ pPageData->SetBodyText(pageMmsBodyText);\r
}\r
else\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
+ pContact->GetValue(CONTACT_PROPERTY_ID_DISPLAY_NAME, contactName);\r
IList* pPhoneNumberList = pContact->GetValuesN(CONTACT_MPROPERTY_ID_PHONE_NUMBERS);\r
if (pPhoneNumberList != null)\r
{\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
+ if (!__pActiveSearchContactNumbersList->Contains(pPhoneNumber->GetPhoneNumber()))\r
+ {\r
+ __pActiveSearchNamesList->Add((new String(contactName)));\r
+ __pActiveSearchContactNumbersList->Add((new String(pPhoneNumber->GetPhoneNumber())));\r
+ }\r
+ else\r
+ {\r
+ if (!__pActiveSearchNamesList->Contains(contactName))\r
+ {\r
+ __pActiveSearchNamesList->Add((new String(contactName)));\r
+ __pActiveSearchContactNumbersList->Add((new String(pPhoneNumber->GetPhoneNumber())));\r
+ }\r
+ }\r
}\r
}\r
delete pEnum;\r
// limitations under the License.
//
+#include <msg.h>
#include <FBaseUtilStringTokenizer.h>
#include <FSocial.h>
MessagesApp::OnAppInitializing(AppRegistry& appRegistry)
{
AppLogDebug("ENTER");
+
+ msg_error_t err = CheckMesageServiceAvailable();
+ if(err != MSG_SUCCESS)
+ {
+ CommonUtil::ShowErrorInfo(err);
+ return false;
+ }
__pFacadeManager = new (std::nothrow) FacadeManager();
result r = __pFacadeManager->Initialize();
- if (!__pFacadeManager || r != E_SUCCESS)
+ if ( r == E_FAILURE)
{
AppLogDebug("Unable to initialize MsgFacadeManager");
return false;
{
AppLogDebug("ENTER");
+ msg_error_t err = CheckMesageServiceAvailable();
+ if(err != MSG_SUCCESS)
+ {
+ CommonUtil::ShowErrorInfo(err);
+ return false;
+ }
// 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();
MessagesApp::OnForeground(void)
{
AppLogDebug("ENTER");
+ Frame* pAppFrame = UiApp::GetInstance()->GetFrame(IDC_FRAME_NAME);
+ if (pAppFrame)
+ {
+ Form* pCurrentForm = pAppFrame->GetCurrentForm();
+ if (pCurrentForm)
+ {
+ RequestId requestId = REQUEST_UPDATE_CONV_LIST;
+ pCurrentForm->SendUserEvent(requestId, null);
+ }
+ }
AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
return;
}
MessagesApp::OnBackground(void)
{
AppLogDebug("ENTER");
+ Frame* pAppFrame = UiApp::GetInstance()->GetFrame(IDC_FRAME_NAME);
+ if (pAppFrame)
+ {
+ Form* pCurrentForm = pAppFrame->GetCurrentForm();
+ if (pCurrentForm)
+ {
+ RequestId requestId = REQUEST_PAUSE_PREVIEW_VIEWER;
+ pCurrentForm->SendUserEvent(requestId, null);
+ }
+ }
AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
return;
}
AddressInfo* pNewAddrInfo = new (std::nothrow) AddressInfo();
pNewAddrInfo->phoneNumber.Append(phoneNumber);
pNewAddrInfo->needToValidate = false;
+ pNewAddrInfo->isAddFromContacts = true;
// Get recipient name
GetRecipientName(*pNewAddrInfo, phoneNumber);
composeDta.AddRecipient(pNewAddrInfo);
AddressInfo* pNewAddrInfo = new (std::nothrow) AddressInfo();
pNewAddrInfo->phoneNumber.Append(recipientsStr);
pNewAddrInfo->needToValidate = false;
+ pNewAddrInfo->isAddFromContacts = true;
// Get recipient name
- GetRecipientName(*pNewAddrInfo,recipientsStr);
+ GetRecipientName(*pNewAddrInfo, recipientsStr);
composeDta.AddRecipient(pNewAddrInfo);
}
else
if (!__pAddressBook)
{
__pAddressBook = AddressbookManager::GetInstance()->GetAddressbookN();
- if (__pAddressBook)
- {
- __pAddressBook->SetEventListener(null);
- }
}
- if(__pAddressBook)
+ if (__pAddressBook)
{
IList* pRecipientNameList = __pAddressBook->SearchContactsByPhoneNumberN(strPhoneNumber);
if (pRecipientNameList)
{
- Contact* pRecipientContact = ContactUtility::GetContact(pRecipientNameList,strPhoneNumber);
- if(pRecipientContact)
+ Contact* pRecipientContact = ContactUtility::GetContact(pRecipientNameList, strPhoneNumber);
+ if (pRecipientContact)
{
- pRecipientContact->GetValue(CONTACT_PROPERTY_ID_FIRST_NAME, addressInfo.displayName);
+ pRecipientContact->GetValue(CONTACT_PROPERTY_ID_DISPLAY_NAME, addressInfo.displayName);
}
pRecipientNameList->RemoveAll(true);
delete pRecipientNameList;
}
}
- if(addressInfo.displayName.CompareTo(String(IDS_BLANK)) == 0)
+ if (addressInfo.displayName.CompareTo(String(IDS_BLANK)) == 0)
{
addressInfo.displayName.Append(strPhoneNumber);
+ addressInfo.isAddFromContacts = false;
}
AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
return;
}
+int
+MessagesApp::CheckMesageServiceAvailable(void) const
+{
+ msg_handle_t pMsgHandle;
+ msg_error_t err = msg_open_msg_handle(&pMsgHandle);
+ msg_close_msg_handle(&pMsgHandle);
+ return err;
+}
#include <FApp.h>\r
#include <FBase.h>\r
#include <FMedia.h>\r
+#include <FSocial.h>\r
#include <FSystem.h>\r
#include <FUiCtrlFooter.h>\r
#include <FUiCtrlHeader.h>\r
#include "MsgAttachmentSavePopup.h"\r
#include "MsgBaseCustomPopup.h"\r
#include "MsgBitmapUtility.h"\r
+#include "MsgContactList.h"\r
#include "MsgContactUtility.h"\r
#include "MsgCommonUtil.h"\r
#include "MsgMessageData.h"\r
#include "MsgConversationPresentationModel.h"\r
#include "MsgTypes.h"\r
\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::Graphics;\r
+using namespace Tizen::Media;\r
+using namespace Tizen::Social;\r
+using namespace Tizen::System;\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
+const wchar_t* IDS_TIZEN_MEDIA = L"http://tizen.org/setting/sound.media.volume";\r
\r
MmsDetailForm::MmsDetailForm(void)\r
- : __pMessageData(null)\r
+ : __pConContactList(null)\r
+ , __pMessageData(null)\r
, __pMsgAttachListPanel(null)\r
, __pAttachFileArray(null)\r
+ , __pRecipientNameList(null)\r
, __pGallery(null)\r
, __pMmsTextBox(null)\r
, __pPlayControlPanel(null)\r
, __pTimeElapsedLabel(null)\r
, __pPageNumberLabel(null)\r
, __pAttachFilesInfoLabel(null)\r
+ , __pList(null)\r
, __pMessageDetailsPopup(null)\r
, __pDeletePopup(null)\r
, __pVolumePopup(null)\r
, __pContextMenu(null)\r
, __pContextMenuText(null)\r
, __pMediaVolumeSlider(null)\r
+ , __pScrollPanel(null)\r
, __pOverlay(null)\r
, __pPlayer(null)\r
, __pSaveAttachmentsPopup(null)\r
, __pTimerforVolumePopup(null)\r
, __pTimerForControlBar(null)\r
, __mmsFormType(MMS_FORM_NORMAL)\r
+ , __recipientPhoneNumber(IDS_BLANK)\r
{\r
//Empty implementation\r
}\r
{\r
delete __pOverlay;\r
}\r
-\r
+ if(__pConContactList)\r
+ {\r
+ delete __pConContactList;\r
+ }\r
+ if(__pRecipientNameList)\r
+ {\r
+ __pRecipientNameList->RemoveAll(true);\r
+ delete __pRecipientNameList;\r
+ }\r
AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
}\r
\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
+ ButtonItem btnLeft;\r
+ btnLeft.Construct(BUTTON_ITEM_STYLE_TEXT, IDA_MORE);\r
+ Bitmap* pBitMap = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_MORE);\r
+ btnLeft.SetIcon(BUTTON_ITEM_STATUS_NORMAL, pBitMap);\r
+ pBitMap = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_MORE_PRESSED);\r
+ btnLeft.SetIcon(BUTTON_ITEM_STATUS_PRESSED, pBitMap);\r
+ pFooter->SetButton(BUTTON_POSITION_LEFT, btnLeft);\r
}\r
pFooter->SetBackButton();\r
}\r
}\r
\r
void\r
+MmsDetailForm::SetHeader(void)\r
+{\r
+ if(__mmsFormType == MMS_FORM_PREVIEW)\r
+ {\r
+ Header* pHeader = GetHeader();\r
+ pHeader->RemoveAllItems();\r
+ pHeader->SetStyle(HEADER_STYLE_TITLE);\r
+ pHeader->SetTitleText(__pMessageData->GetDisplayName());\r
+ }\r
+ else\r
+ {\r
+ bool showAttachmentIcon = false;\r
+ if (__pMessageData->GetAttachmentCount())\r
+ {\r
+ showAttachmentIcon = true;\r
+ }\r
+ else if (__pMessageData->GetPageCount())\r
+ {\r
+ for (int i = 0; i < __pMessageData->GetPageCount(); i++)\r
+ {\r
+ if (GetSlideType(i) != TextSlide && GetSlideType(i) != SubjectSlide)\r
+ {\r
+ showAttachmentIcon = true;\r
+ }\r
+ }\r
+ }\r
+ GetHeader()->RemoveAllItems();\r
+ GetHeader()->RemoveAllButtons();\r
+ if (showAttachmentIcon)\r
+ {\r
+ ButtonItem btnLeft;\r
+ btnLeft.Construct(BUTTON_ITEM_STYLE_TEXT, IDA_SAVE_ATTACHMENT);\r
+ Bitmap* pBitMap = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_SAVE_ATTACHMENT);\r
+ btnLeft.SetIcon(BUTTON_ITEM_STATUS_NORMAL, pBitMap);\r
+ pBitMap = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_SAVE_ATTACHMENT_PRESSED);\r
+ btnLeft.SetIcon(BUTTON_ITEM_STATUS_PRESSED, pBitMap);\r
+ GetHeader()->SetButton(BUTTON_POSITION_RIGHT, btnLeft);\r
+ }\r
+ // Set title\r
+ HeaderItem headerLeftItem;\r
+ headerLeftItem.Construct(IDA_MMSDETAIL_FORM_HEADER_TITLEITEM);\r
+ const ArrayList* pNameList = __pMessageData->GetAddressList();\r
+ if(pNameList)\r
+ {\r
+ String headerTitleName(IDS_BLANK);\r
+ AddressInfo* pAddressInfo = (AddressInfo *)pNameList->GetAt(0);\r
+ if(pAddressInfo)\r
+ {\r
+ headerTitleName.Append(pAddressInfo->displayName);\r
+ __recipientPhoneNumber.Clear();\r
+ __recipientPhoneNumber.Append(pAddressInfo->phoneNumber);\r
+ if(pNameList->GetCount() > 1)\r
+ {\r
+ headerTitleName.Append(" + ");\r
+ headerTitleName.Append(pNameList->GetCount() - 1);\r
+ }\r
+ }\r
+ headerLeftItem.SetText(headerTitleName);\r
+ }\r
+ GetHeader()->AddItem(headerLeftItem);\r
+ GetHeader()->Invalidate(true);\r
+ }\r
+}\r
+\r
+void\r
MmsDetailForm::OnUserEventReceivedN(RequestId requestId, IList* pArgs)\r
{\r
AppLogDebug("ENTER");\r
}\r
}\r
break;\r
+\r
+ case REQUEST_PAUSE_PREVIEW_VIEWER:\r
+ {\r
+ if (__bIsPlaying)\r
+ {\r
+ __bIsPlaying = false;\r
+ PauseSlideShow();\r
+ }\r
}\r
+ break;\r
+\r
+ case REQUEST_UPDATE_CONV_LIST:\r
+ {\r
+ int messageEntryId = __pMessageData->GetEntryId();\r
+ if(__pMessageData)\r
+ {\r
+ delete __pMessageData;\r
+ __pMessageData = null;\r
+ }\r
\r
+ if(__pRecipientNameList)\r
+ {\r
+ delete __pRecipientNameList;\r
+ __pRecipientNameList = null;\r
+ }\r
+ MessagePresentationModel* pMsgPrModel = MessagePresentationModel::GetInstance();\r
+ if(pMsgPrModel)\r
+ {\r
+ __pMessageData = pMsgPrModel->GetMessageDataByIdN(messageEntryId);\r
+ if(__pMessageData)\r
+ {\r
+ SetHeader();\r
+ PrepareRecipientList();\r
+ if(__pMessageData->GetAddressList()->GetCount() > 1)\r
+ {\r
+ if(__pList)\r
+ {\r
+ ShowRecipientList(true);\r
+ }\r
+ }\r
+ }\r
+ }\r
+ }\r
+ break;\r
+ }\r
// Release resource\r
if (pArgs)\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
+\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
+ __pScrollPanel = static_cast<ScrollPanel*>(GetControl(L"IDC_SCROLLPANEL"));\r
+\r
+ if (__pScrollPanel)\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
+ __pScrollPanel->AddTouchEventListener(*this);\r
+ __pMmsTextBox = static_cast<TextBox*>(__pScrollPanel->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
+ Color color = __pMmsTextBox->GetTextColor(TEXT_BOX_TEXT_COLOR_NORMAL);\r
+ __pMmsTextBox->SetTextColor(TEXT_BOX_TEXT_COLOR_DISABLED, color);\r
+\r
+ // TODO: If touchevent lsitener is added scroll do not work.\r
+ __pMmsTextBox->SetShowState(true);\r
+ __pMmsTextBox->AddTouchEventListener(*this);\r
+ __pMmsTextBox->SetEnabled(false);\r
+ }\r
+ __pGallery = static_cast<Gallery*>(__pScrollPanel->GetControl(L"IDC_GALLERY_MMS_IMAGE"));\r
+ __pGallery->SetShowState(false);\r
+ __pGallery->AddTouchEventListener(*this);\r
}\r
\r
__pPlayControlPanel = static_cast<Panel*>(GetControl(L"IDC_PLAY_CONTROLS_PANEL"));\r
{\r
//__pPlayControlPanel->SetShowState(false);\r
__pPlayControlPanel->SetBackgroundColor(COLOR_PANEL_BORDER);\r
+ SetControlAlwaysOnTop(*__pPlayControlPanel, true);\r
Button* pVolumeButton = static_cast<Button*>(__pPlayControlPanel->GetControl(L"IDC_VOLUME_BUTTON"));\r
if (pVolumeButton)\r
{\r
+ pVolumeButton->SetColor(BUTTON_STATUS_PRESSED,COLOR_PANEL_BORDER);\r
+ pVolumeButton->SetColor(BUTTON_STATUS_NORMAL,COLOR_PANEL_BORDER);\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->SetColor(BUTTON_STATUS_PRESSED,COLOR_PANEL_BORDER);\r
+ __pPreviousButton->SetColor(BUTTON_STATUS_NORMAL,COLOR_PANEL_BORDER);\r
+ __pPreviousButton->SetColor(BUTTON_STATUS_DISABLED,COLOR_PANEL_BORDER);\r
__pPreviousButton->SetActionId(IDA_PREVIOUS);\r
__pPreviousButton->AddActionEventListener(*this);\r
- __pPreviousButton->SetSize(W_PLAYCONTROL_BUTTON, H_PLAYCONTROL_BUTTON);\r
+ Bitmap* pBitMap = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_SMIL_PREVIOUS);\r
+ if (pBitMap)\r
+ {\r
+ pBitMap->Scale(Dimension(W_PLAYCONTROL_BUTTON, H_PLAYCONTROL_BUTTON));\r
+ }\r
+ __pPreviousButton->SetDisabledBitmap(Point(0,0), *pBitMap);\r
\r
}\r
__pPlayPausebutton = static_cast<Button*>(__pPlayControlPanel->GetControl(L"IDC_PLAY_PAUSE_BUTTON"));\r
if (__pPlayPausebutton)\r
{\r
+ __pPlayPausebutton->SetColor(BUTTON_STATUS_PRESSED,COLOR_PANEL_BORDER);\r
+ __pPlayPausebutton->SetColor(BUTTON_STATUS_NORMAL,COLOR_PANEL_BORDER);\r
+ __pPlayPausebutton->SetColor(BUTTON_STATUS_DISABLED,COLOR_PANEL_BORDER);\r
__pPlayPausebutton->SetActionId(IDA_PLAY);\r
__pPlayPausebutton->AddActionEventListener(*this);\r
__pPlayPausebutton->SetSize(W_PLAYCONTROL_BUTTON, H_PLAYCONTROL_BUTTON);\r
{\r
pBitMap->Scale(Dimension(W_PLAYCONTROL_BUTTON, H_PLAYCONTROL_BUTTON));\r
}\r
- __pPlayPausebutton->SetNormalBitmap(Point(0, 0), *pBitMap);\r
+ __pPlayPausebutton->SetNormalBackgroundBitmap(*pBitMap);\r
+ __pPlayPausebutton->SetPressedBackgroundBitmap(*pBitMap);\r
}\r
__pNextbutton = static_cast<Button*>(__pPlayControlPanel->GetControl(L"IDC_NEXT_BUTTON"));\r
if (__pNextbutton)\r
{\r
+ __pNextbutton->SetColor(BUTTON_STATUS_PRESSED,COLOR_PANEL_BORDER);\r
+ __pNextbutton->SetColor(BUTTON_STATUS_NORMAL,COLOR_PANEL_BORDER);\r
+ __pNextbutton->SetColor(BUTTON_STATUS_DISABLED,COLOR_PANEL_BORDER);\r
__pNextbutton->SetActionId(IDA_NEXT);\r
__pNextbutton->AddActionEventListener(*this);\r
- __pNextbutton->SetSize(W_PLAYCONTROL_BUTTON, H_PLAYCONTROL_BUTTON);\r
+ Bitmap* pBitMap = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_SMIL_NEXT);\r
+ if (pBitMap)\r
+ {\r
+ pBitMap->Scale(Dimension(W_PLAYCONTROL_BUTTON, H_PLAYCONTROL_BUTTON));\r
+ }\r
+ __pNextbutton->SetDisabledBitmap(Point(0,0), *pBitMap);\r
\r
}\r
__pProgress = static_cast<Progress*>(__pPlayControlPanel->GetControl(L"IDC_PROGRESS"));\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
+ SetHeader();\r
+ SetFooter();\r
+ PrepareRecipientList();\r
+ // Load data to UI from message data\r
+ if (__pMessageData)\r
+ {\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
- const String mmsBodyText = pPageData->GetBodyText();\r
- if (__pMmsTextBox && !i)\r
+ MmsPageData* pPageData = static_cast<MmsPageData*>(pAttachList->GetAt(i));\r
+ if (pPageData)\r
{\r
- __pMmsTextBox->SetText(mmsBodyText);\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
- __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
+ if (__pMessageData->GetAttachmentCount())\r
{\r
- strTotaltime = (L"00:0");\r
+ __totalDuration = __totalDuration + 5;\r
+ __pageCountOfCurrentMessageData++;\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
+ //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
+ SetTotalTimeDuration(__totalDuration);\r
+ if (__pPageNumberLabel)\r
+ {\r
+ String slideNumber(L"1/");\r
+ slideNumber.Append(__pageCountOfCurrentMessageData);\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
- __pPreviousButton->SetEnabled(false);\r
}\r
UpdateForm(GetSlideType(__currentPage));\r
StartSlideShow();\r
__pProgress->SetValue(__timeElapsed);\r
__pProgress->RequestRedraw(true);\r
}\r
- UpdateForm(GetSlideType(__currentPage));\r
UpdateMmsBodyText();\r
+ UpdateForm(GetSlideType(__currentPage));\r
StartSlideShow();\r
}\r
else\r
}\r
__timeElapsed = timeToRefreshGallery;\r
__currentPage++;\r
- UpdateForm(GetSlideType(__currentPage));\r
UpdateMmsBodyText();\r
+ UpdateForm(GetSlideType(__currentPage));\r
UpdateTimeElapsedLabel(__timeElapsed);\r
UpdateSlideNumber(__currentPage + 1);\r
if (__pPreviousButton)\r
}\r
__timeElapsed = timeToRefreshGallery;\r
__currentPage--;\r
- UpdateForm(GetSlideType(__currentPage));\r
UpdateMmsBodyText();\r
+ UpdateForm(GetSlideType(__currentPage));\r
UpdateTimeElapsedLabel(__timeElapsed);\r
UpdateSlideNumber(__currentPage + 1);\r
if (!__currentPage)\r
\r
case IDA_MORE:\r
{\r
- ShowMoreContextMenu();\r
+ if(__pList && __pList->GetShowState())\r
+ {\r
+ __pList->SetShowState(false);\r
+ }\r
+ else\r
+ {\r
+ ShowMoreContextMenu();\r
+ }\r
}\r
break;\r
\r
case IDA_SAVE_ATTACHMENT:\r
{\r
- MessagePresentationModel* pMsgPrModel = MessagePresentationModel::GetInstance();\r
- if (pMsgPrModel)\r
+ if(__pList && __pList->GetShowState())\r
+ {\r
+ __pList->SetShowState(false);\r
+ }\r
+ else\r
{\r
- // Transfer ownership to popup\r
- MessageData* pMessageData = pMsgPrModel->GetMessageDataByIdN(__pMessageData->GetEntryId());\r
- if (pMessageData)\r
+ MessagePresentationModel* pMsgPrModel = MessagePresentationModel::GetInstance();\r
+ if (pMsgPrModel)\r
{\r
- __pSaveAttachmentsPopup = new (std::nothrow) AttachementSavePopup(*this, pMessageData);\r
- //pMessageData = null; // Transfer ownership\r
- __pSaveAttachmentsPopup->Construct();\r
- __pSaveAttachmentsPopup->Show();\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
}\r
__pDeletePopup->SetShowState(false);\r
delete __pDeletePopup;\r
__pDeletePopup = null;\r
-\r
- ConversationPresentationModel* pConvPrModel = ConversationPresentationModel::GetInstance();\r
- if (pConvPrModel)\r
+ MessagePresentationModel* pMsgPrModel = MessagePresentationModel::GetInstance();\r
+ if (pMsgPrModel)\r
{\r
- pConvPrModel->Delete(__pMessageData->GetEntryId(), REQUEST_DELETE_MESSAGE);\r
+ pMsgPrModel->Delete(__pMessageData->GetEntryId(), REQUEST_DELETE_MESSAGE);\r
OnFormBackRequested(*this);\r
}\r
}\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
+ bool showRecpList(true);\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
+ const ArrayList* pNameList = __pMessageData->GetAddressList();\r
+ if(pNameList)\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
+ if(pNameList->GetCount() == 1)\r
+ {\r
+ ShowRecipientContextMenu(source);\r
+ }\r
+ else if(pNameList->GetCount() > 1)\r
+ {\r
+ if(__pList)\r
+ {\r
+ showRecpList = !(__pList->GetShowState());\r
+ }\r
+ ShowRecipientList(showRecpList);\r
+ }\r
}\r
-\r
- __pContextMenuText->AddActionEventListener(*this);\r
- __pContextMenuText->SetShowState(true);\r
- __pContextMenuText->Show();\r
}\r
break;\r
\r
{\r
if (CommonUtil::IsSimAvailable())\r
{\r
- ContactUtility::VoiceCall(__pMessageData->GetDisplayName());\r
+ ContactUtility::VoiceCall(__recipientPhoneNumber);\r
}\r
else\r
{\r
}\r
break;\r
\r
+ case IDA_CONVERSATION_FORM_ADD_CONTACT:\r
+ {\r
+ ContactUtility::AddContact(__recipientPhoneNumber);\r
+ }\r
+ break;\r
+\r
case IDA_CONVERSATION_FORM_VIEW_CONTACT:\r
{\r
- ContactUtility::AddContact(__pMessageData->GetDisplayName());\r
+ ContactUtility::ViewContact(__recipientPhoneNumber);\r
}\r
break;\r
\r
case IDA_CONVERSATION_FORM_BLOCK:\r
{\r
- BlockPopup(__pMessageData->GetDisplayName());\r
+ BlockPopup(__recipientPhoneNumber);\r
}\r
break;\r
\r
case IDA_PHONENUMBER_BLOCK_OK:\r
{\r
SettingPresentationModel* pSettingPrModel = SettingPresentationModel::GetInstance();\r
- pSettingPrModel->AddToFilter(__pMessageData->GetDisplayName(), 1);\r
+ pSettingPrModel->AddToFilter(__recipientPhoneNumber, 1);\r
pSettingPrModel->RefreshSpamFilterList();\r
if (__pBlockPopup)\r
{\r
\r
case IDA_CONVERSATION_FORM_UNBLOCK:\r
{\r
- UnBlockPhoneNumber(__pMessageData->GetDisplayName());\r
+ UnBlockPhoneNumber(__recipientPhoneNumber);\r
}\r
break;\r
\r
return;\r
}\r
\r
+void\r
+MmsDetailForm::PrepareRecipientList(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ if (__pRecipientNameList == null)\r
+ {\r
+ __pRecipientNameList = new (std::nothrow) ArrayList();\r
+ if (__pRecipientNameList)\r
+ {\r
+ __pRecipientNameList->Construct();\r
+ ConversationPresentationModel* pConvPrModel = ConversationPresentationModel::GetInstance();\r
+ if (pConvPrModel)\r
+ {\r
+ ArrayList* pContactList = pConvPrModel->GetRecipientDetailsListN(__pMessageData->GetThreadId());\r
+ if (pContactList)\r
+ {\r
+ for (int i = 0; i < pContactList->GetCount(); i++)\r
+ {\r
+ ContactDetails* recipientDetails = static_cast<ContactDetails*>(pContactList->GetAt(i));\r
+ ContactDetails* contactDetails = new (std::nothrow) ContactDetails();\r
+ contactDetails->contactName = recipientDetails->contactName;\r
+ contactDetails->contactNumber = recipientDetails->contactNumber;\r
+ __pRecipientNameList->Add(contactDetails);\r
+ }\r
+ }\r
+ }\r
+ }\r
+ }\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
+\r
+\r
+void\r
+MmsDetailForm::ShowRecipientList(bool value)\r
+{\r
+ AppLogDebug("ENTER");\r
+ \r
+ if(value)\r
+ {\r
+ if(!__pList)\r
+ {\r
+ const ArrayList* pNameList = __pMessageData->GetAddressList();\r
+ int height = H_LIST_ITEM_128PX * 3;\r
+ if(pNameList->GetCount() < 3)\r
+ {\r
+ height = pNameList->GetCount() * H_LIST_ITEM_128PX;\r
+ }\r
+ __pConContactList = new (std::nothrow) ContactList();\r
+ __pConContactList->Construct(__pRecipientNameList);\r
+\r
+ Rectangle rect = GetClientAreaBounds();\r
+ __pList = new ( std::nothrow ) ListView();\r
+ __pList->Construct(Rectangle(MARGIN_10PX * 5, 0, W_POPUP_CONTROL, height), true, SCROLL_STYLE_FADE_OUT);\r
+ __pList->SetBackgroundColor(Color::GetColor(COLOR_ID_WHITE));\r
+\r
+ __pList->AddListViewItemEventListener(*__pConContactList);\r
+ __pList->SetItemProvider(*__pConContactList);\r
+\r
+ AddControl(*__pList);\r
+ }\r
+ __pConContactList->UpdateContactListDetails(__pRecipientNameList);\r
+ __pList->UpdateList();\r
+ __pList->SetShowState(true);\r
+\r
+ }\r
+ else\r
+ {\r
+ if(__pConContactList)\r
+ {\r
+ delete __pConContactList;\r
+ __pConContactList = null;\r
+ }\r
+ if(__pList)\r
+ {\r
+ RemoveControl(*__pList);\r
+ __pList = null;\r
+ }\r
+ }\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
+\r
+result\r
+MmsDetailForm::ShowRecipientContextMenu(const Control& source)\r
+{\r
+ String strText;\r
+ int index;\r
+ if (__pContextMenuText)\r
+ {\r
+ delete __pContextMenuText;\r
+ __pContextMenuText = null;\r
+ }\r
+ __pContextMenuText = new (std::nothrow) ContextMenu();\r
+ __pContextMenuText->Construct(Point(source.GetWidth()/4,source.GetHeight()), CONTEXT_MENU_STYLE_LIST);\r
+ __pContextMenuText->SetColor(Color::GetColor(COLOR_ID_WHITE));\r
+ __pContextMenuText->SetItemTextColor(CONTEXT_MENU_ITEM_STATUS_NORMAL,Color::GetColor(COLOR_ID_BLACK));\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_COM_BODY_VOICE_CALL", strText);\r
+ __pContextMenuText->AddItem(strText, IDA_CONVERSATION_FORM_VOICE_CALL);\r
+ Addressbook* pAddressBook = AddressbookManager::GetInstance()->GetAddressbookN();\r
+ if(pAddressBook)\r
+ {\r
+ const ArrayList* pNameList = __pMessageData->GetAddressList();\r
+ AddressInfo* pAddressInfo = (AddressInfo *)pNameList->GetAt(0);\r
+ IList* pRecipientNameList = pAddressBook->SearchContactsByPhoneNumberN(pAddressInfo->phoneNumber);\r
+ if(pRecipientNameList && pRecipientNameList->GetCount() > 0)\r
+ {\r
+ Contact* pRecipientContact = ContactUtility::GetContact(pRecipientNameList, pAddressInfo->phoneNumber);\r
+ if (pRecipientContact)\r
+ {\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGC_OPT_VIEW_CONTACT", strText);\r
+ __pContextMenuText->AddItem(strText, IDA_CONVERSATION_FORM_VIEW_CONTACT);\r
+ }\r
+ else\r
+ {\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_COM_OPT_ADD_CONTACT", strText);\r
+ __pContextMenuText->AddItem(strText, IDA_CONVERSATION_FORM_ADD_CONTACT);\r
+ }\r
+ }\r
+ else\r
+ {\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_COM_OPT_ADD_CONTACT", strText);\r
+ __pContextMenuText->AddItem(strText, IDA_CONVERSATION_FORM_ADD_CONTACT);\r
+ }\r
+ delete pRecipientNameList;\r
+ delete pAddressBook;\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
+ __pContextMenuText->AddActionEventListener(*this);\r
+ __pContextMenuText->SetShowState(true);\r
+ __pContextMenuText->Show();\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return E_SUCCESS;\r
+}\r
+\r
MmsDetailForm::SlideType\r
MmsDetailForm::GetSlideType(int slideNumber)\r
{\r
{\r
__pPlayer->Stop();\r
__pPlayer->Close();\r
+ delete __pPlayer;\r
+ __pPlayer = null;\r
+ }\r
+ if (__pOverlay)\r
+ {\r
+ delete __pOverlay;\r
+ __pOverlay = null;\r
}\r
if (__pMsgAttachListPanel)\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
+ int linecount = __pMmsTextBox->GetLineCount();\r
+ __pMmsTextBox->SetBounds(0, 500,__pMmsTextBox->GetWidth(), 80 + 57* (linecount-1));\r
+// __pScrollPanel->SetPosition(0, 520);// __pMmsTextBox->GetWidth(), __pMmsTextBox->GetHeight());\r
+\r
}\r
break;\r
\r
case VideoSlide:\r
- case AudioSlide:\r
{\r
if (__pGallery)\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
+ int linecount = __pMmsTextBox->GetLineCount();\r
+ __pMmsTextBox->SetBounds(0, 356, __pMmsTextBox->GetWidth(), 80 + 57* (linecount-1));\r
+ }\r
+ }\r
+ break;\r
+\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 (!__pPlayer)\r
+ {\r
+ __pPlayer = new (std::nothrow) Player();\r
+ __pPlayer->Construct(*this, null);\r
+ }\r
+ if (__pOverlay)\r
+ {\r
+ delete __pOverlay;\r
+ __pOverlay = null;\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
+ AppLogDebug("Result is ");\r
+ }\r
+ else\r
+ {\r
+ const String filePath = pPageData->GetAudioPath();\r
+ __pPlayer->OpenFile(filePath, false);\r
+ }\r
__pPlayer->SetLooping(false);\r
__pPlayer->Play();\r
+ AppLogDebug("Result is ");\r
}\r
}\r
if (__pMmsTextBox)\r
{\r
- __pMmsTextBox->SetBounds(0, 356, __pMmsTextBox->GetWidth(), __pMmsTextBox->GetHeight() * 2);\r
+ int linecount = __pMmsTextBox->GetLineCount();\r
+ __pMmsTextBox->SetBounds(0, 84, __pMmsTextBox->GetWidth(), 80 + 57* (linecount-1));\r
}\r
}\r
break;\r
{\r
__pPlayer->Stop();\r
__pPlayer->Close();\r
+ delete __pPlayer;\r
+ __pPlayer = null;\r
+ }\r
+ if (__pOverlay)\r
+ {\r
+ delete __pOverlay;\r
+ __pOverlay = null;\r
}\r
if (__pGallery)\r
{\r
{\r
__pMsgAttachListPanel = new (std::nothrow) AttachListPanel(__pMessageData);\r
__pMsgAttachListPanel->Construct();\r
+ AddControl(*__pMsgAttachListPanel);\r
__pMsgAttachListPanel->SetPosition(16, 146);\r
+ __pMsgAttachListPanel->SetPanelSize();\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
+ int linecount = __pMmsTextBox->GetLineCount();\r
+ __pMmsTextBox->SetBounds(0, 520, __pMmsTextBox->GetWidth(), 80 + 57* (linecount-1));\r
}\r
- AddControl(*__pMsgAttachListPanel);\r
-\r
}\r
break;\r
\r
}\r
if (__pMmsTextBox)\r
{\r
- __pMmsTextBox->SetBounds(0, 520, __pMmsTextBox->GetWidth(), __pMmsTextBox->GetHeight());\r
+ int linecount = __pMmsTextBox->GetLineCount();\r
+ __pMmsTextBox->SetBounds(0, 520, __pMmsTextBox->GetWidth(), 80 + 57* (linecount-1));\r
}\r
__pGallery->SetItemProvider(*this);\r
__pGallery->RefreshGallery(0, GALLERY_REFRESH_TYPE_ITEM_MODIFY);\r
__pGallery->SetShowState(true);\r
- if (!__pOverlay)\r
+ if (__pOverlay)\r
+ {\r
+ delete __pOverlay;\r
+ __pOverlay = null;\r
+ }\r
+ if (!__pPlayer)\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
+ __pPlayer->Construct(*this, null);\r
}\r
ArrayList* pPageList = const_cast<ArrayList*>(__pMessageData->GetPageList());\r
if (pPageList)\r
{\r
__pPlayer->Stop();\r
__pPlayer->Close();\r
+ delete __pPlayer;\r
+ __pPlayer = null;\r
+ }\r
+ if (__pOverlay)\r
+ {\r
+ delete __pOverlay;\r
+ __pOverlay = null;\r
}\r
if (__pMmsTextBox)\r
{\r
- __pMmsTextBox->SetBounds(0, 84, __pMmsTextBox->GetWidth(), __pMmsTextBox->GetHeight() * 3);\r
+ int linecount = __pMmsTextBox->GetLineCount();\r
+ __pMmsTextBox->SetBounds(0, 50, __pMmsTextBox->GetWidth(), 70 + 60* (linecount-1));\r
}\r
}\r
break;\r
default:\r
break;\r
}\r
+ Invalidate(true);\r
AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
}\r
\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->SetNormalBackgroundBitmap(*pBitMap);\r
+ __pPlayPausebutton->SetPressedBackgroundBitmap(*pBitMap);\r
__pPlayPausebutton->RequestRedraw(true);\r
\r
if (GetSlideType(__currentPage) == VideoSlide || GetSlideType(__currentPage) == AudioSlide)\r
{\r
\r
AppLogDebug("ENTER");\r
+ UpdateMmsBodyText();\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
__pVolumePopup = new Popup();\r
__pVolumePopup->Construct(L"IDL_VOLUME_POPUP");\r
__pMediaVolumeSlider = static_cast<Slider*>(__pVolumePopup->GetControl(L"IDC_MEDIA_VOLUME_SLIDER"));\r
+ __pMediaVolumeSlider->AddAdjustmentEventListener(*this);\r
int mediaVolumeLevel = 4;\r
String key(IDS_TIZEN_MEDIA);\r
SettingInfo::GetValue(key, mediaVolumeLevel);\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
+ __pContextMenu->Construct(Point(16, GetFooter()->GetY()), CONTEXT_MENU_STYLE_LIST);\r
String strText;\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_COM_SK_DELETE", strText);\r
+ __pContextMenu->AddItem(strText, IDA_DELETE_MESSAGE);\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
+ ArrayList* pPageList = const_cast<ArrayList*>(__pMessageData->GetPageList());\r
+ if (pPageList)\r
+ {\r
+ MmsPageData* pPageData = static_cast<MmsPageData*>(pPageList->GetAt(__currentPage));\r
+ if (pPageData && pPageData->GetBodyText().GetLength())\r
+ {\r
+ String strText;\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_BODY_COPY_MESSAGE_TEXT_ABB", strText);\r
+ __pContextMenu->AddItem(strText, IDA_COPY_MESSAGE_TEXT);\r
+ }\r
+ else if (__pContextMenu->GetItemCount() > 2)\r
+ {\r
+ __pContextMenu->RemoveItemAt(2);\r
+ }\r
+ }\r
__pContextMenu->SetShowState(true);\r
__pContextMenu->Show();\r
AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
if (__timeElapsed == timeToRefreshGallery && timeToRefreshGallery != __totalDuration)\r
{\r
__currentPage++;\r
- UpdateForm(GetSlideType(__currentPage));\r
UpdateMmsBodyText();\r
+ UpdateForm(GetSlideType(__currentPage));\r
UpdateSlideNumber(__currentPage + 1);\r
if (__pPreviousButton)\r
{\r
{\r
__pNextbutton->SetEnabled(false);\r
}\r
+\r
}\r
}\r
AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
pBitMap->Scale(Dimension(W_PLAYCONTROL_BUTTON, H_PLAYCONTROL_BUTTON));\r
if (__pPlayPausebutton)\r
{\r
- __pPlayPausebutton->SetNormalBitmap(Point(0, 0), *pBitMap);\r
+ __pPlayPausebutton->SetNormalBackgroundBitmap(*pBitMap);\r
+ __pPlayPausebutton->SetPressedBackgroundBitmap(*pBitMap);\r
__pPlayPausebutton->RequestRedraw(true);\r
}\r
}\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
AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
}\r
\r
+void\r
+MmsDetailForm::SetTotalTimeDuration(int totalDuration)\r
+{\r
+ Label* pTotalTimeDuratonLabel = static_cast<Label*>(__pPlayControlPanel->GetControl(L"IDC_TOTAL_TIME_DURATION_LABEL"));\r
+ if (pTotalTimeDuratonLabel)\r
+ {\r
+ int minutes = totalDuration / 60;\r
+ int seconds = totalDuration - minutes*60;\r
+ String strTotaltime(IDS_BLANK);\r
+ if (minutes < 10)\r
+ {\r
+ strTotaltime.Append(L"0");\r
+ }\r
+ strTotaltime.Append(minutes);\r
+ strTotaltime.Append(IDS_COLON);\r
+ if (seconds < 10)\r
+ {\r
+ strTotaltime.Append(L"0");\r
+ }\r
+ strTotaltime.Append(seconds);\r
+ pTotalTimeDuratonLabel->SetText(strTotaltime);\r
+ }\r
+}\r
bool\r
MmsDetailForm::IsTextExist(int slideIndex)\r
{\r
//To get Message Type\r
Application::GetInstance()->GetAppResource()->GetString(L"IDS_COM_BODY_DETAILS_TYPE", strText);\r
strText.Append(IDS_COLON);\r
+ strText.Append(IDS_BLANK_SPACE);\r
messageDetails.Append(strText);\r
Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_BODY_SETTINGS_MULTIMEDIAMESSAGE", strText);\r
messageDetails.Append(strText);\r
{\r
Application::GetInstance()->GetAppResource()->GetString(L"IDS_COM_BODY_TO", strText);\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_COLON);\r
+ strText.Append(IDS_BLANK_SPACE);\r
messageDetails.Append(strText);\r
}\r
ArrayList* pPhoneNumberList = pMsgPrModel->GetPhoneNumberListN(__pMessageData->GetThreadId());\r
{\r
Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_BODY_MMSNOTIMSGSTATUSSENT", strText);\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_COLON);\r
+ strText.Append(IDS_BLANK_SPACE);\r
messageDetails.Append(strText);\r
}\r
messageDetails.Append(__pMessageData->GetTimeStamp());\r
//Message Subject\r
Application::GetInstance()->GetAppResource()->GetString(L"IDS_COM_BODY_SUBJECT", strText);\r
strText.Append(IDS_COLON);\r
+ strText.Append(IDS_BLANK_SPACE);\r
messageDetails.Append(strText);\r
messageDetails.Append(__pMessageData->GetSubject());\r
messageDetails.Append(IDS_NEW_LINE);\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
+ 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_OPT_STATUS_UNAVAILABLE", strText);\r
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_POP_UNRECOGNISED", strText);\r
messageDetails.Append(strText);\r
}\r
break;\r
\r
Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_OPT_STATUS", strText);\r
strText.Append(IDS_COLON);\r
+ strText.Append(IDS_BLANK_SPACE);\r
//Message Status\r
bool msgStatus = pMsgPrModel->GetMessageDeliveryStatus(__pMessageData->GetEntryId());\r
messageDetails.Append(strText);\r
const TouchEventInfo& touchInfo)\r
{\r
AppLogDebug("ENTER");\r
+ if(__pList && __pList->GetShowState())\r
+ {\r
+ __pList->SetShowState(false);\r
+ }\r
if (__pPlayControlPanel->GetShowState())\r
{\r
__pPlayControlPanel->SetShowState(false);\r
{\r
__pPlayControlPanel->SetShowState(true);\r
__pTimerForControlBar->Cancel();\r
- __pTimerForControlBar->Start(3000);\r
+ if (__bIsPlaying)\r
+ {\r
+ __pTimerForControlBar->Start(3000);\r
+ }\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 "MsgMessageData.h"\r
+#include "MsgMmsSlideData.h"\r
+\r
+using namespace Tizen::Base;\r
+using namespace Tizen::Base::Collection;\r
+\r
+MmsSlideData::MmsSlideData(void)\r
+: __pMessageData(null)\r
+, __pSlideList(null)\r
+{\r
+ AppLogDebug("ENTER");\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
+\r
+MmsSlideData::~MmsSlideData(void)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ if(__pSlideList)\r
+ {\r
+ __pSlideList->RemoveAll(true);\r
+ delete __pSlideList;\r
+ }\r
+\r
+ if(__pMessageData)\r
+ {\r
+ delete __pMessageData;\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+}\r
+\r
+result\r
+MmsSlideData::Construct(MessageData* pMessageData)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ result r = E_FAILURE;\r
+ if(pMessageData)\r
+ {\r
+ // Create Slide list\r
+ __pSlideList = new (std::nothrow) ArrayList();\r
+ __pSlideList->Construct();\r
+ const ArrayList* pPageList = pMessageData->GetPageList();\r
+ for(int pageIndex=0; pageIndex<pPageList->GetCount(); pageIndex++)\r
+ {\r
+ MmsPageData* pPageData = (MmsPageData*)pPageList->GetAt(pageIndex);\r
+ MmsSlideType slideType = GetSlideType(pPageData);\r
+ MmsSlideBase* pMmsSlide = new (std::nothrow) MmsMediaSlide(*pPageData, slideType);\r
+ __pSlideList->Add(pMmsSlide);\r
+ }\r
+ // Check Need to create attachment slide or not.\r
+ const ArrayList* pAttachList = pMessageData->GetAttachList();\r
+ if(pAttachList && pAttachList->GetCount()>0)\r
+ {\r
+ MmsSlideBase* pAttachSlide = new (std::nothrow) MmsAttachmentSlide(*pAttachList, MMS_SLIDE_ATTACHMENT);\r
+ __pSlideList->Add(pAttachSlide);\r
+ }\r
+ // Now Check If slide list is empty then create default slide\r
+ if(__pSlideList->GetCount() <= 0)\r
+ {\r
+ MmsSlideBase* pEmptySlide = new (std::nothrow) MmsEmptySlide();\r
+ __pSlideList->Add(pEmptySlide);\r
+ }\r
+ r = E_SUCCESS;\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(r));\r
+ return r;\r
+}\r
+\r
+MmsSlideType\r
+MmsSlideData::GetSlideType(MmsPageData* pPageData) const\r
+{\r
+ MmsSlideType slideType = MMS_SLIDE_EMPTY;\r
+ if( pPageData)\r
+ {\r
+ // Check\r
+ if(pPageData->IsVideoExist())\r
+ {\r
+ if(pPageData->GetBodyText().IsEmpty())\r
+ {\r
+ // Video slide\r
+ slideType = MMS_SLIDE_VIDEO;\r
+ }\r
+ else\r
+ {\r
+ // Video Text slide\r
+ slideType = MMS_SLIDE_TEXT_VIDEO;\r
+ }\r
+ }\r
+ else\r
+ {\r
+ if(pPageData->IsAudioExist() && pPageData->IsImageExist())\r
+ {\r
+ if(pPageData->GetBodyText().IsEmpty())\r
+ {\r
+ // Audio image slide\r
+ slideType = MMS_SLIDE_AUDIO_IMAGE;\r
+ }\r
+ else\r
+ {\r
+ // Audio image text slide\r
+ slideType = MMS_SLIDE_AUDIO_IMAGE_TEXT;\r
+ }\r
+ }\r
+ else if(pPageData->IsAudioExist())\r
+ {\r
+ if(pPageData->GetBodyText().IsEmpty())\r
+ {\r
+ // Audio slide\r
+ slideType = MMS_SLIDE_AUDIO;\r
+ }\r
+ else\r
+ {\r
+ // Audio text slide\r
+ slideType = MMS_SLIDE_AUDIO_TEXT;\r
+ }\r
+ }\r
+ else if(pPageData->IsImageExist())\r
+ {\r
+ if(pPageData->GetBodyText().IsEmpty())\r
+ {\r
+ // image slide\r
+ slideType = MMS_SLIDE_IMAGE;\r
+ }\r
+ else\r
+ {\r
+ // image text slide\r
+ slideType = MMS_SLIDE_TEXT_IMAGE;\r
+ }\r
+ }\r
+ else\r
+ {\r
+ // Text Slide.\r
+ slideType = MMS_SLIDE_TEXT;\r
+ }\r
+ }\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return slideType;\r
+}\r
+\r
+int\r
+MmsSlideData::GetSlideCount(void) const\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ int slideCount(0);\r
+ if(__pSlideList)\r
+ {\r
+ slideCount = __pSlideList->GetCount();\r
+ }\r
+\r
+ AppLogDebug("EXIT: Slide Count %d", slideCount);\r
+ return slideCount;\r
+}\r
+\r
+MmsSlideType\r
+MmsSlideData::GetSlideType(int slideindex) const\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ MmsSlideType slideType = MMS_SLIDE_EMPTY;\r
+ if(__pSlideList)\r
+ {\r
+ const MmsSlideBase* pSlideObject = (MmsSlideBase*)__pSlideList->GetAt(slideindex);\r
+ slideType = pSlideObject->GetSlideType();\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return slideType;\r
+}\r
+\r
+const MmsSlideBase*\r
+MmsSlideData::GetSlideAt(int slideIndex) const\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ const MmsSlideBase* pSlideObject = null;\r
+ if(__pSlideList)\r
+ {\r
+ pSlideObject = (MmsSlideBase*)__pSlideList->GetAt(slideIndex);\r
+ }\r
+\r
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
+ return pSlideObject;\r
+}\r
+\r
+const MessageData*\r
+MmsSlideData::GetSlideMessageData(void) const\r
+{\r
+ return __pMessageData;\r
+}\r
+\r
+//! Empty slide\r
+MmsSlideType\r
+MmsEmptySlide::GetSlideType(void) const\r
+{\r
+ return MMS_SLIDE_EMPTY;\r
+}\r
+\r
+//! MMS media slide\r
+MmsMediaSlide::MmsMediaSlide(MmsPageData& pageData, MmsSlideType slideType)\r
+ : __pageData(pageData)\r
+ , __slideType(slideType)\r
+{\r
+}\r
+\r
+MmsMediaSlide::~ MmsMediaSlide()\r
+{\r
+}\r
+\r
+const String&\r
+MmsMediaSlide::GetSlideText(void) const\r
+{\r
+ return __pageData.GetBodyText();\r
+}\r
+\r
+const String&\r
+MmsMediaSlide::GetAudioFile(void) const\r
+{\r
+ return __pageData.GetAudioPath();\r
+}\r
+\r
+const String&\r
+MmsMediaSlide::GetImageFile(void) const\r
+{\r
+ return __pageData.GetImagePath();\r
+}\r
+\r
+const String&\r
+MmsMediaSlide::GetVideoFile(void) const\r
+{\r
+ return __pageData.GetVideoPath();\r
+}\r
+\r
+MmsSlideType\r
+MmsMediaSlide::GetSlideType(void) const\r
+{\r
+ return __slideType;\r
+}\r
+\r
+//! MMS attachment slide\r
+MmsAttachmentSlide::MmsAttachmentSlide(const IList& attachFiles, MmsSlideType slideType)\r
+ : __attachFileList(attachFiles)\r
+ , __slideType(slideType)\r
+{\r
+}\r
+\r
+MmsAttachmentSlide::~MmsAttachmentSlide(void)\r
+{\r
+}\r
+\r
+const IList&\r
+MmsAttachmentSlide::GetAttachFileList(void) const\r
+{\r
+ return __attachFileList;\r
+}\r
+\r
+MmsSlideType\r
+MmsAttachmentSlide::GetSlideType(void) const\r
+{\r
+ return __slideType;\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 <FGrpEnrichedText.h>
+
+#include "MsgMultiLineTextItemCntl.h"
+#include "MsgTypes.h"
+
+using namespace Tizen::Base;
+using namespace Tizen::Base::Collection;
+using namespace Tizen::Graphics;
+using namespace Tizen::Ui::Controls;
+
+MultiLineTextItemCntl::MultiLineTextItemCntl(void)
+ : __pBackgroundBitmap(null)
+ , __pSelectedBitmap(null)
+ , __pEnrichedText(null)
+ , __pNormalColor(null)
+ , __pSelectionColor(null)
+ , __verticalAlignment(TEXT_ALIGNMENT_TOP)
+ , __horizontalAlignment(TEXT_ALIGNMENT_LEFT)
+ , __viewRectWidth(0)
+ , __leftMargin(0)
+ , __rightMargin(0)
+ , __topMargin(0)
+ , __bottomMargin(0)
+ , __minHeight(0)
+ , __minWidth(0)
+{
+ //Empty implementation
+}
+
+MultiLineTextItemCntl::~MultiLineTextItemCntl(void)
+{
+ AppLogDebug("ENTER");
+
+ if (__pEnrichedText)
+ {
+ __pEnrichedText->RemoveAll(true);
+ delete __pEnrichedText;
+ }
+ if (__pNormalColor)
+ {
+ __pNormalColor->RemoveAll(false);
+ delete __pNormalColor;
+ }
+ if (__pSelectionColor)
+ {
+ __pSelectionColor->RemoveAll(false);
+ delete __pSelectionColor;
+ }
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+}
+
+result
+MultiLineTextItemCntl::Construct(void)
+{
+ AppLogDebug("ENTER");
+
+ result r = E_SUCCESS;
+ r = Container::Construct();
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return r;
+}
+
+void
+MultiLineTextItemCntl::SetViewRectWidth(int rectWidth)
+{
+ AppLogDebug("ENTER");
+ __viewRectWidth = rectWidth;
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+MultiLineTextItemCntl::CreateTextLayout(int width, bool singleLine)
+{
+ AppLogDebug("ENTER");
+ if (width > 0)
+ {
+ __viewRectWidth = width;
+ }
+ __pEnrichedText->SetSize(Dimension(__viewRectWidth - __leftMargin - __rightMargin, 800));
+ __pEnrichedText->SetVerticalAlignment(__verticalAlignment);
+ __pEnrichedText->SetHorizontalAlignment(__horizontalAlignment);
+ if (singleLine)
+ {
+ __pEnrichedText->SetTextWrapStyle(TEXT_WRAP_NONE);
+ __pEnrichedText->SetTextAbbreviationEnabled(true);
+
+ }
+ else
+ {
+ __pEnrichedText->SetTextWrapStyle(TEXT_WRAP_WORD_WRAP);
+ __pEnrichedText->SetTextAbbreviationEnabled(false);
+ }
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+MultiLineTextItemCntl::SetTextMargin(int left, int right, int top, int bottom)
+{
+ AppLogDebug("ENTER");
+
+ __leftMargin = left;
+ __rightMargin = right;
+ __topMargin = top;
+ __bottomMargin = bottom;
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+MultiLineTextItemCntl::AddText(const String& msgText, const Color& textColor,
+ const Color& textSelectionColor, const Font* ptextFont)
+{
+ AppLogDebug("ENTER");
+
+ if (__pEnrichedText == null)
+ {
+ __pEnrichedText = new (std::nothrow) EnrichedText();
+ // Dummy dimension
+ if (__pEnrichedText == null)
+ {
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+ }
+ __pEnrichedText->Construct(Dimension(5, 40));
+ }
+
+ // Add new text element.
+ TextElement* pTextElement = new (std::nothrow) TextElement();
+ if (pTextElement == null)
+ {
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+ }
+ pTextElement->Construct(msgText);
+ pTextElement->SetTextColor(textColor);
+ // Set font.
+ if (ptextFont)
+ {
+ pTextElement->SetFont(*ptextFont);
+ }
+ //Store color for future drawing
+ if (__pNormalColor == null)
+ {
+ __pNormalColor = new (std::nothrow) ArrayList();
+ __pNormalColor->Construct();
+ }
+ __pNormalColor->Add(new Color(textColor));
+
+ if (__pSelectionColor == null)
+ {
+ __pSelectionColor = new (std::nothrow) ArrayList();
+ __pSelectionColor->Construct();
+ }
+ __pSelectionColor->Add(new Color(textSelectionColor));
+ // Explicitly need to remove element.
+ __pEnrichedText->Add(*pTextElement);
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+int
+MultiLineTextItemCntl::GetMinHeight(void) const
+{
+ AppLogDebug("ENTER");
+
+ int minHeight = 0;
+ if (__pEnrichedText)
+ {
+ int height, width, length, startIndex = 0;
+ __pEnrichedText->GetTextExtent(startIndex, __pEnrichedText->GetLineLength(0), width, height, length);
+ minHeight = __pEnrichedText->GetTotalLineHeight() + __topMargin + __bottomMargin;
+ }
+ if (minHeight <= __minHeight)
+ {
+ __topMargin = (__minHeight - minHeight) / 2;
+ __bottomMargin = (__minHeight - minHeight) / 2;
+ minHeight = __minHeight;
+ }
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return minHeight;
+}
+
+void
+MultiLineTextItemCntl::SetMinimumHeight(int minHeight)
+{
+ AppLogDebug("ENTER");
+ __minHeight = minHeight;
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+}
+void
+MultiLineTextItemCntl::SetMinimumWidth(int minWidth)
+{
+ AppLogDebug("ENTER");
+ __minWidth = minWidth;
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+}
+
+int
+MultiLineTextItemCntl::GetMaxWidth(void) const
+{
+ AppLogDebug("ENTER");
+
+ int maxWidth = 0;
+ if (__pEnrichedText)
+ {
+ int height, width, length, lineTextLength, startIndex = 0;
+ int lineCount = __pEnrichedText->GetTotalLineCount();
+ for (int count = 0; count < lineCount; count++)
+ {
+ lineTextLength = __pEnrichedText->GetLineLength(count);
+ __pEnrichedText->GetTextExtent(startIndex, lineTextLength, width, height, length);
+ startIndex += lineTextLength;
+ if (maxWidth < width)
+ {
+ maxWidth = width;
+ }
+ }
+ }
+ if ((maxWidth + __leftMargin + __rightMargin) < __minWidth)
+ {
+ __leftMargin += (__minWidth - maxWidth) / 2;
+ __rightMargin += (__minWidth - maxWidth) / 2;
+ }
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return (maxWidth + __leftMargin + __rightMargin); // for bubble
+}
+
+void
+MultiLineTextItemCntl::SetBackgroundImage(const Bitmap& backgroudImage)
+{
+ AppLogDebug("ENTER");
+
+ __pBackgroundBitmap = &backgroudImage;
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+MultiLineTextItemCntl::SetSelectionImage(const Bitmap& selectionImage)
+{
+ AppLogDebug("ENTER");
+
+ __pSelectedBitmap = &selectionImage;
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+MultiLineTextItemCntl::SetVerticalAlignment(TextVerticalAlignment alignment)
+{
+ AppLogDebug("ENTER");
+
+ __verticalAlignment = alignment;
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+MultiLineTextItemCntl::SetHorizentalAlignment(TextHorizontalAlignment alignment)
+{
+ AppLogDebug("ENTER");
+
+ __horizontalAlignment = alignment;
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+result
+MultiLineTextItemCntl::OnDraw(void)
+{
+ AppLogDebug("ENTER");
+
+ result r = E_SUCCESS;
+ Rectangle rect = GetBounds();
+ rect.x = 0;
+ rect.y = 0;
+ Canvas* pCanvas = GetCanvasN(rect);
+ if (pCanvas)
+ {
+ pCanvas->SetBackgroundColor(Color(0, 0, 0, 0));
+ pCanvas->Clear();
+ // Text element count
+ int elementCount = __pEnrichedText->GetTextElementCount();
+
+ __pEnrichedText->SetSize(Dimension(__viewRectWidth - __leftMargin - __rightMargin,
+ __pEnrichedText->GetTotalLineHeight()));
+ // Draw background normal mode
+ if (__pBackgroundBitmap)
+ {
+ r = pCanvas->DrawNinePatchedBitmap(rect, *__pBackgroundBitmap);
+ if (r != E_SUCCESS)
+ {
+ pCanvas->DrawBitmap(rect, *__pBackgroundBitmap);
+ }
+ }
+ // Update text element colour in normal mode.
+ for (int count = 0; count < elementCount; count++)
+ {
+ __pEnrichedText->GetTextElementAt(count)->SetTextColor(
+ *(static_cast<Color*>(__pNormalColor->GetAt(count))));
+ }
+ pCanvas->DrawText(Point(rect.x + __leftMargin, rect.y + __topMargin), *__pEnrichedText);
+
+ delete pCanvas;
+ }
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return r;
+}
#include "MsgBitmapUtility.h"\r
#include "MsgCommonUtil.h"\r
#include "MsgConversationData.h"\r
+#include "MsgMessageData.h"\r
#include "MsgMessagePresentationModel.h"\r
#include "MsgOptionPopup.h"\r
#include "MsgTypes.h"\r
}\r
}\r
\r
- if (__pConvData->GetMessageType() == MSG_TYPE_MMS)\r
+#ifndef _DISABLE_MMS_FEATURE_\r
+ int messageId = __pConvData->GetEntryId();\r
+ MessagePresentationModel* basePrModel = MessagePresentationModel::GetInstance();\r
+ MessageData* msgData = basePrModel->GetMessageDataByIdN(messageId);\r
+\r
+ if (msgData->IsFilePresent())\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
delete pListItem;\r
}\r
}\r
+#endif\r
\r
Application::GetInstance()->GetAppResource()->GetString(L"IDS_COM_BODY_FORWARD", itemText);\r
pListItem = new (std::nothrow) ListItemObject(itemText, LIST_ELEMENT_FORWARD);\r
MessagePresentationModel* pMsgPrModel = MessagePresentationModel::GetInstance();\r
if (pMsgPrModel)\r
{\r
- pMsgPrModel->Delete(__pConvData->GetEntryId(), *this, REQUEST_DELETE_MESSAGE);\r
+ pMsgPrModel->Delete(__pConvData->GetEntryId(), REQUEST_DELETE_MESSAGE);\r
}\r
+ RequestId requestId = REQUEST_DESTROY_OPTION_POPUP;\r
+ __pParentCnt.SendUserEvent(requestId, null);\r
}\r
break;\r
\r
case LIST_ELEMENT_COPY_MESSAGE_TEXT:\r
{\r
CommonUtil::CopyTextToClipBoard(__pConvData->GetMessageText());\r
- RequestId requestId = REQUEST_OPTION_POPUP;\r
+ RequestId requestId = REQUEST_DESTROY_OPTION_POPUP;\r
__pParentCnt.SendUserEvent(requestId, null);\r
}\r
break;\r
case LIST_ELEMENT_PROTECTION_ON:\r
{\r
// TODO:\r
- RequestId requestId = REQUEST_OPTION_POPUP;\r
+ RequestId requestId = REQUEST_DESTROY_OPTION_POPUP;\r
__pParentCnt.SendUserEvent(requestId, null);\r
}\r
break;\r
RequestId requestId = REQUEST_SAVE_MESSAGE_ATTACHMENTS;\r
__pParentCnt.SendUserEvent(requestId, pArgList);\r
// Destroy popup\r
- requestId = REQUEST_OPTION_POPUP;\r
+ requestId = REQUEST_DESTROY_OPTION_POPUP;\r
__pParentCnt.SendUserEvent(requestId, null);\r
}\r
break;\r
{\r
MessageData* pMsgData = pMsgPrModel->GetMessageDataByIdN(__pConvData->GetEntryId());\r
CommonUtil::ForwardMessage(pMsgData);\r
- RequestId requestId = REQUEST_OPTION_POPUP;\r
+ RequestId requestId = REQUEST_DESTROY_OPTION_POPUP;\r
__pParentCnt.SendUserEvent(requestId, null);\r
}\r
}\r
\r
default:\r
{\r
- RequestId requestId = REQUEST_OPTION_POPUP;\r
+ RequestId requestId = REQUEST_DESTROY_OPTION_POPUP;\r
__pParentCnt.SendUserEvent(requestId, null);\r
}\r
break;\r
case IDA_BUTTON_CLOSE_OPTIONS_POPUP:\r
{\r
SetShowState(false);\r
- RequestId requestId = REQUEST_OPTION_POPUP;\r
+ RequestId requestId = REQUEST_DESTROY_OPTION_POPUP;\r
__pParentCnt.SendUserEvent(requestId, null);\r
}\r
break;\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
{\r
AppLogDebug("ENTER");\r
\r
- switch(requestId)\r
- {\r
- case REQUEST_CLOSE_POPUP:\r
- __popupListener.OnPopupClose(this);\r
- break;\r
- }\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
--- /dev/null
+//
+// Tizen C++ SDK
+// Copyright (c) 2012-2013 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 "MsgProgressCntl.h"
+
+
+using namespace Tizen::Base::Runtime;
+using namespace Tizen::Graphics;
+using namespace Tizen::Ui::Controls;
+
+ProgressCntl::ProgressCntl(void)
+ : __pProgressIcon(null)
+ , __pTimer(null)
+{
+}
+
+ProgressCntl::~ProgressCntl(void)
+{
+ AppLogDebug("ENTER");
+ Cancel();
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+}
+
+result
+ProgressCntl::Construct(Tizen::Graphics::Rectangle rect)
+{
+ AppLogDebug("ENTER");
+
+ result r = E_SUCCESS;
+ r = Container::Construct(rect);
+ __pProgressIcon = new (std::nothrow) Label();
+ __pProgressIcon->Construct(rect, L"");
+ Bitmap* pProgressIcon = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_PROGRESS_01, Dimension(rect.width, rect.height));
+ __pProgressIcon->SetBackgroundBitmap(*pProgressIcon);
+ AddControl(*__pProgressIcon); // Transferred ownership.
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return r;
+}
+
+void
+ProgressCntl::Start(void)
+{
+ AppLogDebug("ENTER");
+
+ __progressIconType = MSG_ICON_PROGRESS_01;
+ if (!__pTimer)
+ {
+ __pTimer = new (std::nothrow) Timer();
+ __pTimer->Construct(*this);
+ }
+ __pTimer->StartAsRepeatable(150);
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+}
+
+void
+ProgressCntl::Cancel(void)
+{
+ AppLogDebug("ENTER");
+
+ if (__pTimer)
+ {
+ __pTimer->Cancel();
+ delete __pTimer;
+ __pTimer = null;
+ }
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+}
+
+void
+ProgressCntl::OnTimerExpired(Timer& timer)
+{
+ AppLogDebug("ENTER");
+
+ int iconIndex = (int) __progressIconType;
+ iconIndex++;
+ if (iconIndex > MSG_ICON_PROGRESS_30)
+ {
+ __progressIconType = MSG_ICON_PROGRESS_01;
+ }
+ else
+ {
+ __progressIconType = (MessageIconType) iconIndex;
+ }
+ Bitmap* pProgressIcon = BitmapUtility::GetInstance()->GetIcon(__progressIconType,
+ Dimension(W_ICON_32PX, H_ICON_32PX));
+ __pProgressIcon->SetBackgroundBitmap(*pProgressIcon);
+ Invalidate(true);
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+}
#include "MsgBitmapUtility.h"
#include "MsgCommonUtil.h"
#include "MsgContactListItem.h"
+#include "MsgContactUtility.h"
#include "MsgISizeChangeEventListener.h"
#include "MsgMessageData.h"
#include "MsgMessagePresentationModel.h"
#include "MsgRecipientPanel.h"
+#include "MsgTokenOptionPopup.h"
#include "MsgTypes.h"
using namespace Tizen::App;
, __pRecipientAddrList(null)
, __pAddressBook(null)
, __pTokenDeleteThread(null)
+ , __pTokenOptionPopup(null)
, __deleteTokenIndex(-1)
, __validateOnFocusLost(true)
, __oneTimeFlag(true)
+ , __selectedIndex(-1)
{
- // Empty implementation
+ AppLogDebug("ENTER");
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
}
RecipientPanel::~RecipientPanel(void)
__pExpandEditArea->AddFocusEventListener(*this);
__pExpandEditArea->AddKeyEventListener(*this);
__pExpandEditArea->SetTokenFilter(this);
+ __pExpandEditArea->AddTouchEventListener(*this);
__pContactCountLabel = (Label*) GetControl(L"IDC_RECIPINT_COUNT_LABEL");
- __pContactCountLabel->SetMargin(0,0);
+ __pContactCountLabel->SetMargin(0, 0);
__pContactCountLabel->SetShowState(false);
// Recipient list
__pRecipientAddrList = new (std::nothrow) ArrayList();
if (!__pContactSearchList)
{
__pContactSearchList = new (std::nothrow) ListView();
- __pContactSearchList->Construct(Rectangle(MARGIN_15PX, GetHeight(), GetWidth()-MARGIN_15PX*2,
+ __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);
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::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");
-
+ Clear();
if (pRecipientList)
{
for (int count = 0; count < pRecipientList->GetCount(); count++)
pNewAddrInfo->displayName = pAddrInfo->displayName;
pNewAddrInfo->phoneNumber = pAddrInfo->phoneNumber;
pNewAddrInfo->needToValidate = pAddrInfo->needToValidate;
+ pNewAddrInfo->isAddFromContacts = pAddrInfo->isAddFromContacts;
__pRecipientAddrList->Add(pNewAddrInfo);
__pExpandEditArea->AppendToken(pAddrInfo->displayName);
}
}
ArrayList*
-RecipientPanel::GeRecipientNumberListN(void) const
+RecipientPanel::GetRecipientNumberListN(void) const
{
AppLogDebug("ENTER");
ArrayList* pRecipientNumberList = null;
RecipientPanel::HideKeypad(void)
{
AppLogDebug("ENTER");
- if (__pExpandEditArea)
+ if (__pExpandEditArea )
{
__pExpandEditArea->HideKeypad();
}
{
AppLogDebug("ENTER");
- // If entered text not yet converted to token, then check it can it be converted to token.
- if (CheckRecipentForToken())
+ // If the text entered has not been converted to token, then check if it can be converted to token.
+ if (CheckRecipientForToken())
{
switch (actionId)
{
String* pPickResult = null;
String operation(IDS_APPCONTROL_OPERATION_PICK);
- if (operationId.Equals(operation)) //
+ if (operationId.Equals(operation))
{
- if (pResultMap && (appControlResult == APP_CTRL_RESULT_SUCCEEDED)) //
+ if (pResultMap && (appControlResult == APP_CTRL_RESULT_SUCCEEDED))
{
String* returnTypeValue = (String*) pResultMap->GetValue(String(L"returnType"));
AppLogDebug("count : %d", pResultMap->GetCount());
if (!__pAddressBook)
{
__pAddressBook = AddressbookManager::GetInstance()->GetAddressbookN();
- if (__pAddressBook)
- {
- __pAddressBook->SetEventListener(null);
- }
}
IList* pRecipientList = GetSelectContactListN(pResultMap);
if (pRecipientList)
{
if (__pExpandEditArea->GetTokenCount() >= MAX_COUNT)
{
+ __pContactCountLabel->SetShowState(false);
isMaximumrecipientreached = true;
String messageText;
Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED", messageText);
{
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());
+ pContact->GetValue(CONTACT_PROPERTY_ID_DISPLAY_NAME, contactName);
pRecipent->displayName.Append(contactName);
pRecipent->needToValidate = false;
+ pRecipent->isAddFromContacts = true;
__pRecipientAddrList->Add(pRecipent);
- if (firstName.GetLength() > 0 || lastName.GetLength() > 0)
+ if (contactName.GetLength() > 0)
{
__pExpandEditArea->AppendToken(contactName);
}
invalidRecipient.Append(pRecipent->phoneNumber);
}
}
- if(pRecipent)
+ if (pRecipent)
{
delete pRecipent;
}
pPhoneNumberList->RemoveAll(true);
}
+ else
+ {
+ isInvalidPhoneNumber = true;
+ if (invalidRecipient.GetLength())
+ {
+ invalidRecipient.Append(IDS_COMMA_SPACE);
+ }
+ invalidRecipient.Append(IDS_BLANK_SPACE);
+ String displayName;
+ pContact->GetValue(CONTACT_PROPERTY_ID_DISPLAY_NAME, displayName);
+ invalidRecipient.Append(displayName);
+ }
delete pPhoneNumberList;
delete pContact;
}
}
if (!isMaximumrecipientreached && isInvalidPhoneNumber)
{
+ __pContactCountLabel->SetShowState(false);
String messageText;
Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_BODY_INVALID_RECIPIENTS", messageText);
messageText.Append(IDS_COLON);
}
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);
+ // Recipients added here, check if SEND button needs to be enabled.
+ //GetParent()->SendUserEvent(REQUEST_ENABLE_DISABLE_SEND_BUTTON, null);
}
}
}
{
AppLogDebug("ENTER");
// Hide list box.
+ __pExpandEditArea->Clear();
listView.SetShowState(false);
if (__pExpandEditArea->GetTokenCount() >= MAX_COUNT)
{
pRecipent->phoneNumber = pMsgPrModel->GetContactNumberAt(index);
if (!IsNumberExistRecipientList(pRecipent->phoneNumber))
{
- pRecipent->needToValidate = false;
- __pRecipientAddrList->Add(pRecipent);
- __pExpandEditArea->AppendToken(pMsgPrModel->GetContactNameAt(index));
- __pExpandEditArea->Invalidate(true);
+ if (!CommonUtil::IsValidPhoneNumber(pRecipent->phoneNumber))
+ {
+ String messageText;
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_BODY_INVALID_RECIPIENTS", messageText);
+ messageText.Append(IDS_COLON);
+ messageText.Append(pRecipent->phoneNumber);
+ ShowMessage(messageText);
+ delete pRecipent;
+ }
+ else
+ {
+ pRecipent->needToValidate = false;
+ pRecipent->isAddFromContacts = true;
+ String tokenDisplayName(IDS_BLANK);
+ tokenDisplayName = pMsgPrModel->GetContactNameAt(index);
+ if (tokenDisplayName.Equals(IDS_BLANK_SPACE, false))
+ {
+ tokenDisplayName = pMsgPrModel->GetContactNumberAt(index);
+ }
+ else
+ {
+ __pRecipientAddrList->Add(pRecipent);
+ }
+ __pExpandEditArea->AppendToken(tokenDisplayName);
+ __pExpandEditArea->Invalidate(true);
+ }
}
else
{
}
}
}
-
+ Invalidate(true);
AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
return;
}
return contactCount;
}
-// Form ITokenFilter
+// From ITokenFilter
bool
RecipientPanel::ReplaceToken(const String& token, String& replacement)
{
AppLogDebug("ENTER");
+ int selectedTokenIndex(__pExpandEditArea->GetSelectedTokenIndex());
// Hide search list.
if (__pContactSearchList->GetShowState())
{
__pContactSearchList->SetShowState(false);
- __pContactSearchList->SetSize(GetWidth()-MARGIN_15PX*2, 0);
+ __pContactSearchList->SetSize(GetWidth() - MARGIN_15PX * 2, 0);
}
+
// Check need to validate
- if (IsNeedToValidate(token))
+ if (selectedTokenIndex < 0)
{
- // If token exist, duplicate token.
- if (IsTokenExist(token) || IsNumberExistRecipientList(token))
+ if (IsNeedToValidate(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;
+ if (IsTokenExist(token) || IsNumberExistRecipientList(token))
+ {
+ __errorString = IDS_BLANK;
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGC_BODY_DUPLICATED_RECIPIENT", __errorString);
+ __errorString.Append(IDS_COLON);
+ __errorString.Append(IDS_BLANK_SPACE);
+ __errorString.Append(token);
+
+ // 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)))
__errorString = IDS_BLANK;
Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_BODY_INVALID_RECIPIENTS", __errorString);
__errorString.Append(IDS_COLON);
+ __errorString.Append(IDS_BLANK_SPACE);
__errorString.Append(token);
- //ShowMessage(messageText);
+
// Delete last Token, which will insert after this function call
DeleteTokenAt(__pRecipientAddrList->GetCount() - 1);
return true;
DeleteTokenAt(MAX_COUNT);
}
}
+ else
+ {
+ // bool NumberExist(IsNumberExistRecipientList(token));
+ // if (!NumberExist && IsNumberToken(selectedTokenIndex) && CommonUtil::IsValidPhoneNumber(token))
+ // {
+ // UpdateRecipientList(token, selectedTokenIndex);
+ // }
+ // else
+ // {
+ // __errorString.Clear();
+ // Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGC_BODY_DUPLICATED_RECIPIENT", __errorString);
+ // if(!NumberExist)
+ // {
+ // __errorString.Clear();
+ // Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_BODY_INVALID_RECIPIENTS", __errorString);
+ // }
+ // __errorString.Append(IDS_BLANK);
+ // __errorString.Append(IDS_COLON);
+ // __errorString.Append(IDS_BLANK);
+ // __errorString.Append(token);
+ // DeleteTokenAt(selectedTokenIndex);
+ // }
+ }
AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
return true;
}
{
AppLogDebug("ENTER");
- GetParent()->SendUserEvent(REQUEST_ENABLE_DISABLE_SEND_BUTTON,null);
+ //GetParent()->SendUserEvent(REQUEST_ENABLE_DISABLE_SEND_BUTTON, null);
__pContactCountLabel->SetShowState(false);
AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
return;
if (__validateOnFocusLost)
{
- // If entered text not yet converted to token, then check it can it be converted to token.
- CheckRecipentForToken();
+ // If text entered has not been converted to token yet, then check if it can be converted to token.
+ if (__pExpandEditArea->GetSelectedTokenIndex() < 0)
+ {
+ CheckRecipientForToken();
+ }
+ else
+ {
+ ShowRecipientCount();
+ }
}
AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
}
bool
-RecipientPanel::CheckRecipentForToken(bool updateToken)
+RecipientPanel::CheckRecipientForToken(bool updateToken)
{
AppLogDebug("ENTER");
+
__pExpandEditArea->SetTokenFilter(null);
// Hide search list.
if (__pContactSearchList->GetShowState())
{
__pContactSearchList->SetShowState(false);
- __pContactSearchList->SetSize(GetWidth()- MARGIN_15PX*2, 0);
+ __pContactSearchList->SetSize(GetWidth() - MARGIN_15PX * 2, 0);
}
- bool validRecipinet(true);
+ bool validRecipient(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.
+ // Need to do this as editor creates and inserts token automatically upon recipient panel loses focus.
__pExpandEditArea->Clear();
+ // In this case a pop up message displaying "Invalid Recipient" will be shown on top of contact
+ // application control
int selectIndex = __pExpandEditArea->GetSelectedTokenIndex();
if (selectIndex < 0)
{
+ __pExpandEditArea->Clear();
if (tokenText.GetLength() > 0)
{
if (__pExpandEditArea->GetTokenCount() >= MAX_COUNT)
{
// Reach max limit
- validRecipinet = false;
+ validRecipient = 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;
+ validRecipient = 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;
+ validRecipient = 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
{
__pExpandEditArea->AppendToken(tokenText);
__pExpandEditArea->Invalidate(true);
}
- validRecipinet = true;
- }
- if(__validateOnFocusLost && !messageText.IsEmpty())
- {
- ShowMessage(messageText);
+ validRecipient = true;
}
}
+ if (__validateOnFocusLost && !messageText.IsEmpty())\r
+ {\r
+ ShowMessage(messageText);\r
+ }\r
}
}
ShowRecipientCount();
__pContactSearchList->SetShowState(false);
}
__pExpandEditArea->SetTokenFilter(this);
- RequestId requestId = REQUEST_UDATE_FOCUS;
+ RequestId requestId = REQUEST_UPDATE_FOCUS;
GetParent()->SendUserEvent(requestId, null);
AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
- return validRecipinet;
+ return validRecipient;
}
bool
}
break;
+ case KEY_INVALID:
+ {
+ CheckRecipientForToken();
+ }
+ break;
+
default:
break;
}
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())
+ //GetParent()->SendUserEvent(REQUEST_ENABLE_DISABLE_SEND_BUTTON, null);
+ int selectedTokenIndex(__pExpandEditArea->GetSelectedTokenIndex());
+ int searchCount(0);
+ if (selectedTokenIndex < 0)
{
- 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());
height = searchCount * H_LIST_ITEM_128PX;
}
__pContactSearchList->SetPosition(MARGIN_15PX, GetHeight());
- __pContactSearchList->SetSize(GetWidth()- MARGIN_15PX*2, height);
+ __pContactSearchList->SetSize(GetWidth() - MARGIN_15PX * 2, height);
}
else
{
__pContactSearchList->SetShowState(false);
- __pContactSearchList->SetSize(GetWidth()-MARGIN_15PX*2, 0);
+ __pContactSearchList->SetSize(GetWidth() - MARGIN_15PX * 2, 0);
}
__pContactSearchList->UpdateList();
__pContactSearchList->Draw();
}
}
+ else
+ {
+ // String tokenText(__pExpandEditArea->GetText());
+ // bool NumberExist(IsNumberExistRecipientList(tokenText));
+ // if (!NumberExist && IsNumberToken(selectedTokenIndex) && CommonUtil::IsValidPhoneNumber(tokenText))
+ // {
+ // UpdateRecipientList(tokenText, selectedTokenIndex);
+ // }
+ // else
+ // {
+ // __errorString.Clear();
+ // Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGC_BODY_DUPLICATED_RECIPIENT", __errorString);
+ // if(!NumberExist)
+ // {
+ // __errorString.Clear();
+ // Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGF_BODY_INVALID_RECIPIENTS", __errorString);
+ // }
+ // __errorString.Append(IDS_BLANK);
+ // __errorString.Append(IDS_COLON);
+ // __errorString.Append(IDS_BLANK);
+ // __errorString.Append(tokenText);
+ // DeleteTokenAt(selectedTokenIndex);
+ // }
+ }
AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
return;
{
AppLogDebug("ENTER");
AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
- if(__pExpandEditArea->GetTokenCount() > 0 || __pExpandEditArea->GetTextLength() > 0)
+ if (__pExpandEditArea->GetTokenCount() > 0 || __pExpandEditArea->GetTextLength() > 0)
{
return false;
}
}
}
+void
+RecipientPanel::Clear(void)
+{
+ AppLogDebug("ENTER");
+
+ __pRecipientAddrList->RemoveAll(true);
+ int tokenCount(__pExpandEditArea->GetTokenCount());
+ for(int index=0; index<tokenCount; index++)
+ {
+ __pExpandEditArea->RemoveTokenAt(index);
+ }
+ __pExpandEditArea->Clear();
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+}
void
RecipientPanel::ShowMessage(const String& message)
String msg(message);
if (message.GetLength() > 399)
{
- msg.Remove(398, message.GetLength()-399);
+ msg.Remove(398, message.GetLength() - 399);
}
- messageBox.Construct(IDS_MESSAGES, msg, MSGBOX_STYLE_OK, 3000);
+ messageBox.Construct(IDS_MESSAGES, msg, MSGBOX_STYLE_OK);
messageBox.ShowAndWait(modalResult);
//Wait for modalResult updated value.
__pExpandEditArea->AddFocusEventListener(*this);
}
bool
-RecipientPanel::IsNumberExistRecipientList(const String& conatctNumber) const
+RecipientPanel::IsNumberExistRecipientList(const String& contactNumber) 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)
+ if (pRecipientAddress->phoneNumber.CompareTo(contactNumber) == 0)
{
AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
return true;
if (__pRecipientAddrList->GetCount() > tokenIndex)
{
AddressInfo* pRecipientAddress = static_cast<AddressInfo*>(__pRecipientAddrList->GetAt(tokenIndex));
- if ( pRecipientAddress && pRecipientAddress->phoneNumber.CompareTo(pRecipientAddress->displayName) == 0)
+ if (pRecipientAddress && pRecipientAddress->phoneNumber.CompareTo(pRecipientAddress->displayName) == 0)
{
AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
return true;
void
RecipientPanel::OnUserEventReceivedN(RequestId requestId, IList* pArgs)
{
+ AppLogDebug("ENTER");
switch (requestId)
{
case REQUEST_SHOW_MESSAGE:
__pExpandEditArea->SetFocus();
}
break;
+
+ case REQUEST_EDIT_TOKEN:
+ {
+ AddressInfo* pRecipient= (AddressInfo*) __pRecipientAddrList->GetAt(__selectedIndex);
+ DeleteRecipientAndToken(__selectedIndex);
+ __pExpandEditArea->SetText(pRecipient->phoneNumber);
+ __selectedIndex = -1;
+ }
+ break;
+
+ case REQUEST_DELETE_TOKEN:
+ {
+ DeleteRecipientAndToken(__selectedIndex);
+ __selectedIndex = -1;
+ }
+ break;
+
+
+ case REQUEST_SHOW_TOKEN_POPUP:
+ {
+ if (__pTokenOptionPopup)
+ {
+ delete __pTokenOptionPopup;
+ __pTokenOptionPopup = null;
+ }
+ __selectedIndex = __pExpandEditArea->GetSelectedTokenIndex();
+ if ( __selectedIndex > -1)
+ {
+ AddressInfo* pRecipient= (AddressInfo*) __pRecipientAddrList->GetAt(__selectedIndex);
+ __pTokenOptionPopup = new (std::nothrow) TokenOptionPopup(*this);
+ __pTokenOptionPopup->Construct(pRecipient);
+ __pTokenOptionPopup->SetTitleText(__pExpandEditArea->GetTokenAt(__selectedIndex));
+ __pTokenOptionPopup->Show();
+ }
}
+ break;
+ case REQUEST_ADD_VIEW_CONTACT:
+ {
+ AddressInfo* pRecipient= (AddressInfo*) __pRecipientAddrList->GetAt(__selectedIndex);
+ if (pRecipient->isAddFromContacts)
+ {
+ ContactUtility::ViewContact(pRecipient->phoneNumber);
+ }
+ else
+ {
+ ContactUtility::AddContact(pRecipient->phoneNumber);
+ }
+ }
+ break;
+
+ case REQUEST_DESTROY_TOKEN_OPTION_POPUP:
+ {
+ if (__pTokenOptionPopup)
+ {
+ delete __pTokenOptionPopup;
+ __pTokenOptionPopup = null;
+ }
+ }
+ break;
+
+ }
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+}
+
+void
+RecipientPanel::OnTouchReleased(const Control& source, const Point& currentPosition, const TouchEventInfo& touchInfo)
+{
+ RequestId requestId = REQUEST_SHOW_TOKEN_POPUP;
+ SendUserEvent(requestId, null);
}
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
+ switch (requestId)\r
+ {\r
+ case REQUEST_CLOSE_POPUP:\r
+ __popupListener.OnPopupClose(this);\r
+ break;\r
+ }\r
}\r
\r
void\r
case 1:\r
{\r
// Pop destroy will once deletion is done\r
- pMsgPrModel->Delete(__pConvData->GetEntryId(), *this, REQUEST_DELETE_MESSAGE);\r
+ pMsgPrModel->Delete(__pConvData->GetEntryId(), REQUEST_DELETE_MESSAGE);\r
+ // Send Destroy popup event\r
+ SendUserEvent(REQUEST_CLOSE_POPUP, null);\r
}\r
break;\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
}
result
-SettingPresentationModel::DeleteFilter(IListT< int >* pDeleteIdList, int filterType, Control* pListener)
+SettingPresentationModel::DeleteFilter(IListT<int>* pDeleteIdList, int filterType, IDeleteEventListener* pDeleteListener)
{
AppLogDebug("ENTER");
delete __pDeleteFilterIndexList;
__pDeleteFilterIndexList = null;
}
- __pDeleteFilterListener = pListener;
+ __pDeleteFilterListener = pDeleteListener;
__pDeleteFilterIndexList = pDeleteIdList;
__filterType = filterType;
__pDeleteFilterThread = new (std::nothrow) Thread();
AppLogDebug("ENTER");
int totalCount(0);
- IList* pArgs = null;
- result r = E_SUCCESS;
if (__pDeleteFilterIndexList)
{
totalCount = __pDeleteFilterIndexList->GetCount();
+ // Delete start
if (__pDeleteFilterListener)
{
- pArgs = new (std::nothrow) ArrayList(SingleObjectDeleter);
- if(pArgs)
- {
- pArgs->Add(new Integer(totalCount));
- __pDeleteFilterListener->SendUserEvent(REQUEST_DELETE_START,pArgs);
- }
+ __pDeleteFilterListener->OnDeleteStart(totalCount);
}
for (int count = 0; count < totalCount; ++count)
{
int filterIndex(-1);
- r = __pDeleteFilterIndexList->GetAt(count, filterIndex);
+ __pDeleteFilterIndexList->GetAt(count, filterIndex);
if (filterIndex >= 0)
{
DeleteFilter(filterIndex, __filterType);
+ // Delete update.
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);
- }
+ __pDeleteFilterListener->OnDeleteUpdate(count + 1, totalCount);
}
}
}
__pDeleteFilterIndexList = null;
RefreshSpamFilterList();
}
-
+ // Delete complete call back
if (__pDeleteFilterListener)
{
- pArgs = new (std::nothrow) ArrayList(SingleObjectDeleter);
- if(pArgs)
- {
- pArgs->Add(new Integer(E_SUCCESS));
- __pDeleteFilterListener->SendUserEvent(REQUEST_DELETE_COMPLETE,pArgs);
- }
+ __pDeleteFilterThread->Sleep(90);
+ __pDeleteFilterListener->OnDeleteComplete(0, null);
}
AppLogDebug("EXIT: r = %s", GetErrorMessage(GetLastResult()));
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
+ /* 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
+ SETTING_STYLE_EXPANDABLE,\r
+ SETTING_STATUS_ITEM_INPUTMODE);\r
__pSettingItemsArray->AddItem(groupIndex, *settingItem);\r
\r
groupIndex = __pSettingItemsArray->AddGroup("", SETTING_GROUP_STYLE_NORMAL, false);\r
AppLogDebug("ENTER");\r
\r
result r = E_SUCCESS;\r
- __pBlockWordFilterIndex = new (std::nothrow) ArrayListT< int>();\r
+ __pBlockWordFilterIndex = new (std::nothrow) ArrayListT<int>();\r
__pBlockWordFilterIndex->Construct();\r
- __pNumberFilterIndex = new (std::nothrow) ArrayListT< int>();\r
+ __pNumberFilterIndex = new (std::nothrow) ArrayListT<int>();\r
__pNumberFilterIndex->Construct();\r
\r
\r
// limitations under the License.
//
+#include "MsgIRestoreEventListener.h"
#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)
+SpamRestoreHandler::SpamRestoreHandler(IRestoreEventListener* pRestoreListener)
+ : __pRestoreListener(pRestoreListener)
+ , __pRestoreThread(null)
+ , __pselectedIds(null)
{
AppLogDebug("ENTER");
AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
{
AppLogDebug("ENTER");
- if(__pselectedIds)
+ Cancel();
+ if (__pselectedIds)
{
__pselectedIds->RemoveAll();
delete __pselectedIds;
__pselectedIds = null;
}
- __parentCtrl = null;
+
AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
}
result
-SpamRestoreHandler::Construct(void)
+SpamRestoreHandler::Construct(Tizen::Base::Collection::IListT<int>* pSelectedIds)
{
AppLogDebug("ENTER");
- result r = Thread::Construct();
+ result r = E_SUCCESS;
+ __pselectedIds = (ArrayListT<int>*)pSelectedIds;
+
AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
return r;
}
+void
+SpamRestoreHandler::Start(void)
+{
+ AppLogDebug("ENTER");
+
+ Cancel();
+ __pRestoreThread = new (std::nothrow) Thread();
+ __pRestoreThread->Construct(*this);
+ __pRestoreThread->Start();
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+SpamRestoreHandler::Cancel(void)
+{
+ AppLogDebug("ENTER");
+
+ if (__pRestoreThread)
+ {
+ __pRestoreThread->Join();
+ delete __pRestoreThread;
+ __pRestoreThread = null;
+ }
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+
Object*
SpamRestoreHandler::Run(void)
{
AppLogDebug("ENTER");
-
- IList* pArgs = null;
- if(__parentCtrl)
+
+ if (__pselectedIds->GetCount() > 0)
{
- if(__pselectedIds->GetCount() > 0)
+ if (__pRestoreListener)
{
- 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++)
+ __pRestoreListener->OnRestoreStart(__pselectedIds->GetCount());
+ }
+ ThreadPresentationModel* pThreadPrModel = ThreadPresentationModel::GetInstance();
+ for (int index = 0; index < __pselectedIds->GetCount(); index++)
+ {
+ int entryId = 0;
+ if (__pselectedIds->GetAt(index, entryId) == E_SUCCESS)
{
- int entryId = 0;
- if(__pselectedIds->GetAt(index,entryId) == E_SUCCESS)
+ pThreadPrModel->MoveMessageToInbox(entryId);
+ if (__pRestoreListener)
{
- 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);
- }
+ __pRestoreListener->OnRestoreUpdate(index + 1, __pselectedIds->GetCount());
}
}
}
- pArgs = new (std::nothrow) ArrayList(SingleObjectDeleter);
- if(pArgs)
- {
- pArgs->Add(new Integer(0));
- __parentCtrl->SendUserEvent(REQUEST_DELETE_COMPLETE,pArgs);
- }
}
+ if (__pRestoreListener)
+ {
+ __pRestoreThread->Sleep(90); // Put this delay to show complete progress.
+ __pRestoreListener->OnRestoreComplete(E_SUCCESS, null);
+ }
+
AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
return null;
-
}
r = Construct(L"IDL_SETTING_DELETE_FILTER_FORM");
ShowSelectionInfo();
}
- break;
+ break;
}
if (!IsFailed(r))
{
case SPAM_SETTING_FORM_DELETE_BLOCK_WORD:
case SPAM_SETTING_FORM_DELETE_REJECT_NUMBER:
{
- __pSelectedIds = new (std::nothrow) ArrayListT< int>();
+ __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);
+
+ ButtonItem buttonRightItem;
+ buttonRightItem.Construct(BUTTON_ITEM_STYLE_TEXT, IDA_SELECT_ALL);
+ Bitmap* pBitMap = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_SELECT_ALL);
+ buttonRightItem.SetIcon(BUTTON_ITEM_STATUS_NORMAL, pBitMap);
+ pBitMap = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_SELECT_ALL_PRESSED);
+ buttonRightItem.SetIcon(BUTTON_ITEM_STATUS_PRESSED, pBitMap);
+ GetHeader()->SetButton(BUTTON_POSITION_RIGHT, buttonRightItem);
+ GetHeader()->Invalidate(true);
+
+
__pGroupedTableView = static_cast<GroupedTableView*>(GetControl(L"IDC_GROUPEDTABLEVIEW_FILTERLIST"));
}
break;
if (__pSettingItemsArray)
{
__pGroupedTableView->CollapseAllGroup();
- LoadCurrentSettings();
+ // LoadCurrentSettings();
}
}
if (__pEditField)
pArgs->RemoveAll(true);
delete pArgs;
}
+ LoadCurrentSettings();
// Set footer
if (GetFooter() && pFilterList)
{
switch (actionId)
{
+
+ case IDA_SELECT_ALL:
+ {
+ SettingPresentationModel* pSettingsPrModel = SettingPresentationModel::GetInstance();
+ if(pSettingsPrModel)
+ {
+ SpamFilterList* pSpamFilterList = pSettingsPrModel->GetSpamFilterList();
+ bool selectAll(false);
+ if(SPAM_SETTING_FORM_DELETE_BLOCK_WORD == __spamFormType)
+ {
+ selectAll = (pSpamFilterList->GetBlockWordCount() != __pSelectedIds->GetCount());
+ }
+ else
+ {
+ selectAll = (pSpamFilterList->GetBlockNumberCount() != __pSelectedIds->GetCount());
+ }
+ CheckAll(selectAll);
+ }
+ }
+ break;
+
case IDA_SELECT_ALL_ON:
CheckAll(true);
break;
case IDA_SAVE:
case IDA_SAVE_REJECT_NUMBER:
{
- String number = __pEditField->GetText();
- char* pPhoneNumber = CommonUtil::ConvertStringToPointerCharArrayN(number);
+ String editFieldText = __pEditField->GetText();
+ char* pPhoneNumber = CommonUtil::ConvertStringToPointerCharArrayN(editFieldText);
int size = strlen(pPhoneNumber);
if (size > 40)
{
messageBox.ShowAndWait(modalResult);
__pEditField->SetFocus();
}
- else if (!number.IsEmpty())
+ else if (!editFieldText.IsEmpty())
{
- ShowConfirmationPopup();
+ if (__pEditField)
+ {
+ __pEditField->HideKeypad();
+ if (actionId != IDA_SAVE_REJECT_NUMBER)
+ {
+ ShowConfirmationPopup();
+ }
+ else
+ {
+ SaveSpamFilter(SPAM_FILTER_TYPE_BLOCK_NUMBER);
+ }
+ }
}
else
{
}
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)
{
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);
+ SettingPresentationModel* pSettingPrModel = SettingPresentationModel::GetInstance();
+ int itemPosition = 0;
+ bool result = false;
+ if(groupIndex == 1)
+ {
+ while(itemPosition++ < pSettingPrModel->GetSpamFilterList()->GetBlockNumberCount())
+ {
+ if ((__pEditField->GetText().CompareTo(pSettingPrModel->GetSpamFilterList()->GetFilterText(itemPosition - 1, SPAM_FILTER_TYPE_BLOCK_NUMBER)) == 0))
+ {
+ int filterCriteria = pSettingPrModel->GetSpamFilterList()->GetFilterType(itemPosition - 1, SPAM_FILTER_TYPE_BLOCK_NUMBER);
+ if(filterCriteria - 1 != itemIndex)
+ {
+ result = true;
+ break;
+ }
+ }
+ }
+ }
+ pFooter->SetItemEnabled(0, result);
+ pFooter->Invalidate(true);
}
SettingItem& settingItem = __pSettingItemsArray->GetItemAt(groupIndex, itemIndex);
__pSelectedIds->Add(itemIndex);
if (__pSelectedIds->GetCount() == totalCount)
{
- CheckButton* pCheckAll = static_cast<CheckButton*>(GetControl(L"IDC_CHECKBUTTON_SELECTALL"));
- pCheckAll->SetSelected(true);
+ //TODO: Need to update the check box
}
ShowSelectionInfo();
}
__pSelectedIds->Remove(itemIndex);
if (__pSelectedIds->GetCount() <= totalCount)
{
- CheckButton* pCheckAll = static_cast<CheckButton*>(GetControl(L"IDC_CHECKBUTTON_SELECTALL"));
- pCheckAll->SetSelected(false);
+ //TODO: Need to update the check box
}
ShowSelectionInfo();
}
__pSelectedIds->Add(itemIndex);
if (__pSelectedIds->GetCount() == totalCount)
{
- CheckButton* pCheckAll = static_cast<CheckButton*>(GetControl(L"IDC_CHECKBUTTON_SELECTALL"));
- pCheckAll->SetSelected(true);
+ //TODO: Need to update the check box
}
Invalidate(true);
ShowSelectionInfo();
__pSelectedIds->Remove(itemIndex);
if (__pSelectedIds->GetCount() <= totalCount)
{
- CheckButton* pCheckAll = static_cast<CheckButton*>(GetControl(L"IDC_CHECKBUTTON_SELECTALL"));
- pCheckAll->SetSelected(false);
+ //TODO: Need to update the check box
}
Invalidate(true);
ShowSelectionInfo();
// 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->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);
// 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->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);
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);
+
+ SettingPresentationModel* pSettingPrModel = SettingPresentationModel::GetInstance();
+ int itemPosition = 0;
+ bool result = true;
+ while(itemPosition++ < pSettingPrModel->GetSpamFilterList()->GetBlockNumberCount())
+ {
+ if ((__pEditField->GetText().CompareTo(pSettingPrModel->GetSpamFilterList()->GetFilterText(itemPosition - 1, SPAM_FILTER_TYPE_BLOCK_NUMBER)) == 0))
+ {
+ int filterCriteria = pSettingPrModel->GetSpamFilterList()->GetFilterType(itemPosition - 1, SPAM_FILTER_TYPE_BLOCK_NUMBER);
+ if(filterCriteria - 1 == __selectedMatchCriteriaIndex)
+ {
+ result = false;
+ break;
+ }
+ }
+ }
+ header.SetButtonEnabled(BUTTON_POSITION_LEFT, result && __pEditField->GetTextLength() > 0);
ButtonItem rightButton;
rightButton.Construct(BUTTON_ITEM_STYLE_TEXT, IDA_CANCEL_REJECT_NUMBER);
SpamSettingsForm::ShowSelectionInfo(void)
{
AppLogDebug("ENTER");
- String strText,selcInfo;
+ 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);
AppLogDebug("ENTER");
SettingPresentationModel* pSettingPrModel = SettingPresentationModel::GetInstance();
- SpamFiterType filterType = SPAM_FILTER_TYPE_BLOCK_WORD;
+ SpamFilterType filterType = SPAM_FILTER_TYPE_BLOCK_WORD;
if (__spamFormType == SPAM_SETTING_FORM_DELETE_REJECT_NUMBER)
{
filterType = SPAM_FILTER_TYPE_BLOCK_NUMBER;
{
__pEditField->SetText(*pPhoneNumber);
}
- if(__pEditField->HasFocus() == false)
+ if (__pEditField->HasFocus() == false)
{
__pEditField->SetFocus();
}
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);
- }
+ 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();
}
void
-SpamSettingsForm::SaveSpamFilter(SpamFiterType filterType)
+SpamSettingsForm::SaveSpamFilter(SpamFilterType filterType)
{
AppLogDebug("ENTER");
bool alreadyExist(false);
- int index(0),count(0);
+ int index(0), count(0);
if (__pConfirmationPopup)
{
delete __pConfirmationPopup;
__pConfirmationPopup = null;
}
SettingPresentationModel* pSettingPrModel = SettingPresentationModel::GetInstance();
- if (pSettingPrModel)
+ SpamFilterList* pFilterList = SettingPresentationModel::GetInstance()->GetSpamFilterList();
+
+ if (pSettingPrModel && pFilterList)
{
String filterText = __pEditField->GetText();
if (filterType == SPAM_FILTER_TYPE_BLOCK_WORD)
{
count = pSettingPrModel->GetSpamFilterList()->GetBlockWordCount();
- while(index++ < count)
+ while (index++ < count)
{
// Check for duplicate word
- if(filterText.CompareTo(pSettingPrModel->GetSpamFilterList()->GetFilterText(index - 1,filterType)) == 0)
+ if (filterText.CompareTo(pSettingPrModel->GetSpamFilterList()->GetFilterText(index - 1, filterType)) == 0)
{
alreadyExist = true;
break;
}
}
- if(!alreadyExist)
+ if (!alreadyExist)
{
if (__editSpamFilterIndex >= 0)
{
else
{
count = pSettingPrModel->GetSpamFilterList()->GetBlockNumberCount();
- while(index++ < count)
+ while (index++ < count)
{
// Check for duplicate number
- if(filterText.CompareTo(pSettingPrModel->GetSpamFilterList()->GetFilterText(index - 1,filterType)) == 0)
+ if ((filterText.CompareTo(pSettingPrModel->GetSpamFilterList()->GetFilterText(index - 1, filterType)) == 0))
{
- alreadyExist = true;
- break;
+ int filterCriteria = pSettingPrModel->GetSpamFilterList()->GetFilterType(index - 1, SPAM_FILTER_TYPE_BLOCK_NUMBER);
+ if (__selectedMatchCriteriaIndex == filterCriteria - 1)
+ {
+ alreadyExist = true;
+ break;
+ }
}
}
- if(!alreadyExist)
+ if (!alreadyExist)
{
if (__editSpamFilterIndex >= 0)
{
String editText = __pEditField->GetText();
int index(0);
- if(editText.IndexOf(L'\n',0,index) == E_SUCCESS)
+ if (editText.IndexOf(L'\n', 0, index) == E_SUCCESS)
{
- editText.Replace(L'\n',' ');
+ editText.Replace(L'\n', ' ');
__pEditField->SetText(editText);
}
{
AppLogDebug("ENTER");
- if (__pProgressPopup)
- {
- __pProgressPopup->ShowPopup();
- }
+ this->SendUserEvent(REQUEST_DELETE_START, null);
AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
return;
{
AppLogDebug("ENTER");
- if (__pProgressPopup)
- {
- String statusInfo;
- statusInfo.Format(MAX_LEN_SELECTION_INFO, IDS_DELETED_NUMBER_IDS, deleteCount, totalCount);
- __pProgressPopup->UpdateProgressInfo(statusInfo);
- __pProgressPopup->SetProgressValue(deleteCount);
- }
+ ArrayList* pArgs = new (std::nothrow) ArrayList(SingleObjectDeleter);
+ pArgs->Construct();
+ pArgs->Add(new (std::nothrow) Integer(deleteCount));
+ pArgs->Add(new (std::nothrow) Integer(totalCount));
+ this->SendUserEvent(REQUEST_DELETE_UPDATE, pArgs);
AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
return;
}
void
-SpamSettingsForm::OnDeleteComplete(int errCode, Object* pThreadObject)
+SpamSettingsForm::OnDeleteComplete(int errCode, Object* pDeleteHandler)
{
AppLogDebug("ENTER");
- // Back to thread view mode
- if (__pProgressPopup)
- {
- __pProgressPopup->HidePopup();
- delete __pProgressPopup;
- __pProgressPopup = null;
- }
-
+ this->SendUserEvent(REQUEST_DELETE_COMPLETE, null);
// UI thread, Back to list view mode.
RequestId requestId = REQUEST_NORMAL_VIEW;
SendUserEvent(requestId, null);
break;
case REQUEST_DELETE_START:
- if(pArgs->GetCount() > 0)
+ {
+ if (__pProgressPopup)
{
- Integer* pTotalCount = (Integer*)pArgs->GetAt(0);
- OnDeleteStart(pTotalCount->ToInt());
- delete pArgs;
+ __pProgressPopup->Show();
}
- break;
+ }
+ break;
case REQUEST_DELETE_UPDATE:
- if(pArgs->GetCount() > 0)
+ {
+ if (__pProgressPopup)
{
- Integer* pCurrentCount = (Integer*)pArgs->GetAt(0);
- Integer* pTotalCount = (Integer*)pArgs->GetAt(1);
- OnDeleteUpdate(pCurrentCount->ToInt(),pTotalCount->ToInt());
- delete pArgs;
+ if (pArgs && pArgs->GetCount() > 1)
+ {
+ Integer* pCurrentCount = (Integer*) pArgs->GetAt(0);
+ Integer* pTotalCount = (Integer*) pArgs->GetAt(1);
+ String statusInfo;
+ statusInfo.Format(MAX_LEN_SELECTION_INFO, IDS_DELETED_NUMBER_IDS, pCurrentCount->ToInt(), pTotalCount->ToInt());
+ __pProgressPopup->UpdateProgressInfo(statusInfo);
+ __pProgressPopup->SetProgressValue(pCurrentCount->ToInt());
+ }
}
- break;
+ delete pArgs;
+ }
+ break;
case REQUEST_DELETE_COMPLETE:
- if(pArgs->GetCount() > 0)
+ {
+ // Delete progress popup
+ if (__pProgressPopup)
{
- Integer* pStatus = (Integer*)pArgs->GetAt(0);
- OnDeleteComplete(pStatus->ToInt(),null);
- delete pArgs;
+ __pProgressPopup->HidePopup();
+ delete __pProgressPopup;
+ __pProgressPopup = null;
}
- break;
+ }
+ break;
default:
break;
// 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
+enum InternalActionIds\r
+{\r
+ IDA_DELETE_SUBJECT,\r
+};\r
+\r
+\r
SubjectControl::SubjectControl(void)\r
: __pFocusEvent(null)\r
, __pEditArea(null)\r
, __pDeleteButton(null)\r
, __pBgBitmap(null)\r
+ , __pActionEventListener(null)\r
{\r
// Empty implementation\r
}\r
Bitmap* pPressBitMap = BitmapUtility::GetInstance()->GetIconN(MSG_ICON_PAGE_DELETE_PRESS);\r
__pDeleteButton->SetPressedBackgroundBitmap(*pPressBitMap);\r
__pDeleteButton->SetShowState(false);\r
+ __pDeleteButton->SetActionId(IDA_DELETE_SUBJECT);\r
+ __pDeleteButton->AddActionEventListener(*this);\r
AddControl(*__pDeleteButton);\r
delete pPressBitMap;\r
delete pNormalBitMap;\r
}\r
\r
void\r
-SubjectControl::AddActionEventListener(IActionEventListener& listener)\r
+SubjectControl::SetActionEventListener(IActionEventListener& listener)\r
{\r
AppLogDebug("ENTER");\r
- __pDeleteButton->AddActionEventListener(listener);\r
+ __pActionEventListener = &listener;\r
AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
}\r
\r
SubjectControl::SetDeleteActionId(int actionId)\r
{\r
AppLogDebug("ENTER");\r
- __pDeleteButton->SetActionId(actionId);\r
+ __deleteActionId = actionId;\r
AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
}\r
\r
editorSize.width = rectangle.width;\r
}\r
__pEditArea->SetSize(editorSize);\r
- Draw();\r
- Show();\r
AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
}\r
\r
AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));\r
return __pEditArea->GetText();\r
}\r
+\r
+void\r
+SubjectControl::OnActionPerformed(const Control& source, int actionId)\r
+{\r
+ AppLogDebug("ENTER");\r
+\r
+ switch(actionId)\r
+ {\r
+ case IDA_DELETE_SUBJECT:\r
+ {\r
+ if(__pActionEventListener)\r
+ {\r
+ __pActionEventListener->OnActionPerformed(*this, __deleteActionId);\r
+ }\r
+ }\r
+ break;\r
+\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_types.h>
+
+#include <FApp.h>
+#include <FBase.h>
+#include <FGraphics.h>
+#include <FUiCtrlLabel.h>
+
+#include "MsgAttachItemCntl.h"
+#include "MsgBubbleBackgroundCntl.h"
+#include "MsgBitmapUtility.h"
+#include "MsgConversationData.h"
+#include "MsgFontsettings.h"
+#include "MsgMultiLineTextItemCntl.h"
+#include "MsgProgressCntl.h"
+#include "MsgTVBubbleListItem.h"
+#include "MsgTypes.h"
+
+
+using namespace Tizen::App;
+using namespace Tizen::Base;
+using namespace Tizen::Base::Runtime;
+using namespace Tizen::Graphics;
+using namespace Tizen::Ui;
+using namespace Tizen::Ui::Controls;
+
+const wchar_t* IDC_MESSAGE_BUBBLE = L"IDC_MESSAGE_BUBBLE";
+const wchar_t* IDC_MESSAGE_BODY = L"IDC_MESSAGE_BODY";
+const wchar_t* IDC_TIME_STAMP = L"IDC_TIME_STAMP";
+const wchar_t* IDC_MESSAGE_DETAIL = L"IDC_MESSAGE_DETAIL";
+const wchar_t* IDC_ATTACH_FILE_THUMBNAIL = L"IDC_ATTACH_FILE_THUMBNAIL";
+const wchar_t* IDC_ATTACH_FILE_NAME = L"IDC_ATTACH_FILE_NAME";
+const wchar_t* IDC_ATTACH_FILE_COUNT = L"IDC_ATTACH_FILE_COUNT";
+const wchar_t* IDC_FAIL_INDICATOR = L"IDC_FAIL_INDICATOR";
+
+
+TVBubbleListItem::TVBubbleListItem(ConversationData& msgEntry, int width, FontSettings& fontSettings, bool editMode)
+ : __convData(msgEntry)
+ , __Width(width)
+ , __editMode(editMode)
+ , __fontSettings(fontSettings)
+ , __pLongPressTimer(null)
+ , __isLongPressed(false)
+{
+ AppLogDebug("ENTER");
+ //intialize default bubble margin
+ if (msgEntry.IsSent())
+ {
+ __leftMargin = (int) MARGIN_20PX;
+ __rightMargin = (int) MARGIN_46PX;
+ __topMargin = (int) MARGIN_14PX;
+ __bottomMargin = (int) MARGIN_22PX;
+
+ }
+ else
+ {
+ __leftMargin = (int) MARGIN_46PX;
+ __rightMargin = (int) MARGIN_28PX;
+ __topMargin = (int) MARGIN_14PX;
+ __bottomMargin = (int) MARGIN_22PX;
+ }
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+}
+
+TVBubbleListItem::~TVBubbleListItem(void)
+{
+ AppLogDebug("ENTER");
+
+ RemoveTouchEventListener(*this);
+
+ if (__pLongPressTimer)
+ {
+ __pLongPressTimer->Cancel();
+ delete __pLongPressTimer;
+ }
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+}
+
+MultiLineTextItemCntl*
+TVBubbleListItem::CreateTimeStampElementN(void)
+{
+ AppLogDebug("ENTER");
+
+ MultiLineTextItemCntl* pMsgTimeStamp = null;
+
+ pMsgTimeStamp = new (std::nothrow) MultiLineTextItemCntl();
+ pMsgTimeStamp->Construct();
+ Bitmap* pTimeStampBg = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_BUBBLE_DATE_BG);
+ pMsgTimeStamp->SetBackgroundImage(*pTimeStampBg);
+ pMsgTimeStamp->SetSelectionImage(*pTimeStampBg);
+ Font* pTimeStampFont = __fontSettings.GetFont(MSG_FONT_ID_TIME_STAMP);
+ if (__convData.IsSent())
+ {
+ pMsgTimeStamp->AddText(__convData.GetTimeStamp(),
+ COLOR_BUBBLE_SENT_TIME_STAMP, COLOR_BUBBLE_SENT_TIME_STAMP,
+ pTimeStampFont);
+ }
+ else
+ {
+ pMsgTimeStamp->AddText(__convData.GetTimeStamp(),
+ COLOR_BUBBLE_RECEIVE_TIME_STAMP, COLOR_BUBBLE_RECEIVE_TIME_STAMP,
+ pTimeStampFont);
+ }
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return pMsgTimeStamp;
+}
+
+MultiLineTextItemCntl*
+TVBubbleListItem::CreateContentElementN(void)
+{
+ AppLogDebug("ENTER");
+
+ // Create content
+ MultiLineTextItemCntl* pMsgContent = null;
+ String bodyText(__convData.GetMessageText());
+ String subject(__convData.GetSubject());
+ if ((bodyText.GetLength() > 0 || subject.GetLength() > 0))
+ {
+ pMsgContent = new (std::nothrow) MultiLineTextItemCntl();
+ pMsgContent->Construct();
+ pMsgContent->SetName(IDC_MESSAGE_BODY);
+ pMsgContent->SetTextMargin(__leftMargin, __rightMargin, 0, 0);
+ pMsgContent->SetMinimumHeight(MIN_BUBBLE_HEIGHT);
+ // If subject exist Add it.
+ if (subject.GetLength() > 0)
+ {
+ if (bodyText.GetLength() > 0)
+ {
+ bodyText.Insert("\n", 0);
+ }
+ pMsgContent->AddText(subject, COLOR_SEARCH_TEXT, COLOR_SEARCH_TEXT,
+ __fontSettings.GetMessageFont());
+ }
+ // Set Body Text
+ if (bodyText.GetLength() > 0)
+ {
+ pMsgContent->AddText(bodyText, COLOR_BUBBLE_TEXT_NORMAL,
+ COLOR_BUBBLE_TEXT_NORMAL, __fontSettings.GetMessageFont());
+ }
+ }
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return pMsgContent;
+
+}
+
+void
+TVBubbleListItem::CreateBubbleLayout(bool showAnimation)
+{
+ AppLogDebug("ENTER");
+
+ int leftX(0), leftY(MARGIN_12PX);
+ // Check mode
+ int checkboxWidth(0);
+ TableViewAnnexStyle listStyle = TABLE_VIEW_ANNEX_STYLE_NORMAL;
+ if (__editMode)
+ {
+ // add check box element here for edit mode.
+ listStyle = TABLE_VIEW_ANNEX_STYLE_MARK;
+ checkboxWidth = TableViewItem::GetAnnexWidth(listStyle) + MARGIN_26PX * 2;
+ }
+ //Reserver space for check box, traditional way.
+ int itemWidth = __Width - checkboxWidth;
+ // For failed item date field won't be there.
+ int statusWidth(0), statusHeight(0);
+ ProgressCntl* pMsgSendProgressCntl = null;
+ Button* pMsgSendFailIndicator = null;
+ MultiLineTextItemCntl* pMsgTimeStamp = null;
+ if (__convData.IsSending())
+ {
+ pMsgSendProgressCntl = new (std::nothrow) ProgressCntl();
+ if (pMsgSendProgressCntl)
+ {
+ pMsgSendProgressCntl->Construct(Rectangle(0, 0, W_ICON_32PX, H_ICON_32PX));
+ statusWidth = pMsgSendProgressCntl->GetWidth() + MARGIN_16PX + MARGIN_10PX;
+ statusHeight = pMsgSendProgressCntl->GetHeight();
+ }
+ }
+ else if (__convData.IsSentFail())
+ {
+ pMsgSendFailIndicator = new (std::nothrow) Button();
+ if (pMsgSendFailIndicator)
+ {
+ pMsgSendFailIndicator->Construct(Rectangle(0, 0, W_ICON_64PX, H_ICON_64PX));
+ pMsgSendFailIndicator->SetName(IDC_FAIL_INDICATOR);
+ Bitmap* pNormalBgBitmap = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_WARNING_CIRCLE_BUTTON_BG);
+ Bitmap* pPressBgBitmap = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_WARNING_CIRCLE_BUTTON_BG_PRESS);
+ pMsgSendFailIndicator->SetNormalBackgroundBitmap(*pNormalBgBitmap);
+ pMsgSendFailIndicator->SetPressedBackgroundBitmap(*pPressBgBitmap);
+ Bitmap* pIconBitmap = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_WARNING, Dimension(W_ICON_64PX, H_ICON_64PX));
+ pMsgSendFailIndicator->SetNormalBitmap(Point(0, 0), *pIconBitmap);
+ pMsgSendFailIndicator->SetEnabled(!__editMode);
+ statusWidth = H_ICON_64PX + MARGIN_16PX + MARGIN_10PX;
+ statusHeight = H_ICON_64PX;
+ }
+ }
+ else
+ {
+ pMsgTimeStamp = CreateTimeStampElementN();
+ pMsgTimeStamp->CreateTextLayout(__Width);
+ statusWidth = pMsgTimeStamp->GetMaxWidth() + MARGIN_16PX + MARGIN_10PX; /* + MARGIN_10PX*2 */
+ statusHeight = pMsgTimeStamp->GetMinHeight();
+ }
+ //Create text layout.
+ int bubbleWidth(0);
+ int bubbleHeight(__topMargin + __bottomMargin);
+ MultiLineTextItemCntl* pMsgContent = CreateContentElementN();
+ if (pMsgContent)
+ {
+ pMsgContent->CreateTextLayout(itemWidth - statusWidth);
+ bubbleHeight += pMsgContent->GetMinHeight();
+ bubbleWidth += pMsgContent->GetMaxWidth();
+ }
+ // MMS related bubble element height need to be include
+ AttachItemCntl* pAttachMentDetail = null;
+ AttachItemCntl* pImageVideoAttachment = null;
+ AttachItemCntl* pAudioAttachment = null;
+ Button* pMmsDetail = null;
+ if (__convData.IsMms())
+ {
+ if (__convData.GetAttachmentCount() > 0)
+ {
+ // Create attachment layout.
+ pAttachMentDetail = new (std::nothrow) AttachItemCntl(ATTACHMENT_TYPE_ATTACH_COUNT);
+ if (pAttachMentDetail)
+ {
+ String attachCount;
+ attachCount.Append(__convData.GetAttachmentCount());
+ pAttachMentDetail->Construct(itemWidth - statusWidth - __leftMargin - __rightMargin);
+ pAttachMentDetail->SetName(IDC_ATTACH_FILE_NAME);
+ pAttachMentDetail->SetTitleText(attachCount, __fontSettings.GetFont(MSG_FONT_ID_TINY));
+ bubbleHeight += pAttachMentDetail->GetMinimumHeight();
+ if (bubbleWidth < (pAttachMentDetail->GetMimimumWidth() + __leftMargin + __rightMargin))
+ {
+ bubbleWidth = (pAttachMentDetail->GetMimimumWidth() + __leftMargin + __rightMargin);
+ }
+ }
+ bubbleHeight += MARGIN_14PX;
+ }
+ // Check Image/Video for 1st page
+ if (!__convData.GetImagePath().IsEmpty())
+ {
+ pImageVideoAttachment = new (std::nothrow) AttachItemCntl(ATTACHMENT_TYPE_IMAGE, __convData.GetThumbnail());
+ pImageVideoAttachment->Construct(itemWidth - statusWidth - __leftMargin - __rightMargin);
+ }
+ else if (!__convData.GetVideoPath().IsEmpty())
+ {
+ pImageVideoAttachment = new (std::nothrow) AttachItemCntl(ATTACHMENT_TYPE_VIDEO, __convData.GetThumbnail());
+ pImageVideoAttachment->Construct(itemWidth - statusWidth - __leftMargin - __rightMargin);
+ }
+ if (pImageVideoAttachment)
+ {
+ pImageVideoAttachment->SetEnabled(!__editMode);
+ pImageVideoAttachment->SetName(IDC_ATTACH_FILE_THUMBNAIL);
+ if (bubbleWidth < (pImageVideoAttachment->GetMimimumWidth() + __leftMargin + __rightMargin))
+ {
+ bubbleWidth = pImageVideoAttachment->GetMimimumWidth() + __leftMargin + __rightMargin;
+ }
+ bubbleHeight += (MARGIN_14PX + pImageVideoAttachment->GetMinimumHeight());
+ }
+ // Check for Audio file
+ if (!__convData.GetAudioPath().IsEmpty())
+ {
+ pAudioAttachment = new (std::nothrow) AttachItemCntl(ATTACHMENT_TYPE_AUDIO);
+ if (pAudioAttachment)
+ {
+ pAudioAttachment->Construct(itemWidth - statusWidth - __leftMargin - __rightMargin);
+ pAudioAttachment->SetTitleText(__convData.GetAudioPath(), __fontSettings.GetFont(MSG_FONT_ID_TINY));
+ pAudioAttachment->SetName(IDC_ATTACH_FILE_NAME);
+ bubbleHeight += pAudioAttachment->GetMinimumHeight();
+ if (bubbleWidth < (pAudioAttachment->GetMimimumWidth() + __leftMargin + __rightMargin))
+ {
+ bubbleWidth = (pAudioAttachment->GetMimimumWidth() + __leftMargin + __rightMargin);
+ }
+ pAudioAttachment->SetEnabled(!__editMode);
+ }
+ bubbleHeight += MARGIN_14PX;
+ }
+ // Detail button
+ if (!__convData.IsSending())
+ {
+ pMmsDetail = new (std::nothrow) Button();
+ if (pMmsDetail)
+ {
+ pMmsDetail->Construct(Rectangle(0, 0, W_ICON_64PX, H_ICON_64PX));
+ pMmsDetail->SetName(IDC_MESSAGE_DETAIL);
+ Bitmap* pNormalBgBitmap = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_CIRCLE_BUTTON_BG);
+ Bitmap* pPressBgBitmap = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_CIRCLE_BUTTON_BG_PRESS);
+ pMmsDetail->SetNormalBackgroundBitmap(*pNormalBgBitmap);
+ pMmsDetail->SetPressedBackgroundBitmap(*pPressBgBitmap);
+ Bitmap* pIconBitmap = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_ARROW_EXPAND);
+ pMmsDetail->SetNormalBitmap(Point((W_ICON_64PX - pIconBitmap->GetWidth()) / 2, (W_ICON_64PX - pIconBitmap->GetHeight()) / 2), *pIconBitmap);
+ pMmsDetail->SetEnabled(!__editMode);
+ bubbleHeight += H_ICON_64PX;
+ if (bubbleWidth < (W_ICON_64PX * 3 + __leftMargin + __rightMargin))
+ {
+ bubbleWidth = (W_ICON_64PX * 3 + __leftMargin + __rightMargin);
+ }
+ }
+ bubbleHeight += MARGIN_14PX;
+ }
+ }
+ bubbleHeight += (MARGIN_12PX * 2); // Include margin between two bubble
+ Construct(Dimension(__Width, bubbleHeight), listStyle);
+ AddTouchEventListener(*this);
+ // Disable default list item selection color
+ SetBackgroundColor(GetBackgroundColor(TABLE_VIEW_ITEM_DRAWING_STATUS_NORMAL), TABLE_VIEW_ITEM_DRAWING_STATUS_NORMAL);
+ SetBackgroundColor(GetBackgroundColor(TABLE_VIEW_ITEM_DRAWING_STATUS_NORMAL), TABLE_VIEW_ITEM_DRAWING_STATUS_PRESSED);
+ SetBackgroundColor(GetBackgroundColor(TABLE_VIEW_ITEM_DRAWING_STATUS_NORMAL), TABLE_VIEW_ITEM_DRAWING_STATUS_HIGHLIGHTED);
+ if (__convData.IsSent())
+ {
+ leftX = itemWidth - bubbleWidth;
+ }
+ // Add Bubble background.
+ BubbleBackgroundCntl* pBackgroudItem = new (std::nothrow) BubbleBackgroundCntl();
+ pBackgroudItem->Construct(__convData.IsSent());
+ pBackgroudItem->SetName(IDC_MESSAGE_BUBBLE);
+ pBackgroudItem->SetBounds(Rectangle(leftX, leftY, bubbleWidth, bubbleHeight - MARGIN_12PX * 2));
+ AddControl(*pBackgroudItem);
+ pBackgroudItem->AddTouchEventListener(*this);
+ SetIndividualSelectionEnabled(pBackgroudItem, false);
+
+ int yPos(__topMargin + MARGIN_12PX);
+ if (pMsgContent)
+ {
+ pMsgContent->SetBounds(Rectangle(leftX, yPos, pMsgContent->GetMaxWidth(), pMsgContent->GetMinHeight()));
+ AddControl(*pMsgContent);
+ pMsgContent->AddTouchEventListener(*this);
+ SetIndividualSelectionEnabled(pMsgContent, false);
+ yPos += pMsgContent->GetMinHeight();
+ }
+ if (__convData.IsSent())
+ {
+ if (pMsgSendProgressCntl)
+ {
+ // Add message sending progress control
+ pMsgSendProgressCntl->SetBounds(Rectangle(leftX - statusWidth + MARGIN_16PX
+ , bubbleHeight - statusHeight - MARGIN_20PX, statusWidth - MARGIN_16PX - MARGIN_10PX, statusHeight));
+ AddControl(*pMsgSendProgressCntl);
+ SetIndividualSelectionEnabled(pMsgSendProgressCntl, __editMode);
+ if (showAnimation && __convData.GetAnimationShowState())
+ {
+ pMsgSendProgressCntl->Start();
+ }
+ }
+ else if (pMsgSendFailIndicator)
+ {
+ // Add message send fail indicator control
+ pMsgSendFailIndicator->SetBounds(Rectangle(leftX - statusWidth + MARGIN_16PX
+ , bubbleHeight - statusHeight - __bottomMargin - MARGIN_12PX, statusWidth - MARGIN_16PX - MARGIN_10PX, statusHeight));
+ AddControl(*pMsgSendFailIndicator);
+ pMsgSendFailIndicator->AddTouchEventListener(*this);
+ SetIndividualSelectionEnabled(pMsgSendFailIndicator, __editMode);
+ }
+ else
+ {
+ // Add date control
+ pMsgTimeStamp->SetBounds(Rectangle(leftX - statusWidth, bubbleHeight - statusHeight - __bottomMargin - MARGIN_12PX
+ , pMsgTimeStamp->GetMaxWidth(), statusHeight));
+ AddControl(*pMsgTimeStamp);
+ SetIndividualSelectionEnabled(pMsgTimeStamp, __editMode);
+ }
+ }
+ else
+ {
+ // Add receive message date control
+ pMsgTimeStamp->SetBounds(Rectangle(leftX + bubbleWidth + MARGIN_16PX,
+ bubbleHeight - statusHeight - __bottomMargin, pMsgTimeStamp->GetMaxWidth(), MARGIN_26PX));
+ AddControl(*pMsgTimeStamp);
+ SetIndividualSelectionEnabled(pMsgTimeStamp, __editMode);
+ }
+ // Add Attachment
+ if (pAttachMentDetail)
+ {
+ yPos += MARGIN_14PX;
+ pAttachMentDetail->SetBounds(Rectangle(leftX + MARGIN_16PX, yPos,
+ pAttachMentDetail->GetMimimumWidth(), pAttachMentDetail->GetMinimumHeight()));
+ AddControl(*pAttachMentDetail);
+ SetIndividualSelectionEnabled(pAttachMentDetail, false);
+ yPos += pAttachMentDetail->GetMinimumHeight();
+ }
+ // Add image/Video thumb nail if it is exist
+ if (pImageVideoAttachment)
+ {
+ yPos += MARGIN_14PX;
+ pImageVideoAttachment->SetBounds(Rectangle(leftX + MARGIN_16PX, yPos, pImageVideoAttachment->GetMimimumWidth(), pImageVideoAttachment->GetMinimumHeight()));
+ AddControl(*pImageVideoAttachment);
+ pImageVideoAttachment->AddTouchEventListener(*this);
+ SetIndividualSelectionEnabled(pImageVideoAttachment, false);
+ yPos += pImageVideoAttachment->GetMinimumHeight();
+ }
+ // Add audio file item if it is exist
+ if (pAudioAttachment)
+ {
+ yPos += MARGIN_14PX;
+ pAudioAttachment->SetBounds(Rectangle(leftX + MARGIN_16PX, yPos,
+ pAudioAttachment->GetMimimumWidth(), pAudioAttachment->GetMinimumHeight()));
+ AddControl(*pAudioAttachment);
+ pAudioAttachment->AddTouchEventListener(*this);
+ SetIndividualSelectionEnabled(pAudioAttachment, false);
+ yPos += pAudioAttachment->GetMinimumHeight();
+ }
+ //Add detail button for MMS
+ if (pMmsDetail)
+ {
+ yPos += MARGIN_14PX;
+ pMmsDetail->SetBounds(Rectangle(leftX + bubbleWidth - H_ICON_64PX - __rightMargin, yPos,
+ W_ICON_64PX, H_ICON_64PX));
+ AddControl(*pMmsDetail);
+ pMmsDetail->AddTouchEventListener(*this);
+ SetIndividualSelectionEnabled(pMmsDetail, __editMode);
+ }
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+int
+TVBubbleListItem::GetSelectedElementId(void) const
+{
+ return __selectBubbleItemId;
+}
+
+bool
+TVBubbleListItem::IsLongPressed(void) const
+{
+ return __isLongPressed;
+}
+
+void
+TVBubbleListItem::OnTouchPressed(const Control& source, const Point& currentPosition,
+ const TouchEventInfo& touchInfo)
+{
+ AppLogDebug("ENTER");
+
+ __isLongPressed = false;
+ if (!__pLongPressTimer)
+ {
+ __pLongPressTimer = new (std::nothrow) Timer();
+ __pLongPressTimer->Construct(*this);
+ }
+ // Need to take action when click on fail indicator
+ if (source.GetName().CompareTo(String(IDC_MESSAGE_BUBBLE)) == 0)
+ {
+ __selectBubbleItemId = BUBBLE_ITEM;
+ }
+ else if (source.GetName().CompareTo(String(IDC_MESSAGE_BODY)) == 0)
+ {
+ __selectBubbleItemId = BUBBLE_ITEM_TEXT;
+ }
+ else if (source.GetName().CompareTo(String(IDC_TIME_STAMP)) == 0)
+ {
+ __selectBubbleItemId = BUBBLE_ITEM_DATE;
+ }
+ else if (source.GetName().CompareTo(String(IDC_MESSAGE_DETAIL)) == 0)
+ {
+ __selectBubbleItemId = BUBBLE_ITEM_DETAILS;
+ }
+ else if (source.GetName().CompareTo(String(IDC_FAIL_INDICATOR)) == 0)
+ {
+ __selectBubbleItemId = BUBBLE_ITEM_FAIL_STATUS;
+ }
+ else if (source.GetName().CompareTo(String(IDC_ATTACH_FILE_THUMBNAIL)) == 0)
+ {
+ __selectBubbleItemId = BUBBLE_ITEM_THUMBNAIL_IMAGE;
+ }
+ else if (source.GetName().CompareTo(String(IDC_BUTTON_VIDEO_THUMBNAIL)) == 0)
+ {
+ __selectBubbleItemId = BUBBLE_ITEM_THUMBNAIL_IMAGE;
+ }
+ else if (source.GetName().CompareTo(String(IDC_ATTACH_FILE_NAME)) == 0)
+ {
+ __selectBubbleItemId = BUBBLE_ITEM_ATTACHMENT_NAME;
+ }
+ else if (source.GetName().CompareTo(String(IDC_ATTACH_FILE_COUNT)) == 0)
+ {
+ __selectBubbleItemId = BUBBLE_ITEM_ATTACHMENT_COUNT;
+ }
+ else if (source.GetName().CompareTo(String(IDC_BUTTON_VIEW_IMAGE)) == 0)
+ {
+ __selectBubbleItemId = BUBBLE_ITEM_VIEW_IMAGE;
+ }
+ else if (source.GetName().CompareTo(String(IDC_BUTTON_PLAY_AUDIO)) == 0)
+ {
+ __selectBubbleItemId = BUBBLE_ITEM_PLAY_AUDIO;
+ }
+ else if (source.GetName().CompareTo(String(IDC_BUTTON_PLAY_VIDEO)) == 0)
+ {
+ __selectBubbleItemId = BUBBLE_ITEM_PLAY_VIDEO;
+ }
+ else if (source.GetName().CompareTo(String(IDC_BUTTON_ATTACH_COUNT)) == 0)
+ {
+ __selectBubbleItemId = BUBBLE_ITEM_ATTACHMENT_COUNT;
+ }
+ else if (source.GetName().CompareTo(String(IDC_BUTTON_ATTACHMENT)) == 0)
+ {
+ __selectBubbleItemId = BUBBLE_ITEM_ATTACHMENT;
+ }
+ else
+ {
+ __selectBubbleItemId = BUBBLE_ITEM_INVALID;
+ }
+ __pLongPressTimer->Start(500);
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+}
+
+void
+TVBubbleListItem::OnTouchReleased(const Control& source, const Point& currentPosition,
+ const TouchEventInfo& touchInfo)
+{
+ AppLogDebug("ENTER");
+ __isLongPressed = false;
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+TVBubbleListItem::OnTimerExpired(Timer& timer)
+{
+ AppLogDebug("ENTER");
+ __isLongPressed = true;
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
, __messageTime(-1)
, __unreadCount(0)
, __draftMsgCount(0)
+ , __sendReceiveCount(0)
+
{
//Empty implementation
}
r = E_FAILURE;
return r;
}
+ int sendReceiveCount(0);
+ err = msg_get_int_value(pThreadInfo, MSG_THREAD_SMS_COUNT_INT, &sendReceiveCount);
+ if (err != MSG_SUCCESS)
+ {
+ AppLogDebug("EXIT:Unable to fetch thread unread count err =%d", (int) err);
+ r = E_FAILURE;
+ return r;
+ }
+ __sendReceiveCount += sendReceiveCount;
+
+ err = msg_get_int_value(pThreadInfo, MSG_THREAD_MMS_COUNT_INT, &sendReceiveCount);
+ if (err != MSG_SUCCESS)
+ {
+ AppLogDebug("EXIT:Unable to fetch thread unread count err =%d", (int) err);
+ r = E_FAILURE;
+ return r;
+ }
+ __sendReceiveCount += sendReceiveCount;
// Group name
InitTimeStampGroupName();
//Initialize draft property
return DATA_TYPE_THREAD;
}
+int
+ThreadData::GetSendReceiveCount(void) const
+{
+ AppLogDebug("ENTER");
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return __sendReceiveCount;
+}
result
ThreadData::InitThreadName(msg_struct_t pThreadInfo)
{
, __pItemContext(null)
, __pSearchList(null)
, __pSearchBar(null)
- , __pCheckAll(null)
, __pSelectionInfo(null)
, __pSelectedIds(null)
, __pProgressPopup(null)
// Cancel ongoing operation.
ThreadPresentationModel* pThreadPrModel = ThreadPresentationModel::GetInstance();
- if(pThreadPrModel)
+ if (pThreadPrModel)
{
pThreadPrModel->RemoveThreadListEventListener(*this);
pThreadPrModel->CancelDelete();
case THREAD_LIST_FORM_CBMSG_EDIT:
case THREAD_LIST_FORM_DRAFTMSG_EDIT:
{
- r = AddEditCheckBox();
- __pSelectedIds = new (std::nothrow) ArrayListT< int>();
+ ButtonItem buttonRightItem;
+ buttonRightItem.Construct(BUTTON_ITEM_STYLE_TEXT, IDA_SELECT_ALL);
+ Bitmap* pBitMap = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_SELECT_ALL);
+ buttonRightItem.SetIcon(BUTTON_ITEM_STATUS_NORMAL, pBitMap);
+ pBitMap = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_SELECT_ALL_PRESSED);
+ buttonRightItem.SetIcon(BUTTON_ITEM_STATUS_PRESSED, pBitMap);
+ GetHeader()->SetButton(BUTTON_POSITION_RIGHT, buttonRightItem);
+ GetHeader()->Invalidate(true);
+
+ __pSelectedIds = new (std::nothrow) ArrayListT<int>();
__pSelectedIds->Construct();
AddLabelSelectionInfo();
}
return r;
}
- r = AddListBox();
+ r = AddGroupListView();
AppLogDebug("EXIT: %s", GetErrorMessage(r));
return r;
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);
__pSearchList->SetBackgroundColor(COLOR_THREADLIST_SEARCH_BG);
__pSearchList->SetShowState(false);
__pSearchBar->SetContent(__pSearchList); // Transfer ownership
+ __pSearchBar->SetShowState(false); //To hide search bar during initial launch
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;
+ String strText, selcInfo;
result r = E_SUCCESS;
Rectangle rect = GetClientAreaBounds();
__pSelectionInfo = static_cast<Label*>(GetControl(L"IDC_THREAD_EDIT_LABEL"));
}
result
-ThreadListForm::AddListBox(void)
+ThreadListForm::AddGroupListView(void)
{
AppLogDebug("ENTER");
result r = E_SUCCESS;
__pThreadGroupList = static_cast<GroupedListView*>(GetControl(L"IDC_THREAD_GROUPEDLISTVIEW"));
+ __pThreadGroupList->SetBounds(GetClientAreaBounds());
__pThreadGroupList->SetItemProvider(*this);
__pThreadGroupList->AddGroupedListViewItemEventListener(*this);
{
if (__listType == THREAD_LIST_TYPE_THREAD)
{
- pThreadManager->Delete(__pSelectedIds, *this, REQUEST_DELETE_THREAD);
+ pThreadManager->Delete(__pSelectedIds, REQUEST_DELETE_THREAD, this);
}
else
{
- pThreadManager->Delete(__pSelectedIds, *this, REQUEST_DELETE_MESSAGE);
+ pThreadManager->Delete(__pSelectedIds, REQUEST_DELETE_MESSAGE, this);
}
}
ThreadListForm::SetHeader()
{
AppLogDebug("ENTER");
-
+ bool showSearchBar(true);
Header* header = GetHeader();
if (header)
{
case THREAD_LIST_FORM_CBMSG_EDIT:
case THREAD_LIST_FORM_DRAFTMSG_EDIT:
{
+ showSearchBar = false;
Application::GetInstance()->GetAppResource()->GetString(L"IDS_COM_SK_DELETE", strText);
header->SetTitleText(strText);
header->Draw();
}
break;
+
}
+
+ if(showSearchBar)
+ {
+ //Add search button in header:
+ ButtonItem btnRight;
+ btnRight.Construct(BUTTON_ITEM_STYLE_ICON, IDA_OPTION_TRAY_COMMAND);
+ Bitmap* pBitMap = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_SEARCH);
+ btnRight.SetIcon(BUTTON_ITEM_STATUS_NORMAL, pBitMap);
+ pBitMap = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_SEARCH_PRESS);
+ btnRight.SetIcon(BUTTON_ITEM_STATUS_PRESSED, pBitMap);
+ header->SetButton(BUTTON_POSITION_RIGHT, btnRight);
+ }
+
}
AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
AppLogDebug("ENTER");
int selectCount(0);
- String selcInfo,strText;
+ String selcInfo, strText;
if (__pSelectedIds)
{
selectCount = __pSelectedIds->GetCount();
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)
+ case REQUEST_SHOW_PROGRESS_POPUP:
+ {
+ // Create progress dialog.
+ if (!__pProgressPopup)
{
- Integer* pTotalCount = (Integer*)pArgs->GetAt(0);
- totalcount = pTotalCount->ToInt();
- OnDeleteStart(totalcount);
- delete pArgs;
+ String* pTitleText = (String*) pArgs->GetAt(0);
+ Integer* pTotalCount = (Integer*) pArgs->GetAt(1);
+ __pProgressPopup = new (std::nothrow) MsgProgressPopup();
+ __pProgressPopup->Construct(0, pTotalCount->ToInt(), *pTitleText);
}
- break;
+ if (__pProgressPopup)
+ {
+ __pProgressPopup->ShowPopup();
+ }
+ delete pArgs;
+ }
+ break;
- case REQUEST_DELETE_UPDATE:
- if(pArgs->GetCount() > 0)
+ case REQUEST_UPDATE_PROGRESS_POPUP:
+ {
+ if (__pProgressPopup && pArgs->GetCount() > 1)
{
- Integer* pCurrentCount = (Integer*)pArgs->GetAt(0);
- Integer* pTotalCount = (Integer*)pArgs->GetAt(1);
- OnDeleteUpdate(pCurrentCount->ToInt(),pTotalCount->ToInt());
- delete pArgs;
+ String* pStatusInfo = (String*) pArgs->GetAt(0);
+ Integer* pProgressValue = (Integer*) pArgs->GetAt(1);
+ __pProgressPopup->UpdateProgressInfo(*pStatusInfo);
+ __pProgressPopup->SetProgressValue(pProgressValue->ToInt());
}
- break;
+ delete pArgs;
+ }
+ break;
- case REQUEST_DELETE_COMPLETE:
- if(pArgs->GetCount() > 0)
+ case REQUEST_DESTROY_PROGRESS_POPUP:
+ {
+ if (__pProgressPopup)
{
- AppLogDebug("complete");
- Integer* pStatus = (Integer*)pArgs->GetAt(0);
- OnDeleteComplete(pStatus->ToInt(),null);
- delete pArgs;
+ __pProgressPopup->HidePopup();
+ delete __pProgressPopup;
+ __pProgressPopup = null;
}
- break;
+ }
+ break;
default:
break;
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);
+ __pSearchBar->SetShowState(false);
+
+ // To adjust the list view size:
+ __pThreadGroupList->SetBounds(GetClientAreaBounds());
__pThreadGroupList->SetShowState(true);
__pThreadGroupList->UpdateList();
+
+ //Add search button in header:
+ ButtonItem btnRight;
+ btnRight.Construct(BUTTON_ITEM_STYLE_ICON, IDA_OPTION_TRAY_COMMAND);
+ Bitmap* pBitMap = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_SEARCH);
+ btnRight.SetIcon(BUTTON_ITEM_STATUS_NORMAL, pBitMap);
+ pBitMap = BitmapUtility::GetInstance()->GetIcon(MSG_ICON_SEARCH_PRESS);
+ btnRight.SetIcon(BUTTON_ITEM_STATUS_PRESSED, pBitMap);
+ GetHeader()->SetButton(BUTTON_POSITION_RIGHT, btnRight);
}
Draw();
if (__pSearchBar->GetTextLength() > 0)
{
pThreadPrModel->GetSearchThreadList(__pSearchBar->GetText(), __listType);
- if(pThreadPrModel->GetSearchListCount() <= 0)
+ if (pThreadPrModel->GetSearchListCount() <= 0)
{
__isSearchBarClicked = true;
}
HandleBackNavigation();
}
break;
+
+ case IDA_SELECT_ALL:
+ {
+ ThreadPresentationModel* pThreadPrModel = ThreadPresentationModel::GetInstance();
+ int totalCount = pThreadPrModel->GetCount();
+ bool selectAll(totalCount != __pSelectedIds->GetCount());
+ CheckAll(selectAll);
+ }
+ break;
case IDA_SELECT_ALL_ON:
{
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);
+ pThreadPrModel->RestoreSpamMessages(__pSelectedIds, this);
}
break;
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);
+ pThreadPrModel->Delete(deleteId, REQUEST_DELETE_THREAD, this);
}
else
{
- pThreadPrModel->Delete(deleteId, *this, REQUEST_DELETE_MESSAGE);
+ pThreadPrModel->Delete(deleteId, REQUEST_DELETE_MESSAGE, this);
}
}
__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_OPTION_TRAY_COMMAND:
+ {
+ if (!__pSearchBar->GetShowState())
+ {
+ GetHeader()->RemoveButtonAt(BUTTON_POSITION_RIGHT);
+ int height = __pSearchBar->GetHeight();
+ __pSearchBar->SetShowState(true);
+ __pSearchBar->SetMode(SEARCH_BAR_MODE_INPUT);
+ __pThreadGroupList->SetBounds(0,height,__pThreadGroupList->GetWidth(),__pThreadGroupList->GetHeight() - height);
+ __pThreadGroupList->UpdateList();
+ }
+
+ }
+ break;
+
}
AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
{
AppLogDebug("ENTER");
- if (__pProgressPopup)
- {
- __pProgressPopup->ShowPopup();
- }
-
+ ArrayList* pArgs = new (std::nothrow) ArrayList(SingleObjectDeleter);
+ pArgs->Construct();
+ pArgs->Add(new (std::nothrow) String(IDS_DELETED_NUMBER_IDS));
+ pArgs->Add(new (std::nothrow) Integer(totalCount));
+ SendUserEvent(REQUEST_SHOW_PROGRESS_POPUP, pArgs);
AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
return;
if (__pProgressPopup)
{
String statusInfo;
- statusInfo.Format(MAX_LEN_SELECTION_INFO, __stringTitle.GetPointer(), deleteCount, totalCount);
- __pProgressPopup->UpdateProgressInfo(statusInfo);
- __pProgressPopup->SetProgressValue(deleteCount);
+ statusInfo.Format(MAX_LEN_SELECTION_INFO, IDS_DELETED_NUMBER_IDS, deleteCount, totalCount);
+ ArrayList* pArgs = new (std::nothrow) ArrayList(SingleObjectDeleter);
+ pArgs->Construct();
+ pArgs->Add(new (std::nothrow) String(statusInfo));
+ pArgs->Add(new (std::nothrow) Integer(deleteCount));
+ SendUserEvent(REQUEST_UPDATE_PROGRESS_POPUP, pArgs);
}
AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
{
AppLogDebug("ENTER");
- // Back to thread view mode
+ SendUserEvent(REQUEST_DESTROY_PROGRESS_POPUP, 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::OnRestoreStart(int totalCount)
+{
+ AppLogDebug("ENTER");
+
+ ArrayList* pArgs = new (std::nothrow) ArrayList(SingleObjectDeleter);
+ pArgs->Construct();
+ pArgs->Add(new (std::nothrow) String(IDS_RESTORE_NUMBER_IDS));
+ pArgs->Add(new (std::nothrow) Integer(totalCount));
+ SendUserEvent(REQUEST_SHOW_PROGRESS_POPUP, pArgs);
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+ThreadListForm::OnRestoreUpdate(int restoreCount, int totalCount)
+{
+ AppLogDebug("ENTER");
+
if (__pProgressPopup)
{
- __pProgressPopup->HidePopup();
- delete __pProgressPopup;
- __pProgressPopup = null;
+ String statusInfo;
+ statusInfo.Format(MAX_LEN_SELECTION_INFO, IDS_RESTORE_NUMBER_IDS, restoreCount, totalCount);
+ ArrayList* pArgs = new (std::nothrow) ArrayList(SingleObjectDeleter);
+ pArgs->Construct();
+ pArgs->Add(new (std::nothrow) String(statusInfo));
+ pArgs->Add(new (std::nothrow) Integer(restoreCount));
+ SendUserEvent(REQUEST_UPDATE_PROGRESS_POPUP, pArgs);
}
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return;
+}
+
+void
+ThreadListForm::OnRestoreComplete(int errCode, Object* pRestoreHandler)
+{
+ AppLogDebug("ENTER");
+
+ SendUserEvent(REQUEST_DESTROY_PROGRESS_POPUP, null);
+
// UI thread, Back to list view mode.
if (IsEditForm())
{
return;
}
-
void
ThreadListForm::OnTouchPressed(const Control& source,
const Point& currentPosition, const TouchEventInfo& touchInfo)
{
AppLogDebug("ENTER");
- if(groupIndex == 0 && itemIndex == 0 && __isSearchBarClicked)
+ if (groupIndex == 0 && itemIndex == 0 && __isSearchBarClicked)
{
return;
}
__pSelectedIds->Add(selectId);
if (__pSelectedIds->GetCount() == totalCount)
{
- __pCheckAll->SetSelected(true);
+ //TODO: Need to update check box
}
ShowSelectionInfo();
}
__pSelectedIds->Remove(selectId);
if (__pSelectedIds->GetCount() <= totalCount)
{
- __pCheckAll->SetSelected(false);
+ //TODO: Need to update check box
}
ShowSelectionInfo();
}
{
// Transfer ownership
BaseData* pThreaddata = pThreadPrModel->GetDataAt(index)->CloneN();
- pArgList->Add(pThreaddata);
- pSceneManager->GoForward(ForwardSceneTransition(IDSCN_CONVERSATION_LIST, SCENE_TRANSITION_ANIMATION_TYPE_NONE), pArgList);
+ ThreadData* pthrdData = pThreadPrModel->GetThreadDataByIdN(pThreadPrModel->GetDataAt(index)->GetEntryId());
+ if (pthrdData->GetSendReceiveCount() - pthrdData->GetDraftMessageCount() > 0)
+ {
+ pArgList->Add(pThreaddata);
+ pSceneManager->GoForward(ForwardSceneTransition(IDSCN_CONVERSATION_LIST, SCENE_TRANSITION_ANIMATION_TYPE_NONE), pArgList);
+ }
+ else
+ {
+ pArgList->Add((new (std::nothrow) Integer(COMPOSER_LAUNCH_DRAFT_MESSAGE)));
+ int threadId = pThreadPrModel->GetDataAt(index)->GetEntryId();
+ BaseData* pMessageData = pThreadPrModel->GetMessageDataByIdN(pThreadPrModel->GetDraftMessageId(threadId));
+ pArgList->Add(pMessageData);
+ pSceneManager->GoForward(ForwardSceneTransition(IDSCN_COMPOSER), pArgList);
+ }
}
else if (__listType == THREAD_LIST_TYPE_DRAFT)
{
}
AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
- if(groupCount == 0 && __isSearchBarClicked)
+ if (groupCount == 0 && __isSearchBarClicked)
{
groupCount = 1;
}
groupItemCount = pThreadPrModel->GetGroupItemCount(groupIndex);
}
AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
- if(groupItemCount == 0 && __isSearchBarClicked)
+ if (groupItemCount == 0 && __isSearchBarClicked)
{
groupItemCount = 1;
}
{
AppLogDebug("ENTER");
- if(!__isSearchBarClicked)
+ if (!__isSearchBarClicked)
{
GroupItem* pItem = new (std::nothrow) GroupItem();
ThreadPresentationModel* pThreadPrModel = ThreadPresentationModel::GetInstance();
{
AppLogDebug("ENTER");
- if(!__isSearchBarClicked )
+ if (!__isSearchBarClicked)
{
LVThreadListItem* pThreadListItem = null;
ThreadPresentationModel* pThreadPrModel = ThreadPresentationModel::GetInstance();
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->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);
+ 1, strText, 34,
+ COLOR_THREADLIST_DATE_TIME_SHORTMSG_ITEM, COLOR_THREADLIST_DATE_TIME_SHORTMSG_ITEM, COLOR_THREADLIST_DATE_TIME_SHORTMSG_ITEM, false);
return pItem;
}
}
{
AppLogDebug("ENTER");
- switch(keypadAction)
+ switch (keypadAction)
{
case KEYPAD_ACTION_SEARCH:
__pSearchBar->HideKeypad();
break;
+
default:
break;
}
if (__pSearchBar && __pSearchBar->GetTextLength() > 0)
{
pThreadprModel->GetSearchThreadList(__pSearchBar->GetText(), __listType);
- if(pThreadprModel->GetSearchListCount() <= 0)
+ if (pThreadprModel->GetSearchListCount() <= 0)
{
__isSearchBarClicked = true;
}
SetFooter();
SetHeader();
- if(__pThreadGroupList->GetShowState())
+ if (__pThreadGroupList->GetShowState())
{
__pThreadGroupList->UpdateList();
}
- if(__pSearchList && __pSearchList->GetShowState())
+ if (__pSearchList && __pSearchList->GetShowState())
{
__pSearchList->UpdateList();
}
#include <FBaseErrorDefine.h>
#include <FBaseRtIEventListener.h>
-#include "MsgDeleteHandlerThread.h"
#include "MsgEvent.h"
#include "MsgIConversationEventListener.h"
#include "MsgIThreadEventListener.h"
ThreadPresentationModel::CreateInstance(void)
{
AppLogDebug("ENTER");
+ result r = E_SUCCESS;
__pInstance = new (std::nothrow) ThreadPresentationModel();
if (E_SUCCESS != __pInstance->Construct())
{
delete __pInstance;
__pInstance = null;
+ r = E_FAILURE;
+ AppLogDebug("EXIT: %s", GetErrorMessage(r));
return;
}
std::atexit(DestroyInstance);
- AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ AppLogDebug("EXIT: %s", GetErrorMessage(r));
}
void
MessageData* pMessageData = null;
for (int index = 0; index < pMsgDataList->nCount; index++)
{
+ int storageId;
+ msg_get_int_value(pMsgDataList->msg_struct_info[index], MSG_CONV_MSG_STORAGE_ID_INT, &storageId);
+ if ((THREAD_LIST_TYPE_SIM == __listType) && storageId != MSG_STORAGE_SIM)
+ {
+ continue;
+ }
pMessageData = new (std::nothrow) MessageData();
pMessageData->Construct(pMsgDataList->msg_struct_info[index]);
r = __pDataList->Add(pMessageData);
--- /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 <FUi.h>
+
+#include "MsgBaseData.h"
+#include "MsgBitmapUtility.h"
+#include "MsgContactUtility.h"
+#include "MsgTokenOptionPopup.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;
+
+TokenOptionPopup::TokenOptionPopup(Control& parent)
+: __parentCntl(parent)
+, __pOptionList(null)
+, __pOptionListView(null)
+, __pCloseButton(null)
+{
+}
+
+TokenOptionPopup::~TokenOptionPopup(void)
+{
+ AppLogDebug("ENTER");
+ if (__pOptionList)
+ {
+ __pOptionList->RemoveAll(true);
+ delete __pOptionList;
+ }
+}
+
+result
+TokenOptionPopup::Construct(AddressInfo* pRecipient)
+{
+ AppLogDebug("ENTER");
+ result r = Popup::Construct(L"IDL_ATTACH_LIST_POPUP");
+ if (!IsFailed(r))
+ {
+ // Transfer ownership
+ Bitmap* pBottomBg = BitmapUtility::GetInstance()->GetIconN(MSG_ICON_BUTTON_PANEL_BG);
+ SetFooterBackgroundBitmap(pBottomBg);
+ __pOptionList = new (std::nothrow) ArrayList();
+ __pOptionList->Construct();
+ // Load attach list element.
+ String strText;
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_COM_SK_DELETE", strText);
+ __pOptionList->Add(* new String(strText));
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_COM_SK_EDIT", strText);
+ __pOptionList->Add(* new String(strText));
+
+ if (pRecipient->isAddFromContacts)
+ {
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_MSGC_OPT_VIEW_CONTACT", strText);
+ }
+ else
+ {
+ Application::GetInstance()->GetAppResource()->GetString(L"IDS_COM_OPT_ADD_CONTACT", strText);
+ }
+ __pOptionList->Add(* new String(strText));
+
+ __pOptionListView = static_cast<ListView*>(GetControl(L"IDC_ATTACH_LISTVIEW"));
+ __pOptionListView->SetItemProvider(*this);
+ __pOptionListView->AddListViewItemEventListener(*this);
+ __pCloseButton = static_cast<Button*>(GetControl(L"IDC_BUTTON_CLOSE"));
+ __pCloseButton->SetActionId(IDA_CLOSE);
+ __pCloseButton->AddActionEventListener(*this);
+
+ int increaseHeight(0);
+ if (__pOptionList->GetCount() > 1)
+ {
+ int visibleListItemCount(__pOptionList->GetCount());
+ increaseHeight = (visibleListItemCount - 1) * H_LIST_ITEM_112PX;
+ }
+ __pOptionListView->SetSize(__pOptionListView->GetWidth(), __pOptionListView->GetHeight() + increaseHeight);
+
+ Popup::SetSize(Dimension(GetWidth(), GetHeight() + increaseHeight));
+ Point pos = GetControl(L"IDC_BUTTON_CLOSE")->GetPosition();
+ pos.y += increaseHeight;
+ GetControl(L"IDC_BUTTON_CLOSE")->SetPosition(pos);
+ }
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return r;
+}
+
+void
+TokenOptionPopup::OnListViewItemStateChanged(ListView& listView, int index,
+ int elementId, ListItemStatus status)
+{
+ AppLogDebug("ENTER");
+ if (status != LIST_ITEM_STATUS_SELECTED)
+ {
+ return;
+ }
+
+ switch (index)
+ {
+ case 0:
+ {
+ RequestId requestId = REQUEST_DELETE_TOKEN;
+ __parentCntl.SendUserEvent(requestId,null);
+ }
+ break;
+
+ case 1:
+ {
+ RequestId requestId = REQUEST_EDIT_TOKEN;
+ __parentCntl.SendUserEvent(requestId,null);
+ }
+ break;
+
+ case 2:
+ {
+ RequestId requestId = REQUEST_ADD_VIEW_CONTACT;
+ __parentCntl.SendUserEvent(requestId,null);
+ }
+ break;
+ }
+ SetShowState(false);
+ RequestId requestId = REQUEST_DESTROY_TOKEN_OPTION_POPUP;
+ __parentCntl.SendUserEvent(requestId, null);
+
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+}
+//
+//IListViewItemProvider
+ListItemBase*
+TokenOptionPopup::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);
+ pItem->AddElement(Rectangle(MARGIN_16PX, 0, (itemWidth - MARGIN_16PX), H_LIST_ITEM_112PX),
+ 1,* (String*)__pOptionList->GetAt(index));
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return pItem;
+}
+
+bool
+TokenOptionPopup::DeleteItem(int index, ListItemBase* pItem, int itemWidth)
+{
+ AppLogDebug("ENTER");
+ if (pItem)
+ {
+ delete pItem;
+ }
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return true;
+}
+
+int
+TokenOptionPopup::GetItemCount(void)
+{
+ AppLogDebug("ENTER");
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+ return __pOptionList->GetCount();
+}
+
+// From IActionEventListener
+void
+TokenOptionPopup::OnActionPerformed(const Control& source, int actionId)
+{
+ AppLogDebug("ENTER");
+ switch (actionId)
+ {
+ case IDA_CLOSE:
+ {
+ SetShowState(false);
+ RequestId requestId = REQUEST_DESTROY_TOKEN_OPTION_POPUP;
+ __parentCntl.SendUserEvent(requestId, null);
+ }
+ break;
+ }
+ AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
+}
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;
+const int W_PLAYCONTROL_BUTTON = 74;
+const int H_PLAYCONTROL_BUTTON = 74;
//Check Box
const int H_CHECKBOX = 75;
//Panel
const int PANEL_HEIGHT = 114;
+const int CLIPBOARD_HEIGHT_OFFSET = 79;
//Label
const int H_MSG_SELECTION_INFO_LABEL = 50;
const wchar_t* IDFRM_SETTINGS_SPAM_DELETE_BLOCK_WORD = L"DeleteBlockWord";
const wchar_t* IDFRM_SETTINGS_FONT_SIZE = L"FontSize";
+const wchar_t* IDC_BUTTON_VIEW_IMAGE = L"IDC_BUTTON_VIEW_IMAGE";
+const wchar_t* IDC_BUTTON_PLAY_AUDIO = L"IDC_BUTTON_PLAY_AUDIO";
+const wchar_t* IDC_BUTTON_VIDEO_THUMBNAIL = L"IDC_BUTTON_VIDEO_THUMBNAIL";
+const wchar_t* IDC_BUTTON_PLAY_VIDEO = L"IDC_BUTTON_PLAY_VIDEO";
+const wchar_t* IDC_BUTTON_ATTACH_COUNT = L"IDC_BUTTON_ATTACH_COUNT";
+const wchar_t* IDC_BUTTON_ATTACHMENT = L"IDC_BUTTON_ATTACHMENT";
+
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_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_KEY_VOLUME_LEVEL = L"http://tizen.org/setting/sound.ringtone.volume";
+
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_CALL = L"tizen.Call";
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_CALENDAR = L"tizen.events";
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* FORMAT_SPECIFIER_INT = L"%d";
const wchar_t* IDS_DRAFT = L"Draft";
const wchar_t* IDS_TYPE_IMAGE = L"type:image";
-