From a7dd78cce6b14971dce58c78ff29db47245c1b3e Mon Sep 17 00:00:00 2001 From: Alex Hart Date: Tue, 12 Nov 2019 10:18:57 -0400 Subject: [PATCH] Implement in-app insights. --- res/drawable/ic_x_tinted.xml | 9 + .../insights_cta_button_background.xml | 5 + res/drawable/insights_modal_background.xml | 5 + .../insights_modal_background_dark.xml | 5 + res/drawable/reminder_progress_ring.xml | 25 ++ res/layout/insights_dashboard.xml | 200 +++++++++++++ .../insights_dashboard_adapter_item.xml | 56 ++++ res/layout/insights_modal.xml | 114 ++++++++ res/layout/reminder_action_button.xml | 12 + res/layout/reminder_header.xml | 113 ++++++-- res/layout/reminder_progress.xml | 9 + res/menu/text_secure_normal.xml | 4 + res/raw/lottie_insights_100.json | 1 + res/values-land/dimens.xml | 12 + res/values/attrs.xml | 7 + res/values/dimens.xml | 11 + res/values/ids.xml | 3 + res/values/strings.xml | 29 ++ res/values/styles.xml | 25 +- res/values/text_styles.xml | 42 +++ res/values/themes.xml | 17 ++ .../securesms/ConversationListActivity.java | 15 +- .../securesms/ConversationListFragment.java | 6 + .../securesms/InviteActivity.java | 5 +- .../securesms/components/ArcProgressBar.java | 125 ++++++++ .../reminder/FirstInviteReminder.java | 21 ++ .../components/reminder/InviteReminder.java | 28 -- .../components/reminder/Reminder.java | 37 +++ .../reminder/ReminderActionsAdapter.java | 54 ++++ .../components/reminder/ReminderView.java | 72 ++++- .../reminder/SecondInviteReminder.java | 31 ++ .../conversation/ConversationActivity.java | 61 ++-- .../ConversationPopupActivity.java | 2 +- .../securesms/database/MessagingDatabase.java | 61 ++++ .../securesms/database/MmsDatabase.java | 15 +- .../securesms/database/MmsSmsDatabase.java | 22 ++ .../securesms/database/RecipientDatabase.java | 119 ++++++-- .../securesms/database/SmsDatabase.java | 16 +- .../securesms/database/ThreadDatabase.java | 2 +- .../insights/InsightsAnimatorSetFactory.java | 94 ++++++ .../InsightsDashboardDialogFragment.java | 269 ++++++++++++++++++ .../insights/InsightsDashboardState.java | 70 +++++ .../insights/InsightsDashboardViewModel.java | 68 +++++ .../securesms/insights/InsightsData.java | 19 ++ .../InsightsInsecureRecipientsAdapter.java | 118 ++++++++ .../securesms/insights/InsightsLauncher.java | 25 ++ .../insights/InsightsModalDialogFragment.java | 131 +++++++++ .../insights/InsightsModalState.java | 53 ++++ .../insights/InsightsModalViewModel.java | 50 ++++ .../securesms/insights/InsightsOptOut.java | 19 ++ .../insights/InsightsRepository.java | 102 +++++++ .../insights/InsightsUserAvatar.java | 42 +++ .../invites/InviteReminderModel.java | 144 ++++++++++ .../invites/InviteReminderRepository.java | 45 +++ .../securesms/recipients/Recipient.java | 16 +- .../recipients/RecipientDetails.java | 7 +- 56 files changed, 2541 insertions(+), 127 deletions(-) create mode 100644 res/drawable/ic_x_tinted.xml create mode 100644 res/drawable/insights_cta_button_background.xml create mode 100644 res/drawable/insights_modal_background.xml create mode 100644 res/drawable/insights_modal_background_dark.xml create mode 100644 res/drawable/reminder_progress_ring.xml create mode 100644 res/layout/insights_dashboard.xml create mode 100644 res/layout/insights_dashboard_adapter_item.xml create mode 100644 res/layout/insights_modal.xml create mode 100644 res/layout/reminder_action_button.xml create mode 100644 res/layout/reminder_progress.xml create mode 100644 res/raw/lottie_insights_100.json create mode 100644 src/org/thoughtcrime/securesms/components/ArcProgressBar.java create mode 100644 src/org/thoughtcrime/securesms/components/reminder/FirstInviteReminder.java delete mode 100644 src/org/thoughtcrime/securesms/components/reminder/InviteReminder.java create mode 100644 src/org/thoughtcrime/securesms/components/reminder/ReminderActionsAdapter.java create mode 100644 src/org/thoughtcrime/securesms/components/reminder/SecondInviteReminder.java create mode 100644 src/org/thoughtcrime/securesms/insights/InsightsAnimatorSetFactory.java create mode 100644 src/org/thoughtcrime/securesms/insights/InsightsDashboardDialogFragment.java create mode 100644 src/org/thoughtcrime/securesms/insights/InsightsDashboardState.java create mode 100644 src/org/thoughtcrime/securesms/insights/InsightsDashboardViewModel.java create mode 100644 src/org/thoughtcrime/securesms/insights/InsightsData.java create mode 100644 src/org/thoughtcrime/securesms/insights/InsightsInsecureRecipientsAdapter.java create mode 100644 src/org/thoughtcrime/securesms/insights/InsightsLauncher.java create mode 100644 src/org/thoughtcrime/securesms/insights/InsightsModalDialogFragment.java create mode 100644 src/org/thoughtcrime/securesms/insights/InsightsModalState.java create mode 100644 src/org/thoughtcrime/securesms/insights/InsightsModalViewModel.java create mode 100644 src/org/thoughtcrime/securesms/insights/InsightsOptOut.java create mode 100644 src/org/thoughtcrime/securesms/insights/InsightsRepository.java create mode 100644 src/org/thoughtcrime/securesms/insights/InsightsUserAvatar.java create mode 100644 src/org/thoughtcrime/securesms/invites/InviteReminderModel.java create mode 100644 src/org/thoughtcrime/securesms/invites/InviteReminderRepository.java diff --git a/res/drawable/ic_x_tinted.xml b/res/drawable/ic_x_tinted.xml new file mode 100644 index 0000000000..a06051fb1c --- /dev/null +++ b/res/drawable/ic_x_tinted.xml @@ -0,0 +1,9 @@ + + + diff --git a/res/drawable/insights_cta_button_background.xml b/res/drawable/insights_cta_button_background.xml new file mode 100644 index 0000000000..5d8a5c7ee1 --- /dev/null +++ b/res/drawable/insights_cta_button_background.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/res/drawable/insights_modal_background.xml b/res/drawable/insights_modal_background.xml new file mode 100644 index 0000000000..3fa21373fe --- /dev/null +++ b/res/drawable/insights_modal_background.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/res/drawable/insights_modal_background_dark.xml b/res/drawable/insights_modal_background_dark.xml new file mode 100644 index 0000000000..854e599bb2 --- /dev/null +++ b/res/drawable/insights_modal_background_dark.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/res/drawable/reminder_progress_ring.xml b/res/drawable/reminder_progress_ring.xml new file mode 100644 index 0000000000..d2b4d25356 --- /dev/null +++ b/res/drawable/reminder_progress_ring.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + diff --git a/res/layout/insights_dashboard.xml b/res/layout/insights_dashboard.xml new file mode 100644 index 0000000000..4d550f7191 --- /dev/null +++ b/res/layout/insights_dashboard.xml @@ -0,0 +1,200 @@ + + + + + + + + + + + + + + + + + + + + + + + + +