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

Implement scheduled notifications #31

Merged
merged 4 commits into from
Dec 11, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions ios/Flutter/Debug.xcconfig
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"
#include "Generated.xcconfig"
1 change: 1 addition & 0 deletions ios/Flutter/Release.xcconfig
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"
#include "Generated.xcconfig"
74 changes: 74 additions & 0 deletions ios/Podfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
# Uncomment this line to define a global platform for your project
# platform :ios, '11.0'

# CocoaPods analytics sends network stats synchronously affecting flutter build latency.
ENV['COCOAPODS_DISABLE_STATS'] = 'true'

project 'Runner', {
'Debug' => :debug,
'Profile' => :release,
'Release' => :release,
}

def flutter_root
generated_xcode_build_settings_path = File.expand_path(File.join('..', 'Flutter', 'Generated.xcconfig'), __FILE__)
unless File.exist?(generated_xcode_build_settings_path)
raise "#{generated_xcode_build_settings_path} must exist. If you're running pod install manually, make sure flutter pub get is executed first"
end

File.foreach(generated_xcode_build_settings_path) do |line|
matches = line.match(/FLUTTER_ROOT\=(.*)/)
return matches[1].strip if matches
end
raise "FLUTTER_ROOT not found in #{generated_xcode_build_settings_path}. Try deleting Generated.xcconfig, then run flutter pub get"
end

require File.expand_path(File.join('packages', 'flutter_tools', 'bin', 'podhelper'), flutter_root)

flutter_ios_podfile_setup

def flutter_install_plugin_pods(application_path = nil, relative_symlink_dir, platform)
# defined_in_file is set by CocoaPods and is a Pathname to the Podfile.
application_path ||= File.dirname(defined_in_file.realpath) if self.respond_to?(:defined_in_file)
raise 'Could not find application path' unless application_path

# Prepare symlinks folder. We use symlinks to avoid having Podfile.lock
# referring to absolute paths on developers' machines.

symlink_dir = File.expand_path(relative_symlink_dir, application_path)
system('rm', '-rf', symlink_dir) # Avoid the complication of dependencies like FileUtils.

symlink_plugins_dir = File.expand_path('plugins', symlink_dir)
system('mkdir', '-p', symlink_plugins_dir)

plugins_file = File.join(application_path, '..', '.flutter-plugins-dependencies')
plugin_pods = flutter_parse_plugins_file(plugins_file, platform)
plugin_pods.each do |plugin_hash|
plugin_name = plugin_hash['name']
plugin_path = plugin_hash['path']
if (plugin_name && plugin_path)
symlink = File.join(symlink_plugins_dir, plugin_name)
File.symlink(plugin_path, symlink)

if plugin_name == 'flutter_ffmpeg'
pod 'flutter_ffmpeg/min-lts', :path => File.join(relative_symlink_dir, 'plugins', plugin_name, platform)
else
pod plugin_name, :path => File.join(relative_symlink_dir, 'plugins', plugin_name, platform)
end
end
end
end


target 'Runner' do
use_frameworks!
use_modular_headers!

flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__))
end

post_install do |installer|
installer.pods_project.targets.each do |target|
flutter_additional_ios_build_settings(target)
end
end
95 changes: 95 additions & 0 deletions ios/Podfile.lock
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
PODS:
- camera (0.0.1):
- Flutter
- Flutter (1.0.0)
- flutter_ffmpeg/min-lts (0.4.2):
- Flutter
- mobile-ffmpeg-min (= 4.4.LTS)
- flutter_local_notifications (0.0.1):
- Flutter
- mobile-ffmpeg-min (4.4.LTS)
- native_device_orientation (0.0.1):
- Flutter
- open_file (0.0.1):
- Flutter
- path_provider_ios (0.0.1):
- Flutter
- permission_handler_apple (9.0.4):
- Flutter
- share (0.0.1):
- Flutter
- shared_preferences_ios (0.0.1):
- Flutter
- tapioca (0.0.1):
- Flutter
- url_launcher_ios (0.0.1):
- Flutter
- video_player_avfoundation (0.0.1):
- Flutter

DEPENDENCIES:
- camera (from `.symlinks/plugins/camera/ios`)
- Flutter (from `Flutter`)
- flutter_ffmpeg/min-lts (from `.symlinks/plugins/flutter_ffmpeg/ios`)
- flutter_local_notifications (from `.symlinks/plugins/flutter_local_notifications/ios`)
- native_device_orientation (from `.symlinks/plugins/native_device_orientation/ios`)
- open_file (from `.symlinks/plugins/open_file/ios`)
- path_provider_ios (from `.symlinks/plugins/path_provider_ios/ios`)
- permission_handler_apple (from `.symlinks/plugins/permission_handler_apple/ios`)
- share (from `.symlinks/plugins/share/ios`)
- shared_preferences_ios (from `.symlinks/plugins/shared_preferences_ios/ios`)
- tapioca (from `.symlinks/plugins/tapioca/ios`)
- url_launcher_ios (from `.symlinks/plugins/url_launcher_ios/ios`)
- video_player_avfoundation (from `.symlinks/plugins/video_player_avfoundation/ios`)

SPEC REPOS:
trunk:
- mobile-ffmpeg-min

EXTERNAL SOURCES:
camera:
:path: ".symlinks/plugins/camera/ios"
Flutter:
:path: Flutter
flutter_ffmpeg:
:path: ".symlinks/plugins/flutter_ffmpeg/ios"
flutter_local_notifications:
:path: ".symlinks/plugins/flutter_local_notifications/ios"
native_device_orientation:
:path: ".symlinks/plugins/native_device_orientation/ios"
open_file:
:path: ".symlinks/plugins/open_file/ios"
path_provider_ios:
:path: ".symlinks/plugins/path_provider_ios/ios"
permission_handler_apple:
:path: ".symlinks/plugins/permission_handler_apple/ios"
share:
:path: ".symlinks/plugins/share/ios"
shared_preferences_ios:
:path: ".symlinks/plugins/shared_preferences_ios/ios"
tapioca:
:path: ".symlinks/plugins/tapioca/ios"
url_launcher_ios:
:path: ".symlinks/plugins/url_launcher_ios/ios"
video_player_avfoundation:
:path: ".symlinks/plugins/video_player_avfoundation/ios"

SPEC CHECKSUMS:
camera: a0ca5080336f7af47b88436e5e26da3dee5568f0
Flutter: f04841e97a9d0b0a8025694d0796dd46242b2854
flutter_ffmpeg: 3ec3912c74649851e6c3b1885511eef78142ac4f
flutter_local_notifications: 0c0b1ae97e741e1521e4c1629a459d04b9aec743
mobile-ffmpeg-min: dd2fd38da2788ccb7be5720fc308cb69160820e7
native_device_orientation: 3b4cfc9565a7b879cc4fde282b3e27745e852d0d
open_file: 02eb5cb6b21264bd3a696876f5afbfb7ca4f4b7d
path_provider_ios: 14f3d2fd28c4fdb42f44e0f751d12861c43cee02
permission_handler_apple: 44366e37eaf29454a1e7b1b7d736c2cceaeb17ce
share: 0b2c3e82132f5888bccca3351c504d0003b3b410
shared_preferences_ios: 548a61f8053b9b8a49ac19c1ffbc8b92c50d68ad
tapioca: 59e9fc89671d49e2cefe6cd59c3efe678e589e89
url_launcher_ios: 839c58cdb4279282219f5e248c3321761ff3c4de
video_player_avfoundation: e489aac24ef5cf7af82702979ed16f2a5ef84cff

PODFILE CHECKSUM: 3460e53762ceea3c3b40d0e687654910ee3996d4

COCOAPODS: 1.11.3
68 changes: 68 additions & 0 deletions ios/Runner.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; };
97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; };
97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; };
E23B2C7D9C5BDEFE4578B653 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A7D698C0C638BF109A9222E0 /* Pods_Runner.framework */; };
/* End PBXBuildFile section */

