- get cancel() self.cancelable && self.inState(["downloading", "paused", "starting"]),
- get delete() !this.cancel && self.targetFile.exists(),
- get launch() self.targetFile.exists() && self.inState(["finished"]),
- get pause() self.inState(["downloading"]),
- get remove() self.inState(["blocked_parental", "blocked_policy",
- "canceled", "dirty", "failed", "finished"]),
- get resume() self.resumable && self.inState(["paused"]),
- get retry() self.inState(["canceled", "failed"])
+ get delete() !self.active && (self.targetFile.exists() || self.hasPartialData),
+ get launch() self.targetFile.exists() && self.succeeded,
+ get stop() self.active,
+ get remove() !self.active,
+ get resume() self.canceled