From d48fae5d6e714231f8fef08f57fe9a70342b0b1e Mon Sep 17 00:00:00 2001 From: Andrey Klimenko Date: Fri, 30 Oct 2015 12:17:31 +0200 Subject: [PATCH] TizenRefApp-4933 prepared build for 3.0. Got rid of unsupported packages dependencies Change-Id: Ia4ea12a9070862a890e24d0cabea194ae538aa61 --- CMakeLists.txt | 10 + LICENSE | 202 +++++++++++ data/ug-setting-notification-efl.png | Bin 0 -> 19568 bytes packaging/ug-setting-notification-efl.manifest | 13 + packaging/ug-setting-notification-efl.spec | 104 ++++++ .../CMakeLists.txt | 57 +++ .../LICENSE | 202 +++++++++++ .../inc/app-notifications-efl.h | 25 ++ .../src/app-notificatons-efl.c | 272 ++++++++++++++ .../CMakeLists.txt | 62 ++++ ug-setting-notification-do-not-disturb-efl/LICENSE | 202 +++++++++++ .../inc/do-not-disturb-efl.h | 43 +++ .../inc/excepted-apps-efl.h | 34 ++ .../res/image/unknown.png | Bin 0 -> 19568 bytes .../src/do-not-disturb-efl.c | 307 ++++++++++++++++ .../src/excepted-apps-efl.c | 137 ++++++++ ug-setting-notification-efl/CMakeLists.txt | 66 ++++ ug-setting-notification-efl/LICENSE | 202 +++++++++++ ug-setting-notification-efl/inc/common-efl.h | 106 ++++++ ug-setting-notification-efl/inc/log.h | 169 +++++++++ .../inc/notification-setting-info.h | 50 +++ .../inc/pkgmgr-setting-info.h | 50 +++ ug-setting-notification-efl/res/images/unknown.png | Bin 0 -> 19568 bytes ug-setting-notification-efl/res/po/CMakeLists.txt | 86 +++++ ug-setting-notification-efl/res/po/ar.po | 39 ++ ug-setting-notification-efl/res/po/az.po | 39 ++ ug-setting-notification-efl/res/po/bg.po | 39 ++ ug-setting-notification-efl/res/po/bn.po | 39 ++ ug-setting-notification-efl/res/po/ca.po | 39 ++ ug-setting-notification-efl/res/po/cs.po | 39 ++ ug-setting-notification-efl/res/po/da.po | 39 ++ ug-setting-notification-efl/res/po/de.po | 39 ++ ug-setting-notification-efl/res/po/el_GR.po | 39 ++ ug-setting-notification-efl/res/po/en.po | 39 ++ ug-setting-notification-efl/res/po/en_PH.po | 39 ++ ug-setting-notification-efl/res/po/en_US.po | 39 ++ ug-setting-notification-efl/res/po/es_ES.po | 39 ++ ug-setting-notification-efl/res/po/es_US.po | 39 ++ ug-setting-notification-efl/res/po/et.po | 39 ++ ug-setting-notification-efl/res/po/eu.po | 39 ++ ug-setting-notification-efl/res/po/fa.po | 39 ++ ug-setting-notification-efl/res/po/fi.po | 39 ++ ug-setting-notification-efl/res/po/fr.po | 39 ++ ug-setting-notification-efl/res/po/fr_CA.po | 39 ++ ug-setting-notification-efl/res/po/ga.po | 39 ++ ug-setting-notification-efl/res/po/gl.po | 39 ++ ug-setting-notification-efl/res/po/gu.po | 39 ++ ug-setting-notification-efl/res/po/he.po | 39 ++ ug-setting-notification-efl/res/po/hi.po | 39 ++ ug-setting-notification-efl/res/po/hr.po | 39 ++ ug-setting-notification-efl/res/po/hu.po | 39 ++ ug-setting-notification-efl/res/po/hy.po | 39 ++ ug-setting-notification-efl/res/po/is.po | 39 ++ ug-setting-notification-efl/res/po/it_IT.po | 39 ++ ug-setting-notification-efl/res/po/ja_JP.po | 39 ++ ug-setting-notification-efl/res/po/ka.po | 39 ++ ug-setting-notification-efl/res/po/kk.po | 39 ++ ug-setting-notification-efl/res/po/kn.po | 39 ++ ug-setting-notification-efl/res/po/ko_KR.po | 39 ++ ug-setting-notification-efl/res/po/lt.po | 39 ++ ug-setting-notification-efl/res/po/lv.po | 39 ++ ug-setting-notification-efl/res/po/mk.po | 39 ++ ug-setting-notification-efl/res/po/ml.po | 39 ++ ug-setting-notification-efl/res/po/nb.po | 39 ++ ug-setting-notification-efl/res/po/nl.po | 39 ++ ug-setting-notification-efl/res/po/pl.po | 39 ++ ug-setting-notification-efl/res/po/pt_BR.po | 39 ++ ug-setting-notification-efl/res/po/pt_PT.po | 39 ++ ug-setting-notification-efl/res/po/ro.po | 39 ++ ug-setting-notification-efl/res/po/ru_RU.po | 39 ++ ug-setting-notification-efl/res/po/si.po | 39 ++ ug-setting-notification-efl/res/po/sk.po | 39 ++ ug-setting-notification-efl/res/po/sl.po | 39 ++ ug-setting-notification-efl/res/po/sr.po | 39 ++ ug-setting-notification-efl/res/po/sv.po | 39 ++ ug-setting-notification-efl/res/po/ta.po | 39 ++ ug-setting-notification-efl/res/po/te.po | 39 ++ ug-setting-notification-efl/res/po/th.po | 39 ++ ug-setting-notification-efl/res/po/tr_TR.po | 39 ++ ug-setting-notification-efl/res/po/uk.po | 39 ++ ug-setting-notification-efl/res/po/ur.po | 39 ++ ug-setting-notification-efl/res/po/uz.po | 39 ++ ug-setting-notification-efl/res/po/zh_CN.po | 39 ++ ug-setting-notification-efl/res/po/zh_HK.po | 39 ++ ug-setting-notification-efl/res/po/zh_TW.po | 39 ++ ug-setting-notification-efl/src/common-efl.c | 391 +++++++++++++++++++++ .../src/notification-setting-info.c | 308 ++++++++++++++++ .../src/pkgmgr-setting-info.c | 84 +++++ .../ug-setting-notification-efl.xml | 23 ++ 89 files changed, 5584 insertions(+) create mode 100755 CMakeLists.txt create mode 100755 LICENSE create mode 100755 data/ug-setting-notification-efl.png create mode 100755 packaging/ug-setting-notification-efl.manifest create mode 100755 packaging/ug-setting-notification-efl.spec create mode 100755 ug-setting-notification-app-notifications-efl/CMakeLists.txt create mode 100755 ug-setting-notification-app-notifications-efl/LICENSE create mode 100755 ug-setting-notification-app-notifications-efl/inc/app-notifications-efl.h create mode 100755 ug-setting-notification-app-notifications-efl/src/app-notificatons-efl.c create mode 100755 ug-setting-notification-do-not-disturb-efl/CMakeLists.txt create mode 100755 ug-setting-notification-do-not-disturb-efl/LICENSE create mode 100755 ug-setting-notification-do-not-disturb-efl/inc/do-not-disturb-efl.h create mode 100755 ug-setting-notification-do-not-disturb-efl/inc/excepted-apps-efl.h create mode 100755 ug-setting-notification-do-not-disturb-efl/res/image/unknown.png create mode 100755 ug-setting-notification-do-not-disturb-efl/src/do-not-disturb-efl.c create mode 100755 ug-setting-notification-do-not-disturb-efl/src/excepted-apps-efl.c create mode 100755 ug-setting-notification-efl/CMakeLists.txt create mode 100755 ug-setting-notification-efl/LICENSE create mode 100755 ug-setting-notification-efl/inc/common-efl.h create mode 100755 ug-setting-notification-efl/inc/log.h create mode 100755 ug-setting-notification-efl/inc/notification-setting-info.h create mode 100755 ug-setting-notification-efl/inc/pkgmgr-setting-info.h create mode 100755 ug-setting-notification-efl/res/images/unknown.png create mode 100755 ug-setting-notification-efl/res/po/CMakeLists.txt create mode 100755 ug-setting-notification-efl/res/po/ar.po create mode 100755 ug-setting-notification-efl/res/po/az.po create mode 100755 ug-setting-notification-efl/res/po/bg.po create mode 100755 ug-setting-notification-efl/res/po/bn.po create mode 100755 ug-setting-notification-efl/res/po/ca.po create mode 100755 ug-setting-notification-efl/res/po/cs.po create mode 100755 ug-setting-notification-efl/res/po/da.po create mode 100755 ug-setting-notification-efl/res/po/de.po create mode 100755 ug-setting-notification-efl/res/po/el_GR.po create mode 100755 ug-setting-notification-efl/res/po/en.po create mode 100755 ug-setting-notification-efl/res/po/en_PH.po create mode 100755 ug-setting-notification-efl/res/po/en_US.po create mode 100755 ug-setting-notification-efl/res/po/es_ES.po create mode 100755 ug-setting-notification-efl/res/po/es_US.po create mode 100755 ug-setting-notification-efl/res/po/et.po create mode 100755 ug-setting-notification-efl/res/po/eu.po create mode 100755 ug-setting-notification-efl/res/po/fa.po create mode 100755 ug-setting-notification-efl/res/po/fi.po create mode 100755 ug-setting-notification-efl/res/po/fr.po create mode 100755 ug-setting-notification-efl/res/po/fr_CA.po create mode 100755 ug-setting-notification-efl/res/po/ga.po create mode 100755 ug-setting-notification-efl/res/po/gl.po create mode 100755 ug-setting-notification-efl/res/po/gu.po create mode 100755 ug-setting-notification-efl/res/po/he.po create mode 100755 ug-setting-notification-efl/res/po/hi.po create mode 100755 ug-setting-notification-efl/res/po/hr.po create mode 100755 ug-setting-notification-efl/res/po/hu.po create mode 100755 ug-setting-notification-efl/res/po/hy.po create mode 100755 ug-setting-notification-efl/res/po/is.po create mode 100755 ug-setting-notification-efl/res/po/it_IT.po create mode 100755 ug-setting-notification-efl/res/po/ja_JP.po create mode 100755 ug-setting-notification-efl/res/po/ka.po create mode 100755 ug-setting-notification-efl/res/po/kk.po create mode 100755 ug-setting-notification-efl/res/po/kn.po create mode 100755 ug-setting-notification-efl/res/po/ko_KR.po create mode 100755 ug-setting-notification-efl/res/po/lt.po create mode 100755 ug-setting-notification-efl/res/po/lv.po create mode 100755 ug-setting-notification-efl/res/po/mk.po create mode 100755 ug-setting-notification-efl/res/po/ml.po create mode 100755 ug-setting-notification-efl/res/po/nb.po create mode 100755 ug-setting-notification-efl/res/po/nl.po create mode 100755 ug-setting-notification-efl/res/po/pl.po create mode 100755 ug-setting-notification-efl/res/po/pt_BR.po create mode 100755 ug-setting-notification-efl/res/po/pt_PT.po create mode 100755 ug-setting-notification-efl/res/po/ro.po create mode 100755 ug-setting-notification-efl/res/po/ru_RU.po create mode 100755 ug-setting-notification-efl/res/po/si.po create mode 100755 ug-setting-notification-efl/res/po/sk.po create mode 100755 ug-setting-notification-efl/res/po/sl.po create mode 100755 ug-setting-notification-efl/res/po/sr.po create mode 100755 ug-setting-notification-efl/res/po/sv.po create mode 100755 ug-setting-notification-efl/res/po/ta.po create mode 100755 ug-setting-notification-efl/res/po/te.po create mode 100755 ug-setting-notification-efl/res/po/th.po create mode 100755 ug-setting-notification-efl/res/po/tr_TR.po create mode 100755 ug-setting-notification-efl/res/po/uk.po create mode 100755 ug-setting-notification-efl/res/po/ur.po create mode 100755 ug-setting-notification-efl/res/po/uz.po create mode 100755 ug-setting-notification-efl/res/po/zh_CN.po create mode 100755 ug-setting-notification-efl/res/po/zh_HK.po create mode 100755 ug-setting-notification-efl/res/po/zh_TW.po create mode 100755 ug-setting-notification-efl/src/common-efl.c create mode 100755 ug-setting-notification-efl/src/notification-setting-info.c create mode 100755 ug-setting-notification-efl/src/pkgmgr-setting-info.c create mode 100755 ug-setting-notification-efl/ug-setting-notification-efl.xml diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100755 index 0000000..df11288 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,10 @@ +CMAKE_MINIMUM_REQUIRED(VERSION 2.6) + +ADD_SUBDIRECTORY(ug-setting-notification-efl) +ADD_SUBDIRECTORY(ug-setting-notification-do-not-disturb-efl) +ADD_SUBDIRECTORY(ug-setting-notification-app-notifications-efl) + +ADD_DEPENDENCIES(ug-setting-notification-do-not-disturb-efl ug-setting-notification-efl) +ADD_DEPENDENCIES(ug-setting-notification-app-notifications-efl ug-setting-notification-efl) + +MESSAGE("notification-setting main End") diff --git a/LICENSE b/LICENSE new file mode 100755 index 0000000..d645695 --- /dev/null +++ b/LICENSE @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + 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. diff --git a/data/ug-setting-notification-efl.png b/data/ug-setting-notification-efl.png new file mode 100755 index 0000000000000000000000000000000000000000..535db6063ad8e69e355c808507480f46ab0ea5bc GIT binary patch literal 19568 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

e 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 + + + + + + + + + + + + diff --git a/packaging/ug-setting-notification-efl.spec b/packaging/ug-setting-notification-efl.spec new file mode 100755 index 0000000..008a72b --- /dev/null +++ b/packaging/ug-setting-notification-efl.spec @@ -0,0 +1,104 @@ +Name: ug-setting-notification-efl +Summary: UG for Settings of Notification Center +Version: 0.0.1 +Release: 1 +Group: Core/Applications +License: Apache-2.0 +Source: %{name}-%{version}.tar.gz +Source1001: %{name}.manifest + + +%if "%{?tizen_profile_name}" == "wearable" +ExcludeArch: %{arm} %ix86 x86_64 +%endif + +%if "%{?tizen_profile_name}"=="tv" +ExcludeArch: %{arm} %ix86 x86_64 +%endif + + +BuildRequires: pkgconfig(elementary) +BuildRequires: pkgconfig(efl-extension) +BuildRequires: pkgconfig(edje) +BuildRequires: pkgconfig(evas) +BuildRequires: pkgconfig(ecore) +BuildRequires: pkgconfig(ui-gadget-1) +BuildRequires: pkgconfig(dlog) +BuildRequires: edje-bin +BuildRequires: cmake +BuildRequires: gettext-tools +#BuildRequires: model-build-features +BuildRequires: pkgconfig(notification) +BuildRequires: pkgconfig(pkgmgr) +BuildRequires: pkgconfig(pkgmgr-info) +BuildRequires: pkgconfig(capi-appfw-package-manager) +BuildRequires: pkgconfig(capi-system-system-settings) +BuildRequires: pkgconfig(capi-appfw-app-manager) +BuildRequires: pkgconfig(capi-appfw-application) + + +%description +UI Gadget module for Settings App. +This package will be loaded into a Settings Application. +User can control the behaviour of notification of each application individually. + + + +%description +ug-setting-notification-do-not-disturb-efl. +%package -n ug-setting-notification-do-not-disturb-efl +Summary: do-not-disturb +Group: TO_BE/FILLED_IN +%description -n ug-setting-notification-do-not-disturb-efl +Description: do not disturb efl + + +%prep +%setup -q +cp %{SOURCE1001} . + + + +%build + +export CFLAGS="$CFLAGS -DTIZEN_DEBUG_ENABLE" +export CXXFLAGS="$CXXFLAGS -DTIZEN_DEBUG_ENABLE" +export FFLAGS="$FFLAGS -DTIZEN_DEBUG_ENABLE" + +%if 0%{?tizen_build_binary_release_type_eng} +export CFLAGS="$CFLAGS -DTIZEN_ENGINEER_MODE" +export CXXFLAGS="$CXXFLAGS -DTIZEN_ENGINEER_MODE" +export FFLAGS="$FFLAGS -DTIZEN_ENGINEER_MODE" +%endif + +%cmake . +make -j2 + +%install +%make_install +mkdir -p %{buildroot}/usr/apps/ug-setting-notification-efl/bin +ln -sf /usr/bin/ug-client %{buildroot}/usr/apps/ug-setting-notification-efl/bin/ug-setting-notification-efl +ln -sf /usr/bin/ug-client %{buildroot}/usr/apps/ug-setting-notification-efl/bin/ug-setting-notification-do-not-disturb-efl +ln -sf /usr/bin/ug-client %{buildroot}/usr/apps/ug-setting-notification-efl/bin/ug-setting-notification-app-notifications-efl + + +#mkdir -p %{buildroot}/usr/ug/bin +#ln -sf /usr/bin/ug-client %{buildroot}/usr/ug/bin/ug-setting-notification-efl + +mkdir -p %{buildroot}/usr/apps/ug-setting-notification-efl/res + +%post -n %{name} -p /sbin/ldconfig + +%postun -n %{name} -p /sbin/ldconfig + + +%files +%manifest %{name}.manifest +%defattr(-,root,root,-) +%{_prefix}/apps/%{name}/* +%{_prefix}/share/packages/%{name}.xml +%{_datarootdir}/license/%{name} +%{_datadir}/icons/default/small/ug-setting-notification-efl.png + +/usr/apps/ug-setting-notification-efl/res/locale/*/LC_MESSAGES/* + diff --git a/ug-setting-notification-app-notifications-efl/CMakeLists.txt b/ug-setting-notification-app-notifications-efl/CMakeLists.txt new file mode 100755 index 0000000..2f4cad2 --- /dev/null +++ b/ug-setting-notification-app-notifications-efl/CMakeLists.txt @@ -0,0 +1,57 @@ +CMAKE_MINIMUM_REQUIRED(VERSION 2.6) +PROJECT(ug-setting-notification-app-notifications-efl C) +SET(PREFIX ${CMAKE_INSTALL_PREFIX}) +SET(PROJECT_NAME "${PROJECT_NAME}") +SET(LIBDIR "${PREFIX}/apps/${PROJECT_NAME}/lib/ug") +SET(RESDIR "${PREFIX}/apps/${PROJECT_NAME}/res") +SET(DATADIR "${PREFIX}/apps/${PROJECT_NAME}/data") +#SET(LOCALEDIR "${RESDIR}/locale") +SET(IMAGEDIR "${RESDIR}/images") +SET(EDJEDIR "${RESDIR}/edje") +SET(ETCDIR "${RESDIR}/etc") + +SET(VERSION_MAJOR 0) +SET(VERSION "${VERSION_MAJOR}.0.1") + + +INCLUDE(FindPkgConfig) +pkg_check_modules(pkgs REQUIRED + elementary + efl-extension + edje + evas + ecore + ui-gadget-1 + dlog + notification + pkgmgr + pkgmgr-info + capi-appfw-package-manager + capi-system-system-settings + capi-appfw-app-manager + capi-appfw-application +) + +SET(BUILD_SOURCE + src/app-notificatons-efl.c +) + +INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/inc) +ADD_DEFINITIONS(${pkgs_CFLAGS}) +ADD_DEFINITIONS("-DPKGNAME=\"${PROJECT_NAME}\"") +#ADD_DEFINITIONS("-DLOCALE=\"${LOCALEDIR}\"") +ADD_DEFINITIONS("-DIMAGEDIR=\"${IMAGEDIR}\"") + +ADD_LIBRARY(${PROJECT_NAME} SHARED ${BUILD_SOURCE}) +TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${pkgs_LDFLAGS} ug-setting-notification-efl) +SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES SOVERSION ${VERSION_MAJOR}) +SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES VERSION ${VERSION}) + +INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/inc) +INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/ug-setting-notification-efl/inc) + +INSTALL(TARGETS ${PROJECT_NAME} DESTINATION /usr/apps/ug-setting-notification-efl/lib/ug) + +MESSAGE("ug-setting-notification-do-not-disturb-efl End") + +# End of a file diff --git a/ug-setting-notification-app-notifications-efl/LICENSE b/ug-setting-notification-app-notifications-efl/LICENSE new file mode 100755 index 0000000..d645695 --- /dev/null +++ b/ug-setting-notification-app-notifications-efl/LICENSE @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + 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. diff --git a/ug-setting-notification-app-notifications-efl/inc/app-notifications-efl.h b/ug-setting-notification-app-notifications-efl/inc/app-notifications-efl.h new file mode 100755 index 0000000..1e0d889 --- /dev/null +++ b/ug-setting-notification-app-notifications-efl/inc/app-notifications-efl.h @@ -0,0 +1,25 @@ +/* + * Copyright (c) 2009 - 2015 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. + * + */ + + +#ifndef _UG_SETTING_NOTIFICATION_EFL_H_ +#define _UG_SETTING_NOTIFICATION_EFL_H_ + +EXPORT_API int UG_MODULE_INIT(struct ug_module_ops *ops); +EXPORT_API void UG_MODULE_EXIT(struct ug_module_ops *ops); + +#endif // _UG-SETTING-NOTIFICATION-EFL_H_ diff --git a/ug-setting-notification-app-notifications-efl/src/app-notificatons-efl.c b/ug-setting-notification-app-notifications-efl/src/app-notificatons-efl.c new file mode 100755 index 0000000..e1ef7cf --- /dev/null +++ b/ug-setting-notification-app-notifications-efl/src/app-notificatons-efl.c @@ -0,0 +1,272 @@ +/* + * Copyright (c) 2009 - 2015 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. + * + */ + + + +#include +#include +#include +#include +#include "notification-setting-info.h" +#include "common-efl.h" + +/** + * @{ + */ + +ug_data *g_ug_data = NULL; + +static Eina_Bool _notifiacation_setting_main_pop_cb(void *data, Elm_Object_Item * it) +{ + NOTISET_DBG(""); + ug_data *ugd = (ug_data *) data; + retv_if(!ugd, EINA_FALSE); + + ug_destroy_me(ugd->ug); + + return EINA_FALSE; +} + +Evas_Object* _create_app_notification_gl(ug_data *ugd) +{ + Evas_Object *parent = ugd->naviframe; + Evas_Object *genlist; + + genlist = elm_genlist_add(parent); + elm_genlist_mode_set(genlist, ELM_LIST_SCROLL); + elm_genlist_mode_set(genlist, ELM_LIST_COMPRESS); + evas_object_size_hint_weight_set(genlist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(genlist, EVAS_HINT_FILL, EVAS_HINT_FILL); + elm_genlist_block_count_set(genlist, 8); + + /* Add Smart Callback */ + evas_object_smart_callback_add(genlist, "realized", gl_realized_cb, NULL); + evas_object_smart_callback_add(genlist, "loaded", gl_loaded_cb, NULL); + evas_object_smart_callback_add(genlist, "longpressed", gl_longpressed_cb, NULL); + evas_object_smart_callback_add(genlist, "contracted", gl_contracted_cb, NULL); + + append_gl_start_option(genlist, "multiline", "app-notifications"); + append_gl_item_list(genlist, get_all_apps_list(), ITEM_STYLE_ONE_LINE); + + return genlist; +} + +static void _create_main_view(void *data) +{ + NOTISET_DBG("create main view"); + ug_data *ugd = (ug_data *) data; + ret_if(!ugd); + + g_ug_data = ugd; + + /* Create genlist */ + g_ug_data->list_main = _create_app_notification_gl(ugd); + + /* back Button */ + Evas_Object *back_btn = elm_button_add(ugd->naviframe); + elm_object_style_set(back_btn, "naviframe/back_btn/default"); + evas_object_smart_callback_add(back_btn, "clicked", back_button_cb, ugd->naviframe); + + /* Push to naviframe */ + g_ug_data->navi_item = elm_naviframe_item_push(ugd->naviframe, APP_STRING("IDS_ST_HEADER_APP_NOTIFICATIONS_ABB"), back_btn, NULL, g_ug_data->list_main, NULL); + elm_naviframe_item_pop_cb_set(g_ug_data->navi_item, _notifiacation_setting_main_pop_cb, ugd); + +} + + +static Evas_Object *_create_fullview(Evas_Object *parent, ug_data *ugd) +{ + NOTISET_DBG(""); + retv_if(!ugd, NULL); + + /* Create Full view */ + ugd->layout = create_layout(parent); + + elm_layout_theme_set(ugd->layout, "layout", "application", "default"); + elm_win_indicator_mode_set(parent, ELM_WIN_INDICATOR_SHOW); + + /* Create background */ + create_background(ugd->layout); + + /* Create navigation bar */ + ugd->naviframe = create_naviframe(ugd->layout); + + /* Create main view */ + _create_main_view(ugd); + + return ugd->layout; +} + +static void *on_create(ui_gadget_h ug, enum ug_mode mode, app_control_h service, void *priv) +{ + + NOTISET_DBG("START"); + Evas_Object *parent; + ug_data *ugd; + + if (!ug || !priv) + return NULL; + + ugd = priv; + ugd->ug = ug; + + parent = ug_get_parent_layout(ug); + if (!parent) + return NULL; + + // set mode + ugd->mode = 0; + + create_app_notification_list(); + ugd->layout = _create_fullview(parent, ugd); + + return ugd->layout; + + +} + +static void on_start(ui_gadget_h ug, app_control_h service, void *priv) +{ + NOTISET_DBG(""); + /* Fill me */ +} + +static void on_pause(ui_gadget_h ug, app_control_h service, void *priv) +{ + NOTISET_DBG(""); + /* Fill me */ +} + +static void on_resume(ui_gadget_h ug, app_control_h service, void *priv) +{ + NOTISET_DBG(""); +} + +static void on_destroy(ui_gadget_h ug, app_control_h service, void *priv) +{ + NOTISET_DBG(""); + + ug_data *ugd = priv;; + + remove_all_apps_list(); + + EVAS_OBJECT_DELIF(ugd->cancel_button); + EVAS_OBJECT_DELIF(ugd->done_button); + EVAS_OBJECT_DELIF(ugd->list_sub); + EVAS_OBJECT_DELIF(ugd->list_main); + EVAS_OBJECT_DELIF(ugd->naviframe); + EVAS_OBJECT_DELIF(ugd->layout); + +} + +static void on_message(ui_gadget_h ug, app_control_h msg, app_control_h service, void *priv) +{ + /* Fill me */ +} + +static void on_event(ui_gadget_h ug, enum ug_event event, app_control_h service, void *priv) +{ + switch (event) { + case UG_EVENT_LOW_MEMORY: + break; + case UG_EVENT_LOW_BATTERY: + break; + case UG_EVENT_LANG_CHANGE: + break; + case UG_EVENT_REGION_CHANGE: + break; + case UG_EVENT_ROTATE_PORTRAIT: + break; + case UG_EVENT_ROTATE_PORTRAIT_UPSIDEDOWN: + break; + case UG_EVENT_ROTATE_LANDSCAPE: + break; + case UG_EVENT_ROTATE_LANDSCAPE_UPSIDEDOWN: + break; + default: + break; + } +} + +static void on_key_event(ui_gadget_h ug, enum ug_key_event event, app_control_h service, void *priv) +{ + switch (event) { + case UG_KEY_EVENT_NONE: + break; + case UG_KEY_EVENT_END: + /** + * @TODO: Terminate UG itself? + */ + break; + default: + break; + } +} + +int UG_MODULE_INIT(struct ug_module_ops *ops) +{ + ug_data *ugd; + + if (ops == NULL) { + return -EINVAL; + } + + ugd = calloc(1, sizeof(ug_data)); + + if (!ugd) { + return -ENOMEM; + } + + ops->create = on_create; + ops->start = on_start; + ops->pause = on_pause; + ops->resume = on_resume; + ops->destroy = on_destroy; + ops->message = on_message; + ops->event = on_event; + ops->key_event = on_key_event; + ops->priv = ugd; + ops->opt = UG_OPT_INDICATOR_ENABLE; + + if (bindtextdomain(PKGNAME, "/usr/apps/ug-setting-notification-efl/res/locale") == NULL) { + /* Failed to allocate memory for allocating heap for store the path of LOCALE directory */ + } + + return 0; +} + +void UG_MODULE_EXIT(struct ug_module_ops *ops) +{ + NOTISET_DBG(""); + + ug_data *ugd; + + if (ops == NULL) { + return; + } + + ugd = ops->priv; + + free(ugd); +} + +/** + * @} + */ + +/* End of a file */ + diff --git a/ug-setting-notification-do-not-disturb-efl/CMakeLists.txt b/ug-setting-notification-do-not-disturb-efl/CMakeLists.txt new file mode 100755 index 0000000..69cbbbc --- /dev/null +++ b/ug-setting-notification-do-not-disturb-efl/CMakeLists.txt @@ -0,0 +1,62 @@ +CMAKE_MINIMUM_REQUIRED(VERSION 2.6) +PROJECT(ug-setting-notification-do-not-disturb-efl C) + +SET(PREFIX ${CMAKE_INSTALL_PREFIX}) +SET(PROJECT_NAME "${PROJECT_NAME}") +SET(LIBDIR "${PREFIX}/apps/${PROJECT_NAME}/lib/ug") +SET(RESDIR "${PREFIX}/apps/${PROJECT_NAME}/res") +SET(DATADIR "${PREFIX}/apps/${PROJECT_NAME}/data") +#SET(LOCALEDIR "${RESDIR}/locale") +SET(IMAGEDIR "${RESDIR}/images") +SET(EDJEDIR "${RESDIR}/edje") +SET(ETCDIR "${RESDIR}/etc") + +SET(VERSION_MAJOR 0) +SET(VERSION "${VERSION_MAJOR}.0.1") + +INCLUDE(FindPkgConfig) +pkg_check_modules(pkgs REQUIRED + elementary + efl-extension + edje + evas + ecore + ui-gadget-1 + dlog + notification + pkgmgr + pkgmgr-info + capi-appfw-package-manager + capi-system-system-settings + capi-appfw-app-manager + capi-appfw-application +) + +SET(BUILD_SOURCE +# ../ug-setting-notification-efl/src/common-efl.c +# ../ug-setting-notification-efl/src/pkgmgr-setting-info.c +# ../ug-setting-notification-efl/src/notification-setting-info.c + src/do-not-disturb-efl.c + src/excepted-apps-efl.c +) + +INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/inc) +ADD_DEFINITIONS(${pkgs_CFLAGS}) +ADD_DEFINITIONS("-DPKGNAME=\"${PROJECT_NAME}\"") +#ADD_DEFINITIONS("-DLOCALE=\"${LOCALEDIR}\"") +ADD_DEFINITIONS("-DIMAGEDIR=\"${IMAGEDIR}\"") + +ADD_LIBRARY(${PROJECT_NAME} SHARED ${BUILD_SOURCE}) + +TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${pkgs_LDFLAGS} ug-setting-notification-efl) +SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES SOVERSION ${VERSION_MAJOR}) +SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES VERSION ${VERSION}) + +INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/inc) +INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/ug-setting-notification-efl/inc) + +INSTALL(TARGETS ${PROJECT_NAME} DESTINATION /usr/apps/ug-setting-notification-efl/lib/ug) + +MESSAGE("ug-setting-notification-do-not-disturb-efl End") + +# End of a file diff --git a/ug-setting-notification-do-not-disturb-efl/LICENSE b/ug-setting-notification-do-not-disturb-efl/LICENSE new file mode 100755 index 0000000..d645695 --- /dev/null +++ b/ug-setting-notification-do-not-disturb-efl/LICENSE @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + 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. diff --git a/ug-setting-notification-do-not-disturb-efl/inc/do-not-disturb-efl.h b/ug-setting-notification-do-not-disturb-efl/inc/do-not-disturb-efl.h new file mode 100755 index 0000000..d5dae01 --- /dev/null +++ b/ug-setting-notification-do-not-disturb-efl/inc/do-not-disturb-efl.h @@ -0,0 +1,43 @@ +/* + * Copyright (c) 2009 - 2015 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. + * + */ + + +#ifndef __DO_NOT_DISTURB_EFL_H__ +#define __DO_NOT_DISTURB_EFL_H__ + +#include +#include +#include + +#include +#include +#include +#include "log.h" +#include "common-efl.h" + + +ug_data* get_ug_data(_); + + + + +EXPORT_API int UG_MODULE_INIT(struct ug_module_ops *ops); +EXPORT_API void UG_MODULE_EXIT(struct ug_module_ops *ops); + +void do_not_disturb_append_item_in_list(Evas_Object* genlist); + +#endif //__DO_NOT_DISTURB_EFL_H__ diff --git a/ug-setting-notification-do-not-disturb-efl/inc/excepted-apps-efl.h b/ug-setting-notification-do-not-disturb-efl/inc/excepted-apps-efl.h new file mode 100755 index 0000000..9c8508b --- /dev/null +++ b/ug-setting-notification-do-not-disturb-efl/inc/excepted-apps-efl.h @@ -0,0 +1,34 @@ +/* + * Copyright (c) 2009 - 2015 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. + * + */ + +#ifndef __EXCEPTED_APPS_EFL_H__ +#define __EXCEPTED_APPS_EFL_H__ + +#include +#include +#include + +#include +#include +#include + + + +void exception_application_clicked_cb(void *data, Evas_Object *obj, void *event_info); + + +#endif //__EXCEPTED_APPS_EFL_H__ \ No newline at end of file diff --git a/ug-setting-notification-do-not-disturb-efl/res/image/unknown.png b/ug-setting-notification-do-not-disturb-efl/res/image/unknown.png new file mode 100755 index 0000000000000000000000000000000000000000..535db6063ad8e69e355c808507480f46ab0ea5bc GIT binary patch literal 19568 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

e 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 +#include +#include +#include +#include "do-not-disturb-efl.h" +#include "pkgmgr-setting-info.h" +#include "excepted-apps-efl.h" +#include "common-efl.h" +/** + * @{ + */ + +ug_data *g_ug_data = NULL; + +static Evas_Object* _create_do_not_disturb_gl(ug_data *ugd); +static void _append_item_in_list(Evas_Object* genlist); + +ug_data* get_ug_data(_) +{ + return g_ug_data; +} + +static void _do_not_disturb_check_changed_cb(void *data, Evas_Object *obj, void *event_info) +{ + NOTISET_DBG(""); + char *appid = (char*)data; + + Eina_Bool state = elm_check_state_get(obj); + set_do_not_disturb(state); + NOTISET_DBG("do_not_disturb check value = %s", state==false ? "FALSE":"TRUE"); +} + + +static Eina_Bool _notifiacation_setting_main_pop_cb(void *data, Elm_Object_Item * it) +{ + NOTISET_DBG(""); + ug_data *ugd = (ug_data *) data; + retv_if(!ugd, EINA_FALSE); + + ug_destroy_me(ugd->ug); + + return EINA_FALSE; +} + +void do_not_disturb_append_item_in_list(Evas_Object* genlist) +{ + append_gl_start_option(genlist, "multiline", "do-not-disturb"); + + append_gl_group_index(genlist, APP_STRING("IDS_ST_HEADER_EXCLUDED_APPS_ABB")); + + append_gl_item_list(genlist, get_excepted_apps_list(), ITEM_STYLE_ONE_ICON); +} + +static Evas_Object* _create_do_not_disturb_gl(ug_data *ugd) +{ + Evas_Object *parent = ugd->naviframe; + Evas_Object *genlist; + + genlist = elm_genlist_add(parent); + elm_genlist_mode_set(genlist, ELM_LIST_SCROLL); + elm_genlist_mode_set(genlist, ELM_LIST_COMPRESS); + evas_object_size_hint_weight_set(genlist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(genlist, EVAS_HINT_FILL, EVAS_HINT_FILL); + elm_genlist_block_count_set(genlist, 8); + + /* Add Smart Callback */ + evas_object_smart_callback_add(genlist, "realized", gl_realized_cb, NULL); + evas_object_smart_callback_add(genlist, "loaded", gl_loaded_cb, NULL); + evas_object_smart_callback_add(genlist, "longpressed", gl_longpressed_cb, NULL); + evas_object_smart_callback_add(genlist, "contracted", gl_contracted_cb, NULL); + + do_not_disturb_append_item_in_list(genlist); + + return genlist; +} + +static void _create_main_view(void *data) +{ + NOTISET_DBG(""); + ug_data *ugd = (ug_data *) data; + ret_if(!ugd); + + g_ug_data = ugd; + g_ug_data->list_main = _create_do_not_disturb_gl(ugd); + + /* back Button */ + Evas_Object *back_btn = elm_button_add(ugd->naviframe); + elm_object_style_set(back_btn, "naviframe/back_btn/default"); + evas_object_smart_callback_add(back_btn, "clicked", back_button_cb, ugd->naviframe); + + /* Push to naviframe */ + g_ug_data->navi_item = elm_naviframe_item_push(ugd->naviframe, APP_STRING("IDS_ST_HEADER_DO_NOT_DISTURB_ABB"), back_btn, NULL, g_ug_data->list_main, NULL); + elm_naviframe_item_pop_cb_set(g_ug_data->navi_item, _notifiacation_setting_main_pop_cb, ugd); + + /* Bottom Button */ + Evas_Object *bottom_box = elm_box_add(ugd->naviframe); + evas_object_size_hint_weight_set(bottom_box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(bottom_box, EVAS_HINT_FILL, EVAS_HINT_FILL); + elm_box_horizontal_set(bottom_box, EINA_TRUE); + evas_object_show(bottom_box); + + Evas_Object *bottom_button = elm_button_add(bottom_box); + evas_object_show(bottom_button); + elm_object_style_set(bottom_button, "bottom"); + evas_object_size_hint_weight_set(bottom_button, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(bottom_button, EVAS_HINT_FILL, 0.5); + elm_object_translatable_text_set(bottom_button, APP_STRING("IDS_ST_BUTTON_MANAGE_EXCLUDED_APPS_ABB")); + evas_object_smart_callback_add(bottom_button, "clicked", exception_application_clicked_cb, g_ug_data); + elm_object_item_part_content_set(g_ug_data->navi_item, "toolbar", bottom_box); + elm_box_pack_start(bottom_box, bottom_button); +} + + +static Evas_Object *_create_fullview(Evas_Object *parent, ug_data *ugd) +{ + NOTISET_DBG(""); + retv_if(!ugd, NULL); + + /* Create Full view */ + ugd->layout = create_layout(parent); + elm_layout_theme_set(ugd->layout, "layout", "application", "default"); + elm_win_indicator_mode_set(parent, ELM_WIN_INDICATOR_SHOW); + + /* Create background */ + create_background(ugd->layout); + + /* Create navigation bar */ + ugd->naviframe = create_naviframe(ugd->layout); + + /* Create main view */ + _create_main_view(ugd); + + return ugd->layout; +} + +static void *on_create(ui_gadget_h ug, enum ug_mode mode, app_control_h service, void *priv) +{ + Evas_Object *parent; + ug_data *ugd; + + if (!ug || !priv) + return NULL; + + ugd = priv; + ugd->ug = ug; + + parent = ug_get_parent_layout(ug); + if (!parent) + return NULL; + + // set mode + ugd->mode = 0; + + create_do_not_disturb_application_list(); + ugd->layout = _create_fullview(parent, ugd); + + return ugd->layout; +} + +static void on_start(ui_gadget_h ug, app_control_h service, void *priv) +{ + NOTISET_DBG(""); + +} + +static void on_pause(ui_gadget_h ug, app_control_h service, void *priv) +{ + NOTISET_DBG(""); + +} + +static void on_resume(ui_gadget_h ug, app_control_h service, void *priv) +{ + NOTISET_DBG(""); + +} + +static void on_destroy(ui_gadget_h ug, app_control_h service, void *priv) +{ + NOTISET_DBG(""); + + ug_data *ugd = priv; + + remove_excepted_apps_list(); + + EVAS_OBJECT_DELIF(ugd->cancel_button); + EVAS_OBJECT_DELIF(ugd->done_button); + EVAS_OBJECT_DELIF(ugd->list_sub); + EVAS_OBJECT_DELIF(ugd->list_main); + EVAS_OBJECT_DELIF(ugd->naviframe); + EVAS_OBJECT_DELIF(ugd->layout); +} + +static void on_message(ui_gadget_h ug, app_control_h msg, app_control_h service, void *priv) +{ + /* Fill me */ +} + +static void on_event(ui_gadget_h ug, enum ug_event event, app_control_h service, void *priv) +{ + switch (event) { + case UG_EVENT_LOW_MEMORY: + break; + case UG_EVENT_LOW_BATTERY: + break; + case UG_EVENT_LANG_CHANGE: + break; + case UG_EVENT_REGION_CHANGE: + break; + case UG_EVENT_ROTATE_PORTRAIT: + break; + case UG_EVENT_ROTATE_PORTRAIT_UPSIDEDOWN: + break; + case UG_EVENT_ROTATE_LANDSCAPE: + break; + case UG_EVENT_ROTATE_LANDSCAPE_UPSIDEDOWN: + break; + default: + break; + } +} + +static void on_key_event(ui_gadget_h ug, enum ug_key_event event, app_control_h service, void *priv) +{ + switch (event) { + case UG_KEY_EVENT_NONE: + break; + case UG_KEY_EVENT_END: + /** + * @TODO: Terminate UG itself? + */ + break; + default: + break; + } +} + +int UG_MODULE_INIT(struct ug_module_ops *ops) +{ + ug_data *ugd; + + if (ops == NULL) { + return -EINVAL; + } + + ugd = calloc(1, sizeof(ug_data)); + + if (!ugd) { + return -ENOMEM; + } + + ops->create = on_create; + ops->start = on_start; + ops->pause = on_pause; + ops->resume = on_resume; + ops->destroy = on_destroy; + ops->message = on_message; + ops->event = on_event; + ops->key_event = on_key_event; + ops->priv = ugd; + ops->opt = UG_OPT_INDICATOR_ENABLE; + + if (bindtextdomain(PKGNAME, "/usr/apps/ug-setting-notification-efl/res/locale") == NULL) { + /* Failed to allocate memory for allocating heap for store the path of LOCALE directory */ + } + + return 0; +} + +void UG_MODULE_EXIT(struct ug_module_ops *ops) +{ + NOTISET_DBG(""); + ug_data *ugd; + + if (ops == NULL) { + return; + } + + ugd = ops->priv; + + free(ugd); +} + +/** + * @} + */ + +/* End of a file */ diff --git a/ug-setting-notification-do-not-disturb-efl/src/excepted-apps-efl.c b/ug-setting-notification-do-not-disturb-efl/src/excepted-apps-efl.c new file mode 100755 index 0000000..d7aed8a --- /dev/null +++ b/ug-setting-notification-do-not-disturb-efl/src/excepted-apps-efl.c @@ -0,0 +1,137 @@ +/* + * Copyright (c) 2009 - 2015 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. + * + */ + + +#include +#include +#include +#include +#include "log.h" +#include "notification-setting-info.h" +#include "common-efl.h" + +static Evas_Object* _create_edit_exception_apps_list(ug_data *ugd) +{ + Evas_Object *parent = ugd->naviframe; + Evas_Object *genlist; + + genlist = elm_genlist_add(parent); + elm_genlist_mode_set(genlist, ELM_LIST_SCROLL); + elm_genlist_mode_set(genlist, ELM_LIST_COMPRESS); + + /* Add Smart Callback */ + evas_object_smart_callback_add(genlist, "realized", gl_realized_cb, NULL); + evas_object_smart_callback_add(genlist, "loaded", gl_loaded_cb, NULL); + evas_object_smart_callback_add(genlist, "longpressed", gl_longpressed_cb, NULL); + evas_object_smart_callback_add(genlist, "contracted", gl_contracted_cb, NULL); + + append_gl_group_index(genlist, APP_STRING("IDS_ST_HEADER_EXCLUDED_APPS_ABB")); + append_gl_item_list(genlist, get_excepted_apps_list(), ITEM_STYLE_DEFAULT); + append_gl_group_index(genlist, APP_STRING("IDS_ST_HEADER_INCLUDED_APPS_ABB")); + append_gl_item_list(genlist, get_not_excepted_apps_list(), ITEM_STYLE_DEFAULT); + + return genlist; +} + + +static void _done_button_cb(void *data, Evas_Object *obj, void *event_info) +{ + NOTISET_DBG(""); + + ug_data* u_data = get_ug_data(); + Eina_List *list = NULL; + + elm_naviframe_item_pop(data); + + EVAS_OBJECT_DELIF(u_data->done_button); + EVAS_OBJECT_DELIF(u_data->cancel_button); + EVAS_OBJECT_DELIF(u_data->list_sub); + + if (u_data->list_main) { + list = get_excepted_apps_list(); + while (list) { + item_info_s *item = (item_info_s*)eina_list_data_get(list); + if (item->do_not_disturb_except == false) { + set_excepted_apps(item->appid, item->do_not_disturb_except); + } + list = eina_list_next(list); + } + + list = get_not_excepted_apps_list(); + while (list) { + item_info_s *item = (item_info_s*)eina_list_data_get(list); + if (item->do_not_disturb_except) { + set_excepted_apps(item->appid, item->do_not_disturb_except); + } + list = eina_list_next(list); + } + + create_do_not_disturb_application_list(); + elm_genlist_clear(u_data->list_main); + do_not_disturb_append_item_in_list(u_data->list_main); + + } +} + + +void _cancel_button_cb(void *data, Evas_Object *obj, void *event_info) +{ + ret_if(!data); + elm_naviframe_item_pop(data); + ug_data* u_data = get_ug_data(); + + EVAS_OBJECT_DELIF(u_data->done_button); + EVAS_OBJECT_DELIF(u_data->cancel_button); + EVAS_OBJECT_DELIF(u_data->list_sub); +} + +void exception_application_clicked_cb(void *data, Evas_Object *obj, void *event_info) +{ + NOTISET_DBG(""); + ug_data* u_data = get_ug_data(); + ret_if(!u_data); + + Elm_Object_Item* navi_item = NULL; + Evas_Object *cancel_btn = NULL; + Evas_Object *done_btn = NULL; + + create_do_not_disturb_application_list(); + + u_data->list_sub = _create_edit_exception_apps_list(u_data); + //genlist = NULL; + + /* Push to naviframe */ + navi_item = elm_naviframe_item_push(u_data->naviframe, APP_STRING("IDS_ST_HEADER_MANAGE_EXCLUDED_APPS_ABB"), NULL, NULL, u_data->list_sub, NULL); + + /* Title Cancel Button */ + cancel_btn = elm_button_add(u_data->naviframe); + elm_object_style_set(cancel_btn, "naviframe/title_left"); + evas_object_smart_callback_add(cancel_btn, "clicked", _cancel_button_cb, u_data->naviframe); + elm_object_text_set(cancel_btn, APP_STRING("IDS_TPLATFORM_ACBUTTON_CANCEL_ABB")); + elm_object_item_part_content_set(navi_item, "title_left_btn", cancel_btn); + u_data->cancel_button = cancel_btn; + + /* Title Done Button */ + done_btn = elm_button_add(u_data->naviframe); + elm_object_style_set(done_btn, "naviframe/title_right"); + evas_object_smart_callback_add(done_btn, "clicked", _done_button_cb, u_data->naviframe); + elm_object_text_set(done_btn, APP_STRING("IDS_TPLATFORM_ACBUTTON_DONE_ABB")); + elm_object_item_part_content_set(navi_item, "title_right_btn", done_btn); + u_data->done_button = done_btn; + +} + diff --git a/ug-setting-notification-efl/CMakeLists.txt b/ug-setting-notification-efl/CMakeLists.txt new file mode 100755 index 0000000..3450559 --- /dev/null +++ b/ug-setting-notification-efl/CMakeLists.txt @@ -0,0 +1,66 @@ +CMAKE_MINIMUM_REQUIRED(VERSION 2.6) +PROJECT(ug-setting-notification-efl C) + +SET(PREFIX ${CMAKE_INSTALL_PREFIX}) +SET(PROJECT_NAME "${PROJECT_NAME}") +SET(LIBDIR "${PREFIX}/apps/${PROJECT_NAME}/lib/ug") +SET(RESDIR "${PREFIX}/apps/${PROJECT_NAME}/res") +SET(DATADIR "${PREFIX}/apps/${PROJECT_NAME}/data") +SET(LOCALEDIR "${RESDIR}/locale") +SET(IMAGEDIR "${RESDIR}/images") +SET(EDJEDIR "${RESDIR}/edje") +SET(ETCDIR "${RESDIR}/etc") + +SET(VERSION_MAJOR 0) +SET(VERSION "${VERSION_MAJOR}.0.1") + +INCLUDE(FindPkgConfig) +pkg_check_modules(pkgs REQUIRED + elementary + efl-extension + edje + evas + ecore + ui-gadget-1 + dlog + notification + pkgmgr + pkgmgr-info + capi-appfw-package-manager + capi-system-system-settings + capi-appfw-app-manager + capi-appfw-application +) + +SET(BUILD_SOURCE + src/common-efl.c + src/pkgmgr-setting-info.c + src/notification-setting-info.c +) + +INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/inc) +ADD_DEFINITIONS(${pkgs_CFLAGS} "-fPIC") +ADD_DEFINITIONS("-DPKGNAME=\"${PROJECT_NAME}\"") +#ADD_DEFINITIONS("-DLOCALE=\"${LOCALEDIR}\"") +ADD_DEFINITIONS("-DIMAGEDIR=\"${IMAGEDIR}\"") + +ADD_LIBRARY(${PROJECT_NAME} STATIC ${BUILD_SOURCE}) +TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${pkgs_LDFLAGS}) +#TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${bin_pkgs_LDFLAGS}) +#SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES SOVERSION ${VERSION_MAJOR}) +#SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES VERSION ${VERSION}) + +INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/LICENSE DESTINATION /usr/share/license RENAME "${PROJECT_NAME}") +INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}.xml DESTINATION /usr/share/packages) +INSTALL(FILES ${CMAKE_SOURCE_DIR}/data/${PROJECT_NAME}.png DESTINATION /usr/share/icons/default/small/) + +INSTALL(TARGETS ${PROJECT_NAME} DESTINATION /usr/apps/ug-setting-notification-efl/lib/ug) + +INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/res/images/ DESTINATION ${IMAGEDIR}) + + +MESSAGE("ug-setting-notification-efl End") + +ADD_SUBDIRECTORY(res/po) + +# End of a file diff --git a/ug-setting-notification-efl/LICENSE b/ug-setting-notification-efl/LICENSE new file mode 100755 index 0000000..d645695 --- /dev/null +++ b/ug-setting-notification-efl/LICENSE @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + 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. diff --git a/ug-setting-notification-efl/inc/common-efl.h b/ug-setting-notification-efl/inc/common-efl.h new file mode 100755 index 0000000..f54c1bd --- /dev/null +++ b/ug-setting-notification-efl/inc/common-efl.h @@ -0,0 +1,106 @@ +/* + * Copyright (c) 2009 - 2015 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. + * + */ + +#ifndef __COMMON_EFL_H__ +#define __COMMON_EFL_H__ + +#include +#include +#include +#include +#include + +#include +#include +#include +#include "log.h" +#include "pkgmgr-setting-info.h" +#include "notification-setting-info.h" + + +#define PKGNAME "ug-setting-notification-efl" +#define APP_STRING(str) dgettext(PKGNAME, str) + + +typedef struct _data_list data_list_t; +struct _data_list +{ + data_list_t *next; + int id; + int index; + char *appid; + char *name; + char *icon; + bool is_app_data; +}; + +typedef struct item_data +{ + int index; + Elm_Object_Item *item; + data_list_t *data; +} item_data_s; + + +/* User created ug data */ +typedef struct ug_data_t +{ + ui_gadget_h ug; + Evas_Object *layout; + Evas_Object *naviframe; + Evas_Object *list_main; + Evas_Object *list_sub; + Evas_Object *cancel_button; + Evas_Object *done_button; + + int mode; + + Elm_Object_Item *navi_item; + +} ug_data; + + +enum { + ITEM_STYLE_DEFAULT = 0, + ITEM_STYLE_ONE_LINE, + ITEM_STYLE_ONE_ICON, +}; + + +Evas_Object *create_layout(Evas_Object *parent); +Evas_Object *create_background(Evas_Object *parent); +Evas_Object *create_naviframe(Evas_Object *parent); + +void gl_loaded_cb(void *data EINA_UNUSED, Evas_Object *obj, void *event_info EINA_UNUSED); +void gl_realized_cb(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info); +void gl_longpressed_cb(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info); + +void gl_selected_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info); +void gl_contracted_cb(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info); +void gl_del_cb(void *data, Evas_Object *obj EINA_UNUSED); + +Evas_Object* create_icon(Evas_Object *parent, char* icon); + +void append_gl_group_index(Evas_Object *genlist, char* text); +void append_gl_item_list(Evas_Object *genlist, Eina_List* list, int style); +void append_gl_start_option(Evas_Object *genlist, char *style, char *ugName); + + +void back_button_cb(void *data, Evas_Object *obj, void *event_info); + + +#endif //__COMMON_EFL_H__ diff --git a/ug-setting-notification-efl/inc/log.h b/ug-setting-notification-efl/inc/log.h new file mode 100755 index 0000000..7f25a32 --- /dev/null +++ b/ug-setting-notification-efl/inc/log.h @@ -0,0 +1,169 @@ +/* + * Copyright (c) 2009 - 2015 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. + * + */ + + +#ifndef _UG_SETTING_NOTIFICATION_LOG_H_ +#define _UG_SETTING_NOTIFICATION_LOG_H_ + +#include +#include + +#undef LOG_TAG +#define LOG_TAG "NOTI-SETTING" + +#define NOTISET_ERR(fmt, arg...) LOGE(" "fmt, ##arg) +#define NOTISET_WARN(fmt, arg...) LOGW(" "fmt, ##arg) +#define NOTISET_DBG(fmt, arg...) LOGD(" "fmt, ##arg) + +#define HAPI __attribute__((visibility("hidden"))) + +#if !defined(FREEIF) +#define FREEIF(p) ({if (p) {free(p); p = NULL; }}) +#endif + +#if !defined(EVAS_OBJECT_DELIF) +#define EVAS_OBJECT_DELIF(p) ({if (p) {evas_object_del(p); p = NULL; }}) +#endif + +#if !defined(_D) +#define _D(fmt, arg...) LOGD(fmt"\n", ##arg) +#endif + +#if !defined(_W) +#define _W(fmt, arg...) LOGW(fmt"\n", ##arg) +#endif + +#if !defined(_E) +#define _E(fmt, arg...) LOGE(fmt"\n", ##arg) +#endif + +#if !defined(_SD) +#define _SD(fmt, arg...) SECURE_LOGD(fmt"\n", ##arg) +#endif + +#if !defined(_SW) +#define _SW(fmt, arg...) SECURE_LOGW(fmt"\n", ##arg) +#endif + +#if !defined(_SE) +#define _SE(fmt, arg...) SECURE_LOGE(fmt"\n", ##arg) +#endif + +#if !defined(_T) +#define _T(package) SECURE_LOG(LOG_DEBUG, "LAUNCH", "[%s:Menuscreen:launch:done]", package); +#endif + +/* Apps Debug message */ +#define LOG_TAG_APPS "APPS" + +#if !defined(_APPS_D) +#define _APPS_D(fmt, arg...) LOG(LOG_DEBUG, LOG_TAG_APPS, " "fmt, ##arg) +#endif + +#if !defined(_APPS_W) +#define _APPS_W(fmt, arg...) LOG(LOG_WARN, LOG_TAG_APPS, " "fmt, ##arg) +#endif + +#if !defined(_APPS_E) +#define _APPS_E(fmt, arg...) LOG(LOG_ERROR, LOG_TAG_APPS, " "fmt, ##arg) +#endif + +#if !defined(_APPS_SD) +#define _APPS_SD(fmt, arg...) SECURE_LOG(LOG_DEBUG, LOG_TAG_APPS, " "fmt, ##arg) +#endif + +#if !defined(_APPS_SW) +#define _APPS_SW(fmt, arg...) SECURE_LOG(LOG_WARN, LOG_TAG_APPS, " "fmt, ##arg) +#endif + +#if !defined(_APPS_SE) +#define _APPS_SE(fmt, arg...) SECURE_LOG(LOG_ERROR, LOG_TAG_APPS, " "fmt, ##arg) +#endif + +#ifdef ADD_FILE_LOG +#define _F(fmt, arg...) do { \ + FILE *fp;\ + fp = fopen("/opt/usr/apps/org.tizen.w-home/data/logs", "a+");\ + if (NULL == fp) break;\ + fprintf(fp, "[%s:%d] "fmt"\n", __func__, __LINE__, ##arg); \ + fclose(fp);\ +} while (0) +#else +#define _F(fmt, arg...) ; +#endif + +#define retvm_if_timer(timer, expr, val, fmt, arg...) do { \ + if (expr) { \ + _E(fmt, ##arg); \ + _E("(%s) -> %s() return", #expr, __FUNCTION__); \ + timer = NULL; \ + return (val); \ + } \ +} while (0) + +#define retvm_if(expr, val, fmt, arg...) do { \ + if(expr) { \ + _E(fmt, ##arg); \ + _E("(%s) -> %s() return", #expr, __FUNCTION__); \ + return val; \ + } \ +} while (0) + +#define retv_if(expr, val) do { \ + if(expr) { \ + _E("(%s) -> %s() return", #expr, __FUNCTION__); \ + return (val); \ + } \ +} while (0) + +#define retm_if(expr, fmt, arg...) do { \ + if(expr) { \ + _E(fmt, ##arg); \ + _E("(%s) -> %s() return", #expr, __FUNCTION__); \ + return; \ + } \ +} while (0) + +#define ret_if(expr) do { \ + if(expr) { \ + _E("(%s) -> %s() return", #expr, __FUNCTION__); \ + return; \ + } \ +} while (0) + +#define goto_if(expr, val) do { \ + if(expr) { \ + _E("(%s) -> goto", #expr); \ + goto val; \ + } \ +} while (0) + +#define break_if(expr) { \ + if(expr) { \ + _E("(%s) -> break", #expr); \ + break; \ + } \ +} + +#define continue_if(expr) { \ + if(expr) { \ + _E("(%s) -> continue", #expr); \ + continue; \ + } \ +} + +#endif /* _UG_SETTING_NOTIFICATION_LOG_H_ */ diff --git a/ug-setting-notification-efl/inc/notification-setting-info.h b/ug-setting-notification-efl/inc/notification-setting-info.h new file mode 100755 index 0000000..942d08c --- /dev/null +++ b/ug-setting-notification-efl/inc/notification-setting-info.h @@ -0,0 +1,50 @@ +/* + * Copyright (c) 2009 - 2015 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. + * + */ + + +#ifndef __NOTIFICATION_SETTING_INFO_H__ +#define __NOTIFICATION_SETTING_INFO_H__ + +#include +#include "pkgmgr-setting-info.h" + + +typedef struct _setting_info_t { + Eina_List *not_excepted_list; + Eina_List *excepted_list; + Eina_List *all_apps_list; +} setting_info_s; + +bool get_do_not_disturb(); +void set_do_not_disturb(bool state); + +bool set_allow_to_nofity(char *pkg_name, bool state); +bool set_excepted_apps(char *pkg_name, bool state); + +Eina_List *get_all_apps_list(); +Eina_List *get_excepted_apps_list(); +Eina_List *get_not_excepted_apps_list(); + +void create_app_notification_list(); +void create_do_not_disturb_application_list(); + +void remove_all_apps_list(); +void remove_excepted_apps_list(); + + +#endif /* __NOTIFICATION_SETTING_INFO_H__ */ + diff --git a/ug-setting-notification-efl/inc/pkgmgr-setting-info.h b/ug-setting-notification-efl/inc/pkgmgr-setting-info.h new file mode 100755 index 0000000..bf14a3f --- /dev/null +++ b/ug-setting-notification-efl/inc/pkgmgr-setting-info.h @@ -0,0 +1,50 @@ +/* + * Copyright (c) 2009 - 2015 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. + * + */ + + +#ifndef __PKGMGR_SETTING_INFO_H__ +#define __PKGMGR_SETTING_INFO_H__ + +#include +#include "log.h" + + +#define DEFAULT_ICON IMAGEDIR"/unknown.png" + + +typedef struct { + /* innate features */ + char *appid; + char *name; + char *icon; + + int ordering; + bool is_app_data; + int index; + bool allow_to_notify; + bool do_not_disturb_except; + bool visibility_class; + int item_style; +} item_info_s; + +HAPI item_info_s *apps_item_info_create(const char *appid); +HAPI char *get_app_icon(char *appid); +HAPI char *get_app_name(const char *appid); +HAPI int apps_sort_cb(const void *d1, const void *d2); + + +#endif //__PKGMGR_SETTING_INFO_H__ diff --git a/ug-setting-notification-efl/res/images/unknown.png b/ug-setting-notification-efl/res/images/unknown.png new file mode 100755 index 0000000000000000000000000000000000000000..535db6063ad8e69e355c808507480f46ab0ea5bc GIT binary patch literal 19568 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

