Skip to content

Commit 3f19408

Browse files
committed
Optimize the function of Google drive.
1 parent 2ee3168 commit 3f19408

File tree

8 files changed

+197
-24
lines changed

8 files changed

+197
-24
lines changed

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

Lines changed: 29 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -250,13 +250,25 @@ public void onSuccess(FileList fileList) {
250250
list.add(fileList.getFiles().get(i));
251251
}
252252
}
253+
removeDuplicate(list);
253254
for (int j = 0; j < list.size(); j++) {
254-
if (list.get(j).getName().contains(User.getInstance().getWalletAddress(mContext))) {
255-
backupList.add(list.get(j));
255+
if (!list.get(j).getName().startsWith("1")) {
256+
mDriveServiceHelper.deleteFile(list.get(j).getId());
257+
} else {
258+
if (list.get(j).getName().contains(User.getInstance().getWalletAddress(mContext))) {
259+
backupList.add(list.get(j));
260+
}
256261
}
257262
}
258263
if (backupList.size() == 0) {
259264
createAddressFile();
265+
} else if (backupList.size() == 1) {
266+
mDriveServiceHelper.deleteFile(backupList.get(0).getId());
267+
createAddressFile();
268+
} else if (backupList.size() == 2) {
269+
mDriveServiceHelper.deleteFile(backupList.get(0).getId());
270+
mDriveServiceHelper.deleteFile(backupList.get(1).getId());
271+
createAddressFile();
260272
} else {
261273
saveAddressFile(backupList.get(1).getId(), backupList.get(0).getId(), backupList.get(2).getId());
262274
}
@@ -375,6 +387,21 @@ public void onSuccess(String s) {
375387
}
376388
}
377389

390+
/**
391+
* @备注: 循环删除重复数据
392+
* @description: Circular deletion of duplicate data
393+
*/
394+
public static void removeDuplicate(List<com.google.api.services.drive.model.File> list) {
395+
for (int i = 0; i < list.size() - 1; i++) {
396+
for (int j = list.size() - 1; j > i; j--) {
397+
if (list.get(j).getName().equals(list.get(i).getName())) {
398+
list.remove(j);
399+
}
400+
}
401+
}
402+
System.out.println(list);
403+
}
404+
378405
@Override
379406
protected void onDestroy() {
380407
super.onDestroy();

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

Lines changed: 41 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,7 @@
8383
import com.omni.wallet_mainnet.ui.activity.channel.ChannelsActivity;
8484
import com.omni.wallet_mainnet.utils.CopyUtil;
8585
import com.omni.wallet_mainnet.utils.DriveServiceHelper;
86+
import com.omni.wallet_mainnet.utils.FilesUtils;
8687
import com.omni.wallet_mainnet.utils.GetResourceUtil;
8788
import com.omni.wallet_mainnet.utils.MoveCacheFileToFileObd;
8889
import com.omni.wallet_mainnet.utils.TimeFormatUtil;
@@ -109,6 +110,7 @@
109110
import java.text.DecimalFormat;
110111
import java.text.ParseException;
111112
import java.util.ArrayList;
113+
import java.util.Calendar;
112114
import java.util.Collections;
113115
import java.util.List;
114116

@@ -246,8 +248,16 @@ protected void initData() {
246248
}
247249
EventBus.getDefault().register(this);
248250
if (User.getInstance().isBackUp(mContext) == true) {
249-
mLoadingDialog.show();
250-
showPageData();
251+
String downloadDirectoryPath = mContext.getExternalFilesDir(null) + "/obd" + ConstantWithNetwork.getInstance(ConstantInOB.networkType).getDownloadDirectory();
252+
long nowMillis = Calendar.getInstance().getTimeInMillis();
253+
long fileHeaderLastEdit = FilesUtils.fileLastUpdate(downloadDirectoryPath + ConstantInOB.blockHeaderBin);
254+
if (nowMillis - fileHeaderLastEdit > ConstantInOB.WEEK_MILLIS) {
255+
DataStatusDialog mDataStatusDialog = new DataStatusDialog(mContext);
256+
mDataStatusDialog.show();
257+
} else {
258+
mLoadingDialog.show();
259+
showPageData();
260+
}
251261
}
252262
if (User.getInstance().isNeutrinoDbChecked(mContext)) {
253263
// TODO: 2023/5/31 暂定
@@ -1369,13 +1379,25 @@ public void onSuccess(FileList fileList) {
13691379
list.add(fileList.getFiles().get(i));
13701380
}
13711381
}
1382+
removeDuplicate(list);
13721383
for (int j = 0; j < list.size(); j++) {
1373-
if (list.get(j).getName().contains(User.getInstance().getWalletAddress(mContext))) {
1374-
backupList.add(list.get(j));
1384+
if (!list.get(j).getName().startsWith("1")) {
1385+
mDriveServiceHelper.deleteFile(list.get(j).getId());
1386+
} else {
1387+
if (list.get(j).getName().contains(User.getInstance().getWalletAddress(mContext))) {
1388+
backupList.add(list.get(j));
1389+
}
13751390
}
13761391
}
13771392
if (backupList.size() == 0) {
13781393
createAddressFile();
1394+
} else if (backupList.size() == 1) {
1395+
mDriveServiceHelper.deleteFile(backupList.get(0).getId());
1396+
createAddressFile();
1397+
} else if (backupList.size() == 2) {
1398+
mDriveServiceHelper.deleteFile(backupList.get(0).getId());
1399+
mDriveServiceHelper.deleteFile(backupList.get(1).getId());
1400+
createAddressFile();
13791401
} else {
13801402
saveAddressFile(backupList.get(1).getId(), backupList.get(0).getId(), backupList.get(2).getId());
13811403
}
@@ -1500,6 +1522,21 @@ public void onSuccess(String s) {
15001522
}
15011523
}
15021524

1525+
/**
1526+
* @备注: 循环删除重复数据
1527+
* @description: Circular deletion of duplicate data
1528+
*/
1529+
public static void removeDuplicate(List<com.google.api.services.drive.model.File> list) {
1530+
for (int i = 0; i < list.size() - 1; i++) {
1531+
for (int j = list.size() - 1; j > i; j--) {
1532+
if (list.get(j).getName().equals(list.get(i).getName())) {
1533+
list.remove(j);
1534+
}
1535+
}
1536+
}
1537+
System.out.println(list);
1538+
}
1539+
15031540
/**
15041541
* Start node
15051542
* 启动节点

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

Lines changed: 29 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2232,13 +2232,25 @@ public void onSuccess(FileList fileList) {
22322232
list.add(fileList.getFiles().get(i));
22332233
}
22342234
}
2235+
removeDuplicateFile(list);
22352236
for (int j = 0; j < list.size(); j++) {
2236-
if (list.get(j).getName().contains(User.getInstance().getWalletAddress(mContext))) {
2237-
backupList.add(list.get(j));
2237+
if (!list.get(j).getName().startsWith("1")) {
2238+
mDriveServiceHelper.deleteFile(list.get(j).getId());
2239+
} else {
2240+
if (list.get(j).getName().contains(User.getInstance().getWalletAddress(mContext))) {
2241+
backupList.add(list.get(j));
2242+
}
22382243
}
22392244
}
22402245
if (backupList.size() == 0) {
22412246
createAddressFile();
2247+
} else if (backupList.size() == 1) {
2248+
mDriveServiceHelper.deleteFile(backupList.get(0).getId());
2249+
createAddressFile();
2250+
} else if (backupList.size() == 2) {
2251+
mDriveServiceHelper.deleteFile(backupList.get(0).getId());
2252+
mDriveServiceHelper.deleteFile(backupList.get(1).getId());
2253+
createAddressFile();
22422254
} else {
22432255
saveAddressFile(backupList.get(1).getId(), backupList.get(0).getId(), backupList.get(2).getId());
22442256
}
@@ -2363,6 +2375,21 @@ public void onSuccess(String s) {
23632375
}
23642376
}
23652377

2378+
/**
2379+
* @备注: 循环删除重复数据
2380+
* @description: Circular deletion of duplicate data
2381+
*/
2382+
public static void removeDuplicateFile(List<com.google.api.services.drive.model.File> list) {
2383+
for (int i = 0; i < list.size() - 1; i++) {
2384+
for (int j = list.size() - 1; j > i; j--) {
2385+
if (list.get(j).getName().equals(list.get(i).getName())) {
2386+
list.remove(j);
2387+
}
2388+
}
2389+
}
2390+
System.out.println(list);
2391+
}
2392+
23662393
@Override
23672394
protected void onDestroy() {
23682395
super.onDestroy();

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

Lines changed: 50 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -216,18 +216,27 @@ public void clickStart() {
216216
return;
217217
}
218218
LogUtils.e("==========list=========", list.toString());
219-
List<com.google.api.services.drive.model.File> backupList = new ArrayList<>();
220-
for (int i = 0; i < list.size(); i++) {
221-
if (list.get(i).getName().contains(checkAddress)) {
222-
backupList.add(list.get(i));
223-
}
224-
}
225-
LogUtils.e("==========backupList=========", backupList.toString());
226-
if (backupList.size() == 0) {
219+
if (list.size() == 0) {
227220
ToastUtils.showToast(mContext, "No backup files found.");
228221
} else {
229-
mLoadingDialog.show();
230-
readAddressFile(backupList.get(1).getId(), backupList.get(0).getId(), backupList.get(2).getId());
222+
removeDuplicateFile(list);
223+
List<com.google.api.services.drive.model.File> backupList = new ArrayList<>();
224+
for (int i = 0; i < list.size(); i++) {
225+
if (!list.get(i).getName().contains(checkAddress)) {
226+
mLoadingDialog.show();
227+
readAddressFile(list.get(1).getId(), list.get(0).getId(), list.get(2).getId());
228+
return;
229+
} else {
230+
backupList.add(list.get(i));
231+
}
232+
}
233+
LogUtils.e("==========backupList=========", backupList.toString());
234+
if (backupList.size() == 0) {
235+
ToastUtils.showToast(mContext, "No backup files found.");
236+
} else {
237+
mLoadingDialog.show();
238+
readAddressFile(backupList.get(1).getId(), backupList.get(0).getId(), backupList.get(2).getId());
239+
}
231240
}
232241
} else if (tag == 2) {
233242
// 本地恢复(Local restore)
@@ -346,6 +355,7 @@ public void onSuccess(FileList fileList) {
346355
}
347356
}
348357
}
358+
removeDuplicate(mData);
349359
mAdapter.notifyDataSetChanged();
350360
mGoogleDriveFileLayout.setVisibility(View.VISIBLE);
351361
mLocalDirectoryFileLayout.setVisibility(View.GONE);
@@ -445,4 +455,34 @@ public void binaryToFile(byte[] bytes, String filePath) {
445455
}
446456
}
447457
}
458+
459+
/**
460+
* @备注: 循环删除重复数据
461+
* @description: Circular deletion of duplicate data
462+
*/
463+
public static void removeDuplicate(List list) {
464+
for (int i = 0; i < list.size() - 1; i++) {
465+
for (int j = list.size() - 1; j > i; j--) {
466+
if (list.get(j).equals(list.get(i))) {
467+
list.remove(j);
468+
}
469+
}
470+
}
471+
System.out.println(list);
472+
}
473+
474+
/**
475+
* @备注: 循环删除重复数据
476+
* @description: Circular deletion of duplicate data
477+
*/
478+
public static void removeDuplicateFile(List<com.google.api.services.drive.model.File> list) {
479+
for (int i = 0; i < list.size() - 1; i++) {
480+
for (int j = list.size() - 1; j > i; j--) {
481+
if (list.get(j).getName().equals(list.get(i).getName())) {
482+
list.remove(j);
483+
}
484+
}
485+
}
486+
System.out.println(list);
487+
}
448488
}

app/src/main/java/com/omni/wallet_mainnet/ui/activity/channel/ChannelsActivity.java

Lines changed: 29 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -673,13 +673,25 @@ public void onSuccess(FileList fileList) {
673673
list.add(fileList.getFiles().get(i));
674674
}
675675
}
676+
removeDuplicate(list);
676677
for (int j = 0; j < list.size(); j++) {
677-
if (list.get(j).getName().contains(User.getInstance().getWalletAddress(mContext))) {
678-
backupList.add(list.get(j));
678+
if (!list.get(j).getName().startsWith("1")) {
679+
mDriveServiceHelper.deleteFile(list.get(j).getId());
680+
} else {
681+
if (list.get(j).getName().contains(User.getInstance().getWalletAddress(mContext))) {
682+
backupList.add(list.get(j));
683+
}
679684
}
680685
}
681686
if (backupList.size() == 0) {
682687
createAddressFile();
688+
} else if (backupList.size() == 1) {
689+
mDriveServiceHelper.deleteFile(backupList.get(0).getId());
690+
createAddressFile();
691+
} else if (backupList.size() == 2) {
692+
mDriveServiceHelper.deleteFile(backupList.get(0).getId());
693+
mDriveServiceHelper.deleteFile(backupList.get(1).getId());
694+
createAddressFile();
683695
} else {
684696
saveAddressFile(backupList.get(1).getId(), backupList.get(0).getId(), backupList.get(2).getId());
685697
}
@@ -804,6 +816,21 @@ public void onSuccess(String s) {
804816
}
805817
}
806818

819+
/**
820+
* @备注: 循环删除重复数据
821+
* @description: Circular deletion of duplicate data
822+
*/
823+
public static void removeDuplicate(List<com.google.api.services.drive.model.File> list) {
824+
for (int i = 0; i < list.size() - 1; i++) {
825+
for (int j = list.size() - 1; j > i; j--) {
826+
if (list.get(j).getName().equals(list.get(i).getName())) {
827+
list.remove(j);
828+
}
829+
}
830+
}
831+
System.out.println(list);
832+
}
833+
807834
@Override
808835
protected void onDestroy() {
809836
super.onDestroy();

app/src/main/java/com/omni/wallet_mainnet/utils/DriveServiceHelper.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -197,6 +197,11 @@ public Task<String> saveDbFile(String fileId, String filePath, String fileName)
197197
});
198198
}
199199

200+
public Task<Void> deleteFile(String fileId) {
201+
return Tasks.call(mExecutor, () ->
202+
mDriveService.files().delete(fileId).execute());
203+
}
204+
200205
/**
201206
* Returns a {@link FileList} containing all the visible files in the user's My Drive.
202207
*

app/src/main/java/com/omni/wallet_mainnet/view/dialog/DataStatusDialog.java

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,8 @@ public void show() {
5151
mAlertDialog = new AlertDialog.Builder(mContext, R.style.dialog_translucent_theme)
5252
.setContentView(R.layout.layout_dialog_data_status)
5353
.setAnimation(R.style.popup_anim_style)
54+
.setCanceledOnTouchOutside(false)
55+
.setCancelable(false)
5456
.fullWidth()
5557
.fullHeight()
5658
.create();
@@ -65,7 +67,7 @@ public void show() {
6567
mProgressBar = mAlertDialog.findViewById(R.id.progressbar);
6668

6769
if (User.getInstance().isNeutrinoDbChecked(mContext)) {
68-
doExplainTv.setText(R.string.download_db);
70+
doExplainTv.setText("(3/3)" + mContext.getString(R.string.download_db));
6971
double percent = (100 / 100 * 100);
7072
String percentString = String.format("%.2f", percent) + "%";
7173
syncPercentView.setText(percentString);
@@ -238,7 +240,15 @@ public void getNeutrinoFile() {
238240

239241
@Subscribe(threadMode = ThreadMode.MAIN)
240242
public void onDownloadEvent(DownloadEvent event) {
241-
doExplainTv.setText(event.getFileName());
243+
if (event.getFileName().equals(mContext.getString(R.string.download_header))){
244+
doExplainTv.setText("(1/3)" + event.getFileName());
245+
} else if (event.getFileName().equals(mContext.getString(R.string.download_filter_header))) {
246+
doExplainTv.setText("(2/3)" + event.getFileName());
247+
} else if (event.getFileName().equals(mContext.getString(R.string.download_db))) {
248+
doExplainTv.setText("(3/3)" + event.getFileName());
249+
} else {
250+
doExplainTv.setText(event.getFileName());
251+
}
242252
double percent = (event.getCurrent() / event.getTotal() * 100);
243253
String percentString = String.format("%.2f", percent) + "%";
244254
syncPercentView.setText(percentString);

config.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ ext {
66
targetSdkVersion: 28,
77
compileVersion : 28,
88
buildToolVersion: "28.0.3",
9-
versionCode : 4,
10-
versionName : "0.1.3"
9+
versionCode : 5,
10+
versionName : "0.1.4"
1111
]
1212
// 依赖相关版本控制
1313
depVersion = [

0 commit comments

Comments
 (0)