diff options
author | Bilal Alsharifi <bilal.alsharifi@gmail.com> | 2021-08-13 14:58:53 -0400 |
---|---|---|
committer | Bilal Alsharifi <bilal.alsharifi@gmail.com> | 2021-08-13 14:58:53 -0400 |
commit | 372076351ac693712270ccf6e8e1d009714c7b57 (patch) | |
tree | 73440b6f728f386a1229694a705d3f1c9e67fa8c | |
parent | 7a3557996fad3426173318471a1de6813cdee38e (diff) | |
download | sdl_android-372076351ac693712270ccf6e8e1d009714c7b57.tar.gz |
Transfer listeners from new kepts cells to old kep cells
-rw-r--r-- | base/src/main/java/com/smartdevicelink/managers/screen/menu/BaseMenuManager.java | 5 | ||||
-rw-r--r-- | base/src/main/java/com/smartdevicelink/managers/screen/menu/MenuReplaceOperation.java | 13 |
2 files changed, 14 insertions, 4 deletions
diff --git a/base/src/main/java/com/smartdevicelink/managers/screen/menu/BaseMenuManager.java b/base/src/main/java/com/smartdevicelink/managers/screen/menu/BaseMenuManager.java index 26e2f2816..4cc00e518 100644 --- a/base/src/main/java/com/smartdevicelink/managers/screen/menu/BaseMenuManager.java +++ b/base/src/main/java/com/smartdevicelink/managers/screen/menu/BaseMenuManager.java @@ -169,10 +169,7 @@ abstract class BaseMenuManager extends BaseSubManager { return; } - if (cells.equals(this.menuCells)) { - DebugTool.logError(TAG, "The set menu cells are identical to previously set menu cells. Skipping..."); - return; - } else if (!menuCellsAreUnique(cells, new ArrayList<String>())) { + if (!menuCellsAreUnique(cells, new ArrayList<String>())) { DebugTool.logError(TAG, "Not all set menu cells are unique, but that is required"); return; } diff --git a/base/src/main/java/com/smartdevicelink/managers/screen/menu/MenuReplaceOperation.java b/base/src/main/java/com/smartdevicelink/managers/screen/menu/MenuReplaceOperation.java index 0a1f92e03..121bf70f7 100644 --- a/base/src/main/java/com/smartdevicelink/managers/screen/menu/MenuReplaceOperation.java +++ b/base/src/main/java/com/smartdevicelink/managers/screen/menu/MenuReplaceOperation.java @@ -131,6 +131,8 @@ class MenuReplaceOperation extends Task { // We will transfer the ids for subCells later transferCellIDsFromOldCells(oldKeeps, newKeeps); + transferListenersFromNewCells(newKeeps, oldKeeps); + // Upload the Artworks, then we will start updating the main menu uploadMenuArtworks(new CompletionListener() { @Override @@ -253,6 +255,8 @@ class MenuReplaceOperation extends Task { transferCellIDsFromOldCells(oldKeeps, newKeeps); + transferListenersFromNewCells(newKeeps, oldKeeps); + sendDeleteCurrentMenu(cellsToDelete, new CompletionListener() { @Override public void onComplete(boolean success) { @@ -406,6 +410,15 @@ class MenuReplaceOperation extends Task { } } + private void transferListenersFromNewCells(List<MenuCell> newCells, List<MenuCell> oldCells) { + if (oldCells == null || oldCells.isEmpty()) { + return; + } + for (int i = 0; i < newCells.size(); i++) { + oldCells.get(i).setMenuSelectionListener(newCells.get(i).getMenuSelectionListener()); + } + } + private String convertErrorsMapToString(Map<RPCRequest, String> errors) { if (errors == null) { return null; |