Skip to content

feat: Add View Binding#331

Merged
tyron12233 merged 31 commits intotyron12233:mainfrom
omeraydindev:viewbinding
Mar 26, 2022
Merged

feat: Add View Binding#331
tyron12233 merged 31 commits intotyron12233:mainfrom
omeraydindev:viewbinding

Conversation

@omeraydindev
Copy link
Contributor

This PR ports/cherry-picks View Binding feature to CodeAssist from the official data-binding library.
(Data Binding logic isn't ported for now, but it can be in the future.)


Steps to enable it in your project:

1- Set viewBindingEnabled to true in your app module's app_config.json.

2- Add the ViewBinding runtime to your project using Library Manager. Then Refresh module.
(e.g groupId: androidx.databinding , artifactId: viewbinding , versionName: 7.1.2 )

3- ????

4- Profit!!!


TO-DO

  • Write tests for GenerateViewBindingTask and maybe InjectViewBindingTask
  • Fix Kotlin auto-complete not recognizing binding classes.

Screenshots

@chengzhuangjie
Copy link

Please support as soon as possible

@ErrorFoundF
Copy link

Build version: 0.2.8.2 ALPHA
Build date: 1981-01-01 01:01:02
Current date: 2022-03-19 15:21:16
Device: Xiaomi Redmi 8

Stack trace:
java.lang.IllegalArgumentException: Parameter 'file' is not a file: /storage/emulated/0/Code Assist/nzjz/app/src/main/java/com/snj/ActivityMainBinding.java
at org.apache.commons.io.FileUtils.requireFile(FileUtils.java:2737)
at org.apache.commons.io.FileUtils.openOutputStream(FileUtils.java:2446)
at org.apache.commons.io.FileUtils.writeStringToFile(FileUtils.java:3540)
at org.apache.commons.io.FileUtils.writeStringToFile(FileUtils.java:3524)
at com.tyron.code.ui.editor.impl.text.rosemoe.CodeEditorFragment.lambda$save$11$com-tyron-code-ui-editor-impl-text-rosemoe-CodeEditorFragment(CodeEditorFragment.java:550)
at com.tyron.code.ui.editor.impl.text.rosemoe.CodeEditorFragment$$ExternalSyntheticLambda1.run(Unknown Source:2)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:919)

User actions:
2022-03-19 15:18:17: MainActivity created
2022-03-19 15:18:18: MainActivity resumed
2022-03-19 15:18:18: MainActivity paused
2022-03-19 15:18:19: MainActivity resumed
2022-03-19 15:18:38: MainActivity paused
2022-03-19 15:18:38: SettingsActivity created
2022-03-19 15:18:39: SettingsActivity resumed
2022-03-19 15:18:49: SettingsActivity paused
2022-03-19 15:18:49: MainActivity resumed
2022-03-19 15:18:50: SettingsActivity destroyed
2022-03-19 15:19:08: MainActivity paused
2022-03-19 15:19:34: MainActivity resumed
2022-03-19 15:20:22: MainActivity paused
2022-03-19 15:20:24: MainActivity resumed

@omeraydindev
Copy link
Contributor Author

Build version: 0.2.8.2 ALPHA Build date: 1981-01-01 01:01:02 Current date: 2022-03-19 15:21:16 Device: Xiaomi Redmi 8

Stack trace: java.lang.IllegalArgumentException: Parameter 'file' is not a file: /storage/emulated/0/Code Assist/nzjz/app/src/main/java/com/snj/ActivityMainBinding.java at org.apache.commons.io.FileUtils.requireFile(FileUtils.java:2737) at org.apache.commons.io.FileUtils.openOutputStream(FileUtils.java:2446) at org.apache.commons.io.FileUtils.writeStringToFile(FileUtils.java:3540) at org.apache.commons.io.FileUtils.writeStringToFile(FileUtils.java:3524) at com.tyron.code.ui.editor.impl.text.rosemoe.CodeEditorFragment.lambda$save$11$com-tyron-code-ui-editor-impl-text-rosemoe-CodeEditorFragment(CodeEditorFragment.java:550) at com.tyron.code.ui.editor.impl.text.rosemoe.CodeEditorFragment$$ExternalSyntheticLambda1.run(Unknown Source:2) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) at java.lang.Thread.run(Thread.java:919)

