Skip to content

Commit 7394b52

Browse files
committed
display bookmark export file path android
1 parent 19d7076 commit 7394b52

File tree

5 files changed

+106
-31
lines changed

5 files changed

+106
-31
lines changed

android/java/org/chromium/chrome/browser/bookmarks/BraveBookmarkBridge.java

+6-3
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ class BraveBookmarkBridge extends BookmarkBridge {
1515
// Overridden Chromium's BookmarkBridge.mNativeBookmarkBridge
1616
private long mNativeBookmarkBridge;
1717
private WindowAndroid mWindowAndroid;
18+
private String mExportFilePath;
1819

1920
BraveBookmarkBridge(long nativeBookmarkBridge) {
2021
super(nativeBookmarkBridge);
@@ -28,7 +29,8 @@ public void bookmarksImported(boolean isSuccess) {
2829
@Override
2930
public void run() {
3031
BraveBookmarkUtils.showBookmarkImportExportDialog(
31-
(AppCompatActivity) mWindowAndroid.getContext().get(), true, isSuccess);
32+
(AppCompatActivity) mWindowAndroid.getContext().get(), true, isSuccess,
33+
null);
3234
}
3335
});
3436
}
@@ -42,8 +44,8 @@ public void bookmarksExported(boolean isSuccess) {
4244
@Override
4345
public void run() {
4446
BraveBookmarkUtils.showBookmarkImportExportDialog(
45-
(AppCompatActivity) mWindowAndroid.getContext().get(), false,
46-
isSuccess);
47+
(AppCompatActivity) mWindowAndroid.getContext().get(), false, isSuccess,
48+
mExportFilePath);
4749
}
4850
});
4951
}
@@ -57,6 +59,7 @@ public void importBookmarks(WindowAndroid windowAndroid, String importFilePath)
5759

5860
public void exportBookmarks(WindowAndroid windowAndroid, String exportFilePath) {
5961
mWindowAndroid = windowAndroid;
62+
mExportFilePath = exportFilePath;
6063
BraveBookmarkBridgeJni.get().exportBookmarks(
6164
mNativeBookmarkBridge, BraveBookmarkBridge.this, windowAndroid, exportFilePath);
6265
}

android/java/org/chromium/chrome/browser/bookmarks/BraveBookmarkImportExportDialogFragment.java

+41-8
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,10 @@
66
package org.chromium.chrome.browser.bookmarks;
77

88
import android.app.Activity;
9+
import android.content.Intent;
910
import android.graphics.Color;
1011
import android.graphics.drawable.ColorDrawable;
12+
import android.net.Uri;
1113
import android.os.Bundle;
1214
import android.view.LayoutInflater;
1315
import android.view.View;
@@ -24,21 +26,26 @@
2426
import org.chromium.chrome.browser.util.TabUtils;
2527
import org.chromium.ui.base.DeviceFormFactor;
2628

29+
import java.io.File;
30+
2731
public class BraveBookmarkImportExportDialogFragment
2832
extends BraveDialogFragment implements View.OnClickListener {
2933
private static final String IS_IMPORT = "is_import";
3034
private static final String IS_SUCCESS = "is_success";
35+
private static final String EXPORT_FILE_PATH = "export_filepath";
3136

3237
private boolean mIsImport;
3338
private boolean mIsSuccess;
39+
private String mExportFilePath;
3440

3541
public static BraveBookmarkImportExportDialogFragment newInstance(
36-
boolean isImport, boolean isSuccess) {
42+
boolean isImport, boolean isSuccess, String exportFilePath) {
3743
final BraveBookmarkImportExportDialogFragment fragment =
3844
new BraveBookmarkImportExportDialogFragment();
3945
final Bundle args = new Bundle();
4046
args.putBoolean(IS_IMPORT, isImport);
4147
args.putBoolean(IS_SUCCESS, isSuccess);
48+
args.putString(EXPORT_FILE_PATH, exportFilePath);
4249
fragment.setArguments(args);
4350
return fragment;
4451
}
@@ -50,6 +57,7 @@ public void onCreate(@Nullable Bundle savedInstanceState) {
5057
if (getArguments() != null) {
5158
mIsImport = getArguments().getBoolean(IS_IMPORT);
5259
mIsSuccess = getArguments().getBoolean(IS_SUCCESS);
60+
mExportFilePath = getArguments().getString(EXPORT_FILE_PATH);
5361
}
5462
}
5563

@@ -69,20 +77,45 @@ public View onCreateView(
6977
@Override
7078
public void onViewCreated(View view, Bundle savedInstanceState) {
7179
ImageView imageView = view.findViewById(R.id.imageView);
72-
TextView tvDesc = view.findViewById(R.id.tv_bookmark_desc);
80+
TextView tvTitle = view.findViewById(R.id.tv_title);
81+
TextView tvDesc = view.findViewById(R.id.tv_desc);
7382

7483
imageView.setImageResource(mIsSuccess ? R.drawable.ic_bookmark_import_export_success
7584
: R.drawable.ic_bookmark_import_export_failed);
7685

7786
if (mIsImport) {
78-
tvDesc.setText(mIsSuccess ? R.string.import_bookmarks_success
79-
: R.string.import_bookmarks_failed);
87+
tvTitle.setText(mIsSuccess ? R.string.import_bookmarks_success_title
88+
: R.string.import_bookmarks_fail_title);
89+
tvDesc.setText(mIsSuccess ? R.string.import_bookmarks_success_body
90+
: R.string.import_bookmarks_fail_body);
8091
} else {
81-
tvDesc.setText(mIsSuccess ? R.string.export_bookmarks_success
82-
: R.string.export_bookmarks_failed);
92+
tvTitle.setText(mIsSuccess ? R.string.export_bookmarks_success_title
93+
: R.string.export_bookmarks_fail_title);
94+
if (mIsSuccess) {
95+
tvDesc.setText(getResources().getString(
96+
R.string.export_bookmarks_success_body, mExportFilePath));
97+
Button openBtn = view.findViewById(R.id.btn_open);
98+
openBtn.setVisibility(View.VISIBLE);
99+
openBtn.setOnClickListener(btn -> {
100+
Activity activity = getActivity();
101+
if (activity != null) {
102+
dismiss();
103+
int pathIndex = mExportFilePath.lastIndexOf(File.separator);
104+
if (pathIndex != -1) {
105+
String path = mExportFilePath.substring(0, pathIndex);
106+
Uri uri = Uri.parse(path);
107+
Intent intent = new Intent(Intent.ACTION_VIEW);
108+
intent.setDataAndType(uri, "*/*");
109+
activity.startActivity(intent);
110+
}
111+
}
112+
});
113+
} else {
114+
tvDesc.setText(R.string.export_bookmarks_fail_body);
115+
}
83116
}
84-
Button okBtn = view.findViewById(R.id.btn_ok);
85-
okBtn.setOnClickListener(this);
117+
Button closeBtn = view.findViewById(R.id.btn_close);
118+
closeBtn.setOnClickListener(this);
86119
}
87120

88121
@Override

android/java/org/chromium/chrome/browser/bookmarks/BraveBookmarkUtils.java

+4-3
Original file line numberDiff line numberDiff line change
@@ -68,11 +68,12 @@ public static void showBookmarkManagerOnPhone(
6868
}
6969
}
7070

71-
public static void showBookmarkImportExportDialog(
72-
AppCompatActivity appCompatActivity, boolean isImport, boolean isSuccess) {
71+
public static void showBookmarkImportExportDialog(AppCompatActivity appCompatActivity,
72+
boolean isImport, boolean isSuccess, String exportFilePath) {
7373
try {
7474
BraveBookmarkImportExportDialogFragment dialogFragment =
75-
BraveBookmarkImportExportDialogFragment.newInstance(isImport, isSuccess);
75+
BraveBookmarkImportExportDialogFragment.newInstance(
76+
isImport, isSuccess, exportFilePath);
7677
dialogFragment.show(appCompatActivity.getSupportFragmentManager(),
7778
"BraveBookmarkImportExportDialogFragment");
7879
} catch (IllegalStateException e) {

android/java/res/layout/fragment_brave_bookmark_import_export_dialog.xml

+33-10
Original file line numberDiff line numberDiff line change
@@ -5,53 +5,76 @@
55
You can obtain one at https://mozilla.org/MPL/2.0/.
66
-->
77

8-
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
8+
<androidx.constraintlayout.widget.ConstraintLayout
9+
xmlns:android="http://schemas.android.com/apk/res/android"
910
xmlns:app="http://schemas.android.com/apk/res-auto"
1011
android:layout_width="match_parent"
1112
android:layout_height="wrap_content"
1213
android:paddingHorizontal="24dp"
1314
android:paddingVertical="16dp"
14-
android:orientation="vertical"
1515
android:background="@drawable/rounded_bookmark_import_export_dialog_bg">
1616

1717
<ImageView
1818
android:id="@+id/imageView"
1919
android:layout_width="wrap_content"
2020
android:layout_height="wrap_content"
21-
android:layout_gravity="center_horizontal"
21+
app:layout_constraintTop_toTopOf="parent"
22+
app:layout_constraintStart_toStartOf="parent"
23+
app:layout_constraintEnd_toEndOf="parent"
2224
app:tint="@color/bookmark_import_export_dialog_secondary_color"
2325
android:contentDescription="@null"/>
2426

2527
<TextView
28+
android:id="@+id/tv_title"
2629
android:layout_width="match_parent"
2730
android:layout_height="wrap_content"
2831
android:gravity="center_horizontal"
29-
android:text="@string/bookmarks"
3032
android:textSize="16sp"
33+
app:layout_constraintTop_toBottomOf="@id/imageView"
3134
android:layout_marginTop="10dp"
3235
android:textColor="@color/bookmark_import_export_dialog_title_color"
3336
android:textStyle="bold" />
3437

3538
<TextView
36-
android:id="@+id/tv_bookmark_desc"
39+
android:id="@+id/tv_desc"
3740
android:layout_width="match_parent"
3841
android:layout_height="wrap_content"
3942
android:gravity="center_horizontal"
4043
android:textSize="16sp"
44+
app:layout_constraintTop_toBottomOf="@id/tv_title"
4145
android:layout_marginTop="5dp"
4246
android:textColor="@color/bookmark_import_export_dialog_secondary_color"/>
4347

4448
<android.widget.Button
45-
android:id="@+id/btn_ok"
49+
android:id="@+id/btn_close"
4650
android:layout_width="wrap_content"
4751
android:layout_height="wrap_content"
48-
android:layout_gravity="center_horizontal"
4952
android:layout_marginTop="10dp"
53+
app:layout_constraintTop_toBottomOf="@id/tv_desc"
54+
app:layout_constraintStart_toStartOf="parent"
55+
app:layout_constraintEnd_toStartOf="@id/btn_open"
5056
android:background="@android:color/transparent"
51-
android:text="@string/ok"
57+
android:textAllCaps="false"
58+
android:text="@string/close"
5259
android:textColor="@color/bookmark_import_export_dialog_button_color"
5360
android:textSize="16sp"
54-
android:textStyle="bold"
5561
style="?android:attr/borderlessButtonStyle"/>
5662

57-
</LinearLayout>
63+
<android.widget.Button
64+
android:id="@+id/btn_open"
65+
android:layout_width="wrap_content"
66+
android:layout_height="wrap_content"
67+
android:layout_marginTop="10dp"
68+
android:layout_marginStart="16dp"
69+
app:layout_constraintTop_toBottomOf="@id/tv_desc"
70+
app:layout_constraintStart_toEndOf="@id/btn_close"
71+
app:layout_constraintEnd_toEndOf="parent"
72+
android:background="@android:color/transparent"
73+
android:textAllCaps="false"
74+
android:text="@string/open_folder"
75+
android:textColor="@color/bookmark_import_export_dialog_button_color"
76+
android:textSize="16sp"
77+
android:visibility="gone"
78+
style="?android:attr/borderlessButtonStyle"/>
79+
80+
</androidx.constraintlayout.widget.ConstraintLayout>

browser/ui/android/strings/android_brave_strings.grd

+22-7
Original file line numberDiff line numberDiff line change
@@ -1278,17 +1278,32 @@ This file contains all "about" strings. It is set to NOT be translated, in tran
12781278
<message name="IDS_IMPORT_BOOKMARKS_SELECT_FILE" desc="Import Bookmarks file chooser text">
12791279
Select a File to Import bookmarks
12801280
</message>
1281-
<message name="IDS_IMPORT_BOOKMARKS_SUCCESS" desc="Import Bookmarks success text message.">
1281+
<message name="IDS_EXPORT_BOOKMARKS_SUCCESS_TITLE" desc="Export Bookmarks success title text.">
1282+
Export successful
1283+
</message>
1284+
<message name="IDS_EXPORT_BOOKMARKS_SUCCESS_BODY" desc="Export Bookmarks success text message.">
1285+
Bookmarks exported to <ph name="EXPORT_FILE_PATH">%1$s<ex>/Download/bookmarks.html</ex></ph>
1286+
</message>
1287+
<message name="IDS_EXPORT_BOOKMARKS_FAIL_TITLE" desc="Export Bookmarks fail title text.">
1288+
Export failed
1289+
</message>
1290+
<message name="IDS_EXPORT_BOOKMARKS_FAIL_BODY" desc="Export Bookmarks fail text message.">
1291+
Bookmarks export failed. Please try again.
1292+
</message>
1293+
<message name="IDS_IMPORT_BOOKMARKS_SUCCESS_TITLE" desc="Import Bookmarks success title text.">
1294+
Import successful
1295+
</message>
1296+
<message name="IDS_IMPORT_BOOKMARKS_SUCCESS_BODY" desc="Import Bookmarks success text message.">
12821297
Bookmarks imported successfully.
12831298
</message>
1284-
<message name="IDS_IMPORT_BOOKMARKS_FAILED" desc="Import Bookmarks failed text message.">
1285-
Bookmark import failed.
1299+
<message name="IDS_IMPORT_BOOKMARKS_FAIL_TITLE" desc="Import Bookmarks fail title text.">
1300+
Import failed
12861301
</message>
1287-
<message name="IDS_EXPORT_BOOKMARKS_FAILED" desc="Export Bookmarks failed text message.">
1288-
Bookmark export failed.
1302+
<message name="IDS_IMPORT_BOOKMARKS_FAIL_BODY" desc="Import Bookmarks fail text message.">
1303+
Bookmark import failed. Please try again.
12891304
</message>
1290-
<message name="IDS_EXPORT_BOOKMARKS_SUCCESS" desc="Export Bookmarks success text message.">
1291-
Bookmarks exported successfully.
1305+
<message name="IDS_OPEN_FOLDER" desc="Open folder button text for export bookmarks success.">
1306+
Open folder
12921307
</message>
12931308
<!-- Sync Infobar -->
12941309
<message name="IDS_BRAVE_SYNC_V2_MIGRATE_INFOBAR_MESSAGE" desc="Message text shown to users who used a previous version of Brave Sync and need to perform setup again for the new version.">

0 commit comments

Comments
 (0)