Merge remote-tracking branch 'origin/master'

This commit is contained in:
Weblate 2015-12-07 09:28:38 +01:00
commit dacc0efd11
9 changed files with 1831 additions and 1412 deletions

View file

@ -1,5 +1,9 @@
package net.osmand.osm.edit;
import net.osmand.data.LatLon;
import net.osmand.osm.edit.OSMSettings.OSMTagKey;
import java.io.Serializable;
import java.util.Collection;
import java.util.Collections;
import java.util.HashSet;
@ -7,11 +11,8 @@ import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Set;
import net.osmand.data.LatLon;
import net.osmand.osm.edit.OSMSettings.OSMTagKey;
public abstract class Entity {
public abstract class Entity implements Serializable {
public enum EntityType {
NODE,
WAY,

View file

@ -1,17 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
<manifest package="net.osmand.plus"
xmlns:android="http://schemas.android.com/apk/res/android"
android:installLocation="auto"
android:versionName="@string/app_version"
android:versionCode="231"
package="net.osmand.plus">
<uses-sdk android:minSdkVersion="14" android:targetSdkVersion="21" />
android:versionName="@string/app_version">
<uses-sdk
android:minSdkVersion="14"
android:targetSdkVersion="21"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.STORAGE"/>
@ -22,42 +22,98 @@
<uses-permission android:name="android.permission.RECORD_AUDIO"/>
<uses-permission android:name="com.android.vending.BILLING"/>
<uses-feature
android:name="android.hardware.camera"
android:required="false"/>
<uses-feature
android:name="android.hardware.camera.autofocus"
android:required="false"/>
<uses-feature
android:name="android.hardware.microphone"
android:required="false"/>
<uses-feature
android:name="android.hardware.wifi"
android:required="false"/>
<uses-feature
android:name="android.hardware.location"
android:required="false"/>
<uses-feature
android:name="android.hardware.location.network"
android:required="false"/>
<uses-feature
android:name="android.hardware.location.gps"
android:required="false"/>
<uses-feature
android:name="android.hardware.sensor.light"
android:required="false"/>
<uses-feature
android:name="android.hardware.sensor.compass"
android:required="false"/>
<uses-feature
android:name="android.hardware.sensor.accelerometer"
android:required="false"/>
<uses-feature
android:name="android.hardware.sensor.gyroscope"
android:required="false"/>
<uses-feature
android:name="android.hardware.touchscreen"
android:required="false"/>
<supports-screens
android:anyDensity="true"
android:largeScreens="true"
android:normalScreens="true"
android:resizeable="true"
android:smallScreens="true"
android:xlargeScreens="true"/>
<uses-feature android:name="android.hardware.camera" android:required="false" />
<uses-feature android:name="android.hardware.camera.autofocus" android:required="false" />
<uses-feature android:name="android.hardware.microphone" android:required="false" />
<uses-feature android:name="android.hardware.wifi" android:required="false" />
<uses-feature android:name="android.hardware.location" android:required="false" />
<uses-feature android:name="android.hardware.location.network" android:required="false" />
<uses-feature android:name="android.hardware.location.gps" android:required="false" />
<uses-feature android:name="android.hardware.sensor.light" android:required="false" />
<uses-feature android:name="android.hardware.sensor.compass" android:required="false" />
<uses-feature android:name="android.hardware.sensor.accelerometer" android:required="false" />
<uses-feature android:name="android.hardware.sensor.gyroscope" android:required="false" />
<uses-feature android:name="android.hardware.touchscreen" android:required="false" />
<supports-screens android:resizeable="true" android:smallScreens="true" android:normalScreens="true" android:largeScreens="true"
android:xlargeScreens="true" android:anyDensity="true" />
<android:uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<android:uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<!-- android:theme="@style/OsmandLightDarkActionBarTheme" -->
<application android:allowBackup="true" android:backupAgent="net.osmand.plus.OsmandBackupAgent"
android:icon="@drawable/icon" android:label="@string/app_name"
android:name="net.osmand.plus.OsmandApplication" android:configChanges="locale"
android:theme="@style/OsmandDarkTheme" android:restoreAnyVersion="true" android:largeHeap="true">
<application
android:name=".OsmandApplication"
android:allowBackup="true"
android:backupAgent=".OsmandBackupAgent"
android:configChanges="locale"
android:icon="@drawable/icon"
android:label="@string/app_name"
android:largeHeap="true"
android:restoreAnyVersion="true"
android:theme="@style/OsmandDarkTheme">
<meta-data
android:name="com.google.android.backup.api_key"
android:value="AEdPqrEAAAAIqF3tNGT66etVBn_vgzpfAY1wmIzKV1Ss6Ku-2A"/>
<meta-data
android:name="com.sec.android.support.multiwindow"
android:value="true"/>
<meta-data
android:name="com.sec.android.multiwindow.DEFAULT_SIZE_W"
android:resource="@dimen/app_defaultsize_w"
android:value=""/>
<meta-data
android:name="com.sec.android.multiwindow.DEFAULT_SIZE_H"
android:resource="@dimen/app_defaultsize_h"
android:value=""/>
<meta-data
android:name="com.sec.android.multiwindow.MINIMUM_SIZE_W"
android:resource="@dimen/app_minimumsize_w"
android:value=""/>
<meta-data
android:name="com.sec.android.multiwindow.MINIMUM_SIZE_H"
android:resource="@dimen/app_minimumsize_h"
android:value=""/>
<meta-data
android:name="com.sec.minimode.icon.portrait.normal"
android:resource="@drawable/icon"
android:value=""/>
<meta-data
android:name="com.sec.minimode.icon.landscape.normal"
android:resource="@drawable/icon"
android:value=""/>
<meta-data android:name="com.google.android.backup.api_key" android:value="AEdPqrEAAAAIqF3tNGT66etVBn_vgzpfAY1wmIzKV1Ss6Ku-2A" />
<meta-data android:name="com.sec.android.support.multiwindow" android:value="true" />
<meta-data android:name="com.sec.android.multiwindow.DEFAULT_SIZE_W" android:resource="@dimen/app_defaultsize_w" android:value="" />
<meta-data android:name="com.sec.android.multiwindow.DEFAULT_SIZE_H" android:resource="@dimen/app_defaultsize_h" android:value="" />
<meta-data android:name="com.sec.android.multiwindow.MINIMUM_SIZE_W" android:resource="@dimen/app_minimumsize_w" android:value="" />
<meta-data android:name="com.sec.android.multiwindow.MINIMUM_SIZE_H" android:resource="@dimen/app_minimumsize_h" android:value="" />
<meta-data android:name="com.sec.minimode.icon.portrait.normal" android:resource="@drawable/icon" android:value="" />
<meta-data android:name="com.sec.minimode.icon.landscape.normal" android:resource="@drawable/icon" android:value="" />
<activity android:name="net.osmand.plus.activities.HelpActivity" />
<activity android:name="net.osmand.plus.activities.ExitActivity" />
<activity android:name=".activities.HelpActivity"/>
<activity android:name=".activities.ExitActivity"/>
<provider
android:name="android.support.v4.content.FileProvider"
@ -69,27 +125,39 @@
android:resource="@xml/paths"/>
</provider>
<activity android:name="net.osmand.plus.activities.MapActivity" android:label="@string/app_name"
android:screenOrientation="unspecified" android:launchMode="singleTop">
<activity
android:name=".activities.MapActivity"
android:label="@string/app_name"
android:launchMode="singleTop"
android:screenOrientation="unspecified">
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<action android:name="android.intent.action.SEND"/>
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="content" android:host="*" android:mimeType="binary/octet-stream" />
<data android:scheme="content" android:host="*" android:mimeType="application/octet-stream" />
</intent-filter>
<category android:name="android.intent.category.DEFAULT"/>
<data
android:host="*"
android:mimeType="binary/octet-stream"
android:scheme="content"/>
<data
android:host="*"
android:mimeType="application/octet-stream"
android:scheme="content"/>
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
<category android:name="android.intent.category.MULTIWINDOW_LAUNCHER"/>
</intent-filter>
<intent-filter>
<data android:scheme="http"/>
<data android:host="osmand.net"/>
<data android:pathPrefix="/go"/>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE"/>
<category android:name="android.intent.category.APP_MAPS"/>
@ -97,12 +165,13 @@
<category android:name="android.intent.category.CAR_DOCK"/>
<category android:name="android.intent.category.DESK_DOCK"/>
</intent-filter>
<intent-filter>
<data android:scheme="https"/>
<data android:host="osmand.net"/>
<data android:pathPrefix="/go"/>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE"/>
<category android:name="android.intent.category.APP_MAPS"/>
@ -111,92 +180,178 @@
<category android:name="android.intent.category.DESK_DOCK"/>
</intent-filter>
<!-- android matches non-greedy : http://stackoverflow.com/questions/3400072/pathpattern-to-match-file-extension-does-not-work-if-a-period-exists-elsewhere-i -->
<!-- mimeType&host are both needed or you will either have unwanted matching or no match when needed -->
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<data android:scheme="file" android:host="*" android:mimeType="*/*" android:pathPattern=".*\\.gpx" />
<data android:scheme="file" android:host="*" android:mimeType="*/*" android:pathPattern=".*\\..*\\.gpx" />
<data android:scheme="file" android:host="*" android:mimeType="*/*" android:pathPattern=".*\\..*\\..*\\.gpx" />
<data android:scheme="file" android:host="*" android:mimeType="*/*" android:pathPattern=".*\\..*\\..*\\..*\\.gpx" />
<data android:scheme="file" android:host="*" android:mimeType="*/*" android:pathPattern=".*\\..*\\..*\\..*\\..*\\.gpx" />
<data android:scheme="file" android:host="*" android:mimeType="*/*" android:pathPattern=".*\\.kml" />
<data android:scheme="file" android:host="*" android:mimeType="*/*" android:pathPattern=".*\\..*\\.kml" />
<data android:scheme="file" android:host="*" android:mimeType="*/*" android:pathPattern=".*\\..*\\..*\\.kml" />
<data android:scheme="file" android:host="*" android:mimeType="*/*" android:pathPattern=".*\\..*\\..*\\..*\\.kml" />
<data android:scheme="file" android:host="*" android:mimeType="*/*" android:pathPattern=".*\\..*\\..*\\..*\\..*\\.kml" />
<data
android:host="*"
android:mimeType="*/*"
android:pathPattern=".*\\.gpx"
android:scheme="file"/>
<data
android:host="*"
android:mimeType="*/*"
android:pathPattern=".*\\..*\\.gpx"
android:scheme="file"/>
<data
android:host="*"
android:mimeType="*/*"
android:pathPattern=".*\\..*\\..*\\.gpx"
android:scheme="file"/>
<data
android:host="*"
android:mimeType="*/*"
android:pathPattern=".*\\..*\\..*\\..*\\.gpx"
android:scheme="file"/>
<data
android:host="*"
android:mimeType="*/*"
android:pathPattern=".*\\..*\\..*\\..*\\..*\\.gpx"
android:scheme="file"/>
<data
android:host="*"
android:mimeType="*/*"
android:pathPattern=".*\\.kml"
android:scheme="file"/>
<data
android:host="*"
android:mimeType="*/*"
android:pathPattern=".*\\..*\\.kml"
android:scheme="file"/>
<data
android:host="*"
android:mimeType="*/*"
android:pathPattern=".*\\..*\\..*\\.kml"
android:scheme="file"/>
<data
android:host="*"
android:mimeType="*/*"
android:pathPattern=".*\\..*\\..*\\..*\\.kml"
android:scheme="file"/>
<data
android:host="*"
android:mimeType="*/*"
android:pathPattern=".*\\..*\\..*\\..*\\..*\\.kml"
android:scheme="file"/>
</intent-filter>
<!-- google navigation intent -->
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<data android:scheme="google.navigation"/>
<data android:scheme="osmand.navigation"/>
</intent-filter>
</activity>
<receiver android:name="net.osmand.plus.audionotes.MediaRemoteControlReceiver">
<receiver android:name=".audionotes.MediaRemoteControlReceiver">
<intent-filter>
<action android:name="android.intent.action.CAMERA_BUTTON"/>
<action android:name="android.intent.action.MEDIA_BUTTON"/>
</intent-filter>
</receiver>
<activity android:name="net.osmand.plus.activities.SettingsActivity" android:label="@string/shared_string_settings" android:configChanges="keyboardHidden|orientation" />
<activity android:name="net.osmand.plus.activities.SettingsGeneralActivity" android:configChanges="keyboardHidden|orientation" />
<activity android:name="net.osmand.plus.activities.SettingsNavigationActivity" android:configChanges="keyboardHidden|orientation" />
<activity android:name="net.osmand.plus.monitoring.SettingsMonitoringActivity" android:configChanges="keyboardHidden|orientation" />
<activity android:name="net.osmand.plus.rastermaps.SettingsRasterMapsActivity" android:configChanges="keyboardHidden|orientation" />
<activity android:name="net.osmand.plus.routepointsnavigation.RoutePointsActivity" />
<activity android:name="net.osmand.plus.osmedit.SettingsOsmEditingActivity" android:configChanges="keyboardHidden|orientation" />
<activity android:name="net.osmand.plus.development.SettingsDevelopmentActivity" android:configChanges="keyboardHidden|orientation" />
<activity android:name="net.osmand.plus.audionotes.SettingsAudioVideoActivity" android:configChanges="keyboardHidden|orientation" />
<activity android:name="net.osmand.access.SettingsAccessibilityActivity" android:configChanges="keyboardHidden|orientation" />
<activity android:name="net.osmand.plus.activities.search.SearchActivity" android:label="@string/search_activity" />
<activity android:name="net.osmand.plus.activities.ShowRouteInfoActivity" android:label="@string/show_route" />
<activity android:name="net.osmand.plus.activities.FavoritesListActivity" android:label="@string/favourites_list_activity" />
<activity android:name=".myplaces.FavoritesActivity" android:windowSoftInputMode="adjustPan" />
<activity android:name="net.osmand.plus.activities.TrackActivity"/>
<activity android:name="net.osmand.plus.activities.PluginsActivity" />
<activity android:name="net.osmand.plus.activities.PluginActivity" />
<activity android:name="net.osmand.plus.activities.ContributionVersionActivity" android:configChanges="keyboardHidden|orientation" android:label="@string/contribution_activity" />
<activity android:name="net.osmand.plus.osmo.SettingsOsMoActivity" android:configChanges="keyboardHidden|orientation" />
<activity android:name="net.osmand.plus.osmo.OsMoGroupsActivity">
<activity
android:name=".activities.SettingsActivity"
android:configChanges="keyboardHidden|orientation"
android:label="@string/shared_string_settings"/>
<activity
android:name=".activities.SettingsGeneralActivity"
android:configChanges="keyboardHidden|orientation"/>
<activity
android:name=".activities.SettingsNavigationActivity"
android:configChanges="keyboardHidden|orientation"/>
<activity
android:name=".monitoring.SettingsMonitoringActivity"
android:configChanges="keyboardHidden|orientation"/>
<activity
android:name=".rastermaps.SettingsRasterMapsActivity"
android:configChanges="keyboardHidden|orientation"/>
<activity android:name=".routepointsnavigation.RoutePointsActivity"/>
<activity
android:name=".osmedit.SettingsOsmEditingActivity"
android:configChanges="keyboardHidden|orientation"/>
<activity
android:name=".development.SettingsDevelopmentActivity"
android:configChanges="keyboardHidden|orientation"/>
<activity
android:name=".audionotes.SettingsAudioVideoActivity"
android:configChanges="keyboardHidden|orientation"/>
<activity
android:name="net.osmand.access.SettingsAccessibilityActivity"
android:configChanges="keyboardHidden|orientation"/>
<activity
android:name=".activities.search.SearchActivity"
android:label="@string/search_activity"/>
<activity
android:name=".activities.ShowRouteInfoActivity"
android:label="@string/show_route"/>
<activity
android:name=".activities.FavoritesListActivity"
android:label="@string/favourites_list_activity"/>
<activity
android:name=".myplaces.FavoritesActivity"
android:windowSoftInputMode="adjustPan"/>
<activity android:name=".activities.TrackActivity"/>
<activity android:name=".activities.PluginsActivity"/>
<activity android:name=".activities.PluginActivity"/>
<activity
android:name=".activities.ContributionVersionActivity"
android:configChanges="keyboardHidden|orientation"
android:label="@string/contribution_activity"/>
<activity
android:name=".osmo.SettingsOsMoActivity"
android:configChanges="keyboardHidden|orientation"/>
<activity android:name=".osmo.OsMoGroupsActivity">
<intent-filter>
<data android:scheme="http" android:host="z.osmo.mobi" />
<data
android:host="z.osmo.mobi"
android:scheme="http"/>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE"/>
</intent-filter>
</activity>
<activity android:name="net.osmand.plus.activities.search.SearchPOIActivity" android:label="@string/searchpoi_activity" />
<activity android:name="net.osmand.plus.activities.search.SearchAddressActivity" android:label="@string/select_address_activity" />
<activity android:name="net.osmand.plus.activities.search.SearchCityByNameActivity" />
<activity android:name="net.osmand.plus.activities.search.SearchRegionByNameActivity" />
<activity android:name="net.osmand.plus.activities.search.SearchStreetByNameActivity" />
<activity android:name="net.osmand.plus.activities.search.SearchStreet2ByNameActivity" />
<activity android:name="net.osmand.plus.activities.search.SearchBuildingByNameActivity" />
<activity android:name="net.osmand.plus.sherpafy.TourViewActivity" android:exported="true"
android:launchMode= "singleInstance" android:label="Sherpafy" />
<activity android:name="net.osmand.plus.activities.EditPOIFilterActivity" />
<activity android:name="net.osmand.plus.activities.search.GeoIntentActivity" android:label="@string/app_name">
<activity
android:name=".activities.search.SearchPOIActivity"
android:label="@string/searchpoi_activity"/>
<activity
android:name=".activities.search.SearchAddressActivity"
android:label="@string/select_address_activity"/>
<activity android:name=".activities.search.SearchCityByNameActivity"/>
<activity android:name=".activities.search.SearchRegionByNameActivity"/>
<activity android:name=".activities.search.SearchStreetByNameActivity"/>
<activity android:name=".activities.search.SearchStreet2ByNameActivity"/>
<activity android:name=".activities.search.SearchBuildingByNameActivity"/>
<activity
android:name=".sherpafy.TourViewActivity"
android:exported="true"
android:label="Sherpafy"
android:launchMode="singleInstance"/>
<activity android:name=".activities.EditPOIFilterActivity"/>
<activity
android:name=".activities.search.GeoIntentActivity"
android:label="@string/app_name">
<intent-filter>
<data android:scheme="osmand.geo"/>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
<intent-filter>
<data android:scheme="geo"/>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE"/>
</intent-filter>
@ -219,28 +374,54 @@
<data android:host="map.wap.qq.com"/>
<data android:host="map.qq.com"/>
<data android:host="maps.apple.com"/>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE"/>
</intent-filter>
<intent-filter>
<data android:scheme="http" android:host="www.google.com" android:pathPrefix="/maps" />
<data android:scheme="https" android:host="www.google.com" android:pathPrefix="/maps" />
<data
android:host="www.google.com"
android:pathPrefix="/maps"
android:scheme="http"/>
<data
android:host="www.google.com"
android:pathPrefix="/maps"
android:scheme="https"/>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE"/>
</intent-filter>
<intent-filter>
<data android:scheme="http" android:host="openstreetmap.de" android:pathPrefix="/karte" />
<data android:scheme="https" android:host="openstreetmap.de" android:pathPrefix="/karte" />
<data
android:host="openstreetmap.de"
android:pathPrefix="/karte"
android:scheme="http"/>
<data
android:host="openstreetmap.de"
android:pathPrefix="/karte"
android:scheme="https"/>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE"/>
</intent-filter>
<intent-filter>
<data android:scheme="http" android:host="download.osmand.net" android:pathPrefix="/go" />
<data android:scheme="http" android:host="download.osmand.net" android:pathPrefix="go" />
<data
android:host="download.osmand.net"
android:pathPrefix="/go"
android:scheme="http"/>
<data
android:host="download.osmand.net"
android:pathPrefix="go"
android:scheme="http"/>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE"/>
<category android:name="android.intent.category.APP_MAPS"/>
@ -257,26 +438,28 @@
</intent-filter>
-->
</activity>
<activity android:name="net.osmand.plus.development.TestVoiceActivity" />
<activity android:name="net.osmand.plus.download.DownloadActivity" android:label="" />
<activity android:name=".development.TestVoiceActivity"/>
<activity
android:name=".download.DownloadActivity"
android:label=""/>
<!-- keep android:process on a separate line !! -->
<service
android:process="net.osmand.plus"
android:name=".NavigationService"
android:label="@string/process_navigation_service"
android:name="net.osmand.plus.NavigationService"
android:process="net.osmand.plus"
android:stopWithTask="false">
<intent-filter>
<action android:name="net.osmand.plus.NavigationService"/>
</intent-filter>
</service>
<receiver android:name="net.osmand.plus.OnNavigationServiceAlarmReceiver" />
<activity android:name="net.osmand.plus.activities.PrintDialogActivity" />
<receiver android:name=".OnNavigationServiceAlarmReceiver"/>
<activity android:name=".activities.PrintDialogActivity"/>
<receiver
android:name="net.osmand.plus.DeviceAdminRecv"
android:name=".DeviceAdminRecv"
android:label="@string/app_name"
android:permission="android.permission.BIND_DEVICE_ADMIN">
<meta-data
@ -288,5 +471,9 @@
<action android:name="android.app.action.DEVICE_ADMIN_DISABLED"/>
</intent-filter>
</receiver>
<activity android:name=".liveupdates.LivieUpdatesActivity">
</activity>
</application>
</manifest>

View file

@ -0,0 +1,28 @@
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="?attr/spinnerListBackground"
android:clickable="true"
android:orientation="vertical"
tools:context="net.osmand.plus.osmedit.EditPoiDialogFragment">
<android.support.design.widget.TabLayout
android:id="@+id/tab_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?attr/bg_color"
app:layout_scrollFlags="scroll"
app:tabIndicatorColor="?attr/pstsIndicatorColor"
app:tabSelectedTextColor="?attr/pstsIndicatorColor"
app:tabTextColor="@android:color/darker_gray"/>
<android.support.v4.view.ViewPager
android:id="@+id/viewpager"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior"/>
</LinearLayout>

View file

@ -0,0 +1,106 @@
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto"
tools:context=".liveupdates.LiveUpdatesFragment">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<net.osmand.plus.widgets.TextViewEx
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="@string/shared_string_on"
app:textAllCapsCompat="true"/>
<include
layout="@layout/check_item_rel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="14dp"
android:layout_marginRight="14dp"
android:layout_marginTop="14dp"
android:background="?attr/bg_card"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:minHeight="44dp"
android:layout_height="wrap_content"
android:gravity="center">
<net.osmand.plus.widgets.TextViewEx
android:layout_width="120dp"
android:layout_height="wrap_content"
android:layout_marginLeft="16dp"
android:layout_marginRight="16dp"
android:text="Subscription status"
android:textColor="?android:attr/textColorPrimary"
android:textSize="@dimen/default_desc_text_size"
app:typeface="@string/font_roboto_regular"/>
<net.osmand.plus.widgets.TextViewEx
android:text="Work"
android:id="@+id/nameTextView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="16dp"
android:layout_marginRight="16dp"
android:layout_marginTop="4dp"
android:layout_marginBottom="4dp"
android:textColor="?android:attr/textColorPrimary"
android:textSize="@dimen/default_desc_text_size"
app:typeface="@string/font_roboto_medium"
tools:text="very very very long poi name"/>
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="?attr/dashboard_divider"/>
<LinearLayout
android:layout_width="match_parent"
android:minHeight="44dp"
android:layout_height="wrap_content"
android:gravity="center">
<net.osmand.plus.widgets.TextViewEx
android:id="@+id/amenityTagTextView"
android:layout_width="120dp"
android:layout_height="wrap_content"
android:layout_marginLeft="16dp"
android:layout_marginRight="16dp"
android:text="@string/tag_poi_amenity"
android:textColor="?android:attr/textColorPrimary"
android:textSize="@dimen/default_desc_text_size"
app:typeface="@string/font_roboto_regular"/>
<View
android:layout_width="1dp"
android:layout_height="match_parent"
android:background="?attr/dashboard_divider"/>
<net.osmand.plus.widgets.TextViewEx
android:id="@+id/amenityTextView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="16dp"
android:layout_marginRight="16dp"
android:textColor="?android:attr/textColorPrimary"
android:textSize="@dimen/default_desc_text_size"
app:typeface="@string/font_roboto_medium"
tools:text="landmark"/>
</LinearLayout>
</LinearLayout>
</LinearLayout>

View file

@ -441,7 +441,7 @@
<string name="navigate_point_zone">Zone</string>
<string name="navigate_point_northing">Northing</string>
<string name="navigate_point_easting">Easting</string>
<string name="download_tab_downloads">All Downloads</string>
<string name="download_tab_downloads">All Downloads</string>
<string name="download_tab_updates">Updates</string>
<string name="download_tab_local">Local</string>
<string name="no_internet_connection">Downloading not possible, please check your Internet connection.</string>

View file

@ -0,0 +1,31 @@
package net.osmand.plus.liveupdates;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import net.osmand.plus.R;
/**
* A simple {@link Fragment} subclass.
* Use the {@link LiveUpdatesFragment#newInstance} factory method to
* create an instance of this fragment.
*/
public class LiveUpdatesFragment extends Fragment {
public static final String TITILE = "Live Updates";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment_live_updates, container, false);
}
}

View file

@ -0,0 +1,56 @@
package net.osmand.plus.liveupdates;
import android.os.Bundle;
import android.support.design.widget.TabLayout;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import net.osmand.plus.R;
import net.osmand.plus.activities.OsmandActionBarActivity;
public class LivieUpdatesActivity extends OsmandActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_livie_updates);
ViewPager viewPager = (ViewPager) findViewById(R.id.viewpager);
String basicTitle = getResources().getString(R.string.tab_title_basic);
String extendedTitle = getResources().getString(R.string.tab_title_advanced);
final MyAdapter pagerAdapter = new MyAdapter(getSupportFragmentManager());
viewPager.setAdapter(pagerAdapter);
final TabLayout tabLayout = (TabLayout) findViewById(R.id.tab_layout);
tabLayout.setTabMode(TabLayout.MODE_SCROLLABLE);
tabLayout.setupWithViewPager(viewPager);
}
public static class MyAdapter extends FragmentPagerAdapter {
private final Fragment[] fragments = new Fragment[]{new LiveUpdatesFragment()};
private final String[] titles = new String[] {LiveUpdatesFragment.TITILE};
public MyAdapter(FragmentManager fm) {
super(fm);
}
@Override
public int getCount() {
return fragments.length;
}
@Override
public Fragment getItem(int position) {
return fragments[position];
}
@Override
public CharSequence getPageTitle(int position) {
return titles[position];
}
}
}