e 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 z=HwKkN;item_style = "groupindex"; + itc->func.text_get = gl_group_index_text_get_cb; + itc->func.content_get = NULL; + itc->func.del = gl_del_cb; + + + elm_genlist_item_append(genlist, /* genlist object */ + itc, /* item class */ + strdup(text), /* item class user data */ + NULL, /* parent item */ + ELM_GENLIST_ITEM_NONE, /* item type */ + gl_selected_cb, /* select smart callback */ + NULL); /* smart callback user data */ + + + elm_genlist_item_class_free(itc); +} + +static void _excepted_check_changed_cb(void *data, Evas_Object *obj, void *event_info) +{ + NOTISET_DBG(""); + item_info_s *data_list = data; + ret_if(!data_list); + + Eina_Bool state = elm_check_state_get(obj); + data_list->do_not_disturb_except = state; + + NOTISET_DBG("appid = %s state = %d", data_list->appid, state); +} + +static void _do_not_disturb_check_changed_cb(void *data, Evas_Object *obj, void *event_info) +{ + NOTISET_DBG(""); + + Eina_Bool state = elm_check_state_get(obj); + set_do_not_disturb(state); + NOTISET_DBG("do_not_disturb check value = %s", state==false ? "FALSE":"TRUE"); +} + + +static void _allow_to_nofity_check_changed_cb(void *data, Evas_Object *obj, void *event_info) +{ + NOTISET_DBG(""); + item_info_s *data_list = data; + ret_if(!data_list); + + Eina_Bool state = elm_check_state_get(obj); + set_allow_to_nofity(data_list->appid, state); + data_list->allow_to_notify = state; + NOTISET_DBG("appid = %s state = %d", data_list->appid, state); +} + +static Evas_Object* gl_content_get_cb(void *data, Evas_Object *obj, const char *part) +{ + retv_if(!data, NULL); + + Evas_Object *content = NULL; + + item_info_s *data_list = data; + if (!strcmp(part, "elm.swallow.icon") || !strcmp(part, "elm.icon.left") ) { + content = elm_layout_add(obj); + elm_layout_theme_set(content, "layout", "list/C/type.1", "default"); + Evas_Object *icon = create_icon(content, data_list->icon); + elm_layout_content_set(content, "elm.swallow.content", icon); + } + + if (data_list->item_style == ITEM_STYLE_DEFAULT && !strcmp(part, "elm.swallow.end")) { + content = elm_check_add(obj); + elm_object_style_set(content, "default"); + elm_check_state_set(content, data_list->do_not_disturb_except); + evas_object_show(content); + evas_object_pass_events_set(content, 1); + evas_object_smart_callback_add(content, "changed", _excepted_check_changed_cb, data_list); + evas_object_propagate_events_set(content, 0); + return content; + } else if (data_list->item_style == ITEM_STYLE_ONE_LINE && !strcmp(part, "elm.icon.right")) { + content = elm_check_add(obj); + elm_object_style_set(content, "on&off"); + elm_check_state_set(content, data_list->allow_to_notify); + evas_object_show(content); + evas_object_pass_events_set(content, 1); + evas_object_smart_callback_add(content, "changed", _allow_to_nofity_check_changed_cb, data_list); + evas_object_propagate_events_set(content, 0); + return content; + } + + return content; +} + + +static char* gl_text_get_cb(void *data, Evas_Object *obj, const char *part) +{ + item_info_s *data_list = data; + retv_if(data_list == NULL, NULL); + + if (!strcmp(part, "elm.text") || !strcmp(part, "elm.text.main.left")) { + return strdup(data_list->name); + } + + return NULL; +} + +void append_gl_item_list(Evas_Object *genlist, Eina_List* list, int style) { + NOTISET_DBG(""); + + Elm_Genlist_Item_Class *itc = elm_genlist_item_class_new(); + ret_if(!itc); + + item_info_s *item; + char *before_text = NULL; + int count = 0; + + if (style == ITEM_STYLE_ONE_LINE){ + itc->item_style = "1line"; + } else if(style == ITEM_STYLE_ONE_ICON){ + itc->item_style = "one_icon"; + } else { + itc->item_style = "default"; + } + itc->func.text_get = gl_text_get_cb; + itc->func.content_get = gl_content_get_cb; + itc->func.del = gl_del_cb; + + count = eina_list_count(list); + NOTISET_DBG("count %d", count); + + while (list) { + item = (item_info_s*)eina_list_data_get(list); + item->item_style = style; + + if (style == ITEM_STYLE_ONE_LINE) { + int unicode_len = eina_unicode_utf8_get_len(item->name); + int str_len = strlen(item->name); + int lang_byte = str_len/unicode_len+(str_len%unicode_len > 0 ? 1: 0); + + if ( before_text == NULL || strncmp(before_text, item->name, lang_byte) != 0 ) { + if (before_text != NULL) free(before_text); + before_text = strndup(item->name, lang_byte); + append_gl_group_index(genlist, before_text); + } + } + elm_genlist_item_append(genlist, /* genlist object */ + itc, /* item class */ + item, /* item class user data */ + NULL, /* parent item */ + ELM_GENLIST_ITEM_NONE, /* item type */ + gl_selected_cb, /* select smart callback */ + NULL); /* smart callback user data */ + list = eina_list_next(list); + } + elm_genlist_item_class_free(itc); + if (before_text) + free(before_text); +} + + +static char *_gl_option_text_get_cb(void *data, Evas_Object *obj, const char *part) +{ + char buf[1024]; + + retv_if(!data, NULL); + if (!strcmp(data, "app-notifications")) { + if (!strcmp("elm.text.multiline", part)) + { + if (get_do_not_disturb()) { + snprintf(buf, sizeof(buf), "%s", + APP_STRING("IDS_ST_BODY_DO_NOT_DISTURB_IS_ENABLED_NOTIFICATIONS_FROM_THE_APPLICATIONS_YOU_HAVE_SELECTED_BELOW_WILL_ONLY_BE_SHOWN_IN_THE_NOTIFICATION_PANEL")); + } else { + snprintf(buf, sizeof(buf), "%s", + APP_STRING("IDS_ST_BODY_SELECT_THE_APPLICATIONS_YOU_WANT_TO_RECEIVE_NOTIFICATIONS_FROM_BELOW")); + } + return strdup(buf); + } + } else if(!strcmp(data, "do-not-disturb")) { + if (!strcmp("elm.text.multiline", part)) { + snprintf(buf, sizeof(buf), "%s", + APP_STRING("IDS_ST_BODY_MUTE_ALL_ALERTS_AND_SHOW_NOTIFICATIONS_IN_THE_NOTIFICATION_PANEL_ONLY_AND_NOT_IN_POP_UPS_OR_ON_THE_STATUS_BAR_MSG")); + return strdup(buf); + } + + if (!strcmp(part, "elm.text")) { + return strdup(APP_STRING("IDS_ST_HEADER_DO_NOT_DISTURB_ABB")); + } + } + + return NULL; +} + + + +static Evas_Object* _gl_option_content_get_cb(void *data, Evas_Object *obj, const char *part) +{ + retv_if(!data, NULL); + + if (!strcmp(data, "do-not-disturb") &&!strcmp(part, "elm.swallow.end") ) { + Evas_Object *check = NULL; + check = elm_check_add(obj); + elm_object_style_set(check, "on&off"); + elm_check_state_set(check, get_do_not_disturb()); + evas_object_show(check); + evas_object_pass_events_set(check, 1); + evas_object_smart_callback_add(check, "changed", _do_not_disturb_check_changed_cb, NULL); + evas_object_propagate_events_set(check, 0); + return check; + } + return NULL; +} + + + +void append_gl_start_option(Evas_Object *genlist, char *style, char *ugName) { + NOTISET_DBG(""); + + Elm_Genlist_Item_Class *itc = elm_genlist_item_class_new(); + ret_if(!itc); + + itc->item_style = style; + itc->func.text_get = _gl_option_text_get_cb; + itc->func.content_get = _gl_option_content_get_cb; + itc->func.del = gl_del_cb; + + elm_genlist_item_append(genlist, /* genlist object */ + itc, /* item class */ + ugName, /* item class user data */ + NULL, /* parent item */ + ELM_GENLIST_ITEM_NONE, /* item type */ + gl_selected_cb, /* select smart callback */ + NULL); /* smart callback user data */ + + elm_genlist_item_class_free(itc); +} + + +void back_button_cb(void *data, Evas_Object *obj, void *event_info) +{ + ret_if(!data); + elm_naviframe_item_pop(data); +} diff --git a/ug-setting-notification-efl/src/notification-setting-info.c b/ug-setting-notification-efl/src/notification-setting-info.c new file mode 100755 index 0000000..5ca31c9 --- /dev/null +++ b/ug-setting-notification-efl/src/notification-setting-info.c @@ -0,0 +1,308 @@ +/* + * Copyright (c) 2009 - 2015 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. + * + */ + + +#include "notification-setting-info.h" +#include +#include +#include + +setting_info_s *setting_info = NULL; + +#define VOICE_CALL_PACKAGE "org.tizen.call-ui" + +void create_app_notification_list() +{ + NOTISET_DBG(""); + int i = 0; + int count = 0; + char *package_name = NULL; + bool allow_to_notify = false; + bool do_not_disturb_except = false; + notification_setting_h setting_array = NULL; + notification_setting_h *temp = NULL; + item_info_s *item_info = NULL; + + remove_all_apps_list(); + setting_info = calloc(1, sizeof(setting_info_s)); + + notification_setting_get_setting_array(&setting_array, &count); + ret_if(!setting_array); + NOTISET_DBG("count %d", count); + + for (i = 0; i < count; i++) { + item_info = calloc(1, sizeof(item_info_s)); + if (item_info) { + temp = setting_array + i; + + notification_setting_get_package_name(temp, &package_name); + item_info->appid = package_name; + + notification_setting_get_allow_to_notify(temp, &allow_to_notify); + item_info->allow_to_notify = allow_to_notify; + + notification_setting_get_do_not_disturb_except(temp, &do_not_disturb_except); + item_info->do_not_disturb_except = do_not_disturb_except; + + item_info->icon = get_app_icon(package_name); + item_info->name = get_app_name(package_name); + + item_info->index = i; + + if (item_info->name && strcmp(package_name, VOICE_CALL_PACKAGE) != 0) { + setting_info->all_apps_list = eina_list_append(setting_info->all_apps_list, item_info); + } else { + FREEIF(package_name); + FREEIF(item_info->name); + FREEIF(item_info->icon); + FREEIF(item_info); + } + } + } + + setting_info->all_apps_list = eina_list_sort(setting_info->all_apps_list, eina_list_count(setting_info->all_apps_list), apps_sort_cb); + notification_setting_free_notification(setting_array); +} + +void create_do_not_disturb_application_list() +{ + NOTISET_DBG(""); + int i = 0; + int count = 0; + char *package_name = NULL; + bool allow_to_notify = false; + bool do_not_disturb_except = false; + notification_setting_h setting_array = NULL; + notification_setting_h *temp = NULL; + + remove_excepted_apps_list(); + setting_info = calloc(1, sizeof(setting_info_s)); + + notification_setting_get_setting_array(&setting_array, &count); + ret_if(!setting_array); + NOTISET_DBG("count %d", count); + + item_info_s *item_info = NULL; + for (i = 0; i < count; i++) { + item_info = calloc(1, sizeof(item_info_s)); + if (item_info) { + temp = setting_array + i; + + notification_setting_get_package_name(temp, &package_name); + item_info->appid = package_name; + + notification_setting_get_allow_to_notify(temp, &allow_to_notify); + item_info->allow_to_notify = allow_to_notify; + + notification_setting_get_do_not_disturb_except(temp, &do_not_disturb_except); + item_info->do_not_disturb_except = do_not_disturb_except; + + item_info->icon = get_app_icon(package_name); + item_info->name = get_app_name(package_name); + + item_info->index = i; + + if(item_info->name) { + if (do_not_disturb_except) { + setting_info->excepted_list = eina_list_append(setting_info->excepted_list, item_info); + } else { + setting_info->not_excepted_list = eina_list_append(setting_info->not_excepted_list, item_info); + } + } else { + FREEIF(package_name); + FREEIF(item_info->name); + FREEIF(item_info->icon); + FREEIF(item_info); + } + } + } + + setting_info->excepted_list = eina_list_sort(setting_info->excepted_list, eina_list_count(setting_info->excepted_list), apps_sort_cb); + setting_info->not_excepted_list = eina_list_sort(setting_info->not_excepted_list, eina_list_count(setting_info->not_excepted_list), apps_sort_cb); + + notification_setting_free_notification(setting_array); +} + +Eina_List *get_excepted_apps_list() +{ + NOTISET_DBG(""); + return setting_info->excepted_list; +} + +Eina_List *get_all_apps_list() +{ + NOTISET_DBG(""); + return setting_info->all_apps_list; +} + + +Eina_List *get_not_excepted_apps_list() +{ + NOTISET_DBG(""); + return setting_info->not_excepted_list; +} + + +bool get_do_not_disturb() +{ + NOTISET_DBG(""); + + int err = NOTIFICATION_ERROR_NONE; + notification_system_setting_h system_setting = NULL; + bool do_not_disturb = false; + + err = notification_system_setting_load_system_setting(&system_setting); + if (err != NOTIFICATION_ERROR_NONE || system_setting == NULL) { + NOTISET_ERR("notification_system_setting_load_system_setting failed [%d]\n", err); + goto out; + } + + notification_system_setting_get_do_not_disturb(system_setting, &do_not_disturb); + NOTISET_DBG("do_not_disturb [%d]\n", do_not_disturb); + +out: + if (system_setting) + notification_system_setting_free_system_setting(system_setting); + + return do_not_disturb; +} + +void set_do_not_disturb(bool state) +{ + NOTISET_DBG(""); + int err = NOTIFICATION_ERROR_NONE; + notification_system_setting_h system_setting = NULL; + + err = notification_system_setting_load_system_setting(&system_setting); + if (err != NOTIFICATION_ERROR_NONE || system_setting == NULL) { + NOTISET_ERR("notification_system_setting_load_system_setting failed [%d]\n", err); + goto out; + } + + notification_system_setting_set_do_not_disturb(system_setting, state); + NOTISET_DBG("set do_not_disturb [%d]\n", state); + + err = notification_system_setting_update_system_setting(system_setting); + if (err != NOTIFICATION_ERROR_NONE) { + NOTISET_ERR("notification_setting_update_setting [%d]\n", err); + goto out; + } +out: + if (system_setting) + notification_system_setting_free_system_setting(system_setting); + +} + +bool set_allow_to_nofity(char *pkg_name, bool state) +{ + NOTISET_DBG(""); + int err = NOTIFICATION_ERROR_NONE; + + notification_system_setting_h system_setting = NULL; + + err = notification_setting_get_setting_by_package_name(pkg_name, &system_setting); + if (err != NOTIFICATION_ERROR_NONE || system_setting == NULL) { + NOTISET_ERR("notification_setting_get_setting_by_package_name [%d]\n", err); + goto out; + } + + notification_setting_set_allow_to_notify(system_setting, state); + NOTISET_DBG("notification_setting_set_allow_to_notify [%d]\n", state); + + err = notification_setting_update_setting(system_setting); + if (err != NOTIFICATION_ERROR_NONE) { + NOTISET_ERR("notification_setting_update_setting [%d]\n", err); + goto out; + } + + if (system_setting) + notification_system_setting_free_system_setting(system_setting); + return true; + +out: + if (system_setting) + notification_system_setting_free_system_setting(system_setting); + + return false; + +} + +bool set_excepted_apps(char *pkg_name, bool state) +{ + NOTISET_DBG(""); + + int err = NOTIFICATION_ERROR_NONE; + + notification_system_setting_h system_setting = NULL; + + err = notification_setting_get_setting_by_package_name(pkg_name, &system_setting); + if (err != NOTIFICATION_ERROR_NONE || system_setting == NULL) { + NOTISET_ERR("notification_setting_get_setting_by_package_name [%d]\n", err); + goto out; + } + + notification_setting_set_do_not_disturb_except(system_setting, state); + NOTISET_DBG("notification_setting_set_do_not_disturb_except [%s] [%d]\n", pkg_name, state); + + err = notification_setting_update_setting(system_setting); + if (err != NOTIFICATION_ERROR_NONE) { + NOTISET_ERR("notification_setting_update_setting err[%d]\n", err); + } + + if (system_setting) + notification_system_setting_free_system_setting(system_setting); + return true; + +out: + if (system_setting) + notification_system_setting_free_system_setting(system_setting); + + return false; + +} + +static void _remove_apps_list(Eina_List* input_list) { + NOTISET_DBG(""); + item_info_s *item_info = NULL; + + if(input_list) { + EINA_LIST_FREE(input_list, item_info) { + //NOTISET_DBG("remove %s", item_info->name); + FREEIF(item_info->appid); + FREEIF(item_info->name); + FREEIF(item_info->icon); + FREEIF(item_info); + } + } +} + + +void remove_all_apps_list() { + NOTISET_DBG(""); + if(setting_info) { + _remove_apps_list(setting_info->all_apps_list); + } +} +void remove_excepted_apps_list(){ + NOTISET_DBG(""); + if(setting_info) { + _remove_apps_list(setting_info->excepted_list); + _remove_apps_list(setting_info->not_excepted_list); + } + +} + diff --git a/ug-setting-notification-efl/src/pkgmgr-setting-info.c b/ug-setting-notification-efl/src/pkgmgr-setting-info.c new file mode 100755 index 0000000..0abc086 --- /dev/null +++ b/ug-setting-notification-efl/src/pkgmgr-setting-info.c @@ -0,0 +1,84 @@ +/* + * Copyright (c) 2009 - 2015 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. + * + */ + + +#include +#include +#include "pkgmgr-setting-info.h" + +int apps_sort_cb(const void *d1, const void *d2) +{ + item_info_s *tmp1 = (item_info_s *) d1; + item_info_s *tmp2 = (item_info_s *) d2; + + if (NULL == tmp1 || NULL == tmp1->name) return 1; + else if (NULL == tmp2 || NULL == tmp2->name) return -1; + + return strcmp(tmp1->name, tmp2->name); +} + +HAPI char *get_app_icon(char *appid) +{ + pkgmgrinfo_appinfo_h appinfo_h = NULL; + char *tmp = NULL; + char *name = NULL; + +// retv_if(0 > pkgmgrinfo_appinfo_get_appinfo(appid, &appinfo_h), NULL); +// goto_if(PMINFO_R_OK != pkgmgrinfo_appinfo_get_icon(appinfo_h, &tmp), ERROR); + + pkgmgrinfo_appinfo_get_appinfo(appid, &appinfo_h); + pkgmgrinfo_appinfo_get_icon(appinfo_h, &tmp); + + if (tmp) { + name = strdup(tmp); + goto_if(NULL == name, ERROR); + } + + pkgmgrinfo_appinfo_destroy_appinfo(appinfo_h); + return name; + +ERROR: + pkgmgrinfo_appinfo_destroy_appinfo(appinfo_h); + return NULL; + +} + + +HAPI char *get_app_name(const char *appid) +{ + pkgmgrinfo_appinfo_h appinfo_h = NULL; + char *tmp = NULL; + char *name = NULL; + +// retv_if(0 > pkgmgrinfo_appinfo_get_appinfo(appid, &appinfo_h), NULL); +// goto_if(PMINFO_R_OK != pkgmgrinfo_appinfo_get_label(appinfo_h, &tmp), ERROR); + + pkgmgrinfo_appinfo_get_appinfo(appid, &appinfo_h); + pkgmgrinfo_appinfo_get_label(appinfo_h, &tmp); + + if (tmp) { + name = strdup(tmp); + goto_if(NULL == name, ERROR); + } + + pkgmgrinfo_appinfo_destroy_appinfo(appinfo_h); + return name; + +ERROR: + pkgmgrinfo_appinfo_destroy_appinfo(appinfo_h); + return NULL; +} diff --git a/ug-setting-notification-efl/ug-setting-notification-efl.xml b/ug-setting-notification-efl/ug-setting-notification-efl.xml new file mode 100755 index 0000000..d111c85 --- /dev/null +++ b/ug-setting-notification-efl/ug-setting-notification-efl.xml @@ -0,0 +1,23 @@ + + + + Samsung + Notification Setting + + ug-setting-notification-efl.png + + + + ug-setting-notification-efl.png + + + + + + http://tizen.org/privilege/packagemanager.info + http://tizen.org/privilege/packagemanager.install + http://tizen.org/privilege/packagemanager.setting + + + + -- 2.7.4