Skip to content

Add warning banner about ongoing google certification for android apps#13282

Merged
TobiGr merged 2 commits intoTeamNewPipe:devfrom
dustdfg:keep_android_open
Feb 26, 2026
Merged

Add warning banner about ongoing google certification for android apps#13282
TobiGr merged 2 commits intoTeamNewPipe:devfrom
dustdfg:keep_android_open

Conversation

@dustdfg
Copy link
Contributor

@dustdfg dustdfg commented Feb 22, 2026

What is it?

  • Bugfix (user facing)
  • Feature (user facing) ⚠️ Your PR must target the refactor branch
  • Codebase improvement (dev facing)
  • Meta improvement to the project (dev facing)

Description of the changes in your PR

  • Add warning banner about ongoing google certification for android apps
  • Reopens every 30 days (190/30 ~6 times only)

Before/After Screenshots/Screen Record

20260223_01h49m56s_grim

APK testing

The APK can be found by going to the "Checks" tab below the title. On the left pane, click on "CI", scroll down to "artifacts" and click "app" to download the zip file which contains the debug APK of this PR. You can find more info and a video demonstration on this wiki page.

Due diligence

@github-actions github-actions bot added the size/medium PRs with less than 250 changed lines label Feb 22, 2026
final var now = Instant.now();
final var kaoLastCheck = Instant.ofEpochMilli(prefs.getLong("kao_last_checked", 0));

final var kaoURI = Uri.parse("https://keepandroidopen.org");
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If we want links point to translated webpages we need some sort of retrieving current lang code or maybe just put it in string resources?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Still under question

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I woould not put this in string ressources that are translatable. This could lead to changes by translators adding unsupported locals. It is better to just use the default page and let the user change it if needed imo.
You could also use Localization.getAppLocale().getLanguage()

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I pushed something that is OK, but not a perfect approach (e.g. it is ignoring more locals from the locale list). However, I think it should be fine.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also I've just realized it is a "security" treat to put link into resources which can be translated because if we then merge weblate and overlook the change it could lead to problems...

@dustdfg
Copy link
Contributor Author

dustdfg commented Feb 23, 2026

@TobiGr @Stypox @Poolitzer

Popup with title or not?

Also there are three wordings:

Original like:

Google has announced that, starting in 2026/2027, all apps on certified Android devices will require the developer to submit personal identity details directly to Google. Since the developers of NewPipe do not agree to this requirement, NewPipe will no longer work on certified Android devices after that time.

Proposed by @Poolitzer

In August 2025, Google announced that as of September 2026,it will no longer be possible to develop apps for the Android platform without first registering centrally with Google.Since the developers of NewPipe do not agree to this requirement, NewPipe will no longer work on certified Android devices after that time.

Previous + some rip of from KeepAndroidOpen site

In August 2025, Google announced that as of September 2026, installing apps will require developer verification for all Android apps on certified devices, including those installed outside of the Play Store. Since the developers of NewPipe do not agree to this requirement, NewPipe will no longer work on certified Android devices after that time.


We still probably need a way to remotely update the popup on user device because in this situation we can't just say: "dear users update". About which I would like hear some implementation proposals if I need to implement it in this PR

@dustdfg
Copy link
Contributor Author

dustdfg commented Feb 23, 2026

We still probably need a way to remotely update the popup on user device because in this situation we can't just say: "dear users update". About which I would like hear some implementation proposals if I need to implement it in this PR

