spotube/flutter/dev/devicelab/lib/tasks/platform_channels_benchmarks.dart
Rahul Sahani b5a8835c28 Enhance media controls and add social sharing features
Add enhanced media controls and social sharing features.

* **Enhanced Media Controls:**
  - Add volume control slider to `PlayerControls` widget in `lib/modules/player/player_controls.dart`.
  - Implement keyboard shortcuts for media controls (play/pause, next/previous track, volume up/down) in `PlayerControls` widget.
  - Add "lyrics" button to `PlayerView` widget in `lib/modules/player/player.dart`.

* **Social Sharing Features:**
  - Add feature to share the currently playing track on social media platforms in `lib/components/track_tile/track_options.dart`.
  - Add share button to `TrackPresentationTopSection` widget in `lib/components/track_presentation/presentation_top.dart`.

* **Settings:**
  - Add dark mode toggle in the settings page in `lib/pages/settings/settings.dart`.

* **CI Configuration:**
  - Add `.ci.yaml` file for continuous integration configuration.
2025-03-09 13:34:56 +05:30

50 lines
1.7 KiB
Dart

// Copyright 2014 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import 'dart:io' show Directory, Process;
import 'package:path/path.dart' as path;
import '../framework/devices.dart' as adb;
import '../framework/framework.dart' show TaskFunction;
import '../framework/task_result.dart' show TaskResult;
import '../framework/utils.dart' as utils;
import '../microbenchmarks.dart' as microbenchmarks;
TaskFunction runTask(adb.DeviceOperatingSystem operatingSystem) {
return () async {
adb.deviceOperatingSystem = operatingSystem;
final adb.Device device = await adb.devices.workingDevice;
await device.unlock();
final Directory appDir = utils.dir(
path.join(utils.flutterDirectory.path, 'dev/benchmarks/platform_channels_benchmarks'),
);
final Process flutterProcess = await utils.inDirectory(appDir, () async {
final List<String> createArgs = <String>[
'--platforms',
'ios,android',
'--no-overwrite',
'-v',
'.',
];
print('\nExecuting: flutter create $createArgs $appDir');
await utils.flutter('create', options: createArgs);
final List<String> options = <String>[
'-v',
// --release doesn't work on iOS due to code signing issues
'--profile',
'--no-publish-port',
'-d',
device.deviceId,
];
return utils.startFlutter('run', options: options);
});
final Map<String, double> results = await microbenchmarks.readJsonResults(flutterProcess);
return TaskResult.success(results, benchmarkScoreKeys: results.keys.toList());
};
}