92 lines
2.8 KiB
Java
92 lines
2.8 KiB
Java
package androidx.core.view;
|
|
|
|
import android.content.Context;
|
|
import android.util.Log;
|
|
import android.view.MenuItem;
|
|
import android.view.SubMenu;
|
|
import android.view.View;
|
|
import androidx.annotation.RestrictTo;
|
|
import c.d.b.a.a;
|
|
public abstract class ActionProvider {
|
|
private static final String TAG = "ActionProvider(support)";
|
|
private final Context mContext;
|
|
private SubUiVisibilityListener mSubUiVisibilityListener;
|
|
private VisibilityListener mVisibilityListener;
|
|
|
|
@RestrictTo({RestrictTo.Scope.LIBRARY_GROUP_PREFIX})
|
|
public interface SubUiVisibilityListener {
|
|
void onSubUiVisibilityChanged(boolean z2);
|
|
}
|
|
|
|
public interface VisibilityListener {
|
|
void onActionProviderVisibilityChanged(boolean z2);
|
|
}
|
|
|
|
public ActionProvider(Context context) {
|
|
this.mContext = context;
|
|
}
|
|
|
|
public Context getContext() {
|
|
return this.mContext;
|
|
}
|
|
|
|
public boolean hasSubMenu() {
|
|
return false;
|
|
}
|
|
|
|
public boolean isVisible() {
|
|
return true;
|
|
}
|
|
|
|
public abstract View onCreateActionView();
|
|
|
|
public View onCreateActionView(MenuItem menuItem) {
|
|
return onCreateActionView();
|
|
}
|
|
|
|
public boolean onPerformDefaultAction() {
|
|
return false;
|
|
}
|
|
|
|
public void onPrepareSubMenu(SubMenu subMenu) {
|
|
}
|
|
|
|
public boolean overridesItemVisibility() {
|
|
return false;
|
|
}
|
|
|
|
public void refreshVisibility() {
|
|
if (this.mVisibilityListener != null && overridesItemVisibility()) {
|
|
this.mVisibilityListener.onActionProviderVisibilityChanged(isVisible());
|
|
}
|
|
}
|
|
|
|
@RestrictTo({RestrictTo.Scope.LIBRARY_GROUP_PREFIX})
|
|
public void reset() {
|
|
this.mVisibilityListener = null;
|
|
this.mSubUiVisibilityListener = null;
|
|
}
|
|
|
|
@RestrictTo({RestrictTo.Scope.LIBRARY_GROUP_PREFIX})
|
|
public void setSubUiVisibilityListener(SubUiVisibilityListener subUiVisibilityListener) {
|
|
this.mSubUiVisibilityListener = subUiVisibilityListener;
|
|
}
|
|
|
|
public void setVisibilityListener(VisibilityListener visibilityListener) {
|
|
if (!(this.mVisibilityListener == null || visibilityListener == null)) {
|
|
StringBuilder L = a.L("setVisibilityListener: Setting a new ActionProvider.VisibilityListener when one is already set. Are you reusing this ");
|
|
L.append(getClass().getSimpleName());
|
|
L.append(" instance while it is still in use somewhere else?");
|
|
Log.w("ActionProvider(support)", L.toString());
|
|
}
|
|
this.mVisibilityListener = visibilityListener;
|
|
}
|
|
|
|
@RestrictTo({RestrictTo.Scope.LIBRARY_GROUP_PREFIX})
|
|
public void subUiVisibilityChanged(boolean z2) {
|
|
SubUiVisibilityListener subUiVisibilityListener = this.mSubUiVisibilityListener;
|
|
if (subUiVisibilityListener != null) {
|
|
subUiVisibilityListener.onSubUiVisibilityChanged(z2);
|
|
}
|
|
}
|
|
}
|