aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2015-04-12 12:46:29 -0400
committerLuke Pulverenti <luke.pulverenti@gmail.com>2015-04-12 12:46:29 -0400
commit9682f601005e1efc25679e9c9fc0b49a10a59524 (patch)
treec8ef65919a7646d20ae714ad4de0191479615337
parent77ac8826e3ffb9d8da1ae3f949448852240ed437 (diff)
live tv guide improvements
-rw-r--r--MediaBrowser.Api/Playback/BaseStreamingService.cs4
-rw-r--r--MediaBrowser.Server.Implementations/Localization/Server/server.json10
-rw-r--r--MediaBrowser.Server.Implementations/Sync/SyncManager.cs68
-rw-r--r--MediaBrowser.ServerApplication/ServerNotifyIcon.cs7
4 files changed, 76 insertions, 13 deletions
diff --git a/MediaBrowser.Api/Playback/BaseStreamingService.cs b/MediaBrowser.Api/Playback/BaseStreamingService.cs
index 24ee17943..827aed4f2 100644
--- a/MediaBrowser.Api/Playback/BaseStreamingService.cs
+++ b/MediaBrowser.Api/Playback/BaseStreamingService.cs
@@ -1515,6 +1515,10 @@ namespace MediaBrowser.Api.Playback
}
else if (i == 22)
{
+ // api_key
+ }
+ else if (i == 23)
+ {
request.LiveStreamId = val;
}
}
diff --git a/MediaBrowser.Server.Implementations/Localization/Server/server.json b/MediaBrowser.Server.Implementations/Localization/Server/server.json
index 061ee3ef0..6c46f9009 100644
--- a/MediaBrowser.Server.Implementations/Localization/Server/server.json
+++ b/MediaBrowser.Server.Implementations/Localization/Server/server.json
@@ -1421,5 +1421,13 @@
"LabelConversionCpuCoreLimitHelp": "Limit the number of CPU cores that will be used during sync conversion.",
"OptionEnableFullSpeedConversion": "Enable full speed conversion",
"OptionEnableFullSpeedConversionHelp": "By default, sync conversion is performed at a low speed to minimize resource consumption.",
- "HeaderPlaylists": "Playlists"
+ "HeaderPlaylists": "Playlists",
+ "HeaderSelectDate": "Select Date",
+ "HeaderWelcomeExclamation": "Welcome!",
+ "HeaderMyPreferences": "My Preferences",
+ "ButtonMyPreferencesWelcomeYes": "Yes, I'd like to set my preferences now.",
+ "ButtonMyPreferencesWelcomeNo": "No thanks, I'll do it later.",
+ "MyPreferencesWelcomeMessage1": "We've presented your library in a way we think you'll enjoy. The appearance and grouping of content can be changed anytime by adjusting your preferences. Your preferences will apply to all Emby apps.",
+ "MyPreferencesWelcomeMessage2": "Would you like to set your preferences now?",
+ "ToAccessPreferencesHelp": "To access your preferences later, click your user icon in the top right header and select My Preferences."
}
diff --git a/MediaBrowser.Server.Implementations/Sync/SyncManager.cs b/MediaBrowser.Server.Implementations/Sync/SyncManager.cs
index 69c83bd33..dbe43c2d1 100644
--- a/MediaBrowser.Server.Implementations/Sync/SyncManager.cs
+++ b/MediaBrowser.Server.Implementations/Sync/SyncManager.cs
@@ -750,6 +750,9 @@ namespace MediaBrowser.Server.Implementations.Sync
foreach (var jobItem in jobItemResult.Items)
{
+ var requiresSaving = false;
+ var removeFromDevice = false;
+
if (request.LocalItemIds.Contains(jobItem.ItemId, StringComparer.OrdinalIgnoreCase))
{
var job = _repo.GetJob(jobItem.JobId);
@@ -759,13 +762,13 @@ namespace MediaBrowser.Server.Implementations.Sync
{
// Tell the device to remove it since it has been marked for removal
_logger.Debug("Adding ItemIdsToRemove {0} because IsMarkedForRemoval is set.", jobItem.ItemId);
- response.ItemIdsToRemove.Add(jobItem.ItemId);
+ removeFromDevice = true;
}
else if (user == null)
{
// Tell the device to remove it since the user is gone now
_logger.Debug("Adding ItemIdsToRemove {0} because the user is no longer valid.", jobItem.ItemId);
- response.ItemIdsToRemove.Add(jobItem.ItemId);
+ removeFromDevice = true;
}
else if (job.UnwatchedOnly)
{
@@ -777,23 +780,42 @@ namespace MediaBrowser.Server.Implementations.Sync
{
// Tell the device to remove it since it has been played
_logger.Debug("Adding ItemIdsToRemove {0} because it has been marked played.", jobItem.ItemId);
- response.ItemIdsToRemove.Add(jobItem.ItemId);
+ removeFromDevice = true;
}
}
else
{
// Tell the device to remove it since it's no longer available
_logger.Debug("Adding ItemIdsToRemove {0} because it is no longer available.", jobItem.ItemId);
- response.ItemIdsToRemove.Add(jobItem.ItemId);
+ removeFromDevice = true;
}
}
}
else
{
- _logger.Debug("Setting status to RemovedFromDevice for {0} because it is no longer on the device.", jobItem.ItemId);
+ _logger.Debug("Setting status to Queued for {0} because it is no longer on the device.", jobItem.ItemId);
// Content is no longer on the device
- jobItem.Status = SyncJobItemStatus.RemovedFromDevice;
+ if (jobItem.IsMarkedForRemoval)
+ {
+ jobItem.Status = SyncJobItemStatus.RemovedFromDevice;
+ }
+ else
+ {
+ jobItem.Status = SyncJobItemStatus.Queued;
+ }
+ requiresSaving = true;
+ }
+
+ if (removeFromDevice)
+ {
+ response.ItemIdsToRemove.Add(jobItem.ItemId);
+ jobItem.IsMarkedForRemoval = true;
+ requiresSaving = true;
+ }
+
+ if (requiresSaving)
+ {
await UpdateSyncJobItemInternal(jobItem).ConfigureAwait(false);
}
}
@@ -837,6 +859,9 @@ namespace MediaBrowser.Server.Implementations.Sync
foreach (var jobItem in jobItemResult.Items)
{
+ var requiresSaving = false;
+ var removeFromDevice = false;
+
if (request.SyncJobItemIds.Contains(jobItem.Id, StringComparer.OrdinalIgnoreCase))
{
var job = _repo.GetJob(jobItem.JobId);
@@ -846,13 +871,13 @@ namespace MediaBrowser.Server.Implementations.Sync
{
// Tell the device to remove it since it has been marked for removal
_logger.Debug("Adding ItemIdsToRemove {0} because IsMarkedForRemoval is set.", jobItem.Id);
- response.ItemIdsToRemove.Add(jobItem.Id);
+ removeFromDevice = true;
}
else if (user == null)
{
// Tell the device to remove it since the user is gone now
_logger.Debug("Adding ItemIdsToRemove {0} because the user is no longer valid.", jobItem.Id);
- response.ItemIdsToRemove.Add(jobItem.Id);
+ removeFromDevice = true;
}
else if (job.UnwatchedOnly)
{
@@ -864,23 +889,42 @@ namespace MediaBrowser.Server.Implementations.Sync
{
// Tell the device to remove it since it has been played
_logger.Debug("Adding ItemIdsToRemove {0} because it has been marked played.", jobItem.Id);
- response.ItemIdsToRemove.Add(jobItem.Id);
+ removeFromDevice = true;
}
}
else
{
// Tell the device to remove it since it's no longer available
_logger.Debug("Adding ItemIdsToRemove {0} because it is no longer available.", jobItem.Id);
- response.ItemIdsToRemove.Add(jobItem.Id);
+ removeFromDevice = true;
}
}
}
else
{
- _logger.Debug("Setting status to RemovedFromDevice for {0} because it is no longer on the device.", jobItem.Id);
+ _logger.Debug("Setting status to Queued for {0} because it is no longer on the device.", jobItem.Id);
// Content is no longer on the device
- jobItem.Status = SyncJobItemStatus.RemovedFromDevice;
+ if (jobItem.IsMarkedForRemoval)
+ {
+ jobItem.Status = SyncJobItemStatus.RemovedFromDevice;
+ }
+ else
+ {
+ jobItem.Status = SyncJobItemStatus.Queued;
+ }
+ requiresSaving = true;
+ }
+
+ if (removeFromDevice)
+ {
+ response.ItemIdsToRemove.Add(jobItem.Id);
+ jobItem.IsMarkedForRemoval = true;
+ requiresSaving = true;
+ }
+
+ if (requiresSaving)
+ {
await UpdateSyncJobItemInternal(jobItem).ConfigureAwait(false);
}
}
diff --git a/MediaBrowser.ServerApplication/ServerNotifyIcon.cs b/MediaBrowser.ServerApplication/ServerNotifyIcon.cs
index 9db3bdb90..3c5ed6e54 100644
--- a/MediaBrowser.ServerApplication/ServerNotifyIcon.cs
+++ b/MediaBrowser.ServerApplication/ServerNotifyIcon.cs
@@ -166,6 +166,13 @@ namespace MediaBrowser.ServerApplication
contextMenuStrip1.Invoke(action);
}
+
+ notifyIcon1.DoubleClick += notifyIcon1_DoubleClick;
+ }
+
+ void notifyIcon1_DoubleClick(object sender, EventArgs e)
+ {
+ BrowserLauncher.OpenDashboard(_appHost, _logger);
}
private void LocalizeText()