diff --git a/android/app/gradle.properties b/android/app/gradle.properties
index e4bf95c..a8110ec 100644
--- a/android/app/gradle.properties
+++ b/android/app/gradle.properties
@@ -1,5 +1,5 @@
# android 15
-compileSdkVersion=35
+compileSdkVersion=36
# android 10
targetSdkVersion=29
# android 10
diff --git a/android/app/src/main/res/values-pl/strings.xml b/android/app/src/main/res/values-pl/strings.xml
new file mode 100644
index 0000000..56a254f
--- /dev/null
+++ b/android/app/src/main/res/values-pl/strings.xml
@@ -0,0 +1,23 @@
+
+ Roc Droid
+
+ OK
+ Anuluj
+
+ Uprawnienie powiadomień
+ Aby wyświetlać kontrolki audio, wymagane jest uprawnienie do powiadomień.
+
+ Uprawnienie mikrofonu
+ Uprawnienie do mikrofonu jest wymagane, aby przesyłać dźwięk do zdalnych urządzeń.
+
+ Usługa pierwszoplanowa streamingu
+ Odbiornik uruchomiony
+ Nadawca uruchomiony
+ Nadawca i odbiornik uruchomione
+ Ani nadawca, ani odbiornik nie są uruchomione
+ Streaming aktywny
+ Streaming nieaktywny
+ Zatrzymaj streaming
+
+ Roc Droid
+
diff --git a/lib/src/ui/app_root.dart b/lib/src/ui/app_root.dart
index c4f456b..eef5379 100644
--- a/lib/src/ui/app_root.dart
+++ b/lib/src/ui/app_root.dart
@@ -17,6 +17,7 @@ class AppRoot extends StatelessWidget {
];
static const List _supportedLocales = [
Locale('en', ''), // Supported english language
+ Locale('pl', ''), // Supported polish language
];
AppRoot(ModelRoot modelRoot) : _modelRoot = modelRoot;
diff --git a/lib/src/ui/localization/app_en.arb b/lib/src/ui/localization/app_en.arb
index 47e4d79..d0b8dfe 100644
--- a/lib/src/ui/localization/app_en.arb
+++ b/lib/src/ui/localization/app_en.arb
@@ -1,67 +1,35 @@
{
"appTitle": "Roc Droid",
-
"receiver": "RECEIVER",
-
"sender": "SENDER",
-
"receiverStartSenderStep": "1. Start sender on the remote device",
-
"receiverUseIPStep": "2. Use one of IP addresses of this device as the remote on the sender",
-
"receiverSourceStreamStep": "3. Use this port for source stream",
-
"receiverRepairStreamStep": "4. Use this port for repair stream",
-
"receiverStartStep": "5. Start receiver on this device",
-
"startReceiverButton": "START RECEIVER",
-
"stopReceiverButton": "STOP RECEIVER",
-
"senderStartReceiverStep": "1. Start receiver on the remote device",
-
"senderSourceStreamStep": "2. Use this port for source stream",
-
"senderRepairStreamStep": "3. Use this port for repair stream",
-
"senderPutIPStep": "4. Put IP address of the remote receiver device below",
-
"senderChooseSourceStep": "5. Choose source to capture audio from",
-
"senderStartStep": "6. Start sender on this device",
-
"startSenderButton": "START SENDER",
-
"stopSenderButton": "STOP SENDER",
-
"noData": "No data",
-
"currentlyPlayingApplications": "Currently playing applications",
-
"microphone": "Microphone",
-
"about": "About",
-
"sourceCode": "SOURCE CODE",
-
"bugTracker": "BUG TRACKER",
-
"contributors": "CONTRIBUTORS",
-
"licenseData": "MOZILLA PUBLIC LICENSE 2.0",
-
"enterIp": "Enter IP address",
-
"permissionError": "Permission not granted",
-
"deviceError": "Audio device error",
-
"networkError": "Network error",
-
"dbError": "Database error",
-
"notFoundError": "Object not found",
-
"internalError": "Unexpected internal error"
}
diff --git a/lib/src/ui/localization/app_localizations.g.dart b/lib/src/ui/localization/app_localizations.g.dart
index 900e305..beef566 100644
--- a/lib/src/ui/localization/app_localizations.g.dart
+++ b/lib/src/ui/localization/app_localizations.g.dart
@@ -6,6 +6,7 @@ import 'package:flutter_localizations/flutter_localizations.dart';
import 'package:intl/intl.dart' as intl;
import 'app_localizations_en.g.dart';
+import 'app_localizations_pl.g.dart';
// ignore_for_file: type=lint
@@ -61,7 +62,8 @@ import 'app_localizations_en.g.dart';
/// be consistent with the languages listed in the AppLocalizations.supportedLocales
/// property.
abstract class AppLocalizations {
- AppLocalizations(String locale) : localeName = intl.Intl.canonicalizedLocale(locale.toString());
+ AppLocalizations(String locale)
+ : localeName = intl.Intl.canonicalizedLocale(locale.toString());
final String localeName;
@@ -69,7 +71,8 @@ abstract class AppLocalizations {
return Localizations.of(context, AppLocalizations);
}
- static const LocalizationsDelegate delegate = _AppLocalizationsDelegate();
+ static const LocalizationsDelegate delegate =
+ _AppLocalizationsDelegate();
/// A list of this localizations delegate along with the default localizations
/// delegates.
@@ -81,7 +84,8 @@ abstract class AppLocalizations {
/// Additional delegates can be added by appending to this list in
/// MaterialApp. This list does not have to be used at all if a custom list
/// of delegates is preferred or required.
- static const List> localizationsDelegates = >[
+ static const List> localizationsDelegates =
+ >[
delegate,
GlobalMaterialLocalizations.delegate,
GlobalCupertinoLocalizations.delegate,
@@ -90,7 +94,8 @@ abstract class AppLocalizations {
/// A list of this localizations delegate's supported locales.
static const List supportedLocales = [
- Locale('en')
+ Locale('en'),
+ Locale('pl')
];
/// No description provided for @appTitle.
@@ -292,7 +297,8 @@ abstract class AppLocalizations {
String get internalError;
}
-class _AppLocalizationsDelegate extends LocalizationsDelegate {
+class _AppLocalizationsDelegate
+ extends LocalizationsDelegate {
const _AppLocalizationsDelegate();
@override
@@ -301,24 +307,25 @@ class _AppLocalizationsDelegate extends LocalizationsDelegate
}
@override
- bool isSupported(Locale locale) => ['en'].contains(locale.languageCode);
+ bool isSupported(Locale locale) =>
+ ['en', 'pl'].contains(locale.languageCode);
@override
bool shouldReload(_AppLocalizationsDelegate old) => false;
}
AppLocalizations lookupAppLocalizations(Locale locale) {
-
-
// Lookup logic when only language code is specified.
switch (locale.languageCode) {
- case 'en': return AppLocalizationsEn();
+ case 'en':
+ return AppLocalizationsEn();
+ case 'pl':
+ return AppLocalizationsPl();
}
throw FlutterError(
- 'AppLocalizations.delegate failed to load unsupported locale "$locale". This is likely '
- 'an issue with the localizations generation tool. Please file an issue '
- 'on GitHub with a reproducible sample app and the gen-l10n configuration '
- 'that was used.'
- );
+ 'AppLocalizations.delegate failed to load unsupported locale "$locale". This is likely '
+ 'an issue with the localizations generation tool. Please file an issue '
+ 'on GitHub with a reproducible sample app and the gen-l10n configuration '
+ 'that was used.');
}
diff --git a/lib/src/ui/localization/app_localizations_en.g.dart b/lib/src/ui/localization/app_localizations_en.g.dart
index 6999953..96bf8b1 100644
--- a/lib/src/ui/localization/app_localizations_en.g.dart
+++ b/lib/src/ui/localization/app_localizations_en.g.dart
@@ -21,7 +21,8 @@ class AppLocalizationsEn extends AppLocalizations {
String get receiverStartSenderStep => '1. Start sender on the remote device';
@override
- String get receiverUseIPStep => '2. Use one of IP addresses of this device as the remote on the sender';
+ String get receiverUseIPStep =>
+ '2. Use one of IP addresses of this device as the remote on the sender';
@override
String get receiverSourceStreamStep => '3. Use this port for source stream';
@@ -39,7 +40,8 @@ class AppLocalizationsEn extends AppLocalizations {
String get stopReceiverButton => 'STOP RECEIVER';
@override
- String get senderStartReceiverStep => '1. Start receiver on the remote device';
+ String get senderStartReceiverStep =>
+ '1. Start receiver on the remote device';
@override
String get senderSourceStreamStep => '2. Use this port for source stream';
@@ -48,7 +50,8 @@ class AppLocalizationsEn extends AppLocalizations {
String get senderRepairStreamStep => '3. Use this port for repair stream';
@override
- String get senderPutIPStep => '4. Put IP address of the remote receiver device below';
+ String get senderPutIPStep =>
+ '4. Put IP address of the remote receiver device below';
@override
String get senderChooseSourceStep => '5. Choose source to capture audio from';
diff --git a/lib/src/ui/localization/app_localizations_pl.g.dart b/lib/src/ui/localization/app_localizations_pl.g.dart
new file mode 100644
index 0000000..9895c8a
--- /dev/null
+++ b/lib/src/ui/localization/app_localizations_pl.g.dart
@@ -0,0 +1,117 @@
+// ignore: unused_import
+import 'package:intl/intl.dart' as intl;
+import 'app_localizations.g.dart';
+
+// ignore_for_file: type=lint
+
+/// The translations for Polish (`pl`).
+class AppLocalizationsPl extends AppLocalizations {
+ AppLocalizationsPl([String locale = 'pl']) : super(locale);
+
+ @override
+ String get appTitle => 'Roc Droid';
+
+ @override
+ String get receiver => 'ODBIORNIK';
+
+ @override
+ String get sender => 'NADAJNIK';
+
+ @override
+ String get receiverStartSenderStep =>
+ '1. Uruchom nadajnik na zdalnym urządzeniu';
+
+ @override
+ String get receiverUseIPStep =>
+ '2. Użyj jednego z adresów IP tego urządzenia jako adresu remote';
+
+ @override
+ String get receiverSourceStreamStep =>
+ '3. Użyj tego portu dla strumienia źródłowego';
+
+ @override
+ String get receiverRepairStreamStep =>
+ '4. Użyj tego portu dla strumienia naprawczego';
+
+ @override
+ String get receiverStartStep => '5. Uruchom odbiornik na tym urządzeniu';
+
+ @override
+ String get startReceiverButton => 'START ODBIORNIKA';
+
+ @override
+ String get stopReceiverButton => 'STOP ODBIORNIKA';
+
+ @override
+ String get senderStartReceiverStep =>
+ '1. Uruchom odbiornik na zdalnym urządzeniu';
+
+ @override
+ String get senderSourceStreamStep =>
+ '2. Użyj tego portu dla strumienia źródłowego';
+
+ @override
+ String get senderRepairStreamStep =>
+ '3. Użyj tego portu dla strumienia naprawczego';
+
+ @override
+ String get senderPutIPStep =>
+ '4. Wpisz adres IP zdalnego urządzenia z odbiornikiem poniżej';
+
+ @override
+ String get senderChooseSourceStep => '5. Wybierz źródło audio';
+
+ @override
+ String get senderStartStep => '6. Uruchom nadajnik na tym urządzeniu';
+
+ @override
+ String get startSenderButton => 'START NADAJNIKA';
+
+ @override
+ String get stopSenderButton => 'STOP NADAJNIKA';
+
+ @override
+ String get noData => 'Brak danych';
+
+ @override
+ String get currentlyPlayingApplications => 'Aplikacje odtwarzające dźwięk';
+
+ @override
+ String get microphone => 'Mikrofon';
+
+ @override
+ String get about => 'O aplikacji';
+
+ @override
+ String get sourceCode => 'KOD ŹRÓDŁOWY';
+
+ @override
+ String get bugTracker => 'ZGLASZANIE BŁĘDÓW';
+
+ @override
+ String get contributors => 'WSPÓŁTWÓRCY';
+
+ @override
+ String get licenseData => 'LICENCJA MOZILLA PUBLIC LICENSE 2.0';
+
+ @override
+ String get enterIp => 'Wpisz adres IP';
+
+ @override
+ String get permissionError => 'Brak uprawnień';
+
+ @override
+ String get deviceError => 'Błąd urządzenia audio';
+
+ @override
+ String get networkError => 'Błąd sieci';
+
+ @override
+ String get dbError => 'Błąd bazy danych';
+
+ @override
+ String get notFoundError => 'Nie znaleziono obiektu';
+
+ @override
+ String get internalError => 'Nieoczekiwany błąd';
+}
diff --git a/lib/src/ui/localization/app_pl.arb b/lib/src/ui/localization/app_pl.arb
new file mode 100644
index 0000000..3a1b922
--- /dev/null
+++ b/lib/src/ui/localization/app_pl.arb
@@ -0,0 +1,35 @@
+{
+ "appTitle": "Roc Droid",
+ "receiver": "ODBIORNIK",
+ "sender": "NADAJNIK",
+ "receiverStartSenderStep": "1. Uruchom nadajnik na zdalnym urządzeniu",
+ "receiverUseIPStep": "2. Użyj jednego z adresów IP tego urządzenia jako adresu remote",
+ "receiverSourceStreamStep": "3. Użyj tego portu dla strumienia źródłowego",
+ "receiverRepairStreamStep": "4. Użyj tego portu dla strumienia naprawczego",
+ "receiverStartStep": "5. Uruchom odbiornik na tym urządzeniu",
+ "startReceiverButton": "START ODBIORNIKA",
+ "stopReceiverButton": "STOP ODBIORNIKA",
+ "senderStartReceiverStep": "1. Uruchom odbiornik na zdalnym urządzeniu",
+ "senderSourceStreamStep": "2. Użyj tego portu dla strumienia źródłowego",
+ "senderRepairStreamStep": "3. Użyj tego portu dla strumienia naprawczego",
+ "senderPutIPStep": "4. Wpisz adres IP zdalnego urządzenia z odbiornikiem poniżej",
+ "senderChooseSourceStep": "5. Wybierz źródło audio",
+ "senderStartStep": "6. Uruchom nadajnik na tym urządzeniu",
+ "startSenderButton": "START NADAJNIKA",
+ "stopSenderButton": "STOP NADAJNIKA",
+ "noData": "Brak danych",
+ "currentlyPlayingApplications": "Aplikacje odtwarzające dźwięk",
+ "microphone": "Mikrofon",
+ "about": "O aplikacji",
+ "sourceCode": "KOD ŹRÓDŁOWY",
+ "bugTracker": "ZGLASZANIE BŁĘDÓW",
+ "contributors": "WSPÓŁTWÓRCY",
+ "licenseData": "LICENCJA MOZILLA PUBLIC LICENSE 2.0",
+ "enterIp": "Wpisz adres IP",
+ "permissionError": "Brak uprawnień",
+ "deviceError": "Błąd urządzenia audio",
+ "networkError": "Błąd sieci",
+ "dbError": "Błąd bazy danych",
+ "notFoundError": "Nie znaleziono obiektu",
+ "internalError": "Nieoczekiwany błąd"
+}
\ No newline at end of file
diff --git a/lib/src/ui/styles/roc_standard_theme_builder.dart b/lib/src/ui/styles/roc_standard_theme_builder.dart
index 9c25252..0a77a6d 100644
--- a/lib/src/ui/styles/roc_standard_theme_builder.dart
+++ b/lib/src/ui/styles/roc_standard_theme_builder.dart
@@ -11,7 +11,7 @@ class RocStandardThemeBuilder {
scaffoldBackgroundColor: RocColors.white,
// Standard application AppBar theme
appBarTheme: AppBarTheme(
- color: RocColors.mainBlue,
+ backgroundColor: RocColors.mainBlue,
),
// Standard application bottom navigation bar theme
bottomNavigationBarTheme: BottomNavigationBarThemeData(