Lots of fixes for 3rd edition. First test SIS file, 0.90(3)
--- a/application/data/PodcastClient_common.rls Sat Jul 10 13:35:21 2010 +0100
+++ b/application/data/PodcastClient_common.rls Sun Jul 11 11:36:24 2010 +0100
@@ -23,4 +23,4 @@
rls_string STRING_r_caption "Podcatcher"
rls_string STRING_r_short_caption "Podcatcher"
-rls_string STRING_r_about_text_s60 "Podcatcher 1.00(%d)\nŠ 2007-2010 Sebastian Brannstrom, Lars Persson, Anders Fridlund, EmbedDev AB"
+rls_string STRING_r_about_text_s60 "Podcatcher 0.90(%d)\nŠ 2007-2010 Sebastian Brannstrom, Lars Persson, Anders Fridlund, EmbedDev AB"
--- a/application/data/PodcastClient_english.rls Sat Jul 10 13:35:21 2010 +0100
+++ b/application/data/PodcastClient_english.rls Sun Jul 11 11:36:24 2010 +0100
@@ -35,7 +35,7 @@
// Tab titles
rls_string STRING_r_tabgroup_feeds "Feeds"
rls_string STRING_r_tabgroup_queue "Queue"
-rls_string STRING_r_tabgroup_queue_counter "Queue (%d)"
+rls_string STRING_r_tabgroup_queue_counter "(%d) Queue"
// Question dialogs
rls_string STRING_r_add_feed_prompt "Enter search terms or feed address"
@@ -127,11 +127,11 @@
// Show view
-rls_string STRING_r_view_mark_as_played_cmd_short "Mark old"
-rls_string STRING_r_view_mark_as_unplayed_cmd_short "Mark new"
+rls_string STRING_r_view_mark_as_played_cmd_short "Mark old (*)"
+rls_string STRING_r_view_mark_as_unplayed_cmd_short "Mark new (*)"
rls_string STRING_r_view_download_show_cmd "Get"
rls_string STRING_r_view_delete_show_cmd "Delete"
-rls_string STRING_r_view_show_info_cmd "Info"
+rls_string STRING_r_view_show_info_cmd "Info (#)"
rls_string STRING_r_error_playback_failed "Could not play show"
rls_string STRING_r_view_filter_shows_cmd "Show"
rls_string STRING_r_view_filter_all_shows_cmd "All shows"
@@ -157,3 +157,6 @@
rls_string STRING_r_error_http "Error: HTTP error %d"
rls_string STRING_r_error_disk_full "Error: Disk full"
+rls_string STRING_r_view_feed_feed_menu "Manage feeds"
+rls_string STRING_r_view_shows_show_menu "Show"
+rls_string STRING_r_view_queue_show_menu "Queue"
--- a/application/data/PodcastFeedView.ra Sat Jul 10 13:35:21 2010 +0100
+++ b/application/data/PodcastFeedView.ra Sun Jul 11 11:36:24 2010 +0100
@@ -38,19 +38,36 @@
{
MENU_ITEM
{
- command = EPodcastImportExportFeeds;
- txt = STRING_r_view_import_export_feeds_cmd;
- cascade = r_importexport_menu;
+ command = EPodcastUpdateAllFeeds;
+ txt= STRING_r_update_all_feeds_cmd;
+ },
+ MENU_ITEM
+ {
+ command = EPodcastCancelUpdateAllFeeds;
+ txt = STRING_r_cancel_update_all_feeds_cmd;
},
MENU_ITEM
{
- command = EPodcastAbout;
- txt = STRING_r_view_about_cmd;
- },
+ command = EPodcastFeedFeedMenu;
+ txt = STRING_r_view_feed_feed_menu;
+ cascade = r_feed_feed_menu;
+ },
+// MENU_ITEM
+// {
+// command = EPodcastImportExportFeeds;
+// txt = STRING_r_view_import_export_feeds_cmd;
+// cascade = r_importexport_menu;
+// },
MENU_ITEM
{
- command = EPodcastHelp;
+ command = EPodcastSettings;
+ txt = STRING_r_settings_cmd;
+ },
+ MENU_ITEM
+ {
+ command = EPodcastFeedHelpMenu;
txt = STRING_r_view_help;
+ cascade = r_feed_help_menu;
},
MENU_ITEM
{
@@ -60,6 +77,23 @@
};
}
+RESOURCE MENU_PANE r_feed_help_menu
+ {
+ items = {
+
+ MENU_ITEM
+ {
+ command = EPodcastAbout;
+ txt = STRING_r_view_about_cmd;
+ },
+ MENU_ITEM
+ {
+ command = EPodcastHelp;
+ txt = STRING_r_view_help;
+ }
+ };
+ }
+
RESOURCE MENU_PANE r_importexport_menu
{
items = {
@@ -76,6 +110,43 @@
};
}
+RESOURCE MENU_PANE r_feed_feed_menu
+ {
+ items = {
+ MENU_ITEM
+ {
+ command = EPodcastAddFeed;
+ txt = STRING_r_view_add_feed_cmd;
+ },
+ MENU_ITEM
+ {
+ txt = STRING_r_view_edit_feed_cmd;
+ command = EPodcastEditFeed;
+ },
+ MENU_ITEM
+ {
+ txt = STRING_r_view_delete_feed_cmd;
+ command = EPodcastDeleteFeed;
+ },
+// MENU_ITEM
+// {
+// txt = STRING_r_update_feed_cmd;
+// command = EPodcastUpdateFeed;
+// },
+ MENU_ITEM
+ {
+ command = EPodcastImportFeeds;
+ txt = STRING_r_view_import_feeds_cmd;
+ },
+ MENU_ITEM
+ {
+ command = EPodcastExportFeeds;
+ txt = STRING_r_view_export_feeds_cmd;
+ }
+ };
+ }
+
+
RESOURCE CBA r_podcast_cba
{
buttons =
@@ -92,92 +163,8 @@
hotkeys = r_podcast_feedview_hotkeys;
menubar = r_podcast_feedview_menubar;
cba = r_podcast_cba;
-// toolbar = r_feedview_toolbar;
}
-//RESOURCE AVKON_TOOLBAR r_feedview_toolbar
-// {
-// flags = KAknToolbarFixed;
-// items =
-// {
-// TBAR_CTRL
-// {
-// type = EAknCtButton;
-// id = EPodcastUpdateAllFeeds;
-// control = AVKON_BUTTON
-// {
-// states =
-// {
-// AVKON_BUTTON_STATE
-// {
-// //bmpfile = AVKON_BITMAP_FILE;
-// //bmpid = EMbmAvkonQgn_indi_find_goto;
-// txt = STRING_r_update_feed_short_cmd;
-// helptxt = STRING_r_update_all_feeds_cmd;
-// }
-// };
-// };
-// },
-// TBAR_CTRL
-// {
-// type = EAknCtButton;
-// id = EPodcastCancelUpdateAllFeeds;
-// control = AVKON_BUTTON
-// {
-// states =
-// {
-// AVKON_BUTTON_STATE
-// {
-// //bmpfile = AVKON_BITMAP_FILE;
-// //bmpid = EMbmAvkonQgn_indi_find_goto;
-// txt = STRING_r_cancel_update_all_feeds_short_cmd;
-// helptxt = STRING_r_cancel_update_all_feeds_cmd;
-// }
-// };
-// };
-// },
-// TBAR_CTRL
-// {
-// type = EAknCtButton;
-// id = EPodcastAddFeed;
-// control = AVKON_BUTTON
-// {
-// flags = KAknButtonTextInsideFrame;
-// states =
-// {
-// AVKON_BUTTON_STATE
-// {
-// //bmpfile = AVKON_BITMAP_FILE;
-// //bmpid = EMbmAvkonQgn_indi_find_goto;
-// //press_bmpid = EMbmAvkonQgn_indi_find_goto;
-// txt = STRING_r_view_add_feed_cmd_short;
-// helptxt = STRING_r_view_add_feed_cmd;
-// }
-// };
-// };
-// },
-// TBAR_CTRL
-// {
-// type = EAknCtButton;
-// id = EPodcastSettings;
-// control = AVKON_BUTTON
-// {
-// states =
-// {
-// AVKON_BUTTON_STATE
-// {
-// //bmpfile = AVKON_BITMAP_FILE;
-// //bmpid = EMbmAvkonQgn_indi_find_goto;
-// //press_bmpid = EMbmAvkonQgn_indi_find_goto;
-// txt = STRING_r_settings_cmd;
-// helptxt = STRING_r_settings_cmd;
-// }
-// };
-// };
-// }
-// };// items
-// }
-
RESOURCE DIALOG r_podcast_add_feed_dlg
{
buttons = R_AVKON_SOFTKEYS_OK_CANCEL;
@@ -249,24 +236,39 @@
};
}
-RESOURCE STYLUS_POPUP_MENU r_feedview_popup_menu
- {
- items =
- {
- STYLUS_POPUP_MENU_ITEM
- {
- txt = STRING_r_view_edit_feed_cmd_short;
- command = EPodcastEditFeed;
- },
- STYLUS_POPUP_MENU_ITEM
- {
- txt = STRING_r_view_delete_feed_cmd_short;
- command = EPodcastDeleteFeed;
- },
- STYLUS_POPUP_MENU_ITEM
- {
- txt = STRING_r_update_feed_short_cmd;
- command = EPodcastUpdateFeed;
- }
- };
- }
+RESOURCE FILESELECTIONDIALOG r_podcast_import_podcast
+{
+ title = STRING_r_view_import_feeds_title;
+ root_path = "";
+ filters =
+ {
+ FILTER
+ {
+ filter_type = EFilenameFilter;
+ filter_style = EInclusiveFilter;
+ filter_data = { "*.*" };
+ }
+ };
+}
+
+RESOURCE FILESELECTIONDIALOG r_podcast_export_feeds
+{
+ title = STRING_r_view_export_feeds_title;
+ root_path = "";
+ filters =
+ {
+ FILTER
+ {
+ filter_type = EFilenameFilter;
+ filter_style = EInclusiveFilter;
+ filter_data = { "*.*" };
+ }
+ };
+}
+
+RESOURCE FILENAMEPROMPTDIALOG r_podcast_filename_prompt_dialog
+{
+ filename_prompt = STRING_r_enter_filename;
+ default_filename = "feeds.xml";
+ path = "";
+}
--- a/application/data/PodcastQueueView.ra Sat Jul 10 13:35:21 2010 +0100
+++ b/application/data/PodcastQueueView.ra Sun Jul 11 11:36:24 2010 +0100
@@ -36,121 +36,51 @@
{
MENU_ITEM
{
- command = EPodcastAbout;
- txt = STRING_r_view_about_cmd;
+ command = EPodcastSuspendDownloads;
+ txt = STRING_r_view_stop_downloads_cmd;
},
MENU_ITEM
{
+ command = EPodcastResumeDownloads;
+ txt = STRING_r_view_resume_downloads_cmd;
+ },
+ MENU_ITEM
+ {
+ command = EPodcastQueueShowMenu;
+ txt = STRING_r_view_queue_show_menu;
+ cascade = r_queue_show_menu;
+ },
+ MENU_ITEM
+ {
+ command = EPodcastRemoveAllDownloads;
+ txt = STRING_r_view_remove_all_downloads_cmd;
+ },
+ MENU_ITEM
+ {
command = EPodcastHelp;
txt = STRING_r_view_help;
- },
- MENU_ITEM
- {
- command = EAknSoftkeyExit;
- txt = STRING_r_exit_cmd;
}
};
}
-//RESOURCE AVKON_TOOLBAR r_queueview_toolbar
-// {
-// flags = KAknToolbarFixed;
-// items =
-// {
-//
-// TBAR_CTRL
-// {
-// type = EAknCtButton;
-// id =EPodcastSuspendDownloads;
-// control = AVKON_BUTTON
-// {
-// states =
-// {
-// AVKON_BUTTON_STATE
-// {
-// //bmpfile = AVKON_BITMAP_FILE;
-// //bmpid = EMbmAvkonQgn_indi_find_goto;
-// txt = STRING_r_suspend_download_cmd;
-// helptxt = STRING_r_view_stop_downloads_cmd;
-// }
-// };
-// };
-// },
-// TBAR_CTRL
-// {
-// type = EAknCtButton;
-// id =EPodcastResumeDownloads;
-// control = AVKON_BUTTON
-// {
-// states =
-// {
-// AVKON_BUTTON_STATE
-// {
-// //bmpfile = AVKON_BITMAP_FILE;
-// //bmpid = EMbmAvkonQgn_indi_find_goto;
-// txt = STRING_r_view_resume_short_dls_cmd;
-// helptxt = STRING_r_view_resume_downloads_cmd;
-// }
-// };
-// };
-// },
-// TBAR_CTRL
-// {
-// type = EAknCtButton;
-// id = EPodcastRemoveDownload;
-// control = AVKON_BUTTON
-// {
-// states =
-// {
-// AVKON_BUTTON_STATE
-// {
-// //bmpfile = AVKON_BITMAP_FILE;
-// //bmpid = EMbmAvkonQgn_indi_find_goto;
-// txt = STRING_r_view_remove_download_short_cmd;
-// helptxt = STRING_r_view_remove_download_cmd;
-// }
-// };
-// };
-// },
-// TBAR_CTRL
-// {
-// type = EAknCtButton;
-// id =EPodcastRemoveAllDownloads;
-// control = AVKON_BUTTON
-// {
-// states =
-// {
-// AVKON_BUTTON_STATE
-// {
-// //bmpfile = AVKON_BITMAP_FILE;
-// //bmpid = EMbmAvkonQgn_indi_find_goto;
-// txt = STRING_r_view_remove_all_downloads_cmd_short;
-// helptxt = STRING_r_view_remove_all_downloads_cmd;
-// }
-// };
-// };
-// }
-// };
-// }
+RESOURCE MENU_PANE r_queue_show_menu
+ {
+ items = {
+ MENU_ITEM
+ {
+ txt = STRING_r_view_remove_download_short_cmd;
+ command = EPodcastRemoveDownload;
+ },
+ MENU_ITEM
+ {
+ txt = STRING_r_view_move_up_short_cmd;
+ command = EPodcastMoveDownloadUp;
+ },
+ MENU_ITEM
+ {
+ txt = STRING_r_view_move_down_short_cmd;
+ command = EPodcastMoveDownloadDown;
+ }
+ };
+ }
-RESOURCE STYLUS_POPUP_MENU r_queueview_popup_menu
- {
- items =
- {
- STYLUS_POPUP_MENU_ITEM
- {
- txt = STRING_r_view_remove_download_short_cmd;
- command = EPodcastRemoveDownload;
- },
- STYLUS_POPUP_MENU_ITEM
- {
- txt = STRING_r_view_move_up_short_cmd;
- command = EPodcastMoveDownloadUp;
- },
- STYLUS_POPUP_MENU_ITEM
- {
- txt = STRING_r_view_move_down_short_cmd;
- command = EPodcastMoveDownloadDown;
- }
- };
- }
--- a/application/data/PodcastSearchView.ra Sat Jul 10 13:35:21 2010 +0100
+++ b/application/data/PodcastSearchView.ra Sun Jul 11 11:36:24 2010 +0100
@@ -20,7 +20,6 @@
{
menubar = r_podcast_searchview_menubar;
cba = R_AVKON_SOFTKEYS_OPTIONS_BACK;
-// toolbar = r_searchview_toolbar;
}
@@ -54,70 +53,6 @@
};
}
-
-//RESOURCE AVKON_TOOLBAR r_searchview_toolbar
-// {
-// flags = KAknToolbarFixed;
-// items =
-// {
-// TBAR_CTRL
-// {
-// type = EAknCtButton;
-// id = EPodcastSearch;
-// control = AVKON_BUTTON
-// {
-// states =
-// {
-// AVKON_BUTTON_STATE
-// {
-// //bmpfile = AVKON_BITMAP_FILE;
-// //bmpid = EMbmAvkonQgn_indi_find_goto;
-// txt = STRING_r_search;
-// helptxt = STRING_r_update_all_feeds_cmd;
-// }
-// };
-// };
-// },
-// TBAR_CTRL
-// {
-// type = EAknCtButton;
-// id = EPodcastCancelUpdateAllFeeds;
-// control = AVKON_BUTTON
-// {
-// states =
-// {
-// AVKON_BUTTON_STATE
-// {
-// //bmpfile = AVKON_BITMAP_FILE;
-// //bmpid = EMbmAvkonQgn_indi_find_goto;
-// txt = STRING_r_cancel_update_all_feeds_short_cmd;
-// helptxt = STRING_r_cancel_update_all_feeds_cmd;
-// }
-// };
-// };
-// }/*,
-// TBAR_CTRL
-// {
-// type = EAknCtButton;
-// id = EPodcastAddSearchResult;
-// control = AVKON_BUTTON
-// {
-// states =
-// {
-// AVKON_BUTTON_STATE
-// {
-// //bmpfile = AVKON_BITMAP_FILE;
-// //bmpid = EMbmAvkonQgn_indi_find_goto;
-// txt = STRING_r_view_add_feed_cmd_short;
-// helptxt = STRING_r_view_add_feed_cmd;
-// }
-// };
-// };
-// }*/
-// };// items
-// }
-
-
RESOURCE CBA r_podcast_search_cba
{
buttons =
@@ -155,7 +90,6 @@
};
}
-
RESOURCE DIALOG r_waitdlg
{
flags = EAknWaitNoteFlags;
@@ -179,4 +113,3 @@
}
};
}
-
--- a/application/data/PodcastSettingsView.ra Sat Jul 10 13:35:21 2010 +0100
+++ b/application/data/PodcastSettingsView.ra Sun Jul 11 11:36:24 2010 +0100
@@ -73,19 +73,19 @@
associated_resource = r_on_off_texts;
name = STRING_r_podcast_setting_autodownload;
},
- AVKON_SETTING_ITEM
- {
- identifier = EPodcastSettingConnection;
- setting_page_resource = r_podcast_connection_page_resource;
- associated_resource = r_podcast_connection_texts;
- name = STRING_r_podcast_setting_connection;
- },
+// AVKON_SETTING_ITEM
+// {
+// identifier = EPodcastSettingConnection;
+// setting_page_resource = r_podcast_connection_page_resource;
+// associated_resource = r_podcast_connection_texts;
+// name = STRING_r_podcast_setting_connection;
+// },
AVKON_SETTING_ITEM
{
identifier = EPodcastSettingIAPList;
setting_page_resource = r_setting_iap_page_resource;
associated_resource = r_setting_iap_texts;
- name = STRING_r_podcast_setting_iaplist;
+ name = STRING_r_podcast_setting_connection;
}
};
}
@@ -104,42 +104,42 @@
default_input_mode = EAknEditorTextInputMode;
}
-RESOURCE AVKON_SETTING_PAGE r_podcast_connection_page_resource
-{
- label= STRING_r_podcast_setting_connection;
- type = EAknCtPopupSettingList;
- editor_resource_id = r_setting_connection_popup_list_entry;
-}
-
-RESOURCE POPUP_SETTING_LIST r_setting_connection_popup_list_entry
-{
-}
-
-RESOURCE AVKON_POPUP_SETTING_TEXTS r_podcast_connection_texts
-{
- setting_texts_resource = r_podcast_connection_closed;
- popped_up_texts_resource = r_podcast_connection_opened;
-}
-
-RESOURCE ARRAY r_podcast_connection_closed
-{
- items =
- {
- AVKON_ENUMERATED_TEXT{value=EConnectionDefault; text = STRING_r_podcast_setting_default;},
- AVKON_ENUMERATED_TEXT{value=EConnectionAlwaysAsk; text = STRING_r_podcast_setting_alwaysask;},
- AVKON_ENUMERATED_TEXT{value=EConnectionUseIap; text = STRING_r_podcast_setting_useiap;}
- };
-}
-
-RESOURCE ARRAY r_podcast_connection_opened
-{
- items =
- {
- LBUF { txt=STRING_r_podcast_setting_default; },
- LBUF { txt=STRING_r_podcast_setting_alwaysask; },
- LBUF { txt=STRING_r_podcast_setting_useiap; }
- };
-}
+//RESOURCE AVKON_SETTING_PAGE r_podcast_connection_page_resource
+//{
+// label= STRING_r_podcast_setting_connection;
+// type = EAknCtPopupSettingList;
+// editor_resource_id = r_setting_connection_popup_list_entry;
+//}
+//
+//RESOURCE POPUP_SETTING_LIST r_setting_connection_popup_list_entry
+//{
+//}
+//
+//RESOURCE AVKON_POPUP_SETTING_TEXTS r_podcast_connection_texts
+//{
+// setting_texts_resource = r_podcast_connection_closed;
+// popped_up_texts_resource = r_podcast_connection_opened;
+//}
+//
+//RESOURCE ARRAY r_podcast_connection_closed
+//{
+// items =
+// {
+// AVKON_ENUMERATED_TEXT{value=EConnectionDefault; text = STRING_r_podcast_setting_default;},
+// AVKON_ENUMERATED_TEXT{value=EConnectionAlwaysAsk; text = STRING_r_podcast_setting_alwaysask;},
+//// AVKON_ENUMERATED_TEXT{value=EConnectionUseIap; text = STRING_r_podcast_setting_useiap;}
+// };
+//}
+//
+//RESOURCE ARRAY r_podcast_connection_opened
+//{
+// items =
+// {
+// LBUF { txt=STRING_r_podcast_setting_default; },
+// LBUF { txt=STRING_r_podcast_setting_alwaysask; },
+// LBUF { txt=STRING_r_podcast_setting_useiap; }
+// };
+//}
RESOURCE AVKON_SETTING_PAGE r_podcast_autodownload_page_resource
{
@@ -266,7 +266,8 @@
{
items =
{
- AVKON_ENUMERATED_TEXT{value=0; text = "";}
+ AVKON_ENUMERATED_TEXT{value=EConnectionDefault; text = STRING_r_podcast_setting_default;},
+ AVKON_ENUMERATED_TEXT{value=EConnectionAlwaysAsk; text = STRING_r_podcast_setting_alwaysask;}
};
}
@@ -274,6 +275,7 @@
{
items =
{
- LBUF { txt=""; }
+ LBUF { txt=STRING_r_podcast_setting_default; },
+ LBUF { txt=STRING_r_podcast_setting_alwaysask; }
};
}
--- a/application/data/PodcastShowsView.ra Sat Jul 10 13:35:21 2010 +0100
+++ b/application/data/PodcastShowsView.ra Sun Jul 11 11:36:24 2010 +0100
@@ -20,7 +20,6 @@
{
menubar = r_podcast_showsview_menubar;
cba = R_AVKON_SOFTKEYS_OPTIONS_BACK;
-// toolbar = r_showsview_toolbar;
}
RESOURCE MENU_BAR r_podcast_showsview_menubar
@@ -35,191 +34,61 @@
{
items =
{
- MENU_ITEM
+ MENU_ITEM
+ {
+ command = EPodcastUpdateFeed;
+ txt = STRING_r_update_feed_cmd;
+ },
+ MENU_ITEM
+ {
+ command = EPodcastCancelUpdateAllFeeds;
+ txt = STRING_r_cancel_update_all_feeds_cmd;
+ },
+ MENU_ITEM
+ {
+ command = EPodcastShowsShowMenu;
+ txt = STRING_r_view_shows_show_menu;
+ cascade = r_shows_show_menu;
+ },
+ MENU_ITEM
{
command = EPodcastMarkAllPlayed;
txt = STRING_r_view_mark_all_played_cmd;
},
-// MENU_ITEM
-// {
-// command = EPodcastFilterShows;
-// txt = STRING_r_view_filter_shows_cmd;
-// cascade = r_filtershows_menu;
-// },
- MENU_ITEM
- {
- command = EPodcastAbout;
- txt = STRING_r_view_about_cmd;
- },
MENU_ITEM
{
command = EPodcastHelp;
txt = STRING_r_view_help;
- },
- MENU_ITEM
- {
- command = EAknSoftkeyExit;
- txt = STRING_r_exit_cmd;
}
};
}
-RESOURCE MENU_PANE r_filtershows_menu
+RESOURCE MENU_PANE r_shows_show_menu
{
items = {
- MENU_ITEM
- {
- command = EPodcastFilterShowsAll;
- txt = STRING_r_view_filter_all_shows_cmd;
- },
-/* MENU_ITEM
- {
- command = EPodcastFilterShowsNew;
- txt = STRING_r_view_filter_new_shows_cmd;
- },
- MENU_ITEM
- {
- command = EPodcastFilterShowsDownloaded;
- txt = STRING_r_view_filter_downloaded_shows_cmd;
- },*/
- MENU_ITEM
- {
- command = EPodcastFilterShowsNewAndDownloaded;
- txt = STRING_r_view_filter_downloaded_new_shows_cmd;
- }
- };
+ MENU_ITEM
+ {
+ command = EPodcastMarkAsPlayed;
+ txt = STRING_r_view_mark_as_played_cmd_short;
+ },
+ MENU_ITEM
+ {
+ command = EPodcastMarkAsUnplayed;
+ txt = STRING_r_view_mark_as_unplayed_cmd_short;
+ },
+ MENU_ITEM
+ {
+ command = EPodcastDeleteShow;
+ txt = STRING_r_view_delete_show_cmd;
+ },
+ MENU_ITEM
+ {
+ txt = STRING_r_view_show_info_cmd;
+ command = EPodcastShowInfo;
+ }
+ };
}
-//RESOURCE AVKON_TOOLBAR r_showsview_toolbar
-// {
-// flags = KAknToolbarFixed;
-// items =
-// {
-// TBAR_CTRL
-// {
-// type = EAknCtButton;
-// id = EPodcastUpdateFeed;
-// control = AVKON_BUTTON
-// {
-// states =
-// {
-// AVKON_BUTTON_STATE
-// {
-// //bmpfile = AVKON_BITMAP_FILE;
-// //bmpid = EMbmAvkonQgn_indi_find_goto;
-// txt = STRING_r_update_feed_short_cmd;
-// helptxt = STRING_r_update_feed_cmd;
-// }
-// };
-// };
-// },
-// TBAR_CTRL
-// {
-// type = EAknCtButton;
-// id = EPodcastCancelUpdateAllFeeds;
-// control = AVKON_BUTTON
-// {
-// states =
-// {
-// AVKON_BUTTON_STATE
-// {
-// //bmpfile = AVKON_BITMAP_FILE;
-// //bmpid = EMbmAvkonQgn_indi_find_goto;
-// txt = STRING_r_cancel_update_all_feeds_short_cmd;
-// helptxt = STRING_r_cancel_update_all_feeds_cmd;
-// }
-// };
-// };
-// },
-//// we keep the download toolbar button in S^3, but always disable it
-//// because there are drawing issues with only one item in the toolbar
-// TBAR_CTRL
-// {
-// type = EAknCtButton;
-// id = EPodcastDownloadShow;
-// control = AVKON_BUTTON
-// {
-// states =
-// {
-// AVKON_BUTTON_STATE
-// {
-// //bmpfile = AVKON_BITMAP_FILE;
-// //bmpid = EMbmAvkonQgn_indi_find_goto;
-// txt = STRING_r_view_download_show_cmd;
-// helptxt = STRING_r_view_download_show_cmd;
-// }
-// };
-// };
-// }
-// ,
-// TBAR_CTRL
-// {
-// type = EAknCtButton;
-// id =EPodcastDeleteShow;
-// control = AVKON_BUTTON
-// {
-// states =
-// {
-// AVKON_BUTTON_STATE
-// {
-// //bmpfile = AVKON_BITMAP_FILE;
-// //bmpid = EMbmAvkonQgn_indi_find_goto;
-// txt = STRING_r_view_delete_show_cmd;
-// helptxt = STRING_r_view_delete_show_cmd;
-// }
-// };
-// };
-// },
-// TBAR_CTRL
-// {
-// type = EAknCtButton;
-// id = EPodcastMarkAsPlayed;
-// control = AVKON_BUTTON
-// {
-// states =
-// {
-// AVKON_BUTTON_STATE
-// {
-// //bmpfile = AVKON_BITMAP_FILE;
-// //bmpid = EMbmAvkonQgn_indi_find_goto;
-// txt = STRING_r_view_mark_as_played_cmd_short;
-// helptxt = STRING_r_view_mark_as_played_cmd_short;
-// }
-// };
-// };
-// },
-// TBAR_CTRL
-// {
-// type = EAknCtButton;
-// id =EPodcastMarkAsUnplayed;
-// control = AVKON_BUTTON
-// {
-// states =
-// {
-// AVKON_BUTTON_STATE
-// {
-// //bmpfile = AVKON_BITMAP_FILE;
-// //bmpid = EMbmAvkonQgn_indi_find_goto;
-// txt = STRING_r_view_mark_as_unplayed_cmd_short;
-// helptxt = STRING_r_view_mark_as_unplayed_cmd_short;
-// }
-// };
-// };
-// }
-// };
-// }
-
-RESOURCE STYLUS_POPUP_MENU r_showview_popup_menu
- {
- items =
- {
- STYLUS_POPUP_MENU_ITEM
- {
- txt = STRING_r_view_show_info_cmd;
- command = EPodcastShowInfo;
- }
- };
- }
RESOURCE DIALOG r_show_info_note
{
--- a/application/group/Podcast.mmp Sat Jul 10 13:35:21 2010 +0100
+++ b/application/group/Podcast.mmp Sun Jul 11 11:36:24 2010 +0100
@@ -106,3 +106,5 @@
LIBRARY hlplch.lib
LIBRARY bitgdi.lib
LIBRARY commonui.lib // CDocumentHandler
+LIBRARY estlib.lib
+//LIBRARY libc.lib
--- a/application/inc/Podcast.hrh Sat Jul 10 13:35:21 2010 +0100
+++ b/application/inc/Podcast.hrh Sun Jul 11 11:36:24 2010 +0100
@@ -67,7 +67,11 @@
EPodcastFilterShowsAll,
EPodcastFilterShowsNew,
EPodcastFilterShowsDownloaded,
- EPodcastFilterShowsNewAndDownloaded
+ EPodcastFilterShowsNewAndDownloaded,
+ EPodcastFeedFeedMenu,
+ EPodcastShowsShowMenu,
+ EPodcastQueueShowMenu,
+ EPodcastFeedHelpMenu
};
enum TPodcastControl
@@ -80,7 +84,6 @@
EPodcastSettingConnection,
EPodcastSettingIAPList,
EPodcastAboutDlg,
- EPodcastFeedsToolbarExtension,
EQueryControl,
EPodcastShowInfoImage,
EWaitDlg
@@ -100,9 +103,9 @@
enum TConnectionSetting {
EConnectionDefault = 0,
- EConnectionAlwaysAsk = 1,
- EConnectionUseNetwork = 2,
- EConnectionUseIap = 0x7FFF
+ EConnectionAlwaysAsk = -1
+// EConnectionUseNetwork = 2,
+// EConnectionUseIap = 0x7FFF
};
#endif
--- a/application/inc/PodcastFeedView.h Sat Jul 10 13:35:21 2010 +0100
+++ b/application/inc/PodcastFeedView.h Sun Jul 11 11:36:24 2010 +0100
@@ -97,6 +97,9 @@
// from MImageHandlerCallback
void ImageOperationCompleteL(TInt aError, TUint aHandle, CPodcastModel& aPodcastModel);
+ void DynInitMenuPaneL(TInt aResourceId,CEikMenuPane* aMenuPane);
+ TKeyResponse OfferKeyEventL(const TKeyEvent& aKeyEvent,TEventCode aType);
+
private:
void FormatFeedInfoListBoxItemL(CFeedInfo& aFeedInfo, TBool aIsUpdating = EFalse);
void HandleAddFeedL();
--- a/application/inc/buildno.h Sat Jul 10 13:35:21 2010 +0100
+++ b/application/inc/buildno.h Sun Jul 11 11:36:24 2010 +0100
@@ -1,2 +1,2 @@
// Build number generated by increment_buildno.py, do not edit manually
-#define BUILD_NO 28
\ No newline at end of file
+#define BUILD_NO 3
\ No newline at end of file
--- a/application/sis/buildno.txt Sat Jul 10 13:35:21 2010 +0100
+++ b/application/sis/buildno.txt Sun Jul 11 11:36:24 2010 +0100
@@ -1,1 +1,1 @@
-28
\ No newline at end of file
+3
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/application/sis/make_s60_3rd_sis.cmd Sun Jul 11 11:36:24 2010 +0100
@@ -0,0 +1,6 @@
+del *.sis
+makesis -dc:\symbian\S60_3rd_FP1 podcatcher_udeb.pkg
+signsis podcatcher_udeb.sis podcatcher_udeb_signed.sis podcast.cer podcast.key
+
+makesis -dc:\symbian\S60_3rd_FP1 podcatcher_urel.pkg
+signsis podcatcher_urel.sis podcatcher_urel_signed.sis podcast.cer podcast.key
\ No newline at end of file
--- a/application/sis/make_s60_5th_sis.cmd Sat Jul 10 13:35:21 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,6 +0,0 @@
-del *.sis
-makesis -dc:\symbian\S60_5th_Edition_SDK_v1.0 podcatcher_udeb.pkg
-signsis podcatcher_udeb.sis podcatcher_udeb_signed.sis podcast.cer podcast.key
-
-makesis -dc:\symbian\S60_5th_Edition_SDK_v1.0 podcatcher_urel.pkg
-signsis podcatcher_urel.sis podcatcher_urel_signed.sis podcast.cer podcast.key
\ No newline at end of file
--- a/application/sis/podcatcher_udeb.pkg Sat Jul 10 13:35:21 2010 +0100
+++ b/application/sis/podcatcher_udeb.pkg Sun Jul 11 11:36:24 2010 +0100
@@ -1,7 +1,7 @@
&EN
:"Symbian Foundation"
%{"Podcatcher"}
-#{"Podcatcher"},(0xA0009D00), 1, 00, 28, TYPE=SA
+#{"Podcatcher"},(0xA0009D00), 0, 90, 3, TYPE=SA
;Supports S60 3rd edition
[0x101F7961], 0, 0, 0, {"Series60ProductID"}
Binary file application/sis/podcatcher_udeb.sis has changed
Binary file application/sis/podcatcher_udeb_signed.sis has changed
--- a/application/sis/podcatcher_udeb_template.pkg Sat Jul 10 13:35:21 2010 +0100
+++ b/application/sis/podcatcher_udeb_template.pkg Sun Jul 11 11:36:24 2010 +0100
@@ -1,7 +1,7 @@
&EN
:"Symbian Foundation"
%{"Podcatcher"}
-#{"Podcatcher"},(0xA0009D00), 1, 00, BUILDNO, TYPE=SA
+#{"Podcatcher"},(0xA0009D00), 0, 90, BUILDNO, TYPE=SA
;Supports S60 3rd edition
[0x101F7961], 0, 0, 0, {"Series60ProductID"}
--- a/application/sis/podcatcher_urel.pkg Sat Jul 10 13:35:21 2010 +0100
+++ b/application/sis/podcatcher_urel.pkg Sun Jul 11 11:36:24 2010 +0100
@@ -1,7 +1,7 @@
&EN
:"Symbian Foundation"
%{"Podcatcher"}
-#{"Podcatcher"},(0xA0009D00), 1, 00, 28, TYPE=SA
+#{"Podcatcher"},(0xA0009D00), 1, 00, 3, TYPE=SA
;Supports S60 3rd edition
[0x101F7961], 0, 0, 0, {"Series60ProductID"}
--- a/application/src/PodcastFeedView.cpp Sat Jul 10 13:35:21 2010 +0100
+++ b/application/src/PodcastFeedView.cpp Sun Jul 11 11:36:24 2010 +0100
@@ -31,7 +31,9 @@
#include <aknquerydialog.h>
#include <BAUTILS.H>
#include <pathinfo.h>
-//#include <akncommondialogsdynmem.h>
+#include <caknmemoryselectiondialog.h>
+#include <caknmemoryselectiondialog.h>
+#include <caknfilenamepromptdialog.h>
#include "Podcatcher.pan"
const TInt KMaxFeedNameLength = 100;
@@ -710,72 +712,89 @@
void CPodcastFeedView::HandleImportFeedsL()
{
-// TFileName fileName;
-// fileName.Zero();
-// TFileName startFolder;
-// startFolder.Zero();
-// TInt types = AknCommonDialogsDynMem::EMemoryTypePhone | AknCommonDialogsDynMem::EMemoryTypeMMC |AknCommonDialogsDynMem::EMemoryTypeInternalMassStorage| AknCommonDialogsDynMem::EMemoryTypeRemote;
-//
-// HBufC *title = iCoeEnv->AllocReadResourceLC(R_PODCAST_SELECT_OPML);
-// if (AknCommonDialogsDynMem::RunSelectDlgLD (types, fileName,
-// startFolder, NULL, NULL, *title))
-// {
-//
-// if(fileName.Length()>0)
-// {
-// HBufC *waitText = iEikonEnv->AllocReadResourceLC(R_IMPORTING);
-// iOpmlState = EOpmlImporting;
-// ShowWaitDialogL(*waitText);
-// CleanupStack::PopAndDestroy(waitText);
-//
-// TRAPD(err, iPodcastModel.FeedEngine().ImportFeedsL(fileName));
-//
-// if (err != KErrNone) {
-// TBuf<KMaxMessageLength> message;
-// iEikonEnv->ReadResourceL(message, R_IMPORT_FEED_FAILURE);
-// ShowErrorMessageL(message);
-// }
-// }
-//
-// }
-// CleanupStack::PopAndDestroy(title);
+ CAknMemorySelectionDialog* memDlg =
+ CAknMemorySelectionDialog::NewL(ECFDDialogTypeNormal, ETrue);
+ CleanupStack::PushL(memDlg);
+ CAknMemorySelectionDialog::TMemory memory =
+ CAknMemorySelectionDialog::EPhoneMemory;
+
+ if (memDlg->ExecuteL(memory))
+ {
+ TFileName importName;
+
+ if (memory==CAknMemorySelectionDialog::EMemoryCard)
+ {
+ importName = PathInfo:: MemoryCardRootPath();
+ }
+ else
+ {
+ importName = PathInfo:: PhoneMemoryRootPath();
+ }
+
+ CAknFileSelectionDialog* dlg = CAknFileSelectionDialog::NewL(ECFDDialogTypeNormal, R_PODCAST_IMPORT_PODCAST);
+ CleanupStack::PushL(dlg);
+
+ dlg->SetDefaultFolderL(importName);
+
+ if(dlg->ExecuteL(importName))
+ {
+ if(importName.Length()>0)
+ {
+ iPodcastModel.FeedEngine().ImportFeedsL(importName);
+ UpdateListboxItemsL();
+ }
+ }
+ CleanupStack::PopAndDestroy(dlg);
+ }
+ CleanupStack::PopAndDestroy(memDlg);
}
void CPodcastFeedView::HandleExportFeedsL()
{
-// TFileName fileName;
-// fileName.Copy(_L("feeds.opml"));
-// TFileName startFolder;
-// startFolder.Zero();
-// TInt types = AknCommonDialogsDynMem::EMemoryTypePhone | AknCommonDialogsDynMem::EMemoryTypeMMC |AknCommonDialogsDynMem::EMemoryTypeInternalMassStorage| AknCommonDialogsDynMem::EMemoryTypeRemote;
-//
-// HBufC *title = iCoeEnv->AllocReadResourceLC(R_PODCAST_SELECT_FOLDER);
-// if (AknCommonDialogsDynMem::RunSaveDlgLD (types, fileName,
-// startFolder, NULL, NULL, *title))
-// {
-// TFileName temp;
-// TRAPD(err, iPodcastModel.FeedEngine().ExportFeedsL(temp));
-// BaflUtils::CopyFile(iEikonEnv->FsSession(), temp, fileName);
-// BaflUtils::DeleteFile(iEikonEnv->FsSession(),temp);
-// if (err == KErrNone)
-// {
-// UpdateListboxItemsL();
-// TInt numFeeds = iPodcastModel.FeedEngine().GetSortedFeeds().Count();
-//
-// TBuf<KMaxMessageLength> message;
-// TBuf<KMaxMessageLength> templ;
-// iEikonEnv->ReadResourceL(templ, R_EXPORT_FEED_SUCCESS);
-// message.Format(templ, numFeeds);
-// ShowOkMessageL(message);
-// }
-// else
-// {
-// TBuf<KMaxMessageLength> message;
-// iEikonEnv->ReadResourceL(message, R_EXPORT_FEED_FAILURE);
-// ShowErrorMessageL(message);
-// }
-// }
-// CleanupStack::PopAndDestroy(title);
+ CAknMemorySelectionDialog* memDlg =
+ CAknMemorySelectionDialog::NewL(ECFDDialogTypeSave, ETrue);
+ CleanupStack::PushL(memDlg);
+ CAknMemorySelectionDialog::TMemory memory =
+ CAknMemorySelectionDialog::EPhoneMemory;
+
+ if (memDlg->ExecuteL(memory))
+ {
+ TFileName pathName;
+
+ if (memory==CAknMemorySelectionDialog::EMemoryCard)
+ {
+ pathName = PathInfo::MemoryCardRootPath();
+ }
+ else
+ {
+ pathName = PathInfo::PhoneMemoryRootPath();
+ }
+
+ CAknFileSelectionDialog* dlg = CAknFileSelectionDialog::NewL(ECFDDialogTypeSave, R_PODCAST_EXPORT_FEEDS);
+ CleanupStack::PushL(dlg);
+
+ if(dlg->ExecuteL(pathName))
+ {
+ CAknFileNamePromptDialog *fileDlg = CAknFileNamePromptDialog::NewL(R_PODCAST_FILENAME_PROMPT_DIALOG);
+ CleanupStack::PushL(fileDlg);
+ fileDlg->SetPathL(pathName);
+ TFileName fileName;
+ if (fileDlg->ExecuteL(fileName) && fileName.Length() > 0)
+ {
+ pathName.Append(fileName);
+ TFileName temp;
+ iPodcastModel.FeedEngine().ExportFeedsL(temp);
+ RFs fs;
+ fs.Connect();
+ BaflUtils::CopyFile(fs, temp, pathName);
+ BaflUtils::DeleteFile(fs,temp);
+ fs.Close();
+ }
+ CleanupStack::PopAndDestroy(fileDlg);
+ }
+ CleanupStack::PopAndDestroy(dlg);
+ }
+ CleanupStack::PopAndDestroy(memDlg);
}
void CPodcastFeedView::CheckResumeDownloadL()
@@ -887,3 +906,32 @@
{
return iViewingShows;
}
+
+void CPodcastFeedView::DynInitMenuPaneL(TInt aResourceId,CEikMenuPane* aMenuPane)
+ {
+ if(aResourceId == R_PODCAST_FEEDVIEW_MENU)
+ {
+ aMenuPane->SetItemDimmed(EPodcastUpdateAllFeeds, iUpdatingRunning);
+ aMenuPane->SetItemDimmed(EPodcastCancelUpdateAllFeeds, !iUpdatingRunning);
+ aMenuPane->SetItemDimmed(EPodcastSettings, iUpdatingRunning);
+ aMenuPane->SetItemDimmed(EPodcastFeedFeedMenu, iUpdatingRunning);
+// aMenuPane->SetItemDimmed(EPodcastImportExportFeeds, iUpdatingRunning);
+ }
+ }
+
+TKeyResponse CPodcastFeedView::OfferKeyEventL(const TKeyEvent& aKeyEvent,TEventCode aType)
+ {
+ if (aType == EEventKey)
+ {
+ switch (aKeyEvent.iCode) {
+ case EKeyBackspace:
+ case EKeyDelete:
+ HandleCommandL(EPodcastDeleteFeedHardware);
+ break;
+ default:
+ break;
+ }
+ }
+ return CPodcastListView::OfferKeyEventL(aKeyEvent, aType);
+ }
+
--- a/application/src/PodcastQueueView.cpp Sat Jul 10 13:35:21 2010 +0100
+++ b/application/src/PodcastQueueView.cpp Sun Jul 11 11:36:24 2010 +0100
@@ -67,8 +67,6 @@
iPodcastModel.FeedEngine().AddObserver(this);
iPodcastModel.ShowEngine().AddObserver(this);
- CleanupStack::PopAndDestroy();
-
SetEmptyTextL(R_PODCAST_EMPTY_QUEUE);
}
@@ -310,8 +308,21 @@
void CPodcastQueueView::DynInitMenuPaneL(TInt aResourceId,CEikMenuPane* aMenuPane)
{
- if(aResourceId == R_PODCAST_SHOWSVIEW_MENU)
+ if(aResourceId == R_QUEUE_SHOW_MENU)
{
- aMenuPane->SetItemDimmed(EPodcastMarkAllPlayed, ETrue);
+ TBool dimDown = (iListContainer->Listbox()->CurrentItemIndex() >= iPodcastModel.ActiveShowList().Count() - 1 ?
+ ETrue : EFalse);
+ TBool dimUp = (iListContainer->Listbox()->CurrentItemIndex() <= 0 ?
+ ETrue : EFalse);
+
+ aMenuPane->SetItemDimmed(EPodcastMoveDownloadDown, dimDown);
+ aMenuPane->SetItemDimmed(EPodcastMoveDownloadUp, dimUp);
+ }
+ else if (aResourceId == R_PODCAST_QUEUEVIEW_MENU)
+ {
+ aMenuPane->SetItemDimmed(EPodcastQueueShowMenu, iPodcastModel.ActiveShowList().Count() == 0);
+ aMenuPane->SetItemDimmed(EPodcastRemoveAllDownloads, iPodcastModel.ActiveShowList().Count() == 0);
+ aMenuPane->SetItemDimmed(EPodcastSuspendDownloads, iPodcastModel.SettingsEngine().DownloadSuspended());
+ aMenuPane->SetItemDimmed(EPodcastResumeDownloads, !iPodcastModel.SettingsEngine().DownloadSuspended());
}
}
--- a/application/src/PodcastSettingsView.cpp Sat Jul 10 13:35:21 2010 +0100
+++ b/application/src/PodcastSettingsView.cpp Sun Jul 11 11:36:24 2010 +0100
@@ -24,8 +24,8 @@
#include <aknnavide.h>
#include <podcast.rsg>
#include "SettingsEngine.h"
-
-//#include <akncommondialogsdynmem.h>
+#include <caknfileselectiondialog.h>
+#include <caknmemoryselectiondialog.h>
#include <pathinfo.h>
#include <aknquerydialog.h>
@@ -46,36 +46,36 @@
{
CArrayPtr< CAknEnumeratedText > * enumeratedArr = EnumeratedTextArray();
CArrayPtr< HBufC > * poppedUpTextArray = PoppedUpTextArray();
- enumeratedArr->ResetAndDestroy();
- poppedUpTextArray->ResetAndDestroy();
CDesCArrayFlat *iapArray = iPodcastModel.IAPNames();
TBool valueExists = EFalse;
DP2("InternalValue=%d, ExternalValue=%d", InternalValue(), ExternalValue());
for (int i=0;i<iapArray->Count();i++) {
- HBufC *buf = (*iapArray)[i].AllocL();
- poppedUpTextArray->AppendL(buf);
-
- TInt iapId = iPodcastModel.IAPIds()[i].iIapId;
- DP2("IAP name='%S', id=%d", buf, iapId);
-
- if (iapId == ExternalValue()) {
- valueExists = ETrue;
- }
- // both arrays destroy themselves, so we need two copies to prevent USER 44
- HBufC *buf2 = (*iapArray)[i].AllocL();
-
- CAknEnumeratedText *enumerated = new CAknEnumeratedText(iapId, buf2);
- enumeratedArr->AppendL(enumerated);
+ HBufC *buf = (*iapArray)[i].AllocL();
+ poppedUpTextArray->AppendL(buf);
+
+ TInt iapId = iPodcastModel.IAPIds()[i].iIapId;
+ DP2("IAP name='%S', id=%d", buf, iapId);
+
+ if (iapId == ExternalValue() || ExternalValue() == 0 || ExternalValue() == -1)
+ {
+ valueExists = ETrue;
+ }
+
+ // both arrays destroy themselves, so we need two copies to prevent USER 44
+ HBufC *buf2 = (*iapArray)[i].AllocL();
+
+ CAknEnumeratedText *enumerated = new CAknEnumeratedText(iapId, buf2);
+ enumeratedArr->AppendL(enumerated);
}
DP1("valueExists=%d", valueExists);
if (!valueExists && iPodcastModel.IAPIds().Count() > 0 ) {
- DP1("Setting iIap=%d", iPodcastModel.IAPIds()[0].iIapId);
- iIap = iPodcastModel.IAPIds()[0].iIapId;
- LoadL();
- DP2("InternalValue=%d, ExternalValue=%d", InternalValue(), ExternalValue());
+ DP1("Setting iIap=%d", iPodcastModel.IAPIds()[0].iIapId);
+ iIap = iPodcastModel.IAPIds()[0].iIapId;
+ LoadL();
+ DP2("InternalValue=%d, ExternalValue=%d", InternalValue(), ExternalValue());
}
TRAPD(err, HandleTextArrayUpdateL());
@@ -121,91 +121,91 @@
};
-class CConnectionSetting: public CAknEnumeratedTextPopupSettingItem
-{
-public:
- CConnectionSetting(TInt aResourceId, TInt& aValue, CPodcastModel &aPodcastModel) :
- CAknEnumeratedTextPopupSettingItem(aResourceId, aValue), iPodcastModel(aPodcastModel)
- {
- }
-
- ~CConnectionSetting()
- {
- }
-
- void RefreshConnectionListL()
- {
- CArrayPtr< CAknEnumeratedText > * enumeratedArr = EnumeratedTextArray();
- CArrayPtr< HBufC > * poppedUpTextArray = PoppedUpTextArray();
-
- CDesCArrayFlat *snapArray = iPodcastModel.SNAPNames();
-
- TBool valueExists = EFalse;
- DP2("InternalValue=%d, ExternalValue=%d", InternalValue(), ExternalValue());
- for (int i=0;i<snapArray->Count();i++) {
- HBufC *buf = (*snapArray)[i].AllocL();
- poppedUpTextArray->InsertL(EConnectionUseNetwork+i,buf);
-
- TInt snapId = iPodcastModel.SNAPIds()[i].iIapId;
- DP2("SNAP name='%S', id=%d", buf, snapId);
-
- if (snapId == ExternalValue()) {
- valueExists = ETrue;
- }
- // both arrays destroy themselves, so we need two copies to prevent USER 44
- HBufC *buf2 = (*snapArray)[i].AllocL();
-
- CAknEnumeratedText *enumerated = new CAknEnumeratedText(EConnectionUseNetwork+i, buf2);
- enumeratedArr->InsertL(EConnectionUseNetwork+i, enumerated);
- }
-
- DP1("valueExists=%d", valueExists);
- if (!valueExists && iPodcastModel.SNAPIds().Count() > 0 ) {
- DP1("Setting i=%d", iPodcastModel.SNAPIds()[0].iIapId);
- LoadL();
- DP2("InternalValue=%d, ExternalValue=%d", InternalValue(), ExternalValue());
- }
-
- TRAPD(err, HandleTextArrayUpdateL());
-
- if (err != KErrNone) {
- DP1("Leave in HandleTextArrayUpdateL, err=%d", err);
- }
- }
-
- void CompleteConstructionL()
- {
- DP("CIapSetting::CompleteConstructionL BEGIN");
- CAknEnumeratedTextPopupSettingItem::CompleteConstructionL();
- RefreshConnectionListL();
- DP("CIapSetting::CompleteConstructionL END");
- }
-
- void EditItemL(TBool aCalledFromMenu)
- {
- DP("CIapSetting::EditItemL BEGIN");
- LoadL();
- CAknEnumeratedTextPopupSettingItem::EditItemL(aCalledFromMenu);
- StoreL();
- DP2("InternalValue=%d, ExternalValue=%d", InternalValue(), ExternalValue());
- DP("CIapSetting::EditItemL END");
- }
-
- void HandleSettingPageEventL(CAknSettingPage* aSettingPage, TAknSettingPageEvent aEventType)
- {
- DP("CIapSetting::HandleSettingPageEventL BEGIN");
- CAknSettingItem::HandleSettingPageEventL(aSettingPage, aEventType);
- /*if (aEventType == EEventSettingOked)
- {
- DP2("InternalValue=%d, ExternalValue=%d", InternalValue(), ExternalValue());
- StoreL();
- }*/
- DP("CIapSetting::HandleSettingPageEventL END");
- }
-
-protected:
- CPodcastModel& iPodcastModel;
-};
+//class CConnectionSetting: public CAknEnumeratedTextPopupSettingItem
+//{
+//public:
+// CConnectionSetting(TInt aResourceId, TInt& aValue, CPodcastModel &aPodcastModel) :
+// CAknEnumeratedTextPopupSettingItem(aResourceId, aValue), iPodcastModel(aPodcastModel)
+// {
+// }
+//
+// ~CConnectionSetting()
+// {
+// }
+//
+// void RefreshConnectionListL()
+// {
+// CArrayPtr< CAknEnumeratedText > * enumeratedArr = EnumeratedTextArray();
+// CArrayPtr< HBufC > * poppedUpTextArray = PoppedUpTextArray();
+//
+// CDesCArrayFlat *snapArray = iPodcastModel.SNAPNames();
+//
+// TBool valueExists = EFalse;
+// DP2("InternalValue=%d, ExternalValue=%d", InternalValue(), ExternalValue());
+// for (int i=0;i<snapArray->Count();i++) {
+// HBufC *buf = (*snapArray)[i].AllocL();
+// poppedUpTextArray->InsertL(EConnectionUseNetwork+i,buf);
+//
+// TInt snapId = iPodcastModel.SNAPIds()[i].iIapId;
+// DP2("SNAP name='%S', id=%d", buf, snapId);
+//
+// if (snapId == ExternalValue()) {
+// valueExists = ETrue;
+// }
+// // both arrays destroy themselves, so we need two copies to prevent USER 44
+// HBufC *buf2 = (*snapArray)[i].AllocL();
+//
+// CAknEnumeratedText *enumerated = new CAknEnumeratedText(EConnectionUseNetwork+i, buf2);
+// enumeratedArr->InsertL(EConnectionUseNetwork+i, enumerated);
+// }
+//
+// DP1("valueExists=%d", valueExists);
+// if (!valueExists && iPodcastModel.SNAPIds().Count() > 0 ) {
+// DP1("Setting i=%d", iPodcastModel.SNAPIds()[0].iIapId);
+// LoadL();
+// DP2("InternalValue=%d, ExternalValue=%d", InternalValue(), ExternalValue());
+// }
+//
+// TRAPD(err, HandleTextArrayUpdateL());
+//
+// if (err != KErrNone) {
+// DP1("Leave in HandleTextArrayUpdateL, err=%d", err);
+// }
+// }
+//
+// void CompleteConstructionL()
+// {
+// DP("CIapSetting::CompleteConstructionL BEGIN");
+// CAknEnumeratedTextPopupSettingItem::CompleteConstructionL();
+// RefreshConnectionListL();
+// DP("CIapSetting::CompleteConstructionL END");
+// }
+//
+// void EditItemL(TBool aCalledFromMenu)
+// {
+// DP("CIapSetting::EditItemL BEGIN");
+// LoadL();
+// CAknEnumeratedTextPopupSettingItem::EditItemL(aCalledFromMenu);
+// StoreL();
+// DP2("InternalValue=%d, ExternalValue=%d", InternalValue(), ExternalValue());
+// DP("CIapSetting::EditItemL END");
+// }
+//
+// void HandleSettingPageEventL(CAknSettingPage* aSettingPage, TAknSettingPageEvent aEventType)
+// {
+// DP("CIapSetting::HandleSettingPageEventL BEGIN");
+// CAknSettingItem::HandleSettingPageEventL(aSettingPage, aEventType);
+// /*if (aEventType == EEventSettingOked)
+// {
+// DP2("InternalValue=%d, ExternalValue=%d", InternalValue(), ExternalValue());
+// StoreL();
+// }*/
+// DP("CIapSetting::HandleSettingPageEventL END");
+// }
+//
+//protected:
+// CPodcastModel& iPodcastModel;
+//};
class CPodcastSettingItemList:public CAknSettingItemList
{
@@ -226,33 +226,8 @@
se.SetBaseDir(iShowDir);
DP1("Base Dir: %S", &iShowDir);
se.SetUpdateAutomatically((TAutoUpdateSetting)iAutoUpdate);
- DP1("Update automatically: %d", iAutoUpdate);
- switch(iConnection)
- {
- case EConnectionDefault:
- {
- DP("Specific IAP: 0 Ask user");
- se.SetSpecificIAP(0);
- }break;
- case EConnectionAlwaysAsk:
- {
- DP("Specific IAP: -1 Ask user");
- se.SetSpecificIAP(-1);
- }break;
-
- case EConnectionUseIap:
- {
- DP1("Specific NETWORK: %d", iIap);
- se.SetSpecificIAP((iIap|KUseIAPFlag));
- }break;
- default:
- case EConnectionUseNetwork:
- {
- DP1("Specific IAP: %d", iIap);
- TInt snapIndex = iConnection-EConnectionUseNetwork;
- se.SetSpecificIAP(iPodcastModel.SNAPIds()[snapIndex].iIapId);
- }break;
- }
+ DP1("Update automatically: %d", iAutoUpdate);
+ se.SetSpecificIAP(iIap);
DP1("Download automatically: %d", iAutoDownload);
se.SetDownloadAutomatically(iAutoDownload);
@@ -270,15 +245,15 @@
{
DP("UpdateSettingVisibility BEGIN");
LoadSettingsL();
- TBool dimAutoUpdate = iConnection == EConnectionAlwaysAsk;
- TBool dimIAP = iConnection < EConnectionUseIap;
+ TBool dimAutoUpdate = iIap == EConnectionAlwaysAsk;
+// TBool dimIAP = EFalse; //iConnection < EConnectionUseIap;
iSettingAutoUpdate->SetHidden(dimAutoUpdate);
- iSettingIAP->SetHidden(dimIAP);
- if(!dimIAP)
- {
- iSettingIAP->RefreshConnectionListL();
- }
+// iSettingIAP->SetHidden(dimIAP);
+// if(!dimIAP)
+// {
+// iSettingIAP->RefreshConnectionListL();
+// }
ListBox()->ScrollToMakeItemVisible(0);
TRAP_IGNORE(HandleChangeInItemArrayOrVisibilityL());
@@ -287,41 +262,49 @@
void EditItemL (TInt aIndex, TBool aCalledFromMenu)
{
- DP("EditItemL BEGIN");
-// if (aIndex == 0) {
-// TFileName selectedFolder;
-// selectedFolder.Copy(iShowDir);
-// TFileName startFolder;
-// startFolder.Zero();
-// TInt types = AknCommonDialogsDynMem::EMemoryTypePhone | AknCommonDialogsDynMem::EMemoryTypeMMC |AknCommonDialogsDynMem::EMemoryTypeInternalMassStorage| AknCommonDialogsDynMem::EMemoryTypeRemote;
-//
-// HBufC *title = iCoeEnv->AllocReadResourceLC(R_PODCAST_SELECT_FOLDER);
-// if (AknCommonDialogsDynMem::RunFolderSelectDlgLD (types, selectedFolder,
-// startFolder, NULL, NULL, *title))
-// {
-// _LIT(KPodcastsDir, "Podcasts");
-// TInt pos = selectedFolder.Find(KPodcastsDir);
-// if (pos == KErrNotFound || pos != selectedFolder.Length()-9)
-// {
-// // append "Podcasts" if the folder isn't already called this
-// selectedFolder.Append(KPodcastsDir);
-// }
-//
-// if (selectedFolder[selectedFolder.Length()-1] != '\\')
-// {
-// selectedFolder.Append(_L("\\"));
-// }
-//
-// iShowDir.Copy(selectedFolder);
-// LoadSettingsL();
-// }
-// CleanupStack::PopAndDestroy(title);
-// }
-// else {
-// CAknSettingItemList::EditItemL(aIndex,aCalledFromMenu);
-// }
-// StoreSettingsL();
-// UpdateSettingVisibility();
+ if (aIndex == 0) {
+ CAknMemorySelectionDialog* memDlg =
+ CAknMemorySelectionDialog::NewL(ECFDDialogTypeNormal, ETrue);
+ CleanupStack::PushL(memDlg);
+ CAknMemorySelectionDialog::TMemory memory =
+ CAknMemorySelectionDialog::EPhoneMemory;
+
+ if (memDlg->ExecuteL(memory))
+ {
+ TFileName importName;
+
+ if (memory==CAknMemorySelectionDialog::EMemoryCard)
+ {
+ importName = PathInfo:: MemoryCardRootPath();
+ }
+ else
+ {
+ importName = PathInfo:: PhoneMemoryRootPath();
+ }
+
+ CAknFileSelectionDialog* dlg = CAknFileSelectionDialog::NewL(ECFDDialogTypeSave, R_PODCAST_SHOWDIR_SELECTOR);
+ HBufC* select = iEikonEnv->AllocReadResourceLC(R_PODCAST_SOFTKEY_SELECT);
+ dlg->SetLeftSoftkeyFileL(*select);
+ CleanupStack::PopAndDestroy(select);
+ CleanupStack::PushL(dlg);
+
+ dlg->SetDefaultFolderL(importName);
+
+ if(dlg->ExecuteL(importName))
+ {
+ importName.Append(_L("Podcasts"));
+ iShowDir.Copy(importName);
+ LoadSettingsL();
+ }
+ CleanupStack::PopAndDestroy(dlg);
+ }
+ CleanupStack::PopAndDestroy(memDlg);
+ }
+ else {
+ CAknSettingItemList::EditItemL(aIndex,aCalledFromMenu);
+ }
+ StoreSettingsL();
+ UpdateSettingVisibility();
DP("EditItemL END");
}
@@ -342,37 +325,37 @@
iAutoUpdate = se.UpdateAutomatically();
iIap = se.SpecificIAP();
- if( iIap == 0)
- {
- iConnection = EConnectionDefault;
- }
- else if ( iIap == -1)
- {
- iConnection = EConnectionAlwaysAsk;
- }
- else if ( (iIap & KUseIAPFlag))
- {
- iConnection = EConnectionUseIap;
- iIap = iIap& KUseIAPMask;
- }
- else
- {
- TInt snapIndex = 0;
- TInt cnt = iPodcastModel.SNAPIds().Count();
- while(snapIndex < cnt && ((TInt)iPodcastModel.SNAPIds()[snapIndex].iIapId) != iIap)
- {
- snapIndex++;
- }
-
- if(snapIndex != cnt)
- {
- iConnection = EConnectionUseNetwork+snapIndex;
- }
- else
- {
- iConnection = EConnectionAlwaysAsk;
- }
- }
+// if( iIap == 0)
+// {
+// iConnection = EConnectionDefault;
+// }
+// else if ( iIap == -1)
+// {
+// iConnection = EConnectionAlwaysAsk;
+// }
+// else if ( (iIap & KUseIAPFlag))
+// {
+// iConnection = EConnectionUseIap;
+// iIap = iIap& KUseIAPMask;
+// }
+// else
+// {
+// TInt snapIndex = 0;
+// TInt cnt = iPodcastModel.SNAPIds().Count();
+// while(snapIndex < cnt && ((TInt)iPodcastModel.SNAPIds()[snapIndex].iIapId) != iIap)
+// {
+// snapIndex++;
+// }
+//
+// if(snapIndex != cnt)
+// {
+// iConnection = EConnectionUseI+snapIndex;
+// }
+// else
+// {
+// iConnection = EConnectionAlwaysAsk;
+// }
+// }
iAutoDownload = se.DownloadAutomatically();
@@ -387,10 +370,10 @@
iSettingAutoUpdate = new (ELeave) CAknEnumeratedTextPopupSettingItem(aSettingId, iAutoUpdate);
return iSettingAutoUpdate;
break;
- case EPodcastSettingConnection:
- DP("EPodcastSettingConnection");
- return new (ELeave) CConnectionSetting (aSettingId, iConnection, iPodcastModel);
- break;
+// case EPodcastSettingConnection:
+// DP("EPodcastSettingConnection");
+// return new (ELeave) CConnectionSetting (aSettingId, iConnection, iPodcastModel);
+// break;
case EPodcastSettingIAPList:
DP("EPodcastSettingIAPList");
iSettingIAP = new (ELeave) CIapSetting (aSettingId, iIap, iPodcastModel);
@@ -417,7 +400,7 @@
TInt iAutoDownload;
CAknSettingItem *iSettingAutoDownload;
- TInt iConnection;
+// TInt iConnection;
TInt iIap;
CIapSetting *iSettingIAP;
--- a/application/src/PodcastShowsView.cpp Sat Jul 10 13:35:21 2010 +0100
+++ b/application/src/PodcastShowsView.cpp Sun Jul 11 11:36:24 2010 +0100
@@ -105,6 +105,7 @@
void CPodcastShowsView::ConstructL()
{
+ DP("CPodcastShowsView::ConstructL BEGIN");
BaseConstructL(R_PODCAST_SHOWSVIEW);
CPodcastListView::ConstructL();
@@ -115,7 +116,7 @@
iPodcastModel.FeedEngine().AddObserver(this);
iPodcastModel.ShowEngine().AddObserver(this);
- CleanupStack::PopAndDestroy();
+ DP("CPodcastShowsView::ConstructL END");
}
void CPodcastShowsView::CreateIconsL()
@@ -172,9 +173,7 @@
break;
case 106:
case '#':
- if (activeShow->DownloadState() == ENotDownloaded) {
- HandleCommandL(EPodcastDownloadShow);
- }
+ HandleCommandL(EPodcastShowInfo);
break;
case EKeyBackspace:
case EKeyDelete:
@@ -636,10 +635,29 @@
void CPodcastShowsView::DynInitMenuPaneL(TInt aResourceId,CEikMenuPane* aMenuPane)
{
+ TBool updatingState = iPodcastModel.FeedEngine().ClientState() != EIdle && iPodcastModel.ActiveFeedInfo() &&
+ iPodcastModel.FeedEngine().ActiveClientUid() == iPodcastModel.ActiveFeedInfo()->Uid();
+
if(aResourceId == R_PODCAST_SHOWSVIEW_MENU)
+ {
+ aMenuPane->SetItemDimmed(EPodcastMarkAllPlayed, updatingState || iPodcastModel.ActiveShowList().Count() == 0);
+ aMenuPane->SetItemDimmed(EPodcastUpdateFeed, updatingState);
+ aMenuPane->SetItemDimmed(EPodcastCancelUpdateAllFeeds, !updatingState);
+ aMenuPane->SetItemDimmed(EPodcastShowsShowMenu, updatingState || iPodcastModel.ActiveShowList().Count() == 0);
+ }
+ else if (aResourceId == R_SHOWS_SHOW_MENU)
{
- TBool updatingState = iPodcastModel.FeedEngine().ClientState() != EIdle && iPodcastModel.FeedEngine().ActiveClientUid() == iPodcastModel.ActiveFeedInfo()->Uid();
- aMenuPane->SetItemDimmed(EPodcastMarkAllPlayed, updatingState);
+ TInt index = iListContainer->Listbox()->CurrentItemIndex();
+ if (index >= 0 && index < iPodcastModel.ActiveShowList().Count())
+ {
+ CShowInfo *info = iPodcastModel.ActiveShowList()[index];
+ TBool hideDeleteShowCmd = info->DownloadState() != EDownloaded;
+ TBool hideMarkOld = info->PlayState() == EPlayed;
+
+ aMenuPane->SetItemDimmed(EPodcastMarkAsPlayed, hideMarkOld);
+ aMenuPane->SetItemDimmed(EPodcastMarkAsUnplayed, !hideMarkOld);
+ aMenuPane->SetItemDimmed(EPodcastDeleteShow, hideDeleteShowCmd);
+ }
}
}
--- a/engine/group/bld.inf Sat Jul 10 13:35:21 2010 +0100
+++ b/engine/group/bld.inf Sun Jul 11 11:36:24 2010 +0100
@@ -28,8 +28,8 @@
PRJ_EXPORTS
// export pre-build sqlite
..\sqlite\sqlite_podcatcher_winscw.lib \epoc32\release\winscw\udeb\sqlite_podcatcher.lib
-//..\sqlite\sqlite_podcatcher_gcce.lib \epoc32\release\armv5\udeb\sqlite_podcatcher.lib
-//..\sqlite\sqlite_podcatcher_gcce.lib \epoc32\release\armv5\urel\sqlite_podcatcher.lib
+..\sqlite\sqlite_podcatcher_gcce.lib \epoc32\release\armv5\udeb\sqlite_podcatcher.lib
+..\sqlite\sqlite_podcatcher_gcce.lib \epoc32\release\armv5\urel\sqlite_podcatcher.lib
..\config\podcatcher.sqlite \epoc32\winscw\c\private\A0009D00\podcatcher.sqlite.template
..\config\defaultfeeds.xml \epoc32\winscw\c\private\A0009D00\defaultfeeds.xml
--- a/engine/group/engine.mmp Sat Jul 10 13:35:21 2010 +0100
+++ b/engine/group/engine.mmp Sun Jul 11 11:36:24 2010 +0100
@@ -23,7 +23,7 @@
SOURCEPATH ..\src
USERINCLUDE ..\inc
SYSTEMINCLUDE \epoc32\include
-INCLUDE ..\..\engine\sqlite\inc
+USERINCLUDE ..\..\engine\sqlite\inc
// Engine
SOURCE HttpClient.cpp
--- a/engine/inc/ConnectionEngine.h Sat Jul 10 13:35:21 2010 +0100
+++ b/engine/inc/ConnectionEngine.h Sun Jul 11 11:36:24 2010 +0100
@@ -49,8 +49,8 @@
enum TConnectionType
{
EUserSelectConnection,
- ESNAPConnection,
- EMobilityConnection,
+// ESNAPConnection,
+// EMobilityConnection,
EDefaultConnection,
EIAPConnection
};
Binary file engine/sqlite/sqlite_podcatcher_gcce.lib has changed
--- a/engine/src/ConnectionEngine.cpp Sat Jul 10 13:35:21 2010 +0100
+++ b/engine/src/ConnectionEngine.cpp Sun Jul 11 11:36:24 2010 +0100
@@ -61,8 +61,8 @@
// iMobility = CActiveCommsMobilityApiExt::NewL( iConnection, *this );
// }
//
-// iConnectionState = iStatus.Int() == KErrNone?CConnectionEngine::EConnected:CConnectionEngine::ENotConnected;
-// ReportConnectionL( iStatus.Int() );
+ iConnectionState = iStatus.Int() == KErrNone?CConnectionEngine::EConnected:CConnectionEngine::ENotConnected;
+ ReportConnectionL( iStatus.Int() );
}
void CConnectionEngine::DoCancel()
@@ -149,12 +149,13 @@
iConnection.Close();
User::LeaveIfError( iConnection.Open( iSocketServer ) );
-// // Connect using UI Setting
-// if(aConnectionType == EDefaultConnection)
-// {
-// iConnection.Start( iStatus );
-// SetActive();
-// }
+
+ // Connect using UI Setting
+ if(aConnectionType == EDefaultConnection || EUserSelectConnection)
+ {
+ iConnection.Start( iStatus );
+ SetActive();
+ }
// else if(aConnectionType == EUserSelectConnection)
// {
// TBool selected = ConnectionSettingL();
@@ -186,14 +187,14 @@
//
// SetActive();
// }
-// else if (aConnectionType == EIAPConnection)
-// {
-// iCommdbPreference.SetIapId((iPodcastModel.SettingsEngine().SpecificIAP()& KUseIAPMask));
-// iCommdbPreference.SetDialogPreference(ECommDbDialogPrefDoNotPrompt);
-// iCommdbPreference.SetDirection(ECommDbConnectionDirectionOutgoing);
-// iConnection.Start( iCommdbPreference, iStatus );
-// SetActive();
-// }
+ else if (aConnectionType == EIAPConnection)
+ {
+ iCommdbPreference.SetIapId((iPodcastModel.SettingsEngine().SpecificIAP()& KUseIAPMask));
+ iCommdbPreference.SetDialogPreference(ECommDbDialogPrefDoNotPrompt);
+ iCommdbPreference.SetDirection(ECommDbConnectionDirectionOutgoing);
+ iConnection.Start( iCommdbPreference, iStatus );
+ SetActive();
+ }
// // Connect using SNAP
// else
// {
--- a/engine/src/FeedInfo.cpp Sat Jul 10 13:35:21 2010 +0100
+++ b/engine/src/FeedInfo.cpp Sun Jul 11 11:36:24 2010 +0100
@@ -225,7 +225,7 @@
{
// If this fails, no reason to worry
iFeedIcon = new CFbsBitmap();
- TRAP_IGNORE(aPodcastModel->ImageHandler().LoadFileAndScaleL(FeedIcon(), ImageFileName(), TSize(64,56), *this, Uid()));
+ TRAP_IGNORE(aPodcastModel->ImageHandler().LoadFileAndScaleL(FeedIcon(), ImageFileName(), TSize(44,44), *this, Uid()));
}
DP("CFeedInfo::SetImageFileNameL END");
}
--- a/engine/src/HttpClient.cpp Sat Jul 10 13:35:21 2010 +0100
+++ b/engine/src/HttpClient.cpp Sun Jul 11 11:36:24 2010 +0100
@@ -97,14 +97,14 @@
{
iPodcastModel.ConnectionEngine().StartL(CConnectionEngine::EDefaultConnection);
}
- else if( (iPodcastModel.SettingsEngine().SpecificIAP()&KUseIAPFlag))
+ else if( (iPodcastModel.SettingsEngine().SpecificIAP()))
{
iPodcastModel.ConnectionEngine().StartL(CConnectionEngine::EIAPConnection);
}
- else
- {
- iPodcastModel.ConnectionEngine().StartL(CConnectionEngine::EMobilityConnection);
- }
+// else
+// {
+// iPodcastModel.ConnectionEngine().StartL(CConnectionEngine::EMobilityConnection);
+// }
}
DP("ConnectHttpSessionL END");
}