Skip to content

Commit ff412dc

Browse files
authored
Merge pull request #471 from Iterable/jay/MOB-4852-reorganization
[MOB-4852] reorganization
2 parents 5f5297a + 77feaba commit ff412dc

File tree

7 files changed

+264
-228
lines changed

7 files changed

+264
-228
lines changed

iterableapi/src/main/java/com/iterable/iterableapi/IterableInAppFileStorage.java

+57-42
Original file line numberDiff line numberDiff line change
@@ -26,21 +26,27 @@ public class IterableInAppFileStorage implements IterableInAppStorage, IterableI
2626
private static final String FOLDER_PATH = "IterableInAppFileStorage";
2727
private static final String INDEX_FILE = "index.html";
2828
private static final int OPERATION_SAVE = 100;
29+
2930
private final Context context;
31+
3032
private Map<String, IterableInAppMessage> messages =
3133
Collections.synchronizedMap(new LinkedHashMap<String, IterableInAppMessage>());
3234

3335
private final HandlerThread fileOperationThread = new HandlerThread("FileOperationThread");
36+
3437
@VisibleForTesting
3538
FileOperationHandler fileOperationHandler;
3639

3740
IterableInAppFileStorage(Context context) {
3841
this.context = context;
42+
3943
fileOperationThread.start();
4044
fileOperationHandler = new FileOperationHandler(fileOperationThread.getLooper());
45+
4146
load();
4247
}
4348

49+
//region IterableInAppStorage interface implementation
4450
@NonNull
4551
@Override
4652
public synchronized List<IterableInAppMessage> getMessages() {
@@ -68,6 +74,45 @@ public synchronized void removeMessage(@NonNull IterableInAppMessage message) {
6874
saveMessagesInBackground();
6975
}
7076

77+
@Override
78+
public void saveHTML(@NonNull String messageID, @NonNull String contentHTML) {
79+
File folder = createFolderForMessage(messageID);
80+
if (folder == null) {
81+
IterableLogger.e(TAG, "Failed to create folder for HTML content");
82+
return;
83+
}
84+
85+
File file = new File(folder, INDEX_FILE);
86+
boolean result = IterableUtil.writeFile(file, contentHTML);
87+
if (!result) {
88+
IterableLogger.e(TAG, "Failed to store HTML content");
89+
}
90+
}
91+
92+
@Nullable
93+
@Override
94+
public String getHTML(@NonNull String messageID) {
95+
File file = getFileForContent(messageID);
96+
return IterableUtil.readFile(file);
97+
}
98+
99+
@Override
100+
public void removeHTML(@NonNull String messageID) {
101+
File folder = getFolderForMessage(messageID);
102+
103+
File[] files = folder.listFiles();
104+
if (files == null) {
105+
return;
106+
}
107+
108+
for (File file : files) {
109+
file.delete();
110+
}
111+
folder.delete();
112+
}
113+
//endregion
114+
115+
//region In-App Lifecycle
71116
@Override
72117
public void onInAppMessageChanged(@NonNull IterableInAppMessage message) {
73118
saveMessagesInBackground();
@@ -80,7 +125,9 @@ private synchronized void clearMessages() {
80125
}
81126
messages.clear();
82127
}
128+
//endregion
83129

130+
//region JSON Parsing
84131
@NonNull
85132
private JSONObject serializeMessages() {
86133
JSONObject jsonData = new JSONObject();
@@ -116,15 +163,9 @@ private void loadMessagesFromJson(JSONObject jsonData) {
116163
}
117164
}
118165
}
166+
//endregion
119167

120-
private File getInAppStorageFile() {
121-
return new File(getInAppContentFolder(), "itbl_inapp.json");
122-
}
123-
124-
private File getInAppCacheStorageFile() {
125-
return new File(IterableUtil.getSdkCacheDir(context), "itbl_inapp.json");
126-
}
127-
168+
//region File Saving/Loading
128169
private void load() {
129170
try {
130171
File inAppStorageFile = getInAppStorageFile();
@@ -169,20 +210,15 @@ private synchronized void saveMetadata() {
169210
IterableLogger.e(TAG, "Error while saving in-app messages to file", e);
170211
}
171212
}
213+
//endregion
172214

173-
@Override
174-
public void saveHTML(@NonNull String messageID, @NonNull String contentHTML) {
175-
File folder = createFolderForMessage(messageID);
176-
if (folder == null) {
177-
IterableLogger.e(TAG, "Failed to create folder for HTML content");
178-
return;
179-
}
215+
//region File Management
216+
private File getInAppStorageFile() {
217+
return new File(getInAppContentFolder(), "itbl_inapp.json");
218+
}
180219

181-
File file = new File(folder, INDEX_FILE);
182-
boolean result = IterableUtil.writeFile(file, contentHTML);
183-
if (!result) {
184-
IterableLogger.e(TAG, "Failed to store HTML content");
185-
}
220+
private File getInAppCacheStorageFile() {
221+
return new File(IterableUtil.getSdkCacheDir(context), "itbl_inapp.json");
186222
}
187223

188224
@Nullable
@@ -217,28 +253,7 @@ private File getFileForContent(String messageID) {
217253
File folder = getFolderForMessage(messageID);
218254
return new File(folder, INDEX_FILE);
219255
}
220-
221-
@Nullable
222-
@Override
223-
public String getHTML(@NonNull String messageID) {
224-
File file = getFileForContent(messageID);
225-
return IterableUtil.readFile(file);
226-
}
227-
228-
@Override
229-
public void removeHTML(@NonNull String messageID) {
230-
File folder = getFolderForMessage(messageID);
231-
232-
File[] files = folder.listFiles();
233-
if (files == null) {
234-
return;
235-
}
236-
237-
for (File file : files) {
238-
file.delete();
239-
}
240-
folder.delete();
241-
}
256+
//endregion
242257

243258
class FileOperationHandler extends Handler {
244259
FileOperationHandler(Looper threadLooper) {

iterableapi/src/main/java/com/iterable/iterableapi/IterableInAppMemoryStorage.java

+2
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ class IterableInAppMemoryStorage implements IterableInAppStorage {
1313

1414
}
1515

16+
//region IterableInAppStorage interface implementation
1617
@NonNull
1718
@Override
1819
public synchronized List<IterableInAppMessage> getMessages() {
@@ -54,4 +55,5 @@ public String getHTML(@NonNull String messageID) {
5455
public void removeHTML(@NonNull String messageID) {
5556

5657
}
58+
//endregion
5759
}

iterableapi/src/main/java/com/iterable/iterableapi/IterableInAppStorage.java

+5
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,18 @@
88
interface IterableInAppStorage {
99
@NonNull
1010
List<IterableInAppMessage> getMessages();
11+
1112
@Nullable
1213
IterableInAppMessage getMessage(String messageId);
14+
1315
void addMessage(@NonNull IterableInAppMessage message);
16+
1417
void removeMessage(@NonNull IterableInAppMessage message);
1518

1619
void saveHTML(@NonNull String messageID, @NonNull String contentHTML);
20+
1721
@Nullable
1822
String getHTML(@NonNull String messageID);
23+
1924
void removeHTML(@NonNull String messageID);
2025
}

0 commit comments

Comments
 (0)