Added Android code
[wl-app.git] / Android / app / src / main / java / com / moiseum / wolnelektury / view / news / single / NewsActivity.java
1 package com.moiseum.wolnelektury.view.news.single;
2
3 import android.content.Context;
4 import android.os.Bundle;
5
6 import com.moiseum.wolnelektury.R;
7 import com.moiseum.wolnelektury.base.AbstractActivity;
8 import com.moiseum.wolnelektury.base.AbstractIntent;
9 import com.moiseum.wolnelektury.connection.models.NewsModel;
10
11 import org.parceler.Parcels;
12
13 import static com.moiseum.wolnelektury.view.news.single.NewsActivity.NewsIntent.NEWS_KEY;
14
15 /**
16  * Created by Piotr Ostrowski on 06.08.2018.
17  */
18 public class NewsActivity extends AbstractActivity {
19
20         private static final String NEWS_FRAGMENT_TAG = "NewsFragmentTag";
21
22         public static class NewsIntent extends AbstractIntent {
23                 static final String NEWS_KEY = "NewsKey";
24
25                 public NewsIntent(NewsModel news, Context context) {
26                         super(context, NewsActivity.class);
27                         putExtra(NEWS_KEY, Parcels.wrap(news));
28                 }
29         }
30
31         @Override
32         public int getLayoutResourceId() {
33                 return R.layout.activity_blank;
34         }
35
36         @Override
37         public void prepareView(Bundle savedInstanceState) {
38                 if (!getIntent().hasExtra(NEWS_KEY)) {
39                         throw new IllegalStateException("Activity intent is missing news extras.");
40                 }
41                 setTitle("");
42
43                 NewsModel news = Parcels.unwrap(getIntent().getParcelableExtra(NEWS_KEY));
44                 NewsFragment newsFragment = (NewsFragment) getSupportFragmentManager().findFragmentByTag(NEWS_FRAGMENT_TAG);
45                 if (newsFragment == null) {
46                         newsFragment = NewsFragment.newInstance(news);
47                         getSupportFragmentManager().beginTransaction().add(R.id.flContainer, newsFragment, NEWS_FRAGMENT_TAG).commit();
48                 }
49         }
50 }