#!/bin/sh #----------------------------------------------------# # notification patch for upgrade (7.0 -> 8.0) # #----------------------------------------------------# # Macro PATH=/bin:/usr/bin:/sbin:/usr/sbin DB_DIR=/opt/dbspace DB_NOTIFICATION=$DB_DIR/.notification.db DB_VERSION=2 CURRENT_VERSION=`sqlite3 $DB_NOTIFICATION 'PRAGMA user_version'` CheckListTable() { ADDED_COLUMN=`sqlite3 $DB_NOTIFICATION 'PRAGMA table_info(noti_list)' | grep b_event_handler_click_on_button_7` CHECKBOX_COLUMN=`sqlite3 $DB_NOTIFICATION 'PRAGMA table_info(noti_list)' | grep check_box` echo "## Check list table" if [ -z "${ADDED_COLUMN}" ] || [ -z "${CHECKBOX_COLUMN}" ]; then echo "column empty" return 1 else echo "column exist" return 0 fi } CheckTemplateTable() { ADDED_COLUMN=`sqlite3 $DB_NOTIFICATION 'PRAGMA table_info(noti_template)' | grep template_name` CHECKBOX_COLUMN=`sqlite3 $DB_NOTIFICATION 'PRAGMA table_info(noti_template)' | grep check_box` echo "## Check template table" if [ -z "${ADDED_COLUMN}" ] || [ -z "${CHECKBOX_COLUMN}" ]; then echo "column empty" return 1 else echo "column exist" return 0 fi } UpdateDBVersion() { sqlite3 $DB_NOTIFICATION << EOF PRAGMA user_version = ${DB_VERSION}; EOF } UpdateListTable() { sqlite3 $DB_NOTIFICATION << EOF DROP TABLE IF EXISTS noti_list_temp; CREATE TABLE noti_list_temp ( type INTEGER NOT NULL, layout INTEGER NOT NULL default 0, pkg_id TEXT NOT NULL, caller_app_id TEXT NOT NULL, launch_app_id TEXT, app_label TEXT, image_path TEXT, priv_image_path TEXT, group_id INTEGER default 0, internal_group_id INTEGER default 0, priv_id INTEGER PRIMARY KEY AUTOINCREMENT, title_key TEXT, b_text TEXT, b_key TEXT, tag TEXT, b_format_args TEXT, num_format_args INTEGER default 0, text_domain TEXT, text_dir TEXT, time INTEGER default 0, insert_time INTEGER default 0, args TEXT, group_args TEXT, b_execute_option TEXT, b_service_responding TEXT, b_service_single_launch TEXT, b_service_multi_launch TEXT, b_event_handler_click_on_button_1 TEXT, b_event_handler_click_on_button_2 TEXT, b_event_handler_click_on_button_3 TEXT, b_event_handler_click_on_button_4 TEXT, b_event_handler_click_on_button_5 TEXT, b_event_handler_click_on_button_6 TEXT, b_event_handler_click_on_icon TEXT, b_event_handler_click_on_thumbnail TEXT, b_event_handler_click_on_text_input_button TEXT, b_event_handler_click_on_button_7 TEXT, b_event_handler_click_on_button_8 TEXT, b_event_handler_click_on_button_9 TEXT, b_event_handler_click_on_button_10 TEXT, sound_type INTEGER default 0, sound_path TEXT, priv_sound_path TEXT, vibration_type INTEGER default 0, vibration_path TEXT, priv_vibration_path TEXT, led_operation INTEGER default 0, led_argb INTEGER default 0, led_on_ms INTEGER default -1, led_off_ms INTEGER default -1, flags_for_property INTEGER default 0, flag_simmode INTEGER default 0, display_applist INTEGER, progress_size DOUBLE default 0, progress_percentage DOUBLE default 0, ongoing_flag INTEGER default 0, ongoing_value_type INTEGER default 0, ongoing_current INTEGER default 0, ongoing_duration INTEGER default 0, auto_remove INTEGER default 1, default_button_index INTEGER default 0, hide_timeout INTEGER default 0, delete_timeout INTEGER default 0, text_input_max_length INTEGER default 0, event_flag INTEGER default 0, extension_image_size INTEGER default 0, uid INTEGER, check_box INTEGER DEFAULT 0, check_box_value INTEGER DEFAULT 0 ); INSERT INTO noti_list_temp (type, layout, pkg_id, caller_app_id, launch_app_id, image_path, priv_image_path, group_id, internal_group_id, priv_id, title_key, b_text, b_key, tag, b_format_args, num_format_args, text_domain, text_dir, time, insert_time, args, group_args, b_execute_option, b_service_responding, b_service_single_launch, b_service_multi_launch, b_event_handler_click_on_button_1, b_event_handler_click_on_button_2, b_event_handler_click_on_button_3, b_event_handler_click_on_button_4, b_event_handler_click_on_button_5, b_event_handler_click_on_button_6, b_event_handler_click_on_icon, b_event_handler_click_on_thumbnail, b_event_handler_click_on_text_input_button, sound_type, sound_path, priv_sound_path, vibration_type, vibration_path, priv_vibration_path, led_operation, led_argb, led_on_ms, led_off_ms, flags_for_property, flag_simmode, display_applist, progress_size, progress_percentage, ongoing_flag, ongoing_value_type, ongoing_current, ongoing_duration, auto_remove, default_button_index, hide_timeout, delete_timeout, text_input_max_length, event_flag, extension_image_size, uid) \ SELECT type, layout, pkg_id, caller_app_id, launch_app_id, image_path, priv_image_path, group_id, internal_group_id, priv_id, title_key, b_text, b_key, tag, b_format_args, num_format_args, text_domain, text_dir, time, insert_time, args, group_args, b_execute_option, b_service_responding, b_service_single_launch, b_service_multi_launch, b_event_handler_click_on_button_1, b_event_handler_click_on_button_2, b_event_handler_click_on_button_3, b_event_handler_click_on_button_4, b_event_handler_click_on_button_5, b_event_handler_click_on_button_6, b_event_handler_click_on_icon, b_event_handler_click_on_thumbnail, b_event_handler_click_on_text_input_button, sound_type, sound_path, priv_sound_path, vibration_type, vibration_path, priv_vibration_path, led_operation, led_argb, led_on_ms, led_off_ms, flags_for_property, flag_simmode, display_applist, progress_size, progress_percentage, ongoing_flag, ongoing_value_type, ongoing_current, ongoing_duration, auto_remove, default_button_index, hide_timeout, delete_timeout, text_input_max_length, event_flag, extension_image_size, uid FROM noti_list; DROP TABLE noti_list; ALTER TABLE noti_list_temp RENAME TO noti_list; EOF } UpdateTemplateTable() { sqlite3 $DB_NOTIFICATION << EOF DROP TABLE IF EXISTS noti_template_temp; CREATE TABLE noti_template_temp ( type INTEGER NOT NULL, layout INTEGER NOT NULL default 0, pkg_id TEXT NOT NULL, caller_app_id TEXT NOT NULL, launch_app_id TEXT, app_label TEXT, image_path TEXT, priv_image_path TEXT, group_id INTEGER default 0, internal_group_id INTEGER default 0, priv_id INTEGER PRIMARY KEY AUTOINCREMENT, title_key TEXT, b_text TEXT, b_key TEXT, tag TEXT, b_format_args TEXT, num_format_args INTEGER default 0, text_domain TEXT, text_dir TEXT, time INTEGER default 0, insert_time INTEGER default 0, args TEXT, group_args TEXT, b_execute_option TEXT, b_service_responding TEXT, b_service_single_launch TEXT, b_service_multi_launch TEXT, b_event_handler_click_on_button_1 TEXT, b_event_handler_click_on_button_2 TEXT, b_event_handler_click_on_button_3 TEXT, b_event_handler_click_on_button_4 TEXT, b_event_handler_click_on_button_5 TEXT, b_event_handler_click_on_button_6 TEXT, b_event_handler_click_on_icon TEXT, b_event_handler_click_on_thumbnail TEXT, b_event_handler_click_on_text_input_button TEXT, b_event_handler_click_on_button_7 TEXT, b_event_handler_click_on_button_8 TEXT, b_event_handler_click_on_button_9 TEXT, b_event_handler_click_on_button_10 TEXT, sound_type INTEGER default 0, sound_path TEXT, priv_sound_path TEXT, vibration_type INTEGER default 0, vibration_path TEXT, priv_vibration_path TEXT, led_operation INTEGER default 0, led_argb INTEGER default 0, led_on_ms INTEGER default -1, led_off_ms INTEGER default -1, flags_for_property INTEGER default 0, flag_simmode INTEGER default 0, display_applist INTEGER, progress_size DOUBLE default 0, progress_percentage DOUBLE default 0, ongoing_flag INTEGER default 0, ongoing_value_type INTEGER default 0, ongoing_current INTEGER default 0, ongoing_duration INTEGER default 0, auto_remove INTEGER default 1, default_button_index INTEGER default 0, hide_timeout INTEGER default 0, delete_timeout INTEGER default 0, text_input_max_length INTEGER default 0, event_flag INTEGER default 0, extension_image_size INTEGER default 0, uid INTEGER, check_box INTEGER DEFAULT 0, check_box_value INTEGER DEFAULT 0, template_name TEXT, UNIQUE (caller_app_id, template_name) ); INSERT INTO noti_template_temp (type, layout, pkg_id, caller_app_id, launch_app_id, image_path, priv_image_path, group_id, internal_group_id, priv_id, title_key, b_text, b_key, tag, b_format_args, num_format_args, text_domain, text_dir, time, insert_time, args, group_args, b_execute_option, b_service_responding, b_service_single_launch, b_service_multi_launch, b_event_handler_click_on_button_1, b_event_handler_click_on_button_2, b_event_handler_click_on_button_3, b_event_handler_click_on_button_4, b_event_handler_click_on_button_5, b_event_handler_click_on_button_6, b_event_handler_click_on_icon, b_event_handler_click_on_thumbnail, b_event_handler_click_on_text_input_button, sound_type, sound_path, priv_sound_path, vibration_type, vibration_path, priv_vibration_path, led_operation, led_argb, led_on_ms, led_off_ms, flags_for_property, flag_simmode, display_applist, progress_size, progress_percentage, ongoing_flag, ongoing_value_type, ongoing_current, ongoing_duration, auto_remove, default_button_index, hide_timeout, delete_timeout, text_input_max_length, event_flag, extension_image_size, uid) \ SELECT type, layout, pkg_id, caller_app_id, launch_app_id, image_path, priv_image_path, group_id, internal_group_id, priv_id, title_key, b_text, b_key, tag, b_format_args, num_format_args, text_domain, text_dir, time, insert_time, args, group_args, b_execute_option, b_service_responding, b_service_single_launch, b_service_multi_launch, b_event_handler_click_on_button_1, b_event_handler_click_on_button_2, b_event_handler_click_on_button_3, b_event_handler_click_on_button_4, b_event_handler_click_on_button_5, b_event_handler_click_on_button_6, b_event_handler_click_on_icon, b_event_handler_click_on_thumbnail, b_event_handler_click_on_text_input_button, sound_type, sound_path, priv_sound_path, vibration_type, vibration_path, priv_vibration_path, led_operation, led_argb, led_on_ms, led_off_ms, flags_for_property, flag_simmode, display_applist, progress_size, progress_percentage, ongoing_flag, ongoing_value_type, ongoing_current, ongoing_duration, auto_remove, default_button_index, hide_timeout, delete_timeout, text_input_max_length, event_flag, extension_image_size, uid FROM noti_template; DROP TABLE noti_template; ALTER TABLE noti_template_temp RENAME TO noti_template; EOF } UpdatePermission() { chown app_fw:app_fw $DB_NOTIFICATION chown app_fw:app_fw $DB_NOTIFICATION-journal chsmack -a System $DB_NOTIFICATION chsmack -a System $DB_NOTIFICATION-journal } UpdateNotiDB() { echo "## Update noti DB" CheckListTable RESULT=$? if [ ${RESULT} == 1 ]; then UpdateListTable echo "update list table" else echo "list table already updated" fi CheckTemplateTable RESULT=$? if [ ${RESULT} == 1 ]; then UpdateTemplateTable echo "update template table" else echo "template table already updated" fi UpdateDBVersion UpdatePermission } if [[ $CURRENT_VERSION -lt $DB_VERSION ]]; then UpdateNotiDB fi