View file

@ -44,6 +44,7 @@ import net.osmand.plus.activities.search.SearchActivity;
import net.osmand.plus.dashboard.DashboardOnMap.DashboardType;
import net.osmand.plus.dialogs.FavoriteDialogs;
import net.osmand.plus.download.IndexItem;
import net.osmand.plus.liveupdates.LivieUpdatesActivity;
import net.osmand.plus.routing.RouteProvider.GPXRouteParamsBuilder;
import net.osmand.plus.routing.RoutingHelper;
import net.osmand.plus.views.BaseMapLayer;
@ -645,6 +646,15 @@ public class MapActivityActions implements DialogProvider {
return false;
}
}).reg();
optionsMenuHelper.item(R.string.download_live_updates).iconColor(R.drawable.ic_configure_screen_dark)
.listen(new OnContextMenuClick() {
@Override
public boolean onContextMenuClick(ArrayAdapter<?> adapter, int itemId, int pos, boolean isChecked) {
Intent intent = new Intent(mapActivity, LivieUpdatesActivity.class);
mapActivity.startActivity(intent);
return false;
}
}).reg();
String d = getString(R.string.index_settings);
if (app.getDownloadThread().getIndexes().isDownloadedFromInternet) {
List<IndexItem> updt = app.getDownloadThread().getIndexes().getItemsToUpdate();