-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdesign.note
140 lines (106 loc) · 5.27 KB
/
design.note
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
# Overview
list of contacts with optional filter
data for each contact needs to be added with the last contacted time and the
default contact method
each contact has picture, name and last contacted time
selecting a contact opens the default contact method, an update button, and an
edit button
the update button will reset the last contacted time for this contact (if you've
spoken face-to-face)
the edit button will allow for setting the default contact method, and will also
have a link to editing the contact (maybe as an additional fragment below the
contact method selection)
# Useful References
Sending a user to another app (for texting/calling/etc)
https://developer.android.com/training/basics/intents/sending
For setting the contact method preference for a user?
https://developer.android.com/training/basics/intents/sending#AppChooser
Find apps with permissions
https://stackoverflow.com/questions/7937794/how-to-get-installed-applications-permissions
Integration with comms apps
* Phone: https://stackoverflow.com/questions/4275678/how-to-make-a-phone-call-using-intent-in-android
* SMS: https://stackoverflow.com/questions/9798657/send-a-sms-via-intent
* Email: https://stackoverflow.com/questions/8701634/send-email-intent
* WhatsApp: https://faq.whatsapp.com/en/android/28000012
* Signal: ??? modify telegram technique
* Telegram: https://stackoverflow.com/questions/21627167/how-to-send-a-intent-with-telegram
* Messenger: https://stackoverflow.com/questions/26101675/share-a-text-with-facebook-messenger
* Riot.im: ???
Get row of button in list
https://stackoverflow.com/questions/20541821/get-listview-item-position-on-button-click
Request permissions
https://developer.android.com/training/permissions/requesting
Getting contact data
https://stackoverflow.com/questions/10117049/get-only-email-address-from-contact-list-android
https://stackoverflow.com/questions/4334649/accessing-android-contact-group-names
https://stackoverflow.com/questions/18604151/getting-contacts-based-on-the-groupid-in-android
Creating Lists
https://www.vogella.com/tutorials/AndroidListView/article.html#androidlists_overview
https://www.dev2qa.com/android-listview-example/
https://android--code.blogspot.com/2015/08/android-listview-add-items.html
Link to editing contact data
https://developer.android.com/training/contacts-provider/modify-data
Saving data specific to this app
(last contact time, preffered contact method)
https://developer.android.com/training/data-storage/room/index.html
Getting logs from comms apps
* Phone: https://stackoverflow.com/questions/6786666/how-do-i-access-call-log-for-android
* SMS:
* Email:
* WhatsApp: https://stackoverflow.com/questions/8856874/get-all-messages-from-whatsapp
Or maybe from backup on google drive?
* Signal: ???
* Telegram: ???
* Messenger: ???
* Riot.im: ???
# Visual Design
## List
## Edit Contact Method
Tabs with icons for calls, videos and messages.
Each tab will list the apps that can perform that action.
So an app can come under different headings, but performing different actions (WhatsApp video call vs WhatsApp message)
Email comes under messages.
## Edit Last Contact Time
Date picker and time picker. Date defaults to today, time defaults to now.
Option to set the last time to 'Never' (which sets it internally to null).
# RoadMap
- [X] `v0.1.0` : Display names of contacts in catch-up group
- [X] `v0.2.0` : Store last time contacted for contacts
- [X] `v0.3.0` : Display details of contacts
- [X] name
- [X] photo
- [X] time since last contact (in readable form)
- [X] `v0.4.0` : Display actions for contacts
- [X] update last contact time
- [X] contact them in fave way
- [X] open contact (intent of contact app)
- [X] contact them in other way
- [X] `v0.5.0` : Store contact methods for contacts (default to call)
- [X] `v0.6.0` : Can manually update last contact time to now
- [ ] `v0.6.0` : Can manually update last contact time to specific time
- [ ] `v0.7.0` : Can edit contact method for contacts
- [ ] `v0.8.0` : Can remove contact from this group (from within this app)
- [ ] `v0.9.0` : Can add contact to this group (from within this app)
- [ ] `v0.10.0` : Contact method button takes you to relevant app
- [ ] `v0.11.0` : Documentation of app
- [ ] About page view with license and link to github
- [ ] Readme and license on github page
- [ ] `v1.0.0` : Final release version. Only bugfixes on this branch.
# Breakdown
MainActivity (contact list)
ContactListFragment
contact_list_view
contact_list_item_view
ContactViewFragment
contact_action_view
ContactEditActivity
ContactEditFragment
contact_edit_view
# Feature Creep
* Last contacted time is updated when a contact is messaged in another app
No idea how this would be done, but a cool feature.
Folarin suggested using call logs, which seems like a genius idea.
* A list of the last X contact times for a contact, with the option to 'undo' one,
which would revert the contact time to the previous one. Or, if it's the last in the queue,
to a manual picker.
* Time since last contact changing to red as it gets older.