Repository navigation
Expand file tree
/
Copy pathMainApplication.java
More file actions
142 lines (115 loc) · 5.29 KB
/
Copy pathMainApplication.java
File metadata and controls
142 lines (115 loc) · 5.29 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
package com.reactnct;
import android.app.Activity;
import android.app.Application.ActivityLifecycleCallbacks;
import android.app.NotificationManager;
import android.content.Context;
import android.os.Bundle;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import com.clevertap.android.pushtemplates.PushTemplateNotificationHandler;
import com.clevertap.android.sdk.CleverTapAPI;
import com.clevertap.android.sdk.CleverTapAPI.LogLevel;
import com.clevertap.react.CleverTapApplication;
import com.clevertap.react.CleverTapCustomTemplates;
import com.facebook.react.PackageList;
import com.facebook.react.ReactApplication;
import com.facebook.react.ReactHost;
import com.facebook.react.ReactNativeHost;
import com.facebook.react.ReactPackage;
import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint;
import com.facebook.react.defaults.DefaultReactHost;
import com.facebook.react.defaults.DefaultReactNativeHost;
import com.facebook.soloader.SoLoader;
import java.util.List;
public class MainApplication extends CleverTapApplication implements ActivityLifecycleCallbacks, ReactApplication {
private final ReactNativeHost mReactNativeHost =
new DefaultReactNativeHost(this) {
@Override
public boolean getUseDeveloperSupport() {
return BuildConfig.DEBUG;
}
@Override
protected List<ReactPackage> getPackages() {
@SuppressWarnings("UnnecessaryLocalVariable")
List<ReactPackage> packages = new PackageList(this).getPackages();
// Packages that cannot be autolinked yet can be added manually here, for example:
// packages.add(new MyReactNativePackage());
// packages.add(new CleverTapPackage()); // not to add if done by autolinking
return packages;
}
@Override
protected String getJSMainModuleName() {
return "index";
}
@Override
protected boolean isNewArchEnabled() {
return BuildConfig.IS_NEW_ARCHITECTURE_ENABLED;
}
@Override
protected Boolean isHermesEnabled() {
return BuildConfig.IS_HERMES_ENABLED;
}
};
@Override
public ReactHost getReactHost() {
return DefaultReactHost.getDefaultReactHost(getApplicationContext(), mReactNativeHost);
}
@Override
public ReactNativeHost getReactNativeHost() {
return mReactNativeHost;
}
// Launch configs: accounts listed here are created at process start, so they
// receive cold-start events (e.g. the push tap that launched the app). On the
// JS side use CleverTap.getInstance(accountId) for them — no config again from JS.
// Commented out because the JS createInstance demos must keep exercising the
// fresh-config path; uncomment (with real credentials) to try it.
// @Override
// public List<com.clevertap.react.CleverTapLaunchConfig> launchConfigs() {
// com.clevertap.android.sdk.CleverTapInstanceConfig configB =
// com.clevertap.android.sdk.CleverTapInstanceConfig.createInstance(
// this, "B-ACCOUNT-ID", "B-TOKEN", "in1");
// return java.util.Collections.singletonList(
// new com.clevertap.react.CleverTapLaunchConfig(configB));
// }
@Override
public void onCreate() {
CleverTapCustomTemplates.registerCustomTemplates(this, "custom/templates.json");
CleverTapAPI.setDebugLevel(LogLevel.VERBOSE);
CleverTapAPI.setNotificationHandler(new PushTemplateNotificationHandler());
CleverTapAPI.getDefaultInstance(getApplicationContext()).enableDeviceNetworkInfoReporting(true);
super.onCreate();
SoLoader.init(this, /* native exopackage */ false);
if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) {
// If you opted-in for the New Architecture, we load the native entry point for this app.
DefaultNewArchitectureEntryPoint.load();
}
}
@Override
public void onActivityCreated(@NonNull final Activity activity, @Nullable final Bundle savedInstanceState) {
}
@Override
public void onActivityStarted(@NonNull final Activity activity) {
}
@Override
public void onActivityResumed(@NonNull final Activity activity) {
Bundle payload = activity.getIntent().getExtras();
if (payload != null && payload.containsKey("pt_id") && (payload.getString("pt_id").equals("pt_rating")
|| payload
.getString("pt_id").equals("pt_product_display"))) {
NotificationManager nm = (NotificationManager) activity.getSystemService(Context.NOTIFICATION_SERVICE);
nm.cancel(payload.getInt("notificationId"));
}
}
@Override
public void onActivityPaused(@NonNull final Activity activity) {
}
@Override
public void onActivityStopped(@NonNull final Activity activity) {
}
@Override
public void onActivitySaveInstanceState(@NonNull final Activity activity, @NonNull final Bundle outState) {
}
@Override
public void onActivityDestroyed(@NonNull final Activity activity) {
}
}