/* * Copyright 2014 Google Inc. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.savillians.gradle.androidpublisher; import java.io.File; import java.io.IOException; import java.net.URISyntaxException; import java.security.GeneralSecurityException; import java.util.ArrayList; import java.util.List; import java.util.Locale; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import com.google.api.client.http.AbstractInputStreamContent; import com.google.api.client.http.FileContent; import com.google.api.client.repackaged.com.google.common.base.Preconditions; import com.google.api.client.repackaged.com.google.common.base.Strings; import com.google.api.services.androidpublisher.AndroidPublisher; import com.google.api.services.androidpublisher.AndroidPublisher.Edits; import com.google.api.services.androidpublisher.AndroidPublisher.Edits.Apklistings; import com.google.api.services.androidpublisher.AndroidPublisher.Edits.Commit; import com.google.api.services.androidpublisher.AndroidPublisher.Edits.Insert; import com.google.api.services.androidpublisher.AndroidPublisher.Edits.Apks.Upload; import com.google.api.services.androidpublisher.AndroidPublisher.Edits.Tracks.Update; import com.google.api.services.androidpublisher.model.Apk; import com.google.api.services.androidpublisher.model.ApkListing; import com.google.api.services.androidpublisher.model.AppEdit; import com.google.api.services.androidpublisher.model.Track; /** * Uploads an apk to the alpha track and updates recent changes description. */ public class UploadApkWithListing { // // private static final Log log = LogFactory.getLog(UploadApkWithListing.class); // // private static final String APK_LISTING_RECENT_CHANGES_TEXT = "Apk recent changes en-US"; // // /** // * Track for uploading the apk, can be 'alpha', beta', 'production' or // * 'rollout'. // */ // private static final String TRACK_BETA = "beta"; // // public static void main(String[] args) { // try { // Preconditions.checkArgument(!Strings.isNullOrEmpty(ApplicationConfig.PACKAGE_NAME), // "ApplicationConfig.PACKAGE_NAME cannot be null or empty!"); // // // Create the API service. // AndroidPublisher service = AndroidPublisherHelper.init( // ApplicationConfig.APPLICATION_NAME, ApplicationConfig.SERVICE_ACCOUNT_EMAIL); // final Edits edits = service.edits(); // // // Create a new edit to make changes. // Insert editRequest = edits // .insert(ApplicationConfig.PACKAGE_NAME, // null /** no content */); // AppEdit edit = editRequest.execute(); // final String editId = edit.getId(); // log.info(String.format("Created edit with id: %s", editId)); // // // Upload new apk to developer console // final String apkPath = UploadApkWithListing.class // .getResource(ApplicationConfig.APK_FILE_PATH) // .toURI().getPath(); // final AbstractInputStreamContent apkFile = // new FileContent(AndroidPublisherHelper.MIME_TYPE_APK, new File(apkPath)); // Upload uploadRequest = edits // .apks() // .upload(ApplicationConfig.PACKAGE_NAME, // editId, // apkFile); // Apk apk = uploadRequest.execute(); // log.info(String.format("Version code %d has been uploaded", // apk.getVersionCode())); // // // Assign apk to beta track. // List<Integer> apkVersionCodes = new ArrayList<>(); // apkVersionCodes.add(apk.getVersionCode()); // Update updateTrackRequest = edits // .tracks() // .update(ApplicationConfig.PACKAGE_NAME, // editId, // TRACK_BETA, // new Track().setVersionCodes(apkVersionCodes)); // Track updatedTrack = updateTrackRequest.execute(); // log.info(String.format("Track %s has been updated.", updatedTrack.getTrack())); // // // Update recent changes field in apk listing. // final ApkListing newApkListing = new ApkListing(); // newApkListing.setRecentChanges(APK_LISTING_RECENT_CHANGES_TEXT); // // Apklistings.Update // updateRecentChangesRequest = edits // .apklistings() // .update(ApplicationConfig.PACKAGE_NAME, // editId, // apk.getVersionCode(), // Locale.US.toString(), // newApkListing); // updateRecentChangesRequest.execute(); // log.info("Recent changes has been updated."); // // // Commit changes for edit. // Commit commitRequest = edits.commit(ApplicationConfig.PACKAGE_NAME, editId); // AppEdit appEdit = commitRequest.execute(); // log.info(String.format("App edit with id %s has been comitted", appEdit.getId())); // // } catch (IOException | URISyntaxException | GeneralSecurityException ex) { // log.error( // "Exception was thrown while uploading apk and updating recent changes", // ex); // } // } }