public static AudioEpisode GetAudioEpisode (Intent intent, Album album) { if (album == null || album.Episodes == null) { return AudioEpisode.Empty; } var episode = album .Episodes .FirstOrDefault (e => e.Id == intent.GetIntExtra (EPISODE_ID_INTENT_EXTRA, -1)); return episode ?? AudioEpisode.Empty; }
static void LoadRemoteEpisodes (Album album) { var client = new WebServiceClient (); var request = new WebServiceRequest ("/albums/" + album.Id + "/episodes", Method.GET); var response = client.Execute (request); var episodes = JsonConvert.DeserializeObject<List<AudioEpisode>> (response.Content); album.Episodes = episodes; if (DrunkAudibleApplication.Self.Database.Albums.All (a => a.Id != album.Id)) { DrunkAudibleApplication.Self.Database.InsertOrUpdate (album); DrunkAudibleApplication.Self.Database.Albums.Add (album); } }
public void InsertOrUpdate (Album album) { CreateTable<Album> (); InsertOrReplace (album); // Update all the related tables, because the Album instance holds the reference to the Authors collection // object that cannot be stored directly into the same table. if (album.Authors != null) { SaveAlbumAuthors (album.Authors.ToArray (), album.Id); } if (album.Episodes != null) { SaveAlbumEpisodes (album.Episodes.ToArray (), album.Id); } }
protected override void OnCreate (Bundle savedInstanceState) { base.OnCreate (savedInstanceState); SetContentView (Resource.Layout.AudioListView); _album = ExtraUtils.GetAlbum (DrunkAudibleApplication.Self.Database, Intent); Title = _album.Title; ListAdapter = new AudioListAdapter (this, _album); ListView.ItemClick += OnAlbumItemClicked; if (_album == DrunkAudibleApplication.Self.CurrentAlbum) { var currentEpisode = DrunkAudibleApplication.Self.CurrentEpisode; if (!AudioEpisode.IsNullOrEmpty (currentEpisode)) { ListView.SetSelection (_album.Episodes.IndexOf(currentEpisode)); } } }
public AudioListAdapter (Context context, Album album) : base (context, album.Episodes.ToList<IIconAndTitleItem> (), Resource.Layout.AudioListViewElement) { _album = album; }
public static bool IsNullOrEmpty (Album album) { return album == null || album == Empty; }
static void LoadRemoteEpisodesAsync (Album album) { Task.Factory.StartNew (() => LoadRemoteEpisodes (album)); }