Skip to content

Commit ff0a99f

Browse files
committed
Optimize the function of Google drive.
1 parent 787e6cd commit ff0a99f

5 files changed

Lines changed: 395 additions & 5 deletions

File tree

app/src/main/java/com/omni/wallet_mainnet/base/AppBaseActivity.java

Lines changed: 90 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import com.google.api.client.json.gson.GsonFactory;
2222
import com.google.api.services.drive.Drive;
2323
import com.google.api.services.drive.DriveScopes;
24+
import com.google.api.services.drive.model.FileList;
2425
import com.omni.wallet_mainnet.baselibrary.utils.LogUtils;
2526
import com.omni.wallet_mainnet.baselibrary.utils.StringUtils;
2627
import com.omni.wallet_mainnet.baselibrary.utils.ToastUtils;
@@ -33,6 +34,7 @@
3334
import com.omni.wallet_mainnet.view.dialog.UnlockDialog;
3435

3536
import java.io.File;
37+
import java.util.ArrayList;
3638
import java.util.Collections;
3739
import java.util.List;
3840

@@ -160,7 +162,7 @@ public void autoBackupFiles() {
160162
// The DriveServiceHelper encapsulates all REST API and SAF functionality.
161163
// Its instantiation is required before handling any onClick actions.
162164
mDriveServiceHelper = new DriveServiceHelper(googleDriveService);
163-
createAddressFile();
165+
query();
164166
}
165167
} else {
166168
ToastUtils.showToast(mContext, "The backup file does not exist");
@@ -223,11 +225,46 @@ private void handleSignInResult(Intent result) {
223225
// The DriveServiceHelper encapsulates all REST API and SAF functionality.
224226
// Its instantiation is required before handling any onClick actions.
225227
mDriveServiceHelper = new DriveServiceHelper(googleDriveService);
226-
createAddressFile();
228+
query();
227229
})
228230
.addOnFailureListener(exception -> LogUtils.e(TAG, "Unable to sign in.", exception));
229231
}
230232

233+
/**
234+
* Queries the Drive REST API for files visible to this app and lists them in the content view.
235+
*/
236+
private void query() {
237+
if (mDriveServiceHelper != null) {
238+
LogUtils.e(TAG, "Querying for files.");
239+
240+
mDriveServiceHelper.queryFiles().addOnSuccessListener(new OnSuccessListener<FileList>() {
241+
@Override
242+
public void onSuccess(FileList fileList) {
243+
if (fileList.getFiles().size() == 0) {
244+
createAddressFile();
245+
} else {
246+
List<com.google.api.services.drive.model.File> list = new ArrayList<>();
247+
for (int i = 0; i < fileList.getFiles().size(); i++) {
248+
if (fileList.getFiles().get(i).getName().contains("_mainnet")) {
249+
list.add(fileList.getFiles().get(i));
250+
}
251+
}
252+
if (list.size() == 0) {
253+
createAddressFile();
254+
} else {
255+
saveAddressFile(list.get(1).getId(), list.get(0).getId(), list.get(2).getId());
256+
}
257+
}
258+
}
259+
}).addOnFailureListener(new OnFailureListener() {
260+
@Override
261+
public void onFailure(@NonNull Exception e) {
262+
LogUtils.e(TAG, "Unable to query files.", e);
263+
}
264+
});
265+
}
266+
}
267+
231268
/**
232269
* Creates a new file via the Drive REST API.
233270
*/
@@ -281,6 +318,57 @@ public void onFailure(@NonNull Exception e) {
281318
}
282319
}
283320

321+
private void saveAddressFile(String walletFileId, String channelFileId, String addressFileId) {
322+
if (mDriveServiceHelper != null) {
323+
LogUtils.e(TAG, "Save address file " + addressFileId);
324+
325+
mDriveServiceHelper.saveAddressFile(addressFileId, User.getInstance().getWalletAddress(mContext) + "_mainnet")
326+
.addOnSuccessListener(new OnSuccessListener<String>() {
327+
@Override
328+
public void onSuccess(String s) {
329+
saveWalletFile(walletFileId, channelFileId);
330+
}
331+
})
332+
.addOnFailureListener(exception ->
333+
LogUtils.e(TAG, "Couldn't Save address file.", exception));
334+
}
335+
}
336+
337+
private void saveWalletFile(String walletFileId, String channelFileId) {
338+
if (mDriveServiceHelper != null) {
339+
LogUtils.e(TAG, "Save wallet file " + walletFileId);
340+
341+
String filePath = mContext.getExternalFilesDir(null) + "/obd" + ConstantWithNetwork.getInstance(ConstantInOB.networkType).getDownloadDirectory() + "wallet.db";
342+
mDriveServiceHelper.saveDbFile(walletFileId, filePath, "wallet_mainnet.db")
343+
.addOnSuccessListener(new OnSuccessListener<String>() {
344+
@Override
345+
public void onSuccess(String s) {
346+
saveChannelFile(channelFileId);
347+
}
348+
})
349+
.addOnFailureListener(exception ->
350+
LogUtils.e(TAG, "Couldn't Save wallet file.", exception));
351+
}
352+
}
353+
354+
private void saveChannelFile(String channelFileId) {
355+
if (mDriveServiceHelper != null) {
356+
LogUtils.e(TAG, "Save channel file " + channelFileId);
357+
358+
String filePath = mContext.getExternalFilesDir(null) + "/obd" + ConstantWithNetwork.getInstance(ConstantInOB.networkType).getDownloadChannelDirectory() + "channel.db";
359+
mDriveServiceHelper.saveDbFile(channelFileId, filePath, "channel_mainnet.db")
360+
.addOnSuccessListener(new OnSuccessListener<String>() {
361+
@Override
362+
public void onSuccess(String s) {
363+
LogUtils.e(TAG, "Channel fileId" + s);
364+
User.getInstance().setAutoBackUp(mContext, true);
365+
}
366+
})
367+
.addOnFailureListener(exception ->
368+
LogUtils.e(TAG, "Couldn't Save channel file.", exception));
369+
}
370+
}
371+
284372
@Override
285373
protected void onDestroy() {
286374
super.onDestroy();

app/src/main/java/com/omni/wallet_mainnet/ui/activity/AccountLightningActivity.java

Lines changed: 91 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
import com.google.api.client.json.gson.GsonFactory;
3333
import com.google.api.services.drive.Drive;
3434
import com.google.api.services.drive.DriveScopes;
35+
import com.google.api.services.drive.model.FileList;
3536
import com.google.gson.Gson;
3637
import com.google.gson.reflect.TypeToken;
3738
import com.google.protobuf.InvalidProtocolBufferException;
@@ -1345,11 +1346,46 @@ private void handleSignInResult(Intent result) {
13451346
// The DriveServiceHelper encapsulates all REST API and SAF functionality.
13461347
// Its instantiation is required before handling any onClick actions.
13471348
mDriveServiceHelper = new DriveServiceHelper(googleDriveService);
1348-
createAddressFile();
1349+
query();
13491350
})
13501351
.addOnFailureListener(exception -> LogUtils.e(TAG, "Unable to sign in.", exception));
13511352
}
13521353

1354+
/**
1355+
* Queries the Drive REST API for files visible to this app and lists them in the content view.
1356+
*/
1357+
private void query() {
1358+
if (mDriveServiceHelper != null) {
1359+
LogUtils.e(TAG, "Querying for files.");
1360+
1361+
mDriveServiceHelper.queryFiles().addOnSuccessListener(new OnSuccessListener<FileList>() {
1362+
@Override
1363+
public void onSuccess(FileList fileList) {
1364+
if (fileList.getFiles().size() == 0) {
1365+
createAddressFile();
1366+
} else {
1367+
List<com.google.api.services.drive.model.File> list = new ArrayList<>();
1368+
for (int i = 0; i < fileList.getFiles().size(); i++) {
1369+
if (fileList.getFiles().get(i).getName().contains("_mainnet")) {
1370+
list.add(fileList.getFiles().get(i));
1371+
}
1372+
}
1373+
if (list.size() == 0) {
1374+
createAddressFile();
1375+
} else {
1376+
saveAddressFile(list.get(1).getId(), list.get(0).getId(), list.get(2).getId());
1377+
}
1378+
}
1379+
}
1380+
}).addOnFailureListener(new OnFailureListener() {
1381+
@Override
1382+
public void onFailure(@NonNull Exception e) {
1383+
LogUtils.e(TAG, "Unable to query files.", e);
1384+
}
1385+
});
1386+
}
1387+
}
1388+
13531389
/**
13541390
* Creates a new file via the Drive REST API.
13551391
*/
@@ -1406,6 +1442,60 @@ public void onFailure(@NonNull Exception e) {
14061442
}
14071443
}
14081444

