Commit Graph

212 Commits (d6010228cf337b2a08b50798c589dbb0f3f69009)

Author SHA1 Message Date
kari-ts d6010228cf build.gradle: add shared keystore
Configure gradle to use shared keystore so that we can enable App Links for non play store signed builds

Updates tailscale/corp#18202

Signed-off-by: kari-ts <kari@tailscale.com>
7 months ago
Percy Wegmann 8105271d25 android/ui: speed up loading of SettingsView
Updates tailscale/corp#18202

Signed-off-by: Percy Wegmann <percy@tailscale.com>
7 months ago
Percy Wegmann 9f3e871637 android/ui: prompt for write external storage permission and show error if necessary
Updates #ENG-2948

Signed-off-by: Percy Wegmann <percy@tailscale.com>
7 months ago
kari-ts 72753bb82a
android: add ktfmt to gradle (#226)
Updates tailscale/corp#18202

Signed-off-by: kari-ts <kari@tailscale.com>
7 months ago
Percy Wegmann 5e7e36e3bc android: switch to using gomobile
gomobile replaces our custom JNI bindings

Updates tailscale/corp#18202

Signed-off-by: Percy Wegmann <percy@tailscale.com>
8 months ago
kari-ts 98a72c2963 android: new backend
Create pkg/tailscale, a Go library for the new Android app which handles starting up and running the local backend
-On initialization, get the JVM and app context to make JNI work
-Send filesystem directory path

Add a logging bridge from Go to Android (copied from Gio)

Add connect function which sends request to edit prefs instead of setting prefs

Future:
-Make build.gradle more portable
-Fix connect and make sure Quick Tiles still works

Updates tailscale/corp#18202

Signed-off-by: Percy Wegmann <percy@tailscale.com>
8 months ago
Jonathan Nobels e4b0e1f8cd
android: implement fast user switching (#209)
Updates tailscale/corp#18202
Updates ENG-2875
Fixes ENG-2863

Adds everything we need to do fast user switching and support multiple accounts.

Some work here to make the settings rows and a few other composables common and reusable.

Correct the focus and clear behavior on the search bar and corrected the connected in state of SelfNode.

Quick fix for requesting VPN permissions on newer Android phones.

Signed-off-by: Jonathan Nobels <jonathan@tailscale.com>
8 months ago
Jonathan Nobels 16ec19757d
android: adds support for user avatars and some general cleanup (#202)
* android: show user avatars and styling fixes

Updates tailscale/corp#18202
fixes ENG-2852

Load and show the user avatar in the right places.  There's a universal Avatar composable for this that should work everywhere we need it.  This  uses the coil-compose lib which seems to be standard practice and will handle caching for us.

Restyles a few headers to match the about screen and corrects some layout issues with the height of columns.

Signed-off-by: Jonathan Nobels <jonathan@tailscale.com>

* android: add localizations and view model cleanup to match IPNManager

Updates tailscale/corp#18202

Simplifies the view models a bit for readability and localizes a few things that weren't previously localized

Signed-off-by: Jonathan Nobels <jonathan@tailscale.com>

* android: fix peer categorization

Updates tailscale/corp#18202

Fixes a null predicate issue for searching and removes the self nodes if there are no matches.

Signed-off-by: Jonathan Nobels <jonathan@tailscale.com>

* android: rename avatar loader to avatar and add header

Updates tailscale/corp#18202

Rename the AvatarLoader class to Avatar and move it to views.  Add the proper headers.

Signed-off-by: Jonathan Nobels <jonathan@tailscale.com>

---------

Signed-off-by: Jonathan Nobels <jonathan@tailscale.com>
Co-authored-by: Andrea Gottardo <andrea@tailscale.com>
8 months ago
Jonathan Nobels bf0e56469f
android: Add settings screen (#196)
updates tailscale/corp#18202
updates ENG-2854

Adds a basic settings screen.  This isn't correctly localized, but that's on the way.

Adds the required hooks to edit prefs via localAPI.

Adds basic but incomplete login/logout flow.

Fixes the sorting of nodes on the main screen and fixes the proper display of your current node details.

Signed-off-by: Jonathan Nobels <jonathan@tailscale.com>
8 months ago
Jonathan Nobels 3926cf4b56
android: add main screen device details and basic nav (#191)
updates tailscale/corp#18202
updates ENG-2835
updates ENG-2859

Adds the peer details view and some supporting utilities. Eliminates all of the singletons.

None of this is styled correctly, but the layouts match iOS.

Signed-off-by: Jonathan Nobels jonathan@tailscale.com

---------

Signed-off-by: Jonathan Nobels <jonathan@tailscale.com>
8 months ago
Jonathan Nobels 4f46c38c99
Jonathan/notifier (#179)
android: add notifier support a data model and compose dependencies

fixes ENG-2084
fixes ENG-2086

Adds support for the ipnBusWatcher directly via a JNI API rather than HTTP via LocalAPIClient

Adds a rudimentary controller class and a model from which we can construct ViewModels

Cleans up some of the JNI bindings.  Adds hooks for ensuring the JNI setup is complete before attempting to do LocalAPIClient things.

Cleans up some wildcard imports.

Signed-off-by: Jonathan Nobels <jonathan@tailscale.com>
Signed-off-by: Percy Wegmann <percy@tailscale.com>
Co-authored-by: Percy Wegmann <percy@tailscale.com>
8 months ago
Jonathan Nobels bb7ea7cf9f
android: add kotlin dependencies build the kotlin->go localAPIClient (#173)
updates ENG-2805

Adds all of the kotlin build dependencies and a partial implementation of a LocalAPIClient in the front end, wired up via JNI.  The general idea here is to mimic the architecture used on other Tailscale clients, where the front ends largely interact with the backend via "localapi".

The LocalAPIClient in go has been renamed to LocalAPIService to avoid confusion with the implementation on the future client side in Kotlin.  Some mild refactoring was done to make the localAPI invocations methods on the api service instead of App.

Streaming notifier endpoints like watch-ipn-bus are not supported.  We will build out a separate set of JNI methods for dealing with those.

The jni package is moved under cmd where it is used.

This constains mostly-complete implementation of the required localAPI data classes based on the pieces that are used by the iOS and macOS clients.  The LocalAPIClient itself does not implement all of the endpoints, but is ready to do so when those APIs are needed by a UI component.

Signed-off-by: Jonathan Nobels <jonathan@tailscale.com>
8 months ago
kari-ts b96df2b830 android: bump version code
Signed-off-by: kari-ts <kari@tailscale.com>
9 months ago
kari-ts 630a6069c4 go.mod: bump oss and version
Updates #cleanup

Signed-off-by: kari-ts <kari@tailscale.com>
9 months ago
kari-ts 813ca8adea
android: bump version code (#152)
* go.mod: update for 1.58.0

Signed-off-by: kari-ts <kari@tailscale.com>

* android: bump version code

Signed-off-by: kari-ts <kari@tailscale.com>

* Pulled OSS from HEAD and fixed version name

* Removed swp file

---------

Signed-off-by: kari-ts <kari@tailscale.com>
10 months ago
Denton Gentry 52601c0dff android: bump version code
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
10 months ago
Denton Gentry dcca09fe7f Update OSS 1.57.x.
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
10 months ago
Denton Gentry 61453254df android: bump version code
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
11 months ago
Denton Gentry 5ef7bbaff0 Update OSS 1.55.x
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
11 months ago
Denton Gentry a6ef5424a7 android: bump version code
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
12 months ago
Denton Gentry 0a44d50e8b update dependencies
- Update Tailscale OSS to 1.55.x
- set compileSdkVersion to 33
- Update androidx dependencies
- increase memory allocated to JVM when building, avoid OOM

Signed-off-by: Denton Gentry <dgentry@tailscale.com>
12 months ago
Denton Gentry 318065c64f android: bump version code
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
12 months ago
Denton Gentry ab4a672a4e go.mod: update from OSS.
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
12 months ago
Denton Gentry 8f766ba087 android: bump version code
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
1 year ago
Denton Gentry 38d38b3af9 android: bump version code
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
1 year ago
Denton Gentry b23dd78e99 android: bump version code
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
1 year ago
Denton Gentry 3a305b158c android: bump version code
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
1 year ago
Andrew Lytvynov 6684b3059c
android: bump version code (#139)
Signed-off-by: Andrew Lytvynov <awly@tailscale.com>
1 year ago
Andrew Lytvynov d5646fb2aa
Bump version and OSS for new unstable release (#138)
Updates https://github.com/tailscale/corp/issues/15340
1 year ago
Denton Gentry c73f8533f0
build.gradle: update targetSdkVersion to 33. (#127)
"bluetooth_name" cannot be accessed after SDK 31, remove it from
getUserConfiguredDeviceName().

Fixes https://github.com/tailscale/tailscale/issues/8955

Signed-off-by: Denton Gentry <dgentry@tailscale.com>
1 year ago
Andrew Lytvynov 88d006f6b9
android: bump version code (#125)
Signed-off-by: Andrew Lytvynov <awly@tailscale.com>
1 year ago
Andrew Lytvynov 4b67f47e88
android: bump version for unstable release (#124)
* go.mod: bump OSS

* android: bump version code

Signed-off-by: Andrew Lytvynov <awly@tailscale.com>

---------

Signed-off-by: Andrew Lytvynov <awly@tailscale.com>
1 year ago
James Tucker 11a0d21d2e android: upgrade gradle plugin runtime to 8.1
Another upgrade recommended by Android Studio, again this is just
upgrading the build tooling, and not yet changing any of the runtime
side dependencies or behaviors.

We switch from jcenter to mavenCentral as advised in the build output,
as jcenter has shutdown.

This includes a mandatory JDK bump from 11 to 20.

Updates #cleanup
1 year ago
Denton Gentry 5610486051 go.mod: update from OSS.
Also increment the build number past those used for
1.46.x releases.

Signed-off-by: Denton Gentry <dgentry@tailscale.com>
1 year ago
James Tucker 8e748afc47 android: update Android Gradle Plugin as recommended by Android Studio
Updates #cleanup
1 year ago
kari-ts 264aae3232
android: update gradle (#112)
-Update Gradle version
-Replace jcenter() with mavenCentral() because of jcenter deprecation
-Use testImplementation instead of the obsolete testCompile

Tested with docker
Fixes #12997

Signed-off-by: kari-ts <kari@tailscale.com>
1 year ago
Andrea Gottardo bb47fa593c
android: increment versionCode to 170 (#113) 1 year ago
Denton Gentry 1e07536824 android: bump version code
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
1 year ago
Denton Gentry 0ccb93e115 go.mod: update for 1.43.x development.
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
1 year ago
Denton Gentry 8d6922285d android: bump version code
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
1 year ago
Denton Gentry 38061656a5 go.mod: update from OSS.
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
1 year ago
Denton Gentry 0931e9b3ee android: bump version code
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
2 years ago
Denton Gentry 2118ca5b38 android: bump version code
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
2 years ago
Brett Jenkins eb9599540c
Add intents (#87)
IPNReceiver: Add intents to connect and disconnect VPN

Added a new class IPNReceiver to listen to intents silently and connect and disconnect the VPN. This uses workers to avoid doing too much in the IPNReceiver which is to be avoided according to documentation.

Also includes a fix for vpn occasionally not starting. Think this was due to a race condition, but now only sets autoConnect to false when we know a connection is connecting or connected.

Fixes https://github.com/tailscale/tailscale/issues/3547
Updates https://github.com/tailscale/tailscale/issues/2481

Signed-off-by: Brett Jenkins <brett@brettjenkins.co.uk>
2 years ago
Denton Gentry c077c1b38a android: bump version code
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
2 years ago
Denton Gentry 71f203a493 android: bump version code
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
2 years ago
Denton Gentry df47a60927 go.mod: Update from OSS.
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
2 years ago
Denton Gentry 8f512dd7a9 go.mod: beginning of 1.39 development.
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
2 years ago
Denton Gentry 6499fb845e android: bump version code
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
2 years ago
Denton Gentry 6bbc9032bf android: bump version code
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
2 years ago