title: Enable or disable FCM push notifications by toggle button from application settings
body: <p>I have implemented push notifications through Firebase in my app. The notification is coming even when the notification is disabled from settings.
  The classes I have implemented for Firebase are:</p>
  
  <pre><code>    public class MyFirebaseMessagingService extends FirebaseMessagingService {
  
              private static final String TAG = "MyFirebaseMsgService";
              @Override
              public void onMessageReceived(RemoteMessage remoteMessage) {
  
                  //Displaying data in log
  
                  Log.e(TAG, "Notification Message Body: " + remoteMessage.getNotification().getBody());
                  //Calling method to generate notification
  
                  String to="";
                  to = remoteMessage.getData().get("key1");
  
          //when the notification is disabled then also the notification is coming
       if(notification_enable) {
      sendNotification(remoteMessage.getNotification().getTitle(),remoteMessage.getNotification().getBody(),to);
             }
          }
  
              //This method is only generating push notification
              //It is same as we did in earlier posts
              private void sendNotification(String title,String messageBody,String to) {
                      Intent intent = new Intent(this, Splash_Activity.class);
                      intent.putExtra("key1",to);
                      intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                      intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
  
  
                  PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_ONE_SHOT);
  
                  Uri defaultSoundUri= RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
                  NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this)
                          .setSmallIcon(R.drawable.noti_icon)
                          .setContentTitle(title)
                          .setStyle(new NotificationCompat.BigTextStyle().bigText(messageBody))
                          .setContentText(messageBody)
                          .setAutoCancel(true)
                          .setColor(this.getResources().getColor(R.color.colorAccent))
                          .setSound(defaultSoundUri)
                          .setContentIntent(pendingIntent);
  
                  NotificationManager notificationManager =
                          (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
  
                  notificationManager.notify(0, notificationBuilder.build());
              }
          }
   public class FirebaseIDService extends FirebaseInstanceIdService {
      private static final String TAG = "FirebaseIDService";
  
      @Override
      public void onTokenRefresh() {
          // Get updated InstanceID token.
          String refreshedToken = FirebaseInstanceId.getInstance().getToken();
          Log.e(TAG, "Refreshed token: " + refreshedToken);
  
          // TODO: Implement this method to send any registration to your app's servers.
          sendRegistrationToServer(refreshedToken);
      }
  
      /**
       * Persist token to third-party servers.
       *
       * Modify this method to associate the user's FCM InstanceID token with any server-side account
       * maintained by your application.
       *
       * @param token The new token.
       */
      private void sendRegistrationToServer(String token) {
          // Add custom implementation, as needed.
      }
  }
  </code></pre>
  
  <p>And included the classes in manifest as:</p>
  
  <pre><code>&lt;permission
          android:name="com.pixelpoint.permission.C2D_MESSAGE"
          android:protectionLevel="signature" /&gt;
  
      &lt;uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" /&gt;
      &lt;uses-permission android:name="com.pixelpoint.permission.C2D_MESSAGE" /&gt;
  
  &lt;service android:name=".MyFirebaseMessagingService"&gt;
              &lt;intent-filter&gt;
                  &lt;action android:name="com.google.firebase.MESSAGING_EVENT" /&gt;
              &lt;/intent-filter&gt;
          &lt;/service&gt;
          &lt;service android:name=".FirebaseIDService"&gt;
              &lt;intent-filter&gt;
                  &lt;action android:name="com.google.firebase.INSTANCE_ID_EVENT" /&gt;
              &lt;/intent-filter&gt;
          &lt;/service&gt;
  </code></pre>