├── .github └── workflows │ └── actions.yml ├── .gitignore ├── .travis.yml ├── CODE_OF_CONDUCT.md ├── LICENSE ├── Makefile ├── NOTICE ├── README.md ├── app ├── build.gradle └── src │ └── main │ ├── AndroidManifest.xml │ ├── java │ └── com │ │ └── lyft │ │ └── kronos │ │ └── demo │ │ ├── DemoApplication.kt │ │ ├── MainActivity.kt │ │ └── TextClock.kt │ └── res │ ├── layout │ └── activity_main.xml │ └── values │ ├── colors.xml │ ├── strings.xml │ └── styles.xml ├── ci ├── dependencies.gradle ├── gradle.properties ├── gradle ├── pom.gradle ├── publish-android.gradle ├── publish-java.gradle ├── publish.gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── kronos-android ├── build.gradle └── src │ └── main │ ├── AndroidManifest.xml │ └── java │ └── com │ └── lyft │ └── kronos │ ├── AndroidClockFactory.kt │ └── internal │ ├── AndroidSystemClock.kt │ └── SharedPreferenceSyncResponseCache.kt ├── kronos-java ├── build.gradle └── src │ ├── main │ └── java │ │ └── com │ │ └── lyft │ │ └── kronos │ │ ├── Clock.kt │ │ ├── ClockFactory.kt │ │ ├── DefaultParam.kt │ │ ├── SyncListener.kt │ │ ├── SyncResponseCache.kt │ │ ├── internal │ │ ├── Constants.kt │ │ ├── KronosClockImpl.kt │ │ └── ntp │ │ │ ├── DatagramFactory.kt │ │ │ ├── DnsResolver.kt │ │ │ ├── NTPSyncException.kt │ │ │ ├── SntpClient.java │ │ │ ├── SntpResponseCache.kt │ │ │ └── SntpService.kt │ │ ├── ntp │ │ ├── ByteBuffer.kt │ │ ├── NtpPacket.kt │ │ └── NtpPackets.kt │ │ └── sntp │ │ ├── Dns.kt │ │ └── Udp.kt │ └── test │ └── java │ └── com │ └── lyft │ └── kronos │ ├── ClockFactoryTest.java │ ├── internal │ ├── KronosClockTest.kt │ └── ntp │ │ ├── SntpClientTest.java │ │ ├── SntpResponseCacheTest.kt │ │ └── SntpServiceTest.kt │ ├── ntp │ ├── ByteBufferTests.kt │ └── NtpPacketsTests.kt │ └── sntp │ ├── DnsTests.kt │ └── UdpTests.kt └── settings.gradle /.github/workflows/actions.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyft/Kronos-Android/HEAD/.github/workflows/actions.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyft/Kronos-Android/HEAD/.gitignore -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyft/Kronos-Android/HEAD/.travis.yml -------------------------------------------------------------------------------- /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyft/Kronos-Android/HEAD/CODE_OF_CONDUCT.md -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyft/Kronos-Android/HEAD/LICENSE -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyft/Kronos-Android/HEAD/Makefile -------------------------------------------------------------------------------- /NOTICE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyft/Kronos-Android/HEAD/NOTICE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyft/Kronos-Android/HEAD/README.md -------------------------------------------------------------------------------- /app/build.gradle: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyft/Kronos-Android/HEAD/app/build.gradle -------------------------------------------------------------------------------- /app/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyft/Kronos-Android/HEAD/app/src/main/AndroidManifest.xml -------------------------------------------------------------------------------- /app/src/main/java/com/lyft/kronos/demo/DemoApplication.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyft/Kronos-Android/HEAD/app/src/main/java/com/lyft/kronos/demo/DemoApplication.kt -------------------------------------------------------------------------------- /app/src/main/java/com/lyft/kronos/demo/MainActivity.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyft/Kronos-Android/HEAD/app/src/main/java/com/lyft/kronos/demo/MainActivity.kt -------------------------------------------------------------------------------- /app/src/main/java/com/lyft/kronos/demo/TextClock.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyft/Kronos-Android/HEAD/app/src/main/java/com/lyft/kronos/demo/TextClock.kt -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_main.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyft/Kronos-Android/HEAD/app/src/main/res/layout/activity_main.xml -------------------------------------------------------------------------------- /app/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyft/Kronos-Android/HEAD/app/src/main/res/values/colors.xml -------------------------------------------------------------------------------- /app/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyft/Kronos-Android/HEAD/app/src/main/res/values/strings.xml -------------------------------------------------------------------------------- /app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyft/Kronos-Android/HEAD/app/src/main/res/values/styles.xml -------------------------------------------------------------------------------- /ci: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyft/Kronos-Android/HEAD/ci -------------------------------------------------------------------------------- /dependencies.gradle: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyft/Kronos-Android/HEAD/dependencies.gradle -------------------------------------------------------------------------------- /gradle.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyft/Kronos-Android/HEAD/gradle.properties -------------------------------------------------------------------------------- /gradle/pom.gradle: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyft/Kronos-Android/HEAD/gradle/pom.gradle -------------------------------------------------------------------------------- /gradle/publish-android.gradle: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyft/Kronos-Android/HEAD/gradle/publish-android.gradle -------------------------------------------------------------------------------- /gradle/publish-java.gradle: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyft/Kronos-Android/HEAD/gradle/publish-java.gradle -------------------------------------------------------------------------------- /gradle/publish.gradle: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyft/Kronos-Android/HEAD/gradle/publish.gradle -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyft/Kronos-Android/HEAD/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyft/Kronos-Android/HEAD/gradle/wrapper/gradle-wrapper.properties -------------------------------------------------------------------------------- /gradlew: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyft/Kronos-Android/HEAD/gradlew -------------------------------------------------------------------------------- /gradlew.bat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyft/Kronos-Android/HEAD/gradlew.bat -------------------------------------------------------------------------------- /kronos-android/build.gradle: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyft/Kronos-Android/HEAD/kronos-android/build.gradle -------------------------------------------------------------------------------- /kronos-android/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyft/Kronos-Android/HEAD/kronos-android/src/main/AndroidManifest.xml -------------------------------------------------------------------------------- /kronos-android/src/main/java/com/lyft/kronos/AndroidClockFactory.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyft/Kronos-Android/HEAD/kronos-android/src/main/java/com/lyft/kronos/AndroidClockFactory.kt -------------------------------------------------------------------------------- /kronos-android/src/main/java/com/lyft/kronos/internal/AndroidSystemClock.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyft/Kronos-Android/HEAD/kronos-android/src/main/java/com/lyft/kronos/internal/AndroidSystemClock.kt -------------------------------------------------------------------------------- /kronos-android/src/main/java/com/lyft/kronos/internal/SharedPreferenceSyncResponseCache.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyft/Kronos-Android/HEAD/kronos-android/src/main/java/com/lyft/kronos/internal/SharedPreferenceSyncResponseCache.kt -------------------------------------------------------------------------------- /kronos-java/build.gradle: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyft/Kronos-Android/HEAD/kronos-java/build.gradle -------------------------------------------------------------------------------- /kronos-java/src/main/java/com/lyft/kronos/Clock.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyft/Kronos-Android/HEAD/kronos-java/src/main/java/com/lyft/kronos/Clock.kt -------------------------------------------------------------------------------- /kronos-java/src/main/java/com/lyft/kronos/ClockFactory.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyft/Kronos-Android/HEAD/kronos-java/src/main/java/com/lyft/kronos/ClockFactory.kt -------------------------------------------------------------------------------- /kronos-java/src/main/java/com/lyft/kronos/DefaultParam.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyft/Kronos-Android/HEAD/kronos-java/src/main/java/com/lyft/kronos/DefaultParam.kt -------------------------------------------------------------------------------- /kronos-java/src/main/java/com/lyft/kronos/SyncListener.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyft/Kronos-Android/HEAD/kronos-java/src/main/java/com/lyft/kronos/SyncListener.kt -------------------------------------------------------------------------------- /kronos-java/src/main/java/com/lyft/kronos/SyncResponseCache.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyft/Kronos-Android/HEAD/kronos-java/src/main/java/com/lyft/kronos/SyncResponseCache.kt -------------------------------------------------------------------------------- /kronos-java/src/main/java/com/lyft/kronos/internal/Constants.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyft/Kronos-Android/HEAD/kronos-java/src/main/java/com/lyft/kronos/internal/Constants.kt -------------------------------------------------------------------------------- /kronos-java/src/main/java/com/lyft/kronos/internal/KronosClockImpl.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyft/Kronos-Android/HEAD/kronos-java/src/main/java/com/lyft/kronos/internal/KronosClockImpl.kt -------------------------------------------------------------------------------- /kronos-java/src/main/java/com/lyft/kronos/internal/ntp/DatagramFactory.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyft/Kronos-Android/HEAD/kronos-java/src/main/java/com/lyft/kronos/internal/ntp/DatagramFactory.kt -------------------------------------------------------------------------------- /kronos-java/src/main/java/com/lyft/kronos/internal/ntp/DnsResolver.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyft/Kronos-Android/HEAD/kronos-java/src/main/java/com/lyft/kronos/internal/ntp/DnsResolver.kt -------------------------------------------------------------------------------- /kronos-java/src/main/java/com/lyft/kronos/internal/ntp/NTPSyncException.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyft/Kronos-Android/HEAD/kronos-java/src/main/java/com/lyft/kronos/internal/ntp/NTPSyncException.kt -------------------------------------------------------------------------------- /kronos-java/src/main/java/com/lyft/kronos/internal/ntp/SntpClient.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyft/Kronos-Android/HEAD/kronos-java/src/main/java/com/lyft/kronos/internal/ntp/SntpClient.java -------------------------------------------------------------------------------- /kronos-java/src/main/java/com/lyft/kronos/internal/ntp/SntpResponseCache.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyft/Kronos-Android/HEAD/kronos-java/src/main/java/com/lyft/kronos/internal/ntp/SntpResponseCache.kt -------------------------------------------------------------------------------- /kronos-java/src/main/java/com/lyft/kronos/internal/ntp/SntpService.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyft/Kronos-Android/HEAD/kronos-java/src/main/java/com/lyft/kronos/internal/ntp/SntpService.kt -------------------------------------------------------------------------------- /kronos-java/src/main/java/com/lyft/kronos/ntp/ByteBuffer.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyft/Kronos-Android/HEAD/kronos-java/src/main/java/com/lyft/kronos/ntp/ByteBuffer.kt -------------------------------------------------------------------------------- /kronos-java/src/main/java/com/lyft/kronos/ntp/NtpPacket.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyft/Kronos-Android/HEAD/kronos-java/src/main/java/com/lyft/kronos/ntp/NtpPacket.kt -------------------------------------------------------------------------------- /kronos-java/src/main/java/com/lyft/kronos/ntp/NtpPackets.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyft/Kronos-Android/HEAD/kronos-java/src/main/java/com/lyft/kronos/ntp/NtpPackets.kt -------------------------------------------------------------------------------- /kronos-java/src/main/java/com/lyft/kronos/sntp/Dns.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyft/Kronos-Android/HEAD/kronos-java/src/main/java/com/lyft/kronos/sntp/Dns.kt -------------------------------------------------------------------------------- /kronos-java/src/main/java/com/lyft/kronos/sntp/Udp.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyft/Kronos-Android/HEAD/kronos-java/src/main/java/com/lyft/kronos/sntp/Udp.kt -------------------------------------------------------------------------------- /kronos-java/src/test/java/com/lyft/kronos/ClockFactoryTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyft/Kronos-Android/HEAD/kronos-java/src/test/java/com/lyft/kronos/ClockFactoryTest.java -------------------------------------------------------------------------------- /kronos-java/src/test/java/com/lyft/kronos/internal/KronosClockTest.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyft/Kronos-Android/HEAD/kronos-java/src/test/java/com/lyft/kronos/internal/KronosClockTest.kt -------------------------------------------------------------------------------- /kronos-java/src/test/java/com/lyft/kronos/internal/ntp/SntpClientTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyft/Kronos-Android/HEAD/kronos-java/src/test/java/com/lyft/kronos/internal/ntp/SntpClientTest.java -------------------------------------------------------------------------------- /kronos-java/src/test/java/com/lyft/kronos/internal/ntp/SntpResponseCacheTest.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyft/Kronos-Android/HEAD/kronos-java/src/test/java/com/lyft/kronos/internal/ntp/SntpResponseCacheTest.kt -------------------------------------------------------------------------------- /kronos-java/src/test/java/com/lyft/kronos/internal/ntp/SntpServiceTest.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyft/Kronos-Android/HEAD/kronos-java/src/test/java/com/lyft/kronos/internal/ntp/SntpServiceTest.kt -------------------------------------------------------------------------------- /kronos-java/src/test/java/com/lyft/kronos/ntp/ByteBufferTests.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyft/Kronos-Android/HEAD/kronos-java/src/test/java/com/lyft/kronos/ntp/ByteBufferTests.kt -------------------------------------------------------------------------------- /kronos-java/src/test/java/com/lyft/kronos/ntp/NtpPacketsTests.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyft/Kronos-Android/HEAD/kronos-java/src/test/java/com/lyft/kronos/ntp/NtpPacketsTests.kt -------------------------------------------------------------------------------- /kronos-java/src/test/java/com/lyft/kronos/sntp/DnsTests.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyft/Kronos-Android/HEAD/kronos-java/src/test/java/com/lyft/kronos/sntp/DnsTests.kt -------------------------------------------------------------------------------- /kronos-java/src/test/java/com/lyft/kronos/sntp/UdpTests.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyft/Kronos-Android/HEAD/kronos-java/src/test/java/com/lyft/kronos/sntp/UdpTests.kt -------------------------------------------------------------------------------- /settings.gradle: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyft/Kronos-Android/HEAD/settings.gradle --------------------------------------------------------------------------------