#include "mvs-minfo-provider.h"
#include "mvs-tmdb-movie-service.h"
#include "mvs-tmdb-movie.h"
+#include "mvs-watc-movie.h"
#include "mvs-marshal.h"
#define MINFO_PROVIDER_SERVICE_OBJECT_PATH "/MInfoProvider"
#define MINFO_PROVIDER_SERVICE_NAME "com.simonpena.maevies.minfoprovider"
#define TMDB_MOVIE_INTERFACE "com.simonpena.maevies.tmdbmovie"
+#define WATC_MOVIE_INTERFACE "com.simonpena.maevies.watcmovie"
G_DEFINE_TYPE (MvsMInfoProviderService, mvs_minfo_provider_service, G_TYPE_OBJECT)
#include "mvs-minfo-provider-service-glue.h"
static void
-response_received_cb (MvsMInfoProvider *provider, GList *list,
+response_received_cb (MvsMInfoProvider *provider, guint service, GList *list,
gpointer user_data)
{
MvsMInfoProviderService *self = MVS_MINFO_PROVIDER_SERVICE (user_data);
GError *error = NULL;
GList *iter = NULL;
gchar **object_paths= g_new0 (gchar*, g_list_length (list) + 1);
- gchar *movie_interface = g_strdup (TMDB_MOVIE_INTERFACE);
+ gchar *movie_interface = NULL;
guint i = 0;
+ movie_interface = service == MVS_SERVICE_TMDB ?
+ g_strdup (TMDB_MOVIE_INTERFACE):
+ g_strdup (WATC_MOVIE_INTERFACE);
+
for (iter = list; iter; iter = iter->next) {
if (MVS_IS_TMDB_MOVIE (iter->data)) {
MvsTmdbMovie *tmdb_movie = MVS_TMDB_MOVIE (iter->data);
uid_suffix);
g_free (uid_suffix);
}
+ else if (MVS_IS_WATC_MOVIE (iter->data)) {
+ MvsWatcMovie *watc_movie = MVS_WATC_MOVIE (iter->data);
+ gchar *uid_suffix = g_strdup_printf ("%d_%d",
+ self->priv->search_id,
+ i);
+ /* TODO: create watc_movie service */
+ object_paths[i] = g_strdup_printf ("/WATCMovie/%s",
+ uid_suffix);
+ g_free (uid_suffix);
+ }
i++;
}
object_paths[i] = NULL;
TMDB_FORMAT,
G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
- signals[RESPONSE_RECEIVED] = g_signal_new ("response-received", MVS_TYPE_MINFO_PROVIDER,
+ signals[RESPONSE_RECEIVED] = g_signal_new ("response-received",
+ MVS_TYPE_MINFO_PROVIDER,
G_SIGNAL_RUN_LAST | G_SIGNAL_NO_RECURSE | G_SIGNAL_NO_HOOKS,
0,
NULL,
NULL,
- g_cclosure_marshal_VOID__POINTER,
+ g_cclosure_marshal_VOID__UINT_POINTER,
G_TYPE_NONE,
- 1,
- G_TYPE_POINTER);
+ 2,
+ G_TYPE_UINT,
+ G_TYPE_POINTER,
+ NULL);
}
static void
MvsMInfoProvider *self = MVS_MINFO_PROVIDER (user_data);
const gchar *mime = NULL;
GList *list = NULL;
+ guint service;
if (!SOUP_STATUS_IS_SUCCESSFUL (message->status_code) ||
message->response_body->length <= 0) {
(message->response_headers, NULL);
g_message ("Mime type: %s\n", mime);
- if (g_strcmp0 (mime, "text/xml") == 0)
+ if (g_strcmp0 (mime, "text/xml") == 0) {
list = parse_xml (message->response_body->data,
message->response_body->length);
- else if (g_strcmp0 (mime, "application/json") == 0)
+ service = MVS_SERVICE_TMDB;
+ }
+ else if (g_strcmp0 (mime, "application/json") == 0) {
list = parse_json (message->response_body->data,
message->response_body->length);
+ service = MVS_SERVICE_WATC;
+ }
}
- g_signal_emit (self, signals[RESPONSE_RECEIVED], 0, list);
+ g_signal_emit (self, signals[RESPONSE_RECEIVED], 0, service, list);
}
static gchar *
from maeviesui.util.util import image_downloader
from maeviesui.util.moviemanager import MovieManager
+moviemanager = MovieManager()
+
class Maevies(hildon.StackableWindow):
ACTION_SEARCH = 0
class SearchDialog(gtk.Dialog):
- _search_fields = [
- 'Movies',
- 'People',
- ]
+ TMDB_SEARCH = 0
+ WATC_SEARCH = 1
+ search_fields = {TMDB_SEARCH:'TMDb',
+ WATC_SEARCH:'WATC'}
def __init__(self, parent):
super(SearchDialog, self).__init__(parent=parent,
def _create_picker_button(self):
self._picker_button = hildon.PickerButton(gtk.HILDON_SIZE_FINGER_HEIGHT,
hildon.BUTTON_ARRANGEMENT_HORIZONTAL)
- self._picker_button.set_title('Search for')
+ self._picker_button.set_title('Search on')
selector = hildon.TouchSelector(text=True)
selector.set_column_selection_mode(hildon.TOUCH_SELECTOR_SELECTION_MODE_SINGLE)
- for field in self._search_fields:
- selector.append_text(field)
+ for search_method in [self.TMDB_SEARCH, self.WATC_SEARCH]:
+ selector.append_text(self.search_fields[search_method])
self._picker_button.set_selector(selector)
self._picker_button.set_active(0)
return self._search_entry.get_text()
def get_search_category(self):
- return self._search_fields[self._picker_button.get_active()]
+ return self._picker_button.get_active()
class ResultsWindow(hildon.StackableWindow):
self.add(self._create_contents())
- self.moviemanager = MovieManager(response_received_cb=self._response_received_cb)
+ moviemanager.response_received_cb = self._response_received_cb
self.show_all()
def _create_contents(self):
def start_search(self, search_term, search_category):
self._show_banner(search_term, search_category)
hildon.hildon_gtk_window_set_progress_indicator(self, True)
- self.moviemanager.query(search_term)
+ moviemanager.query(search_term, search_category)
def _response_received_cb(self, movies):
self._movies_view.add_movies(movies)
hildon.hildon_gtk_window_set_progress_indicator(self, False)
def _show_banner(self, search_term, search_category):
- message = ('Searching <i>%(category)s</i> for <i>%(term)s</i>' %
- {'category': search_category,
+ message = ('Searching on <i>%(category)s</i> for <i>%(term)s</i>' %
+ {'category': SearchDialog.search_fields[search_category],
'term' : search_term})
banner = hildon.hildon_banner_show_information_with_markup(self,
'ignored',
def _on_response_received(self, interface, object_paths):
movies = []
- for path in object_paths:
- movies.append(MovieProxy(self._bus, path))
+
+ if interface == TMDB_MOVIE_INTERFACE:
+ for path in object_paths:
+ movies.append(MovieProxy(self._bus, path))
+ else:
+ pass
if self.response_received_cb:
self.response_received_cb(movies)