From b8df604c464ffb43f1858377cbb08d8f622b9cd1 Mon Sep 17 00:00:00 2001 From: Roy Ben Shabat Date: Sat, 13 Apr 2019 01:55:47 +0300 Subject: Working on TCC.. --- .../Android_Studio/ColorCapture/app/build.gradle | 2 +- .../navigation/AndroidNavigationProvider.java | 62 +++++++++++++++++++--- .../navigation/INavigationProvider.java | 27 ++++++++++ .../views/capture/CaptureFragment.java | 7 +++ .../colorcapture/views/main/MainActivity.java | 51 ++++++++++++++++-- .../colorcapture/views/main/MainActivityVM.java | 2 +- 6 files changed, 138 insertions(+), 13 deletions(-) (limited to 'Software/Android_Studio') diff --git a/Software/Android_Studio/ColorCapture/app/build.gradle b/Software/Android_Studio/ColorCapture/app/build.gradle index e9f386b96..abe425ac7 100644 --- a/Software/Android_Studio/ColorCapture/app/build.gradle +++ b/Software/Android_Studio/ColorCapture/app/build.gradle @@ -23,7 +23,7 @@ android { buildTypes { debug { - buildConfigField "String", "WEB_SERVICE_ADDRESS", "\"http://192.168.1.86:45455/api/\"" + buildConfigField "String", "WEB_SERVICE_ADDRESS", "\"http://10.100.102.43:45455/api/\"" buildConfigField "String", "WEB_SERVICE_APP_ID", "\"Tdf793i4ughsiduf8749509237885ehgfdlkghlT\"" } diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/navigation/AndroidNavigationProvider.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/navigation/AndroidNavigationProvider.java index 2518a3109..96531ab20 100644 --- a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/navigation/AndroidNavigationProvider.java +++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/navigation/AndroidNavigationProvider.java @@ -17,6 +17,7 @@ import com.twine.colorcapture.core.IAction1; import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import java.util.Stack; import javax.inject.Inject; @@ -33,12 +34,14 @@ public class AndroidNavigationProvider extends ExtendedObject implements INaviga private boolean isFirst = true; private Context context; private List fragmentNavigatedListeners; + private Stack history; @Inject public AndroidNavigationProvider(Context context) { this.context = context; fragmentNavigatedListeners = new ArrayList<>(); + history = new Stack<>(); } @Override @@ -66,10 +69,49 @@ public class AndroidNavigationProvider extends ExtendedObject implements INaviga navigateTo(fragmentName, null, addToHistory); } + @Override + public void navigateBack() + { + if (canNavigateBack()) + { + navigateTo(history.pop(), false); + } + } + + @Override + public void notifyApplicationResume() + { + if (currentFragment != null) + { + currentFragment.getVM().notifyNavigatedTo(); + } + } + + @Override + public NavigationFragment getCurrentFragment() + { + return NavigationFragment.valueOf(currentFragmentName); + } + + @Override + public boolean canNavigateBack() + { + return history.size() > 0 && history.peek() != NavigationFragment.valueOf(currentFragmentName); + } + + @Override + public void reset() + { + history.clear(); + currentFragment = null; + currentFragmentName = null; + isFirst = true; + } + @Override public void navigateTo(String fragmentName, IAction1 onCreateListener, boolean addToHistory) { - if (activity == null) + if (activity == null || fragmentName == currentFragmentName) { //logManager.log(new NullPointerException("No navigation activity registered.")); return; @@ -80,6 +122,14 @@ public class AndroidNavigationProvider extends ExtendedObject implements INaviga if (currentFragmentName != null) { + if (addToHistory) + { + if (!history.contains(NavigationFragment.valueOf(currentFragmentName))) + { + history.push(NavigationFragment.valueOf(currentFragmentName)); + } + } + List values = Arrays.asList(NavigationFragment.values()); int newIndex = values.indexOf(NavigationFragment.valueOf(fragmentName)); @@ -130,10 +180,10 @@ public class AndroidNavigationProvider extends ExtendedObject implements INaviga fragmentTransaction.replace(fragment_container, fragment); - if (addToHistory) - { - fragmentTransaction.addToBackStack(fragmentName); - } +// if (addToHistory) +// { +// fragmentTransaction.addToBackStack(fragmentName); +// } fragmentTransaction.commit(); @@ -150,7 +200,7 @@ public class AndroidNavigationProvider extends ExtendedObject implements INaviga fragmentFrom.getVM().notifyNavigatedFrom(); } - },300); + }, 300); // try // { diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/navigation/INavigationProvider.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/navigation/INavigationProvider.java index dc4bb83d4..6f42cfcfb 100644 --- a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/navigation/INavigationProvider.java +++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/navigation/INavigationProvider.java @@ -29,6 +29,33 @@ public interface INavigationProvider * @param fragmentName the fragment name */ void navigateTo(String fragmentName, boolean addToHistory); + + /** + * Navigates to the previous fragment. + */ + void navigateBack(); + + /** + * Sends navigation notification to the current fragment. + */ + void notifyApplicationResume(); + + /** + * Gets the current navigation fragment. + * @return + */ + NavigationFragment getCurrentFragment(); + + /** + * Gets a value determining whether there is any fragment to navigate back to in the history. + * @return + */ + boolean canNavigateBack(); + + /** + * Resets the navigation manager. (call on navigation activity destroyed) + */ + void reset(); /** * Navigate to to the specified fragment name. diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/capture/CaptureFragment.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/capture/CaptureFragment.java index 54af2c31a..bf5ff63a8 100644 --- a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/capture/CaptureFragment.java +++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/capture/CaptureFragment.java @@ -88,6 +88,13 @@ public class CaptureFragment extends FragmentBase implements IMainActivity { + private boolean passOnCreate; @Inject public INavigationProvider navigationProvider; @@ -45,7 +47,8 @@ public class MainActivity extends ActivityBase if (isMyColorsToggled.get()) { isMoreToggled.setNoCallback(false); isCaptureToggled.setNoCallback(false); - navigationProvider.navigateTo(NavigationFragment.MyColors,false); + navigationProvider.navigateTo(NavigationFragment.MyColors,true); } isMyColorsToggled.setNoCallback(true); } -- cgit v1.3.1