{"id":20115548,"url":"https://github.com/mutualmobile/seatlayout","last_synced_at":"2025-05-06T13:32:58.887Z","repository":{"id":137248808,"uuid":"176709526","full_name":"mutualmobile/SeatLayout","owner":"mutualmobile","description":"A seat selection library for Android with an example for selecting seats for flights, sports venue, theatres, etc","archived":false,"fork":false,"pushed_at":"2022-07-24T20:10:40.000Z","size":3922,"stargazers_count":39,"open_issues_count":1,"forks_count":8,"subscribers_count":7,"default_branch":"master","last_synced_at":"2024-04-14T18:05:13.257Z","etag":null,"topics":["android","android-app","android-application","android-library","android-ui","example","example-project","movies"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mutualmobile.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2019-03-20T10:29:14.000Z","updated_at":"2024-02-26T02:59:17.000Z","dependencies_parsed_at":null,"dependency_job_id":"39369f6e-155c-46cc-87a7-9e42b48cbb8d","html_url":"https://github.com/mutualmobile/SeatLayout","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mutualmobile%2FSeatLayout","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mutualmobile%2FSeatLayout/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mutualmobile%2FSeatLayout/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mutualmobile%2FSeatLayout/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mutualmobile","download_url":"https://codeload.github.com/mutualmobile/SeatLayout/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224505591,"owners_count":17322633,"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-app","android-application","android-library","android-ui","example","example-project","movies"],"created_at":"2024-11-13T18:35:36.553Z","updated_at":"2024-11-13T18:35:37.270Z","avatar_url":"https://github.com/mutualmobile.png","language":"Java","readme":"Seat Layout\n=============\n[![Build Status](https://travis-ci.org/mutualmobile/Barricade.svg)](https://travis-ci.org/mutualmobile/SeatLayout.svg?branch=master)\n\nThis library is an example implementation of an interactive seat layout which has the following features:\n\n* Pinch to zoom seat arrangement along\n* Optional zoom in/out button\n* Ability to have multiple seat types like available, sold, reserved, disabled seats etc\n* Clickable seats with animated popup showing selected seat information\n* Select or deselect multiple seats\n\n\u003cimg src=\"https://github.com/mutualmobile/SeatLayout/blob/master/Artifacts/SeatLayout_showcase.gif\"\u003e\n\nDownload the sample apk from [HERE](https://github.com/mutualmobile/SeatLayout/blob/master/Artifacts/Seatlayout_apk.apk \"SeatLayout Apk\")\n\n#### How To Use\n\nSince the requirement can be vastly different for different applications, we decided to post an example implementation rather than an injectable library.\n\nThis repo has two modules:\n* *example*: Which is an example app on how to use SeatLayout. Run this module to test the example app\n\n* *seatlayout*: This is the library that you need to add in your project as a module\n\nSeatLayout has predefined data models and example JSON which you can edit to fit your needs. Following is a piece of brief information to help you do that:\n\n\nSeat Layout expects an \u003cem\u003e`Array\u003cArray\u003cSeatData\u003e\u003e`\u003c/em\u003e so that it can draw seats in the xy plain.\n\n    numberOfRows = seatDataArray.size;\n    numberOfColumnsInNthRow = seatDataArray[n].size\n    \nSeatData Model:\n* SeatData is the model that is used to represent each seat in the layout. It contains all the information that is required by SeatLayout for rendering the seat.\n* SeatData model contains the `rowIndex, columnIndex, areaIndex, price, description`(Any information that you want to provide when a user taps on the seat)\n* SeatStatus: `NONE, EMPTY, SOLD, RESERVED, BROKEN, PLACEHOLDER, UNKNOWN, BUSY, CHOSEN, INFO`\n* SeatStyle: `NONE, NORMAL, BARSEAT, HANDICAP, COMPANION, UNKNOWN`\n* TableStyle: `NONE, SINGLE, PAIR_LEFT, PAIR_RIGHT, SIDE_TABLE_LEFT, SIDE_TABLE_RIGHT, LONG_LEFT, LONG_CENTER, LONG_RIGHT, LONG_GAP, LONG_GAP_LEFT, LONG_GAP_RIGHT, UNKNOWN`\n\nIf you want callbacks, SeatView offers three callbacks right now using SeatListener:\n* maxSeatsReached()\n* seatTapped()\n* updateSelectedSeatDisplay(selectedSeats: Int, maxSelectedSeats: Int)\n\n\n##### Contributors\n* [Shekar](https://github.com/shekaroppo \"Shekar\")\n* [Hitender Pannu](https://github.com/hitenpannu \"Hitender Pannu\")\n\nLicense\n-------\n\n    Copyright 2019 Mutual Mobile\n\n    Licensed under the Apache License, Version 2.0 (the \"License\");\n    you may not use this file except in compliance with the License.\n    You may obtain a copy of the License at\n\n        http://www.apache.org/licenses/LICENSE-2.0\n\n    Unless required by applicable law or agreed to in writing, software\n    distributed under the License is distributed on an \"AS IS\" BASIS,\n    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n    See the License for the specific language governing permissions and\n    limitations under the License.\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmutualmobile%2Fseatlayout","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmutualmobile%2Fseatlayout","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmutualmobile%2Fseatlayout/lists"}