Skip to content

Commit 4221aad

Browse files
smilesa-maurice
authored andcommitted
Moved EmbeddedFile out of util_android
* Moved util::ArrayToEmbeddedFiles to EmbeddedFile::ToVector * Deleted util::FileTocsToEmbeddedFiles which have been obsolete since cl/121957846 PiperOrigin-RevId: 266261187
1 parent 78a90d6 commit 4221aad

File tree

12 files changed

+149
-104
lines changed

12 files changed

+149
-104
lines changed

admob/src/android/admob_android.cc

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@
1414
* limitations under the License.
1515
*/
1616

17+
#include "admob/src/android/admob_android.h"
18+
1719
#include <jni.h>
1820
#include <stddef.h>
1921

@@ -22,7 +24,6 @@
2224

2325
#include "admob/admob_resources.h"
2426
#include "admob/src/android/ad_request_converter.h"
25-
#include "admob/src/android/admob_android.h"
2627
#include "admob/src/android/banner_view_internal_android.h"
2728
#include "admob/src/android/interstitial_ad_internal_android.h"
2829
#include "admob/src/android/native_express_ad_view_internal_android.h"
@@ -31,6 +32,7 @@
3132
#include "admob/src/include/firebase/admob.h"
3233
#include "admob/src/include/firebase/admob/types.h"
3334
#include "app/src/assert.h"
35+
#include "app/src/embedded_file.h"
3436
#include "app/src/include/google_play_services/availability.h"
3537
#include "app/src/reference_counted_future_impl.h"
3638
#include "app/src/util_android.h"
@@ -157,12 +159,12 @@ InitResult Initialize(JNIEnv* env, jobject activity, const char* admob_app_id) {
157159
return kInitResultFailedMissingDependency;
158160
}
159161

160-
const std::vector<util::EmbeddedFile> embedded_files =
161-
util::CacheEmbeddedFiles(
162-
env, activity,
163-
util::ArrayToEmbeddedFiles(firebase_admob::admob_resources_filename,
164-
firebase_admob::admob_resources_data,
165-
firebase_admob::admob_resources_size));
162+
const std::vector<firebase::internal::EmbeddedFile> embedded_files =
163+
util::CacheEmbeddedFiles(env, activity,
164+
firebase::internal::EmbeddedFile::ToVector(
165+
firebase_admob::admob_resources_filename,
166+
firebase_admob::admob_resources_data,
167+
firebase_admob::admob_resources_size));
166168

