/* * 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); } }