Merge pull request #23929 from brave/option_to_update_filter_list_android
Option to update filter list android
This commit is contained in:
@@ -32,6 +32,7 @@ import org.chromium.components.browser_ui.settings.SettingsLauncher;
|
||||
import org.chromium.mojo.bindings.ConnectionErrorHandler;
|
||||
import org.chromium.mojo.system.MojoException;
|
||||
import org.chromium.mojo_base.mojom.Value;
|
||||
import org.chromium.ui.widget.Toast;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
@@ -46,6 +47,7 @@ public class ContentFilteringFragment extends BravePreferenceFragment
|
||||
private Value mFilterLists[];
|
||||
private MenuItem mEditItem;
|
||||
private MenuItem mDoneItem;
|
||||
private MenuItem mUpdateFilterListItem;
|
||||
private boolean mIsMenuLoaded;
|
||||
private boolean mIsGetSubscriptionsLoaded;
|
||||
|
||||
@@ -67,6 +69,7 @@ public class ContentFilteringFragment extends BravePreferenceFragment
|
||||
super.onActivityCreated(savedInstanceState);
|
||||
setData();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAttach(@NonNull Context context) {
|
||||
super.onAttach(context);
|
||||
@@ -204,6 +207,7 @@ public class ContentFilteringFragment extends BravePreferenceFragment
|
||||
inflater.inflate(R.menu.menu_custom_filter_list, menu);
|
||||
mEditItem = menu.findItem(R.id.menu_id_edit);
|
||||
mDoneItem = menu.findItem(R.id.menu_id_done);
|
||||
mUpdateFilterListItem = menu.findItem(R.id.update_filter_list_id);
|
||||
mIsMenuLoaded = true;
|
||||
if (mIsGetSubscriptionsLoaded) {
|
||||
checkForEmptySubscriptionFilters(true);
|
||||
@@ -219,6 +223,21 @@ public class ContentFilteringFragment extends BravePreferenceFragment
|
||||
} else if (id == R.id.menu_id_done) {
|
||||
isEditSelected(false);
|
||||
return true;
|
||||
} else if (item.getItemId() == R.id.update_filter_list_id) {
|
||||
if (mFilterListAndroidHandler != null) {
|
||||
mFilterListAndroidHandler.updateFilterLists(
|
||||
isSuccess -> {
|
||||
if (isSuccess) {
|
||||
setData();
|
||||
}
|
||||
String message =
|
||||
isSuccess
|
||||
? getString(R.string.update_filter_list_success_text)
|
||||
: getString(R.string.update_filter_list_fail_text);
|
||||
Toast.makeText(getActivity(), message, Toast.LENGTH_SHORT).show();
|
||||
});
|
||||
}
|
||||
return true;
|
||||
}
|
||||
return super.onOptionsItemSelected(item);
|
||||
}
|
||||
@@ -226,6 +245,7 @@ public class ContentFilteringFragment extends BravePreferenceFragment
|
||||
private void isEditSelected(boolean isEditable) {
|
||||
mDoneItem.setVisible(isEditable);
|
||||
mEditItem.setVisible(!isEditable);
|
||||
mUpdateFilterListItem.setVisible(!isEditable);
|
||||
mAdapter.setEditable(isEditable);
|
||||
}
|
||||
|
||||
|
||||
@@ -24,4 +24,10 @@
|
||||
android:visible="false"
|
||||
app:showAsAction="ifRoom" />
|
||||
|
||||
<item
|
||||
android:id="@+id/update_filter_list_id"
|
||||
android:title="@string/update"
|
||||
app:iconTint="@color/add_custom_filter_tint_color"
|
||||
app:showAsAction="ifRoom" />
|
||||
|
||||
</menu>
|
||||
|
||||
@@ -3983,6 +3983,12 @@ If you don't accept this request, VPN will not reconnect and your internet conne
|
||||
<message name="IDS_IN_APP_UPDATE_TEXT" desc="Text for in app update snackbar">
|
||||
Update is downloaded.
|
||||
</message>
|
||||
<message name="IDS_UPDATE_FILTER_LIST_SUCCESS_TEXT" desc="Text to notify users for updating filterlist successfully">
|
||||
Filter list is updated successfully
|
||||
</message>
|
||||
<message name="IDS_UPDATE_FILTER_LIST_FAIL_TEXT" desc="Text to notify users for the failure of updating filterlist">
|
||||
Filter list could not be updated. Please try again
|
||||
</message>
|
||||
</messages>
|
||||
</release>
|
||||
</grit>
|
||||
|
||||
@@ -123,4 +123,9 @@ void FilterListService::UpdateCustomFilters(
|
||||
custom_filters));
|
||||
}
|
||||
|
||||
void FilterListService::UpdateFilterLists(UpdateFilterListsCallback callback) {
|
||||
ad_block_service_->component_service_manager()->UpdateFilterLists(
|
||||
std::move(callback));
|
||||
}
|
||||
|
||||
} // namespace brave_shields
|
||||
|
||||
@@ -41,11 +41,12 @@ class FilterListService : public KeyedService,
|
||||
void GetCustomFilters(GetCustomFiltersCallback callback) override;
|
||||
void UpdateCustomFilters(const std::string& custom_filters,
|
||||
UpdateCustomFiltersCallback callback) override;
|
||||
void UpdateFilterLists(UpdateFilterListsCallback callback) override;
|
||||
|
||||
private:
|
||||
raw_ptr<AdBlockService> ad_block_service_ = nullptr;
|
||||
mojo::ReceiverSet<mojom::FilterListAndroidHandler> receivers_;
|
||||
base::WeakPtrFactory<FilterListService> discovery_weak_factory_{this};
|
||||
base::WeakPtrFactory<FilterListService> weak_factory_{this};
|
||||
|
||||
FilterListService(const FilterListService&) = delete;
|
||||
FilterListService& operator=(const FilterListService&) = delete;
|
||||
|
||||
@@ -30,6 +30,7 @@ interface FilterListAndroidHandler {
|
||||
GetFilterLists() => (mojo_base.mojom.ListValue filterLists);
|
||||
GetCustomFilters() => (string custom_filters);
|
||||
UpdateCustomFilters(string custom_filters) => (bool is_updated);
|
||||
UpdateFilterLists() => (bool is_updated);
|
||||
};
|
||||
|
||||
const string kSwitchToAppUuid = "2F3DCE16-A19A-493C-A88F-2E110FBD37D6";
|
||||
|
||||
Reference in New Issue
Block a user