raxisinc / legacy-boscloner-android-app Goto Github PK
View Code? Open in Web Editor NEWBoscloner Android App Version 2 - With BLE Support for Newer Boards
Boscloner Android App Version 2 - With BLE Support for Newer Boards
On App Launch, the terminal view shows:
** RFID Badge Type: rfid badge type **
This needs to accurately reflect the default setting inside of the "Settings" section.
After selecting "Custom Write", the dialog box pops up. The pre-filled font inside of the text field current says, "Hint".
This field needs to instead show, "1A:2B:3C:4D:5D"
There was a problem when you go to the home fragment page, from some other fragment (history, settings) where when you return to home fragment, the app will send the autoclone message to the device one more time. That should be fixed now, so there will be no more auto clone messages inside the UI that.
While the app has the ability to re-establish the Bluetooth connection (after it has been lost) while sitting at the home screen, it doesn't appear to have this ability while the user is at the History screen.
We need to make sure that the connectivity state, and automatic restoration of the the connectivity state is handled in the background at all times...regardless of the screen/page the user is on, and regardless of if the app is open, background, the phone's screen is turned off, or the user is at the lock screen. The Bluetooth state should always be managed, and appropriately logged via push/local notifications.
The date format in history view should be truncated so that it does not take up multiple lines.
The time and date should be formatted as such:
YYYY-MM-DD HH:MM:SS
Y = Year
M = Month
D = Day
H = Hour
M = Minute
S = Second
So, a proper timestamp would look something like:
2018-06-06 15:45:12
This one is a bit odd.
If connected to the Boscloner and the user goes into the History screen, then switches back over to the Home screen...once the user switches back to the home screen, an alert sound is heard.
It doesnt appear that anything is being sent to the board during this...so I have no idea why it makes an alert sound. I can switch back and forth between History and Home as many times as I'd like, and the same alert is given indefinitely.
Something about switching between those screens seems to trigger some kind of alert, but i don't know what it is exactly. Nothing shows up on the app, but my phone vibrates and makes an alert sound.
To add uniformity across the iOS and Android versions, please replace all instances of that purple/blue color with Black.
For example, when inside the Boscloner Android app, the following elements are purple/blue that need to be changed to black:
The top status bar
The "Custom Write" label text on the home screen
The "AutoClone" label text on the home screen
The "Tab Bar" on the bottom of the screen that has "Home, History, and Settings". The selected item is always purple, please change to black.
The "Share" and "Delete" label text on the "History" page need to be removed altogether and only the icons should remain. (After deleting the text labels there, please slightly increase the size of the icons to make them easier to tap)
As we discovered, we need to be able to write strings longer than the 20 character "limit" to the Boscloner board.
As you implement the fix, remember to remove the string we added:
(item.deviceMacAddress.replaceAll(":", "" )
This is on line 240 of MainActivity.java at the time of writing.
Once we resolve the 20 character issue, we will no longer need to remove the colon from the string
In greater context, it is part of the following method:
@OverRide
public void onListFragmentInteraction(HistoryItem item) {
Timber.d("On item selected " + item.deviceMacAddress + " " + item.localDateTime);
sendWriteInstructionToService(item.deviceMacAddress.replaceAll(":", "" ), true);
}
}
Simple change, just ensure that it is made throughout the project:
Variable "customWriteGlith" needs to be changed to "customWriteGlitch"
Once the Boscloner is disconnected from the app, the user receives a notification to alert them that the Boscloner is no longer connected.
However, every few seconds, the user receives a new alert/notification that the Boscloner is disconnected. This is not an ideal experience.
The Boscloner app seems to attempt reconnection every few seconds (This is good!), but the notification should only arrive once when the connection is lost. This notification should not be repeated on every reconnect attempt.
After downloading the app from the Google Play store, the app icon on the Android device is missing the Boscloner icon.
The icon is the default Android picture and the app's text shows: "Boscloner V2"
The Boscloner sheep logo needs to be the icon's image. Additionally, the App's title on the device should read "Boscloner"
When the app launches, it takes toggling the autoclone on and off a few times in order for anything to be displayed on the screen.
Also, when pressing autoclone a few times, it doesn't start actually sending commands to the Boscloner until the 2nd or third attempt to toggle it.
This issue also seems related to the terminal view not displaying the initial text (and only a blank screen) when the app first launches, and the only remedy is to toggle autoclone several times to kick it into gear.
We need to have a screen that appears to the user when the Boscloner is in a disconnected state.
For example, if i were to launch the app on iOS and the Boscloner board was not in range or was powered off, the iOS app would show the following screen to me letting me know that the Boscloner is not yet connected:
This same screen will occur at any point the Boscloner becomes disconnected / powered off while the user is using the app.
Note that while some of the functions have visually disappeared from the screen while in this disconnected state, the history screen and the settings bars are still available. The user can still visit the history screen and view the stored data, but they will not be able to send any WRITE commands to the Boscloner board until the bluetooth connection is established again.
When in the history screen and you select an entry to write from, a dialog box pops up.
This dialog box has an "OK" option, but should also have a "Cancel" option. I know tapping outside of the popup box accomplishes this, but it isn't very clear.
Please add a cancel button to the popup box.
Also, when selecting a badge from history, the keyboard automatically pops up. Can we stop the keyboard from automatically popping up? Unless the user taps in the box to 'edit' the badge, the keyboard does not need to appear.
When the user switches to the History page, the bar that provides the user with Custom Write and AutoClone should disappear from view. That bar should only be available on the Home screen.
This bar needs to be replaced with two options:
Please see the iOS screenshots for reference:
The main terminal view on the home screen is currently persistent across app launches. This data should instead be cleared anytime the app is closed and relaunched.
For the history view:
The newest/most recent captured badge should always appear at the top of the screen.
If the History page looked like this:
Badge1 (Most Recent Capture)
Badge2 (Captured 2 minutes ago)
Badge3 (Captured 3 minutes ago)
Badge4 (Captured 4 minutes ago)
Then, the User captured another badge...the history page would then look like this:
Badge0 (Most Recent Capture)
Badge1 (Captured 1 minutes ago)
Badge2 (Captured 2 minutes ago)
Badge3 (Captured 3 minutes ago)
Badge4 (Captured 4 minutes ago)
When toggling autoclone on or off, the terminal view reflects Duplicate entries (2x) for the changed status as such:
** AutoClone Status: Disabled **
** AutoClone Status: Disabled **
or
** AutoClone Status: Enabled **
** AutoClone Status: Enabled **
When toggling autoclone, this entry should only be present once per toggle.
We need to be able to send local push notifications after any of the following events occur:
Notifications do not need to appear to the user while they are actively using the Boscloner app in the foreground. However, when the app is in the background, or the user has their screen off, or they are at the lock screen, this is when the push notifications need to be visible to the user, followed by the default notification sound set by their mobile device.
Let's add a check to ensure that the bluetooth connection is established prior to allowing the user to send write commands.
In the the iOS app, this is achieved by checking the connected state when a user taps on things like writing from history, autoclone toggle, or custom write:
@IBAction func customWriteIcon(_ sender: UIButton) {
if connectedPeripheral?.state != CBPeripheralState.connected {
notConnectedWarning()
} else {
showInputDialog()
}
}
Essentially, if the device is connected, the operation continues. If it is not connected, a popup dialog box appears to the user and states that the Boscloner is not connected. Please view the iOS Swift code below on the box that pops up when the user tries to perform an action while in a disconnected state:
// BLE Device Not Connected Dialog Alert Pop-up
func notConnectedWarning() {
let alertController = UIAlertController(title: "Boscloner Unavailable (BLE)", message: "Ensure the Boscloner boards are powered on and within range.", preferredStyle: .alert)
//the cancel action doing nothing
let cancelAction = UIAlertAction(title: "OK", style: .cancel) { (_) in }
//adding the action to dialogbox
alertController.addAction(cancelAction)
//finally presenting the dialog box
self.present(alertController, animated: true, completion: nil)
}
The iOS app has a nice title/banner at the top of the screen. I'd like to have the Android app mirror that appearance as much as possible. Currently, the title bar is very flat and the logo is nowhere to be seen.
If you were to type into Custom Write:
0102030405
That string would appropriately be sent to the Boscloner.
If you were to then open Custom Write, but submit it while blank/empty, it would send the previous string to the board, but would say, "Custom ID Written: " in the Home Screen / Terminal view.
If we set this string to 10 zeros, "0000000000" after the data is successfully sent to the board, this issue would resolve itself, while allowing the "Custom ID Written: " text to display all zeros in the home screen / terminal view.
In settings, we need to remove the EM4100 and HID iClass Legacy badge types.
In the App's current form, we can only support HID ProxCard and HID Indala.
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.