From: nazib.ullah Date: Thu, 6 Oct 2016 10:00:39 +0000 (+0600) Subject: [TBT][tizen_3.0_wearable][gatt and d2d modules updated, info updated-popup added] X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=944d3ea2bb7ef01a34aad887397b4624b98e4aed;p=test%2Ftct%2Fnative%2Fbehavior.git [TBT][tizen_3.0_wearable][gatt and d2d modules updated, info updated-popup added] Change-Id: I62e176a3d6ca45f6a14c13efd1fbb1bbbac13682 --- diff --git a/release/binary-arm/org.tizen.tbtcoreapp-1.0.0-arm.tpk b/release/binary-arm/org.tizen.tbtcoreapp-1.0.0-arm.tpk index 83854ba..a6657d4 100644 Binary files a/release/binary-arm/org.tizen.tbtcoreapp-1.0.0-arm.tpk and b/release/binary-arm/org.tizen.tbtcoreapp-1.0.0-arm.tpk differ diff --git a/release/binary-x86/org.tizen.tbtcoreapp-1.0.0-i386.tpk b/release/binary-x86/org.tizen.tbtcoreapp-1.0.0-i386.tpk index d0622c8..0fd5514 100644 Binary files a/release/binary-x86/org.tizen.tbtcoreapp-1.0.0-i386.tpk and b/release/binary-x86/org.tizen.tbtcoreapp-1.0.0-i386.tpk differ diff --git a/tbtcoreapp/inc/utils/app_module_config.h b/tbtcoreapp/inc/utils/app_module_config.h index bca8a8b..9b7d290 100644 --- a/tbtcoreapp/inc/utils/app_module_config.h +++ b/tbtcoreapp/inc/utils/app_module_config.h @@ -41,9 +41,9 @@ #define TBT_MODULE_APP_BT_HDP #define TBT_MODULE_APP_BT_PBAP_ALL_VCARDS -//#define TBT_MODULE_BLE -//#define TBT_MODULE_BLE_GATT_CLIENT -//#define TBT_MODULE_BLE_GATT_SERVER +#define TBT_MODULE_BLE +#define TBT_MODULE_BLE_GATT_CLIENT +#define TBT_MODULE_BLE_GATT_SERVER #define TBT_MODULE_BT_CALLBACK_TEST #define TBT_MODULE_APP_BT_CALLBACK_CREATE_BOND_TEST diff --git a/tbtcoreapp/inc/utils/ui-utils.h b/tbtcoreapp/inc/utils/ui-utils.h index 02096fa..5e328b4 100644 --- a/tbtcoreapp/inc/utils/ui-utils.h +++ b/tbtcoreapp/inc/utils/ui-utils.h @@ -224,4 +224,10 @@ Evas_Object *ui_utils_progressbar_add(void *data, Evas_Object *parent, void* voi * @since_tizen 2.3 * */ void ui_utils_show_toast(const char* message, const Evas_Object* data, float timeout); + +/* + * @brief Pop up Manual Instruction Button + * @since_tizen 3.0 + * */ +void ui_utils_guide_instruction_popup_button(const Evas_Object* view, const char* txtInstruction); #endif /* __UI_UTILS_H__ */ diff --git a/tbtcoreapp/res/edje/2.3.1/wearable_360_360/d2d_viewer.edc b/tbtcoreapp/res/edje/2.3.1/wearable_360_360/d2d_viewer.edc new file mode 100644 index 0000000..4afeab6 --- /dev/null +++ b/tbtcoreapp/res/edje/2.3.1/wearable_360_360/d2d_viewer.edc @@ -0,0 +1,77 @@ +/* + * Copyright (c) 2014 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. + */ + +#define TEXT_HEIGHT 0.08 + +collections +{ + base_scale: 1.8; + group + { + name: "d2d_viewer"; + parts{ + part{ + name: "base"; + type: RECT; + description{ + state: "default" 0.0; + visible: 1; + color: 0 0 0 255; + } + } + part{ + name: "list_container"; + type: SWALLOW; + description{ + state: "default" 0.0; + align: 0.0 0.0; + visible: 1; + rel1 {relative: 0.0 0.0; } + rel2 {relative: 1.0 0.6; } + fixed: 1 1; + } + } + + part{ + name: "others"; + type: SWALLOW; + description{ + state: "default" 0.0; + align: 0.0 0.0; + visible: 1; + rel1 {relative: 0.0 0.6; } + rel2 {relative: 1.0 0.8; } + fixed: 1 1; + } + } + + part { name: "wearable_toolbar"; + type: SWALLOW; + description { + state: "default" 0.0; + rel1 { + relative: 0.0 1.0; + } + rel2 { + relative: 1.0 1.0; + } + visible: 1; + fixed: 1 1; + } + } + } + } +} diff --git a/tbtcoreapp/src/model/tbt-list.c b/tbtcoreapp/src/model/tbt-list.c index 4d7f72d..e4876f7 100644 --- a/tbtcoreapp/src/model/tbt-list.c +++ b/tbtcoreapp/src/model/tbt-list.c @@ -45,7 +45,8 @@ static tbt_info tbtapps[] = .parent = "Camera", .apptype = TBT_APP_CAMERA_CAPTURE, .icon_name = "dummy", - .info = "Capture and show image from camera", + .info = "1. Press Capture to capture a picture.
" + "2. Check the captured picture which is shown automatically.", .result = 0, .required_features_count = 1, .features_required = { 0 } @@ -62,7 +63,9 @@ static tbt_info tbtapps[] = .apptype = TBT_APP_CAMERA_RECORD, .icon_name = "dummy", .file_name = "video/sampleMPEG4.mp4", - .info = "Record and play
a video", + .info = "1. Press Record button to record the video.
" + "2. Press Stop to stop the recording.
" + "3. Check the recorded video clip which is shown automatically.", .result = 0, .required_features_count = 1, .features_required = {0 } @@ -77,7 +80,8 @@ static tbt_info tbtapps[] = .parent = "Camera", .apptype = TBT_APP_CAMERA_FACE_DETECT, .icon_name = "dummy", - .info = "Detect face from
camera preview", + .info = "1. Camera preview starts automatically.
" + "2. camera can detect face and “zoom in” and “zoom out” is performed automatically", .result = 0, .required_features_count = 2, .features_required = {0, 3} @@ -92,7 +96,8 @@ static tbt_info tbtapps[] = .parent = "Camera", .apptype = TBT_APP_CAMERA_HDR_CAPTURE, .icon_name = "dummy", - .info = "Capture HDR image and
show from Camera", + .info = "1. Press Capture to capture a picture.
" + "2. Check the captured picture which is shown automatically.", .result = 0, .required_features_count = 2, .features_required = {0, 3} @@ -110,7 +115,10 @@ static tbt_info tbtapps[] = .apptype = TBT_APP_SOUND_AUDIO, .icon_name = "dummy", .file_name = "sounds/SampleMP3.mp3", - .info = "Play mp3 audio file", + .info = "1. Press Play to start music.
" + "2. Check the sound output to the speaker.
" + "3. Press Stop to stop the music.
" + "4. Press Pause to pause the music", .result = 0 }, #endif @@ -124,7 +132,11 @@ static tbt_info tbtapps[] = .apptype = TBT_APP_SOUND_VOLUME, .icon_name = "dummy", .file_name = "sounds/SampleMP3.mp3", - .info = "Play mp3 audio file and change volume", + .info = "1. Press Play to start music.
" + "2. Check the sound output to the speaker.
" + "3. Press Stop to stop the music.
" + "4. Press Pause to pause the music" + "5. Slide the Slider to change the volume level.", .result = 0 }, #endif @@ -139,7 +151,7 @@ static tbt_info tbtapps[] = .parent = "GPS", .apptype = TBT_APP_GPS_GPS, .icon_name = "dummy", - .info = "Show GPS coordinate data", + .info = "Shows GPS coordinate data", .result = 0, .required_features_count = 1, .features_required = {11} @@ -147,7 +159,6 @@ static tbt_info tbtapps[] = #endif #endif - #ifdef TBT_MODULE_BLE #ifdef TBT_MODULE_BLE_GATT_CLIENT //Bluetooth LE Gatt Client @@ -156,10 +167,25 @@ static tbt_info tbtapps[] = .parent = "Bluetooth LE", .apptype = TBT_APP_BLE_GATT_CLIENT, .icon_name = "dummy", - .info = "Bluetooth LE Gatt Cleint", + .info = "1. Press Discover Button to Start discovering Gatt Server.
" + "2. Select Gatt server ID from discovered list to connect it.
" + "3. After successfully connected, two services Link loss service and Battery service will be shown.
" + "4. select Link loss service, a characteristic will be shown
" + "5. select characteristic, then press Read button. Get value will be shown and Read request will be shown in Gatt Server end.
" + "6. Press Write button, value written to Gatt Server and it will be shown there.
" + "7. Press hardware back button, services list will be shown again
" + "8. Select Battery service, a characteristic will be shown
" + "9. Select characteristic, then press Read button. Get value will be shown and Read request will be shown in Gatt Server end.
" + "10. Press Expand button, Descriptor list will be shown under battery characteristic.
" + "11. Select descriptor then press Read button, Get value will be shown and Read request will be shown in Gatt Server end.
" + "12. Press Write button, value written to Gatt Server and it will be shown there.
" + "13. Press HW Back button, services list will be shown again
" + "14. Select Battery service, a characteristic will be shown
" + "15. Press Notify button at Gatt Server end, changed value will be shown in Gatt Client end.
" + "16. Press Disconnect button to Disconnect from Server.
", .result = 0, - .required_features_count = 2, - .features_required = {16,65} + .required_features_count = 1, + .features_required = {16} }, #endif #ifdef TBT_MODULE_BLE_GATT_SERVER @@ -169,15 +195,15 @@ static tbt_info tbtapps[] = .parent = "Bluetooth LE", .apptype = TBT_APP_BLE_GATT_SERVER, .icon_name = "dummy", - .info = "Bluetooth LE Gatt Cleint", + .info = "1. Press Start Server button to Start Gatt Server.
" + "2. Follow the Steps in Gatt Client module.
", .result = 0, - .required_features_count = 2, - .features_required = {16,65} + .required_features_count = 1, + .features_required = {16} }, #endif #endif - #ifdef TBT_MODULE_BT #ifdef TBT_MODULE_APP_BT_CLIENT_PAIRED @@ -187,7 +213,12 @@ static tbt_info tbtapps[] = .parent = "Bluetooth", .apptype = TBT_APP_BT_CLIENT_PAIRED, .icon_name = "dummy", - .info = "Pair with bluetooth server", + .info = "1. If Bluetooth is off, turn on manually.
" + "2. Run Server Paired module.
" + "3. Press Discover and a list of available device will be shown.
" + "4. Select the Server Paired device
" + "5. A Connection popup will be shown.
" + "6. Press Confirm to make pair
", .result = 0, .required_features_count = 1, .features_required = {16} @@ -218,7 +249,11 @@ static tbt_info tbtapps[] = .parent = "Bluetooth", .apptype = TBT_APP_BT_SERVER_PAIRED, .icon_name = "dummy", - .info = "Pair with bluetooth client", + .info = "1. If Bluetooth is off, turn on manually.
" + "2. press Set Visible.
" + "3. device will be shown in Client end.
" + "4. Connect from client end.
" + "5. A connection popup will be shown, press OK", .result = 0, .required_features_count = 1, .features_required = {16} @@ -233,7 +268,10 @@ static tbt_info tbtapps[] = .parent = "Bluetooth", .apptype = TBT_APP_BT_OPP_SERVER, .icon_name = "dummy", - .info = "Pair with bluetooth OPP client", + .info = "1. Press Bluetooth On to activate Bluetooth on the device and the Bluetooth application of the device will be opened. Turn on Bluetooth from there Select the desired device and the devices will be paired.
" + "2. Press Set Visible and wait for the connection pop-up message.
" + "3. Press Confirm button to accept connection from client.
" + "4. When client is trying to send a file press Accept/Reject button to accept/reject file sending request.", .result = 0, .required_features_count = 2, .features_required = {16,73} @@ -248,7 +286,12 @@ static tbt_info tbtapps[] = .parent = "Bluetooth", .apptype = TBT_APP_BT_OPP_CLIENT, .icon_name = "dummy", - .info = "Transfer data using bluetooth OPP", + .info = "1. Press Bluetooth On to activate Bluetooth on the device and the Bluetooth application of the device will be opened. Turn on Bluetooth from there Select the desired device and the devices will be paired.
" + "2. Press button Discover to see the list of Bluetooth devices.
" + "3. Select the desired device from the list.
" + "4. Press button Send File.
" + "5. If you want to cancel file sending after pressing Send File just press Cancel Transfer button.
" + "6. Check if any image file is pushed to the other device.", .result = 0, .file_name = "images/giraffe_800_1179.jpg", .required_features_count = 2, @@ -265,7 +308,11 @@ static tbt_info tbtapps[] = .apptype = TBT_APP_BT_AUDIO_CONNECT_HANDSFREE, .icon_name = "dummy", .file_name = "sounds/SampleMP3.mp3", - .info = "Connect to a bluetooth
audio profile using handsfree service.", + .info = "1. If Bluetooth is off, turn on manually
" + "2. Press button Discover to see the list of Bluetooth Audio devices.
" + "3. Select the desired device from the list.
" + "4. Press Connect Audio. button
" + "5. Now make a call and test if sound is heard in the audio device", .result = 0, .required_features_count = 2, .features_required = {16, 69} @@ -282,7 +329,11 @@ static tbt_info tbtapps[] = .apptype = TBT_APP_BT_AUDIO_CONNECT, .icon_name = "dummy", .file_name = "sounds/SampleMP3.mp3", - .info = "Connect to a bluetooth
audio profile using a2dp service.", + .info = "1. If Bluetooth is off, turn on manually.
" + "2. Press Discover button to see the list of Bluetooth Audio devices.
" + "3. Select the desired device from the list.
" + "4. Press Connect Audio. button
" + "5. Now you can hear the key pressing sound in Headset.", .result = 0, .required_features_count = 2, .features_required = {16, 67} @@ -298,7 +349,10 @@ static tbt_info tbtapps[] = .parent = "Bluetooth", .apptype = TBT_APP_BT_AUTHORIZATION, .icon_name = "dummy", - .info = "Authorize a paired
bluetooth device", + .info = "1. If Bluetooth is off, turn on manually.
" + "2. Press Discover to see the list of Bluetooth devices.
" + "3. Select the desired device from the list.
" + "4. Press Authorize button and the desired device will be Authorized.", .result = 0, .required_features_count = 1, .features_required = {16} @@ -313,7 +367,10 @@ static tbt_info tbtapps[] = .parent = "Bluetooth", .apptype = TBT_APP_BT_PROFILES, .icon_name = "dummy", - .info = "Find profile of an audio
connected paired device", + .info = "1. If Bluetooth is off, turn on manually.
" + "2. Press Discover to see the list of Bluetooth Audio devices.
" + "3. Select an audio profile enabled device like, Bluetooth Headset from the list for pairing.
" + "4. After successful pairing, connected profiles will be shown.", .file_name = "sounds/SampleMP3.mp3", .result = 0, .required_features_count = 1, @@ -329,7 +386,10 @@ static tbt_info tbtapps[] = .parent = "Bluetooth", .apptype = TBT_APP_BT_SDP, .icon_name = "dummy", - .info = "Find Service provided by bluetooth device", + .info = "1. If Bluetooth is off, turn on manually.
" + "2. Press button Discover to see the list of Bluetooth devices.
" + "3. Select the desire device to make pair with that device.
" + "4. After paring is completed press Connected Services, Bluetooth services will be shown in a list.", .result = 0, .required_features_count = 1, .features_required = {16} @@ -344,7 +404,11 @@ static tbt_info tbtapps[] = .parent = "Bluetooth", .apptype = TBT_APP_BT_CLIENT_SOCKET, .icon_name = "dummy", - .info = "Pair with bluetooth socket server", + .info = "1. If Bluetooth is off, turn on manually.
" + "2. Press Discover to see the list of Bluetooth devices.
" + "3. Select the desired device from the list.
" + "4. press Send Data button.
" + "5. check the data is sent to Server Socket end", .result = 0, .required_features_count = 1, .features_required = {16} @@ -359,7 +423,10 @@ static tbt_info tbtapps[] = .parent = "Bluetooth", .apptype = TBT_APP_BT_SERVER_SOCKET, .icon_name = "dummy", - .info = "Pair with bluetooth socket client", + .info = "1. If Bluetooth is off, turn on manually.
" + "2. Press Set Visible if bluetooth is not visible.
" + "3. Run Client Socket module.
" + "4. Hello this is TBT message will be shown", .result = 0, .required_features_count = 1, .features_required = {16} @@ -374,7 +441,14 @@ static tbt_info tbtapps[] = .parent = "Bluetooth", .apptype = TBT_APP_BT_HID_CONNECT, .icon_name = "dummy", - .info = "Connect with HID device", + .info = "1. If Bluetooth is off, turn on manually.
" + "2. Press Discover to see the list of Bluetooth HID devices.
" + "3. Select the desired device from the list and device will be paired.
" + "4. Press Connect HID button.
" + "5. If you are trying to connect a keyboard a pop-up will appear, press the same code on the keyboard and press enter.
" + "6. HID connected will be written on the label, just above the device list
" + "7. Go to Default Messaging Application and try to write message from the HID keyboard.
" + "8. Input from keyboard will be shown.", .result = 0, .required_features_count = 2, .features_required = {16,72}, @@ -419,27 +493,16 @@ static tbt_info tbtapps[] = .parent = "Bluetooth", .apptype = TBT_APP_BT_HDP, .icon_name = "dummy", - .info = "Bluetooth HDP", + .info = "1. If Bluetooth is off, turn on manually.
" + "2. Press Discover to see the list of devices.
" + "3. Select the desired device from the list.
" + "4. After pairing press Connect HDP to connect to health device.
" + "5. Press Get Data and received data will be shown", .result = 0, .required_features_count = 2, .features_required = {16, 85} }, #endif - #ifdef TBT_MODULE_APP_BT_PBAP_ALL_VCARDS - - // PBAP All Vcards - { - .name = "PBAP All Vcards", - .parent = "Bluetooth", - .apptype = TBT_APP_BT_PBAP_ALL_VCARDS, - .icon_name = "dummy", - .info = "Get All Phonebook vcards from PBAP Server", - .result = 0, - .required_features_count = 2, - .features_required = {16, 67} - - }, - #endif #endif @@ -486,7 +549,11 @@ static tbt_info tbtapps[] = .parent = "Bluetooth Callback Test", .apptype = TBT_APP_BT_CALLBACK_CREATE_BOND_TEST, .icon_name = "dummy", - .info = "Instructions:
Test Type One
1.Bluetooth On
2. Create Bonding callback Invoked

Test Type Two
1. Bluetooth Off
2. Correct Error Message Displayed
", + .info = "Test Type One
1.Bluetooth On
" + "2. Create Bonding callback Invoked
" + "
Test Type Two
" + "1. Bluetooth Off
" + "2. Correct Error Message Displayed
", .result = 0, .required_features_count = 1, .features_required = {16} @@ -501,7 +568,12 @@ static tbt_info tbtapps[] = .parent = "Bluetooth Callback Test", .apptype = TBT_APP_BT_CALLBACK_DESTROY_BOND_TEST, .icon_name = "dummy", - .info = "Instructions:
Test Type One
1.Bluetooth On
2. Destroy Bonding callback Invoked

Test Type Two
1. Bluetooth Off
2. Correct Error Message Displayed", + .info = "Test Type One
" + "1.Bluetooth On
" + "2. Destroy Bonding callback Invoked
" + "
Test Type Two
" + "1. Bluetooth Off
" + "2. Correct Error Message Displayed", .result = 0, .required_features_count = 1, .features_required = {16} @@ -516,7 +588,12 @@ static tbt_info tbtapps[] = .parent = "Bluetooth Callback Test", .apptype = TBT_APP_BT_CALLBACK_DISCOVER_DEVICES_TEST, .icon_name = "dummy", - .info = "Instructions:
Test Type One
1.Bluetooth On
2. Device Discovery callback Invoked

Test Type Two
1. Bluetooth Off
2. Correct Error Message Displayed", + .info = "Test Type One
" + "1.Bluetooth On
" + "2. Device Discovery callback Invoked
" + "
Test Type Two
" + "1. Bluetooth Off
" + "2. Correct Error Message Displayed", .result = 0, .required_features_count = 1, .features_required = {16} @@ -531,7 +608,12 @@ static tbt_info tbtapps[] = .parent = "Bluetooth Callback Test", .apptype = TBT_APP_BT_CALLBACK_GET_DEVICE_TEST, .icon_name = "dummy", - .info = "Instructions:
Test Type One
1.Bluetooth On
2. Scanned callback Invoked

Test Type Two
1. Bluetooth Off
2. Correct Error Message Displayed", + .info = "Test Type One
" + "1.Bluetooth On
" + "2. Scanned callback Invoked
" + "
Test Type Two
" + "1. Bluetooth Off
" + "2. Correct Error Message Displayed", .result = 0, .required_features_count = 1, .features_required = {16} @@ -546,7 +628,12 @@ static tbt_info tbtapps[] = .parent = "Bluetooth Callback Test", .apptype = TBT_APP_BT_CALLBACK_SET_NAME_TEST, .icon_name = "dummy", - .info = "Instructions:
Test Type One
1.Bluetooth On
2. Name Changed callback Invoked

Test Type Two
1. Bluetooth Off
2. Correct Error Message Displayed", + .info = "Test Type One
" + "1.Bluetooth On
" + "2. Name Changed callback Invoked
" + "
Test Type Two
" + "1. Bluetooth Off
" + "2. Correct Error Message Displayed", .result = 0, .required_features_count = 1, .features_required = {16} @@ -561,7 +648,7 @@ static tbt_info tbtapps[] = .parent = "Bluetooth Callback Test", .apptype = TBT_APP_BT_CALLBACK_ADD_ADVERTISING_SERVICE_UUID_TEST, .icon_name = "dummy", - .info = "Instructions:
Correct Error Message Displayed

NOTE: SEE INFO", + .info = "Correct Error Message Displayed
", .result = 0, .required_features_count = 1, .features_required = {16} @@ -578,7 +665,8 @@ static tbt_info tbtapps[] = .parent = "Wifi", .apptype = TBT_APP_WIFI_WIFI, .icon_name = "dummy", - .info = "Switch wifi On and Off", + .info = "1. Press Wifi On to enable Wifi
" + "2. Press Wifi Off to disable Wifi", .result = 0, .required_features_count = 1, .features_required = {24} @@ -628,7 +716,11 @@ static tbt_info tbtapps[] = .parent = "NFC", .apptype = TBT_APP_NFC_TAG, .icon_name = "dummy", - .info = "Test NFC tag", + .info = "1. Take the device to a NFC tag
" + "2. A list will appear showing information about tag type, NDEF support, NDEF message size, maximum size of NDEF message, key, value, record type, record etc.
" + "3. Select the tab Write and take the device to a NFC tag
" + "4. Then a string of Text type will be written in the NFC tag and a success message will be shown with written message.
" + "5. If device is removed from tag then Device Detached will be shown", .result = 0, .required_features_count = 2, .features_required = {17,77} @@ -644,7 +736,10 @@ static tbt_info tbtapps[] = .parent = "NFC", .apptype = TBT_APP_NFC_P2P, .icon_name = "dummy", - .info = "Test NFC P2P", + .info = "1. Take two NFC supported devices and switch on NFC in both
" + "2. Select NFC P2P from the test case in two devices and click Server in one device and Client in other device
" + "3. Touch the back of two devices, Server TC will output Data Received Successfully along with received data and Client TC will output Data Sent successfully.
" + "4. If you detach devices it'll show Device Detached", .result = 0, .required_features_count = 2, .features_required = {17,76} @@ -666,19 +761,6 @@ static tbt_info tbtapps[] = .features_required = {17,81} }, #endif - #ifdef TBT_MODULE_APP_NFC_ESE - // NFC ESE Test - { - .name = "NFC ESE", - .parent = "NFC", - .apptype = TBT_APP_NFC_ESE, - .icon_name = "dummy", - .info = "Test NFC HCE ESE card emulation", - .result = 0, - .required_features_count = 2, - .features_required = {17,81} - }, - #endif #endif #ifdef TBT_MODULE_DISPLAY @@ -720,7 +802,7 @@ static tbt_info tbtapps[] = .parent = "Input Device", .apptype = TBT_APP_IDEV_NUM_KEYPAD, .icon_name = "dummy", - .info = "Input using number
keyboard", + .info = "Input using number keyboard", .result = 0 }, #endif @@ -733,7 +815,7 @@ static tbt_info tbtapps[] = .parent = "Input Device", .apptype = TBT_APP_IDEV_PH_NUM_KEYPAD, .icon_name = "dummy", - .info = "Input using phone
number keyboard", + .info = "Input using phone number keyboard", .result = 0 }, #endif @@ -746,7 +828,7 @@ static tbt_info tbtapps[] = .parent = "Input Device", .apptype = TBT_APP_IDEV_IP_KEYPAD, .icon_name = "dummy", - .info = "Input using IP
keyboard", + .info = "Input using IP keyboard", .result = 0 }, #endif @@ -763,7 +845,9 @@ static tbt_info tbtapps[] = .apptype = TBT_APP_LOCAL_MPEG4, .icon_name = "dummy", .file_name = "video/sampleMPEG4.mp4", - .info = "Play mpeg4 video
file format", + .info = "1. Press Play button to Play Mpeg4 video file" + "2. Press Pause to pause the video." + "3. Press Stop to stop the video.", .result = 0 }, #endif @@ -777,7 +861,9 @@ static tbt_info tbtapps[] = .apptype = TBT_APP_LOCAL_H263, .icon_name = "dummy", .file_name = "video/sampleH263.3gp", - .info = "Play H263 video
file format", + .info = "1. Press Play button to Play H263 video file" + "2. Press Pause to pause the video." + "3. Press Stop to stop the video.", .result = 0 }, #endif @@ -791,7 +877,9 @@ static tbt_info tbtapps[] = .apptype = TBT_APP_LOCAL_H264, .icon_name = "dummy", .file_name = "video/sampleH264.mp4", - .info = "Play H264 video
file format", + .info = "1. Press Play button to Play H264 video file" + "2. Press Pause to pause the video." + "3. Press Stop to stop the video.", .result = 0 }, #endif @@ -864,7 +952,8 @@ static tbt_info tbtapps[] = .parent = "Data Control", .apptype = TBT_APP_DC_INSERT, .icon_name = "dummy", - .info = "Insert data in SQLite", + .info = "1. Press Start button.
" + "2. Data Insertion Information will be shown.", .result = 0 }, #endif @@ -877,7 +966,8 @@ static tbt_info tbtapps[] = .parent = "Data Control", .apptype = TBT_APP_DC_DELETE, .icon_name = "dummy", - .info = "Delete data from SQLite", + .info = "1. Press Start button.
" + "2. Data deletion information will be shown.", .result = 0 }, #endif @@ -890,7 +980,8 @@ static tbt_info tbtapps[] = .parent = "Data Control", .apptype = TBT_APP_DC_UPDATE, .icon_name = "dummy", - .info = "Update data in SQLite", + .info = "1. Press Start button.
" + "2. Data update information will be shown.", .result = 0 }, #endif @@ -903,7 +994,8 @@ static tbt_info tbtapps[] = .parent = "Data Control", .apptype = TBT_APP_DC_SELECT, .icon_name = "dummy", - .info = "Select data from SQLite", + .info = "1. Press Start button.
" + "2. Data selection information will be shown.", .result = 0 }, #endif @@ -918,7 +1010,11 @@ static tbt_info tbtapps[] = .icon_name = "dummy", .layout_file = "", .layout_group = "", - .info = "Insert/Update/Delete using
SQLite", + .info = "1. Press Start button.
" + "2. It will show the list of row id of the selected items.
" + "3. Press First to get the row id of the first selected item.
" + "4. Press Last to get data t the row id of the last selected item.
" + "6. Press Next and Prev to navigate between the selected items.", .result = 0 }, #endif @@ -931,7 +1027,8 @@ static tbt_info tbtapps[] = .parent = "Data Control", .apptype = TBT_APP_DC_MAP, .icon_name = "dummy", - .info = "Select data from SQLite
into map data structure", + .info = "1. Press Start button
" + "2. Map data value will be shown.", .result = 0 }, #endif @@ -946,7 +1043,10 @@ static tbt_info tbtapps[] = .parent = "Pick/View", .apptype = TBT_APP_PICK_VIEW_APP, .icon_name = "dummy", - .info = "Launch other application
in view mode", + .info = "1. Press View UI button.
" + "2. If UI is shown, Click item and press Return button.
" + "3. Then press View Service button.
" + "4. App launched successfully Message will be shown.", .result = 0 }, #endif @@ -959,7 +1059,10 @@ static tbt_info tbtapps[] = .parent = "Pick/View", .apptype = TBT_APP_PICK_PICK_APP, .icon_name = "dummy", - .info = "Launch other application
in pick mode", + .info = "1. Press Single and select single item and press Select Single.
" + "2. Single data will be shown.
" + "3. Press Multiple and select multiple items and press Select Multiple.
" + "4. Multiple data will be shown.", .result = 0 }, #endif @@ -1074,7 +1177,14 @@ static tbt_info tbtapps[] = .parent = "Sensor", .apptype = TBT_APP_SENSOR_ACCELEROMETER, .icon_name = "dummy", - .info = "Test accelerometer sensor", + .info = "1. Place device in a flat surface facing upside, Z axis value will be ~9.8 other axis value will be ~0.
" + "2. Rotate device upside down, Z axis value will be ~-9.8 other axis value will be ~0.
" + "3. Place device on Left edge, X axis value will be ~9.8 other axis value will be ~0.
" + "4. Place device on Right edge, X axis value will be ~-9.8 other axis value will be ~0.
" + "5. Place device on top edge, Y axis value will be ~-9.8 other axis value will be ~0.
" + "6. Place device on bottom edge, Y axis value will be ~9.8 other axis value will be ~0.
" + "7. with the rotation of device Cube will rotate in same orientation.
" + "7. Min-Max Value range will be shown in top of axis info", .result = 0, .sensortype = SENSOR_ACCELEROMETER, .units = SENSOR_UNIT_METRE_PER_SECOND_SQUARED, @@ -1096,7 +1206,10 @@ static tbt_info tbtapps[] = .parent = "Sensor", .apptype = TBT_APP_SENSOR_GYROSCOPE, .icon_name = "dummy", - .info = "Test gyroscope sensor", + .info = "1. If the device is stable, then the background of the cube is black." + "2. Move the device to the direction of the cube movement and background color will be blue." + "3. Move the device to the opposite direction of the cube movement and background color will be red." + "4. Press Next button to change direction of cube movement and do the previous steps accordingly.", .result = 0, .sensortype = SENSOR_GYROSCOPE, .units = SENSOR_UNIT_DEGREE_PER_SECOND, @@ -1118,7 +1231,9 @@ static tbt_info tbtapps[] = .parent = "Sensor", .apptype = TBT_APP_SENSOR_PROXIMITY, .icon_name = "dummy", - .info = "Test proximity sensor", + .info = "1. A non glowing bulb will be shown.
" + "2. Cover the upper portion of the device with hand and an image showing a glowing bulb will appear.
" + "3. If the hand is moved away, the previous image will appear again.", .result = -1, .file_name = "images/lighton.png", .extra_file_name = "images/lightoff.png", @@ -1140,7 +1255,9 @@ static tbt_info tbtapps[] = .parent = "Sensor", .apptype = TBT_APP_SENSOR_LIGHT, .icon_name = "dummy", - .info = "Test light sensor", + .info = "1. Move the device near to the light source.
" + "2. The color of the object turns into more intense red according to the intensity of light.
" + "3. Information of Light intensity will be shown in top.", .result = -1, .file_name = "images/lighton.png", .extra_file_name = "images/lightoff.png", @@ -1160,7 +1277,8 @@ static tbt_info tbtapps[] = .parent = "Sensor", .apptype = TBT_APP_SENSOR_ULTRA_VIOLET, .icon_name = "dummy", - .info = "Test ultraviolet sensor", + .info = "1. Move the device to the ultraviolet light source.
" + "2. The color of the object turns into more intense violet according to the intensity of ultraviolet light.", .result = -1, .sensor_response_interval = 100, .sensortype = SENSOR_ULTRAVIOLET, @@ -1178,7 +1296,8 @@ static tbt_info tbtapps[] = .parent = "Sensor", .apptype = TBT_APP_SENSOR_PRESSURE, .icon_name = "dummy", - .info = "Test pressure sensor", + .info = "1. Supported Air pressure range will be shown
" + "2. Current Air pressure will be shown", .result = -1, .sensor_response_interval = 100, .sensortype = SENSOR_PRESSURE, @@ -1200,7 +1319,8 @@ static tbt_info tbtapps[] = .parent = "Sensor", .apptype = TBT_APP_SENSOR_MAGNATOMETER, .icon_name = "dummy", - .info = "Test magnatic sensor", + .info = "1. Move device in all possible direction.
" + "2. The value of X, Y, and Z component of earth magnetic field's change will be shown.", .value_names = axes, .value_count = 3, .result = -1, @@ -1358,7 +1478,7 @@ static tbt_info tbtapps[] = .parent = "UI Test", .apptype = TBT_APP_UI_ALPHA, .icon_name = "dummy", - .info = "Change alpha value", + .info = "A rectangle with Changing alpha value will be shown", .result = 0 }, #endif @@ -1374,7 +1494,11 @@ static tbt_info tbtapps[] = .parent = "EFL/Event", .apptype = TBT_APP_TOUCH_TOUCH, .icon_name = "dummy", - .info = "Test touch performance
and callbacks.", + .info = "1. Touch and drag to draw random curves on the screen.
" + "2. Check that the first press is green.
" + "3. Check that the touch-drag is blue.
" + "4. Check that the release location is red.
" + "5. Check the touch point coordinate will be shown in top.
", .result = 0 }, #endif @@ -1404,7 +1528,8 @@ static tbt_info tbtapps[] = .parent = "EFL/Event", .apptype = TBT_APP_EVENT_VIEW, .icon_name = "dummy", - .info = "Check Tizen event
callbacks for orientation,
locale and lanuage change.", + .info = "1. Change device language from Settings, Language and region change information will be shown.
" + "2. Change device orientation, Information of changed orientation will be shown.", .result = 0 }, #endif @@ -1419,7 +1544,12 @@ static tbt_info tbtapps[] = .parent = "EFL/Event", .apptype = TBT_APP_EFL_CALLBACK, .icon_name = "dummy", - .info = "Check callback add/delete.
Press HW Back button
to check whether it works
or not.", + .info = "1. Press the Hardware Back Button and check whether the back button callback is detected.
" + "2. Press Delete Callback button and the callback will be deleted.
" + "3. Press the Hardware Back Button and check, there is no back button callback is detected.
" + "4. Then press button Add Callback to add a new callback.
" + "5. Then again press the Hardware Back Button and check whether the back button callback is detected.
" + "4. You must press Pass or Fail button to exit from the test.", .result = 0, .required_features_count = 0 }, @@ -1436,7 +1566,13 @@ static tbt_info tbtapps[] = .parent = "IME", .apptype = TBT_APP_IME_ALPHABATIC, .icon_name = "dummy", - .info = "Check custom IME for TBT.", + .info = "1. Set Default keyboard to TBT keyboard from Settings.
" + "2. An Alphabetic keyboard will be shown and ELM_INPUT_PANEL_LANG_AUTOMATIC will be shown at the bottom key.
" + "3. Press Alphabetic keys then corresponding alphabets will be written in entry field.
" + "5. Press BACK key to remove one character at a time from entry field.
" + "6. Press Prid On key, then abcd will be written in entry field.
" + "7. Press Prid Off to remove abcd from entry field.
" + "8. Press Spc key to make a space character in entry field.", .result = 0, .required_features_count = 0 }, @@ -1449,7 +1585,12 @@ static tbt_info tbtapps[] = .parent = "IME", .apptype = TBT_APP_IME_NUMERIC, .icon_name = "dummy", - .info = "Check custom IME for TBT.", + .info = "1. Set Default keyboard to TBT keyboard from Settings.
" + "2. An Numeric keyboard will be shown and ELM_INPUT_PANEL_LANG_AUTOMATIC will be shown at the bottom key.
" + "3. Press Numeric keys then corresponding numerics will be written in entry field.
" + "4. Press BACK key to remove one character at a time from entry field.
" + "5. Press DS key to delete character under cursor from entry field.
" + "6. Press Spc key to make a space character in entry field.", .result = 0, .required_features_count = 0 }, @@ -1462,7 +1603,10 @@ static tbt_info tbtapps[] = .parent = "IME", .apptype = TBT_APP_IME_EVENT, .icon_name = "dummy", - .info = "Check custom IME for TBT.", + .info = "1. Set Default keyboard to TBT keyboard from Settings.
" + "2. Change Language from Settings > Language and input > Display language.
" + "3. Return back to IME Events module.
" + "4. The text of the key will be changed as the language changed.", .result = 0, .required_features_count = 0 }, @@ -1475,7 +1619,8 @@ static tbt_info tbtapps[] = .parent = "IME", .apptype = TBT_APP_IME_CONTEXT_GET, .icon_name = "dummy", - .info = "Check custom IME for TBT.", + .info = "1. Set Default keyboard to TBT keyboard from Settings.
" + "2. A keyboard with Pass text to all Keys will be shown", .result = 0, .required_features_count = 0 }, @@ -1491,7 +1636,8 @@ static tbt_info tbtapps[] = .parent = "WIDGET", .apptype = TBT_APP_WIDGET, .icon_name = "dummy", - .info = "Check WIDGET for TBT.", + .info = "1. Press button View Widget UI.
" + "2. A Widget UI written Hello widget will be shown", .result = 0, .required_features_count = 0 }, @@ -1507,7 +1653,11 @@ static tbt_info tbtapps[] = .parent = "EFL/Event", .apptype = TBT_APP_SHORTCUT, .icon_name = "dummy", - .info = "Create shortcut in
home screen.
Check SHORTCUT API", + .info = "1. Press Add Shortcut button.
" + "2. Check created shortcut in Homescreen.
" + "3. Return back to module.
" + "4. Check Allow duplicate, and press Add Shortcut button." + "5. A duplicate shortcut will be created in Homescreen", .result = 0, .required_features_count = 0 }, @@ -1540,7 +1690,14 @@ static tbt_info tbtapps[] = .parent = "Push Service", .apptype = TBT_APP_PUSH_SERVICE, .icon_name = "dummy", - .info = "Test push service.
Active INTERNET
connection required.", + .info = "1. Press Start button to start the push service and a successful response will be displayed.
" + "2. Then long press the Home button and clear the application instance.
" + "3. After a few moments, there will a notification.
" + "4. Click on the notification and the message will be shown.
" + "5. Secondly, Press button Start to start the push service.
" + "6. Press button Message.
" + "7. After a few moments a message will be shown.
" + "8. Press button Disconnect to Disconnect Push Service", .result = 0, .required_features_count = 1, .features_required = {19} @@ -1549,124 +1706,23 @@ static tbt_info tbtapps[] = #endif #ifdef TBT_MODULE_RUNTIME - #ifdef TBT_MODULE_APP_AUDIO_JACK - - //Runtime Info - { - .name = "Audio Jack Status", - .parent = "Runtime Info", - .apptype = TBT_APP_AUDIO_JACK, - .icon_name = "dummy", - .info = "View Audio Jack
Insert Info", - .result = 0 - }, - #endif - #ifdef TBT_MODULE_APP_KEY_VIBRATION - - //Runtime Info - { - .name = "Key Vibration Status", - .parent = "Runtime Info", - .apptype = TBT_APP_KEY_VIBRATION, - .icon_name = "dummy", - .info = "View Audio Jack
Insert Info", - .result = 0 - }, - #endif - #ifdef TBT_MODULE_APP_BATTERY - - //Runtime Info - { - .name = "Battery Status", - .parent = "Runtime Info", - .apptype = TBT_APP_BATTERY, - .icon_name = "dummy", - .info = "View Audio Jack
Insert Info", - .result = 0 - }, - #endif - #ifdef TBT_MODULE_APP_GPS_STATUS - - //Runtime Info - { - .name = "Gps Status", - .parent = "Runtime Info", - .apptype = TBT_APP_GPS_STATUS, - .icon_name = "dummy", - .info = "View Audio Jack
Insert Info", - .result = 0, - .required_features_count = 1, - .features_required = {11} - }, - #endif - #ifdef TBT_MODULE_APP_USB_CONNECTED + #ifdef TBT_MODULE_APP_RUNTIME_INFO //Runtime Info { - .name = "USB Status", + .name = "Runtime Info", .parent = "Runtime Info", - .apptype = TBT_APP_USB_CONNECTED, + .apptype = TBT_APP_RUNTIME_INFO, .icon_name = "dummy", - .info = "View Audio Jack
Insert Info", + .info = "1. Initially Audio Jack Not Connected message will be shown.
" + "2. Insert an only audio out headphone in audio jack.
" + "3. Then message will show Audio Jack Connected with 3 wire ear jack.
" + "4. Insert a headphone which support both audio I/O.
" + "5. Then message will show Audio Jack Connected with 4 wire ear jack.
" + "6. If Audio jack is not supported, Audio Jack is not supported will be shown.", .result = 0 }, #endif - #ifdef TBT_MODULE_APP_BLUETOOTH_ENABLED - - //Runtime Info - { - .name = "Bluetooth Status", - .parent = "Runtime Info", - .apptype = TBT_APP_BLUETOOTH_ENABLED, - .icon_name = "dummy", - .info = "View Audio Jack
Insert Info", - .result = 0, - .required_features_count = 1, - .features_required = {16} - }, - #endif - #ifdef TBT_MODULE_APP_AUTO_ROTATION_ENABLED - - //Runtime Info - { - .name = "Auto Rotate Status", - .parent = "Runtime Info", - .apptype = TBT_APP_AUTO_ROTATION_ENABLED, - .icon_name = "dummy", - .info = "View Audio Jack
Insert Info", - .result = 0, - .required_features_count = 1, - .features_required = {41} - }, - #endif - #ifdef TBT_MODULE_APP_LOCATION_SERVICE_ENABLED - - //Runtime Info - { - .name = "Location Status", - .parent = "Runtime Info", - .apptype = TBT_APP_LOCATION_SERVICE_ENABLED, - .icon_name = "dummy", - .info = "View Audio Jack
Insert Info", - .result = 0, - .required_features_count = 1, - .features_required = {10} - }, - #endif - #ifdef TBT_MODULE_APP_WIFI_HOTSPOT_ENABLED - - //Runtime Info - { - .name = "Wifi HotSpot Status", - .parent = "Runtime Info", - .apptype = TBT_APP_WIFI_HOTSPOT_ENABLED, - .icon_name = "dummy", - .info = "View Audio Jack
Insert Info", - .result = 0, - .required_features_count = 1, - .features_required = {24} - }, - #endif #endif #ifdef TBT_MODULE_SCREEN_MIRROR @@ -1681,7 +1737,7 @@ static tbt_info tbtapps[] = .info = "Mirrors The Screen", .result = 0, .required_features_count = 4, - .features_required = {24,25, 78,79} + .features_required = {24,25, 87,88} }, #endif #endif @@ -1694,7 +1750,10 @@ static tbt_info tbtapps[] = .parent = "Attach Panel", .apptype = TBT_APP_ATTACH_PANEL, .icon_name = "dummy", - .info = "Basic Attach Panel Operation", + .info = "1. Take some pictures with camera so that images are available in device images folder.
" + "2. Press “+” button in top left corner in the initial page.
" + "3. Gallery Images will be shown using attach panel, click on a image.
" + "4. Clicked Image will be selected and shown in the upper area.", .result = 0 }, #endif @@ -1709,7 +1768,7 @@ static tbt_info tbtapps[] = .parent = "Feature Summary", .apptype = TBT_APP_FEATURE_SUMMARY, .icon_name = "dummy", - .info = "View HW supported
feature's of the phone", + .info = "Show supported feature's of the device", .result = 0 }, #endif @@ -1724,7 +1783,11 @@ static tbt_info tbtapps[] = .parent = "MTP", .apptype = TBT_APP_MTP, .icon_name = "dummy", - .info = "View MTP
feature's of the phone", + .info = "1. Connect OTG Cable’s OTG gender (micro USB end) to Test Tizen device." + "2. Connect other end to another device which supports MTP ex: Android device and select connection option to Transfer Photos (PTP) in this device." + "3. Open Transfer Photos module again." + "4. Device information will be seen in bottom list and in top list JPG files list will be seen." + "5. Select *.jpg image name from top list. Then corresponding files information will be seen in bottom list.", .result = 0 }, #endif @@ -1765,7 +1828,11 @@ static tbt_info tbtapps[] = .parent = "NSD", .apptype = TBT_APP_NSD_SSDP_LOCAL, .icon_name = "dummy", - .info = "Check NSD SSDP
", + .info = "1. Connect test device to a Wi-Fi network.
" + "2. “dnssd initialized” will be shown in bottom list.
" + "3. Open DNS-SD Remote module in another device and connect that device to same Wi-Fi network.
" + "4. Press Add Record in DNS-SD Remote module.
" + "5. Press Browse Service button. Then, corresponding service and text value in DNS-SD Remote will be seen in top list.", .result = 0, .required_features_count = 1, .features_required = {84} @@ -1778,7 +1845,9 @@ static tbt_info tbtapps[] = .parent = "NSD", .apptype = TBT_APP_NSD_SSDP_REMOTE, .icon_name = "dummy", - .info = "Check NSD SSDP
", + .info = "1. Connect test device to a Wi-Fi network same as DNS-SD Local module connected in.
" + "2. “dnssd initialized” will be shown in bottom list.
" + "3. Press Add Record button. Then, “local service registered” will be seen in bottom list and in top list added text with key value pair will be seen.", .result = 0, .required_features_count = 1, .features_required = {84} @@ -1868,7 +1937,9 @@ static tbt_info tbtapps[] = .parent = "Package Manager Status", .apptype = TBT_APP_PACKAGE_MANAGER, .icon_name = "dummy", - .info = "1.Please Uninstall package from Application manager
2. Please install package in device from sdb shell
3.Update is re-install same package on the device", + .info = "1.Uninstall package from Application manager
" + "2. install package in device from sdb shell
" + "3.Update is re-install same package on the device", .result = 0 }, #endif @@ -1940,7 +2011,9 @@ static tbt_info tbtapps[] = .parent = "Connection Status", .apptype = TBT_APP_CONNECTION, .icon_name = "dummy", - .info = "1.Please Change connection status to flight mode or some other mode
2.Please press back button and again open connection view
3.You will see updated connection status
", + .info = "1. Change connection status to flight mode or some other mode
" + "2. press back button and again open connection view
" + "3.You will see updated connection status
", .result = 0, .required_features_count = 2, .features_required = {24,21} @@ -1948,216 +2021,277 @@ static tbt_info tbtapps[] = #endif #endif #ifdef TBT_MODULE_SYSTEMSETTINGS - #ifdef TBT_MODULE_APP_SYSTEM_SETTINGS_FONT + #ifdef TBT_MODULE_APP_SYSTEM_SETTINGS //System Settings { - .name = "System Settings Font", + .name = "System Settings", .parent = "System Settings", - .apptype = TBT_APP_SYSTEM_SETTINGS_FONT, + .apptype = TBT_APP_SYSTEM_SETTINGS, .icon_name = "dummy", - .info = "Instructions:

