{"id":22196900,"url":"https://github.com/radiopizza/android-software-development","last_synced_at":"2025-03-24T22:41:18.638Z","repository":{"id":256439618,"uuid":"855305431","full_name":"RadioPizza/Android-Software-Development","owner":"RadioPizza","description":"This repository serves as a collection of laboratory assignments completed during the \"Android Software Development\" elective course","archived":false,"fork":false,"pushed_at":"2024-12-18T17:33:34.000Z","size":8813,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-30T02:14:36.734Z","etag":null,"topics":["android","android-studio","kotlin","oop","regular-expression","text-formatting"],"latest_commit_sha":null,"homepage":"","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/RadioPizza.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-09-10T16:47:17.000Z","updated_at":"2024-12-18T17:33:38.000Z","dependencies_parsed_at":"2024-12-09T14:29:08.085Z","dependency_job_id":"91ab662e-3d0e-459e-9d92-89de7e77cb72","html_url":"https://github.com/RadioPizza/Android-Software-Development","commit_stats":null,"previous_names":["radiopizza/android-software-development"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RadioPizza%2FAndroid-Software-Development","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RadioPizza%2FAndroid-Software-Development/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RadioPizza%2FAndroid-Software-Development/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RadioPizza%2FAndroid-Software-Development/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/RadioPizza","download_url":"https://codeload.github.com/RadioPizza/Android-Software-Development/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245366207,"owners_count":20603438,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","android-studio","kotlin","oop","regular-expression","text-formatting"],"created_at":"2024-12-02T14:17:07.345Z","updated_at":"2025-03-24T22:41:18.614Z","avatar_url":"https://github.com/RadioPizza.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Contents\n\n## Lab 1: Text Formatting\n\n### Overview\n\nThis lab introduces Kotlin basics and demonstrates how to use regular expressions for text formatting. The goal is to create a program that processes an input string and applies a series of formatting transformations to improve its readability.\n\n### Key Transformations\n\nThe program performs the following operations on the input string:\n\n- **Quote Replacement:**  replace double quotes (`\"`) with proper opening («) and closing (») quotation marks.  Opening quotes should precede words, and closing quotes should follow words (including any punctuation).\n\n- **Space Normalization:** standardize spacing around punctuation.  Remove spaces before commas, periods, opening parentheses, etc., and add spaces after commas, periods, closing parentheses, etc.\n\n- **Hyphen Replacement:** replace hyphens/dashes with en-dashes surrounded by spaces (unless adjacent to letters).\n\n- **Double Space Removal:** replace multiple spaces with single spaces.\n\n### Example Input and Output\n\n#### Input:\n\n```plaintext\n\" Лето , как обычно ,пролетело    незаметно...\"-грустно сказал Ваня .Он( и его друзья )сидели на берегу речки с поэтичным названием \"Стремительная \".\n```\n\n#### Output:\n\n```plaintext\n«Лето, как обычно, пролетело незаметно...» – грустно сказал Ваня. Он (и его друзья) сидели на берегу речки с поэтичным названием «Стремительная».\n```\n\n## Lab 2: Telephone Station Emulator\n\n### Overview\n\nThis lab focuses on the fundamentals of working with **Kotlin classes and objects** and demonstrates how to implement **basic object interactions**. The goal is to create a program that simulates the operation of a simple telephone station. The program allows users to manage a list of subscribers and log calls between them.\n\n### Key Features\n\nThe program is divided into two main components:\n\n1. **Abonent Class**  \n   Represents a subscriber with the following properties:  \n   - **Name** and **Phone Number**  \n   - A **call log** that stores incoming and outgoing calls.  \n\n2. **Station Class**  \n   Represents the telephone station and includes:  \n   - A **list of subscribers**.  \n   - The ability to **initiate calls** and log them for both the caller and the recipient.  \n   - A method to **display call logs** for all subscribers.  \n\n### Key Functionality\n\n- **Adding Subscribers**  \n  Subscribers can be added to the station using the `addAbonent()` method.  \n\n- **Making Calls**  \n  The `call(from: String, to: String)` method simulates a call from one subscriber to another:  \n  - Logs an **outgoing call** in the caller's call log.  \n  - Logs an **incoming call** in the recipient's call log.  \n\n- **Displaying Call Logs**  \n  The `showStat()` method displays the full call logs of all subscribers in a structured format.\n\n### Example Program Execution\n\n#### Code Example\n\n```kotlin\nfun main() {\n    val station = Station()\n\n    station.addAbonent(Abonent(\"Иван\", \"001\"))\n    station.addAbonent(Abonent(\"Ольга\", \"002\"))\n    station.addAbonent(Abonent(\"Сергей\", \"003\"))\n\n    station.call(\"Иван\", \"Ольга\")\n    station.call(\"Ольга\", \"Сергей\")\n    station.call(\"Сергей\", \"Иван\")\n    station.call(\"Иван\", \"Сергей\")\n    station.call(\"Ольга\", \"Иван\")\n\n    station.showStat()\n}\n```\n\n#### Example Output\n\n```plaintext\nЖурнал звонков абонента Иван:\n    Исходящий к Ольга\n    Входящий от Сергей\n    Исходящий к Сергей\n    Входящий от Ольга\n\nЖурнал звонков абонента Ольга:\n    Входящий от Иван\n    Исходящий к Сергей\n    Исходящий к Иван\n\nЖурнал звонков абонента Сергей:\n    Входящий от Ольга\n    Исходящий к Иван\n    Входящий от Иван\n```\n\n## Lab 3: Project Creation and Program Launch\n\n### Overview\n\nIn the third lab, the focus was on getting acquainted with Android Studio and understanding the process of creating and launching an Android project. The primary objective was to initialize a new project using the Empty Views Activity template, configure the project structure, and familiarize with essential project files such as `MainActivity.kt` and `activity_main.xml`. Additionally, this lab covered editing the application's manifest file (`AndroidManifest.xml`) to include necessary permissions, specifically internet access.\n\n## Lab 4: Simple Calculator\n\n- Text Input and Output, Button, and Listeners\n\n## Lab 5: Colored Tiles\n\n- Activity Lifecycle and GridLayout\n\n## Lab 6: Quadratic Equation Solver\n\n- ConstraintLayout\n\n## Lab 7: \"Edible - Inedible\" Game\n\n- Resources\n\n## Lab 8: Unit Converter\n\n- State Preservation, ViewModel, LiveData\n\n## Lab 9: Questionnaire\n\n- Checkboxes, RadioButtons, Spinners\n\n## Lab 10: Snackbar Tester\n\n- Toast and Snackbar Messages, SeekBar\n\n## Lab 11: Calculation Testing\n\n- Debugging and Unit Testing\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fradiopizza%2Fandroid-software-development","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fradiopizza%2Fandroid-software-development","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fradiopizza%2Fandroid-software-development/lists"}