Titanium JIRA Archive
Titanium SDK/CLI (TIMOB)

[TIMOB-8954] Android: Cancelable ActivityIndicator

GitHub Issuen/a
TypeNew Feature
PriorityHigh
StatusClosed
ResolutionFixed
Resolution Date2012-05-03T13:29:03.000+0000
Affected Version/sn/a
Fix Version/sRelease 2.1.0, Sprint 2012-09 API
ComponentsAndroid
LabelsAPI, qe-testadded
ReporterJosh Roesslein
AssigneeJosh Roesslein
Created2012-05-02T12:37:01.000+0000
Updated2012-09-27T00:40:01.000+0000

Description

Feature

Allow ActivityIndicator dialogs on Android to be cancelable by the user. Note: this is an Android only feature and doesn't require parity with iOS and MobileWeb since they don't use modal dialogs.

API Changes

- New property: cancelable When true the indicator can be canceled by the user. - New event: cancel Fired when the user has canceled the indicator. This is called after the indicator dialog has been hidden, so the developer does not need to call hide() manually.

Test case

var hideIndicatorTimeout = null;

var win = Ti.UI.createWindow({
	backgroundColor: "red",
	layout: 'vertical'
});

var indicator = Ti.UI.createActivityIndicator({
  message: "Processing...",
  cancelable: true  // Indicator will be cancelable by setting this to true.
});
indicator.addEventListener('cancel', function() {
	// Fired when the user has canceled this indicator.
	clearTimeout(hideIndicatorTimeout);
	alert("Aborted processing");
});

var cancelableSwitch = Titanium.UI.createSwitch({
	title: 'Cancelable',
	style: Ti.UI.Android.SWITCH_STYLE_CHECKBOX,
    value: true
});
cancelableSwitch.addEventListener('change',function(e)
{
    indicator.cancelable = e.value;
});
win.add(cancelableSwitch);

var showIndicatorButton = Ti.UI.createButton({
	title: "Show Indicator"
});
showIndicatorButton.addEventListener('click', function() {
	indicator.show();
	hideIndicatorTimeout = setTimeout(function() {
		indicator.hide();
	}, 5000);
});
win.add(showIndicatorButton);

win.open();
1. Start up the application. 2. Click "Show Indicator". 3. Wait for it to go away (~5 seconds). 4. Click "Show Indicator" again. 5. Press the BACK button, the dialog should go away. You should also see an alert popup. 6. Uncheck "Cancelable" and click "Show Indicator" again. 7. Try hitting the BACK button, nothing should happen. Dialog should disappear in 5 seconds. 8. Check "Cancelable" and click "Show Indicator". 9. Try hitting the BACK button, the dialog should go away and alert popup (same as step 5).

Comments

  1. Josh Roesslein 2012-05-02

    Sent [Pull Request #2118](https://github.com/appcelerator/titanium_mobile/pull/2118). Includes implementation and documentation updates.
  2. Dustin Hyde 2012-06-05

    Closing as Fixed. Verified via test code. SDK: 2.1.0.v20120605140359 Studio: 2.1.0.201206041625 OS: Snow Leopard Android: V8 Devices Tested: Nexus One 2.2.2, Nexus S 4.0.4

JSON Source