2
0
mirror of synced 2025-02-24 07:18:15 +00:00

720 Commits

Author SHA1 Message Date
Elias Naur
c432672682 mobile/bind: fix long strings
Change-Id: Ia7c4523804b2588efb3ea6cc14b34a951faa298c
Reviewed-on: https://go-review.googlesource.com/20092
Reviewed-by: Hyang-Ah Hana Kim <hyangah@gmail.com>
2016-03-01 16:03:40 +00:00
Elias Naur
320ec40f63 mobile/bind: fix RefMap invariant
RefMap tracks its number of live Ref instances in the 'live' member.
However, when a reference was removed and later added, 'live' wasn't
updated accordingly. Fix and add a test.

Change-Id: I806e17ea0319d76db4d07b5f8d9107b146ee80db
Reviewed-on: https://go-review.googlesource.com/19975
Reviewed-by: Hyang-Ah Hana Kim <hyangah@gmail.com>
2016-02-29 09:47:09 +00:00
Elias Naur
9ea846d4a9 mobile/bind: make sure the Java SeqTest has a valid context
On some Android devices (my HTC One S running Android 4.1.1),
SeqTest failed the testAssets test because the LoadJNI hack to
locate a valid context fails.

Instead, make testAssets set up a valid context acquired from
InstrumentTestCase.

Change-Id: If6e11173dbacff45eb6cb0f409f56cbd88186e30
Reviewed-on: https://go-review.googlesource.com/19896
Reviewed-by: David Crawshaw <crawshaw@golang.org>
2016-02-26 14:44:39 +00:00
Nigel Tao
74f88983e7 app: fix shiny build.
Fixes golang/go#14401.

Change-Id: Id8bbc69e8dcb397094c165e97946d4d2688f34ad
Reviewed-on: https://go-review.googlesource.com/19872
Reviewed-by: David Crawshaw <crawshaw@golang.org>
2016-02-25 00:29:21 +00:00
Hyang-Ah (Hana) Kim
876458415e bind: rename seq package with name _seq in generated Go code
Avoid taking a good name (seq) away from users.

Fixes golang/go#14168

Change-Id: I88e90cb74b479e348c642a1caa27096ed4a6d68e
Reviewed-on: https://go-review.googlesource.com/19601
Reviewed-by: David Crawshaw <crawshaw@golang.org>
2016-02-21 08:48:00 +00:00
Hajime Hoshi
c1fbaaac1c x/mobile/gl: Fix arguments passed to glBufferData from BufferInit
Before this CL, BufferInit always causes INVALID_ENUM error because
0 (a2) is always passed to 'usage' argument of glBufferData.

This CL fixes removes a2, shifts a3 to a2, and adds parg as null
pointer explicitly.

Fixes golang/go#14403

Change-Id: I11109c983316f5975a79f42dc51d7a180e222b91
Reviewed-on: https://go-review.googlesource.com/19703
Reviewed-by: David Crawshaw <crawshaw@golang.org>
2016-02-20 03:02:31 +00:00
Burcu Dogan
ed70d674be exp/audio/al: cleanup unnecessary casts
As a follow-up to CL/19472, I am removing the unnecessary casts. It
turned out that the only call sites that will benefit from this change
are the ones added in CL/19472. Sorry for the additional CL.

Change-Id: Ib6bdffefad5b84beb57108a74ebcedc25b7ef7b3
Reviewed-on: https://go-review.googlesource.com/19653
Reviewed-by: Hyang-Ah Hana Kim <hyangah@gmail.com>
2016-02-19 07:12:45 +00:00
Hyang-Ah (Hana) Kim
52e0785361 cmd/gomobile: enable android/386, android/amd64 support
Change-Id: I044c6f773cb91b75b00171db688c6b4fbe8ec86e
Reviewed-on: https://go-review.googlesource.com/19600
Reviewed-by: David Crawshaw <crawshaw@golang.org>
2016-02-19 04:52:18 +00:00
Burcu Dogan
77abf9cb27 exp/audio/al: add more generic getters
Updates golang/go#13912.

