Added Android code
[wl-app.git] / Android / app / src / main / java / com / moiseum / wolnelektury / view / player / header / PlayerHeaderFragment.java
1 package com.moiseum.wolnelektury.view.player.header;
2
3 import android.graphics.Color;
4 import android.os.Bundle;
5 import android.view.View;
6 import android.widget.Button;
7 import android.widget.ImageButton;
8 import android.widget.ImageView;
9 import android.widget.TextView;
10
11 import com.bumptech.glide.Glide;
12 import com.bumptech.glide.load.engine.DiskCacheStrategy;
13 import com.moiseum.wolnelektury.R;
14 import com.moiseum.wolnelektury.base.mvp.PresenterFragment;
15 import com.moiseum.wolnelektury.connection.RestClient;
16
17 import butterknife.BindView;
18 import butterknife.OnClick;
19 import retrofit2.http.HEAD;
20
21 /**
22  * Created by Piotr Ostrowski on 22.05.2018.
23  */
24 public class PlayerHeaderFragment extends PresenterFragment<PlayerHeaderPresenter> implements PlayerHeaderView {
25
26         private static final String AUTHOR_KEY = "AuthorKey";
27         private static final String TITLE_KEY = "TitleKey";
28         private static final String COVER_KEY = "CoverKey";
29
30         public static PlayerHeaderFragment newInstance(String author, String title, String coverUrl) {
31                 PlayerHeaderFragment fragment = new PlayerHeaderFragment();
32                 Bundle args = new Bundle();
33                 args.putString(AUTHOR_KEY, author);
34                 args.putString(TITLE_KEY, title);
35                 args.putString(COVER_KEY, coverUrl);
36                 fragment.setArguments(args);
37                 return fragment;
38         }
39
40
41         @BindView(R.id.vCoverOverlay)
42         View vCoverOverlay;
43         @BindView(R.id.ivCoverBackground)
44         ImageView ivCoverBackground;
45         @BindView(R.id.ivCover)
46         ImageView ivCover;
47         @BindView(R.id.tvAuthor)
48         TextView tvAuthor;
49         @BindView(R.id.tvBookTitle)
50         TextView tvBookTitle;
51
52         @Override
53         protected PlayerHeaderPresenter createPresenter() {
54                 if (getArguments() == null) {
55                         throw new IllegalStateException("Missing fragment arguments.");
56                 }
57                 String author = getArguments().getString(AUTHOR_KEY);
58                 String title = getArguments().getString(TITLE_KEY);
59                 String coverUrl = getArguments().getString(COVER_KEY);
60                 return new PlayerHeaderPresenter(author, title, coverUrl, this);
61         }
62
63         @Override
64         public int getLayoutResourceId() {
65                 return R.layout.fragment_player_header;
66         }
67
68         @Override
69         public void prepareView(View view, Bundle savedInstanceState) {
70                 initView();
71         }
72
73         public void initView() {
74                 if (getArguments() != null) {
75                         vCoverOverlay.setAlpha(0.7f);
76                         vCoverOverlay.setBackgroundColor(Color.parseColor("#db4b16"));
77                         tvAuthor.setText(getArguments().getString(AUTHOR_KEY));
78                         tvBookTitle.setText(getArguments().getString(TITLE_KEY));
79                         if (getArguments().getString(COVER_KEY) != null) {
80                                 String coverUrl = getArguments().getString(COVER_KEY);
81                                 if (coverUrl != null && !coverUrl.contains(RestClient.MEDIA_URL) && !coverUrl.contains(RestClient.MEDIA_URL_HTTPS)) {
82                                         coverUrl = RestClient.MEDIA_URL_HTTPS + coverUrl;
83                                 }
84                                 Glide.with(getContext()).load(coverUrl).placeholder(R.drawable.list_nocover).diskCacheStrategy(DiskCacheStrategy.ALL).dontTransform().into(ivCover);
85                         }
86                         if (getArguments().getString(COVER_KEY) != null) {
87                                 String coverBackgroundUrl = getArguments().getString(COVER_KEY);
88                                 if (coverBackgroundUrl != null && !coverBackgroundUrl.contains(RestClient.MEDIA_URL) && !coverBackgroundUrl.contains(RestClient.MEDIA_URL_HTTPS)) {
89                                         coverBackgroundUrl = RestClient.MEDIA_URL_HTTPS + coverBackgroundUrl;
90                                 }
91                                 Glide.with(getContext()).load(coverBackgroundUrl).diskCacheStrategy(DiskCacheStrategy.ALL).dontTransform().into(ivCoverBackground);
92                         }
93                 }
94         }
95
96         @OnClick(R.id.ibBack)
97         public void onBackButtonClicked() {
98                 if (getActivity() != null) {
99                         getActivity().finish();
100                 }
101         }
102 }
103