37 changed files with 1359 additions and 0 deletions
			
			
		@ -0,0 +1,5 @@
					 | 
				
			||||
# Authors | 
				
			||||
 | 
				
			||||
* Vitaliy Zarubin, <v.zarubin@omp.ru> | 
				
			||||
  * Product owner, 2023 | 
				
			||||
  * Maintainer, 2023 | 
				
			||||
@ -0,0 +1,83 @@
					 | 
				
			||||
# Code of Conduct | 
				
			||||
 | 
				
			||||
## What is this code of conduct for? | 
				
			||||
 | 
				
			||||
Code of conduct is a current set of rules of the Open Mobile Platform | 
				
			||||
which informs you how we expect | 
				
			||||
the members of the Open Mobile Platform community | 
				
			||||
will interact while contributing and communicating. | 
				
			||||
We are committed to providing a friendly, safe and welcoming | 
				
			||||
environment for all, regardless of gender, gender identity and expression, | 
				
			||||
sexual orientation, ability, physical appearance, body size, race, age, | 
				
			||||
socioeconomic status, religion (or lack thereof), | 
				
			||||
or other marginalized aspect of community members. | 
				
			||||
We expect all members of the Open Mobile Platform community | 
				
			||||
to abide by this Code of Conduct whenever interacting | 
				
			||||
in Open Mobile Platform venues | 
				
			||||
(merge requests, pull requests, issues, 1-1 or group chat, meetups, conferences, etc.) | 
				
			||||
 | 
				
			||||
## Examples of appropriate behavior | 
				
			||||
 | 
				
			||||
* Using welcoming and inclusive language. | 
				
			||||
* Being respectful of differing viewpoints and experiences. | 
				
			||||
* Gracefully accepting constructive criticism. | 
				
			||||
* Focusing on what is best for the community. | 
				
			||||
* Showing empathy towards other community members. | 
				
			||||
 | 
				
			||||
## Examples of inappropriate behavior | 
				
			||||
 | 
				
			||||
Because we come from a variety of backgrounds, | 
				
			||||
we do not want to assume that everyone has the same assumptions | 
				
			||||
about what is and is not appropriate. | 
				
			||||
Here are some examples of inappropriate behavior | 
				
			||||
that are incompatible with our community's ethos: | 
				
			||||
 | 
				
			||||
* spamming, trolling, intentionally disrupting conversations, | 
				
			||||
  or irrelevant solicitation or advertisement; | 
				
			||||
* making demeaning or discriminatory comments; | 
				
			||||
* making negative assumptions about someone's background, | 
				
			||||
  abilities, or intentions; | 
				
			||||
* harassing or stalking individuals (online or in person). | 
				
			||||
 | 
				
			||||
In general: treat others how you would like to be treated, | 
				
			||||
were you in their place. | 
				
			||||
Do ask questions. | 
				
			||||
Do keep conflicts productively focused on technical issues. | 
				
			||||
Do remember that we are all people, not robots, | 
				
			||||
and all equally deserving of sensitivity and respect. | 
				
			||||
 | 
				
			||||
## What will organizers do about inappropriate behavior? | 
				
			||||
 | 
				
			||||
If we notice you doing or saying something inappropriate, | 
				
			||||
an organizer will ask you to stop. | 
				
			||||
We will not demonize you. | 
				
			||||
But please do stop the inappropriate behavior | 
				
			||||
so we can get back to writing and discussing code in a safe environment. | 
				
			||||
If you have philosophical disagreements about what is actually inappropriate, | 
				
			||||
please take them to a separate public or private conversation | 
				
			||||
with an Open Mobile Platform maintainer | 
				
			||||
so we don't turn pull requests into an ethics debate. | 
				
			||||
If you keep doing unacceptable things, | 
				
			||||
we will likely ban you, report you to the administration, | 
				
			||||
or take other appropriate action. | 
				
			||||
 | 
				
			||||
## What if I see or am subject to what feels like inappropriate behavior? | 
				
			||||
 | 
				
			||||
Let us know. | 
				
			||||
Please notify a community organizer as soon as possible. | 
				
			||||
Full contact information is listed in the Contact Info section of this document. | 
				
			||||
All communications will be kept strictly confidential, | 
				
			||||
unless otherwise required by law. | 
				
			||||
No issue will be considered too inconsequential or unimportant for us | 
				
			||||
to have a conversation about. | 
				
			||||
 | 
				
			||||
## Contact Info | 
				
			||||
 | 
				
			||||
If you need to report an incident, | 
				
			||||
please contact <community@omp.ru>. | 
				
			||||
 | 
				
			||||
This work is licensed under a Creative Commons Attribution 3.0 Unported License | 
				
			||||
For attribution requirements: | 
				
			||||
«Open Mobile Platform Code of Conduct» | 
				
			||||
Copyright (c) 2021 Open Mobile Platform LLC, | 
				
			||||
used under a [Creative Commons Attribution Unported license](http://creativecommons.org/licenses/by/3.0/). | 
				
			||||
@ -0,0 +1,169 @@
					 | 
				
			||||
# Contributor License Agreements | 
				
			||||
 | 
				
			||||
Thank you for your interest in contributing | 
				
			||||
to software projects managed by Open Mobile Platform («We» or «Us»). | 
				
			||||
This contributor agreement («Agreement») | 
				
			||||
documents the rights granted by contributors to Us. | 
				
			||||
To make this document effective, | 
				
			||||
please sign it and send it to Us by email or electronic submission. | 
				
			||||
This is a legally binding document, | 
				
			||||
so please read it carefully before agreeing to it. | 
				
			||||
The Agreement may cover more than one software project managed by Us. | 
				
			||||
 | 
				
			||||
## 1. Definitions | 
				
			||||
 | 
				
			||||
**«We» or «Us»** means Open Mobile Platform Limited Liability Company | 
				
			||||
(Open Mobile Platform LLC), | 
				
			||||
420500, Republic of Tatarstan, Verkhneuslonsky District, | 
				
			||||
Innopolis, Universitetskaya Street, h. 7, office 59, | 
				
			||||
OGRN (Primary State Registration Number) 1161690087020. | 
				
			||||
 | 
				
			||||
**«You»** means the individual who Submits a Contribution to Us. | 
				
			||||
 | 
				
			||||
**«Contribution»** means any work of authorship | 
				
			||||
that is Submitted by You to Us | 
				
			||||
in which You own or assert ownership of the Copyright. | 
				
			||||
 | 
				
			||||
**«Copyright»** means all rights protecting works of authorship | 
				
			||||
owned or controlled by You, | 
				
			||||
including copyright, moral and neighboring rights, as appropriate, | 
				
			||||
for the full term of their existence including any extensions by You. | 
				
			||||
 | 
				
			||||
**«Material»** means the work of authorship | 
				
			||||
which is made available by Us to third parties. | 
				
			||||
When this Agreement covers more than one software project, | 
				
			||||
the Material means the work of authorship | 
				
			||||
to which the Contribution was Submitted. | 
				
			||||
After You Submit the Contribution, | 
				
			||||
it may be included in the Material. | 
				
			||||
 | 
				
			||||
**«Submit»** means any form of electronic, verbal, or written communication | 
				
			||||
sent to Us or our representatives, | 
				
			||||
including but not limited to electronic mailing lists, | 
				
			||||
source code control systems, and issue tracking systems | 
				
			||||
that are managed by, or on behalf of, Us | 
				
			||||
for the purpose of discussing and improving the Material, | 
				
			||||
but excluding communication that is conspicuously marked | 
				
			||||
or otherwise designated in writing by You as «Not a Contribution». | 
				
			||||
 | 
				
			||||
**«Submission Date»** means the date | 
				
			||||
on which You Submit a Contribution to Us. | 
				
			||||
 | 
				
			||||
**«Effective Date»** means the date You execute this Agreement | 
				
			||||
or the date You first Submit a Contribution to Us, | 
				
			||||
whichever is earlier. | 
				
			||||
 | 
				
			||||
**«Media»** means any portion of a Contribution which is not software. | 
				
			||||
 | 
				
			||||
## 2. Grant of Rights | 
				
			||||
 | 
				
			||||
### 2.1. Copyright License | 
				
			||||
 | 
				
			||||
(a) You retain ownership of the Copyright in Your Contribution | 
				
			||||
and have the same rights to use or license the Contribution | 
				
			||||
which You would have had without entering into the Agreement. | 
				
			||||
 | 
				
			||||
(b) To the maximum extent permitted by the relevant law, | 
				
			||||
You grant to Us a perpetual, worldwide, non-exclusive, | 
				
			||||
transferable, royalty-free, irrevocable license | 
				
			||||
under the Copyright covering the Contribution, | 
				
			||||
with the right to sublicense | 
				
			||||
such rights through multiple tiers of sublicensees, | 
				
			||||
to reproduce, modify, display, perform and distribute | 
				
			||||
the Contribution as part of the Material; | 
				
			||||
provided that this license is conditioned upon compliance with Section 2.3. | 
				
			||||
 | 
				
			||||
### 2.2. Patent License | 
				
			||||
 | 
				
			||||
For patent claims including, without limitation, | 
				
			||||
method, process, and apparatus claims | 
				
			||||
which You own, control or have the right to grant, now or in the future, | 
				
			||||
You grant to Us a perpetual, worldwide, non-exclusive, | 
				
			||||
transferable, royalty-free, irrevocable patent license, | 
				
			||||
with the right to sublicense these rights to multiple tiers of sublicensees, | 
				
			||||
to make, have made, use, sell, offer for sale, import | 
				
			||||
and otherwise transfer the Contribution | 
				
			||||
and the Contribution in combination with the Material | 
				
			||||
(and portions of such combination). | 
				
			||||
This license is granted only to the extent | 
				
			||||
that the exercise of the licensed rights infringes such patent claims; | 
				
			||||
and provided that this license is conditioned upon compliance with Section 2.3. | 
				
			||||
 | 
				
			||||
### 2.3. Outbound License | 
				
			||||
 | 
				
			||||
Based on the grant of rights in Sections 2.1 and 2.2, | 
				
			||||
if We include Your Contribution in a Material, | 
				
			||||
We may license the Contribution under any license, | 
				
			||||
including copyleft, permissive, commercial, or proprietary licenses. | 
				
			||||
As a condition on the exercise of this right, | 
				
			||||
We agree to also license the Contribution | 
				
			||||
under the terms of the license or licenses | 
				
			||||
which We are using for the Material on the Submission Date. | 
				
			||||
 | 
				
			||||
### 2.4. Our Rights | 
				
			||||
 | 
				
			||||
You acknowledge that We are not obligated | 
				
			||||
to use Your Contribution as part of the Material | 
				
			||||
and may decide to include any Contribution We consider appropriate. | 
				
			||||
 | 
				
			||||
## 3. Agreement | 
				
			||||
 | 
				
			||||
You confirm that: | 
				
			||||
 | 
				
			||||
(a) You have the legal authority to enter into this Agreement. | 
				
			||||
 | 
				
			||||
(b) You own the Copyright and patent claims | 
				
			||||
covering the Contribution which are required | 
				
			||||
to grant the rights under Section 2. | 
				
			||||
 | 
				
			||||
(c) The grant of rights under Section 2 | 
				
			||||
does not violate any grant of rights | 
				
			||||
which You have made to third parties, including Your employer. | 
				
			||||
If You are an employee, | 
				
			||||
You have had Your employer approve this Agreement | 
				
			||||
or sign the Entity version of this document. | 
				
			||||
If You are less than eighteen years old, | 
				
			||||
please have Your parents or guardian sign the Agreement. | 
				
			||||
 | 
				
			||||
## 4. Disclaimer | 
				
			||||
 | 
				
			||||
EXCEPT FOR THE EXPRESS WARRANTIES IN SECTION 3, | 
				
			||||
THE CONTRIBUTION IS PROVIDED «AS IS». | 
				
			||||
MORE PARTICULARLY, ALL EXPRESS OR IMPLIED WARRANTIES | 
				
			||||
INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTY OF MERCHANTABILITY, | 
				
			||||
FITNESS FOR A PARTICULAR PURPOSE | 
				
			||||
AND NON-INFRINGEMENT ARE EXPRESSLY DISCLAIMED BY YOU TO US. | 
				
			||||
TO THE EXTENT THAT ANY SUCH WARRANTIES CANNOT BE DISCLAIMED, | 
				
			||||
SUCH WARRANTY IS LIMITED IN DURATION TO THE MINIMUM PERIOD PERMITTED BY LAW. | 
				
			||||
 | 
				
			||||
## 5. Miscellaneous | 
				
			||||
 | 
				
			||||
5.1. This Agreement will be governed by and construed | 
				
			||||
in accordance with the laws of Russian Federation. | 
				
			||||
 | 
				
			||||
5.2. This Agreement sets out the entire agreement between You | 
				
			||||
and Us for Your Contributions to Us | 
				
			||||
and overrides all other agreements or understandings. | 
				
			||||
 | 
				
			||||
5.3. If You or We assign the rights or obligations | 
				
			||||
received through this Agreement to a third party, | 
				
			||||
as a condition of the assignment, | 
				
			||||
that third party must agree in writing | 
				
			||||
to abide by all the rights and obligations in the Agreement. | 
				
			||||
 | 
				
			||||
5.4. The failure of either party to require performance | 
				
			||||
by the other party of any provision of this Agreement in one situation | 
				
			||||
shall not affect the right of a party | 
				
			||||
to require such performance at any time in the future. | 
				
			||||
A waiver of performance under a provision in one situation | 
				
			||||
shall not be considered a waiver of the performance | 
				
			||||
of the provision in the future or a waiver of the provision in its entirety. | 
				
			||||
 | 
				
			||||
5.5. If any provision of this Agreement is found void and unenforceable, | 
				
			||||
such provision will be replaced to the extent possible with a provision | 
				
			||||
that comes closest to the meaning of the original provision | 
				
			||||
and which is enforceable. | 
				
			||||
The terms and conditions set forth in this Agreement | 
				
			||||
shall apply notwithstanding any failure of essential purpose | 
				
			||||
of this Agreement or any limited remedy | 
				
			||||
to the maximum extent possible under law. | 
				
			||||
@ -0,0 +1,30 @@
					 | 
				
			||||
# The 3-Clause BSD License | 
				
			||||
 | 
				
			||||
_Copyright (C) 2022 ru.auroraos_ | 
				
			||||
 | 
				
			||||
Redistribution and use in source and binary forms, | 
				
			||||
with or without modification, | 
				
			||||
are permitted provided that the following conditions are met: | 
				
			||||
 | 
				
			||||
1. Redistributions of source code must retain | 
				
			||||
   the above copyright notice, this list of conditions and the following disclaimer. | 
				
			||||
2. Redistributions in binary form must reproduce | 
				
			||||
   the above copyright notice, this list of conditions and the following disclaimer | 
				
			||||
   in the documentation and/or other materials provided with the distribution. | 
				
			||||
3. Neither the name of the copyright holder nor the names of its contributors | 
				
			||||
   may be used to endorse or promote products derived from this software | 
				
			||||
   without specific prior written permission. | 
				
			||||
 | 
				
			||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" | 
				
			||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, | 
				
			||||
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS | 
				
			||||
FOR A PARTICULAR PURPOSE ARE DISCLAIMED. | 
				
			||||
IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE | 
				
			||||
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES | 
				
			||||
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | 
				
			||||
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | 
				
			||||
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, | 
				
			||||
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | 
				
			||||
(INCLUDING NEGLIGENCE OR OTHERWISE) | 
				
			||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, | 
				
			||||
EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 
				
			||||
@ -0,0 +1,5 @@
					 | 
				
			||||
# Flutter Packages Aurora OS | 
				
			||||
 | 
				
			||||
This repo is a companion repo to the main flutter repo.  | 
				
			||||
It contains the source code for Aurora Flutter's packages (i.e., packages developed by the Aurora team).  | 
				
			||||
Check the packages directory to see all packages. | 
				
			||||
@ -0,0 +1,31 @@
					 | 
				
			||||
# Miscellaneous | 
				
			||||
*.class | 
				
			||||
*.log | 
				
			||||
*.pyc | 
				
			||||
*.swp | 
				
			||||
.DS_Store | 
				
			||||
.atom/ | 
				
			||||
.buildlog/ | 
				
			||||
.history | 
				
			||||
.svn/ | 
				
			||||
migrate_working_dir/ | 
				
			||||
 | 
				
			||||
# IntelliJ related | 
				
			||||
*.iml | 
				
			||||
*.ipr | 
				
			||||
*.iws | 
				
			||||
.idea/ | 
				
			||||
 | 
				
			||||
# The .vscode folder contains launch configuration and tasks you configure in | 
				
			||||
# VS Code which you may wish to be included in version control, so this line | 
				
			||||
# is commented out by default. | 
				
			||||
#.vscode/ | 
				
			||||
 | 
				
			||||
# Flutter/Dart/Pub related | 
				
			||||
# Libraries should not include pubspec.lock, per https://dart.dev/guides/libraries/private-files#pubspeclock. | 
				
			||||
/pubspec.lock | 
				
			||||
**/doc/api/ | 
				
			||||
.dart_tool/ | 
				
			||||
.packages | 
				
			||||
build/ | 
				
			||||
/.metadata | 
				
			||||
@ -0,0 +1,17 @@
					 | 
				
			||||
# xdga_directories | 
				
			||||
 | 
				
			||||
A Dart package for reading directory path on Aurora OS. | 
				
			||||
 | 
				
			||||
To use this package, the basic XDG values for the following are available via a Dart API: | 
				
			||||
 | 
				
			||||
- `getCacheLocation` - User cache folder | 
				
			||||
- `getDocumentsLocation` - Documents of the user | 
				
			||||
- `getDownloadLocation` - User downloads | 
				
			||||
- `getMusicLocation` - Music and other audio files of the user | 
				
			||||
- `getPicturesLocation` - Photos and other images of the user | 
				
			||||
- `getGenericDataLocation` - General user application data | 
				
			||||
- `getMoviesLocation` - Movies and other user videos | 
				
			||||
 | 
				
			||||
### Preview | 
				
			||||
 | 
				
			||||
 | 
				
			||||
@ -0,0 +1,4 @@
					 | 
				
			||||
include: package:flutter_lints/flutter.yaml | 
				
			||||
 | 
				
			||||
# Additional information about this file can be found at | 
				
			||||
# https://dart.dev/guides/language/analysis-options | 
				
			||||
@ -0,0 +1,12 @@
					 | 
				
			||||
cmake_minimum_required(VERSION 3.10) | 
				
			||||
 | 
				
			||||
set(PLUGIN_NAME xdga_directories) | 
				
			||||
project(${PLUGIN_NAME} LANGUAGES CXX) | 
				
			||||
 | 
				
			||||
set(CMAKE_CXX_STANDARD 17) | 
				
			||||
set(CMAKE_CXX_STANDARD_REQUIRED ON) | 
				
			||||
 | 
				
			||||
set(CMAKE_CXX_FLAGS "-Wall -Wextra") | 
				
			||||
set(CMAKE_CXX_FLAGS_RELEASE "-O3") | 
				
			||||
 | 
				
			||||
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../src ${CMAKE_CURRENT_BINARY_DIR}/shared) | 
				
			||||
