Commit 9f80dcbd by Sebastián Katzer

Better WP8 support with the ability to specify different kinds of tile images.

parent 8e8546c0
...@@ -29,18 +29,18 @@ namespace Cordova.Extension.Commands ...@@ -29,18 +29,18 @@ namespace Cordova.Extension.Commands
/// <summary> /// <summary>
/// Sets application live tile /// Sets application live tile
/// </summary> /// </summary>
public void add (string jsonArgs) public void add(string jsonArgs)
{ {
string[] args = JsonHelper.Deserialize<string[]>(jsonArgs); string[] args = JsonHelper.Deserialize<string[]>(jsonArgs);
LocalNotificationOptions options = JsonHelper.Deserialize<LocalNotificationOptions>(args[0]); LocalNotificationOptions options = JsonHelper.Deserialize<LocalNotificationOptions>(args[0]);
// Application Tile is always the first Tile, even if it is not pinned to Start. // Application Tile is always the first Tile, even if it is not pinned to Start.
ShellTile AppTile = ShellTile.ActiveTiles.First(); ShellTile AppTile = ShellTile.ActiveTiles.First();
if (AppTile != null) if (AppTile != null)
{ {
// Set the properties to update for the Application Tile // Set the properties to update for the Application Tile
// Empty strings for the text values and URIs will result in the property being cleared. // Empty strings for the text values and URIs will result in the property being cleared.
StandardTileData TileData = CreateTileData(options); FlipTileData TileData = CreateTileData(options);
// Update the Application Tile // Update the Application Tile
AppTile.Update(TileData); AppTile.Update(TileData);
...@@ -59,7 +59,7 @@ namespace Cordova.Extension.Commands ...@@ -59,7 +59,7 @@ namespace Cordova.Extension.Commands
/// <summary> /// <summary>
/// Clears the application live tile /// Clears the application live tile
/// </summary> /// </summary>
public void cancel (string jsonArgs) public void cancel(string jsonArgs)
{ {
cancelAll(jsonArgs); cancelAll(jsonArgs);
} }
...@@ -67,7 +67,7 @@ namespace Cordova.Extension.Commands ...@@ -67,7 +67,7 @@ namespace Cordova.Extension.Commands
/// <summary> /// <summary>
/// Clears the application live tile /// Clears the application live tile
/// </summary> /// </summary>
public void cancelAll (string jsonArgs) public void cancelAll(string jsonArgs)
{ {
// Application Tile is always the first Tile, even if it is not pinned to Start. // Application Tile is always the first Tile, even if it is not pinned to Start.
ShellTile AppTile = ShellTile.ActiveTiles.First(); ShellTile AppTile = ShellTile.ActiveTiles.First();
...@@ -76,10 +76,14 @@ namespace Cordova.Extension.Commands ...@@ -76,10 +76,14 @@ namespace Cordova.Extension.Commands
{ {
// Set the properties to update for the Application Tile // Set the properties to update for the Application Tile
// Empty strings for the text values and URIs will result in the property being cleared. // Empty strings for the text values and URIs will result in the property being cleared.
StandardTileData TileData = new StandardTileData FlipTileData TileData = new FlipTileData
{ {
BackTitle = "", BackTitle = "",
BackContent = "" BackContent = "",
WideBackContent = "",
SmallBackgroundImage = new Uri("appdata:Background.png"),
BackgroundImage = new Uri("appdata:Background.png"),
WideBackgroundImage = new Uri("/Assets/Tiles/FlipCycleTileLarge.png", UriKind.Relative),
}; };
// Update the Application Tile // Update the Application Tile
...@@ -92,9 +96,9 @@ namespace Cordova.Extension.Commands ...@@ -92,9 +96,9 @@ namespace Cordova.Extension.Commands
/// <summary> /// <summary>
/// Creates tile data /// Creates tile data
/// </summary> /// </summary>
private StandardTileData CreateTileData (LocalNotificationOptions options) private FlipTileData CreateTileData(LocalNotificationOptions options)
{ {
StandardTileData tile = new StandardTileData(); FlipTileData tile = new FlipTileData();
// Badge sollte nur gelöscht werden, wenn expliziet eine `0` angegeben wurde // Badge sollte nur gelöscht werden, wenn expliziet eine `0` angegeben wurde
if (options.Badge != 0) if (options.Badge != 0)
...@@ -102,8 +106,24 @@ namespace Cordova.Extension.Commands ...@@ -102,8 +106,24 @@ namespace Cordova.Extension.Commands
tile.Count = options.Badge; tile.Count = options.Badge;
} }
tile.BackTitle = options.Title; tile.BackTitle = options.Title;
tile.BackContent = options.Message; tile.BackContent = options.ShortMessage;
tile.WideBackContent = options.Message;
if (!String.IsNullOrEmpty(options.SmallImage))
{
tile.SmallBackgroundImage = new Uri(options.SmallImage, UriKind.RelativeOrAbsolute);
}
if (!String.IsNullOrEmpty(options.Image))
{
tile.BackgroundImage = new Uri(options.Image, UriKind.RelativeOrAbsolute);
}
if (!String.IsNullOrEmpty(options.WideImage))
{
tile.WideBackgroundImage = new Uri(options.WideImage, UriKind.RelativeOrAbsolute);
}
return tile; return tile;
} }
......
using System;
using System.Linq;
using System.Runtime.Serialization; using System.Runtime.Serialization;
namespace De.APPPlant.Cordova.Plugin.LocalNotification namespace De.APPPlant.Cordova.Plugin.LocalNotification
...@@ -21,6 +23,19 @@ namespace De.APPPlant.Cordova.Plugin.LocalNotification ...@@ -21,6 +23,19 @@ namespace De.APPPlant.Cordova.Plugin.LocalNotification
public string Message { get; set; } public string Message { get; set; }
/// <summary> /// <summary>
/// Gekürzte Nachricht (alles ab dem Zeilenumbruch entfernt)
/// </summary>
public string ShortMessage
{
get
{
string[] separator = new string[] { "\r\n", "\n" };
return Message.Split(separator, StringSplitOptions.RemoveEmptyEntries).First();
}
}
/// <summary>
/// Displays number badge to notification /// Displays number badge to notification
/// </summary> /// </summary>
[DataMember(IsRequired = false, Name = "badge")] [DataMember(IsRequired = false, Name = "badge")]
...@@ -55,5 +70,23 @@ namespace De.APPPlant.Cordova.Plugin.LocalNotification ...@@ -55,5 +70,23 @@ namespace De.APPPlant.Cordova.Plugin.LocalNotification
/// </summary> /// </summary>
[DataMember(IsRequired = false, Name = "foreground")] [DataMember(IsRequired = false, Name = "foreground")]
public string Foreground { get; set; } public string Foreground { get; set; }
/// <summary>
/// The notification small background image to be displayed
/// </summary>
[DataMember(IsRequired = false, Name = "smallImage")]
public string SmallImage { get; set; }
/// <summary>
/// The notification background image to be displayed
/// </summary>
[DataMember(IsRequired = false, Name = "image")]
public string Image { get; set; }
/// <summary>
/// The notification wide background image to be displayed
/// </summary>
[DataMember(IsRequired = false, Name = "wideImage")]
public string WideImage { get; set; }
} }
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment