From 9f11130b9f15ef8c3036248d056c658d90bedabb Mon Sep 17 00:00:00 2001 From: Samuel Tardieu Date: Thu, 20 Feb 2014 11:08:19 +0100 Subject: refactoring: factor out common code in preferences --- .../AbstractCheckCredentialsPreference.java | 27 +++++++++------------- 1 file changed, 11 insertions(+), 16 deletions(-) (limited to 'main/src/cgeo/geocaching/settings/AbstractCheckCredentialsPreference.java') diff --git a/main/src/cgeo/geocaching/settings/AbstractCheckCredentialsPreference.java b/main/src/cgeo/geocaching/settings/AbstractCheckCredentialsPreference.java index d3aae5c..9508c26 100644 --- a/main/src/cgeo/geocaching/settings/AbstractCheckCredentialsPreference.java +++ b/main/src/cgeo/geocaching/settings/AbstractCheckCredentialsPreference.java @@ -19,14 +19,8 @@ import android.os.Handler; import android.os.Message; import android.preference.Preference; import android.util.AttributeSet; -import android.view.View; -import android.view.ViewGroup; -public abstract class AbstractCheckCredentialsPreference extends Preference { - - public AbstractCheckCredentialsPreference(Context context) { - super(context); - } +public abstract class AbstractCheckCredentialsPreference extends AbstractClickablePreference { public AbstractCheckCredentialsPreference(Context context, AttributeSet attrs) { super(context, attrs); @@ -37,9 +31,8 @@ public abstract class AbstractCheckCredentialsPreference extends Preference { } @Override - protected View onCreateView(ViewGroup parent) { - setOnPreferenceClickListener(new LoginCheckClickListener()); - return super.onCreateView(parent); + protected OnPreferenceClickListener getOnPreferenceClickListener(final SettingsActivity activity) { + return new LoginCheckClickListener(activity); } protected abstract ImmutablePair getCredentials(); @@ -47,8 +40,13 @@ public abstract class AbstractCheckCredentialsPreference extends Preference { protected abstract Object login(); private class LoginCheckClickListener implements OnPreferenceClickListener { - private Resources res; - private SettingsActivity activity; + final private Resources res; + final private SettingsActivity activity; + + LoginCheckClickListener(final SettingsActivity activity) { + this.activity = activity; + this.res = activity.getResources(); + } private ProgressDialog loginDialog; @SuppressLint("HandlerLeak") @@ -84,10 +82,7 @@ public abstract class AbstractCheckCredentialsPreference extends Preference { @Override public boolean onPreferenceClick(Preference preference) { - this.activity = (SettingsActivity) AbstractCheckCredentialsPreference.this.getContext(); - this.res = activity.getResources(); - - ImmutablePair credentials = getCredentials(); + final ImmutablePair credentials = getCredentials(); // check credentials for validity if (StringUtils.isBlank(credentials.getLeft()) -- cgit v1.1