Browse Source

Update Toolbar with correct screen after pop from modal

Guy Carmeli 8 years ago
parent
commit
f819ebe32e

+ 4
- 1
android/app/src/main/java/com/reactnativenavigation/modal/RnnModal.java View File

73
         if (mScreenStack.isEmpty()) {
73
         if (mScreenStack.isEmpty()) {
74
             dismiss();
74
             dismiss();
75
         }
75
         }
76
-        mToolBar.update(popped);
76
+        Screen currentScreen = getCurrentScreen();
77
+        if (currentScreen != null) {
78
+            mToolBar.update(currentScreen);
79
+        }
77
         return popped;
80
         return popped;
78
     }
81
     }
79
 
82
 

+ 4
- 3
android/app/src/main/java/com/reactnativenavigation/views/RnnToolBar.java View File

7
 import android.graphics.drawable.Drawable;
7
 import android.graphics.drawable.Drawable;
8
 import android.os.AsyncTask;
8
 import android.os.AsyncTask;
9
 import android.support.annotation.ColorInt;
9
 import android.support.annotation.ColorInt;
10
+import android.support.annotation.NonNull;
10
 import android.support.annotation.UiThread;
11
 import android.support.annotation.UiThread;
11
 import android.support.v4.content.ContextCompat;
12
 import android.support.v4.content.ContextCompat;
12
 import android.support.v4.content.res.ResourcesCompat;
13
 import android.support.v4.content.res.ResourcesCompat;
111
     }
112
     }
112
 
113
 
113
     private void showToolbar() {
114
     private void showToolbar() {
114
-        ActionBar actionBar = ContextProvider.getActivityContext().getSupportActionBar();
115
+        ActionBar actionBar = ((AppCompatActivity) getContext()).getSupportActionBar();
115
         if (actionBar != null) {
116
         if (actionBar != null) {
116
             actionBar.show();
117
             actionBar.show();
117
         }
118
         }
118
     }
119
     }
119
 
120
 
120
     private void hideToolbar() {
121
     private void hideToolbar() {
121
-        ActionBar actionBar = ContextProvider.getActivityContext().getSupportActionBar();
122
+        ActionBar actionBar = ((AppCompatActivity) getContext()).getSupportActionBar();
122
         if (actionBar != null) {
123
         if (actionBar != null) {
123
             actionBar.hide();
124
             actionBar.hide();
124
         }
125
         }
161
      * @param screen The currently displayed screen
162
      * @param screen The currently displayed screen
162
      */
163
      */
163
     @UiThread
164
     @UiThread
164
-    public void update(Screen screen) {
165
+    public void update(@NonNull Screen screen) {
165
         ((AppCompatActivity) getContext()).setSupportActionBar(this);
166
         ((AppCompatActivity) getContext()).setSupportActionBar(this);
166
         setTitle(screen.title);
167
         setTitle(screen.title);
167
         setStyle(screen);
168
         setStyle(screen);