/* Begin PBXCopyFilesBuildPhase section */
Expand All @@ -31,30 +32,46 @@
/* Begin PBXFileReference section */
1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = "<group>"; };
1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = "<group>"; };
30287852AE1EC6414B5838DB /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = "<group>"; };
3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = "<group>"; };
54DCFD44EA73E1FBA61B8993 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = "<group>"; };
74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = "<group>"; };
74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = "<group>"; };
8EE8D3BA54297AF6D51FF494 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = "<group>"; };
9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = "<group>"; };
9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = "<group>"; };
97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; };
97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; };
97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
A7D698C0C638BF109A9222E0 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; };
/* End PBXFileReference section */

/* Begin PBXFrameworksBuildPhase section */
97C146EB1CF9000F007C117D /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
E23B2C7D9C5BDEFE4578B653 /* Pods_Runner.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */

/* Begin PBXGroup section */
16FC201379E3377E6983DA82 /* Pods */ = {
isa = PBXGroup;
children = (
30287852AE1EC6414B5838DB /* Pods-Runner.debug.xcconfig */,
54DCFD44EA73E1FBA61B8993 /* Pods-Runner.release.xcconfig */,
8EE8D3BA54297AF6D51FF494 /* Pods-Runner.profile.xcconfig */,
);
name = Pods;
path = Pods;
sourceTree = "<group>";
};
9740EEB11CF90186004384FC /* Flutter */ = {
isa = PBXGroup;
children = (
Expand All @@ -72,6 +89,8 @@
9740EEB11CF90186004384FC /* Flutter */,
97C146F01CF9000F007C117D /* Runner */,
97C146EF1CF9000F007C117D /* Products */,
16FC201379E3377E6983DA82 /* Pods */,
9BA2E7821CEBAB0541C4CDDF /* Frameworks */,
);
sourceTree = "<group>";
};
Expand All @@ -98,19 +117,29 @@
path = Runner;
sourceTree = "<group>";
};
9BA2E7821CEBAB0541C4CDDF /* Frameworks */ = {
isa = PBXGroup;
children = (
A7D698C0C638BF109A9222E0 /* Pods_Runner.framework */,
);
name = Frameworks;
sourceTree = "<group>";
};
/* End PBXGroup section */