User actions: 2022-03-19 15:18:17: MainActivity created 2022-03-19 15:18:18: MainActivity resumed 2022-03-19 15:18:18: MainActivity paused 2022-03-19 15:18:19: MainActivity resumed 2022-03-19 15:18:38: MainActivity paused 2022-03-19 15:18:38: SettingsActivity created 2022-03-19 15:18:39: SettingsActivity resumed 2022-03-19 15:18:49: SettingsActivity paused 2022-03-19 15:18:49: MainActivity resumed 2022-03-19 15:18:50: SettingsActivity destroyed 2022-03-19 15:19:08: MainActivity paused 2022-03-19 15:19:34: MainActivity resumed 2022-03-19 15:20:22: MainActivity paused 2022-03-19 15:20:24: MainActivity resumed

Any particular steps to reproduce the error? Or a screen recording. Either is fine.

@ErrorFoundF
Copy link

ErrorFoundF commented Mar 19, 2022

Build version: 0.2.8.2 ALPHA Build date: 1981-01-01 01:01:02 Current date: 2022-03-19 15:21:16 Device: Xiaomi Redmi 8
Stack trace: java.lang.IllegalArgumentException: Parameter 'file' is not a file: /storage/emulated/0/Code Assist/nzjz/app/src/main/java/com/snj/ActivityMainBinding.java at org.apache.commons.io.FileUtils.requireFile(FileUtils.java:2737) at org.apache.commons.io.FileUtils.openOutputStream(FileUtils.java:2446) at org.apache.commons.io.FileUtils.writeStringToFile(FileUtils.java:3540) at org.apache.commons.io.FileUtils.writeStringToFile(FileUtils.java:3524) at com.tyron.code.ui.editor.impl.text.rosemoe.CodeEditorFragment.lambda$save$11$com-tyron-code-ui-editor-impl-text-rosemoe-CodeEditorFragment(CodeEditorFragment.java:550) at com.tyron.code.ui.editor.impl.text.rosemoe.CodeEditorFragment$$ExternalSyntheticLambda1.run(Unknown Source:2) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) at java.lang.Thread.run(Thread.java:919)
User actions: 2022-03-19 15:18:17: MainActivity created 2022-03-19 15:18:18: MainActivity resumed 2022-03-19 15:18:18: MainActivity paused 2022-03-19 15:18:19: MainActivity resumed 2022-03-19 15:18:38: MainActivity paused 2022-03-19 15:18:38: SettingsActivity created 2022-03-19 15:18:39: SettingsActivity resumed 2022-03-19 15:18:49: SettingsActivity paused 2022-03-19 15:18:49: MainActivity resumed 2022-03-19 15:18:50: SettingsActivity destroyed 2022-03-19 15:19:08: MainActivity paused 2022-03-19 15:19:34: MainActivity resumed 2022-03-19 15:20:22: MainActivity paused 2022-03-19 15:20:24: MainActivity resumed

Any particular steps to reproduce the error? Or a screen recording. Either is fine.

I don't know error because this error show by an accident.

@omeraydindev
Copy link
Contributor Author

Added a basic test for GenerateViewBindingTask. (As there already extensive tests in the library itself here) The PR should now be ready

@omeraydindev omeraydindev marked this pull request as ready for review March 19, 2022 16:31
@tyron12233 tyron12233 merged commit be0d3ab into tyron12233:main Mar 26, 2022
@Mdshorifmolla
Copy link

Nice app

@omeraydindev omeraydindev deleted the viewbinding branch May 28, 2022 17:32
@Johnismaiel
Copy link

Apk

Copy link

@Johnismaiel Johnismaiel left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's good

Copy link

@Johnismaiel Johnismaiel left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

      • great

@Diogoeae
Copy link

Diogoeae commented Jan 30, 2026

Normalmente quando eu tento passar arquivos AndroidManifest e possuem erros, eu caiu na tela de projeto brinkado/quebrado, nesses casos normalmente ele perde a permissão de acessar o diretório pai temporariamente, chega ser engraçado, mas o projeto vai de F
Desculpe o comentário longo.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants