package com.forfan.bigbang.clipboard;
import android.content.Context;
import android.os.Build;
import java.util.ArrayList;
public abstract class ClipboardManagerCompat {
protected final ArrayList<OnPrimaryClipChangedListener> mPrimaryClipChangedListeners
= new ArrayList<OnPrimaryClipChangedListener>();
public static ClipboardManagerCompat create(Context context) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
return new ClipboardManagerImpl11(context);
} else {
return new ClipboardManagerImpl9(context);
}
}
public void addPrimaryClipChangedListener(OnPrimaryClipChangedListener listener) {
synchronized (mPrimaryClipChangedListeners) {
if (!mPrimaryClipChangedListeners.contains(listener))
mPrimaryClipChangedListeners.add(listener);
}
}
protected final void notifyPrimaryClipChanged() {
synchronized (mPrimaryClipChangedListeners) {
for (int i = 0; i < mPrimaryClipChangedListeners.size(); i++) {
mPrimaryClipChangedListeners.get(i).onPrimaryClipChanged();
}
}
}
public void removePrimaryClipChangedListener(OnPrimaryClipChangedListener listener) {
synchronized (mPrimaryClipChangedListeners) {
mPrimaryClipChangedListeners.remove(listener);
}
}
public abstract CharSequence getText();
public interface OnPrimaryClipChangedListener {
void onPrimaryClipChanged();
}
}