1.Manually change settings for each item through device Settings.
2. Verify all the items' values.", + .info = "
1.Manually change settings for each item through device Settings.
" + "2. Verify all the items' values.", .result = 0 }, #endif - #ifdef TBT_MODULE_APP_SYSTEM_SETTINGS_TIMEFORMAT +#endif - //System Settings +#ifdef TBT_MODULE_CONTACTS + #ifdef TBT_MODULE_APP_CONTACTS + + //Contacts { - .name = "System Settings Time Format", - .parent = "System Settings", - .apptype = TBT_APP_SYSTEM_SETTINGS_TIMEFORMAT, + .name = "Contacts", + .parent = "Contacts", + .apptype = TBT_APP_CONTACTS, .icon_name = "dummy", - .info = "Instructions:

1.Manually change settings for each item through device Settings.
2. Verify all the items' values.", - .result = 0 + .info = "1. Make a contact Test with number 12345678.
" + "2. Call and message Test.
" + "3. Verify the count with the number of calls and messages made to test.
" + "4. Delete the contact Test.", + .result = 0, + .required_features_count = 1, + .features_required = { 21 } }, #endif - #ifdef TBT_MODULE_APP_SYSTEM_SETTINGS_TIMECHANGE +#endif - //System Settings +#ifdef TBT_MODULE_D2D + #ifdef TBT_MODULE_APP_D2D_CLIENT + + //NSD DNSSD { - .name = "System Settings Time Change", - .parent = "System Settings", - .apptype = TBT_APP_SYSTEM_SETTINGS_TIMECHANGE, + .name = "D2D Client", + .parent = "D2D Convergence", + .apptype = TBT_APP_D2D_CLIENT, .icon_name = "dummy", - .info = "Instructions:

1.Manually change settings for each item through device Settings.
2. Verify all the items' values.", + .info = "1. Connect D2D Server to Same WiFi Network.
" + "2. Run D2D server module of TBT.
" + "3. A list of two elements http://192.168.43.54:8001/api/v2/ and /tizen/remote-app-control will be shown
" + "4. Select /tizen/remote-app-control first. Then cortbt_uiapp will be launch in D2D Server.
" + "5. Select http://192.168.43.54:8001/api/v2/ then Connect will be shown in D2D Server and Publish will be shown in D2D Client.
" + "6. Select Publish on Client side and GoodNews Received will be shown in D2D Server.", .result = 0 }, #endif - #ifdef TBT_MODULE_APP_SYSTEM_SETTINGS_LOCKSOUND - - //System Settings + #ifdef TBT_MODULE_APP_D2D_SERVER { - .name = "System Settings Lock Sound", - .parent = "System Settings", - .apptype = TBT_APP_SYSTEM_SETTINGS_LOCKSOUND, + .name = "D2D Server", + .parent = "D2D Convergence", + .apptype = TBT_APP_D2D_SERVER, .icon_name = "dummy", - .info = "Instructions:

1.Manually change settings for each item through device Settings.
2. Verify all the items' values.", + .info = "1. Connect D2D Client to Same WiFi Network.
" + "2. Run D2D Server Module from TBT again.
" + "3. Server Ready Message will be shown", .result = 0 }, #endif - #ifdef TBT_MODULE_APP_SYSTEM_SETTINGS_SILENT - - //System Settings +#endif +#ifdef TBT_MODULE_TTS + #ifdef TBT_MODULE_APP_TTS { - .name = "System Settings Silent Mode", - .parent = "System Settings", - .apptype = TBT_APP_SYSTEM_SETTINGS_SILENT, + .name = "TTS", + .parent = "TTS/STT", + .apptype = TBT_APP_TTS, .icon_name = "dummy", - .info = "Instructions:

1.Manually change settings for each item through device Settings.
2. Verify all the items' values.", + .info = "Text to speech
", .result = 0 }, #endif - #ifdef TBT_MODULE_APP_SYSTEM_SETTINGS_TOUCHSOUND - - //System Settings +#endif +#ifdef TBT_MODULE_STT + #ifdef TBT_MODULE_APP_STT { - .name = "System Settings Touch Sound", - .parent = "System Settings", - .apptype = TBT_APP_SYSTEM_SETTINGS_TOUCHSOUND, + .name = "STT", + .parent = "TTS/STT", + .apptype = TBT_APP_STT, .icon_name = "dummy", - .info = "Instructions:

1.Manually change settings for each item through device Settings.
2. Verify all the items' values.", + .info = "1. Make sure Internet is connected
" + "2. Press Speak button and speak something in English.
" + "3. Recognized sentence will be shown.
" + "4. Word with recognized time stamp will also be shown.", .result = 0 }, #endif - #ifdef TBT_MODULE_APP_SYSTEM_SETTINGS_SCREENROTATION - - //System Settings + #ifdef TBT_MODULE_APP_STT_ERROR { - .name = "System Settings Screen Rotation", - .parent = "System Settings", - .apptype = TBT_APP_SYSTEM_SETTINGS_SCREENROTATION, + .name = "STT Error", + .parent = "TTS/STT", + .apptype = TBT_APP_STT_ERROR, .icon_name = "dummy", - .info = "Instructions:

1.Manually change settings for each item through device Settings.
2. Verify all the items' values.", + .info = "1. Disconnect Internet.
" + "2. Press Speak button.
" + "3. An error message will be shown in top", .result = 0 }, #endif - #ifdef TBT_MODULE_APP_SYSTEM_SETTINGS_MOTION +#endif - //System Settings +#ifdef TBT_MODULE_DALI + #ifdef TBT_MODULE_APP_DALI_ACTOR + + //DALi Test { - .name = "System Settings Motion", - .parent = "System Settings", - .apptype = TBT_APP_SYSTEM_SETTINGS_MOTION, + .name = "DALi Actor", + .parent = "DALi", + .apptype = TBT_APP_DALI_ACTOR, .icon_name = "dummy", - .info = "Instructions:

1.Manually change settings for each item through device Settings.
2. Verify all the items' values.", + .info = "DALi Actor Signals", .result = 0 }, #endif - #ifdef TBT_MODULE_APP_SYSTEM_SETTINGS_FILGHTMODE + #ifdef TBT_MODULE_APP_DALI_STAGE - //System Settings + //DALi Test { - .name = "System Settings Flight Mode", - .parent = "System Settings", - .apptype = TBT_APP_SYSTEM_SETTINGS_FILGHTMODE, + .name = "DALi Stage", + .parent = "DALi", + .apptype = TBT_APP_DALI_STAGE, .icon_name = "dummy", - .info = "Instructions:

1.Manually change settings for each item through device Settings.
2. Verify all the items' values.", + .info = "DALi Stage Signals", .result = 0 }, #endif - #ifdef TBT_MODULE_APP_SYSTEM_SETTINGS_LOCKSTATE + #ifdef TBT_MODULE_APP_DALI_TOUCH_DATA - //System Settings + //DALi Test { - .name = "System Settings Lock State", - .parent = "System Settings", - .apptype = TBT_APP_SYSTEM_SETTINGS_LOCKSTATE, + .name = "DALi Touch Data", + .parent = "DALi", + .apptype = TBT_APP_DALI_TOUCH_DATA, .icon_name = "dummy", - .info = "Instructions:

1.Manually change settings for each item through device Settings.
2. Verify all the items' values.", + .info = "DALi Controls Touch Signals", .result = 0 }, #endif -#endif + #ifdef TBT_MODULE_APP_DALI_BUTTON -#ifdef TBT_MODULE_CONTACTS - #ifdef TBT_MODULE_APP_CONTACTS - - //Contacts + //DALi Test { - .name = "Contacts", - .parent = "Contacts", - .apptype = TBT_APP_CONTACTS, + .name = "DALi Button", + .parent = "DALi", + .apptype = TBT_APP_DALI_BUTTON, .icon_name = "dummy", - .info = "Instructions:
1. Make a contact Test with number 12345678.
1. Call and message Test.
3. Verify the count with the number of calls and messages made to test.
4. Delete the contact Test.", - .result = 0, - .required_features_count = 1, - .features_required = { 21 } + .info = "DALi Button Signals", + .result = 0 }, #endif -#endif - -#ifdef TBT_MODULE_D2D - #ifdef TBT_MODULE_APP_D2D_CLIENT + #ifdef TBT_MODULE_APP_DALI_SLIDER - //NSD DNSSD + //DALi Test { - .name = "D2D Client", - .parent = "D2D Convergence", - .apptype = TBT_APP_D2D_CLIENT, + .name = "DALi Slider", + .parent = "DALi", + .apptype = TBT_APP_DALI_SLIDER, .icon_name = "dummy", - .info = "Check D2d client service.
", + .info = "DALi Slider Signals", .result = 0 }, #endif - #ifdef TBT_MODULE_APP_D2D_SERVER + #ifdef TBT_MODULE_APP_DALI_TEXT_CONTROL + + //DALi Test { - .name = "D2D Server", - .parent = "D2D Convergence", - .apptype = TBT_APP_D2D_SERVER, + .name = "DALi Text Control", + .parent = "DALi", + .apptype = TBT_APP_DALI_TEXT_CONTROL, .icon_name = "dummy", - .info = "Check D2d server service
", + .info = "DALi Text Control Signals", .result = 0 }, #endif -#endif + #ifdef TBT_MODULE_APP_DALI_KEY_BOARD_FOCUS_MANAGER -#ifdef TBT_MODULE_TTS - #ifdef TBT_MODULE_APP_TTS + //DALi Test { - .name = "TTS", - .parent = "TTS/STT", - .apptype = TBT_APP_TTS, + .name = "DALi Keyboard Focus Manager", + .parent = "DALi", + .apptype = TBT_APP_DALI_KEY_BOARD_FOCUS_MANAGER, .icon_name = "dummy", - .info = "Text to speech
", + .info = "DALi Keyboard Focus Manager Signals", .result = 0 }, #endif -#endif -#ifdef TBT_MODULE_STT - #ifdef TBT_MODULE_APP_STT + #ifdef TBT_MODULE_APP_DALI_ACCESSIBILITY_MANAGER + + //DALi Test { - .name = "STT", - .parent = "TTS/STT", - .apptype = TBT_APP_STT, + .name = "DALi Accessibility Manager", + .parent = "DALi", + .apptype = TBT_APP_DALI_ACCESSIBILITY_MANAGER, .icon_name = "dummy", - .info = "Speech to text
", + .info = "DALi Accessibility Manager Signals", .result = 0 }, #endif - #ifdef TBT_MODULE_APP_STT_ERROR + #ifdef TBT_MODULE_APP_DALI_GESTURE_DETECTOR + + //DALi Test { - .name = "STT Error", - .parent = "TTS/STT", - .apptype = TBT_APP_STT_ERROR, + .name = "DALi Gesture Detector", + .parent = "DALi", + .apptype = TBT_APP_DALI_GESTURE_DETECTOR, .icon_name = "dummy", - .info = "Speech to text
Error callback check", + .info = "DALi Gesture Detector Signals", .result = 0 }, #endif -#endif -#ifdef TBT_MODULE_SMARTCARD - #ifdef TBT_MODULE_APP_SMARTCARD + #ifdef TBT_MODULE_APP_DALI_STYLE_MANAGER + + //DALi Test { - .name = "Smartcard", - .parent = "Smartcard", - .apptype = TBT_APP_SMARTCARD, + .name = "DALi Style Manager", + .parent = "DALi", + .apptype = TBT_APP_DALI_STYLE_MANAGER, .icon_name = "dummy", - .info = "Smartcard signed
unsigned app check", + .info = "DALi Style Manager Signals", .result = 0 }, #endif + #ifdef TBT_MODULE_APP_DALI_TTS + + //DALi Test + { + .name = "DALi TTS", + .parent = "DALi", + .apptype = TBT_APP_DALI_TTS, + .icon_name = "dummy", + .info = "DALi TTS Functionality", + .result = 0, + .required_features_count = 1, + .features_required = {11} + }, + #endif +// #ifdef TBT_MODULE_APP_DALI_SCROLL_BAR +// +// //DALi Test +// { +// .name = "DALi Scroll Bar", +// .parent = "DALi", +// .apptype = TBT_APP_DALI_SCROLL_BAR, +// .icon_name = "dummy", +// .info = "DALi Scroll Bar Functionality", +// .result = 0, +// .required_features_count = 1, +// .features_required = {11} +// }, +// #endif + #ifdef TBT_MODULE_APP_DALI_SCROLL + + //DALi Test + { + .name = "DALi Scroll View", + .parent = "DALi", + .apptype = TBT_APP_DALI_SCROLL, + .icon_name = "dummy", + .info = "DALi Scroll Functionality", + .result = 0, + .required_features_count = 1, + .features_required = {11} + } + #endif #endif + }; #ifdef TBT_MODULE_SENSOR diff --git a/tbtcoreapp/src/utils/ui-utils.c b/tbtcoreapp/src/utils/ui-utils.c index cb7e2b9..5a9f262 100644 --- a/tbtcoreapp/src/utils/ui-utils.c +++ b/tbtcoreapp/src/utils/ui-utils.c @@ -37,6 +37,29 @@ #define PART_POPUP_BUTTON3 "button3" #define STYLE_POPUP_BUTTON "popup_button/default" + +/** + * @function guide_pop_up_button_callback + * @since_tizen 3.0 + * @description Callback for OK press by user + * @parameter void *data, Evas_Object *obj, void *event_info + * @return void + */ +static void guide_pop_up_button_callback(void *data, Evas_Object *obj, void *event_info) +{ + RETM_IF(NULL == data, "data is null"); + + Evas_Object *obj_to_del = data; + evas_object_del(obj_to_del); + + if(event_info) + { + Elm_Object_Item *item = event_info; + elm_genlist_item_selected_set(item, EINA_FALSE); + } +} + + /** * @function DoesFeatureExixts * @description Checks if a particular feature exists or not @@ -516,3 +539,23 @@ void ui_utils_show_toast(const char* message, const Evas_Object* data, float tim elm_popup_timeout_set(popup, timeout); evas_object_show(popup); } + + +/** + * @function ui_utils_guide_instruction_popup_button + * @since_tizen 3.0 + * @description Pop up Manual Instruction Button + * @parameter common_view*: Common View Pointer, const char* txtMessage: Instruction Message to render + * @return static void + */ +void ui_utils_guide_instruction_popup_button(const Evas_Object* view, const char* txtInstruction) +{ + RETM_IF(NULL == view, "view is NULL"); + + Evas_Object *guide_popup_btn = ui_utils_popup_add(view, "Instruction Guide"); + RETM_IF(NULL == guide_popup_btn, "guide_popup_btn is NULL"); + + elm_object_text_set(guide_popup_btn, txtInstruction); + ui_utils_popup_button_add(guide_popup_btn, caption_ok, guide_pop_up_button_callback, guide_popup_btn); +} + diff --git a/tbtcoreapp/src/view/tbt-bluetoothle-view.c b/tbtcoreapp/src/view/tbt-bluetoothle-view.c index e15c2c6..0baaf02 100644 --- a/tbtcoreapp/src/view/tbt-bluetoothle-view.c +++ b/tbtcoreapp/src/view/tbt-bluetoothle-view.c @@ -37,6 +37,9 @@ #define BT_ADAPTER_DEVICE_DISCOVERY_NONE -1 +#define BATTERY_SERVICE_UUID "0000180f-0000-1000-8000-00805f9b34fb" +#define LINK_LOSS_SERVICE_UUID "00001803-0000-1000-8000-00805f9b34fb" + typedef enum { SERVICE_LISTED, @@ -168,8 +171,6 @@ static void _bt_gatt_server_notification_sent_cb(int result, const char *remote_ */ bluetoothle_view *bluetoothle_view_add(Evas_Object *navi, tbt_info *tbt_info, Elm_Object_Item *item) { - DBG("bluetoothle_view_add"); - RETVM_IF(NULL == navi, NULL, "navi is null"); bluetoothle_view *this = NULL; @@ -402,11 +403,16 @@ static void _bt_device_bond_created_cb(int result_recieved, bt_device_info_s *de this = (bluetoothle_view*)user_data; RETM_IF(NULL == this, "view is NULL"); - result = bt_gatt_connect(device_info->remote_address, false); - RETM_IF(result != BT_ERROR_NONE, "bt_gatt_connect failed --> error: %s", get_bluetooth_error(result)); - elm_object_text_set(this->bluetoothle_label, "gatt connecting..."); + if(this->view->tbt_info->apptype == TBT_APP_BLE_GATT_CLIENT) + { + result = bt_gatt_connect(device_info->remote_address, false); + RETM_IF(result != BT_ERROR_NONE, "bt_gatt_connect failed --> error: %s", get_bluetooth_error(result)); + elm_object_text_set(this->bluetoothle_label, "gatt connecting..."); + } elm_object_disabled_set(this->bluetoothle_btn, EINA_TRUE); elm_object_disabled_set(this->disconnect_btn, EINA_FALSE); + DBG("IS BONDED %d", device_info->is_bonded); + DBG("IS CONNECTED %d", device_info->is_connected); this->is_bonded = device_info->is_bonded; } /** @@ -550,33 +556,69 @@ static Evas_Object *add_control_layout(bluetoothle_view *this, Evas_Object *pare if(this->view->tbt_info->apptype == TBT_APP_BLE_GATT_CLIENT) { - this->bluetoothle_btn = ui_utils_push_button_add(this, table, "Discover", _control_button_pressed_cb); - elm_table_pack(table, this->bluetoothle_btn, 0, 0, 1, 1); + if(get_device_type() == DEVICE_WEARABLE_360_360) + { + elm_table_padding_set(table, 0, 0); + + this->bluetoothle_btn = ui_utils_push_button_add(this, table, "Discover", _control_button_pressed_cb); + elm_table_pack(table, this->bluetoothle_btn, 0, 0, 1, 1); + + this->disconnect_btn = ui_utils_push_button_add(this, table, "Disconnect", _disconnect_button_pressed_cb); + elm_table_pack(table, this->disconnect_btn, 1, 0, 1, 1); - this->disconnect_btn = ui_utils_push_button_add(this, table, "Disconnect", _disconnect_button_pressed_cb); - elm_table_pack(table, this->disconnect_btn, 1, 0, 1, 1); + elm_object_disabled_set(this->disconnect_btn, EINA_TRUE); - elm_object_disabled_set(this->disconnect_btn, EINA_TRUE); + this->read_btn = ui_utils_push_button_add(this, table, "Read", _read_button_pressed_cb); + elm_table_pack(table, this->read_btn, 2, 0, 1, 1); - this->read_btn = ui_utils_push_button_add(this, table, "Read", _read_button_pressed_cb); - elm_table_pack(table, this->read_btn, 0, 1, 1, 1); + this->write_btn = ui_utils_push_button_add(this, table, "Write", _write_button_pressed_cb); + elm_table_pack(table, this->write_btn, 3, 0, 1, 1); - this->write_btn = ui_utils_push_button_add(this, table, "Write", _write_button_pressed_cb); - elm_table_pack(table, this->write_btn, 1, 1, 1, 1); + this->expand_btn = ui_utils_push_button_add(this, table, "Expand", _expand_button_pressed_cb); + elm_table_pack(table, this->expand_btn, 4, 0, 1, 1); + } - this->expand_btn = ui_utils_push_button_add(this, table, "Expand", _expand_button_pressed_cb); - elm_table_pack(table, this->expand_btn, 2, 1, 1, 1); + else + { + this->bluetoothle_btn = ui_utils_push_button_add(this, table, "Discover", _control_button_pressed_cb); + elm_table_pack(table, this->bluetoothle_btn, 0, 0, 1, 1); + + this->disconnect_btn = ui_utils_push_button_add(this, table, "Disconnect", _disconnect_button_pressed_cb); + elm_table_pack(table, this->disconnect_btn, 1, 0, 1, 1); + + elm_object_disabled_set(this->disconnect_btn, EINA_TRUE); + + this->read_btn = ui_utils_push_button_add(this, table, "Read", _read_button_pressed_cb); + elm_table_pack(table, this->read_btn, 0, 1, 1, 1); - set_control_btn_state(SERVICE_LISTED, this); + this->write_btn = ui_utils_push_button_add(this, table, "Write", _write_button_pressed_cb); + elm_table_pack(table, this->write_btn, 1, 1, 1, 1); + + this->expand_btn = ui_utils_push_button_add(this, table, "Expand", _expand_button_pressed_cb); + elm_table_pack(table, this->expand_btn, 2, 1, 1, 1); + + set_control_btn_state(SERVICE_LISTED, this); + } } else if(this->view->tbt_info->apptype == TBT_APP_BLE_GATT_SERVER) { //Gatt Server control layout - this->bluetoothle_btn = ui_utils_push_button_add(this, table, "Start Server", _control_button_pressed_cb); - elm_table_pack(table, this->bluetoothle_btn, 0, 0, 3, 1); + if(get_device_type() == DEVICE_WEARABLE_360_360) + { + this->bluetoothle_btn = ui_utils_push_button_add(this, table, "Start Server", _control_button_pressed_cb); + elm_table_pack(table, this->bluetoothle_btn, 0, 0, 1, 1); + + this->notify_btn = ui_utils_push_button_add(this, table, "Notify", _notify_button_pressed_cb); + elm_table_pack(table, this->notify_btn, 1, 0, 1, 1); + } + else + { + this->bluetoothle_btn = ui_utils_push_button_add(this, table, "Start Server", _control_button_pressed_cb); + elm_table_pack(table, this->bluetoothle_btn, 0, 0, 3, 1); - this->notify_btn = ui_utils_push_button_add(this, table, "Notify", _notify_button_pressed_cb); - elm_table_pack(table, this->notify_btn, 0, 1, 3, 1); + this->notify_btn = ui_utils_push_button_add(this, table, "Notify", _notify_button_pressed_cb); + elm_table_pack(table, this->notify_btn, 0, 1, 3, 1); + } } @@ -1015,8 +1057,8 @@ static void _bt_adapter_le_scan_result_cb(int result, bt_adapter_le_device_scan if (is_new_scanned_device_found(this, info) == true) { - bt_adapter_le_device_scan_result_info_s * device_info; - device_info = malloc(sizeof(bt_adapter_le_device_scan_result_info_s)); + bt_adapter_device_discovery_info_s * device_info; + device_info = malloc(sizeof(bt_adapter_device_discovery_info_s)); DBG("BLE remote_address: %s", info->remote_address); if (device_info != NULL) { @@ -1113,12 +1155,21 @@ static bool _bt_gatt_foreach_characterstics_cb(int total, int index, bt_gatt_h g int result; RETVM_IF(NULL == gatt_handle,false, "gatt_handle is NULL"); - bt_gatt_write_type_e write_type; - result = bt_gatt_characteristic_get_write_type(gatt_handle, &write_type); - RETVM_IF(result != BT_ERROR_NONE,false, "bt_gatt_characteristic_get_write_type error: %s", get_bluetooth_error(result)); + char* uuid; + result = bt_gatt_get_uuid(gatt_handle, &uuid); + RETVM_IF(result != BT_ERROR_NONE, false, "bt_gatt_get_uuid error: %s", get_bluetooth_error(result)); + DBG("selected service uuid %s", uuid); - result = bt_gatt_characteristic_set_write_type(gatt_handle, BT_GATT_WRITE_TYPE_WRITE); - RETVM_IF(result != BT_ERROR_NONE,false, "bt_gatt_characteristic_set_write_type error: %s", get_bluetooth_error(result)); + if(!strcmp(uuid, LINK_LOSS_SERVICE_UUID)) + { + DBG("Link Loss Service"); + bt_gatt_write_type_e write_type; + result = bt_gatt_characteristic_get_write_type(gatt_handle, &write_type); + RETVM_IF(result != BT_ERROR_NONE,false, "bt_gatt_characteristic_get_write_type error: %s", get_bluetooth_error(result)); + + result = bt_gatt_characteristic_set_write_type(gatt_handle, BT_GATT_WRITE_TYPE_WRITE); + RETVM_IF(result != BT_ERROR_NONE,false, "bt_gatt_characteristic_set_write_type error: %s", get_bluetooth_error(result)); + } bt_gatt_h service; result = bt_gatt_characteristic_get_service(gatt_handle, &service); @@ -1127,7 +1178,6 @@ static bool _bt_gatt_foreach_characterstics_cb(int total, int index, bt_gatt_h g this->n_characteristics = total; this->all_characteristics[index] = gatt_handle; - char* uuid; result = bt_gatt_get_uuid(gatt_handle, &uuid); RETVM_IF(result != BT_ERROR_NONE,false, "bt_gatt_get_uuid error: %s", get_bluetooth_error(result)); DBG("uuid: %s", uuid); @@ -1506,12 +1556,12 @@ static void _sevice_selected_cb(void *data, Evas_Object *obj, void *event_info) RETM_IF(result != BT_ERROR_NONE, "bt_gatt_get_uuid error: %s", get_bluetooth_error(result)); DBG("selected service uuid %s", uuid); - if(!strcmp(uuid, "0000180f-0000-1000-8000-00805f9b34fb")) + if(!strcmp(uuid, BATTERY_SERVICE_UUID)) { DBG("Battery Service"); this->is_battery_svc_selected = true; } - else if(!strcmp(uuid, "00001803-0000-1000-8000-00805f9b34fb")) + else if(!strcmp(uuid, LINK_LOSS_SERVICE_UUID)) { DBG("Link Loss Service"); this->is_link_loss_svc_selected = true; @@ -1741,10 +1791,12 @@ void _app_destroy_cb(void* this) int result; + bt_device_unset_bond_destroyed_cb(); if(view->view->tbt_info->apptype == TBT_APP_BLE_GATT_CLIENT) { bt_adapter_le_stop_scan(); + } else if(view->view->tbt_info->apptype == TBT_APP_BLE_GATT_SERVER) { diff --git a/tbtcoreapp/src/view/tbt-common-view.c b/tbtcoreapp/src/view/tbt-common-view.c index db8b015..2c358e5 100644 --- a/tbtcoreapp/src/view/tbt-common-view.c +++ b/tbtcoreapp/src/view/tbt-common-view.c @@ -87,6 +87,10 @@ common_view *common_view_add(Evas_Object *navi, tbt_info *tbt_info, Elm_Object_I elm_object_item_part_content_set(elm_naviframe_top_item_get(view->navi), "toolbar", view->toolbar); #endif + char instrcuction[2048]={'\0',}; + snprintf(instrcuction, sizeof(instrcuction), "%s%s", view->tbt_info->info, "
Note:You can also refer info section"); + ui_utils_guide_instruction_popup_button(view->navi, instrcuction ); + update_view_controls(view); update_view_controls(view); return view; diff --git a/tbtcoreapp/src/view/tbt-d2d-view.c b/tbtcoreapp/src/view/tbt-d2d-view.c index 106015e..abf9315 100644 --- a/tbtcoreapp/src/view/tbt-d2d-view.c +++ b/tbtcoreapp/src/view/tbt-d2d-view.c @@ -59,20 +59,6 @@ static Evas_Object *service_list; static Evas_Object *app_comm_menu_list; static bool is_app_control_tested; -#ifdef USE_GENLIST -typedef struct -{ - int index; - Elm_Object_Item *item; - char* text; -}item_data; - -static void _gl_del_cb(void *data, Evas_Object *obj EINA_UNUSED); -static char *_gl_text_get_cb(void *data, Evas_Object *obj, const char *part); -Elm_Object_Item* _d2d_elm_genlist_item_append(Evas_Object *list, char *item_text, Evas_Smart_Cb func, void *data); -#endif -static void _list_view_append(Evas_Object *list, char* item_text, Evas_Smart_Cb func, void *data); -static Evas_Object* _list_view_add(Evas_Object *parent); static void _app_destroy_cb(void* this); static void _conv_service_listener_cb(conv_service_h service_handle, conv_channel_h channel_handle, conv_error_e error, conv_payload_h payload, void* user_data); @@ -84,99 +70,6 @@ static void message_listener(conv_service_h handle, conv_channel_h channel, int static void start_discovery_cb(void *data, Evas_Object *obj, void *event_info); static void _conv_service_connected_cb(conv_service_h service_handle, conv_error_e error, conv_payload_h result, void* user_data); - -#ifdef USE_GENLIST -static void _gl_del_cb(void *data, Evas_Object *obj EINA_UNUSED) -{ - DBG("_gl_del_cb"); - item_data *id = data; - RETM_IF(!id, "item is NULL"); - SAFE_DELETE(id); -} - -static char *_gl_text_get_cb(void *data, Evas_Object *obj, const char *part) -{ - DBG("_gl_text_get_cb"); - item_data *id = data; - //const Elm_Genlist_Item_Class *itc = elm_genlist_item_item_class_get(id->item); - - //if(itc->item_style && !strcmp(itc->item_style, "default")) - { - - if(part && !strcmp(part, "elm.text")) - { - char buf[1024]; - snprintf(buf, 1023, id->text); - return strdup(buf); - } - } - return NULL; -} - -Elm_Object_Item* _d2d_elm_genlist_item_append(Evas_Object *list, char *item_text, Evas_Smart_Cb func, void *data) -{ - - DBG("_pick_elm_genlist_item_append%s:", item_text); - static int index = 1; - Elm_Genlist_Item_Class *itc = elm_genlist_item_class_new(); - - itc->item_style = "default"; - itc->func.text_get = _gl_text_get_cb; - itc->func.content_get = NULL; - itc->func.del = _gl_del_cb; - - item_data *id = calloc(sizeof(item_data), 1); - id->index = index++; - id->text = strdup(item_text); - - elm_scroller_single_direction_set(list, ELM_SCROLLER_SINGLE_DIRECTION_HARD); - - //HOMOGENEOUS MODE - //If item height is same when each style name is same, Use homogeneous mode. - elm_genlist_homogeneous_set(list, EINA_TRUE); - - //COMPRESS MODE - //For the Mobile view, because it has full window, compresse mode should be used. - elm_genlist_mode_set(list, ELM_LIST_COMPRESS); - - Elm_Object_Item *item = elm_genlist_item_append(list, itc,id, NULL, ELM_GENLIST_ITEM_NONE, func, data); - id->item = item; - - elm_genlist_item_class_free(itc); - - return item; -} -#endif - -static void _list_view_append(Evas_Object *list, char* item_text, Evas_Smart_Cb func, void *data) -{ - RETM_IF(NULL == list, "view is NULL"); - - #ifdef USE_GENLIST - _d2d_elm_genlist_item_append(list, item_text, func, data); - #else - elm_list_item_append(list, item_text, NULL, NULL, func, data); - elm_list_go(list); - #endif - - evas_object_show(list); -} - -static Evas_Object* _list_view_add(Evas_Object *parent) -{ - Evas_Object *list = NULL; -#ifdef USE_GENLIST - list = elm_genlist_add(parent); - RETVM_IF(!list, NULL, "elm_genlist_add failed"); -#else - list = elm_list_add(parent); - RETVM_IF(!list, NULL, "elm_list_add failed"); - elm_list_mode_set(list, ELM_LIST_COMPRESS); - //evas_object_smart_callback_add(this->server_list, "selected", NULL, NULL); -#endif - return list; - -} /** * @function d2d_view_add * @since_tizen 2.3 @@ -198,34 +91,46 @@ d2d_view *d2d_view_add(Evas_Object *navi, tbt_info *tbt_info, Elm_Object_Item *i this->view = calloc(1, sizeof(common_view)); RETVM_IF(!this->view, NULL, "calloc failed"); - tbt_info->layout_group = "3_part_cnt_cnt_btn"; - tbt_info->layout_file = get_edje_path("3_part_cnt2.75_cnt_btn.edj"); + tbt_info->layout_group = "d2d_viewer"; + tbt_info->layout_file = get_edje_path("d2d_viewer.edj"); common_view_add(navi, tbt_info, item, this->view, _app_destroy_cb, this); if (tbt_info->apptype == TBT_APP_D2D_CLIENT) { + this->server_list = elm_list_add(this->view->layout); + elm_list_mode_set(this->server_list, ELM_LIST_COMPRESS); + evas_object_smart_callback_add(this->server_list, "selected", NULL, NULL); + elm_list_item_append(this->server_list, "D2D discover", NULL, NULL, start_discovery_cb, this); - this->server_list = _list_view_add(this->view->layout); - _list_view_append(this->server_list, "D2D discover", start_discovery_cb, this); - elm_object_part_content_set(this->view->layout, "1cnt", this->server_list); + elm_list_go(this->server_list); - found_device_list = _list_view_add(this->view->layout); + elm_object_part_content_set(this->view->layout, "list_container", this->server_list); - service_list = _list_view_add(this->view->layout); - //elm_list_select_mode_set(service_list, ELM_OBJECT_SELECT_MODE_ALWAYS); + found_device_list = elm_list_add(this->view->layout); + elm_list_mode_set(found_device_list, ELM_LIST_COMPRESS); + evas_object_smart_callback_add(found_device_list, "selected", NULL, NULL); - app_comm_menu_list = _list_view_add(this->view->layout); + service_list = elm_list_add(this->view->layout); + elm_list_mode_set(service_list, ELM_LIST_COMPRESS); + evas_object_smart_callback_add(service_list, "selected", NULL, NULL); + elm_list_select_mode_set(service_list, ELM_OBJECT_SELECT_MODE_ALWAYS); + + app_comm_menu_list = elm_list_add(this->view->layout); + elm_list_mode_set(app_comm_menu_list, ELM_LIST_COMPRESS); + evas_object_smart_callback_add(app_comm_menu_list, "selected", NULL, NULL); } else if (tbt_info->apptype == TBT_APP_D2D_SERVER) { make_service(this); - this->client_msg_list = _list_view_add(this->view->layout); + this->client_msg_list = elm_list_add(this->view->layout); elm_list_mode_set(this->client_msg_list, ELM_LIST_COMPRESS); - _list_view_append(this->client_msg_list, "Ready", NULL, NULL); + elm_list_item_append(this->client_msg_list, "Ready", NULL, NULL, NULL, NULL); + + elm_list_go(this->client_msg_list); - elm_object_part_content_set(this->view->layout, "1cnt", this->client_msg_list); + elm_object_part_content_set(this->view->layout, "list_container", this->client_msg_list); } return this; @@ -281,40 +186,19 @@ static void start_discovery_cb(void *data, Evas_Object *obj, void *event_info) RETM_IF(ret != CONV_ERROR_NONE, "conv_discovery_start failed with error : %s", get_d2d_error(ret)); } -static int app_control_start(conv_service_h service_handle) + +static int app_control_start(conv_service_h service_handle, void* data) { DBG("app_control_start"); int ret; + + service_data *s_data = (service_data*) data; + s_data->service_handle = service_handle; + ret = conv_service_set_listener_cb(service_handle, message_listener, (void*)s_data); + DBG("conv_service_set_listener_cb failed with error : %s", get_d2d_error(ret)); ret = conv_service_start(service_handle, NULL, NULL); RETVM_IF(ret != CONV_ERROR_NONE,0, "conv_service_start failed with error : %s", get_d2d_error(ret)); - is_app_control_tested = true; - conv_payload_h payload_handle; - - ret = conv_payload_create(&payload_handle); - RETVM_IF(ret != CONV_ERROR_NONE,0, "conv_payload_create failed with error : %s", get_d2d_error(ret)); - - app_control_h app_control = NULL; - app_control_create(&app_control); - app_control_set_app_id(app_control, "org.tizen.coretbt_uiapp"); - app_control_set_operation(app_control, APP_CONTROL_OPERATION_MAIN); - - ret = conv_payload_set_app_control(payload_handle, "app_control", app_control); - RETVM_IF(ret != CONV_ERROR_NONE,0, "conv_payload_set_app_control failed with error : %s", get_d2d_error(ret)); - ret = conv_payload_set_string(payload_handle, "reply", "0"); - RETVM_IF(ret != CONV_ERROR_NONE,0, "conv_payload_set_string failed with error : %s", get_d2d_error(ret)); - ret = conv_service_publish(service_handle, NULL, payload_handle); - RETVM_IF(ret != CONV_ERROR_NONE,0, "conv_service_publish failed with error : %s", get_d2d_error(ret)); - - sleep(3); - - ret = conv_service_stop(service_handle, NULL, NULL); - RETVM_IF(ret != CONV_ERROR_NONE,0, "conv_service_stop failed with error : %s", get_d2d_error(ret)); - - printf ("conv_payload_destroy called..\n"); - ret = conv_payload_destroy(payload_handle); - RETVM_IF(ret != CONV_ERROR_NONE,0, "conv_payload_destroy failed with error : %s", get_d2d_error(ret)); - return 0; } @@ -350,7 +234,7 @@ static void service_selected_cb(void *data, Evas_Object *obj, void *event_info) case CONV_SERVICE_REMOTE_APP_CONTROL : DBG("CONV_SERVICE_REMOTE_APP_CONTROL"); - ret = app_control_start(service_handle); + ret = app_control_start(service_handle, s_data); RETM_IF(ret != CONV_ERROR_NONE, "app_control_start failed with error : %s", get_d2d_error(ret)); break; case CONV_SERVICE_REMOTE_INTERACTION: @@ -377,9 +261,9 @@ static void publish_cb(void *data, Evas_Object *obj, void *event_info) int ret = conv_channel_create(&channel_handle); DBG("conv_channel_create : %s", get_d2d_error(ret)); - ret = conv_channel_set_string(channel_handle, "uri", "org.example.d2d_test"); + ret = conv_channel_set_string(channel_handle, "uri", "org.tizen.tbtcoreapp"); DBG("conv_channel_set_string : %s", get_d2d_error(ret)); - ret = conv_channel_set_string(channel_handle, "channel_id", "test"); + ret = conv_channel_set_string(channel_handle, "channel_id", "tbtcoreapp"); DBG("conv_channel_set_string : %s", get_d2d_error(ret)); ret = conv_payload_create(&payload_handle); DBG("conv_payload_create : %s", get_d2d_error(ret)); @@ -407,8 +291,8 @@ static void read_cb(void *data, Evas_Object *obj, void *event_info) conv_payload_h payload_handle; int ret = conv_channel_create(&channel_handle); - ret = conv_channel_set_string(channel_handle, "uri", "org.example.d2d_test"); - ret = conv_channel_set_string(channel_handle, "channel_id", "test"); + ret = conv_channel_set_string(channel_handle, "uri", "org.tizen.tbtcoreapp"); + ret = conv_channel_set_string(channel_handle, "channel_id", "tbtcoreapp"); ret = conv_payload_create(&payload_handle); //To-do: implementation for "Read" API @@ -429,9 +313,9 @@ static void app_launch_cb(void *data, Evas_Object *obj, void *event_info) DBG("conv_channel_create : %s", get_d2d_error(ret)); ret = conv_channel_create(&channel_handle); DBG("conv_channel_create : %s", get_d2d_error(ret)); - ret = conv_channel_set_string(channel_handle, "uri", "org.example.d2d_test"); + ret = conv_channel_set_string(channel_handle, "uri", "org.tizen.tbtcoreapp"); DBG("conv_channel_set_string : %s", get_d2d_error(ret)); - ret = conv_channel_set_string(channel_handle, "channel_id", "test"); + ret = conv_channel_set_string(channel_handle, "channel_id", "tbtcoreapp"); DBG("conv_channel_set_string : %s", get_d2d_error(ret)); ret = conv_payload_create(&payload_handle); DBG("conv_payload_create : %s", get_d2d_error(ret)); @@ -450,6 +334,7 @@ static void message_listener(conv_service_h handle, conv_channel_h channel, int d2d_view* this = (d2d_view*)s_data->view; conv_service_h listner_handle = (conv_service_h)s_data->service_handle; conv_payload_get_string(result, "result_type", &test); + int ret; DBG("result_type : %s", test); @@ -459,12 +344,45 @@ static void message_listener(conv_service_h handle, conv_channel_h channel, int // elm_list_item_append(app_comm_menu_list, "App Launch", NULL, NULL, app_launch_cb, listner_handle); // elm_list_item_append(app_comm_menu_list, "Read", NULL, NULL, read_cb, listner_handle); - //elm_list_item_append(app_comm_menu_list, "Publish", NULL, NULL, publish_cb, listner_handle); - //elm_list_go(app_comm_menu_list); + elm_list_item_append(app_comm_menu_list, "Publish", NULL, NULL, publish_cb, listner_handle); + elm_list_go(app_comm_menu_list); + elm_object_part_content_set(this->view->layout, "list_container", app_comm_menu_list); + } + + + if (!strcmp(test, "onStart")) + { + DBG("==== ON-START ===="); + is_app_control_tested = true; + conv_payload_h payload_handle; + + ret = conv_payload_create(&payload_handle); + RETM_IF(ret != CONV_ERROR_NONE, "conv_payload_create failed with error : %s", get_d2d_error(ret)); + + app_control_h app_control = NULL; + app_control_create(&app_control); + app_control_set_app_id(app_control, "org.tizen.coretbt_uiapp"); + app_control_set_operation(app_control, APP_CONTROL_OPERATION_MAIN); + + ret = conv_payload_set_app_control(payload_handle, "app_control", app_control); + RETM_IF(ret != CONV_ERROR_NONE, "conv_payload_set_app_control failed with error : %s", get_d2d_error(ret)); + ret = conv_payload_set_string(payload_handle, "reply", "0"); + RETM_IF(ret != CONV_ERROR_NONE, "conv_payload_set_string failed with error : %s", get_d2d_error(ret)); + ret = conv_service_publish(s_data->service_handle, NULL, payload_handle); + RETM_IF(ret != CONV_ERROR_NONE, "conv_service_publish failed with error : %s", get_d2d_error(ret)); + sleep(3); + + ret = conv_service_stop(s_data->service_handle, NULL, NULL); + RETM_IF(ret != CONV_ERROR_NONE, "conv_service_stop failed with error : %s", get_d2d_error(ret)); + + DBG("conv_payload_destroy called..\n"); + ret = conv_payload_destroy(payload_handle); + RETM_IF(ret != CONV_ERROR_NONE, "conv_payload_destroy failed with error : %s", get_d2d_error(ret)); - _list_view_append(app_comm_menu_list, "Publish", publish_cb, listner_handle); - elm_object_part_content_set(this->view->layout, "1cnt", app_comm_menu_list); } + + // + } static int app_communication_menu(conv_service_h service_handle, void* data) @@ -485,10 +403,10 @@ static int app_communication_menu(conv_service_h service_handle, void* data) int ret = conv_channel_create(&channel_handle); RETVM_IF(ret != CONV_ERROR_NONE, ret, "conv_channel_create failed with error : %s", get_d2d_error(ret)); - ret = conv_channel_set_string(channel_handle, "uri", "org.example.d2d_test"); + ret = conv_channel_set_string(channel_handle, "uri", "org.tizen.tbtcoreapp"); RETVM_IF(ret != CONV_ERROR_NONE, ret, "conv_channel_set_string failed with error : %s", get_d2d_error(ret)); - ret = conv_channel_set_string(channel_handle, "channel_id", "test"); + ret = conv_channel_set_string(channel_handle, "channel_id", "tbtcoreapp"); RETVM_IF(ret != CONV_ERROR_NONE, ret, "conv_channel_set_string failed with error : %s", get_d2d_error(ret)); service_data* s_data = (service_data*)malloc(sizeof(service_data)); @@ -540,11 +458,10 @@ static void service_foreach_cb(conv_service_h service_handle, void *user_data) s_data->service_handle = clone_service_handle; - //elm_list_item_append(service_list, service_id, NULL, NULL, service_selected_cb, s_data); - //elm_list_go(service_list); + elm_list_item_append(service_list, service_id, NULL, NULL, service_selected_cb, s_data); - _list_view_append(service_list, service_id, service_selected_cb, s_data); - elm_object_part_content_set(this->view->layout, "1cnt", service_list); + elm_list_go(service_list); + elm_object_part_content_set(this->view->layout, "list_container", service_list); conv_channel_h channel_h; ret = conv_channel_create(&channel_h); @@ -588,11 +505,9 @@ static void discovery_cb(conv_device_h device, int result, void* user_data) if( device_name!=NULL) { - //elm_list_item_append(found_device_list, device_name, NULL, NULL, device_selected_cb, this); - //elm_list_go(found_device_list); - - _list_view_append(found_device_list, device_name, device_selected_cb, this); - elm_object_part_content_set(this->view->layout, "1cnt", found_device_list); + elm_list_item_append(found_device_list, device_name, NULL, NULL, device_selected_cb, this); + elm_list_go(found_device_list); + elm_object_part_content_set(this->view->layout, "list_container", found_device_list); } //DBG("Device----------------------------"); @@ -606,10 +521,10 @@ static void make_service(d2d_view *this) ret = conv_channel_create(&this->channel_handle); RETM_IF(ret != CONV_ERROR_NONE, "conv_channel_create failed with error : %s", get_d2d_error(ret)); - ret = conv_channel_set_string(this->channel_handle, "uri", "org.example.d2d_test"); + ret = conv_channel_set_string(this->channel_handle, "uri", "org.tizen.tbtcoreapp"); RETM_IF(ret != CONV_ERROR_NONE, "conv_channel_set_string failed with error : %s", get_d2d_error(ret)); - ret = conv_channel_set_string(this->channel_handle, "channel_id", "test"); + ret = conv_channel_set_string(this->channel_handle, "channel_id", "tbtcoreapp"); RETM_IF(ret != CONV_ERROR_NONE, "conv_channel_set_string failed with error : %s", get_d2d_error(ret)); ret = conv_payload_create(&this->payld_handle); @@ -646,22 +561,17 @@ static void _conv_service_listener_cb(conv_service_h service_handle, conv_channe if (!strcmp(test, "onClientConnect")) { - //elm_list_item_append(this->client_msg_list, "Client Connected", NULL, NULL, NULL, NULL); - //elm_list_go(this->client_msg_list); - - _list_view_append(this->client_msg_list, "Client Connected", NULL, NULL); + elm_list_item_append(this->client_msg_list, "Client Connected", NULL, NULL, NULL, NULL); + elm_list_go(this->client_msg_list); } - else if (!strcmp(test, "onMessage")) + if (!strcmp(test, "onMessage")) { int ret = conv_payload_get_string(payload, "payload_type", &payload_type); RETM_IF(ret != CONV_ERROR_NONE, "conv_payload_get_string failed with error: %s", get_d2d_error(ret)); strcat(payload_type, " Received"); - - //elm_list_item_append(this->client_msg_list, payload_type, NULL, NULL, NULL, NULL); - //elm_list_go(this->client_msg_list); - - _list_view_append(this->client_msg_list, payload_type, NULL, NULL); + elm_list_item_append(this->client_msg_list, payload_type, NULL, NULL, NULL, NULL); + elm_list_go(this->client_msg_list); DBG("payload_type : %s", payload_type); DBG( "==== Received ====");