summaryrefslogtreecommitdiff
path: root/src/se/leap/leapclient
diff options
context:
space:
mode:
authorParménides GV <parmegv@sdf.org>2013-06-29 14:03:15 +0200
committerSean Leonard <meanderingcode@aetherislands.net>2013-07-12 11:54:52 -0600
commitb684f2fdd35064210d7c5ae760c1a2e4939b1ec5 (patch)
tree7b9ece739e4435488820072f4353cc751837cb72 /src/se/leap/leapclient
parent6a8a4acdca2c0828c2768a18a470ee64525e0d7f (diff)
Pressing back button, we don't choose any provider
Once in the provider detail fragment, if the user presses the back button, provider.json is removed from sharedpreferences (so that Dashboard does not start as if the user had selected the canceled provider) and ConfigurationWizard gets the focus.
Diffstat (limited to 'src/se/leap/leapclient')
-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 e049642..559c8e0 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 840e4e6..cd367bc 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 96b982f..1e7fbf6 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 4f98e42..306ffa2 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 3b6cf83..0b707d3 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();