167169
if (!(mobile_ads::CacheMethodIds(env, activity) &&
168170
ad_request_helper::CacheClassFromFiles(env, activity,

app/CMakeLists.txt

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,28 +83,44 @@ build_flatbuffers("${CMAKE_CURRENT_LIST_DIR}/google_services.fbs"
8383
"")
8484

8585
set(log_common_SRCS
86-
src/log.cc)
86+
src/log.cc
87+
set/log.h)
88+
set(log_common_HDRS)
8789
set(log_android_SRCS
8890
src/jobject_reference.cc
8991
src/log_android.cc
9092
src/log_android_callback.cc
9193
src/util_android.cc)
94+
set(log_android_HDRS
95+
src/jobject_reference.h
96+
src/util_android.h)
9297
set(log_ios_SRCS
9398
src/log_ios.mm)
99+
set(log_ios_HDRS)
94100
set(log_desktop_SRCS
95101
src/log_stdio.cc)
102+
set(log_desktop_HDRS)
96103
if(ANDROID)
97104
set(log_SRCS
98105
"${log_common_SRCS}"
99106
"${log_android_SRCS}")
107+
set(log_HDRS
108+
"${log_common_HDRS}"
109+
"${log_android_HDRS}")
100110
elseif(IOS)
101111
set(log_SRCS
102112
"${log_common_SRCS}"
103113
"${log_ios_SRCS}")
114+
set(log_HDRS
115+
"${log_common_HDRS}"
116+
"${log_ios_HDRS}")
104117
else()
105118
set(log_SRCS
106119
"${log_common_SRCS}"
107120
"${log_desktop_SRCS}")
121+
set(log_HDRS
122+
"${log_common_HDRS}"
123+
"${log_desktop_HDRS}")
108124
endif()
109125

110126
set(common_SRCS
@@ -199,6 +215,7 @@ set(utility_common_HDRS
199215
${build_type_header}
200216
src/callback.h
201217
src/cleanup_notifier.h
218+
src/embedded_file.h
202219
src/function_registry.h
203220
src/future_manager.h
204221
src/log.h
@@ -258,6 +275,7 @@ endif()
258275

259276
add_library(firebase_app STATIC
260277
${log_SRCS}
278+
${log_HDRS}
261279
${common_SRCS}
262280
${invites_SRCS}
263281
${app_platform_SRCS}

app/src/embedded_file.h

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
/*
2+
* Copyright 2019 Google Inc. All rights reserved.
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License");
5+
* you may not use this file except in compliance with the License.
6+
* You may obtain a copy of the License at
7+
*
8+
* http://www.apache.org/licenses/LICENSE-2.0
9+
*
10+
* Unless required by applicable law or agreed to in writing, software
11+
* distributed under the License is distributed on an "AS IS" BASIS,
12+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
* See the License for the specific language governing permissions and
14+
* limitations under the License.
15+
*/
16+
17+
#ifndef FIREBASE_APP_CLIENT_CPP_SRC_EMBEDDED_FILE_H_
18+
#define FIREBASE_APP_CLIENT_CPP_SRC_EMBEDDED_FILE_H_
19+
20+
#include <stddef.h>
21+
22+
#include <vector>
23+
24+
#if !defined(FIREBASE_NAMESPACE)
25+
#define FIREBASE_NAMESPACE firebase
26+
#endif // !defined(FIREBASE_NAMESPACE)
27+
28+
namespace FIREBASE_NAMESPACE {
29+
namespace internal {
30+
31+
// File embedded in the binary.
32+
struct EmbeddedFile {
33+
EmbeddedFile() : name(nullptr), data(nullptr), size(0) {}
34+
EmbeddedFile(const char* _name, const unsigned char* _data, size_t _size)
35+
: name(_name), data(_data), size(_size) {}
36+
37+
const char* name;
38+
const unsigned char* data;
39+
size_t size;
40+
41+
// Create a vector with a single EmbeddedFile structure.
42+
static std::vector<EmbeddedFile> ToVector(const char* name,
43+
const unsigned char* data,
44+
size_t size) {
45+
std::vector<EmbeddedFile> vector;
46+
vector.push_back(EmbeddedFile(name, data, size));
47+
return vector;
48+
}
49+
};
50+
51+
} // namespace internal
52+
} // namespace FIREBASE_NAMESPACE
53+
54+
#endif // FIREBASE_APP_CLIENT_CPP_SRC_EMBEDDED_FILE_H_

app/src/google_play_services/availability_android.cc

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,11 @@
1717
#include "app/src/google_play_services/availability_android.h"
1818

1919
#include <jni.h>
20+
2021
#include <map>
2122

2223
#include "app/google_api_resources.h"
24+
#include "app/src/embedded_file.h"
2325
#include "app/src/log.h"
2426
#include "app/src/reference_counted_future_impl.h"
2527
#include "app/src/util_android.h"
@@ -158,10 +160,10 @@ bool Initialize(JNIEnv* env, jobject activity) {
158160
if (availability_class != nullptr) {
159161
env->DeleteLocalRef(availability_class);
160162
// Cache embedded files and load embedded classes.
161-
const std::vector<firebase::util::EmbeddedFile> embedded_files =
163+
const std::vector<firebase::internal::EmbeddedFile> embedded_files =
162164
firebase::util::CacheEmbeddedFiles(
163165
env, activity,
164-
firebase::util::ArrayToEmbeddedFiles(
166+
firebase::internal::EmbeddedFile::ToVector(
165167
google_api::google_api_resources_filename,
166168
google_api::google_api_resources_data,
167169
google_api::google_api_resources_size));

app/src/invites/android/invites_android_helper.cc

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
#include <string.h>
2121

2222
#include "app/invites_resources.h"
23+
#include "app/src/embedded_file.h"
2324
#include "app/src/invites/receiver_interface.h"
2425
#include "app/src/invites/sender_receiver_interface.h"
2526
#include "app/src/log.h"
@@ -64,10 +65,10 @@ AndroidHelper::AndroidHelper(const ::firebase::App& app,
6465
reinterpret_cast<void*>(
6566
&Java_com_google_firebase_dynamiclinks_internal_cpp_DynamicLinksNativeWrapper_receivedDynamicLinkCallback)} // NOLINT
6667
};
67-
const std::vector<util::EmbeddedFile> embedded_files =
68+
const std::vector<firebase::internal::EmbeddedFile> embedded_files =
6869
util::CacheEmbeddedFiles(
6970
env, app_->activity(),
70-
util::ArrayToEmbeddedFiles(
71+
firebase::internal::EmbeddedFile::ToVector(
7172
firebase_invites::invites_resources_filename,
7273
firebase_invites::invites_resources_data,
7374
firebase_invites::invites_resources_size));

app/src/util_android.cc

Lines changed: 21 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -28,11 +28,12 @@
2828
#include <list>
2929
#include <map>
3030
#include <string>
31-
#include <vector>
3231
#include <utility>
32+
#include <vector>
3333

3434
#include "app/app_resources.h"
3535
#include "app/src/app_common.h"
36+
#include "app/src/embedded_file.h"
3637
#include "app/src/log.h"
3738

3839
#if !defined(FIREBASE_NAMESPACE)
@@ -269,15 +270,6 @@ static const char kMissingJavaMethodFieldError[] =
269270
"in your app.";
270271
// LINT.ThenChange(//depot_firebase_cpp/app/client/unity/src/swig/app.SWIG)
271272

272-
std::vector<EmbeddedFile> ArrayToEmbeddedFiles(const char* filename,
273-
const unsigned char* data,
274-
size_t size) {
275-
std::vector<EmbeddedFile> embedded_files;
276-
EmbeddedFile embedded_file = {filename, data, size};
277-
embedded_files.push_back(embedded_file);
278-
return embedded_files;
279-
}
280-
281273
// Create a global reference to the specified class loader add it to the
282274
// list
283275
// of class loaders and release the local reference.
@@ -507,11 +499,12 @@ bool Initialize(JNIEnv* env, jobject activity_object) {
507499
#endif // defined(FIREBASE_ANDROID_FOR_DESKTOP)
508500

509501
// Cache embedded files and load embedded classes.
510-
const std::vector<EmbeddedFile> embedded_files = util::CacheEmbeddedFiles(
511-
env, activity_object,
512-
ArrayToEmbeddedFiles(firebase_app::app_resources_filename,
513-
firebase_app::app_resources_data,
514-
firebase_app::app_resources_size));
502+
const std::vector<internal::EmbeddedFile> embedded_files =
503+
util::CacheEmbeddedFiles(
504+
env, activity_object,
505+
internal::EmbeddedFile::ToVector(firebase_app::app_resources_filename,
506+
firebase_app::app_resources_data,
507+
firebase_app::app_resources_size));
515508

516509
// Cache the Log class and register the native log method.
517510
if (!(log::CacheClassFromFiles(env, activity_object, &embedded_files) !=
@@ -1348,7 +1341,7 @@ bool JavaThreadContext::AcquireExecuteCancelLock() {
13481341

13491342
bool JavaThreadContext::Initialize(
13501343
JNIEnv* env, jobject activity_object,
1351-
const std::vector<EmbeddedFile>& embedded_files) {
1344+
const std::vector<internal::EmbeddedFile>& embedded_files) {
13521345
static const JNINativeMethod kCppThreadMethods[] = {
13531346
{"nativeFunction", "(JJ)V",
13541347
reinterpret_cast<void*>(CppThreadDispatcherContext_nativeFunction)}};
@@ -1483,9 +1476,10 @@ void CancelCallbacks(JNIEnv* env, const char* api_identifier) {
14831476

14841477
// Find a class and retrieve a global reference to it.
14851478
// NOTE: This method will assert if the class isn't found.
1486-
jclass FindClassGlobal(JNIEnv* env, jobject activity_object,
1487-
const std::vector<EmbeddedFile>* embedded_files,
1488-
const char* class_name, ClassRequirement optional) {
1479+
jclass FindClassGlobal(
1480+
JNIEnv* env, jobject activity_object,
1481+
const std::vector<internal::EmbeddedFile>* embedded_files,
1482+
const char* class_name, ClassRequirement optional) {
14891483
LogDebug("Looking up class %s", class_name);
14901484
jclass local_class = FindClass(env, class_name);
14911485
if (!local_class && embedded_files) {
@@ -1529,14 +1523,14 @@ jclass FindClass(JNIEnv* env, const char* class_name) {
15291523
}
15301524

15311525
// Cache a list of embedded files to the activity's cache directory.
1532-
const std::vector<EmbeddedFile>& CacheEmbeddedFiles(
1526+
const std::vector<internal::EmbeddedFile>& CacheEmbeddedFiles(
15331527
JNIEnv* env, jobject activity_object,
1534-
const std::vector<EmbeddedFile>& embedded_files) {
1528+
const std::vector<internal::EmbeddedFile>& embedded_files) {
15351529
jobject cache_dir = env->CallObjectMethod(
15361530
activity_object, activity::GetMethodId(activity::kGetCacheDir));
15371531
CheckAndClearJniExceptions(env);
15381532
// Write each file in the resources to the cache.
1539-
for (std::vector<util::EmbeddedFile>::const_iterator it =
1533+
for (std::vector<internal::EmbeddedFile>::const_iterator it =
15401534
embedded_files.begin();
15411535
it != embedded_files.end(); ++it) {
15421536
LogDebug("Caching %s", it->name);
@@ -1582,9 +1576,10 @@ const std::vector<EmbeddedFile>& CacheEmbeddedFiles(
15821576

15831577
// Attempt to load a class from a set of files which have been cached to local
15841578
// storage using CacheEmbeddedFiles().
1585-
jclass FindClassInFiles(JNIEnv* env, jobject activity_object,
1586-
const std::vector<EmbeddedFile>& embedded_files,
1587-
const char* class_name) {
1579+
jclass FindClassInFiles(
1580+
JNIEnv* env, jobject activity_object,
1581+
const std::vector<internal::EmbeddedFile>& embedded_files,
1582+
const char* class_name) {
15881583
if (!embedded_files.size()) {
15891584
return nullptr;
15901585
}
@@ -1657,7 +1652,7 @@ jclass FindClassInFiles(JNIEnv* env, jobject activity_object,
16571652
env->DeleteLocalRef(cache_dir);
16581653

16591654
std::string dex_path;
1660-
for (std::vector<util::EmbeddedFile>::const_iterator it =
1655+
for (std::vector<internal::EmbeddedFile>::const_iterator it =
16611656
embedded_files.begin();
16621657
it != embedded_files.end(); ++it) {
16631658
dex_path += cache_dir_path + kPathSeparator + std::string(it->name);

0 commit comments

Comments
 (0)