The Trello Board will show you the project roadmap, any issues in the GitHub tracker should also be there.
This plugin will only ever support TalkBack for Developers and not any other screen reader without ADB-friendly controls. The code is open source. This includes Google's TalkBack, Samsung's TalkBack, Amazon VoiceView and CSR - unless they add ADB features, in which case they will be given a separate tab. Separation of concerns is the highest priority in this code.
Yes it's written in Swing, you are more than welcome to create a Jewel version if you like. The main reasons the project is not using Jetpack Compose yet are:
- It's not production ready
- Documentation is scarce, I couldn't even create a template project (not that I am all that great, I'm just on a late deadline)
- APIs are not settled
- Performance concerns: Jetpack Compose is optimised for mobile
- Accessibility concerns, Swing is at least old enough for AT to do some tricks
- Encourage developers to make their apps and features accessible
- Consolidate the Android accessibility services and settings into a simple-to-use interface
- Increase awareness of different accessibility settings
- Help developers use either a physical device or emulator
- Reduce developer context switching while conducting manual tests
- Lower the barrier to entry in getting comfortable using screen readers
- A plugin for Android studio
- A user interface to various assistive technologies
- Simple check list for accessibility standards [Future work]
This plugin was built using the JetBrains IntelliJ Platform SDK. Best practice will be taken as much as possible from that document and SOLID programming principles.
Please ensure you have read and abide by the JetBrains developer code of conduct
- You are positively contributing to the source code
- You can articulate the reasons for your changes
- Reasonable tests have been written for the feature
- The PR has screenshots if there are UI changes
- You are rude, discriminatory or demeaning in any way
- You use object classes or companion objects (find out why)
adb shell service list # get system services and interfaces
adb shell dumpsys settings # list all elements of a service (e.g. settings can do any service)
https://cs.android.com/android/platform/superproject/main # search for interface (no package + ".aidl" suffix)
adb shell service call uimode 6 i32 2 # call 6th method of IUiModeManager.aidl with int param (can't do java obj params)
Thanks to Chris Simmons and his amazing DroidCon presentation "Exploring Android Internals with ADB"
Follow the instructions to generate a private key and chain file You'll need to set up 4 environment variables:
export VERSION_NUMBER=[VERSION NUMBER]
export CERTIFICATE_CHAIN=$(cat chain.crt)
export PRIVATE_KEY=$(cat private.pem)
export PRIVATE_KEY_PASSWORD=[YOUR PASSWORD]
And then you can run ./gradlew signPlugin
- I have not been successful running this from the IDE, but you're welcome to try.
Using this method you will not be able to upload to the store, but this is how you can test locally.