package com.smartisanos.sidebar.util;
import java.util.List;
import android.content.ClipboardManager;
import android.content.Context;
import android.content.CopyHistoryItem;
import android.content.IClipboardListener;
import android.os.RemoteException;
public class RecentClipManager extends DataManager implements IClear{
private volatile static RecentClipManager sInstance;
public synchronized static RecentClipManager getInstance(Context context){
if(sInstance == null){
synchronized(RecentClipManager.class){
if(sInstance == null){
sInstance = new RecentClipManager(context);
}
}
}
return sInstance;
}
private Context mContext;
private ClipboardManager mClipboard;
private RecentClipManager(Context context){
mContext = context;
mClipboard = (ClipboardManager)mContext.getSystemService(Context.CLIPBOARD_SERVICE);
mClipboard.registerListener(mListener);
}
public List<CopyHistoryItem> getCopyList(){
return mClipboard.getCopyHistory();
}
@Override
public void clear() {
synchronized(RecentClipManager.class){
mClipboard.clearCopyHistory();
}
}
private IClipboardListener mListener = new IClipboardListener.Stub() {
@Override
public void onCopyHistoryChanged() throws RemoteException {
notifyListener();
}
};
public void refresh() {
notifyListener();
}
}