summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/se/leap/leapclient/ConfigHelper.java16
-rw-r--r--src/se/leap/leapclient/ConfigurationWizard.java13
-rw-r--r--src/se/leap/leapclient/Dashboard.java8
-rw-r--r--src/se/leap/leapclient/ProviderAPI.java2
-rw-r--r--src/se/leap/leapclient/ProviderDetailFragment.java6
5 files changed, 30 insertions, 15 deletions
diff --git a/src/se/leap/leapclient/ConfigHelper.java b/src/se/leap/leapclient/ConfigHelper.java
index e0496422..559c8e03 100644
--- a/src/se/leap/leapclient/ConfigHelper.java
+++ b/src/se/leap/leapclient/ConfigHelper.java
@@ -164,9 +164,7 @@ public class ConfigHelper {
*/
public static String getStringFromSharedPref(String shared_preferences_key) {
String content = null;
- if ( checkSharedPrefs() ) {
- content = shared_preferences.getString(shared_preferences_key, "");
- }
+ content = shared_preferences.getString(shared_preferences_key, "");
return content;
}
@@ -196,6 +194,18 @@ public class ConfigHelper {
}
return value;
}
+
+ /*
+ * This method defaults to false.
+ * If you use this method, be sure to fail-closed on false!
+ * TODO This is obviously less than ideal...solve it!
+ */
+ public static boolean removeFromSharedPref(String shared_preferences_key) {
+ SharedPreferences.Editor shared_preferences_editor = shared_preferences
+ .edit();
+ shared_preferences_editor.remove(shared_preferences_key);
+ return shared_preferences_editor.commit();
+ }
/**
* Opens a FileInputStream from the user directory of the external storage directory.
diff --git a/src/se/leap/leapclient/ConfigurationWizard.java b/src/se/leap/leapclient/ConfigurationWizard.java
index 840e4e6d..cd367bc4 100644
--- a/src/se/leap/leapclient/ConfigurationWizard.java
+++ b/src/se/leap/leapclient/ConfigurationWizard.java
@@ -85,16 +85,15 @@ implements ProviderListFragment.Callbacks, NewProviderDialog.NewProviderDialogIn
if(mProgressDialog == null)
mProgressDialog = ProgressDialog.show(this, getResources().getString(R.string.config_wait_title), getResources().getString(R.string.config_connecting_provider), true);
mProgressDialog.setMessage(getResources().getString(R.string.config_downloading_services));
- if(mSelectedProvider == null) {
+ if(resultData.containsKey(ConfigHelper.PROVIDER_ID))
mSelectedProvider = getProvider(resultData.getString(ConfigHelper.PROVIDER_ID));
- ProviderListFragment providerList = new ProviderListFragment();
+ ProviderListFragment providerList = new ProviderListFragment();
- FragmentManager fragmentManager = getFragmentManager();
- fragmentManager.beginTransaction()
- .replace(R.id.configuration_wizard_layout, providerList, "providerlist")
- .commit();
- }
+ FragmentManager fragmentManager = getFragmentManager();
+ fragmentManager.beginTransaction()
+ .replace(R.id.configuration_wizard_layout, providerList, "providerlist")
+ .commit();
downloadJSONFiles(mSelectedProvider);
} catch (JSONException e) {
// TODO Auto-generated catch block
diff --git a/src/se/leap/leapclient/Dashboard.java b/src/se/leap/leapclient/Dashboard.java
index 96b982fc..1e7fbf68 100644
--- a/src/se/leap/leapclient/Dashboard.java
+++ b/src/se/leap/leapclient/Dashboard.java
@@ -67,14 +67,14 @@ public class Dashboard extends Activity implements LogInDialog.LogInDialogInterf
setContentView(R.layout.client_dashboard);
- preferences = getSharedPreferences(ConfigHelper.PREFERENCES_KEY,MODE_PRIVATE);
+ ConfigHelper.setSharedPreferences(getSharedPreferences(ConfigHelper.PREFERENCES_KEY, MODE_PRIVATE));
if(ConfigHelper.shared_preferences == null)
ConfigHelper.setSharedPreferences(preferences);
- if (preferences.contains("provider") && preferences.getString(ConfigHelper.PROVIDER_KEY, null) != null)
- buildDashboard();
- else
+ if (ConfigHelper.getStringFromSharedPref(ConfigHelper.PROVIDER_KEY).isEmpty())
startActivityForResult(new Intent(this,ConfigurationWizard.class),CONFIGURE_LEAP);
+ else
+ buildDashboard();
}
@Override
diff --git a/src/se/leap/leapclient/ProviderAPI.java b/src/se/leap/leapclient/ProviderAPI.java
index 4f98e420..306ffa20 100644
--- a/src/se/leap/leapclient/ProviderAPI.java
+++ b/src/se/leap/leapclient/ProviderAPI.java
@@ -294,7 +294,7 @@ public class ProviderAPI extends IntentService {
} else {
ConfigHelper.saveSharedPref(ConfigHelper.ALLOWED_ANON, provider_json.getJSONObject(ConfigHelper.SERVICE_KEY).getBoolean(ConfigHelper.ALLOWED_ANON));
- ProviderListContent.addItem(new ProviderItem(provider_name, provider_json_url, provider_json, custom, danger_on));
+ //ProviderListContent.addItem(new ProviderItem(provider_name, provider_json_url, provider_json, custom, danger_on));
result.putBoolean(ConfigHelper.RESULT_KEY, true);
result.putString(ConfigHelper.PROVIDER_KEY, provider_json.toString());
result.putBoolean(ConfigHelper.DANGER_ON, danger_on);
diff --git a/src/se/leap/leapclient/ProviderDetailFragment.java b/src/se/leap/leapclient/ProviderDetailFragment.java
index 3b6cf83c..0b707d3e 100644
--- a/src/se/leap/leapclient/ProviderDetailFragment.java
+++ b/src/se/leap/leapclient/ProviderDetailFragment.java
@@ -74,6 +74,12 @@ public class ProviderDetailFragment extends DialogFragment {
return false;
}
}
+
+ @Override
+ public void onCancel(DialogInterface dialog) {
+ super.onCancel(dialog);
+ ConfigHelper.removeFromSharedPref(ConfigHelper.PROVIDER_KEY);
+ }
public static DialogFragment newInstance() {
ProviderDetailFragment provider_detail_fragment = new ProviderDetailFragment();