package org.wikipedia.page; import android.content.Context; import android.os.Bundle; import android.support.annotation.NonNull; import android.support.design.widget.BottomSheetBehavior; import android.support.design.widget.BottomSheetDialog; import android.widget.FrameLayout; import org.wikipedia.WikipediaApp; /** * Descendant of BottomSheetDialog that prevents the background from being dimmed. */ public class NoDimBottomSheetDialog extends BottomSheetDialog { public NoDimBottomSheetDialog(@NonNull Context context) { super(context); } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); getWindow().setDimAmount(0f); } @Override public void onStop() { super.onStop(); WikipediaApp.getInstance().getRefWatcher().watch(this); } protected void startExpanded() { /* HACK: We'd like some of our bottom sheets to be fully expanded when opened (as opposed to expanded to the peek height). In order to do this, however, we have to call setState() only *after* the dialog is created and laid out. https://code.google.com/p/android/issues/detail?id=202174 TODO: remove when this is improved in the library. */ getWindow().getDecorView().post(new Runnable() { @Override public void run() { FrameLayout bottomSheet = (FrameLayout) getWindow().getDecorView().findViewById(android.support.design.R.id.design_bottom_sheet); BottomSheetBehavior<?> behavior = BottomSheetBehavior.from(bottomSheet); behavior.setState(BottomSheetBehavior.STATE_EXPANDED); } }); } }