Skip to content

Commit eeb64a3

Browse files
committed
🐛 All Import buttons on Android do not work siyuan-note/siyuan#14545
Inserting images or files button on Android do not work siyuan-note/siyuan#14537
1 parent ee8e3a6 commit eeb64a3

File tree

1 file changed

+60
-62
lines changed

1 file changed

+60
-62
lines changed

app/src/main/java/org/b3log/siyuan/MainActivity.java

Lines changed: 60 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@
9191
* 主程序.
9292
*
9393
* @author <a href="https://88250.b3log.org">Liang Ding</a>
94-
* @version 1.1.1.5, Apr 2, 2025
94+
* @version 1.1.1.6, Apr 9, 2025
9595
* @since 1.0.0
9696
*/
9797
public class MainActivity extends AppCompatActivity implements com.blankj.utilcode.util.Utils.OnAppStatusChangedListener {
@@ -178,67 +178,6 @@ private void initUIElements() {
178178
bootDetailsText = findViewById(R.id.bootDetails);
179179
webView = findViewById(R.id.webView);
180180
webView.setBackgroundColor(Color.parseColor("#1e1e1e"));
181-
webView.setWebChromeClient(new WebChromeClient() {
182-
@Override
183-
public boolean onShowFileChooser(final WebView mWebView, final ValueCallback<Uri[]> filePathCallback, final FileChooserParams fileChooserParams) {
184-
if (uploadMessage != null) {
185-
uploadMessage.onReceiveValue(null);
186-
}
187-
188-
uploadMessage = filePathCallback;
189-
190-
if (fileChooserParams.isCaptureEnabled()) {
191-
if (Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.Q) {
192-
// 不支持 Android 10 以下
193-
Utils.showToast(MainActivity.this, "Capture is not supported on your device (Android 10+ required)");
194-
uploadMessage = null;
195-
return false;
196-
}
197-
198-
if (ContextCompat.checkSelfPermission(MainActivity.this, android.Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) {
199-
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
200-
builder.setTitle("权限申请 / Permission Request");
201-
builder.setMessage("需要相机权限以拍摄照片并插入到当前文档中 / Camera permission is required to take photos and insert them into the current document");
202-
builder.setPositiveButton("同意/Agree", (dialog, which) -> {
203-
ActivityCompat.requestPermissions(MainActivity.this, new String[]{android.Manifest.permission.CAMERA}, REQUEST_CAMERA);
204-
});
205-
builder.setNegativeButton("拒绝/Decline", (dialog, which) -> {
206-
Utils.showToast(MainActivity.this, "权限已被拒绝 / Permission denied");
207-
uploadMessage = null;
208-
});
209-
builder.setCancelable(false);
210-
builder.create().show();
211-
return true;
212-
}
213-
214-
final String[] permissions = {android.Manifest.permission.CAMERA};
215-
if (!hasPermissions(permissions)) {
216-
ActivityCompat.requestPermissions(MainActivity.this, permissions, REQUEST_CAMERA);
217-
return true;
218-
}
219-
220-
openCamera();
221-
return true;
222-
}
223-
224-
final Intent intent = fileChooserParams.createIntent();
225-
intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true);
226-
try {
227-
startActivityForResult(intent, REQUEST_SELECT_FILE);
228-
} catch (final Exception e) {
229-
uploadMessage = null;
230-
Utils.showToast(MainActivity.this, "Cannot open file chooser");
231-
return false;
232-
}
233-
return true;
234-
}
235-
236-
@Override
237-
public void onPermissionRequest(final PermissionRequest request) {
238-
request.grant(request.getResources());
239-
}
240-
241-
});
242181

243182
webView.setDownloadListener((url, userAgent, contentDisposition, mimetype, contentLength) -> {
244183
final Uri uri = Uri.parse(url);
@@ -332,6 +271,65 @@ public void onHideCustomView() {
332271
mCustomViewCallback.onCustomViewHidden();
333272
mCustomViewCallback = null;
334273
}
274+
275+
@Override
276+
public boolean onShowFileChooser(final WebView mWebView, final ValueCallback<Uri[]> filePathCallback, final FileChooserParams fileChooserParams) {
277+
if (uploadMessage != null) {
278+
uploadMessage.onReceiveValue(null);
279+
}
280+
281+
uploadMessage = filePathCallback;
282+
283+
if (fileChooserParams.isCaptureEnabled()) {
284+
if (Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.Q) {
285+
// 不支持 Android 10 以下
286+
Utils.showToast(MainActivity.this, "Capture is not supported on your device (Android 10+ required)");
287+
uploadMessage = null;
288+
return false;
289+
}
290+
291+
if (ContextCompat.checkSelfPermission(MainActivity.this, android.Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) {
292+
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
293+
builder.setTitle("权限申请 / Permission Request");
294+
builder.setMessage("需要相机权限以拍摄照片并插入到当前文档中 / Camera permission is required to take photos and insert them into the current document");
295+
builder.setPositiveButton("同意/Agree", (dialog, which) -> {
296+
ActivityCompat.requestPermissions(MainActivity.this, new String[]{android.Manifest.permission.CAMERA}, REQUEST_CAMERA);
297+
});
298+
builder.setNegativeButton("拒绝/Decline", (dialog, which) -> {
299+
Utils.showToast(MainActivity.this, "权限已被拒绝 / Permission denied");
300+
uploadMessage = null;
301+
});
302+
builder.setCancelable(false);
303+
builder.create().show();
304+
return true;
305+
}
306+
307+
final String[] permissions = {android.Manifest.permission.CAMERA};
308+
if (!hasPermissions(permissions)) {
309+
ActivityCompat.requestPermissions(MainActivity.this, permissions, REQUEST_CAMERA);
310+
return true;
311+
}
312+
313+
openCamera();
314+
return true;
315+
}
316+
317+
final Intent intent = fileChooserParams.createIntent();
318+
intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true);
319+
try {
320+
startActivityForResult(intent, REQUEST_SELECT_FILE);
321+
} catch (final Exception e) {
322+
uploadMessage = null;
323+
Utils.showToast(MainActivity.this, "Cannot open file chooser");
324+
return false;
325+
}
326+
return true;
327+
}
328+
329+
@Override
330+
public void onPermissionRequest(final PermissionRequest request) {
331+
request.grant(request.getResources());
332+
}
335333
});
336334

337335
final JSAndroid JSAndroid = new JSAndroid(this);

0 commit comments

Comments
 (0)