Change-Id: I0eb017513872c9d44364b8c96e632ce3d08c6e10
Reviewed-on: https://go-review.googlesource.com/19472
Reviewed-by: David Crawshaw <crawshaw@golang.org>
2016-02-18 20:47:01 +00:00
Hyang-Ah (Hana) Kim
55a5a7b7a3 cmd/gomobile: create java source directory before creating symlink
Fixes golang/go#14333

Change-Id: Ica24280840546fb877efff0d8163d705dc825847
Reviewed-on: https://go-review.googlesource.com/19446
Reviewed-by: David Crawshaw <crawshaw@golang.org>
2016-02-18 07:21:45 +00:00
ttyh061
5a8964bd48 mobile/bind: fix JNI local reference table overflow
The existing implementation has  memory leaks on two local variables
that are not deleted after use. Android app will crash after this issue.

add UnitTest for this issue.

Fixes golang/go#14346

Change-Id: Ic233d15556ac97b35e00e13279a572c48a03049f
Reviewed-on: https://go-review.googlesource.com/19532
Reviewed-by: Elias Naur <elias.naur@gmail.com>
2016-02-17 14:34:31 +00:00
Daniel Skinner
1fb745cd55 internal/binres: encode manifest correctly for packaging
This fixes remaining issues that prevented use of package
to encode manifest for packaging correctly.

* Chunk headers are now encoded based on content
* Fixes for namespace and value fields
* Improved sorting based on native aapt output

Change-Id: Ic63046973a7b0431533463ed4dd2de50f1d73191
Reviewed-on: https://go-review.googlesource.com/19224
Reviewed-by: David Crawshaw <crawshaw@golang.org>
2016-02-16 04:56:14 +00:00
Elias Naur
060f2570e9 mobile/bind: add integration test for CL 19417
Change-Id: I6a2cab4ca9b5bd61db51d08966da19fdfb07c344
Reviewed-on: https://go-review.googlesource.com/19463
Reviewed-by: David Crawshaw <crawshaw@golang.org>
2016-02-12 15:13:48 +00:00
Elias Naur
d1c2f486a3 mobile/bind: handle null references from Java in Go
The Seq Java class has a special case for null references. Expand
the special case to Go so that null references from Java are properly
translated to nil.

Fixes golang/go#14228

Change-Id: I915d1f843c9db299d6910480f6d10dae0121a3b4
Reviewed-on: https://go-review.googlesource.com/19460
Reviewed-by: David Crawshaw <crawshaw@golang.org>
2016-02-12 14:54:21 +00:00
Elias Naur
46f9e01d1e mobile/bind: ensure that Java->Go->Java calls stay on same thread
Java methods from Go are run on a thread pool managed on the Java side,
to avoid the complexities of getting Go threads to play along with the
Android JVM. However, for call stacks that contain a Java->Go->Java
chain, this behaviour confuses Java code sensitive to specific threads
if the Go->Java call is executed on an arbitrary thread from the pool.
For example, most Android UI changes must happen on the single UI
thread.

Replace the thread pool with direct calls to mimic ObjC<->Go and
Java->Go calls. Threads not already attached to the JVM are attached.
Introduce a thread local variable to detach such threads at thread exit.

Change-Id: I8cb65803c9278666ae77a0c7a65dc2d9c7e739e1
Reviewed-on: https://go-review.googlesource.com/19334
Reviewed-by: David Crawshaw <crawshaw@golang.org>
2016-02-11 21:58:20 +00:00
Elias Naur
7538792349 mobile/bind: translate implicit Go interface implementations to Java
To implement an interface in Java the interface type must be listed
in the class declaration. Emulate the implicit Go interface
implementations in Java by listing all possible (non-empty) interfaces.

For example, given

type (
    S struct{}
    I  interface {
        M()
    }
)

func (s *S) M() {
}

