├── settings.gradle ├── translation tables ├── slovenian.txt └── cyrilic.txt ├── app ├── lint.xml ├── src │ └── main │ │ ├── assets │ │ └── xposed_init │ │ ├── res │ │ ├── mipmap-hdpi │ │ │ └── ic_launcher.png │ │ ├── mipmap-mdpi │ │ │ └── ic_launcher.png │ │ ├── mipmap-xhdpi │ │ │ └── ic_launcher.png │ │ ├── mipmap-xxhdpi │ │ │ └── ic_launcher.png │ │ ├── mipmap-xxxhdpi │ │ │ └── ic_launcher.png │ │ ├── drawable-hdpi │ │ │ ├── ic_social_share.png │ │ │ ├── ic_action_pebble.png │ │ │ ├── notificationicon.png │ │ │ ├── ic_action_action_settings.png │ │ │ ├── ic_action_content_select_all.png │ │ │ └── ic_action_content_select_none.png │ │ ├── drawable-mdpi │ │ │ ├── ic_social_share.png │ │ │ ├── ic_action_pebble.png │ │ │ ├── notificationicon.png │ │ │ ├── ic_action_action_settings.png │ │ │ ├── ic_action_content_select_all.png │ │ │ └── ic_action_content_select_none.png │ │ ├── drawable-xhdpi │ │ │ ├── ic_action_pebble.png │ │ │ ├── ic_social_share.png │ │ │ ├── notificationicon.png │ │ │ ├── ic_action_action_settings.png │ │ │ ├── ic_action_content_select_all.png │ │ │ └── ic_action_content_select_none.png │ │ ├── drawable-xxhdpi │ │ │ ├── ic_action_pebble.png │ │ │ ├── ic_social_share.png │ │ │ ├── notificationicon.png │ │ │ ├── ic_action_action_settings.png │ │ │ ├── ic_action_content_select_all.png │ │ │ └── ic_action_content_select_none.png │ │ ├── layout │ │ │ ├── view_regex_list_separator.xml │ │ │ ├── setting_separator.xml │ │ │ ├── dialog_text_entry.xml │ │ │ ├── activity_xposed_settings.xml │ │ │ ├── item_icon.xml │ │ │ ├── tasker_app_list_item.xml │ │ │ ├── activity_main.xml │ │ │ ├── fragment_regex_list_header.xml │ │ │ ├── fragment_regex_list_item.xml │ │ │ ├── dialog_iconpicker.xml │ │ │ ├── fragment_replacement.xml │ │ │ ├── activity_per_app_settings.xml │ │ │ ├── pebble_app_list_item.xml │ │ │ ├── dialog_add_action_intent.xml │ │ │ ├── setting_category.xml │ │ │ ├── fragment_pebble_app_list.xml │ │ │ ├── fragment_app_list.xml │ │ │ ├── fragment_app_list_item.xml │ │ │ ├── setting_spinner.xml │ │ │ ├── setting_customview.xml │ │ │ ├── dialog_replacer_file_picker.xml │ │ │ ├── setting_edittext.xml │ │ │ ├── fragment_regex_list.xml │ │ │ ├── setting_checkbox.xml │ │ │ ├── activity_tasker_action_picker.xml │ │ │ ├── setting_button.xml │ │ │ ├── fragment_options.xml │ │ │ ├── setting_list.xml │ │ │ ├── activity_tasker_dismiss.xml │ │ │ ├── setting_color.xml │ │ │ ├── setting_icon.xml │ │ │ ├── dialog_vibration_pattern.xml │ │ │ ├── activity_tasker_notification.xml │ │ │ ├── setting_tasklist.xml │ │ │ ├── dialog_replacer_edit.xml │ │ │ └── setting_intent_list.xml │ │ ├── values │ │ │ ├── module_scope.xml │ │ │ ├── dimens.xml │ │ │ ├── colors.xml │ │ │ ├── strings_watchapp_handling.xml │ │ │ ├── strings_xposed.xml │ │ │ ├── strings_pebble_app_retrieval.xml │ │ │ └── styles.xml │ │ ├── drawable │ │ │ ├── category_background.xml │ │ │ ├── black_border.xml │ │ │ ├── ic_action_content_new.xml │ │ │ └── list_background.xml │ │ ├── menu │ │ │ ├── tasker_setup.xml │ │ │ ├── replacer.xml │ │ │ ├── pebbleapps.xml │ │ │ └── main.xml │ │ ├── drawable-v21 │ │ │ └── list_background.xml │ │ ├── xml │ │ │ └── settings_xposed.xml │ │ └── raw │ │ │ └── notices.xml │ │ └── java │ │ └── com │ │ ├── matejdro │ │ └── pebblenotificationcenter │ │ │ ├── appsetting │ │ │ ├── PebbleAppNotificationMode.java │ │ │ ├── AbsAppSettingStorage.java │ │ │ └── AppSettingStorage.java │ │ │ ├── pebble │ │ │ ├── appretrieval │ │ │ │ ├── AppRetrievalCallback.java │ │ │ │ └── Sdk2AppRetrieval.java │ │ │ └── DeliveryListener.java │ │ │ ├── ui │ │ │ ├── perapp │ │ │ │ └── settingitems │ │ │ │ │ ├── ActivityResultItem.java │ │ │ │ │ ├── AppEnabledCheckboxItem.java │ │ │ │ │ ├── BaseSettingItem.java │ │ │ │ │ ├── WritingPhrasesItem.java │ │ │ │ │ ├── CannedResponsesItem.java │ │ │ │ │ ├── VibrationPatternItem.java │ │ │ │ │ ├── ResetDefaultsButtonItem.java │ │ │ │ │ ├── CheckBoxItem.java │ │ │ │ │ └── TaskerTaskListItem.java │ │ │ ├── XposedSettingsActivity.java │ │ │ ├── OptionsFragment.java │ │ │ ├── ReplacerFilePickerDialog.java │ │ │ ├── DialogVibrationPatternPicker.java │ │ │ └── ReplacerEditDialog.java │ │ │ ├── lists │ │ │ ├── NotificationListAdapter.java │ │ │ ├── NotificationHistoryAdapter.java │ │ │ └── ActiveNotificationsAdapter.java │ │ │ ├── PebbleConnectedReceiver.java │ │ │ ├── notifications │ │ │ ├── actions │ │ │ │ ├── lists │ │ │ │ │ ├── ActionList.java │ │ │ │ │ ├── NotificationActionList.java │ │ │ │ │ └── WritingPhrasesList.java │ │ │ │ ├── NotificationAction.java │ │ │ │ ├── DismissOnPebbleAction.java │ │ │ │ ├── NotifyAction.java │ │ │ │ ├── PendingIntentAction.java │ │ │ │ ├── MuteAppAction.java │ │ │ │ ├── ReplaceNotificationAction.java │ │ │ │ ├── MuteAppTemporarilyAction.java │ │ │ │ └── IntentAction.java │ │ │ ├── SideChannelNotificationListener.java │ │ │ ├── AccesibilityNotificationListener.java │ │ │ ├── JellybeanNotificationListener.java │ │ │ └── NCUserPrompter.java │ │ │ ├── CustomNotificationCatcher.java │ │ │ ├── util │ │ │ ├── SettingsMemoryStorage.java │ │ │ └── ConfigBackup.java │ │ │ ├── tasker │ │ │ ├── TaskerDismissActivity.java │ │ │ ├── TaskerAppSettingsActivity.java │ │ │ ├── TaskerActionPickerActivity.java │ │ │ ├── TaskerNotificationActivity.java │ │ │ └── TaskerGlobalSettingsActivity.java │ │ │ ├── ProcessedNotification.java │ │ │ ├── NotificationHistoryStorage.java │ │ │ ├── NotificationKey.java │ │ │ ├── PebbleNotificationCenter.java │ │ │ └── location │ │ │ └── LocationLookup.java │ │ └── luckycatlabs │ │ └── sunrisesunset │ │ ├── Zenith.java │ │ └── dto │ │ └── Location.java └── build.gradle ├── promo ├── icon.png ├── icon.psd ├── Pebble.psd ├── Pebble1.png ├── Pebble2.png ├── Pebble3.png ├── Pebble4.png ├── color_hand.png ├── banner-pebble.png ├── banner-pebble.psd ├── pebbleshot1.png ├── pebbleshot2.png ├── pebbleshot3.png ├── pebbleshot4.png ├── banner-android.png ├── banner-android.psd ├── color_pebbleshot1.png ├── color_pebbleshot2.png ├── round_pebbleshot1.png ├── round_pebbleshot2.png └── round_pebbleshot3.png ├── .gitmodules ├── .gitignore └── README.md /settings.gradle: -------------------------------------------------------------------------------- 1 | include ':app', ':PebbleAndroidCommons' -------------------------------------------------------------------------------- /translation tables/slovenian.txt: -------------------------------------------------------------------------------- 1 | U+010C > C 2 | U+010D > c -------------------------------------------------------------------------------- /app/lint.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/src/main/assets/xposed_init: -------------------------------------------------------------------------------- 1 | com.matejdro.pebblenotificationcenter.xposed.NotificationCenterFixer -------------------------------------------------------------------------------- /promo/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matejdro/PebbleNotificationCenter-Android/HEAD/promo/icon.png -------------------------------------------------------------------------------- /promo/icon.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matejdro/PebbleNotificationCenter-Android/HEAD/promo/icon.psd -------------------------------------------------------------------------------- /promo/Pebble.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matejdro/PebbleNotificationCenter-Android/HEAD/promo/Pebble.psd -------------------------------------------------------------------------------- /promo/Pebble1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matejdro/PebbleNotificationCenter-Android/HEAD/promo/Pebble1.png -------------------------------------------------------------------------------- /promo/Pebble2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matejdro/PebbleNotificationCenter-Android/HEAD/promo/Pebble2.png -------------------------------------------------------------------------------- /promo/Pebble3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matejdro/PebbleNotificationCenter-Android/HEAD/promo/Pebble3.png -------------------------------------------------------------------------------- /promo/Pebble4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matejdro/PebbleNotificationCenter-Android/HEAD/promo/Pebble4.png -------------------------------------------------------------------------------- /promo/color_hand.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matejdro/PebbleNotificationCenter-Android/HEAD/promo/color_hand.png -------------------------------------------------------------------------------- /promo/banner-pebble.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matejdro/PebbleNotificationCenter-Android/HEAD/promo/banner-pebble.png -------------------------------------------------------------------------------- /promo/banner-pebble.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matejdro/PebbleNotificationCenter-Android/HEAD/promo/banner-pebble.psd -------------------------------------------------------------------------------- /promo/pebbleshot1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matejdro/PebbleNotificationCenter-Android/HEAD/promo/pebbleshot1.png -------------------------------------------------------------------------------- /promo/pebbleshot2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matejdro/PebbleNotificationCenter-Android/HEAD/promo/pebbleshot2.png -------------------------------------------------------------------------------- /promo/pebbleshot3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matejdro/PebbleNotificationCenter-Android/HEAD/promo/pebbleshot3.png -------------------------------------------------------------------------------- /promo/pebbleshot4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matejdro/PebbleNotificationCenter-Android/HEAD/promo/pebbleshot4.png -------------------------------------------------------------------------------- /promo/banner-android.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matejdro/PebbleNotificationCenter-Android/HEAD/promo/banner-android.png -------------------------------------------------------------------------------- /promo/banner-android.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matejdro/PebbleNotificationCenter-Android/HEAD/promo/banner-android.psd -------------------------------------------------------------------------------- /promo/color_pebbleshot1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matejdro/PebbleNotificationCenter-Android/HEAD/promo/color_pebbleshot1.png -------------------------------------------------------------------------------- /promo/color_pebbleshot2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matejdro/PebbleNotificationCenter-Android/HEAD/promo/color_pebbleshot2.png -------------------------------------------------------------------------------- /promo/round_pebbleshot1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matejdro/PebbleNotificationCenter-Android/HEAD/promo/round_pebbleshot1.png -------------------------------------------------------------------------------- /promo/round_pebbleshot2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matejdro/PebbleNotificationCenter-Android/HEAD/promo/round_pebbleshot2.png -------------------------------------------------------------------------------- /promo/round_pebbleshot3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matejdro/PebbleNotificationCenter-Android/HEAD/promo/round_pebbleshot3.png -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "PebbleAndroidCommons"] 2 | path = PebbleAndroidCommons 3 | url = https://github.com/matejdro/PebbleAndroidCommons 4 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matejdro/PebbleNotificationCenter-Android/HEAD/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matejdro/PebbleNotificationCenter-Android/HEAD/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matejdro/PebbleNotificationCenter-Android/HEAD/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matejdro/PebbleNotificationCenter-Android/HEAD/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matejdro/PebbleNotificationCenter-Android/HEAD/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_social_share.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matejdro/PebbleNotificationCenter-Android/HEAD/app/src/main/res/drawable-hdpi/ic_social_share.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_social_share.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matejdro/PebbleNotificationCenter-Android/HEAD/app/src/main/res/drawable-mdpi/ic_social_share.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_action_pebble.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matejdro/PebbleNotificationCenter-Android/HEAD/app/src/main/res/drawable-hdpi/ic_action_pebble.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/notificationicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matejdro/PebbleNotificationCenter-Android/HEAD/app/src/main/res/drawable-hdpi/notificationicon.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_action_pebble.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matejdro/PebbleNotificationCenter-Android/HEAD/app/src/main/res/drawable-mdpi/ic_action_pebble.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/notificationicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matejdro/PebbleNotificationCenter-Android/HEAD/app/src/main/res/drawable-mdpi/notificationicon.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_action_pebble.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matejdro/PebbleNotificationCenter-Android/HEAD/app/src/main/res/drawable-xhdpi/ic_action_pebble.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_social_share.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matejdro/PebbleNotificationCenter-Android/HEAD/app/src/main/res/drawable-xhdpi/ic_social_share.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/notificationicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matejdro/PebbleNotificationCenter-Android/HEAD/app/src/main/res/drawable-xhdpi/notificationicon.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_action_pebble.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matejdro/PebbleNotificationCenter-Android/HEAD/app/src/main/res/drawable-xxhdpi/ic_action_pebble.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_social_share.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matejdro/PebbleNotificationCenter-Android/HEAD/app/src/main/res/drawable-xxhdpi/ic_social_share.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/notificationicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matejdro/PebbleNotificationCenter-Android/HEAD/app/src/main/res/drawable-xxhdpi/notificationicon.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_action_action_settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matejdro/PebbleNotificationCenter-Android/HEAD/app/src/main/res/drawable-hdpi/ic_action_action_settings.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_action_action_settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matejdro/PebbleNotificationCenter-Android/HEAD/app/src/main/res/drawable-mdpi/ic_action_action_settings.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_action_content_select_all.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matejdro/PebbleNotificationCenter-Android/HEAD/app/src/main/res/drawable-hdpi/ic_action_content_select_all.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_action_content_select_all.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matejdro/PebbleNotificationCenter-Android/HEAD/app/src/main/res/drawable-mdpi/ic_action_content_select_all.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_action_action_settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matejdro/PebbleNotificationCenter-Android/HEAD/app/src/main/res/drawable-xhdpi/ic_action_action_settings.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_action_action_settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matejdro/PebbleNotificationCenter-Android/HEAD/app/src/main/res/drawable-xxhdpi/ic_action_action_settings.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_action_content_select_none.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matejdro/PebbleNotificationCenter-Android/HEAD/app/src/main/res/drawable-hdpi/ic_action_content_select_none.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_action_content_select_none.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matejdro/PebbleNotificationCenter-Android/HEAD/app/src/main/res/drawable-mdpi/ic_action_content_select_none.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_action_content_select_all.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matejdro/PebbleNotificationCenter-Android/HEAD/app/src/main/res/drawable-xhdpi/ic_action_content_select_all.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_action_content_select_none.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matejdro/PebbleNotificationCenter-Android/HEAD/app/src/main/res/drawable-xhdpi/ic_action_content_select_none.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_action_content_select_all.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matejdro/PebbleNotificationCenter-Android/HEAD/app/src/main/res/drawable-xxhdpi/ic_action_content_select_all.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_action_content_select_none.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matejdro/PebbleNotificationCenter-Android/HEAD/app/src/main/res/drawable-xxhdpi/ic_action_content_select_none.png -------------------------------------------------------------------------------- /app/src/main/res/layout/view_regex_list_separator.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/values/module_scope.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | com.getpebble.android.basalt 5 | 6 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/category_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/layout/setting_separator.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 16dp 5 | 16dp 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/black_border.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/menu/tasker_setup.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-v21/list_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/java/com/matejdro/pebblenotificationcenter/appsetting/PebbleAppNotificationMode.java: -------------------------------------------------------------------------------- 1 | package com.matejdro.pebblenotificationcenter.appsetting; 2 | 3 | public interface PebbleAppNotificationMode 4 | { 5 | public static final int OPEN_IN_NOTIFICATION_CENTER = 0; 6 | public static final int SHOW_NATIVE_NOTIFICATION = 1; 7 | public static final int DISABLE_NOTIFICATION = 2; 8 | } 9 | -------------------------------------------------------------------------------- /app/src/main/java/com/matejdro/pebblenotificationcenter/pebble/appretrieval/AppRetrievalCallback.java: -------------------------------------------------------------------------------- 1 | package com.matejdro.pebblenotificationcenter.pebble.appretrieval; 2 | 3 | import com.matejdro.pebblecommons.pebble.PebbleApp; 4 | 5 | import java.util.Collection; 6 | import java.util.List; 7 | 8 | public interface AppRetrievalCallback 9 | { 10 | void addApps(Collection apps); 11 | } 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_action_content_new.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/java/com/matejdro/pebblenotificationcenter/pebble/DeliveryListener.java: -------------------------------------------------------------------------------- 1 | package com.matejdro.pebblenotificationcenter.pebble; 2 | 3 | /** 4 | * Created by Matej on 21.11.2014. 5 | */ 6 | public interface DeliveryListener 7 | { 8 | /* 9 | @return Should I keep comm line free for sender of this packet to send something new 10 | */ 11 | public boolean packetDelivered(); 12 | } 13 | -------------------------------------------------------------------------------- /app/src/main/java/com/matejdro/pebblenotificationcenter/ui/perapp/settingitems/ActivityResultItem.java: -------------------------------------------------------------------------------- 1 | package com.matejdro.pebblenotificationcenter.ui.perapp.settingitems; 2 | 3 | import android.content.Intent; 4 | 5 | /** 6 | * Created by Matej on 19.10.2014. 7 | */ 8 | public interface ActivityResultItem 9 | { 10 | public void onActivityResult(int requestCode, int resultCode, Intent data); 11 | } 12 | -------------------------------------------------------------------------------- /app/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #FF9800 4 | #F57C00 5 | #00C853 6 | #000000 7 | #cccccc 8 | #ff0000 9 | #BC0000 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/list_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /app/src/main/res/values/strings_watchapp_handling.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Notification Center watchapp update 4 | Click on this notiifcation to open link to the download 5 | Notification Center beta watchapp update 6 | Click to get release info and update link 7 | -------------------------------------------------------------------------------- /app/src/main/res/layout/dialog_text_entry.xml: -------------------------------------------------------------------------------- 1 | 2 | 10 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | *.iws 3 | *.ipr 4 | .idea/ 5 | .gradle/ 6 | local.properties 7 | keystore.properties 8 | out/ 9 | build/ 10 | gradle* 11 | 12 | bin/ 13 | .classpath 14 | .project 15 | .settings* 16 | gen/ 17 | 18 | */build/ 19 | *.apk 20 | 21 | # OS generated files # 22 | ###################### 23 | .DS_Store 24 | .DS_Store? 25 | ._* 26 | .Spotlight-V100 27 | .Trashes 28 | ehthumbs.db 29 | Thumbs.db 30 | 31 | crashlytics.properties 32 | com_crashlytics_export_strings.xml 33 | crashlytics-build.properties -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_xposed_settings.xml: -------------------------------------------------------------------------------- 1 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/layout/item_icon.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 13 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | PebbleNotificationCenter-Android 2 | ================================ 3 | 4 | Android part of the Notification center for Pebble 5 | 6 | Watch counterpart: https://github.com/matejdro/PebbleNotificationCenter-Watchapp 7 | Play store entry: https://play.google.com/store/apps/details?id=com.matejdro.pebblenotificationcenter 8 | Discussion forums: https://plus.google.com/communities/116982109550451242571 9 | 10 | ## Building 11 | 12 | To build this project, just pull the repo and open it in Android Studio. If it starts complaining about missing `PebbleAndroidCommons`, make sure you also pulled the submodules. -------------------------------------------------------------------------------- /app/src/main/res/layout/tasker_app_list_item.xml: -------------------------------------------------------------------------------- 1 | 14 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_main.xml: -------------------------------------------------------------------------------- 1 | 5 | 6 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /app/src/main/res/layout/fragment_regex_list_header.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 16 | 17 | -------------------------------------------------------------------------------- /app/src/main/res/layout/fragment_regex_list_item.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | 17 | 18 | -------------------------------------------------------------------------------- /app/src/main/res/layout/dialog_iconpicker.xml: -------------------------------------------------------------------------------- 1 | 2 | 14 | -------------------------------------------------------------------------------- /app/src/main/java/com/matejdro/pebblenotificationcenter/lists/NotificationListAdapter.java: -------------------------------------------------------------------------------- 1 | package com.matejdro.pebblenotificationcenter.lists; 2 | 3 | import com.getpebble.android.kit.PebbleKit; 4 | import com.getpebble.android.kit.util.PebbleDictionary; 5 | import com.matejdro.pebblenotificationcenter.PebbleNotification; 6 | import com.matejdro.pebblenotificationcenter.pebble.modules.ListModule; 7 | import com.matejdro.pebblecommons.util.TextUtil; 8 | import java.text.DateFormat; 9 | import java.util.Date; 10 | import timber.log.Timber; 11 | 12 | public interface NotificationListAdapter { 13 | public PebbleNotification getNotificationAt(int index); 14 | public int getNumOfNotifications(); 15 | public void forceRefresh(); 16 | } 17 | -------------------------------------------------------------------------------- /app/src/main/res/layout/fragment_replacement.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 13 | 14 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /app/src/main/java/com/matejdro/pebblenotificationcenter/PebbleConnectedReceiver.java: -------------------------------------------------------------------------------- 1 | package com.matejdro.pebblenotificationcenter; 2 | 3 | import android.content.BroadcastReceiver; 4 | import android.content.Context; 5 | import android.content.Intent; 6 | 7 | import com.matejdro.pebblenotificationcenter.pebble.modules.SystemModule; 8 | 9 | import timber.log.Timber; 10 | 11 | public class PebbleConnectedReceiver extends BroadcastReceiver 12 | { 13 | 14 | @Override 15 | public void onReceive(Context context, Intent intent) 16 | { 17 | Timber.d("Pebble reconnected"); 18 | 19 | Intent serviceIntent = new Intent(context, NCTalkerService.class); 20 | serviceIntent.setAction(SystemModule.INTENT_PEBBLE_CONNECTED); 21 | context.startService(serviceIntent); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /app/src/main/java/com/matejdro/pebblenotificationcenter/ui/perapp/settingitems/AppEnabledCheckboxItem.java: -------------------------------------------------------------------------------- 1 | package com.matejdro.pebblenotificationcenter.ui.perapp.settingitems; 2 | 3 | import com.matejdro.pebblenotificationcenter.appsetting.AppSettingStorage; 4 | 5 | /** 6 | * Created by Matej on 19.10.2014. 7 | */ 8 | public class AppEnabledCheckboxItem extends CheckBoxItem 9 | { 10 | public AppEnabledCheckboxItem(AppSettingStorage settingsStorage, int textResource, int descriptionResource) 11 | { 12 | super(settingsStorage, null, textResource, descriptionResource); 13 | } 14 | 15 | @Override 16 | protected void settingChanged(boolean change) 17 | { 18 | settingsStorage.setAppChecked(change); 19 | 20 | } 21 | 22 | @Override 23 | protected boolean getSavedValue() 24 | { 25 | return settingsStorage.isAppChecked(); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /app/src/main/java/com/matejdro/pebblenotificationcenter/notifications/actions/lists/ActionList.java: -------------------------------------------------------------------------------- 1 | package com.matejdro.pebblenotificationcenter.notifications.actions.lists; 2 | 3 | import com.getpebble.android.kit.PebbleKit; 4 | import com.getpebble.android.kit.util.PebbleDictionary; 5 | import com.matejdro.pebblenotificationcenter.NCTalkerService; 6 | import com.matejdro.pebblenotificationcenter.ProcessedNotification; 7 | import com.matejdro.pebblecommons.util.TextUtil; 8 | 9 | public abstract class ActionList 10 | { 11 | public abstract int getNumberOfItems(); 12 | public abstract String getItem(int id); 13 | 14 | /* 15 | @return true if action executed when item is picked definitely sent something towards Pebble 16 | */ 17 | public abstract boolean itemPicked(NCTalkerService service, int id); 18 | 19 | 20 | public boolean isTertiaryTextList() 21 | { 22 | return false; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /app/src/main/res/menu/replacer.xml: -------------------------------------------------------------------------------- 1 | 3 | 4 | 11 | 12 | 17 | 22 | 23 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_per_app_settings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | 13 | 14 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /app/src/main/res/xml/settings_xposed.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | 12 | 16 | 20 | -------------------------------------------------------------------------------- /app/src/main/res/layout/pebble_app_list_item.xml: -------------------------------------------------------------------------------- 1 | 9 | 10 | 15 | 16 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /app/src/main/res/layout/dialog_add_action_intent.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | 13 | 14 | 19 | 20 | 25 | 26 | 31 | 32 | -------------------------------------------------------------------------------- /app/src/main/res/menu/pebbleapps.xml: -------------------------------------------------------------------------------- 1 | 3 | 4 | 9 | 10 | 15 | 16 | 21 | 22 | 27 | 28 | 33 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /translation tables/cyrilic.txt: -------------------------------------------------------------------------------- 1 | Thanks to Morbyd for this table 2 | 3 | U+0401 > Yo 4 | U+0410 > A 5 | U+0411 > B 6 | U+0412 > V 7 | U+0413 > G 8 | U+0414 > D 9 | U+0415 > E 10 | U+0416 > Zh 11 | U+0417 > Z 12 | U+0418 > I 13 | U+0419 > Y 14 | U+041A > K 15 | U+041B > L 16 | U+041C > M 17 | U+041D > N 18 | U+041E > O 19 | U+041F > P 20 | U+0420 > R 21 | U+0421 > S 22 | U+0422 > T 23 | U+0423 > U 24 | U+0424 > F 25 | U+0425 > Kh 26 | U+0426 > Is 27 | U+0427 > Ch 28 | U+0428 > Sh 29 | U+0429 > Sch 30 | U+042A > 31 | U+042B > Y 32 | U+042C > 33 | U+042D > E 34 | U+042E > Yu 35 | U+042F > Ya 36 | U+0430 > a 37 | U+0431 > b 38 | U+0432 > v 39 | U+0433 > g 40 | U+0434 > d 41 | U+0435 > e 42 | U+0436 > zh 43 | U+0437 > z 44 | U+0438 > i 45 | U+0439 > y 46 | U+043A > k 47 | U+043B > l 48 | U+043C > m 49 | U+043D > n 50 | U+043E > o 51 | U+043F > p 52 | U+0440 > r 53 | U+0441 > s 54 | U+0442 > t 55 | U+0443 > u 56 | U+0444 > f 57 | U+0445 > kh 58 | U+0446 > ts 59 | U+0447 > ch 60 | U+0448 > sh 61 | U+0449 > sch 62 | U+044A > 63 | U+044B > y 64 | U+044C > 65 | U+044D > e 66 | U+044E > yu 67 | U+044F > ya 68 | U+0451 > yo -------------------------------------------------------------------------------- /app/src/main/res/layout/setting_category.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 15 | 21 | 22 | 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /app/src/main/java/com/matejdro/pebblenotificationcenter/ui/perapp/settingitems/BaseSettingItem.java: -------------------------------------------------------------------------------- 1 | package com.matejdro.pebblenotificationcenter.ui.perapp.settingitems; 2 | 3 | import android.support.annotation.Nullable; 4 | import android.view.View; 5 | 6 | import com.matejdro.pebblenotificationcenter.appsetting.AppSetting; 7 | import com.matejdro.pebblenotificationcenter.appsetting.AppSettingStorage; 8 | import com.matejdro.pebblenotificationcenter.ui.perapp.PerAppActivity; 9 | 10 | /** 11 | * Created by Matej on 19.10.2014. 12 | */ 13 | public abstract class BaseSettingItem 14 | { 15 | protected AppSettingStorage settingsStorage; 16 | private AppSetting associatedSetting; 17 | 18 | protected BaseSettingItem(AppSettingStorage settingsStorage, AppSetting associatedSetting) { 19 | this.settingsStorage = settingsStorage; 20 | this.associatedSetting = associatedSetting; 21 | } 22 | 23 | public @Nullable AppSetting getAssociatedSetting() { 24 | return associatedSetting; 25 | } 26 | 27 | public abstract View getView(PerAppActivity activity); 28 | public abstract boolean onClose(); 29 | public abstract void setEnabled(boolean enabled); 30 | } 31 | -------------------------------------------------------------------------------- /app/src/main/java/com/matejdro/pebblenotificationcenter/notifications/actions/NotificationAction.java: -------------------------------------------------------------------------------- 1 | package com.matejdro.pebblenotificationcenter.notifications.actions; 2 | 3 | import android.os.Parcelable; 4 | 5 | import com.matejdro.pebblenotificationcenter.NCTalkerService; 6 | import com.matejdro.pebblenotificationcenter.ProcessedNotification; 7 | 8 | /** 9 | * Created by Matej on 22.9.2014. 10 | */ 11 | public abstract class NotificationAction implements Parcelable 12 | { 13 | public static final int MAX_NUMBER_OF_ACTIONS = 20; 14 | 15 | public static final int VISIBILITY_OPTION_HIDDEN = 0; 16 | public static final int VISIBILITY_OPTION_BEFORE_APP_OPTIONS = 1; 17 | public static final int VISIBILITY_OPTION_AFTER_APP_OPTIONS = 2; 18 | 19 | 20 | protected String actionText; 21 | 22 | public NotificationAction(String actionText) 23 | { 24 | this.actionText = actionText; 25 | } 26 | 27 | public String getActionText() 28 | { 29 | return actionText; 30 | } 31 | 32 | /* 33 | @return true if action definitely sent something towards Pebble 34 | */ 35 | public abstract boolean executeAction(NCTalkerService service, ProcessedNotification notification); 36 | } 37 | -------------------------------------------------------------------------------- /app/src/main/java/com/matejdro/pebblenotificationcenter/appsetting/AbsAppSettingStorage.java: -------------------------------------------------------------------------------- 1 | package com.matejdro.pebblenotificationcenter.appsetting; 2 | 3 | import android.support.annotation.Nullable; 4 | 5 | import com.crashlytics.android.core.CrashlyticsCore; 6 | 7 | public abstract class AbsAppSettingStorage implements AppSettingStorage 8 | { 9 | @SuppressWarnings("unchecked") 10 | @Override 11 | public > T getEnum(AppSetting setting) 12 | { 13 | Enum defEnum = (Enum) setting.getDefault(); 14 | 15 | String name = getStringByKey(setting.getKey()); 16 | 17 | if (name == null) 18 | return (T) defEnum; 19 | 20 | try 21 | { 22 | return (T) Enum.valueOf(defEnum.getClass(), name); 23 | } 24 | catch (IllegalArgumentException e) 25 | { 26 | CrashlyticsCore.getInstance().logException(e); 27 | return (T) defEnum; 28 | } 29 | } 30 | 31 | @Override 32 | public void setEnum(AppSetting setting, Enum val) 33 | { 34 | setStringByKey(setting.getKey(), val.name()); 35 | } 36 | 37 | public abstract @Nullable String getStringByKey(String key); 38 | public abstract void setStringByKey(String key, String value); 39 | } 40 | -------------------------------------------------------------------------------- /app/src/main/java/com/matejdro/pebblenotificationcenter/appsetting/AppSettingStorage.java: -------------------------------------------------------------------------------- 1 | package com.matejdro.pebblenotificationcenter.appsetting; 2 | 3 | import android.support.annotation.Nullable; 4 | 5 | import java.util.Collection; 6 | import java.util.List; 7 | 8 | /** 9 | * Created by Matej on 16.9.2014. 10 | */ 11 | public interface AppSettingStorage 12 | { 13 | public String getString(AppSetting setting); 14 | public boolean getBoolean(AppSetting setting); 15 | public int getInt(AppSetting setting); 16 | public List getStringList(AppSetting setting); 17 | public > T getEnum(AppSetting setting); 18 | 19 | public void setString(AppSetting setting, String val); 20 | public void setBoolean(AppSetting setting, boolean val); 21 | public void setInt(AppSetting setting, int val); 22 | public void setStringList(AppSetting setting, Collection val); 23 | public void setEnum(AppSetting setting, Enum val); 24 | 25 | public void deleteSetting(AppSetting setting); 26 | 27 | /* 28 | Returns true if app is Checked (either excluded or included depending on option) 29 | */ 30 | public boolean isAppChecked(); 31 | public void setAppChecked(boolean checked); 32 | public boolean canAppSendNotifications(); 33 | } 34 | -------------------------------------------------------------------------------- /app/src/main/res/layout/fragment_pebble_app_list.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | 11 | 12 | 19 | 20 | 21 | 27 | 28 | 32 | 33 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /app/src/main/res/layout/fragment_app_list.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 14 | 15 | 20 | 21 | 27 | 28 | 29 | 34 | 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /app/src/main/res/values/strings_xposed.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Module that fixes various annoyances in the Pebble app. 4 | Fix failed error 5 | Fix Failed error that pops up when activating actions on native notifications sent by Notification Center. 6 | Disable developer connection timeout 7 | Prevent Pebble\'s developer connection from automatically turning off after some time, breaking many Notification Center features. 8 | Block notifications from Pebble app 9 | Sometimes Pebble app can still send native notifications despite unchecking all apps. This settings fixes this.\n\nHealth, timeline and call notifications are not affected. 10 | Disable system music app 11 | Disable Pebble\'s default music control app.\n\n This is useful if you are using 3rd party music control app and don\'t want default one jumping to the top of the menu. 12 | -------------------------------------------------------------------------------- /app/src/main/res/layout/fragment_app_list_item.xml: -------------------------------------------------------------------------------- 1 | 8 | 9 | 16 | 17 | 27 | 28 | 35 | 36 | -------------------------------------------------------------------------------- /app/src/main/java/com/matejdro/pebblenotificationcenter/notifications/SideChannelNotificationListener.java: -------------------------------------------------------------------------------- 1 | package com.matejdro.pebblenotificationcenter.notifications; 2 | 3 | import android.app.Notification; 4 | import android.support.v4.app.NotificationCompatSideChannelService; 5 | 6 | import com.matejdro.pebblenotificationcenter.NotificationKey; 7 | import com.matejdro.pebblenotificationcenter.pebble.modules.DismissUpwardsModule; 8 | 9 | import timber.log.Timber; 10 | 11 | /** 12 | * Created by Matej on 29.9.2014. 13 | */ 14 | public class SideChannelNotificationListener extends NotificationCompatSideChannelService 15 | { 16 | @Override 17 | public void notify(String packageName, int id, String tag, Notification notification) 18 | { 19 | Timber.d("Got new side channel notification"); 20 | NotificationHandler.newNotification(this, new NotificationKey(packageName, id, tag), notification, true); 21 | } 22 | 23 | @Override 24 | public void cancel(String packageName, int id, String tag) 25 | { 26 | NotificationKey key = new NotificationKey(packageName, id, tag); 27 | Timber.d("Dismiss side channel %s", key); 28 | 29 | DismissUpwardsModule.dismissNotification(this, key); 30 | } 31 | 32 | @Override 33 | public void cancelAll(String packageName) 34 | { 35 | DismissUpwardsModule.dismissWholePackage(this, packageName); 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /app/src/main/res/layout/setting_spinner.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 10 | 11 | 18 | 19 | 29 | 30 | 35 | 36 | -------------------------------------------------------------------------------- /app/src/main/java/com/matejdro/pebblenotificationcenter/notifications/AccesibilityNotificationListener.java: -------------------------------------------------------------------------------- 1 | package com.matejdro.pebblenotificationcenter.notifications; 2 | 3 | import android.accessibilityservice.AccessibilityService; 4 | import android.app.Notification; 5 | import android.os.Parcelable; 6 | import android.view.accessibility.AccessibilityEvent; 7 | import com.matejdro.pebblenotificationcenter.NotificationKey; 8 | import timber.log.Timber; 9 | 10 | public class AccesibilityNotificationListener extends AccessibilityService { 11 | public static AccesibilityNotificationListener instance; 12 | 13 | @Override 14 | public void onCreate() { 15 | instance = this; 16 | NotificationHandler.active = true; 17 | 18 | super.onCreate(); 19 | } 20 | 21 | @Override 22 | public void onDestroy() { 23 | NotificationHandler.active = false; 24 | 25 | super.onDestroy(); 26 | } 27 | 28 | @Override 29 | public void onAccessibilityEvent(AccessibilityEvent event) { 30 | Parcelable parcelable = event.getParcelableData(); 31 | if (!(parcelable instanceof Notification)) 32 | return; 33 | 34 | Notification notification = (Notification) parcelable; 35 | 36 | Timber.d("Got new accessibility notification"); 37 | NotificationHandler.newNotification(this, new NotificationKey(event.getPackageName().toString(), null, null), notification, false); 38 | } 39 | 40 | @Override 41 | public void onInterrupt() { 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /app/src/main/res/layout/setting_customview.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 10 | 11 | 18 | 19 | 29 | 30 | 35 | 36 | -------------------------------------------------------------------------------- /app/src/main/res/layout/dialog_replacer_file_picker.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 10 | 11 | 16 | 17 | 18 | 19 | 22 | 23 | 28 | 29 | 30 | 31 | 32 | 36 | 37 |