Version 3.0.350
BIN
LastenradBayern/TINK.Android/Assets/Location_Pin.png
Normal file
After Width: | Height: | Size: 1.8 KiB |
|
@ -16,7 +16,7 @@
|
||||||
<AndroidResgenFile>Resources\Resource.Designer.cs</AndroidResgenFile>
|
<AndroidResgenFile>Resources\Resource.Designer.cs</AndroidResgenFile>
|
||||||
<GenerateSerializationAssemblies>Off</GenerateSerializationAssemblies>
|
<GenerateSerializationAssemblies>Off</GenerateSerializationAssemblies>
|
||||||
<AndroidManifest>Properties\AndroidManifest.xml</AndroidManifest>
|
<AndroidManifest>Properties\AndroidManifest.xml</AndroidManifest>
|
||||||
<TargetFrameworkVersion>v11.0</TargetFrameworkVersion>
|
<TargetFrameworkVersion>v12.0</TargetFrameworkVersion>
|
||||||
<AndroidStoreUncompressedFileExtensions />
|
<AndroidStoreUncompressedFileExtensions />
|
||||||
<MandroidI18n />
|
<MandroidI18n />
|
||||||
<JavaMaximumHeapSize>2G</JavaMaximumHeapSize>
|
<JavaMaximumHeapSize>2G</JavaMaximumHeapSize>
|
||||||
|
@ -77,7 +77,7 @@
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="Microsoft.CSharp" Version="4.7.0" />
|
<PackageReference Include="Microsoft.CSharp" Version="4.7.0" />
|
||||||
<PackageReference Include="Microsoft.NETCore.Platforms" Version="6.0.5" />
|
<PackageReference Include="Microsoft.NETCore.Platforms" Version="7.0.0" />
|
||||||
<PackageReference Include="Microsoft.Win32.Primitives" Version="4.3.0" />
|
<PackageReference Include="Microsoft.Win32.Primitives" Version="4.3.0" />
|
||||||
<PackageReference Include="MonkeyCache">
|
<PackageReference Include="MonkeyCache">
|
||||||
<Version>1.6.3</Version>
|
<Version>1.6.3</Version>
|
||||||
|
@ -97,7 +97,7 @@
|
||||||
<Version>6.3.0.19</Version>
|
<Version>6.3.0.19</Version>
|
||||||
</PackageReference>
|
</PackageReference>
|
||||||
<PackageReference Include="Serilog">
|
<PackageReference Include="Serilog">
|
||||||
<Version>2.11.0</Version>
|
<Version>2.12.0</Version>
|
||||||
</PackageReference>
|
</PackageReference>
|
||||||
<PackageReference Include="Serilog.Sinks.File" Version="5.0.0" />
|
<PackageReference Include="Serilog.Sinks.File" Version="5.0.0" />
|
||||||
<PackageReference Include="Serilog.Sinks.Xamarin" Version="1.0.0" />
|
<PackageReference Include="Serilog.Sinks.Xamarin" Version="1.0.0" />
|
||||||
|
@ -176,21 +176,21 @@
|
||||||
<PackageReference Include="Xamarin.Android.Support.v7.RecyclerView" Version="28.0.0.3" />
|
<PackageReference Include="Xamarin.Android.Support.v7.RecyclerView" Version="28.0.0.3" />
|
||||||
<PackageReference Include="Xamarin.Android.Support.Vector.Drawable" Version="28.0.0.3" />
|
<PackageReference Include="Xamarin.Android.Support.Vector.Drawable" Version="28.0.0.3" />
|
||||||
<PackageReference Include="Xamarin.AndroidX.Core">
|
<PackageReference Include="Xamarin.AndroidX.Core">
|
||||||
<Version>1.6.0.3</Version>
|
<Version>1.9.0.1</Version>
|
||||||
</PackageReference>
|
</PackageReference>
|
||||||
<PackageReference Include="Xamarin.AndroidX.MediaRouter">
|
<PackageReference Include="Xamarin.AndroidX.MediaRouter">
|
||||||
<Version>1.2.5.2</Version>
|
<Version>1.3.1.1</Version>
|
||||||
</PackageReference>
|
</PackageReference>
|
||||||
<PackageReference Include="Xamarin.AndroidX.Palette">
|
<PackageReference Include="Xamarin.AndroidX.Palette">
|
||||||
<Version>1.0.0.10</Version>
|
<Version>1.0.0.15</Version>
|
||||||
</PackageReference>
|
</PackageReference>
|
||||||
<PackageReference Include="Xamarin.AndroidX.RecyclerView">
|
<PackageReference Include="Xamarin.AndroidX.RecyclerView">
|
||||||
<Version>1.2.1.3</Version>
|
<Version>1.2.1.8</Version>
|
||||||
</PackageReference>
|
</PackageReference>
|
||||||
<PackageReference Include="Xamarin.Auth" Version="1.7.0" />
|
<PackageReference Include="Xamarin.Auth" Version="1.7.0" />
|
||||||
<PackageReference Include="Xamarin.Build.Download" Version="0.11.3" />
|
<PackageReference Include="Xamarin.Build.Download" Version="0.11.3" />
|
||||||
<PackageReference Include="Xamarin.CommunityToolkit">
|
<PackageReference Include="Xamarin.CommunityToolkit">
|
||||||
<Version>2.0.4</Version>
|
<Version>2.0.5</Version>
|
||||||
</PackageReference>
|
</PackageReference>
|
||||||
<PackageReference Include="Xamarin.Essentials">
|
<PackageReference Include="Xamarin.Essentials">
|
||||||
<Version>1.7.3</Version>
|
<Version>1.7.3</Version>
|
||||||
|
@ -200,13 +200,13 @@
|
||||||
<Version>5.0.0.2515</Version>
|
<Version>5.0.0.2515</Version>
|
||||||
</PackageReference>
|
</PackageReference>
|
||||||
<PackageReference Include="Xamarin.Forms.GoogleMaps">
|
<PackageReference Include="Xamarin.Forms.GoogleMaps">
|
||||||
<Version>3.3.0</Version>
|
<Version>5.0.0</Version>
|
||||||
</PackageReference>
|
</PackageReference>
|
||||||
<PackageReference Include="Xamarin.Forms.GoogleMaps.Bindings" Version="3.0.0" />
|
<PackageReference Include="Xamarin.Forms.GoogleMaps.Bindings" Version="3.0.0" />
|
||||||
<PackageReference Include="Xamarin.GooglePlayServices.Base" Version="117.6.0.1" />
|
<PackageReference Include="Xamarin.GooglePlayServices.Base" Version="118.1.0" />
|
||||||
<PackageReference Include="Xamarin.GooglePlayServices.Basement" Version="117.6.0.2" />
|
<PackageReference Include="Xamarin.GooglePlayServices.Basement" Version="118.1.0" />
|
||||||
<PackageReference Include="Xamarin.GooglePlayServices.Maps" Version="117.0.1.1" />
|
<PackageReference Include="Xamarin.GooglePlayServices.Maps" Version="118.1.0" />
|
||||||
<PackageReference Include="Xamarin.GooglePlayServices.Tasks" Version="117.2.1.1" />
|
<PackageReference Include="Xamarin.GooglePlayServices.Tasks" Version="118.0.2" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Reference Include="Mono.Android" />
|
<Reference Include="Mono.Android" />
|
||||||
|
@ -283,6 +283,9 @@
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<AndroidAsset Include="Assets\Open_Red.png" />
|
<AndroidAsset Include="Assets\Open_Red.png" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<AndroidAsset Include="Assets\Location_Pin.png" />
|
||||||
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<AndroidResource Include="Resources\drawable\battery_undefined.png" />
|
<AndroidResource Include="Resources\drawable\battery_undefined.png" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
@ -342,6 +345,11 @@
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<AndroidResource Include="Resources\drawable-xxxhdpi\sharee_no_background.png" />
|
<AndroidResource Include="Resources\drawable-xxxhdpi\sharee_no_background.png" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<AndroidResource Include="Resources\drawable\Location_Button.png">
|
||||||
|
<Generator>MSBuild:UpdateGeneratedFiles</Generator>
|
||||||
|
</AndroidResource>
|
||||||
|
</ItemGroup>
|
||||||
<Import Project="..\TINK\LastenradBayern.projitems" Label="Shared" Condition="Exists('..\TINK\LastenradBayern.projitems')" />
|
<Import Project="..\TINK\LastenradBayern.projitems" Label="Shared" Condition="Exists('..\TINK\LastenradBayern.projitems')" />
|
||||||
<Import Project="..\..\ShareeSharedGuiLib\ShareeSharedGuiLib.projitems" Label="Shared" />
|
<Import Project="..\..\ShareeSharedGuiLib\ShareeSharedGuiLib.projitems" Label="Shared" />
|
||||||
<Import Project="$(MSBuildExtensionsPath)\Xamarin\Android\Xamarin.Android.CSharp.targets" />
|
<Import Project="$(MSBuildExtensionsPath)\Xamarin\Android\Xamarin.Android.CSharp.targets" />
|
||||||
|
|
|
@ -1,19 +1,28 @@
|
||||||
|
|
||||||
|
using System.Collections.Generic;
|
||||||
using Android.App;
|
using Android.App;
|
||||||
using Android.Content;
|
using Android.Content;
|
||||||
using Android.Content.PM;
|
using Android.Content.PM;
|
||||||
using Android.Content.Res;
|
using Android.Content.Res;
|
||||||
using Android.OS;
|
using Android.OS;
|
||||||
|
using Android.Runtime;
|
||||||
using Android.Util;
|
using Android.Util;
|
||||||
using Firebase;
|
using Firebase;
|
||||||
using Java.Interop;
|
using Java.Interop;
|
||||||
using Plugin.Permissions;
|
using Plugin.Permissions;
|
||||||
using TINK.Model;
|
using TINK.Model;
|
||||||
|
using Xamarin.Essentials;
|
||||||
using Xamarin.Forms.Platform.Android.AppLinks;
|
using Xamarin.Forms.Platform.Android.AppLinks;
|
||||||
|
using static Xamarin.Essentials.Permissions;
|
||||||
|
|
||||||
namespace TINK.Droid
|
namespace TINK.Droid
|
||||||
{
|
{
|
||||||
[Activity(Label = "LastenradBayern", Icon = "@drawable/sharee", Theme = "@style/MainTheme", MainLauncher = true, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation)]
|
[Activity(
|
||||||
|
Label = "LastenradBayern",
|
||||||
|
Icon = "@drawable/sharee",
|
||||||
|
Theme = "@style/MainTheme",
|
||||||
|
MainLauncher = true,
|
||||||
|
ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation)]
|
||||||
|
|
||||||
[IntentFilter(new[] { Intent.ActionView },
|
[IntentFilter(new[] { Intent.ActionView },
|
||||||
Categories = new[] { Intent.ActionView, Intent.CategoryBrowsable, Intent.CategoryDefault },
|
Categories = new[] { Intent.ActionView, Intent.CategoryBrowsable, Intent.CategoryDefault },
|
||||||
|
@ -41,7 +50,7 @@ namespace TINK.Droid
|
||||||
metrics.ScaledDensity = configuration.FontScale * metrics.Density;
|
metrics.ScaledDensity = configuration.FontScale * metrics.Density;
|
||||||
BaseContext.Resources.UpdateConfiguration(configuration, metrics);
|
BaseContext.Resources.UpdateConfiguration(configuration, metrics);
|
||||||
}
|
}
|
||||||
protected override void OnCreate(Bundle bundle)
|
protected override async void OnCreate(Bundle bundle)
|
||||||
{
|
{
|
||||||
initFontScale();
|
initFontScale();
|
||||||
|
|
||||||
|
@ -76,28 +85,54 @@ namespace TINK.Droid
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
await Permissions.RequestAsync<BLEAndLocationPermissions>();
|
||||||
|
|
||||||
LoadApplication(new App());
|
LoadApplication(new App());
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
//Bluetooth Permission on Android 12 "Detect Devices nearby"
|
||||||
|
// https://stackoverflow.com/questions/71028853/xamarin-forms-ble-plugin-scan-issue-android-12
|
||||||
|
public class BLEAndLocationPermissions : BasePlatformPermission
|
||||||
|
{
|
||||||
|
public override (string androidPermission, bool isRuntime)[] RequiredPermissions => new List<(string androidPermission, bool isRuntime)>
|
||||||
|
{
|
||||||
|
(Android.Manifest.Permission.BluetoothScan, true),
|
||||||
|
(Android.Manifest.Permission.BluetoothConnect, true),
|
||||||
|
(Android.Manifest.Permission.AccessFineLocation, true)
|
||||||
|
}.ToArray();
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Handles opening the dialog to request for permissions.
|
/// Handles opening the dialog to request for permissions.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public override void OnRequestPermissionsResult(int requestCode, string[] permissions, Android.Content.PM.Permission[] grantResults)
|
public override void OnRequestPermissionsResult(int requestCode, string[] permissions, [GeneratedEnum] Android.Content.PM.Permission[] grantResults)
|
||||||
{
|
{
|
||||||
if (App.PermissionsService.GetType() == typeof(TINK.Services.Permissions.Essentials.Permissions))
|
Xamarin.Essentials.Platform.OnRequestPermissionsResult(requestCode, permissions, grantResults);
|
||||||
{
|
PermissionsImplementation.Current.OnRequestPermissionsResult(requestCode, permissions, grantResults);
|
||||||
Xamarin.Essentials.Platform.OnRequestPermissionsResult(requestCode, permissions, grantResults);
|
|
||||||
}
|
|
||||||
else if (App.PermissionsService.GetType() == typeof(TINK.Services.Permissions.Plugin.Permissions))
|
|
||||||
{
|
|
||||||
// Bug in 3.0.244 and earlier versions of sharee.bike app: Call of PermissionsImplementation.Current.OnRequestedPermission result was missing.
|
|
||||||
// see https://dev.azure.com/TeilRad/sharee.bike%20Buchungsplattform/_workitems/edit/136 for further details.
|
|
||||||
PermissionsImplementation.Current.OnRequestPermissionsResult(requestCode, permissions, grantResults);
|
|
||||||
}
|
|
||||||
|
|
||||||
base.OnRequestPermissionsResult(requestCode, permissions, grantResults);
|
base.OnRequestPermissionsResult(requestCode, permissions, grantResults);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Handles opening the dialog to request for permissions.
|
||||||
|
/// </summary>
|
||||||
|
//public override void OnRequestPermissionsResult(int requestCode, string[] permissions, Android.Content.PM.Permission[] grantResults)
|
||||||
|
//{
|
||||||
|
// if (App.PermissionsService.GetType() == typeof(TINK.Services.Permissions.Essentials.Permissions))
|
||||||
|
// {
|
||||||
|
// Xamarin.Essentials.Platform.OnRequestPermissionsResult(requestCode, permissions, grantResults);
|
||||||
|
// }
|
||||||
|
// else if (App.PermissionsService.GetType() == typeof(TINK.Services.Permissions.Plugin.Permissions))
|
||||||
|
// {
|
||||||
|
// // Bug in 3.0.244 and earlier versions of sharee.bike app: Call of PermissionsImplementation.Current.OnRequestedPermission result was missing.
|
||||||
|
// // see https://dev.azure.com/TeilRad/sharee.bike%20Buchungsplattform/_workitems/edit/136 for further details.
|
||||||
|
// PermissionsImplementation.Current.OnRequestPermissionsResult(requestCode, permissions, grantResults);
|
||||||
|
// }
|
||||||
|
|
||||||
|
// base.OnRequestPermissionsResult(requestCode, permissions, grantResults);
|
||||||
|
//}
|
||||||
|
|
||||||
[Export("TapStation")]
|
[Export("TapStation")]
|
||||||
public void TapStation(string stationNr)
|
public void TapStation(string stationNr)
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:installLocation="internalOnly" package="com.TeilRad.LastenradBayern" android:versionName="3.0.347" android:versionCode="347">
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:installLocation="internalOnly" package="com.TeilRad.LastenradBayern" android:versionName="3.0.350" android:versionCode="350">
|
||||||
<uses-sdk android:minSdkVersion="19" android:targetSdkVersion="30" />
|
<uses-sdk android:minSdkVersion="19" android:targetSdkVersion="31" />
|
||||||
<!-- Google Maps related permissions -->
|
<!-- Google Maps related permissions -->
|
||||||
<!-- Permission to receive remote notifications from Google Play Services -->
|
<!-- Permission to receive remote notifications from Google Play Services -->
|
||||||
<!-- Notice here that we have the package name of our application as a prefix on the permissions. -->
|
<!-- Notice here that we have the package name of our application as a prefix on the permissions. -->
|
||||||
|
@ -9,13 +9,18 @@
|
||||||
<!-- Access Google based webservices -->
|
<!-- Access Google based webservices -->
|
||||||
<!-- External storage for caching. -->
|
<!-- External storage for caching. -->
|
||||||
<!-- My Location -->
|
<!-- My Location -->
|
||||||
<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_FINE_LOCATION" />
|
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
|
||||||
|
<uses-permission android:name="android.permission.BLUETOOTH"
|
||||||
|
android:maxSdkVersion="30" />
|
||||||
|
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"
|
||||||
|
android:maxSdkVersion="30" />
|
||||||
|
<uses-permission android:name="android.permission.BLUETOOTH_SCAN"
|
||||||
|
android:usesPermissionFlags="neverForLocation" />
|
||||||
|
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
|
||||||
<uses-feature android:name="android.hardware.location" android:required="false" />
|
<uses-feature android:name="android.hardware.location" android:required="false" />
|
||||||
<uses-feature android:name="android.hardware.location.gps" android:required="false" />
|
<uses-feature android:name="android.hardware.location.gps" android:required="false" />
|
||||||
<uses-feature android:name="android.hardware.location.network" android:required="false" />
|
<uses-feature android:name="android.hardware.location.network" android:required="false" />
|
||||||
<uses-permission android:name="android.permission.BLUETOOTH" />
|
|
||||||
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
|
|
||||||
<uses-feature android:name="android.hardware.bluetooth_le" android:required="true" />
|
<uses-feature android:name="android.hardware.bluetooth_le" android:required="true" />
|
||||||
<application android:icon="@drawable/sharee" android:label="LastenradBayern" android:allowBackup="false"></application>
|
<application android:icon="@drawable/sharee" android:label="LastenradBayern" android:allowBackup="false"></application>
|
||||||
<queries>
|
<queries>
|
||||||
|
@ -33,4 +38,4 @@
|
||||||
</intent>
|
</intent>
|
||||||
</queries>
|
</queries>
|
||||||
<meta-data android:name="com.google.android.geo.API_KEY" android:value="000000000000000000000000000000000000000" />
|
<meta-data android:name="com.google.android.geo.API_KEY" android:value="000000000000000000000000000000000000000" />
|
||||||
</manifest>
|
</manifest>
|
||||||
|
|
5539
LastenradBayern/TINK.Android/Resources/Resource.Designer.cs
generated
After Width: | Height: | Size: 1.8 KiB |
|
@ -1,4 +1,4 @@
|
||||||
using Foundation;
|
using Foundation;
|
||||||
using UIKit;
|
using UIKit;
|
||||||
using Xamarin.Forms;
|
using Xamarin.Forms;
|
||||||
|
|
||||||
|
@ -24,6 +24,9 @@ namespace TINK.iOS
|
||||||
//Color of Icons in Navigation bar (e.g. burger menu and back arrow)
|
//Color of Icons in Navigation bar (e.g. burger menu and back arrow)
|
||||||
//UINavigationBar.Appearance.TintColor = Color.White.ToUIColor();
|
//UINavigationBar.Appearance.TintColor = Color.White.ToUIColor();
|
||||||
|
|
||||||
|
//Color of Switch
|
||||||
|
//UISwitch.Appearance.OnTintColor = UIColor.LightGray;
|
||||||
|
|
||||||
new iOS.Device.AppInfo(NSBundle.MainBundle.InfoDictionary[new NSString("CFBundleShortVersionString")]?.ToString() ?? string.Empty);
|
new iOS.Device.AppInfo(NSBundle.MainBundle.InfoDictionary[new NSString("CFBundleShortVersionString")]?.ToString() ?? string.Empty);
|
||||||
|
|
||||||
Forms.ViewInitialized += (object sender, ViewInitializedEventArgs e) =>
|
Forms.ViewInitialized += (object sender, ViewInitializedEventArgs e) =>
|
||||||
|
|
|
@ -55,8 +55,8 @@
|
||||||
<key>CFBundleDisplayName</key>
|
<key>CFBundleDisplayName</key>
|
||||||
<string>LastenradBayern</string>
|
<string>LastenradBayern</string>
|
||||||
<key>CFBundleVersion</key>
|
<key>CFBundleVersion</key>
|
||||||
<string>347</string>
|
<string>350</string>
|
||||||
<key>CFBundleShortVersionString</key>
|
<key>CFBundleShortVersionString</key>
|
||||||
<string>3.0.347</string>
|
<string>3.0.350</string>
|
||||||
</dict>
|
</dict>
|
||||||
</plist>
|
</plist>
|
||||||
|
|
|
@ -319,6 +319,18 @@
|
||||||
<ImageAsset Include="Media.xcassets\Open_Red.imageset\StationMarkerOpenRed.pdf">
|
<ImageAsset Include="Media.xcassets\Open_Red.imageset\StationMarkerOpenRed.pdf">
|
||||||
<Visible>false</Visible>
|
<Visible>false</Visible>
|
||||||
</ImageAsset>
|
</ImageAsset>
|
||||||
|
<ImageAsset Include="Media.xcassets\Location_Pin.imageset\Contents.json">
|
||||||
|
<Visible>false</Visible>
|
||||||
|
</ImageAsset>
|
||||||
|
<ImageAsset Include="Media.xcassets\Location_Pin.imageset\Location_Pin.pdf">
|
||||||
|
<Visible>false</Visible>
|
||||||
|
</ImageAsset>
|
||||||
|
<ImageAsset Include="Media.xcassets\Location_Button.imageset\Contents.json">
|
||||||
|
<Visible>false</Visible>
|
||||||
|
</ImageAsset>
|
||||||
|
<ImageAsset Include="Media.xcassets\Location_Button.imageset\Location_Button.svg">
|
||||||
|
<Visible>false</Visible>
|
||||||
|
</ImageAsset>
|
||||||
<ImageAsset Include="Media.xcassets\AppIcons.appiconset\Icon-40.png">
|
<ImageAsset Include="Media.xcassets\AppIcons.appiconset\Icon-40.png">
|
||||||
<Visible>false</Visible>
|
<Visible>false</Visible>
|
||||||
</ImageAsset>
|
</ImageAsset>
|
||||||
|
@ -435,6 +447,8 @@
|
||||||
<Folder Include="Media.xcassets\Open_Green.imageset\" />
|
<Folder Include="Media.xcassets\Open_Green.imageset\" />
|
||||||
<Folder Include="Media.xcassets\Open_LightBlue.imageset\" />
|
<Folder Include="Media.xcassets\Open_LightBlue.imageset\" />
|
||||||
<Folder Include="Media.xcassets\Open_Red.imageset\" />
|
<Folder Include="Media.xcassets\Open_Red.imageset\" />
|
||||||
|
<Folder Include="Media.xcassets\Location_Pin.imageset\" />
|
||||||
|
<Folder Include="Media.xcassets\Location_Button.imageset\" />
|
||||||
<Folder Include="Media.xcassets\sharee_no_background.imageset\" />
|
<Folder Include="Media.xcassets\sharee_no_background.imageset\" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<Import Project="..\TINK\LastenradBayern.projitems" Label="Shared" Condition="Exists('..\TINK\LastenradBayern.projitems')" />
|
<Import Project="..\TINK\LastenradBayern.projitems" Label="Shared" Condition="Exists('..\TINK\LastenradBayern.projitems')" />
|
||||||
|
|
393
LastenradBayern/TINK.iOS/Media.xcassets/Location_Button.imageset/Contents.json
vendored
Normal file
|
@ -0,0 +1,393 @@
|
||||||
|
{
|
||||||
|
"images" : [
|
||||||
|
{
|
||||||
|
"filename" : "Location_Button.svg",
|
||||||
|
"idiom" : "universal"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances" : [
|
||||||
|
{
|
||||||
|
"appearance" : "luminosity",
|
||||||
|
"value" : "light"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"idiom" : "universal"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances" : [
|
||||||
|
{
|
||||||
|
"appearance" : "luminosity",
|
||||||
|
"value" : "dark"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"idiom" : "universal"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "1x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances" : [
|
||||||
|
{
|
||||||
|
"appearance" : "luminosity",
|
||||||
|
"value" : "light"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "1x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances" : [
|
||||||
|
{
|
||||||
|
"appearance" : "luminosity",
|
||||||
|
"value" : "dark"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "1x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances" : [
|
||||||
|
{
|
||||||
|
"appearance" : "luminosity",
|
||||||
|
"value" : "light"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances" : [
|
||||||
|
{
|
||||||
|
"appearance" : "luminosity",
|
||||||
|
"value" : "dark"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "3x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances" : [
|
||||||
|
{
|
||||||
|
"appearance" : "luminosity",
|
||||||
|
"value" : "light"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "3x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances" : [
|
||||||
|
{
|
||||||
|
"appearance" : "luminosity",
|
||||||
|
"value" : "dark"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "3x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "iphone"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances" : [
|
||||||
|
{
|
||||||
|
"appearance" : "luminosity",
|
||||||
|
"value" : "light"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"idiom" : "iphone"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances" : [
|
||||||
|
{
|
||||||
|
"appearance" : "luminosity",
|
||||||
|
"value" : "dark"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"idiom" : "iphone"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "iphone",
|
||||||
|
"scale" : "1x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances" : [
|
||||||
|
{
|
||||||
|
"appearance" : "luminosity",
|
||||||
|
"value" : "light"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"idiom" : "iphone",
|
||||||
|
"scale" : "1x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances" : [
|
||||||
|
{
|
||||||
|
"appearance" : "luminosity",
|
||||||
|
"value" : "dark"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"idiom" : "iphone",
|
||||||
|
"scale" : "1x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "iphone",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances" : [
|
||||||
|
{
|
||||||
|
"appearance" : "luminosity",
|
||||||
|
"value" : "light"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"idiom" : "iphone",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances" : [
|
||||||
|
{
|
||||||
|
"appearance" : "luminosity",
|
||||||
|
"value" : "dark"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"idiom" : "iphone",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "iphone",
|
||||||
|
"scale" : "3x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances" : [
|
||||||
|
{
|
||||||
|
"appearance" : "luminosity",
|
||||||
|
"value" : "light"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"idiom" : "iphone",
|
||||||
|
"scale" : "3x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances" : [
|
||||||
|
{
|
||||||
|
"appearance" : "luminosity",
|
||||||
|
"value" : "dark"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"idiom" : "iphone",
|
||||||
|
"scale" : "3x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "iphone",
|
||||||
|
"scale" : "1x",
|
||||||
|
"subtype" : "retina4"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances" : [
|
||||||
|
{
|
||||||
|
"appearance" : "luminosity",
|
||||||
|
"value" : "light"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"idiom" : "iphone",
|
||||||
|
"scale" : "1x",
|
||||||
|
"subtype" : "retina4"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances" : [
|
||||||
|
{
|
||||||
|
"appearance" : "luminosity",
|
||||||
|
"value" : "dark"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"idiom" : "iphone",
|
||||||
|
"scale" : "1x",
|
||||||
|
"subtype" : "retina4"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "iphone",
|
||||||
|
"scale" : "2x",
|
||||||
|
"subtype" : "retina4"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances" : [
|
||||||
|
{
|
||||||
|
"appearance" : "luminosity",
|
||||||
|
"value" : "light"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"idiom" : "iphone",
|
||||||
|
"scale" : "2x",
|
||||||
|
"subtype" : "retina4"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances" : [
|
||||||
|
{
|
||||||
|
"appearance" : "luminosity",
|
||||||
|
"value" : "dark"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"idiom" : "iphone",
|
||||||
|
"scale" : "2x",
|
||||||
|
"subtype" : "retina4"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "iphone",
|
||||||
|
"scale" : "3x",
|
||||||
|
"subtype" : "retina4"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances" : [
|
||||||
|
{
|
||||||
|
"appearance" : "luminosity",
|
||||||
|
"value" : "light"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"idiom" : "iphone",
|
||||||
|
"scale" : "3x",
|
||||||
|
"subtype" : "retina4"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances" : [
|
||||||
|
{
|
||||||
|
"appearance" : "luminosity",
|
||||||
|
"value" : "dark"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"idiom" : "iphone",
|
||||||
|
"scale" : "3x",
|
||||||
|
"subtype" : "retina4"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "ipad"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances" : [
|
||||||
|
{
|
||||||
|
"appearance" : "luminosity",
|
||||||
|
"value" : "light"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"idiom" : "ipad"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances" : [
|
||||||
|
{
|
||||||
|
"appearance" : "luminosity",
|
||||||
|
"value" : "dark"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"idiom" : "ipad"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "ipad",
|
||||||
|
"scale" : "1x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances" : [
|
||||||
|
{
|
||||||
|
"appearance" : "luminosity",
|
||||||
|
"value" : "light"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"idiom" : "ipad",
|
||||||
|
"scale" : "1x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances" : [
|
||||||
|
{
|
||||||
|
"appearance" : "luminosity",
|
||||||
|
"value" : "dark"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"idiom" : "ipad",
|
||||||
|
"scale" : "1x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "ipad",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances" : [
|
||||||
|
{
|
||||||
|
"appearance" : "luminosity",
|
||||||
|
"value" : "light"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"idiom" : "ipad",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances" : [
|
||||||
|
{
|
||||||
|
"appearance" : "luminosity",
|
||||||
|
"value" : "dark"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"idiom" : "ipad",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "car",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances" : [
|
||||||
|
{
|
||||||
|
"appearance" : "luminosity",
|
||||||
|
"value" : "light"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"idiom" : "car",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances" : [
|
||||||
|
{
|
||||||
|
"appearance" : "luminosity",
|
||||||
|
"value" : "dark"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"idiom" : "car",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "car",
|
||||||
|
"scale" : "3x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances" : [
|
||||||
|
{
|
||||||
|
"appearance" : "luminosity",
|
||||||
|
"value" : "light"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"idiom" : "car",
|
||||||
|
"scale" : "3x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances" : [
|
||||||
|
{
|
||||||
|
"appearance" : "luminosity",
|
||||||
|
"value" : "dark"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"idiom" : "car",
|
||||||
|
"scale" : "3x"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"info" : {
|
||||||
|
"author" : "xcode",
|
||||||
|
"version" : 1
|
||||||
|
}
|
||||||
|
}
|
107
LastenradBayern/TINK.iOS/Media.xcassets/Location_Button.imageset/Location_Button.svg
vendored
Normal file
|
@ -0,0 +1,107 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
|
||||||
|
<svg
|
||||||
|
width="56.000221"
|
||||||
|
height="56.000034"
|
||||||
|
viewBox="0 0 14.816725 14.816675"
|
||||||
|
version="1.1"
|
||||||
|
id="svg5"
|
||||||
|
inkscape:version="1.1.2 (b8e25be833, 2022-02-05)"
|
||||||
|
sodipodi:docname="Location_Button.svg"
|
||||||
|
inkscape:export-filename="C:\Users\Anja\Desktop\Location_Button.png"
|
||||||
|
inkscape:export-xdpi="96"
|
||||||
|
inkscape:export-ydpi="96"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg">
|
||||||
|
<sodipodi:namedview
|
||||||
|
id="namedview7"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#666666"
|
||||||
|
borderopacity="1.0"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:pageopacity="0.74901961"
|
||||||
|
inkscape:pagecheckerboard="0"
|
||||||
|
inkscape:document-units="mm"
|
||||||
|
showgrid="true"
|
||||||
|
fit-margin-top="5"
|
||||||
|
fit-margin-left="5"
|
||||||
|
fit-margin-right="5"
|
||||||
|
fit-margin-bottom="5"
|
||||||
|
inkscape:zoom="11.402918"
|
||||||
|
inkscape:cx="17.407825"
|
||||||
|
inkscape:cy="24.642815"
|
||||||
|
inkscape:window-width="1920"
|
||||||
|
inkscape:window-height="1009"
|
||||||
|
inkscape:window-x="-8"
|
||||||
|
inkscape:window-y="-8"
|
||||||
|
inkscape:window-maximized="1"
|
||||||
|
inkscape:current-layer="g1443"
|
||||||
|
units="px"
|
||||||
|
lock-margins="true">
|
||||||
|
<inkscape:grid
|
||||||
|
type="xygrid"
|
||||||
|
id="grid1378"
|
||||||
|
originx="3.43958"
|
||||||
|
originy="3.4395888" />
|
||||||
|
</sodipodi:namedview>
|
||||||
|
<defs
|
||||||
|
id="defs2" />
|
||||||
|
<g
|
||||||
|
inkscape:label="Layer 1"
|
||||||
|
inkscape:groupmode="layer"
|
||||||
|
id="layer1"
|
||||||
|
transform="translate(-43.106273,-79.915487)">
|
||||||
|
<g
|
||||||
|
id="g1443">
|
||||||
|
<ellipse
|
||||||
|
style="fill:none;fill-opacity:1;stroke:#333333;stroke-width:1.05833;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
|
||||||
|
id="path846"
|
||||||
|
cx="50.523026"
|
||||||
|
cy="87.332237"
|
||||||
|
inkscape:export-filename="C:\Users\Anja\Desktop\Location_Pin.png"
|
||||||
|
inkscape:export-xdpi="96"
|
||||||
|
inkscape:export-ydpi="96"
|
||||||
|
rx="3.9684811"
|
||||||
|
ry="3.9684813" />
|
||||||
|
<circle
|
||||||
|
style="fill:#333333;fill-opacity:1;stroke:none;stroke-width:1.61265;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
|
||||||
|
id="path1042"
|
||||||
|
cx="50.534115"
|
||||||
|
cy="87.326935"
|
||||||
|
r="1.5875" />
|
||||||
|
<rect
|
||||||
|
style="fill:#333333;fill-opacity:1;stroke:none;stroke-width:1.35094;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
|
||||||
|
id="rect1296"
|
||||||
|
width="1.0583333"
|
||||||
|
height="2.6458333"
|
||||||
|
x="49.985435"
|
||||||
|
y="81.238403" />
|
||||||
|
<rect
|
||||||
|
style="fill:#333333;fill-opacity:1;stroke:none;stroke-width:1.35094;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
|
||||||
|
id="rect1296-9"
|
||||||
|
width="1.0583333"
|
||||||
|
height="2.6458333"
|
||||||
|
x="49.985435"
|
||||||
|
y="90.763412" />
|
||||||
|
<rect
|
||||||
|
style="fill:#333333;fill-opacity:1;stroke:none;stroke-width:1.35093;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
|
||||||
|
id="rect1296-0"
|
||||||
|
width="1.0583172"
|
||||||
|
height="2.6458309"
|
||||||
|
x="86.794319"
|
||||||
|
y="-56.600288"
|
||||||
|
transform="matrix(-2.3780451e-6,1,-1,-6.0876213e-6,0,0)" />
|
||||||
|
<rect
|
||||||
|
style="fill:#333333;fill-opacity:1;stroke:none;stroke-width:1.35093;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
|
||||||
|
id="rect1296-0-8"
|
||||||
|
width="1.0583172"
|
||||||
|
height="2.6458309"
|
||||||
|
x="86.794388"
|
||||||
|
y="-47.07523"
|
||||||
|
transform="matrix(-2.3780451e-6,1,-1,-6.0876213e-6,0,0)" />
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 4 KiB |
354
LastenradBayern/TINK.iOS/Media.xcassets/Location_Pin.imageset/Contents.json
vendored
Normal file
|
@ -0,0 +1,354 @@
|
||||||
|
{
|
||||||
|
"images": [
|
||||||
|
{
|
||||||
|
"appearances": [],
|
||||||
|
"scale": "1x",
|
||||||
|
"idiom": "universal"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances": [],
|
||||||
|
"scale": "2x",
|
||||||
|
"idiom": "universal"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances": [],
|
||||||
|
"scale": "3x",
|
||||||
|
"idiom": "universal"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances": [],
|
||||||
|
"idiom": "iphone"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances": [],
|
||||||
|
"scale": "1x",
|
||||||
|
"idiom": "iphone"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances": [],
|
||||||
|
"scale": "2x",
|
||||||
|
"idiom": "iphone"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances": [],
|
||||||
|
"scale": "2x",
|
||||||
|
"idiom": "iphone",
|
||||||
|
"subtype": "retina4"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances": [],
|
||||||
|
"scale": "3x",
|
||||||
|
"idiom": "iphone"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances": [],
|
||||||
|
"idiom": "ipad"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances": [],
|
||||||
|
"scale": "1x",
|
||||||
|
"idiom": "ipad"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances": [],
|
||||||
|
"scale": "2x",
|
||||||
|
"idiom": "ipad"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances": [],
|
||||||
|
"scale": "2x",
|
||||||
|
"idiom": "car"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances": [],
|
||||||
|
"scale": "3x",
|
||||||
|
"idiom": "car"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances": [
|
||||||
|
{
|
||||||
|
"appearance": "luminosity",
|
||||||
|
"value": "dark"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"idiom": "universal"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances": [
|
||||||
|
{
|
||||||
|
"appearance": "luminosity",
|
||||||
|
"value": "dark"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"scale": "1x",
|
||||||
|
"idiom": "universal"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances": [
|
||||||
|
{
|
||||||
|
"appearance": "luminosity",
|
||||||
|
"value": "dark"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"scale": "2x",
|
||||||
|
"idiom": "universal"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances": [
|
||||||
|
{
|
||||||
|
"appearance": "luminosity",
|
||||||
|
"value": "dark"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"scale": "3x",
|
||||||
|
"idiom": "universal"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances": [
|
||||||
|
{
|
||||||
|
"appearance": "luminosity",
|
||||||
|
"value": "dark"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"idiom": "iphone"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances": [
|
||||||
|
{
|
||||||
|
"appearance": "luminosity",
|
||||||
|
"value": "dark"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"scale": "1x",
|
||||||
|
"idiom": "iphone"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances": [
|
||||||
|
{
|
||||||
|
"appearance": "luminosity",
|
||||||
|
"value": "dark"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"scale": "2x",
|
||||||
|
"idiom": "iphone"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances": [
|
||||||
|
{
|
||||||
|
"appearance": "luminosity",
|
||||||
|
"value": "dark"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"scale": "2x",
|
||||||
|
"idiom": "iphone",
|
||||||
|
"subtype": "retina4"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances": [
|
||||||
|
{
|
||||||
|
"appearance": "luminosity",
|
||||||
|
"value": "dark"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"scale": "3x",
|
||||||
|
"idiom": "iphone"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances": [
|
||||||
|
{
|
||||||
|
"appearance": "luminosity",
|
||||||
|
"value": "dark"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"idiom": "ipad"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances": [
|
||||||
|
{
|
||||||
|
"appearance": "luminosity",
|
||||||
|
"value": "dark"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"scale": "1x",
|
||||||
|
"idiom": "ipad"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances": [
|
||||||
|
{
|
||||||
|
"appearance": "luminosity",
|
||||||
|
"value": "dark"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"scale": "2x",
|
||||||
|
"idiom": "ipad"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances": [
|
||||||
|
{
|
||||||
|
"appearance": "luminosity",
|
||||||
|
"value": "dark"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"scale": "2x",
|
||||||
|
"idiom": "car"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances": [
|
||||||
|
{
|
||||||
|
"appearance": "luminosity",
|
||||||
|
"value": "dark"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"scale": "3x",
|
||||||
|
"idiom": "car"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances": [
|
||||||
|
{
|
||||||
|
"appearance": "luminosity",
|
||||||
|
"value": "light"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"idiom": "universal"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances": [
|
||||||
|
{
|
||||||
|
"appearance": "luminosity",
|
||||||
|
"value": "light"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"scale": "1x",
|
||||||
|
"idiom": "universal"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances": [
|
||||||
|
{
|
||||||
|
"appearance": "luminosity",
|
||||||
|
"value": "light"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"scale": "2x",
|
||||||
|
"idiom": "universal"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances": [
|
||||||
|
{
|
||||||
|
"appearance": "luminosity",
|
||||||
|
"value": "light"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"scale": "3x",
|
||||||
|
"idiom": "universal"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances": [
|
||||||
|
{
|
||||||
|
"appearance": "luminosity",
|
||||||
|
"value": "light"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"idiom": "iphone"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances": [
|
||||||
|
{
|
||||||
|
"appearance": "luminosity",
|
||||||
|
"value": "light"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"scale": "1x",
|
||||||
|
"idiom": "iphone"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances": [
|
||||||
|
{
|
||||||
|
"appearance": "luminosity",
|
||||||
|
"value": "light"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"scale": "2x",
|
||||||
|
"idiom": "iphone"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances": [
|
||||||
|
{
|
||||||
|
"appearance": "luminosity",
|
||||||
|
"value": "light"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"scale": "2x",
|
||||||
|
"idiom": "iphone",
|
||||||
|
"subtype": "retina4"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances": [
|
||||||
|
{
|
||||||
|
"appearance": "luminosity",
|
||||||
|
"value": "light"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"scale": "3x",
|
||||||
|
"idiom": "iphone"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances": [
|
||||||
|
{
|
||||||
|
"appearance": "luminosity",
|
||||||
|
"value": "light"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"idiom": "ipad"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances": [
|
||||||
|
{
|
||||||
|
"appearance": "luminosity",
|
||||||
|
"value": "light"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"scale": "1x",
|
||||||
|
"idiom": "ipad"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances": [
|
||||||
|
{
|
||||||
|
"appearance": "luminosity",
|
||||||
|
"value": "light"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"scale": "2x",
|
||||||
|
"idiom": "ipad"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances": [
|
||||||
|
{
|
||||||
|
"appearance": "luminosity",
|
||||||
|
"value": "light"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"scale": "2x",
|
||||||
|
"idiom": "car"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances": [
|
||||||
|
{
|
||||||
|
"appearance": "luminosity",
|
||||||
|
"value": "light"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"scale": "3x",
|
||||||
|
"idiom": "car"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances": [],
|
||||||
|
"idiom": "universal",
|
||||||
|
"filename": "Location_Pin.pdf"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"properties": {},
|
||||||
|
"info": {
|
||||||
|
"version": 1,
|
||||||
|
"author": "xcode"
|
||||||
|
}
|
||||||
|
}
|
70
LastenradBayern/TINK.iOS/Media.xcassets/Location_Pin.imageset/Location_Pin.pdf
vendored
Normal file
|
@ -0,0 +1,70 @@
|
||||||
|
%PDF-1.5
|
||||||
|
%µí®û
|
||||||
|
4 0 obj
|
||||||
|
<< /Length 5 0 R
|
||||||
|
/Filter /FlateDecode
|
||||||
|
>>
|
||||||
|
stream
|
||||||
|
xœÕ<EFBFBD>A
|
||||||
|
1E÷9Å¿€1iÆNç‚àbt).dÄÁÅèÂë›jg@=<3D>
ýä“ßGª¯™ºTÊ!˜iDw¥<77>¹6KÌ‚þN‘%Ÿü^h·‡°àHÖ /Ö[a)ó„£®(Þ„õ#R\N©.ž0½ƒ<>·%3F'F–tá}Ñ&ÆùgÃ-ZòåÙbŠ¡ö¦ºˆ
n=þï3'jé Õ[ƒ
|
||||||
|
endstream
|
||||||
|
endobj
|
||||||
|
5 0 obj
|
||||||
|
165
|
||||||
|
endobj
|
||||||
|
3 0 obj
|
||||||
|
<<
|
||||||
|
/ExtGState <<
|
||||||
|
/a0 << /CA 1 /ca 1 >>
|
||||||
|
>>
|
||||||
|
>>
|
||||||
|
endobj
|
||||||
|
2 0 obj
|
||||||
|
<< /Type /Page % 1
|
||||||
|
/Parent 1 0 R
|
||||||
|
/MediaBox [ 0 0 41.223316 41.223316 ]
|
||||||
|
/Contents 4 0 R
|
||||||
|
/Group <<
|
||||||
|
/Type /Group
|
||||||
|
/S /Transparency
|
||||||
|
/I true
|
||||||
|
/CS /DeviceRGB
|
||||||
|
>>
|
||||||
|
/Resources 3 0 R
|
||||||
|
>>
|
||||||
|
endobj
|
||||||
|
1 0 obj
|
||||||
|
<< /Type /Pages
|
||||||
|
/Kids [ 2 0 R ]
|
||||||
|
/Count 1
|
||||||
|
>>
|
||||||
|
endobj
|
||||||
|
6 0 obj
|
||||||
|
<< /Producer (cairo 1.17.4 (https://cairographics.org))
|
||||||
|
/Creator <FEFF0049006E006B0073006300610070006500200031002E0031002E00320020002800680074007400700073003A002F002F0069006E006B00730063006100700065002E006F007200670029>
|
||||||
|
/CreationDate (D:20221116092441+01'00)
|
||||||
|
>>
|
||||||
|
endobj
|
||||||
|
7 0 obj
|
||||||
|
<< /Type /Catalog
|
||||||
|
/Pages 1 0 R
|
||||||
|
>>
|
||||||
|
endobj
|
||||||
|
xref
|
||||||
|
0 8
|
||||||
|
0000000000 65535 f
|
||||||
|
0000000581 00000 n
|
||||||
|
0000000351 00000 n
|
||||||
|
0000000279 00000 n
|
||||||
|
0000000015 00000 n
|
||||||
|
0000000257 00000 n
|
||||||
|
0000000646 00000 n
|
||||||
|
0000000929 00000 n
|
||||||
|
trailer
|
||||||
|
<< /Size 8
|
||||||
|
/Root 7 0 R
|
||||||
|
/Info 6 0 R
|
||||||
|
>>
|
||||||
|
startxref
|
||||||
|
981
|
||||||
|
%%EOF
|
|
@ -23,6 +23,11 @@
|
||||||
<x:String x:Key="IconInfo"></x:String>
|
<x:String x:Key="IconInfo"></x:String>
|
||||||
<!--<x:String x:Key="IconClose"></x:String>-->
|
<!--<x:String x:Key="IconClose"></x:String>-->
|
||||||
<!--<x:String x:Key="IconClose"></x:String>-->
|
<!--<x:String x:Key="IconClose"></x:String>-->
|
||||||
|
|
||||||
|
<!--TogglePasswortEntry-->
|
||||||
|
<x:String x:Key="EyeOpen"></x:String>
|
||||||
|
<x:String x:Key="EyeClose"></x:String>
|
||||||
|
|
||||||
<!-- Add more resources here -->
|
<!-- Add more resources here -->
|
||||||
<ResourceDictionary.MergedDictionaries>
|
<ResourceDictionary.MergedDictionaries>
|
||||||
<!-- Add more resource dictionaries here -->
|
<!-- Add more resource dictionaries here -->
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Globalization;
|
using System.Globalization;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
|
|
@ -1,8 +1,9 @@
|
||||||
<?xml version="1.0" encoding="utf-8" ?>
|
<?xml version="1.0" encoding="utf-8" ?>
|
||||||
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
|
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
|
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
|
||||||
xmlns:resources="clr-namespace:TINK.MultilingualResources;assembly=TINKLib"
|
xmlns:resources="clr-namespace:TINK.MultilingualResources;assembly=TINKLib"
|
||||||
x:Class="TINK.View.Login.LoginPage">
|
xmlns:sharedGui="clr-namespace:ShareeSharedGuiLib.View"
|
||||||
|
x:Class="TINK.View.Login.LoginPage">
|
||||||
<Shell.TitleView>
|
<Shell.TitleView>
|
||||||
<Grid ColumnDefinitions="Auto, 1*">
|
<Grid ColumnDefinitions="Auto, 1*">
|
||||||
<Label Style="{StaticResource Label-Navbar}"
|
<Label Style="{StaticResource Label-Navbar}"
|
||||||
|
@ -24,14 +25,14 @@
|
||||||
Text="{Binding MailAddress}"
|
Text="{Binding MailAddress}"
|
||||||
IsEnabled="{Binding IsLoggedOut}"/>
|
IsEnabled="{Binding IsLoggedOut}"/>
|
||||||
<Label Text="{x:Static resources:AppResources.MarkingLoginPasswordLabel}"/>
|
<Label Text="{x:Static resources:AppResources.MarkingLoginPasswordLabel}"/>
|
||||||
<Entry
|
<Entry
|
||||||
Placeholder="{x:Static resources:AppResources.MarkingLoginPasswordPlaceholder}"
|
Placeholder="{x:Static resources:AppResources.MarkingLoginPasswordPlaceholder}"
|
||||||
AutomationId="password_text"
|
AutomationId="password_text"
|
||||||
IsPassword="true"
|
IsPassword="true"
|
||||||
x:Name="PasswordEntry"
|
x:Name="PasswordEntry"
|
||||||
Text="{Binding Password}"
|
Text="{Binding Password}"
|
||||||
IsEnabled="{Binding IsLoggedOut}"/>
|
IsEnabled="{Binding IsLoggedOut}"/>
|
||||||
<Button
|
<Button
|
||||||
Text="{x:Static resources:AppResources.ActionLoginLogin}"
|
Text="{x:Static resources:AppResources.ActionLoginLogin}"
|
||||||
AutomationId="login_button"
|
AutomationId="login_button"
|
||||||
Command="{Binding OnLoginRequest}"
|
Command="{Binding OnLoginRequest}"
|
||||||
|
@ -156,4 +157,4 @@
|
||||||
</StackLayout>
|
</StackLayout>
|
||||||
</Frame>
|
</Frame>
|
||||||
</ScrollView>-->
|
</ScrollView>-->
|
||||||
</ContentPage>
|
</ContentPage>
|
||||||
|
|
|
@ -89,6 +89,24 @@
|
||||||
</StackLayout>
|
</StackLayout>
|
||||||
</Frame>
|
</Frame>
|
||||||
|
|
||||||
|
<!--Center to currentLocation Button-->
|
||||||
|
<ImageButton
|
||||||
|
Grid.Row="2"
|
||||||
|
Grid.ColumnSpan="3"
|
||||||
|
x:Name="CurrentLocation"
|
||||||
|
AutomationId ="currentLocaton_button"
|
||||||
|
Command="{Binding OnCurrentLocationButtonClicked}"
|
||||||
|
IsVisible="True"
|
||||||
|
BackgroundColor="Transparent"
|
||||||
|
VerticalOptions="End"
|
||||||
|
HorizontalOptions="End"
|
||||||
|
Margin="0,0,11,100"
|
||||||
|
Source="Location_Button.png"
|
||||||
|
WidthRequest="40"
|
||||||
|
HeightRequest="40"
|
||||||
|
CornerRadius="20">
|
||||||
|
</ImageButton>
|
||||||
|
|
||||||
<!--While process is running-->
|
<!--While process is running-->
|
||||||
<!--Spinner-->
|
<!--Spinner-->
|
||||||
<ActivityIndicator
|
<ActivityIndicator
|
||||||
|
|
|
@ -10,7 +10,7 @@
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="Plugin.BLE" Version="2.1.3" />
|
<PackageReference Include="Plugin.BLE" Version="2.1.3" />
|
||||||
<PackageReference Include="Polly" Version="7.2.3" />
|
<PackageReference Include="Polly" Version="7.2.3" />
|
||||||
<PackageReference Include="Serilog" Version="2.11.0" />
|
<PackageReference Include="Serilog" Version="2.12.0" />
|
||||||
<PackageReference Include="Xamarin.Essentials" Version="1.7.3" />
|
<PackageReference Include="Xamarin.Essentials" Version="1.7.3" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
|
|
|
@ -23,7 +23,7 @@
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="Newtonsoft.Json" Version="13.0.1" />
|
<PackageReference Include="Newtonsoft.Json" Version="13.0.1" />
|
||||||
<PackageReference Include="Serilog" Version="2.11.0" />
|
<PackageReference Include="Serilog" Version="2.12.0" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Compile Update="MultilingualResources\Resources.Designer.cs">
|
<Compile Update="MultilingualResources\Resources.Designer.cs">
|
||||||
|
|
BIN
Meinkonrad/TINK.Android/Assets/Location_Pin.png
Normal file
After Width: | Height: | Size: 1.8 KiB |
|
@ -1,4 +1,5 @@
|
||||||
|
|
||||||
|
using System.Collections.Generic;
|
||||||
using Android.App;
|
using Android.App;
|
||||||
using Android.Content;
|
using Android.Content;
|
||||||
using Android.Content.PM;
|
using Android.Content.PM;
|
||||||
|
@ -7,12 +8,21 @@ using Android.OS;
|
||||||
using Android.Util;
|
using Android.Util;
|
||||||
using Firebase;
|
using Firebase;
|
||||||
using Java.Interop;
|
using Java.Interop;
|
||||||
|
using Java.Security.Acl;
|
||||||
using Plugin.Permissions;
|
using Plugin.Permissions;
|
||||||
using Xamarin.Forms.Platform.Android.AppLinks;
|
using Xamarin.Forms.Platform.Android.AppLinks;
|
||||||
|
using static Xamarin.Essentials.Permissions;
|
||||||
|
using Xamarin.Essentials;
|
||||||
|
using Android.Runtime;
|
||||||
|
|
||||||
namespace TINK.Droid
|
namespace TINK.Droid
|
||||||
{
|
{
|
||||||
[Activity(Label = "Mein konrad", Icon = "@drawable/sharee", Theme = "@style/MainTheme", MainLauncher = true, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation)]
|
[Activity(
|
||||||
|
Label = "Mein konrad",
|
||||||
|
Icon = "@drawable/sharee",
|
||||||
|
Theme = "@style/MainTheme",
|
||||||
|
MainLauncher = true,
|
||||||
|
ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation)]
|
||||||
|
|
||||||
[IntentFilter(new[] { Intent.ActionView },
|
[IntentFilter(new[] { Intent.ActionView },
|
||||||
Categories = new[] { Intent.ActionView, Intent.CategoryBrowsable, Intent.CategoryDefault },
|
Categories = new[] { Intent.ActionView, Intent.CategoryBrowsable, Intent.CategoryDefault },
|
||||||
|
@ -40,7 +50,7 @@ namespace TINK.Droid
|
||||||
metrics.ScaledDensity = configuration.FontScale * metrics.Density;
|
metrics.ScaledDensity = configuration.FontScale * metrics.Density;
|
||||||
BaseContext.Resources.UpdateConfiguration(configuration, metrics);
|
BaseContext.Resources.UpdateConfiguration(configuration, metrics);
|
||||||
}
|
}
|
||||||
protected override void OnCreate(Bundle bundle)
|
protected override async void OnCreate(Bundle bundle)
|
||||||
{
|
{
|
||||||
initFontScale();
|
initFontScale();
|
||||||
|
|
||||||
|
@ -75,27 +85,49 @@ namespace TINK.Droid
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
await Permissions.RequestAsync<BLEAndLocationPermissions>();
|
||||||
|
|
||||||
LoadApplication(new App());
|
LoadApplication(new App());
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
//Bluetooth Permission on Android 12 "Detect Devices nearby"
|
||||||
|
// https://stackoverflow.com/questions/71028853/xamarin-forms-ble-plugin-scan-issue-android-12
|
||||||
|
public class BLEAndLocationPermissions : BasePlatformPermission
|
||||||
|
{
|
||||||
|
public override (string androidPermission, bool isRuntime)[] RequiredPermissions => new List<(string androidPermission, bool isRuntime)>
|
||||||
|
{
|
||||||
|
(Android.Manifest.Permission.BluetoothScan, true),
|
||||||
|
(Android.Manifest.Permission.BluetoothConnect, true),
|
||||||
|
(Android.Manifest.Permission.AccessFineLocation, true)
|
||||||
|
}.ToArray();
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Handles opening the dialog to request for permissions.
|
/// Handles opening the dialog to request for permissions.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public override void OnRequestPermissionsResult(int requestCode, string[] permissions, Android.Content.PM.Permission[] grantResults)
|
public override void OnRequestPermissionsResult(int requestCode, string[] permissions, [GeneratedEnum] Android.Content.PM.Permission[] grantResults)
|
||||||
{
|
{
|
||||||
if (App.PermissionsService.GetType() == typeof(TINK.Services.Permissions.Essentials.Permissions))
|
Xamarin.Essentials.Platform.OnRequestPermissionsResult(requestCode, permissions, grantResults);
|
||||||
{
|
PermissionsImplementation.Current.OnRequestPermissionsResult(requestCode, permissions, grantResults);
|
||||||
Xamarin.Essentials.Platform.OnRequestPermissionsResult(requestCode, permissions, grantResults);
|
|
||||||
}
|
|
||||||
else if (App.PermissionsService.GetType() == typeof(TINK.Services.Permissions.Plugin.Permissions))
|
|
||||||
{
|
|
||||||
// Bug in 3.0.244 and earlier versions of sharee.bike app: Call of PermissionsImplementation.Current.OnRequestedPermission result was missing.
|
|
||||||
// see https://dev.azure.com/TeilRad/sharee.bike%20Buchungsplattform/_workitems/edit/136 for further details.
|
|
||||||
PermissionsImplementation.Current.OnRequestPermissionsResult(requestCode, permissions, grantResults);
|
|
||||||
}
|
|
||||||
|
|
||||||
base.OnRequestPermissionsResult(requestCode, permissions, grantResults);
|
base.OnRequestPermissionsResult(requestCode, permissions, grantResults);
|
||||||
}
|
}
|
||||||
|
//public override void OnRequestPermissionsResult(int requestCode, string[] permissions, Android.Content.PM.Permission[] grantResults)
|
||||||
|
//{
|
||||||
|
// if (App.PermissionsService.GetType() == typeof(TINK.Services.Permissions.Essentials.Permissions))
|
||||||
|
// {
|
||||||
|
// Xamarin.Essentials.Platform.OnRequestPermissionsResult(requestCode, permissions, grantResults);
|
||||||
|
// }
|
||||||
|
// else if (App.PermissionsService.GetType() == typeof(TINK.Services.Permissions.Plugin.Permissions))
|
||||||
|
// {
|
||||||
|
// // Bug in 3.0.244 and earlier versions of sharee.bike app: Call of PermissionsImplementation.Current.OnRequestedPermission result was missing.
|
||||||
|
// // see https://dev.azure.com/TeilRad/sharee.bike%20Buchungsplattform/_workitems/edit/136 for further details.
|
||||||
|
// PermissionsImplementation.Current.OnRequestPermissionsResult(requestCode, permissions, grantResults);
|
||||||
|
// }
|
||||||
|
|
||||||
|
// base.OnRequestPermissionsResult(requestCode, permissions, grantResults);
|
||||||
|
//}
|
||||||
|
|
||||||
[Export("TapStation")]
|
[Export("TapStation")]
|
||||||
public void TapStation(string stationNr)
|
public void TapStation(string stationNr)
|
||||||
|
|
|
@ -16,7 +16,7 @@
|
||||||
<AndroidResgenFile>Resources\Resource.Designer.cs</AndroidResgenFile>
|
<AndroidResgenFile>Resources\Resource.Designer.cs</AndroidResgenFile>
|
||||||
<GenerateSerializationAssemblies>Off</GenerateSerializationAssemblies>
|
<GenerateSerializationAssemblies>Off</GenerateSerializationAssemblies>
|
||||||
<AndroidManifest>Properties\AndroidManifest.xml</AndroidManifest>
|
<AndroidManifest>Properties\AndroidManifest.xml</AndroidManifest>
|
||||||
<TargetFrameworkVersion>v11.0</TargetFrameworkVersion>
|
<TargetFrameworkVersion>v12.0</TargetFrameworkVersion>
|
||||||
<AndroidStoreUncompressedFileExtensions />
|
<AndroidStoreUncompressedFileExtensions />
|
||||||
<MandroidI18n />
|
<MandroidI18n />
|
||||||
<JavaMaximumHeapSize>2G</JavaMaximumHeapSize>
|
<JavaMaximumHeapSize>2G</JavaMaximumHeapSize>
|
||||||
|
@ -77,7 +77,7 @@
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="Microsoft.CSharp" Version="4.7.0" />
|
<PackageReference Include="Microsoft.CSharp" Version="4.7.0" />
|
||||||
<PackageReference Include="Microsoft.NETCore.Platforms" Version="6.0.5" />
|
<PackageReference Include="Microsoft.NETCore.Platforms" Version="7.0.0" />
|
||||||
<PackageReference Include="Microsoft.Win32.Primitives" Version="4.3.0" />
|
<PackageReference Include="Microsoft.Win32.Primitives" Version="4.3.0" />
|
||||||
<PackageReference Include="MonkeyCache">
|
<PackageReference Include="MonkeyCache">
|
||||||
<Version>1.6.3</Version>
|
<Version>1.6.3</Version>
|
||||||
|
@ -97,7 +97,7 @@
|
||||||
<Version>6.3.0.19</Version>
|
<Version>6.3.0.19</Version>
|
||||||
</PackageReference>
|
</PackageReference>
|
||||||
<PackageReference Include="Serilog">
|
<PackageReference Include="Serilog">
|
||||||
<Version>2.11.0</Version>
|
<Version>2.12.0</Version>
|
||||||
</PackageReference>
|
</PackageReference>
|
||||||
<PackageReference Include="Serilog.Sinks.File" Version="5.0.0" />
|
<PackageReference Include="Serilog.Sinks.File" Version="5.0.0" />
|
||||||
<PackageReference Include="Serilog.Sinks.Xamarin" Version="1.0.0" />
|
<PackageReference Include="Serilog.Sinks.Xamarin" Version="1.0.0" />
|
||||||
|
@ -176,21 +176,21 @@
|
||||||
<PackageReference Include="Xamarin.Android.Support.v7.RecyclerView" Version="28.0.0.3" />
|
<PackageReference Include="Xamarin.Android.Support.v7.RecyclerView" Version="28.0.0.3" />
|
||||||
<PackageReference Include="Xamarin.Android.Support.Vector.Drawable" Version="28.0.0.3" />
|
<PackageReference Include="Xamarin.Android.Support.Vector.Drawable" Version="28.0.0.3" />
|
||||||
<PackageReference Include="Xamarin.AndroidX.Core">
|
<PackageReference Include="Xamarin.AndroidX.Core">
|
||||||
<Version>1.6.0.3</Version>
|
<Version>1.9.0.1</Version>
|
||||||
</PackageReference>
|
</PackageReference>
|
||||||
<PackageReference Include="Xamarin.AndroidX.MediaRouter">
|
<PackageReference Include="Xamarin.AndroidX.MediaRouter">
|
||||||
<Version>1.2.5.2</Version>
|
<Version>1.3.1.1</Version>
|
||||||
</PackageReference>
|
</PackageReference>
|
||||||
<PackageReference Include="Xamarin.AndroidX.Palette">
|
<PackageReference Include="Xamarin.AndroidX.Palette">
|
||||||
<Version>1.0.0.10</Version>
|
<Version>1.0.0.15</Version>
|
||||||
</PackageReference>
|
</PackageReference>
|
||||||
<PackageReference Include="Xamarin.AndroidX.RecyclerView">
|
<PackageReference Include="Xamarin.AndroidX.RecyclerView">
|
||||||
<Version>1.2.1.3</Version>
|
<Version>1.2.1.8</Version>
|
||||||
</PackageReference>
|
</PackageReference>
|
||||||
<PackageReference Include="Xamarin.Auth" Version="1.7.0" />
|
<PackageReference Include="Xamarin.Auth" Version="1.7.0" />
|
||||||
<PackageReference Include="Xamarin.Build.Download" Version="0.11.3" />
|
<PackageReference Include="Xamarin.Build.Download" Version="0.11.3" />
|
||||||
<PackageReference Include="Xamarin.CommunityToolkit">
|
<PackageReference Include="Xamarin.CommunityToolkit">
|
||||||
<Version>2.0.4</Version>
|
<Version>2.0.5</Version>
|
||||||
</PackageReference>
|
</PackageReference>
|
||||||
<PackageReference Include="Xamarin.Essentials">
|
<PackageReference Include="Xamarin.Essentials">
|
||||||
<Version>1.7.3</Version>
|
<Version>1.7.3</Version>
|
||||||
|
@ -200,13 +200,13 @@
|
||||||
<Version>5.0.0.2515</Version>
|
<Version>5.0.0.2515</Version>
|
||||||
</PackageReference>
|
</PackageReference>
|
||||||
<PackageReference Include="Xamarin.Forms.GoogleMaps">
|
<PackageReference Include="Xamarin.Forms.GoogleMaps">
|
||||||
<Version>3.3.0</Version>
|
<Version>5.0.0</Version>
|
||||||
</PackageReference>
|
</PackageReference>
|
||||||
<PackageReference Include="Xamarin.Forms.GoogleMaps.Bindings" Version="3.0.0" />
|
<PackageReference Include="Xamarin.Forms.GoogleMaps.Bindings" Version="3.0.0" />
|
||||||
<PackageReference Include="Xamarin.GooglePlayServices.Base" Version="117.6.0.1" />
|
<PackageReference Include="Xamarin.GooglePlayServices.Base" Version="118.1.0" />
|
||||||
<PackageReference Include="Xamarin.GooglePlayServices.Basement" Version="117.6.0.2" />
|
<PackageReference Include="Xamarin.GooglePlayServices.Basement" Version="118.1.0" />
|
||||||
<PackageReference Include="Xamarin.GooglePlayServices.Maps" Version="117.0.1.1" />
|
<PackageReference Include="Xamarin.GooglePlayServices.Maps" Version="118.1.0" />
|
||||||
<PackageReference Include="Xamarin.GooglePlayServices.Tasks" Version="117.2.1.1" />
|
<PackageReference Include="Xamarin.GooglePlayServices.Tasks" Version="118.0.2" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Reference Include="Mono.Android" />
|
<Reference Include="Mono.Android" />
|
||||||
|
@ -283,6 +283,9 @@
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<AndroidAsset Include="Assets\Open_Red.png" />
|
<AndroidAsset Include="Assets\Open_Red.png" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<AndroidAsset Include="Assets\Location_Pin.png" />
|
||||||
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<AndroidResource Include="Resources\drawable-hdpi\sharee.png" />
|
<AndroidResource Include="Resources\drawable-hdpi\sharee.png" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
@ -458,6 +461,11 @@
|
||||||
<Generator>MSBuild:UpdateGeneratedFiles</Generator>
|
<Generator>MSBuild:UpdateGeneratedFiles</Generator>
|
||||||
</AndroidResource>
|
</AndroidResource>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<AndroidResource Include="Resources\drawable\Location_Button.png">
|
||||||
|
<Generator>MSBuild:UpdateGeneratedFiles</Generator>
|
||||||
|
</AndroidResource>
|
||||||
|
</ItemGroup>
|
||||||
<Import Project="..\TINK\Meinkonrad.projitems" Label="Shared" Condition="Exists('..\TINK\Meinkonrad.projitems')" />
|
<Import Project="..\TINK\Meinkonrad.projitems" Label="Shared" Condition="Exists('..\TINK\Meinkonrad.projitems')" />
|
||||||
<Import Project="..\..\ShareeSharedGuiLib\ShareeSharedGuiLib.projitems" Label="Shared" />
|
<Import Project="..\..\ShareeSharedGuiLib\ShareeSharedGuiLib.projitems" Label="Shared" />
|
||||||
<Import Project="$(MSBuildExtensionsPath)\Xamarin\Android\Xamarin.Android.CSharp.targets" />
|
<Import Project="$(MSBuildExtensionsPath)\Xamarin\Android\Xamarin.Android.CSharp.targets" />
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:installLocation="internalOnly" package="com.TeilRad.Meinkonrad" android:versionName="3.0.347" android:versionCode="347">
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:installLocation="internalOnly" package="com.TeilRad.Meinkonrad" android:versionName="3.0.350" android:versionCode="350">
|
||||||
<uses-sdk android:minSdkVersion="19" android:targetSdkVersion="30" />
|
<uses-sdk android:minSdkVersion="19" android:targetSdkVersion="31" />
|
||||||
<!-- Google Maps related permissions -->
|
<!-- Google Maps related permissions -->
|
||||||
<!-- Permission to receive remote notifications from Google Play Services -->
|
<!-- Permission to receive remote notifications from Google Play Services -->
|
||||||
<!-- Notice here that we have the package name of our application as a prefix on the permissions. -->
|
<!-- Notice here that we have the package name of our application as a prefix on the permissions. -->
|
||||||
|
@ -9,13 +9,18 @@
|
||||||
<!-- Access Google based webservices -->
|
<!-- Access Google based webservices -->
|
||||||
<!-- External storage for caching. -->
|
<!-- External storage for caching. -->
|
||||||
<!-- My Location -->
|
<!-- My Location -->
|
||||||
<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_FINE_LOCATION" />
|
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
|
||||||
|
<uses-permission android:name="android.permission.BLUETOOTH"
|
||||||
|
android:maxSdkVersion="30" />
|
||||||
|
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"
|
||||||
|
android:maxSdkVersion="30" />
|
||||||
|
<uses-permission android:name="android.permission.BLUETOOTH_SCAN"
|
||||||
|
android:usesPermissionFlags="neverForLocation" />
|
||||||
|
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
|
||||||
<uses-feature android:name="android.hardware.location" android:required="false" />
|
<uses-feature android:name="android.hardware.location" android:required="false" />
|
||||||
<uses-feature android:name="android.hardware.location.gps" android:required="false" />
|
<uses-feature android:name="android.hardware.location.gps" android:required="false" />
|
||||||
<uses-feature android:name="android.hardware.location.network" android:required="false" />
|
<uses-feature android:name="android.hardware.location.network" android:required="false" />
|
||||||
<uses-permission android:name="android.permission.BLUETOOTH" />
|
|
||||||
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
|
|
||||||
<uses-feature android:name="android.hardware.bluetooth_le" android:required="true" />
|
<uses-feature android:name="android.hardware.bluetooth_le" android:required="true" />
|
||||||
<application android:icon="@drawable/sharee" android:label="Meinkonrad" android:allowBackup="false"></application>
|
<application android:icon="@drawable/sharee" android:label="Meinkonrad" android:allowBackup="false"></application>
|
||||||
<queries>
|
<queries>
|
||||||
|
@ -33,4 +38,4 @@
|
||||||
</intent>
|
</intent>
|
||||||
</queries>
|
</queries>
|
||||||
<meta-data android:name="com.google.android.geo.API_KEY" android:value="000000000000000000000000000000000000000" />
|
<meta-data android:name="com.google.android.geo.API_KEY" android:value="000000000000000000000000000000000000000" />
|
||||||
</manifest>
|
</manifest>
|
||||||
|
|
5557
Meinkonrad/TINK.Android/Resources/Resource.Designer.cs
generated
BIN
Meinkonrad/TINK.Android/Resources/drawable/Location_Button.png
Normal file
After Width: | Height: | Size: 1.8 KiB |
|
@ -1,4 +1,4 @@
|
||||||
using Foundation;
|
using Foundation;
|
||||||
using UIKit;
|
using UIKit;
|
||||||
using Xamarin.Forms;
|
using Xamarin.Forms;
|
||||||
using Xamarin.Forms.Platform.iOS;
|
using Xamarin.Forms.Platform.iOS;
|
||||||
|
@ -25,6 +25,9 @@ namespace TINK.iOS
|
||||||
//Color of Icons in Navigation bar (e.g. burger menu and back arrow)
|
//Color of Icons in Navigation bar (e.g. burger menu and back arrow)
|
||||||
UINavigationBar.Appearance.TintColor = Color.White.ToUIColor();
|
UINavigationBar.Appearance.TintColor = Color.White.ToUIColor();
|
||||||
|
|
||||||
|
//Color of Switch
|
||||||
|
UISwitch.Appearance.OnTintColor = UIColor.LightGray;
|
||||||
|
|
||||||
new iOS.Device.AppInfo(NSBundle.MainBundle.InfoDictionary[new NSString("CFBundleShortVersionString")]?.ToString() ?? string.Empty);
|
new iOS.Device.AppInfo(NSBundle.MainBundle.InfoDictionary[new NSString("CFBundleShortVersionString")]?.ToString() ?? string.Empty);
|
||||||
|
|
||||||
Forms.ViewInitialized += (object sender, ViewInitializedEventArgs e) =>
|
Forms.ViewInitialized += (object sender, ViewInitializedEventArgs e) =>
|
||||||
|
|
|
@ -55,8 +55,8 @@
|
||||||
<key>CFBundleDisplayName</key>
|
<key>CFBundleDisplayName</key>
|
||||||
<string>Mein konrad</string>
|
<string>Mein konrad</string>
|
||||||
<key>CFBundleVersion</key>
|
<key>CFBundleVersion</key>
|
||||||
<string>347</string>
|
<string>350</string>
|
||||||
<key>CFBundleShortVersionString</key>
|
<key>CFBundleShortVersionString</key>
|
||||||
<string>3.0.347</string>
|
<string>3.0.350</string>
|
||||||
</dict>
|
</dict>
|
||||||
</plist>
|
</plist>
|
||||||
|
|
393
Meinkonrad/TINK.iOS/Media.xcassets/Location_Button.imageset/Contents.json
vendored
Normal file
|
@ -0,0 +1,393 @@
|
||||||
|
{
|
||||||
|
"images" : [
|
||||||
|
{
|
||||||
|
"filename" : "Location_Button.svg",
|
||||||
|
"idiom" : "universal"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances" : [
|
||||||
|
{
|
||||||
|
"appearance" : "luminosity",
|
||||||
|
"value" : "light"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"idiom" : "universal"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances" : [
|
||||||
|
{
|
||||||
|
"appearance" : "luminosity",
|
||||||
|
"value" : "dark"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"idiom" : "universal"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "1x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances" : [
|
||||||
|
{
|
||||||
|
"appearance" : "luminosity",
|
||||||
|
"value" : "light"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "1x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances" : [
|
||||||
|
{
|
||||||
|
"appearance" : "luminosity",
|
||||||
|
"value" : "dark"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "1x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances" : [
|
||||||
|
{
|
||||||
|
"appearance" : "luminosity",
|
||||||
|
"value" : "light"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances" : [
|
||||||
|
{
|
||||||
|
"appearance" : "luminosity",
|
||||||
|
"value" : "dark"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "3x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances" : [
|
||||||
|
{
|
||||||
|
"appearance" : "luminosity",
|
||||||
|
"value" : "light"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "3x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances" : [
|
||||||
|
{
|
||||||
|
"appearance" : "luminosity",
|
||||||
|
"value" : "dark"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "3x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "iphone"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances" : [
|
||||||
|
{
|
||||||
|
"appearance" : "luminosity",
|
||||||
|
"value" : "light"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"idiom" : "iphone"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances" : [
|
||||||
|
{
|
||||||
|
"appearance" : "luminosity",
|
||||||
|
"value" : "dark"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"idiom" : "iphone"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "iphone",
|
||||||
|
"scale" : "1x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances" : [
|
||||||
|
{
|
||||||
|
"appearance" : "luminosity",
|
||||||
|
"value" : "light"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"idiom" : "iphone",
|
||||||
|
"scale" : "1x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances" : [
|
||||||
|
{
|
||||||
|
"appearance" : "luminosity",
|
||||||
|
"value" : "dark"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"idiom" : "iphone",
|
||||||
|
"scale" : "1x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "iphone",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances" : [
|
||||||
|
{
|
||||||
|
"appearance" : "luminosity",
|
||||||
|
"value" : "light"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"idiom" : "iphone",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances" : [
|
||||||
|
{
|
||||||
|
"appearance" : "luminosity",
|
||||||
|
"value" : "dark"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"idiom" : "iphone",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "iphone",
|
||||||
|
"scale" : "3x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances" : [
|
||||||
|
{
|
||||||
|
"appearance" : "luminosity",
|
||||||
|
"value" : "light"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"idiom" : "iphone",
|
||||||
|
"scale" : "3x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances" : [
|
||||||
|
{
|
||||||
|
"appearance" : "luminosity",
|
||||||
|
"value" : "dark"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"idiom" : "iphone",
|
||||||
|
"scale" : "3x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "iphone",
|
||||||
|
"scale" : "1x",
|
||||||
|
"subtype" : "retina4"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances" : [
|
||||||
|
{
|
||||||
|
"appearance" : "luminosity",
|
||||||
|
"value" : "light"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"idiom" : "iphone",
|
||||||
|
"scale" : "1x",
|
||||||
|
"subtype" : "retina4"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances" : [
|
||||||
|
{
|
||||||
|
"appearance" : "luminosity",
|
||||||
|
"value" : "dark"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"idiom" : "iphone",
|
||||||
|
"scale" : "1x",
|
||||||
|
"subtype" : "retina4"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "iphone",
|
||||||
|
"scale" : "2x",
|
||||||
|
"subtype" : "retina4"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances" : [
|
||||||
|
{
|
||||||
|
"appearance" : "luminosity",
|
||||||
|
"value" : "light"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"idiom" : "iphone",
|
||||||
|
"scale" : "2x",
|
||||||
|
"subtype" : "retina4"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances" : [
|
||||||
|
{
|
||||||
|
"appearance" : "luminosity",
|
||||||
|
"value" : "dark"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"idiom" : "iphone",
|
||||||
|
"scale" : "2x",
|
||||||
|
"subtype" : "retina4"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "iphone",
|
||||||
|
"scale" : "3x",
|
||||||
|
"subtype" : "retina4"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances" : [
|
||||||
|
{
|
||||||
|
"appearance" : "luminosity",
|
||||||
|
"value" : "light"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"idiom" : "iphone",
|
||||||
|
"scale" : "3x",
|
||||||
|
"subtype" : "retina4"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances" : [
|
||||||
|
{
|
||||||
|
"appearance" : "luminosity",
|
||||||
|
"value" : "dark"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"idiom" : "iphone",
|
||||||
|
"scale" : "3x",
|
||||||
|
"subtype" : "retina4"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "ipad"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances" : [
|
||||||
|
{
|
||||||
|
"appearance" : "luminosity",
|
||||||
|
"value" : "light"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"idiom" : "ipad"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances" : [
|
||||||
|
{
|
||||||
|
"appearance" : "luminosity",
|
||||||
|
"value" : "dark"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"idiom" : "ipad"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "ipad",
|
||||||
|
"scale" : "1x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances" : [
|
||||||
|
{
|
||||||
|
"appearance" : "luminosity",
|
||||||
|
"value" : "light"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"idiom" : "ipad",
|
||||||
|
"scale" : "1x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances" : [
|
||||||
|
{
|
||||||
|
"appearance" : "luminosity",
|
||||||
|
"value" : "dark"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"idiom" : "ipad",
|
||||||
|
"scale" : "1x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "ipad",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances" : [
|
||||||
|
{
|
||||||
|
"appearance" : "luminosity",
|
||||||
|
"value" : "light"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"idiom" : "ipad",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances" : [
|
||||||
|
{
|
||||||
|
"appearance" : "luminosity",
|
||||||
|
"value" : "dark"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"idiom" : "ipad",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "car",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances" : [
|
||||||
|
{
|
||||||
|
"appearance" : "luminosity",
|
||||||
|
"value" : "light"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"idiom" : "car",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances" : [
|
||||||
|
{
|
||||||
|
"appearance" : "luminosity",
|
||||||
|
"value" : "dark"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"idiom" : "car",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "car",
|
||||||
|
"scale" : "3x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances" : [
|
||||||
|
{
|
||||||
|
"appearance" : "luminosity",
|
||||||
|
"value" : "light"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"idiom" : "car",
|
||||||
|
"scale" : "3x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances" : [
|
||||||
|
{
|
||||||
|
"appearance" : "luminosity",
|
||||||
|
"value" : "dark"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"idiom" : "car",
|
||||||
|
"scale" : "3x"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"info" : {
|
||||||
|
"author" : "xcode",
|
||||||
|
"version" : 1
|
||||||
|
}
|
||||||
|
}
|
107
Meinkonrad/TINK.iOS/Media.xcassets/Location_Button.imageset/Location_Button.svg
vendored
Normal file
|
@ -0,0 +1,107 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
|
||||||
|
<svg
|
||||||
|
width="56.000221"
|
||||||
|
height="56.000034"
|
||||||
|
viewBox="0 0 14.816725 14.816675"
|
||||||
|
version="1.1"
|
||||||
|
id="svg5"
|
||||||
|
inkscape:version="1.1.2 (b8e25be833, 2022-02-05)"
|
||||||
|
sodipodi:docname="Location_Button.svg"
|
||||||
|
inkscape:export-filename="C:\Users\Anja\Desktop\Location_Button.png"
|
||||||
|
inkscape:export-xdpi="96"
|
||||||
|
inkscape:export-ydpi="96"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg">
|
||||||
|
<sodipodi:namedview
|
||||||
|
id="namedview7"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#666666"
|
||||||
|
borderopacity="1.0"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:pageopacity="0.74901961"
|
||||||
|
inkscape:pagecheckerboard="0"
|
||||||
|
inkscape:document-units="mm"
|
||||||
|
showgrid="true"
|
||||||
|
fit-margin-top="5"
|
||||||
|
fit-margin-left="5"
|
||||||
|
fit-margin-right="5"
|
||||||
|
fit-margin-bottom="5"
|
||||||
|
inkscape:zoom="11.402918"
|
||||||
|
inkscape:cx="17.407825"
|
||||||
|
inkscape:cy="24.642815"
|
||||||
|
inkscape:window-width="1920"
|
||||||
|
inkscape:window-height="1009"
|
||||||
|
inkscape:window-x="-8"
|
||||||
|
inkscape:window-y="-8"
|
||||||
|
inkscape:window-maximized="1"
|
||||||
|
inkscape:current-layer="g1443"
|
||||||
|
units="px"
|
||||||
|
lock-margins="true">
|
||||||
|
<inkscape:grid
|
||||||
|
type="xygrid"
|
||||||
|
id="grid1378"
|
||||||
|
originx="3.43958"
|
||||||
|
originy="3.4395888" />
|
||||||
|
</sodipodi:namedview>
|
||||||
|
<defs
|
||||||
|
id="defs2" />
|
||||||
|
<g
|
||||||
|
inkscape:label="Layer 1"
|
||||||
|
inkscape:groupmode="layer"
|
||||||
|
id="layer1"
|
||||||
|
transform="translate(-43.106273,-79.915487)">
|
||||||
|
<g
|
||||||
|
id="g1443">
|
||||||
|
<ellipse
|
||||||
|
style="fill:none;fill-opacity:1;stroke:#333333;stroke-width:1.05833;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
|
||||||
|
id="path846"
|
||||||
|
cx="50.523026"
|
||||||
|
cy="87.332237"
|
||||||
|
inkscape:export-filename="C:\Users\Anja\Desktop\Location_Pin.png"
|
||||||
|
inkscape:export-xdpi="96"
|
||||||
|
inkscape:export-ydpi="96"
|
||||||
|
rx="3.9684811"
|
||||||
|
ry="3.9684813" />
|
||||||
|
<circle
|
||||||
|
style="fill:#333333;fill-opacity:1;stroke:none;stroke-width:1.61265;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
|
||||||
|
id="path1042"
|
||||||
|
cx="50.534115"
|
||||||
|
cy="87.326935"
|
||||||
|
r="1.5875" />
|
||||||
|
<rect
|
||||||
|
style="fill:#333333;fill-opacity:1;stroke:none;stroke-width:1.35094;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
|
||||||
|
id="rect1296"
|
||||||
|
width="1.0583333"
|
||||||
|
height="2.6458333"
|
||||||
|
x="49.985435"
|
||||||
|
y="81.238403" />
|
||||||
|
<rect
|
||||||
|
style="fill:#333333;fill-opacity:1;stroke:none;stroke-width:1.35094;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
|
||||||
|
id="rect1296-9"
|
||||||
|
width="1.0583333"
|
||||||
|
height="2.6458333"
|
||||||
|
x="49.985435"
|
||||||
|
y="90.763412" />
|
||||||
|
<rect
|
||||||
|
style="fill:#333333;fill-opacity:1;stroke:none;stroke-width:1.35093;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
|
||||||
|
id="rect1296-0"
|
||||||
|
width="1.0583172"
|
||||||
|
height="2.6458309"
|
||||||
|
x="86.794319"
|
||||||
|
y="-56.600288"
|
||||||
|
transform="matrix(-2.3780451e-6,1,-1,-6.0876213e-6,0,0)" />
|
||||||
|
<rect
|
||||||
|
style="fill:#333333;fill-opacity:1;stroke:none;stroke-width:1.35093;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
|
||||||
|
id="rect1296-0-8"
|
||||||
|
width="1.0583172"
|
||||||
|
height="2.6458309"
|
||||||
|
x="86.794388"
|
||||||
|
y="-47.07523"
|
||||||
|
transform="matrix(-2.3780451e-6,1,-1,-6.0876213e-6,0,0)" />
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 4 KiB |
354
Meinkonrad/TINK.iOS/Media.xcassets/Location_Pin.imageset/Contents.json
vendored
Normal file
|
@ -0,0 +1,354 @@
|
||||||
|
{
|
||||||
|
"images": [
|
||||||
|
{
|
||||||
|
"appearances": [],
|
||||||
|
"scale": "1x",
|
||||||
|
"idiom": "universal"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances": [],
|
||||||
|
"scale": "2x",
|
||||||
|
"idiom": "universal"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances": [],
|
||||||
|
"scale": "3x",
|
||||||
|
"idiom": "universal"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances": [],
|
||||||
|
"idiom": "iphone"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances": [],
|
||||||
|
"scale": "1x",
|
||||||
|
"idiom": "iphone"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances": [],
|
||||||
|
"scale": "2x",
|
||||||
|
"idiom": "iphone"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances": [],
|
||||||
|
"scale": "2x",
|
||||||
|
"idiom": "iphone",
|
||||||
|
"subtype": "retina4"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances": [],
|
||||||
|
"scale": "3x",
|
||||||
|
"idiom": "iphone"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances": [],
|
||||||
|
"idiom": "ipad"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances": [],
|
||||||
|
"scale": "1x",
|
||||||
|
"idiom": "ipad"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances": [],
|
||||||
|
"scale": "2x",
|
||||||
|
"idiom": "ipad"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances": [],
|
||||||
|
"scale": "2x",
|
||||||
|
"idiom": "car"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances": [],
|
||||||
|
"scale": "3x",
|
||||||
|
"idiom": "car"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances": [
|
||||||
|
{
|
||||||
|
"appearance": "luminosity",
|
||||||
|
"value": "dark"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"idiom": "universal"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances": [
|
||||||
|
{
|
||||||
|
"appearance": "luminosity",
|
||||||
|
"value": "dark"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"scale": "1x",
|
||||||
|
"idiom": "universal"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances": [
|
||||||
|
{
|
||||||
|
"appearance": "luminosity",
|
||||||
|
"value": "dark"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"scale": "2x",
|
||||||
|
"idiom": "universal"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances": [
|
||||||
|
{
|
||||||
|
"appearance": "luminosity",
|
||||||
|
"value": "dark"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"scale": "3x",
|
||||||
|
"idiom": "universal"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances": [
|
||||||
|
{
|
||||||
|
"appearance": "luminosity",
|
||||||
|
"value": "dark"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"idiom": "iphone"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances": [
|
||||||
|
{
|
||||||
|
"appearance": "luminosity",
|
||||||
|
"value": "dark"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"scale": "1x",
|
||||||
|
"idiom": "iphone"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances": [
|
||||||
|
{
|
||||||
|
"appearance": "luminosity",
|
||||||
|
"value": "dark"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"scale": "2x",
|
||||||
|
"idiom": "iphone"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances": [
|
||||||
|
{
|
||||||
|
"appearance": "luminosity",
|
||||||
|
"value": "dark"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"scale": "2x",
|
||||||
|
"idiom": "iphone",
|
||||||
|
"subtype": "retina4"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances": [
|
||||||
|
{
|
||||||
|
"appearance": "luminosity",
|
||||||
|
"value": "dark"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"scale": "3x",
|
||||||
|
"idiom": "iphone"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances": [
|
||||||
|
{
|
||||||
|
"appearance": "luminosity",
|
||||||
|
"value": "dark"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"idiom": "ipad"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances": [
|
||||||
|
{
|
||||||
|
"appearance": "luminosity",
|
||||||
|
"value": "dark"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"scale": "1x",
|
||||||
|
"idiom": "ipad"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances": [
|
||||||
|
{
|
||||||
|
"appearance": "luminosity",
|
||||||
|
"value": "dark"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"scale": "2x",
|
||||||
|
"idiom": "ipad"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances": [
|
||||||
|
{
|
||||||
|
"appearance": "luminosity",
|
||||||
|
"value": "dark"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"scale": "2x",
|
||||||
|
"idiom": "car"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances": [
|
||||||
|
{
|
||||||
|
"appearance": "luminosity",
|
||||||
|
"value": "dark"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"scale": "3x",
|
||||||
|
"idiom": "car"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances": [
|
||||||
|
{
|
||||||
|
"appearance": "luminosity",
|
||||||
|
"value": "light"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"idiom": "universal"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances": [
|
||||||
|
{
|
||||||
|
"appearance": "luminosity",
|
||||||
|
"value": "light"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"scale": "1x",
|
||||||
|
"idiom": "universal"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances": [
|
||||||
|
{
|
||||||
|
"appearance": "luminosity",
|
||||||
|
"value": "light"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"scale": "2x",
|
||||||
|
"idiom": "universal"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances": [
|
||||||
|
{
|
||||||
|
"appearance": "luminosity",
|
||||||
|
"value": "light"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"scale": "3x",
|
||||||
|
"idiom": "universal"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances": [
|
||||||
|
{
|
||||||
|
"appearance": "luminosity",
|
||||||
|
"value": "light"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"idiom": "iphone"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances": [
|
||||||
|
{
|
||||||
|
"appearance": "luminosity",
|
||||||
|
"value": "light"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"scale": "1x",
|
||||||
|
"idiom": "iphone"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances": [
|
||||||
|
{
|
||||||
|
"appearance": "luminosity",
|
||||||
|
"value": "light"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"scale": "2x",
|
||||||
|
"idiom": "iphone"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances": [
|
||||||
|
{
|
||||||
|
"appearance": "luminosity",
|
||||||
|
"value": "light"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"scale": "2x",
|
||||||
|
"idiom": "iphone",
|
||||||
|
"subtype": "retina4"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances": [
|
||||||
|
{
|
||||||
|
"appearance": "luminosity",
|
||||||
|
"value": "light"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"scale": "3x",
|
||||||
|
"idiom": "iphone"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances": [
|
||||||
|
{
|
||||||
|
"appearance": "luminosity",
|
||||||
|
"value": "light"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"idiom": "ipad"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances": [
|
||||||
|
{
|
||||||
|
"appearance": "luminosity",
|
||||||
|
"value": "light"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"scale": "1x",
|
||||||
|
"idiom": "ipad"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances": [
|
||||||
|
{
|
||||||
|
"appearance": "luminosity",
|
||||||
|
"value": "light"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"scale": "2x",
|
||||||
|
"idiom": "ipad"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances": [
|
||||||
|
{
|
||||||
|
"appearance": "luminosity",
|
||||||
|
"value": "light"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"scale": "2x",
|
||||||
|
"idiom": "car"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances": [
|
||||||
|
{
|
||||||
|
"appearance": "luminosity",
|
||||||
|
"value": "light"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"scale": "3x",
|
||||||
|
"idiom": "car"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances": [],
|
||||||
|
"idiom": "universal",
|
||||||
|
"filename": "Location_Pin.pdf"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"properties": {},
|
||||||
|
"info": {
|
||||||
|
"version": 1,
|
||||||
|
"author": "xcode"
|
||||||
|
}
|
||||||
|
}
|
70
Meinkonrad/TINK.iOS/Media.xcassets/Location_Pin.imageset/Location_Pin.pdf
vendored
Normal file
|
@ -0,0 +1,70 @@
|
||||||
|
%PDF-1.5
|
||||||
|
%µí®û
|
||||||
|
4 0 obj
|
||||||
|
<< /Length 5 0 R
|
||||||
|
/Filter /FlateDecode
|
||||||
|
>>
|
||||||
|
stream
|
||||||
|
xœÕ<EFBFBD>A
|
||||||
|
1E÷9Å¿€1iÆNç‚àbt).dÄÁÅèÂë›jg@=<3D>
ýä“ßGª¯™ºTÊ!˜iDw¥<77>¹6KÌ‚þN‘%Ÿü^h·‡°àHÖ /Ö[a)ó„£®(Þ„õ#R\N©.ž0½ƒ<>·%3F'F–tá}Ñ&ÆùgÃ-ZòåÙbŠ¡ö¦ºˆ
n=þï3'jé Õ[ƒ
|
||||||
|
endstream
|
||||||
|
endobj
|
||||||
|
5 0 obj
|
||||||
|
165
|
||||||
|
endobj
|
||||||
|
3 0 obj
|
||||||
|
<<
|
||||||
|
/ExtGState <<
|
||||||
|
/a0 << /CA 1 /ca 1 >>
|
||||||
|
>>
|
||||||
|
>>
|
||||||
|
endobj
|
||||||
|
2 0 obj
|
||||||
|
<< /Type /Page % 1
|
||||||
|
/Parent 1 0 R
|
||||||
|
/MediaBox [ 0 0 41.223316 41.223316 ]
|
||||||
|
/Contents 4 0 R
|
||||||
|
/Group <<
|
||||||
|
/Type /Group
|
||||||
|
/S /Transparency
|
||||||
|
/I true
|
||||||
|
/CS /DeviceRGB
|
||||||
|
>>
|
||||||
|
/Resources 3 0 R
|
||||||
|
>>
|
||||||
|
endobj
|
||||||
|
1 0 obj
|
||||||
|
<< /Type /Pages
|
||||||
|
/Kids [ 2 0 R ]
|
||||||
|
/Count 1
|
||||||
|
>>
|
||||||
|
endobj
|
||||||
|
6 0 obj
|
||||||
|
<< /Producer (cairo 1.17.4 (https://cairographics.org))
|
||||||
|
/Creator <FEFF0049006E006B0073006300610070006500200031002E0031002E00320020002800680074007400700073003A002F002F0069006E006B00730063006100700065002E006F007200670029>
|
||||||
|
/CreationDate (D:20221116092441+01'00)
|
||||||
|
>>
|
||||||
|
endobj
|
||||||
|
7 0 obj
|
||||||
|
<< /Type /Catalog
|
||||||
|
/Pages 1 0 R
|
||||||
|
>>
|
||||||
|
endobj
|
||||||
|
xref
|
||||||
|
0 8
|
||||||
|
0000000000 65535 f
|
||||||
|
0000000581 00000 n
|
||||||
|
0000000351 00000 n
|
||||||
|
0000000279 00000 n
|
||||||
|
0000000015 00000 n
|
||||||
|
0000000257 00000 n
|
||||||
|
0000000646 00000 n
|
||||||
|
0000000929 00000 n
|
||||||
|
trailer
|
||||||
|
<< /Size 8
|
||||||
|
/Root 7 0 R
|
||||||
|
/Info 6 0 R
|
||||||
|
>>
|
||||||
|
startxref
|
||||||
|
981
|
||||||
|
%%EOF
|
|
@ -317,6 +317,18 @@
|
||||||
</ImageAsset>
|
</ImageAsset>
|
||||||
<ImageAsset Include="Media.xcassets\Open_Red.imageset\Contents.json">
|
<ImageAsset Include="Media.xcassets\Open_Red.imageset\Contents.json">
|
||||||
<Visible>false</Visible>
|
<Visible>false</Visible>
|
||||||
|
</ImageAsset>
|
||||||
|
<ImageAsset Include="Media.xcassets\Location_Pin.imageset\Contents.json">
|
||||||
|
<Visible>false</Visible>
|
||||||
|
</ImageAsset>
|
||||||
|
<ImageAsset Include="Media.xcassets\Location_Pin.imageset\Location_Pin.pdf">
|
||||||
|
<Visible>false</Visible>
|
||||||
|
</ImageAsset>
|
||||||
|
<ImageAsset Include="Media.xcassets\Location_Button.imageset\Contents.json">
|
||||||
|
<Visible>false</Visible>
|
||||||
|
</ImageAsset>
|
||||||
|
<ImageAsset Include="Media.xcassets\Location_Button.imageset\Location_Button.svg">
|
||||||
|
<Visible>false</Visible>
|
||||||
</ImageAsset>
|
</ImageAsset>
|
||||||
<ImageAsset Include="Media.xcassets\swk_theme.imageset\swk_theme.pdf">
|
<ImageAsset Include="Media.xcassets\swk_theme.imageset\swk_theme.pdf">
|
||||||
<Visible>false</Visible>
|
<Visible>false</Visible>
|
||||||
|
@ -537,6 +549,8 @@
|
||||||
<Folder Include="Media.xcassets\Open_Green.imageset\" />
|
<Folder Include="Media.xcassets\Open_Green.imageset\" />
|
||||||
<Folder Include="Media.xcassets\Open_LightBlue.imageset\" />
|
<Folder Include="Media.xcassets\Open_LightBlue.imageset\" />
|
||||||
<Folder Include="Media.xcassets\Open_Red.imageset\" />
|
<Folder Include="Media.xcassets\Open_Red.imageset\" />
|
||||||
|
<Folder Include="Media.xcassets\Location_Pin.imageset\" />
|
||||||
|
<Folder Include="Media.xcassets\Location_Button.imageset\" />
|
||||||
<Folder Include="Media.xcassets\sharee_no_background.imageset\" />
|
<Folder Include="Media.xcassets\sharee_no_background.imageset\" />
|
||||||
<Folder Include="Media.xcassets\swk_theme.imageset\" />
|
<Folder Include="Media.xcassets\swk_theme.imageset\" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
|
@ -22,6 +22,11 @@
|
||||||
<x:String x:Key="IconInfo"></x:String>
|
<x:String x:Key="IconInfo"></x:String>
|
||||||
<!--<x:String x:Key="IconClose"></x:String>-->
|
<!--<x:String x:Key="IconClose"></x:String>-->
|
||||||
<x:String x:Key="IconClose"></x:String>
|
<x:String x:Key="IconClose"></x:String>
|
||||||
|
|
||||||
|
<!--TogglePasswortEntry-->
|
||||||
|
<x:String x:Key="EyeOpen"></x:String>
|
||||||
|
<x:String x:Key="EyeClose"></x:String>
|
||||||
|
|
||||||
<!-- Add more resources here -->
|
<!-- Add more resources here -->
|
||||||
<ResourceDictionary.MergedDictionaries>
|
<ResourceDictionary.MergedDictionaries>
|
||||||
<!-- Add more resource dictionaries here -->
|
<!-- Add more resource dictionaries here -->
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Globalization;
|
using System.Globalization;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
|
|
@ -1,8 +1,9 @@
|
||||||
<?xml version="1.0" encoding="utf-8" ?>
|
<?xml version="1.0" encoding="utf-8" ?>
|
||||||
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
|
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
|
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
|
||||||
xmlns:resources="clr-namespace:TINK.MultilingualResources;assembly=TINKLib"
|
xmlns:resources="clr-namespace:TINK.MultilingualResources;assembly=TINKLib"
|
||||||
x:Class="TINK.View.Login.LoginPage">
|
xmlns:sharedGui="clr-namespace:ShareeSharedGuiLib.View"
|
||||||
|
x:Class="TINK.View.Login.LoginPage">
|
||||||
<Shell.TitleView>
|
<Shell.TitleView>
|
||||||
<Grid ColumnDefinitions="Auto, 1*">
|
<Grid ColumnDefinitions="Auto, 1*">
|
||||||
<Image Style="{StaticResource Image-Navbar}"/>
|
<Image Style="{StaticResource Image-Navbar}"/>
|
||||||
|
@ -44,13 +45,14 @@
|
||||||
</DataTrigger>
|
</DataTrigger>
|
||||||
</Label.Triggers>
|
</Label.Triggers>
|
||||||
</Label>
|
</Label>
|
||||||
<Entry Placeholder="{x:Static resources:AppResources.MarkingLoginPasswordPlaceholder}"
|
<sharedGui:TogglePasswordEntry
|
||||||
AutomationId="password_text"
|
Placeholder="{x:Static resources:AppResources.MarkingLoginPasswordPlaceholder}"
|
||||||
IsPassword="true"
|
Text="{Binding Password}"
|
||||||
x:Name="PasswordEntry"
|
HidePassword="True"
|
||||||
Text="{Binding Password}"
|
AutomationId="password_text"
|
||||||
IsEnabled="{Binding IsLoggedOut}"/>
|
x:Name="PasswordEntry"
|
||||||
<Label Text="{x:Static resources:AppResources.MarkingLoginPasswordLabel}"
|
IsEnabled="{Binding IsLoggedOut}"/>
|
||||||
|
<Label Text="{x:Static resources:AppResources.MarkingLoginPasswordLabel}"
|
||||||
HorizontalOptions="End"
|
HorizontalOptions="End"
|
||||||
Margin="0,-10,0,5"
|
Margin="0,-10,0,5"
|
||||||
FontSize="Small">
|
FontSize="Small">
|
||||||
|
@ -96,4 +98,4 @@
|
||||||
</StackLayout>
|
</StackLayout>
|
||||||
</Frame>
|
</Frame>
|
||||||
</ScrollView>
|
</ScrollView>
|
||||||
</ContentPage>
|
</ContentPage>
|
||||||
|
|
|
@ -90,6 +90,24 @@
|
||||||
</StackLayout>
|
</StackLayout>
|
||||||
</Frame>
|
</Frame>
|
||||||
|
|
||||||
|
<!--Center to currentLocation Button-->
|
||||||
|
<ImageButton
|
||||||
|
Grid.Row="2"
|
||||||
|
Grid.ColumnSpan="3"
|
||||||
|
x:Name="CurrentLocation"
|
||||||
|
AutomationId ="currentLocaton_button"
|
||||||
|
Command="{Binding OnCurrentLocationButtonClicked}"
|
||||||
|
IsVisible="True"
|
||||||
|
BackgroundColor="Transparent"
|
||||||
|
VerticalOptions="End"
|
||||||
|
HorizontalOptions="End"
|
||||||
|
Margin="0,0,11,100"
|
||||||
|
Source="Location_Button.png"
|
||||||
|
WidthRequest="40"
|
||||||
|
HeightRequest="40"
|
||||||
|
CornerRadius="20">
|
||||||
|
</ImageButton>
|
||||||
|
|
||||||
<!--While process is running-->
|
<!--While process is running-->
|
||||||
<!--Spinner-->
|
<!--Spinner-->
|
||||||
<ActivityIndicator
|
<ActivityIndicator
|
||||||
|
|
|
@ -36,6 +36,10 @@
|
||||||
<Compile Include="$(MSBuildThisFileDirectory)View\VersionNumberView.xaml.cs">
|
<Compile Include="$(MSBuildThisFileDirectory)View\VersionNumberView.xaml.cs">
|
||||||
<DependentUpon>VersionNumberView.xaml</DependentUpon>
|
<DependentUpon>VersionNumberView.xaml</DependentUpon>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
<Compile Include="$(MSBuildThisFileDirectory)View\TogglePasswordEntry.xaml.cs">
|
||||||
|
<DependentUpon>TogglePasswordEntry.xaml</DependentUpon>
|
||||||
|
<SubType>Code</SubType>
|
||||||
|
</Compile>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<EmbeddedResource Include="$(MSBuildThisFileDirectory)View\BarLevelInputView.xaml">
|
<EmbeddedResource Include="$(MSBuildThisFileDirectory)View\BarLevelInputView.xaml">
|
||||||
|
@ -48,4 +52,10 @@
|
||||||
<Generator>MSBuild:UpdateDesignTimeXaml</Generator>
|
<Generator>MSBuild:UpdateDesignTimeXaml</Generator>
|
||||||
</EmbeddedResource>
|
</EmbeddedResource>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<EmbeddedResource Include="$(MSBuildThisFileDirectory)View\TogglePasswordEntry.xaml">
|
||||||
|
<SubType>Designer</SubType>
|
||||||
|
<Generator>MSBuild:UpdateDesignTimeXaml</Generator>
|
||||||
|
</EmbeddedResource>
|
||||||
|
</ItemGroup>
|
||||||
</Project>
|
</Project>
|
45
ShareeSharedGuiLib/View/TogglePasswordEntry.xaml
Normal file
|
@ -0,0 +1,45 @@
|
||||||
|
<ContentView xmlns="http://xamarin.com/schemas/2014/forms"
|
||||||
|
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
|
||||||
|
x:Class="ShareeSharedGuiLib.View.TogglePasswordEntry"
|
||||||
|
xmlns:resources="clr-namespace:TINK.MultilingualResources;assembly=TINKLib"
|
||||||
|
x:Name="root">
|
||||||
|
<ContentView.Content>
|
||||||
|
<Grid BindingContext="{x:Reference root}">
|
||||||
|
<Grid.ColumnDefinitions>
|
||||||
|
<ColumnDefinition Width="*"/>
|
||||||
|
<ColumnDefinition Width="20"/>
|
||||||
|
</Grid.ColumnDefinitions>
|
||||||
|
<Entry Placeholder="{Binding Placeholder}"
|
||||||
|
IsPassword="{Binding HidePassword}"
|
||||||
|
Text="{Binding Text}"/>
|
||||||
|
<ImageButton Clicked="OnImageButtonClicked"
|
||||||
|
BackgroundColor="Transparent"
|
||||||
|
Grid.Column="1">
|
||||||
|
<ImageButton.Triggers>
|
||||||
|
<DataTrigger TargetType="ImageButton"
|
||||||
|
Binding="{Binding HidePassword}"
|
||||||
|
Value="True">
|
||||||
|
<Setter Property="Source">
|
||||||
|
<Setter.Value>
|
||||||
|
<FontImageSource Glyph="{StaticResource EyeOpen}"
|
||||||
|
Color="{Binding HidePasswordColor}"
|
||||||
|
FontFamily="FA-S" />
|
||||||
|
</Setter.Value>
|
||||||
|
</Setter>
|
||||||
|
</DataTrigger>
|
||||||
|
<DataTrigger TargetType="ImageButton"
|
||||||
|
Binding="{Binding HidePassword}"
|
||||||
|
Value="False">
|
||||||
|
<Setter Property="Source">
|
||||||
|
<Setter.Value>
|
||||||
|
<FontImageSource Glyph="{StaticResource EyeClose}"
|
||||||
|
Color="{Binding HidePasswordColor}"
|
||||||
|
FontFamily="FA-S" />
|
||||||
|
</Setter.Value>
|
||||||
|
</Setter>
|
||||||
|
</DataTrigger>
|
||||||
|
</ImageButton.Triggers>
|
||||||
|
</ImageButton>
|
||||||
|
</Grid>
|
||||||
|
</ContentView.Content>
|
||||||
|
</ContentView>
|
65
ShareeSharedGuiLib/View/TogglePasswordEntry.xaml.cs
Normal file
|
@ -0,0 +1,65 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
using Xamarin.Forms;
|
||||||
|
using Xamarin.Forms.Xaml;
|
||||||
|
|
||||||
|
namespace ShareeSharedGuiLib.View
|
||||||
|
{
|
||||||
|
[XamlCompilation(XamlCompilationOptions.Compile)]
|
||||||
|
public partial class TogglePasswordEntry : ContentView
|
||||||
|
{
|
||||||
|
|
||||||
|
public static readonly BindableProperty PlaceholderProperty =
|
||||||
|
BindableProperty.Create(nameof(Placeholder), typeof(string), typeof(TogglePasswordEntry));
|
||||||
|
|
||||||
|
public static readonly BindableProperty TextProperty =
|
||||||
|
BindableProperty.Create(nameof(Text), typeof(string), typeof(TogglePasswordEntry),
|
||||||
|
defaultBindingMode: BindingMode.TwoWay);
|
||||||
|
|
||||||
|
public static readonly BindableProperty HidePasswordProperty =
|
||||||
|
BindableProperty.Create(nameof(HidePassword), typeof(bool), typeof(TogglePasswordEntry),
|
||||||
|
defaultValue: true);
|
||||||
|
|
||||||
|
public static readonly BindableProperty HidePasswordColorProperty =
|
||||||
|
BindableProperty.Create(nameof(HidePasswordColor), typeof(Color), typeof(TogglePasswordEntry),
|
||||||
|
defaultValue: Color.DimGray);
|
||||||
|
|
||||||
|
public string Placeholder
|
||||||
|
{
|
||||||
|
get => (string)GetValue(PlaceholderProperty);
|
||||||
|
set => SetValue(PlaceholderProperty, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
public string Text
|
||||||
|
{
|
||||||
|
get => (string)GetValue(TextProperty);
|
||||||
|
set => SetValue(TextProperty, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool HidePassword
|
||||||
|
{
|
||||||
|
get => (bool)GetValue(HidePasswordProperty);
|
||||||
|
set => SetValue(HidePasswordProperty, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
public Color HidePasswordColor
|
||||||
|
{
|
||||||
|
get => (Color)GetValue(HidePasswordColorProperty);
|
||||||
|
set => SetValue(HidePasswordColorProperty, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
public TogglePasswordEntry()
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnImageButtonClicked(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
HidePassword = !HidePassword;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
BIN
TINK/TINK.Android/Assets/Location_Pin.png
Normal file
After Width: | Height: | Size: 1.8 KiB |
|
@ -1,4 +1,5 @@
|
||||||
|
|
||||||
|
using System.Collections.Generic;
|
||||||
using Android.App;
|
using Android.App;
|
||||||
using Android.Content;
|
using Android.Content;
|
||||||
using Android.Content.PM;
|
using Android.Content.PM;
|
||||||
|
@ -7,12 +8,21 @@ using Android.OS;
|
||||||
using Android.Util;
|
using Android.Util;
|
||||||
using Firebase;
|
using Firebase;
|
||||||
using Java.Interop;
|
using Java.Interop;
|
||||||
|
using Java.Security.Acl;
|
||||||
using Plugin.Permissions;
|
using Plugin.Permissions;
|
||||||
using Xamarin.Forms.Platform.Android.AppLinks;
|
using Xamarin.Forms.Platform.Android.AppLinks;
|
||||||
|
using static Xamarin.Essentials.Permissions;
|
||||||
|
using Xamarin.Essentials;
|
||||||
|
using Android.Runtime;
|
||||||
|
|
||||||
namespace TINK.Droid
|
namespace TINK.Droid
|
||||||
{
|
{
|
||||||
[Activity(Label = "Sharee", Icon = "@drawable/sharee", Theme = "@style/MainTheme", MainLauncher = true, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation)]
|
[Activity(
|
||||||
|
Label = "Sharee",
|
||||||
|
Icon = "@drawable/sharee",
|
||||||
|
Theme = "@style/MainTheme",
|
||||||
|
MainLauncher = true,
|
||||||
|
ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation)]
|
||||||
|
|
||||||
[IntentFilter(new[] { Intent.ActionView },
|
[IntentFilter(new[] { Intent.ActionView },
|
||||||
Categories = new[] { Intent.ActionView, Intent.CategoryBrowsable, Intent.CategoryDefault },
|
Categories = new[] { Intent.ActionView, Intent.CategoryBrowsable, Intent.CategoryDefault },
|
||||||
|
@ -40,7 +50,7 @@ namespace TINK.Droid
|
||||||
metrics.ScaledDensity = configuration.FontScale * metrics.Density;
|
metrics.ScaledDensity = configuration.FontScale * metrics.Density;
|
||||||
BaseContext.Resources.UpdateConfiguration(configuration, metrics);
|
BaseContext.Resources.UpdateConfiguration(configuration, metrics);
|
||||||
}
|
}
|
||||||
protected override void OnCreate(Bundle bundle)
|
protected override async void OnCreate(Bundle bundle)
|
||||||
{
|
{
|
||||||
initFontScale();
|
initFontScale();
|
||||||
|
|
||||||
|
@ -75,27 +85,49 @@ namespace TINK.Droid
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
await Permissions.RequestAsync<BLEAndLocationPermissions>();
|
||||||
|
|
||||||
LoadApplication(new App());
|
LoadApplication(new App());
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
//Bluetooth Permission on Android 12 "Detect Devices nearby"
|
||||||
|
// https://stackoverflow.com/questions/71028853/xamarin-forms-ble-plugin-scan-issue-android-12
|
||||||
|
public class BLEAndLocationPermissions : BasePlatformPermission
|
||||||
|
{
|
||||||
|
public override (string androidPermission, bool isRuntime)[] RequiredPermissions => new List<(string androidPermission, bool isRuntime)>
|
||||||
|
{
|
||||||
|
(Android.Manifest.Permission.BluetoothScan, true),
|
||||||
|
(Android.Manifest.Permission.BluetoothConnect, true),
|
||||||
|
(Android.Manifest.Permission.AccessFineLocation, true)
|
||||||
|
}.ToArray();
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Handles opening the dialog to request for permissions.
|
/// Handles opening the dialog to request for permissions.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public override void OnRequestPermissionsResult(int requestCode, string[] permissions, Android.Content.PM.Permission[] grantResults)
|
public override void OnRequestPermissionsResult(int requestCode, string[] permissions, [GeneratedEnum] Android.Content.PM.Permission[] grantResults)
|
||||||
{
|
{
|
||||||
if (App.PermissionsService.GetType() == typeof(TINK.Services.Permissions.Essentials.Permissions))
|
Xamarin.Essentials.Platform.OnRequestPermissionsResult(requestCode, permissions, grantResults);
|
||||||
{
|
PermissionsImplementation.Current.OnRequestPermissionsResult(requestCode, permissions, grantResults);
|
||||||
Xamarin.Essentials.Platform.OnRequestPermissionsResult(requestCode, permissions, grantResults);
|
|
||||||
}
|
|
||||||
else if (App.PermissionsService.GetType() == typeof(TINK.Services.Permissions.Plugin.Permissions))
|
|
||||||
{
|
|
||||||
// Bug in 3.0.244 and earlier versions of sharee.bike app: Call of PermissionsImplementation.Current.OnRequestedPermission result was missing.
|
|
||||||
// see https://dev.azure.com/TeilRad/sharee.bike%20Buchungsplattform/_workitems/edit/136 for further details.
|
|
||||||
PermissionsImplementation.Current.OnRequestPermissionsResult(requestCode, permissions, grantResults);
|
|
||||||
}
|
|
||||||
|
|
||||||
base.OnRequestPermissionsResult(requestCode, permissions, grantResults);
|
base.OnRequestPermissionsResult(requestCode, permissions, grantResults);
|
||||||
}
|
}
|
||||||
|
//public override void OnRequestPermissionsResult(int requestCode, string[] permissions, Android.Content.PM.Permission[] grantResults)
|
||||||
|
//{
|
||||||
|
// if (App.PermissionsService.GetType() == typeof(TINK.Services.Permissions.Essentials.Permissions))
|
||||||
|
// {
|
||||||
|
// Xamarin.Essentials.Platform.OnRequestPermissionsResult(requestCode, permissions, grantResults);
|
||||||
|
// }
|
||||||
|
// else if (App.PermissionsService.GetType() == typeof(TINK.Services.Permissions.Plugin.Permissions))
|
||||||
|
// {
|
||||||
|
// // Bug in 3.0.244 and earlier versions of sharee.bike app: Call of PermissionsImplementation.Current.OnRequestedPermission result was missing.
|
||||||
|
// // see https://dev.azure.com/TeilRad/sharee.bike%20Buchungsplattform/_workitems/edit/136 for further details.
|
||||||
|
// PermissionsImplementation.Current.OnRequestPermissionsResult(requestCode, permissions, grantResults);
|
||||||
|
// }
|
||||||
|
|
||||||
|
// base.OnRequestPermissionsResult(requestCode, permissions, grantResults);
|
||||||
|
//}
|
||||||
|
|
||||||
[Export("TapStation")]
|
[Export("TapStation")]
|
||||||
public void TapStation(string stationNr)
|
public void TapStation(string stationNr)
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:installLocation="internalOnly" package="com.hauffware.sharee" android:versionName="3.0.347" android:versionCode="347">
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:installLocation="internalOnly" package="com.hauffware.sharee" android:versionName="3.0.350" android:versionCode="350">
|
||||||
<uses-sdk android:minSdkVersion="19" android:targetSdkVersion="30" />
|
<uses-sdk android:minSdkVersion="19" android:targetSdkVersion="31" />
|
||||||
<!-- Google Maps related permissions -->
|
<!-- Google Maps related permissions -->
|
||||||
<!-- Permission to receive remote notifications from Google Play Services -->
|
<!-- Permission to receive remote notifications from Google Play Services -->
|
||||||
<!-- Notice here that we have the package name of our application as a prefix on the permissions. -->
|
<!-- Notice here that we have the package name of our application as a prefix on the permissions. -->
|
||||||
|
@ -9,13 +9,18 @@
|
||||||
<!-- Access Google based webservices -->
|
<!-- Access Google based webservices -->
|
||||||
<!-- External storage for caching. -->
|
<!-- External storage for caching. -->
|
||||||
<!-- My Location -->
|
<!-- My Location -->
|
||||||
<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_FINE_LOCATION" />
|
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
|
||||||
|
<uses-permission android:name="android.permission.BLUETOOTH"
|
||||||
|
android:maxSdkVersion="30" />
|
||||||
|
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"
|
||||||
|
android:maxSdkVersion="30" />
|
||||||
|
<uses-permission android:name="android.permission.BLUETOOTH_SCAN"
|
||||||
|
android:usesPermissionFlags="neverForLocation" />
|
||||||
|
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
|
||||||
<uses-feature android:name="android.hardware.location" android:required="false" />
|
<uses-feature android:name="android.hardware.location" android:required="false" />
|
||||||
<uses-feature android:name="android.hardware.location.gps" android:required="false" />
|
<uses-feature android:name="android.hardware.location.gps" android:required="false" />
|
||||||
<uses-feature android:name="android.hardware.location.network" android:required="false" />
|
<uses-feature android:name="android.hardware.location.network" android:required="false" />
|
||||||
<uses-permission android:name="android.permission.BLUETOOTH" />
|
|
||||||
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
|
|
||||||
<uses-feature android:name="android.hardware.bluetooth_le" android:required="true" />
|
<uses-feature android:name="android.hardware.bluetooth_le" android:required="true" />
|
||||||
<application android:icon="@drawable/sharee" android:label="sharee.bike" android:allowBackup="false"></application>
|
<application android:icon="@drawable/sharee" android:label="sharee.bike" android:allowBackup="false"></application>
|
||||||
<queries>
|
<queries>
|
||||||
|
@ -33,4 +38,4 @@
|
||||||
</intent>
|
</intent>
|
||||||
</queries>
|
</queries>
|
||||||
<meta-data android:name="com.google.android.geo.API_KEY" android:value="000000000000000000000000000000000000000" />
|
<meta-data android:name="com.google.android.geo.API_KEY" android:value="000000000000000000000000000000000000000" />
|
||||||
</manifest>
|
</manifest>
|
||||||
|
|
5406
TINK/TINK.Android/Resources/Resource.Designer.cs
generated
BIN
TINK/TINK.Android/Resources/drawable/Location_Button.png
Normal file
After Width: | Height: | Size: 1.8 KiB |
|
@ -16,7 +16,7 @@
|
||||||
<AndroidResgenFile>Resources\Resource.Designer.cs</AndroidResgenFile>
|
<AndroidResgenFile>Resources\Resource.Designer.cs</AndroidResgenFile>
|
||||||
<GenerateSerializationAssemblies>Off</GenerateSerializationAssemblies>
|
<GenerateSerializationAssemblies>Off</GenerateSerializationAssemblies>
|
||||||
<AndroidManifest>Properties\AndroidManifest.xml</AndroidManifest>
|
<AndroidManifest>Properties\AndroidManifest.xml</AndroidManifest>
|
||||||
<TargetFrameworkVersion>v11.0</TargetFrameworkVersion>
|
<TargetFrameworkVersion>v12.0</TargetFrameworkVersion>
|
||||||
<AndroidStoreUncompressedFileExtensions />
|
<AndroidStoreUncompressedFileExtensions />
|
||||||
<MandroidI18n />
|
<MandroidI18n />
|
||||||
<JavaMaximumHeapSize>2G</JavaMaximumHeapSize>
|
<JavaMaximumHeapSize>2G</JavaMaximumHeapSize>
|
||||||
|
@ -77,7 +77,7 @@
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="Microsoft.CSharp" Version="4.7.0" />
|
<PackageReference Include="Microsoft.CSharp" Version="4.7.0" />
|
||||||
<PackageReference Include="Microsoft.NETCore.Platforms" Version="6.0.5" />
|
<PackageReference Include="Microsoft.NETCore.Platforms" Version="7.0.0" />
|
||||||
<PackageReference Include="Microsoft.Win32.Primitives" Version="4.3.0" />
|
<PackageReference Include="Microsoft.Win32.Primitives" Version="4.3.0" />
|
||||||
<PackageReference Include="MonkeyCache">
|
<PackageReference Include="MonkeyCache">
|
||||||
<Version>1.6.3</Version>
|
<Version>1.6.3</Version>
|
||||||
|
@ -97,7 +97,7 @@
|
||||||
<Version>6.3.0.19</Version>
|
<Version>6.3.0.19</Version>
|
||||||
</PackageReference>
|
</PackageReference>
|
||||||
<PackageReference Include="Serilog">
|
<PackageReference Include="Serilog">
|
||||||
<Version>2.11.0</Version>
|
<Version>2.12.0</Version>
|
||||||
</PackageReference>
|
</PackageReference>
|
||||||
<PackageReference Include="Serilog.Sinks.File" Version="5.0.0" />
|
<PackageReference Include="Serilog.Sinks.File" Version="5.0.0" />
|
||||||
<PackageReference Include="Serilog.Sinks.Xamarin" Version="1.0.0" />
|
<PackageReference Include="Serilog.Sinks.Xamarin" Version="1.0.0" />
|
||||||
|
@ -176,21 +176,21 @@
|
||||||
<PackageReference Include="Xamarin.Android.Support.v7.RecyclerView" Version="28.0.0.3" />
|
<PackageReference Include="Xamarin.Android.Support.v7.RecyclerView" Version="28.0.0.3" />
|
||||||
<PackageReference Include="Xamarin.Android.Support.Vector.Drawable" Version="28.0.0.3" />
|
<PackageReference Include="Xamarin.Android.Support.Vector.Drawable" Version="28.0.0.3" />
|
||||||
<PackageReference Include="Xamarin.AndroidX.Core">
|
<PackageReference Include="Xamarin.AndroidX.Core">
|
||||||
<Version>1.6.0.3</Version>
|
<Version>1.9.0.1</Version>
|
||||||
</PackageReference>
|
</PackageReference>
|
||||||
<PackageReference Include="Xamarin.AndroidX.MediaRouter">
|
<PackageReference Include="Xamarin.AndroidX.MediaRouter">
|
||||||
<Version>1.2.5.2</Version>
|
<Version>1.3.1.1</Version>
|
||||||
</PackageReference>
|
</PackageReference>
|
||||||
<PackageReference Include="Xamarin.AndroidX.Palette">
|
<PackageReference Include="Xamarin.AndroidX.Palette">
|
||||||
<Version>1.0.0.10</Version>
|
<Version>1.0.0.15</Version>
|
||||||
</PackageReference>
|
</PackageReference>
|
||||||
<PackageReference Include="Xamarin.AndroidX.RecyclerView">
|
<PackageReference Include="Xamarin.AndroidX.RecyclerView">
|
||||||
<Version>1.2.1.3</Version>
|
<Version>1.2.1.8</Version>
|
||||||
</PackageReference>
|
</PackageReference>
|
||||||
<PackageReference Include="Xamarin.Auth" Version="1.7.0" />
|
<PackageReference Include="Xamarin.Auth" Version="1.7.0" />
|
||||||
<PackageReference Include="Xamarin.Build.Download" Version="0.11.3" />
|
<PackageReference Include="Xamarin.Build.Download" Version="0.11.3" />
|
||||||
<PackageReference Include="Xamarin.CommunityToolkit">
|
<PackageReference Include="Xamarin.CommunityToolkit">
|
||||||
<Version>2.0.4</Version>
|
<Version>2.0.5</Version>
|
||||||
</PackageReference>
|
</PackageReference>
|
||||||
<PackageReference Include="Xamarin.Essentials">
|
<PackageReference Include="Xamarin.Essentials">
|
||||||
<Version>1.7.3</Version>
|
<Version>1.7.3</Version>
|
||||||
|
@ -200,13 +200,13 @@
|
||||||
<Version>5.0.0.2515</Version>
|
<Version>5.0.0.2515</Version>
|
||||||
</PackageReference>
|
</PackageReference>
|
||||||
<PackageReference Include="Xamarin.Forms.GoogleMaps">
|
<PackageReference Include="Xamarin.Forms.GoogleMaps">
|
||||||
<Version>3.3.0</Version>
|
<Version>5.0.0</Version>
|
||||||
</PackageReference>
|
</PackageReference>
|
||||||
<PackageReference Include="Xamarin.Forms.GoogleMaps.Bindings" Version="3.0.0" />
|
<PackageReference Include="Xamarin.Forms.GoogleMaps.Bindings" Version="3.0.0" />
|
||||||
<PackageReference Include="Xamarin.GooglePlayServices.Base" Version="117.6.0.1" />
|
<PackageReference Include="Xamarin.GooglePlayServices.Base" Version="118.1.0" />
|
||||||
<PackageReference Include="Xamarin.GooglePlayServices.Basement" Version="117.6.0.2" />
|
<PackageReference Include="Xamarin.GooglePlayServices.Basement" Version="118.1.0" />
|
||||||
<PackageReference Include="Xamarin.GooglePlayServices.Maps" Version="117.0.1.1" />
|
<PackageReference Include="Xamarin.GooglePlayServices.Maps" Version="118.1.0" />
|
||||||
<PackageReference Include="Xamarin.GooglePlayServices.Tasks" Version="117.2.1.1" />
|
<PackageReference Include="Xamarin.GooglePlayServices.Tasks" Version="118.0.2" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Reference Include="Mono.Android" />
|
<Reference Include="Mono.Android" />
|
||||||
|
@ -240,6 +240,10 @@
|
||||||
<EmbeddedResource Include="Resources\Font Awesome 5 Free-Solid-900.otf" />
|
<EmbeddedResource Include="Resources\Font Awesome 5 Free-Solid-900.otf" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
<AndroidResource Include="Resources\drawable\Location_Button.png">
|
||||||
|
<SubType>Designer</SubType>
|
||||||
|
<Generator>MSBuild:UpdateGeneratedFiles</Generator>
|
||||||
|
</AndroidResource>
|
||||||
<AndroidResource Include="Resources\layout\Tabbar.axml" />
|
<AndroidResource Include="Resources\layout\Tabbar.axml" />
|
||||||
<AndroidResource Include="Resources\layout\Toolbar.axml" />
|
<AndroidResource Include="Resources\layout\Toolbar.axml" />
|
||||||
<AndroidResource Include="Resources\values\styles.xml">
|
<AndroidResource Include="Resources\values\styles.xml">
|
||||||
|
@ -272,6 +276,7 @@
|
||||||
</ProjectReference>
|
</ProjectReference>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
<AndroidAsset Include="Assets\Location_Pin.png" />
|
||||||
<AndroidAsset Include="Assets\Open_Blue.png" />
|
<AndroidAsset Include="Assets\Open_Blue.png" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
using Foundation;
|
using Foundation;
|
||||||
using UIKit;
|
using UIKit;
|
||||||
using Xamarin.Forms;
|
using Xamarin.Forms;
|
||||||
using Xamarin.Forms.Platform.iOS;
|
using Xamarin.Forms.Platform.iOS;
|
||||||
|
@ -25,6 +25,9 @@ namespace TINK.iOS
|
||||||
//Color of Icons in Navigation bar (e.g. burger menu and back arrow)
|
//Color of Icons in Navigation bar (e.g. burger menu and back arrow)
|
||||||
UINavigationBar.Appearance.TintColor = Color.White.ToUIColor();
|
UINavigationBar.Appearance.TintColor = Color.White.ToUIColor();
|
||||||
|
|
||||||
|
//Color of Switch
|
||||||
|
UISwitch.Appearance.OnTintColor = UIColor.LightGray;
|
||||||
|
|
||||||
new iOS.Device.AppInfo(NSBundle.MainBundle.InfoDictionary[new NSString("CFBundleShortVersionString")]?.ToString() ?? string.Empty);
|
new iOS.Device.AppInfo(NSBundle.MainBundle.InfoDictionary[new NSString("CFBundleShortVersionString")]?.ToString() ?? string.Empty);
|
||||||
|
|
||||||
Forms.ViewInitialized += (object sender, ViewInitializedEventArgs e) =>
|
Forms.ViewInitialized += (object sender, ViewInitializedEventArgs e) =>
|
||||||
|
|
|
@ -55,8 +55,8 @@
|
||||||
<key>CFBundleDisplayName</key>
|
<key>CFBundleDisplayName</key>
|
||||||
<string>sharee.bike</string>
|
<string>sharee.bike</string>
|
||||||
<key>CFBundleVersion</key>
|
<key>CFBundleVersion</key>
|
||||||
<string>347</string>
|
<string>350</string>
|
||||||
<key>CFBundleShortVersionString</key>
|
<key>CFBundleShortVersionString</key>
|
||||||
<string>3.0.347</string>
|
<string>3.0.350</string>
|
||||||
</dict>
|
</dict>
|
||||||
</plist>
|
</plist>
|
||||||
|
|
393
TINK/TINK.iOS/Media.xcassets/Location_Button.imageset/Contents.json
vendored
Normal file
|
@ -0,0 +1,393 @@
|
||||||
|
{
|
||||||
|
"images" : [
|
||||||
|
{
|
||||||
|
"filename" : "Location_Button.svg",
|
||||||
|
"idiom" : "universal"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances" : [
|
||||||
|
{
|
||||||
|
"appearance" : "luminosity",
|
||||||
|
"value" : "light"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"idiom" : "universal"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances" : [
|
||||||
|
{
|
||||||
|
"appearance" : "luminosity",
|
||||||
|
"value" : "dark"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"idiom" : "universal"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "1x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances" : [
|
||||||
|
{
|
||||||
|
"appearance" : "luminosity",
|
||||||
|
"value" : "light"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "1x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances" : [
|
||||||
|
{
|
||||||
|
"appearance" : "luminosity",
|
||||||
|
"value" : "dark"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "1x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances" : [
|
||||||
|
{
|
||||||
|
"appearance" : "luminosity",
|
||||||
|
"value" : "light"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances" : [
|
||||||
|
{
|
||||||
|
"appearance" : "luminosity",
|
||||||
|
"value" : "dark"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "3x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances" : [
|
||||||
|
{
|
||||||
|
"appearance" : "luminosity",
|
||||||
|
"value" : "light"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "3x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances" : [
|
||||||
|
{
|
||||||
|
"appearance" : "luminosity",
|
||||||
|
"value" : "dark"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "3x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "iphone"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances" : [
|
||||||
|
{
|
||||||
|
"appearance" : "luminosity",
|
||||||
|
"value" : "light"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"idiom" : "iphone"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances" : [
|
||||||
|
{
|
||||||
|
"appearance" : "luminosity",
|
||||||
|
"value" : "dark"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"idiom" : "iphone"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "iphone",
|
||||||
|
"scale" : "1x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances" : [
|
||||||
|
{
|
||||||
|
"appearance" : "luminosity",
|
||||||
|
"value" : "light"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"idiom" : "iphone",
|
||||||
|
"scale" : "1x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances" : [
|
||||||
|
{
|
||||||
|
"appearance" : "luminosity",
|
||||||
|
"value" : "dark"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"idiom" : "iphone",
|
||||||
|
"scale" : "1x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "iphone",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances" : [
|
||||||
|
{
|
||||||
|
"appearance" : "luminosity",
|
||||||
|
"value" : "light"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"idiom" : "iphone",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances" : [
|
||||||
|
{
|
||||||
|
"appearance" : "luminosity",
|
||||||
|
"value" : "dark"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"idiom" : "iphone",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "iphone",
|
||||||
|
"scale" : "3x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances" : [
|
||||||
|
{
|
||||||
|
"appearance" : "luminosity",
|
||||||
|
"value" : "light"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"idiom" : "iphone",
|
||||||
|
"scale" : "3x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances" : [
|
||||||
|
{
|
||||||
|
"appearance" : "luminosity",
|
||||||
|
"value" : "dark"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"idiom" : "iphone",
|
||||||
|
"scale" : "3x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "iphone",
|
||||||
|
"scale" : "1x",
|
||||||
|
"subtype" : "retina4"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances" : [
|
||||||
|
{
|
||||||
|
"appearance" : "luminosity",
|
||||||
|
"value" : "light"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"idiom" : "iphone",
|
||||||
|
"scale" : "1x",
|
||||||
|
"subtype" : "retina4"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances" : [
|
||||||
|
{
|
||||||
|
"appearance" : "luminosity",
|
||||||
|
"value" : "dark"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"idiom" : "iphone",
|
||||||
|
"scale" : "1x",
|
||||||
|
"subtype" : "retina4"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "iphone",
|
||||||
|
"scale" : "2x",
|
||||||
|
"subtype" : "retina4"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances" : [
|
||||||
|
{
|
||||||
|
"appearance" : "luminosity",
|
||||||
|
"value" : "light"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"idiom" : "iphone",
|
||||||
|
"scale" : "2x",
|
||||||
|
"subtype" : "retina4"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances" : [
|
||||||
|
{
|
||||||
|
"appearance" : "luminosity",
|
||||||
|
"value" : "dark"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"idiom" : "iphone",
|
||||||
|
"scale" : "2x",
|
||||||
|
"subtype" : "retina4"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "iphone",
|
||||||
|
"scale" : "3x",
|
||||||
|
"subtype" : "retina4"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances" : [
|
||||||
|
{
|
||||||
|
"appearance" : "luminosity",
|
||||||
|
"value" : "light"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"idiom" : "iphone",
|
||||||
|
"scale" : "3x",
|
||||||
|
"subtype" : "retina4"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances" : [
|
||||||
|
{
|
||||||
|
"appearance" : "luminosity",
|
||||||
|
"value" : "dark"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"idiom" : "iphone",
|
||||||
|
"scale" : "3x",
|
||||||
|
"subtype" : "retina4"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "ipad"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances" : [
|
||||||
|
{
|
||||||
|
"appearance" : "luminosity",
|
||||||
|
"value" : "light"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"idiom" : "ipad"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances" : [
|
||||||
|
{
|
||||||
|
"appearance" : "luminosity",
|
||||||
|
"value" : "dark"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"idiom" : "ipad"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "ipad",
|
||||||
|
"scale" : "1x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances" : [
|
||||||
|
{
|
||||||
|
"appearance" : "luminosity",
|
||||||
|
"value" : "light"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"idiom" : "ipad",
|
||||||
|
"scale" : "1x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances" : [
|
||||||
|
{
|
||||||
|
"appearance" : "luminosity",
|
||||||
|
"value" : "dark"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"idiom" : "ipad",
|
||||||
|
"scale" : "1x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "ipad",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances" : [
|
||||||
|
{
|
||||||
|
"appearance" : "luminosity",
|
||||||
|
"value" : "light"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"idiom" : "ipad",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances" : [
|
||||||
|
{
|
||||||
|
"appearance" : "luminosity",
|
||||||
|
"value" : "dark"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"idiom" : "ipad",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "car",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances" : [
|
||||||
|
{
|
||||||
|
"appearance" : "luminosity",
|
||||||
|
"value" : "light"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"idiom" : "car",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances" : [
|
||||||
|
{
|
||||||
|
"appearance" : "luminosity",
|
||||||
|
"value" : "dark"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"idiom" : "car",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "car",
|
||||||
|
"scale" : "3x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances" : [
|
||||||
|
{
|
||||||
|
"appearance" : "luminosity",
|
||||||
|
"value" : "light"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"idiom" : "car",
|
||||||
|
"scale" : "3x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances" : [
|
||||||
|
{
|
||||||
|
"appearance" : "luminosity",
|
||||||
|
"value" : "dark"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"idiom" : "car",
|
||||||
|
"scale" : "3x"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"info" : {
|
||||||
|
"author" : "xcode",
|
||||||
|
"version" : 1
|
||||||
|
}
|
||||||
|
}
|
107
TINK/TINK.iOS/Media.xcassets/Location_Button.imageset/Location_Button.svg
vendored
Normal file
|
@ -0,0 +1,107 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
|
||||||
|
<svg
|
||||||
|
width="56.000221"
|
||||||
|
height="56.000034"
|
||||||
|
viewBox="0 0 14.816725 14.816675"
|
||||||
|
version="1.1"
|
||||||
|
id="svg5"
|
||||||
|
inkscape:version="1.1.2 (b8e25be833, 2022-02-05)"
|
||||||
|
sodipodi:docname="Location_Button.svg"
|
||||||
|
inkscape:export-filename="C:\Users\Anja\Desktop\Location_Button.png"
|
||||||
|
inkscape:export-xdpi="96"
|
||||||
|
inkscape:export-ydpi="96"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg">
|
||||||
|
<sodipodi:namedview
|
||||||
|
id="namedview7"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#666666"
|
||||||
|
borderopacity="1.0"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:pageopacity="0.74901961"
|
||||||
|
inkscape:pagecheckerboard="0"
|
||||||
|
inkscape:document-units="mm"
|
||||||
|
showgrid="true"
|
||||||
|
fit-margin-top="5"
|
||||||
|
fit-margin-left="5"
|
||||||
|
fit-margin-right="5"
|
||||||
|
fit-margin-bottom="5"
|
||||||
|
inkscape:zoom="11.402918"
|
||||||
|
inkscape:cx="17.407825"
|
||||||
|
inkscape:cy="24.642815"
|
||||||
|
inkscape:window-width="1920"
|
||||||
|
inkscape:window-height="1009"
|
||||||
|
inkscape:window-x="-8"
|
||||||
|
inkscape:window-y="-8"
|
||||||
|
inkscape:window-maximized="1"
|
||||||
|
inkscape:current-layer="g1443"
|
||||||
|
units="px"
|
||||||
|
lock-margins="true">
|
||||||
|
<inkscape:grid
|
||||||
|
type="xygrid"
|
||||||
|
id="grid1378"
|
||||||
|
originx="3.43958"
|
||||||
|
originy="3.4395888" />
|
||||||
|
</sodipodi:namedview>
|
||||||
|
<defs
|
||||||
|
id="defs2" />
|
||||||
|
<g
|
||||||
|
inkscape:label="Layer 1"
|
||||||
|
inkscape:groupmode="layer"
|
||||||
|
id="layer1"
|
||||||
|
transform="translate(-43.106273,-79.915487)">
|
||||||
|
<g
|
||||||
|
id="g1443">
|
||||||
|
<ellipse
|
||||||
|
style="fill:none;fill-opacity:1;stroke:#333333;stroke-width:1.05833;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
|
||||||
|
id="path846"
|
||||||
|
cx="50.523026"
|
||||||
|
cy="87.332237"
|
||||||
|
inkscape:export-filename="C:\Users\Anja\Desktop\Location_Pin.png"
|
||||||
|
inkscape:export-xdpi="96"
|
||||||
|
inkscape:export-ydpi="96"
|
||||||
|
rx="3.9684811"
|
||||||
|
ry="3.9684813" />
|
||||||
|
<circle
|
||||||
|
style="fill:#333333;fill-opacity:1;stroke:none;stroke-width:1.61265;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
|
||||||
|
id="path1042"
|
||||||
|
cx="50.534115"
|
||||||
|
cy="87.326935"
|
||||||
|
r="1.5875" />
|
||||||
|
<rect
|
||||||
|
style="fill:#333333;fill-opacity:1;stroke:none;stroke-width:1.35094;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
|
||||||
|
id="rect1296"
|
||||||
|
width="1.0583333"
|
||||||
|
height="2.6458333"
|
||||||
|
x="49.985435"
|
||||||
|
y="81.238403" />
|
||||||
|
<rect
|
||||||
|
style="fill:#333333;fill-opacity:1;stroke:none;stroke-width:1.35094;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
|
||||||
|
id="rect1296-9"
|
||||||
|
width="1.0583333"
|
||||||
|
height="2.6458333"
|
||||||
|
x="49.985435"
|
||||||
|
y="90.763412" />
|
||||||
|
<rect
|
||||||
|
style="fill:#333333;fill-opacity:1;stroke:none;stroke-width:1.35093;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
|
||||||
|
id="rect1296-0"
|
||||||
|
width="1.0583172"
|
||||||
|
height="2.6458309"
|
||||||
|
x="86.794319"
|
||||||
|
y="-56.600288"
|
||||||
|
transform="matrix(-2.3780451e-6,1,-1,-6.0876213e-6,0,0)" />
|
||||||
|
<rect
|
||||||
|
style="fill:#333333;fill-opacity:1;stroke:none;stroke-width:1.35093;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
|
||||||
|
id="rect1296-0-8"
|
||||||
|
width="1.0583172"
|
||||||
|
height="2.6458309"
|
||||||
|
x="86.794388"
|
||||||
|
y="-47.07523"
|
||||||
|
transform="matrix(-2.3780451e-6,1,-1,-6.0876213e-6,0,0)" />
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 4 KiB |
354
TINK/TINK.iOS/Media.xcassets/Location_Pin.imageset/Contents.json
vendored
Normal file
|
@ -0,0 +1,354 @@
|
||||||
|
{
|
||||||
|
"images": [
|
||||||
|
{
|
||||||
|
"appearances": [],
|
||||||
|
"scale": "1x",
|
||||||
|
"idiom": "universal"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances": [],
|
||||||
|
"scale": "2x",
|
||||||
|
"idiom": "universal"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances": [],
|
||||||
|
"scale": "3x",
|
||||||
|
"idiom": "universal"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances": [],
|
||||||
|
"idiom": "iphone"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances": [],
|
||||||
|
"scale": "1x",
|
||||||
|
"idiom": "iphone"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances": [],
|
||||||
|
"scale": "2x",
|
||||||
|
"idiom": "iphone"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances": [],
|
||||||
|
"scale": "2x",
|
||||||
|
"idiom": "iphone",
|
||||||
|
"subtype": "retina4"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances": [],
|
||||||
|
"scale": "3x",
|
||||||
|
"idiom": "iphone"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances": [],
|
||||||
|
"idiom": "ipad"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances": [],
|
||||||
|
"scale": "1x",
|
||||||
|
"idiom": "ipad"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances": [],
|
||||||
|
"scale": "2x",
|
||||||
|
"idiom": "ipad"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances": [],
|
||||||
|
"scale": "2x",
|
||||||
|
"idiom": "car"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances": [],
|
||||||
|
"scale": "3x",
|
||||||
|
"idiom": "car"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances": [
|
||||||
|
{
|
||||||
|
"appearance": "luminosity",
|
||||||
|
"value": "dark"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"idiom": "universal"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances": [
|
||||||
|
{
|
||||||
|
"appearance": "luminosity",
|
||||||
|
"value": "dark"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"scale": "1x",
|
||||||
|
"idiom": "universal"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances": [
|
||||||
|
{
|
||||||
|
"appearance": "luminosity",
|
||||||
|
"value": "dark"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"scale": "2x",
|
||||||
|
"idiom": "universal"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances": [
|
||||||
|
{
|
||||||
|
"appearance": "luminosity",
|
||||||
|
"value": "dark"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"scale": "3x",
|
||||||
|
"idiom": "universal"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances": [
|
||||||
|
{
|
||||||
|
"appearance": "luminosity",
|
||||||
|
"value": "dark"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"idiom": "iphone"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances": [
|
||||||
|
{
|
||||||
|
"appearance": "luminosity",
|
||||||
|
"value": "dark"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"scale": "1x",
|
||||||
|
"idiom": "iphone"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances": [
|
||||||
|
{
|
||||||
|
"appearance": "luminosity",
|
||||||
|
"value": "dark"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"scale": "2x",
|
||||||
|
"idiom": "iphone"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances": [
|
||||||
|
{
|
||||||
|
"appearance": "luminosity",
|
||||||
|
"value": "dark"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"scale": "2x",
|
||||||
|
"idiom": "iphone",
|
||||||
|
"subtype": "retina4"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances": [
|
||||||
|
{
|
||||||
|
"appearance": "luminosity",
|
||||||
|
"value": "dark"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"scale": "3x",
|
||||||
|
"idiom": "iphone"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances": [
|
||||||
|
{
|
||||||
|
"appearance": "luminosity",
|
||||||
|
"value": "dark"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"idiom": "ipad"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances": [
|
||||||
|
{
|
||||||
|
"appearance": "luminosity",
|
||||||
|
"value": "dark"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"scale": "1x",
|
||||||
|
"idiom": "ipad"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances": [
|
||||||
|
{
|
||||||
|
"appearance": "luminosity",
|
||||||
|
"value": "dark"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"scale": "2x",
|
||||||
|
"idiom": "ipad"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances": [
|
||||||
|
{
|
||||||
|
"appearance": "luminosity",
|
||||||
|
"value": "dark"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"scale": "2x",
|
||||||
|
"idiom": "car"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances": [
|
||||||
|
{
|
||||||
|
"appearance": "luminosity",
|
||||||
|
"value": "dark"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"scale": "3x",
|
||||||
|
"idiom": "car"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances": [
|
||||||
|
{
|
||||||
|
"appearance": "luminosity",
|
||||||
|
"value": "light"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"idiom": "universal"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances": [
|
||||||
|
{
|
||||||
|
"appearance": "luminosity",
|
||||||
|
"value": "light"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"scale": "1x",
|
||||||
|
"idiom": "universal"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances": [
|
||||||
|
{
|
||||||
|
"appearance": "luminosity",
|
||||||
|
"value": "light"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"scale": "2x",
|
||||||
|
"idiom": "universal"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances": [
|
||||||
|
{
|
||||||
|
"appearance": "luminosity",
|
||||||
|
"value": "light"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"scale": "3x",
|
||||||
|
"idiom": "universal"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances": [
|
||||||
|
{
|
||||||
|
"appearance": "luminosity",
|
||||||
|
"value": "light"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"idiom": "iphone"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances": [
|
||||||
|
{
|
||||||
|
"appearance": "luminosity",
|
||||||
|
"value": "light"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"scale": "1x",
|
||||||
|
"idiom": "iphone"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances": [
|
||||||
|
{
|
||||||
|
"appearance": "luminosity",
|
||||||
|
"value": "light"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"scale": "2x",
|
||||||
|
"idiom": "iphone"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances": [
|
||||||
|
{
|
||||||
|
"appearance": "luminosity",
|
||||||
|
"value": "light"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"scale": "2x",
|
||||||
|
"idiom": "iphone",
|
||||||
|
"subtype": "retina4"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances": [
|
||||||
|
{
|
||||||
|
"appearance": "luminosity",
|
||||||
|
"value": "light"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"scale": "3x",
|
||||||
|
"idiom": "iphone"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances": [
|
||||||
|
{
|
||||||
|
"appearance": "luminosity",
|
||||||
|
"value": "light"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"idiom": "ipad"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances": [
|
||||||
|
{
|
||||||
|
"appearance": "luminosity",
|
||||||
|
"value": "light"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"scale": "1x",
|
||||||
|
"idiom": "ipad"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances": [
|
||||||
|
{
|
||||||
|
"appearance": "luminosity",
|
||||||
|
"value": "light"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"scale": "2x",
|
||||||
|
"idiom": "ipad"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances": [
|
||||||
|
{
|
||||||
|
"appearance": "luminosity",
|
||||||
|
"value": "light"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"scale": "2x",
|
||||||
|
"idiom": "car"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances": [
|
||||||
|
{
|
||||||
|
"appearance": "luminosity",
|
||||||
|
"value": "light"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"scale": "3x",
|
||||||
|
"idiom": "car"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances": [],
|
||||||
|
"idiom": "universal",
|
||||||
|
"filename": "Location_Pin.pdf"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"properties": {},
|
||||||
|
"info": {
|
||||||
|
"version": 1,
|
||||||
|
"author": "xcode"
|
||||||
|
}
|
||||||
|
}
|
70
TINK/TINK.iOS/Media.xcassets/Location_Pin.imageset/Location_Pin.pdf
vendored
Normal file
|
@ -0,0 +1,70 @@
|
||||||
|
%PDF-1.5
|
||||||
|
%µí®û
|
||||||
|
4 0 obj
|
||||||
|
<< /Length 5 0 R
|
||||||
|
/Filter /FlateDecode
|
||||||
|
>>
|
||||||
|
stream
|
||||||
|
xœÕ<EFBFBD>A
|
||||||
|
1E÷9Å¿€1iÆNç‚àbt).dÄÁÅèÂë›jg@=<3D>
ýä“ßGª¯™ºTÊ!˜iDw¥<77>¹6KÌ‚þN‘%Ÿü^h·‡°àHÖ /Ö[a)ó„£®(Þ„õ#R\N©.ž0½ƒ<>·%3F'F–tá}Ñ&ÆùgÃ-ZòåÙbŠ¡ö¦ºˆ
n=þï3'jé Õ[ƒ
|
||||||
|
endstream
|
||||||
|
endobj
|
||||||
|
5 0 obj
|
||||||
|
165
|
||||||
|
endobj
|
||||||
|
3 0 obj
|
||||||
|
<<
|
||||||
|
/ExtGState <<
|
||||||
|
/a0 << /CA 1 /ca 1 >>
|
||||||
|
>>
|
||||||
|
>>
|
||||||
|
endobj
|
||||||
|
2 0 obj
|
||||||
|
<< /Type /Page % 1
|
||||||
|
/Parent 1 0 R
|
||||||
|
/MediaBox [ 0 0 41.223316 41.223316 ]
|
||||||
|
/Contents 4 0 R
|
||||||
|
/Group <<
|
||||||
|
/Type /Group
|
||||||
|
/S /Transparency
|
||||||
|
/I true
|
||||||
|
/CS /DeviceRGB
|
||||||
|
>>
|
||||||
|
/Resources 3 0 R
|
||||||
|
>>
|
||||||
|
endobj
|
||||||
|
1 0 obj
|
||||||
|
<< /Type /Pages
|
||||||
|
/Kids [ 2 0 R ]
|
||||||
|
/Count 1
|
||||||
|
>>
|
||||||
|
endobj
|
||||||
|
6 0 obj
|
||||||
|
<< /Producer (cairo 1.17.4 (https://cairographics.org))
|
||||||
|
/Creator <FEFF0049006E006B0073006300610070006500200031002E0031002E00320020002800680074007400700073003A002F002F0069006E006B00730063006100700065002E006F007200670029>
|
||||||
|
/CreationDate (D:20221116092441+01'00)
|
||||||
|
>>
|
||||||
|
endobj
|
||||||
|
7 0 obj
|
||||||
|
<< /Type /Catalog
|
||||||
|
/Pages 1 0 R
|
||||||
|
>>
|
||||||
|
endobj
|
||||||
|
xref
|
||||||
|
0 8
|
||||||
|
0000000000 65535 f
|
||||||
|
0000000581 00000 n
|
||||||
|
0000000351 00000 n
|
||||||
|
0000000279 00000 n
|
||||||
|
0000000015 00000 n
|
||||||
|
0000000257 00000 n
|
||||||
|
0000000646 00000 n
|
||||||
|
0000000929 00000 n
|
||||||
|
trailer
|
||||||
|
<< /Size 8
|
||||||
|
/Root 7 0 R
|
||||||
|
/Info 6 0 R
|
||||||
|
>>
|
||||||
|
startxref
|
||||||
|
981
|
||||||
|
%%EOF
|
|
@ -373,6 +373,18 @@
|
||||||
</ImageAsset>
|
</ImageAsset>
|
||||||
<ImageAsset Include="Media.xcassets\Open_Red.imageset\StationMarkerOpenRed.pdf">
|
<ImageAsset Include="Media.xcassets\Open_Red.imageset\StationMarkerOpenRed.pdf">
|
||||||
<Visible>false</Visible>
|
<Visible>false</Visible>
|
||||||
|
</ImageAsset>
|
||||||
|
<ImageAsset Include="Media.xcassets\Location_Pin.imageset\Contents.json">
|
||||||
|
<Visible>false</Visible>
|
||||||
|
</ImageAsset>
|
||||||
|
<ImageAsset Include="Media.xcassets\Location_Pin.imageset\Location_Pin.pdf">
|
||||||
|
<Visible>false</Visible>
|
||||||
|
</ImageAsset>
|
||||||
|
<ImageAsset Include="Media.xcassets\Location_Button.imageset\Contents.json">
|
||||||
|
<Visible>false</Visible>
|
||||||
|
</ImageAsset>
|
||||||
|
<ImageAsset Include="Media.xcassets\Location_Button.imageset\Location_Button.svg">
|
||||||
|
<Visible>false</Visible>
|
||||||
</ImageAsset>
|
</ImageAsset>
|
||||||
<ImageAsset Include="Media.xcassets\AppIcons.appiconset\1024-1.png">
|
<ImageAsset Include="Media.xcassets\AppIcons.appiconset\1024-1.png">
|
||||||
<Visible>false</Visible>
|
<Visible>false</Visible>
|
||||||
|
@ -466,6 +478,8 @@
|
||||||
<Folder Include="Media.xcassets\Open_Green.imageset\" />
|
<Folder Include="Media.xcassets\Open_Green.imageset\" />
|
||||||
<Folder Include="Media.xcassets\Open_LightBlue.imageset\" />
|
<Folder Include="Media.xcassets\Open_LightBlue.imageset\" />
|
||||||
<Folder Include="Media.xcassets\Open_Red.imageset\" />
|
<Folder Include="Media.xcassets\Open_Red.imageset\" />
|
||||||
|
<Folder Include="Media.xcassets\Location_Pin.imageset\" />
|
||||||
|
<Folder Include="Media.xcassets\Location_Button.imageset\" />
|
||||||
<Folder Include="Media.xcassets\sharee_no_background.imageset\" />
|
<Folder Include="Media.xcassets\sharee_no_background.imageset\" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<Import Project="..\TINK\TINK.projitems" Label="Shared" Condition="Exists('..\TINK\TINK.projitems')" />
|
<Import Project="..\TINK\TINK.projitems" Label="Shared" Condition="Exists('..\TINK\TINK.projitems')" />
|
||||||
|
|
|
@ -22,7 +22,12 @@
|
||||||
<x:String x:Key="IconInfo"></x:String>
|
<x:String x:Key="IconInfo"></x:String>
|
||||||
<!--<x:String x:Key="IconClose"></x:String>-->
|
<!--<x:String x:Key="IconClose"></x:String>-->
|
||||||
<x:String x:Key="IconClose"></x:String>
|
<x:String x:Key="IconClose"></x:String>
|
||||||
<!-- Add more resources here -->
|
|
||||||
|
<!--TogglePasswortEntry-->
|
||||||
|
<x:String x:Key="EyeOpen"></x:String>
|
||||||
|
<x:String x:Key="EyeClose"></x:String>
|
||||||
|
|
||||||
|
<!-- Add more resources here -->
|
||||||
<ResourceDictionary.MergedDictionaries>
|
<ResourceDictionary.MergedDictionaries>
|
||||||
<!-- Add more resource dictionaries here -->
|
<!-- Add more resource dictionaries here -->
|
||||||
<themes:ShareeBike/>
|
<themes:ShareeBike/>
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Globalization;
|
using System.Globalization;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
|
|
@ -1,8 +1,9 @@
|
||||||
<?xml version="1.0" encoding="utf-8" ?>
|
<?xml version="1.0" encoding="utf-8" ?>
|
||||||
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
|
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
|
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
|
||||||
xmlns:resources="clr-namespace:TINK.MultilingualResources;assembly=TINKLib"
|
xmlns:resources="clr-namespace:TINK.MultilingualResources;assembly=TINKLib"
|
||||||
x:Class="TINK.View.Login.LoginPage">
|
xmlns:sharedGui="clr-namespace:ShareeSharedGuiLib.View"
|
||||||
|
x:Class="TINK.View.Login.LoginPage">
|
||||||
<Shell.TitleView>
|
<Shell.TitleView>
|
||||||
<Grid ColumnDefinitions="Auto, 1*">
|
<Grid ColumnDefinitions="Auto, 1*">
|
||||||
<Label Style="{StaticResource Label-Navbar}"
|
<Label Style="{StaticResource Label-Navbar}"
|
||||||
|
@ -32,24 +33,25 @@
|
||||||
x:Name="EMailEntry"
|
x:Name="EMailEntry"
|
||||||
Text="{Binding MailAddress}"
|
Text="{Binding MailAddress}"
|
||||||
IsEnabled="{Binding IsLoggedOut}"/>
|
IsEnabled="{Binding IsLoggedOut}"/>
|
||||||
<Label Text="{x:Static resources:AppResources.MarkingLoginPasswordPlaceholder}"
|
<Label Text="{x:Static resources:AppResources.MarkingLoginPasswordPlaceholder}"
|
||||||
Margin="0,0,0,-10">
|
Margin="0,0,0,-10">
|
||||||
<Label.Triggers>
|
<Label.Triggers>
|
||||||
<DataTrigger
|
<DataTrigger
|
||||||
TargetType="Label"
|
TargetType="Label"
|
||||||
Binding="{Binding Source={x:Reference PasswordEntry}, Path=Text, TargetNullValue=''}"
|
Binding="{Binding Source={x:Reference PasswordEntry}, Path=Text, TargetNullValue=''}"
|
||||||
Value="">
|
Value="">
|
||||||
<Setter Property="IsVisible" Value="False" />
|
<Setter Property="IsVisible" Value="False" />
|
||||||
</DataTrigger>
|
</DataTrigger>
|
||||||
</Label.Triggers>
|
</Label.Triggers>
|
||||||
</Label>
|
</Label>
|
||||||
<Entry Placeholder="{x:Static resources:AppResources.MarkingLoginPasswordPlaceholder}"
|
<sharedGui:TogglePasswordEntry
|
||||||
AutomationId="password_text"
|
Placeholder="{x:Static resources:AppResources.MarkingLoginPasswordPlaceholder}"
|
||||||
IsPassword="true"
|
Text="{Binding Password}"
|
||||||
x:Name="PasswordEntry"
|
HidePassword="True"
|
||||||
Text="{Binding Password}"
|
AutomationId="password_text"
|
||||||
IsEnabled="{Binding IsLoggedOut}"/>
|
x:Name="PasswordEntry"
|
||||||
<Label Text="{x:Static resources:AppResources.MarkingLoginPasswordLabel}"
|
IsEnabled="{Binding IsLoggedOut}"/>
|
||||||
|
<Label Text="{x:Static resources:AppResources.MarkingLoginPasswordLabel}"
|
||||||
HorizontalOptions="End"
|
HorizontalOptions="End"
|
||||||
Margin="0,-10,0,5"
|
Margin="0,-10,0,5"
|
||||||
FontSize="Small">
|
FontSize="Small">
|
||||||
|
@ -95,4 +97,4 @@
|
||||||
</StackLayout>
|
</StackLayout>
|
||||||
</Frame>
|
</Frame>
|
||||||
</ScrollView>
|
</ScrollView>
|
||||||
</ContentPage>
|
</ContentPage>
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
using System;
|
using System;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using TINK.Model.Bikes.BikeInfoNS.DriveNS.BatteryNS;
|
using TINK.Model.Bikes.BikeInfoNS.DriveNS.BatteryNS;
|
||||||
using TINK.Model.Device;
|
using TINK.Model.Device;
|
||||||
|
@ -120,4 +120,4 @@ namespace TINK.View.Login
|
||||||
public async Task<IUserFeedback> DisplayUserFeedbackPopup(IBattery battery = null, string co2Saving = null) => throw new NotSupportedException();
|
public async Task<IUserFeedback> DisplayUserFeedbackPopup(IBattery battery = null, string co2Saving = null) => throw new NotSupportedException();
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -89,6 +89,24 @@
|
||||||
</StackLayout>
|
</StackLayout>
|
||||||
</Frame>
|
</Frame>
|
||||||
|
|
||||||
|
<!--Center to currentLocation Button-->
|
||||||
|
<ImageButton
|
||||||
|
Grid.Row="2"
|
||||||
|
Grid.ColumnSpan="3"
|
||||||
|
x:Name="CurrentLocation"
|
||||||
|
AutomationId ="currentLocaton_button"
|
||||||
|
Command="{Binding OnCurrentLocationButtonClicked}"
|
||||||
|
IsVisible="True"
|
||||||
|
BackgroundColor="Transparent"
|
||||||
|
VerticalOptions="End"
|
||||||
|
HorizontalOptions="End"
|
||||||
|
Margin="0,0,11,100"
|
||||||
|
Source="Location_Button.png"
|
||||||
|
WidthRequest="40"
|
||||||
|
HeightRequest="40"
|
||||||
|
CornerRadius="20">
|
||||||
|
</ImageButton>
|
||||||
|
|
||||||
<!--While process is running-->
|
<!--While process is running-->
|
||||||
<!--Spinner-->
|
<!--Spinner-->
|
||||||
<ActivityIndicator
|
<ActivityIndicator
|
||||||
|
|
|
@ -625,6 +625,23 @@ namespace TINK.Model
|
||||||
AppResources.ChangeLog_3_0_347_SB,
|
AppResources.ChangeLog_3_0_347_SB,
|
||||||
new List<AppFlavor> { AppFlavor.ShareeBike }
|
new List<AppFlavor> { AppFlavor.ShareeBike }
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
new Version(3, 0, 348),
|
||||||
|
AppResources.ChangeLog_3_0_348,
|
||||||
|
new List<AppFlavor> { AppFlavor.LastenradBayern, AppFlavor.MeinKonrad, AppFlavor.ShareeBike },
|
||||||
|
new List<DevicePlatform> { DevicePlatform.Android }
|
||||||
|
},
|
||||||
|
{
|
||||||
|
new Version(3, 0, 349),
|
||||||
|
AppResources.ChangeLog_3_0_349,
|
||||||
|
new List<AppFlavor> { AppFlavor.LastenradBayern, AppFlavor.MeinKonrad, AppFlavor.ShareeBike },
|
||||||
|
new List<DevicePlatform> { DevicePlatform.Android }
|
||||||
|
},
|
||||||
|
{
|
||||||
|
new Version(3, 0, 350),
|
||||||
|
AppResources.ChangeLog_3_0_350_SB_MK,
|
||||||
|
new List<AppFlavor> { AppFlavor.MeinKonrad, AppFlavor.ShareeBike }
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
/// <summary> Manges the whats new information.</summary>
|
/// <summary> Manges the whats new information.</summary>
|
||||||
|
|
|
@ -694,6 +694,37 @@ namespace TINK.MultilingualResources {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to App ugraded to target api level 31 (Android 12)..
|
||||||
|
/// </summary>
|
||||||
|
public static string ChangeLog_3_0_348 {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("ChangeLog_3_0_348", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to The permission query for Location and Detect Nearby Devices has been adapted to Android 12. Please allow both to rent our bikes without any problems..
|
||||||
|
/// </summary>
|
||||||
|
public static string ChangeLog_3_0_349 {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("ChangeLog_3_0_349", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to Your current position will now be displayed on the map as a blue dot, provided you turn on your location service. <br/>
|
||||||
|
///<br/>
|
||||||
|
///When logging in, you can now view the password you entered. <br/>
|
||||||
|
///<br/>
|
||||||
|
///Try it out!.
|
||||||
|
/// </summary>
|
||||||
|
public static string ChangeLog_3_0_350_SB_MK {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("ChangeLog_3_0_350_SB_MK", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Looks up a localized string similar to We have fixed some bugs. Enjoy the ride!.
|
/// Looks up a localized string similar to We have fixed some bugs. Enjoy the ride!.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
|
@ -1085,4 +1085,17 @@ Einstellung hinzugefügt mit der festgelegt werden kann, ob die App mit der Seit
|
||||||
gestartet wird.<br/>
|
gestartet wird.<br/>
|
||||||
Kleinere Verbesserungen.<br/></value>
|
Kleinere Verbesserungen.<br/></value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="ChangeLog_3_0_348" xml:space="preserve">
|
||||||
|
<value>App aktualisiert auf Ziel Api-Level 31 (Android 12).</value>
|
||||||
|
</data>
|
||||||
|
<data name="ChangeLog_3_0_349" xml:space="preserve">
|
||||||
|
<value>Die Berechtigungs-Abfrage für Standort und Geräte in der Nähe wurde an Android 12 angepasst. Bitte lassen Sie beides zu, um unsere Räder problemlos mieten zu können.</value>
|
||||||
|
</data>
|
||||||
|
<data name="ChangeLog_3_0_350_SB_MK" xml:space="preserve">
|
||||||
|
<value>Ihre aktuelle Position wird nun auf der Karte als blauer Punkt angezeigt. Schalten Sie dazu Ihren Standortdienst ein. <br/>
|
||||||
|
<br/>
|
||||||
|
Beim Login können Sie nun Ihr eingegebenes Passwort einsehen.<br/>
|
||||||
|
<br/>
|
||||||
|
Probieren Sie es aus!</value>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
|
@ -1175,4 +1175,17 @@ Minor improvements.<br/></value>
|
||||||
<data name="ErrorNotConnectedToNetwork" xml:space="preserve">
|
<data name="ErrorNotConnectedToNetwork" xml:space="preserve">
|
||||||
<value>Not connected to network.</value>
|
<value>Not connected to network.</value>
|
||||||
</data>
|
</data>
|
||||||
</root>
|
<data name="ChangeLog_3_0_348" xml:space="preserve">
|
||||||
|
<value>App ugraded to target api level 31 (Android 12).</value>
|
||||||
|
</data>
|
||||||
|
<data name="ChangeLog_3_0_349" xml:space="preserve">
|
||||||
|
<value>The permission query for Location and Detect Nearby Devices has been adapted to Android 12. Please allow both to rent our bikes without any problems.</value>
|
||||||
|
</data>
|
||||||
|
<data name="ChangeLog_3_0_350_SB_MK" xml:space="preserve">
|
||||||
|
<value>Your current position will now be displayed on the map as a blue dot, provided you turn on your location service. <br/>
|
||||||
|
<br/>
|
||||||
|
When logging in, you can now view the password you entered. <br/>
|
||||||
|
<br/>
|
||||||
|
Try it out!</value>
|
||||||
|
</data>
|
||||||
|
</root>
|
|
@ -1480,6 +1480,26 @@ Einstellung hinzugefügt mit der festgelegt werden kann, ob die App mit der Seit
|
||||||
gestartet wird.<br/>
|
gestartet wird.<br/>
|
||||||
Kleinere Verbesserungen.<br/></target>
|
Kleinere Verbesserungen.<br/></target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="ChangeLog_3_0_348" translate="yes" xml:space="preserve">
|
||||||
|
<source>App ugraded to target api level 31 (Android 12).</source>
|
||||||
|
<target state="translated">App aktualisiert auf Ziel Api-Level 31 (Android 12).</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="ChangeLog_3_0_349" translate="yes" xml:space="preserve">
|
||||||
|
<source>The permission query for Location and Detect Nearby Devices has been adapted to Android 12. Please allow both to rent our bikes without any problems.</source>
|
||||||
|
<target state="translated">Die Berechtigungs-Abfrage für Standort und Geräte in der Nähe wurde an Android 12 angepasst. Bitte lassen Sie beides zu, um unsere Räder problemlos mieten zu können.</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="ChangeLog_3_0_350_SB_MK" translate="yes" xml:space="preserve">
|
||||||
|
<source>Your current position will now be displayed on the map as a blue dot, provided you turn on your location service. <br/>
|
||||||
|
<br/>
|
||||||
|
When logging in, you can now view the password you entered. <br/>
|
||||||
|
<br/>
|
||||||
|
Try it out!</source>
|
||||||
|
<target state="translated">Ihre aktuelle Position wird nun auf der Karte als blauer Punkt angezeigt. Schalten Sie dazu Ihren Standortdienst ein. <br/>
|
||||||
|
<br/>
|
||||||
|
Beim Login können Sie nun Ihr eingegebenes Passwort einsehen.<br/>
|
||||||
|
<br/>
|
||||||
|
Probieren Sie es aus!</target>
|
||||||
|
</trans-unit>
|
||||||
</group>
|
</group>
|
||||||
</body>
|
</body>
|
||||||
</file>
|
</file>
|
||||||
|
|
|
@ -30,7 +30,7 @@
|
||||||
<PackageReference Include="Plugin.BLE" Version="2.1.3" />
|
<PackageReference Include="Plugin.BLE" Version="2.1.3" />
|
||||||
<PackageReference Include="Plugin.BluetoothLE" Version="6.3.0.19" />
|
<PackageReference Include="Plugin.BluetoothLE" Version="6.3.0.19" />
|
||||||
<PackageReference Include="Plugin.Permissions" Version="6.0.1" />
|
<PackageReference Include="Plugin.Permissions" Version="6.0.1" />
|
||||||
<PackageReference Include="Serilog" Version="2.11.0" />
|
<PackageReference Include="Serilog" Version="2.12.0" />
|
||||||
<PackageReference Include="Serilog.Sinks.Debug" Version="2.0.0" />
|
<PackageReference Include="Serilog.Sinks.Debug" Version="2.0.0" />
|
||||||
<PackageReference Include="Serilog.Sinks.File" Version="5.0.0" />
|
<PackageReference Include="Serilog.Sinks.File" Version="5.0.0" />
|
||||||
<PackageReference Include="System.Collections" Version="4.3.0" />
|
<PackageReference Include="System.Collections" Version="4.3.0" />
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
using Xamarin.Forms;
|
using Xamarin.Forms;
|
||||||
using TINK.View;
|
using TINK.View;
|
||||||
using TINK.Model.Station;
|
using TINK.Model.Station;
|
||||||
using System;
|
using System;
|
||||||
|
@ -22,6 +22,7 @@ using TINK.MultilingualResources;
|
||||||
using TINK.Repository;
|
using TINK.Repository;
|
||||||
using TINK.Services.Geolocation;
|
using TINK.Services.Geolocation;
|
||||||
using TINK.Model.State;
|
using TINK.Model.State;
|
||||||
|
using TINK.ViewModel.Map;
|
||||||
|
|
||||||
namespace TINK.ViewModel.Contact
|
namespace TINK.ViewModel.Contact
|
||||||
{
|
{
|
||||||
|
@ -161,7 +162,7 @@ namespace TINK.ViewModel.Contact
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// One time setup: Sets pins into map and connects to events.
|
/// One time setup: Sets pins into map and connects to events.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private void InitializePins(StationDictionary stations)
|
private async void InitializePins(StationDictionary stations)
|
||||||
{
|
{
|
||||||
// Add pins to stations.
|
// Add pins to stations.
|
||||||
Log.ForContext<SelectStationPageViewModel>().Debug($"Request to draw {stations.Count} pins.");
|
Log.ForContext<SelectStationPageViewModel>().Debug($"Request to draw {stations.Count} pins.");
|
||||||
|
@ -188,8 +189,35 @@ namespace TINK.ViewModel.Contact
|
||||||
|
|
||||||
Pins.Add(l_oPin);
|
Pins.Add(l_oPin);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Add blue dot for showing current location of user
|
||||||
|
Location currentLocation = null;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
currentLocation = await GeolocationService.GetAsync();
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Log.ForContext<MapPageViewModel>().Error("Getting location failed. {Exception}", ex);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (currentLocation != null)
|
||||||
|
{
|
||||||
|
var currentLocationPin = new Pin()
|
||||||
|
{
|
||||||
|
Position = new Xamarin.Forms.GoogleMaps.Position(currentLocation.Latitude, currentLocation.Longitude),
|
||||||
|
Label = "currentLocationPin",
|
||||||
|
Type = PinType.Place,
|
||||||
|
Tag = "NotClickable",
|
||||||
|
Icon = BitmapDescriptorFactory.FromBundle(currentLocationPinName)
|
||||||
|
};
|
||||||
|
|
||||||
|
Pins.Add(currentLocationPin);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public string currentLocationPinName = $"Location_Pin{(DeviceInfo.Platform == DevicePlatform.Android ? ".png" : string.Empty)}";
|
||||||
|
|
||||||
/// <summary> Update all stations from TINK. </summary>
|
/// <summary> Update all stations from TINK. </summary>
|
||||||
/// <param name="stationsColorList">List of colors to apply.</param>
|
/// <param name="stationsColorList">List of colors to apply.</param>
|
||||||
private void UpdatePinsColor(IList<Color> stationsColorList)
|
private void UpdatePinsColor(IList<Color> stationsColorList)
|
||||||
|
@ -199,24 +227,30 @@ namespace TINK.ViewModel.Contact
|
||||||
// Update colors of pins.
|
// Update colors of pins.
|
||||||
for (int pinIndex = 0; pinIndex < stationsColorList.Count; pinIndex++)
|
for (int pinIndex = 0; pinIndex < stationsColorList.Count; pinIndex++)
|
||||||
{
|
{
|
||||||
|
if (Pins[pinIndex].Tag.ToString() == "NotClickable")
|
||||||
var indexPartPrefix = int.TryParse(Pins[pinIndex].Tag.ToString(), out int stationId)
|
|
||||||
&& stationId <= CUSTOM_ICONS_COUNT
|
|
||||||
? $"{stationId}" // there is a station marker with index letter for given station id
|
|
||||||
: "Open"; // there is no station marker. Use open marker.
|
|
||||||
|
|
||||||
var colorPartPrefix = GetRessourceNameColorPart(stationsColorList[pinIndex]);
|
|
||||||
|
|
||||||
var l_iName = $"{indexPartPrefix.ToString().PadLeft(2, '0')}_{colorPartPrefix}{(DeviceInfo.Platform == DevicePlatform.Android ? ".png" : string.Empty)}";
|
|
||||||
try
|
|
||||||
{
|
{
|
||||||
Pins[pinIndex].Icon = BitmapDescriptorFactory.FromBundle(l_iName);
|
Pins[pinIndex].Icon = BitmapDescriptorFactory.FromBundle(currentLocationPinName);
|
||||||
}
|
}
|
||||||
catch (Exception l_oException)
|
else
|
||||||
{
|
{
|
||||||
Log.ForContext<SelectStationPageViewModel>().Error("Station icon {l_strName} can not be loaded. {@l_oException}.", l_oException);
|
var indexPartPrefix = int.TryParse(Pins[pinIndex].Tag.ToString(), out int stationId)
|
||||||
Pins[pinIndex].Label = stationId.ToString();
|
&& stationId <= CUSTOM_ICONS_COUNT
|
||||||
Pins[pinIndex].Icon = BitmapDescriptorFactory.DefaultMarker(stationsColorList[pinIndex]);
|
? $"{stationId}" // there is a station marker with index letter for given station id
|
||||||
|
: "Open"; // there is no station marker. Use open marker.
|
||||||
|
|
||||||
|
var colorPartPrefix = GetRessourceNameColorPart(stationsColorList[pinIndex]);
|
||||||
|
|
||||||
|
var l_iName = $"{indexPartPrefix.ToString().PadLeft(2, '0')}_{colorPartPrefix}{(DeviceInfo.Platform == DevicePlatform.Android ? ".png" : string.Empty)}";
|
||||||
|
try
|
||||||
|
{
|
||||||
|
Pins[pinIndex].Icon = BitmapDescriptorFactory.FromBundle(l_iName);
|
||||||
|
}
|
||||||
|
catch (Exception l_oException)
|
||||||
|
{
|
||||||
|
Log.ForContext<SelectStationPageViewModel>().Error("Station icon {l_strName} can not be loaded. {@l_oException}.", l_oException);
|
||||||
|
Pins[pinIndex].Label = stationId.ToString();
|
||||||
|
Pins[pinIndex].Icon = BitmapDescriptorFactory.DefaultMarker(stationsColorList[pinIndex]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Pins[pinIndex].IsVisible = true;
|
Pins[pinIndex].IsVisible = true;
|
||||||
|
@ -449,14 +483,18 @@ namespace TINK.ViewModel.Contact
|
||||||
/// <param name="selectedStationId">Id of station user clicked on.</param>
|
/// <param name="selectedStationId">Id of station user clicked on.</param>
|
||||||
public async void OnStationClicked(string selectedStationId)
|
public async void OnStationClicked(string selectedStationId)
|
||||||
{
|
{
|
||||||
try
|
//Make shure currentLocationPin can not be clicked
|
||||||
|
if (selectedStationId != "NotClickable")
|
||||||
{
|
{
|
||||||
Log.ForContext<SelectStationPageViewModel>().Information($"User taped station {selectedStationId}.");
|
try
|
||||||
|
{
|
||||||
|
Log.ForContext<SelectStationPageViewModel>().Information($"User taped station {selectedStationId}.");
|
||||||
|
|
||||||
// Lock action to prevent multiple instances of "BikeAtStation" being opened.
|
|
||||||
IsMapPageEnabled = false;
|
// Lock action to prevent multiple instances of "BikeAtStation" being opened.
|
||||||
|
IsMapPageEnabled = false;
|
||||||
TinkApp.SelectedStation = TinkApp.Stations.FirstOrDefault(x => x.Id == selectedStationId)
|
|
||||||
|
TinkApp.SelectedStation = TinkApp.Stations.FirstOrDefault(x => x.Id == selectedStationId)
|
||||||
?? new Station(selectedStationId, new List<string>(), null); // Station might not be in list StationDictinaly because this list is not updatd in background task.
|
?? new Station(selectedStationId, new List<string>(), null); // Station might not be in list StationDictinaly because this list is not updatd in background task.
|
||||||
|
|
||||||
#if TRYNOTBACKSTYLE
|
#if TRYNOTBACKSTYLE
|
||||||
|
@ -468,23 +506,28 @@ namespace TINK.ViewModel.Contact
|
||||||
// Show page.
|
// Show page.
|
||||||
ViewService.ShowPage(ViewTypes.ContactPage, AppResources.MarkingContactPageTitle);
|
ViewService.ShowPage(ViewTypes.ContactPage, AppResources.MarkingContactPageTitle);
|
||||||
#else
|
#else
|
||||||
await ViewService.ShowPage("//ContactPage");
|
await ViewService.ShowPage("//ContactPage");
|
||||||
#endif
|
#endif
|
||||||
IsMapPageEnabled = true;
|
IsMapPageEnabled = true;
|
||||||
ActionText = "";
|
ActionText = "";
|
||||||
}
|
}
|
||||||
catch (Exception exception)
|
catch (Exception exception)
|
||||||
{
|
{
|
||||||
IsMapPageEnabled = true;
|
IsMapPageEnabled = true;
|
||||||
ActionText = "";
|
ActionText = "";
|
||||||
|
|
||||||
Log.ForContext<SelectStationPageViewModel>().Error("Fehler beim Öffnen der Ansicht \"Fahrräder an Station\" aufgetreten. {Exception}", exception);
|
Log.ForContext<SelectStationPageViewModel>().Error("Fehler beim Öffnen der Ansicht \"Fahrräder an Station\" aufgetreten. {Exception}", exception);
|
||||||
await ViewService.DisplayAlert(
|
await ViewService.DisplayAlert(
|
||||||
"Fehler",
|
"Fehler",
|
||||||
$"Fehler beim Öffnen der Ansicht \"Fahrräder an Station\" aufgetreten. {exception.Message}",
|
$"Fehler beim Öffnen der Ansicht \"Fahrräder an Station\" aufgetreten. {exception.Message}",
|
||||||
"OK");
|
"OK");
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -513,23 +556,26 @@ namespace TINK.ViewModel.Contact
|
||||||
var colors = new List<Color>();
|
var colors = new List<Color>();
|
||||||
foreach (var stationId in stationsId)
|
foreach (var stationId in stationsId)
|
||||||
{
|
{
|
||||||
// Get color of given station.
|
if (stationId != "NotClickable")
|
||||||
var bikesAtStation = bikesAll.Where(x => x.StationId == stationId).ToList();
|
|
||||||
if (bikesAtStation.FirstOrDefault(x => x.State.Value.IsOccupied()) != null)
|
|
||||||
{
|
{
|
||||||
// There is at least one requested or booked bike
|
// Get color of given station.
|
||||||
colors.Add(Color.LightBlue);
|
var bikesAtStation = bikesAll.Where(x => x.StationId == stationId).ToList();
|
||||||
continue;
|
if (bikesAtStation.FirstOrDefault(x => x.State.Value.IsOccupied()) != null)
|
||||||
}
|
{
|
||||||
|
// There is at least one requested or booked bike
|
||||||
|
colors.Add(Color.LightBlue);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
if (bikesAtStation.ToList().Count > 0)
|
if (bikesAtStation.ToList().Count > 0)
|
||||||
{
|
{
|
||||||
// There is at least one bike available
|
// There is at least one bike available
|
||||||
colors.Add(Color.Green);
|
colors.Add(Color.Green);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
colors.Add(Color.Red);
|
colors.Add(Color.Red);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return colors;
|
return colors;
|
||||||
|
|
|
@ -198,7 +198,7 @@ namespace TINK.ViewModel.Map
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// One time setup: Sets pins into map and connects to events.
|
/// One time setup: Sets pins into map and connects to events.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private void InitializePins(StationDictionary stations)
|
public async void InitializePins(StationDictionary stations)
|
||||||
{
|
{
|
||||||
// Add pins to stations.
|
// Add pins to stations.
|
||||||
Log.ForContext<MapPageViewModel>().Debug($"Request to draw {stations.Count} pins.");
|
Log.ForContext<MapPageViewModel>().Debug($"Request to draw {stations.Count} pins.");
|
||||||
|
@ -225,8 +225,35 @@ namespace TINK.ViewModel.Map
|
||||||
|
|
||||||
Pins.Add(pin);
|
Pins.Add(pin);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Add blue dot for showing current location of user
|
||||||
|
Location currentLocation = null;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
currentLocation = await GeolocationService.GetAsync();
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Log.ForContext<MapPageViewModel>().Error("Getting location failed. {Exception}", ex);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (currentLocation != null)
|
||||||
|
{
|
||||||
|
var currentLocationPin = new Pin()
|
||||||
|
{
|
||||||
|
Position = new Xamarin.Forms.GoogleMaps.Position(currentLocation.Latitude, currentLocation.Longitude),
|
||||||
|
Label = "currentLocationPin",
|
||||||
|
Type = PinType.Place,
|
||||||
|
Tag = "NotClickable",
|
||||||
|
Icon = BitmapDescriptorFactory.FromBundle(currentLocationPinName)
|
||||||
|
};
|
||||||
|
|
||||||
|
Pins.Add(currentLocationPin);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public string currentLocationPinName = $"Location_Pin{(DeviceInfo.Platform == DevicePlatform.Android ? ".png" : string.Empty)}";
|
||||||
|
|
||||||
/// <summary> Update all stations from TINK. </summary>
|
/// <summary> Update all stations from TINK. </summary>
|
||||||
/// <param name="stationsColorList">List of colors to apply.</param>
|
/// <param name="stationsColorList">List of colors to apply.</param>
|
||||||
private void UpdatePinsColor(IList<Color> stationsColorList)
|
private void UpdatePinsColor(IList<Color> stationsColorList)
|
||||||
|
@ -236,24 +263,30 @@ namespace TINK.ViewModel.Map
|
||||||
// Update colors of pins.
|
// Update colors of pins.
|
||||||
for (int pinIndex = 0; pinIndex < stationsColorList.Count; pinIndex++)
|
for (int pinIndex = 0; pinIndex < stationsColorList.Count; pinIndex++)
|
||||||
{
|
{
|
||||||
|
if (Pins[pinIndex].Tag.ToString() == "NotClickable")
|
||||||
var indexPartPrefix = int.TryParse(Pins[pinIndex].Tag.ToString(), out int stationId)
|
{
|
||||||
|
Pins[pinIndex].Icon = BitmapDescriptorFactory.FromBundle(currentLocationPinName);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
var indexPartPrefix = int.TryParse(Pins[pinIndex].Tag.ToString(), out int stationId)
|
||||||
&& stationId <= CUSTOM_ICONS_COUNT
|
&& stationId <= CUSTOM_ICONS_COUNT
|
||||||
? $"{stationId}" // there is a station marker with index letter for given station id
|
? $"{stationId}" // there is a station marker with index letter for given station id
|
||||||
: "Open"; // there is no station marker. Use open marker.
|
: "Open"; // there is no station marker. Use open marker.
|
||||||
|
|
||||||
var colorPartPrefix = GetRessourceNameColorPart(stationsColorList[pinIndex]);
|
var colorPartPrefix = GetRessourceNameColorPart(stationsColorList[pinIndex]);
|
||||||
|
|
||||||
var name = $"{indexPartPrefix.ToString().PadLeft(2, '0')}_{colorPartPrefix}{(DeviceInfo.Platform == DevicePlatform.Android ? ".png" : string.Empty)}";
|
var name = $"{indexPartPrefix.ToString().PadLeft(2, '0')}_{colorPartPrefix}{(DeviceInfo.Platform == DevicePlatform.Android ? ".png" : string.Empty)}";
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
Pins[pinIndex].Icon = BitmapDescriptorFactory.FromBundle(name);
|
Pins[pinIndex].Icon = BitmapDescriptorFactory.FromBundle(name);
|
||||||
}
|
}
|
||||||
catch (Exception excption)
|
catch (Exception excption)
|
||||||
{
|
{
|
||||||
Log.ForContext<MapPageViewModel>().Error("Station icon {name} can not be loaded. {@excption}.", name, excption);
|
Log.ForContext<MapPageViewModel>().Error("Station icon {name} can not be loaded. {@excption}.", name, excption);
|
||||||
Pins[pinIndex].Label = stationId.ToString();
|
Pins[pinIndex].Label = stationId.ToString();
|
||||||
Pins[pinIndex].Icon = BitmapDescriptorFactory.DefaultMarker(stationsColorList[pinIndex]);
|
Pins[pinIndex].Icon = BitmapDescriptorFactory.DefaultMarker(stationsColorList[pinIndex]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Pins[pinIndex].IsVisible = true;
|
Pins[pinIndex].IsVisible = true;
|
||||||
|
@ -294,6 +327,11 @@ namespace TINK.ViewModel.Map
|
||||||
return "Red";
|
return "Red";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (color == Color.Black)
|
||||||
|
{
|
||||||
|
return "NotClickable";
|
||||||
|
}
|
||||||
|
|
||||||
return color.ToString();
|
return color.ToString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -642,14 +680,17 @@ namespace TINK.ViewModel.Map
|
||||||
/// <param name="selectedStationId">Id of station user clicked on.</param>
|
/// <param name="selectedStationId">Id of station user clicked on.</param>
|
||||||
public async void OnStationClicked(string selectedStationId)
|
public async void OnStationClicked(string selectedStationId)
|
||||||
{
|
{
|
||||||
try
|
//Make shure currentLocationPin can not be clicked
|
||||||
|
if (selectedStationId != "NotClickable")
|
||||||
{
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
Log.ForContext<MapPageViewModel>().Information($"User taped station {selectedStationId}.");
|
Log.ForContext<MapPageViewModel>().Information($"User taped station {selectedStationId}.");
|
||||||
|
|
||||||
// Lock action to prevent multiple instances of "BikeAtStation" being opened.
|
// Lock action to prevent multiple instances of "BikeAtStation" being opened.
|
||||||
IsMapPageEnabled = false;
|
IsMapPageEnabled = false;
|
||||||
|
|
||||||
TinkApp.SelectedStation = TinkApp.Stations.FirstOrDefault(x => x.Id == selectedStationId)
|
TinkApp.SelectedStation = TinkApp.Stations.FirstOrDefault(x => x.Id == selectedStationId)
|
||||||
?? new Station(selectedStationId, new List<string>(), null); // Station might not be in list StationDictinaly because this list is not updatd in background task.
|
?? new Station(selectedStationId, new List<string>(), null); // Station might not be in list StationDictinaly because this list is not updatd in background task.
|
||||||
|
|
||||||
#if TRYNOTBACKSTYLE
|
#if TRYNOTBACKSTYLE
|
||||||
|
@ -657,24 +698,31 @@ namespace TINK.ViewModel.Map
|
||||||
typeof(BikesAtStationPage),
|
typeof(BikesAtStationPage),
|
||||||
p_strStationName);
|
p_strStationName);
|
||||||
#else
|
#else
|
||||||
// Show page.
|
{
|
||||||
await ViewService.PushAsync(ViewTypes.BikesAtStation);
|
// Show page.
|
||||||
|
await ViewService.PushAsync(ViewTypes.BikesAtStation);
|
||||||
|
|
||||||
IsMapPageEnabled = true;
|
IsMapPageEnabled = true;
|
||||||
ActionText = "";
|
ActionText = "";
|
||||||
}
|
}
|
||||||
catch (Exception exception)
|
}
|
||||||
{
|
catch (Exception exception)
|
||||||
IsMapPageEnabled = true;
|
{
|
||||||
ActionText = "";
|
IsMapPageEnabled = true;
|
||||||
|
ActionText = "";
|
||||||
|
|
||||||
Log.ForContext<MapPageViewModel>().Error("Fehler beim Öffnen der Ansicht \"Fahrräder an Station\" aufgetreten. {Exception}", exception);
|
Log.ForContext<MapPageViewModel>().Error("Fehler beim Öffnen der Ansicht \"Fahrräder an Station\" aufgetreten. {Exception}", exception);
|
||||||
await ViewService.DisplayAlert(
|
await ViewService.DisplayAlert(
|
||||||
"Fehler",
|
"Fehler",
|
||||||
$"Fehler beim Öffnen der Ansicht \"Fahrräder an Station\" aufgetreten. {exception.Message}",
|
$"Fehler beim Öffnen der Ansicht \"Fahrräder an Station\" aufgetreten. {exception.Message}",
|
||||||
"OK");
|
"OK");
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -703,23 +751,30 @@ namespace TINK.ViewModel.Map
|
||||||
var colors = new List<Color>();
|
var colors = new List<Color>();
|
||||||
foreach (var stationId in stationsId)
|
foreach (var stationId in stationsId)
|
||||||
{
|
{
|
||||||
// Get color of given station.
|
if (stationId != "NotClickable")
|
||||||
var bikesAtStation = bikesAll.Where(x => x.StationId == stationId).ToList();
|
|
||||||
if (bikesAtStation.FirstOrDefault(x => x.State.Value.IsOccupied()) != null)
|
|
||||||
{
|
{
|
||||||
// There is at least one requested or booked bike
|
// Get color of given station.
|
||||||
colors.Add(Color.LightBlue);
|
var bikesAtStation = bikesAll.Where(x => x.StationId == stationId).ToList();
|
||||||
continue;
|
if (bikesAtStation.FirstOrDefault(x => x.State.Value.IsOccupied()) != null)
|
||||||
}
|
{
|
||||||
|
// There is at least one requested or booked bike
|
||||||
|
colors.Add(Color.LightBlue);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
if (bikesAtStation.ToList().Count > 0)
|
if (bikesAtStation.ToList().Count > 0)
|
||||||
|
{
|
||||||
|
// There is at least one bike available
|
||||||
|
colors.Add(Color.Green);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
colors.Add(Color.Red);
|
||||||
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
// There is at least one bike available
|
colors.Add(Color.Black);
|
||||||
colors.Add(Color.Green);
|
|
||||||
continue;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
colors.Add(Color.Red);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return colors;
|
return colors;
|
||||||
|
@ -832,6 +887,34 @@ namespace TINK.ViewModel.Map
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary> Command object to bind CurrentLocation Button to view model.</summary>
|
||||||
|
public System.Windows.Input.ICommand OnCurrentLocationButtonClicked => new Xamarin.Forms.Command(async () => await CenterToCurrentLocation());
|
||||||
|
|
||||||
|
/// <summary> User request to center to currentLocation. </summary>
|
||||||
|
public async Task CenterToCurrentLocation()
|
||||||
|
{
|
||||||
|
Location currentLocation = null;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
currentLocation = await GeolocationService.GetAsync();
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Log.ForContext<MapPageViewModel>().Error("Getting location failed. {Exception}", ex);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (currentLocation != null)
|
||||||
|
{
|
||||||
|
TinkApp.UserMapSpan = MapSpan.FromCenterAndRadius(
|
||||||
|
new Xamarin.Forms.GoogleMaps.Position(currentLocation.Latitude, currentLocation.Longitude),
|
||||||
|
TinkApp.ActiveMapSpan.Radius);
|
||||||
|
|
||||||
|
TinkApp.Save();
|
||||||
|
}
|
||||||
|
|
||||||
|
MoveAndScale(m_oMoveToRegionDelegate, TinkApp.ActiveMapSpan);
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary> Command object to bind login button to view model.</summary>
|
/// <summary> Command object to bind login button to view model.</summary>
|
||||||
public System.Windows.Input.ICommand OnToggleTinkToKonrad => new Xamarin.Forms.Command(async () => await ToggleTinkToKonrad());
|
public System.Windows.Input.ICommand OnToggleTinkToKonrad => new Xamarin.Forms.Command(async () => await ToggleTinkToKonrad());
|
||||||
|
|
||||||
|
|
|
@ -12,8 +12,8 @@
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="NSubstitute" Version="4.4.0" />
|
<PackageReference Include="NSubstitute" Version="4.4.0" />
|
||||||
<PackageReference Include="NUnit" Version="3.13.3" />
|
<PackageReference Include="NUnit" Version="3.13.3" />
|
||||||
<PackageReference Include="NUnit3TestAdapter" Version="4.2.1" />
|
<PackageReference Include="NUnit3TestAdapter" Version="4.3.0" />
|
||||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.3.1" />
|
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.4.0" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|
|
@ -13,8 +13,8 @@
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="nunit" Version="3.13.3" />
|
<PackageReference Include="nunit" Version="3.13.3" />
|
||||||
<PackageReference Include="NUnit3TestAdapter" Version="4.2.1" />
|
<PackageReference Include="NUnit3TestAdapter" Version="4.3.0" />
|
||||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.3.1" />
|
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.4.0" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|
|
@ -31,8 +31,8 @@
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="NSubstitute" Version="4.4.0" />
|
<PackageReference Include="NSubstitute" Version="4.4.0" />
|
||||||
<PackageReference Include="NUnit" Version="3.13.3" />
|
<PackageReference Include="NUnit" Version="3.13.3" />
|
||||||
<PackageReference Include="NUnit3TestAdapter" Version="4.2.1" />
|
<PackageReference Include="NUnit3TestAdapter" Version="4.3.0" />
|
||||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.3.1" />
|
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.4.0" />
|
||||||
<PackageReference Include="Xamarin.Essentials" Version="1.7.3" />
|
<PackageReference Include="Xamarin.Essentials" Version="1.7.3" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
|
|
|
@ -9,11 +9,17 @@
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.3.1" />
|
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.4.0" />
|
||||||
<PackageReference Include="NUnit" Version="3.13.3" />
|
<PackageReference Include="NUnit" Version="3.13.3" />
|
||||||
<PackageReference Include="NUnit3TestAdapter" Version="4.2.1" />
|
<PackageReference Include="NUnit3TestAdapter" Version="4.3.0" />
|
||||||
<PackageReference Include="NUnit.Analyzers" Version="3.3.0" />
|
<PackageReference Include="NUnit.Analyzers" Version="3.5.0">
|
||||||
<PackageReference Include="coverlet.collector" Version="3.1.2" />
|
<PrivateAssets>all</PrivateAssets>
|
||||||
|
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||||
|
</PackageReference>
|
||||||
|
<PackageReference Include="coverlet.collector" Version="3.2.0">
|
||||||
|
<PrivateAssets>all</PrivateAssets>
|
||||||
|
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||||
|
</PackageReference>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|
|
@ -12,8 +12,8 @@
|
||||||
<NuGetPackageImportStamp>
|
<NuGetPackageImportStamp>
|
||||||
</NuGetPackageImportStamp>
|
</NuGetPackageImportStamp>
|
||||||
<ReleaseVersion>3.0</ReleaseVersion>
|
<ReleaseVersion>3.0</ReleaseVersion>
|
||||||
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
|
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
|
||||||
<GenerateBindingRedirectsOutputType>true</GenerateBindingRedirectsOutputType>
|
<GenerateBindingRedirectsOutputType>true</GenerateBindingRedirectsOutputType>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||||
<DebugSymbols>true</DebugSymbols>
|
<DebugSymbols>true</DebugSymbols>
|
||||||
|
@ -139,7 +139,7 @@
|
||||||
<Version>3.13.3</Version>
|
<Version>3.13.3</Version>
|
||||||
</PackageReference>
|
</PackageReference>
|
||||||
<PackageReference Include="NUnit3TestAdapter">
|
<PackageReference Include="NUnit3TestAdapter">
|
||||||
<Version>4.2.1</Version>
|
<Version>4.3.0</Version>
|
||||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||||
<PrivateAssets>all</PrivateAssets>
|
<PrivateAssets>all</PrivateAssets>
|
||||||
</PackageReference>
|
</PackageReference>
|
||||||
|
|