Java tutorial
/* * Copyright (C) 2012 - 2013 Niall 'Rivernile' Scott * * This software is provided 'as-is', without any express or implied * warranty. In no event will the authors or contributors be held liable for * any damages arising from the use of this software. * * The aforementioned copyright holder(s) hereby grant you a * non-transferrable right to use this software for any purpose (including * commercial applications), and to modify it and redistribute it, subject to * the following conditions: * * 1. This notice may not be removed or altered from any file it appears in. * * 2. Any modifications made to this software, except those defined in * clause 3 of this agreement, must be released under this license, and * the source code of any modifications must be made available on a * publically accessible (and locateable) website, or sent to the * original author of this software. * * 3. Software modifications that do not alter the functionality of the * software but are simply adaptations to a specific environment are * exempt from clause 2. */ package uk.org.rivernile.edinburghbustracker.android.fragments.dialogs; import android.app.Activity; import android.app.Dialog; import android.app.ProgressDialog; import android.content.DialogInterface; import android.os.Bundle; import android.support.v4.app.DialogFragment; /** * This DialogFragment contains an indeterminate progress Dialog. It is up to * whatever uses this Dialog to specify what message is display to the user. * * @author Niall Scott */ public class IndeterminateProgressDialogFragment extends DialogFragment { private static final String ARG_MESSAGE = "message"; private Callbacks callbacks; /** * Create a new instance of this DialogFragment, specifying the listener * callback and the message to display to the user. * * @param message The message to display to the user. * @return A new instance of this DialogFragment. */ public static IndeterminateProgressDialogFragment newInstance(final String message) { final IndeterminateProgressDialogFragment f = new IndeterminateProgressDialogFragment(); final Bundle b = new Bundle(); b.putString(ARG_MESSAGE, message); f.setArguments(b); return f; } /** * {@inheritDoc} */ @Override public void onAttach(final Activity activity) { super.onAttach(activity); try { callbacks = (Callbacks) activity; } catch (ClassCastException e) { throw new IllegalStateException( activity.getClass().getName() + " does not implement " + Callbacks.class.getName()); } } /** * {@inheritDoc} */ @Override public Dialog onCreateDialog(final Bundle savedInstanceState) { final ProgressDialog d = new ProgressDialog(getActivity()); d.setProgressStyle(ProgressDialog.STYLE_SPINNER); d.setCancelable(true); d.setMessage(getArguments().getString(ARG_MESSAGE)); return d; } /** * {@inheritDoc} */ @Override public void onCancel(final DialogInterface di) { super.onCancel(di); callbacks.onProgressCancel(); } /** * The EventListener is an interface that any class which wants callbacks * from this Fragment should implement. */ public interface Callbacks { /** * When the user cancels this DialogFragment, this method is called upon * the event listener. */ public void onProgressCancel(); } }