diff --git a/app/src/main/java/com/nextcloud/talk/adapters/messages/IncomingLocationMessageViewHolder.kt b/app/src/main/java/com/nextcloud/talk/adapters/messages/IncomingLocationMessageViewHolder.kt index 32e0b65ca..339c6b8ee 100644 --- a/app/src/main/java/com/nextcloud/talk/adapters/messages/IncomingLocationMessageViewHolder.kt +++ b/app/src/main/java/com/nextcloud/talk/adapters/messages/IncomingLocationMessageViewHolder.kt @@ -45,9 +45,6 @@ class IncomingLocationMessageViewHolder(incomingView: View) : MessageHolders private val TAG = "LocationMessageViewHolder" - var mapProviderUrl: String = "https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png" - var mapProviderAttribution: String = "OpenStreetMap contributors" - var locationLon: String? = "" var locationLat: String? = "" var locationName: String? = "" @@ -285,8 +282,9 @@ class IncomingLocationMessageViewHolder(incomingView: View) : MessageHolders } val urlStringBuffer = StringBuffer("file:///android_asset/leafletMapMessagePreview.html") - urlStringBuffer.append("?mapProviderUrl=" + URLEncoder.encode(mapProviderUrl)) - urlStringBuffer.append("&mapProviderAttribution=" + URLEncoder.encode(mapProviderAttribution)) + urlStringBuffer.append("?mapProviderUrl=" + URLEncoder.encode(context!!.getString(R.string.osm_tile_server_url))) + urlStringBuffer.append("&mapProviderAttribution=" + URLEncoder.encode(context!!.getString(R.string + .osm_tile_server_attributation))) urlStringBuffer.append("&locationLat=" + URLEncoder.encode(locationLat)) urlStringBuffer.append("&locationLon=" + URLEncoder.encode(locationLon)) urlStringBuffer.append("&locationName=" + URLEncoder.encode(locationName)) diff --git a/app/src/main/java/com/nextcloud/talk/adapters/messages/OutcomingLocationMessageViewHolder.kt b/app/src/main/java/com/nextcloud/talk/adapters/messages/OutcomingLocationMessageViewHolder.kt index 988f7d819..60b8cc2f6 100644 --- a/app/src/main/java/com/nextcloud/talk/adapters/messages/OutcomingLocationMessageViewHolder.kt +++ b/app/src/main/java/com/nextcloud/talk/adapters/messages/OutcomingLocationMessageViewHolder.kt @@ -43,9 +43,6 @@ class OutcomingLocationMessageViewHolder(incomingView: View) : MessageHolders private val TAG = "LocationMessageViewHolder" - var mapProviderUrl: String = "https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png" - var mapProviderAttribution: String = "OpenStreetMap contributors" - var locationLon: String? = "" var locationLat: String? = "" var locationName: String? = "" @@ -243,8 +240,9 @@ class OutcomingLocationMessageViewHolder(incomingView: View) : MessageHolders } val urlStringBuffer = StringBuffer("file:///android_asset/leafletMapMessagePreview.html") - urlStringBuffer.append("?mapProviderUrl=" + URLEncoder.encode(mapProviderUrl)) - urlStringBuffer.append("&mapProviderAttribution=" + URLEncoder.encode(mapProviderAttribution)) + urlStringBuffer.append("?mapProviderUrl=" + URLEncoder.encode(context!!.getString(R.string.osm_tile_server_url))) + urlStringBuffer.append("&mapProviderAttribution=" + URLEncoder.encode(context!!.getString(R.string + .osm_tile_server_attributation))) urlStringBuffer.append("&locationLat=" + URLEncoder.encode(locationLat)) urlStringBuffer.append("&locationLon=" + URLEncoder.encode(locationLon)) urlStringBuffer.append("&locationName=" + URLEncoder.encode(locationName)) diff --git a/app/src/main/java/com/nextcloud/talk/controllers/GeocodingController.kt b/app/src/main/java/com/nextcloud/talk/controllers/GeocodingController.kt index 825ca4e4e..5f7cc6789 100644 --- a/app/src/main/java/com/nextcloud/talk/controllers/GeocodingController.kt +++ b/app/src/main/java/com/nextcloud/talk/controllers/GeocodingController.kt @@ -16,6 +16,7 @@ import android.view.ViewGroup import android.view.inputmethod.EditorInfo import android.widget.AdapterView import android.widget.ListView +import android.widget.Toast import androidx.appcompat.widget.SearchView import androidx.core.view.MenuItemCompat import androidx.preference.PreferenceManager @@ -111,7 +112,6 @@ class GeocodingController(args: Bundle) : BaseController(args), SearchView.OnQue geocodingResultListView?.onItemClickListener = AdapterView.OnItemClickListener { parent, view, position, id -> val address: Address = adapter.getItem(position) as Address - val listener: GeocodingResultListener? = targetController as GeocodingResultListener? listener?.receiveChosenGeocodingResult(address.latitude, address.longitude, address.displayName) router.popCurrentController() @@ -133,7 +133,6 @@ class GeocodingController(args: Bundle) : BaseController(args), SearchView.OnQue super.onPrepareOptionsMenu(menu) hideSearchBar() actionBar.setIcon(ColorDrawable(resources!!.getColor(android.R.color.transparent))) - actionBar.title = "Share location" } override fun onQueryTextSubmit(query: String?): Boolean { @@ -152,18 +151,17 @@ class GeocodingController(args: Bundle) : BaseController(args), SearchView.OnQue val searchManager = activity!!.getSystemService(Context.SEARCH_SERVICE) as SearchManager if (searchItem != null) { searchView = MenuItemCompat.getActionView(searchItem) as SearchView - searchView?.setMaxWidth(Int.MAX_VALUE) - searchView?.setInputType(InputType.TYPE_TEXT_VARIATION_FILTER) + searchView?.maxWidth = Int.MAX_VALUE + searchView?.inputType = InputType.TYPE_TEXT_VARIATION_FILTER var imeOptions = EditorInfo.IME_ACTION_DONE or EditorInfo.IME_FLAG_NO_FULLSCREEN if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O && appPreferences!!.isKeyboardIncognito) { imeOptions = imeOptions or EditorInfo.IME_FLAG_NO_PERSONALIZED_LEARNING } - searchView?.setImeOptions(imeOptions) - searchView?.setQueryHint(resources!!.getString(R.string.nc_search)) + searchView?.imeOptions = imeOptions + searchView?.queryHint = resources!!.getString(R.string.nc_search) searchView?.setSearchableInfo(searchManager.getSearchableInfo(activity!!.componentName)) searchView?.setOnQueryTextListener(this) - searchItem?.setOnActionExpandListener(object : MenuItem.OnActionExpandListener { override fun onMenuItemActionExpand(menuItem: MenuItem): Boolean { return true @@ -183,8 +181,8 @@ class GeocodingController(args: Bundle) : BaseController(args), SearchView.OnQue registry.register(Scheme("https", SSLSocketFactory.getSocketFactory(), 443)) val connexionManager: ClientConnectionManager = SingleClientConnManager(null, registry) val httpClient: HttpClient = DefaultHttpClient(connexionManager, null) - val baseUrl = "https://nominatim.openstreetmap.org/" - val email = "android@nextcloud.com" + val baseUrl = context!!.getString(R.string.osm_geocoder_url) + val email = context!!.getString(R.string.osm_geocoder_contact) nominatimClient = JsonNominatimClient(baseUrl, httpClient, email) } @@ -206,6 +204,7 @@ class GeocodingController(args: Bundle) : BaseController(args), SearchView.OnQue } } catch (e: Exception) { Log.e(TAG, "Failed to get geocoded addresses", e) + Toast.makeText(context, R.string.nc_common_error_sorry, Toast.LENGTH_LONG).show() } updateResultsOnMainThread(results) } diff --git a/app/src/main/java/com/nextcloud/talk/controllers/LocationPickerController.kt b/app/src/main/java/com/nextcloud/talk/controllers/LocationPickerController.kt index da2f660f7..06103a333 100644 --- a/app/src/main/java/com/nextcloud/talk/controllers/LocationPickerController.kt +++ b/app/src/main/java/com/nextcloud/talk/controllers/LocationPickerController.kt @@ -146,10 +146,9 @@ class LocationPickerController(args: Bundle) : BaseController(args), SearchView. override fun onPrepareOptionsMenu(menu: Menu) { super.onPrepareOptionsMenu(menu) - Log.d(TAG, "onPrepareOptionsMenu") hideSearchBar() actionBar.setIcon(ColorDrawable(resources!!.getColor(android.R.color.transparent))) - actionBar.title = "Share location" + actionBar.title = context!!.getString(R.string.nc_share_location) } override fun onViewBound(view: View) { @@ -163,7 +162,7 @@ class LocationPickerController(args: Bundle) : BaseController(args), SearchView. placeName?.text.toString() ) } else { - Log.d(TAG, "readyToShareLocation was false while user tried to share location.") + Log.w(TAG, "readyToShareLocation was false while user tried to share location.") } } } @@ -181,9 +180,7 @@ class LocationPickerController(args: Bundle) : BaseController(args), SearchView. } searchView?.setImeOptions(imeOptions) searchView?.setQueryHint(resources!!.getString(R.string.nc_search)) - if (searchManager != null) { - searchView?.setSearchableInfo(searchManager.getSearchableInfo(activity!!.componentName)) - } + searchView?.setSearchableInfo(searchManager.getSearchableInfo(activity!!.componentName)) searchView?.setOnQueryTextListener(this) } } @@ -286,15 +283,15 @@ class LocationPickerController(args: Bundle) : BaseController(args), SearchView. private fun setLocationDescription(isGpsLocation: Boolean, isGeocodedResult: Boolean) { when { isGpsLocation -> { - shareLocationDescription?.text = "Share current location" + shareLocationDescription?.text = context!!.getText(R.string.nc_share_current_location) placeName?.text = "" } isGeocodedResult -> { - shareLocationDescription?.text = "Share this location" + shareLocationDescription?.text = context!!.getText(R.string.nc_share_this_location) placeName?.text = geocodedName } else -> { - shareLocationDescription?.text = "Share this location" + shareLocationDescription?.text = context!!.getText(R.string.nc_share_this_location) placeName?.text = "" } } @@ -379,7 +376,7 @@ class LocationPickerController(args: Bundle) : BaseController(args), SearchView. if (requestCode == REQUEST_PERMISSIONS_REQUEST_CODE && grantResults.size > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { initMap() } else { - Toast.makeText(context, "location permission required!", Toast.LENGTH_LONG).show() + Toast.makeText(context, context!!.getString(R.string.nc_location_permission_required), Toast.LENGTH_LONG).show() } } @@ -395,8 +392,8 @@ class LocationPickerController(args: Bundle) : BaseController(args), SearchView. registry.register(Scheme("https", SSLSocketFactory.getSocketFactory(), 443)) val connexionManager: ClientConnectionManager = SingleClientConnManager(null, registry) val httpClient: HttpClient = DefaultHttpClient(connexionManager, null) - val baseUrl = "https://nominatim.openstreetmap.org/" - val email = "android@nextcloud.com" + val baseUrl = context!!.getString(R.string.osm_geocoder_url) + val email = context!!.getString(R.string.osm_geocoder_contact) nominatimClient = JsonNominatimClient(baseUrl, httpClient, email) } @@ -413,6 +410,7 @@ class LocationPickerController(args: Bundle) : BaseController(args), SearchView. address = nominatimClient!!.getAddress(lon, lat) } catch (e: Exception) { Log.e(TAG, "Failed to get geocoded addresses", e) + Toast.makeText(context, R.string.nc_common_error_sorry, Toast.LENGTH_LONG).show() } updateResultOnMainThread(lat, lon, address?.displayName) } diff --git a/app/src/main/res/values/setup.xml b/app/src/main/res/values/setup.xml index 137ae3611..2435ca1bf 100644 --- a/app/src/main/res/values/setup.xml +++ b/app/src/main/res/values/setup.xml @@ -54,4 +54,11 @@ 1:829118773643:android:54b65087c544d819 AIzaSyAWIyOcLafaFp8PFL61h64cy1NNZW2cU_s nextcloud-a7dea.appspot.com + + + https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png + OpenStreetMap contributors + https://nominatim.openstreetmap.org/ + android@nextcloud.com + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 2b68b65f1..b8ec27e81 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -375,6 +375,9 @@ Share location + location permission is required + Share current location + Share this location phone_book_integration