Fix navigate action menu & put read time out for tiles
This commit is contained in:
parent
7da3962f2d
commit
016f4acd3b
4 changed files with 61 additions and 63 deletions
|
@ -27,7 +27,8 @@ public class MapTileDownloader {
|
|||
public static int TILE_DOWNLOAD_THREADS = 4;
|
||||
public static int TILE_DOWNLOAD_SECONDS_TO_WORK = 25;
|
||||
public static final long TIMEOUT_AFTER_EXCEEDING_LIMIT_ERRORS = 15000;
|
||||
public static final int TILE_DOWNLOAD_MAX_ERRORS_PER_TIMEOUT = 25;
|
||||
public static final int TILE_DOWNLOAD_MAX_ERRORS_PER_TIMEOUT = 50;
|
||||
private static final int CONNECTION_TIMEOUT = 10000;
|
||||
|
||||
|
||||
private static MapTileDownloader downloader = null;
|
||||
|
@ -187,7 +188,8 @@ public class MapTileDownloader {
|
|||
URL url = new URL(request.url);
|
||||
URLConnection connection = url.openConnection();
|
||||
connection.setRequestProperty("User-Agent", USER_AGENT); //$NON-NLS-1$
|
||||
connection.setConnectTimeout(35000);
|
||||
connection.setConnectTimeout(CONNECTION_TIMEOUT);
|
||||
connection.setReadTimeout(CONNECTION_TIMEOUT);
|
||||
BufferedInputStream inputStream = new BufferedInputStream(connection.getInputStream(), 8 * 1024);
|
||||
FileOutputStream stream = null;
|
||||
try {
|
||||
|
|
|
@ -170,6 +170,7 @@ public class RoutingConfiguration {
|
|||
}
|
||||
}
|
||||
}
|
||||
is.close();
|
||||
return config;
|
||||
}
|
||||
|
||||
|
|
|
@ -282,30 +282,6 @@ public abstract class SettingsBaseActivity extends SherlockPreferenceActivity im
|
|||
}
|
||||
}
|
||||
getSupportActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);
|
||||
// getSupportActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
|
||||
// ActionBar.TabListener tl = new ActionBar.TabListener() {
|
||||
//
|
||||
// @Override
|
||||
// public void onTabSelected(Tab tab, android.support.v4.app.FragmentTransaction ft) {
|
||||
// osmandSettings.APPLICATION_MODE.set(modes.get(tab.getPosition()));
|
||||
// createUI();
|
||||
// updateAllSettings();
|
||||
//
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public void onTabUnselected(Tab tab, android.support.v4.app.FragmentTransaction ft) {
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public void onTabReselected(Tab tab, android.support.v4.app.FragmentTransaction ft) {
|
||||
// }
|
||||
//
|
||||
// };
|
||||
// for (ApplicationMode a : modes) {
|
||||
// Tab t = getSupportActionBar().newTab().setText(a.toHumanString(getMyApplication())).setTabListener(tl);
|
||||
// getSupportActionBar().addTab(t);
|
||||
// }
|
||||
List<String> s = new ArrayList<String>();
|
||||
for (ApplicationMode a : modes) {
|
||||
s.add(a.toHumanString(getMyApplication()));
|
||||
|
@ -348,7 +324,7 @@ public abstract class SettingsBaseActivity extends SherlockPreferenceActivity im
|
|||
protected void profileDialog() {
|
||||
Builder b = new AlertDialog.Builder(this);
|
||||
final Set<ApplicationMode> selected = new LinkedHashSet<ApplicationMode>();
|
||||
View v = NavigateAction.prepareAppModeView(this, selected, false, null, false,
|
||||
View v = NavigateAction.prepareAppModeView(this, selected, false, null, true,
|
||||
new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
|
|
|
@ -397,6 +397,7 @@ public class NavigateAction {
|
|||
ViewGroup parent, final boolean singleSelection, final View.OnClickListener onClickListener) {
|
||||
LinearLayout ll = (LinearLayout) a.getLayoutInflater().inflate(R.layout.mode_toggles, parent);
|
||||
final ToggleButton[] buttons = createToggles(values, ll, a);
|
||||
final boolean[] selectionChangeLoop = new boolean[] {false};
|
||||
for (int i = 0; i < buttons.length; i++) {
|
||||
if (buttons[i] != null) {
|
||||
final int ind = i;
|
||||
|
@ -406,51 +407,69 @@ public class NavigateAction {
|
|||
b.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
|
||||
@Override
|
||||
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
|
||||
if (singleSelection) {
|
||||
if (isChecked) {
|
||||
selected.clear();
|
||||
for (int j = 0; j < buttons.length; j++) {
|
||||
if (buttons[j] != null) {
|
||||
if (ind == j) {
|
||||
selected.add(values.get(j));
|
||||
}
|
||||
if (buttons[j].isChecked() != (ind == j)) {
|
||||
buttons[j].setChecked(ind == j);
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
// revert state
|
||||
boolean revert = true;
|
||||
for (int j = 0; j < buttons.length; j++) {
|
||||
if (buttons[j] != null) {
|
||||
if (buttons[j].isChecked()) {
|
||||
revert = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (revert) {
|
||||
buttons[ind].setChecked(true);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (isChecked) {
|
||||
selected.add(buttonAppMode);
|
||||
} else {
|
||||
selected.remove(buttonAppMode);
|
||||
}
|
||||
if (selectionChangeLoop[0]) {
|
||||
return;
|
||||
}
|
||||
if(onClickListener != null) {
|
||||
onClickListener.onClick(null);
|
||||
selectionChangeLoop[0] = true;
|
||||
try {
|
||||
handleSelection(values, selected, singleSelection, buttons, ind, buttonAppMode, isChecked);
|
||||
if (onClickListener != null) {
|
||||
onClickListener.onClick(null);
|
||||
}
|
||||
} finally {
|
||||
selectionChangeLoop[0] = false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
});
|
||||
}
|
||||
}
|
||||
return ll;
|
||||
}
|
||||
|
||||
private static void handleSelection(final List<ApplicationMode> values,
|
||||
final Set<ApplicationMode> selected, final boolean singleSelection,
|
||||
final ToggleButton[] buttons, final int ind, final ApplicationMode buttonAppMode,
|
||||
boolean isChecked) {
|
||||
if (singleSelection) {
|
||||
if (isChecked) {
|
||||
selected.clear();
|
||||
for (int j = 0; j < buttons.length; j++) {
|
||||
if (buttons[j] != null) {
|
||||
boolean selectedState = ind == j;
|
||||
if (selectedState) {
|
||||
selected.add(values.get(j));
|
||||
}
|
||||
if (buttons[j].isChecked() != selectedState) {
|
||||
buttons[j].setChecked(selectedState);
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
// revert state
|
||||
boolean revert = true;
|
||||
for (int j = 0; j < buttons.length; j++) {
|
||||
if (buttons[j] != null) {
|
||||
if (buttons[j].isChecked()) {
|
||||
revert = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (revert) {
|
||||
buttons[ind].setChecked(true);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (isChecked) {
|
||||
selected.add(buttonAppMode);
|
||||
} else {
|
||||
selected.remove(buttonAppMode);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private Spinner setupFromSpinner(final Location mapView, String name, View view, DirectionDialogStyle style) {
|
||||
String currentLocation = mapActivity.getString(R.string.route_descr_current_location);
|
||||
ArrayList<String> fromActions = new ArrayList<String>();
|
||||
|
|
Loading…
Reference in a new issue