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:
David Eisner 2016-05-06 20:28:57 +01:00
parent 52b5f45019
commit ba7931c5ea
No known key found for this signature in database
GPG Key ID: 572A0C31753FF551
6 changed files with 26 additions and 4 deletions

View File

@ -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() {

View File

@ -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;
}
}

View File

@ -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)

View File

@ -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

View File

@ -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();
}

View File

@ -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"