Advertisement
Guest User

Untitled

a guest
Jul 23rd, 2017
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.66 KB | None | 0 0
  1. package com.example.daggerandroidmvvm.lobby;
  2.  
  3. import android.arch.lifecycle.LifecycleActivity;
  4. import android.arch.lifecycle.ViewModelProviders;
  5. import android.os.Bundle;
  6. import android.view.View;
  7. import android.widget.ProgressBar;
  8. import android.widget.TextView;
  9. import android.widget.Toast;
  10.  
  11. import com.example.daggerandroidmvvm.R;
  12. import com.example.daggerandroidmvvm.common.viewmodel.Response;
  13.  
  14. import javax.inject.Inject;
  15.  
  16. import butterknife.BindView;
  17. import butterknife.ButterKnife;
  18. import butterknife.OnClick;
  19. import dagger.android.AndroidInjection;
  20. import timber.log.Timber;
  21.  
  22. public class LobbyActivity extends LifecycleActivity {
  23.  
  24. @Inject
  25. LobbyViewModelFactory viewModelFactory;
  26.  
  27. @BindView(R.id.greeting_textview)
  28. TextView greetingTextView;
  29.  
  30. @BindView(R.id.loading_indicator)
  31. ProgressBar loadingIndicator;
  32.  
  33. private LobbyViewModel viewModel;
  34.  
  35. @Override
  36. protected void onCreate(Bundle savedInstanceState) {
  37. AndroidInjection.inject(this);
  38. super.onCreate(savedInstanceState);
  39. setContentView(R.layout.lobby_activity);
  40.  
  41. ButterKnife.bind(this);
  42.  
  43. viewModel = ViewModelProviders.of(this, viewModelFactory).get(LobbyViewModel.class);
  44.  
  45. observeDataLoading();
  46. }
  47.  
  48. @OnClick(R.id.common_greeting_button)
  49. void onCommonGreetingButtonClicked() {
  50. viewModel.loadCommonGreeting();
  51. }
  52.  
  53. @OnClick(R.id.lobby_greeting_button)
  54. void onLobbyGreetingButtonClicked() {
  55. viewModel.loadLobbyGreeting();
  56. }
  57.  
  58. private void observeDataLoading() {
  59. viewModel.getResponse().observe(this, response -> processResponse(response));
  60. }
  61.  
  62. private void processResponse(Response<String> response) {
  63. switch (response.status) {
  64. case LOADING:
  65. onLoading();
  66. break;
  67.  
  68. case SUCCESS:
  69. onResponseSuccess(response.data);
  70. break;
  71.  
  72. case ERROR:
  73. onResponseError(response.error);
  74. break;
  75.  
  76. default:
  77. onResponseError(new IllegalArgumentException("Unexpected response status."));
  78. }
  79. }
  80.  
  81. private void onLoading() {
  82. greetingTextView.setVisibility(View.GONE);
  83. loadingIndicator.setVisibility(View.VISIBLE);
  84. }
  85.  
  86. private void onResponseSuccess(String data) {
  87. loadingIndicator.setVisibility(View.GONE);
  88. greetingTextView.setVisibility(View.VISIBLE);
  89. greetingTextView.setText(data);
  90. }
  91.  
  92. private void onResponseError(Throwable error) {
  93. loadingIndicator.setVisibility(View.GONE);
  94. Timber.e(error.getMessage());
  95. Toast.makeText(this, R.string.greeting_error, Toast.LENGTH_SHORT).show();
  96. }
  97. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement