{"id":37026353,"url":"https://github.com/dekoservidoni/omfm","last_synced_at":"2026-01-14T03:03:57.683Z","repository":{"id":50835614,"uuid":"105040335","full_name":"DeKoServidoni/OMFM","owner":"DeKoServidoni","description":"Another floating action button menu with expand/collapse behavior, in kotlin","archived":false,"fork":false,"pushed_at":"2022-07-24T15:33:53.000Z","size":1949,"stargazers_count":93,"open_issues_count":11,"forks_count":26,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-10-13T06:39:04.009Z","etag":null,"topics":["android","custom","floatingactionbutton","kotlin","menu"],"latest_commit_sha":null,"homepage":"","language":"Kotlin","has_issues":false,"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/DeKoServidoni.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}},"created_at":"2017-09-27T16:10:27.000Z","updated_at":"2025-09-30T02:52:00.000Z","dependencies_parsed_at":"2022-09-26T21:40:55.099Z","dependency_job_id":null,"html_url":"https://github.com/DeKoServidoni/OMFM","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/DeKoServidoni/OMFM","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DeKoServidoni%2FOMFM","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DeKoServidoni%2FOMFM/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DeKoServidoni%2FOMFM/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DeKoServidoni%2FOMFM/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DeKoServidoni","download_url":"https://codeload.github.com/DeKoServidoni/OMFM/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DeKoServidoni%2FOMFM/sbom","scorecard":{"id":38598,"data":{"date":"2025-08-11","repo":{"name":"github.com/DeKoServidoni/OMFM","commit":"9c3de5aa10552bfbb7eff96d97cc00f6338f1941"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.2,"checks":[{"name":"Code-Review","score":2,"reason":"Found 4/19 approved changesets -- score normalized to 2","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Binary-Artifacts","score":9,"reason":"binaries present in source code","details":["Warn: binary detected: gradle/wrapper/gradle-wrapper.jar:1"],"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: Apache License 2.0: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 17 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-14T20:52:49.407Z","repository_id":50835614,"created_at":"2025-08-14T20:52:49.408Z","updated_at":"2025-08-14T20:52:49.408Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28408800,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T01:52:23.358Z","status":"online","status_checked_at":"2026-01-14T02:00:06.678Z","response_time":107,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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","custom","floatingactionbutton","kotlin","menu"],"created_at":"2026-01-14T03:03:57.001Z","updated_at":"2026-01-14T03:03:57.669Z","avatar_url":"https://github.com/DeKoServidoni.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"# [DEPRECATED] OneMoreFabMenu\n\nAnother floating action button menu with expand/collapse behavior.\n\n [ ![Download](https://api.bintray.com/packages/dekoservidoni/AndroidLibs/OMFM/images/download.svg) ](https://bintray.com/dekoservidoni/AndroidLibs/OMFM/_latestVersion)\n \n [![Android Arsenal](https://img.shields.io/badge/Android%20Arsenal-OneMoreFabMenu-brightgreen.svg?style=flat)](https://android-arsenal.com/details/1/6280)\n\n![Example gif](/images/example_v1.0.3.gif) \n\n## What's new:\n\n### Version 1.1.1 (02/03/2018)\n* [Fix] Bug fixes\n  * Main button label shows with not text when text is “” (empty)\n\n### Version 1.1.0 (01/25/2018)\n* [Feature] Add parameter in the layout to background text label\n* [Feature] Add parameter in the layout to color text label\n* [Feature] Add parameter in the layout to add label to the main button\n* [Feature] Add parameter in the layout to add action to the main button\n* [Feature] Add parameter in the layout to add drawable to the main button when opened\n* [Enhancement] Increase padding left/right of the label\n* [Enhancement] Update sample to have different example images\n\n## How to use\n\nThis library have 1 main layout param and 12 optionals\n\n* `\u003capp:content_options\u003e` **[Required]** \n   * Resource \"menu\" file with the options that the menu will show\u003cbr\u003e\n* `\u003capp:color_main_button\u003e` **[optional]** \n   * Color of the main button\u003cbr\u003e\n* `\u003capp:color_secondary_buttons\u003e` **[optional]** \n   * Color of the other options buttons\u003cbr\u003e\n* `\u003capp:expanded_background_color\u003e` **[optional]** \n   * Color of the background when the component expands\u003cbr\u003e\n* `\u003capp:rotate_main_button\u003e` **[optional, *default=true*]** \n   * Flag to enable/disable the rotation of main button\u003cbr\u003e\n* `\u003capp:size_main_button\u003e` **[optional]** \n   * Size of the main button. Can use the already defined size: ***@integer/omfm_fab_size_normal***\u003cbr\u003e\n* `\u003capp:size_secondary_buttons\u003e` **[optional]** \n   * Size of the secondary buttons. Can use the already defined size: ***@integer/omfm_fab_size_mini***\u003cbr\u003e\n* `\u003capp:close_on_click\u003e` **[optional, *default=false*]** \n   * Flag to enable/disable the close menu when some option is clicked\u003cbr\u003e\n* `\u003capp:label_background_color\u003e` **[optional, *default=white*]** \n   * Background color of the label\u003cbr\u003e\n* `\u003capp:label_background_drawable\u003e` **[optional]** \n   * If you want a drawable instead of color in the label's background\u003cbr\u003e\n* `\u003capp:label_text_color\u003e` **[optional, *default=black*]** \n   * Color of the label's text\u003cbr\u003e\n* `\u003capp:enable_main_as_action\u003e` **[optional, *default=false*]** \n   * Flag to enable/disable the main button as an action when the menu is expanded\u003cbr\u003e\n* `\u003capp:main_action_drawable\u003e` **[optional, *default=icon defined in the content menu file*]** \n   * Drawable of the main button when it is set as an action.\u003cbr\u003e\n\n###### Example of usage\n\n```xml\n   \u003ccom.dekoservidoni.omfm.OneMoreFabMenu\n        android:id=\"@+id/fab\"\n        android:layout_width=\"wrap_content\"\n        android:layout_height=\"wrap_content\"\n        android:layout_gravity=\"bottom|end\"\n        app:content_options=\"@menu/omfm_content_options\"\n        app:close_on_click=\"true\"\n        app:color_main_button=\"@color/colorPrimaryDark\"\n        app:color_secondary_buttons=\"@color/colorPrimary\"\n        app:expanded_background_color=\"@color/omfm_expanded_background_sample\"\n        app:rotate_main_button=\"false\"\n        app:size_main_button=\"@integer/omfm_fab_size_normal\"\n        app:size_secondary_buttons=\"@integer/omfm_fab_size_mini\"\n        app:label_text_color=\"@color/colorPrimary\"\n        app:enable_main_as_action=\"true\"\n        app:main_action_drawable=\"@mipmap/ic_launcher\"/\u003e\n```\n\n#### Menu resource example\n\nThe menu is structure from top to bottom, for example, the first one is the main button\nand the others will be the first option, second option and etc.\n\nThe first item don't need to have a text because only the options have labels.\n\n```xml\n\u003c?xml version=\"1.0\" encoding=\"utf-8\"?\u003e\n\u003cmenu xmlns:android=\"http://schemas.android.com/apk/res/android\"\u003e\n\n    \u003c!-- First button is the initial Fab of the menu --\u003e\n    \u003c!-- Title here can be empty if you don't to add any action in the main button --\u003e\n    \u003citem\n        android:id=\"@+id/main_option\"\n        android:icon=\"@drawable/ic_add_white_24px\"\n        android:title=\"\"/\u003e\n\n    \u003c!-- Options buttons of the Fab menu --\u003e\n    \u003citem\n        android:id=\"@+id/option1\"\n        android:icon=\"@drawable/ic_alarm_white_24px\"\n        android:title=\"@string/options_1\" /\u003e\n\n    \u003citem\n        android:id=\"@+id/option2\"\n        android:icon=\"@drawable/ic_alarm_white_24px\"\n        android:title=\"@string/options_2\" /\u003e\n\n    \u003citem\n        android:id=\"@+id/option3\"\n        android:icon=\"@drawable/ic_room_service_white_24px\"\n        android:title=\"@string/options_3\" /\u003e\n\n    \u003citem\n        android:id=\"@+id/option4\"\n        android:icon=\"@drawable/ic_room_service_white_24px\"\n        android:title=\"@string/options_4\" /\u003e\n\n\u003c/menu\u003e\n```\n\n## Integrating with Gradle\n\nTo integrate with your project, just add the following line to your app `\u003cbuild.gradle\u003e` file\n\n```java\ncompile 'com.github.dekoservidoni:omfm:1.1.1'\n```\n\n## Important!\n\nPlease make sure your project have Kotlin support:\n\nTop-level build.gradle:\n```java\nclasspath \"org.jetbrains.kotlin:kotlin-gradle-plugin:1.1.51\"\n```\n\nModule build.gradle:\n```java\napply plugin: 'kotlin-android' \napply plugin: 'kotlin-android-extensions'\ndependencies {\n    implementation \"org.jetbrains.kotlin:kotlin-stdlib-jre7:1.1.51\"\n```\n\n## Licence\n\nLicensed 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\n\nhttp://www.apache.org/licenses/LICENSE-2.0\n\nUnless 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.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdekoservidoni%2Fomfm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdekoservidoni%2Fomfm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdekoservidoni%2Fomfm/lists"}