Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Develop Remote Layout View #17

Open
MattS8 opened this issue Jul 9, 2019 · 0 comments
Open

Develop Remote Layout View #17

MattS8 opened this issue Jul 9, 2019 · 0 comments
Assignees
Labels
android Related to android application. UX Related to user experience (i.e. graphics, animations, unresponsiveness, etc)

Comments

@MattS8
Copy link
Owner

MattS8 commented Jul 9, 2019

No description provided.

@MattS8 MattS8 added android Related to android application. UX Related to user experience (i.e. graphics, animations, unresponsiveness, etc) labels Jul 9, 2019
@MattS8 MattS8 self-assigned this Jul 9, 2019
MattS8 added a commit that referenced this issue Jul 13, 2019
- Set up testing ground for Remote Layout development
MattS8 added a commit that referenced this issue Jul 13, 2019
- Set up testing ground for Remote Layout development
MattS8 added a commit that referenced this issue Jul 13, 2019
- Made some progress on remote layout
- Introducing ButtonProperties data structure
MattS8 added a commit that referenced this issue Jul 29, 2019
- Going to rework how the button data structure works
MattS8 added a commit that referenced this issue Jul 30, 2019
- Button Data Structure can now contains data for more than one "physical" button. This introduces support for single buttons with more than one "action" i.e. Volume Up and Volume Down can be one button data structure
- Added support for multi-action buttons
- Added UI elements for vertical increment buttons
- Begun adding UI elements for radial button
MattS8 added a commit that referenced this issue Jul 31, 2019
- Ported new Remote Layout from test environment to MainActivity
- Cleaned up Remote Layout code
- Changed MainActivity UI:
    - Now only 'My Remotes' and 'My Devices' are show at bottom
    - FAB is centered 
    - Using AppBar as bottom nav w/text buttons (todo: add selectable backgrounds)
- Added hide/show animations for UI elements when scrolling Remote Layout
MattS8 added a commit that referenced this issue Jul 31, 2019
- Ported new Remote Layout from test environment to MainActivity
- Cleaned up Remote Layout code
- Changed MainActivity UI:
    - Now only 'My Remotes' and 'My Devices' are show at bottom
    - FAB is centered 
    - Using AppBar as bottom nav w/text buttons (todo: add selectable backgrounds)
- Added hide/show animations for UI elements when scrolling Remote Layout
MattS8 added a commit that referenced this issue Aug 1, 2019
- Begun reworking backend code
- Begun removing Groups logic from project
- Updated remote layout stuff
- Begun a new version of splash screen login (currently broke)
MattS8 added a commit that referenced this issue Aug 2, 2019
- FAB changes function based on state
MattS8 added a commit that referenced this issue Oct 14, 2019
#16
- Added 'isCreatingNewButton' observable to TempData
- Properly clears tempButton data once remote has been updated with newly created button
- Created State class for ButtonCreator
- Added CommandCreator object to ButtonCreator
- Added Context to ButtonCreator class (must be set to null when onPause is called!)
- Added onPackPressed implementation which properly handles state navigation

#23
- Added State class for CommandCreator
- Begun implementing 'NewCommand' action
- Added onPackPressed implementation which properly handles state navigation

#17
- Added white outline around 'Add New Button' button
- Fixed visual bug with the rounded top button
MattS8 added a commit that referenced this issue Nov 18, 2019
#16
- made dialogState private

#17
- Added new 'RemoteLayout' wrapper class around 'RemoteLayoutView'. RemoteLayoutView now houses the logic for the recyclerview portion of the remote layout and RemoteLayout houses the logic for listening in on changes to state, such as when to show 'Create Remote' prompt views.
- This required some reworking of code in other places, such as 'OLD_RemoteFragment'
- 'RemoteButtonView' was reworked to properly inflate radial and incrementer buttons. Note: these buttons do not use any margin properties
- 'RemoteButtonView' now dynamically adds/removes a TextView depending on if it's property contains text
- 'RemoteButtonView' now dynamically adds/removes an ImageView depending on if it's property contains an image URI

#24
- Implemented a workaround where the transitions normally like any other transition between two states... duh
- This fixes the odd behavior and keeps the design language consistent

#25
- Several bug fixes to how Buttons and button Properties worked
- Setting a button's type to 'STYLE_BTN_RADIAL', 'STYLE_BTN_RADIAL_W_CENTER' or 'STYLE_BTN_INCREMENTER_VERTICAL' will now apply properties with the correct bgStyle and images for each of the inner buttons.
- Button data structures no longer need to have every property. The only required property for a button is 'bgStyle' 

Misc
- Added Test Environment Activity that allows for quick, iterative tests on a myriad of functions
- Removed some old unused test code
MattS8 added a commit that referenced this issue Nov 19, 2019
#16
- Added setup views for 'full button' and 'single action round' button
- Changed properties for 'vertical incremental button' setup view
- Removed double implementation of 'isCreatingNewButton'. All code now uses tempRemoteProfile's implementation
| ButtonCreator Changes/Fixes |
 - Fixed an issue where 'ButtonCreator' would not set AppState's 'isCreatingNewButton' to false on dismiss
