From e60be47e5a46b794846b166993260f17a54a19ad Mon Sep 17 00:00:00 2001 From: cyBerta Date: Sat, 23 Nov 2013 03:23:05 +0100 Subject: switch provider part 1 --- src/se/leap/bitmaskclient/ConfigurationWizard.java | 55 ++++++++++++++++++++-- src/se/leap/bitmaskclient/Dashboard.java | 38 +++++++++++++-- src/se/leap/bitmaskclient/EipServiceFragment.java | 5 ++ src/se/leap/bitmaskclient/Provider.java | 2 + 4 files changed, 91 insertions(+), 9 deletions(-) (limited to 'src/se/leap/bitmaskclient') diff --git a/src/se/leap/bitmaskclient/ConfigurationWizard.java b/src/se/leap/bitmaskclient/ConfigurationWizard.java index 28a8a44a..5babf9a6 100644 --- a/src/se/leap/bitmaskclient/ConfigurationWizard.java +++ b/src/se/leap/bitmaskclient/ConfigurationWizard.java @@ -25,7 +25,6 @@ import org.json.JSONObject; import se.leap.bitmaskclient.R; import se.leap.bitmaskclient.ProviderAPIResultReceiver.Receiver; import se.leap.bitmaskclient.ProviderListContent.ProviderItem; - import android.app.Activity; import android.app.DialogFragment; import android.app.Fragment; @@ -37,6 +36,7 @@ import android.content.Intent; import android.content.res.AssetManager; import android.os.Bundle; import android.os.Handler; +import android.util.Log; import android.view.Display; import android.view.Menu; import android.view.MenuItem; @@ -68,6 +68,7 @@ implements ProviderListFragment.Callbacks, NewProviderDialog.NewProviderDialogIn private ProviderListFragment provider_list_fragment; private Intent mConfigState = new Intent(); + final public static String TAG = "se.leap.bitmaskclient.ConfigurationWizard"; final public static String TYPE_OF_CERTIFICATE = "type_of_certificate"; final public static String ANON_CERTIFICATE = "anon_certificate"; final public static String AUTHED_CERTIFICATE = "authed_certificate"; @@ -101,6 +102,7 @@ implements ProviderListFragment.Callbacks, NewProviderDialog.NewProviderDialogIn Bundle arguments = new Bundle(); int configuration_wizard_request_code = getIntent().getIntExtra(Dashboard.REQUEST_CODE, -1); if(configuration_wizard_request_code == Dashboard.SWITCH_PROVIDER) { + Log.d(TAG, "onCreate - Request_Code: Switch Provider"); arguments.putBoolean(ProviderListFragment.SHOW_ALL_PROVIDERS, true); } provider_list_fragment.setArguments(arguments); @@ -231,10 +233,12 @@ implements ProviderListFragment.Callbacks, NewProviderDialog.NewProviderDialogIn @Override public void onItemSelected(String id) { //TODO Code 2 pane view + // resetOldConnection(); ProviderItem selected_provider = getProvider(id); int provider_index = getProviderIndex(id); startProgressBar(provider_index); mSelectedProvider = selected_provider; + saveProviderJson(mSelectedProvider); } @@ -365,6 +369,7 @@ implements ProviderListFragment.Callbacks, NewProviderDialog.NewProviderDialogIn downloadJSONFiles(mSelectedProvider); } } catch (JSONException e) { + Log.d(TAG, "saveProviderJson("+provider.id + " = " + provider.name + ") failed"); setResult(RESULT_CANCELED); finish(); } @@ -484,8 +489,9 @@ implements ProviderListFragment.Callbacks, NewProviderDialog.NewProviderDialogIn * @param danger_on tells if HTTPS client should bypass certificate errors */ public void updateProviderDotJson(String provider_name, String provider_json_url, boolean danger_on) { + + Intent provider_API_command = new Intent(this, ProviderAPI.class); - Bundle parameters = new Bundle(); parameters.putString(Provider.NAME, provider_name); parameters.putString(Provider.DOT_JSON_URL, provider_json_url); @@ -494,9 +500,18 @@ implements ProviderListFragment.Callbacks, NewProviderDialog.NewProviderDialogIn provider_API_command.setAction(ProviderAPI.UPDATE_PROVIDER_DOTJSON); provider_API_command.putExtra(ProviderAPI.PARAMETERS, parameters); provider_API_command.putExtra(ProviderAPI.RECEIVER_KEY, providerAPI_result_receiver); - + Log.d(TAG, "updateProviderDotJson... right after resetting old connection, starts Service "); + startService(provider_API_command); } + /*private void resetOldConnection(){ + Log.d(TAG, "resetOldConnection... EIPStop()"); + if (Provider.getInstance().hasEIP()){ + Log.d(TAG, "resetOldConnection... Provider has EIP"); + eipStop(); + } + + }*/ @Override public boolean onCreateOptionsMenu(Menu menu) { @@ -535,6 +550,14 @@ implements ProviderListFragment.Callbacks, NewProviderDialog.NewProviderDialogIn } } +/* private void eipStop(){ + // TODO validate "action"...how do we get the list of intent-filters for a class via Android API? + Intent eip_intent = new Intent(this, EIP.class); + eip_intent.setAction(EIP.ACTION_STOP_EIP); + // eip_intent.putExtra(EIP.RECEIVER_TAG, eip_receiver); + startService(eip_intent); + } +*/ public void showAllProviders() { provider_list_fragment = (ProviderListFragment) getFragmentManager().findFragmentByTag(ProviderListFragment.TAG); if(provider_list_fragment != null) @@ -543,15 +566,39 @@ implements ProviderListFragment.Callbacks, NewProviderDialog.NewProviderDialogIn @Override public void login() { + + Intent ask_login = new Intent(); ask_login.putExtra(LogInDialog.VERB, LogInDialog.VERB); + + if (Provider.getInstance().hasEIP()){ + if (ConfigHelper.getBoolFromSharedPref(EIP.AUTHED_EIP)){ + ask_login.putExtra(Dashboard.LOGOUT_FIRST, Dashboard.LOGOUT_FIRST); + Log.d(TAG, "login() -> there was an authed EIP authed before"); + } + Log.d(TAG, "use_anonymously() -> STOP_FIRST!"); + ask_login.putExtra(Dashboard.STOP_FIRST, Dashboard.STOP_FIRST); + Log.d(TAG, "use_anonymously() -> ask_login has: " + ask_login.getExtras()); + + } setResult(RESULT_OK, ask_login); finish(); } @Override public void use_anonymously() { - setResult(RESULT_OK); + Intent stopFirst = new Intent(); + if (Provider.getInstance().hasEIP()){ + if (ConfigHelper.getBoolFromSharedPref(EIP.AUTHED_EIP)){ + stopFirst.putExtra(Dashboard.LOGOUT_FIRST, Dashboard.LOGOUT_FIRST); + Log.d(TAG, "use_anonymously() -> there was an authed EIP before"); + } + Log.d(TAG, "use_anonymously() -> STOP_FIRST!"); + stopFirst.putExtra(Dashboard.STOP_FIRST, Dashboard.STOP_FIRST); + + } + Log.d(TAG, "use_anonymously() "); + setResult(RESULT_OK, stopFirst); finish(); } } diff --git a/src/se/leap/bitmaskclient/Dashboard.java b/src/se/leap/bitmaskclient/Dashboard.java index ca619e9f..116d043b 100644 --- a/src/se/leap/bitmaskclient/Dashboard.java +++ b/src/se/leap/bitmaskclient/Dashboard.java @@ -40,6 +40,7 @@ import android.content.SharedPreferences; import android.os.Bundle; import android.os.Handler; import android.os.ResultReceiver; +import android.util.Log; import android.view.Menu; import android.view.MenuItem; import android.view.View; @@ -63,12 +64,17 @@ public class Dashboard extends Activity implements LogInDialog.LogInDialogInterf protected static final int CONFIGURE_LEAP = 0; protected static final int SWITCH_PROVIDER = 1; + private static final String TAG_EIP_FRAGMENT = "EIP_DASHBOARD_FRAGMENT"; final public static String SHARED_PREFERENCES = "LEAPPreferences"; final public static String ACTION_QUIT = "quit"; public static final String REQUEST_CODE = "request_code"; + public static final String LOGOUT_FIRST = "logout_first"; + public static final String STOP_FIRST = "stop_first"; + + private ProgressBar mProgressBar; private TextView eipStatus; private ProviderAPIBroadcastReceiver_Update providerAPI_broadcast_receiver_update; @@ -89,8 +95,9 @@ public class Dashboard extends Activity implements LogInDialog.LogInDialogInterf app = this; PRNGFixes.apply(); - //mProgressBar = (ProgressBar) findViewById(R.id.progressbar_dashboard); - + // mProgressBar = (ProgressBar) findViewById(R.id.progressbar_dashboard); + // mProgressBar = (ProgressBar) findViewById(R.id.eipProgress); + // eipStatus = (TextView) findViewById(R.id.eipStatus); providerAPI_broadcast_receiver_update = new ProviderAPIBroadcastReceiver_Update(); IntentFilter update_intent_filter = new IntentFilter(ProviderAPI.UPDATE_ACTION); @@ -116,8 +123,16 @@ public class Dashboard extends Activity implements LogInDialog.LogInDialogInterf @Override protected void onActivityResult(int requestCode, int resultCode, Intent data){ if ( requestCode == CONFIGURE_LEAP || requestCode == SWITCH_PROVIDER) { + // It should be equivalent: if ( (requestCode == CONFIGURE_LEAP) || (data!= null && data.hasExtra(STOP_FIRST))) { if ( resultCode == RESULT_OK ){ ConfigHelper.saveSharedPref(EIP.AUTHED_EIP, authed_eip); + if ((data != null) && (data.hasExtra(STOP_FIRST))){ + Log.d(TAG_EIP_FRAGMENT, "onActivityResult() -> eipStop!"); + eipStop(); + }else{ + Log.d(TAG_EIP_FRAGMENT, "onActivityResult() -> has no Extra STOP_FIRST"); + } + startService( new Intent(EIP.ACTION_UPDATE_EIP_SERVICE) ); buildDashboard(); if(data != null && data.hasExtra(LogInDialog.VERB)) { @@ -299,14 +314,13 @@ public class Dashboard extends Activity implements LogInDialog.LogInDialogInterf provider_API_command.putExtra(ProviderAPI.PARAMETERS, parameters); provider_API_command.putExtra(ProviderAPI.RECEIVER_KEY, providerAPI_result_receiver); - //if(mProgressDialog != null) mProgressDialog.dismiss(); - //mProgressDialog = ProgressDialog.show(this, getResources().getString(R.string.logout_title), getResources().getString(R.string.logout_message), true); if(mProgressBar == null) mProgressBar = (ProgressBar) findViewById(R.id.eipProgress); mProgressBar.setVisibility(ProgressBar.VISIBLE); if(eipStatus == null) eipStatus = (TextView) findViewById(R.id.eipStatus); eipStatus.setText("Starting to logout"); - //mProgressBar.setMax(1); startService(provider_API_command); + //mProgressBar.setMax(1); + } /** @@ -456,7 +470,21 @@ public class Dashboard extends Activity implements LogInDialog.LogInDialogInterf eip_intent.putExtra(EIP.RECEIVER_TAG, eip_receiver); startService(eip_intent); } + + /** + * Send a command to EIP + * + */ + private void eipStop(){ + // TODO validate "action"...how do we get the list of intent-filters for a class via Android API? + Intent eip_intent = new Intent(this, EIP.class); + eip_intent.setAction(EIP.ACTION_STOP_EIP); + // eip_intent.putExtra(EIP.RECEIVER_TAG, eip_receiver); + startService(eip_intent); + Log.d(TAG_EIP_FRAGMENT, "eipStop() -> service started to stop"); + } + public class ProviderAPIBroadcastReceiver_Update extends BroadcastReceiver { @Override diff --git a/src/se/leap/bitmaskclient/EipServiceFragment.java b/src/se/leap/bitmaskclient/EipServiceFragment.java index 4d778b1a..ba6bf561 100644 --- a/src/se/leap/bitmaskclient/EipServiceFragment.java +++ b/src/se/leap/bitmaskclient/EipServiceFragment.java @@ -57,6 +57,8 @@ public class EipServiceFragment extends Fragment implements StateListener, OnCli eipStatus.setOnClickListener(this); eipSwitch = (Switch) eipFragment.findViewById(R.id.eipSwitch); + + eipSwitch.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { @@ -66,6 +68,7 @@ public class EipServiceFragment extends Fragment implements StateListener, OnCli }); eipSwitch.setOnCheckedChangeListener(this); + return eipFragment; } @@ -152,6 +155,8 @@ public class EipServiceFragment extends Fragment implements StateListener, OnCli eipAutoSwitched = true; } + + /** * Send a command to EIP * diff --git a/src/se/leap/bitmaskclient/Provider.java b/src/se/leap/bitmaskclient/Provider.java index e462829f..f36e5946 100644 --- a/src/se/leap/bitmaskclient/Provider.java +++ b/src/se/leap/bitmaskclient/Provider.java @@ -166,6 +166,8 @@ public final class Provider implements Serializable { // Walk the EIP types array looking for matches in provider's service definitions if ( Arrays.asList(API_EIP_TYPES).contains( services.getString(i) ) ) return true; + } catch (NullPointerException e){ + e.printStackTrace(); } catch (JSONException e) { // TODO Auto-generated catch block e.printStackTrace(); -- cgit v1.2.3 From 1df0766479f0235bd7e2afcaecce1eaebacb9ffc Mon Sep 17 00:00:00 2001 From: cyBerta Date: Tue, 26 Nov 2013 04:46:42 +0100 Subject: added FATAL as status for reconnection timout --- src/se/leap/bitmaskclient/EipServiceFragment.java | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'src/se/leap/bitmaskclient') diff --git a/src/se/leap/bitmaskclient/EipServiceFragment.java b/src/se/leap/bitmaskclient/EipServiceFragment.java index ba6bf561..e182b3fd 100644 --- a/src/se/leap/bitmaskclient/EipServiceFragment.java +++ b/src/se/leap/bitmaskclient/EipServiceFragment.java @@ -12,6 +12,7 @@ import android.content.Intent; import android.os.Bundle; import android.os.Handler; import android.os.ResultReceiver; +import android.util.Log; import android.view.LayoutInflater; import android.view.MotionEvent; import android.view.View; @@ -38,6 +39,9 @@ public class EipServiceFragment extends Fragment implements StateListener, OnCli private EIPReceiver mEIPReceiver; + + public static String TAG = "se.leap.bitmask.EipServiceFragment"; + @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { @@ -191,15 +195,14 @@ public class EipServiceFragment extends Fragment implements StateListener, OnCli statusMessage = getString(R.string.eip_state_connected); getActivity().findViewById(R.id.eipProgress).setVisibility(View.GONE); mEipStartPending = false; - } else if ( (state.equals("NOPROCESS") && !mEipStartPending ) || state.equals("EXITING")) { + } else if ( (state.equals("NOPROCESS") && !mEipStartPending ) || state.equals("EXITING") || state.equals("FATAL")) { statusMessage = getString(R.string.eip_state_not_connected); getActivity().findViewById(R.id.eipProgress).setVisibility(View.GONE); mEipStartPending = false; switchState = false; } else if (state.equals("NOPROCESS")){ statusMessage = logmessage; - } - else { + } else { statusMessage = prefix + " " + logmessage; } @@ -212,6 +215,7 @@ public class EipServiceFragment extends Fragment implements StateListener, OnCli }); } + /** * Inner class for handling messages related to EIP status and control requests * -- cgit v1.2.3 From 6dfb02da9cd6c28b8a3016cf78454add6408c13d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Parm=C3=A9nides=20GV?= Date: Tue, 3 Dec 2013 22:26:31 +0100 Subject: Vpn profiles get updated after switching provider. parsedEipSerial wasn't being reset after switching provider, so updating gateways thought there was no real update. After switching provider, we also remove all other vpn profiles. --- src/se/leap/bitmaskclient/Dashboard.java | 7 ++++--- src/se/leap/bitmaskclient/EIP.java | 9 +++++++++ src/se/leap/bitmaskclient/ProviderAPI.java | 5 ++++- 3 files changed, 17 insertions(+), 4 deletions(-) (limited to 'src/se/leap/bitmaskclient') diff --git a/src/se/leap/bitmaskclient/Dashboard.java b/src/se/leap/bitmaskclient/Dashboard.java index 116d043b..24cf13f6 100644 --- a/src/se/leap/bitmaskclient/Dashboard.java +++ b/src/se/leap/bitmaskclient/Dashboard.java @@ -106,7 +106,7 @@ public class Dashboard extends Activity implements LogInDialog.LogInDialogInterf ConfigHelper.setSharedPreferences(getSharedPreferences(SHARED_PREFERENCES, MODE_PRIVATE)); preferences = ConfigHelper.shared_preferences; - + authed_eip = ConfigHelper.getBoolFromSharedPref(EIP.AUTHED_EIP); if (ConfigHelper.getStringFromSharedPref(Provider.KEY).isEmpty()) startActivityForResult(new Intent(this,ConfigurationWizard.class),CONFIGURE_LEAP); @@ -125,14 +125,15 @@ public class Dashboard extends Activity implements LogInDialog.LogInDialogInterf if ( requestCode == CONFIGURE_LEAP || requestCode == SWITCH_PROVIDER) { // It should be equivalent: if ( (requestCode == CONFIGURE_LEAP) || (data!= null && data.hasExtra(STOP_FIRST))) { if ( resultCode == RESULT_OK ){ - ConfigHelper.saveSharedPref(EIP.AUTHED_EIP, authed_eip); if ((data != null) && (data.hasExtra(STOP_FIRST))){ Log.d(TAG_EIP_FRAGMENT, "onActivityResult() -> eipStop!"); eipStop(); - }else{ + } else{ Log.d(TAG_EIP_FRAGMENT, "onActivityResult() -> has no Extra STOP_FIRST"); } + ConfigHelper.saveSharedPref(EIP.PARSED_SERIAL, 0); + ConfigHelper.saveSharedPref(EIP.AUTHED_EIP, authed_eip); startService( new Intent(EIP.ACTION_UPDATE_EIP_SERVICE) ); buildDashboard(); if(data != null && data.hasExtra(LogInDialog.VERB)) { diff --git a/src/se/leap/bitmaskclient/EIP.java b/src/se/leap/bitmaskclient/EIP.java index 22f7558d..13261e29 100644 --- a/src/se/leap/bitmaskclient/EIP.java +++ b/src/se/leap/bitmaskclient/EIP.java @@ -252,10 +252,19 @@ public final class EIP extends IntentService { private void updateEIPService() { try { eipDefinition = ConfigHelper.getJsonFromSharedPref(EIP.KEY); + parsedEipSerial = ConfigHelper.getIntFromSharedPref(PARSED_SERIAL); } catch (JSONException e) { // TODO Auto-generated catch block e.printStackTrace(); } + if(parsedEipSerial == 0) { + // Delete all vpn profiles + ProfileManager vpl = ProfileManager.getInstance(context); + Collection profiles = vpl.getProfiles(); + for (VpnProfile profile : profiles){ + vpl.removeProfile(context, profile); + } + } if (eipDefinition.optInt("serial") > parsedEipSerial) updateGateways(); } diff --git a/src/se/leap/bitmaskclient/ProviderAPI.java b/src/se/leap/bitmaskclient/ProviderAPI.java index a553851b..871a20dd 100644 --- a/src/se/leap/bitmaskclient/ProviderAPI.java +++ b/src/se/leap/bitmaskclient/ProviderAPI.java @@ -229,7 +229,10 @@ public class ProviderAPI extends IntentService { result.putString(ERRORS, reason_to_fail); result.putBoolean(RESULT_KEY, false); } - else ConfigHelper.saveSharedPref(EIP.KEY, eip_service_json); + else { + ConfigHelper.saveSharedPref(EIP.KEY, eip_service_json); + ConfigHelper.saveSharedPref(EIP.PARSED_SERIAL, 0); + } result.putBoolean(RESULT_KEY, true); } catch (JSONException e) { -- cgit v1.2.3 From 017e493dc7c7e0565000d2afa76eb93c1fa5c2d6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Parm=C3=A9nides=20GV?= Date: Tue, 3 Dec 2013 22:43:25 +0100 Subject: Active gateway is updated every eip start. --- src/se/leap/bitmaskclient/EIP.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'src/se/leap/bitmaskclient') diff --git a/src/se/leap/bitmaskclient/EIP.java b/src/se/leap/bitmaskclient/EIP.java index 13261e29..ec2f6972 100644 --- a/src/se/leap/bitmaskclient/EIP.java +++ b/src/se/leap/bitmaskclient/EIP.java @@ -214,8 +214,7 @@ public final class EIP extends IntentService { * Intent to {@link se.leap.openvpn.LaunchVPN} */ private void startEIP() { - if (activeGateway==null) - activeGateway = selectGateway(); + activeGateway = selectGateway(); Intent intent = new Intent(this,LaunchVPN.class); intent.setAction(Intent.ACTION_MAIN); -- cgit v1.2.3 From 8c54cb758514aef996a362d0c021bf0f93006ea2 Mon Sep 17 00:00:00 2001 From: cyBerta Date: Tue, 3 Dec 2013 22:05:12 +0100 Subject: logout simplified and logs removed --- src/se/leap/bitmaskclient/ConfigurationWizard.java | 52 +++------------------- src/se/leap/bitmaskclient/Dashboard.java | 22 +++++---- 2 files changed, 16 insertions(+), 58 deletions(-) (limited to 'src/se/leap/bitmaskclient') diff --git a/src/se/leap/bitmaskclient/ConfigurationWizard.java b/src/se/leap/bitmaskclient/ConfigurationWizard.java index 5babf9a6..7ecc1652 100644 --- a/src/se/leap/bitmaskclient/ConfigurationWizard.java +++ b/src/se/leap/bitmaskclient/ConfigurationWizard.java @@ -102,7 +102,6 @@ implements ProviderListFragment.Callbacks, NewProviderDialog.NewProviderDialogIn Bundle arguments = new Bundle(); int configuration_wizard_request_code = getIntent().getIntExtra(Dashboard.REQUEST_CODE, -1); if(configuration_wizard_request_code == Dashboard.SWITCH_PROVIDER) { - Log.d(TAG, "onCreate - Request_Code: Switch Provider"); arguments.putBoolean(ProviderListFragment.SHOW_ALL_PROVIDERS, true); } provider_list_fragment.setArguments(arguments); @@ -369,7 +368,6 @@ implements ProviderListFragment.Callbacks, NewProviderDialog.NewProviderDialogIn downloadJSONFiles(mSelectedProvider); } } catch (JSONException e) { - Log.d(TAG, "saveProviderJson("+provider.id + " = " + provider.name + ") failed"); setResult(RESULT_CANCELED); finish(); } @@ -500,19 +498,10 @@ implements ProviderListFragment.Callbacks, NewProviderDialog.NewProviderDialogIn provider_API_command.setAction(ProviderAPI.UPDATE_PROVIDER_DOTJSON); provider_API_command.putExtra(ProviderAPI.PARAMETERS, parameters); provider_API_command.putExtra(ProviderAPI.RECEIVER_KEY, providerAPI_result_receiver); - Log.d(TAG, "updateProviderDotJson... right after resetting old connection, starts Service "); startService(provider_API_command); } - /*private void resetOldConnection(){ - Log.d(TAG, "resetOldConnection... EIPStop()"); - if (Provider.getInstance().hasEIP()){ - Log.d(TAG, "resetOldConnection... Provider has EIP"); - eipStop(); - } - - }*/ - + @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.configuration_wizard_activity, menu); @@ -549,15 +538,7 @@ implements ProviderListFragment.Callbacks, NewProviderDialog.NewProviderDialogIn fragment_transaction.replace(R.id.configuration_wizard_layout, newFragment, AboutFragment.TAG).commit(); } } - -/* private void eipStop(){ - // TODO validate "action"...how do we get the list of intent-filters for a class via Android API? - Intent eip_intent = new Intent(this, EIP.class); - eip_intent.setAction(EIP.ACTION_STOP_EIP); - // eip_intent.putExtra(EIP.RECEIVER_TAG, eip_receiver); - startService(eip_intent); - } -*/ + public void showAllProviders() { provider_list_fragment = (ProviderListFragment) getFragmentManager().findFragmentByTag(ProviderListFragment.TAG); if(provider_list_fragment != null) @@ -568,37 +549,16 @@ implements ProviderListFragment.Callbacks, NewProviderDialog.NewProviderDialogIn public void login() { - Intent ask_login = new Intent(); + Intent ask_login = new Intent(this, Dashboard.class); ask_login.putExtra(LogInDialog.VERB, LogInDialog.VERB); - - if (Provider.getInstance().hasEIP()){ - if (ConfigHelper.getBoolFromSharedPref(EIP.AUTHED_EIP)){ - ask_login.putExtra(Dashboard.LOGOUT_FIRST, Dashboard.LOGOUT_FIRST); - Log.d(TAG, "login() -> there was an authed EIP authed before"); - } - Log.d(TAG, "use_anonymously() -> STOP_FIRST!"); - ask_login.putExtra(Dashboard.STOP_FIRST, Dashboard.STOP_FIRST); - Log.d(TAG, "use_anonymously() -> ask_login has: " + ask_login.getExtras()); - - } - setResult(RESULT_OK, ask_login); + startActivityForResult(ask_login, Dashboard.CONFIGURE_LEAP); finish(); } @Override public void use_anonymously() { - Intent stopFirst = new Intent(); - if (Provider.getInstance().hasEIP()){ - if (ConfigHelper.getBoolFromSharedPref(EIP.AUTHED_EIP)){ - stopFirst.putExtra(Dashboard.LOGOUT_FIRST, Dashboard.LOGOUT_FIRST); - Log.d(TAG, "use_anonymously() -> there was an authed EIP before"); - } - Log.d(TAG, "use_anonymously() -> STOP_FIRST!"); - stopFirst.putExtra(Dashboard.STOP_FIRST, Dashboard.STOP_FIRST); - - } - Log.d(TAG, "use_anonymously() "); - setResult(RESULT_OK, stopFirst); + Intent intent = new Intent(this, Dashboard.class); + startActivityForResult(intent, Dashboard.CONFIGURE_LEAP); finish(); } } diff --git a/src/se/leap/bitmaskclient/Dashboard.java b/src/se/leap/bitmaskclient/Dashboard.java index 24cf13f6..65ff2800 100644 --- a/src/se/leap/bitmaskclient/Dashboard.java +++ b/src/se/leap/bitmaskclient/Dashboard.java @@ -70,8 +70,7 @@ public class Dashboard extends Activity implements LogInDialog.LogInDialogInterf final public static String SHARED_PREFERENCES = "LEAPPreferences"; final public static String ACTION_QUIT = "quit"; public static final String REQUEST_CODE = "request_code"; - public static final String LOGOUT_FIRST = "logout_first"; - public static final String STOP_FIRST = "stop_first"; + @@ -124,18 +123,12 @@ public class Dashboard extends Activity implements LogInDialog.LogInDialogInterf protected void onActivityResult(int requestCode, int resultCode, Intent data){ if ( requestCode == CONFIGURE_LEAP || requestCode == SWITCH_PROVIDER) { // It should be equivalent: if ( (requestCode == CONFIGURE_LEAP) || (data!= null && data.hasExtra(STOP_FIRST))) { - if ( resultCode == RESULT_OK ){ - if ((data != null) && (data.hasExtra(STOP_FIRST))){ - Log.d(TAG_EIP_FRAGMENT, "onActivityResult() -> eipStop!"); - eipStop(); - } else{ - Log.d(TAG_EIP_FRAGMENT, "onActivityResult() -> has no Extra STOP_FIRST"); - } - + if ( resultCode == RESULT_OK ){ ConfigHelper.saveSharedPref(EIP.PARSED_SERIAL, 0); ConfigHelper.saveSharedPref(EIP.AUTHED_EIP, authed_eip); startService( new Intent(EIP.ACTION_UPDATE_EIP_SERVICE) ); buildDashboard(); + if(data != null && data.hasExtra(LogInDialog.VERB)) { View view = ((ViewGroup)findViewById(android.R.id.content)).getChildAt(0); logInDialog(view, Bundle.EMPTY); @@ -146,7 +139,7 @@ public class Dashboard extends Activity implements LogInDialog.LogInDialogInterf configErrorDialog(); } } - + /** * Dialog shown when encountering a configuration error. Such errors require * reconfiguring LEAP or aborting the application. @@ -244,6 +237,12 @@ public class Dashboard extends Activity implements LogInDialog.LogInDialogInterf startActivity(intent); return true; case R.id.switch_provider: + if (Provider.getInstance().hasEIP()){ + if (ConfigHelper.getBoolFromSharedPref(EIP.AUTHED_EIP)){ + logOut(); + } + eipStop(); + } startActivityForResult(new Intent(this,ConfigurationWizard.class), SWITCH_PROVIDER); return true; case R.id.login_button: @@ -482,7 +481,6 @@ public class Dashboard extends Activity implements LogInDialog.LogInDialogInterf eip_intent.setAction(EIP.ACTION_STOP_EIP); // eip_intent.putExtra(EIP.RECEIVER_TAG, eip_receiver); startService(eip_intent); - Log.d(TAG_EIP_FRAGMENT, "eipStop() -> service started to stop"); } -- cgit v1.2.3 From d004c5535c75540600d6670e86300872651fc7bf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Parm=C3=A9nides=20GV?= Date: Wed, 4 Dec 2013 17:13:12 +0100 Subject: Rebased and working fine. I've restored use_anonymously() and login() methods from ConfigurationWizard, now everything works ok. --- src/se/leap/bitmaskclient/ConfigurationWizard.java | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) (limited to 'src/se/leap/bitmaskclient') diff --git a/src/se/leap/bitmaskclient/ConfigurationWizard.java b/src/se/leap/bitmaskclient/ConfigurationWizard.java index 7ecc1652..4a3bb12b 100644 --- a/src/se/leap/bitmaskclient/ConfigurationWizard.java +++ b/src/se/leap/bitmaskclient/ConfigurationWizard.java @@ -547,18 +547,15 @@ implements ProviderListFragment.Callbacks, NewProviderDialog.NewProviderDialogIn @Override public void login() { - - - Intent ask_login = new Intent(this, Dashboard.class); + Intent ask_login = new Intent(); ask_login.putExtra(LogInDialog.VERB, LogInDialog.VERB); - startActivityForResult(ask_login, Dashboard.CONFIGURE_LEAP); + setResult(RESULT_OK, ask_login); finish(); } @Override public void use_anonymously() { - Intent intent = new Intent(this, Dashboard.class); - startActivityForResult(intent, Dashboard.CONFIGURE_LEAP); + setResult(RESULT_OK); finish(); } } -- cgit v1.2.3