Created
October 28, 2019 05:44
-
-
Save avipars/c2d549519c9e62079932b8addc299c29 to your computer and use it in GitHub Desktop.
MultiSelectListPreference
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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(); | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Preference hidden = findPreference(getString(R.string.key_unit_hidden)); | |
if (hidden != null) { | |
hidden.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() { | |
public boolean onPreferenceClick(Preference preference) { | |
return true; | |
} | |
}); | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<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