Skip to content
This repository was archived by the owner on Apr 12, 2022. It is now read-only.

Commit db7cb38

Browse files
authored
Merge pull request #623 from dinsic-pim/giomfo/reduce_notif_settings
Simplify the notifications handling
2 parents cd66fd8 + ede214e commit db7cb38

14 files changed

+81
-62
lines changed

TCHAP_CHANGES.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ Changes in Tchap 1.0.xx (2020-xx-xx)
33

44
Improvements:
55
* Update matrix-sdk.aar libs - Revision: 3d3c42c5a55bcc4e80d268a6eace93eb1dfc0247 [3d3c42c5a]
6+
* Simplify the notifications handling #605
67

78
Bug Fix:
89
* LoginActivity: block the UI when the loading wheel is running

vector/src/app/java/im/vector/push/fcm/NotificationTroubleshootTestManagerFactory.kt

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,11 @@ class NotificationTroubleshootTestManagerFactory {
3232
mgr.addTest(TestAccountSettings(fragment, session))
3333
}
3434
mgr.addTest(TestDeviceSettings(fragment))
35-
if (session != null) {
36-
mgr.addTest(TestBingRulesSettings(fragment, session))
37-
}
35+
// Tchap: comment the test on the bing rules, because we remove the advanced settings
36+
// screen on Android app.
37+
// if (session != null) {
38+
// mgr.addTest(TestBingRulesSettings(fragment, session))
39+
// }
3840
mgr.addTest(TestPlayServices(fragment))
3941
mgr.addTest(TestFirebaseToken(fragment))
4042
mgr.addTest(TestTokenRegistration(fragment))

