Skip to content

Instantly share code, notes, and snippets.

@avipars
Created October 28, 2019 05:44
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save avipars/c2d549519c9e62079932b8addc299c29 to your computer and use it in GitHub Desktop.
Save avipars/c2d549519c9e62079932b8addc299c29 to your computer and use it in GitHub Desktop.
MultiSelectListPreference
private Set getHiddenUnits = new HashSet<>();
List list;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
getHiddenUnits = App.getHiddenUnits();
if(!getHiddenUnits.isEmpty())
{
Toast.makeText(this, getHiddenUnits.toString(), Toast.LENGTH_SHORT).show();
for(Object object : getHiddenUnits) {
String element = (String) object;
hideElement(element);
Toast.makeText(this, element, Toast.LENGTH_SHORT).show();
}
}
else
{
setAdapterFirstStart();
}
}
// Generic function to convert set to list
public static <T> List<T> convertSetToList(Set<T> set)
{
return new ArrayList<>(set);
}
//TODO: get real element and not the sorted list one
void hideElement(String position)
{
int element = Integer.parseInt(position);
removeItem(element);
adapter.notifyItemChanged(element);
}
boolean hiddenCheck(int position)
{
String item = String.valueOf(position);
return getHiddenUnits.contains(item);
}
boolean hiddenListCheck(int position)
{
return list.contains(position);
}
boolean hiddenCheck(Conversion position)
{
return getHiddenUnits.contains(position.getNumber());
}
//returns active list for settings
public static ArrayList<Conversion> getConversionList() {
return conversionList;
}
public ArrayList<Conversion> setList() {
boolean hidden = false;
boolean test = true;
if (conversionList.isEmpty()) {
Conversion length = new Conversion(R.drawable.length, R.string.length, Constants.LENGTH, ConversionActivity.class, hiddenCheck(Constants.LENGTH));
addConversionToList(length);
}
private void addConversionToList(Conversion conversion) {
if (!conversion.getIsHidden()) {
conversionList.add(conversion);
}
public void removeItem(int position) {
conversionList.remove(position);
adapter.notifyItemRemoved(position);
}
public void setAdapterFirstStart() {
if (adapter == null) {
array = setList(false); //ArrayList won't be changing much, so I decided to load it into adapter earlier
adapter = new ConversionAdapter(array, this, this);
recyclerView.setAdapter(adapter);
} else {
adapter.notifyDataSetChanged();
}
}
public void setAdapter() {
if (adapter == null) {
array = setList(); //ArrayList won't be changing much, so I decided to load it into adapter earlier
adapter = new ConversionAdapter(array, this, this);
recyclerView.setAdapter(adapter);
} else {
adapter.notifyDataSetChanged();
}
}
Preference hidden = findPreference(getString(R.string.key_unit_hidden));
if (hidden != null) {
hidden.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
public boolean onPreferenceClick(Preference preference) {
return true;
}
});
}
<androidx.preference.MultiSelectListPreference
android:key="@string/key_unit_hidden"
android:summary="@string/hide_units_summary"
android:entries="@array/units"
android:entryValues="@array/unit_numbers"
android:defaultValue="@array/unit_defaults"
android:title="@string/hide_categories_title" />
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment