Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1715)

Side by Side Diff: base/android/build_info.cc

Issue 9838033: Upstream native crash handling changes for Android. (Closed) Base URL: http://git.chromium.org/git/chromium.git@trunk
Patch Set: breakpad gyp changes Created 8 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
Mark Mentovai 2012/04/05 14:28:03 2012
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "base/android/build_info.h"
6
7 #include <string>
8
9 #include "base/logging.h"
10 #include "base/android/jni_android.h"
Mark Mentovai 2012/04/05 14:28:03 Sort. android < logging.
carlosvaldivia 2012/04/05 18:35:56 Done.
11 #include "base/android/jni_string.h"
12 #include "base/android/scoped_java_ref.h"
13
14 #include "jni/build_info_jni.h"
Mark Mentovai 2012/04/05 14:28:03 Why is this in a separate section?
carlosvaldivia 2012/04/05 18:35:56 Done.
15
16 namespace base {
17 namespace android {
18
19 BuildInfo* BuildInfo::instance_ = NULL;
20
21 BuildInfo::BuildInfo(
22 const char* device,
23 const char* model,
24 const char* brand,
25 const char* android_build_id,
26 const char* android_build_fp,
27 const char* package_version_code,
28 const char* package_version_name)
29 : device(device),
30 model(model),
31 brand(brand),
32 android_build_id(android_build_id),
33 android_build_fp(android_build_fp),
34 package_version_code(package_version_code),
35 package_version_name(package_version_name) {
36 }
37
38 const BuildInfo* const BuildInfo::GetInstance() {
39 if (!instance_) {
40 JNIEnv* env = AttachCurrentThread();
41 jobject app_context = GetApplicationContext();
Mark Mentovai 2012/04/05 14:28:03 You don’t need to call this ’til you need it, whic
42
43 // The const char* pointers initialized below will be owned by the
44 // resultant BuildInfo.
45 std::string device_str =
46 ConvertJavaStringToUTF8(Java_BuildInfo_getDevice(env));
47 const char* device = strdup(device_str.c_str());
Mark Mentovai 2012/04/05 14:28:03 #include <string.h> to be able to call strdup.
carlosvaldivia 2012/04/05 18:35:56 Done.
48
49 std::string model_str =
50 ConvertJavaStringToUTF8(Java_BuildInfo_getDeviceModel(env));
51 const char* model = strdup(model_str.c_str());
52
53 std::string brand_str =
54 ConvertJavaStringToUTF8(Java_BuildInfo_getBrand(env));
55 const char* brand = strdup(brand_str.c_str());
56
57 std::string android_build_id_str =
58 ConvertJavaStringToUTF8(Java_BuildInfo_getAndroidBuildId(env));
59 const char* android_build_id = strdup(android_build_id_str.c_str());
60
61 std::string android_build_fp_str =
62 ConvertJavaStringToUTF8(
63 Java_BuildInfo_getAndroidBuildFingerprint(env));
64 const char* android_build_fp = strdup(android_build_fp_str.c_str());
65
66 std::string package_version_code_str =
67 ConvertJavaStringToUTF8(Java_BuildInfo_getPackageVersionCode(
68 env, app_context));
69 const char* package_version_code =
70 strdup(package_version_code_str.c_str());
71
72 std::string package_version_name_str =
73 ConvertJavaStringToUTF8(
74 Java_BuildInfo_getPackageVersionName(env, app_context));
75 const char* package_version_name =
76 strdup(package_version_name_str.c_str());
77
78 instance_ = new BuildInfo(
79 device,
80 model,
81 brand,
82 android_build_id,
83 android_build_fp,
84 package_version_code,
85 package_version_name);
86
87 LOG(INFO) << "BuildInfo instance initialized with"
Mark Mentovai 2012/04/05 14:28:03 This doesn’t seem necessary.
carlosvaldivia 2012/04/05 18:35:56 Done.
88 << " device=" << instance_->device
89 << " model=" << instance_->model
90 << " brand=" << instance_->brand
91 << " android_build_id=" << instance_->android_build_id
92 << " android_build_fp=" << instance_->android_build_fp
93 << " package_version_code=" << instance_->package_version_code
94 << " package_version_name=" << instance_->package_version_name;
95 }
96 return instance_;
97 }
98
99 bool RegisterBuildInfo(JNIEnv* env) {
100 return RegisterNativesImpl(env);
101 }
102
103 } // namespace android
104 } // namespace base
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698