package com.reactnativenavigation.views; import android.content.Context; import android.graphics.drawable.Drawable; import android.os.AsyncTask; import android.support.v7.widget.Toolbar; import android.util.AttributeSet; import android.view.Menu; import android.view.MenuItem; import com.reactnativenavigation.activities.BaseReactActivity; import com.reactnativenavigation.core.objects.Button; import com.reactnativenavigation.core.objects.Screen; import com.reactnativenavigation.utils.ContextProvider; import java.lang.ref.WeakReference; import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; /** * Created by guyc on 09/04/16. */ public class RnnToolBar extends Toolbar { private List mScreens; private AsyncTask mSetupToolbarTask; public RnnToolBar(Context context) { super(context); } public RnnToolBar(Context context, AttributeSet attrs) { super(context, attrs); } public RnnToolBar(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); } public void setScreens(List screens) { mScreens = screens; } public void handleOnCreateOptionsMenuAsync() { setupToolbarButtonsAsync(mScreens.get(0)); } public void setupToolbarButtonsAsync(Screen screen) { if (mSetupToolbarTask == null) { mSetupToolbarTask = new SetupToolbarButtonsTask(this, screen).execute(); } } @SuppressWarnings({"ConstantConditions"}) public void showBackButton() { ContextProvider.getActivityContext().getSupportActionBar().setDisplayHomeAsUpEnabled(true); } @SuppressWarnings({"ConstantConditions"}) public void hideBackButton() { ContextProvider.getActivityContext().getSupportActionBar().setDisplayHomeAsUpEnabled(false); } private static class SetupToolbarButtonsTask extends AsyncTask> { private final List