profile
viewpoint
Zach Klippenstein zach-klippenstein @Square San Francisco, CA http://www.zachklipp.com Engineer at Square, previously Amazon. Opinions my own.

square/phrase 1377

Phrase is an Android string resource templating library

square/workflow 831

A Swift and Kotlin library for making composable state machines, and UIs driven by those state machines.

square/radiography 340

Text-ray goggles for your Android views.

zach-klippenstein/compose-richtext 134

A collection of Compose libraries for advanced text formatting and alternative display types.

zach-klippenstein/adbfs 99

A FUSE filesystem that uses goadb to expose Android devices' filesystems.

zach-klippenstein/compose-backstack 98

Simple composable for rendering transitions between backstacks.

square/workflow-android-template 76

Template project for new Workflow-based Android apps – just clone and start building!

square/workflow-swift 75

A Swift and Kotlin library for making composable state machines, and UIs driven by those state machines.

zach-klippenstein/captivate 11

A simple service for detecting wifi hotspots that ask for information (captive portals), and automatically showing the login page.

startedzach-klippenstein/compose-backstack

started time in 5 hours

startedzach-klippenstein/compose-richtext

started time in 8 hours

startedzach-klippenstein/compose-backstack

started time in 8 hours

startedzach-klippenstein/compose-backstack

started time in 19 hours

startedzach-klippenstein/compose-richtext

started time in a day

startedzach-klippenstein/compose-backstack

started time in a day

startedzach-klippenstein/compose-backstack

started time in 2 days

push eventsquare/cycler

Ralf Wondratschek

commit sha b06213c8b0393772934bbaad917201f1e6d1cc5d

Upgrade the gradle wrapper to 6.7.1.

view details

Ralf Wondratschek

commit sha efa2398329f98c7df8a9c39f2909d5c2ad121368

Upgrade the Android Gradle Plugin to 4.1.1.

view details

Ralf Wondratschek

commit sha c568c36420f24245b6221a87b5ad19ed65b1c4bd

Upgarde Kotlin to 1.4.20. Fixes #32

view details

Ralf Wondratschek

commit sha dfaa0dad9eca218856a17e63fbc95937dd2f1bb9

Merge pull request #43 from square/ralf/upgrades Upgrade Kotlin, AGP and the Gradle wrapper

view details

push time in 2 days

issue closedsquare/cycler

Upgrade Kotlin to 1.4

closed time in 2 days

zach-klippenstein

delete branch square/cycler

delete branch : ralf/upgrades

delete time in 2 days

PR merged square/cycler

Reviewers
Upgrade Kotlin, AGP and the Gradle wrapper
+21 -24

0 comment

6 changed files

vRallev

pr closed time in 2 days

Pull request review commentsquare/cycler

