diff --git a/app/src/main/java/org/xbmc/kore/ui/AddonDetailsFragment.java b/app/src/main/java/org/xbmc/kore/ui/AddonDetailsFragment.java index 9aff48d..f16dc8b 100644 --- a/app/src/main/java/org/xbmc/kore/ui/AddonDetailsFragment.java +++ b/app/src/main/java/org/xbmc/kore/ui/AddonDetailsFragment.java @@ -58,7 +58,7 @@ import butterknife.OnClick; /** * Presents addon details */ -public class AddonDetailsFragment extends Fragment { +public class AddonDetailsFragment extends SharedElementFragment { private static final String TAG = LogUtils.makeLogTag(AddonDetailsFragment.class); public static final String BUNDLE_KEY_ADDONID = "addon_id"; @@ -71,6 +71,7 @@ public class AddonDetailsFragment extends Fragment { public static final String BUNDLE_KEY_FANART = "fanart"; public static final String BUNDLE_KEY_POSTER = "poster"; public static final String BUNDLE_KEY_ENABLED = "enabled"; + public static final String BUNDLE_KEY_BROWSABLE = "browsable"; private HostManager hostManager; private HostInfo hostInfo; @@ -119,6 +120,7 @@ public class AddonDetailsFragment extends Fragment { args.putString(BUNDLE_KEY_FANART, vh.fanart); args.putString(BUNDLE_KEY_POSTER, vh.poster); args.putBoolean(BUNDLE_KEY_ENABLED, vh.enabled); + args.putBoolean(BUNDLE_KEY_BROWSABLE, vh.browsable); if( Utils.isLollipopOrLater()) { args.putString(POSTER_TRANS_NAME, vh.artView.getTransitionName()); @@ -177,7 +179,8 @@ public class AddonDetailsFragment extends Fragment { setImages(bundle.getString(BUNDLE_KEY_POSTER), bundle.getString(BUNDLE_KEY_FANART)); setupEnableButton(bundle.getBoolean(BUNDLE_KEY_ENABLED, false)); - updatePinButton(); + if (bundle.getBoolean(BUNDLE_KEY_BROWSABLE, true)) + updatePinButton(); // Pad main content view to overlap with bottom system bar // UIUtils.setPaddingForSystemBars(getActivity(), mediaPanel, false, false, true); @@ -296,6 +299,7 @@ public class AddonDetailsFragment extends Fragment { * Returns the shared element if visible * @return View if visible, null otherwise */ + @Override public View getSharedElement() { if (UIUtils.isViewInBounds(mediaPanel, mediaPoster)) { return mediaPoster; @@ -362,6 +366,7 @@ public class AddonDetailsFragment extends Fragment { pinButton.clearColorFilter(); } pinButton.setTag(enabled); + pinButton.setVisibility(View.VISIBLE); } private void updatePinButton() { diff --git a/app/src/main/java/org/xbmc/kore/ui/AddonListFragment.java b/app/src/main/java/org/xbmc/kore/ui/AddonListFragment.java index 1692fee..bfee6b8 100644 --- a/app/src/main/java/org/xbmc/kore/ui/AddonListFragment.java +++ b/app/src/main/java/org/xbmc/kore/ui/AddonListFragment.java @@ -265,6 +265,7 @@ public class AddonListFragment extends Fragment viewHolder.fanart = addonDetails.fanart; viewHolder.poster = addonDetails.thumbnail; viewHolder.enabled = addonDetails.enabled; + viewHolder.browsable = AddonType.Types.XBMC_PYTHON_PLUGINSOURCE.equals(addonDetails.type); viewHolder.titleView.setText(viewHolder.addonName); viewHolder.detailsView.setText(addonDetails.summary); @@ -297,5 +298,6 @@ public class AddonListFragment extends Fragment String fanart; String poster; Boolean enabled; + Boolean browsable; } } diff --git a/app/src/main/java/org/xbmc/kore/ui/AddonOverviewFragment.java b/app/src/main/java/org/xbmc/kore/ui/AddonOverviewFragment.java index 4ab8dd0..b15c668 100644 --- a/app/src/main/java/org/xbmc/kore/ui/AddonOverviewFragment.java +++ b/app/src/main/java/org/xbmc/kore/ui/AddonOverviewFragment.java @@ -43,7 +43,7 @@ import butterknife.InjectView; /** * Container for the TV Show overview and Episodes list */ -public class AddonOverviewFragment extends Fragment { +public class AddonOverviewFragment extends SharedElementFragment { private static final String TAG = LogUtils.makeLogTag(AddonOverviewFragment.class); private TabsAdapter tabsAdapter; @@ -68,6 +68,7 @@ public class AddonOverviewFragment extends Fragment { args.putString(AddonDetailsFragment.BUNDLE_KEY_FANART, vh.fanart); args.putString(AddonDetailsFragment.BUNDLE_KEY_POSTER, vh.poster); args.putBoolean(AddonDetailsFragment.BUNDLE_KEY_ENABLED, vh.enabled); + args.putBoolean(AddonDetailsFragment.BUNDLE_KEY_BROWSABLE, vh.browsable); if( Utils.isLollipopOrLater()) { args.putString(AddonDetailsFragment.POSTER_TRANS_NAME, vh.artView.getTransitionName()); @@ -127,6 +128,7 @@ public class AddonOverviewFragment extends Fragment { return tabsAdapter.getItem(viewPager.getCurrentItem()); } + @Override public View getSharedElement() { View view = getView(); if (view == null) diff --git a/app/src/main/java/org/xbmc/kore/ui/AddonsActivity.java b/app/src/main/java/org/xbmc/kore/ui/AddonsActivity.java index 8b02c56..18d3a88 100644 --- a/app/src/main/java/org/xbmc/kore/ui/AddonsActivity.java +++ b/app/src/main/java/org/xbmc/kore/ui/AddonsActivity.java @@ -206,7 +206,11 @@ public class AddonsActivity extends BaseActivity selectedAddonTitle = vh.addonName; // Replace list fragment - final AddonOverviewFragment addonDetailsFragment = AddonOverviewFragment.newInstance(vh); + final SharedElementFragment addonDetailsFragment = + vh.browsable + ? AddonOverviewFragment.newInstance(vh) + : AddonDetailsFragment.newInstance(vh) + ; FragmentTransaction fragTrans = getSupportFragmentManager().beginTransaction(); // Set up transitions diff --git a/app/src/main/java/org/xbmc/kore/ui/SharedElementFragment.java b/app/src/main/java/org/xbmc/kore/ui/SharedElementFragment.java new file mode 100644 index 0000000..19c56ce --- /dev/null +++ b/app/src/main/java/org/xbmc/kore/ui/SharedElementFragment.java @@ -0,0 +1,8 @@ +package org.xbmc.kore.ui; + +import android.support.v4.app.Fragment; +import android.view.View; + +public abstract class SharedElementFragment extends Fragment { + public abstract View getSharedElement(); +} diff --git a/app/src/main/res/layout/fragment_addon_details.xml b/app/src/main/res/layout/fragment_addon_details.xml index 59e9473..912ae69 100644 --- a/app/src/main/res/layout/fragment_addon_details.xml +++ b/app/src/main/res/layout/fragment_addon_details.xml @@ -99,6 +99,7 @@ android:layout_height="match_parent"/>