Set MediaColumns.IS_PENDING when writing log zip (#2636)

This commit is contained in:
南宫雪珊 2023-07-24 10:54:15 +08:00 committed by GitHub
parent bee7938002
commit 06175bf499
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 8 additions and 11 deletions

View File

@ -21,9 +21,9 @@ package org.lsposed.manager.ui.fragment;
import android.annotation.SuppressLint; import android.annotation.SuppressLint;
import android.content.ActivityNotFoundException; import android.content.ActivityNotFoundException;
import android.content.ContentValues;
import android.os.Bundle; import android.os.Bundle;
import android.os.Handler; import android.provider.MediaStore;
import android.os.Looper;
import android.util.Log; import android.util.Log;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.Menu; import android.view.Menu;
@ -70,7 +70,6 @@ import rikka.material.app.LocaleDelegate;
import rikka.recyclerview.RecyclerViewKt; import rikka.recyclerview.RecyclerViewKt;
public class LogsFragment extends BaseFragment implements MenuProvider { public class LogsFragment extends BaseFragment implements MenuProvider {
private final Handler handler = new Handler(Looper.getMainLooper());
private FragmentPagerBinding binding; private FragmentPagerBinding binding;
private LogPageAdapter adapter; private LogPageAdapter adapter;
private MenuItem wordWrap; private MenuItem wordWrap;
@ -88,8 +87,13 @@ public class LogsFragment extends BaseFragment implements MenuProvider {
runAsync(() -> { runAsync(() -> {
var context = requireContext(); var context = requireContext();
var contentResolver = context.getContentResolver(); var contentResolver = context.getContentResolver();
var values = new ContentValues();
values.put(MediaStore.MediaColumns.IS_PENDING, 1);
contentResolver.update(uri, values, null, null);
try (var zipFd = contentResolver.openFileDescriptor(uri, "wt")) { try (var zipFd = contentResolver.openFileDescriptor(uri, "wt")) {
LSPManagerServiceHolder.getService().getLogs(zipFd); LSPManagerServiceHolder.getService().getLogs(zipFd);
values.put(MediaStore.MediaColumns.IS_PENDING, 0);
contentResolver.update(uri, values, null, null);
showHint(context.getString(R.string.logs_saved), true); showHint(context.getString(R.string.logs_saved), true);
} catch (Throwable e) { } catch (Throwable e) {
var cause = e.getCause(); var cause = e.getCause();
@ -178,12 +182,6 @@ public class LogsFragment extends BaseFragment implements MenuProvider {
} }
} }
@Override
public void onDestroy() {
handler.removeCallbacksAndMessages(null);
super.onDestroy();
}
public static class LogFragment extends BaseFragment { public static class LogFragment extends BaseFragment {
public static final int SCROLL_THRESHOLD = 500; public static final int SCROLL_THRESHOLD = 500;
protected boolean verbose; protected boolean verbose;
@ -300,8 +298,7 @@ public class LogsFragment extends BaseFragment implements MenuProvider {
void attachListeners() { void attachListeners() {
var parent = getParentFragment(); var parent = getParentFragment();
if (parent instanceof LogsFragment) { if (parent instanceof LogsFragment logsFragment) {
var logsFragment = (LogsFragment) parent;
logsFragment.binding.appBar.setLifted(!binding.recyclerView.getBorderViewDelegate().isShowingTopBorder()); logsFragment.binding.appBar.setLifted(!binding.recyclerView.getBorderViewDelegate().isShowingTopBorder());
binding.recyclerView.getBorderViewDelegate().setBorderVisibilityChangedListener((top, oldTop, bottom, oldBottom) -> logsFragment.binding.appBar.setLifted(!top)); binding.recyclerView.getBorderViewDelegate().setBorderVisibilityChangedListener((top, oldTop, bottom, oldBottom) -> logsFragment.binding.appBar.setLifted(!top));
logsFragment.setOptionsItemSelectListener(item -> { logsFragment.setOptionsItemSelectListener(item -> {