package com.spacemangames.biomatcher;
import android.view.View;
import com.actionbarsherlock.app.SherlockFragment;
import com.actionbarsherlock.internal.widget.IcsAdapterView;
import com.actionbarsherlock.internal.widget.IcsAdapterView.OnItemSelectedListener;
import com.googlecode.androidannotations.annotations.EFragment;
import com.googlecode.androidannotations.annotations.ViewById;
import com.spacemangames.biomatcher.controller.ApplicationPrefs_;
import com.spacemangames.biomatcher.controller.IProfileUpdateListener;
import com.spacemangames.biomatcher.controller.ProfileManager;
import com.spacemangames.biomatcher.data.Profile;
import com.spacemangames.biomatcher.view.ProfileSpinner;
@EFragment(R.layout.fragment_dashclock_settings)
public class DashClockSettingsFragment extends SherlockFragment implements IProfileUpdateListener {
@ViewById(R.id.spinner1)
protected ProfileSpinner spinner1;
protected final class OnProfileSelectedListener implements OnItemSelectedListener {
@Override
public void onItemSelected(IcsAdapterView<?> parent, View view, int position, long id) {
applicationPrefs.dashClockProfile().put(spinner1.getSelectedProfile().getId());
}
@Override
public void onNothingSelected(IcsAdapterView<?> parent) {
}
}
private ApplicationPrefs_ applicationPrefs;
@Override
public void onResume() {
super.onResume();
spinner1.setOnItemSelectedListener(new OnProfileSelectedListener());
loadPrefs();
ProfileManager.addListener(this);
}
public void resfreshProfiles() {
if (spinner1 != null) {
spinner1.refreshProfiles();
}
}
@Override
public void onPause() {
super.onPause();
ProfileManager.removeListener(this);
applicationPrefs.dashClockProfile().put(spinner1.getSelectedId());
}
private void loadPrefs() {
applicationPrefs = new ApplicationPrefs_(getActivity());
if (applicationPrefs.dashClockProfile().exists()) {
spinner1.setSelectionById(applicationPrefs.dashClockProfile().get());
}
}
@Override
public void profileAdded(Profile profile) {
spinner1.getProfileAdapter().add(profile);
}
@Override
public void profileRemoved(Profile profile) {
spinner1.getProfileAdapter().remove(profile);
}
@Override
public void profileEdited(Profile profile) {
profileRemoved(profile);
profileAdded(profile);
}
}