Overlaying Arudino Uno RichShield 4 Digit Display

Hey, guys!
I have a problem with overlaying the data displayed on my RichShield display.
In the attached code, you’ll see that when I press the button once, the current measured temperature is displayed, when I press the button twice, the current measured humidity is displayed, when I press the button three times, the current measured brightness is displayed and when I press the button four times, the current position is displayed.
But what I have to do (besides that) is when I change the position of the potentiometer, the position should be on the display (ex: when the temperature is displayed and I turn the potentiometer, the temperature should disappear and instead the position of the potentiometer should be displayed.) But, when I try to do this, the position of the potentiometer is displayed over the temperature. Does someone know what can I do?

Code:
you can ignore some parts of the program, such as the enums
->I created an int method for getting the position of the potentiometer using map()
->I created a bool method which returns true when the position of the potentiometer has changed
->I created a void method for displaying the data (there is where my problem is)

#include <Display.h>
#include <DHT11.h>
const int LED_GREEN = 5;
const int LED_BLUE = 6;
const int LED_YELLOW = 7;
const int POTENTIOMETER = A0;
const int BUTTON = 8;
const int LIGHT_SENSOR = A2;
const int TEMPERATURE_SENSOR = 12;
const int HUMIDITY_SENSOR = 12;

const int DEBOUNCE_DELAY = 50;
int last_steady_state = LOW;       // the previous steady state from the input pin
int last_flickerable_state = LOW;  // the previous flickerable state from the input pin
int current_state;               // the current reading from the input pin
int nr = 0;

int temperature_treshold = 10;
int light_treshold = 150;
int humidity_treshold = 70;

unsigned long temperatureTime;
unsigned long humidityTime;
unsigned long lightTime;
unsigned long last_debounce_time = 0;

float current_temperature;
float current_humidity;
float current_brightness;
float current_angle;



String str1 = "Temperature is ";
String str2 = "Humidity is ";
String str3 = "Brightness is ";
String str4 = "Windows are opened at a ";
String str5 = " degree angle";

void setup() {

  Display.clear();
  pinMode(BUTTON, INPUT_PULLUP);
  pinMode(LIGHT_SENSOR, INPUT);
  pinMode(LED_GREEN, OUTPUT);
  pinMode(LED_BLUE, OUTPUT);
  pinMode(LED_YELLOW, OUTPUT);
  pinMode(POTENTIOMETER, INPUT);
  pinMode(TEMPERATURE_SENSOR, INPUT);
  pinMode(HUMIDITY_SENSOR, INPUT);
  Serial.begin(9600);
}


int read_angle()  // method to determine the angle at which the windows are open which I will use for the display modes (to cycle between temperature, humidity, brightness and angle)
  { float val = analogRead(POTENTIOMETER);
  int angle = map(val, 0, 1023, 0, 20);
  return angle;
  }


bool angle_changed(int last_angle)
  {

  int current_angle = analogRead(POTENTIOMETER);
  if (last_angle != current_angle)
  {
    last_angle = current_angle;
    return true;
  }
  else
  { return false;
  }

  }


void display_information(float temperature, float humidity, float brightness, int angle)
{ current_state = digitalRead(BUTTON);
  if (current_state != last_flickerable_state) {
    last_debounce_time = millis();
    last_flickerable_state = current_state;
  }

  if ((millis() - last_debounce_time) > DEBOUNCE_DELAY) {
    if (last_steady_state == HIGH && current_state == LOW)
      nr++;

//    int last_angle = read_angle();
  if( nr == 0)
          Display.show("GHC");
    if (nr % 4 == 1)
    { Display.clear();
      Display.show(temperature);
      angle = read_angle();
      if(angle_changed(last_angle) == true)
                               {Display.clear();
                               Display.show(last_angle);}
                               else
                               Display.show(temperature);
    }

    if (nr % 4 == 2)
    { Display.clear();
      Display.show(humidity);
      angle = read_angle();
      if(angle_changed(last_angle) == true)
                              {Display.clear();
                               Display.show(last_angle);}
                               else
                               Display.show(humidity);
    }

    if (nr % 4 == 3)
    { Display.clear();
      angle = read_angle();
      Display.show(brightness);
      if(angle_changed(last_angle) == true)
                               {Display.clear();
                               Display.show(last_angle);}
                               else
                               Display.show(brightness);
    }
    if (nr % 4 == 0 && nr != 0)
    { Display.clear();
      angle = read_angle();
      Display.show (angle);
    }

    last_steady_state = current_state;

  }
}

void automatic_mode_sprinklers(float humidity)  // method for actions for the sprinklers
{ unsigned long timeNow = millis();
  if (timeNow - humidityTime >= 1000)
  { if (humidity > humidity_treshold)
    { digitalWrite(LED_BLUE, HIGH);
      delay(5000);
      digitalWrite(LED_BLUE, LOW);;
      Serial.println("Sprinklers are on");
    }
    else
    {
      Serial.println("Sprinklers are off");
    }
  }
}


void automatic_mode_shades (float brightness)  // method for actions for the shades
{ unsigned long timeNow = millis();
  if (timeNow - lightTime >= 1000)
  { if (brightness > light_treshold)
    { digitalWrite(LED_YELLOW, HIGH);
      Serial.println("Shades are lowered");
    }
    else
    { digitalWrite(LED_YELLOW, LOW);
      Serial.println("Shades are raised");
    }
  }
}

void automatic_mode_windows(float temperature) // method for actions for the windows
{ unsigned long timeNow = millis();
  if (timeNow - temperatureTime >= 1000)
  { int val = analogRead(POTENTIOMETER);
    float windows_angle = map(val, 0, 1023, 0, 20);
    if (temperature > temperature_treshold && windows_angle >= 1 && windows_angle <= 20)
    { digitalWrite(LED_GREEN, HIGH);
      String my_windows = str4 + windows_angle;
      my_windows = my_windows + str5;
      Serial.println(my_windows);
    }
    else
    { digitalWrite(LED_GREEN, LOW);
      Serial.println("Windows are closed");
    }
  }
}




void loop() {
  unsigned long timeNow1 = millis();
  if (timeNow1 - temperatureTime >= 1000)  // getting the temperature every 2 seconds
  { current_temperature = DHT11.getTemperature();
    String my_temperature = str1 + current_temperature;
    Serial.println(my_temperature) ;
    temperatureTime = timeNow1;
  }

  unsigned long timeNow2 = millis();
  if (timeNow2 - humidityTime >= 1000)  // getting the humidity every 2 seconds
  { current_humidity = DHT11.getHumidity();
    String my_humidity = str2 + current_humidity;
    Serial.println(my_humidity);
    humidityTime = timeNow2;
  }

  unsigned long timeNow3 = millis();
  if (timeNow3 - lightTime >= 1000)  // getting the brightness every 2 seconds
  { current_brightness = analogRead(LIGHT_SENSOR);
    String my_brightness = str3 + current_brightness;
    Serial.println(my_brightness);
    lightTime = timeNow3;
  }


  if (windows_state == AUTOMATIC_W)  // action for the automatic mode of windows
  {
    automatic_mode_windows(current_temperature);
  }

  else if (windows_state == HALT_W) // action for halt mode of windows
  {
    digitalWrite(LED_GREEN, LOW);
  }

  if (shades_state == AUTOMATIC_SH) // action for the automatic mode of shades
  {
    automatic_mode_shades(current_brightness);
  }

  else if (shades_state == HALT_SH) // action for halt mode of shades
  {
    digitalWrite(LED_YELLOW, LOW);
  }

  if (sprinklers_state == AUTOMATIC_SP) // action for the automatic mode of sprinklers
  {
    automatic_mode_sprinklers(current_humidity);
  }

  else if (sprinklers_state == HALT_SP) // action for halt mode of sprinklers
  {
    digitalWrite(LED_BLUE, LOW);
  }

  current_angle = read_angle();

  display_information(current_temperature, current_humidity, current_brightness, current_angle);



}

Please post a link to the actual hardware that you bought. e.g. Ebay Sale page

No-one knows what a RichShield is until you show us.

It's one like this, I can't provide the link because I got it from school. (I use the library <Display.h>)

Starter-kit-Rich-font-b-Shield-b-font-with-Infrared-Receiver-LED-Buzzer-Button-DHT11-Light.jpg_220x220.jpg

Starter-kit-Rich-font-b-Shield-b-font-with-Infrared-Receiver-LED-Buzzer-Button-DHT11-Light.jpg_220x220.jpg

The most important lesson you can learn from school is : Google-Fu

e.g. Google "the words printed on the pcb" finds:

It even has a "Download link" for a manual.

If you have a specific question about the manual, quote page number and question.

Your teacher has given you some pretty good hints.
Think about it. Ask specific question(s).

David.

I couldn't find anything on Google

The description of the button use: The user can push a button (in my case the right button) to cycle through the current temperature, current humidity, current brightness and the current position of the potentiometer. In any view, when the user turns the knob, the display immediately shows the new position of the potentiometer.