blob: 2e53f14a57f3fcfca94ced251835afda0b9b98a5 [file] [log] [blame]
/*
* Copyright (C) 2010 The Android Open Source Project
*
* 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.android.ide.common.rendering.api;
import com.android.resources.Density;
import com.android.resources.ScreenSize;
/**
* Base class for rendering parameters. This include the generic parameters but not what needs
* to be rendered or additional parameters.
*
*/
public abstract class RenderParams {
public final static long DEFAULT_TIMEOUT = 250; //ms
private final Object mProjectKey;
private final HardwareConfig mHardwareConfig;
private final RenderResources mRenderResources;
private final IProjectCallback mProjectCallback;
private final int mMinSdkVersion;
private final int mTargetSdkVersion;
private final LayoutLog mLog;
private boolean mCustomBackgroundEnabled;
private int mCustomBackgroundColor;
private long mTimeout;
private IImageFactory mImageFactory = null;
private String mAppIcon = null;
private String mAppLabel = null;
private String mLocale = null;
private boolean mForceNoDecor;
/**
*
* @param projectKey An Object identifying the project. This is used for the cache mechanism.
* @param hardwareConfig the {@link HardwareConfig}.
* @param renderResources a {@link RenderResources} object providing access to the resources.
* @param projectCallback The {@link IProjectCallback} object to get information from
* the project.
* @param minSdkVersion the minSdkVersion of the project
* @param targetSdkVersion the targetSdkVersion of the project
* @param log the object responsible for displaying warning/errors to the user.
*/
public RenderParams(
Object projectKey,
HardwareConfig hardwareConfig,
RenderResources renderResources,
IProjectCallback projectCallback,
int minSdkVersion, int targetSdkVersion,
LayoutLog log) {
mProjectKey = projectKey;
mHardwareConfig = hardwareConfig;
mRenderResources = renderResources;
mProjectCallback = projectCallback;
mMinSdkVersion = minSdkVersion;
mTargetSdkVersion = targetSdkVersion;
mLog = log;
mCustomBackgroundEnabled = false;
mTimeout = DEFAULT_TIMEOUT;
}
/**
* Copy constructor.
*/
public RenderParams(RenderParams params) {
mProjectKey = params.mProjectKey;
mHardwareConfig = params.mHardwareConfig;
mRenderResources = params.mRenderResources;
mProjectCallback = params.mProjectCallback;
mMinSdkVersion = params.mMinSdkVersion;
mTargetSdkVersion = params.mTargetSdkVersion;
mLog = params.mLog;
mCustomBackgroundEnabled = params.mCustomBackgroundEnabled;
mCustomBackgroundColor = params.mCustomBackgroundColor;
mTimeout = params.mTimeout;
mImageFactory = params.mImageFactory;
mAppIcon = params.mAppIcon;
mAppLabel = params.mAppLabel;
mLocale = params.mLocale;
mForceNoDecor = params.mForceNoDecor;
}
public void setOverrideBgColor(int color) {
mCustomBackgroundEnabled = true;
mCustomBackgroundColor = color;
}
public void setTimeout(long timeout) {
mTimeout = timeout;
}
public void setImageFactory(IImageFactory imageFactory) {
mImageFactory = imageFactory;
}
public void setAppIcon(String appIcon) {
mAppIcon = appIcon;
}
public void setAppLabel(String appLabel) {
mAppLabel = appLabel;
}
public void setLocale(String locale) {
mLocale = locale;
}
public void setForceNoDecor() {
mForceNoDecor = true;
}
public Object getProjectKey() {
return mProjectKey;
}
public HardwareConfig getHardwareConfig() {
return mHardwareConfig;
}
public int getMinSdkVersion() {
return mMinSdkVersion;
}
public int getTargetSdkVersion() {
return mTargetSdkVersion;
}
/**
* @deprecated Use {@link #getHardwareConfig()}
*/
@Deprecated
public int getScreenWidth() {
return mHardwareConfig.getScreenWidth();
}
/**
* @deprecated Use {@link #getHardwareConfig()}
*/
@Deprecated
public int getScreenHeight() {
return mHardwareConfig.getScreenHeight();
}
/**
* @deprecated Use {@link #getHardwareConfig()}
*/
@Deprecated
public Density getDensity() {
return mHardwareConfig.getDensity();
}
/**
* @deprecated Use {@link #getHardwareConfig()}
*/
@Deprecated
public float getXdpi() {
return mHardwareConfig.getXdpi();
}
/**
* @deprecated Use {@link #getHardwareConfig()}
*/
@Deprecated
public float getYdpi() {
return mHardwareConfig.getYdpi();
}
public RenderResources getResources() {
return mRenderResources;
}
public IProjectCallback getProjectCallback() {
return mProjectCallback;
}
public LayoutLog getLog() {
return mLog;
}
public boolean isBgColorOverridden() {
return mCustomBackgroundEnabled;
}
public int getOverrideBgColor() {
return mCustomBackgroundColor;
}
public long getTimeout() {
return mTimeout;
}
public IImageFactory getImageFactory() {
return mImageFactory;
}
/**
* @deprecated Use {@link #getHardwareConfig()}
*/
@Deprecated
public ScreenSize getConfigScreenSize() {
return mHardwareConfig.getScreenSize();
}
public String getAppIcon() {
return mAppIcon;
}
public String getAppLabel() {
return mAppLabel;
}
public String getLocale() {
return mLocale;
}
public boolean isForceNoDecor() {
return mForceNoDecor;
}
}