From 7d2a0020bb945bac0f286e4b73f9d093a9f585cd Mon Sep 17 00:00:00 2001 From: "pr.jung" Date: Thu, 2 Feb 2017 15:29:35 +0900 Subject: [PATCH] Remove Feedback and Storage APIs Change-Id: Ie8d9537464622575c8a3e70ac23206f4087eeebd Signed-off-by: pr.jung --- Tizen.System/Feedback/Feedback.cs | 372 ------------------------------ Tizen.System/Feedback/FeedbackPattern.cs | 33 --- Tizen.System/Feedback/FeedbackType.cs | 37 --- Tizen.System/Interop/Interop.Feedback.cs | 59 ----- Tizen.System/Interop/Interop.Libraries.cs | 2 - Tizen.System/Interop/Interop.Storage.cs | 96 -------- Tizen.System/Storage/DirectoryType.cs | 61 ----- Tizen.System/Storage/Storage.cs | 216 ----------------- Tizen.System/Storage/StorageArea.cs | 33 --- Tizen.System/Storage/StorageManager.cs | 52 ----- Tizen.System/Storage/StorageState.cs | 41 ---- Tizen.System/Tizen.System.Net45.csproj | 12 +- Tizen.System/Tizen.System.csproj | 12 +- Tizen.System/Tizen.System.nuspec | 2 +- packaging/csapi-system.spec | 2 +- 15 files changed, 4 insertions(+), 1026 deletions(-) delete mode 100644 Tizen.System/Feedback/Feedback.cs delete mode 100644 Tizen.System/Feedback/FeedbackPattern.cs delete mode 100644 Tizen.System/Feedback/FeedbackType.cs delete mode 100644 Tizen.System/Interop/Interop.Feedback.cs delete mode 100644 Tizen.System/Interop/Interop.Storage.cs delete mode 100644 Tizen.System/Storage/DirectoryType.cs delete mode 100644 Tizen.System/Storage/Storage.cs delete mode 100644 Tizen.System/Storage/StorageArea.cs delete mode 100644 Tizen.System/Storage/StorageManager.cs delete mode 100644 Tizen.System/Storage/StorageState.cs diff --git a/Tizen.System/Feedback/Feedback.cs b/Tizen.System/Feedback/Feedback.cs deleted file mode 100644 index 2d85a5c..0000000 --- a/Tizen.System/Feedback/Feedback.cs +++ /dev/null @@ -1,372 +0,0 @@ -/* -* Copyright (c) 2016 Samsung Electronics Co., Ltd All Rights Reserved -* -* Licensed under the Apache License, Version 2.0 (the License); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an AS IS BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -using System; -using System.Collections.Generic; - - -namespace Tizen.System -{ - /// - /// Class for constants - /// - internal static class Constants - { - internal const int NumberOfPattern = 39; - } - - /// - /// The Feedback API provides functions to control haptic and sound. - /// The Feedback API provides the way to play and stop feedback and get the information whether specific pattern is supported. - /// Below is supported pattern string. - /// Tap - /// SoftInputPanel - /// Key0 - /// Key1 - /// Key2 - /// Key3 - /// Key4 - /// Key5 - /// Key6 - /// Key7 - /// Key8 - /// Key9 - /// KeyStar - /// KeySharp - /// KeyBack - /// Hold - /// HardwareKeyPressed - /// HardwareKeyHold - /// Message - /// Email - /// WakeUp - /// Schedule - /// Timer - /// General - /// PowerOn - /// PowerOff - /// ChargerConnected - /// ChargingError - /// FullyCharged - /// LowBattery - /// Lock - /// UnLock - /// VibrationModeAbled - /// SilentModeDisabled - /// BluetoothDeviceConnected - /// BluetoothDeviceDisconnected - /// ListReorder - /// ListSlider - /// VolumeKeyPressed - /// - /// - /// For controlling haptic device: - /// http://tizen.org/privilege/haptic - /// For controlling sound, previlege is not needed. - /// - /// - /// Feedback feedback = new Feedback(); - /// bool res = feedback.IsSupportedPattern(FeedbackType.Vibration, "Tap"); - /// - public class Feedback - { - private const string LogTag = "Tizen.System.Feedback"; - - private readonly FeedbackPattern[] Pattern = new FeedbackPattern[39]; - public Feedback() - { - Pattern[0].PatternNumber = 0; - Pattern[0].PatternString = "Tap"; - Pattern[1].PatternNumber = 1; - Pattern[1].PatternString = "SoftInputPanel"; - Pattern[2].PatternNumber = 6; - Pattern[2].PatternString = "Key0"; - Pattern[3].PatternNumber = 7; - Pattern[3].PatternString = "Key1"; - Pattern[4].PatternNumber = 8; - Pattern[4].PatternString = "Key2"; - Pattern[5].PatternNumber = 9; - Pattern[5].PatternString = "Key3"; - Pattern[6].PatternNumber = 10; - Pattern[6].PatternString = "Key4"; - Pattern[7].PatternNumber = 11; - Pattern[7].PatternString = "Key5"; - Pattern[8].PatternNumber = 12; - Pattern[8].PatternString = "Key6"; - Pattern[9].PatternNumber = 13; - Pattern[9].PatternString = "Key7"; - Pattern[10].PatternNumber = 14; - Pattern[10].PatternString = "Key8"; - Pattern[11].PatternNumber = 15; - Pattern[11].PatternString = "Key9"; - Pattern[12].PatternNumber = 16; - Pattern[12].PatternString = "KeyStar"; - Pattern[13].PatternNumber = 17; - Pattern[13].PatternString = "KeySharp"; - Pattern[14].PatternNumber = 18; - Pattern[14].PatternString = "KeyBack"; - Pattern[15].PatternNumber = 19; - Pattern[15].PatternString = "Hold"; - Pattern[16].PatternNumber = 21; - Pattern[16].PatternString = "HardwareKeyPressed"; - Pattern[17].PatternNumber = 22; - Pattern[17].PatternString = "HardwareKeyHold"; - Pattern[18].PatternNumber = 23; - Pattern[18].PatternString = "Message"; - Pattern[19].PatternNumber = 25; - Pattern[19].PatternString = "Email"; - Pattern[20].PatternNumber = 27; - Pattern[20].PatternString = "WakeUp"; - Pattern[21].PatternNumber = 29; - Pattern[21].PatternString = "Schedule"; - Pattern[22].PatternNumber = 31; - Pattern[22].PatternString = "Timer"; - Pattern[23].PatternNumber = 33; - Pattern[23].PatternString = "General"; - Pattern[24].PatternNumber = 36; - Pattern[24].PatternString = "PowerOn"; - Pattern[25].PatternNumber = 37; - Pattern[25].PatternString = "PowerOff"; - Pattern[26].PatternNumber = 38; - Pattern[26].PatternString = "ChargerConnected"; - Pattern[27].PatternNumber = 40; - Pattern[27].PatternString = "ChargingError"; - Pattern[28].PatternNumber = 42; - Pattern[28].PatternString = "FullyCharged"; - Pattern[29].PatternNumber = 44; - Pattern[29].PatternString = "LowBattery"; - Pattern[30].PatternNumber = 46; - Pattern[30].PatternString = "Lock"; - Pattern[31].PatternNumber = 47; - Pattern[31].PatternString = "UnLock"; - Pattern[32].PatternNumber = 55; - Pattern[32].PatternString = "VibrationModeAbled"; - Pattern[33].PatternNumber = 56; - Pattern[33].PatternString = "SilentModeDisabled"; - Pattern[34].PatternNumber = 57; - Pattern[34].PatternString = "BluetoothDeviceConnected"; - Pattern[35].PatternNumber = 58; - Pattern[35].PatternString = "BluetoothDeviceDisconnected"; - Pattern[36].PatternNumber = 62; - Pattern[36].PatternString = "ListReorder"; - Pattern[37].PatternNumber = 63; - Pattern[37].PatternString = "ListSlider"; - Pattern[38].PatternNumber = 64; - Pattern[38].PatternString = "VolumeKeyPressed"; - - Interop.Feedback.FeedbackError res = (Interop.Feedback.FeedbackError)Interop.Feedback.Initialize(); - if (res != Interop.Feedback.FeedbackError.None) - { - Log.Warn(LogTag, string.Format("Failed to initialize feedback. err = {0}", res)); - switch (res) - { - case Interop.Feedback.FeedbackError.NotSupported: - throw new NotSupportedException("Device is not supported"); - default: - throw new InvalidOperationException("Failed to initialize"); - } - } - } - - ~Feedback() - { - Interop.Feedback.FeedbackError res = (Interop.Feedback.FeedbackError)Interop.Feedback.Deinitialize(); - if (res != Interop.Feedback.FeedbackError.None) - { - Log.Warn(LogTag, string.Format("Failed to deinitialize feedback. err = {0}", res)); - switch (res) - { - case Interop.Feedback.FeedbackError.NotInitialized: - throw new Exception("Not initialized"); - default: - throw new InvalidOperationException("Failed to initialize"); - } - } - } - - /// - /// Get supported information about specific type and pattern - /// - /// - /// Now, IsSupportedPattern is not working for FeedbackType.All. - /// This API is working for FeedbackType.Sound and FeedbackType.Vibration only. - /// If you use FeedbackType.All for type parameter, this API will throw ArgumentException. - /// To get supported information for Vibration type, app should have http://tizen.org/privilege/haptic privilege. - /// - /// Feedback type - /// Feedback pattern string - /// Information whether pattern is supported - /// Thrown when failed because feedback is not initialized - /// Thrown when failed because of a invalid arguament - /// Thrown when failed becuase device(haptic, sound) is not supported - /// Thrown when failed because access is not granted(No privilege) - /// Thrown when failed because of system error - /// http://tizen.org/privilege/haptic - /// - /// - /// Feedback feedback = new Feedback(); - /// bool res = feedback.IsSupportedPattern(FeedbackType.Vibration, "Tap"); - /// - /// - public bool IsSupportedPattern(FeedbackType type, String pattern) - { - bool supported = false; - bool found = false; - int i = 0; - Interop.Feedback.FeedbackError res; - - for (i = 0; i < Constants.NumberOfPattern; i++) - { - if (String.Compare(pattern, Pattern[i].PatternString) == 0) - { - found = true; - break; - } - } - - if (!found) - throw new ArgumentException("Invalid Arguments"); - - res = (Interop.Feedback.FeedbackError)Interop.Feedback.IsSupportedPattern((Interop.Feedback.FeedbackType)type, Pattern[i].PatternNumber, out supported); - - - if (res != Interop.Feedback.FeedbackError.None) - { - Log.Warn(LogTag, string.Format("Failed to get supported information. err = {0}", res)); - switch (res) - { - case Interop.Feedback.FeedbackError.NotInitialized: - throw new Exception("Not initialized"); - case Interop.Feedback.FeedbackError.InvalidParameter: - throw new ArgumentException("Invalid Arguments"); - case Interop.Feedback.FeedbackError.NotSupported: - throw new NotSupportedException("Device is not supported"); - case Interop.Feedback.FeedbackError.PermissionDenied: - throw new UnauthorizedAccessException("Access is not granted"); - case Interop.Feedback.FeedbackError.OperationFailed: - default: - throw new InvalidOperationException("Failed to get supported information"); - } - } - return supported; - } - - /// - /// Play specific feedback pattern - /// - /// - /// To play Vibration type, app should have http://tizen.org/privilege/haptic privilege. - /// - /// Feedback type - /// Feedback pattern string - /// Thrown when failed because feedback is not initialized - /// Thrown when failed because of a invalid arguament - /// Thrown when failed because device(haptic, sound) or specific pattern is not supported - /// Thrown when failed because access is not granted(No privilege) - /// Thrown when failed because of system error - /// http://tizen.org/privilege/haptic - /// - /// - /// Feedback feedback = new Feedback(); - /// feedback.Play(FeedbackType.All, "Tap"); - /// - /// - public void Play(FeedbackType type, String pattern) - { - bool found = false; - int i = 0; - Interop.Feedback.FeedbackError res; - - for (i = 0; i < Constants.NumberOfPattern; i++) - { - if (String.Compare(pattern, Pattern[i].PatternString) == 0) - { - found = true; - break; - } - } - - if (!found) - throw new ArgumentException("Invalid Arguments"); - - if (type == FeedbackType.All) - res = (Interop.Feedback.FeedbackError)Interop.Feedback.Play(Pattern[i].PatternNumber); - else - res = (Interop.Feedback.FeedbackError)Interop.Feedback.PlayType((Interop.Feedback.FeedbackType)type, Pattern[i].PatternNumber); - - if (res != Interop.Feedback.FeedbackError.None) - { - Log.Warn(LogTag, string.Format("Failed to play feedback. err = {0}", res)); - switch (res) - { - case Interop.Feedback.FeedbackError.NotInitialized: - throw new Exception("Not initialized"); - case Interop.Feedback.FeedbackError.InvalidParameter: - throw new ArgumentException("Invalid Arguments"); - case Interop.Feedback.FeedbackError.NotSupported: - throw new NotSupportedException("Not supported"); - case Interop.Feedback.FeedbackError.PermissionDenied: - throw new UnauthorizedAccessException("Access is not granted"); - case Interop.Feedback.FeedbackError.OperationFailed: - default: - throw new InvalidOperationException("Failed to play pattern"); - } - } - } - - /// - /// Stop to play feedback - /// - /// - /// To stop vibration, app should have http://tizen.org/privilege/haptic privilege. - /// - /// Thrown when failed because feedback is not initialized - /// Thrown when failed because of a invalid arguament - /// Thrown when failed because device(haptic, sound) or specific pattern is not supported - /// Thrown when failed because access is not granted(No privilege) - /// Thrown when failed because of system error - /// http://tizen.org/privilege/haptic - /// - /// - /// Feedback Feedback1 = new Feedback(); - /// Feedback1.Stop(); - /// - /// - public void Stop() - { - Interop.Feedback.FeedbackError res = (Interop.Feedback.FeedbackError)Interop.Feedback.Stop(); - - if (res != Interop.Feedback.FeedbackError.None) - { - Log.Warn(LogTag, string.Format("Failed to stop feedback. err = {0}", res)); - switch (res) - { - case Interop.Feedback.FeedbackError.NotInitialized: - throw new Exception("Not initialized"); - case Interop.Feedback.FeedbackError.InvalidParameter: - throw new ArgumentException("Invalid Arguments"); - case Interop.Feedback.FeedbackError.NotSupported: - throw new NotSupportedException("Not supported"); - case Interop.Feedback.FeedbackError.PermissionDenied: - throw new UnauthorizedAccessException("Access is not granted"); - case Interop.Feedback.FeedbackError.OperationFailed: - default: - throw new InvalidOperationException("Failed to play pattern"); - } - } - } - } -} diff --git a/Tizen.System/Feedback/FeedbackPattern.cs b/Tizen.System/Feedback/FeedbackPattern.cs deleted file mode 100644 index 2ebc82f..0000000 --- a/Tizen.System/Feedback/FeedbackPattern.cs +++ /dev/null @@ -1,33 +0,0 @@ -/* -* Copyright (c) 2016 Samsung Electronics Co., Ltd All Rights Reserved -* -* Licensed under the Apache License, Version 2.0 (the License); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an AS IS BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -namespace Tizen.System -{ - /// - /// String and Enumeration for feedback patterns. - /// - internal struct FeedbackPattern - { - internal int PatternNumber; - internal string PatternString; - - internal FeedbackPattern(int n, string s) - { - PatternNumber = n; - PatternString = s; - } - } -} diff --git a/Tizen.System/Feedback/FeedbackType.cs b/Tizen.System/Feedback/FeedbackType.cs deleted file mode 100644 index c833d97..0000000 --- a/Tizen.System/Feedback/FeedbackType.cs +++ /dev/null @@ -1,37 +0,0 @@ -/* -* Copyright (c) 2016 Samsung Electronics Co., Ltd All Rights Reserved -* -* Licensed under the Apache License, Version 2.0 (the License); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an AS IS BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -namespace Tizen.System -{ - /// - /// Enumeration for feedback device types. - /// - public enum FeedbackType - { - /// - /// Sound and Vibration - /// - All = 0, - /// - /// Sound feedback - /// - Sound = Interop.Feedback.FeedbackType.Sound, - /// - /// Vibration - /// /// - Vibration = Interop.Feedback.FeedbackType.Vibration, - } -} diff --git a/Tizen.System/Interop/Interop.Feedback.cs b/Tizen.System/Interop/Interop.Feedback.cs deleted file mode 100644 index 6b3e572..0000000 --- a/Tizen.System/Interop/Interop.Feedback.cs +++ /dev/null @@ -1,59 +0,0 @@ -/* -* Copyright (c) 2016 Samsung Electronics Co., Ltd All Rights Reserved -* -* Licensed under the Apache License, Version 2.0 (the License); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an AS IS BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -using System; -using System.Runtime.InteropServices; - -internal static partial class Interop -{ - internal static partial class Feedback - { - internal enum FeedbackError - { - None = Tizen.Internals.Errors.ErrorCode.None, - OperationFailed = Tizen.Internals.Errors.ErrorCode.NotPermitted, - InvalidParameter = Tizen.Internals.Errors.ErrorCode.InvalidParameter, - NotSupported = Tizen.Internals.Errors.ErrorCode.NoSuchDevice, - PermissionDenied = Tizen.Internals.Errors.ErrorCode.PermissionDenied, - NotInitialized = -0x00020000 | 0x12, - } - - // Any change here might require changes in Tizen.System.FeedbackType enum - internal enum FeedbackType - { - Sound = 1, - Vibration = 2, - } - - [DllImport(Libraries.Feedback, EntryPoint = "feedback_initialize")] - internal static extern int Initialize(); - - [DllImport(Libraries.Feedback, EntryPoint = "feedback_deinitialize")] - internal static extern int Deinitialize(); - - [DllImport(Libraries.Feedback, EntryPoint = "feedback_play")] - internal static extern int Play(int pattern); - - [DllImport(Libraries.Feedback, EntryPoint = "feedback_play_type")] - internal static extern int PlayType(FeedbackType type, int pattern); - - [DllImport(Libraries.Feedback, EntryPoint = "feedback_stop")] - internal static extern int Stop(); - - [DllImport(Libraries.Feedback, EntryPoint = "feedback_is_supported_pattern")] - internal static extern int IsSupportedPattern(FeedbackType type, int pattern, out bool supported); - } -} diff --git a/Tizen.System/Interop/Interop.Libraries.cs b/Tizen.System/Interop/Interop.Libraries.cs index e4cb086..ddb1884 100644 --- a/Tizen.System/Interop/Interop.Libraries.cs +++ b/Tizen.System/Interop/Interop.Libraries.cs @@ -19,8 +19,6 @@ internal static partial class Interop internal static partial class Libraries { internal const string RuntimeInfo = "libcapi-system-runtime-info.so.0"; - internal const string Storage = "libstorage.so.0.1"; internal const string SystemInfo = "libcapi-system-info.so.0"; - internal const string Feedback = "libfeedback.so.0"; } } diff --git a/Tizen.System/Interop/Interop.Storage.cs b/Tizen.System/Interop/Interop.Storage.cs deleted file mode 100644 index 5f04e08..0000000 --- a/Tizen.System/Interop/Interop.Storage.cs +++ /dev/null @@ -1,96 +0,0 @@ -/* -* Copyright (c) 2016 Samsung Electronics Co., Ltd All Rights Reserved -* -* Licensed under the Apache License, Version 2.0 (the License); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an AS IS BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -using System; -using System.Runtime.InteropServices; - -internal static partial class Interop -{ - internal static partial class Storage - { - internal enum ErrorCode - { - None = Tizen.Internals.Errors.ErrorCode.None, - InvalidParameter = Tizen.Internals.Errors.ErrorCode.InvalidParameter, - OutOfMemory = Tizen.Internals.Errors.ErrorCode.OutOfMemory, - NotSupported = Tizen.Internals.Errors.ErrorCode.NoSuchDevice, - OperationFailed = -0x00020000 | 0x12, - } - - // Any change here might require changes in Tizen.System.StorageArea enum - internal enum StorageArea - { - Internal = 0, - External = 1, - } - - // Any change here might require changes in Tizen.System.StorageState enum - internal enum StorageState - { - Unmountable = -2, - Removed = -1, - Mounted = 0, - MountedReadOnly = 1, - } - - // Any change here might require changes in Tizen.System.directoryType enum - internal enum DirectoryType - { - Images = 0, - Sounds = 1, - Videos = 2, - Camera = 3, - Downloads = 4, - Music = 5, - Documents = 6, - Others = 7, - Ringtones = 8, - } - - [UnmanagedFunctionPointerAttribute(CallingConvention.Cdecl)] - internal delegate void StorageStateChangedCallback(int id, StorageState state, IntPtr userData); - - [DllImport(Libraries.Storage, EntryPoint = "storage_get_root_directory")] - internal static extern ErrorCode StorageGetRootDirectory(int id, out string path); - - [DllImport(Libraries.Storage, EntryPoint = "storage_get_directory")] - internal static extern ErrorCode StorageGetAbsoluteDirectory(int id, DirectoryType type, out string path); - - [DllImport(Libraries.Storage, EntryPoint = "storage_get_state")] - internal static extern ErrorCode StorageGetState(int id, out StorageState state); - - [DllImport(Libraries.Storage, EntryPoint = "storage_get_type")] - internal static extern ErrorCode StorageGetType(int id, out StorageArea type); - - [DllImport(Libraries.Storage, EntryPoint = "storage_set_state_changed_cb")] - internal static extern ErrorCode StorageSetStateChanged(int id, StorageStateChangedCallback callback, IntPtr userData); - - [DllImport(Libraries.Storage, EntryPoint = "storage_unset_state_changed_cb")] - internal static extern ErrorCode StorageUnsetStateChanged(int id, StorageStateChangedCallback callback); - - [DllImport(Libraries.Storage, EntryPoint = "storage_get_total_space")] - internal static extern ErrorCode StorageGetTotalSpace(int id, out ulong bytes); - - [DllImport(Libraries.Storage, EntryPoint = "storage_get_available_space")] - internal static extern ErrorCode StorageGetAvailableSpace(int id, out ulong bytes); - - [UnmanagedFunctionPointerAttribute(CallingConvention.Cdecl)] - internal delegate bool StorageDeviceSupportedCallback(int storageID, StorageArea type, StorageState state, string rootDirectory, IntPtr userData); - - [DllImport(Libraries.Storage, EntryPoint = "storage_foreach_device_supported")] - public static extern ErrorCode StorageManagerGetForeachDeviceSupported(StorageDeviceSupportedCallback callback, IntPtr userData); - } -} diff --git a/Tizen.System/Storage/DirectoryType.cs b/Tizen.System/Storage/DirectoryType.cs deleted file mode 100644 index 3996fee..0000000 --- a/Tizen.System/Storage/DirectoryType.cs +++ /dev/null @@ -1,61 +0,0 @@ -/* -* Copyright (c) 2016 Samsung Electronics Co., Ltd All Rights Reserved -* -* Licensed under the Apache License, Version 2.0 (the License); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an AS IS BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -namespace Tizen.System -{ - /// - /// Enumeration of the storage directory types. - /// - public enum DirectoryType - { - /// - /// Image directory - /// - Images = Interop.Storage.DirectoryType.Images, - /// - /// Sounds directory - /// - Sounds = Interop.Storage.DirectoryType.Sounds, - /// - /// Videos directory - /// - Videos = Interop.Storage.DirectoryType.Videos, - /// - /// Camera directory - /// - Camera = Interop.Storage.DirectoryType.Camera, - /// - /// Downloads directory - /// - Downloads = Interop.Storage.DirectoryType.Downloads, - /// - /// Music directory - /// - Music = Interop.Storage.DirectoryType.Music, - /// - /// Documents directory - /// - Documents = Interop.Storage.DirectoryType.Documents, - /// - /// Others directory - /// - Others = Interop.Storage.DirectoryType.Others, - /// - /// System ringtones directory. Only available for internal storage. - /// - Ringtones = Interop.Storage.DirectoryType.Ringtones, - } -} diff --git a/Tizen.System/Storage/Storage.cs b/Tizen.System/Storage/Storage.cs deleted file mode 100644 index dd5d096..0000000 --- a/Tizen.System/Storage/Storage.cs +++ /dev/null @@ -1,216 +0,0 @@ -/* -* Copyright (c) 2016 Samsung Electronics Co., Ltd All Rights Reserved -* -* Licensed under the Apache License, Version 2.0 (the License); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an AS IS BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -using System; - -namespace Tizen.System -{ - /// - /// class to access storage device information - /// - public class Storage - { - private const string LogTag = "Tizen.System"; - private Interop.Storage.StorageState _state; - private ulong _totalSpace; - - internal Storage(int storageID, Interop.Storage.StorageArea storageType, Interop.Storage.StorageState storagestate, string rootDirectory) - { - Id = storageID; - StorageType = (StorageArea)storageType; - RootDirectory = rootDirectory; - _state = storagestate; - - Interop.Storage.ErrorCode err = Interop.Storage.StorageGetTotalSpace(Id, out _totalSpace); - if (err != Interop.Storage.ErrorCode.None) - { - Log.Warn(LogTag, string.Format("Failed to get total storage space for storage Id: {0}. err = {1}", Id, err)); - } - - s_stateChangedEventCallback = (id, state, userData) => - { - if (id == Id) - { - _state = state; - s_stateChangedEventHandler?.Invoke(this, EventArgs.Empty); - } - }; - } - - private EventHandler s_stateChangedEventHandler; - private Interop.Storage.StorageStateChangedCallback s_stateChangedEventCallback; - - private void RegisterStateChangedEvent() - { - Interop.Storage.ErrorCode err = Interop.Storage.StorageSetStateChanged(Id, s_stateChangedEventCallback, IntPtr.Zero); - if (err != Interop.Storage.ErrorCode.None) - { - Log.Warn(LogTag, string.Format("Failed to Register state changed event callback for storage Id: {0}. err = {1}", Id, err)); - } - } - - private void UnregisterStateChangedEvent() - { - Interop.Storage.ErrorCode err = Interop.Storage.StorageUnsetStateChanged(Id, s_stateChangedEventCallback); - if (err != Interop.Storage.ErrorCode.None) - { - Log.Warn(LogTag, string.Format("Failed to Register state changed event callback for storage Id: {0}. err = {1}", Id, err)); - } - } - - /// - /// StorageStateChanged event. This event is occurred when a storage state changes. - /// - /// - /// Storage state will be updated before calling event handler. - /// - /// - /// - /// myStorage.StorageStateChanged += (s, e) => - /// { - /// var storage = s as Storage; - /// Console.WriteLine(string.Format("State Changed to {0}", storage.State)); - /// } - /// - /// - public event EventHandler StorageStateChanged - { - add - { - if (s_stateChangedEventHandler == null) - { - _state = (Interop.Storage.StorageState)State; - RegisterStateChangedEvent(); - } - s_stateChangedEventHandler += value; - } - remove - { - if (s_stateChangedEventHandler != null) - { - s_stateChangedEventHandler -= value; - if (s_stateChangedEventHandler == null) - { - UnregisterStateChangedEvent(); - } - } - } - } - - /// - /// Storage ID - /// - public int Id { get; } - /// - /// Type of the storage - /// - public StorageArea StorageType { get; } - /// - /// Root directory for the storage - /// - public string RootDirectory { get; } - /// - /// Total storage size in bytes - /// - public ulong TotalSpace { get { return _totalSpace; } } - - /// - /// Storage state - /// - public StorageState State - { - get - { - if (s_stateChangedEventHandler == null) - { - Interop.Storage.ErrorCode err = Interop.Storage.StorageGetState(Id, out _state); - if (err != Interop.Storage.ErrorCode.None) - { - Log.Warn(LogTag, string.Format("Failed to get storage state for storage Id: {0}. err = {1}", Id, err)); - } - } - return (StorageState)_state; - } - } - - /// - /// Available storage size in bytes - /// - public ulong AvaliableSpace - { - get - { - ulong available; - Interop.Storage.ErrorCode err = Interop.Storage.StorageGetAvailableSpace(Id, out available); - if (err != Interop.Storage.ErrorCode.None) - { - Log.Warn(LogTag, string.Format("Failed to get available storage stace for storage Id: {0}. err = {1}", Id, err)); - } - - return available; - } - } - - /// - /// Absolute path for given directory type in storage - /// - /// - /// returned directory path may not exist, so you must make sure that it exists before using it. - /// For accessing internal storage except Ringtones directory, app should have http://tizen.org/privilege/mediastorage privilege. - /// For accessing Ringtones directory, app should have http://tizen.org/privilege/systemsettings privilege. - /// For accessing external storage, app should have http://tizen.org/privilege/externalstorage privilege. - /// - /// Directory type - /// Absolute path for given directory type in storage - /// Thrown when failed because of a invalid arguament - /// Thrown when failed due to out of memory exception - /// Thrown when failed if storage is not supported or app does not have permission to access directory path - /// http://tizen.org/privilege/mediastorage - /// http://tizen.org/privilege/systemsettings - /// http://tizen.org/privilege/externalstorage - /// - /// - /// // To get video directories for all supported storage, - /// var storageList = StorageManager.Storages as List<Storage>; - /// foreach (var storage in storageList) - /// { - /// string pathForVideoDir = storage.GetAbsolutePath(DirectoryType.Videos); - /// } - /// - /// - public string GetAbsolutePath(DirectoryType dirType) - { - string path; - Interop.Storage.ErrorCode err = Interop.Storage.StorageGetAbsoluteDirectory(Id, (Interop.Storage.DirectoryType)dirType, out path); - if (err != Interop.Storage.ErrorCode.None) - { - Log.Warn(LogTag, string.Format("Failed to get package Id. err = {0}", err)); - switch (err) - { - case Interop.Storage.ErrorCode.InvalidParameter: - throw new ArgumentException("Invalid Arguments"); - case Interop.Storage.ErrorCode.OutOfMemory: - throw new OutOfMemoryException("Out of Memory"); - case Interop.Storage.ErrorCode.NotSupported: - throw new NotSupportedException("Operation Not Supported"); - default: - throw new InvalidOperationException("Error = " + err); - } - } - return path; - } - } -} diff --git a/Tizen.System/Storage/StorageArea.cs b/Tizen.System/Storage/StorageArea.cs deleted file mode 100644 index 6ec0e0d..0000000 --- a/Tizen.System/Storage/StorageArea.cs +++ /dev/null @@ -1,33 +0,0 @@ -/* -* Copyright (c) 2016 Samsung Electronics Co., Ltd All Rights Reserved -* -* Licensed under the Apache License, Version 2.0 (the License); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an AS IS BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -namespace Tizen.System -{ - /// - /// Enumeration for storage area types. - /// - public enum StorageArea - { - /// - /// Internal device storage (built-in storage in a device, non-removable) - /// - Internal = Interop.Storage.StorageArea.Internal, - /// - /// External storage - /// - External = Interop.Storage.StorageArea.External, - } -} diff --git a/Tizen.System/Storage/StorageManager.cs b/Tizen.System/Storage/StorageManager.cs deleted file mode 100644 index 83bd89e..0000000 --- a/Tizen.System/Storage/StorageManager.cs +++ /dev/null @@ -1,52 +0,0 @@ -/* -* Copyright (c) 2016 Samsung Electronics Co., Ltd All Rights Reserved -* -* Licensed under the Apache License, Version 2.0 (the License); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an AS IS BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -using System; -using System.Collections.Generic; - -namespace Tizen.System -{ - /// - /// Storage Manager, provides properties/ methods to access storage in the device. - /// - public static class StorageManager - { - private const string LogTag = "Tizen.System"; - - /// - /// List of all storage in the device - /// - public static IEnumerable Storages - { - get - { - List storageList = new List(); - Interop.Storage.StorageDeviceSupportedCallback cb = (int storageID, Interop.Storage.StorageArea type, Interop.Storage.StorageState state, string rootDirectory, IntPtr userData) => - { - storageList.Add(new Storage(storageID, type, state, rootDirectory)); - return true; - }; - - Interop.Storage.ErrorCode err = Interop.Storage.StorageManagerGetForeachDeviceSupported(cb, IntPtr.Zero); - if (err != Interop.Storage.ErrorCode.None) - { - Log.Warn(LogTag, string.Format("Failed to get storage list. err = {0}", err)); - } - return storageList; - } - } - } -} diff --git a/Tizen.System/Storage/StorageState.cs b/Tizen.System/Storage/StorageState.cs deleted file mode 100644 index 368cfbd..0000000 --- a/Tizen.System/Storage/StorageState.cs +++ /dev/null @@ -1,41 +0,0 @@ -/* -* Copyright (c) 2016 Samsung Electronics Co., Ltd All Rights Reserved -* -* Licensed under the Apache License, Version 2.0 (the License); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an AS IS BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -namespace Tizen.System -{ - /// - /// Enumeration for the state of storage devices. - /// - public enum StorageState - { - /// - /// Storage is present but cannot be mounted. Typically it happens if the file system of the storage is corrupted - /// - Unmountable = Interop.Storage.StorageState.Unmountable, - /// - /// Storage is not present or removed - /// - Removed = Interop.Storage.StorageState.Removed, - /// - /// Storage is mounted with read/write access - /// - Mounted = Interop.Storage.StorageState.Mounted, - /// - /// Storage is mounted with read only access - /// - MountedReadOnly = Interop.Storage.StorageState.MountedReadOnly, - } -} diff --git a/Tizen.System/Tizen.System.Net45.csproj b/Tizen.System/Tizen.System.Net45.csproj index 51aa657..2f88930 100644 --- a/Tizen.System/Tizen.System.Net45.csproj +++ b/Tizen.System/Tizen.System.Net45.csproj @@ -53,14 +53,9 @@ - - - - - @@ -69,11 +64,6 @@ - - - - - @@ -89,4 +79,4 @@ --> - \ No newline at end of file + diff --git a/Tizen.System/Tizen.System.csproj b/Tizen.System/Tizen.System.csproj index a8f8fc1..828b274 100644 --- a/Tizen.System/Tizen.System.csproj +++ b/Tizen.System/Tizen.System.csproj @@ -50,14 +50,9 @@ - - - - - @@ -66,11 +61,6 @@ - - - - - @@ -98,4 +88,4 @@ <_FullFrameworkReferenceAssemblyPaths>$(MSBuildThisFileDirectory) true - \ No newline at end of file + diff --git a/Tizen.System/Tizen.System.nuspec b/Tizen.System/Tizen.System.nuspec index 510c810..9b1a3e2 100644 --- a/Tizen.System/Tizen.System.nuspec +++ b/Tizen.System/Tizen.System.nuspec @@ -9,7 +9,7 @@ https://www.tizen.org/ https://developer.tizen.org/sites/default/files/images/tizen-pinwheel-on-light-rgb_64_64.png © Samsung Electronics Co., Ltd All Rights Reserved - Provide classes for SystemInformation, RuntimeInformation, Device, Feedback, and Storage API + Provide classes for SystemInformation, RuntimeInformation, and Device API diff --git a/packaging/csapi-system.spec b/packaging/csapi-system.spec index a35be8b..0052231 100644 --- a/packaging/csapi-system.spec +++ b/packaging/csapi-system.spec @@ -1,6 +1,6 @@ Name: csapi-system Summary: Tizen System API for C# -Version: 1.0.5 +Version: 1.0.6 Release: 1 Group: Development/Libraries License: Apache-2.0 -- 2.7.4