У меня проблема с моим уведомлением о sh. Я отправляю пользователю уведомление, чтобы сообщить, что он был принят на работу, а затем пользователь должен подтвердить или отклонить предложение о приеме на работу, но когда он нажимает для подтверждения или отклонения, другое уведомление приходит с тем же сообщением. Хорошо, теперь я покажу вам код, который может помочь
Это класс, в котором принимаются сообщения;
public class MyNotificationService extends FirebaseMessagingService {
private Random random;
{
random = new Random(1);
}
@Override
public void onMessageReceived(@NonNull RemoteMessage remoteMessage) {
Log.i(TAG, "onMessageReceived: remote message:" + remoteMessage.getData());
if(remoteMessage != null){
Map<String, String> body = remoteMessage.getData();
String title = body.get("title");
if(title.equals(getString(R.string.notification_of_employment))) {
int notificationId =random.nextInt(100);
NotificationHandler.displayNotificationShopper(getApplicationContext(), title, body.get("place"),
body.get("when"), body.get("fee"), body.get("eName"),body.get("id"),
body.get("hId"),body.get("storeId"),notificationId);
remoteMessage = null;
}
if(title.equals(getString(R.string.response_notification))){
int notificationId = random.nextInt(100);
NotificationHandler.displayNotificationEmployer(getApplicationContext(),title,body.get("sName"),
body.get("outcome"),notificationId);
}
}
}
Здесь я создаю свое уведомление с настраиваемым представлением;
public static void displayNotificationEmployer(Context context, String title, String sName, String outcome, int notificationId) {
notId = notificationId;
RemoteViews customView = new RemoteViews(context.getPackageName(),R.layout.notification_employer_layout);
customView.setTextViewText(R.id.title_response,title);
customView.setTextViewText(R.id.notification_sname,sName);
customView.setTextViewText(R.id.notification_response,outcome);
customView.setTextViewText(R.id.timestamp_employer,DateUtils.formatDateTime(context, System.currentTimeMillis(), DateUtils.FORMAT_SHOW_TIME));
Intent intent = new Intent(context,NotificationReciver.class);
intent.putExtra("name", sName);
intent.putExtra("outcome", outcome);
intent.setAction("showmessage");
PendingIntent pendingIntent = PendingIntent.getBroadcast(context,0,intent, PendingIntent.FLAG_UPDATE_CURRENT);
NotificationCompat.Builder builder = new NotificationCompat.Builder(context, MyApplication.PRIMARY_CHANNEL_ID)
.setSmallIcon(R.drawable.i_notifiation)
.setCustomContentView(customView)
.setAutoCancel(true)
.setContentIntent(pendingIntent);
// .setStyle(new NotificationCompat.DecoratedCustomViewStyle());
Log.i(TAG, "displayNotificationEmployer: notification id: " + notificationId);
notificationManager.notify(notificationId,builder.build());
}
Я показываю вам мир фрагмента, где регистрируется уведомление
String mail = prefConfig.readLoggedUser().getEmail();
View view = inflater.inflate(R.layout.fragment_list_hiring, container, false);
TextView listEmpty = view.findViewById(R.id.emptyState_hiring_list);
RecyclerView recyclerView = view.findViewById(R.id.list_hires);
mDBHelper.getHireByMail(mail, new DBHelper.DataStatus() {
@Override
public void dataIsLoaded(List<?> obj, List<String> keys) {
double amount = 0.0;
if(obj.isEmpty()) {
listEmpty.setVisibility(View.VISIBLE);
}else{
List<HiringModel> hiringModelList = (List<HiringModel>)obj;
amount = setTotalAmount(hiringModelList);
Collections.sort(hiringModelList);
new RecyclerViewConfig(null).setConfigList(recyclerView, container.getContext(), obj,
keys, null);
listEmpty.setVisibility(View.GONE);
}
mDBHelper.setTotalForUserId(prefConfig.readLoggedUser().getId(), amount);
}
});
return view;
}
public double setTotalAmount(List<HiringModel> modelList){
double totalAmount = 0.0;
for (HiringModel model:modelList) {
if(model.getAccepted() != null) {
if (model.getAccepted().equals("accepted")) {
totalAmount += model.getFee();
}
}
}
Моя проблема возникла, когда я добавил метод, устанавливающий общую сумму, которая регистрирует общую сумму денег, заработанных пользователем, когда он принимает работу. Я отправляю еще одно уведомление работодателю в качестве ответа пользователя, и это работает правильно, поэтому я думаю, что проблема во фрагменте, но я не понимаю, что это такое, поэтому, пожалуйста, может кто-нибудь мне помочь?