mirror of
https://github.com/vodemn/m3_lightmeter.git
synced 2024-11-22 07:20:39 +00:00
added iap repo stub
This commit is contained in:
parent
ab76271387
commit
cb675e43e1
10 changed files with 162 additions and 2 deletions
19
README.md
19
README.md
|
@ -29,7 +29,20 @@ Without further delay behold my new Lightmeter app inspired by Material You (a.k
|
||||||
|
|
||||||
# Build
|
# Build
|
||||||
|
|
||||||
As part of this project is private, you will be able to run this app from the _main_dev.dart_ file (i.e. --flavor dev). Also to avoid fatal errors the _main_prod.dart_ file is excluded from analysis.
|
As part of the app's functionallity is in the private repo, you have to replace this lines in _pubspec.yaml_:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
m3_lightmeter_iap:
|
||||||
|
git:
|
||||||
|
url: "https://github.com/vodemn/m3_lightmeter_iap"
|
||||||
|
ref: main
|
||||||
|
```
|
||||||
|
to this:
|
||||||
|
```yaml
|
||||||
|
m3_lightmeter_iap:
|
||||||
|
path: iap
|
||||||
|
```
|
||||||
|
After that run `flutter pub get` as usual.
|
||||||
|
|
||||||
# Contribution
|
# Contribution
|
||||||
|
|
||||||
|
@ -42,7 +55,9 @@ In case you want to help develop this project you need to follow this [style gui
|
||||||
A list of features, that Android version of the app has and that iOS does not.
|
A list of features, that Android version of the app has and that iOS does not.
|
||||||
|
|
||||||
## Incident light metering
|
## Incident light metering
|
||||||
|
|
||||||
Apple does not provide API for reading Lux stream form the ambient light sensor. Lux can be calculated based on front camera image stream, but this would be a reflected light. So there is no way incident light metering can be implemented on iOS.
|
Apple does not provide API for reading Lux stream form the ambient light sensor. Lux can be calculated based on front camera image stream, but this would be a reflected light. So there is no way incident light metering can be implemented on iOS.
|
||||||
|
|
||||||
## Volume buttons action
|
## Volume buttons action
|
||||||
This can be [implemented](https://stackoverflow.com/questions/70161271/ios-override-hardware-volume-buttons-same-as-zello) but the app will be rejected due to [2.5.9](https://developer.apple.com/app-store/review/guidelines/#software-requirements)
|
|
||||||
|
This can be [implemented](https://stackoverflow.com/questions/70161271/ios-override-hardware-volume-buttons-same-as-zello) but the app will be rejected due to [2.5.9](https://developer.apple.com/app-store/review/guidelines/#software-requirements)
|
||||||
|
|
36
iap/.gitignore
vendored
Normal file
36
iap/.gitignore
vendored
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
# 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/
|
||||||
|
|
||||||
|
.fvm/
|
||||||
|
*.properties
|
||||||
|
ios/Flutter/
|
||||||
|
.flutter-plugins
|
||||||
|
.flutter-plugins-dependencies
|
10
iap/.metadata
Normal file
10
iap/.metadata
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
# This file tracks properties of this Flutter project.
|
||||||
|
# Used by Flutter tool to assess capabilities and perform upgrades etc.
|
||||||
|
#
|
||||||
|
# This file should be version controlled and should not be manually edited.
|
||||||
|
|
||||||
|
version:
|
||||||
|
revision: 9944297138845a94256f1cf37beb88ff9a8e811a
|
||||||
|
channel: stable
|
||||||
|
|
||||||
|
project_type: package
|
1
iap/LICENSE
Normal file
1
iap/LICENSE
Normal file
|
@ -0,0 +1 @@
|
||||||
|
TODO: Add your license here.
|
4
iap/analysis_options.yaml
Normal file
4
iap/analysis_options.yaml
Normal file
|
@ -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
|
6
iap/lib/m3_lightmeter_iap.dart
Normal file
6
iap/lib/m3_lightmeter_iap.dart
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
library m3_lightmeter_iap;
|
||||||
|
|
||||||
|
export 'src/data/models/iap_product.dart';
|
||||||
|
|
||||||
|
export 'src/providers/iap_products_provider.dart';
|
||||||
|
export 'src/utils/equipment_profiles_storage.dart';
|
5
iap/lib/src/data/models/iap_product.dart
Normal file
5
iap/lib/src/data/models/iap_product.dart
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
enum IAPProductType { paidFeatures }
|
||||||
|
|
||||||
|
class IAPProduct {
|
||||||
|
IAPProduct();
|
||||||
|
}
|
47
iap/lib/src/providers/iap_products_provider.dart
Normal file
47
iap/lib/src/providers/iap_products_provider.dart
Normal file
|
@ -0,0 +1,47 @@
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:m3_lightmeter_iap/src/data/models/iap_product.dart';
|
||||||
|
|
||||||
|
class IAPProductsProvider extends StatefulWidget {
|
||||||
|
final Widget child;
|
||||||
|
|
||||||
|
const IAPProductsProvider({required this.child, super.key});
|
||||||
|
|
||||||
|
static IAPProductsProviderState of(BuildContext context) {
|
||||||
|
return context.findAncestorStateOfType<IAPProductsProviderState>()!;
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
State<IAPProductsProvider> createState() => IAPProductsProviderState();
|
||||||
|
}
|
||||||
|
|
||||||
|
class IAPProductsProviderState extends State<IAPProductsProvider> {
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
return IAPProducts(
|
||||||
|
products: const [],
|
||||||
|
child: widget.child,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
Future<void> buy(IAPProductType type) async {}
|
||||||
|
}
|
||||||
|
|
||||||
|
class IAPProducts extends InheritedModel<IAPProductType> {
|
||||||
|
final List<IAPProduct> products;
|
||||||
|
|
||||||
|
const IAPProducts({
|
||||||
|
required this.products,
|
||||||
|
required super.child,
|
||||||
|
super.key,
|
||||||
|
});
|
||||||
|
|
||||||
|
static IAPProduct? of(BuildContext context, IAPProductType type) => null;
|
||||||
|
|
||||||
|
static bool isPurchased(BuildContext context, IAPProductType type) => false;
|
||||||
|
|
||||||
|
@override
|
||||||
|
bool updateShouldNotify(IAPProducts oldWidget) => false;
|
||||||
|
|
||||||
|
@override
|
||||||
|
bool updateShouldNotifyDependent(covariant IAPProducts oldWidget, Set<IAPProductType> dependencies) => false;
|
||||||
|
}
|
10
iap/lib/src/utils/equipment_profiles_storage.dart
Normal file
10
iap/lib/src/utils/equipment_profiles_storage.dart
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
import 'package:m3_lightmeter_resources/m3_lightmeter_resources.dart';
|
||||||
|
import 'package:shared_preferences/shared_preferences.dart';
|
||||||
|
|
||||||
|
extension EquipmentProfilesStorage on SharedPreferences {
|
||||||
|
String get selectedEquipmentProfileId => '';
|
||||||
|
set selectedEquipmentProfileId(String id) {}
|
||||||
|
|
||||||
|
List<EquipmentProfileData> get equipmentProfiles => [];
|
||||||
|
set equipmentProfiles(List<EquipmentProfileData> profiles) {}
|
||||||
|
}
|
26
iap/pubspec.yaml
Normal file
26
iap/pubspec.yaml
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
name: m3_lightmeter_iap
|
||||||
|
description: IAP stubs for the M3 Lightmeter app.
|
||||||
|
version: 0.2.0
|
||||||
|
publish_to: 'none'
|
||||||
|
|
||||||
|
environment:
|
||||||
|
sdk: '>=2.19.2 <3.0.0'
|
||||||
|
flutter: ">=1.17.0"
|
||||||
|
|
||||||
|
dependencies:
|
||||||
|
flutter:
|
||||||
|
sdk: flutter
|
||||||
|
m3_lightmeter_resources:
|
||||||
|
git:
|
||||||
|
url: "https://github.com/vodemn/m3_lightmeter_resources"
|
||||||
|
ref: main
|
||||||
|
shared_preferences: 2.2.0
|
||||||
|
|
||||||
|
dev_dependencies:
|
||||||
|
flutter_test:
|
||||||
|
sdk: flutter
|
||||||
|
flutter_lints: ^2.0.0
|
||||||
|
|
||||||
|
flutter:
|
||||||
|
uses-material-design: true
|
||||||
|
|
Loading…
Reference in a new issue