vector/src/main/java/im/vector/activity/VectorSettingsActivity.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -100,8 +100,8 @@ class VectorSettingsActivity : MXCActionBarActivity(),
100100
val oFragment = when (pref.key) {
101101
PreferencesManager.SETTINGS_NOTIFICATION_TROUBLESHOOT_PREFERENCE_KEY ->
102102
VectorSettingsNotificationsTroubleshootFragment.newInstance(session.myUserId)
103-
PreferencesManager.SETTINGS_NOTIFICATION_ADVANCED_PREFERENCE_KEY ->
104-
VectorSettingsAdvancedNotificationPreferenceFragment.newInstance(session.myUserId)
103+
// PreferencesManager.SETTINGS_NOTIFICATION_ADVANCED_PREFERENCE_KEY ->
104+
// VectorSettingsAdvancedNotificationPreferenceFragment.newInstance(session.myUserId)
105105
// PreferencesManager.SETTINGS_DISCOVERY_PREFERENCE_KEY,
106106
// PreferencesManager.SETTINGS_IDENTITY_SERVER_PREFERENCE_KEY ->
107107
// VectorSettingsDiscoveryFragment.newInstance(session.myUserId)

vector/src/main/java/im/vector/adapters/RoomViewHolder.java

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -288,11 +288,24 @@ public void onClick(View v) {
288288
}
289289

290290
BingRulesManager.RoomNotificationState roomNotificationState = session.getDataHandler().getBingRulesManager().getRoomNotificationState(room.getRoomId());
291-
if (null != vRoomNotificationMute) {
292-
if (roomNotificationState.equals(BingRulesManager.RoomNotificationState.MUTE)) {
293-
vRoomNotificationMute.setVisibility(View.VISIBLE);
294-
} else {
295-
vRoomNotificationMute.setVisibility(View.GONE);
291+
if (null != vRoomNotificationMute && null != roomNotificationState) {
292+
switch (roomNotificationState) {
293+
case ALL_MESSAGES_NOISY:
294+
case ALL_MESSAGES:
295+
vRoomNotificationMute.setVisibility(View.GONE);
296+
break;
297+
case MENTIONS_ONLY:
298+
if (room.isDirect()) {
299+
// Tchap: This mode is not suggested anymore for the direct chats
300+
// We consider people will not mention the other member in 1:1.
301+
// The room is considered mute.
302+
vRoomNotificationMute.setVisibility(View.VISIBLE);
303+
} else {
304+
vRoomNotificationMute.setVisibility(View.GONE);
305+
}
306+
break;
307+
case MUTE:
308+
vRoomNotificationMute.setVisibility(View.VISIBLE);
296309
}
297310
}
298311

vector/src/main/java/im/vector/fragments/VectorRoomSettingsFragment.java

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1080,14 +1080,22 @@ private void updatePreferenceUiValues() {
10801080
}
10811081

10821082
if (null != mRoomNotificationsPreference) {
1083+
String stateValue = BingRulesManager.RoomNotificationState.MUTE.name();
10831084
BingRulesManager.RoomNotificationState state = mSession.getDataHandler().getBingRulesManager().getRoomNotificationState(mRoom.getRoomId());
1084-
10851085
if (state != null) {
1086-
mRoomNotificationsPreference.setValue(state.name());
1087-
} else {
1088-
// Should not happen
1089-
mRoomNotificationsPreference.setValue(BingRulesManager.RoomNotificationState.MUTE.name());
1086+
switch (state) {
1087+
case ALL_MESSAGES_NOISY:
1088+
case ALL_MESSAGES:
1089+
// Tchap: We don't distinguish these 2 modes
1090+
// All the room notifications are noisy by default in the bing rules
1091+
stateValue = BingRulesManager.RoomNotificationState.ALL_MESSAGES.name();
1092+
break;
1093+
case MENTIONS_ONLY:
1094+
case MUTE:
1095+
stateValue = state.name();
1096+
}
10901097
}
1098+
mRoomNotificationsPreference.setValue(stateValue);
10911099
}
10921100

10931101
// update the room tag preference
@@ -1298,9 +1306,7 @@ private void onRoomNotificationsPreferenceChanged() {
12981306
String value = mRoomNotificationsPreference.getValue();
12991307
BingRulesManager.RoomNotificationState updatedState;
13001308

1301-
if (TextUtils.equals(value, BingRulesManager.RoomNotificationState.ALL_MESSAGES_NOISY.name())) {
1302-
updatedState = BingRulesManager.RoomNotificationState.ALL_MESSAGES_NOISY;
1303-
} else if (TextUtils.equals(value, BingRulesManager.RoomNotificationState.ALL_MESSAGES.name())) {
1309+
if (TextUtils.equals(value, BingRulesManager.RoomNotificationState.ALL_MESSAGES.name())) {
13041310
updatedState = BingRulesManager.RoomNotificationState.ALL_MESSAGES;
13051311
} else if (TextUtils.equals(value, BingRulesManager.RoomNotificationState.MENTIONS_ONLY.name())) {
13061312
updatedState = BingRulesManager.RoomNotificationState.MENTIONS_ONLY;

vector/src/main/java/im/vector/fragments/VectorSettingsNotificationsTroubleshootFragment.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -161,7 +161,7 @@ class VectorSettingsNotificationsTroubleshootFragment : VectorBaseFragment() {
161161

162162
override fun onResume() {
163163
super.onResume()
164-
(activity as? MXCActionBarActivity)?.supportActionBar?.setTitle(R.string.settings_notification_troubleshoot)
164+
(activity as? MXCActionBarActivity)?.supportActionBar?.setTitle(R.string.settings_notification_troubleshoot_title)
165165
}
166166

167167
override fun onAttach(context: Context?) {

vector/src/main/java/im/vector/fragments/VectorSettingsPreferencesFragment.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3255,7 +3255,6 @@ class VectorSettingsPreferencesFragment : PreferenceFragmentCompat(), SharedPref
32553255

32563256
// preference name <-> rule Id
32573257
private var mPrefKeyToBingRuleId = mapOf(
3258-
PreferencesManager.SETTINGS_ENABLE_ALL_NOTIF_PREFERENCE_KEY to BingRule.RULE_ID_DISABLE_ALL,
32593258
PreferencesManager.SETTINGS_ENABLE_THIS_DEVICE_PREFERENCE_KEY to DUMMY_RULE,
32603259
PreferencesManager.SETTINGS_TURN_SCREEN_ON_PREFERENCE_KEY to DUMMY_RULE
32613260
)

vector/src/main/java/im/vector/util/PreferencesManager.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,6 @@ public class PreferencesManager {
122122

123123
// notifications
124124
public static final String SETTINGS_NOTIFICATIONS_KEY = "SETTINGS_NOTIFICATIONS_KEY";
125-
public static final String SETTINGS_ENABLE_ALL_NOTIF_PREFERENCE_KEY = "SETTINGS_ENABLE_ALL_NOTIF_PREFERENCE_KEY";
126125
public static final String SETTINGS_ENABLE_THIS_DEVICE_PREFERENCE_KEY = "SETTINGS_ENABLE_THIS_DEVICE_PREFERENCE_KEY";
127126
public static final String SETTINGS_TURN_SCREEN_ON_PREFERENCE_KEY = "SETTINGS_TURN_SCREEN_ON_PREFERENCE_KEY";
128127
public static final String SETTINGS_SYSTEM_CALL_NOTIFICATION_PREFERENCE_KEY = "SETTINGS_SYSTEM_CALL_NOTIFICATION_PREFERENCE_KEY";

vector/src/main/java/im/vector/util/RoomUtils.java

Lines changed: 34 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -573,26 +573,43 @@ public boolean onMenuItemClick(final MenuItem item) {
573573
item.setIcon(R.drawable.ic_material_transparent);
574574
}
575575

576-
BingRulesManager.RoomNotificationState state = session.getDataHandler().getBingRulesManager().getRoomNotificationState(room.getRoomId());
577-
578-
if (BingRulesManager.RoomNotificationState.ALL_MESSAGES_NOISY != state) {
579-
item = popup.getMenu().findItem(R.id.ic_action_notifications_noisy);
580-
item.setIcon(R.drawable.ic_material_transparent);
581-
}
582-
583-
if (BingRulesManager.RoomNotificationState.ALL_MESSAGES != state) {
584-
item = popup.getMenu().findItem(R.id.ic_action_notifications_all_message);
585-
item.setIcon(R.drawable.ic_material_transparent);
586-
}
587-
588-
if (BingRulesManager.RoomNotificationState.MENTIONS_ONLY != state) {
576+
if (room.isDirect()) {
577+
// Tchap: The "mention only" mode is not suggested anymore for the direct chats
578+
// We consider people will not mention the other member in 1:1.
589579
item = popup.getMenu().findItem(R.id.ic_action_notifications_mention_only);
590-
item.setIcon(R.drawable.ic_material_transparent);
580+
item.setVisible(false);
591581
}
592582

593-
if (BingRulesManager.RoomNotificationState.MUTE != state) {
594-
item = popup.getMenu().findItem(R.id.ic_action_notifications_mute);
595-
item.setIcon(R.drawable.ic_material_transparent);
583+
BingRulesManager.RoomNotificationState state = session.getDataHandler().getBingRulesManager().getRoomNotificationState(room.getRoomId());
584+
if (state != null) {
585+
switch (state) {
586+
case ALL_MESSAGES_NOISY:
587+
case ALL_MESSAGES:
588+
// Tchap: We don't distinguish these 2 modes
589+
// All the room notifications are noisy by default in the bing rules
590+
item = popup.getMenu().findItem(R.id.ic_action_notifications_mention_only);
591+
item.setIcon(R.drawable.ic_material_transparent);
592+
item = popup.getMenu().findItem(R.id.ic_action_notifications_mute);
593+
item.setIcon(R.drawable.ic_material_transparent);
594+
break;
595+
case MENTIONS_ONLY:
596+
item = popup.getMenu().findItem(R.id.ic_action_notifications_all_message);
597+
item.setIcon(R.drawable.ic_material_transparent);
598+
if (room.isDirect()) {
599+
// The room is considered mute.
600+
item = popup.getMenu().findItem(R.id.ic_action_notifications_mention_only);
601+
item.setIcon(R.drawable.ic_material_transparent);
602+
} else {
603+
item = popup.getMenu().findItem(R.id.ic_action_notifications_mute);
604+
item.setIcon(R.drawable.ic_material_transparent);
605+
}
606+
break;
607+
case MUTE:
608+
item = popup.getMenu().findItem(R.id.ic_action_notifications_all_message);
609+
item.setIcon(R.drawable.ic_material_transparent);
610+
item = popup.getMenu().findItem(R.id.ic_action_notifications_mention_only);
611+
item.setIcon(R.drawable.ic_material_transparent);
612+
}
596613
}
597614

598615
// TODO LazyLoading, current user may be null
@@ -620,13 +637,6 @@ public boolean onMenuItemClick(final MenuItem item) {
620637
}
621638
break;
622639
}
623-
case R.id.ic_action_notifications_noisy:
624-
moreActionListener.onUpdateRoomNotificationsState(session,
625-
room.getRoomId(), BingRulesManager.RoomNotificationState.ALL_MESSAGES_NOISY);
626-
if (null != notificationMuteView) {
627-
notificationMuteView.setVisibility(View.GONE);
628-
}
629-
break;
630640

631641
case R.id.ic_action_notifications_all_message:
632642
moreActionListener.onUpdateRoomNotificationsState(session,

vector/src/main/res/menu/vector_home_room_settings.xml

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,6 @@
77
android:icon="@drawable/ic_pin"
88
android:title="@string/room_settings_pin" />
99

10-
<item
11-
android:id="@+id/ic_action_notifications_noisy"
12-
android:icon="@drawable/ic_material_done"
13-
android:title="@string/room_settings_all_messages_noisy" />
14-
1510
<item
1611
android:id="@+id/ic_action_notifications_all_message"
1712
android:icon="@drawable/ic_material_done"

0 commit comments

Comments
 (0)