in Go, the Java class S will be declared to implement the Java
interface I.

Fixes a TODO.

Change-Id: I5b0d2dd65938004ab29029f481cace4b8fb4b26f
Reviewed-on: https://go-review.googlesource.com/19417
Reviewed-by: Hyang-Ah Hana Kim <hyangah@gmail.com>
2016-02-11 21:46:02 +00:00
Elias Naur
951b75a833 mobile/cmd/gomobile: fix TestBindAndroid test
The TestBindAndroid test complained about diffs in the gomobile
output. Updated the tests to match, under the assumption the current
output is correct.

Change-Id: I8ee7ee91bf7993ec7b96fc90646b1ff0fc80dfb2
Reviewed-on: https://go-review.googlesource.com/19461
Reviewed-by: Hyang-Ah Hana Kim <hyangah@gmail.com>
2016-02-11 21:45:16 +00:00
Hyang-Ah (Hana) Kim
04168c3bfb example/bind/android: update gradle version
from 0.2.2 to 0.2.3

Change-Id: I906200acf9615c8cc100b7d1ad5592e899e383fe
Reviewed-on: https://go-review.googlesource.com/19409
Reviewed-by: David Crawshaw <crawshaw@golang.org>
2016-02-10 23:56:31 +00:00
Elias Naur
89fdf89e93 bind: make Seq.RefTracker.createRef obey the refcnt invariant
An inspection of the RefTracker inc and dec methods suggests
that a particular Java Stub instance is included in the javaObjs
map if and only if its reference count, refcnt, is larger than zero.

A newly created reference created by RefTracker.createRef has zero
refcnt but was also inserted in the javaObjs map, violating the invariant.

Fix that by not inserting new references in javaObjs. Without the fix
a Stub instance that were never passed to Go would leak, along with
any other instances it referenced, transitively.

This fixes a Java reference tracking problem, I have not verified if
the same problem applies to the Go and ObjC sides of the Seq machinery.

Change-Id: I3ede90d5258630bc837fe61bba850df222d09a26
Reviewed-on: https://go-review.googlesource.com/19261
Reviewed-by: Hyang-Ah Hana Kim <hyangah@gmail.com>
2016-02-05 12:55:00 +00:00
Daniel Skinner
002f07f8be internal/binres: sort element attributes
Change-Id: I3ff6b98aa1c729600f154272b8250f673ae2778f
Reviewed-on: https://go-review.googlesource.com/19040
Reviewed-by: David Crawshaw <crawshaw@golang.org>
2016-02-05 00:56:26 +00:00
Daniel Skinner
789dd7a15a internal/binres: provide validation for all remaining bootstrap resource types
Change-Id: I1f9b030e4230706ea5bbf9b7d9e1f398b93abe0b
Reviewed-on: https://go-review.googlesource.com/19005
Reviewed-by: David Crawshaw <crawshaw@golang.org>
2016-02-05 00:56:17 +00:00
Hyang-Ah Hana Kim
8b3b2fb1ae cmd/gomobile: move go.LoadJNI class to LoadJNI.java
This allows reuse of the code in custom gomobile bind tools.

Change-Id: I4e013ca871d0fa64983e7efb5e1e9dad8ac723c0
Reviewed-on: https://go-review.googlesource.com/18581
Reviewed-by: David Crawshaw <crawshaw@golang.org>
2016-02-01 21:25:56 +00:00
Hyang-Ah (Hana) Kim
77ab3b76c2 bind/java: use size_t to match Send/Recv param types
Fixes the bug in 64bit platforms.

Change-Id: I499995d69db03d136dcb2ca7f930ba1e309c8b6d
Reviewed-on: https://go-review.googlesource.com/19070
Reviewed-by: David Crawshaw <crawshaw@golang.org>
2016-01-29 01:39:28 +00:00
Daniel Skinner
c24337bea7 internal/binres: unmarshal map from xml
Change-Id: Ica95827fcf192f181b73fdf65b0158b8d3e24fdc
Reviewed-on: https://go-review.googlesource.com/18589
Reviewed-by: Hyang-Ah Hana Kim <hyangah@gmail.com>
2016-01-29 00:58:43 +00:00
Burcu Dogan
022ca03242 exp/audio/al: export generic getters/setters
Updates golang/go#13912.

