From f84c77c8aa96dd985daf9d7c296f71cf6e87ec99 Mon Sep 17 00:00:00 2001 From: Wootak Jung Date: Wed, 5 Oct 2022 16:09:36 +0900 Subject: [PATCH] Add paired device view add operation state changed logic add device changed logic add detail button Change-Id: I3214eb0513c2b4983ccfdd51d028778cd424f3ff Signed-off-by: Wootak Jung --- .../Controller/AdapterController.cs | 63 ++---- .../Controller/DeviceController.cs | 29 ++- .../Model/{BtModelDevice.cs => BtDevice.cs} | 5 +- ...ModelEnumerations.cs => BtEnumerations.cs} | 9 +- .../SettingBluetooth/Model/BtEventArgs.cs | 28 +++ .../SettingBluetooth/Model/BtModel.cs | 24 ++- .../Model/BtModelEventArgs.cs | 29 --- .../SettingBluetooth/Model/BtModelImpl.cs | 76 ++++--- .../SettingBluetooth/View/BtDeviceView.cs | 37 +++- .../SettingBluetooth/View/BtMainView.cs | 188 ++++++++++++------ SettingBluetooth/SettingView/SettingView.cs | 3 +- .../org.tizen.cssetting-bluetooth-1.0.0.tpk | Bin 75603 -> 77509 bytes 12 files changed, 311 insertions(+), 180 deletions(-) rename SettingBluetooth/SettingBluetooth/Model/{BtModelDevice.cs => BtDevice.cs} (95%) rename SettingBluetooth/SettingBluetooth/Model/{BtModelEnumerations.cs => BtEnumerations.cs} (74%) create mode 100644 SettingBluetooth/SettingBluetooth/Model/BtEventArgs.cs delete mode 100644 SettingBluetooth/SettingBluetooth/Model/BtModelEventArgs.cs diff --git a/SettingBluetooth/SettingBluetooth/Controller/AdapterController.cs b/SettingBluetooth/SettingBluetooth/Controller/AdapterController.cs index 9e7dea7..fce381c 100644 --- a/SettingBluetooth/SettingBluetooth/Controller/AdapterController.cs +++ b/SettingBluetooth/SettingBluetooth/Controller/AdapterController.cs @@ -11,69 +11,38 @@ namespace SettingBluetooth.Controller { internal static class AdapterController { - static bool deviceViewInit = false; - static DeviceSource deviceSource; - - internal static void BtModelDiscoveryStateChanged(object obj, BtModelDiscoveryStateChangedEventArgs ev) + internal static void OnOffSwitchSelectedChanged(object obj, SelectedChangedEventArgs ev) { - if (ev.DiscoveryState == BtModelDiscoveryState.Started) + Log.Debug(Program.LogTag, "OnOffSwitchSelectedChanged. IsSelected: " + ev.IsSelected + ", isEnabled: " + BtModel.IsEnabled); + if (ev.IsSelected == true && BtModel.IsEnabled == false) { - Log.Debug(Program.LogTag, "Device discovery started"); + Log.Info(Program.LogTag, "Enable BT"); + BtModel.Enable(); } - else if (ev.DiscoveryState == BtModelDiscoveryState.Found) + else if (ev.IsSelected == false && BtModel.IsEnabled == true) { - if (deviceViewInit == false) - { - deviceSource = new DeviceSource(); - BtMainView.AddDeviceView(deviceSource); - BtMainView.AddScanButton(); - deviceViewInit = true; - } - - Log.Debug(Program.LogTag, "Device found. Address: " + ev.DiscoveredDevice.RemoteDeviceAddress); - deviceSource.AddDevice(ev.DiscoveredDevice.RemoteDeviceAddress); + Log.Info(Program.LogTag, "Disable BT"); + BtModel.Disable(); } else { - Log.Debug(Program.LogTag, "Device discovery finished"); - deviceSource.UpdateTitle(Resources.IDS_BT_BODY_AVAILABLE_DEVICES); - BtMainView.UpdateScanButton(Resources.IDS_BT_SK_SCAN); + Log.Error(Program.LogTag, "Invalid state"); } } - internal static void BtModelStateChanged(object obj, BtModelStateChangedEventArgs ev) + internal static void ScanButtonClicked(object obj, ClickedEventArgs ev) { - if (ev.IsEnabled) - { - Log.Debug(Program.LogTag, "BT enabled. Start discovery"); - BtModel.DiscoveryStateChanged += BtModelDiscoveryStateChanged; - BtModel.StartDiscovery(); - } - else - { - Log.Debug(Program.LogTag, "BT disabled"); - BtMainView.RemoveDeviceView(); - BtMainView.RemoveScanButton(); - } - } + Log.Debug(Program.LogTag, "OnOffSwitchSelectedChanged. IsScanning: " + BtModel.IsScanning); - internal static void OnOffSwitchSelectedChanged(object obj, SelectedChangedEventArgs ev) - { - Log.Debug(Program.LogTag, "btOnOffSwitch clicked. IsSelected: " + ev.IsSelected + ", isEnabled: " + BtModel.IsEnabled); - if (ev.IsSelected == true && BtModel.IsEnabled == false) - { - Log.Info(Program.LogTag, "Enable BT"); - BtModel.StateChanged += BtModelStateChanged; - BtModel.Enable(); - } - else if (ev.IsSelected == false && BtModel.IsEnabled == true) + if (BtModel.IsScanning) { - Log.Info(Program.LogTag, "Disable BT"); - BtModel.Disable(); + Log.Info(Program.LogTag, "Stop discovery"); + BtModel.StopDiscovery(); } else { - Log.Error(Program.LogTag, "Invalid state"); + Log.Info(Program.LogTag, "Start discovery"); + BtModel.StartDiscovery(); } } } diff --git a/SettingBluetooth/SettingBluetooth/Controller/DeviceController.cs b/SettingBluetooth/SettingBluetooth/Controller/DeviceController.cs index 28ef44a..7508ea4 100644 --- a/SettingBluetooth/SettingBluetooth/Controller/DeviceController.cs +++ b/SettingBluetooth/SettingBluetooth/Controller/DeviceController.cs @@ -1,10 +1,37 @@ using System; using System.Collections.Generic; using System.Text; +using Tizen.NUI.Components; +using Tizen; namespace SettingBluetooth.Controller { - class DeviceController + internal static class DeviceController { + internal static void DeviceViewSelectionChanged(object obj, SelectionChangedEventArgs ev) + { + Log.Debug(Program.LogTag, "DeviceViewSelectionChanged"); + + //SingleSelection Only have 1 or nil object in the list. + foreach (object item in ev.PreviousSelection) + { + if (item == null) break; + if (item is Device device) + { + device.Connected = false; + } + } + foreach (object item in ev.CurrentSelection) + { + if (item == null) break; + if (item is Device device) + { + Log.Debug(Program.LogTag, "Name: " + device.Name); + device.Connected = true; + //device.btDevice.Pair(); + device.Registered = true; + } + } + } } } diff --git a/SettingBluetooth/SettingBluetooth/Model/BtModelDevice.cs b/SettingBluetooth/SettingBluetooth/Model/BtDevice.cs similarity index 95% rename from SettingBluetooth/SettingBluetooth/Model/BtModelDevice.cs rename to SettingBluetooth/SettingBluetooth/Model/BtDevice.cs index 5141813..7f4d7cb 100644 --- a/SettingBluetooth/SettingBluetooth/Model/BtModelDevice.cs +++ b/SettingBluetooth/SettingBluetooth/Model/BtDevice.cs @@ -4,12 +4,13 @@ using System.Text; namespace SettingBluetooth.Model { - public class BtModelDevice + public class BtDevice { internal string RemoteDeviceAddress; + internal BtDeviceState DeviceState; // TODO - internal BtModelDevice(string address) // TODO + internal BtDevice(string address) // TODO { RemoteDeviceAddress = address; } diff --git a/SettingBluetooth/SettingBluetooth/Model/BtModelEnumerations.cs b/SettingBluetooth/SettingBluetooth/Model/BtEnumerations.cs similarity index 74% rename from SettingBluetooth/SettingBluetooth/Model/BtModelEnumerations.cs rename to SettingBluetooth/SettingBluetooth/Model/BtEnumerations.cs index d7e6811..03cb74d 100644 --- a/SettingBluetooth/SettingBluetooth/Model/BtModelEnumerations.cs +++ b/SettingBluetooth/SettingBluetooth/Model/BtEnumerations.cs @@ -4,14 +4,6 @@ using System.Text; namespace SettingBluetooth.Model { - /* Removable - We can use BtOperationState and BtDeviceState */ - public enum BtModelDiscoveryState - { - Started, - Finished, - Found - } - public enum BtOperationState { Deactivated, @@ -19,6 +11,7 @@ namespace SettingBluetooth.Model Activated, Activating, Searching, + Searched, Pairing, Connecting, } diff --git a/SettingBluetooth/SettingBluetooth/Model/BtEventArgs.cs b/SettingBluetooth/SettingBluetooth/Model/BtEventArgs.cs new file mode 100644 index 0000000..ae58c37 --- /dev/null +++ b/SettingBluetooth/SettingBluetooth/Model/BtEventArgs.cs @@ -0,0 +1,28 @@ +using System; +using System.Collections.Generic; +using System.Text; +using Tizen.Network.Bluetooth; +using Tizen; + +namespace SettingBluetooth.Model +{ + internal class BtOperationStateChangedEventArgs : EventArgs + { + internal BtOperationState OperationState; + + internal BtOperationStateChangedEventArgs(BtOperationState state) + { + OperationState = state; + } + } + + internal class BtDeviceChangedEventArgs : EventArgs + { + internal BtDevice btDevice; + + internal BtDeviceChangedEventArgs(BtDevice device) + { + btDevice = device; + } + } +} diff --git a/SettingBluetooth/SettingBluetooth/Model/BtModel.cs b/SettingBluetooth/SettingBluetooth/Model/BtModel.cs index 5a98d40..37316d6 100644 --- a/SettingBluetooth/SettingBluetooth/Model/BtModel.cs +++ b/SettingBluetooth/SettingBluetooth/Model/BtModel.cs @@ -17,6 +17,14 @@ namespace SettingBluetooth.Model } } + internal static bool IsScanning + { + get + { + return BtModelImpl.Instance.IsScanning; + } + } + internal static void Enable() { BtModelImpl.Instance.Enable(); @@ -31,28 +39,32 @@ namespace SettingBluetooth.Model { BtModelImpl.Instance.StartDiscovery(); } + internal static void StopDiscovery() + { + BtModelImpl.Instance.StopDiscovery(); + } - internal static event EventHandler StateChanged + internal static event EventHandler OperationStateChanged { add { - BtModelImpl.Instance.StateChanged += value; + BtModelImpl.Instance.OperationStateChanged += value; } remove { - BtModelImpl.Instance.StateChanged -= value; + BtModelImpl.Instance.OperationStateChanged -= value; } } - internal static event EventHandler DiscoveryStateChanged + internal static event EventHandler DeviceChanged { add { - BtModelImpl.Instance.DiscoveryStateChanged += value; + BtModelImpl.Instance.DeviceChanged += value; } remove { - BtModelImpl.Instance.DiscoveryStateChanged -= value; + BtModelImpl.Instance.DeviceChanged -= value; } } } diff --git a/SettingBluetooth/SettingBluetooth/Model/BtModelEventArgs.cs b/SettingBluetooth/SettingBluetooth/Model/BtModelEventArgs.cs deleted file mode 100644 index 2570e20..0000000 --- a/SettingBluetooth/SettingBluetooth/Model/BtModelEventArgs.cs +++ /dev/null @@ -1,29 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using Tizen.Network.Bluetooth; -using Tizen; - -namespace SettingBluetooth.Model -{ - internal class BtModelStateChangedEventArgs : EventArgs - { - internal bool IsEnabled; - - internal BtModelStateChangedEventArgs(StateChangedEventArgs args) - { - IsEnabled = args.BTState == BluetoothState.Enabled; - } - } - - internal class BtModelDiscoveryStateChangedEventArgs : EventArgs - { - internal BtModelDiscoveryState DiscoveryState; - internal BtModelDevice DiscoveredDevice; - - internal BtModelDiscoveryStateChangedEventArgs(BluetoothDeviceDiscoveryState state) - { - DiscoveryState = (BtModelDiscoveryState)state; - } - } -} diff --git a/SettingBluetooth/SettingBluetooth/Model/BtModelImpl.cs b/SettingBluetooth/SettingBluetooth/Model/BtModelImpl.cs index 190d708..c2a8234 100644 --- a/SettingBluetooth/SettingBluetooth/Model/BtModelImpl.cs +++ b/SettingBluetooth/SettingBluetooth/Model/BtModelImpl.cs @@ -9,8 +9,9 @@ namespace SettingBluetooth.Model internal class BtModelImpl { static readonly BtModelImpl instance = new BtModelImpl(); - static event EventHandler stateChanged = null; - static event EventHandler discoveryStateChanged = null; + static bool isScanning = false; + static event EventHandler operationStateChanged = null; + static event EventHandler deviceChanged = null; internal bool IsEnabled { @@ -20,68 +21,97 @@ namespace SettingBluetooth.Model } } + internal bool IsScanning + { + get + { + return isScanning; + } + } + internal void Enable() { BluetoothAdapter.Enable(); + operationStateChanged?.Invoke(null, new BtOperationStateChangedEventArgs(BtOperationState.Activating)); } internal void Disable() { BluetoothAdapter.Disable(); + operationStateChanged?.Invoke(null, new BtOperationStateChangedEventArgs(BtOperationState.Deactivating)); } internal void StartDiscovery() { BluetoothAdapter.StartDiscovery(); + isScanning = true; + operationStateChanged?.Invoke(null, new BtOperationStateChangedEventArgs(BtOperationState.Searching)); } - private static void AdapterStateChanged(object obj, StateChangedEventArgs ev) + internal void StopDiscovery() { - stateChanged?.Invoke(null, new BtModelStateChangedEventArgs(ev)); + BluetoothAdapter.StopDiscovery(); + isScanning = false; + operationStateChanged?.Invoke(null, new BtOperationStateChangedEventArgs(BtOperationState.Searched)); } - internal event EventHandler StateChanged + private void AdapterStateChanged(object obj, StateChangedEventArgs ev) { - add + if (ev.BTState == BluetoothState.Enabled) { - stateChanged += value; + operationStateChanged?.Invoke(null, new BtOperationStateChangedEventArgs(BtOperationState.Activated)); } - remove + else { - stateChanged -= value; + operationStateChanged?.Invoke(null, new BtOperationStateChangedEventArgs(BtOperationState.Deactivated)); } } - private static void AdapterDiscoveryChanged(object obj, DiscoveryStateChangedEventArgs ev) + private void AdapterDiscoveryChanged(object obj, DiscoveryStateChangedEventArgs ev) { - BtModelDiscoveryStateChangedEventArgs args = new BtModelDiscoveryStateChangedEventArgs(ev.DiscoveryState); - - if (ev.DiscoveryState == BluetoothDeviceDiscoveryState.Started) + if (ev.DiscoveryState == BluetoothDeviceDiscoveryState.Found) { - discoveryStateChanged?.Invoke(null, args); + BtDevice btDevice = new BtDevice(ev.DeviceFound.Address); + if (ev.DeviceFound.IsPaired) + { + btDevice.DeviceState = BtDeviceState.Paired; + } + else + { + btDevice.DeviceState = BtDeviceState.Idle; + } + + BtDeviceChangedEventArgs args = new BtDeviceChangedEventArgs(btDevice); + deviceChanged?.Invoke(null, args); } else if (ev.DiscoveryState == BluetoothDeviceDiscoveryState.Finished) { - discoveryStateChanged?.Invoke(null, args); + isScanning = false; + operationStateChanged?.Invoke(null, new BtOperationStateChangedEventArgs(BtOperationState.Searched)); } - else + } + + internal event EventHandler OperationStateChanged + { + add { - BtModelDevice device = new BtModelDevice(ev.DeviceFound.Address); - args.DiscoveredDevice = device; + operationStateChanged += value; + } + remove + { + operationStateChanged -= value; } - - discoveryStateChanged?.Invoke(null, args); } - internal event EventHandler DiscoveryStateChanged + internal event EventHandler DeviceChanged { add { - discoveryStateChanged += value; + deviceChanged += value; } remove { - discoveryStateChanged -= value; + deviceChanged -= value; } } diff --git a/SettingBluetooth/SettingBluetooth/View/BtDeviceView.cs b/SettingBluetooth/SettingBluetooth/View/BtDeviceView.cs index 905a23d..7c639b9 100644 --- a/SettingBluetooth/SettingBluetooth/View/BtDeviceView.cs +++ b/SettingBluetooth/SettingBluetooth/View/BtDeviceView.cs @@ -32,7 +32,7 @@ namespace SettingBluetooth registered = reg; } - public Device(string deviceName) + public Device(string deviceName) // BtDevice { Log.Debug(Program.LogTag, "Device added. deviceName: " + deviceName); name = deviceName; @@ -111,6 +111,19 @@ namespace SettingBluetooth { this.Add(new Device(deviceName)); } + + public void RemoveDevice(string deviceName) + { + foreach (Device device in this) + { + if (device.Name == deviceName) + { + this.Remove(device); + Log.Info(Program.LogTag, "device(" + deviceName + ") removed"); + break; + } + } + } } public class DeviceSource : ObservableCollection @@ -120,7 +133,7 @@ namespace SettingBluetooth public DeviceSource() { Log.Info(Program.LogTag, "DeviceSource created"); - collection = new DeviceCollection(Resources.IDS_BT_BODY_SCANNING_FOR_DEVICES_ING); + collection = new DeviceCollection(Resources.IDS_BT_BODY_AVAILABLE_DEVICES); this.Add(collection); } @@ -129,9 +142,27 @@ namespace SettingBluetooth collection.Title = title; } - public void AddDevice(string deviceName) + public void AddDevice(string deviceName) // BtDevice { collection.AddDevice(deviceName); } + + public void RemoveDevice(string deviceName) + { + collection.RemoveDevice(deviceName); + } + + public Device FindDevice(string deviceName) + { + foreach (Device device in collection) + { + if (device.Name == deviceName) + { + Log.Info(Program.LogTag, "Device(" + deviceName + ") found"); + return device; + } + } + return null; + } } } diff --git a/SettingBluetooth/SettingBluetooth/View/BtMainView.cs b/SettingBluetooth/SettingBluetooth/View/BtMainView.cs index 65a24d1..7ba8be0 100644 --- a/SettingBluetooth/SettingBluetooth/View/BtMainView.cs +++ b/SettingBluetooth/SettingBluetooth/View/BtMainView.cs @@ -18,42 +18,22 @@ namespace SettingBluetooth { static ContentPage mainPage; static View mainView; - static CollectionView deviceView = null; + static CollectionView pairedDeviceView = null; + static CollectionView searchedDeviceView = null; static Button scanButton = null; + static BtOperationState operationState; + static DeviceSource searchedDevice; + static DeviceSource pairedDevice; public BtMainView() : base() { } - public static void DeviceSelectionChanged(object obj, SelectionChangedEventArgs ev) + private static CollectionView CreateCollectionView(DeviceSource source, bool fixHeight = true) { - Log.Debug(Program.LogTag, "DeviceSelectionChanged called"); - - //SingleSelection Only have 1 or nil object in the list. - foreach (object item in ev.PreviousSelection) - { - if (item == null) break; - if (item is Device device) - { - device.Connected = false; - } - } - foreach (object item in ev.CurrentSelection) + var view = new CollectionView() { - if (item == null) break; - if (item is Device device) - { - device.Connected = true; - device.Registered = true; - } - } - } - - internal static void AddDeviceView(DeviceSource deviceSource) - { - deviceView = new CollectionView() - { - ItemsSource = deviceSource, + ItemsSource = source, ItemsLayouter = new LinearLayouter(), ItemTemplate = new DataTemplate(() => { @@ -66,6 +46,19 @@ namespace SettingBluetooth item.Icon.SetBinding(ImageView.ResourceUrlProperty, "ImageUrl"); item.Icon.WidthSpecification = 40; item.Icon.HeightSpecification = 40; + var detailButton = new Button // TODO: need to use other type instead of Button + { + Text = "i" + }; + detailButton.WidthSpecification = 40; + detailButton.Clicked += (obj, ev) => + { + Button button = (Button)obj; + var device = button.BindingContext as Device; + Log.Debug(Program.LogTag, "Button clicked. Name: " + device.Name); + // TODO: add BtDetailView with device + }; + item.Extra = detailButton; return item; }), @@ -84,66 +77,138 @@ namespace SettingBluetooth IsGrouped = true, ScrollingDirection = ScrollableBase.Direction.Vertical, WidthSpecification = LayoutParamPolicies.MatchParent, - HeightSpecification = LayoutParamPolicies.MatchParent, + //HeightSpecification = LayoutParamPolicies.MatchParent, SelectionMode = ItemSelectionMode.Single, }; - deviceView.SelectionChanged += DeviceSelectionChanged; - mainView.Add(deviceView); + if (fixHeight) // for searched view + { + view.HeightSpecification = LayoutParamPolicies.MatchParent; + } + view.SelectionChanged += DeviceController.DeviceViewSelectionChanged; + + return view; + } + + internal static void AddPairedDeviceView() + { + pairedDevice = new DeviceSource(); + pairedDeviceView = CreateCollectionView(pairedDevice, false); + pairedDevice.AddDevice("Paired device"); // temporary device + pairedDevice.UpdateTitle(Resources.IDS_BT_BODY_PAIRED_DEVICES); + mainView.Add(pairedDeviceView); } - internal static void AddScanButton() + internal static void AddSearchedDeviceView() { + searchedDevice = new DeviceSource(); + searchedDeviceView = CreateCollectionView(searchedDevice); + searchedDevice.AddDevice("No devices found"); // temporary device + mainView.Add(searchedDeviceView); + scanButton = new Button { - Text = Resources.IDS_BT_SK_STOP, - //WidthSpecification = 300, - //HeightSpecification = 80, - }; - scanButton.Clicked += (object obj, ClickedEventArgs ev) => - { - //Log.Debug(Program.LogTag, "scanButton clicked. isScanning: " + isScanning); - // check isScanning - // scan stop - //if (isScanning == true) - //{ - // BluetoothAdapter.StopDiscovery(); - //} - //else - //{ - // BluetoothAdapter.StartDiscovery(); - //} + Text = Resources.IDS_BT_SK_SCAN, }; - + scanButton.Clicked += AdapterController.ScanButtonClicked; mainView.Add(scanButton); } - internal static void UpdateScanButton(string text) + //internal static void AddDeviceView() + //{ + // AddPairedDeviceView(); + // AddSearchedDeviceView(); + //} + + internal static void UpdateSearchedViewTitle(string title) + { + searchedDevice.UpdateTitle(title); + } + + internal static void UpdateScanButtonText(string text) { scanButton.Text = text; } - internal static void RemoveDeviceView() + internal static void RemoveSearchedDeviceView() { - if (deviceView) + if (searchedDeviceView) { - mainView.Remove(deviceView); + mainView.Remove(searchedDeviceView); } - } - internal static void RemoveScanButton() - { if (scanButton) { mainView.Remove(scanButton); } } - protected override void OnCreate(string contentInfo, Window window) + internal static void RemoveAllView() + { + RemoveSearchedDeviceView(); + + if (pairedDeviceView) + { + mainView.Remove(pairedDeviceView); + } + } + + private static void BtModelOperationStateChanged(object obj, BtOperationStateChangedEventArgs ev) + { + Log.Debug(Program.LogTag, "BtModelOperationStateChanged. OperationState: " + ev.OperationState); + switch (ev.OperationState) + { + case BtOperationState.Deactivated: + RemoveAllView(); + break; + case BtOperationState.Deactivating: + break; + case BtOperationState.Activated: + AddPairedDeviceView(); + AddSearchedDeviceView(); + break; + case BtOperationState.Activating: + break; + case BtOperationState.Searching: + RemoveSearchedDeviceView(); + AddSearchedDeviceView(); + UpdateSearchedViewTitle(Resources.IDS_BT_BODY_SCANNING_FOR_DEVICES_ING); + UpdateScanButtonText(Resources.IDS_BT_SK_STOP); + break; + case BtOperationState.Searched: + UpdateSearchedViewTitle(Resources.IDS_BT_BODY_AVAILABLE_DEVICES); + UpdateScanButtonText(Resources.IDS_BT_SK_SCAN); + break; + case BtOperationState.Pairing: + break; + case BtOperationState.Connecting: + break; + } + } + + private static void BtModelDeviceChanged(object obj, BtDeviceChangedEventArgs ev) { - //window = NUIApplication.GetDefaultWindow(); - //window.BackgroundColor = Color.White; + Log.Debug(Program.LogTag, "BtModelDeviceChanged. Address: " + ev.btDevice.RemoteDeviceAddress + ", State: " + ev.btDevice.DeviceState); + if (ev.btDevice.DeviceState == BtDeviceState.Paired) + { + if (pairedDevice.FindDevice("Paired device") != null) + { + pairedDevice.RemoveDevice("Paired device"); + } + pairedDevice.AddDevice(ev.btDevice.RemoteDeviceAddress); + } + else if (ev.btDevice.DeviceState == BtDeviceState.Idle) + { + if (searchedDevice.FindDevice("No devices found") != null) + { + searchedDevice.RemoveDevice("No devices found"); + } + searchedDevice.AddDevice(ev.btDevice.RemoteDeviceAddress); + } + } + protected override void OnCreate(string contentInfo, Window window) + { var appBar = new AppBar() { Title = Resources.IDS_BT_BODY_BLUETOOTH, @@ -175,6 +240,9 @@ namespace SettingBluetooth onOffItem.Extra = onOffSwitch; mainView.Add(onOffItem); + BtModel.OperationStateChanged += BtModelOperationStateChanged; + BtModel.DeviceChanged += BtModelDeviceChanged; + mainPage = new ContentPage() { AppBar = appBar, diff --git a/SettingBluetooth/SettingView/SettingView.cs b/SettingBluetooth/SettingView/SettingView.cs index 06dee62..a8f7d79 100644 --- a/SettingBluetooth/SettingView/SettingView.cs +++ b/SettingBluetooth/SettingView/SettingView.cs @@ -44,7 +44,8 @@ namespace SettingView static void Main(string[] args) { var appCustomBorder = new SettingViewBorder(); - var app = new Program("", new Size2D(800, 400), new Position2D(300, 100), appCustomBorder); + //var app = new Program("", new Size2D(800, 400), new Position2D(300, 100), appCustomBorder); + var app = new Program("", new Size2D(1200, 800), new Position2D(300, 100), appCustomBorder); app.Run(args); } diff --git a/packaging/org.tizen.cssetting-bluetooth-1.0.0.tpk b/packaging/org.tizen.cssetting-bluetooth-1.0.0.tpk index f24c62472069bd8e6751d903fefcb46779055f63..2013b84c42959fb4df500847922fa9eb3ad7e180 100644 GIT binary patch delta 37983 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 BW{Cg* delta 36059 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 -- 2.34.1