Merge pull request #23929 from brave/option_to_update_filter_list_android

Option to update filter list android
This commit is contained in:
Deep Pandya
2024-05-31 14:12:47 -04:00
committed by GitHub
6 changed files with 40 additions and 1 deletions
@@ -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";