Exemplo n.º 1
0
        /// <summary>
        ///  <c>LockscreenImageItemSetting</c>をJSONに変換する.
        /// </summary>
        /// <param name="setting"></param>
        /// <returns></returns>
        public static JsonObject ToJson(this LockscreenImageItemSetting setting)
        {
            var jsonObj = new JsonObject();

            jsonObj.Add(LockscreenImageItemSettingProperty.Token.ToString(), JsonValue.CreateStringValue(setting.Token));
            jsonObj.Add(LockscreenImageItemSettingProperty.IsTemporary.ToString(), JsonValue.CreateBooleanValue(setting.IsTemporary));
            if (!String.IsNullOrEmpty(setting.TileId))
            {
                jsonObj.Add(LockscreenImageItemSettingProperty.TileId.ToString(), JsonValue.CreateStringValue(setting.TileId));
            }
            return(jsonObj);
        }
Exemplo n.º 2
0
        /// <summary>
        ///  指定したファイルを対象とする「ロック画面に設定するアイテム」を作成する.
        /// </summary>
        /// <param name="file">ファイル</param>
        /// <returns>ロック画面に設定するアイテム</returns>
        public static async Task <LockscreenImageItem> FromStorageItemAsync(StorageFile file, bool isTemporaryDefault, System.Threading.CancellationToken cancellationToken)
        {
            if (file == null)
            {
                throw new ArgumentNullException("file");
            }

//            await Task.Delay(10 * 1000, cancellationToken);

            try
            {
                // temporaryはLocalFolderにKeepする
                //  + remove時に削除できるようにフラグをset
                var  fileAdded   = file;
                bool isTemporary = isTemporaryDefault;
                if (file.Attributes.HasFlag(FileAttributes.Temporary))
                {
                    isTemporary = true;
                    var folder = await ApplicationData.Current.LocalFolder.CreateFolderAsync(@"TempFileCache", CreationCollisionOption.OpenIfExists).AsTask(cancellationToken);

                    fileAdded = await file.CopyAsync(folder, file.Name, NameCollisionOption.GenerateUniqueName).AsTask(cancellationToken);
                }

                var token   = StorageApplicationPermissions.FutureAccessList.Add(fileAdded);
                var setting = new LockscreenImageItemSetting()
                {
                    Token = token, IsTemporary = isTemporary
                };
                return(new LockscreenImageItem(fileAdded)
                {
                    Setting = setting,
                });
            }
            catch (System.IO.FileNotFoundException /*ex*/)
            {
                return(null);
            }
        }