Project: Android
/*
 * Copyright 2012 GitHub Inc. 
 * 
 * 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. 
 */
package com.github.mobile.ui; 
 
import static android.os.Build.VERSION.SDK_INT; 
import static android.os.Build.VERSION_CODES.FROYO; 
import static android.os.Build.VERSION_CODES.ICE_CREAM_SANDWICH; 
import android.app.AlertDialog; 
import android.app.ProgressDialog; 
import android.content.Context; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.widget.TextView; 
 
import com.github.mobile.R.drawable; 
import com.github.mobile.R.id; 
import com.github.mobile.R.layout; 
 
/**
 * Progress dialog in Holo Light theme 
 */
 
public class LightProgressDialog extends ProgressDialog { 
 
    /**
     * Create progress dialog 
     * 
     * @param context 
     * @param resId 
     * @return dialog 
     */
 
    public static AlertDialog create(Context context, int resId) { 
        return create(context, context.getResources().getString(resId)); 
    } 
 
    /**
     * Create progress dialog 
     * 
     * @param context 
     * @param message 
     * @return dialog 
     */
 
    public static AlertDialog create(Context context, CharSequence message) { 
        if (SDK_INT > FROYO) { 
            ProgressDialog dialog; 
            if (SDK_INT >= ICE_CREAM_SANDWICH) 
                dialog = new LightProgressDialog(context, message); 
            else { 
                dialog = new ProgressDialog(context); 
                dialog.setInverseBackgroundForced(true); 
            } 
            dialog.setMessage(message); 
            dialog.setIndeterminate(true); 
            dialog.setProgressStyle(STYLE_SPINNER); 
            dialog.setIndeterminateDrawable(context.getResources().getDrawable( 
                    drawable.spinner)); 
            return dialog; 
        } else { 
            AlertDialog dialog = LightAlertDialog.create(context); 
            dialog.setInverseBackgroundForced(true); 
            View view = LayoutInflater.from(context).inflate( 
                    layout.progress_dialog, null); 
            ((TextView) view.findViewById(id.tv_loading)).setText(message); 
            dialog.setView(view); 
            return dialog; 
        } 
    } 
 
    private LightProgressDialog(Context context, CharSequence message) { 
        super(context, THEME_HOLO_LIGHT); 
    } 
}