Change-Id: I2dadbba0c155c1f4b53663031069098d3f3b156a
Reviewed-on: https://go-review.googlesource.com/18541
Reviewed-by: David Crawshaw <crawshaw@golang.org>
2016-01-27 23:20:06 +00:00
Daniel Skinner
b8ddff8878 internal/binres: table marshal methods with pack func
The OpenTable func now references a prepacked version of the
resources.arsc file with a number of entries removed. The current
size of this file is 62KB. This could be dropped further by
implementing utf8 in string pool during marshal, utf16 encoding exploded
the original size by approximately 20%. Another potential improvement
is to allow type entries to be packed sparsely which may provide
significant savings if not zipping.

Change-Id: Ie139c2bdb0e3c5a9212516d18cf627d75774e187
Reviewed-on: https://go-review.googlesource.com/18649
Reviewed-by: David Crawshaw <crawshaw@golang.org>
2016-01-25 00:55:53 +00:00
Daniel Skinner
db7fc23f7b internal/binres: unmarshal pool from xml doc, update tests to target api-15
Change-Id: Iaa13d4352ef88b58e805d5c0d8ee8a1e107db3c3
Reviewed-on: https://go-review.googlesource.com/18583
Reviewed-by: David Crawshaw <crawshaw@golang.org>
2016-01-25 00:55:03 +00:00
Hyang-Ah Hana Kim
e7f16ac590 cmd/gomobile: put libopenal.so to lib/armeabi-v7a directory
where compiled go shared library is located. Android expects
all shared libraries to be in the same directory.

Missing from https://go-review.googlesource.com/17860

Fixes golang/go#13911

Change-Id: I832c6571c2655d4114e0a0c93e663a6b4be702e3
Reviewed-on: https://go-review.googlesource.com/18820
Reviewed-by: Burcu Dogan <jbd@google.com>
2016-01-21 21:40:49 +00:00
Hyang-Ah Hana Kim
24a199a648 bind: update testdata to reflect changes from cl/17866
Change-Id: Icdc68c536b8bc9c5e3874731e33b5f90e123a052
Reviewed-on: https://go-review.googlesource.com/18618
Reviewed-by: David Crawshaw <crawshaw@golang.org>
2016-01-13 21:19:59 +00:00
Hyang-Ah Hana Kim
a99e944551 internal/binres: skip some tests if ANDROID_HOME is unset
Instead of failing.

Change-Id: I157f77aca1d02bfcdcf4f06278bcf5cc786834df
Reviewed-on: https://go-review.googlesource.com/18616
Reviewed-by: Daniel Skinner <daniel@dasa.cc>
Reviewed-by: Hyang-Ah Hana Kim <hyangah@gmail.com>
2016-01-13 21:19:35 +00:00
Hyang-Ah Hana Kim
0951da6cb2 bind/java, internal/mobileinit: add dummy import "C"
not harmful, but this consistency may simplify cgo handling
in some custom build systems

Change-Id: Id4692986725b3737c23cdeb9ce1a1fa2bc9f7dad
Reviewed-on: https://go-review.googlesource.com/18615
Reviewed-by: David Crawshaw <crawshaw@golang.org>
2016-01-13 19:14:56 +00:00
Daniel Skinner
a4d9ded95b binres: update pool docs, minor update to node unmarshal
Change-Id: I03579fe0ae112c7a895fc7a9677c813b3d00caf4
Reviewed-on: https://go-review.googlesource.com/18582
Reviewed-by: David Crawshaw <crawshaw@golang.org>
2016-01-13 15:47:56 +00:00
Burcu Dogan
232ac8377e asset,exp/audio/al: cast context to jobject
Fixes golang/go#13823.

