if statement not functioning properly

Hey, i am having a slight issue with an if statement in my main loop.

My program takes the pulse rate and accelerator reading to determine if someone is in danger and sends alert to others.

the issue i am having is with the main if statement that works if the sensors requirements are met. When i call the alert function through if statement that asks user to push a button if they need help. It won't stay in the new function long enough to ask user to press a button and exits as soon as the initial if statement from main loop is false.

void loop() {
  btn_state = digitalRead(btn);
  btn_state1 = digitalRead(btn1);
  //btn_state2 = digitalRead(btn2);
  if (btn_state == HIGH) {
    flag++;
    Serial.write(flag);
    if(flag == 7 || flag == 0) {
      flag = 0;
      display.clearDisplay();
    }
  }

  if ((PulseDanger() == true) && (AccGyroDanger() == true))
 {
    AskNotification1();
     if (AskNotification1() == true) {
      SentNotification1();
    } 
    else if (AskNotification1() == false){
      //break;
    }
  }

Inshort the if statement becomes false without letting me finish the AskNotification1 function. Heres the code for the function i am calling.

boolean AskNotification1() {
  display.clearDisplay();
  display.setTextSize(2);
  display.setTextColor(WHITE);
  display.setCursor(30,0);
  display.print("DO YOU   NEED HELP");
  display.display();
  delay(50);
  //int note = 0;
  while (1) {
    btn_state = digitalRead(btn);
    btn_state1 = digitalRead(btn1);
    if (btn_state == HIGH) {
      //danger confirmed
      //SentNotification1();
      //display.clearDisplay();
      //note = 1;
      return true;
      //note = 1;
    } else if (btn_state1 == HIGH) {
      display.clearDisplay();
      //note = 1;
      return false;
      //note = 1;
    } else {
      //note = 0;
    }
  } 
}

any advice would be helpful.

if pressing the button causes it to go high, it will be true for each iteration of loop and flag will be incremented each iteration.

  if (btn_state == HIGH) {
    flag++;

don’t you want to recognize a button press, when the button state changes and becomes high