Modifying More Menu and Uninstall Popup for TaskbarService Window
[profile/iot/apps/dotnet/taskbar.git] / TaskBar / TaskBar.cs
1 using System.Collections.Generic;
2 using Tizen.NUI;
3 using Tizen.NUI.WindowSystem.Shell;
4 using TaskBar.Common;
5 using TaskBar.Core;
6 using TaskBar.Views;
7
8 namespace TaskBar
9 {
10     public class Program : NUIApplication
11     {
12         public Program() : base(ThemeOptions.PlatformThemeEnabled)
13         {
14         }
15
16         private static Window window;
17         private MainView mainView;
18         private TizenShell tizenShell;
19         private TaskbarService taskbarService;
20
21         protected override void OnCreate()
22         {
23             base.OnCreate();
24             window = GetDefaultWindow();
25             List<Window.WindowOrientation> list = new List<Window.WindowOrientation>
26             {
27                 Window.WindowOrientation.Landscape,
28                 Window.WindowOrientation.LandscapeInverse,
29                 Window.WindowOrientation.NoOrientationPreference,
30                 Window.WindowOrientation.Portrait,
31                 Window.WindowOrientation.PortraitInverse
32             };
33             window.SetAvailableOrientations(list);
34             window.SetTransparency(true);
35             window.BackgroundColor = Color.Transparent;
36
37             tizenShell = new TizenShell();
38             taskbarService = new TaskbarService(tizenShell, window);
39             taskbarService.SetSize((uint)DeviceInfo.Instance.DisplayWidth, (uint)Resources.TaskbarHeight.SpToPx());
40             DeviceInfo.Instance.SetTaskbarInputRegion();
41
42             PinnedAppsDataBase.Instance.InitializeDataBase();
43
44             mainView = new MainView();
45             window.Add(mainView);
46             window.OrientationChanged += OnOrientationChanged;
47         }
48
49         private void OnOrientationChanged(object sender, WindowOrientationChangedEventArgs e)
50         {
51             DeviceInfo.Instance.UpdateDeviceInfo();
52             DeviceInfo.Instance.SetTaskbarInputRegion();
53             //taskbarService.SetPlaceType(DeviceInfo.Instance.TaskbarPosition);
54             mainView.UpdateView();
55         }
56
57         protected override void OnTerminate()
58         {
59             PinnedAppsDataBase.Instance.Disconnect();
60             window?.Remove(mainView);
61             mainView?.Dispose();
62             mainView = null;
63
64             taskbarService?.Dispose();
65             tizenShell?.Dispose();
66             if (window != null)
67             {
68                 window.OrientationChanged -= OnOrientationChanged;
69                 window.Dispose();
70                 window = null;
71             }
72             System.GC.Collect();
73             System.Threading.Thread.Sleep(1000);
74             base.OnTerminate();
75         }
76
77         static void Main(string[] args)
78         {
79             Program program = new Program();
80             program.Run(args);
81         }
82     }
83 }