Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 786511ed authored by Joe Steele's avatar Joe Steele
Browse files

Simplify ClipboardManager

No longer API dependent.
parent 028f6f90
Loading
Loading
Loading
Loading
+11 −23
Original line number Diff line number Diff line
package com.fsck.k9.helper;

import android.content.ClipData;
import android.content.Context;
import android.os.Build;


/**
 * Helper class to access the system clipboard
 *
 * @see ClipboardManagerApi1
 * @see ClipboardManagerApi11
 */
public abstract class ClipboardManager {
    /**
     * Instance of the API-specific class that interfaces with the clipboard API.
 * Access the system clipboard using the new {@link ClipboardManager} introduced with API 11
 */
public class ClipboardManager {

    private static ClipboardManager sInstance = null;

    /**
     * Get API-specific instance of the {@code ClipboardManager} class
     *
     * @param context
     *         A {@link Context} instance.
     *
     * @return Appropriate {@link ClipboardManager} instance for this device.
     */
    public static ClipboardManager getInstance(Context context) {
        Context appContext = context.getApplicationContext();

        if (sInstance == null) {
            if (Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB) {
                sInstance = new ClipboardManagerApi1(appContext);
            } else {
                sInstance = new ClipboardManagerApi11(appContext);
            }
            sInstance = new ClipboardManager(appContext);
        }

        return sInstance;
@@ -59,5 +42,10 @@ public abstract class ClipboardManager {
     * @param text
     *         The actual text to be copied to the clipboard.
     */
    public abstract void setText(String label, String text);
    public void setText(String label, String text) {
        android.content.ClipboardManager clipboardManager =
                (android.content.ClipboardManager) mContext.getSystemService(Context.CLIPBOARD_SERVICE);
        ClipData clip = ClipData.newPlainText(label, text);
        clipboardManager.setPrimaryClip(clip);
    }
}
+0 −22
Original line number Diff line number Diff line
package com.fsck.k9.helper;

import android.content.Context;
import android.text.ClipboardManager;

/**
 * Access the system clipboard using the now deprecated {@link ClipboardManager}
 */
@SuppressWarnings("deprecation")
public class ClipboardManagerApi1 extends com.fsck.k9.helper.ClipboardManager {

    public ClipboardManagerApi1(Context context) {
        super(context);
    }

    @Override
    public void setText(String label, String text) {
        ClipboardManager clipboardManager =
                (ClipboardManager) mContext.getSystemService(Context.CLIPBOARD_SERVICE);
        clipboardManager.setText(text);
    }
}
+0 −25
Original line number Diff line number Diff line
package com.fsck.k9.helper;

import android.annotation.TargetApi;
import android.content.ClipData;
import android.content.Context;
import android.content.ClipboardManager;

/**
 * Access the system clipboard using the new {@link ClipboardManager} introduced with API 11
 */
@TargetApi(11)
public class ClipboardManagerApi11 extends com.fsck.k9.helper.ClipboardManager {

    public ClipboardManagerApi11(Context context) {
        super(context);
    }

    @Override
    public void setText(String label, String text) {
        ClipboardManager clipboardManager =
                (ClipboardManager) mContext.getSystemService(Context.CLIPBOARD_SERVICE);
        ClipData clip = ClipData.newPlainText(label, text);
        clipboardManager.setPrimaryClip(clip);
    }
}