{"id":27966468,"url":"https://github.com/techery/progresshint","last_synced_at":"2025-05-07T20:18:57.964Z","repository":{"id":33153711,"uuid":"36794261","full_name":"techery/progresshint","owner":"techery","description":"ProgressBar/SeekBar delegate to show floating progress with style","archived":false,"fork":false,"pushed_at":"2023-08-07T18:42:08.000Z","size":946,"stargazers_count":373,"open_issues_count":0,"forks_count":57,"subscribers_count":46,"default_branch":"master","last_synced_at":"2025-05-07T20:18:51.665Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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/techery.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":"2015-06-03T09:38:34.000Z","updated_at":"2025-05-02T16:41:02.000Z","dependencies_parsed_at":"2022-06-27T07:16:22.549Z","dependency_job_id":null,"html_url":"https://github.com/techery/progresshint","commit_stats":null,"previous_names":[],"tags_count":12,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/techery%2Fprogresshint","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/techery%2Fprogresshint/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/techery%2Fprogresshint/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/techery%2Fprogresshint/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/techery","download_url":"https://codeload.github.com/techery/progresshint/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252949223,"owners_count":21830154,"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":[],"created_at":"2025-05-07T20:18:57.417Z","updated_at":"2025-05-07T20:18:57.942Z","avatar_url":"https://github.com/techery.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ProgressHint\nProgressBar/SeekBar delegate to show floating progress with style\n\n![JitPack release](https://img.shields.io/github/tag/techery/progresshint.svg?label=JitPack)\n\n![Demo](assets/progresshint-demo.gif)\n\n## Description\n+ ``Library`` module provides a basic abstract ``ProgressHintDelegate`` which in conjunction with ``SeekBar``\n could show current progress in a floating styled window.\n+ ``Library-addition`` module implements ``SeekBar`` and ``VerticalSeekBar`` with delegate support.\n\n## Getting Started\n**1)** In your `build.gradle`:\n\n```gradle\nrepositories {\n  jcenter()\n  maven { url \"https://jitpack.io\" }\n}\ndependencies {\n  compile 'com.github.techery.progresshint:library-addition:{jitpack-release}'\n}\n```\n\n**2)** In view XML\n\n```xml\n\u003cio.techery.progresshint.addition.widget.SeekBar\n    android:layout_width=\"match_parent\"\n    android:layout_height=\"wrap_content\"\n    app:popupStyle=\"follow\"\n    /\u003e\n```\n\nor\n\n```xml\n\u003ccom.h6ah4i.android.widget.verticalseekbar.VerticalSeekBarWrapper\n    android:layout_width=\"wrap_content\"\n    android:layout_height=\"match_parent\"\n    \u003e\n  \u003cio.techery.progresshint.addition.widget.VerticalSeekBar\n      android:layout_width=\"0dp\"\n      android:layout_height=\"0dp\"\n      app:seekBarRotation=\"CW90\"\n      app:popupStyle=\"follow\"\n      app:popupLayout=\"@layout/custom_seekbar_hint_popup\"\n      app:popupAlwaysShown=\"true\"\n      /\u003e\n  \u003c!-- Rotation: CW90 or CW270 --\u003e\n\u003c/com.h6ah4i.android.widget.verticalseekbar.VerticalSeekBarWrapper\u003e\n```\n\n__Available attributes__\n\n+ ``popupLayout``: layout to be used, must include ``android:id/text1 TextView``\n+ ``popupStyle``: can be ``fixed`` or ``follow``, default `follow`\n+ ``popupAnimationStyle``: in/out animation, default `fade`\n+ ``popupOffset``: distance from top/right of the widget to popup, default `0`\n+ ``popupAlwaysShown``: do not dismiss popup after _onStopTrackingTouch_, default `false`\n+ ``popupDraggable``: enables progress change by hint popup dragging, default `true`\n\n**3)** Optionally customize the displayed text in Java code:\n\n```java\nSeekBarHintDelegateHolder seekBar = (SeekBarHintDelegateHolder) findViewById(R.id.seekBar);\nseekBar.getHintDelegate()\n    .setHintAdapter(new SeekBarHintAdapter() {\n      @Override public String getHint(android.widget.SeekBar seekBar, int progress) {\n        return \"Progress: \" + String.valueOf(progress);\n      }\n    });\n```\n\n**4)** Optionally use `Theme` attribute\n\n```xml\n\u003cstyle name=\"AppTheme\" parent=\"Theme.AppCompat.Light.DarkActionBar\"\u003e\n    \u003citem name=\"progressHintStyle\"\u003e@style/Widget.ProgressHint\u003c/item\u003e\n\u003c/style\u003e\n```\n\n**5)** Optionally if inside ScrollView\n\nUse `ProgressHintScrollController` to hide \u0026 show popup properly on scrolling. \nSee [Sample's Activity](https://github.com/techery/progresshint/blob/master/sample/src/main/java/com/example/progresshint/ScrollActivity.java) for details\n\n#### Additionally\n- [x] Supports AndroidX\n\n## Credits\nThanks to\n+ @moondroid for [inspiration](https://github.com/moondroid/SeekBarHint)\n+ @h6ah4i for [VerticalSeekBar](https://github.com/h6ah4i/android-verticalseekbar)\n\n## License\n\n    Copyright (c) 2015 Techery\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","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftechery%2Fprogresshint","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftechery%2Fprogresshint","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftechery%2Fprogresshint/lists"}