Titanium JIRA Archive
Titanium SDK/CLI (TIMOB)

[TIMOB-27312] Android: Refactor "ProgressIndicator" status bar handling

GitHub Issuen/a
TypeImprovement
PriorityLow
StatusOpen
ResolutionUnresolved
Affected Version/sn/a
Fix Version/sn/a
ComponentsAndroid
LabelsProgressIndicator, android, progress, statusbar
ReporterJoshua Quick
AssigneeJoshua Quick
Created2019-08-06T21:57:38.000+0000
Updated2021-02-22T18:41:03.000+0000

Description

*Summary:* The Ti.UI.Android.ProgressIndicator whose "location" property is set to Ti.UI.Android.PROGRESS_INDICATOR_STATUS_BAR no longer displays a progress indicator in the activity window's ActionBar. This feature no longer works. The ProgressIndicator object's defaults to using the status bar, making this an issue. All Titanium developers need to set it to Ti.UI.Android.PROGRESS_INDICATOR_DIALOG to see progress. This is the only "location" property setting that works. *Reason:* Google has stopped supporting this feature as of Android 5.0. https://developer.android.com/reference/android/app/Activity#setProgress(int) This feature does not work on Android 4.4 either. Likely because the Google Support library's ActionBar and/or AppCompatActivity class dropped support of this feature as well. *Test Code:* The below code does *NOT* show a progress indicator on Android 4.4 and above anymore. This feature appears to be dead.
var progressIndicator = Ti.UI.Android.createProgressIndicator({
	message: "Progressing...",
	location: Ti.UI.Android.PROGRESS_INDICATOR_STATUS_BAR,
	type: Ti.UI.Android.PROGRESS_INDICATOR_INDETERMINANT,
});

var window = Ti.UI.createWindow();
window.add(Ti.UI.createLabel({ text: "Progress Indicator Test" }));
window.addEventListener("open", function() {
	progressIndicator.show();
});
window.open();
*Recommended Solution:* We should do one of the following...

Find an alternative solution for showing progress in the action bar or status bar. _(Note that Google's guidelines do not recommend this anymore.)_

Drop status bar progress support and have "location" default to showing a dialog.

If we remove the status bar feature, then we may want to remove the TiBaseActivity.requestWindowFeature() method calls for constants FEATURE_PROGRESS and FEATURE_INDETERMINATE_PROGRESS here... [TiBaseActivity.java#L694](https://github.com/appcelerator/titanium_mobile/blob/3386d95fb6203138428f1dcc4736448a569692bc/android/titanium/src/java/org/appcelerator/titanium/TiBaseActivity.java#L694)

Comments

No comments

JSON Source