*/
void init() {
// 1. Register folders and application descriptors
// ----------------------
final ApplicationMessageFolderRegistry reg =
ApplicationMessageFolderRegistry.getInstance();
// Some context menu items don't need a GUI (e.g. an item for deleting a
// message) and will be run in the current daemon application.
final ApplicationDescriptor daemonDescr =
ApplicationDescriptor.currentApplicationDescriptor();
// Main application descriptor - causes application to be launched with
// default welcome screen if a user clicks on the "Message List Demo"
// header in the home screen notifications view.
final ApplicationDescriptor mainDescr =
new ApplicationDescriptor(daemonDescr, APPLICATION_NAME,
new String[] {});
// This application descriptor launches this application with a GUI to
// execute listener callbacks, e.g. to display a message.
final ApplicationDescriptor uiCallbackDescr =
new ApplicationDescriptor(daemonDescr, APPLICATION_NAME,
new String[] { "gui" });
// Get existing messages from storage and register them in folders
final ApplicationFolderIntegrationConfig inboxIntegration =
new ApplicationFolderIntegrationConfig(true, true, mainDescr);
final ApplicationFolderIntegrationConfig deletedIntegration =
new ApplicationFolderIntegrationConfig(false);
final MessageListDemoStore messages =
MessageListDemoStore.getInstance();
final ApplicationMessageFolder inbox =
reg.registerFolder(MessageListDemo.INBOX_FOLDER_ID, "Inbox",
messages.getInboxMessages(), inboxIntegration);
final ApplicationMessageFolder deleted =
reg.registerFolder(MessageListDemo.DELETED_FOLDER_ID,
"Deleted Messages", messages.getDeletedMessages(),
deletedIntegration);
// Register as a listener for callback notifications
inbox.addListener(
this,
ApplicationMessageFolderListener.MESSAGE_DELETED
| ApplicationMessageFolderListener.MESSAGE_MARKED_OPENED
| ApplicationMessageFolderListener.MESSAGE_MARKED_UNOPENED
| ApplicationMessageFolderListener.MESSAGES_MARKED_OLD,
daemonDescr);
deleted.addListener(this,
ApplicationMessageFolderListener.MESSAGE_DELETED, daemonDescr);
messages.setFolders(inbox, deleted);
// We've registered two folders, specify root folder name for the
// [View Folder] screen.
reg.setRootFolderName(APPLICATION_NAME);
// 2. Register message icons -------------------------------------------
final ApplicationIcon newIcon =
new ApplicationIcon(EncodedImage
.getEncodedImageResource("img/new.png"));
final ApplicationIcon readIcon =
new ApplicationIcon(EncodedImage
.getEncodedImageResource("img/read.png"));
final ApplicationIcon repliedIcon =
new ApplicationIcon(EncodedImage
.getEncodedImageResource("img/replied.png"));
final ApplicationIcon deletedIcon =
new ApplicationIcon(EncodedImage
.getEncodedImageResource("img/deleted.png"));
reg.registerMessageIcon(DemoMessage.DEMO_MESSAGE_TYPE,
MessageListDemo.STATUS_NEW, newIcon);
reg.registerMessageIcon(DemoMessage.DEMO_MESSAGE_TYPE,
MessageListDemo.STATUS_OPENED, readIcon);
reg.registerMessageIcon(DemoMessage.DEMO_MESSAGE_TYPE,
MessageListDemo.STATUS_REPLIED, repliedIcon);
reg.registerMessageIcon(DemoMessage.DEMO_MESSAGE_TYPE,
MessageListDemo.STATUS_DELETED, deletedIcon);
// 3. Register message menu items --------------------------------------
final ApplicationMenuItem openMenuItem = new OpenContextMenu(0x230010);
final ApplicationMenuItem replyMenuItem =
new ReplyContextMenu(0x230020);
final ApplicationMenuItem markOpenedMenuItem =
new MarkOpenedContextMenu(0x230030);
final ApplicationMenuItem markUnopenedMenuItem =
new MarkUnreadContextMenu(0x230040);
final ApplicationMenuItem[] newGuiMenuItems =
new ApplicationMenuItem[] { openMenuItem };
final ApplicationMenuItem[] newDaemonMenuItems =
new ApplicationMenuItem[] { markOpenedMenuItem, replyMenuItem };
final ApplicationMenuItem[] openedGuiMenuItems =
new ApplicationMenuItem[] { openMenuItem };
final ApplicationMenuItem[] openedDaemonMenuItems =
new ApplicationMenuItem[] { markUnopenedMenuItem, replyMenuItem };
final ApplicationMenuItem[] repliedGuiMenuItems =
new ApplicationMenuItem[] { openMenuItem };
final ApplicationMenuItem[] repliedDaemonMenuItems =
new ApplicationMenuItem[] { markUnopenedMenuItem };
final ApplicationMenuItem[] deletedGuiMenuItems =
new ApplicationMenuItem[] { openMenuItem, };
reg.registerMessageMenuItems(DemoMessage.DEMO_MESSAGE_TYPE,
MessageListDemo.STATUS_NEW, newGuiMenuItems, uiCallbackDescr);
reg.registerMessageMenuItems(DemoMessage.DEMO_MESSAGE_TYPE,
MessageListDemo.STATUS_NEW, newDaemonMenuItems, daemonDescr);
reg.registerMessageMenuItems(DemoMessage.DEMO_MESSAGE_TYPE,
MessageListDemo.STATUS_OPENED, openedGuiMenuItems,
uiCallbackDescr);
reg.registerMessageMenuItems(DemoMessage.DEMO_MESSAGE_TYPE,
MessageListDemo.STATUS_OPENED, openedDaemonMenuItems,
daemonDescr);
reg.registerMessageMenuItems(DemoMessage.DEMO_MESSAGE_TYPE,
MessageListDemo.STATUS_REPLIED, repliedGuiMenuItems,
uiCallbackDescr);
reg.registerMessageMenuItems(DemoMessage.DEMO_MESSAGE_TYPE,
MessageListDemo.STATUS_REPLIED, repliedDaemonMenuItems,
daemonDescr);
reg.registerMessageMenuItems(DemoMessage.DEMO_MESSAGE_TYPE,
MessageListDemo.STATUS_DELETED, deletedGuiMenuItems,
uiCallbackDescr);
reg.setBulkMarkOperationsSupport(DemoMessage.DEMO_MESSAGE_TYPE,
MessageListDemo.STATUS_NEW, true, false);
reg.setBulkMarkOperationsSupport(DemoMessage.DEMO_MESSAGE_TYPE,
MessageListDemo.STATUS_OPENED, false, true);
reg.setBulkMarkOperationsSupport(DemoMessage.DEMO_MESSAGE_TYPE,
MessageListDemo.STATUS_REPLIED, false, true);
}