You can do it with shared preferences.
You can set notification settings in Shared Preferences and later if you receive any message then you can decide to show Notification or not.
Below Snippet is for ReactNative but you can use same for Native Apps as well
/**
* Toggle Notification Setting
*
* @param showNotifcation
*/
@ReactMethod
public void toggleNotification(boolean showNotifcation) {
if (showNotifcation) {
Toast.makeText(reactAppContext, "Notification Enabled", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(reactAppContext, "Notification Disabled", Toast.LENGTH_SHORT).show();
}
getPrefernceHelperInstace().setBoolean(reactAppContext, ENABLE_NOTIFICATION, showNotifcation);
}
Later in Message service class
public class ReactFireBaseMessagingService extends FirebaseMessagingService {
private NotificationUtils notificationUtils;
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
//Check if Notn are Enabled?
if (getPrefernceHelperInstace().getBoolean(getApplicationContext(),
ENABLE_NOTIFICATION, true)) {
//Show Notification
} else {
Log.e(TAG, "ReactFireBaseMessagingService: Notifications Are Disabled by User");
}
}
See Code SNippet
https://github.com/hiteshsahu/react-native-fcm-android/blob/master/android/app/src/main/java/com/hitesh_sahu/fcm/service/ReactFireBaseMessagingService.java