Upgrade Kotlin, AGP and the Gradle wrapper

 private class MutationExtension<T : Any>(val spec: MutationExtensionSpec<T>) : E    override lateinit var data: RecyclerData<T> -  internal fun setUpDragHandle(view: View) {+  @SuppressLint("ClickableViewAccessibility")+  fun setUpDragHandle(view: View) {

It's redundant, because the class itself is private.

vRallev

comment created time in 2 days

fork vRallev/radiography

Text-ray goggles for your Android views.

fork in 2 days

Pull request review commentsquare/cycler

Upgrade Kotlin, AGP and the Gradle wrapper

 android { dependencies {   api deps.recyclerview -  implementation deps.kotlin_stdlib

I remove the dependency because the Kotlin Gradle Plugin adds it by default.

vRallev

comment created time in 2 days

PR opened square/cycler

Upgrade Kotlin, AGP and the Gradle wrapper
+21 -24

0 comment

6 changed files

pr created time in 2 days

create barnchsquare/cycler

branch : ralf/upgrades

created branch time in 2 days

startedzach-klippenstein/compose-richtext

started time in 2 days

created repositoryzblach/zblach

created time in 3 days

created repositoryzblach/ubuild-jekyll

created time in 3 days

PR opened zach-klippenstein/goadb

Update MaxMessageLength behavior

This PR intends to update goadb's behaviors regarding to message length. So that:

  • Accept all message lengths returned from adb server
  • Update MaxMessageLength and length-checking logics to reflect current adb's implementation

This fixed #31, and (hopefully) #26 #29.

Please take a look @zach-klippenstein. Thanks!

+3 -8

0 comment

3 changed files

pr created time in 3 days

fork ltpquang/goadb

A Golang library for interacting with adb.

fork in 3 days

issue commentzach-klippenstein/goadb

Mismatch number of devices returned from `goadb`

It seems that the full message is trimmed to fixed in 255 bytes length

330055a244c72319       device usb:338964480X product:a5xeltexx model:SM_A510F device:a5xelte transport_id:16
3300b0e061f593e9       device usb:338960384X product:on7xeltedd model:SM_G610F device:on7xelte transport_id:17
52004c98eea95419       device usb:3
ltpquang

comment created time in 3 days

issue commentzach-klippenstein/goadb

ListDevices Error

Hi, @0xhex . I'm recently using goadb, and I found that your reported errror occured because the length of the response was clipped to MaxMessageLength = 255 but each deviceinfo is almost 100-bytes, so this error occured when a deviceinfo was clipped. To solve this, you can change it to MaxMessageLength = 65536 or a bigger value that ensures your deviceinfo can be fully displayed.

Same issue reported in #26 . Mind me sending a pr? @zach-klippenstein

Hi @zhongqin0820 I'm stuck on the same problem, I read the source and @zach-klippenstein indicated that the 255 number is following Google adb implementation, any idea on this?

0xhex

comment created time in 3 days

issue openedzach-klippenstein/goadb

Mismatch number of devices returned from `goadb`

I have 4 devices plugged in, and can successfully retrieve with adb CLI

cpu12454@cpu12454-B360M-AORUS-Gaming-3:~$ adb devices -l
List of devices attached
330055a244c72319       device usb:1-5 product:a5xeltexx model:SM_A510F device:a5xelte transport_id:2
3300b0e061f593e9       device usb:1-1 product:on7xeltedd model:SM_G610F device:on7xelte transport_id:1
52004c98eea95419       device usb:1-2 product:j7y17ltedx model:SM_J730G device:j7y17lte transport_id:3
c9acd3c9               device usb:1-6 product:j6primeltedd model:SM_J610F device:j6primelte transport_id:4

But goadb only return 3 of them:

Nov 23 18:40:15 cpu12454-B360M-AORUS-Gaming-3 device-manager[2040320]: {"Serial":"330055a244c72319","Product":"a5xeltexx","Model":"SM_A510F","DeviceInfo":"a5xelte","Usb":"1-5"}
Nov 23 18:40:15 cpu12454-B360M-AORUS-Gaming-3 device-manager[2040320]: {"Serial":"3300b0e061f593e9","Product":"on7xeltedd","Model":"SM_G610F","DeviceInfo":"on7xelte","Usb":"1-1"}
Nov 23 18:40:15 cpu12454-B360M-AORUS-Gaming-3 device-manager[2040320]: {"Serial":"52004c98eea95419","Product":"j7y17","Model":"","DeviceInfo":"","Usb":"1-2"}

Any idea how to resolve this problem?

created time in 4 days

startedzach-klippenstein/compose-backstack

started time in 4 days

startedzach-klippenstein/compose-backstack

started time in 5 days

fork kageiit/switchbot-mqtt

MQTT client controlling SwitchBot button automators, compatible with Home Assistant :house_with_garden: 🐳

https://pypi.org/project/switchbot-mqtt/

fork in 5 days

startedjstayton/suri

started time in 6 days

startedzach-klippenstein/compose-backstack

started time in 6 days

Pull request review commentKotlin/kotlinx.collections.immutable

Bug in PersistentList - list is broken after removeAll call #92

 internal class PersistentVectorBuilder<E>(private var vector: PersistentList<E>,         while (lastIndex shr rootShift == 0) {             rootShift -= LOG_MAX_BUFFER_SIZE             @Suppress("UNCHECKED_CAST")-            newRoot = root[0] as Array<Any?>+            newRoot = newRoot[0] as Array<Any?>

So usually it didn't happen because we only stepped once in this loop?

qurbonzoda

comment created time in 7 days

more