Skip to content

Commit

Permalink
Merge pull request #93 from WatchFriends/devNiels
Browse files Browse the repository at this point in the history
EpisodeFragment: final 1.0
  • Loading branch information
nielsbril authored Nov 6, 2016
2 parents 5c1175c + 934218b commit 1517217
Show file tree
Hide file tree
Showing 5 changed files with 50 additions and 11 deletions.
1 change: 1 addition & 0 deletions WatchFriends/app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ android {




dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.1', {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,18 @@
package nmct.jaspernielsmichielhein.watchfriends.helper;

import android.net.Uri;
import android.support.design.widget.FloatingActionButton;

import nmct.jaspernielsmichielhein.watchfriends.model.Episode;
import nmct.jaspernielsmichielhein.watchfriends.model.Series;

public class Interfaces {
public interface onHeaderChanged {
void onSetTitle(String title);
void onSetImage(Uri uri);
FloatingActionButton onGetActionButton();
}

public interface onSeriesSelectedListener {
void onSeriesSelected(Series series);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.support.design.widget.AppBarLayout;
import android.support.design.widget.CollapsingToolbarLayout;
Expand All @@ -26,6 +27,8 @@
import android.widget.SearchView;
import android.widget.Toast;

import com.squareup.picasso.Picasso;

import nmct.jaspernielsmichielhein.watchfriends.R;
import nmct.jaspernielsmichielhein.watchfriends.helper.Interfaces;
import nmct.jaspernielsmichielhein.watchfriends.model.Episode;
Expand All @@ -35,6 +38,7 @@
public class MainActivity extends AppCompatActivity
implements NavigationView.OnNavigationItemSelectedListener,
SearchView.OnQueryTextListener,
Interfaces.onHeaderChanged,
Interfaces.onSeriesSelectedListener,
Interfaces.onEpisodeSelectedListener {

Expand Down Expand Up @@ -198,6 +202,21 @@ public boolean onQueryTextChange(String newText) {
return false;
}

@Override
public void onSetTitle(String title) {
setTitle(title);
}

@Override
public void onSetImage(Uri uri) {
Picasso.with(this).load(uri).into(getHeaderImage());
}

@Override
public FloatingActionButton onGetActionButton() {
return getActionButton();
}

public void onSeriesSelected(Series series) {

}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,13 @@
import nmct.jaspernielsmichielhein.watchfriends.BR;
import nmct.jaspernielsmichielhein.watchfriends.R;
import nmct.jaspernielsmichielhein.watchfriends.databinding.FragmentEpisodeBinding;
import nmct.jaspernielsmichielhein.watchfriends.helper.Interfaces;
import nmct.jaspernielsmichielhein.watchfriends.model.Episode;
import nmct.jaspernielsmichielhein.watchfriends.view.MainActivity;

public class EpisodeFragmentViewModel extends BaseObservable {
private Interfaces.onHeaderChanged mListener;

private Context context;
private FragmentEpisodeBinding fragmentEpisodeBinding;

Expand All @@ -40,6 +43,11 @@ public EpisodeFragmentViewModel(Context context, FragmentEpisodeBinding fragment
this.context = context;
this.fragmentEpisodeBinding = fragmentEpisodeBinding;
this.episode = episode;
if (context instanceof Interfaces.onHeaderChanged) {
mListener = (Interfaces.onHeaderChanged) context;
} else {
throw new RuntimeException(context.toString() + " must implement onHeaderChanged");
}
}

public void loadEpisode() {
Expand All @@ -49,12 +57,10 @@ public void loadEpisode() {
}

private void setHeader() {
MainActivity mainActivity = (MainActivity) context;
mainActivity.setTitle(episode.getShortcode());

Picasso.with(context).load(episode.getImage_uri()).into(mainActivity.getHeaderImage());
mListener.onSetTitle(episode.getShortcode());
mListener.onSetImage(episode.getImage_uri());

final FloatingActionButton fab = mainActivity.getActionButton();
final FloatingActionButton fab = mListener.onGetActionButton();
initFloatingActionButton(fab);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,13 +11,15 @@
import nmct.jaspernielsmichielhein.watchfriends.BR;
import nmct.jaspernielsmichielhein.watchfriends.databinding.FragmentSeasonBinding;
import nmct.jaspernielsmichielhein.watchfriends.helper.ApiHelper;
import nmct.jaspernielsmichielhein.watchfriends.helper.Interfaces;
import nmct.jaspernielsmichielhein.watchfriends.model.Season;
import nmct.jaspernielsmichielhein.watchfriends.view.MainActivity;
import rx.android.schedulers.AndroidSchedulers;
import rx.functions.Action1;
import rx.schedulers.Schedulers;

public class SeasonFragmentViewModel extends BaseObservable {
private final Interfaces.onHeaderChanged mListener;
private Context context;
private FragmentSeasonBinding fragmentSeasonBinding;

Expand All @@ -42,6 +44,11 @@ public SeasonFragmentViewModel(Context context, FragmentSeasonBinding fragmentSe
this.seriesName = seriesName;
this.seriesId = seriesId;
this.seasonNumber = seasonNumber;
if (context instanceof Interfaces.onHeaderChanged) {
mListener = (Interfaces.onHeaderChanged) context;
} else {
throw new RuntimeException(context.toString() + " must implement onHeaderChanged");
}
}

public void loadSeason() {
Expand All @@ -61,12 +68,9 @@ public void call(Season returnedSeason) {
}

private void setHeader() {
MainActivity mainActivity = (MainActivity) context;
mainActivity.setTitle(seriesName);

Picasso.with(context).load(season.getImage_uri()).into(mainActivity.getHeaderImage());

final FloatingActionButton fab = mainActivity.getActionButton();
mListener.onSetTitle(seriesName);
mListener.onSetImage(season.getImage_uri());
final FloatingActionButton fab = mListener.onGetActionButton();
fab.setVisibility(View.INVISIBLE);
}
}

0 comments on commit 1517217

Please sign in to comment.