[NUI] TCSACR-226 code change (#1032)
[platform/core/csapi/tizenfx.git] / test / SampleTelephony / NetworkPage.cs
1 using System;
2 using System.Collections.Generic;
3 using Xamarin.Forms;
4 using Tizen;
5 using Tizen.Telephony;
6
7 namespace XamarinForTizen.Tizen
8 {
9     public class NetworkPage : ContentPage
10     {
11         private static Network _network = null;
12         private ChangeNotificationEventArgs.Notification[] notiArr = { ChangeNotificationEventArgs.Notification.NetworkBsId,
13                                                                        ChangeNotificationEventArgs.Notification.NetworkBsLatitude,
14                                                                        ChangeNotificationEventArgs.Notification.NetworkBsLongitude,
15                                                                        ChangeNotificationEventArgs.Notification.NetworkCellid,
16                                                                        ChangeNotificationEventArgs.Notification.NetworkDefaultDataSubscription,
17                                                                        ChangeNotificationEventArgs.Notification.NetworkDefaultSubscription,
18                                                                        ChangeNotificationEventArgs.Notification.NetworkId,
19                                                                        ChangeNotificationEventArgs.Notification.NetworkLac,
20                                                                        ChangeNotificationEventArgs.Notification.NetworkNetworkName,
21                                                                        ChangeNotificationEventArgs.Notification.NetworkPsType,
22                                                                        ChangeNotificationEventArgs.Notification.NetworkRoamingStatus,
23                                                                        ChangeNotificationEventArgs.Notification.NetworkServiceState,
24                                                                        ChangeNotificationEventArgs.Notification.NetworkSignalstrengthLevel,
25                                                                        ChangeNotificationEventArgs.Notification.NetworkSystemId,
26                                                                        ChangeNotificationEventArgs.Notification.NetworkTac };
27         public NetworkPage()
28         {
29             var cellBtn = new Button
30             {
31                 Text = "Get cell ID",
32                 VerticalOptions = LayoutOptions.Start,
33                 HorizontalOptions = LayoutOptions.FillAndExpand
34             };
35             cellBtn.Clicked += cellBtn_Clicked;
36
37             var lacBtn = new Button
38             {
39                 Text = "Get LAC",
40                 VerticalOptions = LayoutOptions.Start,
41                 HorizontalOptions = LayoutOptions.FillAndExpand
42             };
43             lacBtn.Clicked += lacBtn_Clicked;
44
45             var mccBtn = new Button
46             {
47                 Text = "Get Mcc",
48                 VerticalOptions = LayoutOptions.Start,
49                 HorizontalOptions = LayoutOptions.FillAndExpand
50             };
51             mccBtn.Clicked += mccBtn_Clicked;
52
53             var mncBtn = new Button
54             {
55                 Text = "Get Mnc",
56                 VerticalOptions = LayoutOptions.Start,
57                 HorizontalOptions = LayoutOptions.FillAndExpand
58             };
59             mncBtn.Clicked += mncBtn_Clicked;
60
61             var nwNameBtn = new Button
62             {
63                 Text = "Get network name",
64                 VerticalOptions = LayoutOptions.Start,
65                 HorizontalOptions = LayoutOptions.FillAndExpand
66             };
67             nwNameBtn.Clicked += nwNameBtn_Clicked;
68
69             var nwNameOptionBtn = new Button
70             {
71                 Text = "Get network name option",
72                 VerticalOptions = LayoutOptions.Start,
73                 HorizontalOptions = LayoutOptions.FillAndExpand
74             };
75             nwNameOptionBtn.Clicked += nwNameOptionBtn_Clicked;
76
77             var roamingStatusBtn = new Button
78             {
79                 Text = "Get roaming status",
80                 VerticalOptions = LayoutOptions.Start,
81                 HorizontalOptions = LayoutOptions.FillAndExpand
82             };
83             roamingStatusBtn.Clicked += roamingStatusBtn_Clicked;
84
85             var rssiBtn = new Button
86             {
87                 Text = "Get RSSI",
88                 VerticalOptions = LayoutOptions.Start,
89                 HorizontalOptions = LayoutOptions.FillAndExpand
90             };
91             rssiBtn.Clicked += rssiBtn_Clicked;
92
93             var serviceStateBtn = new Button
94             {
95                 Text = "Get service state",
96                 VerticalOptions = LayoutOptions.Start,
97                 HorizontalOptions = LayoutOptions.FillAndExpand
98             };
99             serviceStateBtn.Clicked += serviceStateBtn_Clicked;
100
101             var typeBtn = new Button
102             {
103                 Text = "Get network type",
104                 VerticalOptions = LayoutOptions.Start,
105                 HorizontalOptions = LayoutOptions.FillAndExpand
106             };
107             typeBtn.Clicked += typeBtn_Clicked;
108
109             var psTypeBtn = new Button
110             {
111                 Text = "Get PS type",
112                 VerticalOptions = LayoutOptions.Start,
113                 HorizontalOptions = LayoutOptions.FillAndExpand
114             };
115             psTypeBtn.Clicked += psTypeBtn_Clicked;
116
117             var dataSubsBtn = new Button
118             {
119                 Text = "Get default data subscription",
120                 VerticalOptions = LayoutOptions.Start,
121                 HorizontalOptions = LayoutOptions.FillAndExpand
122             };
123             dataSubsBtn.Clicked += dataSubsBtn_Clicked;
124
125             var defaultSubsBtn = new Button
126             {
127                 Text = "Get default subscription",
128                 VerticalOptions = LayoutOptions.Start,
129                 HorizontalOptions = LayoutOptions.FillAndExpand
130             };
131             defaultSubsBtn.Clicked += defaultSubsBtn_Clicked;
132
133             var selectionModeBtn = new Button
134             {
135                 Text = "Get selection mode",
136                 VerticalOptions = LayoutOptions.Start,
137                 HorizontalOptions = LayoutOptions.FillAndExpand
138             };
139             selectionModeBtn.Clicked += selectionModeBtn_Clicked;
140
141             var tacBtn = new Button
142             {
143                 Text = "Get TAC",
144                 VerticalOptions = LayoutOptions.Start,
145                 HorizontalOptions = LayoutOptions.FillAndExpand
146             };
147             tacBtn.Clicked += tacBtn_Clicked;
148
149             var systemIdBtn = new Button
150             {
151                 Text = "Get system ID",
152                 VerticalOptions = LayoutOptions.Start,
153                 HorizontalOptions = LayoutOptions.FillAndExpand
154             };
155             systemIdBtn.Clicked += systemIdBtn_Clicked;
156
157             var nwIdBtn = new Button
158             {
159                 Text = "Get network ID",
160                 VerticalOptions = LayoutOptions.Start,
161                 HorizontalOptions = LayoutOptions.FillAndExpand
162             };
163             nwIdBtn.Clicked += nwIdBtn_Clicked;
164
165             var baseStationIdBtn = new Button
166             {
167                 Text = "Get base station ID",
168                 VerticalOptions = LayoutOptions.Start,
169                 HorizontalOptions = LayoutOptions.FillAndExpand
170             };
171             baseStationIdBtn.Clicked += baseStationIdBtn_Clicked;
172
173             var baseStationLongitudeBtn = new Button
174             {
175                 Text = "Get base station longitude",
176                 VerticalOptions = LayoutOptions.Start,
177                 HorizontalOptions = LayoutOptions.FillAndExpand
178             };
179             baseStationLongitudeBtn.Clicked += baseStationLongitudeBtn_Clicked;
180
181             var baseStationLatitudeBtn = new Button
182             {
183                 Text = "Get base station latitude",
184                 VerticalOptions = LayoutOptions.Start,
185                 HorizontalOptions = LayoutOptions.FillAndExpand
186             };
187             baseStationLatitudeBtn.Clicked += baseStationLatitudeBtn_Clicked;
188
189             ScrollView scrollView = new ScrollView()
190             {
191                 Content = new StackLayout
192                 {
193                     VerticalOptions = LayoutOptions.Center,
194                     Children = {
195                         cellBtn, lacBtn, mccBtn, mncBtn, nwNameBtn, nwNameOptionBtn, roamingStatusBtn, rssiBtn,
196                         serviceStateBtn, typeBtn, psTypeBtn, dataSubsBtn, defaultSubsBtn, selectionModeBtn, tacBtn,
197                         systemIdBtn, nwIdBtn, baseStationIdBtn, baseStationLatitudeBtn, baseStationLongitudeBtn
198                     }
199                 },
200                 VerticalOptions = LayoutOptions.Center
201             };
202
203             Content = scrollView;
204
205             try
206             {
207                 if (Globals.slotHandle == null)
208                 {
209                     Log.Debug(Globals.LogTag, "Telephony is not initialized/there are no sim slot handles");
210                     return;
211                 }
212
213                 Globals.slotHandle.ChangeNotification += SlotHandle_ChangeNotification;
214                 List<ChangeNotificationEventArgs.Notification> notiList = new List<ChangeNotificationEventArgs.Notification>();
215                 foreach (ChangeNotificationEventArgs.Notification noti in notiArr)
216                 {
217                     notiList.Add(noti);
218                 }
219
220                 Globals.slotHandle.SetNotificationId(notiList);
221                 _network = new Network(Globals.slotHandle);
222             }
223
224             catch (Exception ex)
225             {
226                 Log.Debug(Globals.LogTag, "Exception in network constructor: " + ex.ToString());
227             }
228         }
229
230         private void SlotHandle_ChangeNotification(object sender, ChangeNotificationEventArgs e)
231         {
232             Log.Debug(Globals.LogTag, "Change notification: " + e.NotificationType);
233         }
234
235         private void baseStationLatitudeBtn_Clicked(object sender, EventArgs e)
236         {
237             if (_network == null)
238             {
239                 Log.Debug(Globals.LogTag, "Telephony is not initialized/there are no sim slot handles");
240                 return;
241             }
242
243             Log.Debug(Globals.LogTag, "Base station latitude: " + _network.BaseStationLatitude);
244         }
245
246         private void baseStationLongitudeBtn_Clicked(object sender, EventArgs e)
247         {
248             if (_network == null)
249             {
250                 Log.Debug(Globals.LogTag, "Telephony is not initialized/there are no sim slot handles");
251                 return;
252             }
253
254             Log.Debug(Globals.LogTag, "Base Station longitude: " + _network.BaseStationLongitude);
255         }
256
257         private void baseStationIdBtn_Clicked(object sender, EventArgs e)
258         {
259             if (_network == null)
260             {
261                 Log.Debug(Globals.LogTag, "Telephony is not initialized/there are no sim slot handles");
262                 return;
263             }
264
265             Log.Debug(Globals.LogTag, "Base station ID: " + _network.BaseStationId);
266         }
267
268         private void nwIdBtn_Clicked(object sender, EventArgs e)
269         {
270             if (_network == null)
271             {
272                 Log.Debug(Globals.LogTag, "Telephony is not initialized/there are no sim slot handles");
273                 return;
274             }
275
276             Log.Debug(Globals.LogTag, "Network ID: " + _network.NetworkId);
277         }
278
279         private void systemIdBtn_Clicked(object sender, EventArgs e)
280         {
281             if (_network == null)
282             {
283                 Log.Debug(Globals.LogTag, "Telephony is not initialized/there are no sim slot handles");
284                 return;
285             }
286
287             Log.Debug(Globals.LogTag, "System ID: " + _network.SystemId);
288         }
289
290         private void tacBtn_Clicked(object sender, EventArgs e)
291         {
292             if (_network == null)
293             {
294                 Log.Debug(Globals.LogTag, "Telephony is not initialized/there are no sim slot handles");
295                 return;
296             }
297
298             Log.Debug(Globals.LogTag, "TAC: " + _network.Tac);
299         }
300
301         private void selectionModeBtn_Clicked(object sender, EventArgs e)
302         {
303             if (_network == null)
304             {
305                 Log.Debug(Globals.LogTag, "Telephony is not initialized/there are no sim slot handles");
306                 return;
307             }
308
309             Log.Debug(Globals.LogTag, "Selection mode: " + _network.NetworkSelectionMode);
310         }
311
312         private void defaultSubsBtn_Clicked(object sender, EventArgs e)
313         {
314             if (_network == null)
315             {
316                 Log.Debug(Globals.LogTag, "Telephony is not initialized/there are no sim slot handles");
317                 return;
318             }
319
320             Log.Debug(Globals.LogTag, "Default subscription: " + _network.NetworkDefaultSubscription);
321         }
322
323         private void dataSubsBtn_Clicked(object sender, EventArgs e)
324         {
325             if (_network == null)
326             {
327                 Log.Debug(Globals.LogTag, "Telephony is not initialized/there are no sim slot handles");
328                 return;
329             }
330
331             Log.Debug(Globals.LogTag, "Default data subscription: " + _network.NetworkDefaultDataSubscription);
332         }
333
334         private void psTypeBtn_Clicked(object sender, EventArgs e)
335         {
336             if (_network == null)
337             {
338                 Log.Debug(Globals.LogTag, "Telephony is not initialized/there are no sim slot handles");
339                 return;
340             }
341
342             Log.Debug(Globals.LogTag, "Network PS type: " + _network.NetworkPsType);
343         }
344
345         private void typeBtn_Clicked(object sender, EventArgs e)
346         {
347             if (_network == null)
348             {
349                 Log.Debug(Globals.LogTag, "Telephony is not initialized/there are no sim slot handles");
350                 return;
351             }
352
353             Log.Debug(Globals.LogTag, "Network type: " + _network.NetworkType);
354         }
355
356         private void serviceStateBtn_Clicked(object sender, EventArgs e)
357         {
358             if (_network == null)
359             {
360                 Log.Debug(Globals.LogTag, "Telephony is not initialized/there are no sim slot handles");
361                 return;
362             }
363
364             Log.Debug(Globals.LogTag, "Network service state: " + _network.NetworkServiceState);
365         }
366
367         private void rssiBtn_Clicked(object sender, EventArgs e)
368         {
369             if (_network == null)
370             {
371                 Log.Debug(Globals.LogTag, "Telephony is not initialized/there are no sim slot handles");
372                 return;
373             }
374
375             Log.Debug(Globals.LogTag, "Current Rssi: " + _network.CurrentRssi);
376         }
377
378         private void roamingStatusBtn_Clicked(object sender, EventArgs e)
379         {
380             if (_network == null)
381             {
382                 Log.Debug(Globals.LogTag, "Telephony is not initialized/there are no sim slot handles");
383                 return;
384             }
385
386             Log.Debug(Globals.LogTag, "Roaming status: " + _network.RoamingStatus);
387         }
388
389         private void nwNameOptionBtn_Clicked(object sender, EventArgs e)
390         {
391             if (_network == null)
392             {
393                 Log.Debug(Globals.LogTag, "Telephony is not initialized/there are no sim slot handles");
394                 return;
395             }
396
397             Log.Debug(Globals.LogTag, "Network name option: " + _network.NetworkNameOption);
398         }
399
400         private void nwNameBtn_Clicked(object sender, EventArgs e)
401         {
402             if (_network == null)
403             {
404                 Log.Debug(Globals.LogTag, "Telephony is not initialized/there are no sim slot handles");
405                 return;
406             }
407
408             Log.Debug(Globals.LogTag, "Network name: " + _network.NetworkName);
409         }
410
411         private void mncBtn_Clicked(object sender, EventArgs e)
412         {
413             if (_network == null)
414             {
415                 Log.Debug(Globals.LogTag, "Telephony is not initialized/there are no sim slot handles");
416                 return;
417             }
418
419             Log.Debug(Globals.LogTag, "Mnc: " + _network.Mnc);
420         }
421
422         private void mccBtn_Clicked(object sender, EventArgs e)
423         {
424             if (_network == null)
425             {
426                 Log.Debug(Globals.LogTag, "Telephony is not initialized/there are no sim slot handles");
427                 return;
428             }
429
430             Log.Debug(Globals.LogTag, "Mcc: " + _network.Mcc);
431         }
432
433         private void lacBtn_Clicked(object sender, EventArgs e)
434         {
435             if (_network == null)
436             {
437                 Log.Debug(Globals.LogTag, "Telephony is not initialized/there are no sim slot handles");
438                 return;
439             }
440
441             Log.Debug(Globals.LogTag, "Lac: " + _network.Lac);
442         }
443
444         private void cellBtn_Clicked(object sender, EventArgs e)
445         {
446             if (_network == null)
447             {
448                 Log.Debug(Globals.LogTag, "Telephony is not initialized/there are no sim slot handles");
449                 return;
450             }
451
452             Log.Debug(Globals.LogTag, "Cell ID: " + _network.CellId);
453         }
454     }
455 }