@Override public void beforeCheckProject(@NonNull Context context) { Boolean dependsOnAppCompat = context.getProject().dependsOn(APPCOMPAT_LIB_ARTIFACT); mDependsOnAppCompat = dependsOnAppCompat != null && dependsOnAppCompat; }
@Override public void beforeCheckFile(@NonNull Context context) { mHasLeanbackLauncherActivity = false; mHasLeanbackSupport = false; mHasApplicationBanner = false; mLeanbackActivitiesWithoutBanners = 0; mUnsupportedHardwareImpliedPermissions = Lists.newArrayListWithExpectedSize(2); mUnsupportedTvUsesFeatures = Sets.newHashSetWithExpectedSize(2); mAllUnsupportedTvUsesFeatures = Sets.newHashSetWithExpectedSize(2); // Check gradle dependency Project mainProject = context.getMainProject(); mHasLeanbackDependency = (mainProject.isGradleProject() && Boolean.TRUE.equals(mainProject.dependsOn(LEANBACK_LIB_ARTIFACT))); }
@Override public void beforeCheckProject(@NonNull Context context) { Boolean dependsOnAppCompat = context.getProject().dependsOn(APPCOMPAT_LIB_ARTIFACT); mDependsOnAppCompat = dependsOnAppCompat != null && dependsOnAppCompat; }
Boolean.TRUE == mContext.getMainProject().dependsOn( SUPPORT_LIB_ARTIFACT))) { boolean useBuiltin = minSdk >= 16;
@Override public void visitAttribute(@NonNull XmlContext context, @NonNull Attr attribute) { Project mainProject = context.getMainProject(); if (mainProject.isGradleProject()) { Boolean appCompat = mainProject.dependsOn("com.android.support:appcompat-v7"); if (ANDROID_URI.equals(attribute.getNamespaceURI())) { if (context.getFolderVersion() >= 14) { return; } if (appCompat == Boolean.TRUE) { context.report(ISSUE, attribute, context.getLocation(attribute), "Should use `app:showAsAction` with the appcompat library with " + "`xmlns:app=\"http://schemas.android.com/apk/res-auto\"`"); } } else { if (appCompat == Boolean.FALSE) { context.report(ISSUE, attribute, context.getLocation(attribute), "Should use `android:showAsAction` when not using the appcompat library"); } } } } }
@Override public void visitAttribute(@NonNull XmlContext context, @NonNull Attr attribute) { Project mainProject = context.getMainProject(); if (mainProject.isGradleProject()) { Boolean appCompat = mainProject.dependsOn("com.android.support:appcompat-v7"); if (ANDROID_URI.equals(attribute.getNamespaceURI())) { if (context.getFolderVersion() >= 14) { return; } if (appCompat == Boolean.TRUE) { context.report(ISSUE, attribute, context.getLocation(attribute), "Should use `app:showAsAction` with the appcompat library with " + "`xmlns:app=\"http://schemas.android.com/apk/res-auto\"`"); } } else { if (appCompat == Boolean.FALSE) { context.report(ISSUE, attribute, context.getLocation(attribute), "Should use `android:showAsAction` when not using the appcompat library"); } } } } }
Boolean.TRUE == mContext.getMainProject().dependsOn( SUPPORT_LIB_ARTIFACT))) { boolean useBuiltin = minSdk >= 16;
@Override public void checkClass(@NonNull JavaContext context, @NonNull PsiClass declaration) { Project project = context.getMainProject(); if (project.dependsOn(APPCOMPAT_LIB_ARTIFACT) != Boolean.TRUE) { return; } PsiClass superClass = declaration.getSuperClass(); if (!hasAppCompatDelegate(context, superClass)) { return; } PsiElement locationNode = declaration; PsiReferenceList extendsList = declaration.getExtendsList(); if (extendsList != null) { PsiJavaCodeReferenceElement[] elements = extendsList.getReferenceElements(); if (elements.length > 0) { locationNode = elements[0]; } } Location location = context.getNameLocation(locationNode); String suggested = getAppCompatDelegate(superClass); // Keep error message in sync with #getSuggestedSuperClass below String message = String.format("This custom view should extend `%1$s` instead", suggested); context.report(ISSUE, declaration, location, message); }