Main.java Source code

Java tutorial

Introduction

Here is the source code for Main.java

Source

//package com.java2s;
/*******************************************************************************
 * Copyright 2007 The Android Open Source Project
 * 
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 *   http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 ******************************************************************************/

import android.annotation.SuppressLint;
import android.content.ClipData;

import android.content.ClipDescription;
import android.content.ClipboardManager;
import android.content.Context;

public class Main {
    public static final String EMPTY_STRING = "";

    /**
     * 
     * @param context The context, required to get the Cliboard System Service.
     * @param oldAPI Set to true when running API level lower than Honeycomb
     * @return The last text copied to the clipboard by the user. 
     */
    public static String getLastClip(final Context context, boolean oldAPI) {

        final String clip;

        if (oldAPI) {
            clip = getTextFromClipboard(context);
        } else {
            clip = getItemFromCliboard(context);
        }

        return clip;

    }

    /**
     * This is only called when we are on API level < Honeycomb
     * @param context The context, required to get the Cliboard System Service.  
     * @return Returns the latest text copied to the clipboard by the user
     */
    @SuppressWarnings("deprecation")
    private static String getTextFromClipboard(final Context context) {
        android.text.ClipboardManager manager = (android.text.ClipboardManager) context
                .getSystemService(Context.CLIPBOARD_SERVICE);
        String text = (String) manager.getText(); //Yep, that much simpler. 
        if (text == null)
            text = EMPTY_STRING;
        return text;
    }

    /**
     * This is only called when we are on API level > Honeycomb
     * @param context The context, required to get the Cliboard System Service. 
     * @return Returns the latest item added to the clipboard by the user, as long as the {@code MimeType} is {@code MIMETYPE_TEXT_PLAIN}
     */
    @SuppressLint("NewApi")
    public static String getItemFromCliboard(final Context context) {
        ClipboardManager manager = (ClipboardManager) context.getSystemService(Context.CLIPBOARD_SERVICE);
        final ClipData data = manager.getPrimaryClip();

        if (data == null) { //If no data on clipboard, let's call it a day. 
            return EMPTY_STRING;
        }

        final String clipItem;

        if (data.getDescription().hasMimeType(ClipDescription.MIMETYPE_TEXT_PLAIN)) {
            ClipData.Item item = data.getItemAt(0);
            clipItem = item.getText().toString();
        }

        else {
            clipItem = EMPTY_STRING;
        }

        return clipItem;

    }
}