@@ -96,22 +96,21 @@ class AndroidPublisher {
96
96
}
97
97
98
98
/// List tracks
99
- Future <void > listTracks () async {
99
+ Future <List < String > > listTracks () async {
100
100
var apAppEdit = await newAppEdit ();
101
101
try {
102
102
var response = await _api.edits.tracks.list (packageName, apAppEdit.id);
103
- for (var track in response.tracks! ) {
104
- stdout.writeln (track.track);
105
- }
103
+ var tracks = response.tracks! .map ((e) => e.track! ).toList ();
104
+ return tracks;
106
105
} finally {
107
106
await apAppEdit.delete ();
108
107
}
109
108
}
110
109
111
110
/// List bundles
112
- Future <void > listBundles () async {
113
- await readOnlyAppEdit ((appEdit) async {
114
- await appEdit.listBundles ();
111
+ Future <List < int > > listBundles () async {
112
+ return await readOnlyAppEdit ((appEdit) async {
113
+ return await appEdit.listBundles ();
115
114
});
116
115
}
117
116
@@ -133,6 +132,14 @@ class AndroidPublisher {
133
132
});
134
133
}
135
134
135
+ /// Publish version code
136
+ Future <int ?> getTrackVersionCode ({required String trackName}) async {
137
+ return await readOnlyAppEdit ((appEdit) async {
138
+ var versionCode = await appEdit.getTrackVersionCode (trackName);
139
+ return versionCode;
140
+ });
141
+ }
142
+
136
143
/// Check if versionCode exists, upload if not, publish.
137
144
Future <void > uploadBundleAndPublish (
138
145
{required String aabPath,
@@ -184,14 +191,13 @@ class AndroidPublisherAppEdit {
184
191
}
185
192
186
193
/// List bundles
187
- Future <void > listBundles () async {
194
+ Future <List < int > > listBundles () async {
188
195
var aabListResponse = await _api.edits.bundles.list (packageName, id);
189
196
if (aabListResponse.bundles != null ) {
190
- for (var bundle in aabListResponse.bundles! ) {
191
- stdout.writeln ('aab: ${bundle .versionCode }' );
192
- //print(bundle.versionCode);
193
- }
197
+ var bundleList = aabListResponse.bundles! .map ((e) => e.versionCode! );
198
+ return bundleList.toList ();
194
199
}
200
+ return < int > [];
195
201
}
196
202
197
203
/// Check if versionCode exists
@@ -234,6 +240,23 @@ class AndroidPublisherAppEdit {
234
240
await _api.edits.tracks.update (track, packageName, appEdit.id! , trackName);
235
241
}
236
242
243
+ /// Publish track
244
+ Future <int ?> getTrackVersionCode (String trackName) async {
245
+ //stdout.writeln('getting track: ${track.releases!.first.toJson()}');
246
+ var track =
247
+ await _api.edits.tracks.get (packageName, appEdit.id! , trackName);
248
+ var releases = track.releases;
249
+ if (releases != null ) {
250
+ for (var release in releases) {
251
+ if (release.status == 'completed' ) {
252
+ return int .parse (release.versionCodes! .first);
253
+ }
254
+ }
255
+ }
256
+ return null ;
257
+ //print(track.toJson());
258
+ }
259
+
237
260
/// Commit only as validate fails on changesNotSentForReview
238
261
Future <void > validateAndCommit ({bool ? changesNotSentForReview}) async {
239
262
if (changesNotSentForReview != true ) {
0 commit comments