| 
		 After Width: | Height: | Size: 143 KiB  | 
@ -0,0 +1,44 @@
					 | 
				
			||||
# Miscellaneous | 
				
			||||
*.class | 
				
			||||
*.log | 
				
			||||
*.pyc | 
				
			||||
*.swp | 
				
			||||
.DS_Store | 
				
			||||
.atom/ | 
				
			||||
.buildlog/ | 
				
			||||
.history | 
				
			||||
.svn/ | 
				
			||||
migrate_working_dir/ | 
				
			||||
 | 
				
			||||
# IntelliJ related | 
				
			||||
*.iml | 
				
			||||
*.ipr | 
				
			||||
*.iws | 
				
			||||
.idea/ | 
				
			||||
 | 
				
			||||
# The .vscode folder contains launch configuration and tasks you configure in | 
				
			||||
# VS Code which you may wish to be included in version control, so this line | 
				
			||||
# is commented out by default. | 
				
			||||
#.vscode/ | 
				
			||||
 | 
				
			||||
# Flutter/Dart/Pub related | 
				
			||||
**/doc/api/ | 
				
			||||
**/ios/Flutter/.last_build_id | 
				
			||||
.dart_tool/ | 
				
			||||
.flutter-plugins | 
				
			||||
.flutter-plugins-dependencies | 
				
			||||
.packages | 
				
			||||
.pub-cache/ | 
				
			||||
.pub/ | 
				
			||||
/build/ | 
				
			||||
 | 
				
			||||
# Symbolication related | 
				
			||||
app.*.symbols | 
				
			||||
 | 
				
			||||
# Obfuscation related | 
				
			||||
app.*.map.json | 
				
			||||
 | 
				
			||||
# Android Studio will place build artifacts here | 
				
			||||
/android/app/debug | 
				
			||||
/android/app/profile | 
				
			||||
/android/app/release | 
				
			||||
@ -0,0 +1,16 @@
					 | 
				
			||||
# xdga_directories_example | 
				
			||||
 | 
				
			||||
Demonstrates how to use the xdga_directories plugin. | 
				
			||||
 | 
				
			||||
## Getting Started | 
				
			||||
 | 
				
			||||
This project is a starting point for a Flutter application. | 
				
			||||
 | 
				
			||||
A few resources to get you started if this is your first Flutter project: | 
				
			||||
 | 
				
			||||
