gitextract_87q2jt04/ ├── .circleci/ │ ├── ci-scripts/ │ │ ├── accept-android-licenses.sh │ │ ├── ensure-sdkmanager.sh │ │ └── mock-google-services.json │ └── config.yml ├── .github/ │ ├── CONTRIBUTING.md │ ├── ISSUE_TEMPLATE.md │ └── PULL_REQUEST_TEMPLATE.md ├── .gitignore ├── LICENSE ├── PEOPLE.md ├── README.md ├── android_common/ │ ├── build.gradle │ └── src/ │ └── main/ │ ├── AndroidManifest.xml │ ├── java/ │ │ └── com/ │ │ └── alexstyl/ │ │ ├── android/ │ │ │ ├── AndroidLogger.kt │ │ │ ├── Version.kt │ │ │ ├── ViewVisibility.java │ │ │ ├── preferences/ │ │ │ │ └── widget/ │ │ │ │ └── TimePreference.java │ │ │ └── widget/ │ │ │ └── AppWidgetId.java │ │ ├── resources/ │ │ │ ├── AndroidDimensionResources.java │ │ │ └── DimensionResources.java │ │ └── specialdates/ │ │ ├── AndroidStrings.kt │ │ ├── TextViewLabelSetter.java │ │ ├── date/ │ │ │ └── IntentDateExtensions.kt │ │ ├── events/ │ │ │ └── database/ │ │ │ └── EventColumns.java │ │ └── wear/ │ │ └── SharedConstants.java │ └── res/ │ ├── values/ │ │ ├── colors.xml │ │ ├── strings-non-translatable.xml │ │ └── strings.xml │ ├── values-cs/ │ │ └── strings.xml │ ├── values-de/ │ │ └── strings.xml │ ├── values-el/ │ │ └── strings.xml │ ├── values-fr/ │ │ └── strings.xml │ ├── values-it/ │ │ └── strings.xml │ ├── values-lv/ │ │ └── bools.xml │ ├── values-lv-rLV/ │ │ └── strings.xml │ ├── values-nl/ │ │ └── strings.xml │ └── values-sk/ │ └── bool.xml ├── android_mobile/ │ ├── .gitignore │ ├── build.gradle │ ├── google_services.gradle │ ├── proguard-rules.pro │ └── src/ │ ├── debug/ │ │ ├── AndroidManifest.xml │ │ ├── assets/ │ │ │ └── mock/ │ │ │ └── facebook-calendar.ics │ │ ├── java/ │ │ │ └── com/ │ │ │ └── alexstyl/ │ │ │ └── specialdates/ │ │ │ ├── DebugAppComponent.java │ │ │ ├── DebugApplication.java │ │ │ ├── OptionalDependencies.java │ │ │ ├── debug/ │ │ │ │ ├── DebugActivity.java │ │ │ │ ├── DebugFragment.kt │ │ │ │ ├── DebugModule.java │ │ │ │ └── DebugPreferences.java │ │ │ ├── donate/ │ │ │ │ └── DebugDonationPreferences.java │ │ │ └── events/ │ │ │ └── peopleevents/ │ │ │ └── DebugPeopleEventsUpdater.java │ │ └── res/ │ │ └── layout/ │ │ ├── activity_debug.xml │ │ ├── debug_activity_animations.xml │ │ └── debug_activity_mixing_colors.xml │ ├── main/ │ │ ├── AndroidManifest.xml │ │ ├── aidl/ │ │ │ └── com/ │ │ │ └── android/ │ │ │ └── vending/ │ │ │ └── billing/ │ │ │ └── IInAppBillingService.aidl │ │ ├── java/ │ │ │ ├── android/ │ │ │ │ └── support/ │ │ │ │ └── v4/ │ │ │ │ └── preference/ │ │ │ │ ├── PreferenceFragment.java │ │ │ │ └── PreferenceManagerCompat.java │ │ │ └── com/ │ │ │ └── alexstyl/ │ │ │ ├── android/ │ │ │ │ ├── Bitmap.kt │ │ │ │ ├── SimpleAnimatorListener.java │ │ │ │ ├── Uri.kt │ │ │ │ └── preferences/ │ │ │ │ └── PreferenceKeyId.java │ │ │ ├── resources/ │ │ │ │ ├── AndroidColors.kt │ │ │ │ └── ResourcesModule.java │ │ │ └── specialdates/ │ │ │ ├── AndroidApplicationModule.java │ │ │ ├── AppComponent.java │ │ │ ├── DeviceConfigurationUpdatedReceiver.java │ │ │ ├── EasyPreferences.java │ │ │ ├── ExternalNavigator.java │ │ │ ├── FabricTracker.java │ │ │ ├── JobsCreator.kt │ │ │ ├── MementoApplication.java │ │ │ ├── MementoConstants.kt │ │ │ ├── SQLArgumentBuilder.java │ │ │ ├── ShareAppIntentCreator.java │ │ │ ├── addevent/ │ │ │ │ ├── AccountData.java │ │ │ │ ├── AddEventActivity.kt │ │ │ │ ├── AddEventModule.kt │ │ │ │ ├── AndroidAddEventView.kt │ │ │ │ ├── AndroidContactOperationsExecutor.kt │ │ │ │ ├── AndroidEventIcons.kt │ │ │ │ ├── ContactDetailsListener.java │ │ │ │ ├── ContactEventViewHolder.java │ │ │ │ ├── ContactEventsAdapter.java │ │ │ │ ├── ContactSuggestionViewHolder.java │ │ │ │ ├── DiscardPromptDialog.java │ │ │ │ ├── EventDatePickerDialogFragment.java │ │ │ │ ├── ImageIntentFactory.java │ │ │ │ ├── OnCameraClickedListener.java │ │ │ │ ├── OperationsFactory.kt │ │ │ │ ├── ToastDisplayer.kt │ │ │ │ ├── ToolbarBackgroundAnimator.java │ │ │ │ ├── ToolbarBackgroundFadingAnimator.java │ │ │ │ ├── ToolbarBackgroundStubAnimator.java │ │ │ │ ├── UriFilePathProvider.kt │ │ │ │ ├── WriteableAccountsProvider.java │ │ │ │ ├── bottomsheet/ │ │ │ │ │ ├── BottomSheetPicturesDialog.kt │ │ │ │ │ ├── ClearImageViewHolder.java │ │ │ │ │ ├── ImagePickerOptionViewHolder.kt │ │ │ │ │ ├── ImagePickerOptionsAdapter.java │ │ │ │ │ ├── IntentResolver.kt │ │ │ │ │ ├── PhotoPickerViewModel.kt │ │ │ │ │ └── PhotoPickerViewModelFactory.kt │ │ │ │ └── ui/ │ │ │ │ ├── AvatarPickerView.java │ │ │ │ ├── ContactSuggestionView.java │ │ │ │ ├── ContactsAdapter.java │ │ │ │ ├── DeviceContactsFilter.kt │ │ │ │ └── EventDatePicker.java │ │ │ ├── analytics/ │ │ │ │ ├── Action.java │ │ │ │ ├── ActionWithParameters.java │ │ │ │ ├── AnalyticsModule.kt │ │ │ │ ├── CompositeAnalytics.kt │ │ │ │ ├── FirebaseAnalyticsImpl.kt │ │ │ │ └── MixPanel.kt │ │ │ ├── contact/ │ │ │ │ ├── AndroidContactFactory.kt │ │ │ │ ├── AndroidContactsProviderSource.kt │ │ │ │ ├── AndroidContactsQuery.java │ │ │ │ ├── ContactIntentExtractor.kt │ │ │ │ ├── ContactsModule.kt │ │ │ │ ├── EmptyContactSource.kt │ │ │ │ └── FacebookContactsSource.kt │ │ │ ├── dailyreminder/ │ │ │ │ ├── AlarmManagerCompat.java │ │ │ │ ├── AndroidDailyReminderNotifier.kt │ │ │ │ ├── AndroidDailyReminderScheduler.kt │ │ │ │ ├── AndroidDailyReminderViewModelFactory.kt │ │ │ │ ├── DailyReminderDebugPreferences.java │ │ │ │ ├── DailyReminderJob.kt │ │ │ │ ├── DailyReminderModule.java │ │ │ │ ├── DailyReminderOreoChannelCreator.kt │ │ │ │ ├── DailyReminderPreferences.kt │ │ │ │ ├── NoActions.kt │ │ │ │ ├── NotificationConstants.kt │ │ │ │ ├── NotificationDailyReminderView.kt │ │ │ │ └── actions/ │ │ │ │ ├── AndroidContactActionsView.kt │ │ │ │ ├── ContactActionsModule.java │ │ │ │ ├── ContactActionsPresenter.kt │ │ │ │ ├── ContactActionsView.kt │ │ │ │ └── PersonActionsActivity.kt │ │ │ ├── date/ │ │ │ │ ├── AndroidDateLabelCreator.kt │ │ │ │ └── DateModule.java │ │ │ ├── donate/ │ │ │ │ ├── AndroidDonation.java │ │ │ │ ├── AndroidDonationConstants.java │ │ │ │ ├── AndroidDonationService.java │ │ │ │ ├── DonateActivity.java │ │ │ │ ├── DonateModule.java │ │ │ │ ├── DonatePresenter.java │ │ │ │ ├── DonationPreferences.java │ │ │ │ ├── SimpleOnSeekBarChangeListener.java │ │ │ │ └── util/ │ │ │ │ ├── IabBroadcastReceiver.java │ │ │ │ ├── IabException.java │ │ │ │ ├── IabHelper.java │ │ │ │ ├── IabResult.java │ │ │ │ ├── Inventory.java │ │ │ │ ├── Purchase.java │ │ │ │ ├── Security.java │ │ │ │ └── SkuDetails.java │ │ │ ├── events/ │ │ │ │ ├── ContactsObserver.java │ │ │ │ ├── PreferenceChangedEventsUpdateTrigger.java │ │ │ │ ├── bankholidays/ │ │ │ │ │ ├── BankHolidaysModule.java │ │ │ │ │ └── BankHolidaysPreferences.java │ │ │ │ ├── database/ │ │ │ │ │ ├── ContactColumns.java │ │ │ │ │ ├── DatabaseContract.java │ │ │ │ │ └── EventSQLiteOpenHelper.kt │ │ │ │ ├── namedays/ │ │ │ │ │ ├── NamedayModule.java │ │ │ │ │ ├── NamedayPreferences.java │ │ │ │ │ ├── activity/ │ │ │ │ │ │ ├── AndroidNamedaysOnADayView.kt │ │ │ │ │ │ ├── CelebratingContactViewHolder.kt │ │ │ │ │ │ ├── NameViewHolder.kt │ │ │ │ │ │ ├── NamedayScreenViewHolder.kt │ │ │ │ │ │ ├── NamedaysInADayModule.java │ │ │ │ │ │ ├── NamedaysOnADayActivity.kt │ │ │ │ │ │ ├── NamedaysOnADayNavigator.kt │ │ │ │ │ │ ├── NamedaysScreenAdapter.java │ │ │ │ │ │ ├── NamedaysScreenViewHolderFactory.kt │ │ │ │ │ │ └── NamedaysViewModelDiff.java │ │ │ │ │ └── calendar/ │ │ │ │ │ └── resource/ │ │ │ │ │ └── AndroidJSONResourceLoader.kt │ │ │ │ └── peopleevents/ │ │ │ │ ├── AndroidPeopleEventsPersister.kt │ │ │ │ ├── AndroidPeopleEventsProvider.kt │ │ │ │ ├── AndroidPeopleEventsRepository.kt │ │ │ │ ├── AndroidUpcomingEventSettings.kt │ │ │ │ ├── ContactEventsMarshaller.java │ │ │ │ ├── CustomEventProvider.kt │ │ │ │ └── PeopleEventsModule.kt │ │ │ ├── facebook/ │ │ │ │ ├── AndroidFacebookPreferences.java │ │ │ │ ├── FacebookLogoutService.java │ │ │ │ ├── FacebookModule.java │ │ │ │ ├── FacebookProfileActivity.java │ │ │ │ ├── FacebookProfilePresenter.java │ │ │ │ ├── FacebookProfileView.java │ │ │ │ ├── OnFacebookLogOutCallback.java │ │ │ │ ├── ScreenOrientationLock.java │ │ │ │ ├── friendimport/ │ │ │ │ │ ├── CalendarURLCreator.java │ │ │ │ │ ├── FacebookFriendsIntentService.java │ │ │ │ │ ├── FacebookFriendsPersister.java │ │ │ │ │ └── FacebookFriendsScheduler.java │ │ │ │ └── login/ │ │ │ │ ├── CookieResetter.java │ │ │ │ ├── CredentialsExtractor.java │ │ │ │ ├── FBImportClient.java │ │ │ │ ├── FacebookImportView.java │ │ │ │ ├── FacebookLogInActivity.java │ │ │ │ ├── FacebookLogInCallback.java │ │ │ │ ├── FacebookLogInException.java │ │ │ │ ├── FacebookWebView.java │ │ │ │ └── UserCredentialsExtractorTask.java │ │ │ ├── home/ │ │ │ │ ├── DonationBannerView.kt │ │ │ │ ├── HomeActivity.java │ │ │ │ ├── HomeNavigator.kt │ │ │ │ ├── HomeViewPagerAdapter.java │ │ │ │ ├── OnCloseBannerListener.kt │ │ │ │ └── SearchTransitioner.java │ │ │ ├── images/ │ │ │ │ ├── AndroidContactsImageDownloader.kt │ │ │ │ ├── CrossFadeBitmapDisplayer.java │ │ │ │ ├── CrossFadeCircleBitmapDisplayer.java │ │ │ │ ├── DecodedImage.java │ │ │ │ ├── ImageDecoder.kt │ │ │ │ ├── ImageLoadedConsumer.java │ │ │ │ ├── ImageLoader.kt │ │ │ │ ├── ImageModule.java │ │ │ │ ├── NutraBaseImageDecoder.java │ │ │ │ ├── SimpleImageLoadedConsumer.java │ │ │ │ └── UILImageLoader.java │ │ │ ├── people/ │ │ │ │ ├── ImportFromFacebookViewHolder.kt │ │ │ │ ├── NoContactViewHolder.kt │ │ │ │ ├── PeopleAdapter.java │ │ │ │ ├── PeopleDiffCallback.kt │ │ │ │ ├── PeopleFragment.java │ │ │ │ ├── PeopleItemDecorator.java │ │ │ │ ├── PeopleModule.java │ │ │ │ └── PeopleViewHolder.java │ │ │ ├── permissions/ │ │ │ │ ├── AndroidPermissions.kt │ │ │ │ └── ContactPermissionActivity.java │ │ │ ├── person/ │ │ │ │ ├── AndroidContactActions.kt │ │ │ │ ├── AndroidContactActionsProvider.kt │ │ │ │ ├── AndroidPersonView.kt │ │ │ │ ├── BottomSheetIntentAdapter.java │ │ │ │ ├── BottomSheetIntentDialog.kt │ │ │ │ ├── BottomSheetIntentListener.java │ │ │ │ ├── CallMethod.kt │ │ │ │ ├── CallViewHolder.java │ │ │ │ ├── CompositeContactActionsProvider.kt │ │ │ │ ├── ContactAction.kt │ │ │ │ ├── ContactActionViewModel.kt │ │ │ │ ├── ContactActionsAdapter.java │ │ │ │ ├── ContactActionsPageViewHolder.kt │ │ │ │ ├── ContactActionsProvider.kt │ │ │ │ ├── ContactItemsAdapter.java │ │ │ │ ├── EventAdapter.java │ │ │ │ ├── EventPageViewHolder.kt │ │ │ │ ├── EventPressedListener.java │ │ │ │ ├── EventViewHolder.java │ │ │ │ ├── FacebookContactActionsProvider.kt │ │ │ │ ├── IntentOptionViewHolder.java │ │ │ │ ├── IntentOptionViewModel.java │ │ │ │ ├── PageViewHolder.kt │ │ │ │ ├── PersonActivity.kt │ │ │ │ ├── PersonAvailableActionsViewModel.kt │ │ │ │ ├── PersonDetailsNavigator.kt │ │ │ │ ├── PersonDetailsViewModelFactory.kt │ │ │ │ ├── PersonInfoViewModel.kt │ │ │ │ ├── PersonModule.kt │ │ │ │ ├── PersonPresenter.kt │ │ │ │ └── PersonView.kt │ │ │ ├── receiver/ │ │ │ │ └── BootCompleteReceiver.java │ │ │ ├── search/ │ │ │ │ ├── BackKeyEditText.java │ │ │ │ ├── CaseInsensitiveComparator.java │ │ │ │ ├── ContactEventViewModel.kt │ │ │ │ ├── ContactEventViewModelFactory.kt │ │ │ │ ├── DelayedTextWatcher.java │ │ │ │ ├── MoreViewHolder.java │ │ │ │ ├── NameSuggestionsAdapter.java │ │ │ │ ├── NamedayCard.java │ │ │ │ ├── NamedaysLoader.java │ │ │ │ ├── NamesFilter.java │ │ │ │ ├── NoResultsViewHolder.java │ │ │ │ ├── OnBackKeyPressedListener.java │ │ │ │ ├── SearchActivity.java │ │ │ │ ├── SearchBar.java │ │ │ │ ├── SearchHintCreator.java │ │ │ │ ├── SearchLoader.java │ │ │ │ ├── SearchModule.java │ │ │ │ ├── SearchNavigator.kt │ │ │ │ ├── SearchResultAdapter.java │ │ │ │ ├── SearchResultContactViewHolder.java │ │ │ │ ├── SearchResultNamedayViewHolder.java │ │ │ │ ├── SearchResults.java │ │ │ │ ├── SuggstedNameViewHolder.java │ │ │ │ └── ToggleVisibilityOnFocus.java │ │ │ ├── settings/ │ │ │ │ ├── ClickableRingtonePreference.java │ │ │ │ ├── DailyReminderActivity.java │ │ │ │ ├── DailyReminderFragment.kt │ │ │ │ ├── DailyReminderNavigator.kt │ │ │ │ ├── MementoThemeNameComparator.java │ │ │ │ ├── NamedayListPreference.java │ │ │ │ ├── OnlyGreekSupportedDialog.java │ │ │ │ ├── PreferenceNotFoundException.kt │ │ │ │ ├── ThemeSelectAdapter.java │ │ │ │ ├── ThemeSelectDialog.java │ │ │ │ ├── ThemeViewHolder.java │ │ │ │ └── UserSettingsFragment.java │ │ │ ├── support/ │ │ │ │ ├── AskForSupport.kt │ │ │ │ ├── CallForRatingPreferences.java │ │ │ │ ├── Emoticon.java │ │ │ │ ├── OnSupportCardClickListener.java │ │ │ │ └── RateDialog.java │ │ │ ├── theming/ │ │ │ │ ├── AttributeExtractor.java │ │ │ │ ├── DrawableTinter.java │ │ │ │ ├── MementoTheme.kt │ │ │ │ ├── ThemeMonitor.java │ │ │ │ ├── Themer.kt │ │ │ │ ├── ThemingModule.java │ │ │ │ └── ThemingPreferences.kt │ │ │ ├── transition/ │ │ │ │ ├── FadeInTransition.java │ │ │ │ ├── FadeOutTransition.java │ │ │ │ └── SimpleTransitionListener.java │ │ │ ├── ui/ │ │ │ │ ├── DummyHideStatusBarListener.java │ │ │ │ ├── HorizontalDivider.java │ │ │ │ ├── LolipopHideStatusBarListener.java │ │ │ │ ├── MementoCardView.java │ │ │ │ ├── ViewFader.java │ │ │ │ ├── base/ │ │ │ │ │ ├── MementoActivity.kt │ │ │ │ │ ├── MementoDialog.java │ │ │ │ │ ├── MementoFragment.java │ │ │ │ │ ├── MementoPreferenceActivity.kt │ │ │ │ │ ├── MementoPreferenceFragment.kt │ │ │ │ │ └── ThemedMementoActivity.kt │ │ │ │ ├── dialog/ │ │ │ │ │ └── ProgressFragmentDialog.java │ │ │ │ ├── loader/ │ │ │ │ │ └── SimpleAsyncTaskLoader.java │ │ │ │ └── widget/ │ │ │ │ ├── AndroidLetterPainter.java │ │ │ │ ├── AvatarLayout.java │ │ │ │ ├── ColorImageView.java │ │ │ │ ├── ForegroundLinearLayout.java │ │ │ │ ├── LogoView.java │ │ │ │ ├── MementoToolbar.java │ │ │ │ ├── SpacesItemDecoration.java │ │ │ │ └── ViewModule.java │ │ │ ├── upcoming/ │ │ │ │ ├── AndroidUpcomingDateStringCreator.kt │ │ │ │ ├── AndroidUpcomingMVPView.kt │ │ │ │ ├── BankholidayViewHolder.kt │ │ │ │ ├── ContactEventViewHolder.kt │ │ │ │ ├── DateHeaderViewHolder.kt │ │ │ │ ├── DatePickerDialogFragment.java │ │ │ │ ├── NamedaysViewHolder.kt │ │ │ │ ├── PeopleEventsRefreshJob.kt │ │ │ │ ├── UpcomingEventsAdapter.java │ │ │ │ ├── UpcomingEventsDecorator.java │ │ │ │ ├── UpcomingEventsDiffCallback.kt │ │ │ │ ├── UpcomingEventsFragment.kt │ │ │ │ ├── UpcomingEventsModule.kt │ │ │ │ ├── UpcomingRowViewHolder.kt │ │ │ │ ├── UpcomingViewHolderFactory.kt │ │ │ │ ├── view/ │ │ │ │ │ ├── ExposedSearchToolbar.java │ │ │ │ │ └── OnUpcomingEventClickedListener.java │ │ │ │ └── widget/ │ │ │ │ ├── RecentUpcomingPeopleEventsModule.kt │ │ │ │ ├── list/ │ │ │ │ │ ├── BankHolidayBinder.kt │ │ │ │ │ ├── CircularAvatarFactory.java │ │ │ │ │ ├── ContactEventBinder.kt │ │ │ │ │ ├── DateHeaderBinder.kt │ │ │ │ │ ├── NamedaysBinder.kt │ │ │ │ │ ├── UpcomingEventViewBinder.java │ │ │ │ │ ├── UpcomingEventsRemoteViewService.java │ │ │ │ │ ├── UpcomingEventsScrollingAppWidgetProvider.java │ │ │ │ │ ├── UpcomingEventsScrollingWidgetView.java │ │ │ │ │ ├── UpcomingEventsViewsFactory.java │ │ │ │ │ └── WidgetRouterActivity.kt │ │ │ │ └── today/ │ │ │ │ ├── AndroidRecentPeopleEventsView.kt │ │ │ │ ├── LuminanceAnalyzer.kt │ │ │ │ ├── SimpleOnSeekBarChangeListener.java │ │ │ │ ├── TodayAppWidgetProvider.kt │ │ │ │ ├── TodayUpcomingEventsView.java │ │ │ │ ├── TransparencyColorCalculator.java │ │ │ │ ├── UpcomingWidgetConfigurationPanel.java │ │ │ │ ├── UpcomingWidgetConfigureActivity.kt │ │ │ │ ├── UpcomingWidgetPreferences.kt │ │ │ │ ├── UpcomingWidgetPreviewLayout.java │ │ │ │ ├── UserOptions.kt │ │ │ │ ├── WidgetColorCalculator.java │ │ │ │ ├── WidgetImageLoader.java │ │ │ │ └── WidgetVariant.java │ │ │ ├── util/ │ │ │ │ ├── GreekNameUtils.java │ │ │ │ └── NaturalLanguageUtils.java │ │ │ └── wear/ │ │ │ ├── WearSyncService.java │ │ │ └── WearSyncUpcomingEventsView.java │ │ └── res/ │ │ ├── anim/ │ │ │ ├── bounce.xml │ │ │ ├── grow_from_bottom.xml │ │ │ ├── grow_from_top.xml │ │ │ ├── heartbeat.xml │ │ │ ├── slide_in_below.xml │ │ │ ├── slide_in_from_above.xml │ │ │ ├── slide_in_from_below.xml │ │ │ ├── slide_out_above.xml │ │ │ ├── slide_out_from_above.xml │ │ │ ├── slide_out_from_below.xml │ │ │ ├── slide_up_left.xml │ │ │ ├── slide_up_right.xml │ │ │ └── stay.xml │ │ ├── drawable/ │ │ │ ├── ab_background_textured_dayslight.xml │ │ │ ├── background_daymarker.xml │ │ │ ├── background_suggestions.xml │ │ │ ├── black_to_transparent_gradient_facing_down.xml │ │ │ ├── btn_cab_done_dayslight.xml │ │ │ ├── card_noshadow.xml │ │ │ ├── dayslight_progress_horizontal_holo_light.xml │ │ │ ├── dayslight_progress_indeterminate_horizontal_holo_light.xml │ │ │ ├── divider_top_horizontal.xml │ │ │ ├── ic_add_contact_42px.xml │ │ │ ├── ic_add_person_24px.xml │ │ │ ├── ic_arrow_back_white_24dp.xml │ │ │ ├── ic_bankholidays.xml │ │ │ ├── ic_bankholidays_disabled.xml │ │ │ ├── ic_call.xml │ │ │ ├── ic_camera.xml │ │ │ ├── ic_check_white.xml │ │ │ ├── ic_clear.xml │ │ │ ├── ic_close_black.xml │ │ │ ├── ic_close_white.xml │ │ │ ├── ic_contacts.xml │ │ │ ├── ic_contacts_disabled.xml │ │ │ ├── ic_donate.xml │ │ │ ├── ic_events.xml │ │ │ ├── ic_f_icon.xml │ │ │ ├── ic_facebook_import_friends.xml │ │ │ ├── ic_facebook_like.xml │ │ │ ├── ic_facebook_logo_traced.xml │ │ │ ├── ic_facebook_sad.xml │ │ │ ├── ic_friend_invite.xml │ │ │ ├── ic_gift.xml │ │ │ ├── ic_github.xml │ │ │ ├── ic_licenses.xml │ │ │ ├── ic_menu.xml │ │ │ ├── ic_message.xml │ │ │ ├── ic_namedays.xml │ │ │ ├── ic_namedays_disabled.xml │ │ │ ├── ic_person_120.xml │ │ │ ├── ic_person_24dp.xml │ │ │ ├── ic_person_96dp.xml │ │ │ ├── ic_person_light_24dp.xml │ │ │ ├── ic_search_black_24dp.xml │ │ │ ├── ic_settings.xml │ │ │ ├── progress_horizontal_dayslight.xml │ │ │ ├── selectable_background_dayslight.xml │ │ │ ├── spinner_background_ab_dayslight.xml │ │ │ └── tab_indicator_ab_dayslight.xml │ │ ├── drawable-v21/ │ │ │ ├── blue_ripple.xml │ │ │ ├── neutral_ripple.xml │ │ │ ├── neutral_ripple_no_mask.xml │ │ │ ├── red_ripple.xml │ │ │ └── red_ripple_no_mask.xml │ │ ├── layout/ │ │ │ ├── abc_dropdown_title.xml │ │ │ ├── activity_add_event.xml │ │ │ ├── activity_call.xml │ │ │ ├── activity_contact_permission_request.xml │ │ │ ├── activity_dailyreminder.xml │ │ │ ├── activity_debug_facebook.xml │ │ │ ├── activity_donate.xml │ │ │ ├── activity_facebook_log_in.xml │ │ │ ├── activity_facebook_profile.xml │ │ │ ├── activity_home.xml │ │ │ ├── activity_namedays.xml │ │ │ ├── activity_person.xml │ │ │ ├── activity_preferences.xml │ │ │ ├── activity_rate_dialog.xml │ │ │ ├── activity_search.xml │ │ │ ├── activity_try.xml │ │ │ ├── activity_upcoming_events_widget_configure__first_frame.xml │ │ │ ├── activity_upcoming_events_widget_configure__start.xml │ │ │ ├── card_bankholiday.xml │ │ │ ├── card_compact_support_heart.xml │ │ │ ├── card_contact_event_full.xml │ │ │ ├── card_full_support_heart.xml │ │ │ ├── card_load_more.xml │ │ │ ├── card_nameday_single.xml │ │ │ ├── card_namedays.xml │ │ │ ├── dialog_birthday_picker.xml │ │ │ ├── dialog_bottom_dialog.xml │ │ │ ├── dialog_donate.xml │ │ │ ├── dialog_pick_image.xml │ │ │ ├── dialog_progress.xml │ │ │ ├── dialog_rate_prompt.xml │ │ │ ├── dialog_support.xml │ │ │ ├── dialog_translate.xml │ │ │ ├── fragment_first.xml │ │ │ ├── fragment_people.xml │ │ │ ├── fragment_upcoming_events.xml │ │ │ ├── merge_avatar_picker_view.xml │ │ │ ├── merge_birthday_picker.xml │ │ │ ├── merge_birthdaypicker_label_view.xml │ │ │ ├── merge_color_imageview.xml │ │ │ ├── merge_compact_cardview.xml │ │ │ ├── merge_contact_permission_required.xml │ │ │ ├── merge_contact_suggestion_view.xml │ │ │ ├── merge_daymarker.xml │ │ │ ├── merge_donation_banner_view.xml │ │ │ ├── merge_dummy_view.xml │ │ │ ├── merge_logo_view.xml │ │ │ ├── merge_memento_toolbar.xml │ │ │ ├── merge_namedaycardview.xml │ │ │ ├── merge_no_contact_events.xml │ │ │ ├── merge_searchbar.xml │ │ │ ├── merge_upcoming_widget_configure_panel.xml │ │ │ ├── merge_upcoming_widget_preview.xml │ │ │ ├── nameday_date.xml │ │ │ ├── names_suggestions.xml │ │ │ ├── navigation_header.xml │ │ │ ├── navigation_new_feature.xml │ │ │ ├── page_person_items.xml │ │ │ ├── preference_list_fragment.xml │ │ │ ├── preference_theme_select.xml │ │ │ ├── row_account.xml │ │ │ ├── row_add_event_contact_event.xml │ │ │ ├── row_add_event_contact_suggestion.xml │ │ │ ├── row_contact.xml │ │ │ ├── row_datatype.xml │ │ │ ├── row_image_option.xml │ │ │ ├── row_nameday_checkbox.xml │ │ │ ├── row_nameday_contact.xml │ │ │ ├── row_nameday_name.xml │ │ │ ├── row_no_search_results.xml │ │ │ ├── row_people.xml │ │ │ ├── row_people_import_from_facebook.xml │ │ │ ├── row_people_no_contacts.xml │ │ │ ├── row_person_action.xml │ │ │ ├── row_person_event.xml │ │ │ ├── row_search_result_contact_event.xml │ │ │ ├── row_suggested_name.xml │ │ │ ├── row_theme_select.xml │ │ │ ├── row_upcoming_events_bankholiday.xml │ │ │ ├── row_upcoming_events_contact_event.xml │ │ │ ├── row_upcoming_events_date_header.xml │ │ │ ├── row_upcoming_events_nameday.xml │ │ │ ├── toolbar_search.xml │ │ │ ├── widget_loading.xml │ │ │ ├── widget_prompt_permissions.xml │ │ │ ├── widget_today.xml │ │ │ ├── widget_today_nocontacts.xml │ │ │ ├── widget_upcoming_events.xml │ │ │ ├── widget_upcoming_events_list_contact_event.xml │ │ │ ├── widget_upcoming_events_list_date.xml │ │ │ ├── widget_upcoming_events_list_nameday.xml │ │ │ └── widget_upcomingevents_list_bankholiday.xml │ │ ├── layout-land/ │ │ │ └── activity_add_event.xml │ │ ├── menu/ │ │ │ ├── menu_date_details.xml │ │ │ ├── menu_nameday_view.xml │ │ │ ├── menu_nav_drawer.xml │ │ │ ├── menu_person_details.xml │ │ │ └── menu_search.xml │ │ ├── raw/ │ │ │ ├── cs_namedays.json │ │ │ ├── gr_namedays.json │ │ │ ├── hu_namedays.json │ │ │ ├── it_namedays.json │ │ │ ├── lv_ext_namedays.json │ │ │ ├── lv_namedays.json │ │ │ ├── ro_namedays.json │ │ │ ├── ru_namedays.json │ │ │ └── sk_namedays.json │ │ ├── transition/ │ │ │ ├── changebounds.xml │ │ │ ├── explode.xml │ │ │ └── fade_and_changebounds.xml │ │ ├── values/ │ │ │ ├── add_event-resources.xml │ │ │ ├── admob.xml │ │ │ ├── animations_dimens.xml │ │ │ ├── arrays.xml │ │ │ ├── attrs.xml │ │ │ ├── available_themes.xml │ │ │ ├── bankholidays_preferences-resources.xml │ │ │ ├── bithday_picker-styles.xml │ │ │ ├── bools.xml │ │ │ ├── bottom_sheet-resources.xml │ │ │ ├── card-resources.xml │ │ │ ├── colors.xml │ │ │ ├── colors_dayslight.xml │ │ │ ├── colors_support.xml │ │ │ ├── contact_cards-resources.xml │ │ │ ├── contact_permission-resources.xml │ │ │ ├── date_details-resources.xml │ │ │ ├── debug_keys.xml │ │ │ ├── dimens-contact_details.xml │ │ │ ├── dimens.xml │ │ │ ├── divider-res.xml │ │ │ ├── donate-resources.xml │ │ │ ├── drawable.xml │ │ │ ├── facebook-resources.xml │ │ │ ├── ids.xml │ │ │ ├── integers.xml │ │ │ ├── main_preferences-resources.xml │ │ │ ├── namedayscreen-resources.xml │ │ │ ├── no_contacts.xml │ │ │ ├── nocontacts_styles.xml │ │ │ ├── people_resources.xml │ │ │ ├── person-resources.xml │ │ │ ├── pref_fragment_dimens.xml │ │ │ ├── pref_fragment_strings.xml │ │ │ ├── search-resources.xml │ │ │ ├── string_keys.xml │ │ │ ├── styles.xml │ │ │ ├── support-resources.xml │ │ │ ├── support-strings.xml │ │ │ ├── themes-strings.xml │ │ │ ├── themes.xml │ │ │ ├── today_widget_strings.xml │ │ │ ├── toolbar-resources.xml │ │ │ ├── upcoming-resources.xml │ │ │ ├── upcoming_widget_dimens.xml │ │ │ ├── upcoming_widget_preview-resources.xml │ │ │ └── widget_upcoming_events-resources.xml │ │ ├── values-el/ │ │ │ ├── bool.xml │ │ │ └── support-strings.xml │ │ ├── values-it/ │ │ │ └── bool.xml │ │ ├── values-land/ │ │ │ ├── bools.xml │ │ │ ├── dimens.xml │ │ │ ├── integers.xml │ │ │ └── toolbar-resources.xml │ │ ├── values-land-v23/ │ │ │ └── themes.xml │ │ ├── values-large/ │ │ │ └── bool.xml │ │ ├── values-sw600dp/ │ │ │ ├── bottom_sheet-resources.xml │ │ │ ├── dimens.xml │ │ │ ├── integers.xml │ │ │ └── toolbar-resources.xml │ │ ├── values-sw720dp/ │ │ │ └── bottom_sheet-resources.xml │ │ ├── values-sw720dp-land/ │ │ │ └── dimens.xml │ │ ├── values-v21/ │ │ │ ├── dimens.xml │ │ │ ├── drawable.xml │ │ │ └── styles.xml │ │ ├── xml/ │ │ │ ├── file_paths.xml │ │ │ ├── preference_dailyreminder.xml │ │ │ ├── preference_debug.xml │ │ │ ├── preference_main.xml │ │ │ ├── widget_info_upcoming_events_list.xml │ │ │ └── widget_info_upcoming_events_simple.xml │ │ └── xml-v26/ │ │ └── preference_dailyreminder.xml │ └── test/ │ └── java/ │ └── com/ │ └── alexstyl/ │ ├── resources/ │ │ └── JavaStrings.kt │ └── specialdates/ │ └── person/ │ ├── CompositeContactActionsProviderTest.kt │ └── PersonInfoViewModelFactoryTest.kt ├── android_wear/ │ ├── .gitignore │ ├── build.gradle │ ├── proguard-rules.pro │ └── src/ │ └── main/ │ ├── AndroidManifest.xml │ ├── java/ │ │ └── com/ │ │ └── alexstyl/ │ │ └── specialdates/ │ │ ├── ContactEventsActivity.java │ │ ├── ContactEventsProviderService.java │ │ ├── DataChangedListenerService.java │ │ └── WearCommunicationService.java │ └── res/ │ ├── layout/ │ │ └── activity_contact_events.xml │ └── values/ │ ├── contact_events-resource.xml │ └── strings.xml ├── build.gradle ├── gradle/ │ └── wrapper/ │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradle.properties ├── gradlew ├── gradlew.bat ├── memento/ │ ├── .gitignore │ ├── build.gradle │ ├── config.yml │ └── src/ │ ├── main/ │ │ └── java/ │ │ ├── android/ │ │ │ └── LruCache.java │ │ └── com/ │ │ └── alexstyl/ │ │ ├── Logger.kt │ │ ├── gsc/ │ │ │ ├── Index.java │ │ │ ├── Sound.kt │ │ │ ├── SoundComparer.kt │ │ │ └── SoundRules.kt │ │ ├── resources/ │ │ │ └── Colors.kt │ │ └── specialdates/ │ │ ├── CrashAndErrorTracker.kt │ │ ├── EventsUpdateTrigger.java │ │ ├── LabelSetter.java │ │ ├── Optional.kt │ │ ├── SoundWordComparator.java │ │ ├── Strings.kt │ │ ├── TimeOfDay.kt │ │ ├── UpcomingEventsView.kt │ │ ├── WordComparator.java │ │ ├── addevent/ │ │ │ ├── AddEventContactEventViewModel.kt │ │ │ ├── AddEventView.kt │ │ │ ├── AddEventViewModelFactory.kt │ │ │ ├── AddEventsPresenter.kt │ │ │ ├── ContactOperations.kt │ │ │ ├── ContactOperationsExecutor.kt │ │ │ ├── ContactsSearch.kt │ │ │ ├── EventIcons.kt │ │ │ ├── MessageDisplayer.kt │ │ │ └── operations/ │ │ │ ├── ContactOperation.kt │ │ │ ├── InsertContact.kt │ │ │ ├── InsertEvent.kt │ │ │ ├── InsertImage.kt │ │ │ └── UpdateContact.kt │ │ ├── analytics/ │ │ │ ├── Analytics.kt │ │ │ ├── Screen.kt │ │ │ └── Widget.kt │ │ ├── contact/ │ │ │ ├── Contact.kt │ │ │ ├── ContactCache.kt │ │ │ ├── ContactNotFoundException.kt │ │ │ ├── ContactSource.java │ │ │ ├── Contacts.kt │ │ │ ├── ContactsProvider.kt │ │ │ ├── ContactsProviderSource.kt │ │ │ ├── DisplayName.kt │ │ │ └── Names.kt │ │ ├── dailyreminder/ │ │ │ ├── BankHolidayNotificationViewModel.kt │ │ │ ├── ContactActionViewModel.kt │ │ │ ├── ContactEventNotificationViewModel.kt │ │ │ ├── DailyReminderNotifier.kt │ │ │ ├── DailyReminderPresenter.kt │ │ │ ├── DailyReminderScheduler.kt │ │ │ ├── DailyReminderUserSettings.kt │ │ │ ├── DailyReminderView.kt │ │ │ ├── DailyReminderViewModel.kt │ │ │ ├── DailyReminderViewModelFactory.kt │ │ │ ├── NamedaysNotificationViewModel.kt │ │ │ ├── NotificationViewModel.kt │ │ │ └── SummaryNotificationViewModel.kt │ │ ├── date/ │ │ │ ├── ContactEvent.kt │ │ │ ├── Date.kt │ │ │ ├── DateAndTime.kt │ │ │ ├── DateComparator.java │ │ │ ├── DateLabelCreator.kt │ │ │ ├── DateParseException.kt │ │ │ ├── DateParser.kt │ │ │ ├── Dates.kt │ │ │ ├── MonthInt.java │ │ │ ├── Months.java │ │ │ └── TimePeriod.kt │ │ ├── donate/ │ │ │ ├── DonateMonitor.kt │ │ │ ├── Donation.java │ │ │ ├── DonationCallbacks.java │ │ │ └── DonationService.java │ │ ├── events/ │ │ │ ├── Event.kt │ │ │ ├── SettingsPresenter.kt │ │ │ ├── bankholidays/ │ │ │ │ ├── BankHoliday.kt │ │ │ │ ├── BankHolidayProvider.kt │ │ │ │ ├── BankHolidaysUserSettings.kt │ │ │ │ └── GreekBankHolidaysCalculator.java │ │ │ ├── database/ │ │ │ │ └── EventTypeId.java │ │ │ ├── namedays/ │ │ │ │ ├── NameCelebrations.kt │ │ │ │ ├── NamedayBundle.java │ │ │ │ ├── NamedayDatabaseRefresher.kt │ │ │ │ ├── NamedayLocale.java │ │ │ │ ├── NamedayUserSettings.java │ │ │ │ ├── NamedaysList.java │ │ │ │ ├── NamesInADate.kt │ │ │ │ ├── activity/ │ │ │ │ │ ├── CelebratingContactViewModel.kt │ │ │ │ │ ├── NamedayScreenViewModel.kt │ │ │ │ │ ├── NamedayScreenViewType.java │ │ │ │ │ ├── NamedaysInADayPresenter.kt │ │ │ │ │ ├── NamedaysOnADayView.kt │ │ │ │ │ ├── NamedaysViewModel.kt │ │ │ │ │ └── NamedaysViewModelFactory.kt │ │ │ │ └── calendar/ │ │ │ │ ├── EasternNameday.java │ │ │ │ ├── EasternNamedaysExtractor.java │ │ │ │ ├── NamedayCalendar.java │ │ │ │ ├── OrthodoxEasterCalculator.java │ │ │ │ └── resource/ │ │ │ │ ├── CharacterNode.java │ │ │ │ ├── GreekNamedays.java │ │ │ │ ├── GreekSpecialNamedays.java │ │ │ │ ├── NamedayCalendarProvider.java │ │ │ │ ├── NamedayJSON.java │ │ │ │ ├── NamedayJSONParser.java │ │ │ │ ├── NamedayJSONProvider.java │ │ │ │ ├── NamedayJSONResourceLoader.kt │ │ │ │ ├── Node.java │ │ │ │ ├── RomanianEasterSpecialCalculator.kt │ │ │ │ ├── RomanianNamedays.kt │ │ │ │ ├── RomanianSpecialNamedays.java │ │ │ │ ├── SoundNode.kt │ │ │ │ ├── SpecialGreekNamedaysCalculator.java │ │ │ │ ├── SpecialNamedays.java │ │ │ │ └── SpecialNamedaysHandlerFactory.java │ │ │ └── peopleevents/ │ │ │ ├── ClosestEventsComparator.java │ │ │ ├── CompositePeopleEventsProvider.kt │ │ │ ├── ContactEventsOnADate.kt │ │ │ ├── CustomEventType.kt │ │ │ ├── EventType.kt │ │ │ ├── NoEventsFoundException.kt │ │ │ ├── PeopleDynamicNamedaysProvider.kt │ │ │ ├── PeopleEventsPersister.kt │ │ │ ├── PeopleEventsProvider.kt │ │ │ ├── PeopleEventsRepository.kt │ │ │ ├── PeopleEventsStaticEventsRefresher.kt │ │ │ ├── PeopleEventsUpdater.kt │ │ │ ├── ShortDateLabelCreator.java │ │ │ ├── StandardEventType.java │ │ │ ├── UpcomingEventsSettings.kt │ │ │ └── UpcomingEventsViewRefresher.kt │ │ ├── facebook/ │ │ │ ├── FacebookImagePath.kt │ │ │ ├── FacebookUserSettings.kt │ │ │ ├── UserCredentials.java │ │ │ └── friendimport/ │ │ │ ├── CalendarFetcherException.java │ │ │ ├── CalendarLoader.java │ │ │ ├── ContactEventSerialiser.java │ │ │ ├── FacebookBirthdaysProvider.java │ │ │ ├── FacebookCalendarLoader.java │ │ │ ├── FacebookContactFactory.java │ │ │ └── InvalidFacebookContactException.java │ │ ├── people/ │ │ │ ├── FacebookImportViewModel.kt │ │ │ ├── NoContactsViewModel.kt │ │ │ ├── PeoplePresenter.kt │ │ │ ├── PeopleRowViewModel.kt │ │ │ ├── PeopleView.java │ │ │ ├── PeopleViewHolderListener.java │ │ │ ├── PeopleViewModelFactory.kt │ │ │ └── PersonViewModel.kt │ │ ├── permissions/ │ │ │ └── MementoPermissions.kt │ │ ├── person/ │ │ │ ├── AgeCalculator.kt │ │ │ ├── ContactActions.kt │ │ │ ├── ContactEventViewModel.kt │ │ │ ├── EventViewModelFactory.kt │ │ │ ├── PersonDetailItem.kt │ │ │ └── StarSign.kt │ │ ├── search/ │ │ │ ├── ContactEventLabelCreator.kt │ │ │ ├── ContactWithEvents.java │ │ │ ├── NameFilter.java │ │ │ ├── NameMatcher.kt │ │ │ └── PeopleEventsSearch.java │ │ ├── ui/ │ │ │ └── widget/ │ │ │ └── LetterPainter.kt │ │ ├── upcoming/ │ │ │ ├── AnnualDate.kt │ │ │ ├── BankHolidayViewModel.kt │ │ │ ├── CompositeUpcomingEventsProvider.kt │ │ │ ├── ContactViewModelFactory.kt │ │ │ ├── DateHeaderViewModel.kt │ │ │ ├── MonthLabels.java │ │ │ ├── UpcomingContactEventViewModel.kt │ │ │ ├── UpcomingDateStringCreator.kt │ │ │ ├── UpcomingEventRowViewModelFactory.kt │ │ │ ├── UpcomingEventsAdRules.kt │ │ │ ├── UpcomingEventsFreeUserAdRules.kt │ │ │ ├── UpcomingEventsPresenter.kt │ │ │ ├── UpcomingEventsProvider.kt │ │ │ ├── UpcomingListMVPView.kt │ │ │ ├── UpcomingNamedaysViewModel.kt │ │ │ ├── UpcomingRowViewModel.kt │ │ │ ├── UpcomingRowViewModelsBuilder.kt │ │ │ ├── UpcomingRowViewType.java │ │ │ └── widget/ │ │ │ ├── list/ │ │ │ │ └── NoAds.kt │ │ │ └── today/ │ │ │ ├── PercentToValueConverter.java │ │ │ ├── RecentPeopleEventsPresenter.kt │ │ │ └── RecentPeopleEventsView.kt │ │ └── util/ │ │ └── HashMapList.kt │ └── test/ │ ├── java/ │ │ └── com/ │ │ └── alexstyl/ │ │ ├── TestColors.kt │ │ ├── gsc/ │ │ │ ├── SoundComparerTest.kt │ │ │ └── SoundTest.kt │ │ └── specialdates/ │ │ ├── JavaStrings.kt │ │ ├── NamesTest.kt │ │ ├── OptionalTest.java │ │ ├── TestContactEventsBuilder.kt │ │ ├── TestDateLabelCreator.kt │ │ ├── addevent/ │ │ │ ├── AddEventsPresenterTest.kt │ │ │ ├── JavaEventIcons.kt │ │ │ ├── JavaMessageDisplayer.kt │ │ │ └── ui/ │ │ │ ├── ContactSourcesStubs.kt │ │ │ └── ContactsSearchTest.kt │ │ ├── contact/ │ │ │ ├── ContactCacheTest.java │ │ │ ├── ContactFixture.java │ │ │ ├── ContactTest.java │ │ │ └── DisplayNameTest.java │ │ ├── date/ │ │ │ └── ContactEventTest.java │ │ ├── events/ │ │ │ ├── ContactActionTest.java │ │ │ ├── DateTest.java │ │ │ ├── ShortDateLabelCreatorTest.java │ │ │ ├── StandardEventTypeTest.java │ │ │ ├── bankholidays/ │ │ │ │ └── BankHolidayProviderTest.java │ │ │ ├── namedays/ │ │ │ │ ├── NamedaysListTest.java │ │ │ │ ├── OrthodoxEasterCalculatorTest.java │ │ │ │ ├── RomanianNamedaysTest.java │ │ │ │ ├── activity/ │ │ │ │ │ └── NamedaysInADayPresenterTest.kt │ │ │ │ └── calendar/ │ │ │ │ └── resource/ │ │ │ │ ├── CharacterNodeTest.java │ │ │ │ ├── GreeklishParserTest.java │ │ │ │ ├── NamedayJSONParserTest.java │ │ │ │ ├── RomanianEasterSpecialCalculatorTest.kt │ │ │ │ ├── SoundNodeTest.kt │ │ │ │ ├── TestJSONResourceLoader.kt │ │ │ │ └── TestNamedayCalendarBuilder.java │ │ │ └── peopleevents/ │ │ │ ├── ClosestEventsComparatorTest.java │ │ │ ├── CompositePeopleEventsProviderTest.kt │ │ │ ├── ContactEventsOnADateTest.kt │ │ │ └── PeopleDynamicNamedaysProviderTest.kt │ │ ├── facebook/ │ │ │ └── friendimport/ │ │ │ ├── FacebookBirthdaysProviderTest.java │ │ │ ├── FacebookContactFactoryTest.java │ │ │ ├── MockCalendarLoader.java │ │ │ └── SystemLogTracker.kt │ │ ├── person/ │ │ │ ├── AgeCalculatorTest.kt │ │ │ └── StarSignTest.kt │ │ ├── search/ │ │ │ ├── ContactEventTestBuilder.java │ │ │ ├── EventLabelCreatorTest.java │ │ │ ├── NameFilterTest.java │ │ │ ├── NameMatcherTest.java │ │ │ └── PeopleEventsSearchTest.kt │ │ ├── timeofday/ │ │ │ └── TimeOfDayTest.java │ │ ├── upcoming/ │ │ │ ├── MonthLabelsTest.java │ │ │ ├── TimePeriodTest.java │ │ │ ├── UpcomingEventsPresenterTest.kt │ │ │ ├── UpcomingRowViewModelsBuilderTest.kt │ │ │ └── widget/ │ │ │ └── today/ │ │ │ └── PercentToValueConverterTest.java │ │ └── util/ │ │ ├── DateParserTest.kt │ │ └── HashMapListTest.java │ └── resources/ │ └── gr_namedays.json ├── secret.gradle ├── settings.gradle ├── team-props/ │ ├── android-code-quality.gradle │ ├── static-analysis/ │ │ ├── checkstyle-modules.xml │ │ ├── checkstyle-suppressions.xml │ │ ├── detekt-config.yml │ │ ├── findbugs-excludes.xml │ │ ├── lint-config.xml │ │ └── pmd-rules.xml │ └── static-analysis.gradle └── versions.gradle