[Samsung Galaxy Nexus] Krystanos:
I think it's a step in the good direction. But IMHO, on a more general level, there's a lot of rework to do about the user interaction. Simpler is better.

You can do what you want with what I tell you here (even put it in the trash), but I think it's too complicated to use it as it is now. If I were to do the UI, I would do :

- No interface to send. By that I say here "no need to start the app to use it". The "Send with WiFiShoot" should always be available, and not only when the app is started and WiFi Direct is active.

- When the user use Gallery (now, and then any other app, like Solid Explorer), he select one (for now, then many) picture to send, share it via WiFiShoot, and then WiFiShoot opens. If WiFi Direct is not active, it asks for its activation (it already do so it's ok). If not, get out of the app. No need to stay, it's only a user's mistake.

- Once answered yes to "activate WiFi Direct", go to settings, letting the user to activate WiFi Direct, then go back to the app (all this is already ok).

- Back to WiFiShoot, you see which device you can connect to. You select it, and BAM. everything is in the hand of the other user (this is also ok, it already does that).

- The progress bar in the notification center shows how it goes.

It's more complicated, and less user friendly on the other side... Or maybe not.

What I don't find user friendly at all is that you have to validate twice to get your data.

Once to accept the connection (system validation I guess), and a second time to accept the data. This second step should be avoided, as when you accept the connection, you already know who is sending, and what is sent. There's no need to say twice "Yes, I want that data". It's more true today, as you have to validate no more than 10 times to get 5 pictures... Too heavy. Once the batch share is done, it's a lot less PITA, but still... It's twice the same message.

I'm not yet in Android dev, but it should be doable this way :

Version 1 : more user friendly

- WiFi Shoot runs as a service. Then, when someone tries to send data, you show the system message validation. If yes, data transfer starts and you show the progress bar in the notification center.

- If you can't have a callback on the system validation, then ok, you can ask a second time with a popup if you accept the data. But here you should show (if possible) what data is sent (video? picture? 1? many? videos and pictures? document? etc.). The idea here is to not launch the app. It does really nothing, except showing the big "Shoot!" button.

Version 2 : less resource consumption

- As a service consumes more resources, you could stick with the app. But it should do nothing more that accept data transfers from others. Showing available devices is ok for debugging/diagnosis purpose, but it should be on another tab/menu, and not in the main view.

If I were to prioritize, I'd say you'd be more comfortable if you did the User Interactions first. Avoiding too much refactoring, and maybe guiding the rest of the dev. Then do some "debug/diagnosis" tools, as it should help to understand what goes wrong. Then concentrate on Batch. And at last, allow "anything" to be sent. Picture, video, file, but also text, URL, etc.

Of course, this is just my opinion, and should be taken as is. Thanks for the good work :good: