package com.florianmski.tracktoid.ui.activities; import android.app.Activity; import android.app.ActivityOptions; import android.os.Build; import android.os.Bundle; import android.view.View; import android.widget.ScrollView; import com.florianmski.tracktoid.R; import com.florianmski.tracktoid.TraktoidConstants; import com.florianmski.tracktoid.data.TraktoidItem; import com.florianmski.tracktoid.ui.fragments.traktitems.TraktItemFragment; import com.florianmski.tracktoid.ui.widgets.NotifyingScrollView; import com.uwetrottmann.trakt.v2.entities.MoreImageSizes; public abstract class TraktItemActivity extends HeaderActivity { protected abstract TraktItemFragment getFragment(String id, Bundle activityBundle); @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Bundle activityBundle = getIntent().getExtras(); String id = activityBundle.getString(TraktoidConstants.BUNDLE_ID); TraktItemFragment fragment; if(savedInstanceState == null) { fragment = getFragment(id, activityBundle); getSupportFragmentManager().beginTransaction().replace(R.id.fragment, fragment, null).commit(); } else fragment = (TraktItemFragment) getSupportFragmentManager().findFragmentById(R.id.fragment); fragment.addScrollListener(new NotifyingScrollView.OnScrollChangedListener() { @Override public void onScrollChanged(ScrollView who, int l, int t, int oldl, int oldt) { TraktItemActivity.this.onScrollChanged(who, t); } }); } protected static Bundle getBundle(TraktoidItem traktoidItem) { MoreImageSizes header = traktoidItem.getTraktItem().images.fanart; if(header == null) header = traktoidItem.getTraktItem().images.screenshot; Bundle b = new Bundle(); b.putString(TraktoidConstants.BUNDLE_ID, String.valueOf(traktoidItem.getIds().trakt)); b.putString(TraktoidConstants.BUNDLE_HEADER, header.medium); return b; } public static void launchActivity(Activity a, Class<?> activityToLaunch, Bundle args, View v) { if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) a.startActivity(makeIntent(a, activityToLaunch, args), ActivityOptions.makeSceneTransitionAnimation(a, v, v.getTransitionName()).toBundle()); else BaseActivity.launchActivity(a, activityToLaunch, args); } }