Especially taking into account the answer I got (which I can't find) about infrastructure working on edge already

@Poolitzer
Copy link
Member

Sorry why do we need to update the pop up? If the app stops working, users will go to the website/the github repo, no? And I don't quite like the app pinging our servers for new pop up content, just from a privacy and an infrastructure perspective. Automatic up dates are one thing and easily understandable, pop up content queries are another, for me at least. At least we should have another setting to disable that like the auto update.

I realized that "NewPipe will no longer work on certified Android devices after that time." isnt actually true, it will work with the extra adb steps no? Should we go with like, "NewPipe will stop working on certified Android devices after that time unless you take some steps"?

And then I also realized we definitely need a setting/button to disable this from appearing again, because at least I will be really annoyed if I have to click on it every 30 days. And then probably a button/link in some related menu to allow users to get back that information, either via again showing the pop up or just linking to the blog post.

@Poolitzer
Copy link
Member

I now made a website update introducing the banner and a blog post, I am not sure if we will do a full new version release with features and want to rewrite the blog post accordingly, TeamNewPipe/website#426

@dustdfg
Copy link
Contributor Author

dustdfg commented Feb 24, 2026

Sorry why do we need to update the pop up? If the app stops working, users will go to the website/the github repo, no? And I don't quite like the app pinging our servers for new pop up content, just from a privacy and an infrastructure perspective. Automatic up dates are one thing and easily understandable, pop up content queries are another, for me at least. At least we should have another setting to disable that like the auto update.

I fully agree with it but I just remember first discussion where dynamic banner was discussed. And after day comes and superposition collapses to one state as a user at least I would probably like to know how it ends. I think the existing links are enough though

But maybe there is a solution. When day comes we can open new popup (which should be added now), which will point to newpipe blog with more clarifications (?) The blog post which still doesn't exist and won't exist before the day comes but link to which can be predicted now

I realized that "NewPipe will no longer work on certified Android devices after that time." isnt actually true, it will work with the extra adb steps no? Should we go with like, "NewPipe will stop working on certified Android devices after that time unless you take some steps"?

I am not even sure if idea of works or not works correct. Maybe already installed apps will continue working? Idk. I am not sure. But knowing google I would expect the worst

And then I also realized we definitely need a setting/button to disable this from appearing again, because at least I will be really annoyed if I have to click on it every 30 days.

Generally yes but isn't 30 enough? Probably it is necessary evil. And you will see it only ~6 times

And then probably a button/link in some related menu to allow users to get back that information, either via again showing the pop up or just linking to the blog post.

Showing pop up "Hey I am popup, you've disabled another popup, do you want to return the disabled one?" 🤨

Related menu? New menu in settings? Do users even look there? Even if after pressing button "do not show again" we additionally tell them they can open it again via settings

@ShareASmile ShareASmile added feature request Issue is related to a feature in the app meta Related to the project but not strictly to code labels Feb 24, 2026
@TobiGr TobiGr self-requested a review February 24, 2026 20:08
@TobiGr
Copy link
Contributor

TobiGr commented Feb 24, 2026

Popup with title or not?

I'd use a title, but with spaces between words which is also the spelling on their website ("Keep Android Open").

@dustdfg dustdfg marked this pull request as ready for review February 25, 2026 16:36
@TobiGr TobiGr merged commit 9f1e2c6 into TeamNewPipe:dev Feb 26, 2026
5 checks passed
@dustdfg dustdfg deleted the keep_android_open branch February 26, 2026 01:11
@dustdfg
Copy link
Contributor Author

dustdfg commented Feb 26, 2026

Now as a remainder the strings must be manually marked as changed in weblate. Which probably can be done only by those who have rights (if can be done by anyone I still can't do it because didn't interact with weblate at all)

@TobiGr TobiGr mentioned this pull request Feb 28, 2026
1 task

if (kaoLastCheck.plus(30, ChronoUnit.DAYS).isBefore(now)) {
final var dialog = new AlertDialog.Builder(this)
.setTitle("Keep Android Open")
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am not sure if keeping this in English only is a good idea.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It is the name of the site.... And to be honest it seems to me that site itself not very sure if it should be translated. Because half of the translations use english version while another half translates without clear rule when so...

dialog.getButton(AlertDialog.BUTTON_NEUTRAL).setOnClickListener(v ->
this.startActivity(new Intent(Intent.ACTION_VIEW, solutionURI))
);
}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ShareUtils.openUrlInBrowser should be used instead.

Comment on lines +257 to +263
),
SoftwareComponent(
"FreeDroidWarn",
"2026",
"woheller69",
"https://github.com/woheller69/FreeDroidWarn",
StandardLicenses.APACHE2
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why did you add this? The app does not use this library with your changes.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We used initial translations from there

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, but it doesn't change the fact we don't use this library, this should be removed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

feature request Issue is related to a feature in the app meta Related to the project but not strictly to code size/medium PRs with less than 250 changed lines

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants