package com.stardust.scriptdroid.ui.edit.sidemenu; import android.content.Intent; import android.os.Bundle; import android.support.annotation.Nullable; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.SwitchCompat; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import com.stardust.app.Fragment; import com.stardust.scriptdroid.external.floatingwindow.FloatingWindowManger; import com.stardust.scriptdroid.external.floatingwindow.menu.HoverMenuService; import com.stardust.view.ViewBinding; import com.stardust.scriptdroid.R; import com.stardust.scriptdroid.ui.console.LogActivity; import com.stardust.scriptdroid.ui.help.HelpCatalogueActivity; import com.stardust.view.ViewBinder; import org.greenrobot.eventbus.EventBus; import org.greenrobot.eventbus.Subscribe; /** * Created by Stardust on 2017/2/4. */ public class EditSideMenuFragment extends Fragment { private FunctionListRecyclerView.OnFunctionClickListener mOnFunctionClickListener; public static EditSideMenuFragment setFragment(AppCompatActivity activity, int viewId) { EditSideMenuFragment fragment = new EditSideMenuFragment(); activity.getSupportFragmentManager().beginTransaction().replace(viewId, fragment).commit(); return fragment; } private SwitchCompat mFloatingWindowSwitch; @Override public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); EventBus.getDefault().register(this); } @Nullable @Override public View createView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { return inflater.inflate(R.layout.fragment_edit_side_menu, container, false); } @Override public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); setUpUI(); } @Override public void onStart() { super.onStart(); syncSwitchState(); } private void setUpUI() { setUpSwitchCompat(); setUpFunctionList(); ViewBinder.bind(this); } private void setUpFunctionList() { FunctionListRecyclerView functionListRecyclerView = $(R.id.function_list); functionListRecyclerView.setOnFunctionClickListener(mOnFunctionClickListener); } private void syncSwitchState() { mFloatingWindowSwitch.setChecked(FloatingWindowManger.isHoverMenuShowing()); } private void setUpSwitchCompat() { mFloatingWindowSwitch = $(R.id.sw_floating_window); } @ViewBinding.Click(R.id.syntax_and_api) private void startSyntaxHelpActivity() { HelpCatalogueActivity.showMainCatalogue(getActivity()); } @ViewBinding.Click(R.id.console) private void startConsoleActivity() { startActivity(new Intent(getContext(), LogActivity.class).addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)); } @ViewBinding.Check(R.id.sw_floating_window) private void setFloatingWindowEnable(boolean enable) { if (enable && !FloatingWindowManger.isHoverMenuShowing()) { FloatingWindowManger.showHoverMenu(); } else if (!enable && FloatingWindowManger.isHoverMenuShowing()) { FloatingWindowManger.hideHoverMenu(); } } @ViewBinding.Click(R.id.floating_window) private void toggleAssistServiceSwitch() { mFloatingWindowSwitch.toggle(); } public EditSideMenuFragment setOnFunctionClickListener(FunctionListRecyclerView.OnFunctionClickListener onFunctionClickListener) { mOnFunctionClickListener = onFunctionClickListener; return this; } @Subscribe public void onHoverMenuServiceStateChanged(HoverMenuService.ServiceStateChangedEvent event) { mFloatingWindowSwitch.setChecked(event.state); } @Override public void onDestroy() { super.onDestroy(); EventBus.getDefault().unregister(this); } }