Change-Id: I13fc9234a2fb991312c148e7d779271454cb7b90
Reviewed-on: https://go-review.googlesource.com/18511
Reviewed-by: David Crawshaw <crawshaw@golang.org>
2016-01-11 21:23:51 +00:00
David Crawshaw
b4e66eeef7 app: remove iOS system draw loop
Much like the recent change for OS X, this puts the Go paint loop in
control of drawing onto the screen.

Change-Id: I37321e4bb58869d4c7cafc51951ea64e540d536b
Reviewed-on: https://go-review.googlesource.com/15611
Reviewed-by: Hyang-Ah Hana Kim <hyangah@gmail.com>
2016-01-11 18:20:11 +00:00
David Crawshaw
ab6091a309 bind: do not generate unused Seq objects
Updates golang/go#12619

Change-Id: Ie851795580c82ade3ee70bdb3945b23ca72f57e0
Reviewed-on: https://go-review.googlesource.com/17866
Reviewed-by: Hyang-Ah Hana Kim <hyangah@gmail.com>
2016-01-11 18:08:22 +00:00
Daniel Skinner
f85352c0f7 binres: method for resolving name as tableref
Change-Id: If31bab76ccb5b03540d86356c74107fe5ec99be6
Reviewed-on: https://go-review.googlesource.com/18490
Reviewed-by: David Crawshaw <crawshaw@golang.org>
2016-01-10 23:57:01 +00:00
David Crawshaw
e27aacb64e example/sprite: delete
Andrew's new example/flappy does a better job of demoing off these
packages, and I would like to keep our example count under contorl.

Change-Id: I77f4da78815055ab91510ce0cb97bbd7ac1bac3b
Reviewed-on: https://go-review.googlesource.com/18381
Reviewed-by: Andrew Gerrand <adg@golang.org>
2016-01-08 15:21:00 +00:00
Hyang-Ah Hana Kim
aebde7cd7d app/internal/callfn: allow android/386,amd64
For golang/go#10743

Change-Id: I374fae9d6e0a7926b26647fe462968df3c0e3298
Reviewed-on: https://go-review.googlesource.com/17679
Reviewed-by: David Crawshaw <crawshaw@golang.org>
2016-01-08 08:14:44 +00:00
Nigel Tao
2e06e2c92c event/lifecycle: add an Event.String method.
Change-Id: I5d648327cf39cd3b2cf97fa08a094744528221fe
Reviewed-on: https://go-review.googlesource.com/18400
Reviewed-by: David Crawshaw <crawshaw@golang.org>
2016-01-08 07:36:36 +00:00
Nigel Tao
a103499a63 event/size: make methods take values, not pointers.
This makes the following program valid:

----
package main

import (
    "fmt"

    "golang.org/x/mobile/event/size"
)

func foo() size.Event { return size.Event{} }

func main() {
    fmt.Println(foo().Bounds())
}
----

Previously, you would get:
./main.go:12: cannot call pointer method on foo()
./main.go:12: cannot take the address of foo()

Change-Id: I2801d18a04d56d1c7496cb008531d078490ccf86
Reviewed-on: https://go-review.googlesource.com/18356
Reviewed-by: David Crawshaw <crawshaw@golang.org>
2016-01-07 22:44:33 +00:00
Daniel Skinner
cc29d844e9 internal/binres: provide decoding of resources.arsc in platform sdk
This decodes enough information to allow validation of resource
names but not their values, though a simple method for querying
does not yet exist.

