diff options
author | Parménides GV <parmegv@sdf.org> | 2013-08-28 13:38:17 +0200 |
---|---|---|
committer | cyBerta <richy@cyborgsociety.org> | 2013-11-15 23:25:16 +0100 |
commit | 6d5838ae7d1ffb022c28ce7d6a20a0045cb56e70 (patch) | |
tree | aec085a7ac1bab6ac0fcb262a6b8ae980804a5d5 /src | |
parent | 4c1752f5510c53496daa877bcc097eadbf23de4c (diff) |
CW ProgressBar is translated below provider.
The progressbar does not show any message.
The progressbar overlaps the next provider list item. This is the next
issue to be fixed.
Diffstat (limited to 'src')
-rw-r--r-- | src/se/leap/bitmaskclient/ConfigurationWizard.java | 93 |
1 files changed, 75 insertions, 18 deletions
diff --git a/src/se/leap/bitmaskclient/ConfigurationWizard.java b/src/se/leap/bitmaskclient/ConfigurationWizard.java index fa944645..b1230932 100644 --- a/src/se/leap/bitmaskclient/ConfigurationWizard.java +++ b/src/se/leap/bitmaskclient/ConfigurationWizard.java @@ -31,15 +31,29 @@ import android.app.Fragment; import android.app.FragmentManager;
import android.app.FragmentTransaction;
import android.app.ProgressDialog;
+import android.content.Context;
import android.content.Intent;
import android.content.res.AssetManager;
import android.os.Bundle;
import android.os.Handler;
+import android.view.Display;
import android.view.Menu;
+<<<<<<< HEAD:src/se/leap/bitmaskclient/ConfigurationWizard.java
+import android.view.MenuItem;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ProgressBar;
+=======
import android.view.MenuItem;
import android.view.View;
+import android.view.View.MeasureSpec;
import android.view.ViewGroup;
+import android.view.WindowManager;
+import android.widget.ListAdapter;
+import android.widget.ListView;
import android.widget.ProgressBar;
+import android.widget.RelativeLayout;
+>>>>>>> 2e45441... CW ProgressBar is translated below provider.:src/se/leap/leapclient/ConfigurationWizard.java
/**
* Activity that builds and shows the list of known available providers.
@@ -118,14 +132,20 @@ implements ProviderListFragment.Callbacks, NewProviderDialog.NewProviderDialogIn ConfigHelper.saveSharedPref(ProviderItem.DANGER_ON, danger_on);
ConfigHelper.saveSharedPref(EIP.ALLOWED_ANON, provider_json.getJSONObject(Provider.SERVICE).getBoolean(EIP.ALLOWED_ANON));
mConfigState.setAction(PROVIDER_SET);
+
+ refreshProviderList(0);
- if(!mProgressBar.isShown())
- startProgressBar();
- mProgressBar.incrementProgressBy(1);
- if(resultData.containsKey(Provider.NAME))
- mSelectedProvider = getProvider(resultData.getString(Provider.NAME));
+ if(resultData.containsKey(Provider.NAME)) {
+ String provider_id = resultData.getString(Provider.NAME);
+ mSelectedProvider = getProvider(provider_id);
+
+ if(!mProgressBar.isShown()) {
+ int provider_index = getProviderIndex(provider_id);
+ startProgressBar(provider_index);
+ }
+ mProgressBar.incrementProgressBy(1);
+ }
- refreshProviderList(30);
downloadJSONFiles(mSelectedProvider);
} catch (JSONException e) {
// TODO Auto-generated catch block
@@ -159,13 +179,10 @@ implements ProviderListFragment.Callbacks, NewProviderDialog.NewProviderDialogIn }
else if(resultCode == ProviderAPI.INCORRECTLY_DOWNLOADED_JSON_FILES) {
//Toast.makeText(getApplicationContext(), R.string.incorrectly_downloaded_json_files_message, Toast.LENGTH_LONG).show();
-<<<<<<< HEAD:src/se/leap/bitmaskclient/ConfigurationWizard.java
String reason_to_fail = resultData.getString(ProviderAPI.ERRORS);
showDownloadFailedDialog(getCurrentFocus(), reason_to_fail);
-=======
refreshProviderList(0);
mProgressBar.setVisibility(ProgressBar.GONE);
->>>>>>> ed8ca1d... Added a progressbar to ConfigurationWizard.:src/se/leap/leapclient/ConfigurationWizard.java
setResult(RESULT_CANCELED, mConfigState);
}
else if(resultCode == ProviderAPI.CORRECTLY_DOWNLOADED_CERTIFICATE) {
@@ -181,14 +198,6 @@ implements ProviderListFragment.Callbacks, NewProviderDialog.NewProviderDialogIn setResult(RESULT_CANCELED, mConfigState);
}
}
-
- private void startProgressBar() {
- FragmentManager fragmentManager = getFragmentManager();
- fragmentManager.findFragmentByTag(getResources().getString(R.string.provider_list_fragment_tag)).getView().setPadding(8, 30, 8, 0);
- mProgressBar.setVisibility(ProgressBar.VISIBLE);
- mProgressBar.setProgress(0);
- mProgressBar.setMax(3);
- }
/**
* Callback method from {@link ProviderListFragment.Callbacks}
@@ -198,7 +207,8 @@ implements ProviderListFragment.Callbacks, NewProviderDialog.NewProviderDialogIn public void onItemSelected(String id) {
//TODO Code 2 pane view
ProviderItem selected_provider = getProvider(id);
- startProgressBar();
+ int provider_index = getProviderIndex(id);
+ startProgressBar(provider_index);
mSelectedProvider = selected_provider;
saveProviderJson(mSelectedProvider);
}
@@ -234,6 +244,53 @@ implements ProviderListFragment.Callbacks, NewProviderDialog.NewProviderDialogIn return null;
}
+ private void startProgressBar() {
+ mProgressBar.setVisibility(ProgressBar.VISIBLE);
+ mProgressBar.setProgress(0);
+ mProgressBar.setMax(3);
+ }
+
+ private void startProgressBar(int list_item_index) {
+ mProgressBar.setVisibility(ProgressBar.VISIBLE);
+ mProgressBar.setProgress(0);
+ mProgressBar.setMax(3);
+ int measured_height = listItemHeight(list_item_index);
+ mProgressBar.setTranslationY(measured_height*list_item_index);
+ }
+
+ private int getProviderIndex(String id) {
+ int index = 0;
+ Iterator<ProviderItem> providers_iterator = ProviderListContent.ITEMS.iterator();
+ while(providers_iterator.hasNext()) {
+ ProviderItem provider = providers_iterator.next();
+ index++;
+ if(provider.id.equalsIgnoreCase(id)) {
+ break;
+ }
+ }
+ return index;
+ }
+
+ private int listItemHeight(int list_item_index) {
+ ListView provider_list_view = (ListView)findViewById(android.R.id.list);
+ ListAdapter provider_list_adapter = provider_list_view.getAdapter();
+ View listItem = provider_list_adapter.getView(0, null, provider_list_view);
+ listItem.setLayoutParams(new RelativeLayout.LayoutParams(
+ RelativeLayout.LayoutParams.WRAP_CONTENT,
+ RelativeLayout.LayoutParams.WRAP_CONTENT));
+ WindowManager wm = (WindowManager) getApplicationContext()
+ .getSystemService(Context.WINDOW_SERVICE);
+ Display display = wm.getDefaultDisplay();
+ int screenWidth = display.getWidth(); // deprecated
+
+ int listViewWidth = screenWidth - 10 - 10;
+ int widthSpec = MeasureSpec.makeMeasureSpec(listViewWidth,
+ MeasureSpec.AT_MOST);
+ listItem.measure(widthSpec, 0);
+
+ return listItem.getMeasuredHeight();
+}
+
/**
* Loads providers data from url file contained in the project
* @return true if the file was read correctly
|