initial push of android app and bt server. these are used to make a remote usable via phone
@ -1,7 +1,20 @@
|
||||
{
|
||||
"Version": 1,
|
||||
"WorkspaceRootPath": "C:\\Users\\bib\\Desktop\\vpr\\pull from pc\\mediaverwaltung\\",
|
||||
"Documents": [],
|
||||
"Documents": [
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{1185F325-8505-4867-B209-0108417748CD}|ShadowStream\\ShadowStream.csproj|c:\\users\\bib\\desktop\\vpr\\pull from pc\\mediaverwaltung\\shadowstream\\views\\mainwindow.xaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{1185F325-8505-4867-B209-0108417748CD}|ShadowStream\\ShadowStream.csproj|solutionrelative:shadowstream\\views\\mainwindow.xaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{456AD46A-AA0A-48B6-BD27-BBF45C714912}|NotVPR_SideProjecktForVpr_FreeTime\\NotVPR_SideProjecktForVpr_FreeTime.csproj|c:\\users\\bib\\desktop\\vpr\\pull from pc\\mediaverwaltung\\notvpr_sideprojecktforvpr_freetime\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{456AD46A-AA0A-48B6-BD27-BBF45C714912}|NotVPR_SideProjecktForVpr_FreeTime\\NotVPR_SideProjecktForVpr_FreeTime.csproj|solutionrelative:notvpr_sideprojecktforvpr_freetime\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{456AD46A-AA0A-48B6-BD27-BBF45C714912}|NotVPR_SideProjecktForVpr_FreeTime\\NotVPR_SideProjecktForVpr_FreeTime.csproj|c:\\users\\bib\\desktop\\vpr\\pull from pc\\mediaverwaltung\\notvpr_sideprojecktforvpr_freetime\\bluetoothserver.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{456AD46A-AA0A-48B6-BD27-BBF45C714912}|NotVPR_SideProjecktForVpr_FreeTime\\NotVPR_SideProjecktForVpr_FreeTime.csproj|solutionrelative:notvpr_sideprojecktforvpr_freetime\\bluetoothserver.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
}
|
||||
],
|
||||
"DocumentGroupContainers": [
|
||||
{
|
||||
"Orientation": 0,
|
||||
@ -9,8 +22,12 @@
|
||||
"DocumentGroups": [
|
||||
{
|
||||
"DockedWidth": 200,
|
||||
"SelectedChildIndex": -1,
|
||||
"SelectedChildIndex": 5,
|
||||
"Children": [
|
||||
{
|
||||
"$type": "Bookmark",
|
||||
"Name": "ST:0:0:{3ae79031-e1bc-11d0-8f78-00a0c9110057}"
|
||||
},
|
||||
{
|
||||
"$type": "Bookmark",
|
||||
"Name": "ST:0:0:{1c64b9c2-e352-428e-a56d-0ace190b99a6}"
|
||||
@ -18,6 +35,45 @@
|
||||
{
|
||||
"$type": "Bookmark",
|
||||
"Name": "ST:0:0:{40ea2e6b-2121-4bb8-a43e-c83c04b51041}"
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 1,
|
||||
"Title": "Program.cs",
|
||||
"DocumentMoniker": "C:\\Users\\bib\\Desktop\\vpr\\pull from pc\\mediaverwaltung\\NotVPR_SideProjecktForVpr_FreeTime\\Program.cs",
|
||||
"RelativeDocumentMoniker": "NotVPR_SideProjecktForVpr_FreeTime\\Program.cs",
|
||||
"ToolTip": "C:\\Users\\bib\\Desktop\\vpr\\pull from pc\\mediaverwaltung\\NotVPR_SideProjecktForVpr_FreeTime\\Program.cs",
|
||||
"RelativeToolTip": "NotVPR_SideProjecktForVpr_FreeTime\\Program.cs",
|
||||
"ViewState": "AgIAAAoAAAAAAAAAAAAgwAAAAAAAAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2025-06-27T09:07:44.889Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 2,
|
||||
"Title": "BluetoothServer.cs",
|
||||
"DocumentMoniker": "C:\\Users\\bib\\Desktop\\vpr\\pull from pc\\mediaverwaltung\\NotVPR_SideProjecktForVpr_FreeTime\\BluetoothServer.cs",
|
||||
"RelativeDocumentMoniker": "NotVPR_SideProjecktForVpr_FreeTime\\BluetoothServer.cs",
|
||||
"ToolTip": "C:\\Users\\bib\\Desktop\\vpr\\pull from pc\\mediaverwaltung\\NotVPR_SideProjecktForVpr_FreeTime\\BluetoothServer.cs",
|
||||
"RelativeToolTip": "NotVPR_SideProjecktForVpr_FreeTime\\BluetoothServer.cs",
|
||||
"ViewState": "AgIAAA4AAAAAAAAAAAAQwCEAAAAqAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2025-06-27T09:07:11.204Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 0,
|
||||
"Title": "MainWindow.xaml.cs",
|
||||
"DocumentMoniker": "C:\\Users\\bib\\Desktop\\vpr\\pull from pc\\mediaverwaltung\\ShadowStream\\Views\\MainWindow.xaml.cs",
|
||||
"RelativeDocumentMoniker": "ShadowStream\\Views\\MainWindow.xaml.cs",
|
||||
"ToolTip": "C:\\Users\\bib\\Desktop\\vpr\\pull from pc\\mediaverwaltung\\ShadowStream\\Views\\MainWindow.xaml.cs*",
|
||||
"RelativeToolTip": "ShadowStream\\Views\\MainWindow.xaml.cs*",
|
||||
"ViewState": "AgIAAE8DAAAAAAAAAAAqwFEDAAAoAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2025-06-27T08:59:32.664Z",
|
||||
"EditorCaption": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
|
@ -1,7 +1,20 @@
|
||||
{
|
||||
"Version": 1,
|
||||
"WorkspaceRootPath": "C:\\Users\\bib\\Desktop\\vpr\\pull from pc\\mediaverwaltung\\",
|
||||
"Documents": [],
|
||||
"Documents": [
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{1185F325-8505-4867-B209-0108417748CD}|ShadowStream\\ShadowStream.csproj|c:\\users\\bib\\desktop\\vpr\\pull from pc\\mediaverwaltung\\shadowstream\\views\\mainwindow.xaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{1185F325-8505-4867-B209-0108417748CD}|ShadowStream\\ShadowStream.csproj|solutionrelative:shadowstream\\views\\mainwindow.xaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{456AD46A-AA0A-48B6-BD27-BBF45C714912}|NotVPR_SideProjecktForVpr_FreeTime\\NotVPR_SideProjecktForVpr_FreeTime.csproj|c:\\users\\bib\\desktop\\vpr\\pull from pc\\mediaverwaltung\\notvpr_sideprojecktforvpr_freetime\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{456AD46A-AA0A-48B6-BD27-BBF45C714912}|NotVPR_SideProjecktForVpr_FreeTime\\NotVPR_SideProjecktForVpr_FreeTime.csproj|solutionrelative:notvpr_sideprojecktforvpr_freetime\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{456AD46A-AA0A-48B6-BD27-BBF45C714912}|NotVPR_SideProjecktForVpr_FreeTime\\NotVPR_SideProjecktForVpr_FreeTime.csproj|c:\\users\\bib\\desktop\\vpr\\pull from pc\\mediaverwaltung\\notvpr_sideprojecktforvpr_freetime\\bluetoothserver.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{456AD46A-AA0A-48B6-BD27-BBF45C714912}|NotVPR_SideProjecktForVpr_FreeTime\\NotVPR_SideProjecktForVpr_FreeTime.csproj|solutionrelative:notvpr_sideprojecktforvpr_freetime\\bluetoothserver.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
}
|
||||
],
|
||||
"DocumentGroupContainers": [
|
||||
{
|
||||
"Orientation": 0,
|
||||
@ -9,8 +22,12 @@
|
||||
"DocumentGroups": [
|
||||
{
|
||||
"DockedWidth": 200,
|
||||
"SelectedChildIndex": -1,
|
||||
"SelectedChildIndex": 5,
|
||||
"Children": [
|
||||
{
|
||||
"$type": "Bookmark",
|
||||
"Name": "ST:0:0:{3ae79031-e1bc-11d0-8f78-00a0c9110057}"
|
||||
},
|
||||
{
|
||||
"$type": "Bookmark",
|
||||
"Name": "ST:0:0:{1c64b9c2-e352-428e-a56d-0ace190b99a6}"
|
||||
@ -18,6 +35,45 @@
|
||||
{
|
||||
"$type": "Bookmark",
|
||||
"Name": "ST:0:0:{40ea2e6b-2121-4bb8-a43e-c83c04b51041}"
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 1,
|
||||
"Title": "Program.cs",
|
||||
"DocumentMoniker": "C:\\Users\\bib\\Desktop\\vpr\\pull from pc\\mediaverwaltung\\NotVPR_SideProjecktForVpr_FreeTime\\Program.cs",
|
||||
"RelativeDocumentMoniker": "NotVPR_SideProjecktForVpr_FreeTime\\Program.cs",
|
||||
"ToolTip": "C:\\Users\\bib\\Desktop\\vpr\\pull from pc\\mediaverwaltung\\NotVPR_SideProjecktForVpr_FreeTime\\Program.cs",
|
||||
"RelativeToolTip": "NotVPR_SideProjecktForVpr_FreeTime\\Program.cs",
|
||||
"ViewState": "AgIAAAoAAAAAAAAAAAAgwAAAAAAAAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2025-06-27T09:07:44.889Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 2,
|
||||
"Title": "BluetoothServer.cs",
|
||||
"DocumentMoniker": "C:\\Users\\bib\\Desktop\\vpr\\pull from pc\\mediaverwaltung\\NotVPR_SideProjecktForVpr_FreeTime\\BluetoothServer.cs",
|
||||
"RelativeDocumentMoniker": "NotVPR_SideProjecktForVpr_FreeTime\\BluetoothServer.cs",
|
||||
"ToolTip": "C:\\Users\\bib\\Desktop\\vpr\\pull from pc\\mediaverwaltung\\NotVPR_SideProjecktForVpr_FreeTime\\BluetoothServer.cs",
|
||||
"RelativeToolTip": "NotVPR_SideProjecktForVpr_FreeTime\\BluetoothServer.cs",
|
||||
"ViewState": "AgIAAA4AAAAAAAAAAAAQwCEAAAAqAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2025-06-27T09:07:11.204Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 0,
|
||||
"Title": "MainWindow.xaml.cs",
|
||||
"DocumentMoniker": "C:\\Users\\bib\\Desktop\\vpr\\pull from pc\\mediaverwaltung\\ShadowStream\\Views\\MainWindow.xaml.cs",
|
||||
"RelativeDocumentMoniker": "ShadowStream\\Views\\MainWindow.xaml.cs",
|
||||
"ToolTip": "C:\\Users\\bib\\Desktop\\vpr\\pull from pc\\mediaverwaltung\\ShadowStream\\Views\\MainWindow.xaml.cs",
|
||||
"RelativeToolTip": "ShadowStream\\Views\\MainWindow.xaml.cs",
|
||||
"ViewState": "AgIAAE8DAAAAAAAAAAAqwFEDAAAoAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2025-06-27T08:59:32.664Z",
|
||||
"EditorCaption": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
|
12
NotVPR_Remote/App.xaml
Normal file
@ -0,0 +1,12 @@
|
||||
<?xml version = "1.0" encoding = "UTF-8" ?>
|
||||
<Application xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
|
||||
xmlns:local="clr-namespace:NotVPR_Remote"
|
||||
x:Class="NotVPR_Remote.App">
|
||||
<Application.Resources>
|
||||
<ResourceDictionary>
|
||||
<ResourceDictionary.MergedDictionaries>
|
||||
</ResourceDictionary.MergedDictionaries>
|
||||
</ResourceDictionary>
|
||||
</Application.Resources>
|
||||
</Application>
|
12
NotVPR_Remote/App.xaml.cs
Normal file
@ -0,0 +1,12 @@
|
||||
namespace NotVPR_Remote
|
||||
{
|
||||
public partial class App : Application
|
||||
{
|
||||
public App()
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
MainPage = new AppShell();
|
||||
}
|
||||
}
|
||||
}
|
15
NotVPR_Remote/AppShell.xaml
Normal file
@ -0,0 +1,15 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<Shell
|
||||
x:Class="NotVPR_Remote.AppShell"
|
||||
xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
|
||||
xmlns:local="clr-namespace:NotVPR_Remote"
|
||||
Shell.FlyoutBehavior="Disabled"
|
||||
Title="NotVPR_Remote">
|
||||
|
||||
<ShellContent
|
||||
Title="Home"
|
||||
ContentTemplate="{DataTemplate local:MainPage}"
|
||||
Route="MainPage" />
|
||||
|
||||
</Shell>
|
10
NotVPR_Remote/AppShell.xaml.cs
Normal file
@ -0,0 +1,10 @@
|
||||
namespace NotVPR_Remote
|
||||
{
|
||||
public partial class AppShell : Shell
|
||||
{
|
||||
public AppShell()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
}
|
||||
}
|
107
NotVPR_Remote/MainPage.xaml
Normal file
@ -0,0 +1,107 @@
|
||||
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
|
||||
x:Class="NotVPR_Remote.MainPage"
|
||||
Title="Bluetooth Remote"
|
||||
BackgroundColor="Black">
|
||||
|
||||
<VerticalStackLayout Padding="20" Spacing="30" HorizontalOptions="Center">
|
||||
<Label x:Name="StatusLabel" Text="Select Paired Device" TextColor="White" />
|
||||
<Picker x:Name="DevicePicker" Title="Select Device" TextColor="White" BackgroundColor="Black" />
|
||||
<Button Text="Connect" TextColor="White" BackgroundColor="Black" Clicked="OnConnectClicked" />
|
||||
|
||||
<!-- D-pad Grid -->
|
||||
<Grid RowSpacing="10" ColumnSpacing="10" HorizontalOptions="Center">
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto" />
|
||||
<!-- Up -->
|
||||
<RowDefinition Height="Auto" />
|
||||
<!-- Main row: Left2 to Right2 -->
|
||||
<RowDefinition Height="Auto" />
|
||||
<!-- Down -->
|
||||
</Grid.RowDefinitions>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto" />
|
||||
<!-- Left2 -->
|
||||
<ColumnDefinition Width="Auto" />
|
||||
<!-- Left1 -->
|
||||
<ColumnDefinition Width="Auto" />
|
||||
<!-- Center -->
|
||||
<ColumnDefinition Width="Auto" />
|
||||
<!-- Right1 -->
|
||||
<ColumnDefinition Width="Auto" />
|
||||
<!-- Right2 -->
|
||||
</Grid.ColumnDefinitions>
|
||||
|
||||
<!-- Up -->
|
||||
<Button Text="↑" FontSize="32"
|
||||
TextColor="White" BackgroundColor="Black"
|
||||
Clicked="OnButtonClicked"
|
||||
Grid.Row="0" Grid.Column="2" />
|
||||
|
||||
<!-- Left2 -->
|
||||
<Button Text="⇚" FontSize="32"
|
||||
TextColor="White" BackgroundColor="Black"
|
||||
Clicked="OnButtonClicked"
|
||||
Grid.Row="1" Grid.Column="0" />
|
||||
|
||||
<!-- Left1 -->
|
||||
<Button Text="←" FontSize="32"
|
||||
TextColor="White" BackgroundColor="Black"
|
||||
Clicked="OnButtonClicked"
|
||||
Grid.Row="1" Grid.Column="1" />
|
||||
|
||||
<!-- Center -->
|
||||
<Button Text="●" FontSize="32"
|
||||
TextColor="White" BackgroundColor="Black"
|
||||
Clicked="OnButtonClicked"
|
||||
Grid.Row="1" Grid.Column="2" />
|
||||
|
||||
<!-- Right1 -->
|
||||
<Button Text="→" FontSize="32"
|
||||
TextColor="White" BackgroundColor="Black"
|
||||
Clicked="OnButtonClicked"
|
||||
Grid.Row="1" Grid.Column="3" />
|
||||
|
||||
<!-- Right2 -->
|
||||
<Button Text="⇛" FontSize="32"
|
||||
TextColor="White" BackgroundColor="Black"
|
||||
Clicked="OnButtonClicked"
|
||||
Grid.Row="1" Grid.Column="4" />
|
||||
|
||||
<!-- Down -->
|
||||
<Button Text="↓" FontSize="32"
|
||||
TextColor="White" BackgroundColor="Black"
|
||||
Clicked="OnButtonClicked"
|
||||
Grid.Row="2" Grid.Column="2" />
|
||||
|
||||
<!-- Additional controls on bottom row -->
|
||||
<Button Text="Home" TextColor="White" BackgroundColor="Black" Clicked="OnButtonClicked" Grid.Row="2" Grid.Column="0" />
|
||||
<Button Text="Mute" TextColor="White" BackgroundColor="Black" Clicked="OnButtonClicked" Grid.Row="2" Grid.Column="4" />
|
||||
|
||||
<!-- Volume controls on top row -->
|
||||
<Button Text="Vol -" TextColor="White" BackgroundColor="Black" Clicked="OnButtonClicked" Grid.Row="0" Grid.Column="0" />
|
||||
<Button Text="Vol +" TextColor="White" BackgroundColor="Black" Clicked="OnButtonClicked" Grid.Row="0" Grid.Column="4" />
|
||||
</Grid>
|
||||
<Grid HeightRequest="20">
|
||||
<!-- Background progress bar -->
|
||||
<ProgressBar x:Name="PlaybackProgress"
|
||||
Progress="0.5"
|
||||
VerticalOptions="Fill"
|
||||
HorizontalOptions="Fill"
|
||||
ProgressColor="Red" />
|
||||
|
||||
<!-- Foreground interactive slider -->
|
||||
<Slider x:Name="PlaybackSlider"
|
||||
Minimum="0"
|
||||
Maximum="1"
|
||||
Value="0.5"
|
||||
ThumbColor="White"
|
||||
MaximumTrackColor="Transparent"
|
||||
MinimumTrackColor="Transparent"
|
||||
VerticalOptions="Fill"
|
||||
HorizontalOptions="Fill"
|
||||
ValueChanged="PlaybackSlider_ValueChanged"/>
|
||||
</Grid>
|
||||
|
||||
</VerticalStackLayout>
|
||||
</ContentPage>
|
207
NotVPR_Remote/MainPage.xaml.cs
Normal file
@ -0,0 +1,207 @@
|
||||
using Android.Bluetooth;
|
||||
using Android.Content;
|
||||
using Android.OS;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using Microsoft.Maui.Controls;
|
||||
|
||||
namespace NotVPR_Remote;
|
||||
|
||||
public partial class MainPage : ContentPage
|
||||
{
|
||||
BluetoothAdapter _adapter;
|
||||
IList<BluetoothDevice> _pairedDevices;
|
||||
BluetoothSocket _socket;
|
||||
Stream _outputStream;
|
||||
Stream _inputStream;
|
||||
CancellationTokenSource _receiveCts;
|
||||
|
||||
long lastTimeSent = 300;
|
||||
|
||||
public MainPage()
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
_adapter = BluetoothAdapter.DefaultAdapter;
|
||||
|
||||
if (_adapter == null || !_adapter.IsEnabled)
|
||||
{
|
||||
DisplayAlert("Bluetooth Error", "Bluetooth is disabled or not available on this device.", "OK");
|
||||
return;
|
||||
}
|
||||
|
||||
LoadPairedDevices();
|
||||
}
|
||||
|
||||
void LoadPairedDevices()
|
||||
{
|
||||
DevicePicker.Items.Clear();
|
||||
_pairedDevices = new List<BluetoothDevice>();
|
||||
|
||||
var paired = _adapter.BondedDevices;
|
||||
foreach (var device in paired)
|
||||
{
|
||||
_pairedDevices.Add(device);
|
||||
DevicePicker.Items.Add(device.Name);
|
||||
}
|
||||
|
||||
if (_pairedDevices.Count > 0)
|
||||
DevicePicker.SelectedIndex = 0;
|
||||
else
|
||||
DevicePicker.Title = "No paired devices found";
|
||||
}
|
||||
|
||||
async void OnConnectClicked(object sender, EventArgs e)
|
||||
{
|
||||
if (DevicePicker.SelectedIndex == -1)
|
||||
{
|
||||
await DisplayAlert("Error", "Select a device first", "OK");
|
||||
return;
|
||||
}
|
||||
|
||||
var device = _pairedDevices[DevicePicker.SelectedIndex];
|
||||
|
||||
var sppUuid = Java.Util.UUID.FromString("00001101-0000-1000-8000-00805F9B34FB");
|
||||
|
||||
try
|
||||
{
|
||||
_socket?.Close();
|
||||
|
||||
_socket = device.CreateRfcommSocketToServiceRecord(sppUuid);
|
||||
|
||||
await Task.Run(() => _socket.Connect());
|
||||
|
||||
_outputStream = _socket.OutputStream;
|
||||
_inputStream = _socket.InputStream;
|
||||
|
||||
_receiveCts = new CancellationTokenSource();
|
||||
StartListeningForMessages(_receiveCts.Token);
|
||||
|
||||
if (_socket.IsConnected)
|
||||
{
|
||||
var stream = _socket.OutputStream;
|
||||
var data = Encoding.UTF8.GetBytes("Hello\n");
|
||||
await stream.WriteAsync(data, 0, data.Length);
|
||||
await stream.FlushAsync();
|
||||
}
|
||||
|
||||
StatusLabel.Text = $"Connected to {device.Name}";
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
await DisplayAlert("Connection Error", ex.Message, "OK");
|
||||
StatusLabel.Text = "Connection failed";
|
||||
}
|
||||
}
|
||||
|
||||
async void OnButtonClicked(object sender, EventArgs e)
|
||||
{
|
||||
if (_socket == null || !_socket.IsConnected || _outputStream == null)
|
||||
{
|
||||
await DisplayAlert("Error", "Not connected to any device.", "OK");
|
||||
return;
|
||||
}
|
||||
|
||||
var button = (Button)sender;
|
||||
string message = button.Text switch
|
||||
{
|
||||
"↑" => "NAV_UP",
|
||||
"↓" => "NAV_DOWN",
|
||||
"←" => "NAV_LEFT",
|
||||
"→" => "NAV_RIGHT",
|
||||
"⇚" => "-EP",
|
||||
"⇛" => "+EP",
|
||||
"●" => "SPACE",
|
||||
"Home" => "HOME",
|
||||
"Mute" => "MUTE",
|
||||
"Vol -" => "VOLUME_DOWN",
|
||||
"Vol +" => "VOLUME_UP",
|
||||
_ => "UNKNOWN"
|
||||
};
|
||||
|
||||
|
||||
try
|
||||
{
|
||||
byte[] data = Encoding.UTF8.GetBytes(message + "\n");
|
||||
await _outputStream.WriteAsync(data, 0, data.Length);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
await DisplayAlert("Send Error", ex.Message, "OK");
|
||||
}
|
||||
}
|
||||
|
||||
private void PlaybackSlider_ValueChanged(object sender, ValueChangedEventArgs e)
|
||||
{
|
||||
PlaybackProgress.Progress = PlaybackSlider.Value;
|
||||
string message = "Time:" + PlaybackSlider.Value.ToString();
|
||||
try
|
||||
{
|
||||
if (lastTimeSent < PlaybackSlider.Value + 2 || lastTimeSent > PlaybackSlider.Value - 2)
|
||||
{
|
||||
byte[] data = Encoding.UTF8.GetBytes(message + "\n");
|
||||
_outputStream.WriteAsync(data, 0, data.Length);
|
||||
lastTimeSent = (long)PlaybackSlider.Value;
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Console.WriteLine($"Slider Send Error: {ex.Message}");
|
||||
}
|
||||
}
|
||||
|
||||
void StartListeningForMessages(CancellationToken token)
|
||||
{
|
||||
Task.Run(async () =>
|
||||
{
|
||||
byte[] buffer = new byte[1024];
|
||||
|
||||
try
|
||||
{
|
||||
while (!token.IsCancellationRequested)
|
||||
{
|
||||
int bytesRead = await _inputStream.ReadAsync(buffer, 0, buffer.Length, token);
|
||||
|
||||
if (bytesRead > 0)
|
||||
{
|
||||
string receivedMessage = Encoding.UTF8.GetString(buffer, 0, bytesRead);
|
||||
Console.WriteLine($"Received: {receivedMessage}");
|
||||
|
||||
MainThread.BeginInvokeOnMainThread(() =>
|
||||
{
|
||||
StatusLabel.Text = $"Received: {receivedMessage}";
|
||||
// TODO: Handle message as needed
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Console.WriteLine($"Receive error: {ex.Message}");
|
||||
}
|
||||
}, token);
|
||||
}
|
||||
|
||||
protected override void OnDisappearing()
|
||||
{
|
||||
base.OnDisappearing();
|
||||
|
||||
_receiveCts?.Cancel();
|
||||
_inputStream?.Close();
|
||||
_outputStream?.Close();
|
||||
_socket?.Close();
|
||||
}
|
||||
|
||||
void OnDisconnectClicked(object sender, EventArgs e)
|
||||
{
|
||||
_receiveCts?.Cancel();
|
||||
_inputStream?.Close();
|
||||
_outputStream?.Close();
|
||||
_socket?.Close();
|
||||
StatusLabel.Text = "Disconnected";
|
||||
}
|
||||
}
|
26
NotVPR_Remote/MauiProgram.cs
Normal file
@ -0,0 +1,26 @@
|
||||
using Microsoft.Maui;
|
||||
using Microsoft.Maui.Hosting;
|
||||
using Microsoft.Extensions.Logging;
|
||||
|
||||
namespace NotVPR_Remote
|
||||
{
|
||||
public static class MauiProgram
|
||||
{
|
||||
public static MauiApp CreateMauiApp()
|
||||
{
|
||||
var builder = MauiApp.CreateBuilder()
|
||||
.UseMauiApp<App>()
|
||||
.ConfigureFonts(fonts => fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular"));
|
||||
|
||||
builder.Logging.AddDebug();
|
||||
|
||||
builder.ConfigureFonts(fonts =>
|
||||
{
|
||||
fonts.AddFont("NotoSansSymbols-Regular.ttf", "SymbolsFont");
|
||||
});
|
||||
|
||||
|
||||
return builder.Build();
|
||||
}
|
||||
}
|
||||
}
|
18
NotVPR_Remote/NotVPR_Remote.csproj
Normal file
@ -0,0 +1,18 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net8.0-android</TargetFramework>
|
||||
<UseMaui>true</UseMaui>
|
||||
<OutputType>Exe</OutputType>
|
||||
<Nullable>enable</Nullable>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<AndroidManifest>Platforms/Android/AndroidManifest.xml</AndroidManifest>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="InTheHand.Net.Bluetooth" Version="4.2.1" />
|
||||
<PackageReference Include="Microsoft.Maui.Controls" Version="8.0.100" />
|
||||
<MauiImage Remove="Resources\Images\dotnet_bot.png" />
|
||||
<PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="8.0.0" />
|
||||
<PackageReference Include="Plugin.BLE" Version="3.1.0" />
|
||||
</ItemGroup>
|
||||
</Project>
|
23
NotVPR_Remote/NotVPR_Remote.csproj.user
Normal file
@ -0,0 +1,23 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<SelectedDevice>pixel_7_-_api_34</SelectedDevice>
|
||||
<SelectedPlatformGroup>PhysicalDevice</SelectedPlatformGroup>
|
||||
<ActiveDebugProfile>Samsung SM-A528B</ActiveDebugProfile>
|
||||
<DefaultDevice>pixel_7_-_api_34</DefaultDevice>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
|
||||
<DebuggerFlavor>ProjectDebugger</DebuggerFlavor>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<None Update="App.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
</None>
|
||||
<None Update="AppShell.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
</None>
|
||||
<None Update="MainPage.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
</None>
|
||||
</ItemGroup>
|
||||
</Project>
|
18
NotVPR_Remote/Platforms/Android/AndroidManifest.xml
Normal file
@ -0,0 +1,18 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
package="com.yourcompany.shadowstreamremote"
|
||||
android:versionCode="1"
|
||||
android:versionName="V0.1">
|
||||
|
||||
<uses-permission android:name="android.permission.BLUETOOTH" />
|
||||
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
|
||||
<uses-permission android:name="android.permission.BLUETOOTH_SCAN" android:usesPermissionFlags="neverForLocation"/>
|
||||
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
|
||||
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
|
||||
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
|
||||
|
||||
<application android:allowBackup="true"
|
||||
android:supportsRtl="true"
|
||||
android:label="ShadowStreamRemote">
|
||||
</application>
|
||||
</manifest>
|
47
NotVPR_Remote/Platforms/Android/MainActivity.cs
Normal file
@ -0,0 +1,47 @@
|
||||
using Android.App;
|
||||
using Android.Content.PM;
|
||||
using Android.OS;
|
||||
using Android;
|
||||
using AndroidX.Core.App;
|
||||
using AndroidX.Core.Content;
|
||||
|
||||
namespace NotVPR_Remote
|
||||
{
|
||||
[Activity(Theme = "@style/Maui.SplashTheme", MainLauncher = true, LaunchMode = LaunchMode.SingleTop,
|
||||
ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation | ConfigChanges.UiMode |
|
||||
ConfigChanges.ScreenLayout | ConfigChanges.SmallestScreenSize | ConfigChanges.Density)]
|
||||
public class MainActivity : MauiAppCompatActivity
|
||||
{
|
||||
const int RequestBluetoothPermissionsId = 1000;
|
||||
|
||||
protected override void OnCreate(Bundle savedInstanceState)
|
||||
{
|
||||
base.OnCreate(savedInstanceState);
|
||||
|
||||
if (Build.VERSION.SdkInt >= BuildVersionCodes.S)
|
||||
{
|
||||
string[] permissions =
|
||||
{
|
||||
Manifest.Permission.BluetoothScan,
|
||||
Manifest.Permission.BluetoothConnect,
|
||||
Manifest.Permission.AccessFineLocation // Needed for scanning on some devices
|
||||
};
|
||||
|
||||
if (!HasPermissions(permissions))
|
||||
{
|
||||
ActivityCompat.RequestPermissions(this, permissions, RequestBluetoothPermissionsId);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
bool HasPermissions(string[] permissions)
|
||||
{
|
||||
foreach (var permission in permissions)
|
||||
{
|
||||
if (ContextCompat.CheckSelfPermission(this, permission) != Permission.Granted)
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
16
NotVPR_Remote/Platforms/Android/MainApplication.cs
Normal file
@ -0,0 +1,16 @@
|
||||
using Android.App;
|
||||
using Android.Runtime;
|
||||
|
||||
namespace NotVPR_Remote
|
||||
{
|
||||
[Application]
|
||||
public class MainApplication : MauiApplication
|
||||
{
|
||||
public MainApplication(IntPtr handle, JniHandleOwnership ownership)
|
||||
: base(handle, ownership)
|
||||
{
|
||||
}
|
||||
|
||||
protected override MauiApp CreateMauiApp() => MauiProgram.CreateMauiApp();
|
||||
}
|
||||
}
|
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<color name="colorPrimary">#512BD4</color>
|
||||
<color name="colorPrimaryDark">#2B0B98</color>
|
||||
<color name="colorAccent">#2B0B98</color>
|
||||
</resources>
|
8
NotVPR_Remote/Properties/launchSettings.json
Normal file
@ -0,0 +1,8 @@
|
||||
{
|
||||
"profiles": {
|
||||
"Windows Machine": {
|
||||
"commandName": "MsixPackage",
|
||||
"nativeDebugging": false
|
||||
}
|
||||
}
|
||||
}
|
BIN
NotVPR_Remote/Resources/Fonts/RubikGemstones-Regular.ttf
Normal file
BIN
NotVPR_Remote/bin/Debug/net8.0-android/NotVPR_Remote.dll
Normal file
BIN
NotVPR_Remote/bin/Debug/net8.0-android/NotVPR_Remote.pdb
Normal file
@ -0,0 +1,33 @@
|
||||
{
|
||||
"runtimeOptions": {
|
||||
"tfm": "net8.0",
|
||||
"frameworks": [
|
||||
{
|
||||
"name": "Microsoft.NETCore.App",
|
||||
"version": "8.0.0"
|
||||
},
|
||||
{
|
||||
"name": "Microsoft.Android",
|
||||
"version": ""
|
||||
}
|
||||
],
|
||||
"configProperties": {
|
||||
"Microsoft.Extensions.DependencyInjection.VerifyOpenGenericServiceTrimmability": true,
|
||||
"System.AggressiveAttributeTrimming": true,
|
||||
"System.Diagnostics.Tracing.EventSource.IsSupported": false,
|
||||
"System.Globalization.Invariant": false,
|
||||
"System.Net.Http.EnableActivityPropagation": false,
|
||||
"System.Net.Http.UseNativeHttpHandler": true,
|
||||
"System.Reflection.NullabilityInfoContext.IsSupported": false,
|
||||
"System.Runtime.InteropServices.BuiltInComInterop.IsSupported": false,
|
||||
"System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": false,
|
||||
"System.StartupHookProvider.IsSupported": false,
|
||||
"System.Text.Encoding.EnableUnsafeUTF7Encoding": false,
|
||||
"System.Text.Json.JsonSerializer.IsReflectionEnabledByDefault": true,
|
||||
"Xamarin.Android.Net.UseNegotiateAuthentication": false,
|
||||
"Switch.System.Reflection.ForceInterpretedInvoke": true,
|
||||
"Microsoft.Extensions.DependencyInjection.DisableDynamicEngine": true,
|
||||
"System.Diagnostics.Metrics.Meter.IsSupported": false
|
||||
}
|
||||
}
|
||||
}
|
8
NotVPR_Remote/bin/Debug/net8.0-android/NotVPR_Remote.xml
Normal file
@ -0,0 +1,8 @@
|
||||
<?xml version="1.0"?>
|
||||
<doc>
|
||||
<assembly>
|
||||
<name>NotVPR_Remote</name>
|
||||
</assembly>
|
||||
<members>
|
||||
</members>
|
||||
</doc>
|
@ -0,0 +1,4 @@
|
||||
// <autogenerated />
|
||||
using System;
|
||||
using System.Reflection;
|
||||
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v8.0", FrameworkDisplayName = ".NET 8.0")]
|
@ -0,0 +1,24 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
using System;
|
||||
using System.Reflection;
|
||||
|
||||
[assembly: System.Reflection.AssemblyCompanyAttribute("NotVPR_Remote")]
|
||||
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
|
||||
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
|
||||
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+9e5b7a699991d66b1f07c6058463142577bc2133")]
|
||||
[assembly: System.Reflection.AssemblyProductAttribute("NotVPR_Remote")]
|
||||
[assembly: System.Reflection.AssemblyTitleAttribute("NotVPR_Remote")]
|
||||
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
|
||||
[assembly: System.Runtime.Versioning.TargetPlatformAttribute("Android34.0")]
|
||||
[assembly: System.Runtime.Versioning.SupportedOSPlatformAttribute("Android21.0")]
|
||||
|
||||
// Generated by the MSBuild WriteCodeFragment class.
|
||||
|
@ -0,0 +1 @@
|
||||
389d97ac6b0bd0c04307fe7beb5132ca2a66041ffcca34e10bfb4b1eba02f72c
|
@ -0,0 +1,35 @@
|
||||
is_global = true
|
||||
build_property.EnableAotAnalyzer =
|
||||
build_property.EnableSingleFileAnalyzer = true
|
||||
build_property.EnableTrimAnalyzer = false
|
||||
build_property.IncludeAllContentForSelfExtract =
|
||||
build_property.TargetFramework = net8.0-android
|
||||
build_property.TargetPlatformMinVersion =
|
||||
build_property.UsingMicrosoftNETSdkWeb =
|
||||
build_property.ProjectTypeGuids =
|
||||
build_property.InvariantGlobalization = false
|
||||
build_property.PlatformNeutralAssembly =
|
||||
build_property.EnforceExtendedAnalyzerRules =
|
||||
build_property._SupportedPlatformList = Linux,macOS,Windows
|
||||
build_property.RootNamespace = NotVPR_Remote
|
||||
build_property.ProjectDir = C:\Users\bib\Desktop\vpr\pull from pc\mediaverwaltung\NotVPR_Remote\
|
||||
build_property.EnableComHosting =
|
||||
build_property.EnableGeneratedComInterfaceComImportInterop =
|
||||
|
||||
[C:/Users/bib/Desktop/vpr/pull from pc/mediaverwaltung/NotVPR_Remote/App.xaml]
|
||||
build_metadata.AdditionalFiles.GenKind = Xaml
|
||||
build_metadata.AdditionalFiles.ManifestResourceName = NotVPR_Remote.App.xaml
|
||||
build_metadata.AdditionalFiles.TargetPath = App.xaml
|
||||
build_metadata.AdditionalFiles.RelativePath = App.xaml
|
||||
|
||||
[C:/Users/bib/Desktop/vpr/pull from pc/mediaverwaltung/NotVPR_Remote/AppShell.xaml]
|
||||
build_metadata.AdditionalFiles.GenKind = Xaml
|
||||
build_metadata.AdditionalFiles.ManifestResourceName = NotVPR_Remote.AppShell.xaml
|
||||
build_metadata.AdditionalFiles.TargetPath = AppShell.xaml
|
||||
build_metadata.AdditionalFiles.RelativePath = AppShell.xaml
|
||||
|
||||
[C:/Users/bib/Desktop/vpr/pull from pc/mediaverwaltung/NotVPR_Remote/MainPage.xaml]
|
||||
build_metadata.AdditionalFiles.GenKind = Xaml
|
||||
build_metadata.AdditionalFiles.ManifestResourceName = NotVPR_Remote.MainPage.xaml
|
||||
build_metadata.AdditionalFiles.TargetPath = MainPage.xaml
|
||||
build_metadata.AdditionalFiles.RelativePath = MainPage.xaml
|
@ -0,0 +1,26 @@
|
||||
// <auto-generated/>
|
||||
global using global::Microsoft.Extensions.DependencyInjection;
|
||||
global using global::Microsoft.Maui;
|
||||
global using global::Microsoft.Maui.Accessibility;
|
||||
global using global::Microsoft.Maui.ApplicationModel;
|
||||
global using global::Microsoft.Maui.ApplicationModel.Communication;
|
||||
global using global::Microsoft.Maui.ApplicationModel.DataTransfer;
|
||||
global using global::Microsoft.Maui.Authentication;
|
||||
global using global::Microsoft.Maui.Controls;
|
||||
global using global::Microsoft.Maui.Controls.Hosting;
|
||||
global using global::Microsoft.Maui.Controls.Xaml;
|
||||
global using global::Microsoft.Maui.Devices;
|
||||
global using global::Microsoft.Maui.Devices.Sensors;
|
||||
global using global::Microsoft.Maui.Dispatching;
|
||||
global using global::Microsoft.Maui.Graphics;
|
||||
global using global::Microsoft.Maui.Hosting;
|
||||
global using global::Microsoft.Maui.Media;
|
||||
global using global::Microsoft.Maui.Networking;
|
||||
global using global::Microsoft.Maui.Storage;
|
||||
global using global::System;
|
||||
global using global::System.Collections.Generic;
|
||||
global using global::System.IO;
|
||||
global using global::System.Linq;
|
||||
global using global::System.Net.Http;
|
||||
global using global::System.Threading;
|
||||
global using global::System.Threading.Tasks;
|
7087
NotVPR_Remote/obj/Debug/net8.0-android/R.txt
Normal file
13
NotVPR_Remote/obj/Debug/net8.0-android/__Microsoft.Android.Resource.Designer.cs
generated
Normal file
@ -0,0 +1,13 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool. DO NOT EDIT
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
using System;
|
||||
|
||||
namespace NotVPR_Remote {
|
||||
#pragma warning disable IDE0002
|
||||
public partial class Resource : _Microsoft.Android.Resource.Designer.ResourceConstant {
|
||||
}
|
||||
#pragma warning restore IDE0002
|
||||
}
|
31
NotVPR_Remote/obj/Debug/net8.0-android/build.props
Normal file
@ -0,0 +1,31 @@
|
||||
aotassemblies=false
|
||||
androidaddkeepalives=
|
||||
androidaotmode=interpreter
|
||||
androidembedprofilers=
|
||||
androidenableprofiledaot=
|
||||
androiddextool=d8
|
||||
androidlinktool=
|
||||
androidlinkresources=
|
||||
androidpackageformat=apk
|
||||
embedassembliesintoapk=false
|
||||
androidlinkmode=none
|
||||
androidlinkskip=
|
||||
androidsdkbuildtoolsversion=34.0.0
|
||||
androidsdkpath=c:\program files (x86)\android\android-sdk\
|
||||
androidndkpath=
|
||||
javasdkpath=c:\program files (x86)\android\openjdk\jdk-17.0.14\
|
||||
androidsequencepointsmode=none
|
||||
androidnetsdkversion=34.0.154
|
||||
monosymbolarchive=false
|
||||
androiduselatestplatformsdk=false
|
||||
targetframeworkversion=v8.0
|
||||
androidcreatepackageperabi=
|
||||
androidgeneratejnimarshalmethods=false
|
||||
os=windows_nt
|
||||
androidincludedebugsymbols=true
|
||||
androidpackagenamingpolicy=lowercasecrc64
|
||||
_nugetassetsfilehash=439bfb51003068df5ec1b3d26e41ef7eab09ccd3179d118b5a4b76df224ce5fd
|
||||
typemapkind=strings-asm
|
||||
androidmanifestplaceholders=
|
||||
projectfullpath=c:\users\bib\desktop\vpr\pull from pc\mediaverwaltung\notvpr_remote\notvpr_remote.csproj
|
||||
androidusedesignerassembly=true
|
1
NotVPR_Remote/obj/Debug/net8.0-android/lp/100.stamp
Normal file
@ -0,0 +1 @@
|
||||
03D8CB64644BB559
|
@ -0,0 +1,22 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
Copyright 2019 The Android Open Source Project
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
-->
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
package="androidx.annotation.experimental" >
|
||||
|
||||
<uses-sdk android:minSdkVersion="14" />
|
||||
|
||||
</manifest>
|
@ -0,0 +1,5 @@
|
||||
aarFormatVersion=1.0
|
||||
aarMetadataVersion=1.0
|
||||
minCompileSdk=33
|
||||
minCompileSdkExtension=0
|
||||
minAndroidGradlePluginVersion=1.0.0
|
BIN
NotVPR_Remote/obj/Debug/net8.0-android/lp/100/jl/classes.jar
Normal file
BIN
NotVPR_Remote/obj/Debug/net8.0-android/lp/100/jl/res.zip
Normal file
@ -0,0 +1,3 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
</resources>
|
1
NotVPR_Remote/obj/Debug/net8.0-android/lp/101.stamp
Normal file
@ -0,0 +1 @@
|
||||
12910E24D53F039B
|
@ -0,0 +1,30 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
Copyright (C) 2014 The Android Open Source Project
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
-->
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
package="androidx.core" >
|
||||
|
||||
<uses-sdk android:minSdkVersion="14" />
|
||||
|
||||
<permission
|
||||
android:name="${applicationId}.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"
|
||||
android:protectionLevel="signature" />
|
||||
|
||||
<uses-permission android:name="${applicationId}.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION" />
|
||||
|
||||
<application android:appComponentFactory="androidx.core.app.CoreComponentFactory" />
|
||||
|
||||
</manifest>
|
@ -0,0 +1,5 @@
|
||||
aarFormatVersion=1.0
|
||||
aarMetadataVersion=1.0
|
||||
minCompileSdk=33
|
||||
minCompileSdkExtension=0
|
||||
minAndroidGradlePluginVersion=1.0.0
|
202
NotVPR_Remote/obj/Debug/net8.0-android/lp/101/jl/R.txt
Normal file
@ -0,0 +1,202 @@
|
||||
int attr alpha 0x0
|
||||
int attr font 0x0
|
||||
int attr fontProviderAuthority 0x0
|
||||
int attr fontProviderCerts 0x0
|
||||
int attr fontProviderFetchStrategy 0x0
|
||||
int attr fontProviderFetchTimeout 0x0
|
||||
int attr fontProviderPackage 0x0
|
||||
int attr fontProviderQuery 0x0
|
||||
int attr fontProviderSystemFontFamily 0x0
|
||||
int attr fontStyle 0x0
|
||||
int attr fontVariationSettings 0x0
|
||||
int attr fontWeight 0x0
|
||||
int attr lStar 0x0
|
||||
int attr nestedScrollViewStyle 0x0
|
||||
int attr queryPatterns 0x0
|
||||
int attr shortcutMatchRequired 0x0
|
||||
int attr ttcIndex 0x0
|
||||
int color androidx_core_ripple_material_light 0x0
|
||||
int color androidx_core_secondary_text_default_material_light 0x0
|
||||
int color call_notification_answer_color 0x0
|
||||
int color call_notification_decline_color 0x0
|
||||
int color notification_action_color_filter 0x0
|
||||
int color notification_icon_bg_color 0x0
|
||||
int dimen compat_button_inset_horizontal_material 0x0
|
||||
int dimen compat_button_inset_vertical_material 0x0
|
||||
int dimen compat_button_padding_horizontal_material 0x0
|
||||
int dimen compat_button_padding_vertical_material 0x0
|
||||
int dimen compat_control_corner_material 0x0
|
||||
int dimen compat_notification_large_icon_max_height 0x0
|
||||
int dimen compat_notification_large_icon_max_width 0x0
|
||||
int dimen notification_action_icon_size 0x0
|
||||
int dimen notification_action_text_size 0x0
|
||||
int dimen notification_big_circle_margin 0x0
|
||||
int dimen notification_content_margin_start 0x0
|
||||
int dimen notification_large_icon_height 0x0
|
||||
int dimen notification_large_icon_width 0x0
|
||||
int dimen notification_main_column_padding_top 0x0
|
||||
int dimen notification_media_narrow_margin 0x0
|
||||
int dimen notification_right_icon_size 0x0
|
||||
int dimen notification_right_side_padding_top 0x0
|
||||
int dimen notification_small_icon_background_padding 0x0
|
||||
int dimen notification_small_icon_size_as_large 0x0
|
||||
int dimen notification_subtext_size 0x0
|
||||
int dimen notification_top_pad 0x0
|
||||
int dimen notification_top_pad_large_text 0x0
|
||||
int drawable ic_call_answer 0x0
|
||||
int drawable ic_call_answer_low 0x0
|
||||
int drawable ic_call_answer_video 0x0
|
||||
int drawable ic_call_answer_video_low 0x0
|
||||
int drawable ic_call_decline 0x0
|
||||
int drawable ic_call_decline_low 0x0
|
||||
int drawable notification_action_background 0x0
|
||||
int drawable notification_bg 0x0
|
||||
int drawable notification_bg_low 0x0
|
||||
int drawable notification_bg_low_normal 0x0
|
||||
int drawable notification_bg_low_pressed 0x0
|
||||
int drawable notification_bg_normal 0x0
|
||||
int drawable notification_bg_normal_pressed 0x0
|
||||
int drawable notification_icon_background 0x0
|
||||
int drawable notification_template_icon_bg 0x0
|
||||
int drawable notification_template_icon_low_bg 0x0
|
||||
int drawable notification_tile_bg 0x0
|
||||
int drawable notify_panel_notification_icon_bg 0x0
|
||||
int id accessibility_action_clickable_span 0x0
|
||||
int id accessibility_custom_action_0 0x0
|
||||
int id accessibility_custom_action_1 0x0
|
||||
int id accessibility_custom_action_10 0x0
|
||||
int id accessibility_custom_action_11 0x0
|
||||
int id accessibility_custom_action_12 0x0
|
||||
int id accessibility_custom_action_13 0x0
|
||||
int id accessibility_custom_action_14 0x0
|
||||
int id accessibility_custom_action_15 0x0
|
||||
int id accessibility_custom_action_16 0x0
|
||||
int id accessibility_custom_action_17 0x0
|
||||
int id accessibility_custom_action_18 0x0
|
||||
int id accessibility_custom_action_19 0x0
|
||||
int id accessibility_custom_action_2 0x0
|
||||
int id accessibility_custom_action_20 0x0
|
||||
int id accessibility_custom_action_21 0x0
|
||||
int id accessibility_custom_action_22 0x0
|
||||
int id accessibility_custom_action_23 0x0
|
||||
int id accessibility_custom_action_24 0x0
|
||||
int id accessibility_custom_action_25 0x0
|
||||
int id accessibility_custom_action_26 0x0
|
||||
int id accessibility_custom_action_27 0x0
|
||||
int id accessibility_custom_action_28 0x0
|
||||
int id accessibility_custom_action_29 0x0
|
||||
int id accessibility_custom_action_3 0x0
|
||||
int id accessibility_custom_action_30 0x0
|
||||
int id accessibility_custom_action_31 0x0
|
||||
int id accessibility_custom_action_4 0x0
|
||||
int id accessibility_custom_action_5 0x0
|
||||
int id accessibility_custom_action_6 0x0
|
||||
int id accessibility_custom_action_7 0x0
|
||||
int id accessibility_custom_action_8 0x0
|
||||
int id accessibility_custom_action_9 0x0
|
||||
int id action_container 0x0
|
||||
int id action_divider 0x0
|
||||
int id action_image 0x0
|
||||
int id action_text 0x0
|
||||
int id actions 0x0
|
||||
int id async 0x0
|
||||
int id blocking 0x0
|
||||
int id chronometer 0x0
|
||||
int id dialog_button 0x0
|
||||
int id forever 0x0
|
||||
int id icon 0x0
|
||||
int id icon_group 0x0
|
||||
int id info 0x0
|
||||
int id italic 0x0
|
||||
int id line1 0x0
|
||||
int id line3 0x0
|
||||
int id normal 0x0
|
||||
int id notification_background 0x0
|
||||
int id notification_main_column 0x0
|
||||
int id notification_main_column_container 0x0
|
||||
int id right_icon 0x0
|
||||
int id right_side 0x0
|
||||
int id tag_accessibility_actions 0x0
|
||||
int id tag_accessibility_clickable_spans 0x0
|
||||
int id tag_accessibility_heading 0x0
|
||||
int id tag_accessibility_pane_title 0x0
|
||||
int id tag_on_apply_window_listener 0x0
|
||||
int id tag_on_receive_content_listener 0x0
|
||||
int id tag_on_receive_content_mime_types 0x0
|
||||
int id tag_screen_reader_focusable 0x0
|
||||
int id tag_state_description 0x0
|
||||
int id tag_transition_group 0x0
|
||||
int id tag_unhandled_key_event_manager 0x0
|
||||
int id tag_unhandled_key_listeners 0x0
|
||||
int id tag_window_insets_animation_callback 0x0
|
||||
int id text 0x0
|
||||
int id text2 0x0
|
||||
int id time 0x0
|
||||
int id title 0x0
|
||||
int integer status_bar_notification_info_maxnum 0x0
|
||||
int layout custom_dialog 0x0
|
||||
int layout notification_action 0x0
|
||||
int layout notification_action_tombstone 0x0
|
||||
int layout notification_template_custom_big 0x0
|
||||
int layout notification_template_icon_group 0x0
|
||||
int layout notification_template_part_chronometer 0x0
|
||||
int layout notification_template_part_time 0x0
|
||||
int string call_notification_answer_action 0x0
|
||||
int string call_notification_answer_video_action 0x0
|
||||
int string call_notification_decline_action 0x0
|
||||
int string call_notification_hang_up_action 0x0
|
||||
int string call_notification_incoming_text 0x0
|
||||
int string call_notification_ongoing_text 0x0
|
||||
int string call_notification_screening_text 0x0
|
||||
int string status_bar_notification_info_overflow 0x0
|
||||
int style TextAppearance_Compat_Notification 0x0
|
||||
int style TextAppearance_Compat_Notification_Info 0x0
|
||||
int style TextAppearance_Compat_Notification_Line2 0x0
|
||||
int style TextAppearance_Compat_Notification_Time 0x0
|
||||
int style TextAppearance_Compat_Notification_Title 0x0
|
||||
int style Widget_Compat_NotificationActionContainer 0x0
|
||||
int style Widget_Compat_NotificationActionText 0x0
|
||||
int[] styleable Capability { 0x0, 0x0 }
|
||||
int styleable Capability_queryPatterns 0
|
||||
int styleable Capability_shortcutMatchRequired 1
|
||||
int[] styleable ColorStateListItem { 0x0, 0x101031f, 0x10101a5, 0x1010647, 0x0 }
|
||||
int styleable ColorStateListItem_alpha 0
|
||||
int styleable ColorStateListItem_android_alpha 1
|
||||
int styleable ColorStateListItem_android_color 2
|
||||
int styleable ColorStateListItem_android_lStar 3
|
||||
int styleable ColorStateListItem_lStar 4
|
||||
int[] styleable FontFamily { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 }
|
||||
int styleable FontFamily_fontProviderAuthority 0
|
||||
int styleable FontFamily_fontProviderCerts 1
|
||||
int styleable FontFamily_fontProviderFetchStrategy 2
|
||||
int styleable FontFamily_fontProviderFetchTimeout 3
|
||||
int styleable FontFamily_fontProviderPackage 4
|
||||
int styleable FontFamily_fontProviderQuery 5
|
||||
int styleable FontFamily_fontProviderSystemFontFamily 6
|
||||
int[] styleable FontFamilyFont { 0x1010532, 0x101053f, 0x1010570, 0x1010533, 0x101056f, 0x0, 0x0, 0x0, 0x0, 0x0 }
|
||||
int styleable FontFamilyFont_android_font 0
|
||||
int styleable FontFamilyFont_android_fontStyle 1
|
||||
int styleable FontFamilyFont_android_fontVariationSettings 2
|
||||
int styleable FontFamilyFont_android_fontWeight 3
|
||||
int styleable FontFamilyFont_android_ttcIndex 4
|
||||
int styleable FontFamilyFont_font 5
|
||||
int styleable FontFamilyFont_fontStyle 6
|
||||
int styleable FontFamilyFont_fontVariationSettings 7
|
||||
int styleable FontFamilyFont_fontWeight 8
|
||||
int styleable FontFamilyFont_ttcIndex 9
|
||||
int[] styleable GradientColor { 0x101020b, 0x10101a2, 0x10101a3, 0x101019e, 0x1010512, 0x1010513, 0x10101a4, 0x101019d, 0x1010510, 0x1010511, 0x1010201, 0x10101a1 }
|
||||
int styleable GradientColor_android_centerColor 0
|
||||
int styleable GradientColor_android_centerX 1
|
||||
int styleable GradientColor_android_centerY 2
|
||||
int styleable GradientColor_android_endColor 3
|
||||
int styleable GradientColor_android_endX 4
|
||||
int styleable GradientColor_android_endY 5
|
||||
int styleable GradientColor_android_gradientRadius 6
|
||||
int styleable GradientColor_android_startColor 7
|
||||
int styleable GradientColor_android_startX 8
|
||||
int styleable GradientColor_android_startY 9
|
||||
int styleable GradientColor_android_tileMode 10
|
||||
int styleable GradientColor_android_type 11
|
||||
int[] styleable GradientColorItem { 0x10101a5, 0x1010514 }
|
||||
int styleable GradientColorItem_android_color 0
|
||||
int styleable GradientColorItem_android_offset 1
|
@ -0,0 +1,19 @@
|
||||
/**
|
||||
* Copyright 2015, The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package android.support.v4.os;
|
||||
|
||||
@JavaOnlyStableParcelable parcelable ResultReceiver;
|
BIN
NotVPR_Remote/obj/Debug/net8.0-android/lp/101/jl/annotations.zip
Normal file
BIN
NotVPR_Remote/obj/Debug/net8.0-android/lp/101/jl/classes.jar
Normal file
@ -0,0 +1,16 @@
|
||||
# Never inline methods, but allow shrinking and obfuscation.
|
||||
-keepclassmembernames,allowobfuscation,allowshrinking class androidx.core.view.ViewCompat$Api* {
|
||||
<methods>;
|
||||
}
|
||||
-keepclassmembernames,allowobfuscation,allowshrinking class androidx.core.view.WindowInsetsCompat$*Impl* {
|
||||
<methods>;
|
||||
}
|
||||
-keepclassmembernames,allowobfuscation,allowshrinking class androidx.core.app.NotificationCompat$*$Api*Impl {
|
||||
<methods>;
|
||||
}
|
||||
-keepclassmembernames,allowobfuscation,allowshrinking class androidx.core.os.UserHandleCompat$Api*Impl {
|
||||
<methods>;
|
||||
}
|
||||
-keepclassmembernames,allowobfuscation,allowshrinking class androidx.core.widget.EdgeEffectCompat$Api*Impl {
|
||||
<methods>;
|
||||
}
|
21
NotVPR_Remote/obj/Debug/net8.0-android/lp/101/jl/public.txt
Normal file
@ -0,0 +1,21 @@
|
||||
style TextAppearance_Compat_Notification
|
||||
style TextAppearance_Compat_Notification_Info
|
||||
style TextAppearance_Compat_Notification_Line2
|
||||
style TextAppearance_Compat_Notification_Time
|
||||
style TextAppearance_Compat_Notification_Title
|
||||
attr alpha
|
||||
attr font
|
||||
attr fontProviderAuthority
|
||||
attr fontProviderCerts
|
||||
attr fontProviderFetchStrategy
|
||||
attr fontProviderFetchTimeout
|
||||
attr fontProviderPackage
|
||||
attr fontProviderQuery
|
||||
attr fontProviderSystemFontFamily
|
||||
attr fontStyle
|
||||
attr fontVariationSettings
|
||||
attr fontWeight
|
||||
attr lStar
|
||||
attr queryPatterns
|
||||
attr shortcutMatchRequired
|
||||
attr ttcIndex
|
BIN
NotVPR_Remote/obj/Debug/net8.0-android/lp/101/jl/res.zip
Normal file
@ -0,0 +1,36 @@
|
||||
<!--
|
||||
Copyright (C) 2022 The Android Open Source Project
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
-->
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
tools:targetApi="21"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="20"
|
||||
android:viewportHeight="20"
|
||||
android:tint="?android:attr/colorControlNormal"
|
||||
android:autoMirrored="true">
|
||||
<path
|
||||
android:fillColor="#FF000000"
|
||||
android:pathData="M6.0168,3.3333L6.5751,5.575L4.6668,7.4916C3.8751,5.7166 3.6001,4.1916
|
||||
3.4834,3.3333H6.0168ZM14.4251,13.375L16.6668,13.9416V16.5166C15.8084,16.4 14.2668,16.125
|
||||
12.4834,15.325L14.4251,13.375ZM6.3418,1.6666H2.5668C2.0918,1.6666 1.7001,2.0666
|
||||
1.7334,2.5416C2.4834,12.875 11.7668,18.275 17.5168,18.275C17.9668,18.275 18.3334,17.9
|
||||
18.3334,17.4416V13.6166C18.3334,13.0416 17.9418,12.5416
|
||||
17.3834,12.4083L14.5918,11.7083C14.2251,11.6166 13.7584,11.6833
|
||||
13.4084,12.0333L10.9251,14.5166C8.6751,13.1833 6.7918,11.3
|
||||
5.4668,9.0416L7.9168,6.5916C8.2251,6.2833 8.3501,5.8333
|
||||
8.2418,5.4083L7.5584,2.6166C7.4168,2.0583 6.9168,1.6666 6.3418,1.6666Z"/>
|
||||
</vector>
|
@ -0,0 +1,33 @@
|
||||
<!--
|
||||
Copyright (C) 2022 The Android Open Source Project
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
-->
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="20"
|
||||
android:viewportHeight="20"
|
||||
android:autoMirrored="true">
|
||||
<path
|
||||
android:fillColor="#FF000000"
|
||||
android:pathData="M6.0168,3.3333L6.5751,5.575L4.6668,7.4916C3.8751,5.7166 3.6001,4.1916
|
||||
3.4834,3.3333H6.0168ZM14.4251,13.375L16.6668,13.9416V16.5166C15.8084,16.4 14.2668,16.125
|
||||
12.4834,15.325L14.4251,13.375ZM6.3418,1.6666H2.5668C2.0918,1.6666 1.7001,2.0666
|
||||
1.7334,2.5416C2.4834,12.875 11.7668,18.275 17.5168,18.275C17.9668,18.275 18.3334,17.9
|
||||
18.3334,17.4416V13.6166C18.3334,13.0416 17.9418,12.5416
|
||||
17.3834,12.4083L14.5918,11.7083C14.2251,11.6166 13.7584,11.6833
|
||||
13.4084,12.0333L10.9251,14.5166C8.6751,13.1833 6.7918,11.3
|
||||
5.4668,9.0416L7.9168,6.5916C8.2251,6.2833 8.3501,5.8333
|
||||
8.2418,5.4083L7.5584,2.6166C7.4168,2.0583 6.9168,1.6666 6.3418,1.6666Z"/>
|
||||
</vector>
|
@ -0,0 +1,29 @@
|
||||
<!--
|
||||
Copyright (C) 2022 The Android Open Source Project
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
-->
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
tools:targetApi="21"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="20"
|
||||
android:viewportHeight="20"
|
||||
android:tint="?android:attr/colorControlNormal"
|
||||
android:autoMirrored="true">
|
||||
<path
|
||||
android:fillColor="#FF000000"
|
||||
android:pathData="M15,8v8H5V8h10m1,-2H4c-0.55,0 -1,0.45 -1,1v10c0,0.55 0.45,1 1,1h12c0.55,0
|
||||
1,-0.45 1,-1v-3.5l4,4v-11l-4,4V7c0,-0.55 -0.45,-1 -1,-1z"/>
|
||||
</vector>
|
@ -0,0 +1,26 @@
|
||||
<!--
|
||||
Copyright (C) 2022 The Android Open Source Project
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
-->
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="20"
|
||||
android:viewportHeight="20"
|
||||
android:autoMirrored="true">
|
||||
<path
|
||||
android:fillColor="#FF000000"
|
||||
android:pathData="M15,8v8H5V8h10m1,-2H4c-0.55,0 -1,0.45 -1,1v10c0,0.55 0.45,1 1,1h12c0.55,0
|
||||
1,-0.45 1,-1v-3.5l4,4v-11l-4,4V7c0,-0.55 -0.45,-1 -1,-1z"/>
|
||||
</vector>
|
@ -0,0 +1,38 @@
|
||||
<!--
|
||||
Copyright (C) 2022 The Android Open Source Project
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
-->
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
tools:targetApi="21"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="20"
|
||||
android:viewportHeight="20"
|
||||
android:tint="?android:attr/colorControlNormal"
|
||||
android:autoMirrored="true">
|
||||
<path
|
||||
android:fillColor="#FF000000"
|
||||
android:pathData="M5.2834,9.3083V10.7833L4.1084,11.4916L3.1334,10.5166C3.8084,10.0416
|
||||
4.5251,9.6333 5.2834,9.3083ZM14.75,9.325C15.4917,9.65 16.2084,10.05
|
||||
16.875,10.525L15.925,11.475L14.75,10.7666V9.325ZM9.975,6.6666C6.8584,6.6666 3.725,7.7333
|
||||
1.1751,9.9416C0.8084,10.2583 0.9667,10.7166 1.1501,10.9L3.2917,13.0416C3.4917,13.2333
|
||||
3.7417,13.3333 4.0001,13.3333C4.175,13.3333 4.35,13.2833
|
||||
4.5084,13.1916L6.4667,12.0166C6.725,11.8583 6.95,11.5583 6.95,11.1666V8.3833C7.95,8.125
|
||||
8.975,8 10.0084,8C11.0417,8 12.075,8.1333 13.0834,8.3916V11.1416C13.0834,11.4916
|
||||
13.2667,11.8166 13.5667,11.9916L15.525,13.1666C15.6834,13.2583 15.8584,13.3083
|
||||
16.0334,13.3083C16.2917,13.3083 16.5417,13.2083
|
||||
16.7334,13.0166L18.85,10.9C19.1167,10.6333 19.1167,10.1916 18.825,9.9416C16.3334,7.7833
|
||||
13.1667,6.6666 9.975,6.6666Z"/>
|
||||
</vector>
|
@ -0,0 +1,35 @@
|
||||
<!--
|
||||
Copyright (C) 2022 The Android Open Source Project
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
-->
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="20"
|
||||
android:viewportHeight="20"
|
||||
android:autoMirrored="true">
|
||||
<path
|
||||
android:fillColor="#FF000000"
|
||||
android:pathData="M5.2834,9.3083V10.7833L4.1084,11.4916L3.1334,10.5166C3.8084,10.0416
|
||||
4.5251,9.6333 5.2834,9.3083ZM14.75,9.325C15.4917,9.65 16.2084,10.05
|
||||
16.875,10.525L15.925,11.475L14.75,10.7666V9.325ZM9.975,6.6666C6.8584,6.6666 3.725,7.7333
|
||||
1.1751,9.9416C0.8084,10.2583 0.9667,10.7166 1.1501,10.9L3.2917,13.0416C3.4917,13.2333
|
||||
3.7417,13.3333 4.0001,13.3333C4.175,13.3333 4.35,13.2833
|
||||
4.5084,13.1916L6.4667,12.0166C6.725,11.8583 6.95,11.5583 6.95,11.1666V8.3833C7.95,8.125
|
||||
8.975,8 10.0084,8C11.0417,8 12.075,8.1333 13.0834,8.3916V11.1416C13.0834,11.4916
|
||||
13.2667,11.8166 13.5667,11.9916L15.525,13.1666C15.6834,13.2583 15.8584,13.3083
|
||||
16.0334,13.3083C16.2917,13.3083 16.5417,13.2083
|
||||
16.7334,13.0166L18.85,10.9C19.1167,10.6333 19.1167,10.1916 18.825,9.9416C16.3334,7.7833
|
||||
13.1667,6.6666 9.975,6.6666Z"/>
|
||||
</vector>
|
After Width: | Height: | Size: 583 B |
After Width: | Height: | Size: 583 B |
After Width: | Height: | Size: 279 B |
After Width: | Height: | Size: 279 B |
After Width: | Height: | Size: 421 B |
After Width: | Height: | Size: 421 B |
After Width: | Height: | Size: 176 B |
After Width: | Height: | Size: 181 B |
After Width: | Height: | Size: 176 B |
After Width: | Height: | Size: 180 B |
After Width: | Height: | Size: 107 B |
After Width: | Height: | Size: 313 B |
After Width: | Height: | Size: 313 B |
After Width: | Height: | Size: 205 B |
After Width: | Height: | Size: 205 B |