From 76d52773a237da8fcae3670a959bbe2bfe609796 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Parm=C3=A9nides=20GV?= Date: Thu, 3 Oct 2013 16:41:53 +0200 Subject: Switching provider offers all providers from list. This fixes bug #4004: With new progress bars branch, if user switches provider the list of providers is not complete. --- src/se/leap/bitmaskclient/ConfigurationWizard.java | 33 +++++++++++++--------- 1 file changed, 20 insertions(+), 13 deletions(-) (limited to 'src/se/leap/bitmaskclient/ConfigurationWizard.java') diff --git a/src/se/leap/bitmaskclient/ConfigurationWizard.java b/src/se/leap/bitmaskclient/ConfigurationWizard.java index 5839816b..28a8a44a 100644 --- a/src/se/leap/bitmaskclient/ConfigurationWizard.java +++ b/src/se/leap/bitmaskclient/ConfigurationWizard.java @@ -31,6 +31,7 @@ import android.app.DialogFragment; import android.app.Fragment; import android.app.FragmentManager; import android.app.FragmentTransaction; +import android.app.ListFragment; import android.content.Context; import android.content.Intent; import android.content.res.AssetManager; @@ -96,12 +97,18 @@ implements ProviderListFragment.Callbacks, NewProviderDialog.NewProviderDialogIn if ( savedInstanceState == null ){ // TODO Some welcome screen? // We will need better flow control when we have more Fragments (e.g. user auth) - provider_list_fragment = new ProviderListFragment(); - - FragmentManager fragmentManager = getFragmentManager(); - fragmentManager.beginTransaction() - .add(R.id.configuration_wizard_layout, provider_list_fragment, getResources().getString(R.string.provider_list_fragment_tag)) - .commit(); + provider_list_fragment = ProviderListFragment.newInstance(); + Bundle arguments = new Bundle(); + int configuration_wizard_request_code = getIntent().getIntExtra(Dashboard.REQUEST_CODE, -1); + if(configuration_wizard_request_code == Dashboard.SWITCH_PROVIDER) { + arguments.putBoolean(ProviderListFragment.SHOW_ALL_PROVIDERS, true); + } + provider_list_fragment.setArguments(arguments); + + FragmentManager fragmentManager = getFragmentManager(); + fragmentManager.beginTransaction() + .replace(R.id.configuration_wizard_layout, provider_list_fragment, ProviderListFragment.TAG) + .commit(); } // TODO: If exposing deep links into your app, handle intents here. @@ -115,14 +122,14 @@ implements ProviderListFragment.Callbacks, NewProviderDialog.NewProviderDialogIn FragmentManager fragmentManager = getFragmentManager(); fragmentManager.beginTransaction() - .replace(R.id.configuration_wizard_layout, new_provider_list_fragment, getResources().getString(R.string.provider_list_fragment_tag)) + .replace(R.id.configuration_wizard_layout, new_provider_list_fragment, ProviderListFragment.TAG) .commit(); } private void setProviderList(ProviderListFragment new_provider_list_fragment) { FragmentManager fragmentManager = getFragmentManager(); fragmentManager.beginTransaction() - .replace(R.id.configuration_wizard_layout, new_provider_list_fragment, getResources().getString(R.string.provider_list_fragment_tag)) + .replace(R.id.configuration_wizard_layout, new_provider_list_fragment, ProviderListFragment.TAG) .commit(); } @@ -150,7 +157,7 @@ implements ProviderListFragment.Callbacks, NewProviderDialog.NewProviderDialogIn if(!mProgressBar.isShown()) { int provider_index = getProviderIndex(provider_id); startProgressBar(provider_index); - provider_list_fragment = (ProviderListFragment) getFragmentManager().findFragmentByTag(getResources().getString(R.string.provider_list_fragment_tag)); + provider_list_fragment = (ProviderListFragment) getFragmentManager().findFragmentByTag(ProviderListFragment.TAG); provider_list_fragment.hide(provider_index-2); //setProviderList(provider_list_fragment); } @@ -528,10 +535,10 @@ implements ProviderListFragment.Callbacks, NewProviderDialog.NewProviderDialogIn } } - public void unhideAll() { - provider_list_fragment.unhideAll(); - setProviderList(provider_list_fragment); - refreshProviderList(0); + public void showAllProviders() { + provider_list_fragment = (ProviderListFragment) getFragmentManager().findFragmentByTag(ProviderListFragment.TAG); + if(provider_list_fragment != null) + provider_list_fragment.unhideAll(); } @Override -- cgit v1.2.3