Pin an addon as an addons activity tab
This commit is contained in:
parent
b0f2adb876
commit
51680a835c
|
@ -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<String> bookmarked = new HashSet<>(prefs.getStringSet("bookmarked", Collections.<String>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<String> bookmarked = prefs.getStringSet("bookmarked", Collections.<String>emptySet());
|
||||
setupPinButton(bookmarked.contains(addonId));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -97,6 +97,13 @@
|
|||
android:layout_width="0dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_height="match_parent"/>
|
||||
<ImageButton
|
||||
android:id="@+id/pin_unpin"
|
||||
android:layout_width="@dimen/buttonbar_button_width"
|
||||
android:layout_height="match_parent"
|
||||
style="@style/Widget.Button.Borderless"
|
||||
android:src="?attr/iconNew"
|
||||
android:contentDescription="@string/enable_disable"/>
|
||||
<ImageButton
|
||||
android:id="@+id/enable_disable"
|
||||
android:layout_width="@dimen/buttonbar_button_width"
|
||||
|
|
|
@ -302,6 +302,9 @@
|
|||
<string name="enable_disable">Enable/Disable Addon</string>
|
||||
<string name="addon_enabled">Addon enabled</string>
|
||||
<string name="addon_disabled">Addon disabled</string>
|
||||
<string name="pin_unpin">Pin/Unpin Addon</string>
|
||||
<string name="addon_pinned">Addon pinned</string>
|
||||
<string name="addon_unpinned">Addon unpinned</string>
|
||||
|
||||
<!-- Filters on list menus -->
|
||||
<string name="hide_watched">Hide watched</string>
|
||||
|
|
Loading…
Reference in New Issue