package com.thefinestartist.utils.service; import android.content.ClipData; import android.content.ClipDescription; import android.content.ClipboardManager; import com.thefinestartist.utils.etc.APILevel; /** * ClipboardManagerUtil helps to manage {@link ClipboardManager} conveniently. * * @author Leonardo Taehwan Kim */ public class ClipboardManagerUtil { public static void setText(CharSequence text) { android.text.ClipboardManager clipboardManager = ServiceUtil.getClipboardManager(); if (APILevel.require(11)) { ClipboardManager cm = (ClipboardManager) clipboardManager; ClipData clip = ClipData.newPlainText("ClipboardManagerUtil", text); cm.setPrimaryClip(clip); } else { clipboardManager.setText(text); } } public static boolean hasText() { android.text.ClipboardManager clipboardManager = ServiceUtil.getClipboardManager(); if (APILevel.require(11)) { ClipboardManager cm = (ClipboardManager) clipboardManager; ClipDescription description = cm.getPrimaryClipDescription(); ClipData clipData = cm.getPrimaryClip(); return clipData != null && description != null && (description.hasMimeType(ClipDescription.MIMETYPE_TEXT_PLAIN)); } else { return clipboardManager.hasText(); } } public static CharSequence getText() { android.text.ClipboardManager clipboardManager = ServiceUtil.getClipboardManager(); if (APILevel.require(11)) { ClipboardManager cm = (ClipboardManager) clipboardManager; ClipDescription description = cm.getPrimaryClipDescription(); ClipData clipData = cm.getPrimaryClip(); if (clipData != null && description != null && description.hasMimeType(ClipDescription.MIMETYPE_TEXT_PLAIN)) return clipData.getItemAt(0).getText(); else return null; } else { return clipboardManager.getText(); } } }