com.android.ide.eclipse.installer.InstallAndroidSdk.java Source code

Java tutorial

Introduction

Here is the source code for com.android.ide.eclipse.installer.InstallAndroidSdk.java

Source

/*
 * Copyright (C) 2007 The Android Open Source Project
 *
 * Licensed under the Eclipse Public License, Version 1.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.eclipse.org/org/documents/epl-v10.php
 *
 * 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.
 */

package com.android.ide.eclipse.installer;

import com.android.ide.eclipse.adt.AdtPlugin;
import com.android.ide.eclipse.adt.AdtPlugin.CheckSdkErrorHandler;
import com.android.ide.eclipse.adt.installer.InstallSdkDialog;
import com.android.ide.eclipse.adt.internal.preferences.AdtPrefs;

import org.eclipse.jface.dialogs.Dialog;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.ui.IStartup;
import org.eclipse.ui.PlatformUI;

import java.io.File;

public class InstallAndroidSdk implements IStartup {

    public void earlyStartup() {
        if (!InstallerActivator.showMeInstaller()) {
            return;
        }
        String sdkDir = AdtPlugin.getDefault().getPreferenceStore().getString(AdtPrefs.PREFS_SDK_DIR);
        if (!isValidSdk(sdkDir)) {
            Display.getDefault().asyncExec(new Runnable() {

                public void run() {
                    Shell shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell();
                    Dialog dialog = new InstallSdkDialog(shell);
                    dialog.open();
                }
            });

        }
    }

    public static boolean isValidSdk(String directory) {
        if (directory == null || directory.trim().length() == 0) {
            return false;
        }

        if (!new File(directory).exists()) {
            return false;
        }

        return AdtPlugin.getDefault().checkSdkLocationAndId(directory, new CheckSdkErrorHandler() {
            @Override
            public boolean handleError(String message) {
                return false;
            }

            @Override
            public boolean handleWarning(String message) {
                return true;
            }
        });
    }

}