Coder Social home page Coder Social logo

taktracker's People

Contributors

coryfoy avatar thedevme avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

taktracker's Issues

Allow CSR Port to be Configurable

Is your feature request related to a problem? Please describe.
When the TAK Server uses a port other than the default port for the API/CSRs (8446) certificate enrollment fails for TAK Tracker

Describe the solution you'd like
Allow the CSR port to be configurable

Additional context
We'll need to ensure this can be set during both initial device set up and if someone enrolls from the setting page. Since they use the same screen this should be fine, but important to test both scenarios.

Allow toggling of "Background Update" indicator

Is your feature request related to a problem? Please describe.
There are cases where TAK Tracker is being used in the background but it shouldn't be obvious by glancing at the phone that the location is being tracked. Right now when the app is not in the foreground the "Background updating" indicator is on as determined by the time in the upper left corner being highlighted in blue

Describe the solution you'd like
Allow a user to modify an advanced setting to toggle off displaying the indicator.

Additional context
For TAK Tracker we always want this to default to being on and user-modifiable only

Emergency Beacon Support

Is your feature request related to a problem? Please describe.
If a user has an issue while in the field they need a way to alert other users and command of their emergency

Describe the solution you'd like
We already have the screen for emergency alerts - we need to continue the implementation of this and ensure the correct messages are being sent for emergency beacon alerts

<track> node not included in CoT

Describe the bug
When broadcasting location information we are not including the <track> CoT message

Expected behavior
We are sending that with the user's speed and heading information

Allow Device to be Configured via MDM

Is your feature request related to a problem? Please describe.
Agencies may deploy large number of devices via MDM solutions. Part of these deployments are configuring applications running on the devices

Describe the solution you'd like
Allow TAK Tracker to be configured via MDM including the server connection and app settings

Activate Emergency Beacon via Bluetooth

Is your feature request related to a problem? Please describe.
When using a device running TAK Tracker in the field in may not always be possible to activate the emergency beacon by opening the device itself.

Describe the solution you'd like
A way of activating emergency beacons via a Bluetooth device

Additional context
Originally requested here #11 (comment) but also already in flight for some other work happening in TAK Tracker.

Protobuf Support

Is your feature request related to a problem? Please describe.
Currently the application only communicates with TAK Servers over CoT XML. Also allow for CoT Protobuf support

Additional context
We'll need to ensure we're negotiating for the proper protocol to communicate over and falling back to XML if Protobuf is not supported.

Allow toggling GPS Location to MGRS

Is your feature request related to a problem? Please describe.
For certain uses of TAK Tracker MGRS coordinate display is needed

Describe the solution you'd like
When tapping to toggle coordinates allow switching to MGRS.

Allow Emergency Alerting to be disable via Data Package

Is your feature request related to a problem? Please describe.
Similar to issue #46 agencies deploying TAK Tracker may not want the emergency alerting to be available for an end-user.

Describe the solution you'd like
Allow a setting in the .pref file to disable

Additional context
We would need a way of "resetting" the option if a user changes data packages, or perhaps a way to "clear" a connection that also resets the prefs

"True North" shows as -1 when Compass Calibration is disabled

Describe the bug
For some users tapping on Heading or Compass to change from Magnetic North to True North produces a "-1" value instead

To Reproduce
Steps to reproduce the behavior:

  1. Go to Settings -> Privacy and Security -> Location Services -> (All the way at the bottom) System Services.
  2. Toggle off "Compass Calibration"
  3. Open TAK Tracker and toggle either field to be True North

Expected behavior
There's not much we can do other than alert the user that Compass Calibration is turned off

Additional context
A StackOverflow post is here about the specific issue https://stackoverflow.com/a/59583996

Onboarding Not Able to be Closed

Reported via App Store Review

Describe the bug
During onboarding when the user reaches the last step the onboarding page does not go away

To Reproduce
Steps to reproduce the behavior:

  1. Perform a fresh install of the app
  2. Go through onboarding
  3. Click on "Close Onboarding"

Expected behavior
The onboarding screen to go away

Screenshots
Screenshot-0929-105313

Smartphone (please complete the following information):

  • Device: iPhone 15
  • OS: iOS 17.1
  • Version: v1.0.50
  • App Store or TestFlight?: App Store Candidate

Additional context
This was reported by Apple on the 17.1 Beta candidate. It appears to be an issue with the way SettingsStore is accessed on the main app screen

Remember Display Preferences for Main Screen

Is your feature request related to a problem? Please describe.
The Main Screen of TAK Tracker allows for different measurement units to be selected (m/s, mph, Lat/Lon, MGRS, etc). However upon closing and reopening the app these selections reset to the default

Describe the solution you'd like
Remember the user's preferences for any screen unit measurement changes

Additional context
This will most likely be critical once MGRS support is in place

Consistent Default Tracker Callsigns

Is your feature request related to a problem? Please describe.
When starting up a Tracker where the Callsign has not previously been set a random callsign is generated. But this differs from run to run since it isn't actually stored in the settings.

Describe the solution you'd like
The default callsign should be consistent from run to run on the same device even if a callsign has not been set

Group / Channel Support

Is your feature request related to a problem? Please describe.
With the newer versions of TAK Server Channel Support was added. It is unclear exactly how TAK Tracker handles Channel support, but we need to ensure that when connecting to a server we are communicating in the right channels

Describe the solution you'd like
As part of the settings select which channel to connect to

Additional context
iTAK and ATAK handle Channel support differently. When connecting to a server ATAK by default has all Channels turned off while iTAK by default has all Channels turned on. It's likely we would default TAK Tracker to have all Channels on and allow toggling so that the Tracker user will always show up somewhere when connecting to a server.

Support Customizing Start Screen and Layout

Is your feature request related to a problem? Please describe.
Certain clients need to be able to run TAK Tracker without it looking like a tracking application.

Describe the solution you'd like
Allow a data package to define specific layout elements through the pref file to change the logos, color scheme, et

TAK Tracker does not reconnect after a server reboot

Describe the bug
While connected to a TAK Server, if that server is rebooted TAK Tracker does not seem to automatically reconnect to it

To Reproduce
Steps to reproduce the behavior:

  1. Connect to a TAK Server
  2. Restart TAK Server
  3. Observe TAK Tracker is now in a "Waiting" status and doesn't automatically reconnect

Expected behavior
TAK Tracker should automatically reconnect

Smartphone (please complete the following information):

  • Device: iPhone 13
  • OS: 17.3.1
  • Version: v1.1.58
  • App Store or TestFlight?: TestFlight

Additional context
This is most likely an issue right here https://github.com/flighttactics/TAKTracker/blob/main/TAKTracker/Communications/TCPMessage.swift#L233-L244 where the state after a force disconnection is "Waiting" which doesn't set the retry flag.

Display Altitude on Main Screen

Is your feature request related to a problem? Please describe.
While TAK Tracker sends the altitude as part of the CoT message, it is not displayed to the end user on the Main Screen

Describe the solution you'd like
Display Altitude on the main screen as it does on the Android TAK Tracker

IMG_3480

Additional context
Altitude is not always displayed on TAK Tracker. For example, on the S10 it is not displayed as seen here. So it's likely a "display if there is room" context. Also note that like the other display elements the user can toggle between units - here Meters and Feet

IMG_3095

App not reconnecting automatically in all cases

Describe the bug
When transitioning networks or losing connections the app is not always attempting to reconnect to the server

To Reproduce
Steps to reproduce the behavior:

  1. Connect to a TAK Server
  2. Change networks (for example, go off WiFi onto Cell Data
  3. You may see Failed as the server status, and it doesn't reconnect until you restart the app

Expected behavior
Since TAK Tracker is expected to run in the background without interaction it is imperative for it to aggressively attempt reconnects and alert the user if unable to connect

Additional context
Note that this does not happen all the time - generally the app is designed to reconnect if the connection fails, though it may take one or two cycles to recognize that failure. This bug is specifically around observed cases where the connection failed and it never attempted to reconnect.

Compass / Heading doesn't recognize landscape mode

Describe the bug
When switching the device to landscape mode the UI changes, but the Heading / Compass directions do not recognize the device switch, so are off by 90 degrees

To Reproduce
Steps to reproduce the behavior:

  1. Open TAK Tracker
  2. Ensure your device rotation is unlocked
  3. Rotate device to landscape mode

Expected behavior
If you were facing South (180 degrees) you'll notice that now your device is oriented towards the same direction, but showing heading/compass as 90 degrees off (either 90 or 270)

Smartphone (please complete the following information):

  • Device: iPhone 13 Pro
  • OS: 16.1
  • Version: 1.27
  • App Store or TestFlight?: TestFlight

Display Compass and GPS Status

Is your feature request related to a problem? Please describe.
It's not always clear how strong the compass / GPS is. The Android TAK Tracker shows this information on the screen

Describe the solution you'd like
Pull the Compass / GPS information from LocationManager and display it on the main screen. When a map is not shown, display it like the Android TAK Tracker. When a map is shown, use a compact method of displaying at the bottom

App crash when running for an extended period of time

After running the app overnight got a message that the app crashed in the latest test flight build. The crash log is attached.

The crash happened in Apple's Networking code, specifically in nw_read_request_get_maximum_datagram_count. According to this SO post it looks like this could be caused by an overflow of UDP requests. Indeed in our UDP Code we're queuing up a receiver on send's completion - for no real good reason since we're not doing anything with received UDP messages. Will fix in next release.

Crash Log:

Incident Identifier: C9187AC3-3187-4659-B001-E9145CCCDC04
Hardware Model:      iPhone14,2
Process:             TAKTracker [4391]
Path:                /private/var/containers/Bundle/Application/58A0BB77-8217-4CAD-8F74-8AA2697DA14B/TAKTracker.app/TAKTracker
Identifier:          com.flighttactics.TAKTracker
Version:             1.0 (27)
AppStoreTools:       15A240a
AppVariant:          1:iPhone14,2:16
Beta:                YES
Code Type:           ARM-64 (Native)
Role:                Non UI
Parent Process:      launchd [1]
Coalition:           com.flighttactics.TAKTracker [1198]

Date/Time:           2023-09-15 06:01:46.2578 -0400
Launch Time:         2023-09-14 22:18:06.3469 -0400
OS Version:          iPhone OS 16.6.1 (20G81)
Release Type:        User
Baseband Version:    2.80.01
Report Version:      104

Exception Type:  EXC_BAD_ACCESS (SIGBUS)
Exception Subtype: KERN_PROTECTION_FAILURE at 0x000000016b32bfe0
Exception Codes: 0x0000000000000002, 0x000000016b32bfe0
VM Region Info: 0x16b32bfe0 is in 0x16b328000-0x16b32c000;  bytes after start: 16352  bytes before end: 31
      REGION TYPE                 START - END      [ VSIZE] PRT/MAX SHRMOD  REGION DETAIL
      Stack                    16b214000-16b29c000 [  544K] rw-/rwx SM=PRV  thread 2
      GAP OF 0x8c000 BYTES
--->  STACK GUARD              16b328000-16b32c000 [   16K] ---/rwx SM=NUL  ... for thread 3
      Stack                    16b32c000-16b3b4000 [  544K] rw-/rwx SM=PRV  thread 3
Termination Reason: SIGNAL 10 Bus error: 10
Terminating Process: exc handler [4391]

Triggered by Thread:  3


Thread 0 name:
Thread 0:
0   libsystem_kernel.dylib        	0x00000001dd97aca4 mach_msg2_trap + 8 (:-1)
1   libsystem_kernel.dylib        	0x00000001dd98db74 mach_msg2_internal + 80 (mach_msg.c:201)
2   libsystem_kernel.dylib        	0x00000001dd98de4c mach_msg_overwrite + 540 (mach_msg.c:0)
3   libsystem_kernel.dylib        	0x00000001dd97b1e8 mach_msg + 24 (mach_msg.c:323)
4   CoreFoundation                	0x000000019ea34024 __CFRunLoopServiceMachPort + 160 (CFRunLoop.c:2622)
5   CoreFoundation                	0x000000019ea35250 __CFRunLoopRun + 1208 (CFRunLoop.c:3005)
6   CoreFoundation                	0x000000019ea3a3ec CFRunLoopRunSpecific + 612 (CFRunLoop.c:3418)
7   GraphicsServices              	0x00000001d9f5035c GSEventRunModal + 164 (GSEvent.c:2196)
8   UIKitCore                     	0x00000001a0dc6f58 -[UIApplication _run] + 888 (UIApplication.m:3782)
9   UIKitCore                     	0x00000001a0dc6bbc UIApplicationMain + 340 (UIApplication.m:5372)
10  SwiftUI                       	0x00000001a240bc50 closure #1 in KitRendererCommon(_:) + 176 (UIKitApp.swift:37)
11  SwiftUI                       	0x00000001a23721ec runApp<A>(_:) + 152 (UIKitApp.swift:14)
12  SwiftUI                       	0x00000001a235c294 static App.main() + 128 (App.swift:114)
13  TAKTracker                    	0x0000000104eb0c54 static TAKTrackerApp.$main() + 28 (TAKTrackerApp.swift:10)
14  TAKTracker                    	0x0000000104eb0c54 main + 40 (TAKManifestParser.swift:0)
15  dyld                          	0x00000001bdf6cdec start + 2220 (dyldMain.cpp:1165)

Thread 1 name:
Thread 1:
0   libsystem_kernel.dylib        	0x00000001dd97aca4 mach_msg2_trap + 8 (:-1)
1   libsystem_kernel.dylib        	0x00000001dd98db74 mach_msg2_internal + 80 (mach_msg.c:201)
2   libsystem_kernel.dylib        	0x00000001dd98de4c mach_msg_overwrite + 540 (mach_msg.c:0)
3   libsystem_kernel.dylib        	0x00000001dd97b1e8 mach_msg + 24 (mach_msg.c:323)
4   CoreFoundation                	0x000000019ea34024 __CFRunLoopServiceMachPort + 160 (CFRunLoop.c:2622)
5   CoreFoundation                	0x000000019ea35250 __CFRunLoopRun + 1208 (CFRunLoop.c:3005)
6   CoreFoundation                	0x000000019ea3a3ec CFRunLoopRunSpecific + 612 (CFRunLoop.c:3418)
7   Foundation                    	0x0000000198caefb4 -[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 212 (NSRunLoop.m:373)
8   Foundation                    	0x0000000198caee9c -[NSRunLoop(NSRunLoop) runUntilDate:] + 64 (NSRunLoop.m:420)
9   UIKitCore                     	0x00000001a0ef9cc8 -[UIEventFetcher threadMain] + 416 (UIEventFetcher.m:1376)
10  Foundation                    	0x0000000198cc8524 __NSThread__start__ + 716 (NSThread.m:963)
11  libsystem_pthread.dylib       	0x00000001fe7f66b8 _pthread_start + 148 (pthread.c:893)
12  libsystem_pthread.dylib       	0x00000001fe7f5b88 thread_start + 8 (:-1)

Thread 2:
0   libsystem_pthread.dylib       	0x00000001fe7f5b74 start_wqthread + 0 (:-1)

Thread 3 name:
Thread 3 Crashed:
0   Network                       	0x000000019f3bf1ac nw_read_request_get_maximum_datagram_count + 4 (read_request.m:373)
1   Network                       	0x000000019f3bf204 nw_read_request_get_maximum_datagram_count + 92 (read_request.m:379)

Thread 4:
0   libsystem_pthread.dylib       	0x00000001fe7f5b74 start_wqthread + 0 (:-1)

Thread 5:
0   libsystem_pthread.dylib       	0x00000001fe7f5b74 start_wqthread + 0 (:-1)


Thread 3 crashed with ARM Thread State (64-bit):
    x0: 0x0000000281192120   x1: 0x01000001f53e8949   x2: 0x00000001f53e8948   x3: 0x0000000000000000
    x4: 0x0000000280459880   x5: 0x0000000000000820   x6: 0x0000000280b79420   x7: 0x00000001c970b7bc
    x8: 0x0000000000000001   x9: 0x000000016b3ae728  x10: 0x00000000000005c0  x11: 0x00000000000010ff
   x12: 0x0000000044000000  x13: 0x0000000000000000  x14: 0x0060000000000000  x15: 0x00000000e4275815
   x16: 0x01000001f53e8949  x17: 0x02000001f53e8949  x18: 0x0000000000000000  x19: 0x000000028118b840
   x20: 0x000000010b026200  x21: 0x0000000000000000  x22: 0x000000010b026378  x23: 0x00000001f53ea000
   x24: 0x0000000280e65868  x25: 0x0000000109d15dc0  x26: 0x0000000281153980  x27: 0x0000000000000000
   x28: 0x000000010b026200   fp: 0x000000016b32c080   lr: 0x4956be019f3bf204
    sp: 0x000000016b32c030   pc: 0x000000019f3bf1ac cpsr: 0x80001000
   esr: 0x92000047 (Data Abort) byte write Translation fault


Binary Images:
        0x104eac000 -         0x105143fff TAKTracker arm64  <4186a312bc493ec184396464d69fd952> /private/var/containers/Bundle/Application/58A0BB77-8217-4CAD-8F74-8AA2697DA14B/TAKTracker.app/TAKTracker
        0x105344000 -         0x10534ffff libobjc-trampolines.dylib arm64e  <7e77fc541c3331c086e81fb7bf12836c> /private/preboot/Cryptexes/OS/usr/lib/libobjc-trampolines.dylib
        0x198c6d000 -         0x19954afff Foundation arm64e  <1715de5d08933af0b0c0550bb14f91ec> /System/Library/Frameworks/Foundation.framework/Foundation
        0x19e9bb000 -         0x19eda2fff CoreFoundation arm64e  <a900b4590127379e9cba0eab9c5d559f> /System/Library/Frameworks/CoreFoundation.framework/CoreFoundation
        0x19eda3000 -         0x19f9ccfff Network arm64e  <f9d5a7e31efb3879b33ffd16ab5e4ad5> /System/Library/Frameworks/Network.framework/Network
        0x1a0a2a000 -         0x1a224efff UIKitCore arm64e  <7d57a1d1856f338d97db880c4ec8b02e> /System/Library/PrivateFrameworks/UIKitCore.framework/UIKitCore
        0x1a224f000 -         0x1a3bc7fff SwiftUI arm64e  <14c7908e8c603bf7b6d8937d502b5918> /System/Library/Frameworks/SwiftUI.framework/SwiftUI
        0x1bdf57000 -         0x1bdfdca53 dyld arm64e  <c3fc2ee4367f3086beb8420ad442bf88> /usr/lib/dyld
        0x1d9f4f000 -         0x1d9f57fff GraphicsServices arm64e  <cd8d719514e13c7ca8c950ccea9f2a17> /System/Library/PrivateFrameworks/GraphicsServices.framework/GraphicsServices
        0x1dd97a000 -         0x1dd9b1fe7 libsystem_kernel.dylib arm64e  <681b06a07f6b3fa3a2ce063dc1da7b1b> /usr/lib/system/libsystem_kernel.dylib
        0x1fe7f5000 -         0x1fe800ff3 libsystem_pthread.dylib arm64e  <aa302f5affe5327aa0033b288b935de1> /usr/lib/system/libsystem_pthread.dylib

EOF

Allow users to upload data packages on the "Connect" screen

Is your feature request related to a problem? Please describe.
When users are going through the onboarding or Settings screen flow, they may click on "Connect to a TAK server" expecting to be able to manage everything to do with connecting, including using a data package

Describe the solution you'd like
In addition to the current Settings screen that has this

image

Modify this screen to have an option to upload a data package
image

Additional context
We'll leave the current settings screen breakout as is. We'll also need to make sure that when a user is uploading a data package that the enrollment status correctly processes and updates when coming from the Connection modal screen

TAK Chat

Is your feature request related to a problem? Please describe.
Users of TAK Tracker may need a way to send messages to other team members. TAK Chat is the standard way of doing this.

Describe the solution you'd like
We already have the screen for TAK Chat. This will need to implement two-way comms for sending and receiving messages, as well as displaying message counts in the icon when a new message comes in. Might be a nice feature to have a Notification Center alert on new messages with a badge count update.

Can't Upload Data Packages in iOS 15 devices

Describe the bug
When using a device running iOS 15 data packages can not be uploaded. The button doesn't seem to do anything.

To Reproduce
Steps to reproduce the behavior:

  1. Open the app and use the onboarding, or go to Settings
  2. Click on the button marked "Data Package"

Expected behavior
The file picker dialog should open at this point. In the onboarding page it just says "processing data package" as soon as you click the button

Screenshots
https://github.com/flighttactics/TAKTracker/assets/99811/456674e9-8a63-4242-a443-9d2db8edabd9

Smartphone (please complete the following information):

  • Device: iPhone SE
  • OS: iOS 15.4 and iOS 15.7.1
  • Version: [e.g. 22]: v1.0-54
  • App Store or TestFlight?: App Store

Additional context
It's a known issue for Apple with a workaround available in that link

Support Alternate Map Sources

Is your feature request related to a problem? Please describe.
Apple Maps don't always have all of the features, such as address labels on the map

Describe the solution you'd like
A way to add additional maps when showing the map display

Additional context
Map sources are typically XML files that have the tileserver and other pertinent information. An example one for Google Maps is:

<?xml version="1.0" encoding="UTF-8"?>
<customMapSource>
	<name>0.GoogleHybrid</name>
	<minZoom>0</minZoom>
	<maxZoom>21</maxZoom>
	<tileType>png</tileType>
	<tileUpdate>None</tileUpdate>
	<url>https://mt.google.com/vt/lyrs=y,hl=en&amp;x={$x}&amp;y={$y}&amp;z={$z}</url>
	<backgroundColor>#000000</backgroundColor>
</customMapSource>

Onboarding Wizard

Allow a user who is launching the app for the first time to receive an onboarding wizard to set up their permissions, callsign, team, and server connections.

Selecting Situational Awareness -> Map does not turn on the map

Describe the bug
When first turning on the map using the Settings -> Situational Awareness menu, if a user leaves the default map selected, the actual map never loads

To Reproduce
Steps to reproduce the behavior:

  1. Install the app for the first time
  2. Go to Settings -> Situational Awareness
  3. Enable the Map Display but do not change the Map Type
  4. Hit the back button to the settings page
  5. Dismiss the settings page

Expected behavior
The user sees the map set to the default map style

Certificates not being fully replaced when adding a data package for the same server but different user

Describe the bug
When uploading a new data package for a server TAK Tracker is already connected to where that data package keeps everything the same except the username/user certificate TAK Tracker will show a successful connection but TAK Server will still show the old username connecting

To Reproduce
Steps to reproduce the behavior:

  1. Add a data package for a connecting to a TAK Server with one user (i.e. USER1)
  2. Ensure that TAK Tracker has connected to the server
  3. Open the TAK Server's Client Connections page and ensure TAK Tracker has connected with USER1
  4. In TAK Tracker upload a second data package to the same TAK Server but for a different user (i.e. USER2)
  5. Ensure that TAK Tracker has connected to the server
  6. Open the TAK Server's Client Connections page

Expected behavior
The Client Connection page should show that USER2 is now connected. However it continues to show USER1 is connected even after a device restart

Additional context
This appears to be an issue because we use the server name as part of the index for the certificate, and iOS doesn't allow a certificate to just be replaced - it must be explicitly removed first and then the new one added.

Note that this does not apply to adding a data package to a different server, nor to certificate enrollment. And the workaround would be to connect to a different TAK Server then upload the data package for the new user.

Allow setting the Team/Role

Is your feature request related to a problem? Please describe.
Currently there is no way to set the Team/Role that is sent for the user

Describe the solution you'd like
In the settings page allow the user to choose the Team/Role.

Additional context
As part of this we should remove the CoT Type / How settings that are displayed. These should be inferred.

Support Certificate Validation for Intermediate Certificates

Is your feature request related to a problem? Please describe.
Some TAK Servers are set up using SSL certificates using Root-verified SSL. For any other servers using self-signed primary or intermediate certificates we need to validate the server's trust chain

Describe the solution you'd like

  • Certificate Enrollment will need to be modified to accept an intermediate certificate with password
  • Data packages already include the intermediate certificate
  • For both: Parse the certificate and store it in Keychain as part of the trust chain, and validate when connecting that the certificate is correct

Additional context
We are already parsing the certificate in the data package, so most of this is the UI modifications for Certificate Enrollment and actually enforcing the trust verificatiion

Support Switching Map Types

Is your feature request related to a problem? Please describe.
When displaying the map we don't allow switching between the map types. There are cases where a Satellite View is preferable to the roads view.

Describe the solution you'd like
In Settings allow switching between the various map types. Additionally move toggling the map to the bottom of the Settings Screen along with any map controls.

Additional context
While display a map seems like a great feature, not every use of TAK Tracker needs the map to be displayed

Data Package Imports Not Working with Folders

Describe the bug
When uploading a data package where the files are in a subfolder the app is unable to connect

To Reproduce
Steps to reproduce the behavior:

  1. Create a standard data package with your .p12 files, .prefs file and MANIFEST/mainfest.xml
  2. Create a zip file of the folder they are in (e.g. mydatapackage.zip would contain mydatapackage/user.p12, mydatapackage/ca.p12, etc)
  3. Attempt to upload as a data package

Expected behavior
Expect the server to connect. What does happen is that the preferences are read for the server name, port, callsign, etc but the actual connection can not be made

Smartphone (please complete the following information):

  • Device: [e.g. iPhone6]: iPhone 13 Pro
  • OS: [e.g. iOS8.1] iOS 17.0
  • Version: [e.g. 22]: v1.0
  • App Store or TestFlight?: App Store

Additional context
The issue stems from the app trying to properly locate the .p12 files from the archive. SwiftTAK walks all of the files to find the preference file, but then uses a different method to find the certificates after parsing the manifest. This method presumes that the certificates will be at the root of the zip file, so they aren't loaded or parsed, and the necessary identities can't be created.

The fix (in SwiftTAK) will be to identify where the preference file itself is at, and then use that as the "base directory" for all other Archive operations.

Automatically Add Shortcuts on Install

Apple provides a mechanism to automate features in installed applications through the use of Shortcuts. On install we should offer the ability to have some base shortcuts - specifically around sending a 911 Alert.

Allow TAK Chat to be disabled

Is your feature request related to a problem? Please describe.
Certain clients will not leverage TAK Chat and primarily need the app to run as long as possible with as minimal hit to battery life. Since TAK Chat requires a continually open connection for listening for incoming messages, we should be able to set a pref to disable it to conserve battery life.

Describe the solution you'd like
Allow both an app setting and configuration through MDM / Data Packages to disable TAK Chat

Make full use of the display on the main screen

Is your feature request related to a problem? Please describe.
When running TAK Tracker on a larger device the app does not make use of all of the available screen space

Describe the solution you'd like
In the current v1.0 release the application has a border around the main screen so it does not go all the way to the edges. This is especially noticeable in non-dark mode uses of the phone

Light Mode:
simulator_screenshot_DA15F647-C7B3-47E5-B4FE-8E1A89ED8CCE

Dark Mode:
simulator_screenshot_9E3DD12C-30C1-437D-8EEA-0E19DACA4B9E

Compare this to the iTAK application which goes all the way to the edges of the device:
image

Additional context
This is likely an adjustment needed of the Safe Mode area. Should be a relatively easy fix.

QR Code Enrollment for connecting to a server

Is your feature request related to a problem? Please describe.
In rapid deployment situations it's not always feasible to hand out usernames/password/certificates just for Tracking use. We need a rapid way to get people into the COP.

Describe the solution you'd like
Allow TAK Tracker to scan a QR code to connect to the TAK Server.

Additional context
There's lots of questions around this. TAK somewhat expects each user to be on their own certificate. However there's also the QR plugin Raytheon recently created to allow temporary access. There's also the question of how to handle certificates when using self-signed certs. But conceptually this would be great to be like SARTopo's ease of use around getting people onto a map - or at least tracking.

App "disappears" when in Landscape mode of iPhone Max / iPad

Describe the bug
When rotating the device to landscape mode the app disappears

To Reproduce
Note this requires a iPhone Max or iPad to reproduce:

  1. Open app
  2. Rotate Left
  3. See that the app has "disappeared" but can be partially slid over (see attached video)

Expected behavior
When rotating Landscape the app shows the same UI as on a non-Max phone

Screenshots
If applicable, add screenshots to help explain your problem.

Simulator.Screen.Recording.-.iPhone.14.Pro.Max.-.2023-09-27.at.07.50.05.mp4

Smartphone (please complete the following information):

  • Device: iPhone 14 Pro Max
  • OS: iOS 16.4
  • Version: v.1.0.50
  • App Store or TestFlight?: Dev Build

Additional context
According to this link it's a design feature of NavigationView where rotation on a large enough screen causes the "Secondary" view to be displayed - of which we have none in this app.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.