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 d454c40..9aff48d 100644 --- a/app/src/main/java/org/xbmc/kore/ui/AddonDetailsFragment.java +++ b/app/src/main/java/org/xbmc/kore/ui/AddonDetailsFragment.java @@ -16,6 +16,8 @@ package org.xbmc.kore.ui; import android.annotation.TargetApi; +import android.content.Context; +import android.content.SharedPreferences; import android.content.res.Resources; import android.content.res.TypedArray; import android.os.Bundle; @@ -45,6 +47,10 @@ import org.xbmc.kore.utils.LogUtils; import org.xbmc.kore.utils.UIUtils; import org.xbmc.kore.utils.Utils; +import java.util.Collections; +import java.util.HashSet; +import java.util.Set; + import butterknife.ButterKnife; import butterknife.InjectView; import butterknife.OnClick; @@ -80,6 +86,7 @@ public class AddonDetailsFragment extends Fragment { // Buttons @InjectView(R.id.fab) ImageButton fabButton; @InjectView(R.id.enable_disable) ImageButton enabledButton; + @InjectView(R.id.pin_unpin) ImageButton pinButton; // Detail views @InjectView(R.id.media_panel) ScrollView mediaPanel; @@ -170,6 +177,7 @@ public class AddonDetailsFragment extends Fragment { setImages(bundle.getString(BUNDLE_KEY_POSTER), bundle.getString(BUNDLE_KEY_FANART)); setupEnableButton(bundle.getBoolean(BUNDLE_KEY_ENABLED, false)); + updatePinButton(); // Pad main content view to overlap with bottom system bar // UIUtils.setPaddingForSystemBars(getActivity(), mediaPanel, false, false, true); @@ -318,4 +326,47 @@ public class AddonDetailsFragment extends Fragment { } }, callbackHandler); } + + @OnClick(R.id.pin_unpin) + public void onPinClicked(View v) { + final boolean enable = (v.getTag() == null)? true : !(Boolean)v.getTag(); + + String name = mediaTitle.getText().toString(); + String path = addonId; + + SharedPreferences prefs = getActivity().getSharedPreferences("addons", Context.MODE_PRIVATE); + Set bookmarked = new HashSet<>(prefs.getStringSet("bookmarked", Collections.emptySet())); + if (enable) + bookmarked.add(path); + else + bookmarked.remove(path); + prefs + .edit() + .putStringSet("bookmarked", bookmarked) + .putString("name_" + path, name) + .commit(); + Toast.makeText(getActivity(), enable? R.string.addon_pinned : R.string.addon_unpinned, Toast.LENGTH_SHORT).show(); + setupPinButton(enable); + } + + private void setupPinButton(boolean enabled) { + // Enabled button + if (enabled) { + Resources.Theme theme = getActivity().getTheme(); + TypedArray styledAttributes = theme.obtainStyledAttributes(new int[]{ + R.attr.colorAccent}); + pinButton.setColorFilter(styledAttributes.getColor(0, + getActivity().getResources().getColor(R.color.accent_default))); + styledAttributes.recycle(); + } else { + pinButton.clearColorFilter(); + } + pinButton.setTag(enabled); + } + + private void updatePinButton() { + SharedPreferences prefs = getActivity().getSharedPreferences("addons", Context.MODE_PRIVATE); + Set bookmarked = prefs.getStringSet("bookmarked", Collections.emptySet()); + setupPinButton(bookmarked.contains(addonId)); + } } diff --git a/app/src/main/res/layout/fragment_addon_details.xml b/app/src/main/res/layout/fragment_addon_details.xml index f675055..59e9473 100644 --- a/app/src/main/res/layout/fragment_addon_details.xml +++ b/app/src/main/res/layout/fragment_addon_details.xml @@ -97,6 +97,13 @@ android:layout_width="0dp" android:layout_weight="1" android:layout_height="match_parent"/> + Enable/Disable Addon Addon enabled Addon disabled + Pin/Unpin Addon + Addon pinned + Addon unpinned Hide watched