Only attempt to browse and pin pluginsource type plugins
Using AddonOverviewFragment in both cases would probably be an easier to follow code path, but this implementation switches between using AddonDetailsFragment directly and adding it via AddonOverviewFragment.
This commit is contained in:
parent
52b5f45019
commit
ba7931c5ea
|
@ -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() {
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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();
|
||||
}
|
|
@ -99,6 +99,7 @@
|
|||
android:layout_height="match_parent"/>
|
||||
<ImageButton
|
||||
android:id="@+id/pin_unpin"
|
||||
android:visibility="gone"
|
||||
android:layout_width="@dimen/buttonbar_button_width"
|
||||
android:layout_height="match_parent"
|
||||
style="@style/Widget.Button.Borderless"
|
||||
|
|
Loading…
Reference in New Issue