1445+
private void saveAddressFile(String walletFileId, String channelFileId, String addressFileId) {
1446+
if (mDriveServiceHelper != null) {
1447+
LogUtils.e(TAG, "Save address file " + addressFileId);
1448+
mLoadingDialog.show();
1449+
mDriveServiceHelper.saveAddressFile(addressFileId, User.getInstance().getWalletAddress(mContext) + "_mainnet")
1450+
.addOnSuccessListener(new OnSuccessListener<String>() {
1451+
@Override
1452+
public void onSuccess(String s) {
1453+
saveWalletFile(walletFileId, channelFileId);
1454+
}
1455+
})
1456+
.addOnFailureListener(exception -> {
1457+
mLoadingDialog.dismiss();
1458+
LogUtils.e(TAG, "Couldn't Save address file.", exception);
1459+
});
1460+
}
1461+
}
1462+
1463+
private void saveWalletFile(String walletFileId, String channelFileId) {
1464+
if (mDriveServiceHelper != null) {
1465+
LogUtils.e(TAG, "Save wallet file " + walletFileId);
1466+
1467+
String filePath = mContext.getExternalFilesDir(null) + "/obd" + ConstantWithNetwork.getInstance(ConstantInOB.networkType).getDownloadDirectory() + "wallet.db";
1468+
mDriveServiceHelper.saveDbFile(walletFileId, filePath, "wallet_mainnet.db")
1469+
.addOnSuccessListener(new OnSuccessListener<String>() {
1470+
@Override
1471+
public void onSuccess(String s) {
1472+
saveChannelFile(channelFileId);
1473+
}
1474+
})
1475+
.addOnFailureListener(exception ->
1476+
LogUtils.e(TAG, "Couldn't Save wallet file.", exception));
1477+
}
1478+
}
1479+
1480+
private void saveChannelFile(String channelFileId) {
1481+
if (mDriveServiceHelper != null) {
1482+
LogUtils.e(TAG, "Save channel file " + channelFileId);
1483+
1484+
String filePath = mContext.getExternalFilesDir(null) + "/obd" + ConstantWithNetwork.getInstance(ConstantInOB.networkType).getDownloadChannelDirectory() + "channel.db";
1485+
mDriveServiceHelper.saveDbFile(channelFileId, filePath, "channel_mainnet.db")
1486+
.addOnSuccessListener(new OnSuccessListener<String>() {
1487+
@Override
1488+
public void onSuccess(String s) {
1489+
LogUtils.e(TAG, "Channel fileId" + s);
1490+
mLoadingDialog.dismiss();
1491+
ToastUtils.showToast(mContext, "Backup Successfully");
1492+
}
1493+
})
1494+
.addOnFailureListener(exception ->
1495+
LogUtils.e(TAG, "Couldn't Save channel file.", exception));
1496+
}
1497+
}
1498+
14091499
/**
14101500
* Start node
14111501
* 启动节点

app/src/main/java/com/omni/wallet_mainnet/ui/activity/BalanceDetailActivity.java

Lines changed: 91 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
import com.google.api.client.json.gson.GsonFactory;
3434
import com.google.api.services.drive.Drive;
3535
import com.google.api.services.drive.DriveScopes;
36+
import com.google.api.services.drive.model.FileList;
3637
import com.google.common.collect.Lists;
3738
import com.google.common.io.BaseEncoding;
3839
import com.google.gson.Gson;
@@ -2206,11 +2207,46 @@ private void handleSignInResult(Intent result) {
22062207
// The DriveServiceHelper encapsulates all REST API and SAF functionality.
22072208
// Its instantiation is required before handling any onClick actions.
22082209
mDriveServiceHelper = new DriveServiceHelper(googleDriveService);
2209-
createAddressFile();
2210+
query();
22102211
})
22112212
.addOnFailureListener(exception -> LogUtils.e(TAG, "Unable to sign in.", exception));
22122213
}
22132214

2215+
/**
2216+
* Queries the Drive REST API for files visible to this app and lists them in the content view.
2217+
*/
2218+
private void query() {
2219+
if (mDriveServiceHelper != null) {
2220+
LogUtils.e(TAG, "Querying for files.");
2221+
2222+
mDriveServiceHelper.queryFiles().addOnSuccessListener(new OnSuccessListener<FileList>() {
2223+
@Override
2224+
public void onSuccess(FileList fileList) {
2225+
if (fileList.getFiles().size() == 0) {
2226+
createAddressFile();
2227+
} else {
2228+
List<com.google.api.services.drive.model.File> list = new ArrayList<>();
2229+
for (int i = 0; i < fileList.getFiles().size(); i++) {
2230+
if (fileList.getFiles().get(i).getName().contains("_mainnet")) {
2231+
list.add(fileList.getFiles().get(i));
2232+
}
2233+
}
2234+
if (list.size() == 0) {
2235+
createAddressFile();
2236+
} else {
2237+
saveAddressFile(list.get(1).getId(), list.get(0).getId(), list.get(2).getId());
2238+
}
2239+
}
2240+
}
2241+
}).addOnFailureListener(new OnFailureListener() {
2242+
@Override
2243+
public void onFailure(@NonNull Exception e) {
2244+
LogUtils.e(TAG, "Unable to query files.", e);
2245+
}
2246+
});
2247+
}
2248+
}
2249+
22142250
/**
22152251
* Creates a new file via the Drive REST API.
22162252
*/
@@ -2267,6 +2303,60 @@ public void onFailure(@NonNull Exception e) {
22672303
}
22682304
}
22692305