- Fixed issue with dialog transitioning logic coming from CommandCreator's dismissal
- Now resets its state upon non-transitioning dismissal. Since 'ButtonCreator' cannot be dismissed by swiping anymore, the user must back out of each stage before the dialog is dismissed. This might be a pain point that should be addressed later for potential redesign.
- Added initial implementation of keyListenener which will be used to save button labels. This is heavy WIP and will probably be replaced when I redesign the 'setup button' layouts.
- Changed 'dismissBottomDialog' to now work similar to CommandCreator's version
- Added 'createDialogView()' function that implements generic view creation code
 
#17
- Added listener for 'add button' action within RemoteLayout wrapper itself. This wrapper class will call listener code whenever 'AppState.TempData.TempRemoteProfile.isCreatingNewButton' is set to true
MattS8 added a commit that referenced this issue Nov 19, 2019
#16
- Added setup views for 'full button' and 'single action round' button
- Changed properties for 'vertical incremental button' setup view
- Removed double implementation of 'isCreatingNewButton'. All code now uses tempRemoteProfile's implementation
| ButtonCreator Changes/Fixes |
 - Fixed an issue where 'ButtonCreator' would not set AppState's 'isCreatingNewButton' to false on dismiss
- Fixed issue with dialog transitioning logic coming from CommandCreator's dismissal
- Now resets its state upon non-transitioning dismissal. Since 'ButtonCreator' cannot be dismissed by swiping anymore, the user must back out of each stage before the dialog is dismissed. This might be a pain point that should be addressed later for potential redesign.
- Added initial implementation of keyListenener which will be used to save button labels. This is heavy WIP and will probably be replaced when I redesign the 'setup button' layouts.
- Changed 'dismissBottomDialog' to now work similar to CommandCreator's version
- Added 'createDialogView()' function that implements generic view creation code
 
#17
- Added listener for 'add button' action within RemoteLayout wrapper itself. This wrapper class will call listener code whenever 'AppState.TempData.TempRemoteProfile.isCreatingNewButton' is set to true
MattS8 added a commit that referenced this issue Nov 22, 2019
#6
- RemoteCreator reworked to more closely resemble the structure of other 'creator' modules
- Now contains a context reference
- Keeps track of it's visibility in its own state now

#17
RemoteLayout
- Setting the binding reference now properly updates the internal button creator and sets up the adapters
- Now contains the 'topPadding' value to set for the remote layout
- Lots of the logic regarding updating the layout have been moved to this class (i.e. 'edit mode' listener, 'add button' listener, 'button creation process complete' listener)

#23
CommandCreator
- Now 'resets' many of the internal variables to their default state when the dialog is dismissed. Since dismissing the dialog is only done when a user completely backs out or finishes a process now, this is a viable solution to resetting the creator for further use.
- Fixed a bug where instructionsBinding and newCommandSheetBinding weren't set to null upon removing the context reference
- Fixed a bug where 'showActionsFromDialog()' wasn't using the new 'createDialog()' function

#22
- The button creator was removed and is now found within the RemoteLayout variable
- The state variables 'isShowingCreateRemoteView' and 'isShowingCreateButtonView' have been removed as they are now unnecessary
-  Removed several listeneners which are now found within the RemoteLayout class
MattS8 added a commit that referenced this issue Nov 28, 2019
#17
- Removed unused code from OLD_RemoteFragment ('determineState()', State, etc)
- Creating a button no longer shows a Snackbar notification
- Moved the remoteLayout's onScrollListener to MainActivity as it is now used by multiple fragments

#25
- Added new Permission class. This is is used to determine what permissions the current user has for each remote. It will also allow for remote permissions management in the future.
- Moved 'copyFrom' function from RemoteCreator to RemoteProfile

#27
- Added xml view for an remote item
- Added 'Create first remote' prompt in 'f_remote_all'
- Added new 'tempRemoteName' string to TempData. This is used to store a new name for tempRemoteProfile
- Developed much of 'MyRemotesFragment'. Currently shows a list of all remotes a user has access to and dynamically shows an "edit remote name" button if the user has 'READ_WRITE' permission.
- Added onScrollListener that shows/hides MainViewActivity's UI views (previously unique to OLD_RemoteFragment)

#28
- Added remoteListeners and remotePermissionListeners to FirestoreActions. These keep track of all the listener registrations to each remote and their accompanying permissions
- Moved much of 'listenToRemote()' 's logic to two new listener classes: RemoteListener and RemotePermissionListener. Both of these handle what to do once remote data / remote permission data is received and make the original function cleaner/easier to read. 
- Upon receiving info for a remote, a check is now performed to see if the newly fetched data should be automatically loaded into TempRemoteProfile. This is handy for immediately loading a user's favorite remote upon first load up.
- Added new 'updateRemoteName()' function that allows the user to update only the remote's name. No permission checks are done in this function! It is assume the caller has already done the necessary checks. If not, the backend may deny the change.
- Rearranged the code in 'addRemote()' because I thought it made it easier to read (debatable).
- Added a constant string for the Firestore "remotes" endpoint. In the future I should make all of the main endpoints utilize such a constant.
- Removed old and commented out code
MattS8 added a commit that referenced this issue Jan 25, 2020
- Added functionality to edit button upon button pressed (when remote is in edit mode)
- Moved RemoteLayoutAdapter out of RemoteLayoutView
- Added onClick method for toolbar's util button
- Some changes to "create button" method in button creator
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
android Related to android application. UX Related to user experience (i.e. graphics, animations, unresponsiveness, etc)
Projects
None yet
Development

No branches or pull requests

1 participant