Skip to content

Commit

Permalink
Merge branch 'master' into update-device-info-plus-2
Browse files Browse the repository at this point in the history
  • Loading branch information
swift-kim authored Sep 1, 2023
2 parents 3ca7ece + 6318eea commit bb2a6cd
Show file tree
Hide file tree
Showing 176 changed files with 5,185 additions and 849 deletions.
2 changes: 2 additions & 0 deletions .github/labeler.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,8 @@
- packages/google_sign_in/**/*
"p: image_picker":
- packages/image_picker/**/*
"p: in_app_purchase":
- packages/in_app_purchase/**/*
"p: integration_test":
- packages/integration_test/**/*
"p: messageport":
Expand Down
1 change: 1 addition & 0 deletions .github/recipe.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ plugins:
camera: []
flutter_webrtc: []
geolocator: []
in_app_purchase: []
network_info_plus: []
video_player_videohole: []

Expand Down
15 changes: 7 additions & 8 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,26 +18,25 @@ jobs:
--run-on-changed-packages \
--base-sha=$(git rev-parse HEAD^))
if [[ ! -z $CHANGED_PACKAGES ]]; then
echo $CHANGED_PACKAGES
echo "HAS_CHANGED_PACKAGES=true" >> $GITHUB_ENV
echo $CHANGED_PACKAGES
echo "HAS_CHANGED_PACKAGES=true" >> $GITHUB_ENV
fi
- name: Install Tizen Studio
if: ${{ env.HAS_CHANGED_PACKAGES == 'true' }}
run: |
sudo apt install -y libncurses5 python2.7 libpython2.7 gettext
curl http://download.tizen.org/sdk/Installer/tizen-studio_5.0/web-cli_Tizen_Studio_5.0_ubuntu-64.bin -o install.bin
curl http://download.tizen.org/sdk/Installer/tizen-studio_5.1/web-cli_Tizen_Studio_5.1_ubuntu-64.bin -o install.bin
chmod a+x install.bin
./install.bin --accept-license $HOME/tizen-studio
rm install.bin
- name: Install Tizen Studio packages
if: ${{ env.HAS_CHANGED_PACKAGES == 'true' }}
run: |
$HOME/tizen-studio/package-manager/package-manager-cli.bin install \
NativeToolchain-Gcc-9.2 \
WEARABLE-4.0-NativeAppDevelopment \
WEARABLE-5.5-NativeAppDevelopment \
WEARABLE-6.0-NativeAppDevelopment \
WEARABLE-6.5-NativeAppDevelopment
NativeToolchain-Gcc-9.2 \
WEARABLE-5.5-NativeAppDevelopment-CLI \
WEARABLE-6.0-NativeAppDevelopment-CLI \
WEARABLE-6.5-NativeAppDevelopment-CLI
- name: Create a Tizen certificate profile
if: ${{ env.HAS_CHANGED_PACKAGES == 'true' }}
run: |
Expand Down
82 changes: 42 additions & 40 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ The _"non-endorsed"_ status means that the plugin is not endorsed by the origina
| [**google_maps_flutter_tizen**](packages/google_maps_flutter) | [google_maps_flutter](https://pub.dev/packages/google_maps_flutter) (1st-party) | [![pub package](https://img.shields.io/pub/v/google_maps_flutter_tizen.svg)](https://pub.dev/packages/google_maps_flutter_tizen) | No |
| [**google_sign_in_tizen**](packages/google_sign_in) | [google_sign_in](https://pub.dev/packages/google_sign_in) (1st-party) | [![pub package](https://img.shields.io/pub/v/google_sign_in_tizen.svg)](https://pub.dev/packages/google_sign_in_tizen) | No |
| [**image_picker_tizen**](packages/image_picker) | [image_picker](https://pub.dev/packages/image_picker) (1st-party) | [![pub package](https://img.shields.io/pub/v/image_picker_tizen.svg)](https://pub.dev/packages/image_picker_tizen) | No |
| [**in_app_purchase_tizen**](packages/in_app_purchase) | [in_app_purchase](https://pub.dev/packages/in_app_purchase) (1st-party) | [![pub package](https://img.shields.io/pub/v/in_app_purchase_tizen.svg)](https://pub.dev/packages/in_app_purchase_tizen) | No |
| [**integration_test_tizen**](packages/integration_test) | [integration_test](https://github.com/flutter/flutter/tree/main/packages/integration_test) (1st-party) | [![pub package](https://img.shields.io/pub/v/integration_test_tizen.svg)](https://pub.dev/packages/integration_test_tizen) | No |
| [**messageport_tizen**](packages/messageport) | (Tizen-only) | [![pub package](https://img.shields.io/pub/v/messageport_tizen.svg)](https://pub.dev/packages/messageport_tizen) | N/A |
| [**network_info_plus_tizen**](packages/network_info_plus) | [network_info_plus](https://pub.dev/packages/network_info_plus) (1st-party) | [![pub package](https://img.shields.io/pub/v/network_info_plus_tizen.svg)](https://pub.dev/packages/network_info_plus_tizen) | No |
Expand Down Expand Up @@ -55,43 +56,44 @@ The _"non-endorsed"_ status means that the plugin is not endorsed by the origina

## Device limitations

| Package name | API level | Watch | Watch<br>emulator | TV | TV<br>emulator | Remarks |
|-|:-:|:-:|:-:|:-:|:-:|-|
| [**audioplayers_tizen**](packages/audioplayers) | 4.0 | ✔️ | ✔️ | ✔️ | ✔️ |
| [**battery_plus_tizen**](packages/battery_plus) | 4.0 | ✔️ | ✔️ ||| No battery |
| [**camera_tizen**](packages/camera) | 4.0 ||||| No camera |
| [**connectivity_plus_tizen**](packages/connectivity_plus) | 4.0 | ✔️ | ⚠️ | ✔️ | ✔️ | Returns incorrect connection status |
| [**device_info_plus_tizen**](packages/device_info_plus) | 4.0 | ✔️ | ✔️ | ✔️ | ✔️ |
| [**firebase_core**](packages/firebase_core) | 4.0 | ✔️ | ✔️ | ✔️ | ✔️ |
| [**flutter_app_badger_tizen**](packages/flutter_app_badger) | 4.0 | ✔️ | ✔️ ||| API not supported |
| [**flutter_secure_storage_tizen**](packages/flutter_secure_storage) | 4.0 | ✔️ | ✔️ | ✔️ | ✔️ |
| [**flutter_tts_tizen**](packages/flutter_tts) | 4.0 | ✔️ | ✔️ | ✔️ | ✔️ |
| [**flutter_webrtc_tizen**](packages/flutter_webrtc) | 6.0 ||| ✔️ || No camera |
| [**geolocator_tizen**](packages/geolocator) | 4.0 | ✔️ | ✔️ ||| Not applicable for TV |
| [**google_maps_flutter_tizen**](packages/google_maps_flutter) | 5.5 | ✔️ | ✔️ | ✔️ | ✔️ |
| [**google_sign_in_tizen**](packages/google_sign_in) | 4.0 | ✔️ | ✔️ | ✔️ | ✔️ |
| [**image_picker_tizen**](packages/image_picker) | 5.5 | ⚠️ |||| No camera,<br>No file manager app |
| [**integration_test_tizen**](packages/integration_test) | 4.0 | ✔️ | ✔️ | ✔️ | ✔️ |
| [**messageport_tizen**](packages/messageport) | 4.0 | ✔️ | ✔️ | ✔️ | ✔️ |
| [**network_info_plus_tizen**](packages/network_info_plus) | 4.0 | ✔️ || ✔️ || API not supported on emulator |
| [**package_info_plus_tizen**](packages/package_info_plus) | 4.0 | ✔️ | ✔️ | ✔️ | ✔️ |
| [**path_provider_tizen**](packages/path_provider) | 4.0 | ✔️ | ✔️ | ✔️ | ✔️ |
| [**permission_handler_tizen**](packages/permission_handler) | 4.0 | ✔️ | ✔️ | ⚠️ | ⚠️ | Not applicable for TV |
| [**sensors_plus_tizen**](packages/sensors_plus) | 4.0 | ✔️ | ✔️ ||| No sensor hardware |
| [**shared_preferences_tizen**](packages/shared_preferences) | 4.0 | ✔️ | ✔️ | ✔️ | ✔️ |
| [**sqflite_tizen**](packages/sqflite) | 4.0 | ✔️ | ✔️ | ✔️ | ✔️ |
| [**tizen_app_control**](packages/tizen_app_control) | 4.0 | ✔️ | ✔️ | ✔️ | ✔️ |
| [**tizen_app_manager**](packages/tizen_app_manager) | 4.0 | ✔️ | ✔️ | ✔️ | ✔️ |
| [**tizen_audio_manager**](packages/tizen_audio_manager) | 4.0 | ✔️ | ✔️ | ✔️ | ✔️ |
| [**tizen_bundle**](packages/tizen_bundle) | 4.0 | ✔️ | ✔️ | ✔️ | ✔️ |
| [**tizen_log**](packages/tizen_log) | 4.0 | ✔️ | ✔️ ||| Not applicable for TV |
| [**tizen_notification**](packages/tizen_notification) | 4.0 || ✔️ | ✔️ | ✔️ | API not supported |
| [**tizen_package_manager**](packages/tizen_package_manager) | 4.0 | ✔️ | ✔️ | ✔️ | ✔️ |
| [**tizen_rpc_port**](packages/tizen_rpc_port) | 6.5 | ✔️ | ✔️ | ✔️ | ✔️ |
| [**url_launcher_tizen**](packages/url_launcher) | 4.0 | ✔️ || ✔️ || No browser app |
| [**video_player_tizen**](packages/video_player) | 4.0 | ✔️ | ✔️ | ✔️ || TV emulator issue |
| [**video_player_videohole**](packages/video_player_videohole) | 4.0 ||| ✔️ || Only for TV devices |
| [**wakelock_tizen**](packages/wakelock) | 4.0 | ✔️ | ✔️ ||| Cannot override system settings |
| [**wearable_rotary**](packages/wearable_rotary) | 4.0 | ✔️ | ✔️ ||| Not applicable for TV |
| [**webview_flutter_lwe**](packages/webview_flutter_lwe) | 5.5 | ✔️ | ✔️ | ✔️ | ✔️ | Not for production use |
| [**webview_flutter_tizen**](packages/webview_flutter) | 5.5 ||| ✔️ | ✔️ | API not supported |
| Package name | Watch | Watch<br>emulator | TV | TV<br>emulator | Remarks |
|-|:-:|:-:|:-:|:-:|-|
| [**audioplayers_tizen**](packages/audioplayers) | ✔️ | ✔️ | ✔️ | ✔️ |
| [**battery_plus_tizen**](packages/battery_plus) | ✔️ | ✔️ ||| No battery |
| [**camera_tizen**](packages/camera) ||||| No camera |
| [**connectivity_plus_tizen**](packages/connectivity_plus) | ✔️ | ⚠️ | ✔️ | ✔️ | Returns incorrect connection status |
| [**device_info_plus_tizen**](packages/device_info_plus) | ✔️ | ✔️ | ✔️ | ✔️ |
| [**firebase_core**](packages/firebase_core) | ✔️ | ✔️ | ✔️ | ✔️ |
| [**flutter_app_badger_tizen**](packages/flutter_app_badger) | ✔️ | ✔️ ||| API not supported |
| [**flutter_secure_storage_tizen**](packages/flutter_secure_storage) | ✔️ | ✔️ | ✔️ | ✔️ |
| [**flutter_tts_tizen**](packages/flutter_tts) | ✔️ | ✔️ | ✔️ | ✔️ |
| [**flutter_webrtc_tizen**](packages/flutter_webrtc) ||| ✔️ || No camera |
| [**geolocator_tizen**](packages/geolocator) | ✔️ | ✔️ ||| Not applicable for TV |
| [**google_maps_flutter_tizen**](packages/google_maps_flutter) | ✔️ | ✔️ | ✔️ | ✔️ |
| [**google_sign_in_tizen**](packages/google_sign_in) | ✔️ | ✔️ | ✔️ | ✔️ |
| [**image_picker_tizen**](packages/image_picker) | ⚠️ |||| No camera,<br>No file manager app |
| [**in_app_purchase_tizen**](packages/in_app_purchase) ||| ✔️ || Only applicable for TV |
| [**integration_test_tizen**](packages/integration_test) | ✔️ | ✔️ | ✔️ | ✔️ |
| [**messageport_tizen**](packages/messageport) | ✔️ | ✔️ | ✔️ | ✔️ |
| [**network_info_plus_tizen**](packages/network_info_plus) | ✔️ || ✔️ || API not supported on emulator |
| [**package_info_plus_tizen**](packages/package_info_plus) | ✔️ | ✔️ | ✔️ | ✔️ |
| [**path_provider_tizen**](packages/path_provider) | ✔️ | ✔️ | ✔️ | ✔️ |
| [**permission_handler_tizen**](packages/permission_handler) | ✔️ | ✔️ | ⚠️ | ⚠️ | Not applicable for TV |
| [**sensors_plus_tizen**](packages/sensors_plus) | ✔️ | ✔️ ||| No sensor hardware |
| [**shared_preferences_tizen**](packages/shared_preferences) | ✔️ | ✔️ | ✔️ | ✔️ |
| [**sqflite_tizen**](packages/sqflite) | ✔️ | ✔️ | ✔️ | ✔️ |
| [**tizen_app_control**](packages/tizen_app_control) | ✔️ | ✔️ | ✔️ | ✔️ |
| [**tizen_app_manager**](packages/tizen_app_manager) | ✔️ | ✔️ | ✔️ | ✔️ |
| [**tizen_audio_manager**](packages/tizen_audio_manager) | ✔️ | ✔️ | ✔️ | ✔️ |
| [**tizen_bundle**](packages/tizen_bundle) | ✔️ | ✔️ | ✔️ | ✔️ |
| [**tizen_log**](packages/tizen_log) | ✔️ | ✔️ ||| Not applicable for TV |
| [**tizen_notification**](packages/tizen_notification) || ✔️ | ✔️ | ✔️ | API not supported |
| [**tizen_package_manager**](packages/tizen_package_manager) | ✔️ | ✔️ | ✔️ | ✔️ |
| [**tizen_rpc_port**](packages/tizen_rpc_port) | ✔️ | ✔️ | ✔️ | ✔️ |
| [**url_launcher_tizen**](packages/url_launcher) | ✔️ || ✔️ || No browser app |
| [**video_player_tizen**](packages/video_player) | ✔️ | ✔️ | ✔️ || TV emulator issue |
| [**video_player_videohole**](packages/video_player_videohole) ||| ✔️ | ⚠️ | See README for details |
| [**wakelock_tizen**](packages/wakelock) | ✔️ | ✔️ ||| Cannot override system settings |
| [**wearable_rotary**](packages/wearable_rotary) | ✔️ | ✔️ ||| Not applicable for TV |
| [**webview_flutter_lwe**](packages/webview_flutter_lwe) | ✔️ | ✔️ | ✔️ | ✔️ | Not for production use |
| [**webview_flutter_tizen**](packages/webview_flutter) ||| ✔️ | ✔️ | API not supported |
12 changes: 11 additions & 1 deletion packages/audioplayers/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,15 @@
## NEXT
## 3.0.1

* Update audioplayers to 5.1.0.
* Update audioplayers_platform_interface to 6.0.0.
* Update example app.

## 3.0.0

* Update audioplayers to 4.1.0.
* Update audioplayers_platform_interface to 5.0.1.
* Update example app.
* Update README.
* Increase the minimum Flutter version to 3.3.

## 2.0.0
Expand Down
9 changes: 5 additions & 4 deletions packages/audioplayers/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@ This package is not an _endorsed_ implementation of `audioplayers`. Therefore, y

```yaml
dependencies:
audioplayers: ^1.0.1
audioplayers_tizen: ^2.0.0
audioplayers: ^5.1.0
audioplayers_tizen: ^3.0.1

```

Expand Down Expand Up @@ -51,6 +51,7 @@ For detailed information on Tizen privileges, see [Tizen Docs: API Privileges](h
- [x] `AudioPlayer.resume`
- [x] `AudioPlayer.release`
- [x] `AudioPlayer.seek`
- [ ] `AudioPlayer.setBalance` (not supported)
- [x] `AudioPlayer.setVolume`
- [x] `AudioPlayer.setReleaseMode`
- [x] `AudioPlayer.setPlaybackRate`
Expand All @@ -62,8 +63,8 @@ For detailed information on Tizen privileges, see [Tizen Docs: API Privileges](h
- [x] `AudioPlayer.getDuration`
- [x] `AudioPlayer.getCurrentPosition`
- [x] `AudioPlayer.dispose`
- [ ] `AudioPlayer.global.changeLogLevel` (not supported)
- [ ] `AudioPlayer.global.setGlobalAudioContext` (not supported)
- [ ] `AudioLogger.logLevel` (not supported)
- [ ] `AudioPlayer.global.setAudioContext` (not supported)

## Limitations

Expand Down
Binary file not shown.
Binary file added packages/audioplayers/example/assets/coins.wav
Binary file not shown.
1 change: 1 addition & 0 deletions packages/audioplayers/example/assets/invalid.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
This represents an invalid audio file.
Original file line number Diff line number Diff line change
Expand Up @@ -137,7 +137,11 @@ void main() {
initialized.complete();
}
});
player.onSeekComplete.listen((event) => seek.complete());
player.onSeekComplete.listen((event) {
if (!seek.isCompleted) {
seek.complete();
}
});

await player.setSourceAsset(_kAssetAudio);
await initialized.future;
Expand Down
11 changes: 8 additions & 3 deletions packages/audioplayers/example/lib/components/btn.dart
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,18 @@ class Btn extends StatelessWidget {
final String txt;
final VoidCallback onPressed;

const Btn({super.key, required this.txt, required this.onPressed});
const Btn({
required this.txt,
required this.onPressed,
super.key,
});

@override
Widget build(BuildContext context) {
return ButtonTheme(
minWidth: 48.0,
return Padding(
padding: const EdgeInsets.all(4),
child: ElevatedButton(
style: ElevatedButton.styleFrom(minimumSize: const Size(48, 36)),
onPressed: onPressed,
child: Text(txt),
),
Expand Down
13 changes: 6 additions & 7 deletions packages/audioplayers/example/lib/components/cbx.dart
Original file line number Diff line number Diff line change
Expand Up @@ -3,22 +3,21 @@ import 'package:flutter/material.dart';
class Cbx extends StatelessWidget {
final String label;
final bool value;
final void Function(bool) update;
final void Function({required bool? value}) update;

const Cbx(
this.label,
this.value,
this.update, {
required this.value,
super.key,
});

@override
Widget build(BuildContext context) {
return Row(
children: [
Text(label),
Checkbox(value: value, onChanged: (v) => update(v!)),
],
return CheckboxListTile(
title: Text(label),
value: value,
onChanged: (v) => update(value: v),
);
}
}
31 changes: 16 additions & 15 deletions packages/audioplayers/example/lib/components/dlg.dart
Original file line number Diff line number Diff line change
Expand Up @@ -2,34 +2,38 @@ import 'package:audioplayers_tizen_example/components/btn.dart';
import 'package:flutter/material.dart';

class SimpleDlg extends StatelessWidget {
final String message, action;
final String message;
final String action;

const SimpleDlg({
super.key,
required this.message,
required this.action,
super.key,
});

@override
Widget build(BuildContext context) {
return Dlg(
children: [
Text(message),
Btn(
txt: action,
onPressed: Navigator.of(context).pop,
),
],
child: Column(
mainAxisSize: MainAxisSize.min,
children: [
Text(message),
Btn(
txt: action,
onPressed: Navigator.of(context).pop,
),
],
),
);
}
}

class Dlg extends StatelessWidget {
final List<Widget> children;
final Widget child;

const Dlg({
required this.child,
super.key,
required this.children,
});

@override
Expand All @@ -48,9 +52,6 @@ class Dlg extends StatelessWidget {
}

Widget contentBox(BuildContext context) {
return Column(
mainAxisSize: MainAxisSize.min,
children: children,
);
return child;
}
}
60 changes: 60 additions & 0 deletions packages/audioplayers/example/lib/components/drop_down.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
import 'package:flutter/material.dart';

class LabeledDropDown<T> extends StatelessWidget {
final String label;
final Map<T, String> options;
final T selected;
final void Function(T?) onChange;

const LabeledDropDown({
required this.label,
required this.options,
required this.selected,
required this.onChange,
super.key,
});

@override
Widget build(BuildContext context) {
return ListTile(
title: Text(label),
trailing: CustomDropDown<T>(
options: options,
selected: selected,
onChange: onChange,
),
);
}
}

class CustomDropDown<T> extends StatelessWidget {
final Map<T, String> options;
final T selected;
final void Function(T?) onChange;
final bool isExpanded;

const CustomDropDown({
required this.options,
required this.selected,
required this.onChange,
this.isExpanded = false,
super.key,
});

@override
Widget build(BuildContext context) {
return DropdownButton<T>(
isExpanded: isExpanded,
value: selected,
onChanged: onChange,
items: options.entries
.map<DropdownMenuItem<T>>(
(entry) => DropdownMenuItem<T>(
value: entry.key,
child: Text(entry.value),
),
)
.toList(),
);
}
}
Loading

0 comments on commit bb2a6cd

Please sign in to comment.