2306+
private void saveAddressFile(String walletFileId, String channelFileId, String addressFileId) {
2307+
if (mDriveServiceHelper != null) {
2308+
LogUtils.e(TAG, "Save address file " + addressFileId);
2309+
mLoadingDialog.show();
2310+
mDriveServiceHelper.saveAddressFile(addressFileId, User.getInstance().getWalletAddress(mContext) + "_mainnet")
2311+
.addOnSuccessListener(new OnSuccessListener<String>() {
2312+
@Override
2313+
public void onSuccess(String s) {
2314+
saveWalletFile(walletFileId, channelFileId);
2315+
}
2316+
})
2317+
.addOnFailureListener(exception -> {
2318+
mLoadingDialog.dismiss();
2319+
LogUtils.e(TAG, "Couldn't Save address file.", exception);
2320+
});
2321+
}
2322+
}
2323+
2324+
private void saveWalletFile(String walletFileId, String channelFileId) {
2325+
if (mDriveServiceHelper != null) {
2326+
LogUtils.e(TAG, "Save wallet file " + walletFileId);
2327+
2328+
String filePath = mContext.getExternalFilesDir(null) + "/obd" + ConstantWithNetwork.getInstance(ConstantInOB.networkType).getDownloadDirectory() + "wallet.db";
2329+
mDriveServiceHelper.saveDbFile(walletFileId, filePath, "wallet_mainnet.db")
2330+
.addOnSuccessListener(new OnSuccessListener<String>() {
2331+
@Override
2332+
public void onSuccess(String s) {
2333+
saveChannelFile(channelFileId);
2334+
}
2335+
})
2336+
.addOnFailureListener(exception ->
2337+
LogUtils.e(TAG, "Couldn't Save wallet file.", exception));
2338+
}
2339+
}
2340+
2341+
private void saveChannelFile(String channelFileId) {
2342+
if (mDriveServiceHelper != null) {
2343+
LogUtils.e(TAG, "Save channel file " + channelFileId);
2344+
2345+
String filePath = mContext.getExternalFilesDir(null) + "/obd" + ConstantWithNetwork.getInstance(ConstantInOB.networkType).getDownloadChannelDirectory() + "channel.db";
2346+
mDriveServiceHelper.saveDbFile(channelFileId, filePath, "channel_mainnet.db")
2347+
.addOnSuccessListener(new OnSuccessListener<String>() {
2348+
@Override
2349+
public void onSuccess(String s) {
2350+
LogUtils.e(TAG, "Channel fileId" + s);
2351+
mLoadingDialog.dismiss();
2352+
ToastUtils.showToast(mContext, "Backup Successfully");
2353+
}
2354+
})
2355+
.addOnFailureListener(exception ->
2356+
LogUtils.e(TAG, "Couldn't Save channel file.", exception));
2357+
}
2358+
}
2359+
22702360
@Override
22712361
protected void onDestroy() {
22722362
super.onDestroy();

0 commit comments

Comments
 (0)