Don't send brightness to car service inside Emulator
This fixes this cts test: android.cts.statsd.atom.UidAtomTests#testScreenBrightness Bug: 139959479 Test: atest android.cts.statsd.atom.UidAtomTests#testScreenBrightness Change-Id: I66f858ce7686a90cd395f4e646133e8ea4604be4 (cherry picked from commit 1322465c48d0c3dfa5953573b80a89460b8e7e95)
This commit is contained in:
parent
4537d59a5e
commit
5d463fdaaa
2 changed files with 24 additions and 1 deletions
|
@ -15,8 +15,9 @@
|
|||
*/
|
||||
#define LOG_TAG "DefaultVehicleHal_v2_0"
|
||||
|
||||
#include <android/log.h>
|
||||
#include <android-base/macros.h>
|
||||
#include <android/log.h>
|
||||
#include <sys/system_properties.h>
|
||||
|
||||
#include "EmulatedVehicleHal.h"
|
||||
#include "JsonFakeValueGenerator.h"
|
||||
|
@ -186,6 +187,14 @@ StatusCode EmulatedVehicleHal::set(const VehiclePropValue& propValue) {
|
|||
return StatusCode::NOT_AVAILABLE;
|
||||
}
|
||||
|
||||
if (mInEmulator && propValue.prop == toInt(VehicleProperty::DISPLAY_BRIGHTNESS)) {
|
||||
// Emulator does not support remote brightness control, b/139959479
|
||||
// do not send it down so that it does not bring unnecessary property change event
|
||||
// return other error code, such NOT_AVAILABLE, causes Emulator to be freezing
|
||||
// TODO: return StatusCode::NOT_AVAILABLE once the above issue is fixed
|
||||
return StatusCode::OK;
|
||||
}
|
||||
|
||||
/**
|
||||
* After checking all conditions, such as the property is available, a real vhal will
|
||||
* sent the events to Car ECU to take actions.
|
||||
|
@ -211,6 +220,17 @@ static bool isDiagnosticProperty(VehiclePropConfig propConfig) {
|
|||
return false;
|
||||
}
|
||||
|
||||
// determine if it's running inside Android Emulator
|
||||
static bool isInEmulator() {
|
||||
char propValue[PROP_VALUE_MAX];
|
||||
bool isEmulator = (__system_property_get("ro.kernel.qemu", propValue) != 0);
|
||||
if (!isEmulator) {
|
||||
isEmulator = (__system_property_get("ro.hardware", propValue) != 0) &&
|
||||
(!strcmp(propValue, "ranchu") || !strcmp(propValue, "goldfish"));
|
||||
}
|
||||
return isEmulator;
|
||||
}
|
||||
|
||||
// Parse supported properties list and generate vector of property values to hold current values.
|
||||
void EmulatedVehicleHal::onCreate() {
|
||||
static constexpr bool shouldUpdateStatus = true;
|
||||
|
@ -261,6 +281,8 @@ void EmulatedVehicleHal::onCreate() {
|
|||
}
|
||||
initObd2LiveFrame(*mPropStore->getConfigOrDie(OBD2_LIVE_FRAME));
|
||||
initObd2FreezeFrame(*mPropStore->getConfigOrDie(OBD2_FREEZE_FRAME));
|
||||
mInEmulator = isInEmulator();
|
||||
ALOGD("mInEmulator=%s", mInEmulator ? "true" : "false");
|
||||
}
|
||||
|
||||
std::vector<VehiclePropConfig> EmulatedVehicleHal::listProperties() {
|
||||
|
|
|
@ -86,6 +86,7 @@ private:
|
|||
std::unordered_set<int32_t> mHvacPowerProps;
|
||||
RecurrentTimer mRecurrentTimer;
|
||||
VehicleHalClient* mVehicleClient;
|
||||
bool mInEmulator;
|
||||
};
|
||||
|
||||
} // impl
|
||||
|
|
Loading…
Reference in a new issue