Skip to content

Commit c75764b

Browse files
xaionaro@dx.centerxaionaro@dx.center
authored andcommitted
Fixes
1 parent 0238362 commit c75764b

222 files changed

Lines changed: 3158 additions & 6670 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,4 @@
44
*.so
55
cover.out
66
examples/test_results/
7+
/jnigen

.golangci.yml

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,6 @@ version: "2"
22

33
run:
44
timeout: 5m
5-
build-tags:
6-
- android
75

86
linters:
97
enable:
@@ -12,3 +10,8 @@ linters:
1210
- errcheck
1311
- ineffassign
1412
- unused
13+
14+
issues:
15+
exclude-dirs:
16+
- capi
17+
- examples

Makefile

Lines changed: 3 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
.PHONY: generate specs jni java proto protoc grpc cli clean lint test test-tools build prove
1+
.PHONY: generate specs jni java clean lint test test-tools build prove
22

33
# JDK detection for host tests (jni.h and libjvm.so).
44
JDK_HOME ?= $(shell readlink -f $$(which javac) 2>/dev/null | sed 's|/bin/javac$$||')
@@ -8,12 +8,8 @@ LIBJVM_DIR ?= $(shell find $(JDK_HOME) -name libjvm.so -printf '%h' -quit 2>/dev
88
# Android SDK platform JAR for specgen.
99
ANDROID_JAR ?= $(ANDROID_HOME)/platforms/android-36/android.jar
1010

11-
# Output directory for gRPC proxy code (proto/, grpc/, cmd/jnicli/).
12-
# Set PROXY_DIR to a jni-proxy checkout to generate into that repo.
13-
PROXY_DIR ?= .
14-
15-
# Run all generators
16-
generate: specs jni java proto protoc grpc cli
11+
# Run all generators (proto/grpc/cli generation moved to jni-proxy repo)
12+
generate: specs jni java
1713

1814
# Run specgen — generates YAML specs from ref/ .class files
1915
specs:
@@ -27,31 +23,6 @@ jni:
2723
java:
2824
go run ./tools/cmd/javagen/ -specs spec/java/ -overlays spec/overlays/java/ -templates templates/java/ -output . -go-module github.com/AndroidGoLab/jni
2925

30-
# Run protogen — generates .proto files from Java API specs
31-
# Output goes to PROXY_DIR (set to jni-proxy checkout path).
32-
proto:
33-
go run ./tools/cmd/protogen/ -specs spec/java/ -overlays spec/overlays/java/ -output $(PROXY_DIR)/proto/ -go-module github.com/AndroidGoLab/jni-proxy
34-
@mkdir -p $(PROXY_DIR)/proto/handlestore
35-
@cp spec/handlestore.proto $(PROXY_DIR)/proto/handlestore/handlestore.proto
36-
37-
# Run protoc — compiles .proto files to Go stubs
38-
protoc: proto
39-
@command -v protoc >/dev/null 2>&1 || { echo "protoc not found. Install: https://grpc.io/docs/protoc-installation/"; exit 1; }
40-
@for dir in $(PROXY_DIR)/proto/*/; do \
41-
pkg=$$(basename "$$dir"); \
42-
protoc -I. --go_out=. --go_opt=paths=source_relative \
43-
--go-grpc_out=. --go-grpc_opt=paths=source_relative \
44-
"$$dir$$pkg.proto"; \
45-
done
46-
47-
# Run grpcgen — generates gRPC server and client wrappers
48-
grpc: protoc
49-
go run ./tools/cmd/grpcgen/ -specs spec/java/ -overlays spec/overlays/java/ -output $(PROXY_DIR) -go-module github.com/AndroidGoLab/jni-proxy
50-
51-
# Run cligen — generates jnicli cobra commands from Java API specs
52-
cli: grpc
53-
go run ./tools/cmd/cligen/ -specs spec/java/ -overlays spec/overlays/java/ -output $(PROXY_DIR)/cmd/jnicli/ -go-module github.com/AndroidGoLab/jni-proxy
54-
5526
# Remove all generated files (identified by "DO NOT EDIT" header), excluding tools/
5627
clean:
5728
grep -rl "Code generated by jnigen\. DO NOT EDIT\." --include="*.go" --exclude-dir=tools . | xargs -r rm -f

app/context.go

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ func ensureContextInit(env *jni.Env) error {
5252
// After Close, the Context must not be used.
5353
func (m *Context) Close() {
5454
if m.Obj != nil {
55-
m.VM.Do(func(env *jni.Env) error {
55+
_ = m.VM.Do(func(env *jni.Env) error {
5656
env.DeleteGlobalRef(m.Obj)
5757
m.Obj = nil
5858
return nil
@@ -64,7 +64,7 @@ func (m *Context) Close() {
6464
func (m *Context) PackageManager() (*jni.Object, error) {
6565
var result *jni.Object
6666
var callErr error
67-
m.VM.Do(func(env *jni.Env) error {
67+
doErr := m.VM.Do(func(env *jni.Env) error {
6868
if err := ensureContextInit(env); err != nil {
6969
callErr = err
7070
return err
@@ -81,14 +81,17 @@ func (m *Context) PackageManager() (*jni.Object, error) {
8181
result, callErr = env.CallObjectMethod(m.Obj, mid)
8282
return callErr
8383
})
84-
return result, callErr
84+
if callErr != nil {
85+
return result, callErr
86+
}
87+
return result, doErr
8588
}
8689

8790
// ContentResolver calls android.content.Context.getContentResolver().
8891
func (m *Context) ContentResolver() (*jni.Object, error) {
8992
var result *jni.Object
9093
var callErr error
91-
m.VM.Do(func(env *jni.Env) error {
94+
doErr := m.VM.Do(func(env *jni.Env) error {
9295
if err := ensureContextInit(env); err != nil {
9396
callErr = err
9497
return err
@@ -105,14 +108,17 @@ func (m *Context) ContentResolver() (*jni.Object, error) {
105108
result, callErr = env.CallObjectMethod(m.Obj, mid)
106109
return callErr
107110
})
108-
return result, callErr
111+
if callErr != nil {
112+
return result, callErr
113+
}
114+
return result, doErr
109115
}
110116

111117
// GetSystemService calls android.content.Context.getSystemService.
112118
func (m *Context) GetSystemService(name string) (*jni.Object, error) {
113119
var result *jni.Object
114120
var callErr error
115-
m.VM.Do(func(env *jni.Env) error {
121+
doErr := m.VM.Do(func(env *jni.Env) error {
116122
if err := ensureContextInit(env); err != nil {
117123
callErr = err
118124
return err
@@ -128,5 +134,8 @@ func (m *Context) GetSystemService(name string) (*jni.Object, error) {
128134
)
129135
return callErr
130136
})
131-
return result, callErr
137+
if callErr != nil {
138+
return result, callErr
139+
}
140+
return result, doErr
132141
}

app/intent_extra.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,8 @@ func NewIntent(vm *jni.VM) (*Intent, error) {
4040
func (i *Intent) PutStringExtra(
4141
key string,
4242
value string,
43-
) {
44-
i.VM.Do(func(env *jni.Env) error {
43+
) error {
44+
return i.VM.Do(func(env *jni.Env) error {
4545
cls := env.GetObjectClass(i.Obj)
4646
mid, err := env.GetMethodID(cls, "putExtra",
4747
"(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;")
@@ -66,8 +66,8 @@ func (i *Intent) PutStringExtra(
6666
func (i *Intent) PutIntExtra(
6767
key string,
6868
value int32,
69-
) {
70-
i.VM.Do(func(env *jni.Env) error {
69+
) error {
70+
return i.VM.Do(func(env *jni.Env) error {
7171
cls := env.GetObjectClass(i.Obj)
7272
mid, err := env.GetMethodID(cls, "putExtra",
7373
"(Ljava/lang/String;I)Landroid/content/Intent;")
@@ -88,8 +88,8 @@ func (i *Intent) PutIntExtra(
8888
func (i *Intent) PutBoolExtra(
8989
key string,
9090
value bool,
91-
) {
92-
i.VM.Do(func(env *jni.Env) error {
91+
) error {
92+
return i.VM.Do(func(env *jni.Env) error {
9393
cls := env.GetObjectClass(i.Obj)
9494
mid, err := env.GetMethodID(cls, "putExtra",
9595
"(Ljava/lang/String;Z)Landroid/content/Intent;")

array.go

Lines changed: 0 additions & 45 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

bluetooth/new_adapter.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ func NewAdapter(ctx *app.Context) (*Adapter, error) {
5858
// Close releases the global reference to the underlying Java object.
5959
func (m *Adapter) Close() {
6060
if m.Obj != nil {
61-
m.VM.Do(func(env *jni.Env) error {
61+
_ = m.VM.Do(func(env *jni.Env) error {
6262
env.DeleteGlobalRef(m.Obj)
6363
m.Obj = nil
6464
return nil

booleanarray.go

Lines changed: 13 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

bytearray.go

Lines changed: 13 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

capi/array.go

Lines changed: 9 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)