protected void enableOrAlgChanged() { total_contacts = 0; SpeedManagerAlgorithmProvider old_provider = provider; if (provider_version == 1) { if (!(provider instanceof SpeedManagerAlgorithmProviderV1)) { provider = new SpeedManagerAlgorithmProviderV1(this); } } else if (provider_version == 2) { if (!(provider instanceof SpeedManagerAlgorithmProviderV2)) { provider = new SpeedManagerAlgorithmProviderV2(this); } } else if (provider_version == 3) { provider = new SpeedManagerAlgorithmProviderV2(this); } else { Debug.out("Unknown provider version " + provider_version); if (!(provider instanceof nullProvider)) { provider = new nullProvider(); } } if (old_provider != provider) { log("Algorithm set to " + provider.getClass().getName()); } if (old_provider != null) { old_provider.destroy(); } provider.reset(); }