Determinate
Operations where the percentage of the operation complete is known should use the determinate indicator.
Indeterminate
Operations where the user is asked to wait while something finishes and it’s not necessary to indicate how long it will take should use the indeterminate indicator.
Buffer
Operations where the user wants to indicate some activity or loading from the server, use the buffer indicator.