package ro.epb.menubegone.settings;
import java.util.Set;
import java.util.TreeSet;
import ro.epb.menubegone.R;
import ro.epb.menubegone.core.Constants;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListView;
public class BlackListActivity extends FragmentActivity implements
OnItemClickListener {
private ListView appList;
private AppListAdapter adapter;
private Set<String> blackPackages;
private SharedPreferences preferences;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.blacklist_activity);
preferences = PreferencesHelper.getPreferences(this);
blackPackages = preferences.getStringSet(Constants.PREF_BLACKLIST,
new TreeSet<String>());
blackPackages = new TreeSet<String>(blackPackages);
// this is a fix for an android bug
// http://androiddev.orkitra.com/?p=7297
appList = (ListView) findViewById(R.id.app_list);
adapter = new AppListAdapter(this);
appList.setAdapter(adapter);
appList.setOnItemClickListener(this);
for (String packageName : blackPackages) {
int position = adapter.getPosition(packageName);
if (position >= 0)
appList.setItemChecked(position, true);
}
}
/**
* updatePreference
*/
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
String packageName = adapter.getItem(position).packageName;
boolean isChecked = appList.getCheckedItemPositions().get(position,
false);
if (isChecked)
blackPackages.add(packageName);
else
blackPackages.remove(packageName);
}
@Override
protected void onPause() {
super.onPause();
preferences.edit()
.putStringSet(Constants.PREF_BLACKLIST, blackPackages).apply();
}
}