use of com.android.tools.idea.configurations.Configuration in project android by JetBrains.
the class ConfiguredThemeEditorStyleTest method testHasItem.
public void testHasItem() {
VirtualFile myFile = myFixture.copyFileToProject("themeEditor/styles_1.xml", "res/values/styles.xml");
myFixture.copyFileToProject("themeEditor/attrs.xml", "res/values/attrs.xml");
Configuration configuration = myFacet.getConfigurationManager().getConfiguration(myFile);
ThemeResolver themeResolver = new ThemeResolver(configuration);
ConfiguredThemeEditorStyle theme = themeResolver.getTheme("AppTheme");
assertNotNull(theme);
ConfiguredThemeEditorStyle parent = theme.getParent();
assertNotNull(parent);
FolderConfiguration defaultConfig = new FolderConfiguration();
ConfiguredElement<ItemResourceValue> hasItem = ConfiguredElement.create(defaultConfig, new ItemResourceValue("myColor", false, "?android:attr/colorBackground", false, null));
ConfiguredElement<ItemResourceValue> hasNotItem = ConfiguredElement.create(defaultConfig, new ItemResourceValue("myHasNot", false, "?android:attr/colorBackground", false, null));
ConfiguredElement<ItemResourceValue> hasInParent = ConfiguredElement.create(defaultConfig, new ItemResourceValue("editTextStyle", true, "?android:attr/colorBackground", true, null));
assertTrue(theme.hasItem(new EditedStyleItem(hasItem, theme)));
assertFalse(theme.hasItem(new EditedStyleItem(hasNotItem, theme)));
assertTrue(theme.getParent().hasItem(new EditedStyleItem(hasInParent, parent)));
assertFalse(theme.hasItem(new EditedStyleItem(hasInParent, parent)));
}
use of com.android.tools.idea.configurations.Configuration in project android by JetBrains.
the class ConfiguredThemeEditorStyleTest method testIsPublic.
/**
* Tests the isPublic() method
*/
public void testIsPublic() {
VirtualFile myFile = myFixture.copyFileToProject("themeEditor/styles_1.xml", "res/values/styles.xml");
Configuration configuration = myFacet.getConfigurationManager().getConfiguration(myFile);
ThemeResolver themeResolver = new ThemeResolver(configuration);
// Non-framework themes are always public
ConfiguredThemeEditorStyle projectTheme = themeResolver.getTheme("AppTheme");
assertNotNull(projectTheme);
assertTrue(projectTheme.isPublic());
ConfiguredThemeEditorStyle frameworkPublicTheme = themeResolver.getTheme("android:Theme.Material");
assertNotNull(frameworkPublicTheme);
assertTrue(frameworkPublicTheme.isPublic());
ConfiguredThemeEditorStyle frameworkPrivateTheme = themeResolver.getTheme("android:Theme.Material.Dialog.NoFrame");
assertNotNull(frameworkPrivateTheme);
assertFalse(frameworkPrivateTheme.isPublic());
}
use of com.android.tools.idea.configurations.Configuration in project android by JetBrains.
the class ConfiguredThemeEditorStyleTest method doTestForParentApi.
private void doTestForParentApi(@NotNull String newParent, @NotNull String afterDirectoryName) {
VirtualFile virtualFile = myFixture.copyFileToProject("themeEditor/apiTestBefore/stylesApi.xml", "res/values/styles.xml");
myFixture.copyFileToProject("themeEditor/apiTestBefore/stylesApi-v14.xml", "res/values-v14/styles.xml");
myFixture.copyFileToProject("themeEditor/apiTestBefore/stylesApi-v19.xml", "res/values-v19/styles.xml");
myFixture.copyFileToProject("themeEditor/apiTestBefore/stylesApi-v21.xml", "res/values-v21/styles.xml");
ConfigurationManager configurationManager = myFacet.getConfigurationManager();
Configuration configuration = configurationManager.getConfiguration(virtualFile);
ThemeResolver themeResolver = new ThemeResolver(configuration);
ConfiguredThemeEditorStyle theme = themeResolver.getTheme("Theme.MyTheme");
assertNotNull(theme);
theme.setParent(newParent);
myFixture.checkResultByFile("res/values/styles.xml", "themeEditor/" + afterDirectoryName + "/stylesApi.xml", true);
myFixture.checkResultByFile("res/values-v14/styles.xml", "themeEditor/" + afterDirectoryName + "/stylesApi-v14.xml", true);
myFixture.checkResultByFile("res/values-v19/styles.xml", "themeEditor/" + afterDirectoryName + "/stylesApi-v19.xml", true);
myFixture.checkResultByFile("res/values-v21/styles.xml", "themeEditor/" + afterDirectoryName + "/stylesApi-v21.xml", true);
}
use of com.android.tools.idea.configurations.Configuration in project android by JetBrains.
the class ConfiguredThemeEditorStyleTest method testGetParentNamesWithDependency.
public void testGetParentNamesWithDependency() {
VirtualFile virtualFile = myFixture.copyFileToProject("themeEditor/themeEditorStyle/styles.xml", "res/values/styles.xml");
myFixture.copyFileToProject("themeEditor/themeEditorStyle/styles_1.xml", "additionalModules/moduleA/res/values-v19/styles.xml");
ConfigurationManager configurationManager = myFacet.getConfigurationManager();
Configuration configuration = configurationManager.getConfiguration(virtualFile);
ThemeResolver resolver = new ThemeResolver(configuration);
ConfiguredThemeEditorStyle theme = resolver.getTheme("AppTheme");
assertNotNull(theme);
assertEquals(2, theme.getParentNames().size());
}
use of com.android.tools.idea.configurations.Configuration in project android by JetBrains.
the class ConfiguredThemeEditorStyleTest method testSettingInHighApiTheme.
/**
* Test setting a low-api attributes and parent in a theme defined only in higher api files
*/
public void testSettingInHighApiTheme() {
VirtualFile virtualFile = myFixture.copyFileToProject("themeEditor/apiTestBefore/stylesApi.xml", "res/values/styles.xml");
myFixture.copyFileToProject("themeEditor/apiTestBefore/stylesApi-v14.xml", "res/values-v14/styles.xml");
myFixture.copyFileToProject("themeEditor/apiTestBefore/stylesApi-v19.xml", "res/values-v19/styles.xml");
myFixture.copyFileToProject("themeEditor/apiTestBefore/stylesApi-v21.xml", "res/values-v21/styles.xml");
ConfigurationManager configurationManager = myFacet.getConfigurationManager();
Configuration configuration = configurationManager.getConfiguration(virtualFile);
ThemeResolver themeResolver = new ThemeResolver(configuration);
ConfiguredThemeEditorStyle theme = themeResolver.getTheme("Theme.MyOtherTheme");
assertNotNull(theme);
theme.setValue("android:windowIsFloating", "holo_purple");
theme.setValue("android:actionBarDivider", "myValue");
theme.setParent("android:Theme.Holo.Light.DarkActionBar");
myFixture.checkResultByFile("res/values/styles.xml", "themeEditor/apiTestAfter8/stylesApi.xml", true);
myFixture.checkResultByFile("res/values-v14/styles.xml", "themeEditor/apiTestAfter8/stylesApi-v14.xml", true);
myFixture.checkResultByFile("res/values-v19/styles.xml", "themeEditor/apiTestAfter8/stylesApi-v19.xml", true);
myFixture.checkResultByFile("res/values-v21/styles.xml", "themeEditor/apiTestAfter8/stylesApi-v21.xml", true);
}
Aggregations