{"id":26385145,"url":"https://github.com/danwallach/xstopwatch","last_synced_at":"2025-03-17T07:39:40.396Z","repository":{"id":25607034,"uuid":"29042103","full_name":"danwallach/XStopwatch","owner":"danwallach","description":"Android Wear stopwatch \u0026 timer app that broadcasts information to Wear watchfaces","archived":false,"fork":false,"pushed_at":"2016-04-06T20:41:35.000Z","size":4999,"stargazers_count":4,"open_issues_count":0,"forks_count":3,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-04-18T14:12:49.827Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/danwallach.png","metadata":{"files":{"readme":"README.txt","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-01-10T00:47:05.000Z","updated_at":"2022-03-11T11:12:59.000Z","dependencies_parsed_at":"2022-09-08T05:10:09.446Z","dependency_job_id":null,"html_url":"https://github.com/danwallach/XStopwatch","commit_stats":null,"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danwallach%2FXStopwatch","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danwallach%2FXStopwatch/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danwallach%2FXStopwatch/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danwallach%2FXStopwatch/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/danwallach","download_url":"https://codeload.github.com/danwallach/XStopwatch/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243995199,"owners_count":20380756,"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-03-17T07:39:39.813Z","updated_at":"2025-03-17T07:39:40.389Z","avatar_url":"https://github.com/danwallach.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"/*\n * XStopwatch\n * Copyright (C) 2015 by Dan Wallach\n * Home page: http://www.cs.rice.edu/~dwallach/xstopwatch/\n * Licensing: http://www.cs.rice.edu/~dwallach/xstopwatch/licensing.html\n */\n\nWhat's where:\n\nnotes.txt -- ongoing work, notes, to-do items, etc.\n\n/icons -- assorted icons and imagery for XStopwatch\n    (note: \"resample.csh\", at the top level, starts from a\n     high-resolution screen dump and generates preview images at all\n     the correct resolutions; these downstream dependencies are all\n     checked in, so unless you're changing the the icon, you don't\n     need to rerun this csh script. Also note that you'll need the\n     imagemagick package installed to run it.)\n\n/mobile -- stub for the phone app (no actual code here)\n\n/wear -- code that runs on the watch\n    src/main/kotlin/org/dwallach/xstopwatch/ -- XStopwatch Kotlin files\n    (if you dig into the Git history, you'll see that earlier versions\n    were in Java, but it's all Kotlin now, going forward)\n\nIf you're looking to make some other stopwatch or count-down timer\nproduce broadcast notifications that are compatible with XStopwatch\nand XTimer, then you should go have a look at:\n\n\tPreferencesHelper.kt: loads and saves persistent state to the Android\n\tshared preferences and also sends out equivalent state as broadcast intents.\n\tYou can use the same action strings (from Constants.kt) to send out intents\n\twith the same sorts of values, and compliant watchfaces should render them\n\tproperly.\n\n\tReceiver.kt: you don't just have to send out the state of your stopwatch\n\tor timer when it changes, you have to listen for requests to do the same,\n\twhich means you need a receiver.\n\n\tAndroidManifest.xml: you'll see here where we set up the receiver. Also\n\twe have to make sure the service portion (NotificationService.kt) starts\n\tup at boot time, so we're ready to respond to these requests.\n\n\tAlso, make sure to verify that XWatchface and CalWatch properly receive\n\tyour broadcasts and that you receive theirs.\n\n\t(Xwatchface is written in Java and is a very simple example that you might\n\tprefer to use if you're trying to render stopwatches and timers.)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdanwallach%2Fxstopwatch","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdanwallach%2Fxstopwatch","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdanwallach%2Fxstopwatch/lists"}