| Index: chromecast/base/cast_sys_info_android.cc
|
| diff --git a/chromecast/base/cast_sys_info_android.cc b/chromecast/base/cast_sys_info_android.cc
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..0d85a06ad82386de3859394bab721ed3ebae132c
|
| --- /dev/null
|
| +++ b/chromecast/base/cast_sys_info_android.cc
|
| @@ -0,0 +1,127 @@
|
| +// Copyright 2015 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +#include "chromecast/base/cast_sys_info_android.h"
|
| +
|
| +#include "base/android/build_info.h"
|
| +#include "base/android/jni_android.h"
|
| +#include "base/android/jni_string.h"
|
| +#include "base/strings/string_number_conversions.h"
|
| +#include "base/sys_info.h"
|
| +#include "chromecast/base/cast_sys_info_util.h"
|
| +#include "chromecast/base/version.h"
|
| +#include "jni/CastSysInfoAndroid_jni.h"
|
| +
|
| +namespace chromecast {
|
| +
|
| +namespace {
|
| +const char kBuildTypeUser[] = "user";
|
| +} // namespace
|
| +
|
| +// static
|
| +bool CastSysInfoAndroid::RegisterJni(JNIEnv* env) {
|
| + return RegisterNativesImpl(env);
|
| +}
|
| +
|
| +// static
|
| +scoped_ptr<CastSysInfo> CreateSysInfo() {
|
| + return make_scoped_ptr(new CastSysInfoAndroid());
|
| +}
|
| +
|
| +CastSysInfoAndroid::CastSysInfoAndroid()
|
| + : build_info_(base::android::BuildInfo::GetInstance()) {
|
| +}
|
| +
|
| +CastSysInfoAndroid::~CastSysInfoAndroid() {
|
| +}
|
| +
|
| +CastSysInfo::BuildType CastSysInfoAndroid::GetBuildType() {
|
| + if (CAST_IS_DEBUG_BUILD())
|
| + return BUILD_ENG;
|
| +
|
| + int build_number;
|
| + if (!base::StringToInt(CAST_BUILD_INCREMENTAL, &build_number))
|
| + build_number = 0;
|
| +
|
| + // Note: no way to determine which channel was used on play store.
|
| + if (strcmp(build_info_->build_type(), kBuildTypeUser) == 0 &&
|
| + build_number > 0) {
|
| + return BUILD_PRODUCTION;
|
| + }
|
| +
|
| + // Dogfooders without a user system build should all still have non-Debug
|
| + // builds of the cast receiver APK, but with valid build numbers.
|
| + if (build_number > 0)
|
| + return BUILD_BETA;
|
| +
|
| + // Default to ENG build.
|
| + return BUILD_ENG;
|
| +}
|
| +
|
| +std::string CastSysInfoAndroid::GetSerialNumber() {
|
| + JNIEnv* env = base::android::AttachCurrentThread();
|
| + return base::android::ConvertJavaStringToUTF8(
|
| + Java_CastSysInfoAndroid_getSerialNumber(env));
|
| +}
|
| +
|
| +std::string CastSysInfoAndroid::GetProductName() {
|
| + return build_info_->device();
|
| +}
|
| +
|
| +std::string CastSysInfoAndroid::GetDeviceModel() {
|
| + return build_info_->model();
|
| +}
|
| +
|
| +std::string CastSysInfoAndroid::GetManufacturer() {
|
| + return build_info_->manufacturer();
|
| +}
|
| +
|
| +std::string CastSysInfoAndroid::GetSystemBuildNumber() {
|
| + return base::SysInfo::GetAndroidBuildID();
|
| +}
|
| +
|
| +std::string CastSysInfoAndroid::GetSystemReleaseChannel() {
|
| + return "";
|
| +}
|
| +
|
| +std::string CastSysInfoAndroid::GetBoardName() {
|
| + return "";
|
| +}
|
| +
|
| +std::string CastSysInfoAndroid::GetBoardRevision() {
|
| + return "";
|
| +}
|
| +
|
| +std::string CastSysInfoAndroid::GetFactoryCountry() {
|
| + return "";
|
| +}
|
| +
|
| +std::string CastSysInfoAndroid::GetFactoryLocale(std::string* second_locale) {
|
| + return "";
|
| +}
|
| +
|
| +std::string CastSysInfoAndroid::GetWifiInterface() {
|
| + return "";
|
| +}
|
| +
|
| +std::string CastSysInfoAndroid::GetApInterface() {
|
| + return "";
|
| +}
|
| +
|
| +std::string CastSysInfoAndroid::GetGlVendor() {
|
| + NOTREACHED() << "GL information shouldn't be requested on Android.";
|
| + return "";
|
| +}
|
| +
|
| +std::string CastSysInfoAndroid::GetGlRenderer() {
|
| + NOTREACHED() << "GL information shouldn't be requested on Android.";
|
| + return "";
|
| +}
|
| +
|
| +std::string CastSysInfoAndroid::GetGlVersion() {
|
| + NOTREACHED() << "GL information shouldn't be requested on Android.";
|
| + return "";
|
| +}
|
| +
|
| +} // namespace chromecast
|
|
|