Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New Launchpad app in Flutter #355

Open
wants to merge 228 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
228 commits
Select commit Hold shift + click to select a range
b46493c
Create the initial functionality for a Web Services module that will …
bmcclure Dec 12, 2022
506950e
Ignore task output on build-includes task in vscode
bmcclure Dec 12, 2022
50c6038
Add a ParameterState state class that loads and saves from temporary …
bmcclure Dec 12, 2022
ad7ff99
Save the container in StateBase
bmcclure Dec 12, 2022
1fd3968
Move entity icon retrieval to a separate method in ManageEntitiesWindow
bmcclure Dec 12, 2022
b8521c2
Make API integration optional in AppEntityBase
bmcclure Dec 12, 2022
73d168f
Fix icon references in web services manager window
bmcclure Dec 12, 2022
92ab4ad
Remove old API fields from web services entities
bmcclure Dec 12, 2022
b840870
Fix bugs with WebServiceEntity and make the fields not editable if th…
bmcclure Dec 12, 2022
ffd8b48
Fixes to WebServices module file
bmcclure Dec 12, 2022
7a11449
Fix logo icon reference for launchpad web service provider
bmcclure Dec 12, 2022
e2461aa
Make Provider field never editable after creating a Web Service entity
bmcclure Dec 12, 2022
286624c
Allow runtime config storage entities (entities that don't save data …
bmcclure Dec 12, 2022
d94ce49
Make web_service_provider entity type store its data in runtime confi…
bmcclure Dec 12, 2022
6977913
Add helper methods Login, Logout, and IsAuthenticated to WebServiceEn…
bmcclure Dec 12, 2022
6e296b9
Store the request object in WebServiceResponseEvent as well
bmcclure Dec 12, 2022
e5b16fd
Add Login or Logout context menu item to Web Services
bmcclure Dec 12, 2022
6481fd4
Add missing cache assignment
bmcclure Dec 12, 2022
35cdf82
Support passing UrlObj objects into the "path" parameter of WebServic…
bmcclure Dec 12, 2022
ceccd66
Add entityObj parameter to GetContextMenuItems method in ManageEntiti…
bmcclure Dec 12, 2022
4a50a00
Fix regex definition in UrlObj
bmcclure Dec 12, 2022
bbf5517
Fix reference to PlatformsWindow
bmcclure Dec 12, 2022
6352c4b
Hide Basic platform from Platforms window
bmcclure Dec 12, 2022
8a1279c
Standardize module versions for display
bmcclure Dec 12, 2022
9adba30
Pass isCore value in to each module constructor for safety
bmcclure Dec 12, 2022
ab8d1a5
Replace "Build-in" version string with "Core"
bmcclure Dec 12, 2022
591c10a
Add category, source, and better module version strings to module man…
bmcclure Dec 12, 2022
b72c3ba
Standardize all graphics resources to lower-case
bmcclure Dec 12, 2022
41faf6e
Fix spinner filename
bmcclure Dec 12, 2022
ec9ba3d
Fix reg lookup key for Epic Games platform
bmcclure Dec 12, 2022
8946e32
Filter keys in DetectedGame objects more thoroughly, allow detecting …
bmcclure Dec 12, 2022
b5b650d
Fix saving existing entities during game detection
bmcclure Dec 12, 2022
2dcb43d
Show username for each auth service if available
bmcclure Dec 12, 2022
0caa0c9
Standardize how window and control resizing cascades
bmcclure Dec 12, 2022
9680f3c
Fix missing refresh path for Launchpad API provider
bmcclure Dec 12, 2022
2c3496d
Simplify access to AuthData and resolve data-related login issues
bmcclure Dec 12, 2022
7c268aa
Add Auto Login option to web services and show it in the manager wind…
bmcclure Dec 12, 2022
176e2ca
Add missing file from last change
bmcclure Dec 12, 2022
971c3fc
Remove previous auto-login functionality
bmcclure Dec 12, 2022
0d8de85
Always pass container into event subscribers
bmcclure Dec 12, 2022
a59b4ed
Move APP_POST_STARTUP event to after the RunApp method has run
bmcclure Dec 12, 2022
2c82a37
Add Enabled field to WebService entities
bmcclure Dec 12, 2022
d8561c6
Query(Create a WebServicesEventSubscriber that handles auto-login ser…
bmcclure Dec 12, 2022
358ae49
Allow canceling authentication GUI without retrying
bmcclure Dec 12, 2022
dba5a62
Show a normal dialog message after exceeding the max login retries in…
bmcclure Dec 12, 2022
22386c0
Allow overriding which default context menu buttons show in entity ed…
bmcclure Dec 12, 2022
650f2cb
Update MainWindow to use new API web service
bmcclure Dec 12, 2022
0ec7b0c
Update LaunchpadBuilder to use new API web service
bmcclure Dec 12, 2022
c8e272a
Update LaunchpadApi module to depend on WebServices module, and remov…
bmcclure Dec 12, 2022
c39399d
Remove unused AuthInfo tests
bmcclure Dec 12, 2022
1567435
Standardize AlterRequest parameters
bmcclure Dec 12, 2022
5b2b4dc
Add GetStatusInfo to WebServiceEntity (but it isn't finished yet)
bmcclure Dec 12, 2022
c9b41a6
Update ApiDataSource to get data through the API web service
bmcclure Dec 12, 2022
343e133
Update account info window to use API web service
bmcclure Dec 12, 2022
23ec7a9
Remove unused Auth module
bmcclure Dec 12, 2022
981d402
Refactor status indicators to show one per account, work in progress
bmcclure Dec 12, 2022
9fd1e78
Remove player_name setting
bmcclure Dec 13, 2022
b87c2c9
Move callbacks for status indicators into the StatusIndicator control…
bmcclure Dec 13, 2022
dd9dba1
Change "email" to "account" in authentication data so it is more generic
bmcclure Dec 13, 2022
383d2e2
Committing WebServiceLayerSource for posterity because I'm about to r…
bmcclure Dec 13, 2022
f10500f
Rename "api" services to "launchpad_api"
bmcclure Dec 13, 2022
a882b8c
Add WebServiceAdapter entity types, the concept of web service data t…
bmcclure Dec 13, 2022
65af969
Fix extra function in TabsControl
bmcclure Dec 13, 2022
e33084f
Fix include
bmcclure Dec 13, 2022
44759b2
Replace WebServiceLayerSource with WebServiceAdapterLayerSource to si…
bmcclure Dec 13, 2022
4f1bf74
Missing change from last commit
bmcclure Dec 13, 2022
0cb1bed
Remove the concept of a "local" data source for now
bmcclure Dec 13, 2022
a6f746c
Remove old api_endpoint config value
bmcclure Dec 13, 2022
d4530c3
Allow generically making requests to web service adapters based on fi…
bmcclure Dec 13, 2022
744bd9b
Move main menu definitions to the main app class, and use a series of…
bmcclure Dec 13, 2022
7e45a12
Turn update checks into an event which is subscribed from the Launchp…
bmcclure Dec 13, 2022
b31c437
Only enable app.supports_update_check if the LaunchpadApi module is e…
bmcclure Dec 13, 2022
ecc6e2e
Rename and add to entity data events
bmcclure Dec 14, 2022
e4d0db8
wording change
bmcclure Dec 14, 2022
3eb32cc
Remove api_authentication and data_source_key config parameters
bmcclure Dec 14, 2022
db232b1
Remove unused dataSource assignments
bmcclure Dec 14, 2022
484b200
Add entity_lookup data type to WebServices module
bmcclure Dec 14, 2022
8cc332f
Lots of interconnected changes to replace DataSource and DSItem conce…
bmcclure Dec 14, 2022
ca26128
Rename DataLookupKey to LaunchpadApiRef
bmcclure Dec 14, 2022
e908cc9
Rename LauncherSpecificId to PlatformRef
bmcclure Dec 14, 2022
cbd8a79
Fix 0 array index in VersionChecker
bmcclure Dec 17, 2022
85ffdca
Throw an exception if unable to delete include file
bmcclure Dec 17, 2022
bd08d3d
Add NullEntityStorage class for use if you don't want any backend
bmcclure Dec 17, 2022
303f405
Update WebService module events
bmcclure Dec 17, 2022
e0c2b7e
Add an availability_check web service data type
bmcclure Dec 17, 2022
b7e6f7c
Return this from EntityStorageLayerSource DeleteData method
bmcclure Dec 17, 2022
a91c24c
Simple language update
bmcclure Dec 17, 2022
94d327e
Define a WebServiceAdapter service
bmcclure Dec 17, 2022
284c38f
Add an option to store child entity data inside the parent's entity s…
bmcclure Dec 17, 2022
17ce18a
Add an event that can be fired to determine an entity's parent entity
bmcclure Dec 17, 2022
78b14b4
Refactor EntityData so that passing in layer names and layer sources …
bmcclure Dec 17, 2022
b12a217
Fix entity constructors (Except Managed entities because they will be…
bmcclure Dec 17, 2022
760826d
Change ManagedEntityBase into LaunchProcessEntity, ManagedLauncherEnt…
bmcclure Dec 17, 2022
c92e332
Update field types to support cardinality options better
bmcclure Dec 17, 2022
fd110be
Return this from set functions
bmcclure Dec 17, 2022
25804aa
Fire the new EntityParentEvent from EntityBase to determine the parent
bmcclure Dec 17, 2022
ad8e56d
Only create EntityDat automatically if dataLoaded = false, and set it…
bmcclure Dec 17, 2022
7215fa3
Remove ConfigPrefix and update additionalManagedLauncherDefaults to a…
bmcclure Dec 17, 2022
bf7e213
Don't pass LauncherType or GameType in during detected game creation …
bmcclure Dec 17, 2022
d4aa481
Remove recursive options from AutoDetectValues and InitializeDefaults…
bmcclure Dec 17, 2022
1eae187
Rename recursive option to recurse in DiffChanges method
bmcclure Dec 17, 2022
a7f0d9d
Make layerNames and layerSources optional in LayeredDataBase
bmcclure Dec 17, 2022
0399fb1
Define parent entity storage on game_process and launcher_process ent…
bmcclure Dec 17, 2022
f2f7b05
Missing change from last commit
bmcclure Dec 17, 2022
90b452b
Temporarily add single cardinality options to some Launcher fields un…
bmcclure Dec 17, 2022
4ed87e1
Always set cache object in CachedWebServiceResponseBase
bmcclure Dec 17, 2022
3444470
Simplify event dispatch call
bmcclure Dec 17, 2022
ee45219
Change how CloneLayers works in LayeredDataBase so it only clones use…
bmcclure Dec 17, 2022
079fc79
Update GamePlatformBase to make a web service call to look up a game'…
bmcclure Dec 17, 2022
f0b0274
Update the error dialog and feedback window to send data via WebServi…
bmcclure Dec 17, 2022
35aefe2
Remove LauncherType and GameType handling from DetectedGameEditor
bmcclure Dec 17, 2022
75c3d7d
Subscribe to events to automatically make API requests on behalf of e…
bmcclure Dec 17, 2022
23c3865
Add a recurse option, defaulting to false, when calling DeleteEntity
bmcclure Dec 17, 2022
d63f348
Move SaveData and CreateSnapshot to below the recursive saving loop i…
bmcclure Dec 17, 2022
2399922
Remove duplicate event subscriber definitions from LaunchpadApiSubscr…
bmcclure Dec 17, 2022
af33820
Add an additional check to ensure that the referenced Platform exists…
bmcclure Dec 17, 2022
fd74dd6
Fix adapter definitions and organize parameters in LaunchpadApi.modul…
bmcclure Dec 17, 2022
8a0ff45
Add ReferencedEntities, ChildEntities, and ChildEntityData properties…
bmcclure Dec 17, 2022
2b74d94
Update handling of parent entity discover in EntityBase
bmcclure Dec 17, 2022
744038e
Add missing merger attribute
bmcclure Dec 17, 2022
4dd1034
Refactor entity loading slightly, and use a "loading" parameter to tr…
bmcclure Dec 17, 2022
04e7f67
Update recursive handling of snapshots in EntityBase
bmcclure Dec 17, 2022
b026b19
Update _getLayerSources in EntityBase to use parent entity storage wh…
bmcclure Dec 17, 2022
cb23292
Add UpdateDefaults method to EntityBase
bmcclure Dec 17, 2022
124c6cb
Fix event class name and event name references
bmcclure Dec 17, 2022
322f190
Add missing argument to event_subscriber.web_services
bmcclure Dec 17, 2022
a6bbd3e
Change dataType property to dataClass on adapters
bmcclure Dec 17, 2022
9e3a09e
Enhance WebServiceAdapterBase code
bmcclure Dec 17, 2022
e051208
Use web service calls in DetectedGameEditor and refactor a bit of the…
bmcclure Dec 17, 2022
6a27ffd
Add isWebServiceEntity to web service entities, and remove old adapte…
bmcclure Dec 17, 2022
1cef906
Add CacheResponses and DefaultResponseCacheExpiration fields to WebSe…
bmcclure Dec 17, 2022
bd64d5b
Rename new web service fields to ResponseCache and ResponseCacheDefau…
bmcclure Dec 17, 2022
9ca8909
Missing comma
bmcclure Dec 17, 2022
8b90b24
Fix parent entity assignment
bmcclure Dec 17, 2022
5f02482
Remove test code
bmcclure Dec 17, 2022
113b167
Change extra key in data storage from "extra" to "_extra"
bmcclure Dec 17, 2022
e8d9c08
Fix child entity data storage
bmcclure Dec 17, 2022
0e7c3d6
Fix web service ref discovery in the case of the wrong data type bein…
bmcclure Dec 17, 2022
34fed83
Create a devcontainer that can be used to generate linux builds
bmcclure Dec 17, 2022
9970c41
Add launch configuration for testing the flutter app
bmcclure Dec 17, 2022
1616be7
Platform files for launchpad_app
bmcclure Dec 17, 2022
c93878a
Basic readme
bmcclure Dec 17, 2022
b419d99
Create a Sponsors model based on fluent_ui's example
bmcclure Dec 17, 2022
34aac56
Initial widgets copied from fluent_ui example
bmcclure Dec 17, 2022
d0a824a
Copy theme file from fluent_ui
bmcclure Dec 17, 2022
a5954fe
Commit entire rest of sample project from fluent_ui as a starting point
bmcclure Dec 17, 2022
a6702eb
Merge branch 'web-services' into flutter
bmcclure Dec 17, 2022
d97c2b9
Update the menu, logo, and clean up the initial dashboard a bit
bmcclure Dec 18, 2022
b2ba85d
Update launch and tasks
bmcclure Dec 19, 2022
3f752b7
Random app setup stuff
bmcclure Dec 19, 2022
8b96b9a
Rebuild app fully, update menu slightly
bmcclure Dec 19, 2022
a5a3347
Add a Taskfile for future use
bmcclure Dec 19, 2022
7f43730
Set default cwd for vscode to the launchpad_app folder
bmcclure Dec 19, 2022
79b682c
Tweak tasks.json
bmcclure Dec 19, 2022
39542af
Copy BlizzardProductDb.proto into launchpad_app for future use
bmcclure Dec 19, 2022
9438fb3
Tweak tasks
bmcclure Dec 19, 2022
b18ae4f
Remove nested, add http and intl
bmcclure Dec 19, 2022
25ac8d4
Switch existing state and widget code to use riverpod
bmcclure Dec 19, 2022
260a920
Generated assets, generated theme provider, replace home with dashboard
bmcclure Dec 20, 2022
f635980
More reorganization
bmcclure Dec 20, 2022
cda557c
Create an isar instance provider and define a launcher repository wit…
bmcclure Dec 20, 2022
b609bac
Misc refactorings
bmcclure Dec 20, 2022
115f1d1
Adding linux, ios, and android folders for future use
bmcclure Dec 20, 2022
f4ae4de
Add linux dependencies to Dockerfile in devcontainer
bmcclure Dec 20, 2022
9889d5a
pubspec updarte
bmcclure Dec 20, 2022
badc84d
Update gorouter
bmcclure Dec 20, 2022
88eb61c
Fix routes definition
bmcclure Dec 20, 2022
3f08136
Remove alice
bmcclure Dec 20, 2022
08ed9bb
Auto-built code related to launchpad_api openapi file
bmcclure Dec 20, 2022
adb6064
FInish splitting out the router and the main window container
bmcclure Dec 21, 2022
16ddfde
Updated some versions
bmcclure Dec 21, 2022
f81f4cf
Generated code
bmcclure Dec 21, 2022
a67fa43
Implemented Catcher
bmcclure Dec 21, 2022
349e48b
Add rudimentary version of update checker for future expansion
bmcclure Dec 21, 2022
37a8ba0
Remove all provider deps, remove provider, install a few other deps, …
bmcclure Dec 21, 2022
bc37729
Tweak code
bmcclure Dec 21, 2022
8a58c03
Refactoring code
bmcclure Dec 22, 2022
6337ce2
Simplify some list initialization
bmcclure Dec 22, 2022
d5f4e7f
vscode settings
bmcclure Dec 22, 2022
ac4e2b4
Update .env defaults
bmcclure Dec 22, 2022
9e2f34e
Update (but comment out until tested) distributor settings
bmcclure Dec 22, 2022
2511f20
Refactorings
bmcclure Dec 22, 2022
c341cab
repositories and models for some basic types
bmcclure Dec 22, 2022
6e3974e
Tweak tasks
bmcclure Dec 22, 2022
6bafbf9
Add image and shimmer
bmcclure Dec 22, 2022
6198661
Set up protocol_handler to handle launchpad links
bmcclure Dec 22, 2022
5315e17
Enforce single app instance and pass URI arguments to the router
bmcclure Dec 22, 2022
f37fd16
Add some new requirements
bmcclure Dec 22, 2022
73fab04
Forgot to commit pubspex.yaml
bmcclure Dec 22, 2022
437432d
Plugin files
bmcclure Dec 22, 2022
1936b80
Support dropping files (although it does nothing yet)
bmcclure Dec 22, 2022
3b46f1d
Clean up pubspec
bmcclure Dec 22, 2022
7e6bad5
Dependencies
bmcclure Dec 23, 2022
1722cdb
Lots of changes for the dashboard
bmcclure Dec 23, 2022
d3126b9
Dashboard tweaks
bmcclure Dec 23, 2022
f03059b
Dashboard tweaks
bmcclure Dec 23, 2022
e057668
Increase both the default size and the minimum size of the Launchpad …
bmcclure Dec 23, 2022
e6699c7
Add a grid for the All Games list to be populated later
bmcclure Dec 23, 2022
86f5133
Tweak scrolling of the games view
bmcclure Dec 23, 2022
ff137dc
Fix C++ include paths in vscode (for my local system at least)
bmcclure Dec 23, 2022
3fc4beb
Package tweaks
bmcclure Dec 23, 2022
49b2759
Remove unused dependency
bmcclure Dec 23, 2022
b796566
Remove unused import and add Help item to bottom of menu
bmcclure Dec 23, 2022
8e76a89
Update plugin generated code
bmcclure Dec 23, 2022
346b713
Add app_links code to win_32_window.cpp and win_32_window.h
bmcclure Dec 23, 2022
ea14eb8
Update isar repositories and init code
bmcclure Dec 23, 2022
41cc5c6
Fix scroll issue on All Games list by removing the content below the …
bmcclure Dec 23, 2022
30cca16
Lots of changes, committing them before I mess something up
bmcclure Dec 25, 2022
bdd2759
Add platform icons and update packages
bmcclure Dec 26, 2022
5d2b1a8
Update vscode settings
bmcclure Dec 26, 2022
a61ca07
Generated code
bmcclure Dec 26, 2022
507c185
Basic platforms and platform types implementation
bmcclure Dec 26, 2022
09dac7e
Update gitignore files to be safe before moving things around
bmcclure Dec 26, 2022
80140d4
Move LaunchpadOVerlay to launchpad_overlay to standardize dir names
bmcclure Dec 26, 2022
dc4f6cf
Move entire AHK application into launchpad_ahk to keep things more or…
bmcclure Dec 26, 2022
37a8642
Update Launchpad.sln to point to new overlay folder
bmcclure Dec 26, 2022
be509ca
Dictionary update
bmcclure Dec 26, 2022
798be83
Fixes for RegistryLocator
bmcclure Dec 26, 2022
7fd8c4a
Add launchpad_dotnet library and csharp project that generates a dll
bmcclure Dec 29, 2022
d2ac1d2
Get icon extraction working for platforms
bmcclure Dec 29, 2022
9cd15c9
Ad All Platforms menu item back because I think it's going to be requ…
bmcclure Dec 29, 2022
ba1e8d4
Clean up unused files, update game listings with some test data (requ…
bmcclure Dec 29, 2022
5be8999
Detect games via library folders or a callback
bmcclure Mar 10, 2023
44009de
Refactor game platforms
bmcclure Mar 10, 2023
ca5addf
Update LaunchpadDotNet library dependencies
bmcclure Mar 10, 2023
9f2895a
Update the path of my hardcoded temporary image
bmcclure Mar 10, 2023
ba39e78
Install jwt_decoder
bmcclure Mar 14, 2023
531c33d
Initial code for future web services functionality
bmcclure Mar 14, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
83 changes: 83 additions & 0 deletions .devcontainer/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
# Update VARIANT in devcontainer.json to pick a Dart version
ARG VARIANT=2
FROM dart:${VARIANT}

# [Option] Install zsh
ARG INSTALL_ZSH="true"
# [Option] Upgrade OS packages to their latest versions
ARG UPGRADE_PACKAGES="true"

# Install needed packages and setup non-root user. Use a separate RUN statement to add your own dependencies.
ARG USERNAME=vscode
ARG USER_HOME=/home/${USERNAME}
ARG USER_UID=1000
ARG USER_GID=$USER_UID
COPY library-scripts/*.sh /tmp/library-scripts/
RUN apt-get update && /bin/bash /tmp/library-scripts/common-debian.sh "${INSTALL_ZSH}" "${USERNAME}" "${USER_UID}" "${USER_GID}" "${UPGRADE_PACKAGES}" "true" "true"

# Add bin location to path
ENV PUB_CACHE="/usr/local/share/pub-cache"
ENV PATH="${PUB_CACHE}/bin:${PATH}"
RUN if ! cat /etc/group | grep -e "^pub-cache:" > /dev/null 2>&1; then groupadd -r pub-cache; fi \
&& usermod -a -G pub-cache ${USERNAME} \
&& umask 0002 \
&& mkdir -p ${PUB_CACHE} \
&& chown :pub-cache ${PUB_CACHE} \
&& sed -i -e "s/export PATH=/export PATH=\/usr\/local\/share\/pub-cache:/" /etc/profile.d/00-restore-env.sh \
#
# Fix incorrect privs if present on directories - https://github.com/dart-lang/dart-docker/issues/62, https://github.com/dart-lang/sdk/issues/47093
&& chmod 755 "$DART_SDK" "$DART_SDK/bin"

# Install additional OS packages.
RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \
&& apt-get -y install --no-install-recommends \
openjdk-11-jdk-headless wget curl git xz-utils zip unzip \
clang cmake ninja-build pkg-config libgtk-3-dev \
libwebkit2gtk-4.0-dev libkeybinder-3.0-dev libayatana-appindicator3-dev
# Clean up packages
RUN apt-get autoremove -y && apt-get clean -y && rm -rf /var/lib/apt/lists/* /tmp/library-scripts

# Switch to non-root user
USER ${USERNAME}
WORKDIR ${USER_HOME}

#
# Android SDK
# https://developer.android.com/studio#downloads
# ENV ANDROID_SDK_TOOLS_VERSION=8512546
# ENV ANDROID_PLATFORM_VERSION=33
# ENV ANDROID_BUILD_TOOLS_VERSION=33.0.0
# ENV ANDROID_HOME=~/android-sdk-linux
# ENV ANDROID_SDK_ROOT="$ANDROID_HOME"
# ENV PATH=${PATH}:${ANDROID_HOME}/cmdline-tools/cmdline-tools/bin:${ANDROID_HOME}/platform-tools:${ANDROID_HOME}/emulator

# RUN curl -C - --output android-sdk-tools.zip https://dl.google.com/android/repository/commandlinetools-linux-${ANDROID_SDK_TOOLS_VERSION}_latest.zip \
# && mkdir -p ${ANDROID_HOME}/ \
# && unzip -q android-sdk-tools.zip -d ${ANDROID_HOME}/cmdline-tools/ \
# && rm android-sdk-tools.zip \
# && yes | sdkmanager --licenses \
# && touch $HOME/.android/repositories.cfg \
# && sdkmanager platform-tools \
# && sdkmanager emulator \
# && sdkmanager "platforms;android-${ANDROID_PLATFORM_VERSION}" "build-tools;$ANDROID_BUILD_TOOLS_VERSION" \
# && sdkmanager --install "cmdline-tools;latest"
# # create emulator android
# RUN sdkmanager "system-images;android-${ANDROID_PLATFORM_VERSION};google_apis;x86_64" \
# && avdmanager create avd -n Android${ANDROID_PLATFORM_VERSION} -k "system-images;android-${ANDROID_PLATFORM_VERSION};google_apis;x86_64"

#
# Flutter SDK
# https://flutter.dev/docs/development/tools/sdk/releases?tab=linux
ENV FLUTTER_CHANNEL="stable"
ENV FLUTTER_VERSION="3.3.10"
# Make sure to use the needed channel and version for this.
ENV FLUTTER_HOME=${USER_HOME}/flutter
ENV PATH=${PATH}:${FLUTTER_HOME}/bin

RUN curl -C - --output flutter.tar.xz https://storage.googleapis.com/flutter_infra_release/releases/${FLUTTER_CHANNEL}/linux/flutter_linux_${FLUTTER_VERSION}-${FLUTTER_CHANNEL}.tar.xz \
&& tar -xf flutter.tar.xz -C ~ \
&& rm flutter.tar.xz \
&& flutter config --android-sdk "${ANDROID_SDK_ROOT}" \
&& yes | flutter doctor --android-licenses \
&& flutter config --no-analytics \
&& flutter update-packages
38 changes: 38 additions & 0 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
{
"name": "Dart (Community)",
"build": {
"dockerfile": "Dockerfile",
// Update VARIANT to pick a Dart version
"args": { "VARIANT": "2" }
},

// Configure tool-specific properties.
"customizations": {
// Configure properties specific to VS Code.
"vscode": {
// Add the IDs of extensions you want installed when the container is created.
"extensions": [
"dart-code.dart-code",
"dart-code.flutter"
]
}
},

// Use 'forwardPorts' to make a list of ports inside the container available locally.
// "forwardPorts": [],

// Use 'postCreateCommand' to run commands after the container is created.
// "postCreateCommand": "uname -a",
// "postCreateCommand": "flutter create test_project",

// Set `remoteUser` to `root` to connect as root instead. More info: https://aka.ms/vscode-remote/containers/non-root.
"remoteUser": "vscode",
"features": {
"ghcr.io/devcontainers/features/common-utils:2": {},
"ghcr.io/devcontainers-contrib/features/cue-asdf:1": {},
"ghcr.io/devcontainers-contrib/features/svu-asdf:1": {},
"ghcr.io/eitsupi/devcontainer-features/go-task:1": {},
"ghcr.io/dhoeric/features/google-cloud-cli:1": {},
"ghcr.io/warrenbuckley/codespace-features/sqlite:1": {}
}
}
Loading