Change-Id: I32023f3de0eda390b12d5c1df6c06202ee4d0778
Reviewed-on: https://go-review.googlesource.com/18055
Reviewed-by: David Crawshaw <crawshaw@golang.org>
2016-01-07 20:31:34 +00:00
Daniel Skinner
d6f00813f9 improve readability of Pool.UnmarshalBinary
Change-Id: If0a0ac668f910a8dd5a05b87e841403b8d390de1
Reviewed-on: https://go-review.googlesource.com/18121
Reviewed-by: David Crawshaw <crawshaw@golang.org>
2016-01-07 20:28:16 +00:00
David Crawshaw
54b4a066d7 gl: add a comment for linux installation
OpenGL ES is not installed by default on linux distributions, which
can lead to a cryptic error. Add a comment after the #include
mentioning what packages contain OpenGL ES on Ubuntu, which is
helpfully printed in the error message. For example:

	$ go build golang.org/x/mobile/example/basic
	# golang.org/x/mobile/gl
	In file included from ../../mobile/gl/work.go:21:0:
	work.h:6:117: fatal error: GLES2/gl2.h: No such file or directory
	 #include <GLES2/gl2.h> // install on Ubuntu with: sudo apt-get install libegl1-mesa-dev libgles2-mesa-dev libx11-dev

Change-Id: Ia7ba583cee4dfdeed408f582b29da90de9a4fab3
Reviewed-on: https://go-review.googlesource.com/18058
Reviewed-by: Hyang-Ah Hana Kim <hyangah@gmail.com>
2016-01-07 20:14:32 +00:00
nobonobo
48c96a5e62 x/mobile/app: panic with palm touch on iOS app
improved a problem that continues to maintain a touch-ID
that must be discarded by 'touchesCanceled' event.

Fixes golang/go#13435

Change-Id: I13635255e5317bba2202bf7a8d2dd957f7824d0a
Reviewed-on: https://go-review.googlesource.com/18180
Reviewed-by: David Crawshaw <crawshaw@golang.org>
2016-01-07 19:21:52 +00:00
Andrew Gerrand
441a9620b3 example/flappy: document texture issue, re-enable reset
Change-Id: I80ba6b4421e64c5470f7b88c92b89ca3686ebec4
Reviewed-on: https://go-review.googlesource.com/18352
Reviewed-by: Nigel Tao <nigeltao@golang.org>
2016-01-07 03:28:10 +00:00
Andrew Gerrand
746653dcb3 example/flappy: add simple example game
This game was developed for and presented at GoCon Winter 2015 in Tokyo.

Change-Id: I08148e16a54355b79f634dce867b3c3c0a0153cb
Reviewed-on: https://go-review.googlesource.com/18245
Reviewed-by: Nigel Tao <nigeltao@golang.org>
2016-01-07 03:14:55 +00:00
Andrew Gerrand
44f634ba28 exp/gl/glutil: set blend mode when drawing sprites
Change-Id: Ib8a3dc3b08c8d64f2d461f943c8ebab75578a127
Reviewed-on: https://go-review.googlesource.com/17320
Reviewed-by: Nigel Tao <nigeltao@golang.org>
2016-01-07 02:45:44 +00:00
Shenghou Ma
0a85ca5e85 x/mobile/app: fix doc typo
Change-Id: I108b8d80eb1fee120e7b710ee7dcdbca7ff158c3
Reviewed-on: https://go-review.googlesource.com/18122
Reviewed-by: Ian Lance Taylor <iant@golang.org>
2015-12-25 00:41:33 +00:00
Hyang-Ah (Hana) Kim
4f51fe273b cmd/gomobile: fix a bug in handling -target=ios flag value
When -target=ios, GOOS must be 'darwin'.

Fixes golang/go#13670

Change-Id: Ie20db14cf24d886e13d9fe2e70caa0308790ad87
Reviewed-on: https://go-review.googlesource.com/18042
Reviewed-by: David Crawshaw <crawshaw@golang.org>
2015-12-20 01:26:56 +00:00
Daniel Skinner
c897050410 cmd/gomobile: new binary resource implementation
Change-Id: I9708170ac2c5914bb8e978b4703f4e6f7415c737
Reviewed-on: https://go-review.googlesource.com/16553
Reviewed-by: David Crawshaw <crawshaw@golang.org>
2015-12-19 16:02:19 +00:00