package denominator.example.android.ui; import android.os.Bundle; import android.preference.EditTextPreference; import android.preference.PreferenceActivity; import android.preference.PreferenceScreen; import javax.inject.Inject; import denominator.Provider; import denominator.example.android.DenominatorApplication; public class PreferencesActivity extends PreferenceActivity { @Inject Provider provider; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); DenominatorApplication.class.cast(getApplication()).getApplicationGraph().inject(this); // to support api level 9 this.setPreferenceScreen(createFromProvider()); } private PreferenceScreen createFromProvider() { PreferenceScreen root = getPreferenceManager().createPreferenceScreen(this); if (provider.credentialTypeToParameterNames().isEmpty()) { return root; } String credentialType = provider.credentialTypeToParameterNames().keySet().iterator().next(); root.setTitle(credentialType + " credentials for provider " + provider.name()); for (String parameter : provider.credentialTypeToParameterNames().get(credentialType)) { EditTextPreference cred = new EditTextPreference(this); cred.setKey(parameter); cred.setTitle(parameter); cred.setDialogTitle(parameter); root.addPreference(cred); } return root; } }