KickStarterDetailFragment.java 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172
  1. package com.sunil.mvp.ui.kiskstarterdetail;
  2. import android.app.Fragment;
  3. import android.os.Bundle;
  4. import android.support.annotation.Nullable;
  5. import android.support.design.widget.AppBarLayout;
  6. import android.support.design.widget.CollapsingToolbarLayout;
  7. import android.support.design.widget.CoordinatorLayout;
  8. import android.support.v7.app.AppCompatActivity;
  9. import android.support.v7.widget.Toolbar;
  10. import android.view.LayoutInflater;
  11. import android.view.View;
  12. import android.view.ViewGroup;
  13. import android.widget.ImageView;
  14. import android.widget.RelativeLayout;
  15. import android.widget.TextView;
  16. import android.widget.Toast;
  17. import com.squareup.picasso.Picasso;
  18. import com.sunil.mvp.MainApplication;
  19. import com.sunil.mvp.R;
  20. import com.sunil.mvp.db.model.KickStarter;
  21. import com.sunil.mvp.db.source.KickStarterLocalSource;
  22. import com.sunil.mvp.di.component.ApplicationComponent;
  23. import com.sunil.mvp.di.component.DaggerKickStarterDetailComponent;
  24. import com.sunil.mvp.di.component.DaggerKickStarterListComponent;
  25. import com.sunil.mvp.di.component.KickStarterDetailComponent;
  26. import com.sunil.mvp.di.component.KickStarterListComponent;
  27. import com.sunil.mvp.di.module.KickStarterDetailModule;
  28. import com.sunil.mvp.di.module.KickStarterListModule;
  29. import javax.inject.Inject;
  30. import butterknife.BindView;
  31. import butterknife.ButterKnife;
  32. /**
  33. * Created by sunil on 19-08-2017.
  34. */
  35. public class KickStarterDetailFragment extends Fragment implements KickStarterDetailContract.View {
  36. public static final String Tag = KickStarterDetailFragment.class.getSimpleName();
  37. @BindView(R.id.appbar)
  38. AppBarLayout appbar;
  39. @BindView(R.id.pledgedvalue)
  40. TextView pledgedvalue;
  41. @BindView(R.id.backers_value)
  42. TextView backersValue;
  43. @BindView(R.id.relative)
  44. RelativeLayout relative;
  45. @BindView(R.id.main_content)
  46. CoordinatorLayout mainContent;
  47. @BindView(R.id.title)
  48. TextView titleText;
  49. @BindView(R.id.backers)
  50. TextView backers;
  51. @BindView(R.id.backdrop)
  52. ImageView backdrop;
  53. @BindView(R.id.toolbar)
  54. Toolbar toolbar;
  55. @BindView(R.id.collapsing_toolbar)
  56. CollapsingToolbarLayout collapsingToolbar;
  57. private String url;
  58. private String title;
  59. @Inject
  60. KickStarterDetailContract.Presenter mPresenter;
  61. public static KickStarterDetailFragment newInstance(int s_no) {
  62. KickStarterDetailFragment kickStarterDetailFragment = new KickStarterDetailFragment();
  63. Bundle bundle = new Bundle();
  64. bundle.putInt("s_no", s_no);
  65. kickStarterDetailFragment.setArguments(bundle);
  66. return kickStarterDetailFragment;
  67. }
  68. @Override
  69. public void onResume() {
  70. super.onResume();
  71. mPresenter.subscribe();
  72. }
  73. @Override
  74. public void onPause() {
  75. super.onPause();
  76. mPresenter.unSubscribe();
  77. }
  78. @Override
  79. public void onActivityCreated(Bundle savedInstanceState) {
  80. super.onActivityCreated(savedInstanceState);
  81. // do things if you want to create only first time when activity created.
  82. }
  83. @Override
  84. public void onCreate(Bundle savedInstanceState) {
  85. super.onCreate(savedInstanceState);
  86. injectDependency();
  87. mPresenter.attachView(this);
  88. }
  89. private void injectDependency() {
  90. ApplicationComponent applicationComponent = ((MainApplication) getActivity().getApplication()).getApplicationComponent();
  91. KickStarterDetailComponent kickStarterDetailComponent = DaggerKickStarterDetailComponent.builder()
  92. .applicationComponent(applicationComponent)
  93. .kickStarterDetailModule(new KickStarterDetailModule())
  94. .build();
  95. kickStarterDetailComponent.inject(this);
  96. }
  97. @Nullable
  98. @Override
  99. public View onCreateView(LayoutInflater inflater, ViewGroup container,
  100. Bundle savedInstanceState) {
  101. View root = inflater.inflate(R.layout.fragment_kickstarter_detail, container, false);
  102. ButterKnife.bind(this, root);
  103. ((AppCompatActivity)getActivity()).setSupportActionBar(toolbar);
  104. ((AppCompatActivity)getActivity()).getSupportActionBar().setDisplayHomeAsUpEnabled(true);
  105. collapsingToolbar.setTitle(title);
  106. Bundle bundle = this.getArguments();
  107. if (bundle != null) {
  108. int s_n0 = bundle.getInt("s_no");
  109. mPresenter.loadDetailKickStarter(s_n0);
  110. }
  111. return root;
  112. }
  113. @Override
  114. public void onKickStartersOk(KickStarter kickStarter) {
  115. url = kickStarter.getUrl();
  116. title = kickStarter.getTitle();
  117. pledgedvalue.setText(kickStarter.getAmt_pledged());
  118. backersValue.setText(kickStarter.getNum_backers());
  119. titleText.setText(title);
  120. loadBackdrop();
  121. }
  122. @Override
  123. public void showLoadErrorMessage(String errorMsg) {
  124. Toast.makeText(getActivity(), "Error "+ errorMsg, Toast.LENGTH_LONG).show();
  125. }
  126. @Override
  127. public void showEmptyView(boolean isShow) {
  128. }
  129. private void loadBackdrop() {
  130. if (url != null && !url.isEmpty()) {
  131. Picasso.with(getActivity())
  132. .load("https://www.kickstarter.com/" + url)
  133. .placeholder(R.drawable.code)
  134. .error(R.drawable.code)
  135. .into(backdrop);
  136. //Glide.with(this).load("https://www.kickstarter.com/" + url).into(imageView).onLoadFailed(getDrawable(R.drawable.code));
  137. }
  138. }
  139. @Override
  140. public void onDestroyView() {
  141. super.onDestroyView();
  142. }
  143. }