From 3bff6846dbb962ff6769f7072121d458913b04c2 Mon Sep 17 00:00:00 2001 From: Josh Giles Date: Fri, 31 Jul 2015 11:51:00 -0400 Subject: Trivially implement AndroidModel interface. Make IdeaAndroidProject implement the AndroidModel interface, filling in real implementations for trivial methods but throwing for all non-trivial methods. Eliminate a couple interface methods which during implementation were deemed only used in Gradle-specific code. Dropping these methods means we will need to do some refactoring in AndroidTestRunConfiguration. Change-Id: I8ea484c0d6af5a3219e3705d98d9680010cecb21 --- .../tools/idea/gradle/IdeaAndroidProject.java | 65 +++++++++++++++++++++- .../com/android/tools/idea/model/AndroidModel.java | 27 +-------- 2 files changed, 65 insertions(+), 27 deletions(-) (limited to 'android/src/com') diff --git a/android/src/com/android/tools/idea/gradle/IdeaAndroidProject.java b/android/src/com/android/tools/idea/gradle/IdeaAndroidProject.java index ae3bac91d18..60b482118e1 100644 --- a/android/src/com/android/tools/idea/gradle/IdeaAndroidProject.java +++ b/android/src/com/android/tools/idea/gradle/IdeaAndroidProject.java @@ -18,6 +18,7 @@ package com.android.tools.idea.gradle; import com.android.builder.model.*; import com.android.sdklib.AndroidVersion; import com.android.sdklib.repository.FullRevision; +import com.android.tools.idea.model.AndroidModel; import com.android.tools.lint.detector.api.LintUtils; import com.google.common.collect.Lists; import com.google.common.collect.Maps; @@ -47,7 +48,7 @@ import static com.intellij.openapi.vfs.VfsUtil.findFileByIoFile; /** * Contains Android-Gradle related state necessary for configuring an IDEA project based on a user-selected build variant. */ -public class IdeaAndroidProject implements Serializable { +public class IdeaAndroidProject implements AndroidModel, Serializable { // Increase the value when adding/removing fields or when changing the serialization/deserialization mechanism. private static final long serialVersionUID = 1L; private static final Logger LOG = Logger.getInstance(IdeaAndroidProject.class); @@ -136,6 +137,65 @@ public class IdeaAndroidProject implements Serializable { } } + @NotNull + @Override + public AndroidArtifact getMainArtifact() { + return getSelectedVariant().getMainArtifact(); + } + + @NotNull + @Override + public SourceProvider getDefaultSourceProvider() { + return getAndroidProject().getDefaultConfig().getSourceProvider(); + } + + @NotNull + @Override + public List getActiveSourceProviders() { + throw new UnsupportedOperationException("Not yet implemented."); + } + + @NotNull + @Override + public List getTestSourceProviders() { + throw new UnsupportedOperationException("Not yet implemented."); + } + + @NotNull + @Override + public List getAllSourceProviders() { + throw new UnsupportedOperationException("Not yet implemented."); + } + + @NotNull + @Override + public String getApplicationId() { + throw new UnsupportedOperationException("Not yet implemented."); + } + + @NotNull + @Override + public Set getAllApplicationIds() { + throw new UnsupportedOperationException("Not yet implemented."); + } + + @Override + public Boolean isDebuggable() { + throw new UnsupportedOperationException("Not yet implemented."); + } + + @Nullable + @Override + public AndroidVersion getMinSdkVersion() { + return getConfigMinSdkVersion(); + } + + @Nullable + @Override + public AndroidVersion getTargetSdkVersion() { + throw new UnsupportedOperationException("Not yet implemented."); + } + @NotNull public ProjectSystemId getProjectSystemId() { return myProjectSystemId; @@ -320,6 +380,7 @@ public class IdeaAndroidProject implements Serializable { * * @return true if the manifest package is overridden */ + @Override public boolean overridesManifestPackage() { if (myOverridesManifestPackage == null) { myOverridesManifestPackage = getAndroidProject().getDefaultConfig().getProductFlavor().getApplicationId() != null; @@ -617,4 +678,4 @@ public class IdeaAndroidProject implements Serializable { setSelectedVariantName((String)in.readObject()); setSelectedTestArtifactName((String)in.readObject()); } -} \ No newline at end of file +} diff --git a/android/src/com/android/tools/idea/model/AndroidModel.java b/android/src/com/android/tools/idea/model/AndroidModel.java index ff908795eec..3cd516fc079 100644 --- a/android/src/com/android/tools/idea/model/AndroidModel.java +++ b/android/src/com/android/tools/idea/model/AndroidModel.java @@ -16,14 +16,13 @@ package com.android.tools.idea.model; import com.android.builder.model.AndroidArtifact; -import com.android.builder.model.BaseArtifact; import com.android.builder.model.SourceProvider; import com.android.sdklib.AndroidVersion; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import java.util.Collection; import java.util.List; +import java.util.Set; /** * A common interface for Android module models. @@ -37,14 +36,6 @@ public interface AndroidModel { @NotNull AndroidArtifact getMainArtifact(); - /** - * @return the currently selected test artifact produced by this Android module. - * TODO: Remove this method - it exposes Gradle-specific BaseArtifact. - */ - @Deprecated - @Nullable - BaseArtifact getTestArtifact(); - /** * @return the default source provider. * TODO: To be build-system-agnostic, simplify source provider usage. @@ -80,13 +71,6 @@ public interface AndroidModel { @NotNull List getAllSourceProviders(); - /** - * @return the current version code for this Android module, or null if not specified. - */ - @Deprecated - @Nullable - Integer getVersionCode(); - /** * @return the current application ID. * See {@link com.android.tools.idea.gradle.IdeaAndroidProject#computePackageName()} @@ -98,7 +82,7 @@ public interface AndroidModel { * @return all the application IDs of artifacts this Android module could produce. */ @NotNull - Collection getAllApplicationIds(); + Set getAllApplicationIds(); /** * @return whether the manifest package is overriden. @@ -126,11 +110,4 @@ public interface AndroidModel { */ @Nullable AndroidVersion getTargetSdkVersion(); - - /** - * @return for test execution, the fully-qualified class name of the specified instrumentation runner if present. - */ - @Nullable - @Deprecated - String getTestInstrumentationRunner(); } -- cgit v1.2.3