Release 4.0.0-preview1-00172
[platform/core/csapi/tizenfx.git] / src / Tizen.Location / Tizen.Location / LocatorHelper.cs
1 /*
2  * Copyright (c) 2016 Samsung Electronics Co., Ltd All Rights Reserved
3  *
4  * Licensed under the Apache License, Version 2.0 (the License);
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an AS IS BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16
17 using System;
18
19 namespace Tizen.Location
20 {
21     /// <summary>
22     /// This class contains the functionality for obtaining the geographical positioning type.
23     /// </summary>
24     /// <since_tizen> 3 </since_tizen>
25     public static class LocatorHelper
26     {
27         /// <summary>
28         /// Checks if the specified geographical positioning type is supported or not.
29         /// </summary>
30         /// <since_tizen> 3 </since_tizen>
31         /// <param name="locationType">The back-end positioning method to be used for LBS.</param>
32         /// <feature>http://tizen.org/feature/location.gps</feature>
33         /// <feature>http://tizen.org/feature/location.wps</feature>
34         /// <returns>Returns a boolean value indicating whether or not the specified method is supported.</returns>
35         /// <exception cref="ArgumentException">Thrown when an invalid argument is used.</exception>
36         /// <exception cref="NotSupportedException">Thrown when the location is not supported.</exception>
37         public static bool IsSupportedType(LocationType locationType)
38         {
39             bool status = Interop.LocatorHelper.IsSupported((int)locationType);
40             Log.Info(Globals.LogTag, "Checking if the Location Manager type is supported ," + status);
41             return status;
42         }
43
44         /// <summary>
45         /// Checks if the specified geographical positioning type is enabled or not.
46         /// </summary>
47         /// <since_tizen> 3 </since_tizen>
48         /// <param name="locationType">The back-end positioning method to be used for LBS.</param>
49         /// <feature>http://tizen.org/feature/location.gps</feature>
50         /// <feature>http://tizen.org/feature/location.wps</feature>
51         /// <returns>Returns a boolean value indicating whether or not the specified method is supported.</returns>
52         /// <exception cref="InvalidOperationException">Thrown when the operation is invalid for the current state.</exception>
53         /// <exception cref="ArgumentException">Thrown when an invalid argument is used.</exception>
54         /// <exception cref="NotSupportedException">Thrown when the location is not supported.</exception>
55         public static bool IsEnabledType(LocationType locationType)
56         {
57             Log.Info(Globals.LogTag, "Checking if the Location Manager type is Enabled");
58             bool status;
59             int ret = Interop.LocatorHelper.IsEnabled((int)locationType, out status);
60             if (((LocationError)ret != LocationError.None))
61             {
62                 Log.Error(Globals.LogTag, "Error Checking the Location Manager type is Enabled," + (LocationError)ret);
63                 throw LocationErrorFactory.ThrowLocationException(ret);
64             }
65             return status;
66         }
67
68         /// <summary>
69         /// Sets the specified geographical positioning type.
70         /// </summary>
71         /// <since_tizen> 3 </since_tizen>
72         /// <privilege>http://tizen.org/privilege/location.enable</privilege>
73         /// <privlevel>platform</privlevel>
74         /// <param name="locationType">The back-end positioning method to be used for LBS.</param>
75         /// <param name="status">The location setting value.</param>
76         /// <feature>http://tizen.org/feature/location.gps</feature>
77         /// <feature>http://tizen.org/feature/location.wps</feature>
78         /// <exception cref="InvalidOperationException">Thrown when the operation is invalid for the current state.</exception>
79         /// <exception cref="ArgumentException">Thrown when an invalid argument is used.</exception>
80         /// <exception cref="NotSupportedException">Thrown when the location is not supported.</exception>
81         public static void EnableType(LocationType locationType, bool status)
82         {
83             Log.Info(Globals.LogTag, "Sets the location setting status");
84             int ret = Interop.LocatorHelper.EnableType((int)locationType, status);
85             if (((LocationError)ret != LocationError.None))
86             {
87                 Log.Error(Globals.LogTag, "Error Sets the Location type," + (LocationError)ret);
88                 throw LocationErrorFactory.ThrowLocationException(ret);
89             }
90         }
91     }
92 }