import android.support.v4.app.FragmentActivity;\r
\r
public class OpenRocketLoaderActivity extends FragmentActivity\r
-implements TCQueryAction.OnComplete, OpenRocketLoaderFragment.OnOpenRocketFileLoaded\r
+implements TCQueryAction.OnTCQueryCompleteListener, OpenRocketLoaderFragment.OnOpenRocketFileLoaded\r
{\r
\r
private final static String MISSING_MOTOR_DIAG_FRAGMENT_TAG = "missingmotordialog";\r
+ private final static String MISSING_MOTOR_DOWNLOAD_FRAGMENT_TAG = "missingmotortask";\r
\r
- private TCMissingMotorDownloadAction missingMotorDownloadAction;\r
-\r
@Override\r
protected void onCreate(Bundle savedInstanceState) {\r
super.onCreate(savedInstanceState);\r
setContentView(R.layout.main);\r
- missingMotorDownloadAction = new TCMissingMotorDownloadAction(this);\r
if ( savedInstanceState == null || savedInstanceState.getBoolean("isLoading", false) == false ) {\r
Intent i = getIntent();\r
Uri file = i.getData();\r
outState.putBoolean("isLoading", true);\r
}\r
\r
- @Override\r
- protected void onDestroy() {\r
- if ( missingMotorDownloadAction != null ) {\r
- missingMotorDownloadAction.dismiss();\r
- }\r
-\r
- super.onDestroy();\r
- }\r
-\r
private void loadOrkFile( Uri file ) {\r
AndroidLogWrapper.d(OpenRocketLoaderActivity.class,"Use ork file: " + file);\r
String path = file.getPath();\r
* Called when the TCMissingMotorDownload process finishes.\r
*/\r
@Override\r
- public void onComplete() {\r
+ public void onTCQueryComplete(String message) {\r
\r
Rocket rocket = ((Application)OpenRocketLoaderActivity.this.getApplication()).getRocketDocument().getRocket();\r
WarningSet warnings = ((Application)OpenRocketLoaderActivity.this.getApplication()).getWarnings();\r
Rocket rocket = ((Application)OpenRocketLoaderActivity.this.getApplication()).getRocketDocument().getRocket();\r
Set<ThrustCurveMotorPlaceholder> missingMotors = MissingMotorHelpers.findMissingMotors(rocket);\r
\r
- missingMotorDownloadAction.setMissingMotors(missingMotors);\r
- missingMotorDownloadAction.start();\r
+ TCMissingMotorDownloadAction motorfrag = TCMissingMotorDownloadAction.newInstance( missingMotors );\r
+ getSupportFragmentManager().beginTransaction().add( motorfrag, MISSING_MOTOR_DOWNLOAD_FRAGMENT_TAG).commit();\r
\r
}\r
\r
\r
import java.util.Set;\r
\r
-import net.sf.openrocket.android.motor.ExtendedThrustCurveMotor;\r
import net.sf.openrocket.android.util.AndroidLogWrapper;\r
import net.sf.openrocket.motor.ThrustCurveMotorPlaceholder;\r
-import android.app.Activity;\r
\r
public class TCMissingMotorDownloadAction extends TCQueryAction {\r
\r
- private Set<ThrustCurveMotorPlaceholder> missingMotors;\r
-\r
- public TCMissingMotorDownloadAction(Activity parent) {\r
- super(parent);\r
- }\r
-\r
- public void setMissingMotors( Set<ThrustCurveMotorPlaceholder> missingMotors ) {\r
- this.missingMotors = missingMotors;\r
- }\r
-\r
- protected Runnable getTask() {\r
- return new Downloader();\r
+ public static TCMissingMotorDownloadAction newInstance( Set<ThrustCurveMotorPlaceholder> missingMotors ) {\r
+ TCMissingMotorDownloadAction frag = new TCMissingMotorDownloadAction();\r
+ frag.task = frag.new Downloader(missingMotors);\r
+ return frag;\r
}\r
\r
- private class Downloader implements Runnable {\r
+ private class Downloader extends TCQueryAction.TCQueryTask {\r
\r
+ private Set<ThrustCurveMotorPlaceholder> missingMotors;\r
+ \r
+ private Downloader( Set<ThrustCurveMotorPlaceholder> missingMotors ) {\r
+ this.missingMotors = missingMotors;\r
+ }\r
+ \r
private void downloadMissingMotor( ThrustCurveMotorPlaceholder motor ) {\r
try {\r
SearchRequest request = new SearchRequest();\r
continue;\r
}\r
\r
- MotorBurnFile b = new ThrustCurveAPI().downloadData(mi.getMotor_id());\r
-\r
AndroidLogWrapper.d(TCQueryAction.class, mi.toString());\r
\r
- ExtendedThrustCurveMotor m = new ExtendedThrustCurveMotor();\r
-\r
- m.setThrustCurveMotor( b.getThrustCurveMotor() );\r
-\r
- // Convert impulse class. ThrustCurve puts mmx, 1/4a and 1/2a as A.\r
- m.setImpulseClass(mi.getImpulse_class());\r
- if ( "a".equalsIgnoreCase(mi.getImpulse_class())) {\r
- if( mi.getCommon_name().startsWith("1/2A") ) {\r
- m.setImpulseClass("1/2A");\r
- } else if (mi.getCommon_name().startsWith("1/4A") ) {\r
- m.setImpulseClass("1/4A");\r
- } else if (mi.getCommon_name().startsWith("Micro") ) {\r
- m.setImpulseClass("1/8A");\r
- }\r
- }\r
+ MotorBurnFile b = new ThrustCurveAPI().downloadData(mi.getMotor_id());\r
\r
- // Convert Case Info.\r
- if ( mi.getCase_info() == null\r
- || "single use".equalsIgnoreCase(mi.getCase_info())\r
- || "single-use".equalsIgnoreCase(mi.getCase_info())) {\r
- m.setCaseInfo(mi.getType()+ " " + mi.getDiameter() + "x" + mi.getLength());\r
- } else {\r
- m.setCaseInfo(mi.getCase_info());\r
- }\r
+ writeMotor( mi, b);\r
\r
- AndroidLogWrapper.d(TCQueryAction.class,"adding motor " + m.toString());\r
- // Write motor.\r
- mDbHelper.getMotorDao().insertOrUpdateMotor(m);\r
}\r
}\r
catch( Exception ex){\r
AndroidLogWrapper.d(TCQueryAction.class,ex.toString());\r
- handler.post( new Error(ex.toString()) );\r
+ handler.post( new UpdateMessage("Failed") );\r
+\r
}\r
\r
}\r
\r
- @Override\r
- public void run() {\r
- for ( ThrustCurveMotorPlaceholder motor : missingMotors ) {\r
- AndroidLogWrapper.d(TCMissingMotorDownloadAction.class, "Motor: {}", motor);\r
- downloadMissingMotor(motor);\r
+ @Override\r
+ protected String doInBackground(Void... arg0) {\r
+ for ( ThrustCurveMotorPlaceholder motor : missingMotors ) {\r
+ AndroidLogWrapper.d(TCMissingMotorDownloadAction.class, "Motor: {}", motor);\r
+ downloadMissingMotor(motor);\r
+ }\r
+ dismiss();\r
+ return null;\r
}\r
- handler.post( new Dismiss() );\r
+\r
}\r
-}\r
\r
}\r
package net.sf.openrocket.android.thrustcurve;\r
\r
import net.sf.openrocket.android.db.DbAdapter;\r
+import net.sf.openrocket.android.motor.ExtendedThrustCurveMotor;\r
+import net.sf.openrocket.android.util.AndroidLogWrapper;\r
+import net.sf.openrocket.android.util.ProgressDialogFragment;\r
import android.app.Activity;\r
-import android.app.AlertDialog;\r
-import android.app.ProgressDialog;\r
-import android.content.DialogInterface;\r
+import android.os.AsyncTask;\r
+import android.os.Bundle;\r
import android.os.Handler;\r
+import android.support.v4.app.DialogFragment;\r
+import android.support.v4.app.Fragment;\r
+import android.view.LayoutInflater;\r
+import android.view.View;\r
+import android.view.ViewGroup;\r
\r
/**\r
* TCQueryAction is a class which provides all the functionality required\r
* When the parent Activity is dismissed, it must call TCQueryAction.dismiss() to free resources.\r
* \r
*/\r
-public abstract class TCQueryAction {\r
+public abstract class TCQueryAction extends Fragment {\r
\r
- public interface OnComplete {\r
- public void onComplete();\r
- }\r
+ private final static String PROGRESS_DIALOG_TAG = "progress_dialog";\r
\r
- protected DbAdapter mDbHelper;\r
+ public interface OnTCQueryCompleteListener {\r
+ public void onTCQueryComplete(String message);\r
+ }\r
\r
- private ProgressDialog progress;\r
- private Thread downloadThread;\r
+ protected AsyncTask<Void,Void,String> task;\r
protected Handler handler;\r
\r
- private final Activity parent;\r
- private OnComplete onCompleteListener;\r
-\r
- /**\r
- * Create a new TCQueryAction.\r
- * \r
- * If the parent implements TCQueryAction.OnComplete, it will be used as the\r
- * onCompleteListener and notified when the process is finished.\r
- * \r
- * @param parent\r
- */\r
- public TCQueryAction( Activity parent ) {\r
- this.parent = parent;\r
-\r
- mDbHelper = new DbAdapter(this.parent);\r
- mDbHelper.open();\r
+ private OnTCQueryCompleteListener onCompleteListener;\r
\r
- if (parent instanceof OnComplete ) {\r
- this.onCompleteListener = (OnComplete) parent;\r
+ @Override\r
+ public void onCreate(Bundle savedInstanceState) {\r
+ super.onCreate(savedInstanceState);\r
+ setRetainInstance(true);\r
+ handler = new Handler();\r
+ if ( savedInstanceState == null ) {\r
+ // this means we are starting for the first time.\r
+ task.execute((Void)null);\r
}\r
}\r
\r
- public void setOnCompleteListener(OnComplete onCompleteListener) {\r
- this.onCompleteListener = onCompleteListener;\r
+\r
+ @Override\r
+ public View onCreateView(LayoutInflater inflater, ViewGroup container,\r
+ Bundle savedInstanceState) {\r
+ return null;\r
}\r
\r
- protected abstract Runnable getTask();\r
- \r
- public void start() {\r
- handler = new Handler();\r
- progress = ProgressDialog.show(parent, null, "");\r
+ @Override\r
+ public void onActivityCreated(Bundle arg0) {\r
+ super.onActivityCreated(arg0);\r
+ Activity parent = getActivity();\r
+ if ( parent instanceof OnTCQueryCompleteListener ) {\r
+ onCompleteListener = (OnTCQueryCompleteListener) parent;\r
+ }\r
+ }\r
\r
- downloadThread = new Thread( getTask() );\r
- downloadThread.start();\r
+ /**\r
+ * The return value is a message string which may be displayed by the caller.\r
+ *\r
+ */\r
+ protected abstract class TCQueryTask extends AsyncTask<Void,Void,String> {\r
+ @Override\r
+ protected void onPreExecute() {\r
+ super.onPreExecute();\r
+ DialogFragment newFragment = ProgressDialogFragment.newInstance("", "");\r
+ newFragment.show(getFragmentManager(), PROGRESS_DIALOG_TAG);\r
+ }\r
\r
+ @Override\r
+ protected void onPostExecute(String obj) {\r
+ super.onPostExecute(obj);\r
+ AndroidLogWrapper.d(TCQueryAction.class,"Finished loading " + TCQueryAction.this);\r
+ dismiss();\r
+ if (onCompleteListener != null ) {\r
+ onCompleteListener.onTCQueryComplete(obj);\r
+ }\r
+ }\r
}\r
\r
+ protected void writeMotor( TCMotor mi, MotorBurnFile b) throws Exception {\r
\r
- public void dismiss() {\r
- // TODO - need to kill the thread.\r
-\r
- mDbHelper.close();\r
+ DbAdapter mDbHelper = new DbAdapter(getActivity());\r
+ mDbHelper.open();\r
+ try {\r
+ ExtendedThrustCurveMotor m = new ExtendedThrustCurveMotor();\r
+\r
+ m.setThrustCurveMotor( b.getThrustCurveMotor() );\r
+\r
+ // Convert impulse class. ThrustCurve puts mmx, 1/4a and 1/2a as A.\r
+ m.setImpulseClass(mi.getImpulse_class());\r
+ if ( "a".equalsIgnoreCase(mi.getImpulse_class())) {\r
+ if( mi.getCommon_name().startsWith("1/2A") ) {\r
+ m.setImpulseClass("1/2A");\r
+ } else if (mi.getCommon_name().startsWith("1/4A") ) {\r
+ m.setImpulseClass("1/4A");\r
+ } else if (mi.getCommon_name().startsWith("Micro") ) {\r
+ m.setImpulseClass("1/8A");\r
+ }\r
+ }\r
\r
- if ( progress != null && progress.isShowing() ) {\r
- progress.dismiss();\r
- }\r
- }\r
+ // Convert Case Info.\r
+ if ( mi.getCase_info() == null\r
+ || "single use".equalsIgnoreCase(mi.getCase_info())\r
+ || "single-use".equalsIgnoreCase(mi.getCase_info())) {\r
+ m.setCaseInfo(mi.getType()+ " " + mi.getDiameter() + "x" + mi.getLength());\r
+ } else {\r
+ m.setCaseInfo(mi.getCase_info());\r
+ }\r
\r
- protected class UpdateMessage implements Runnable {\r
- private String newMessage;\r
- UpdateMessage( String message ) {\r
- this.newMessage = message;\r
- }\r
- @Override\r
- public void run() {\r
- progress.setMessage(newMessage);\r
+ AndroidLogWrapper.d(TCQueryAction.class,"adding motor " + m.toString());\r
+ // Write motor.\r
+ mDbHelper.getMotorDao().insertOrUpdateMotor(m);\r
+ } finally {\r
+ mDbHelper.close();\r
}\r
}\r
\r
- protected class Dismiss implements Runnable {\r
- @Override\r
- public void run() {\r
+ protected void dismiss() {\r
+ AndroidLogWrapper.d(TCQueryAction.class,"dismiss the progress");\r
+ ProgressDialogFragment progress = (ProgressDialogFragment) getActivity().getSupportFragmentManager().findFragmentByTag(PROGRESS_DIALOG_TAG);\r
+ if ( progress != null ) {\r
progress.dismiss();\r
- if (onCompleteListener != null ) {\r
- onCompleteListener.onComplete();\r
- }\r
- // TCQueryActivity.this.finish();\r
}\r
}\r
\r
- protected class Error implements Runnable {\r
+ protected class UpdateMessage implements Runnable {\r
private String newMessage;\r
- Error( String message ) {\r
+ UpdateMessage( String message ) {\r
this.newMessage = message;\r
}\r
@Override\r
public void run() {\r
- progress.dismiss();\r
- final AlertDialog dialog = new AlertDialog.Builder(parent).create();\r
- dialog.setMessage(newMessage);\r
- dialog.setButton(DialogInterface.BUTTON_NEUTRAL,"Dismiss", new DialogInterface.OnClickListener() {\r
-\r
- @Override\r
- public void onClick(DialogInterface arg0, int arg1) {\r
- dialog.dismiss();\r
- }\r
-\r
- });\r
- dialog.show();\r
+ ProgressDialogFragment progress = (ProgressDialogFragment) getActivity().getSupportFragmentManager().findFragmentByTag(PROGRESS_DIALOG_TAG);\r
+ if ( progress != null )\r
+ progress.setMessage(newMessage);\r
}\r
}\r
\r
\r
import net.sf.openrocket.R;\r
import net.sf.openrocket.android.util.AndroidLogWrapper;\r
-import android.app.Activity;\r
+import net.sf.openrocket.android.util.ErrorDialogFragment;\r
+import android.content.DialogInterface;\r
import android.os.Bundle;\r
+import android.support.v4.app.FragmentActivity;\r
import android.view.View;\r
import android.widget.Button;\r
import android.widget.EditText;\r
import android.widget.Spinner;\r
\r
-public class TCQueryActivity extends Activity\r
-implements TCQueryAction.OnComplete\r
+public class TCQueryActivity extends FragmentActivity\r
+implements TCQueryAction.OnTCQueryCompleteListener\r
{\r
\r
- private TCSearchAction queryAction;\r
-\r
@Override\r
protected void onCreate(Bundle savedInstanceState) {\r
super.onCreate(savedInstanceState);\r
setContentView(R.layout.tcqueryform);\r
- \r
- queryAction = new TCSearchAction(this);\r
\r
final Spinner manufacturerField = (Spinner) findViewById(R.id.TCMotorSearchFormManufacturerField);\r
final Spinner impulseField = (Spinner) findViewById(R.id.TCMotorSearchFormImpulseField);\r
@Override\r
public void onClick( View v ) {\r
AndroidLogWrapper.d(TCQueryActivity.class,"submit button clicked");\r
- \r
+\r
String commonName = commonNameField.getText().toString();\r
\r
SearchRequest r = new SearchRequest();\r
}\r
r.setCommon_name(commonName);\r
\r
- queryAction.setRequest(r);\r
- queryAction.start();\r
+ TCSearchAction motorfrag = TCSearchAction.newInstance( r );\r
+ getSupportFragmentManager().beginTransaction().add( motorfrag, "dloader").commit();\r
}\r
- }\r
- );\r
+ });\r
}\r
\r
@Override\r
- public void onComplete() {\r
- finish();\r
- }\r
-\r
- /*\r
- * TODO - ??\r
- @Override\r
- public Object onRetainNonConfigurationInstance() {\r
- return downloadThread;\r
- }\r
- */\r
- @Override\r
- protected void onDestroy() {\r
- queryAction.dismiss();\r
- super.onDestroy();\r
+ public void onTCQueryComplete(String message) {\r
+ if ( message != null) {\r
+ ErrorDialogFragment error = ErrorDialogFragment.newInstance(message);\r
+ error.show(getSupportFragmentManager(), "ErrorDialog");\r
+ } else {\r
+ finish();\r
+ }\r
}\r
\r
}\r
package net.sf.openrocket.android.thrustcurve;\r
\r
-import net.sf.openrocket.android.motor.ExtendedThrustCurveMotor;\r
import net.sf.openrocket.android.util.AndroidLogWrapper;\r
-import android.app.Activity;\r
\r
public class TCSearchAction extends TCQueryAction {\r
\r
- private SearchRequest request;\r
- \r
- public TCSearchAction(Activity parent) {\r
- super(parent);\r
- }\r
- \r
- public void setRequest( SearchRequest request ) {\r
- this.request = request;\r
+ public static TCSearchAction newInstance( SearchRequest searchRequest ) {\r
+ TCSearchAction frag = new TCSearchAction();\r
+ frag.task = frag.new Downloader(searchRequest);\r
+ return frag;\r
}\r
\r
- protected Runnable getTask() {\r
- return new Downloader();\r
- }\r
- \r
- private class Downloader implements Runnable {\r
+ private class Downloader extends TCQueryAction.TCQueryTask {\r
+\r
+ private SearchRequest searchRequest;\r
+ \r
+ private Downloader( SearchRequest searchRequest ) {\r
+ this.searchRequest = searchRequest;\r
+ }\r
\r
@Override\r
- public void run() {\r
+ protected String doInBackground(Void... params) {\r
try {\r
handler.post( new UpdateMessage("Quering Thrustcurve"));\r
- SearchResponse res = new ThrustCurveAPI().doSearch(request);\r
+ SearchResponse res = new ThrustCurveAPI().doSearch(searchRequest);\r
\r
int total = res.getResults().size();\r
int count = 1;\r
continue;\r
}\r
\r
- MotorBurnFile b = new ThrustCurveAPI().downloadData(mi.getMotor_id());\r
-\r
AndroidLogWrapper.d(TCQueryAction.class, mi.toString());\r
\r
- ExtendedThrustCurveMotor m = new ExtendedThrustCurveMotor();\r
-\r
- m.setThrustCurveMotor( b.getThrustCurveMotor() );\r
-\r
- // Convert impulse class. ThrustCurve puts mmx, 1/4a and 1/2a as A.\r
- m.setImpulseClass(mi.getImpulse_class());\r
- if ( "a".equalsIgnoreCase(mi.getImpulse_class())) {\r
- if( mi.getCommon_name().startsWith("1/2A") ) {\r
- m.setImpulseClass("1/2A");\r
- } else if (mi.getCommon_name().startsWith("1/4A") ) {\r
- m.setImpulseClass("1/4A");\r
- } else if (mi.getCommon_name().startsWith("Micro") ) {\r
- m.setImpulseClass("1/8A");\r
- }\r
- }\r
-\r
- // Convert Case Info.\r
- if ( mi.getCase_info() == null\r
- || "single use".equalsIgnoreCase(mi.getCase_info())\r
- || "single-use".equalsIgnoreCase(mi.getCase_info())) {\r
- m.setCaseInfo(mi.getType()+ " " + mi.getDiameter() + "x" + mi.getLength());\r
- } else {\r
- m.setCaseInfo(mi.getCase_info());\r
- }\r
+ MotorBurnFile b = new ThrustCurveAPI().downloadData(mi.getMotor_id());\r
\r
- AndroidLogWrapper.d(TCQueryAction.class,"adding motor " + m.toString());\r
- // Write motor.\r
- mDbHelper.getMotorDao().insertOrUpdateMotor(m);\r
+ writeMotor( mi, b);\r
}\r
if ( total < res.getMatches() ) {\r
- handler.post( new Error( total + " motors downloaded, " + res.getMatches() + " matched. Try restricting the query more.") );\r
+ dismiss();\r
+ return "" + total + " motors downloaded, " + res.getMatches() + " matched. Try restricting the query more.";\r
} else {\r
- handler.post( new Dismiss());\r
+ dismiss();\r
+ return null;\r
}\r
}\r
catch( Exception ex){\r
- AndroidLogWrapper.d(TCQueryAction.class,ex.toString());\r
- handler.post( new Error(ex.toString()) );\r
+ AndroidLogWrapper.d(TCSearchAction.class,ex.toString());\r
+ return ex.toString();\r
}\r
-\r
}\r
}\r
\r
--- /dev/null
+package net.sf.openrocket.android.util;\r
+\r
+import android.app.AlertDialog;\r
+import android.app.Dialog;\r
+import android.content.DialogInterface;\r
+import android.os.Bundle;\r
+import android.support.v4.app.DialogFragment;\r
+\r
+public class ErrorDialogFragment extends DialogFragment {\r
+\r
+ public static ErrorDialogFragment newInstance( String message ) {\r
+ ErrorDialogFragment dialog = new ErrorDialogFragment();\r
+ Bundle b = new Bundle();\r
+ b.putString("message",message);\r
+ dialog.setArguments(b);\r
+ return dialog;\r
+ }\r
+\r
+\r
+\r
+ @Override\r
+ public void onCreate(Bundle savedInstanceState) {\r
+ super.onCreate(savedInstanceState);\r
+ }\r
+ \r
+ @Override\r
+ public Dialog onCreateDialog(Bundle savedInstanceState) {\r
+ String message = getArguments().getString("message");\r
+ final AlertDialog dialog = new AlertDialog.Builder(getActivity()).create();\r
+ dialog.setOwnerActivity(getActivity());\r
+ dialog.setMessage(message);\r
+ dialog.setCancelable(false);\r
+ dialog.setCanceledOnTouchOutside(false);\r
+ dialog.setButton(DialogInterface.BUTTON_NEUTRAL,"Dismiss", new DialogInterface.OnClickListener() {\r
+\r
+ @Override\r
+ public void onClick(DialogInterface arg0, int arg1) {\r
+ dialog.dismiss();\r
+ }\r
+\r
+ });\r
+ return dialog;\r
+ }\r
+\r
+}\r
+\r
\r
public class ProgressDialogFragment extends DialogFragment {\r
\r
+ ProgressDialog progressDialog;\r
+\r
public static ProgressDialogFragment newInstance(String title, String message) {\r
ProgressDialogFragment fragment = new ProgressDialogFragment();\r
Bundle args = new Bundle();\r
return fragment;\r
}\r
\r
+\r
@Override\r
- public ProgressDialog onCreateDialog(Bundle savedInstanceState) {\r
- String title = getArguments().getString("title");\r
- String message = getArguments().getString("message");\r
+ public void onCreate(Bundle savedInstanceState) {\r
+ super.onCreate(savedInstanceState);\r
+ }\r
\r
- ProgressDialog progressDialog = new ProgressDialog(getActivity());\r
+ @Override\r
+ public ProgressDialog onCreateDialog(Bundle savedInstanceState) {\r
+ String title = null;\r
+ String message = null;\r
+ Bundle args = getArguments();\r
+ if ( args != null ) {\r
+ title = getArguments().getString("title");\r
+ message = getArguments().getString("message");\r
+ }\r
+\r
+ AndroidLogWrapper.d(ProgressDialogFragment.class, "onCreateDialog");\r
+ progressDialog = new ProgressDialog(getActivity());\r
progressDialog.setTitle(title);\r
progressDialog.setMessage(message);\r
\r
progressDialog.setCancelable(false);\r
+ progressDialog.setCanceledOnTouchOutside(false);\r
\r
progressDialog.show();\r
-\r
return progressDialog;\r
}\r
\r
+ public void setMessage( String message ) {\r
+ progressDialog.setMessage(message);\r
+ }\r
}\r