diff options
| author | Roy Ben Shabat <Roy.mail.net@gmail.com> | 2019-04-13 01:55:47 +0300 |
|---|---|---|
| committer | Roy Ben Shabat <Roy.mail.net@gmail.com> | 2019-04-13 01:55:47 +0300 |
| commit | b8df604c464ffb43f1858377cbb08d8f622b9cd1 (patch) | |
| tree | 9a0be4b46868049dea72d53b4f20ae3c6ca89a4c /Software/Android_Studio | |
| parent | e3cd087cbe1b6c62df2beac4f6351bc20013726c (diff) | |
| download | Tango-b8df604c464ffb43f1858377cbb08d8f622b9cd1.tar.gz Tango-b8df604c464ffb43f1858377cbb08d8f622b9cd1.zip | |
Working on TCC..
Diffstat (limited to 'Software/Android_Studio')
6 files changed, 138 insertions, 13 deletions
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<FragmentNavigatedListener> fragmentNavigatedListeners; + private Stack<NavigationFragment> history; @Inject public AndroidNavigationProvider(Context context) { this.context = context; fragmentNavigatedListeners = new ArrayList<>(); + history = new Stack<>(); } @Override @@ -67,9 +70,48 @@ public class AndroidNavigationProvider extends ExtendedObject implements INaviga } @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<FragmentBase> 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<NavigationFragment> 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<FragmentCaptureBinding, Captur surfraceFrame.addView(surfaceView, new FrameLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT)); } + @Override + public void onPause() + { + super.onPause(); + stopCamera(); + } + private void startScanAnimation() { //Scanner overlay diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/main/MainActivity.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/main/MainActivity.java index a5d82de20..30b918f53 100644 --- a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/main/MainActivity.java +++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/main/MainActivity.java @@ -18,6 +18,7 @@ import com.twine.colorcapture.controls.ToggleImageButton; import com.twine.colorcapture.databinding.ActivityMainBinding; import com.twine.colorcapture.dialogs.welcome.WelcomeDialog; import com.twine.colorcapture.mvvm.ActivityBase; +import com.twine.colorcapture.mvvm.FragmentBase; import com.twine.colorcapture.navigation.INavigationProvider; import com.twine.colorcapture.navigation.NavigationFragment; import com.twine.colorcapture.notification.INotificationProvider; @@ -28,6 +29,7 @@ import butterknife.BindView; public class MainActivity extends ActivityBase<ActivityMainBinding, MainActivityVM> implements IMainActivity { + private boolean passOnCreate; @Inject public INavigationProvider navigationProvider; @@ -45,7 +47,8 @@ public class MainActivity extends ActivityBase<ActivityMainBinding, MainActivity DrawerLayout drawerLayout; // Used to load the 'native-lib' library on application startup. - static { + static + { System.loadLibrary("opencv_java3"); System.loadLibrary("native-lib"); } @@ -65,23 +68,61 @@ public class MainActivity extends ActivityBase<ActivityMainBinding, MainActivity }); navigationProvider.navigateTo(NavigationFragment.Capture, false); + passOnCreate = true; } @Override - protected int getLayoutId() { + protected int getLayoutId() + { return R.layout.activity_main; } @Override - protected void inject() { + protected void inject() + { App.getComponent().inject(this); } - private void showHeader() { + private void showHeader() + { frameHeader.setVisibility(View.VISIBLE); } - private void hideHeader() { + private void hideHeader() + { frameHeader.setVisibility(View.GONE); } + + @Override + public void onBackPressed() + { + if (navigationProvider.canNavigateBack()) + { + navigationProvider.navigateBack(); + } + else + { + super.onBackPressed(); + } + } + + @Override + protected void onResume() + { + super.onResume(); + + if (!passOnCreate) + { + navigationProvider.notifyApplicationResume(); + } + + passOnCreate = false; + } + + @Override + protected void onDestroy() + { + navigationProvider.reset(); + super.onDestroy(); + } } diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/main/MainActivityVM.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/main/MainActivityVM.java index fb34e7edd..20905b94d 100644 --- a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/main/MainActivityVM.java +++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/main/MainActivityVM.java @@ -99,7 +99,7 @@ public class MainActivityVM extends ViewModelBase<IMainActivity> if (isMyColorsToggled.get()) { isMoreToggled.setNoCallback(false); isCaptureToggled.setNoCallback(false); - navigationProvider.navigateTo(NavigationFragment.MyColors,false); + navigationProvider.navigateTo(NavigationFragment.MyColors,true); } isMyColorsToggled.setNoCallback(true); } |
