Skip to content

Instantly share code, notes, and snippets.

@Guilherme-HRamos
Last active July 27, 2019 22:40
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Guilherme-HRamos/89caa5161ef3898fab2f3063da192689 to your computer and use it in GitHub Desktop.
Save Guilherme-HRamos/89caa5161ef3898fab2f3063da192689 to your computer and use it in GitHub Desktop.
Medium - Android/Java Interfaces like a Boss! - Contracts implementations (Presenter)
public class AccountManagerPresenterImpl implements AccountManagerPresenter {
private final ViewContract viewContract;
public MainPresenter(ViewContract viewContract) {
this.viewContract = viewContract;
}
@Override
public void onUpdateAccount(String newName, String newEmail) {
// Executado quando o usuário clicar no botão de
// atualizar conta
validateData(newName, newEmail);
}
private void validateData(String newName, String newEmail) {
if (newName.isEmpty() || newEmail.isEmpty())
viewContract.onShowError("Name and email must be set");
else {
viewContract.onShowLoading();
submitUpdate();
}
}
private void submitUpdate() {
// Executado para fazer alguma comunicação com API's ou
// banco de dados
//...
// Se a requisição ocorrer com sucesso:
viewContract.onAccountUpdate();
viewContract.onHideLoading();
}
@Override
public void onRemoveAccount() {
// Executado quando o usuário clicar no botão de
// remover conta
viewContract.onAccountRemoved();
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment