From 6f00f39d65070e2ef05e8990e23348338eff7ea6 Mon Sep 17 00:00:00 2001 From: alexander-gileta Date: Mon, 8 Dec 2025 03:38:58 +0700 Subject: [PATCH 1/8] Add files via upload --- .../GiletaProject.xcodeproj/project.pbxproj | 348 ++++++++++++++++++ .../contents.xcworkspacedata | 7 + .../UserInterfaceState.xcuserstate | Bin 0 -> 47352 bytes .../xcschemes/xcschememanagement.plist | 14 + GiletaProject/GiletaProject/AppDelegate.swift | 34 ++ .../AccentColor.colorset/Contents.json | 11 + .../AppIcon.appiconset/Contents.json | 35 ++ .../Assets.xcassets/Contents.json | 6 + .../Base.lproj/LaunchScreen.storyboard | 25 ++ .../GiletaProject/Base.lproj/Main.storyboard | 24 ++ .../CreateTaskViewController.swift | 186 ++++++++++ GiletaProject/GiletaProject/Info.plist | 25 ++ .../GiletaProject/MainTabBarController.swift | 28 ++ .../GiletaProject/SceneDelegate.swift | 55 +++ GiletaProject/GiletaProject/Task.swift | 16 + GiletaProject/GiletaProject/TaskCell.swift | 100 +++++ .../GiletaProject/TasksViewController.swift | 114 ++++++ 17 files changed, 1028 insertions(+) create mode 100644 GiletaProject/GiletaProject.xcodeproj/project.pbxproj create mode 100644 GiletaProject/GiletaProject.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 GiletaProject/GiletaProject.xcodeproj/project.xcworkspace/xcuserdata/alexander.xcuserdatad/UserInterfaceState.xcuserstate create mode 100644 GiletaProject/GiletaProject.xcodeproj/xcuserdata/alexander.xcuserdatad/xcschemes/xcschememanagement.plist create mode 100644 GiletaProject/GiletaProject/AppDelegate.swift create mode 100644 GiletaProject/GiletaProject/Assets.xcassets/AccentColor.colorset/Contents.json create mode 100644 GiletaProject/GiletaProject/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 GiletaProject/GiletaProject/Assets.xcassets/Contents.json create mode 100644 GiletaProject/GiletaProject/Base.lproj/LaunchScreen.storyboard create mode 100644 GiletaProject/GiletaProject/Base.lproj/Main.storyboard create mode 100644 GiletaProject/GiletaProject/CreateTaskViewController.swift create mode 100644 GiletaProject/GiletaProject/Info.plist create mode 100644 GiletaProject/GiletaProject/MainTabBarController.swift create mode 100644 GiletaProject/GiletaProject/SceneDelegate.swift create mode 100644 GiletaProject/GiletaProject/Task.swift create mode 100644 GiletaProject/GiletaProject/TaskCell.swift create mode 100644 GiletaProject/GiletaProject/TasksViewController.swift diff --git a/GiletaProject/GiletaProject.xcodeproj/project.pbxproj b/GiletaProject/GiletaProject.xcodeproj/project.pbxproj new file mode 100644 index 0000000..b99b9c8 --- /dev/null +++ b/GiletaProject/GiletaProject.xcodeproj/project.pbxproj @@ -0,0 +1,348 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 77; + objects = { + +/* Begin PBXFileReference section */ + 117A7BD82EDBFBC400387C7C /* GiletaProject.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = GiletaProject.app; sourceTree = BUILT_PRODUCTS_DIR; }; +/* End PBXFileReference section */ + +/* Begin PBXFileSystemSynchronizedBuildFileExceptionSet section */ + 117A7BEA2EDBFBC400387C7C /* Exceptions for "GiletaProject" folder in "GiletaProject" target */ = { + isa = PBXFileSystemSynchronizedBuildFileExceptionSet; + membershipExceptions = ( + Info.plist, + ); + target = 117A7BD72EDBFBC400387C7C /* GiletaProject */; + }; +/* End PBXFileSystemSynchronizedBuildFileExceptionSet section */ + +/* Begin PBXFileSystemSynchronizedRootGroup section */ + 117A7BDA2EDBFBC400387C7C /* GiletaProject */ = { + isa = PBXFileSystemSynchronizedRootGroup; + exceptions = ( + 117A7BEA2EDBFBC400387C7C /* Exceptions for "GiletaProject" folder in "GiletaProject" target */, + ); + path = GiletaProject; + sourceTree = ""; + }; +/* End PBXFileSystemSynchronizedRootGroup section */ + +/* Begin PBXFrameworksBuildPhase section */ + 117A7BD52EDBFBC400387C7C /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 117A7BCF2EDBFBC400387C7C = { + isa = PBXGroup; + children = ( + 117A7BDA2EDBFBC400387C7C /* GiletaProject */, + 117A7BD92EDBFBC400387C7C /* Products */, + ); + sourceTree = ""; + }; + 117A7BD92EDBFBC400387C7C /* Products */ = { + isa = PBXGroup; + children = ( + 117A7BD82EDBFBC400387C7C /* GiletaProject.app */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 117A7BD72EDBFBC400387C7C /* GiletaProject */ = { + isa = PBXNativeTarget; + buildConfigurationList = 117A7BEB2EDBFBC400387C7C /* Build configuration list for PBXNativeTarget "GiletaProject" */; + buildPhases = ( + 117A7BD42EDBFBC400387C7C /* Sources */, + 117A7BD52EDBFBC400387C7C /* Frameworks */, + 117A7BD62EDBFBC400387C7C /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + fileSystemSynchronizedGroups = ( + 117A7BDA2EDBFBC400387C7C /* GiletaProject */, + ); + name = GiletaProject; + packageProductDependencies = ( + ); + productName = GiletaProject; + productReference = 117A7BD82EDBFBC400387C7C /* GiletaProject.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 117A7BD02EDBFBC400387C7C /* Project object */ = { + isa = PBXProject; + attributes = { + BuildIndependentTargetsInParallel = 1; + LastSwiftUpdateCheck = 2600; + LastUpgradeCheck = 2600; + TargetAttributes = { + 117A7BD72EDBFBC400387C7C = { + CreatedOnToolsVersion = 26.0.1; + }; + }; + }; + buildConfigurationList = 117A7BD32EDBFBC400387C7C /* Build configuration list for PBXProject "GiletaProject" */; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 117A7BCF2EDBFBC400387C7C; + minimizedProjectReferenceProxies = 1; + preferredProjectObjectVersion = 77; + productRefGroup = 117A7BD92EDBFBC400387C7C /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 117A7BD72EDBFBC400387C7C /* GiletaProject */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 117A7BD62EDBFBC400387C7C /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 117A7BD42EDBFBC400387C7C /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + 117A7BEC2EDBFBC400387C7C /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = G479H54RSF; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_FILE = GiletaProject/Info.plist; + INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; + INFOPLIST_KEY_UILaunchStoryboardName = LaunchScreen; + INFOPLIST_KEY_UIMainStoryboardFile = Main; + INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; + INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = "-23.GiletaProject"; + PRODUCT_NAME = "$(TARGET_NAME)"; + STRING_CATALOG_GENERATE_SYMBOLS = YES; + SWIFT_APPROACHABLE_CONCURRENCY = YES; + SWIFT_DEFAULT_ACTOR_ISOLATION = MainActor; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_UPCOMING_FEATURE_MEMBER_IMPORT_VISIBILITY = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 117A7BED2EDBFBC400387C7C /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = G479H54RSF; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_FILE = GiletaProject/Info.plist; + INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; + INFOPLIST_KEY_UILaunchStoryboardName = LaunchScreen; + INFOPLIST_KEY_UIMainStoryboardFile = Main; + INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; + INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = "-23.GiletaProject"; + PRODUCT_NAME = "$(TARGET_NAME)"; + STRING_CATALOG_GENERATE_SYMBOLS = YES; + SWIFT_APPROACHABLE_CONCURRENCY = YES; + SWIFT_DEFAULT_ACTOR_ISOLATION = MainActor; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_UPCOMING_FEATURE_MEMBER_IMPORT_VISIBILITY = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; + 117A7BEE2EDBFBC400387C7C /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + ENABLE_USER_SCRIPT_SANDBOXING = YES; + GCC_C_LANGUAGE_STANDARD = gnu17; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 26.0; + LOCALIZATION_PREFERS_STRING_CATALOGS = YES; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "DEBUG $(inherited)"; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + }; + name = Debug; + }; + 117A7BEF2EDBFBC400387C7C /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_USER_SCRIPT_SANDBOXING = YES; + GCC_C_LANGUAGE_STANDARD = gnu17; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 26.0; + LOCALIZATION_PREFERS_STRING_CATALOGS = YES; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 117A7BD32EDBFBC400387C7C /* Build configuration list for PBXProject "GiletaProject" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 117A7BEE2EDBFBC400387C7C /* Debug */, + 117A7BEF2EDBFBC400387C7C /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 117A7BEB2EDBFBC400387C7C /* Build configuration list for PBXNativeTarget "GiletaProject" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 117A7BEC2EDBFBC400387C7C /* Debug */, + 117A7BED2EDBFBC400387C7C /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 117A7BD02EDBFBC400387C7C /* Project object */; +} diff --git a/GiletaProject/GiletaProject.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/GiletaProject/GiletaProject.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..919434a --- /dev/null +++ b/GiletaProject/GiletaProject.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/GiletaProject/GiletaProject.xcodeproj/project.xcworkspace/xcuserdata/alexander.xcuserdatad/UserInterfaceState.xcuserstate b/GiletaProject/GiletaProject.xcodeproj/project.xcworkspace/xcuserdata/alexander.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..43e4e13446159285be2e609f9c33517ee611ad04 GIT binary patch literal 47352 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 RX8v!pbpHp6|DW`;{{rYy^vM7K literal 0 HcmV?d00001 diff --git a/GiletaProject/GiletaProject.xcodeproj/xcuserdata/alexander.xcuserdatad/xcschemes/xcschememanagement.plist b/GiletaProject/GiletaProject.xcodeproj/xcuserdata/alexander.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 0000000..5242946 --- /dev/null +++ b/GiletaProject/GiletaProject.xcodeproj/xcuserdata/alexander.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,14 @@ + + + + + SchemeUserState + + GiletaProject.xcscheme_^#shared#^_ + + orderHint + 0 + + + + diff --git a/GiletaProject/GiletaProject/AppDelegate.swift b/GiletaProject/GiletaProject/AppDelegate.swift new file mode 100644 index 0000000..1d6ed85 --- /dev/null +++ b/GiletaProject/GiletaProject/AppDelegate.swift @@ -0,0 +1,34 @@ +// +// AppDelegate.swift +// GiletaProject +// +// Created by Alexander on 30.11.2025. +// + +import UIKit + +@main +class AppDelegate: UIResponder, UIApplicationDelegate { + + + + func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { + // Override point for customization after application launch. + return true + } + + func application(_ application: UIApplication, configurationForConnecting connectingSceneSession: UISceneSession, options: UIScene.ConnectionOptions) -> UISceneConfiguration { + // Called when a new scene session is being created. + // Use this method to select a configuration to create the new scene with. + return UISceneConfiguration(name: "Default Configuration", sessionRole: connectingSceneSession.role) + } + + func application(_ application: UIApplication, didDiscardSceneSessions sceneSessions: Set) { + // Called when the user discards a scene session. + // If any sessions were discarded while the application was not running, this will be called shortly after application:didFinishLaunchingWithOptions. + // Use this method to release any resources that were specific to the discarded scenes, as they will not return. + } + + +} + diff --git a/GiletaProject/GiletaProject/Assets.xcassets/AccentColor.colorset/Contents.json b/GiletaProject/GiletaProject/Assets.xcassets/AccentColor.colorset/Contents.json new file mode 100644 index 0000000..eb87897 --- /dev/null +++ b/GiletaProject/GiletaProject/Assets.xcassets/AccentColor.colorset/Contents.json @@ -0,0 +1,11 @@ +{ + "colors" : [ + { + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/GiletaProject/GiletaProject/Assets.xcassets/AppIcon.appiconset/Contents.json b/GiletaProject/GiletaProject/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..2305880 --- /dev/null +++ b/GiletaProject/GiletaProject/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,35 @@ +{ + "images" : [ + { + "idiom" : "universal", + "platform" : "ios", + "size" : "1024x1024" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "idiom" : "universal", + "platform" : "ios", + "size" : "1024x1024" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "tinted" + } + ], + "idiom" : "universal", + "platform" : "ios", + "size" : "1024x1024" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/GiletaProject/GiletaProject/Assets.xcassets/Contents.json b/GiletaProject/GiletaProject/Assets.xcassets/Contents.json new file mode 100644 index 0000000..73c0059 --- /dev/null +++ b/GiletaProject/GiletaProject/Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/GiletaProject/GiletaProject/Base.lproj/LaunchScreen.storyboard b/GiletaProject/GiletaProject/Base.lproj/LaunchScreen.storyboard new file mode 100644 index 0000000..865e932 --- /dev/null +++ b/GiletaProject/GiletaProject/Base.lproj/LaunchScreen.storyboard @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/GiletaProject/GiletaProject/Base.lproj/Main.storyboard b/GiletaProject/GiletaProject/Base.lproj/Main.storyboard new file mode 100644 index 0000000..25a7638 --- /dev/null +++ b/GiletaProject/GiletaProject/Base.lproj/Main.storyboard @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/GiletaProject/GiletaProject/CreateTaskViewController.swift b/GiletaProject/GiletaProject/CreateTaskViewController.swift new file mode 100644 index 0000000..a9a082c --- /dev/null +++ b/GiletaProject/GiletaProject/CreateTaskViewController.swift @@ -0,0 +1,186 @@ +// +// CreateTaskViewController.swift +// GiletaProject +// +// Created by Alexander on 30.11.2025. +// + +import UIKit + +class CreateTaskViewController: UIViewController { + + var onSave: ((Task) -> Void)? + + private let titleField: UITextField = { + let field = UITextField() + field.placeholder = "Название задачи" + field.borderStyle = .roundedRect + return field + }() + + private let descriptionField: UITextView = { + let tv = UITextView() + tv.layer.borderWidth = 1 + tv.layer.cornerRadius = 8 + tv.layer.borderColor = UIColor.secondaryLabel.cgColor + tv.textContainerInset = UIEdgeInsets(top: 8, left: 6, bottom: 8, right: 6) + tv.font = .systemFont(ofSize: 16) + return tv + }() + + private var priority: Int = 1 + private var flagged: Bool = false + private var priorityButtonsArray: [UIButton] = [] + private var flagButtonRef: UIButton! + + private let dateSwitch = UISwitch() + + private let datePicker: UIDatePicker = { + let picker = UIDatePicker() + picker.datePickerMode = .dateAndTime + picker.minimumDate = Date() + picker.isHidden = true + return picker + }() + + override func viewDidLoad() { + super.viewDidLoad() + + view.backgroundColor = .systemBackground + title = "Новая задача" + + navigationItem.rightBarButtonItem = UIBarButtonItem( + title: "Сохранить", + style: .done, + target: self, + action: #selector(saveTapped) + ) + + layoutUI() + addKeyboardHideGesture() + } + + private func layoutUI() { + let stack = UIStackView(arrangedSubviews: [ + titleField, + descriptionField, + makePriorityButtons(), + makeFlagButton(), + makeDeadlineRow(), + datePicker + ]) + + stack.axis = .vertical + stack.spacing = 16 + + view.addSubview(stack) + + stack.translatesAutoresizingMaskIntoConstraints = false + NSLayoutConstraint.activate([ + stack.leadingAnchor.constraint(equalTo: view.leadingAnchor, constant: 16), + stack.trailingAnchor.constraint(equalTo: view.trailingAnchor, constant: -16), + stack.topAnchor.constraint(equalTo: view.safeAreaLayoutGuide.topAnchor, constant: 16), + descriptionField.heightAnchor.constraint(equalToConstant: 120) + ]) + + dateSwitch.addTarget(self, action: #selector(toggleDatePicker), for: .valueChanged) + } + + private func makePriorityButtons() -> UIStackView { + priorityButtonsArray = (1...3).map { num in + let btn = UIButton(type: .system) + btn.setTitle("P\(num)", for: .normal) + btn.tag = num + btn.layer.borderWidth = 1 + btn.layer.cornerRadius = 8 + btn.layer.borderColor = UIColor.secondaryLabel.cgColor + btn.titleLabel?.font = .systemFont(ofSize: 16, weight: .medium) + btn.addTarget(self, action: #selector(setPriority(_:)), for: .touchUpInside) + return btn + } + + updatePriorityUI() + + let stack = UIStackView(arrangedSubviews: priorityButtonsArray) + stack.axis = .horizontal + stack.spacing = 12 + stack.distribution = .fillEqually + + return stack + } + + + @objc private func setPriority(_ sender: UIButton) { + priority = sender.tag + updatePriorityUI() + } + + private func updatePriorityUI() { + for btn in priorityButtonsArray { + if btn.tag == priority { + btn.backgroundColor = .systemBlue + btn.setTitleColor(.white, for: .normal) + } else { + btn.backgroundColor = .clear + btn.setTitleColor(.systemBlue, for: .normal) + } + } + } + + private func makeFlagButton() -> UIButton { + flagButtonRef = UIButton(type: .system) + flagButtonRef.setTitle("⚑ Флаг", for: .normal) + flagButtonRef.addTarget(self, action: #selector(toggleFlag), for: .touchUpInside) + updateFlagUI() + return flagButtonRef + } + + @objc private func toggleFlag() { + flagged.toggle() + updateFlagUI() + } + + private func updateFlagUI() { + flagButtonRef.tintColor = flagged ? .systemRed : .systemBlue + } + + private func makeDeadlineRow() -> UIStackView { + let label = UILabel() + label.text = "Дедлайн" + + let row = UIStackView(arrangedSubviews: [label, dateSwitch]) + row.axis = .horizontal + row.distribution = .equalSpacing + return row + } + + @objc private func toggleDatePicker() { + UIView.animate(withDuration: 0.25) { + self.datePicker.isHidden = !self.dateSwitch.isOn + } + } + + @objc private func saveTapped() { + guard let title = titleField.text, !title.isEmpty else { return } + + let task = Task( + title: title, + description: descriptionField.text ?? "", + priority: priority, + flagged: flagged, + deadline: dateSwitch.isOn ? datePicker.date : nil + ) + + onSave?(task) + navigationController?.popViewController(animated: true) + } + + private func addKeyboardHideGesture() { + let tap = UITapGestureRecognizer(target: self, action: #selector(hideKeyboard)) + view.addGestureRecognizer(tap) + } + + @objc private func hideKeyboard() { + view.endEditing(true) + } +} diff --git a/GiletaProject/GiletaProject/Info.plist b/GiletaProject/GiletaProject/Info.plist new file mode 100644 index 0000000..dd3c9af --- /dev/null +++ b/GiletaProject/GiletaProject/Info.plist @@ -0,0 +1,25 @@ + + + + + UIApplicationSceneManifest + + UIApplicationSupportsMultipleScenes + + UISceneConfigurations + + UIWindowSceneSessionRoleApplication + + + UISceneConfigurationName + Default Configuration + UISceneDelegateClassName + $(PRODUCT_MODULE_NAME).SceneDelegate + UISceneStoryboardFile + Main + + + + + + diff --git a/GiletaProject/GiletaProject/MainTabBarController.swift b/GiletaProject/GiletaProject/MainTabBarController.swift new file mode 100644 index 0000000..844c277 --- /dev/null +++ b/GiletaProject/GiletaProject/MainTabBarController.swift @@ -0,0 +1,28 @@ +// +// MainTabBarController.swift +// GiletaProject +// +// Created by Alexander on 30.11.2025. +// +import UIKit + +class MainTabBarController: UITabBarController { + + override func viewDidLoad() { + super.viewDidLoad() + + viewControllers = [ + createNavController(vc: UIViewController(), title: "Главная", icon: "house"), + createNavController(vc: TasksViewController(), title: "Задачи", icon: "checklist"), + createNavController(vc: UIViewController(), title: "Записи", icon: "note.text") + ] + } + + private func createNavController(vc: UIViewController, title: String, icon: String) -> UINavigationController { + vc.title = title + let nav = UINavigationController(rootViewController: vc) + nav.tabBarItem.title = title + nav.tabBarItem.image = UIImage(systemName: icon) + return nav + } +} diff --git a/GiletaProject/GiletaProject/SceneDelegate.swift b/GiletaProject/GiletaProject/SceneDelegate.swift new file mode 100644 index 0000000..bfd83c2 --- /dev/null +++ b/GiletaProject/GiletaProject/SceneDelegate.swift @@ -0,0 +1,55 @@ +// +// SceneDelegate.swift +// GiletaProject +// +// Created by Alexander on 30.11.2025. +// + +import UIKit + +class SceneDelegate: UIResponder, UIWindowSceneDelegate { + + var window: UIWindow? + + + func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) { + guard let windowScene = (scene as? UIWindowScene) else { return } + + window = UIWindow(windowScene: windowScene) + + let tabBar = MainTabBarController() + window?.rootViewController = tabBar + window?.makeKeyAndVisible() + } + + func sceneDidDisconnect(_ scene: UIScene) { + // Called as the scene is being released by the system. + // This occurs shortly after the scene enters the background, or when its session is discarded. + // Release any resources associated with this scene that can be re-created the next time the scene connects. + // The scene may re-connect later, as its session was not necessarily discarded (see `application:didDiscardSceneSessions` instead). + } + + func sceneDidBecomeActive(_ scene: UIScene) { + // Called when the scene has moved from an inactive state to an active state. + // Use this method to restart any tasks that were paused (or not yet started) when the scene was inactive. + } + + func sceneWillResignActive(_ scene: UIScene) { + // Called when the scene will move from an active state to an inactive state. + // This may occur due to temporary interruptions (ex. an incoming phone call). + } + + func sceneWillEnterForeground(_ scene: UIScene) { + // Called as the scene transitions from the background to the foreground. + // Use this method to undo the changes made on entering the background. + } + + func sceneDidEnterBackground(_ scene: UIScene) { + // Called as the scene transitions from the foreground to the background. + // Use this method to save data, release shared resources, and store enough scene-specific state information + // to restore the scene back to its current state. + } + + +} + diff --git a/GiletaProject/GiletaProject/Task.swift b/GiletaProject/GiletaProject/Task.swift new file mode 100644 index 0000000..9b7f7b2 --- /dev/null +++ b/GiletaProject/GiletaProject/Task.swift @@ -0,0 +1,16 @@ +// +// Task.swift +// GiletaProject +// +// Created by Alexander on 30.11.2025. +// +import UIKit + +struct Task { + var title: String + var description: String? + var priority: Int + var flagged: Bool + var deadline: Date? + var isCompleted: Bool = false +} diff --git a/GiletaProject/GiletaProject/TaskCell.swift b/GiletaProject/GiletaProject/TaskCell.swift new file mode 100644 index 0000000..0c3058d --- /dev/null +++ b/GiletaProject/GiletaProject/TaskCell.swift @@ -0,0 +1,100 @@ +import UIKit + +class TaskCell: UITableViewCell { + + var onComplete: (() -> Void)? + + private let titleLabel = UILabel() + private let descriptionLabel = UILabel() + private let priorityLabel = UILabel() + private let flagLabel = UILabel() // будет справа + private let deadlineLabel = UILabel() + + private let checkButton: UIButton = { + let btn = UIButton(type: .system) + btn.setImage(UIImage(systemName: "circle"), for: .normal) + return btn + }() + + private let infoStack: UIStackView = UIStackView() + + override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) { + super.init(style: style, reuseIdentifier: reuseIdentifier) + + checkButton.addTarget(self, action: #selector(toggleComplete), for: .touchUpInside) + + // ЛЕВЫЙ вертикальный стек с информацией о задаче + infoStack.axis = .vertical + infoStack.spacing = 4 + infoStack.alignment = .leading + infoStack.addArrangedSubview(titleLabel) + infoStack.addArrangedSubview(descriptionLabel) + infoStack.addArrangedSubview(priorityLabel) + // ❌ БЫЛО: infoStack.addArrangedSubview(flagLabel) + infoStack.addArrangedSubview(deadlineLabel) + + // НАСТРОЙКА flagLabel, который будет справа + flagLabel.font = .systemFont(ofSize: 14) + flagLabel.textAlignment = .right + flagLabel.setContentHuggingPriority(.required, for: .horizontal) + flagLabel.setContentCompressionResistancePriority(.required, for: .horizontal) + + // ГОРИЗОНТАЛЬНЫЙ стек: чекбокс слева, инфо по центру, флаг справа + let mainStack = UIStackView(arrangedSubviews: [checkButton, infoStack, flagLabel]) + mainStack.axis = .horizontal + mainStack.spacing = 12 + mainStack.alignment = .top + mainStack.distribution = .fill + + contentView.addSubview(mainStack) + mainStack.translatesAutoresizingMaskIntoConstraints = false + NSLayoutConstraint.activate([ + mainStack.leadingAnchor.constraint(equalTo: contentView.leadingAnchor, constant: 16), + mainStack.trailingAnchor.constraint(equalTo: contentView.trailingAnchor, constant: -16), + mainStack.topAnchor.constraint(equalTo: contentView.topAnchor, constant: 12), + mainStack.bottomAnchor.constraint(equalTo: contentView.bottomAnchor, constant: -12) + ]) + + titleLabel.font = .boldSystemFont(ofSize: 16) + descriptionLabel.font = .systemFont(ofSize: 14) + descriptionLabel.textColor = .secondaryLabel + priorityLabel.font = .systemFont(ofSize: 14) + deadlineLabel.font = .systemFont(ofSize: 14) + deadlineLabel.textColor = .systemRed + } + + @objc private func toggleComplete() { + onComplete?() + } + + func configure(with task: Task) { + titleLabel.text = task.title + descriptionLabel.text = task.description + priorityLabel.text = "Приоритет: P\(task.priority)" + + // флаг справа + if task.flagged { + flagLabel.text = "⚑" + flagLabel.isHidden = false + } else { + flagLabel.text = nil + flagLabel.isHidden = true + } + + if let deadline = task.deadline { + let formatter = DateFormatter() + formatter.dateStyle = .short + formatter.timeStyle = .short + deadlineLabel.text = "Дедлайн: \(formatter.string(from: deadline))" + } else { + deadlineLabel.text = "" + } + + let icon = task.isCompleted ? "checkmark.circle.fill" : "circle" + checkButton.setImage(UIImage(systemName: icon), for: .normal) + } + + required init?(coder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } +} diff --git a/GiletaProject/GiletaProject/TasksViewController.swift b/GiletaProject/GiletaProject/TasksViewController.swift new file mode 100644 index 0000000..fc053c5 --- /dev/null +++ b/GiletaProject/GiletaProject/TasksViewController.swift @@ -0,0 +1,114 @@ +import UIKit + +class TasksViewController: UIViewController { + + private var tasks: [Task] = [] + private var sections: [Int] = [] + + private let tableView = UITableView() + private let emptyLabel: UILabel = { + let label = UILabel() + label.text = "Задач нет" + label.textAlignment = .center + label.font = .systemFont(ofSize: 20) + return label + }() + + override func viewDidLoad() { + super.viewDidLoad() + view.backgroundColor = .systemBackground + title = "Задачи" + + navigationItem.rightBarButtonItem = UIBarButtonItem( + barButtonSystemItem: .add, + target: self, + action: #selector(addTapped) + ) + + setupTable() + sortTasks() + rebuildSections() + updateView() + } + + private func setupTable() { + tableView.frame = view.bounds + tableView.autoresizingMask = [.flexibleWidth, .flexibleHeight] + tableView.dataSource = self + tableView.delegate = self + tableView.register(TaskCell.self, forCellReuseIdentifier: "TaskCell") + tableView.rowHeight = UITableView.automaticDimension + tableView.estimatedRowHeight = 100 + view.addSubview(tableView) + } + + private func updateView() { + if tasks.isEmpty { + tableView.isHidden = true + emptyLabel.frame = view.bounds + view.addSubview(emptyLabel) + } else { + tableView.isHidden = false + emptyLabel.removeFromSuperview() + } + } + + private func sortTasks() { + tasks.sort { $0.priority > $1.priority } + } + + private func rebuildSections() { + let uniquePriorities = Set(tasks.map { $0.priority }) + sections = uniquePriorities.sorted(by: >) + } + + private func taskInfo(for indexPath: IndexPath) -> (task: Task, globalIndex: Int) { + let priority = sections[indexPath.section] + let filtered = tasks.enumerated().filter { $0.element.priority == priority } + let pair = filtered[indexPath.row] + return (pair.element, pair.offset) + } + + @objc private func addTapped() { + let vc = CreateTaskViewController() + vc.onSave = { [weak self] task in + guard let self = self else { return } + self.tasks.append(task) + self.sortTasks() + self.rebuildSections() + self.tableView.reloadData() + self.updateView() + } + navigationController?.pushViewController(vc, animated: true) + } +} + +extension TasksViewController: UITableViewDataSource, UITableViewDelegate { + func numberOfSections(in tableView: UITableView) -> Int { + sections.count + } + + func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { + let priority = sections[section] + return tasks.filter { $0.priority == priority }.count + } + + func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String? { + let priority = sections[section] + return "Приоритет P\(priority)" + } + + func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { + let cell = tableView.dequeueReusableCell(withIdentifier: "TaskCell", for: indexPath) as! TaskCell + let info = taskInfo(for: indexPath) + cell.configure(with: info.task) + + cell.onComplete = { [weak self, weak tableView] in + guard let self = self, let tableView = tableView else { return } + self.tasks[info.globalIndex].isCompleted.toggle() + tableView.reloadRows(at: [indexPath], with: .automatic) + } + + return cell + } +} From 6b0d381122dc22caace3f95f894f09a04d5e812b Mon Sep 17 00:00:00 2001 From: alexander-gileta Date: Mon, 8 Dec 2025 03:46:20 +0700 Subject: [PATCH 2/8] Add files via upload --- GiletaProjectNotIOS/TaskAppNotIOS.zip | Bin 0 -> 104766 bytes GiletaProjectNotIOS/build.gradle.kts | 6 + GiletaProjectNotIOS/gradle.properties | 23 ++ GiletaProjectNotIOS/gradle/libs.versions.toml | 32 +++ .../gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 45457 bytes .../gradle/wrapper/gradle-wrapper.properties | 8 + GiletaProjectNotIOS/gradlew | 251 ++++++++++++++++++ GiletaProjectNotIOS/gradlew.bat | 94 +++++++ GiletaProjectNotIOS/local.properties | 8 + GiletaProjectNotIOS/settings.gradle.kts | 23 ++ 10 files changed, 445 insertions(+) create mode 100644 GiletaProjectNotIOS/TaskAppNotIOS.zip create mode 100644 GiletaProjectNotIOS/build.gradle.kts create mode 100644 GiletaProjectNotIOS/gradle.properties create mode 100644 GiletaProjectNotIOS/gradle/libs.versions.toml create mode 100644 GiletaProjectNotIOS/gradle/wrapper/gradle-wrapper.jar create mode 100644 GiletaProjectNotIOS/gradle/wrapper/gradle-wrapper.properties create mode 100644 GiletaProjectNotIOS/gradlew create mode 100644 GiletaProjectNotIOS/gradlew.bat create mode 100644 GiletaProjectNotIOS/local.properties create mode 100644 GiletaProjectNotIOS/settings.gradle.kts diff --git a/GiletaProjectNotIOS/TaskAppNotIOS.zip b/GiletaProjectNotIOS/TaskAppNotIOS.zip new file mode 100644 index 0000000000000000000000000000000000000000..628ee580848aa63b8cdc337d3640a6dfb5584547 GIT binary patch literal 104766 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 XMFA1W%OH?C@WV|B0_~j@HK6|k33rUT literal 0 HcmV?d00001 diff --git a/GiletaProjectNotIOS/build.gradle.kts b/GiletaProjectNotIOS/build.gradle.kts new file mode 100644 index 0000000..952b930 --- /dev/null +++ b/GiletaProjectNotIOS/build.gradle.kts @@ -0,0 +1,6 @@ +// Top-level build file where you can add configuration options common to all sub-projects/modules. +plugins { + alias(libs.plugins.android.application) apply false + alias(libs.plugins.kotlin.android) apply false + alias(libs.plugins.kotlin.compose) apply false +} \ No newline at end of file diff --git a/GiletaProjectNotIOS/gradle.properties b/GiletaProjectNotIOS/gradle.properties new file mode 100644 index 0000000..20e2a01 --- /dev/null +++ b/GiletaProjectNotIOS/gradle.properties @@ -0,0 +1,23 @@ +# Project-wide Gradle settings. +# IDE (e.g. Android Studio) users: +# Gradle settings configured through the IDE *will override* +# any settings specified in this file. +# For more details on how to configure your build environment visit +# http://www.gradle.org/docs/current/userguide/build_environment.html +# Specifies the JVM arguments used for the daemon process. +# The setting is particularly useful for tweaking memory settings. +org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8 +# When configured, Gradle will run in incubating parallel mode. +# This option should only be used with decoupled projects. For more details, visit +# https://developer.android.com/r/tools/gradle-multi-project-decoupled-projects +# org.gradle.parallel=true +# AndroidX package structure to make it clearer which packages are bundled with the +# Android operating system, and which are packaged with your app's APK +# https://developer.android.com/topic/libraries/support-library/androidx-rn +android.useAndroidX=true +# Kotlin code style for this project: "official" or "obsolete": +kotlin.code.style=official +# Enables namespacing of each library's R class so that its R class includes only the +# resources declared in the library itself and none from the library's dependencies, +# thereby reducing the size of the R class for that library +android.nonTransitiveRClass=true \ No newline at end of file diff --git a/GiletaProjectNotIOS/gradle/libs.versions.toml b/GiletaProjectNotIOS/gradle/libs.versions.toml new file mode 100644 index 0000000..e1e866c --- /dev/null +++ b/GiletaProjectNotIOS/gradle/libs.versions.toml @@ -0,0 +1,32 @@ +[versions] +agp = "8.13.1" +kotlin = "2.0.21" +coreKtx = "1.17.0" +junit = "4.13.2" +junitVersion = "1.3.0" +espressoCore = "3.7.0" +lifecycleRuntimeKtx = "2.10.0" +activityCompose = "1.12.0" +composeBom = "2024.09.00" + +[libraries] +androidx-core-ktx = { group = "androidx.core", name = "core-ktx", version.ref = "coreKtx" } +junit = { group = "junit", name = "junit", version.ref = "junit" } +androidx-junit = { group = "androidx.test.ext", name = "junit", version.ref = "junitVersion" } +androidx-espresso-core = { group = "androidx.test.espresso", name = "espresso-core", version.ref = "espressoCore" } +androidx-lifecycle-runtime-ktx = { group = "androidx.lifecycle", name = "lifecycle-runtime-ktx", version.ref = "lifecycleRuntimeKtx" } +androidx-activity-compose = { group = "androidx.activity", name = "activity-compose", version.ref = "activityCompose" } +androidx-compose-bom = { group = "androidx.compose", name = "compose-bom", version.ref = "composeBom" } +androidx-compose-ui = { group = "androidx.compose.ui", name = "ui" } +androidx-compose-ui-graphics = { group = "androidx.compose.ui", name = "ui-graphics" } +androidx-compose-ui-tooling = { group = "androidx.compose.ui", name = "ui-tooling" } +androidx-compose-ui-tooling-preview = { group = "androidx.compose.ui", name = "ui-tooling-preview" } +androidx-compose-ui-test-manifest = { group = "androidx.compose.ui", name = "ui-test-manifest" } +androidx-compose-ui-test-junit4 = { group = "androidx.compose.ui", name = "ui-test-junit4" } +androidx-compose-material3 = { group = "androidx.compose.material3", name = "material3" } + +[plugins] +android-application = { id = "com.android.application", version.ref = "agp" } +kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" } +kotlin-compose = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" } + diff --git a/GiletaProjectNotIOS/gradle/wrapper/gradle-wrapper.jar b/GiletaProjectNotIOS/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..8bdaf60c75ab801e22807dde59e12a8735a34077 GIT binary patch literal 45457 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 c82=K%QXLKFx%@O{wJjEi6Y56o#$)Bpeg literal 0 HcmV?d00001 diff --git a/GiletaProjectNotIOS/gradle/wrapper/gradle-wrapper.properties b/GiletaProjectNotIOS/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..5ef7fc9 --- /dev/null +++ b/GiletaProjectNotIOS/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,8 @@ +#Sun Nov 30 17:15:33 NOVT 2025 +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip +networkTimeout=10000 +validateDistributionUrl=true +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists diff --git a/GiletaProjectNotIOS/gradlew b/GiletaProjectNotIOS/gradlew new file mode 100644 index 0000000..ef07e01 --- /dev/null +++ b/GiletaProjectNotIOS/gradlew @@ -0,0 +1,251 @@ +#!/bin/sh + +# +# Copyright © 2015 the original authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# SPDX-License-Identifier: Apache-2.0 +# + +############################################################################## +# +# Gradle start up script for POSIX generated by Gradle. +# +# Important for running: +# +# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is +# noncompliant, but you have some other compliant shell such as ksh or +# bash, then to run this script, type that shell name before the whole +# command line, like: +# +# ksh Gradle +# +# Busybox and similar reduced shells will NOT work, because this script +# requires all of these POSIX shell features: +# * functions; +# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», +# «${var#prefix}», «${var%suffix}», and «$( cmd )»; +# * compound commands having a testable exit status, especially «case»; +# * various built-in commands including «command», «set», and «ulimit». +# +# Important for patching: +# +# (2) This script targets any POSIX shell, so it avoids extensions provided +# by Bash, Ksh, etc; in particular arrays are avoided. +# +# The "traditional" practice of packing multiple parameters into a +# space-separated string is a well documented source of bugs and security +# problems, so this is (mostly) avoided, by progressively accumulating +# options in "$@", and eventually passing that to Java. +# +# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, +# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; +# see the in-line comments for details. +# +# There are tweaks for specific operating systems such as AIX, CygWin, +# Darwin, MinGW, and NonStop. +# +# (3) This script is generated from the Groovy template +# https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# within the Gradle project. +# +# You can find Gradle at https://github.com/gradle/gradle/. +# +############################################################################## + +# Attempt to set APP_HOME + +# Resolve links: $0 may be a link +app_path=$0 + +# Need this for daisy-chained symlinks. +while + APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path + [ -h "$app_path" ] +do + ls=$( ls -ld "$app_path" ) + link=${ls#*' -> '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac +done + +# This is normally unused +# shellcheck disable=SC2034 +APP_BASE_NAME=${0##*/} +# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) +APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s\n' "$PWD" ) || exit + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD=maximum + +warn () { + echo "$*" +} >&2 + +die () { + echo + echo "$*" + echo + exit 1 +} >&2 + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; +esac + +CLASSPATH="\\\"\\\"" + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD=$JAVA_HOME/jre/sh/java + else + JAVACMD=$JAVA_HOME/bin/java + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD=java + if ! command -v java >/dev/null 2>&1 + then + die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +fi + +# Increase the maximum file descriptors if we can. +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac +fi + +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. + +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) + + # Now convert the arguments - kludge to limit ourselves to /bin/sh + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) + fi + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg + done +fi + + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Collect all arguments for the java command: +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# and any embedded shellness will be escaped. +# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be +# treated as '${Hostname}' itself on the command line. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -classpath "$CLASSPATH" \ + -jar "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" \ + "$@" + +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then + die "xargs is not available" +fi + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' + +exec "$JAVACMD" "$@" diff --git a/GiletaProjectNotIOS/gradlew.bat b/GiletaProjectNotIOS/gradlew.bat new file mode 100644 index 0000000..5eed7ee --- /dev/null +++ b/GiletaProjectNotIOS/gradlew.bat @@ -0,0 +1,94 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem +@rem SPDX-License-Identifier: Apache-2.0 +@rem + +@if "%DEBUG%"=="" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%"=="" set DIRNAME=. +@rem This is normally unused +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if %ERRORLEVEL% equ 0 goto execute + +echo. 1>&2 +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. 1>&2 +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH= + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %* + +:end +@rem End local scope for the variables with windows NT shell +if %ERRORLEVEL% equ 0 goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +set EXIT_CODE=%ERRORLEVEL% +if %EXIT_CODE% equ 0 set EXIT_CODE=1 +if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% +exit /b %EXIT_CODE% + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/GiletaProjectNotIOS/local.properties b/GiletaProjectNotIOS/local.properties new file mode 100644 index 0000000..b1aba04 --- /dev/null +++ b/GiletaProjectNotIOS/local.properties @@ -0,0 +1,8 @@ +## This file must *NOT* be checked into Version Control Systems, +# as it contains information specific to your local configuration. +# +# Location of the SDK. This is only used by Gradle. +# For customization when using a Version Control System, please read the +# header note. +#Sun Dec 07 23:01:45 MSK 2025 +sdk.dir=/Users/alexander/Library/Android/sdk diff --git a/GiletaProjectNotIOS/settings.gradle.kts b/GiletaProjectNotIOS/settings.gradle.kts new file mode 100644 index 0000000..d0f4538 --- /dev/null +++ b/GiletaProjectNotIOS/settings.gradle.kts @@ -0,0 +1,23 @@ +pluginManagement { + repositories { + google { + content { + includeGroupByRegex("com\\.android.*") + includeGroupByRegex("com\\.google.*") + includeGroupByRegex("androidx.*") + } + } + mavenCentral() + gradlePluginPortal() + } +} +dependencyResolutionManagement { + repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) + repositories { + google() + mavenCentral() + } +} + +rootProject.name = "TaskApp" +include(":app") From d1ce7f8522ee88c03511b80d95d5a79a952fa1ff Mon Sep 17 00:00:00 2001 From: alexander-gileta Date: Mon, 8 Dec 2025 03:47:11 +0700 Subject: [PATCH 3/8] Add files via upload --- GiletaProjectNotIOS/app/proguard-rules.pro | 21 +++ .../taskapp/ExampleInstrumentedTest.kt | 24 +++ .../app/src/main/AndroidManifest.xml | 27 +++ .../java/com/example/taskapp/MainActivity.kt | 21 +++ .../java/com/example/taskapp/model/Task.kt | 13 ++ .../example/taskapp/ui/components/TaskCard.kt | 55 ++++++ .../example/taskapp/ui/navigation/NavGraph.kt | 23 +++ .../taskapp/ui/screens/AddTaskScreen.kt | 147 +++++++++++++++ .../example/taskapp/ui/screens/MainScreen.kt | 105 +++++++++++ .../example/taskapp/ui/screens/TasksTab.kt | 56 ++++++ .../com/example/taskapp/ui/theme/Color.kt | 11 ++ .../com/example/taskapp/ui/theme/Theme.kt | 58 ++++++ .../java/com/example/taskapp/ui/theme/Type.kt | 34 ++++ .../taskapp/viewmodel/TasksViewModel.kt | 20 +++ .../res/drawable/ic_launcher_background.xml | 170 ++++++++++++++++++ .../res/drawable/ic_launcher_foreground.xml | 30 ++++ .../res/mipmap-anydpi-v26/ic_launcher.xml | 6 + .../mipmap-anydpi-v26/ic_launcher_round.xml | 6 + .../src/main/res/mipmap-hdpi/ic_launcher.webp | Bin 0 -> 1404 bytes .../res/mipmap-hdpi/ic_launcher_round.webp | Bin 0 -> 2898 bytes .../src/main/res/mipmap-mdpi/ic_launcher.webp | Bin 0 -> 982 bytes .../res/mipmap-mdpi/ic_launcher_round.webp | Bin 0 -> 1772 bytes .../main/res/mipmap-xhdpi/ic_launcher.webp | Bin 0 -> 1900 bytes .../res/mipmap-xhdpi/ic_launcher_round.webp | Bin 0 -> 3918 bytes .../main/res/mipmap-xxhdpi/ic_launcher.webp | Bin 0 -> 2884 bytes .../res/mipmap-xxhdpi/ic_launcher_round.webp | Bin 0 -> 5914 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.webp | Bin 0 -> 3844 bytes .../res/mipmap-xxxhdpi/ic_launcher_round.webp | Bin 0 -> 7778 bytes .../app/src/main/res/values/colors.xml | 10 ++ .../app/src/main/res/values/strings.xml | 3 + .../app/src/main/res/values/themes.xml | 5 + .../app/src/main/res/xml/backup_rules.xml | 13 ++ .../main/res/xml/data_extraction_rules.xml | 19 ++ .../com/example/taskapp/ExampleUnitTest.kt | 17 ++ 34 files changed, 894 insertions(+) create mode 100644 GiletaProjectNotIOS/app/proguard-rules.pro create mode 100644 GiletaProjectNotIOS/app/src/androidTest/java/com/example/taskapp/ExampleInstrumentedTest.kt create mode 100644 GiletaProjectNotIOS/app/src/main/AndroidManifest.xml create mode 100644 GiletaProjectNotIOS/app/src/main/java/com/example/taskapp/MainActivity.kt create mode 100644 GiletaProjectNotIOS/app/src/main/java/com/example/taskapp/model/Task.kt create mode 100644 GiletaProjectNotIOS/app/src/main/java/com/example/taskapp/ui/components/TaskCard.kt create mode 100644 GiletaProjectNotIOS/app/src/main/java/com/example/taskapp/ui/navigation/NavGraph.kt create mode 100644 GiletaProjectNotIOS/app/src/main/java/com/example/taskapp/ui/screens/AddTaskScreen.kt create mode 100644 GiletaProjectNotIOS/app/src/main/java/com/example/taskapp/ui/screens/MainScreen.kt create mode 100644 GiletaProjectNotIOS/app/src/main/java/com/example/taskapp/ui/screens/TasksTab.kt create mode 100644 GiletaProjectNotIOS/app/src/main/java/com/example/taskapp/ui/theme/Color.kt create mode 100644 GiletaProjectNotIOS/app/src/main/java/com/example/taskapp/ui/theme/Theme.kt create mode 100644 GiletaProjectNotIOS/app/src/main/java/com/example/taskapp/ui/theme/Type.kt create mode 100644 GiletaProjectNotIOS/app/src/main/java/com/example/taskapp/viewmodel/TasksViewModel.kt create mode 100644 GiletaProjectNotIOS/app/src/main/res/drawable/ic_launcher_background.xml create mode 100644 GiletaProjectNotIOS/app/src/main/res/drawable/ic_launcher_foreground.xml create mode 100644 GiletaProjectNotIOS/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml create mode 100644 GiletaProjectNotIOS/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml create mode 100644 GiletaProjectNotIOS/app/src/main/res/mipmap-hdpi/ic_launcher.webp create mode 100644 GiletaProjectNotIOS/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp create mode 100644 GiletaProjectNotIOS/app/src/main/res/mipmap-mdpi/ic_launcher.webp create mode 100644 GiletaProjectNotIOS/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp create mode 100644 GiletaProjectNotIOS/app/src/main/res/mipmap-xhdpi/ic_launcher.webp create mode 100644 GiletaProjectNotIOS/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp create mode 100644 GiletaProjectNotIOS/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp create mode 100644 GiletaProjectNotIOS/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp create mode 100644 GiletaProjectNotIOS/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp create mode 100644 GiletaProjectNotIOS/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp create mode 100644 GiletaProjectNotIOS/app/src/main/res/values/colors.xml create mode 100644 GiletaProjectNotIOS/app/src/main/res/values/strings.xml create mode 100644 GiletaProjectNotIOS/app/src/main/res/values/themes.xml create mode 100644 GiletaProjectNotIOS/app/src/main/res/xml/backup_rules.xml create mode 100644 GiletaProjectNotIOS/app/src/main/res/xml/data_extraction_rules.xml create mode 100644 GiletaProjectNotIOS/app/src/test/java/com/example/taskapp/ExampleUnitTest.kt diff --git a/GiletaProjectNotIOS/app/proguard-rules.pro b/GiletaProjectNotIOS/app/proguard-rules.pro new file mode 100644 index 0000000..481bb43 --- /dev/null +++ b/GiletaProjectNotIOS/app/proguard-rules.pro @@ -0,0 +1,21 @@ +# Add project specific ProGuard rules here. +# You can control the set of applied configuration files using the +# proguardFiles setting in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} + +# Uncomment this to preserve the line number information for +# debugging stack traces. +#-keepattributes SourceFile,LineNumberTable + +# If you keep the line number information, uncomment this to +# hide the original source file name. +#-renamesourcefileattribute SourceFile \ No newline at end of file diff --git a/GiletaProjectNotIOS/app/src/androidTest/java/com/example/taskapp/ExampleInstrumentedTest.kt b/GiletaProjectNotIOS/app/src/androidTest/java/com/example/taskapp/ExampleInstrumentedTest.kt new file mode 100644 index 0000000..1365fe7 --- /dev/null +++ b/GiletaProjectNotIOS/app/src/androidTest/java/com/example/taskapp/ExampleInstrumentedTest.kt @@ -0,0 +1,24 @@ +package com.example.taskapp + +import androidx.test.platform.app.InstrumentationRegistry +import androidx.test.ext.junit.runners.AndroidJUnit4 + +import org.junit.Test +import org.junit.runner.RunWith + +import org.junit.Assert.* + +/** + * Instrumented test, which will execute on an Android device. + * + * See [testing documentation](http://d.android.com/tools/testing). + */ +@RunWith(AndroidJUnit4::class) +class ExampleInstrumentedTest { + @Test + fun useAppContext() { + // Context of the app under test. + val appContext = InstrumentationRegistry.getInstrumentation().targetContext + assertEquals("com.example.taskapp", appContext.packageName) + } +} \ No newline at end of file diff --git a/GiletaProjectNotIOS/app/src/main/AndroidManifest.xml b/GiletaProjectNotIOS/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000..8651d91 --- /dev/null +++ b/GiletaProjectNotIOS/app/src/main/AndroidManifest.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/GiletaProjectNotIOS/app/src/main/java/com/example/taskapp/MainActivity.kt b/GiletaProjectNotIOS/app/src/main/java/com/example/taskapp/MainActivity.kt new file mode 100644 index 0000000..76a91e8 --- /dev/null +++ b/GiletaProjectNotIOS/app/src/main/java/com/example/taskapp/MainActivity.kt @@ -0,0 +1,21 @@ +package com.example.taskapp + +import android.os.Bundle +import androidx.activity.ComponentActivity +import androidx.activity.compose.setContent +import com.example.taskapp.ui.navigation.AppNav +import com.example.taskapp.ui.theme.TaskAppTheme +import com.example.taskapp.viewmodel.TasksViewModel + +class MainActivity : ComponentActivity() { + private val tasksViewModel = TasksViewModel() + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setContent { + TaskAppTheme { + AppNav(tasksViewModel) + } + } + } +} diff --git a/GiletaProjectNotIOS/app/src/main/java/com/example/taskapp/model/Task.kt b/GiletaProjectNotIOS/app/src/main/java/com/example/taskapp/model/Task.kt new file mode 100644 index 0000000..4ba129c --- /dev/null +++ b/GiletaProjectNotIOS/app/src/main/java/com/example/taskapp/model/Task.kt @@ -0,0 +1,13 @@ +package com.example.taskapp.model + +import java.util.* + +data class Task( + val id: UUID = UUID.randomUUID(), + val title: String, + val description: String? = null, + val priority: Int = 1, + val flag: Boolean = false, + val dueDate: Date? = null, + var isCompleted: Boolean = false +) diff --git a/GiletaProjectNotIOS/app/src/main/java/com/example/taskapp/ui/components/TaskCard.kt b/GiletaProjectNotIOS/app/src/main/java/com/example/taskapp/ui/components/TaskCard.kt new file mode 100644 index 0000000..46fbc7a --- /dev/null +++ b/GiletaProjectNotIOS/app/src/main/java/com/example/taskapp/ui/components/TaskCard.kt @@ -0,0 +1,55 @@ +package com.example.taskapp.components + +import androidx.compose.foundation.layout.* +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.filled.Flag +import androidx.compose.material3.Card +import androidx.compose.material3.Checkbox +import androidx.compose.material3.Icon +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.unit.dp +import com.example.taskapp.model.Task + +@Composable +fun TaskCard(task: Task, onCheckedChange: () -> Unit) { + Card( + modifier = Modifier + .fillMaxWidth() + .padding(vertical = 4.dp) + ) { + Row( + modifier = Modifier + .fillMaxWidth() + .padding(16.dp), + verticalAlignment = Alignment.CenterVertically + ) { + Checkbox( + checked = task.isCompleted, + onCheckedChange = { onCheckedChange() } + ) + + Spacer(modifier = Modifier.width(16.dp)) + + Column( + modifier = Modifier.weight(1f) + ) { + Text(task.title, style = MaterialTheme.typography.titleMedium) + task.description?.let { Text(it) } + Text("Приоритет: ${task.priority}") + task.dueDate?.let { Text("Срок: $it") } + } + + if (task.flag) { + Spacer(modifier = Modifier.width(8.dp)) + Icon( + imageVector = Icons.Filled.Flag, + contentDescription = "Флаг" + ) + } + } + } +} diff --git a/GiletaProjectNotIOS/app/src/main/java/com/example/taskapp/ui/navigation/NavGraph.kt b/GiletaProjectNotIOS/app/src/main/java/com/example/taskapp/ui/navigation/NavGraph.kt new file mode 100644 index 0000000..f1ceedc --- /dev/null +++ b/GiletaProjectNotIOS/app/src/main/java/com/example/taskapp/ui/navigation/NavGraph.kt @@ -0,0 +1,23 @@ +package com.example.taskapp.ui.navigation + +import androidx.compose.runtime.Composable +import androidx.navigation.compose.NavHost +import androidx.navigation.compose.composable +import androidx.navigation.compose.rememberNavController +import com.example.taskapp.ui.screens.AddTaskScreen +import com.example.taskapp.ui.screens.MainScreen +import com.example.taskapp.viewmodel.TasksViewModel + +sealed class Screen(val route: String) { + object Main : Screen("main") + object AddTask : Screen("add_task") +} + +@Composable +fun AppNav(viewModel: TasksViewModel) { + val navController = rememberNavController() + NavHost(navController, startDestination = Screen.Main.route) { + composable(Screen.Main.route) { MainScreen(navController, viewModel) } + composable(Screen.AddTask.route) { AddTaskScreen(navController, viewModel) } + } +} diff --git a/GiletaProjectNotIOS/app/src/main/java/com/example/taskapp/ui/screens/AddTaskScreen.kt b/GiletaProjectNotIOS/app/src/main/java/com/example/taskapp/ui/screens/AddTaskScreen.kt new file mode 100644 index 0000000..4271701 --- /dev/null +++ b/GiletaProjectNotIOS/app/src/main/java/com/example/taskapp/ui/screens/AddTaskScreen.kt @@ -0,0 +1,147 @@ +package com.example.taskapp.ui.screens + +import androidx.compose.ui.Alignment +import androidx.compose.foundation.layout.* +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.filled.ArrowBack +import androidx.compose.material3.* +import androidx.compose.runtime.* +import androidx.compose.ui.Modifier +import androidx.compose.ui.unit.dp +import androidx.navigation.NavHostController +import com.example.taskapp.model.Task +import com.example.taskapp.viewmodel.TasksViewModel +import java.util.* +import android.app.DatePickerDialog +import android.app.TimePickerDialog +import androidx.compose.material3.Switch +import androidx.compose.ui.draw.alpha +import androidx.compose.ui.platform.LocalContext +import java.text.SimpleDateFormat + +@OptIn(ExperimentalMaterial3Api::class) +@Composable +fun AddTaskScreen(navController: NavHostController, viewModel: TasksViewModel) { + var title by remember { mutableStateOf("") } + var description by remember { mutableStateOf("") } + var priority by remember { mutableStateOf(1) } + var flag by remember { mutableStateOf(false) } + var dueDate by remember { mutableStateOf(null) } + var enableDate by remember { mutableStateOf(false) } + + val context = LocalContext.current + val calendar = Calendar.getInstance() + val dateFormat = SimpleDateFormat("dd.MM.yyyy HH:mm", Locale.getDefault()) + + Scaffold( + topBar = { + TopAppBar( + title = { Text("Создать задачу") }, + navigationIcon = { + IconButton(onClick = { navController.popBackStack() }) { + Icon(Icons.Default.ArrowBack, contentDescription = "Назад") + } + } + ) + }, + content = { padding -> + Column( + modifier = Modifier + .padding(padding) + .padding(16.dp) + ) { + OutlinedTextField( + value = title, + onValueChange = { title = it }, + label = { Text("Название задачи") }, + modifier = Modifier.fillMaxWidth() + ) + Spacer(modifier = Modifier.height(8.dp)) + OutlinedTextField( + value = description, + onValueChange = { description = it }, + label = { Text("Описание задачи (опционально)") }, + modifier = Modifier.fillMaxWidth() + ) + Spacer(modifier = Modifier.height(8.dp)) + Text("Приоритет") + Row { + (1..3).forEach { p -> + val isSelected = priority == p + + Button( + onClick = { priority = p }, + modifier = Modifier.alpha(if (isSelected) 1f else 0.5f), + colors = ButtonDefaults.buttonColors( + containerColor = MaterialTheme.colorScheme.primary, + contentColor = MaterialTheme.colorScheme.onPrimary + ) + ) { + Text("$p") + } + + Spacer(modifier = Modifier.width(8.dp)) + } + } + + Spacer(modifier = Modifier.height(8.dp)) + Row(verticalAlignment = Alignment.CenterVertically) { + Checkbox(checked = flag, onCheckedChange = { flag = it }) + Text("Флаг") + } + Spacer(modifier = Modifier.height(8.dp)) + Row(verticalAlignment = Alignment.CenterVertically) { + Text("Срок выполнения") + Spacer(modifier = Modifier.width(8.dp)) + Switch(checked = enableDate, onCheckedChange = { enableDate = it }) + } + if (enableDate) { + Button(onClick = { + DatePickerDialog( + context, + { _, year, month, dayOfMonth -> + calendar.set(year, month, dayOfMonth) + TimePickerDialog( + context, + { _, hour, minute -> + calendar.set(Calendar.HOUR_OF_DAY, hour) + calendar.set(Calendar.MINUTE, minute) + dueDate = calendar.time + }, + calendar.get(Calendar.HOUR_OF_DAY), + calendar.get(Calendar.MINUTE), + true + ).show() + }, + calendar.get(Calendar.YEAR), + calendar.get(Calendar.MONTH), + calendar.get(Calendar.DAY_OF_MONTH) + ).show() + }) { + Text(dueDate?.let { dateFormat.format(it) } ?: "Выбрать дату") + } + } + Spacer(modifier = Modifier.height(16.dp)) + Button( + onClick = { + if (title.isNotBlank()) { + viewModel.addTask( + Task( + title = title, + description = description.ifBlank { null }, + priority = priority, + flag = flag, + dueDate = if (enableDate) dueDate else null + ) + ) + navController.popBackStack() + } + }, + modifier = Modifier.fillMaxWidth() + ) { + Text("Сохранить") + } + } + } + ) +} diff --git a/GiletaProjectNotIOS/app/src/main/java/com/example/taskapp/ui/screens/MainScreen.kt b/GiletaProjectNotIOS/app/src/main/java/com/example/taskapp/ui/screens/MainScreen.kt new file mode 100644 index 0000000..f343cd5 --- /dev/null +++ b/GiletaProjectNotIOS/app/src/main/java/com/example/taskapp/ui/screens/MainScreen.kt @@ -0,0 +1,105 @@ +package com.example.taskapp.ui.screens + +import androidx.compose.foundation.layout.* +import androidx.compose.material3.* +import androidx.compose.runtime.* +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.unit.dp +import androidx.navigation.NavHostController +import com.example.taskapp.viewmodel.TasksViewModel +import com.example.taskapp.ui.screens.TasksTab + +@OptIn(ExperimentalMaterial3Api::class) +@Composable +fun MainScreen(navController: NavHostController, viewModel: TasksViewModel) { + var selectedTab by remember { mutableStateOf(0) } + val tabs = listOf("Главная", "Задачи", "Записи") + + Scaffold { padding -> + Box( + modifier = Modifier + .fillMaxSize() + .padding(padding) + ) { + when (selectedTab) { + 0 -> { + Column( + modifier = Modifier + .fillMaxSize() + .padding(16.dp) + ) { + Text( + text = "Главная", + style = MaterialTheme.typography.titleLarge + ) + } + } + + 1 -> { + Column( + modifier = Modifier.fillMaxSize() + ) { + Text( + text = "Задачи", + style = MaterialTheme.typography.titleLarge, + modifier = Modifier.padding(16.dp) + ) + TasksTab( + viewModel = viewModel, + modifier = Modifier + .fillMaxSize() + .padding(horizontal = 16.dp) + ) + } + } + + 2 -> { + Column( + modifier = Modifier + .fillMaxSize() + .padding(16.dp) + ) { + Text( + text = "Записи", + style = MaterialTheme.typography.titleLarge + ) + } + } + } + + if (selectedTab == 1) { + FloatingActionButton( + onClick = { navController.navigate("add_task") }, + modifier = Modifier + .align(Alignment.TopEnd) + .padding(16.dp) + ) { + Text("+") + } + } + + TabRow( + selectedTabIndex = selectedTab, + modifier = Modifier + .align(Alignment.BottomCenter) + .fillMaxWidth() + .height(60.dp) + ) { + tabs.forEachIndexed { index, title -> + Tab( + selected = selectedTab == index, + onClick = { selectedTab = index }, + modifier = Modifier.height(60.dp), + text = { + Text( + text = title, + style = MaterialTheme.typography.titleLarge + ) + } + ) + } + } + } + } +} diff --git a/GiletaProjectNotIOS/app/src/main/java/com/example/taskapp/ui/screens/TasksTab.kt b/GiletaProjectNotIOS/app/src/main/java/com/example/taskapp/ui/screens/TasksTab.kt new file mode 100644 index 0000000..b744379 --- /dev/null +++ b/GiletaProjectNotIOS/app/src/main/java/com/example/taskapp/ui/screens/TasksTab.kt @@ -0,0 +1,56 @@ +package com.example.taskapp.ui.screens + +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.lazy.LazyColumn +import androidx.compose.foundation.lazy.items +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.unit.dp +import androidx.compose.foundation.layout.padding +import com.example.taskapp.viewmodel.TasksViewModel +import com.example.taskapp.components.TaskCard + +@Composable +fun TasksTab(viewModel: TasksViewModel, modifier: Modifier = Modifier) { + val tasks = viewModel.tasks + + if (tasks.isEmpty()) { + Box( + modifier = modifier.fillMaxSize(), + contentAlignment = Alignment.Center + ) { + Text("Задач нет") + } + } else { + val grouped = tasks + .sortedWith(compareByDescending { it.priority }.thenBy { it.title }) + .groupBy { it.priority } + + val priorities = grouped.keys.sortedDescending() + + LazyColumn( + modifier = modifier.fillMaxSize() + ) { + priorities.forEach { priority -> + val groupTasks = grouped[priority].orEmpty() + if (groupTasks.isNotEmpty()) { + item { + Text( + text = "Приоритет $priority", + style = MaterialTheme.typography.titleMedium, + modifier = Modifier + .padding(top = 12.dp, bottom = 4.dp) + ) + } + items(groupTasks) { task -> + TaskCard(task) { viewModel.toggleTaskCompletion(task) } + } + } + } + } + } +} diff --git a/GiletaProjectNotIOS/app/src/main/java/com/example/taskapp/ui/theme/Color.kt b/GiletaProjectNotIOS/app/src/main/java/com/example/taskapp/ui/theme/Color.kt new file mode 100644 index 0000000..37c754f --- /dev/null +++ b/GiletaProjectNotIOS/app/src/main/java/com/example/taskapp/ui/theme/Color.kt @@ -0,0 +1,11 @@ +package com.example.taskapp.ui.theme + +import androidx.compose.ui.graphics.Color + +val Purple80 = Color(0xFFD0BCFF) +val PurpleGrey80 = Color(0xFFCCC2DC) +val Pink80 = Color(0xFFEFB8C8) + +val Purple40 = Color(0xFF6650a4) +val PurpleGrey40 = Color(0xFF625b71) +val Pink40 = Color(0xFF7D5260) \ No newline at end of file diff --git a/GiletaProjectNotIOS/app/src/main/java/com/example/taskapp/ui/theme/Theme.kt b/GiletaProjectNotIOS/app/src/main/java/com/example/taskapp/ui/theme/Theme.kt new file mode 100644 index 0000000..05a3d27 --- /dev/null +++ b/GiletaProjectNotIOS/app/src/main/java/com/example/taskapp/ui/theme/Theme.kt @@ -0,0 +1,58 @@ +package com.example.taskapp.ui.theme + +import android.app.Activity +import android.os.Build +import androidx.compose.foundation.isSystemInDarkTheme +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.darkColorScheme +import androidx.compose.material3.dynamicDarkColorScheme +import androidx.compose.material3.dynamicLightColorScheme +import androidx.compose.material3.lightColorScheme +import androidx.compose.runtime.Composable +import androidx.compose.ui.platform.LocalContext + +private val DarkColorScheme = darkColorScheme( + primary = Purple80, + secondary = PurpleGrey80, + tertiary = Pink80 +) + +private val LightColorScheme = lightColorScheme( + primary = Purple40, + secondary = PurpleGrey40, + tertiary = Pink40 + + /* Other default colors to override + background = Color(0xFFFFFBFE), + surface = Color(0xFFFFFBFE), + onPrimary = Color.White, + onSecondary = Color.White, + onTertiary = Color.White, + onBackground = Color(0xFF1C1B1F), + onSurface = Color(0xFF1C1B1F), + */ +) + +@Composable +fun TaskAppTheme( + darkTheme: Boolean = isSystemInDarkTheme(), + // Dynamic color is available on Android 12+ + dynamicColor: Boolean = true, + content: @Composable () -> Unit +) { + val colorScheme = when { + dynamicColor && Build.VERSION.SDK_INT >= Build.VERSION_CODES.S -> { + val context = LocalContext.current + if (darkTheme) dynamicDarkColorScheme(context) else dynamicLightColorScheme(context) + } + + darkTheme -> DarkColorScheme + else -> LightColorScheme + } + + MaterialTheme( + colorScheme = colorScheme, + typography = Typography, + content = content + ) +} \ No newline at end of file diff --git a/GiletaProjectNotIOS/app/src/main/java/com/example/taskapp/ui/theme/Type.kt b/GiletaProjectNotIOS/app/src/main/java/com/example/taskapp/ui/theme/Type.kt new file mode 100644 index 0000000..0d0b384 --- /dev/null +++ b/GiletaProjectNotIOS/app/src/main/java/com/example/taskapp/ui/theme/Type.kt @@ -0,0 +1,34 @@ +package com.example.taskapp.ui.theme + +import androidx.compose.material3.Typography +import androidx.compose.ui.text.TextStyle +import androidx.compose.ui.text.font.FontFamily +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.unit.sp + +// Set of Material typography styles to start with +val Typography = Typography( + bodyLarge = TextStyle( + fontFamily = FontFamily.Default, + fontWeight = FontWeight.Normal, + fontSize = 16.sp, + lineHeight = 24.sp, + letterSpacing = 0.5.sp + ) + /* Other default text styles to override + titleLarge = TextStyle( + fontFamily = FontFamily.Default, + fontWeight = FontWeight.Normal, + fontSize = 22.sp, + lineHeight = 28.sp, + letterSpacing = 0.sp + ), + labelSmall = TextStyle( + fontFamily = FontFamily.Default, + fontWeight = FontWeight.Medium, + fontSize = 11.sp, + lineHeight = 16.sp, + letterSpacing = 0.5.sp + ) + */ +) \ No newline at end of file diff --git a/GiletaProjectNotIOS/app/src/main/java/com/example/taskapp/viewmodel/TasksViewModel.kt b/GiletaProjectNotIOS/app/src/main/java/com/example/taskapp/viewmodel/TasksViewModel.kt new file mode 100644 index 0000000..9a95f12 --- /dev/null +++ b/GiletaProjectNotIOS/app/src/main/java/com/example/taskapp/viewmodel/TasksViewModel.kt @@ -0,0 +1,20 @@ +package com.example.taskapp.viewmodel + +import androidx.compose.runtime.mutableStateListOf +import androidx.lifecycle.ViewModel +import com.example.taskapp.model.Task + +class TasksViewModel : ViewModel() { + val tasks = mutableStateListOf() + + fun addTask(task: Task) { + tasks.add(task) + } + + fun toggleTaskCompletion(task: Task) { + val index = tasks.indexOf(task) + if (index != -1) { + tasks[index] = tasks[index].copy(isCompleted = !task.isCompleted) + } + } +} diff --git a/GiletaProjectNotIOS/app/src/main/res/drawable/ic_launcher_background.xml b/GiletaProjectNotIOS/app/src/main/res/drawable/ic_launcher_background.xml new file mode 100644 index 0000000..07d5da9 --- /dev/null +++ b/GiletaProjectNotIOS/app/src/main/res/drawable/ic_launcher_background.xml @@ -0,0 +1,170 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/GiletaProjectNotIOS/app/src/main/res/drawable/ic_launcher_foreground.xml b/GiletaProjectNotIOS/app/src/main/res/drawable/ic_launcher_foreground.xml new file mode 100644 index 0000000..2b068d1 --- /dev/null +++ b/GiletaProjectNotIOS/app/src/main/res/drawable/ic_launcher_foreground.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/GiletaProjectNotIOS/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/GiletaProjectNotIOS/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml new file mode 100644 index 0000000..6f3b755 --- /dev/null +++ b/GiletaProjectNotIOS/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/GiletaProjectNotIOS/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/GiletaProjectNotIOS/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml new file mode 100644 index 0000000..6f3b755 --- /dev/null +++ b/GiletaProjectNotIOS/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/GiletaProjectNotIOS/app/src/main/res/mipmap-hdpi/ic_launcher.webp b/GiletaProjectNotIOS/app/src/main/res/mipmap-hdpi/ic_launcher.webp new file mode 100644 index 0000000000000000000000000000000000000000..c209e78ecd372343283f4157dcfd918ec5165bb3 GIT binary patch literal 1404 zcmV-?1%vuhNk&F=1pok7MM6+kP&il$0000G0000-002h-06|PpNX!5L00Dqw+t%{r zzW2vH!KF=w&cMnnN@{whkTw+#mAh0SV?YL=)3MimFYCWp#fpdtz~8$hD5VPuQgtcN zXl<@<#Cme5f5yr2h%@8TWh?)bSK`O z^Z@d={gn7J{iyxL_y_%J|L>ep{dUxUP8a{byupH&!UNR*OutO~0{*T4q5R6@ApLF! z5{w?Z150gC7#>(VHFJZ-^6O@PYp{t!jH(_Z*nzTK4 zkc{fLE4Q3|mA2`CWQ3{8;gxGizgM!zccbdQoOLZc8hThi-IhN90RFT|zlxh3Ty&VG z?Fe{#9RrRnxzsu|Lg2ddugg7k%>0JeD+{XZ7>Z~{=|M+sh1MF7~ zz>To~`~LVQe1nNoR-gEzkpe{Ak^7{{ZBk2i_<+`Bq<^GB!RYG+z)h;Y3+<{zlMUYd zrd*W4w&jZ0%kBuDZ1EW&KLpyR7r2=}fF2%0VwHM4pUs}ZI2egi#DRMYZPek*^H9YK zay4Iy3WXFG(F14xYsoDA|KXgGc5%2DhmQ1gFCkrgHBm!lXG8I5h*uf{rn48Z!_@ z4Bk6TJAB2CKYqPjiX&mWoW>OPFGd$wqroa($ne7EUK;#3VYkXaew%Kh^3OrMhtjYN?XEoY`tRPQsAkH-DSL^QqyN0>^ zmC>{#F14jz4GeW{pJoRpLFa_*GI{?T93^rX7SPQgT@LbLqpNA}<@2wH;q493)G=1Y z#-sCiRNX~qf3KgiFzB3I>4Z%AfS(3$`-aMIBU+6?gbgDb!)L~A)je+;fR0jWLL-Fu z4)P{c7{B4Hp91&%??2$v9iRSFnuckHUm}or9seH6 z>%NbT+5*@L5(I9j@06@(!{ZI?U0=pKn8uwIg&L{JV14+8s2hnvbRrU|hZCd}IJu7*;;ECgO%8_*W Kmw_-CKmY()leWbG literal 0 HcmV?d00001 diff --git a/GiletaProjectNotIOS/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp b/GiletaProjectNotIOS/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp new file mode 100644 index 0000000000000000000000000000000000000000..b2dfe3d1ba5cf3ee31b3ecc1ced89044a1f3b7a9 GIT binary patch literal 2898 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 literal 0 HcmV?d00001 diff --git a/GiletaProjectNotIOS/app/src/main/res/mipmap-mdpi/ic_launcher.webp b/GiletaProjectNotIOS/app/src/main/res/mipmap-mdpi/ic_launcher.webp new file mode 100644 index 0000000000000000000000000000000000000000..4f0f1d64e58ba64d180ce43ee13bf9a17835fbca GIT binary patch literal 982 zcmV;{11bDcNk&G_0{{S5MM6+kP&il$0000G0000l001ul06|PpNU8t;00Dqo+t#w^ z^1csucXz7-Qrhzl9HuHB%l>&>1tG2^vb*E&k^T3$FG1eQZ51g$uv4V+kI`0<^1Z@N zk?Jjh$olyC%l>)Xq;7!>{iBj&BjJ`P&$fsCfpve_epJOBkTF?nu-B7D!hO=2ZR}

C%4 zc_9eOXvPbC4kzU8YowIA8cW~Uv|eB&yYwAObSwL2vY~UYI7NXPvf3b+c^?wcs~_t{ ze_m66-0)^{JdOMKPwjpQ@Sna!*?$wTZ~su*tNv7o!gXT!GRgivP}ec?5>l1!7<(rT zds|8x(qGc673zrvYIz;J23FG{9nHMnAuP}NpAED^laz3mAN1sy+NXK)!6v1FxQ;lh zOBLA>$~P3r4b*NcqR;y6pwyhZ3_PiDb|%n1gGjl3ZU}ujInlP{eks-#oA6>rh&g+!f`hv#_%JrgYPu z(U^&XLW^QX7F9Z*SRPpQl{B%x)_AMp^}_v~?j7 zapvHMKxSf*Mtyx8I}-<*UGn3)oHd(nn=)BZ`d$lDBwq_GL($_TPaS{UeevT(AJ`p0 z9%+hQb6z)U9qjbuXjg|dExCLjpS8$VKQ55VsIC%@{N5t{NsW)=hNGI`J=x97_kbz@ E0Of=7!TQj4N+cqN`nQhxvX7dAV-`K|Ub$-q+H-5I?Tx0g9jWxd@A|?POE8`3b8fO$T))xP* z(X?&brZw({`)WU&rdAs1iTa0x6F@PIxJ&&L|dpySV!ID|iUhjCcKz(@mE z!x@~W#3H<)4Ae(4eQJRk`Iz3<1)6^m)0b_4_TRZ+cz#eD3f8V;2r-1fE!F}W zEi0MEkTTx}8i1{`l_6vo0(Vuh0HD$I4SjZ=?^?k82R51bC)2D_{y8mi_?X^=U?2|F{Vr7s!k(AZC$O#ZMyavHhlQ7 zUR~QXuH~#o#>(b$u4?s~HLF*3IcF7023AlwAYudn0FV~|odGH^05AYPEfR)8p`i{n zwg3zPVp{+wOsxKc>)(pMupKF!Y2HoUqQ3|Yu|8lwR=?5zZuhG6J?H`bSNk_wPoM{u zSL{c@pY7+c2kck>`^q1^^gR0QB7Y?KUD{vz-uVX~;V-rW)PDcI)$_UjgVV?S?=oLR zf4}zz{#*R_{LkiJ#0RdQLNC^2Vp%JPEUvG9ra2BVZ92(p9h7Ka@!yf9(lj#}>+|u* z;^_?KWdzkM`6gqPo9;;r6&JEa)}R3X{(CWv?NvgLeOTq$cZXqf7|sPImi-7cS8DCN zGf;DVt3Am`>hH3{4-WzH43Ftx)SofNe^-#|0HdCo<+8Qs!}TZP{HH8~z5n`ExcHuT zDL1m&|DVpIy=xsLO>8k92HcmfSKhflQ0H~9=^-{#!I1g(;+44xw~=* zxvNz35vfsQE)@)Zsp*6_GjYD};Squ83<_?^SbALb{a`j<0Gn%6JY!zhp=Fg}Ga2|8 z52e1WU%^L1}15Ex0fF$e@eCT(()_P zvV?CA%#Sy08_U6VPt4EtmVQraWJX` zh=N|WQ>LgrvF~R&qOfB$!%D3cGv?;Xh_z$z7k&s4N)$WYf*k=|*jCEkO19{h_(%W4 zPuOqbCw`SeAX*R}UUsbVsgtuG?xs(#Ikx9`JZoQFz0n*7ZG@Fv@kZk`gzO$HoA9kN z8U5{-yY zvV{`&WKU2$mZeoBmiJrEdzUZAv1sRxpePdg1)F*X^Y)zp^Y*R;;z~vOv-z&)&G)JQ{m!C9cmziu1^nHA z`#`0c>@PnQ9CJKgC5NjJD8HM3|KC(g5nnCq$n0Gsu_DXk36@ql%npEye|?%RmG)

FJ$wK}0tWNB{uH;AM~i literal 0 HcmV?d00001 diff --git a/GiletaProjectNotIOS/app/src/main/res/mipmap-xhdpi/ic_launcher.webp b/GiletaProjectNotIOS/app/src/main/res/mipmap-xhdpi/ic_launcher.webp new file mode 100644 index 0000000000000000000000000000000000000000..948a3070fe34c611c42c0d3ad3013a0dce358be0 GIT binary patch literal 1900 zcmV-y2b1_xNk&Fw2LJ$9MM6+kP&il$0000G0001A003VA06|PpNH75a00DqwTbm-~ zullQTcXxO9ki!OCRx^i?oR|n!<8G0=kI^!JSjFi-LL*`V;ET0H2IXfU0*i>o6o6Gy zRq6Ap5(_{XLdXcL-MzlN`ugSdZY_`jXhcENAu)N_0?GhF))9R;E`!bo9p?g?SRgw_ zEXHhFG$0{qYOqhdX<(wE4N@es3VIo$%il%6xP9gjiBri+2pI6aY4 zJbgh-Ud|V%3O!IcHKQx1FQH(_*TK;1>FQWbt^$K1zNn^cczkBs=QHCYZ8b&l!UV{K z{L0$KCf_&KR^}&2Fe|L&?1I7~pBENnCtCuH3sjcx6$c zwqkNkru);ie``q+_QI;IYLD9OV0ZxkuyBz|5<$1BH|vtey$> z5oto4=l-R-Aaq`Dk0}o9N0VrkqW_#;!u{!bJLDq%0092{Ghe=F;(kn} z+sQ@1=UlX30+2nWjkL$B^b!H2^QYO@iFc0{(-~yXj2TWz?VG{v`Jg zg}WyYnwGgn>{HFaG7E~pt=)sOO}*yd(UU-D(E&x{xKEl6OcU?pl)K%#U$dn1mDF19 zSw@l8G!GNFB3c3VVK0?uyqN&utT-D5%NM4g-3@Sii9tSXKtwce~uF zS&Jn746EW^wV~8zdQ1XC28~kXu8+Yo9p!<8h&(Q({J*4DBglPdpe4M_mD8AguZFn~ ztiuO~{6Bx?SfO~_ZV(GIboeR9~hAym{{fV|VM=77MxDrbW6`ujX z<3HF(>Zr;#*uCvC*bpoSr~C$h?_%nXps@A)=l_;({Fo#6Y1+Zv`!T5HB+)#^-Ud_; zBwftPN=d8Vx)*O1Mj+0oO=mZ+NVH*ptNDC-&zZ7Hwho6UQ#l-yNvc0Cm+2$$6YUk2D2t#vdZX-u3>-Be1u9gtTBiMB^xwWQ_rgvGpZ6(C@e23c!^K=>ai-Rqu zhqT`ZQof;9Bu!AD(i^PCbYV%yha9zuoKMp`U^z;3!+&d@Hud&_iy!O-$b9ZLcSRh? z)R|826w}TU!J#X6P%@Zh=La$I6zXa#h!B;{qfug}O%z@K{EZECu6zl)7CiNi%xti0 zB{OKfAj83~iJvmpTU|&q1^?^cIMn2RQ?jeSB95l}{DrEPTW{_gmU_pqTc)h@4T>~& zluq3)GM=xa(#^VU5}@FNqpc$?#SbVsX!~RH*5p0p@w z;~v{QMX0^bFT1!cXGM8K9FP+=9~-d~#TK#ZE{4umGT=;dfvWi?rYj;^l_Zxywze`W z^Cr{55U@*BalS}K%Czii_80e0#0#Zkhlij4-~I@}`-JFJ7$5{>LnoJSs??J8kWVl6|8A}RCGAu9^rAsfCE=2}tHwl93t0C?#+jMpvr7O3`2=tr{Hg$=HlnjVG^ewm|Js0J*kfPa6*GhtB>`fN!m#9J(sU!?(OSfzY*zS(FJ<-Vb zfAIg+`U)YaXv#sY(c--|X zEB+TVyZ%Ie4L$gi#Fc++`h6%vzsS$pjz9aLt+ZL(g;n$Dzy5=m=_TV(3H8^C{r0xd zp#a%}ht55dOq?yhwYPrtp-m1xXp;4X;)NhxxUpgP%XTLmO zcjaFva^}dP3$&sfFTIR_jC=2pHh9kpI@2(6V*GQo7Ws)`j)hd+tr@P~gR*2gO@+1? zG<`_tB+LJuF|SZ9tIec;h%}}6WClT`L>HSW?E{Hp1h^+mlbf_$9zA>!ug>NALJsO{ mU%z=YwVD?}XMya)Bp;vlyE5&E_6!fzx9pwrdz474!~g(M6R?N? literal 0 HcmV?d00001 diff --git a/GiletaProjectNotIOS/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp b/GiletaProjectNotIOS/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp new file mode 100644 index 0000000000000000000000000000000000000000..1b9a6956b3acdc11f40ce2bb3f6efbd845cc243f GIT binary patch literal 3918 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�(p-{x$&=IACIfoAR!za)F-^da-t3#0Dycnp zwO~NVXwXCl;jE<}>%@xz|=8fIJAB?>+E{7)|4l${4ngA3G|=r z2Dyv;VVWSgZx9Wj>qUjleGl3Ei9K4>h!(lPS%8VOG>Xu0%6VDz^O=bjJmuP7>DeUv zrbI}MlHB^^d?{zv6d=@_ZD2lg1&G7UjnVN{1}9WkaM3H~btX0GtSzB+tZ^qRgWo4m z!GmimlG$=wgXCnr6j@m<1gAL46#T~5Bnm=2{^@>|t&`9mkEPddj zAvG~@Tv~TAm2i%VW}R-g(Z0)z-Y|szHr@rk>4MAyG*Ma*7Yh#H7(!-5>DZ@8r;_dx z{prSe<>~099F8vsYd2xff7uAS%7{S)f(|@me3t2$iy&NEc7OUEchp@9A|X;;IA>8!oX+y(BKJ$EzV* znR$z;!L$s7uy@{OT~nG#B!NRraT8(X##Ho!0r_o@gg0CA-9H^;-uE&?$2$nHv_00o z%cbuUc-tCx$Uh&EZ4Nf4Zgqv)Y6>usG3>GeQnxx_Z6+PcbX-+ysbt1hQ`K1LDpOE? zrAhIZhSN9yVIAOa22gn577tbc&i3|3V8NWy&!tw##`}9*x}gtI^h1DzZRA>UuaJG) zaZ7j)dq!O}{?#8Y7~7i6fHh4{`pL?>-18|p!S75Y#^DM>-S3)vuZG+Q7l@ek zQP~#cBpWgg#mApc_sPYjpw8odQuRokmTkzcNl`^CcKB7e&;zViV;{Y{o^Y$%7i0m# z62%#1Lq!RC?}lK>%mp}T!3Xv;L*0v*>USLm``N%>w>@fwC+#T&Tx2bN4w(20JB}oU zuSa6v^kXi0xPs?pbaOHnyiqq6By1EZY9OZ^^QA>{q-Hsd&m`pbQ%8121aWG-F5xf zlZ%;B{;C>X19|`^_?dVyCq>n+41w7|!tUS!{9rHlbhX=SZO5CQ^;!Du_E7*`GiR^Q w)2!4MKjfSAeNo!9>IaV6aUZ*?W>} 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

UmY2RIYtNPVDpE$%vda+HD#3m z&VuXJ{BK&Qe+rBa7eq}Q(bq|tn(RrJAk|ztj2(i{d>nmQnM?;HF2k&9sA6up5tmjl z7lySlzMbifH17-m-Lwa_F&e7nOH?ESi3#ckR3tsM+jsck3`oG!uMS}|eAwVXv>}qxwq?QY%QJ0}r@^;fhuUA9W z*BVl>TGo&N004@xSiwDUXUvp51sVmqO3m)=B55aPwf@0=e}cN+$-BdKxY`YrT_4)0 z_d10#i44Q*rFr8MC>*)v$EJvz``(pb{e&*6k+b zsMz%($|1+8hn8c2?P(l@;Rb&CsZeYoCI3?2!LqjbwPXW3z4G$Qfj=cT5Yb%vY0(AX oeb?AaKtwrnc|$|zzw9vfvn^aJJ!zd)XFXqqy0000001=f@-~a#s literal 0 HcmV?d00001 diff --git a/GiletaProjectNotIOS/app/src/main/res/values/colors.xml b/GiletaProjectNotIOS/app/src/main/res/values/colors.xml new file mode 100644 index 0000000..f8c6127 --- /dev/null +++ b/GiletaProjectNotIOS/app/src/main/res/values/colors.xml @@ -0,0 +1,10 @@ + + + #FFBB86FC + #FF6200EE + #FF3700B3 + #FF03DAC5 + #FF018786 + #FF000000 + #FFFFFFFF + \ No newline at end of file diff --git a/GiletaProjectNotIOS/app/src/main/res/values/strings.xml b/GiletaProjectNotIOS/app/src/main/res/values/strings.xml new file mode 100644 index 0000000..512f81f --- /dev/null +++ b/GiletaProjectNotIOS/app/src/main/res/values/strings.xml @@ -0,0 +1,3 @@ + + TaskApp + \ No newline at end of file diff --git a/GiletaProjectNotIOS/app/src/main/res/values/themes.xml b/GiletaProjectNotIOS/app/src/main/res/values/themes.xml new file mode 100644 index 0000000..5ca83a0 --- /dev/null +++ b/GiletaProjectNotIOS/app/src/main/res/values/themes.xml @@ -0,0 +1,5 @@ + + + +