servalproject / batphone Goto Github PK
View Code? Open in Web Editor NEWThe Serval Mesh app for Android. EXPERIMENTAL SOFTWARE.
Home Page: http://www.servalproject.org
License: GNU General Public License v3.0
The Serval Mesh app for Android. EXPERIMENTAL SOFTWARE.
Home Page: http://www.servalproject.org
License: GNU General Public License v3.0
The screen that shows results when you enter a phone number (as opposed to using a contact) needs to be reformatted - it is a screen that needs some work in look consistency. I will format.
Hi,
Im trying to fork batphone and add network features to it. Therefor I need the routing table that was previously written to the kernel (/proc/net/route). Is there a way to get this data?
While a call is in progress we need to allow the user to leave the activity. We then need a notification to allow the user to return and terminate the call.
When upgrading to 0.09 from 0.07 the Asterisk and DNA processes are not killed as expected.
Mantis severity: major
Mantis priority: urgent
Mantis project: Core Project
Product version: 0.09 Shiny
Target version: 0.09 Shiny
Can reproduce: have not tried
To reproduce:
In the current version of the Rhizome Message Log processing code new messages are processed starting at the end of the file. In this way messages are processed in the reverse order to what they were originally sent.
This may cause issues with processes and programs that expect to receive messages in the order in which they were sent.
Mantis severity: major
Mantis priority: normal
Mantis project: Core Project
Product version: 0.09 Shiny
Target version: 0.09 Shiny
Can reproduce: always
To reproduce:
Send three messages to the same device and examine how they are received by the device and the order in which org.servalproject.meshms.RECEIVE_MESHMS intents are sent.
sits on unpacking for ever, trying to kill these processes before root permissions have been gained.
Killing the processes manually seems to unstick it.
Mantis severity: crash
Mantis priority: normal
Mantis project: Core Project
Product version: 0.07
Target version: 0.09 Shiny
Related to: #24 Install process needs to kill bin/dna and bin/asterisk, even though they are not part of shiny
Can reproduce: have not tried
... because they could be there from a previous version.
Also note that UIDs may change if uninstalled and reinstalled, but could possibly leave the process hanging around.
Do we make servald an android service somehow?
Mantis severity: block
Mantis priority: normal
Mantis project: Core Project
Product version: 0.09 Shiny
Target version: 0.09 Shiny
Fixed in version: 0.09 Shiny
Related to: #23 reinstallation can get stuck if dna/asterisk already running
Can reproduce: always
rbochet reported:
When the phone number
"3#14159"
is set, it is impossible to reach it.
Mantis severity: minor
Mantis priority: normal
Mantis project: Installation & Configuration
Can reproduce: N/A
To reproduce:
Set the phone number 3#14159
Try to call it from another cell phone.
I have seen, occasionally, errors in the log relating to the Serval Mesh software, in particular the messaging component, trying to access the SQLite database on the SD card before the SD card is actually ready.
Mantis severity: major
Mantis priority: high
Mantis project: Core Project
Can reproduce: sometimes
To reproduce:
Reboot the phone and watch the output from logcat from the earliest moment possible.
When the mesh is running it runs all the time, and while phones like the U8150 can run the mesh for about 10 - 11 hours, this is still a fairly short battery life compared to a regular cellular network.
One easy way to extend the battery life, is to duty cycle the WiFi radio when there are no peers visible.
For example, if no peers have been detected after, say, 5 or 10 seconds, then the radio can be turned off for 5 - 30 seconds. The interval turned off should be random in length to prevent anti-synchronisation where two peers are in range but never have their radios on at the same time.
Perhaps the best way to turn the radio off quickly on all phones is release the PartialWakeLock after setting an alarm to wake the phone after the 5 - 30 second interval. This would also mean that whenever the phone is awake, the mesh is running, which is probably sensible from a usability perspective.
Mantis severity: feature
Mantis priority: high
Mantis project: Core Project
Related to: #20 Implement "Be Right Back" (BRB) messages when about to duty-cycle WiFi Radio
Can reproduce: N/A
We need to be able to easily allow a user to collect information such as:
and anything else we might need to gather so that we can figure out what is going on with problems that people report. It would be nice to have a way to automatically upload this data as well, or encrypt it and offer it via Rhizome so that it can be easily collected to a central point during a test.
Mantis severity: major
Mantis priority: high
Mantis project: Core Project
Can reproduce: N/A
When the user manually navigates to a message thread, the new messages notification should be removed.
Currently the only way to remove the notification is to click it.
Set Number in the menu needs to be renamed, and it also needs to be able to be accessed from the Settings menu. The information contained underneath all the other buttons in the menu access the same screen, but this information need to be converted to a different type of button, with explanation and formatting. The screen Set Number accesses is the last screen of the wizard. We need to make it easier for people to be able access this to change their personal information and view their Serval ID. I will write the help file explaining the action. Related to Issues #54 & #55.
Two phones, both in Ad Hoc mode, both have established routing contact with each other, as the Android logcats reveal:
D/servald ( 744): overlay_address.c:225:set_reachable() 35AD709AE1F9A57A880561A21B1657C41DE71E9185D2F8843D425070252A9D60 is now reachable via unicast
D/servald ( 744): overlay_address.c:213:set_reachable() 35AD709AE1F9A57A880561A21B1657C41DE71E9185D2F8843D425070252A9D60 is not reachableI/servald ( 744): overlay_route.c:189:get_node() ADD OVERLAY NODE sid=35AD709AE1F9A57A880561A21B1657C41DE71E9185D2F8843D425070252A9D60D/servald ( 744): overlay_address.c:219:set_reachable() 35AD709AE1F9A57A880561A21B1657C41DE71E9185D2F8843D425070252A9D60 is now reachable directly
I/servald ( 744): overlay_route.c:534:overlay_route_recalc_node_metrics() PEER REACHABLE, sid=35AD709AE1F9A57A880561A21B1657C41DE71E9185D2F8843D425070252A9D60
V/PeerListService( 604): Discovered peer sid:35ad709a*
and
I/servald ( 716): overlay_route.c:189:get_node() ADD OVERLAY NODE sid=79828BAC99F12B12303388161FDC13E0093E8B8D07672A8519354AC895E0C53BD/servald ( 716): overlay_address.c:228:set_reachable() 79828BAC99F12B12303388161FDC13E0093E8B8D07672A8519354AC895E0C53B is now reachable via broadcast
D/BatPhone( 570): modeChanged() entered
D/servald ( 716): overlay_address.c:219:set_reachable() 79828BAC99F12B12303388161FDC13E0093E8B8D07672A8519354AC895E0C53B is now reachable directly
I/servald ( 716): overlay_route.c:534:overlay_route_recalc_node_metrics() PEER REACHABLE, sid=79828BAC99F12B12303388161FDC13E0093E8B8D07672A8519354AC895E0C53B
V/PeerListService( 570): Discovered peer sid:79828bac*
This is confirmed by running the servald dna lookup *
command on each phone:
+ START
+ adb -s 54A51BD473FC shell run-as org.servalproject /data/data/org.servalproject/bin/servald dna lookup ''\''*'\'''
sid://35AD709AE1F9A57A880561A21B1657C41DE71E9185D2F8843D425070252A9D60/local/34708095510:34708095510:
sid://79828BAC99F12B12303388161FDC13E0093E8B8D07672A8519354AC895E0C53B/local/65037397440:65037397440:
+ DONE
+ START
+ adb -s 1C1D6733FB87 shell run-as org.servalproject /data/data/org.servalproject/bin/servald dna lookup ''\''*'\'''
sid://79828BAC99F12B12303388161FDC13E0093E8B8D07672A8519354AC895E0C53B/local/65037397440:65037397440:
sid://35AD709AE1F9A57A880561A21B1657C41DE71E9185D2F8843D425070252A9D60/local/34708095510:34708095510:
+ DONE
Yet the peer list screen of phone 1C1D6733FB87 shows only the Broadcast/Everyone entry, while the peer list of phone 54A51BD473FC shows Broadcast/Everyone and 65037397440.
Leaving and re-entering the peer list screens on either phones makes no difference.
The Rhizome database currently grows without limit. The following features must be implemented:
Mantis severity: minor
Mantis priority: normal
Mantis project: Core Project
Product version: 0.09 Shiny
Target version: 0.09 Shiny
Can reproduce: always
The code is all there, it used to work.
I have confirmed that the ACTION_RECEIVE_FILE intent is being sent to announce the file arrival, but has not been received by the list activity's broadcast receiver. This is probably a permissions issue.
MeshMS messages sent to a broadcast address will be received every time the application restarts after a reboot or force quit.
When the Main activity is opened, and decides that the setup wizard should be opened, the Main activity should immediately close. When the wizard completes successfully the Main activity should re-open.
Some icons are rendered with aliasing, some are aligned on pixel boundaries. Some buttons have text in the image.
We must be careful that all icons are consistently rendered and that all text can be easily translated.
I've noticed in testing another application this afternoon the following messages in logcat
W/Vold ( 152): Failed to unmount /mnt/secure/staging (Device or resource busy, retries 9, action 0)
E/ProcessKiller( 152): Process /data/data/org.servalproject/bin/servald (518) has open file /mnt/secure/staging/serval/rhizome/rhizome.db
W/Vold ( 152): Failed to unmount /mnt/secure/staging (Device or resource busy, retries 8, action 0)
E/ProcessKiller( 152): Process /data/data/org.servalproject/bin/servald (518) has open file /mnt/secure/staging/serval/rhizome/rhizome.db
W/Vold ( 152): Failed to unmount /mnt/secure/staging (Device or resource busy, retries 7, action 0)
E/ProcessKiller( 152): Process /data/data/org.servalproject/bin/servald (518) has open file /mnt/secure/staging/serval/rhizome/rhizome.db
W/Vold ( 152): Failed to unmount /mnt/secure/staging (Device or resource busy, retries 6, action 0)
E/ProcessKiller( 152): Process /data/data/org.servalproject/bin/servald (518) has open file /mnt/secure/staging/serval/rhizome/rhizome.db
W/Vold ( 152): Failed to unmount /mnt/secure/staging (Device or resource busy, retries 5, action 0)
E/ProcessKiller( 152): Process /data/data/org.servalproject/bin/servald (518) has open file /mnt/secure/staging/serval/rhizome/rhizome.db
W/Vold ( 152): Failed to unmount /mnt/secure/staging (Device or resource busy, retries 4, action 0)
E/ProcessKiller( 152): Process /data/data/org.servalproject/bin/servald (518) has open file /mnt/secure/staging/serval/rhizome/rhizome.db
W/Vold ( 152): Failed to unmount /mnt/secure/staging (Device or resource busy, retries 3, action 0)
E/ProcessKiller( 152): Process /data/data/org.servalproject/bin/servald (518) has open file /mnt/secure/staging/serval/rhizome/rhizome.db
W/Vold ( 152): Failed to unmount /mnt/secure/staging (Device or resource busy, retries 2, action 1)
E/ProcessKiller( 152): Process /data/data/org.servalproject/bin/servald (518) has open file /mnt/secure/staging/serval/rhizome/rhizome.db
W/ProcessKiller( 152): Sending SIGHUP to process 518
I/Vold ( 152): /mnt/secure/staging sucessfully unmounted
Mantis severity: minor
Mantis priority: normal
Mantis project: Core Project
Target version: 0.09 Shiny
Can reproduce: sometimes
The files can be identified by looking for the following extensions:
.smapp
.smapl
And by looking for the following prefix
smaps-photo-
Mantis severity: minor
Mantis priority: high
Mantis project: Core Project
Product version: 0.09 Shiny
Target version: 0.10
Can reproduce: always
To reproduce:
Run Serval Maps for a while and watch the files appear in the Find Shared Files activity
Statistics and metrics being sent back to the project need to be able to be reviewed by the user.
Mantis severity: major
Mantis priority: low
Mantis project: UI/UX
Related to: mantis:0000098 preparing information sent back to project for display
Related to: servalproject/serval-dna#38 Anonymous collection of statistics
Related to: mantis:0000090 UI - Anonymous collection of statistics, and the notification of same
Can reproduce: have not tried
Jeremy to work on back end.
When servald segfaults, a bunch of functionality stops working with little or no information given to the user.
ServalDMonitor must restart servald if connecting fails. And if that doesn't work, we must inform the user in some fashion.
The new Rhizome needs to support the existing Intent based APIs
Mantis severity: block
Mantis priority: high
Mantis project: Core Project
Product version: 0.09 Shiny
Target version: 0.09 Shiny
Can reproduce: always
These APIs are used by third party applications currently under development including Serval Maps
Right now, the File Detail menu will let me save an incoming image. And then it will let me open it. But as a user, I initially thought there was no way to open the file. Because I cared about looking at the picture rather than saving it, I was stumped as to how to proceed. I would have liked to have seen a button that both saves and opens at once and gives me a clue.
Also, the semantics of "Save" are a bit unclear. The pic exists on everybody's phone, and it is persistent. It is, in a sense, saved. Saving again means copying to the sd card and making it available to non-serval Android. But that was somewhat confusing until somebody explained it to me. I'm not sure what the solution is here, but I suspect using a term other than "save" might help.
When the Batphone app is started, the Switch ON/OFF button is in the OFF state (with caption "Switch ON") but the log and process listing shows that servald is running.
Mantis severity: major
Mantis priority: normal
Mantis project: Core Project
Product version: 0.09 Shiny
Target version: 0.09 Shiny
Can reproduce: sometimes
To reproduce:
This occurs fairly reliably after a reinstall and start application using adb.
During app, startup the following errors appear in the log:
W/System.err: java.lang.ClassNotFoundException: WifiP2pManager in loader dalvik.system.PathClassLoader[/data/app/org.servalproject-2.apk]
W/System.err: WifiP2pManager.enableP2p NOT FOUND
W/System.err: WifiP2pManager.disableP2p NOT FOUND
V/Batphone: Cannot control Wifi-Direct.
Manually killing (HUP) the servald process then pressing the ON button appears to resolve the problem: the servald process gets started and the button goes to "ON" state.
java.lang.RuntimeException: An error occured while executing doInBackground()
at android.os.AsyncTask$3.done(AsyncTask.java:200)
at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:274)
at java.util.concurrent.FutureTask.setException(FutureTask.java:125)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:308)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1088)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:581)
at java.lang.Thread.run(Thread.java:1027)
Caused by: java.lang.OutOfMemoryError: (Heap Size=27847KB, Allocated=11153KB, Bitmap Size=139KB)
at java.lang.AbstractStringBuilder.enlargeBuffer(AbstractStringBuilder.java:95)
at java.lang.AbstractStringBuilder.append0(AbstractStringBuilder.java:153)
at java.lang.StringBuilder.append(StringBuilder.java:217)
at org.servalproject.system.CoreTask.internalRunCommand(CoreTask.java:265)
at org.servalproject.system.CoreTask.runCommandForOutput(CoreTask.java:304)
at org.servalproject.system.WifiMode.iwstatus(WifiMode.java:49)
at org.servalproject.system.WifiMode.getWiFiMode(WifiMode.java:111)
at org.servalproject.system.WiFiRadio.switchWiFiMode(WiFiRadio.java:824)
at org.servalproject.system.WiFiRadio.setWiFiMode(WiFiRadio.java:382)
at org.servalproject.PreparationWizard$PreparationTask.testSupport(PreparationWizard.java:285)
at org.servalproject.PreparationWizard$PreparationTask.doInBackground(PreparationWizard.java:402)
at org.servalproject.PreparationWizard$PreparationTask.doInBackground(PreparationWizard.java:227)
at android.os.AsyncTask$2.call(AsyncTask.java:185)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:306)
... 4 more
Mantis severity: major
Mantis priority: normal
Mantis project: Core Project
Product version: 0.07
Can reproduce: have not tried
Market place bug report - review if still present in current code
We have plans to duty cycle the WiFi radio to save power, especially when there are no peers available.
However, we could also duty cycle the radio when there are peers, but nothing much is happening.
In these cases it would be nice to be able to tell the peers that "I'll Be Right Back in (say) 27 seconds", so that the mesh can use that information helpfully.
See also Issue #19 for more on duty-cycling.
Mantis severity: feature
Mantis priority: normal
Mantis project: Core Project
Related to: #19 Duty-Cycle WiFi when no mesh peers present
Can reproduce: N/A
create related styles, move to a theme, rather than one ginormous style
http://mobileorchard.com/android-app-development-using-themes-and-styles-in-android/
http://developer.android.com/guide/topics/ui/themes.html
Mantis severity: minor
Mantis priority: normal
Mantis project: UI/UX
Product version: 0.10
Target version: 0.10
Can reproduce: N/A
For security reasons we should move the keystore to /data/data/.... .
Rhizome.db should move to a folder on the sdcard that android will delete for us.
Cyanogen mod has exposed this, as normal file manager does not show system and other hidden files.
Serval is being default mime type handler, with serval logo showing up as default type.
Mantis severity: major
Mantis priority: high
Mantis project: UI/UX
Product version: 0.09
Target version: 0.09
Can reproduce: always
Version: 0.90-beta-15-ga399993
After unsharing a file using the Unshare button on the File Detail dialog window, the file list screen still shows the unshared file. In order to refresh the list, the user must use the Back control to exit the file list, and re-open it with the Find button.
When a message arrives while the message thread is open, or when sending a new message. The display of the new message doesn't clearly indicate who wrote it.
Closing and re-opening the view does display correctly.
The Serval Maps application transfers photos associated with Points of Interest (POIs) separately to the data that defines the POI.
Therefore it is possible that Serval Maps believes that a photo should be available for the user to view but it isn't.
It would be nice to be able to poll Rhizome to say something like:
"is file with name 'x'" in the database.
Mantis severity: feature
Mantis priority: normal
Mantis project: Core Project
Product version: 0.10
Target version: 0.10
Can reproduce: always
Friday 1/6/12 afternoons apk
First 4 out of 5 phones just stopped at the "Starting" message after a reboot.
The 5th phone has suffered from some weird thing where it sits in client mode and wont change(for the last 2 apks installed), It started and went into adhoc then back to client, It lists 4 peers but only shows sids for them.
The other 4 includes the 8150 which would not complete the initial install but did after the reboot. In the action bar the 8150 lists 5 phones.
The irritating 5th phone also shows 5 phones in the action bar and has allowed me to change it to adhoc now.
Peer list on all 5 phones shows the other 4, no action bar notification for the 3 other phones
"Unable to place a call at this time" message is as close to happy as they all come. Ah! the 5th phone shows the calling screen but then goes to call ended.
No one rings, me.
Mantis severity: major
Mantis priority: immediate
Mantis project: UI/UX
Product version: 0.09
Can reproduce: always
To reproduce:
As above.
rbochet reported:
Implement a feature that allows to auto update Rhizome and Batphones APK, and that keeps history of the old APK to roll back if something is wrong.
Mantis severity: feature
Mantis priority: normal
Mantis project: Installation & Configuration
Mantis tags: auto install****rhizome
Can reproduce: N/A
java.lang.RuntimeException: Error receiving broadcast Intent { act=android.net.wifi.WIFI_AP_STATE_CHANGED flg=0x10000000 (has extras) } in org.servalproject.system.WiFiRadio$1@40584160
at android.app.LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:765)
at android.os.Handler.handleCallback(Handler.java:587)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:150)
at android.app.ActivityThread.main(ActivityThread.java:4385)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:507)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:849)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:607)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.NullPointerException
at org.servalproject.system.WiFiRadio.updateIntent(WiFiRadio.java:115)
at org.servalproject.system.WiFiRadio.modeChanged(WiFiRadio.java:152)
at org.servalproject.system.WiFiRadio.checkWifiMode(WiFiRadio.java:165)
at org.servalproject.system.WiFiRadio.access$600(WiFiRadio.java:55)
at org.servalproject.system.WiFiRadio$1.onReceive(WiFiRadio.java:251)
at android.app.LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:748)
Mantis severity: major
Mantis priority: normal
Mantis project: Core Project
Product version: 0.07
Can reproduce: have not tried
Market place bug report - review to check if bug still present.
rbochet reported:
The french translation is not up to date in the APK on the dev site.
Mantis severity: text
Mantis priority: low
Mantis project: Internationalisation / Translation
Fixed in version: 0.07
Mantis tags: translation
Can reproduce: always
AudioPlayer.cleanup() is called both from the playback thread when it is shutting down, and from the AudioManager when it gets the CallEnded message from servald. The playback thread will throw an NullPointerException if it attempts to shutdown when cleanup() has already been called.
The symptom is that near the end of the wizard, after pressing OK to accept a phone number, the Android "Application has crashed" dialog pops up, however the Serval app continues to run, and soon afterwards the Serval icon appears in the top bar, and the Serval app is still available.
The cause appears to be that 'socket' can sometimes be null at the line
socket.setSoTimeout(60000);
This is caused shortly after a 'Connection Refused' exception occurs at line 78, which is presumably caused because servald is no longer listening to the socket, which is caused because the servald 'stop' command now actually stops the servald process (but didn't before), and there is a race between the server re-starting and ServalDMonitor.
Mantis severity: major
Mantis priority: high
Mantis project: Core Project
Target version: 0.09 Shiny
Can reproduce: random
To reproduce:
Install from scratch and start
Go through the startup questions - accept license and root permission
Go through three wizard screens
The error occurs about 25%-50% of the time
Should prompt user to ask if they would like mesh turned on.
Mantis severity: minor
Mantis priority: normal
Mantis project: Core Project
Product version: 0.09 Shiny
Can reproduce: always
To reproduce:
Turn mesh off. Press "Call" button. Observe displays dialler.
Explain how the phone number screen is actually creating a Serval account (ie it allows you to store your Serval contacts on your phone). This is how Serval identifies your phone. Jeremy will add showing the initially generated Serval ID (SID) to the Wizard at that point. I will write the explanation screen(s): something like: “when you create your Serval account a key or ID is generated that is unique to you” plus information about the phone number (pick anything, including your ‘regular’ carrier assigned number), and how it is tied to the SID. These will also be available also via Help screen. I will write the help file explaining this. Also see Issue #63
Serval Mesh fails with force quit if there is no sdcard installed.
In this situation, we should use local phone storage for the serval instance path, which allow it to work, but at the risk of rhizome filling up internal storage on the phone.
The Batphone app should be able to function perfectly well on a non-rooted Android device.
The set-up wizard should not, by default, probe for root, except on a special edition that we publish on the Google Play called “Serval Mesh with root” or something even more suggestive. The only difference between the “rootful” edition and the tame edition will be the setting of a single configuration item or final boolean somewhere, and this boolean must be configurable on the Serval Settings activity, so that users can set Batphone to probe for root by default on start-up if they wish.
Regardless of what the set-up wizard does, there must also be a Serval Settings button for probing for root, so that users with the tame app can still take advantage of it, if present.
This change will mean we can tone down some of the warnings and disclaimers that are built into the Batphone app (and the release notes), although we will still need to warn about normal Serval operation and carry the usual disclaimers.
From Paul:
it would be nice to be able to set the name of a file when sharing via rhizome.
this would be helpful for photos and also for APK updates on the mesh,
so that they don't end up with identical or random names.
Mantis severity: feature
Mantis priority: normal
Mantis project: Core Project
Product version: 0.10
Target version: 0.10
Can reproduce: N/A
When serval is "On", the radio is in wifi client mode, but not connected to an access point. servald should set a timer to shutdown and release our cpu wakelock to save power.
Repeatedly dialing the same phone number does not always open the activity to search the network.
The + button for contacts found on the Mesh adds details and the SID. The SID is used to establish that contacts and provide some security for more information see the website. We also need to look at the settings and make sure that is available in the Settings menu as well. I will write the help file explaining this. (See Issue #54)
F-droid.org operates a repo for apks that it builds from source itself. The F-droid client app informs users of updates. I would like to see the app on there, but am wondering if we should go with 0.90 or wait until 1.0. F-droid client app can support betas too, if you want to use it that way. If you want to distribute your own apks from the app it is possible to set up your own repo.
In testing Serval Maps and the new Rhizome functionality I'm seeing files successfully transfer between phones. However I also see, what I assume, are temp files being created and not deleted.
All files appear in the root of the sd card.
One type has file names like this:
012FD54F4480592C5D76873AB9DD5C952A0CA24A40730BA9F78ED9E0BB3EF03A44205AB15C2E98E17B06A1E5EC5B34066B8FF3E101DAE4FC7C6EA4816A3429731113190589.tmp
053300309DD6232023EA48B1113A17B67653A34A664ACEDCEE976E3134C9114249CE739E9CFBDBD0612A08EF910D6C7622DACA0045CEFC7A58DA08CF2A1A7EA5-845644327.tmp
064B1BD03008098965ACA0A87D197F0BF4B36032B94AAEECE0B543505CDCB5C90944125C0FBFA8E9B58695ABF3146BB564880082ED9C5AB2227CC4AF677982C8474309321.tmp
070F0015AD14C0328C862F7DF03FD1332B7D8F76FA28424F9CDE35E73CEE998E528570A5A688658CA3C3AFDC905B4A473E6C6024BD5C51F996D31EBFD62E4C33-1909722391.tmp
0D921A7096D0D3CE3116A097681A5BFC8D1D259D9B887177E590CC0788C75D943413EA9219A3AE41393FDF72FCF923E1B27DF6D7D733EB07F122F27CAF3E17E3-132075203.tmp
117B4130EEF0AFF8B8BFD1385D514DAAD506C68F4DF99FA2CB68403AAB61F9DDB0819487F62732D1D3B8E54BF8BDD2546700ACD1894ACB63C3DB0A5215468F5C1363952759.tmp
The other has file names like this:
manifest-1150949943.temp
manifest-1160076647.temp
manifest-1206884673.temp
manifest-1218757694.temp
manifest-1259879330.temp
manifest-1278279403.temp
manifest-1340679888.temp
manifest-1372272505.temp
manifest-1378203035.temp
manifest-1381780669.temp
manifest-1403840005.temp
manifest-1404253757.temp
manifest-1406239322.temp
manifest-1412107434.temp
manifest-1419227195.temp
manifest-1452616627.temp
manifest-1455361299.temp
manifest-1455645357.temp
manifest-1463885427.temp
Mantis severity: major
Mantis priority: urgent
Mantis project: Core Project
Target version: 0.09 Shiny
Can reproduce: always
To reproduce:
Use the code from the Serval Mesh code shinyintegration branch created this morning
Use the code from the Serval Maps development branch updated this afternoon
Use the mock locations feature of Serval Maps to start creating and transferring files between devices
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.