/* Begin PBXNativeTarget section */
97C146ED1CF9000F007C117D /* Runner */ = {
isa = PBXNativeTarget;
buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */;
buildPhases = (
3A21B97CBF1D07743468E737 /* [CP] Check Pods Manifest.lock */,
9740EEB61CF901F6004384FC /* Run Script */,
97C146EA1CF9000F007C117D /* Sources */,
97C146EB1CF9000F007C117D /* Frameworks */,
97C146EC1CF9000F007C117D /* Resources */,
9705A1C41CF9048500538489 /* Embed Frameworks */,
3B06AD1E1E4923F5004D2608 /* Thin Binary */,
0C416C5F01E20C0EE19E5AA2 /* [CP] Embed Pods Frameworks */,
);
buildRules = (
);
Expand Down Expand Up @@ -169,6 +198,45 @@
/* End PBXResourcesBuildPhase section */

/* Begin PBXShellScriptBuildPhase section */
0C416C5F01E20C0EE19E5AA2 /* [CP] Embed Pods Frameworks */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist",
);
name = "[CP] Embed Pods Frameworks";
outputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n";
showEnvVarsInLog = 0;
};
3A21B97CBF1D07743468E737 /* [CP] Check Pods Manifest.lock */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
);
inputPaths = (
"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
"${PODS_ROOT}/Manifest.lock",
);
name = "[CP] Check Pods Manifest.lock";
outputFileListPaths = (
);
outputPaths = (
"$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
showEnvVarsInLog = 0;
};
3B06AD1E1E4923F5004D2608 /* Thin Binary */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
Expand Down
3 changes: 3 additions & 0 deletions ios/Runner.xcworkspace/contents.xcworkspacedata

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 3 additions & 0 deletions lib/lang/de.dart
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,9 @@ const Map<String, String> de = {
'foundVideos': 'Videos gefunden!',
'foundVideo': 'Video gefunden!',
'notifications': 'Benachrichtigungen',
'enableNotifications': 'Benachrichtigungen aktivieren',
'scheduleTime': 'Planmäßige Zeit',
'test': 'Prüfen',
'notificationTitle': 'Hallo!',
'notificationBody': 'Vergiss nicht 1 Sekunde Deines Tages aufzuzeichnen 👀',
'recordingSettings': 'Aufnahmeeinstellungen',
Expand Down
3 changes: 3 additions & 0 deletions lib/lang/en.dart
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,9 @@ const Map<String, String> en = {
'foundVideos': 'videos found!',
'foundVideo': 'video found!',
'notifications': 'Notifications',
'enableNotifications': 'Enable Notifications',
'scheduleTime': 'Schedule Time',
'test': 'Test',
'notificationTitle': 'Heyy!',
'notificationBody': 'Do not forget to record 1 second of your day 👀',
'recordingSettings': 'Recording Settings',
Expand Down
3 changes: 3 additions & 0 deletions lib/lang/es.dart
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,9 @@ const Map<String, String> es = {
'foundVideos': 'videos encontrados!',
'foundVideo': 'video encontrado!',
'notifications': 'Notificaciones',
'enableNotifications': 'Permitir notificaciones',
'scheduleTime': 'Tiempo programado',
'test': 'Prueba',
'notificationTitle': '¡Heyy!',
'notificationBody': 'No olvides grabar 1 segundo de tu día 👀',
'recordingSettings': 'Ajustes de Grabación',
Expand Down
3 changes: 3 additions & 0 deletions lib/lang/fr.dart
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,9 @@ const Map<String, String> fr = {
'foundVideos': 'vidéos trouvées !',
'foundVideo': 'vidéo trouvée !',
'notifications': 'Notifications',
'enableNotifications': 'Activer les notifications',
'scheduleTime': 'Horaire',
'test': 'Test',
'notificationTitle': 'Hé !',
'notificationBody':
"N'oubliez pas d'enregistrer une seconde de votre journée. 👀",
Expand Down
3 changes: 3 additions & 0 deletions lib/lang/id.dart
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,9 @@ const Map<String, String> id = {
'foundVideos': 'video ditemukan!',
'foundVideo': 'video ditemukan!',
'notifications': 'Notifikasi',
'enableNotifications': 'Aktifkan pemberitahuan',
'scheduleTime': 'Jadwal waktu',
'test': 'Uji',
'notificationTitle': 'Hai!',
'notificationBody': 'Jangan lupa untuk merekam 1 detik hari ini 👀',
'recordingSettings': 'Pengaturan Perekaman',
Expand Down
3 changes: 3 additions & 0 deletions lib/lang/pt.dart
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,9 @@ const Map<String, String> pt = {
'foundVideos': 'vídeos encontrados!',
'foundVideo': 'vídeo encontrado!',
'notifications': 'Notificações',
'enableNotifications': 'Ativar notificações',
'scheduleTime': 'Hora agendada',
'test': 'Teste',
'notificationTitle': 'Psiuu!',
'notificationBody': 'Não se esqueça de gravar 1 segundo do seu dia 👀',
'recordingSettings': 'Configurações de Gravação',
Expand Down
3 changes: 3 additions & 0 deletions lib/lang/zh.dart
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,9 @@ const Map<String, String> zh = {
'foundVideos': '寻找视频集!',
'foundVideo': '寻找视频!',
'notifications': '通知',
'enableNotifications': '启用通知',
'scheduleTime': '时间安排时间',
'test': '测试',
'notificationTitle': '嘿!',
'notificationBody': '不要忘记记录一天中的 1 秒👀',
'recordingSettings': '录制设置',
Expand Down
Loading