72 lines
1.9 KiB
Java
72 lines
1.9 KiB
Java
package awais.instagrabber.customviews;
|
|
|
|
import android.view.ActionMode;
|
|
import android.view.Menu;
|
|
import android.view.MenuItem;
|
|
|
|
public class PrimaryActionModeCallback implements ActionMode.Callback {
|
|
private ActionMode mode;
|
|
private int menuRes;
|
|
private final Callbacks callbacks;
|
|
|
|
public PrimaryActionModeCallback(final int menuRes, final Callbacks callbacks) {
|
|
this.menuRes = menuRes;
|
|
this.callbacks = callbacks;
|
|
}
|
|
|
|
@Override
|
|
public boolean onCreateActionMode(final ActionMode mode, final Menu menu) {
|
|
this.mode = mode;
|
|
mode.getMenuInflater().inflate(menuRes, menu);
|
|
if (callbacks != null) {
|
|
callbacks.onCreate(mode, menu);
|
|
}
|
|
return true;
|
|
}
|
|
|
|
@Override
|
|
public boolean onPrepareActionMode(final ActionMode mode, final Menu menu) {
|
|
return false;
|
|
}
|
|
|
|
@Override
|
|
public boolean onActionItemClicked(final ActionMode mode, final MenuItem item) {
|
|
if (callbacks != null) {
|
|
return callbacks.onActionItemClicked(mode, item);
|
|
}
|
|
return false;
|
|
}
|
|
|
|
@Override
|
|
public void onDestroyActionMode(final ActionMode mode) {
|
|
if (callbacks != null) {
|
|
callbacks.onDestroy(mode);
|
|
}
|
|
this.mode = null;
|
|
}
|
|
|
|
public abstract static class CallbacksHelper implements Callbacks {
|
|
public void onCreate(final ActionMode mode, final Menu menu) {
|
|
|
|
}
|
|
|
|
@Override
|
|
public void onDestroy(final ActionMode mode) {
|
|
|
|
}
|
|
|
|
@Override
|
|
public boolean onActionItemClicked(final ActionMode mode, final MenuItem item) {
|
|
return false;
|
|
}
|
|
}
|
|
|
|
public interface Callbacks {
|
|
void onCreate(final ActionMode mode, final Menu menu);
|
|
|
|
void onDestroy(final ActionMode mode);
|
|
|
|
boolean onActionItemClicked(final ActionMode mode, final MenuItem item);
|
|
}
|
|
}
|