- [Lab: Write your first Flutter app](https://docs.flutter.dev/get-started/codelab) | 
				
			||||
- [Cookbook: Useful Flutter samples](https://docs.flutter.dev/cookbook) | 
				
			||||
 | 
				
			||||
For help getting started with Flutter development, view the | 
				
			||||
[online documentation](https://docs.flutter.dev/), which offers tutorials, | 
				
			||||
samples, guidance on mobile development, and a full API reference. | 
				
			||||
@ -0,0 +1,29 @@
					 | 
				
			||||
# This file configures the analyzer, which statically analyzes Dart code to | 
				
			||||
# check for errors, warnings, and lints. | 
				
			||||
# | 
				
			||||
# The issues identified by the analyzer are surfaced in the UI of Dart-enabled | 
				
			||||
# IDEs (https://dart.dev/tools#ides-and-editors). The analyzer can also be | 
				
			||||
# invoked from the command line by running `flutter analyze`. | 
				
			||||
 | 
				
			||||
# The following line activates a set of recommended lints for Flutter apps, | 
				
			||||
# packages, and plugins designed to encourage good coding practices. | 
				
			||||
include: package:flutter_lints/flutter.yaml | 
				
			||||
 | 
				
			||||
linter: | 
				
			||||
  # The lint rules applied to this project can be customized in the | 
				
			||||
  # section below to disable rules from the `package:flutter_lints/flutter.yaml` | 
				
			||||
  # included above or to enable additional rules. A list of all available lints | 
				
			||||
  # and their documentation is published at | 
				
			||||
  # https://dart-lang.github.io/linter/lints/index.html. | 
				
			||||
  # | 
				
			||||
  # Instead of disabling a lint rule for the entire project in the | 
				
			||||
  # section below, it can also be suppressed for a single line of code | 
				
			||||
  # or a specific dart file by using the `// ignore: name_of_lint` and | 
				
			||||
  # `// ignore_for_file: name_of_lint` syntax on the line or in the file | 
				
			||||
  # producing the lint. | 
				
			||||
  rules: | 
				
			||||
    # avoid_print: false  # Uncomment to disable the `avoid_print` rule | 
				
			||||
    # prefer_single_quotes: true  # Uncomment to enable the `prefer_single_quotes` rule | 
				
			||||
 | 
				
			||||
# Additional information about this file can be found at | 
				
			||||
# https://dart.dev/guides/language/analysis-options | 
				
			||||
@ -0,0 +1 @@
					 | 
				
			||||
flutter/ephemeral | 
				
			||||
@ -0,0 +1,48 @@
					 | 
				
			||||
cmake_minimum_required(VERSION 3.10) | 
				
			||||
project(com.example.xdga_directories_example LANGUAGES CXX) | 
				
			||||
 | 
				
			||||
include(GNUInstallDirs) | 
				
			||||
 | 
				
			||||
set(BINARY_NAME ${CMAKE_PROJECT_NAME}) | 
				
			||||
set(FLUTTER_DIR ${CMAKE_CURRENT_SOURCE_DIR}/flutter) | 
				
			||||
 | 
				
			||||
set(CMAKE_CXX_STANDARD 17) | 
				
			||||
set(CMAKE_CXX_STANDARD_REQUIRED ON) | 
				
			||||
 | 
				
			||||
set(CMAKE_CXX_FLAGS "-Wall -Wextra") | 
				
			||||
set(CMAKE_CXX_FLAGS_RELEASE "-O3") | 
				
			||||
 | 
				
			||||
set(CMAKE_SKIP_RPATH OFF) | 
				
			||||
set(CMAKE_INSTALL_RPATH "\$ORIGIN/../share/${BINARY_NAME}/lib") | 
				
			||||
 | 
				
			||||
find_package(PkgConfig REQUIRED) | 
				
			||||
find_package(Qt5 COMPONENTS Core REQUIRED) | 
				
			||||
pkg_check_modules(FlutterEmbedder REQUIRED IMPORTED_TARGET flutter-embedder) | 
				
			||||
 | 
				
			||||
add_executable(${BINARY_NAME} main.cpp ${FLUTTER_DIR}/generated_plugin_registrant.cpp) | 
				
			||||
target_link_libraries(${BINARY_NAME} PRIVATE PkgConfig::FlutterEmbedder Qt5::Core) | 
				
			||||
target_include_directories(${BINARY_NAME} PRIVATE ${FLUTTER_DIR}) | 
				
			||||
 | 
				
			||||
include(flutter/generated_plugins.cmake) | 
				
			||||
 | 
				
			||||
set(PACKAGE_INSTALL_DIR    ${CMAKE_INSTALL_DATADIR}/${BINARY_NAME}) | 
				
			||||
set(DESKTOP_INSTALL_DIR    ${CMAKE_INSTALL_DATADIR}/applications) | 
				
			||||
set(ICONS_INSTALL_ROOT_DIR ${CMAKE_INSTALL_DATADIR}/icons/hicolor) | 
				
			||||
 | 
				
			||||
add_custom_command(TARGET ${BINARY_NAME} POST_BUILD | 
				
			||||
                   COMMAND ${CMAKE_COMMAND} -E copy | 
				
			||||
                   ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/libflutter-embedder.so | 
				
			||||
                   ${PROJECT_BINARY_DIR}/bundle/lib/libflutter-embedder.so) | 
				
			||||
 | 
				
			||||
install(FILES     ${PROJECT_BINARY_DIR}/bundle/icudtl.dat     DESTINATION ${PACKAGE_INSTALL_DIR}) | 
				
			||||
install(DIRECTORY ${PROJECT_BINARY_DIR}/bundle/flutter_assets DESTINATION ${PACKAGE_INSTALL_DIR}) | 
				
			||||
install(DIRECTORY ${PROJECT_BINARY_DIR}/bundle/lib            DESTINATION ${PACKAGE_INSTALL_DIR}) | 
				
			||||
 | 
				
			||||
install(TARGETS ${BINARY_NAME} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) | 
				
			||||
install(FILES desktop/${BINARY_NAME}.desktop DESTINATION ${DESKTOP_INSTALL_DIR}) | 
				
			||||
 | 
				
			||||
foreach(ICONS_SIZE 86x86 108x108 128x128 172x172) | 
				
			||||
    install(FILES icons/${ICONS_SIZE}.png | 
				
			||||
            RENAME ${BINARY_NAME}.png | 
				
			||||
            DESTINATION ${ICONS_INSTALL_ROOT_DIR}/${ICONS_SIZE}/apps/) | 
				
			||||
endforeach(ICONS_SIZE) | 
				
			||||
@ -0,0 +1,12 @@
					 | 
				
			||||
[Desktop Entry] | 
				
			||||
Type=Application | 
				
			||||
Name=xdga_directories_example | 
				
			||||
Comment=Demonstrates how to use the xdga_directories plugin. | 
				
			||||
Icon=com.example.xdga_directories_example | 
				
			||||
Exec=/usr/bin/com.example.xdga_directories_example | 
				
			||||
X-Nemo-Application-Type=silica-qt5 | 
				
			||||
 | 
				
			||||
[X-Application] | 
				
			||||
Permissions= | 
				
			||||
OrganizationName=com.example | 
				
			||||
ApplicationName=xdga_directories_example | 
				
			||||
@ -0,0 +1,14 @@
					 | 
				
			||||
//
 | 
				
			||||
//  Generated file. Do not edit.
 | 
				
			||||
//
 | 
				
			||||
 | 
				
			||||
// clang-format off
 | 
				
			||||
 | 
				
			||||
#include <flutter/application.h> | 
				
			||||
 | 
				
			||||
#include "generated_plugin_registrant.h" | 
				
			||||
 | 
				
			||||
void RegisterPlugins() { | 
				
			||||
    Application::RegisterPlugins({ | 
				
			||||
    }); | 
				
			||||
} | 
				
			||||
@ -0,0 +1,12 @@
					 | 
				
			||||
//
 | 
				
			||||
//  Generated file. Do not edit.
 | 
				
			||||
//
 | 
				
			||||
 | 
				
			||||
// clang-format off
 | 
				
			||||
 | 
				
			||||
#ifndef GENERATED_PLUGIN_REGISTRANT | 
				
			||||
#define GENERATED_PLUGIN_REGISTRANT | 
				
			||||
 | 
				
			||||
void RegisterPlugins(); | 
				
			||||
 | 
				
			||||
#endif /* GENERATED_PLUGIN_REGISTRANT */ | 
				
			||||
@ -0,0 +1,31 @@
					 | 
				
			||||
# | 
				
			||||
# Generated file, do not edit. | 
				
			||||
# | 
				
			||||
set(ROOT_PROJECT_BINARY_DIR "${PROJECT_BINARY_DIR}") | 
				
			||||
 | 
				
			||||
function(add_library TARGET) | 
				
			||||
    _add_library(${TARGET} ${ARGN}) | 
				
			||||
 | 
				
			||||
    if(NOT "${TARGET}" MATCHES "^PkgConfig::.*") | 
				
			||||
      add_custom_command(TARGET ${TARGET} POST_BUILD | 
				
			||||
                        COMMAND ${CMAKE_COMMAND} -E copy | 
				
			||||
                        "$<TARGET_FILE:${TARGET}>" | 
				
			||||
                        "${ROOT_PROJECT_BINARY_DIR}/bundle/lib/$<TARGET_FILE_NAME:${TARGET}>") | 
				
			||||
    endif(NOT "${TARGET}" MATCHES "^PkgConfig::.*") | 
				
			||||
endfunction() | 
				
			||||
 | 
				
			||||
list(APPEND FLUTTER_PLATFORM_PLUGIN_LIST | 
				
			||||
) | 
				
			||||
 | 
				
			||||
list(APPEND FLUTTER_FFI_PLUGIN_LIST | 
				
			||||
    xdga_directories | 
				
			||||
) | 
				
			||||
 | 
				
			||||
foreach(PLUGIN ${FLUTTER_PLATFORM_PLUGIN_LIST}) | 
				
			||||
    add_subdirectory(flutter/ephemeral/.plugin_symlinks/${PLUGIN}/aurora plugins/${PLUGIN}) | 
				
			||||
    target_link_libraries(${BINARY_NAME} PRIVATE ${PLUGIN}_platform_plugin) | 
				
			||||
endforeach(PLUGIN) | 
				
			||||
 | 
				
			||||
foreach(FFI_PLUGIN ${FLUTTER_FFI_PLUGIN_LIST}) | 
				
			||||
    add_subdirectory(flutter/ephemeral/.plugin_symlinks/${FFI_PLUGIN}/aurora plugins/${FFI_PLUGIN}) | 
				
			||||
endforeach(FFI_PLUGIN) | 
				
			||||
| 
		 After Width: | Height: | Size: 9.7 KiB  | 
| 
		 After Width: | Height: | Size: 13 KiB  | 
| 
		 After Width: | Height: | Size: 23 KiB  | 
| 
		 After Width: | Height: | Size: 6.5 KiB  | 
@ -0,0 +1,10 @@
					 | 
				
			||||
#include <flutter/application.h> | 
				
			||||
#include "generated_plugin_registrant.h" | 
				
			||||
 | 
				
			||||
int main(int argc, char *argv[]) { | 
				
			||||
    Application::Initialize(argc, argv); | 
				
			||||
    Application::SetPixelRatio(1.8); | 
				
			||||
    RegisterPlugins(); | 
				
			||||
    Application::Launch(); | 
				
			||||
    return 0; | 
				
			||||
} | 
				
			||||
@ -0,0 +1,31 @@
					 | 
				
			||||
%global __provides_exclude_from ^%{_datadir}/%{name}/lib/.*$ | 
				
			||||
%global __requires_exclude ^lib(dconf|flutter-embedder|maliit-glib|.+_platform_plugin)\\.so.*$ | 
				
			||||
 | 
				
			||||
Name: com.example.xdga_directories_example | 
				
			||||
Summary: Demonstrates how to use the xdga_directories plugin. | 
				
			||||
Version: 0.1.0 | 
				
			||||
Release: 1 | 
				
			||||
License: Proprietary | 
				
			||||
Source0: %{name}-%{version}.tar.bz2 | 
				
			||||
 | 
				
			||||
BuildRequires: cmake | 
				
			||||
BuildRequires: pkgconfig(flutter-embedder) | 
				
			||||
 | 
				
			||||
%description | 
				
			||||
%{summary}. | 
				
			||||
 | 
				
			||||
%prep | 
				
			||||
%autosetup | 
				
			||||
 | 
				
			||||
%build | 
				
			||||
%cmake -DCMAKE_BUILD_TYPE=%{_flutter_build_type} | 
				
			||||
%make_build | 
				
			||||
 | 
				
			||||
%install | 
				
			||||
%make_install | 
				
			||||
 | 
				
			||||
%files | 
				
			||||
%{_bindir}/%{name} | 
				
			||||
%{_datadir}/%{name}/* | 
				
			||||
%{_datadir}/applications/%{name}.desktop | 
				
			||||
%{_datadir}/icons/hicolor/*/apps/%{name}.png | 
				
			||||
@ -0,0 +1,158 @@
					 | 
				
			||||
import 'package:flutter/material.dart'; | 
				
			||||
import 'package:xdga_directories/xdga_directories.dart' as xdga_directories; | 
				
			||||
 | 
				
			||||
void main() { | 
				
			||||
  runApp(const MyApp()); | 
				
			||||
} | 
				
			||||
 | 
				
			||||
class MyApp extends StatefulWidget { | 
				
			||||
  const MyApp({super.key}); | 
				
			||||
 | 
				
			||||
  @override | 
				
			||||
  _MyAppState createState() => _MyAppState(); | 
				
			||||
} | 
				
			||||
 | 
				
			||||
class _MyAppState extends State<MyApp> { | 
				
			||||
  late String cacheLocation; | 
				
			||||
  late String documentsLocation; | 
				
			||||
  late String downloadLocation; | 
				
			||||
  late String musicLocation; | 
				
			||||
  late String picturesLocation; | 
				
			||||
  late String genericDataLocation; | 
				
			||||
  late String moviesLocation; | 
				
			||||
 | 
				
			||||
  @override | 
				
			||||
  void initState() { | 
				
			||||
    super.initState(); | 
				
			||||
    cacheLocation = xdga_directories.getCacheLocation(); | 
				
			||||
    documentsLocation = xdga_directories.getDocumentsLocation(); | 
				
			||||
    downloadLocation = xdga_directories.getDownloadLocation(); | 
				
			||||
    musicLocation = xdga_directories.getMusicLocation(); | 
				
			||||
    picturesLocation = xdga_directories.getPicturesLocation(); | 
				
			||||
    genericDataLocation = xdga_directories.getGenericDataLocation(); | 
				
			||||
    moviesLocation = xdga_directories.getMoviesLocation(); | 
				
			||||
  } | 
				
			||||
 | 
				
			||||
  @override | 
				
			||||
  Widget build(BuildContext context) { | 
				
			||||
    const textStyleNormal = TextStyle(fontSize: 20); | 
				
			||||
    final textStyleSmall = const TextStyle(fontSize: 18).copyWith(color: Colors.black54); | 
				
			||||
 | 
				
			||||
    const spacerNormal = SizedBox(height: 16); | 
				
			||||
    const spacerSmall = SizedBox(height: 8); | 
				
			||||
 | 
				
			||||
    return MaterialApp( | 
				
			||||
      home: Scaffold( | 
				
			||||
        appBar: AppBar( | 
				
			||||
          title: const Text('Native Packages'), | 
				
			||||
        ), | 
				
			||||
        body: SingleChildScrollView( | 
				
			||||
          child: Container( | 
				
			||||
            padding: const EdgeInsets.all(10), | 
				
			||||
            child: Column( | 
				
			||||
              children: [ | 
				
			||||
                Container( | 
				
			||||
                  decoration: const BoxDecoration( | 
				
			||||
                      color: Colors.green, | 
				
			||||
                      borderRadius: BorderRadius.all(Radius.circular(10.0))), | 
				
			||||
                  child: Padding( | 
				
			||||
                    padding: const EdgeInsets.all(20), | 
				
			||||
                    child: Text( | 
				
			||||
                      'A Dart package for reading directory path on Aurora OS.', | 
				
			||||
                      style: textStyleNormal.copyWith(color: Colors.white), | 
				
			||||
                      textAlign: TextAlign.center, | 
				
			||||
                    ), | 
				
			||||
                  ), | 
				
			||||
                ), | 
				
			||||
                const SizedBox(height: 30), | 
				
			||||
                const Text( | 
				
			||||
                  'getCacheLocation()', | 
				
			||||
                  style: textStyleNormal, | 
				
			||||
                  textAlign: TextAlign.center, | 
				
			||||
                ), | 
				
			||||
                spacerSmall, | 
				
			||||
                Text( | 
				
			||||
                  cacheLocation, | 
				
			||||
                  style: textStyleSmall, | 
				
			||||
                  textAlign: TextAlign.center, | 
				
			||||
                ), | 
				
			||||
                spacerNormal, | 
				
			||||
                const Text( | 
				
			||||
                  'getDocumentsLocation()', | 
				
			||||
                  style: textStyleNormal, | 
				
			||||
                  textAlign: TextAlign.center, | 
				
			||||
                ), | 
				
			||||
                spacerSmall, | 
				
			||||
                Text( | 
				
			||||
                  documentsLocation, | 
				
			||||
                  style: textStyleSmall, | 
				
			||||
                  textAlign: TextAlign.center, | 
				
			||||
                ), | 
				
			||||
                spacerNormal, | 
				
			||||
                const Text( | 
				
			||||
                  'getDownloadLocation()', | 
				
			||||
                  style: textStyleNormal, | 
				
			||||
                  textAlign: TextAlign.center, | 
				
			||||
                ), | 
				
			||||
                spacerSmall, | 
				
			||||
                Text( | 
				
			||||
                  downloadLocation, | 
				
			||||
                  style: textStyleSmall, | 
				
			||||
                  textAlign: TextAlign.center, | 
				
			||||
                ), | 
				
			||||
                spacerNormal, | 
				
			||||
                const Text( | 
				
			||||
                  'getMusicLocation()', | 
				
			||||
                  style: textStyleNormal, | 
				
			||||
                  textAlign: TextAlign.center, | 
				
			||||
                ), | 
				
			||||
                spacerSmall, | 
				
			||||
                Text( | 
				
			||||
                  musicLocation, | 
				
			||||
                  style: textStyleSmall, | 
				
			||||
                  textAlign: TextAlign.center, | 
				
			||||
                ), | 
				
			||||
                spacerNormal, | 
				
			||||
                const Text( | 
				
			||||
                  'getPicturesLocation()', | 
				
			||||
                  style: textStyleNormal, | 
				
			||||
                  textAlign: TextAlign.center, | 
				
			||||
                ), | 
				
			||||
                spacerSmall, | 
				
			||||
                Text( | 
				
			||||
                  picturesLocation, | 
				
			||||
                  style: textStyleSmall, | 
				
			||||
                  textAlign: TextAlign.center, | 
				
			||||
                ), | 
				
			||||
                spacerNormal, | 
				
			||||
                const Text( | 
				
			||||
                  'getGenericDataLocation()', | 
				
			||||
                  style: textStyleNormal, | 
				
			||||
                  textAlign: TextAlign.center, | 
				
			||||
                ), | 
				
			||||
                spacerSmall, | 
				
			||||
                Text( | 
				
			||||
                  genericDataLocation, | 
				
			||||
                  style: textStyleSmall, | 
				
			||||
                  textAlign: TextAlign.center, | 
				
			||||
                ), | 
				
			||||
                spacerNormal, | 
				
			||||
                const Text( | 
				
			||||
                  'getMoviesLocation()', | 
				
			||||
                  style: textStyleNormal, | 
				
			||||
                  textAlign: TextAlign.center, | 
				
			||||
                ), | 
				
			||||
                spacerSmall, | 
				
			||||
                Text( | 
				
			||||
                  moviesLocation, | 
				
			||||
                  style: textStyleSmall, | 
				
			||||
                  textAlign: TextAlign.center, | 
				
			||||
                ), | 
				
			||||
              ], | 
				
			||||
            ), | 
				
			||||
          ), | 
				
			||||
        ), | 
				
			||||
      ), | 
				
			||||
    ); | 
				
			||||
  } | 
				
			||||
} | 
				
			||||
@ -0,0 +1,182 @@
					 | 
				
			||||
# Generated by pub | 
				
			||||
# See https://dart.dev/tools/pub/glossary#lockfile | 
				
			||||
packages: | 
				
			||||
  async: | 
				
			||||
    dependency: transitive | 
				
			||||
    description: | 
				
			||||
      name: async | 
				
			||||
      url: "https://pub.dartlang.org" | 
				
			||||
    source: hosted | 
				
			||||
    version: "2.9.0" | 
				
			||||
  boolean_selector: | 
				
			||||
    dependency: transitive | 
				
			||||
    description: | 
				
			||||
      name: boolean_selector | 
				
			||||
      url: "https://pub.dartlang.org" | 
				
			||||
    source: hosted | 
				
			||||
    version: "2.1.0" | 
				
			||||
  characters: | 
				
			||||
    dependency: transitive | 
				
			||||
    description: | 
				
			||||
      name: characters | 
				
			||||
      url: "https://pub.dartlang.org" | 
				
			||||
    source: hosted | 
				
			||||
    version: "1.2.1" | 
				
			||||
  clock: | 
				
			||||
    dependency: transitive | 
				
			||||
    description: | 
				
			||||
      name: clock | 
				
			||||
      url: "https://pub.dartlang.org" | 
				
			||||
    source: hosted | 
				
			||||
    version: "1.1.1" | 
				
			||||
  collection: | 
				
			||||
    dependency: transitive | 
				
			||||
    description: | 
				
			||||
      name: collection | 
				
			||||
      url: "https://pub.dartlang.org" | 
				
			||||
    source: hosted | 
				
			||||
    version: "1.16.0" | 
				
			||||
  cupertino_icons: | 
				
			||||
    dependency: "direct main" | 
				
			||||
    description: | 
				
			||||
      name: cupertino_icons | 
				
			||||
      url: "https://pub.dartlang.org" | 
				
			||||
    source: hosted | 
				
			||||
    version: "1.0.5" | 
				
			||||
  fake_async: | 
				
			||||
    dependency: transitive | 
				
			||||
    description: | 
				
			||||
      name: fake_async | 
				
			||||
      url: "https://pub.dartlang.org" | 
				
			||||
    source: hosted | 
				
			||||
    version: "1.3.1" | 
				
			||||
  ffi: | 
				
			||||
    dependency: transitive | 
				
			||||
    description: | 
				
			||||
      name: ffi | 
				
			||||
      url: "https://pub.dartlang.org" | 
				
			||||
    source: hosted | 
				
			||||
    version: "1.2.1" | 
				
			||||
  flutter: | 
				
			||||
    dependency: "direct main" | 
				
			||||
    description: flutter | 
				
			||||
    source: sdk | 
				
			||||
    version: "0.0.0" | 
				
			||||
  flutter_lints: | 
				
			||||
    dependency: "direct dev" | 
				
			||||
    description: | 
				
			||||
      name: flutter_lints | 
				
			||||
      url: "https://pub.dartlang.org" | 
				
			||||
    source: hosted | 
				
			||||
    version: "2.0.1" | 
				
			||||
  flutter_test: | 
				
			||||
    dependency: "direct dev" | 
				
			||||
    description: flutter | 
				
			||||
    source: sdk | 
				
			||||
    version: "0.0.0" | 
				
			||||
  lints: | 
				
			||||
    dependency: transitive | 
				
			||||
    description: | 
				
			||||
      name: lints | 
				
			||||
      url: "https://pub.dartlang.org" | 
				
			||||
    source: hosted | 
				
			||||
    version: "2.0.1" | 
				
			||||
  matcher: | 
				
			||||
    dependency: transitive | 
				
			||||
    description: | 
				
			||||
      name: matcher | 
				
			||||
      url: "https://pub.dartlang.org" | 
				
			||||
    source: hosted | 
				
			||||
    version: "0.12.12" | 
				
			||||
  material_color_utilities: | 
				
			||||
    dependency: transitive | 
				
			||||
    description: | 
				
			||||
      name: material_color_utilities | 
				
			||||
      url: "https://pub.dartlang.org" | 
				
			||||
    source: hosted | 
				
			||||
    version: "0.1.5" | 
				
			||||
  meta: | 
				
			||||
    dependency: transitive | 
				
			||||
    description: | 
				
			||||
      name: meta | 
				
			||||
      url: "https://pub.dartlang.org" | 
				
			||||
    source: hosted | 
				
			||||
    version: "1.8.0" | 
				
			||||
  path: | 
				
			||||
    dependency: transitive | 
				
			||||
    description: | 
				
			||||
      name: path | 
				
			||||
      url: "https://pub.dartlang.org" | 
				
			||||
    source: hosted | 
				
			||||
    version: "1.8.2" | 
				
			||||
  plugin_platform_interface: | 
				
			||||
    dependency: transitive | 
				
			||||
    description: | 
				
			||||
      name: plugin_platform_interface | 
				
			||||
      url: "https://pub.dartlang.org" | 
				
			||||
    source: hosted | 
				
			||||
    version: "2.1.4" | 
				
			||||
  sky_engine: | 
				
			||||
    dependency: transitive | 
				
			||||
    description: flutter | 
				
			||||
    source: sdk | 
				
			||||
    version: "0.0.99" | 
				
			||||
  source_span: | 
				
			||||
    dependency: transitive | 
				
			||||
    description: | 
				
			||||
      name: source_span | 
				
			||||
      url: "https://pub.dartlang.org" | 
				
			||||
    source: hosted | 
				
			||||
    version: "1.9.0" | 
				
			||||
  stack_trace: | 
				
			||||
    dependency: transitive | 
				
			||||
    description: | 
				
			||||
      name: stack_trace | 
				
			||||
      url: "https://pub.dartlang.org" | 
				
			||||
    source: hosted | 
				
			||||
    version: "1.10.0" | 
				
			||||
  stream_channel: | 
				
			||||
    dependency: transitive | 
				
			||||
    description: | 
				
			||||
      name: stream_channel | 
				
			||||
      url: "https://pub.dartlang.org" | 
				
			||||
    source: hosted | 
				
			||||
    version: "2.1.0" | 
				
			||||
  string_scanner: | 
				
			||||
    dependency: transitive | 
				
			||||
    description: | 
				
			||||
      name: string_scanner | 
				
			||||
      url: "https://pub.dartlang.org" | 
				
			||||
    source: hosted | 
				
			||||
    version: "1.1.1" | 
				
			||||
  term_glyph: | 
				
			||||
    dependency: transitive | 
				
			||||
    description: | 
				
			||||
      name: term_glyph | 
				
			||||
      url: "https://pub.dartlang.org" | 
				
			||||
    source: hosted | 
				
			||||
    version: "1.2.1" | 
				
			||||
  test_api: | 
				
			||||
    dependency: transitive | 
				
			||||
    description: | 
				
			||||
      name: test_api | 
				
			||||
      url: "https://pub.dartlang.org" | 
				
			||||
    source: hosted | 
				
			||||
    version: "0.4.12" | 
				
			||||
  vector_math: | 
				
			||||
    dependency: transitive | 
				
			||||
    description: | 
				
			||||
      name: vector_math | 
				
			||||
      url: "https://pub.dartlang.org" | 
				
			||||
    source: hosted | 
				
			||||
    version: "2.1.2" | 
				
			||||
  xdga_directories: | 
				
			||||
    dependency: "direct main" | 
				
			||||
    description: | 
				
			||||
      path: ".." | 
				
			||||
      relative: true | 
				
			||||
    source: path | 
				
			||||
    version: "0.0.1" | 
				
			||||
sdks: | 
				
			||||
  dart: ">=2.18.6 <3.0.0" | 
				
			||||
  flutter: ">=2.11.0" | 
				
			||||
@ -0,0 +1,98 @@
					 | 
				
			||||
name: xdga_directories_example | 
				
			||||
description: Demonstrates how to use the xdga_directories plugin. | 
				
			||||
 | 
				
			||||
# The following line prevents the package from being accidentally published to | 
				
			||||
# pub.dev using `flutter pub publish`. This is preferred for private packages. | 
				
			||||
publish_to: 'none' # Remove this line if you wish to publish to pub.dev | 
				
			||||
 | 
				
			||||
# The following defines the version and build number for your application. | 
				
			||||
# A version number is three numbers separated by dots, like 1.2.43 | 
				
			||||
# followed by an optional build number separated by a +. | 
				
			||||
# Both the version and the builder number may be overridden in flutter | 
				
			||||
# build by specifying --build-name and --build-number, respectively. | 
				
			||||
# In Android, build-name is used as versionName while build-number used as versionCode. | 
				
			||||
# Read more about Android versioning at https://developer.android.com/studio/publish/versioning | 
				
			||||
# In iOS, build-name is used as CFBundleShortVersionString while build-number is used as CFBundleVersion. | 
				
			||||
# Read more about iOS versioning at | 
				
			||||
# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html | 
				
			||||
# In Windows, build-name is used as the major, minor, and patch parts | 
				
			||||
# of the product and file versions while build-number is used as the build suffix. | 
				
			||||
version: 1.0.0+1 | 
				
			||||
 | 
				
			||||
environment: | 
				
			||||
  sdk: '>=2.18.6 <3.0.0' | 
				
			||||
 | 
				
			||||
# Dependencies specify other packages that your package needs in order to work. | 
				
			||||
# To automatically upgrade your package dependencies to the latest versions | 
				
			||||
# consider running `flutter pub upgrade --major-versions`. Alternatively, | 
				
			||||
# dependencies can be manually updated by changing the version numbers below to | 
				
			||||
# the latest version available on pub.dev. To see which dependencies have newer | 
				
			||||
# versions available, run `flutter pub outdated`. | 
				
			||||
dependencies: | 
				
			||||
  flutter: | 
				
			||||
    sdk: flutter | 
				
			||||
 | 
				
			||||
  xdga_directories: | 
				
			||||
    # When depending on this package from a real application you should use: | 
				
			||||
    #   xdga_directories: ^x.y.z | 
				
			||||
    # See https://dart.dev/tools/pub/dependencies#version-constraints | 
				
			||||
    # The example app is bundled with the plugin so we use a path dependency on | 
				
			||||
    # the parent directory to use the current plugin's version. | 
				
			||||
    path: ../ | 
				
			||||
 | 
				
			||||
  # The following adds the Cupertino Icons font to your application. | 
				
			||||
  # Use with the CupertinoIcons class for iOS style icons. | 
				
			||||
  cupertino_icons: ^1.0.2 | 
				
			||||
 | 
				
			||||
dev_dependencies: | 
				
			||||
  flutter_test: | 
				
			||||
    sdk: flutter | 
				
			||||
 | 
				
			||||
  # The "flutter_lints" package below contains a set of recommended lints to | 
				
			||||
  # encourage good coding practices. The lint set provided by the package is | 
				
			||||
  # activated in the `analysis_options.yaml` file located at the root of your | 
				
			||||
  # package. See that file for information about deactivating specific lint | 
				
			||||
  # rules and activating additional ones. | 
				
			||||
  flutter_lints: ^2.0.0 | 
				
			||||
 | 
				
			||||
# For information on the generic Dart part of this file, see the | 
				
			||||
# following page: https://dart.dev/tools/pub/pubspec | 
				
			||||
 | 
				
			||||
# The following section is specific to Flutter packages. | 
				
			||||
flutter: | 
				
			||||
 | 
				
			||||
  # The following line ensures that the Material Icons font is | 
				
			||||
  # included with your application, so that you can use the icons in | 
				
			||||
  # the material Icons class. | 
				
			||||
  uses-material-design: true | 
				
			||||
 | 
				
			||||
  # To add assets to your application, add an assets section, like this: | 
				
			||||
  # assets: | 
				
			||||
  #   - images/a_dot_burr.jpeg | 
				
			||||
  #   - images/a_dot_ham.jpeg | 
				
			||||
 | 
				
			||||
  # An image asset can refer to one or more resolution-specific "variants", see | 
				
			||||
  # https://flutter.dev/assets-and-images/#resolution-aware | 
				
			||||
 | 
				
			||||
  # For details regarding adding assets from package dependencies, see | 
				
			||||
  # https://flutter.dev/assets-and-images/#from-packages | 
				
			||||
 | 
				
			||||
  # To add custom fonts to your application, add a fonts section here, | 
				
			||||
  # in this "flutter" section. Each entry in this list should have a | 
				
			||||
  # "family" key with the font family name, and a "fonts" key with a | 
				
			||||
  # list giving the asset and other descriptors for the font. For | 
				
			||||
  # example: | 
				
			||||
  # fonts: | 
				
			||||
  #   - family: Schyler | 
				
			||||
  #     fonts: | 
				
			||||
  #       - asset: fonts/Schyler-Regular.ttf | 
				
			||||
  #       - asset: fonts/Schyler-Italic.ttf | 
				
			||||
  #         style: italic | 
				
			||||
  #   - family: Trajan Pro | 
				
			||||
  #     fonts: | 
				
			||||
  #       - asset: fonts/TrajanPro.ttf | 
				
			||||
  #       - asset: fonts/TrajanPro_Bold.ttf | 
				
			||||
  #         weight: 700 | 
				
			||||
  # | 
				
			||||
  # For details regarding fonts from package dependencies, | 
				
			||||
  # see https://flutter.dev/custom-fonts/#from-packages | 
				
			||||
@ -0,0 +1,17 @@
					 | 
				
			||||
# Run with `flutter pub run ffigen --config ffigen.yaml`. | 
				
			||||
name: XdgaDirectoriesBindings | 
				
			||||
llvm-path: | 
				
			||||
  - '/usr/lib/llvm-14/lib/libclang.so' # Ubuntu 22.04 | 
				
			||||
description: | | 
				
			||||
  Bindings for `src/xdga_directories.h`. | 
				
			||||
 | 
				
			||||
  Regenerate bindings with `flutter pub run ffigen --config ffigen.yaml`. | 
				
			||||
output: 'lib/xdga_directories_bindings_generated.dart' | 
				
			||||
headers: | 
				
			||||
  entry-points: | 
				
			||||
    - 'src/xdga_directories.h' | 
				
			||||
  include-directives: | 
				
			||||
    - 'src/xdga_directories.h' | 
				
			||||
comments: | 
				
			||||
  style: any | 
				
			||||
  length: full | 
				
			||||
@ -0,0 +1,36 @@
					 | 
				
			||||
import 'dart:ffi'; | 
				
			||||
 | 
				
			||||
import 'package:ffi/ffi.dart'; | 
				
			||||
 | 
				
			||||
import 'xdga_directories_bindings_generated.dart'; | 
				
			||||
 | 
				
			||||
const String _libName = 'xdga_directories'; | 
				
			||||
 | 
				
			||||
/// The dynamic library in which the symbols for [XdgaDirectoriesBindings] can be found. | 
				
			||||
final DynamicLibrary _dylib = () { | 
				
			||||
  return DynamicLibrary.open('lib$_libName.so'); | 
				
			||||
}(); | 
				
			||||
 | 
				
			||||
/// The bindings to the native functions in [_dylib]. | 
				
			||||
final XdgaDirectoriesBindings _bindings = XdgaDirectoriesBindings(_dylib); | 
				
			||||
 | 
				
			||||
/// QStandardPaths::CacheLocation | 
				
			||||
String getCacheLocation() => _bindings.getCacheLocation().cast<Utf8>().toDartString(); | 
				
			||||
 | 
				
			||||
///  QStandardPaths::DocumentsLocation | 
				
			||||
String getDocumentsLocation() => _bindings.getDocumentsLocation().cast<Utf8>().toDartString(); | 
				
			||||
 | 
				
			||||
///  QStandardPaths::DownloadLocation | 
				
			||||
String getDownloadLocation() => _bindings.getDownloadLocation().cast<Utf8>().toDartString(); | 
				
			||||
 | 
				
			||||
///  QStandardPaths::MusicLocation | 
				
			||||
String getMusicLocation() => _bindings.getMusicLocation().cast<Utf8>().toDartString(); | 
				
			||||
 | 
				
			||||
///  QStandardPaths::PicturesLocation | 
				
			||||
String getPicturesLocation() => _bindings.getPicturesLocation().cast<Utf8>().toDartString(); | 
				
			||||
 | 
				
			||||
///  QStandardPaths::GenericDataLocation | 
				
			||||
String getGenericDataLocation() => _bindings.getGenericDataLocation().cast<Utf8>().toDartString(); | 
				
			||||
 | 
				
			||||
///  QStandardPaths::MoviesLocation | 
				
			||||
String getMoviesLocation() => _bindings.getMoviesLocation().cast<Utf8>().toDartString(); | 
				
			||||
@ -0,0 +1,94 @@
					 | 
				
			||||
// AUTO GENERATED FILE, DO NOT EDIT. | 
				
			||||
// | 
				
			||||
// Generated by `package:ffigen`. | 
				
			||||
import 'dart:ffi' as ffi; | 
				
			||||
 | 
				
			||||
/// Bindings for `src/xdga_directories.h`. | 
				
			||||
/// | 
				
			||||
/// Regenerate bindings with `flutter pub run ffigen --config ffigen.yaml`. | 
				
			||||
/// | 
				
			||||
class XdgaDirectoriesBindings { | 
				
			||||
  /// Holds the symbol lookup function. | 
				
			||||
  final ffi.Pointer<T> Function<T extends ffi.NativeType>(String symbolName) | 
				
			||||
      _lookup; | 
				
			||||
 | 
				
			||||
  /// The symbols are looked up in [dynamicLibrary]. | 
				
			||||
  XdgaDirectoriesBindings(ffi.DynamicLibrary dynamicLibrary) | 
				
			||||
      : _lookup = dynamicLibrary.lookup; | 
				
			||||
 | 
				
			||||
  /// The symbols are looked up with [lookup]. | 
				
			||||
  XdgaDirectoriesBindings.fromLookup( | 
				
			||||
      ffi.Pointer<T> Function<T extends ffi.NativeType>(String symbolName) | 
				
			||||
          lookup) | 
				
			||||
      : _lookup = lookup; | 
				
			||||
 | 
				
			||||
  ffi.Pointer<ffi.Char> getCacheLocation() { | 
				
			||||
    return _getCacheLocation(); | 
				
			||||
  } | 
				
			||||
 | 
				
			||||
  late final _getCacheLocationPtr = | 
				
			||||
      _lookup<ffi.NativeFunction<ffi.Pointer<ffi.Char> Function()>>( | 
				
			||||
          'getCacheLocation'); | 
				
			||||
  late final _getCacheLocation = | 
				
			||||
      _getCacheLocationPtr.asFunction<ffi.Pointer<ffi.Char> Function()>(); | 
				
			||||
 | 
				
			||||
  ffi.Pointer<ffi.Char> getDocumentsLocation() { | 
				
			||||
    return _getDocumentsLocation(); | 
				
			||||
  } | 
				
			||||
 | 
				
			||||
  late final _getDocumentsLocationPtr = | 
				
			||||
      _lookup<ffi.NativeFunction<ffi.Pointer<ffi.Char> Function()>>( | 
				
			||||
          'getDocumentsLocation'); | 
				
			||||
  late final _getDocumentsLocation = | 
				
			||||
      _getDocumentsLocationPtr.asFunction<ffi.Pointer<ffi.Char> Function()>(); | 
				
			||||
 | 
				
			||||
  ffi.Pointer<ffi.Char> getDownloadLocation() { | 
				
			||||
    return _getDownloadLocation(); | 
				
			||||
  } | 
				
			||||
 | 
				
			||||
  late final _getDownloadLocationPtr = | 
				
			||||
      _lookup<ffi.NativeFunction<ffi.Pointer<ffi.Char> Function()>>( | 
				
			||||
          'getDownloadLocation'); | 
				
			||||
  late final _getDownloadLocation = | 
				
			||||
      _getDownloadLocationPtr.asFunction<ffi.Pointer<ffi.Char> Function()>(); | 
				
			||||
 | 
				
			||||
  ffi.Pointer<ffi.Char> getMusicLocation() { | 
				
			||||
    return _getMusicLocation(); | 
				
			||||
  } | 
				
			||||
 | 
				
			||||
  late final _getMusicLocationPtr = | 
				
			||||
      _lookup<ffi.NativeFunction<ffi.Pointer<ffi.Char> Function()>>( | 
				
			||||
          'getMusicLocation'); | 
				
			||||
  late final _getMusicLocation = | 
				
			||||
      _getMusicLocationPtr.asFunction<ffi.Pointer<ffi.Char> Function()>(); | 
				
			||||
 | 
				
			||||
  ffi.Pointer<ffi.Char> getPicturesLocation() { | 
				
			||||
    return _getPicturesLocation(); | 
				
			||||
  } | 
				
			||||
 | 
				
			||||
  late final _getPicturesLocationPtr = | 
				
			||||
      _lookup<ffi.NativeFunction<ffi.Pointer<ffi.Char> Function()>>( | 
				
			||||
          'getPicturesLocation'); | 
				
			||||
  late final _getPicturesLocation = | 
				
			||||
      _getPicturesLocationPtr.asFunction<ffi.Pointer<ffi.Char> Function()>(); | 
				
			||||
 | 
				
			||||
  ffi.Pointer<ffi.Char> getGenericDataLocation() { | 
				
			||||
    return _getGenericDataLocation(); | 
				
			||||
  } | 
				
			||||
 | 
				
			||||
  late final _getGenericDataLocationPtr = | 
				
			||||
      _lookup<ffi.NativeFunction<ffi.Pointer<ffi.Char> Function()>>( | 
				
			||||
          'getGenericDataLocation'); | 
				
			||||
  late final _getGenericDataLocation = | 
				
			||||
      _getGenericDataLocationPtr.asFunction<ffi.Pointer<ffi.Char> Function()>(); | 
				
			||||
 | 
				
			||||
  ffi.Pointer<ffi.Char> getMoviesLocation() { | 
				
			||||
    return _getMoviesLocation(); | 
				
			||||
  } | 
				
			||||
 | 
				
			||||
  late final _getMoviesLocationPtr = | 
				
			||||
      _lookup<ffi.NativeFunction<ffi.Pointer<ffi.Char> Function()>>( | 
				
			||||
          'getMoviesLocation'); | 
				
			||||
  late final _getMoviesLocation = | 
				
			||||
      _getMoviesLocationPtr.asFunction<ffi.Pointer<ffi.Char> Function()>(); | 
				
			||||
} | 
				
			||||
@ -0,0 +1,26 @@
					 | 
				
			||||
name: xdga_directories | 
				
			||||
description: A Dart package for reading XDG directory configuration information on Aurora OS. | 
				
			||||
version: 0.0.1 | 
				
			||||
homepage: https://os-git.omprussia.ru/non-oss/flutter/flutter-plugins/packages/xdga_directories | 
				
			||||
 | 
				
			||||
environment: | 
				
			||||
  sdk: '>=2.18.6 <3.0.0' | 
				
			||||
  flutter: ">=2.11.0" | 
				
			||||
 | 
				
			||||
dependencies: | 
				
			||||
  flutter: | 
				
			||||
    sdk: flutter | 
				
			||||
  ffi: ^1.2.1 | 
				
			||||
  plugin_platform_interface: ^2.0.2 | 
				
			||||
 | 
				
			||||
dev_dependencies: | 
				
			||||
  ffigen: ^5.0.1 | 
				
			||||
  flutter_test: | 
				
			||||
    sdk: flutter | 
				
			||||
  flutter_lints: ^2.0.0 | 
				
			||||
 | 
				
			||||
flutter: | 
				
			||||
  plugin: | 
				
			||||
    platforms: | 
				
			||||
      aurora: | 
				
			||||
        ffiPlugin: true | 
				
			||||
@ -0,0 +1,15 @@
					 | 
				
			||||
cmake_minimum_required(VERSION 3.5) | 
				
			||||
project(xdga_directories VERSION 0.0.1) | 
				
			||||
 | 
				
			||||
find_package(Qt5 COMPONENTS Core REQUIRED) | 
				
			||||
 | 
				
			||||
add_library(xdga_directories SHARED xdga_directories.cpp) | 
				
			||||
 | 
				
			||||
target_link_libraries(xdga_directories Qt5::Core) | 
				
			||||
 | 
				
			||||
set_target_properties(xdga_directories PROPERTIES | 
				
			||||
    PUBLIC_HEADER xdga_directories.h | 
				
			||||
    OUTPUT_NAME "xdga_directories" | 
				
			||||
    XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "Hex_Identity_ID_Goes_Here" | 
				
			||||
) | 
				
			||||
 | 
				
			||||
@ -0,0 +1,38 @@
					 | 
				
			||||
#include <QStandardPaths> | 
				
			||||
 | 
				
			||||
#include "xdga_directories.h" | 
				
			||||
 | 
				
			||||
char *getCacheLocation() | 
				
			||||
{ | 
				
			||||
    return QStandardPaths::writableLocation(QStandardPaths::CacheLocation).toUtf8().data(); | 
				
			||||
} | 
				
			||||
 | 
				
			||||
char *getDocumentsLocation() | 
				
			||||
{ | 
				
			||||
    return QStandardPaths::writableLocation(QStandardPaths::DocumentsLocation).toUtf8().data(); | 
				
			||||
} | 
				
			||||
 | 
				
			||||
char *getDownloadLocation() | 
				
			||||
{ | 
				
			||||
    return QStandardPaths::writableLocation(QStandardPaths::DownloadLocation).toUtf8().data(); | 
				
			||||
} | 
				
			||||
 | 
				
			||||
char *getMusicLocation() | 
				
			||||
{ | 
				
			||||
    return QStandardPaths::writableLocation(QStandardPaths::MusicLocation).toUtf8().data(); | 
				
			||||
} | 
				
			||||
 | 
				
			||||
char *getPicturesLocation() | 
				
			||||
{ | 
				
			||||
    return QStandardPaths::writableLocation(QStandardPaths::PicturesLocation).toUtf8().data(); | 
				
			||||
} | 
				
			||||
 | 
				
			||||
char *getGenericDataLocation() | 
				
			||||
{ | 
				
			||||
    return QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation).toUtf8().data(); | 
				
			||||
} | 
				
			||||
 | 
				
			||||
char *getMoviesLocation() | 
				
			||||
{ | 
				
			||||
    return QStandardPaths::writableLocation(QStandardPaths::MoviesLocation).toUtf8().data(); | 
				
			||||
} | 
				
			||||
@ -0,0 +1,21 @@
					 | 
				
			||||
#ifdef __cplusplus | 
				
			||||
extern "C" { | 
				
			||||
#endif | 
				
			||||
 | 
				
			||||
char *getCacheLocation(); | 
				
			||||
 | 
				
			||||
char *getDocumentsLocation(); | 
				
			||||
 | 
				
			||||
char *getDownloadLocation(); | 
				
			||||
 | 
				
			||||
char *getMusicLocation(); | 
				
			||||
 | 
				
			||||
char *getPicturesLocation(); | 
				
			||||
 | 
				
			||||
char *getGenericDataLocation(); | 
				
			||||
 | 
				
			||||
char *getMoviesLocation(); | 
				
			||||
 | 
				
			||||
#ifdef __cplusplus | 
				
			||||
} | 
				
			||||
#endif | 
				
			||||
@ -0,0 +1,69 @@
					 | 
				
			||||
#!/bin/bash | 
				
			||||
 | 
				
			||||
## Build example, sign rpm, upload rpm to device | 
				
			||||
 | 
				
			||||
## Usage | 
				
			||||
## chmod +x ./build_example.sh | 
				
			||||
## ./build_example.sh -p xdga_directories -u 192.168.1.59:/home/defaultuser/Downloads -k /home/user/sign/system_keys | 
				
			||||
 | 
				
			||||
## Flatter path | 
				
			||||
FLATTER="$HOME/.local/opt/flutter-sdk/bin/flutter" | 
				
			||||
## Install Platform SDK path | 
				
			||||
PLATFORM_SDK_ROOT="/srv/mer" | 
				
			||||
 | 
				
			||||
## https://community.omprussia.ru/documentation/software_development/psdk/setup.html | 
				
			||||
## You may not have set the PSDK_DIR environment variable. | 
				
			||||
export PSDK_DIR="$PLATFORM_SDK_ROOT/sdks/sfossdk" | 
				
			||||
 | 
				
			||||
while getopts p:u:k: flag; do | 
				
			||||
  case "${flag}" in | 
				
			||||
  p) package=${OPTARG} ;; | 
				
			||||
  u) upload=${OPTARG} ;; | 
				
			||||
  k) keys_folder=${OPTARG} ;; | 
				
			||||
  *) | 
				
			||||
    echo "usage: $0 [-v] [-r]" >&2 | 
				
			||||
    exit 1 | 
				
			||||
    ;; | 
				
			||||
  esac | 
				
			||||
