123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- package com.reactnativenavigation.controllers;
-
- import android.content.Intent;
- import android.os.Bundle;
-
- import com.reactnativenavigation.NavigationApplication;
- import com.reactnativenavigation.params.ActivityParams;
- import com.reactnativenavigation.params.ScreenParams;
- import com.reactnativenavigation.params.parsers.ActivityParamsParser;
- import com.reactnativenavigation.params.parsers.ScreenParamsParser;
-
- public class NavigationCommandsHandler {
-
- private static final String ACTIVITY_PARAMS_BUNDLE = "ACTIVITY_PARAMS_BUNDLE";
-
- static ActivityParams getActivityParams(Intent intent) {
- return ActivityParamsParser.parse(intent.getBundleExtra(NavigationCommandsHandler.ACTIVITY_PARAMS_BUNDLE));
- }
-
- /**
- * start a new activity with CLEAR_TASK | NEW_TASK
- *
- * @param params ActivityParams as bundle
- */
- public static void startApp(Bundle params) {
- Intent intent = new Intent(NavigationApplication.instance, NavigationActivity.class);
- intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
- intent.putExtra(ACTIVITY_PARAMS_BUNDLE, params);
- NavigationApplication.instance.startActivity(intent);
- }
-
- public static void push(Bundle screenParams) {
- final NavigationActivity currentActivity = NavigationActivity.currentActivity;
- if (currentActivity == null) {
- return;
- }
-
- final ScreenParams params = ScreenParamsParser.parse(screenParams);
- NavigationApplication.instance.runOnMainThread(new Runnable() {
- @Override
- public void run() {
- currentActivity.push(params);
- }
- });
- }
-
-
- public static void pop(Bundle screenParams) {
- final NavigationActivity currentActivity = NavigationActivity.currentActivity;
- if (currentActivity == null) {
- return;
- }
-
- final ScreenParams params = ScreenParamsParser.parse(screenParams);
- NavigationApplication.instance.runOnMainThread(new Runnable() {
- @Override
- public void run() {
- currentActivity.pop(params);
- }
- });
- }
-
- public static void popToRoot(Bundle screenParams) {
- final NavigationActivity currentActivity = NavigationActivity.currentActivity;
- if (currentActivity == null) {
- return;
- }
-
- final ScreenParams params = ScreenParamsParser.parse(screenParams);
- NavigationApplication.instance.runOnMainThread(new Runnable() {
- @Override
- public void run() {
- currentActivity.popToRoot(params);
- }
- });
- }
-
- public static void newStack(Bundle screenParams) {
- final NavigationActivity currentActivity = NavigationActivity.currentActivity;
- if (currentActivity == null) {
- return;
- }
-
- final ScreenParams params = ScreenParamsParser.parse(screenParams);
- NavigationApplication.instance.runOnMainThread(new Runnable() {
- @Override
- public void run() {
- currentActivity.newStack(params);
- }
- });
- }
-
- public static void setTopBarVisible(final String screenInstanceID, final boolean hidden, final boolean animated) {
- final NavigationActivity currentActivity = NavigationActivity.currentActivity;
- if (currentActivity == null) {
- return;
- }
-
- NavigationApplication.instance.runOnMainThread(new Runnable() {
- @Override
- public void run() {
- currentActivity.setTopBarVisible(screenInstanceID, hidden, animated);
- }
- });
- }
- }
|