diff options
Diffstat (limited to 'navit/android/src/org/navitproject/navit/NavitAddressSearchActivity.java')
-rw-r--r-- | navit/android/src/org/navitproject/navit/NavitAddressSearchActivity.java | 239 |
1 files changed, 120 insertions, 119 deletions
diff --git a/navit/android/src/org/navitproject/navit/NavitAddressSearchActivity.java b/navit/android/src/org/navitproject/navit/NavitAddressSearchActivity.java index 5905433d6..3c0c489d1 100644 --- a/navit/android/src/org/navitproject/navit/NavitAddressSearchActivity.java +++ b/navit/android/src/org/navitproject/navit/NavitAddressSearchActivity.java @@ -1,4 +1,4 @@ -/** +/* * Navit, a modular navigation system. * Copyright (C) 2005-2008 Navit Team * @@ -19,6 +19,8 @@ package org.navitproject.navit; +import static org.navitproject.navit.NavitAppConfig.getTstring; + import android.app.Activity; import android.app.AlertDialog; import android.app.Dialog; @@ -42,10 +44,10 @@ import android.widget.EditText; import android.widget.ImageButton; import android.widget.LinearLayout; import android.widget.ListView; -import android.widget.RelativeLayout; import android.widget.RelativeLayout.LayoutParams; import android.widget.TextView; import android.widget.Toast; + import java.lang.reflect.Field; import java.util.ArrayList; import java.util.Arrays; @@ -53,41 +55,41 @@ import java.util.Comparator; import java.util.List; import java.util.Locale; + public class NavitAddressSearchActivity extends Activity { - public static final class NavitAddress { - public NavitAddress(int type, float latitude, float longitude, String address) { - result_type = type; - lat = latitude; - lon = longitude; - addr = address; + static final class NavitAddress { + NavitAddress(int type, float latitude, float longitude, String address) { + mResultType = type; + mLat = latitude; + mLon = longitude; + mAddr = address; } - final int result_type; - final float lat; - final float lon; - final String addr; + final int mResultType; + final float mLat; + final float mLon; + final String mAddr; } private static final String TAG = "NavitAddress"; private static final int ADDRESS_RESULT_PROGRESS_MAX = 10; - private List<NavitAddress> Addresses_found = null; - private List<NavitAddress> addresses_shown = null; + private List<NavitAddress> mAddressesFound = null; + private List<NavitAddress> mAddressesShown = null; private String mAddressString = ""; private boolean mPartialSearch = false; private String mCountry; private ImageButton mCountryButton; - private ProgressDialog search_results_wait = null; - public RelativeLayout NavitAddressSearchActivity_layout; - private int search_results_towns = 0; - private int search_results_streets = 0; - private int search_results_streets_hn = 0; - private long search_handle = 0; + private ProgressDialog mSearchResultsWait = null; + private int mSearchResultsTowns = 0; + private int mSearchResultsStreets = 0; + private int mSearchResultsStreetsHn = 0; + private long mSearchHandle = 0; // TODO remember settings - private static String last_address_search_string = ""; - private static Boolean last_address_partial_match = false; - private static String last_country = ""; + private static String sLastAddressSearchString = ""; + private static Boolean sLastAddressPartialMatch = false; + private static String sLastCountry = ""; private int getDrawableID(String resourceName) { int drawableId = 0; @@ -105,17 +107,18 @@ public class NavitAddressSearchActivity extends Activity { // We have all images stored as drawable_nodpi resources which allows native code to manipulate them // without interference with android builtin choosing and scaling system. But that makes us to // reinvent the wheel here to show an image in android native interface. - int[] flag_icon_sizes = {24,32,48,64,96}; - int exact_size, nearest_size; - exact_size = (int)(Navit.metrics.density * 24.0 - .5); - nearest_size = flag_icon_sizes[0]; - for (int size: flag_icon_sizes) { - nearest_size = size; - if (exact_size <= size) { + int[] flagIconSizes = {24,32,48,64,96}; + int exactSize; + int nearestSize; + exactSize = (int)(Navit.sMetrics.density * 24.0 - .5); + nearestSize = flagIconSizes[0]; + for (int size: flagIconSizes) { + nearestSize = size; + if (exactSize <= size) { break; } } - mCountryButton.setImageResource(getDrawableID("country_" + mCountry + "_" + nearest_size + "_" + nearest_size)); + mCountryButton.setImageResource(getDrawableID("country_" + mCountry + "_" + nearestSize + "_" + nearestSize)); } @@ -125,17 +128,17 @@ public class NavitAddressSearchActivity extends Activity { Bundle extras = getIntent().getExtras(); if (extras != null) { - String search_string = extras.getString(("search_string")); - if (search_string != null) { + String searchString = extras.getString(("search_string")); + if (searchString != null) { mPartialSearch = true; - mAddressString = search_string; + mAddressString = searchString; executeSearch(); return; } } - mPartialSearch = last_address_partial_match; - mAddressString = last_address_search_string; + mPartialSearch = sLastAddressPartialMatch; + mAddressString = sLastAddressSearchString; getWindow().setFlags(WindowManager.LayoutParams.FLAG_BLUR_BEHIND, WindowManager.LayoutParams.FLAG_BLUR_BEHIND); LinearLayout panel = new LinearLayout(this); @@ -143,15 +146,15 @@ public class NavitAddressSearchActivity extends Activity { panel.setOrientation(LinearLayout.VERTICAL); // address: label and text field - SharedPreferences settings = getSharedPreferences(Navit.NAVIT_PREFS, MODE_PRIVATE); + SharedPreferences settings = getSharedPreferences(NavitAppConfig.NAVIT_PREFS, MODE_PRIVATE); mCountry = settings.getString(("DefaultCountry"), null); if (mCountry == null) { Locale defaultLocale = Locale.getDefault(); mCountry = defaultLocale.getCountry().toLowerCase(defaultLocale); - SharedPreferences.Editor edit_settings = settings.edit(); - edit_settings.putString("DefaultCountry", mCountry); - edit_settings.apply(); + SharedPreferences.Editor editSettings = settings.edit(); + editSettings.putString("DefaultCountry", mCountry); + editSettings.apply(); } mCountryButton = new ImageButton(this); @@ -165,33 +168,33 @@ public class NavitAddressSearchActivity extends Activity { }); // address: label and text field - TextView addr_view = new TextView(this); - addr_view.setText(Navit.getInstance().getTstring(R.string.address_enter_destination)); // TRANS - addr_view.setTextSize(TypedValue.COMPLEX_UNIT_SP, 20f); - addr_view.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); - addr_view.setPadding(4, 4, 4, 4); + TextView addrView = new TextView(this); + addrView.setText(getTstring(R.string.address_enter_destination)); // TRANS + addrView.setTextSize(TypedValue.COMPLEX_UNIT_SP, 20f); + addrView.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); + addrView.setPadding(4, 4, 4, 4); // partial match checkbox final CheckBox checkboxPartialMatch = new CheckBox(this); - checkboxPartialMatch.setText(Navit.getInstance().getTstring(R.string.address_partial_match)); // TRANS - checkboxPartialMatch.setChecked(last_address_partial_match); + checkboxPartialMatch.setText(getTstring(R.string.address_partial_match)); // TRANS + checkboxPartialMatch.setChecked(sLastAddressPartialMatch); checkboxPartialMatch.setGravity(Gravity.CENTER); final EditText address_string = new EditText(this); - address_string.setText(last_address_search_string); + address_string.setText(sLastAddressSearchString); address_string.setSelectAllOnFocus(true); // search button final Button btnSearch = new Button(this); - btnSearch.setText(Navit.getInstance().getTstring(R.string.address_search_button)); // TRANS + btnSearch.setText(getTstring(R.string.address_search_button)); // TRANS btnSearch.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT)); btnSearch.setGravity(Gravity.CENTER); btnSearch.setOnClickListener(new OnClickListener() { public void onClick(View v) { mPartialSearch = checkboxPartialMatch.isChecked(); mAddressString = address_string.getText().toString(); - last_address_partial_match = mPartialSearch; - last_address_search_string = mAddressString; + sLastAddressPartialMatch = mPartialSearch; + sLastAddressSearchString = mAddressString; executeSearch(); } }); @@ -204,19 +207,19 @@ public class NavitAddressSearchActivity extends Activity { if (addressCount > 0) { String[] strAddresses = new String[addressCount]; for (int addrIndex = 0; addrIndex < addressCount; addrIndex++) { - strAddresses[addrIndex] = addresses.get(addrIndex).addr; + strAddresses[addrIndex] = addresses.get(addrIndex).mAddr; } ArrayAdapter<String> addressList = - new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, strAddresses); + new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, strAddresses); lastAddresses.setAdapter(addressList); lastAddresses.setOnItemClickListener(new OnItemClickListener() { public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { NavitAddress addressSelected = addresses.get(arg2); Intent resultIntent = new Intent(); - resultIntent.putExtra("lat", addressSelected.lat); - resultIntent.putExtra("lon", addressSelected.lon); - resultIntent.putExtra("q", addressSelected.addr); + resultIntent.putExtra("lat", addressSelected.mLat); + resultIntent.putExtra("lon", addressSelected.mLon); + resultIntent.putExtra("q", addressSelected.mAddr); setResult(Activity.RESULT_OK, resultIntent); finish(); @@ -232,7 +235,7 @@ public class NavitAddressSearchActivity extends Activity { searchSettingsLayout.addView(mCountryButton); searchSettingsLayout.addView(checkboxPartialMatch); - panel.addView(addr_view); + panel.addView(addrView); panel.addView(address_string); panel.addView(searchSettingsLayout); panel.addView(btnSearch); @@ -242,32 +245,31 @@ public class NavitAddressSearchActivity extends Activity { } private void requestCountryDialog() { - final String[][] all_countries = NavitGraphics.GetAllCountries(); + final String[][] all_countries = NavitGraphics.getAllCountries(); - Comparator<String[]> country_comperator = new Comparator<String[]>() { + Comparator<String[]> countryComparator = new Comparator<String[]>() { public int compare(String[] object1, String[] object2) { return object1[1].compareTo(object2[1]); } }; - Arrays.sort(all_countries, country_comperator); + Arrays.sort(all_countries, countryComparator); AlertDialog.Builder mapModeChooser = new AlertDialog.Builder(this); // ToDo also show icons and country code - String[] country_name = new String[all_countries.length]; + String[] countryName = new String[all_countries.length]; - for (int country_index = 0; country_index < all_countries.length; country_index++) { - country_name[country_index] = all_countries[country_index][1]; + for (int countryIndex = 0; countryIndex < all_countries.length; countryIndex++) { + countryName[countryIndex] = all_countries[countryIndex][1]; } - mapModeChooser.setItems(country_name, new DialogInterface.OnClickListener() { + mapModeChooser.setItems(countryName, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int item) { - SharedPreferences settings = getSharedPreferences(Navit.NAVIT_PREFS, MODE_PRIVATE); + SharedPreferences settings = getSharedPreferences(NavitAppConfig.NAVIT_PREFS, MODE_PRIVATE); mCountry = all_countries[item][0]; - SharedPreferences.Editor edit_settings = settings.edit(); - edit_settings.putString("DefaultCountry", mCountry); - edit_settings.apply(); - + SharedPreferences.Editor editSettings = settings.edit(); + editSettings.putString("DefaultCountry", mCountry); + editSettings.apply(); setCountryButtonImage(); } }); @@ -277,36 +279,35 @@ public class NavitAddressSearchActivity extends Activity { d.show(); } - /** - * start a search on the map - */ - public void receiveAddress(int type, float latitude, float longitude, String address) { - Log.e(TAG, "(" + String.valueOf(latitude) + ", " + String.valueOf(longitude) + ") " + address); + //start a search on the map + void receiveAddress(int type, float latitude, float longitude, String address) { + Log.d(TAG, "(" + latitude + ", " + longitude + ") " + address); switch (type) { case 0: - search_results_towns++; + mSearchResultsTowns++; break; case 1: - search_results_streets++; + mSearchResultsStreets++; break; case 2: - search_results_streets_hn++; + mSearchResultsStreetsHn++; break; - + default: + Log.e(TAG,"Unexpected value: " + type); } - search_results_wait.setMessage(Navit.getInstance().getTstring(R.string.address_search_towns) + ":" - + search_results_towns + " " - + Navit.getInstance().getTstring(R.string.address_search_streets) + ":" + search_results_streets + "/" - + search_results_streets_hn); + mSearchResultsWait.setMessage(getTstring(R.string.address_search_towns) + ":" + + mSearchResultsTowns + " " + + getTstring(R.string.address_search_streets) + ":" + mSearchResultsStreets + "/" + + mSearchResultsStreetsHn); - search_results_wait.setProgress(Addresses_found.size() % (ADDRESS_RESULT_PROGRESS_MAX + 1)); + mSearchResultsWait.setProgress(mAddressesFound.size() % (ADDRESS_RESULT_PROGRESS_MAX + 1)); - Addresses_found.add(new NavitAddress(type, latitude, longitude, address)); + mAddressesFound.add(new NavitAddress(type, latitude, longitude, address)); } - public void finishAddressSearch() { - if (Addresses_found.isEmpty()) { + void finishAddressSearch() { + if (mAddressesFound.isEmpty()) { // TRANS Toast.makeText(getApplicationContext(), getString(R.string.address_search_not_found) + "\n" + mAddressString, Toast.LENGTH_LONG).show(); @@ -316,14 +317,14 @@ public class NavitAddressSearchActivity extends Activity { ListView addressesFound = new ListView(this); addressesFound.setFastScrollEnabled(true); ArrayAdapter<String> addressList = - new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1); + new ArrayAdapter<>(this, android.R.layout.simple_list_item_1); - addresses_shown = new ArrayList<NavitAddress>(); + mAddressesShown = new ArrayList<>(); - for (NavitAddress currentAddress : Addresses_found) { - if (currentAddress.result_type != 0 || search_results_streets == 0) { - addressList.add(currentAddress.addr); - addresses_shown.add(currentAddress); + for (NavitAddress currentAddress : mAddressesFound) { + if (currentAddress.mResultType != 0 || mSearchResultsStreets == 0) { + addressList.add(currentAddress.mAddr); + mAddressesShown.add(currentAddress); } } @@ -331,12 +332,12 @@ public class NavitAddressSearchActivity extends Activity { addressesFound.setOnItemClickListener(new OnItemClickListener() { public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { - NavitAddress addressSelected = addresses_shown.get(arg2); + NavitAddress addressSelected = mAddressesShown.get(arg2); Intent resultIntent = new Intent(); - resultIntent.putExtra("lat", addressSelected.lat); - resultIntent.putExtra("lon", addressSelected.lon); - resultIntent.putExtra("q", addressSelected.addr); + resultIntent.putExtra("lat", addressSelected.mLat); + resultIntent.putExtra("lon", addressSelected.mLon); + resultIntent.putExtra("q", addressSelected.mAddr); setResult(Activity.RESULT_OK, resultIntent); finish(); @@ -344,39 +345,39 @@ public class NavitAddressSearchActivity extends Activity { }); setContentView(addressesFound); - search_results_wait.dismiss(); + mSearchResultsWait.dismiss(); } - public native long CallbackStartAddressSearch(int partial_match, String country, String s); + native long callbackStartAddressSearch(int partialMatch, String country, String s); - public native void CallbackCancelAddressSearch(long handle); + native void callbackCancelAddressSearch(long handle); @Override protected Dialog onCreateDialog(int id) { - search_results_wait = new ProgressDialog(this); - search_results_wait.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); - search_results_wait.setTitle("Loading search results"); - search_results_wait.setMessage("--"); - search_results_wait.setCancelable(true); - search_results_wait.setProgress(0); - search_results_wait.setMax(10); - - Addresses_found = new ArrayList<NavitAddress>(); - search_results_towns = 0; - search_results_streets = 0; - search_results_streets_hn = 0; - - search_handle = CallbackStartAddressSearch(mPartialSearch ? 1 : 0, mCountry, mAddressString); - - search_results_wait.setOnCancelListener(new DialogInterface.OnCancelListener() { + mSearchResultsWait = new ProgressDialog(this); + mSearchResultsWait.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); + mSearchResultsWait.setTitle("Loading search results"); + mSearchResultsWait.setMessage("--"); + mSearchResultsWait.setCancelable(true); + mSearchResultsWait.setProgress(0); + mSearchResultsWait.setMax(10); + + mAddressesFound = new ArrayList<>(); + mSearchResultsTowns = 0; + mSearchResultsStreets = 0; + mSearchResultsStreetsHn = 0; + + mSearchHandle = callbackStartAddressSearch(mPartialSearch ? 1 : 0, mCountry, mAddressString); + + mSearchResultsWait.setOnCancelListener(new DialogInterface.OnCancelListener() { @Override public void onCancel(DialogInterface dialog) { - CallbackCancelAddressSearch(search_handle); - search_handle = 0; - search_results_wait.dismiss(); + callbackCancelAddressSearch(mSearchHandle); + mSearchHandle = 0; + mSearchResultsWait.dismiss(); } }); - return search_results_wait; + return mSearchResultsWait; } private void executeSearch() { |