done | 
				
			||||
 | 
				
			||||
if [ -z "$package" ]; then | 
				
			||||
  echo "Specify a build package" | 
				
			||||
  exit | 
				
			||||
else | 
				
			||||
  cd "../packages/$package" 2>/dev/null || eval 'echo "Package \"$package\" not found." && exit' | 
				
			||||
  $FLATTER pub run ffigen --config ffigen.yaml | 
				
			||||
  cd "example" || exit | 
				
			||||
  $FLATTER build aurora --release | 
				
			||||
fi | 
				
			||||
 | 
				
			||||
if [ -n "$keys_folder" ]; then | 
				
			||||
 | 
				
			||||
  key=$(ls "$keys_folder"/*key.pem) | 
				
			||||
 | 
				
			||||
  if [ -z "$key" ]; then | 
				
			||||
    echo "Key *key.pem not found." | 
				
			||||
    exit | 
				
			||||
  fi | 
				
			||||
 | 
				
			||||
  cert=$(ls "$keys_folder"/*cert.pem) | 
				
			||||
 | 
				
			||||
  if [ -z "$cert" ]; then | 
				
			||||
    echo "Key *cert.pem not found." | 
				
			||||
    exit | 
				
			||||
  fi | 
				
			||||
 | 
				
			||||
  ## Sign rpm system key | 
				
			||||
  "$PSDK_DIR"/sdk-chroot rpmsign-external sign \ | 
				
			||||
    --key "$key" \ | 
				
			||||
    --cert "$cert" \ | 
				
			||||
    build/aurora/arm/release/RPMS/*.rpm | 
				
			||||
fi | 
				
			||||
 | 
				
			||||
if [ -n "$upload" ]; then | 
				
			||||
 | 
				
			||||
  # shellcheck disable=SC2012 | 
				
			||||
  rpm=$(ls "$PWD"/build/aurora/arm/release/RPMS/*.rpm | sort -r | head -n 1) | 
				
			||||
 | 
				
			||||
  scp "$rpm" defaultuser@"$upload" | 
				
			||||
fi | 
				
			||||
					Loading…
					
					
				
		Reference in new issue