Compare commits
320 Commits
Author | SHA1 | Date |
---|---|---|
Thomas | f12e478668 | |
Thomas | 20d814368b | |
NoPlagiarism | b583cc86c9 | |
Thomas | 4f2c975aed | |
NoPlagiarism | 231058ed06 | |
Thomas | 497d6573ea | |
NoPlagiarism | ee13a1e249 | |
NoPlagiarism | 3f9ce8c1da | |
Thomas | 7e73c9c5d0 | |
Thomas | 656c4b4482 | |
Thomas | 2f5a11a999 | |
Thomas | 16c3c609f1 | |
Суспільне Надбання | 2628a3bad3 | |
NoPlagiarism | 206bcebe63 | |
Thomas | b275b37f62 | |
Thomas | 1315d61d15 | |
Thomas | 08eb5639d3 | |
Thomas | c15496491f | |
Thomas | f49b4b0974 | |
Thomas | bece2e04f5 | |
Thomas | 73ca4c2eda | |
Jo | 7663f877d8 | |
Joëlle van Essen | 63d837796a | |
Joëlle van Essen | 9348939ce6 | |
Joëlle van Essen | 946cb69c73 | |
Thomas | e6ae7a44c3 | |
Thomas | 4757e2c116 | |
Thomas | 3095e85090 | |
Thomas | f6ac365bd1 | |
Thomas | c9de4e6c30 | |
Thomas | bccbab9729 | |
ms8661 | 68e5a818b7 | |
ms8661 | ef988a3dd0 | |
Thomas | 59a0a82ade | |
Thomas | 7029eed037 | |
Thomas | b149c557eb | |
කසුන් | 65e30bcd5e | |
Thomas | ad7add4381 | |
Thomas | 49e2d1e89b | |
Thomas | 5f52457191 | |
Thomas | 812ce64b79 | |
0xd9a | 1531be28e9 | |
Thomas | 65c11b03d2 | |
Thomas | 673e42609f | |
Thomas | d50f2ef283 | |
Thomas | a862415fbb | |
Thomas | 3335e0a0af | |
Thomas | 197fbf5deb | |
Thomas | 3b8fb2e0f9 | |
Thomas | 2126324bba | |
Thomas | da9c8fbf68 | |
Thomas | 11c895cec1 | |
Thomas | f51c2d3df9 | |
Thomas | 69e2e4fa59 | |
Thomas | 19919cc34c | |
Thomas | 7187823032 | |
Thomas | 17accc6787 | |
Thomas | 749c390f21 | |
Thomas | 0dbf79e45b | |
Thomas | 9bed5abe8d | |
Thomas | f2986dc0c1 | |
Thomas | a3e7b57b8e | |
Thomas | 0aa30f84ac | |
Thomas | 75a0022e8d | |
Thomas | 90497c89b7 | |
Thomas | 5b10b2586e | |
Thomas | a14bd7aa3b | |
Thomas | 72f5e505db | |
Thomas | 7c6827b4a4 | |
Thomas | 2046f416ff | |
Thomas | 9eda917ff4 | |
Thomas | ec89a4ec66 | |
Thomas | 19f14e9e6c | |
Thomas | 7fd3b870f1 | |
Thomas | 1093849bb7 | |
Thomas | bede01bd36 | |
Thomas | e00923a081 | |
Thomas | 77dce54e2e | |
Thomas | 7ae9ca4ed0 | |
Thomas | 0ab9f305da | |
Thomas | ab3826b06d | |
Thomas | 65689cafc5 | |
Thomas | 845590505e | |
Thomas | 68cfe81329 | |
Thomas | 69320423a8 | |
Thomas | e87a9d1c56 | |
Thomas | 4acf9b9ddd | |
Thomas | 9ea15d9b73 | |
Thomas | 78c6bfbef5 | |
Thomas | efc6377811 | |
Thomas | 5449171a02 | |
Thomas | 9d2a2e8cba | |
Thomas | dfff4116fc | |
Thomas | dbad880e21 | |
Thomas | ee2219df62 | |
Thomas | fb0add1b27 | |
Thomas | 60fa149c89 | |
Thomas | 0841ae9f9b | |
Thomas | 1eb7df1e27 | |
Thomas | 1bfb47bf49 | |
Thomas | 2b1664caba | |
Thomas | 2913d3458c | |
Thomas | ed6357b2e7 | |
Thomas | 8f2961804b | |
Thomas | be813cbc55 | |
Thomas | e97c209293 | |
Thomas | a5033a6720 | |
Thomas | cadf486d13 | |
Thomas | 6da8ba1a6b | |
Thomas | bbd354b395 | |
Thomas | 0219831e2b | |
Thomas | 9fe924c23e | |
Thomas | 806e665f33 | |
Thomas | caa6194f7b | |
Thomas | 4a3d69b885 | |
Thomas | 9815c5dc4b | |
Thomas | 7e8248e5a6 | |
Thomas | 98ce97656b | |
Thomas | e3b4fc6f33 | |
Thomas | bb2f0e6b82 | |
Thomas | b9ae945002 | |
Thomas | a86f8e0925 | |
Thomas | 308dc9bb70 | |
Thomas | bab3fc1a70 | |
Thomas | fc9b49723c | |
Thomas | 825ce5dd0c | |
Thomas | 29f2030c58 | |
Thomas | 21d9bd99bf | |
Thomas | 6c32e69845 | |
Thomas | f40e6389ad | |
Thomas | 79bfce23b2 | |
Thomas | a6399cd08a | |
Thomas | fa480b00a1 | |
Thomas | dd355ad9a7 | |
Thomas | 88a3e39dc0 | |
Thomas | 33b1caadfa | |
Thomas | 37d3cab021 | |
Thomas | 8d12509685 | |
Thomas | ede7624d10 | |
Thomas | 60f8cc00b9 | |
Thomas | 0af0af5739 | |
Thomas | e671a8bbc3 | |
Thomas | 73884ebd00 | |
Thomas | 2fd27bb6e0 | |
Thomas | 1cd8c14800 | |
Thomas | 33f541fdc0 | |
Thomas | eb041296fe | |
Thomas | acdd5093bf | |
Thomas | f3c9bef70b | |
Thomas | b00d4e1fdf | |
Thomas | ebce8e16bd | |
Thomas | 201f51c9fb | |
Thomas | 83e5c5f3ad | |
Thomas | 72bd0c0eb1 | |
Thomas | 80367e4441 | |
Thomas | a7358ee1c3 | |
Thomas | f931e157e1 | |
Thomas | 2c82b71b56 | |
Thomas | 0ce1e2dff4 | |
Thomas | 4150095a9b | |
Thomas | 5e1094d527 | |
Thomas | c91b9e9694 | |
Thomas | d012fe8d99 | |
Thomas | a81ee3c507 | |
Thomas | bdbcb23dc5 | |
Thomas | a142fa8a76 | |
Thomas | e03c71ad21 | |
Thomas | ff4efb732d | |
Thomas | 5ae4baab50 | |
Thomas | d7b1cf7a26 | |
Thomas | a05390b7f4 | |
Thomas | 4b9532079a | |
Thomas | 782d969413 | |
Thomas | 2f086199bd | |
Thomas | 1ce8e74966 | |
Thomas | cad00f38de | |
Thomas | c74b9a03e5 | |
Thomas | a3377c5530 | |
Thomas | d768a5e329 | |
Thomas | 02ca17db71 | |
Thomas | 2f65dbc736 | |
Thomas | d9ceb97a45 | |
Thomas | 0a81728645 | |
Thomas | 6f1f35fb02 | |
Thomas | b81b330a16 | |
Thomas | 7d0522e174 | |
Thomas | 91d8073992 | |
Thomas | 42b5cb8939 | |
Thomas | 8ba5f776fd | |
Thomas | 321824cc0d | |
Thomas | 27a0db62ae | |
Thomas | 7a8d1822ed | |
Thomas | d4f05891af | |
Thomas | 7a2148cc42 | |
Thomas | d7fb8c1a32 | |
Thomas | d575c5a39a | |
Thomas | 20e9e7bfaa | |
Thomas | 0c8dd86525 | |
Thomas | 3cdbcdb0ba | |
Thomas | 64bd75a6f9 | |
Thomas | 00a8cce859 | |
Thomas | 8517901b13 | |
Thomas | 0e4f62ec11 | |
Thomas | 546a557a35 | |
Thomas | 4aa07e8a71 | |
Thomas | 4ad6d43378 | |
Thomas | 8c8f0eecdc | |
Thomas | 86560ac65e | |
Thomas | 65efff459a | |
Thomas | 6004e1c567 | |
Thomas | ab42f874d6 | |
Thomas | 48bfc1f736 | |
Thomas | 85a43619a5 | |
Thomas | f2218b543b | |
Thomas | 89dd8ca0d4 | |
Thomas | 6e0802433f | |
Thomas | 468a25dce7 | |
Thomas | b284f0bc48 | |
Thomas | 24864aef3c | |
Thomas | f447212624 | |
Thomas | ed55da3169 | |
Thomas | 65af55b82d | |
Thomas | a1ba57cf77 | |
Thomas | 49a9821921 | |
Thomas | 0482b54385 | |
Thomas | 5db112c7d2 | |
Thomas | 6257394d2c | |
Thomas | 9b2c71baa7 | |
Thomas | 49ae2ff766 | |
Thomas | 1e872614c8 | |
Thomas | 94310b7b81 | |
Thomas | 295b419401 | |
Thomas | 7424f7d34d | |
Thomas | 69e28747cc | |
Thomas | 7bc9596019 | |
Thomas | 1b34d961eb | |
Thomas | 3050027138 | |
Thomas | f196f3cc13 | |
Thomas | d1feb46bdf | |
Thomas | e99e371bab | |
Thomas | 597a48def9 | |
Thomas | 4a651556f6 | |
Thomas | 2b174039bd | |
Thomas | 1389d7b5c4 | |
Thomas | e0b34b9789 | |
Thomas | b488b7e980 | |
Thomas | af642e5f3c | |
Thomas | 3f9abef98a | |
Thomas | c7a9f7cdb8 | |
Thomas | 22c9f05391 | |
Thomas | 82bddf494e | |
Thomas | 63b9cc0071 | |
Thomas | d0635cc770 | |
Thomas | 7e45dc8395 | |
Thomas | 654e2ea876 | |
Thomas | 9416aa3a98 | |
Thomas | f59bcc421c | |
Thomas | 02f2838012 | |
Thomas | 04728351c9 | |
Thomas | b2ad89a626 | |
Thomas | a68c4feaa5 | |
Thomas | 5ac69b1b27 | |
Thomas | 2558ef275a | |
Thomas | cbc4713b54 | |
Thomas | eb8265f06f | |
Thomas | 309879850b | |
Thomas | e92b196284 | |
Thomas | 58c730fe91 | |
Thomas | b6371dbd60 | |
Thomas | ed3eb8e50c | |
Thomas | cb4e58fba2 | |
Thomas | cf4ee2ad57 | |
Thomas | aa23f49296 | |
Thomas | b695fac32a | |
Thomas | 61f5fe985a | |
Thomas | deb76d4f8d | |
Thomas | 954416d507 | |
Thomas | f58edc3198 | |
Thomas | 848c69873b | |
Thomas | 9a98ad58e9 | |
Thomas | f231c7891a | |
Thomas | bdfdaac137 | |
Thomas | 339c7c1fb2 | |
Thomas | 2030e71913 | |
Thomas | 92ea1bddf5 | |
Thomas | fddd77ae40 | |
Thomas | 67b5b7db11 | |
Thomas | 845c544c3f | |
Thomas | bbfa1a28d2 | |
Thomas | 8e7abb8c8c | |
Thomas | 04b63f02be | |
Thomas | 9770465a9e | |
Thomas | 0e737843ae | |
Thomas | 4e548c546a | |
Thomas | 41d79c1409 | |
Thomas | de99b45737 | |
Thomas | 0428b7950a | |
Thomas | b4e605647d | |
Thomas | 9c39d717dc | |
Thomas | 1d1dfc58cc | |
Thomas | 2252f60e5d | |
Thomas | 84a2c41708 | |
Thomas | e316caa152 | |
Thomas | 2d05261aa1 | |
Thomas | 8e9637d446 | |
Thomas | 51379b649d | |
Thomas | 5ed28907d7 | |
Thomas | 281ad20806 | |
Thomas | b381ade471 | |
Thomas | 2a423f7ecd | |
Thomas | c5219204ca | |
Thomas | d63fa2a6e5 | |
Thomas | 647e614dd2 | |
Thomas | deced3ebe3 | |
Thomas | 4fed0d7539 | |
Thomas | b1475bfced | |
Thomas | 2c5bb5aa58 | |
Thomas | 39b183d2dc | |
Thomas | 0b2fea479f | |
Thomas | 0a61f26d1e |
|
@ -8,3 +8,6 @@
|
|||
.externalNativeBuild
|
||||
.cxx
|
||||
/app/release/
|
||||
*.properties
|
||||
/app/lite/release/
|
||||
/app/fullLinks/release/
|
||||
|
|
73
README.md
|
@ -1,46 +1,87 @@
|
|||
# UntrackMe [![License: GPL v3](https://img.shields.io/badge/License-GPL%20v3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0) [![Crowdin](https://badges.crowdin.net/nitterizeme/localized.svg)](https://crowdin.com/project/nitterizeme) [![pipeline status](https://framagit.org/tom79/nitterizeme/badges/develop/pipeline.svg)](https://framagit.org/tom79/nitterizeme/commits/develop)
|
||||
|
||||
UntrackMe once set by default to open Twitter and YouTube links will transform them into Nitter and Invidious links and delegate the action to another app.
|
||||
UntrackMe transforms Twitter, YouTube, Instagram, Reddit and Medium and Wikipedia links to links of open source, [privacy friendly front-ends](#privacy-friendly-front-ends). Converts Google Maps links to OpenStreetMap links. Removes tracking parameters from any url. Then delegates the action to other apps that are capable of handling them.
|
||||
|
||||
There are two versions of UntrackMe - Once handling all URLs for removing tracking parameters - Another one called "UntrackMe Lite" that will only handle Twitter, Youtube, Instagram, Google Maps and shortened URLs.
|
||||
##### Versions of UntrackMe:
|
||||
- **Lite**<br>
|
||||
Can handle Twitter, YouTube, Instagram, Reddit Medium, Wikipedia, Google Maps and shortened urls.
|
||||
|
||||
- **Full**<br>
|
||||
All features of _Lite_ version + Can remove tracking parameters from any url.
|
||||
|
||||
|
||||
## Donate
|
||||
|
||||
[<img alt="Donate using Liberapay" src="http://img.shields.io/liberapay/patrons/tom79.svg?logo=liberapay"/>](https://liberapay.com/tom79/donate)
|
||||
|
||||
|
||||
## Download
|
||||
|
||||
Full version: [<img alt='Get it on F-Droid' src='./images/get-it-on-fdroid.png' height="80"/>](https://f-droid.org/app/app.fedilab.nitterizeme)
|
||||
- **Full Version**:<br>
|
||||
[<img alt='Get it on F-Droid' src='./images/get-it-on-fdroid.png' height="80"/>](https://f-droid.org/app/app.fedilab.nitterizeme)
|
||||
|
||||
Lite version: [<img alt='Get it on F-Droid' src='./images/get-it-on-fdroid.png' height="80"/>](https://f-droid.org/app/app.fedilab.nitterizemelite)
|
||||
- **Lite Version**:<br>
|
||||
[<img alt='Get it on F-Droid' src='./images/get-it-on-fdroid.png' height="80"/>](https://f-droid.org/app/app.fedilab.nitterizemelite)
|
||||
|
||||
|
||||
### What is Nitter:
|
||||
## Privacy Friendly Front-Ends
|
||||
|
||||
A free and open source alternative Twitter front-end focused on privacy.
|
||||
Github project: [/zedeus/nitter](https://github.com/zedeus/nitter)
|
||||
- **Nitter**<br>
|
||||
Nitter is a free and open source front-end for Twitter<br>
|
||||
_Source Code: [github.com/zedeus/nitter](https://github.com/zedeus/nitter)_
|
||||
|
||||
- **Invidious**<br>
|
||||
Invidious is a free and open source front-end for YouTube<br>
|
||||
_Source Code: [github.com/iv-org/invidious](https://github.com/iv-org/invidious)_
|
||||
|
||||
### What is Invidious:
|
||||
- **Bibliogram**<br>
|
||||
Bibliogram is a free and open source front-end for Instagram<br>
|
||||
_Source Code: [sr.ht/~cadence/bibliogram](https://sr.ht/~cadence/bibliogram)_
|
||||
|
||||
A free and open source alternative front-end to YouTube
|
||||
Github project: [/omarroth/invidious](https://github.com/omarroth/invidious)
|
||||
- **Teddit**<br>
|
||||
Teddit is a free and open source front-end for Reddit<br>
|
||||
_Source Code: [codeberg.org/teddit/teddit](https://codeberg.org/teddit/teddit)_
|
||||
|
||||
### What is Bibliogram:
|
||||
- **Libreddit**<br>
|
||||
Libreddit is a free and open source front-end for Reddit<br>
|
||||
_Source Code: [github.com/spikecodes/libreddit](https://github.com/spikecodes/libreddit)_
|
||||
|
||||
- **Scribe**<br>
|
||||
Scribe is a free and open source front-end for Medium<br>
|
||||
_Source Code: [sr.ht/~edwardloveall/scribe](https://sr.ht/~edwardloveall/scribe)_
|
||||
|
||||
- **Wikiless**<br>
|
||||
Wikiless is a free and open source front-end for Wikipedia<br>
|
||||
_Source Code: [codeberg.org/orenom/wikiless](https://codeberg.org/orenom/wikiless)_
|
||||
|
||||
- **ProxiTok**<br>
|
||||
ProxiTok is an open source alternative frontend for TikTok<br>
|
||||
_Source Code: [github.com/pablouser1/ProxiTok](https://github.com/pablouser1/ProxiTok)_
|
||||
|
||||
A free and open source alternative front-end to Instagram
|
||||
Github project: [/cloudrac3r/bibliogram](https://github.com/cloudrac3r/bibliogram)
|
||||
|
||||
### Screenshots:
|
||||
<img alt="A simple interface to cusomize instances" src="src/fullLinks/fastlane/metadata/android/en-US/images/phoneScreenshots/1.png" width=250/>
|
||||
|
||||
![A simple interface to cusomize instances](./images/img1.png) ![Clicking on app will open settings](./images/img2.png) ![You can get latencies for instances and pick up them here](./images/img3.png)
|
||||
<img alt="The app handled and transformed it before delegating the action" src="src/fullLinks/fastlane/metadata/android/en-US/images/phoneScreenshots/2.png" width=250/>
|
||||
|
||||
![A YouTube link received via a text message](./images/img4.png) ![The app handled and transformed it before delegating the action](./images/img5.png) ![The app opened the transformed link](./images/img6.png)
|
||||
<img alt="You can get latencies for instances and pick up them here" src="src/fullLinks/fastlane/metadata/android/en-US/images/phoneScreenshots/4.png" width=250/>
|
||||
|
||||
<img alt="You can customize the parameters and values you want to add to invidious urls" src="src/fullLinks/fastlane/metadata/android/en-US/images/phoneScreenshots/5.png" width=250/>
|
||||
|
||||
<img alt="Check which domains are set to open in UntrackMe" src="src/fullLinks/fastlane/metadata/android/en-US/images/phoneScreenshots/6.png" width=250/>
|
||||
|
||||
|
||||
### Going further
|
||||
|
||||
#### Privacy Redirect
|
||||
|
||||
A web extension from [@SimonBrazell](https://github.com/SimonBrazell) that redirects Twitter, YouTube, Instagram & Google Maps requests to privacy friendly alternatives - Nitter, Invidious, FreeTube, Bibliogram & OpenStreetMap.
|
||||
|
||||
Source code of [Privacy Redirect](https://github.com/SimonBrazell/privacy-redirect)
|
||||
|
||||
|
||||
#### Deprecated / Archived
|
||||
|
||||
For a full coverage with URLs, you can use FireFox with the [Invidition](https://addons.mozilla.org/fr/firefox/addon/invidition/) plugin from [@booteille](https://framapiaf.org/@booteille).
|
||||
|
||||
Source code of [Invidition on Godeberg](https://codeberg.org/Booteille/invidition)
|
||||
Source code of [Invidition on Codeberg](https://codeberg.org/Booteille/invidition)
|
|
@ -2,12 +2,12 @@ apply plugin: 'com.android.application'
|
|||
|
||||
android {
|
||||
compileSdkVersion 30
|
||||
buildToolsVersion "30.0.2"
|
||||
buildToolsVersion "30.0.3"
|
||||
defaultConfig {
|
||||
minSdkVersion 15
|
||||
targetSdkVersion 30
|
||||
versionCode 26
|
||||
versionName "1.15.2"
|
||||
versionCode 33
|
||||
versionName "1.30.0"
|
||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||
}
|
||||
lintOptions {
|
||||
|
@ -15,6 +15,10 @@ android {
|
|||
checkReleaseBuilds false
|
||||
abortOnError false
|
||||
}
|
||||
buildFeatures {
|
||||
viewBinding true
|
||||
}
|
||||
|
||||
productFlavors {
|
||||
fullLinks {
|
||||
applicationId "app.fedilab.nitterizeme"
|
||||
|
@ -49,14 +53,15 @@ android {
|
|||
|
||||
dependencies {
|
||||
implementation fileTree(dir: 'libs', include: ['*.jar'])
|
||||
implementation 'androidx.appcompat:appcompat:1.2.0'
|
||||
implementation 'androidx.appcompat:appcompat:1.3.1'
|
||||
implementation 'androidx.localbroadcastmanager:localbroadcastmanager:1.0.0'
|
||||
implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
|
||||
//Don't upgrade until there is a fix with barrier in recycler view
|
||||
implementation 'androidx.constraintlayout:constraintlayout:2.0.1'
|
||||
implementation 'com.google.android.material:material:1.2.1'
|
||||
implementation 'androidx.preference:preference:1.1.1'
|
||||
implementation 'org.jsoup:jsoup:1.13.1'
|
||||
testImplementation 'junit:junit:4.13'
|
||||
androidTestImplementation 'androidx.test.ext:junit:1.1.2'
|
||||
androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
|
||||
testImplementation 'junit:junit:4.13.1'
|
||||
androidTestImplementation 'androidx.test.ext:junit:1.1.3'
|
||||
androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
|
||||
implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0'
|
||||
}
|
||||
|
|
|
@ -7,8 +7,7 @@
|
|||
android:name="android.permission.QUERY_ALL_PACKAGES"
|
||||
tools:ignore="QueryAllPackagesPermission" />
|
||||
<uses-permission android:name="android.permission.INTERNET" />
|
||||
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
|
||||
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
|
||||
|
||||
|
||||
<application
|
||||
android:allowBackup="false"
|
||||
|
@ -25,7 +24,8 @@
|
|||
android:name=".activities.MainActivity"
|
||||
android:label="@string/app_name"
|
||||
android:theme="@style/AppTheme.NoActionBar"
|
||||
tools:replace="android:label">
|
||||
tools:replace="android:label"
|
||||
android:exported="true">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN" />
|
||||
<category android:name="android.intent.category.LAUNCHER" />
|
||||
|
@ -47,8 +47,14 @@
|
|||
|
||||
<!-- SHORTENED URLs -->
|
||||
<data android:host="t.co" />
|
||||
<data android:host="vxtwitter.com" />
|
||||
<data android:host="nyti.ms" />
|
||||
<data android:host="bit.ly" />
|
||||
<data android:host="aspedrom.com" />
|
||||
<data android:host="is.gd" />
|
||||
<data android:host="fb.me" />
|
||||
<data android:host="rb.gy" />
|
||||
<data android:host="cutt.ly" />
|
||||
<data android:host="amp.gs" />
|
||||
<data android:host="tinyurl.com" />
|
||||
<data android:host="goo.gl" />
|
||||
|
@ -58,13 +64,14 @@
|
|||
<data android:host="bl.ink" />
|
||||
<data android:host="buff.ly" />
|
||||
<data android:host="maps.app.goo.gl" />
|
||||
<data android:host="vm.tiktok.com" />
|
||||
<data android:host="vt.tiktok.com" />
|
||||
|
||||
<!-- INSTAGRAM URLs -->
|
||||
<data android:host="instagram.com" />
|
||||
<data android:host="www.instagram.com" />
|
||||
<data android:host="m.instagram.com" />
|
||||
|
||||
|
||||
<!-- TWITTER URLs -->
|
||||
<data android:host="mobile.twitter.com" />
|
||||
<data android:host="www.twitter.com" />
|
||||
|
@ -79,6 +86,19 @@
|
|||
<data android:host="youtu.be" />
|
||||
<data android:host="youtube-nocookie.com" />
|
||||
|
||||
<!-- REDDIT URLs -->
|
||||
<data android:host="www.reddit.com" />
|
||||
<data android:host="reddit.com" />
|
||||
<data android:host="i.reddit.com" />
|
||||
<data android:host="i.redd.it" />
|
||||
<data android:host="old.reddit.com" />
|
||||
<data android:host="preview.redd.it" />
|
||||
<data android:host="*.reddit.com" />
|
||||
|
||||
<!-- TIKTOK URLs -->
|
||||
<data android:host="tiktok.com" />
|
||||
<data android:host="www.tiktok.com" />
|
||||
<data android:host="us.tiktok.com" />
|
||||
|
||||
<!-- INVIDIOUS INSTANCES -->
|
||||
<data android:host="invidious.snopyta.org" />
|
||||
|
@ -106,6 +126,22 @@
|
|||
<data android:host="bibliogram.dsrev.ru" />
|
||||
<data android:host="bibliogram.pussthecat.org" />
|
||||
|
||||
<!-- PROXITOK INSTANCES -->
|
||||
<data android:host="proxitok.pabloferreiro.es" />
|
||||
<data android:host="proxitok.privacydev.net" />
|
||||
<data android:host="proxitok.pussthecat.org" />
|
||||
|
||||
<!-- MEDIUM URLs -->
|
||||
<data android:host="www.medium.com" />
|
||||
<data android:host="medium.com" />
|
||||
<data android:host="*.medium.com" />
|
||||
|
||||
|
||||
<!-- WIKIPEDIA URLs -->
|
||||
<data android:host="wikipedia.org" />
|
||||
<data android:host="www.wikipedia.org" />
|
||||
<data android:host="*.wikipedia.org" />
|
||||
|
||||
<data android:host="*" />
|
||||
<data android:pathPattern=".*" />
|
||||
<data android:scheme="https" />
|
||||
|
@ -119,8 +155,15 @@
|
|||
|
||||
<!-- SHORTENED URLs -->
|
||||
<data android:host="t.co" />
|
||||
<data android:host="vxtwitter.com" />
|
||||
<data android:host="nyti.ms" />
|
||||
<data android:host="bit.ly" />
|
||||
<data android:host="aspedrom.com" />
|
||||
<data android:host="is.gd" />
|
||||
<data android:host="fb.me" />
|
||||
<data android:host="rb.gy" />
|
||||
<data android:host="cutt.ly" />
|
||||
<data android:host="bit.do" />
|
||||
<data android:host="amp.gs" />
|
||||
<data android:host="tinyurl.com" />
|
||||
<data android:host="goo.gl" />
|
||||
|
@ -130,6 +173,8 @@
|
|||
<data android:host="bl.ink" />
|
||||
<data android:host="buff.ly" />
|
||||
<data android:host="maps.app.goo.gl" />
|
||||
<data android:host="vm.tiktok.com" />
|
||||
<data android:host="vt.tiktok.com" />
|
||||
|
||||
<!-- INSTAGRAM URLs -->
|
||||
<data android:host="instagram.com" />
|
||||
|
@ -150,6 +195,30 @@
|
|||
<data android:host="youtube-nocookie.com" />
|
||||
|
||||
|
||||
<!-- REDDIT URLs -->
|
||||
<data android:host="www.reddit.com" />
|
||||
<data android:host="reddit.com" />
|
||||
<data android:host="i.reddit.com" />
|
||||
<data android:host="i.redd.it" />
|
||||
<data android:host="old.reddit.com" />
|
||||
<data android:host="preview.redd.it" />
|
||||
<data android:host="*.reddit.com" />
|
||||
|
||||
<!-- MEDIUM URLs -->
|
||||
<data android:host="www.medium.com" />
|
||||
<data android:host="medium.com" />
|
||||
<data android:host="*.medium.com" />
|
||||
|
||||
<!-- WIKIPEDIA URLs -->
|
||||
<data android:host="wikipedia.org" />
|
||||
<data android:host="www.wikipedia.org" />
|
||||
<data android:host="*.wikipedia.org" />
|
||||
|
||||
<!-- TIKTOK URLs -->
|
||||
<data android:host="tiktok.com" />
|
||||
<data android:host="www.tiktok.com" />
|
||||
<data android:host="us.tiktok.com" />
|
||||
|
||||
<data android:host="*" />
|
||||
|
||||
<data android:mimeType="text/plain" />
|
||||
|
@ -234,13 +303,6 @@
|
|||
android:label="@string/invidious_settings"
|
||||
android:targetActivity=".activities.InvidiousSettingsActivity"
|
||||
android:theme="@style/AppTheme" />
|
||||
<activity-alias
|
||||
android:name=".activities.WebviewPlayerActivity"
|
||||
android:configChanges="keyboardHidden|orientation|screenSize"
|
||||
android:label="@string/app_name"
|
||||
android:launchMode="singleTask"
|
||||
android:targetActivity=".activities.WebviewPlayerActivity"
|
||||
android:theme="@style/AppTheme" />
|
||||
</application>
|
||||
|
||||
</manifest>
|
Before Width: | Height: | Size: 92 KiB |
Before Width: | Height: | Size: 125 KiB |
Before Width: | Height: | Size: 153 KiB |
Before Width: | Height: | Size: 59 KiB |
Before Width: | Height: | Size: 310 KiB |
Before Width: | Height: | Size: 404 KiB |
|
@ -1 +0,0 @@
|
|||
Trasforma i links di Youtube, Twitter e Instagram nel loro front-end alternativo, gratuito, open-source e focalizzato sulla privacy.
|
|
@ -1,31 +0,0 @@
|
|||
UntrackMe uma vez definido por padrão para abrir os links Twitter, YouTube e Instagram, os transformará em links Nitter, Invidious e Bibliogram e delegará a ação a outro aplicativo.
|
||||
|
||||
Também suporta links do Google Maps para transformá-los em links do OpenStreetMap ou Geo URI.
|
||||
|
||||
O aplicativo detectará URLs encurtadas e exibirá o URL completo antes de visitar o site.
|
||||
|
||||
**Versão literal:
|
||||
|
||||
- Ao compartilhar um link do Twitter, YouTube ou Google Maps basta pegar o UntrackMe para transformá-lo antes de compartilhá-lo com outro aplicativo.
|
||||
|
||||
**Versão completa:
|
||||
|
||||
- Contém todas as características da versão lite e também manipula todos os links para remover os parâmetros de rastreamento. Utiliza seu próprio seletor de aplicativos que exibe URLs antes de visitá-los.
|
||||
|
||||
|
||||
O que ê o Nitter :
|
||||
|
||||
Uma front-end alternativa ao Twitter, livre e de código aberto, focada na privacidade.
|
||||
Projeto Github: https://github.com/zedeus/nitter
|
||||
|
||||
|
||||
O que é Invidious:
|
||||
|
||||
Uma front-end alternativa, livre e de de código aberto para o YouTube
|
||||
Projeto Github: https://github.com/omarroth/invidious
|
||||
|
||||
|
||||
O que é Bibliograma:
|
||||
|
||||
Um front-end alternativo gratuito e de código aberto para a Instagram
|
||||
Projeto Github: https://github.com/cloudrac3r/bibliogram
|
|
@ -1 +0,0 @@
|
|||
- Add Android 11 support
|
Before Width: | Height: | Size: 92 KiB |
Before Width: | Height: | Size: 125 KiB |
Before Width: | Height: | Size: 153 KiB |
Before Width: | Height: | Size: 59 KiB |
Before Width: | Height: | Size: 310 KiB |
Before Width: | Height: | Size: 404 KiB |
|
@ -1 +0,0 @@
|
|||
- Add Android 11 support
|
|
@ -3,9 +3,11 @@
|
|||
xmlns:tools="http://schemas.android.com/tools"
|
||||
package="app.fedilab.nitterizeme">
|
||||
|
||||
<uses-permission
|
||||
android:name="android.permission.QUERY_ALL_PACKAGES"
|
||||
tools:ignore="QueryAllPackagesPermission" />
|
||||
<uses-permission android:name="android.permission.INTERNET" />
|
||||
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
|
||||
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
|
||||
|
||||
|
||||
<application
|
||||
android:allowBackup="false"
|
||||
|
@ -21,7 +23,8 @@
|
|||
<activity
|
||||
android:name=".activities.MainActivity"
|
||||
android:label="@string/app_name_lite"
|
||||
android:theme="@style/AppTheme.NoActionBar">
|
||||
android:theme="@style/AppTheme.NoActionBar"
|
||||
android:exported="true">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN" />
|
||||
<category android:name="android.intent.category.LAUNCHER" />
|
||||
|
@ -31,7 +34,8 @@
|
|||
<activity
|
||||
android:name=".activities.TransformActivity"
|
||||
android:noHistory="true"
|
||||
android:theme="@style/Theme.AppCompat.Translucent">
|
||||
android:theme="@style/Theme.AppCompat.Translucent"
|
||||
android:exported="true">
|
||||
<!-- The app should handle these domains, more can be added here -->
|
||||
|
||||
<intent-filter>
|
||||
|
@ -42,8 +46,15 @@
|
|||
|
||||
<!-- SHORTENED URLs -->
|
||||
<data android:host="t.co" />
|
||||
<data android:host="vxtwitter.com" />
|
||||
<data android:host="nyti.ms" />
|
||||
<data android:host="bit.ly" />
|
||||
<data android:host="aspedrom.com" />
|
||||
<data android:host="is.gd" />
|
||||
<data android:host="fb.me" />
|
||||
<data android:host="rb.gy" />
|
||||
<data android:host="cutt.ly" />
|
||||
<data android:host="bit.do" />
|
||||
<data android:host="amp.gs" />
|
||||
<data android:host="tinyurl.com" />
|
||||
<data android:host="goo.gl" />
|
||||
|
@ -53,6 +64,8 @@
|
|||
<data android:host="bl.ink" />
|
||||
<data android:host="buff.ly" />
|
||||
<data android:host="maps.app.goo.gl" />
|
||||
<data android:host="vm.tiktok.com" />
|
||||
<data android:host="vt.tiktok.com" />
|
||||
|
||||
<!-- INSTAGRAM URLs -->
|
||||
<data android:host="instagram.com" />
|
||||
|
@ -74,6 +87,29 @@
|
|||
<data android:host="youtu.be" />
|
||||
<data android:host="youtube-nocookie.com" />
|
||||
|
||||
<!-- REDDIT URLs -->
|
||||
<data android:host="www.reddit.com" />
|
||||
<data android:host="reddit.com" />
|
||||
<data android:host="i.reddit.com" />
|
||||
<data android:host="i.redd.it" />
|
||||
<data android:host="old.reddit.com" />
|
||||
<data android:host="preview.redd.it" />
|
||||
<data android:host="*.reddit.com" />
|
||||
|
||||
<!-- TIKTOK URLs -->
|
||||
<data android:host="tiktok.com" />
|
||||
<data android:host="www.tiktok.com" />
|
||||
<data android:host="us.tiktok.com" />
|
||||
|
||||
<!-- MEDIUM URLs -->
|
||||
<data android:host="www.medium.com" />
|
||||
<data android:host="medium.com" />
|
||||
<data android:host="*.medium.com" />
|
||||
|
||||
<!-- WIKIPEDIA URLs -->
|
||||
<data android:host="wikipedia.org" />
|
||||
<data android:host="www.wikipedia.org" />
|
||||
<data android:host="*.wikipedia.org" />
|
||||
|
||||
<data android:pathPattern=".*" />
|
||||
<data android:scheme="https" />
|
||||
|
@ -87,8 +123,15 @@
|
|||
|
||||
<!-- SHORTENED URLs -->
|
||||
<data android:host="t.co" />
|
||||
<data android:host="vxtwitter.com" />
|
||||
<data android:host="nyti.ms" />
|
||||
<data android:host="bit.ly" />
|
||||
<data android:host="is.gd" />
|
||||
<data android:host="fb.me" />
|
||||
<data android:host="rb.gy" />
|
||||
<data android:host="cutt.ly" />
|
||||
<data android:host="bit.do" />
|
||||
<data android:host="aspedrom.com" />
|
||||
<data android:host="amp.gs" />
|
||||
<data android:host="tinyurl.com" />
|
||||
<data android:host="goo.gl" />
|
||||
|
@ -98,6 +141,8 @@
|
|||
<data android:host="bl.ink" />
|
||||
<data android:host="buff.ly" />
|
||||
<data android:host="maps.app.goo.gl" />
|
||||
<data android:host="vm.tiktok.com" />
|
||||
<data android:host="vt.tiktok.com" />
|
||||
|
||||
<!-- INSTAGRAM URLs -->
|
||||
<data android:host="instagram.com" />
|
||||
|
@ -117,6 +162,29 @@
|
|||
<data android:host="youtu.be" />
|
||||
<data android:host="youtube-nocookie.com" />
|
||||
|
||||
<!-- REDDIT URLs -->
|
||||
<data android:host="www.reddit.com" />
|
||||
<data android:host="reddit.com" />
|
||||
<data android:host="i.reddit.com" />
|
||||
<data android:host="i.redd.it" />
|
||||
<data android:host="old.reddit.com" />
|
||||
<data android:host="preview.redd.it" />
|
||||
<data android:host="*.reddit.com" />
|
||||
|
||||
<!-- TIKTOK URLs -->
|
||||
<data android:host="tiktok.com" />
|
||||
<data android:host="www.tiktok.com" />
|
||||
<data android:host="us.tiktok.com" />
|
||||
|
||||
<!-- MEDIUM URLs -->
|
||||
<data android:host="www.medium.com" />
|
||||
<data android:host="medium.com" />
|
||||
<data android:host="*.medium.com" />
|
||||
|
||||
<!-- WIKIPEDIA URLs -->
|
||||
<data android:host="wikipedia.org" />
|
||||
<data android:host="www.wikipedia.org" />
|
||||
<data android:host="*.wikipedia.org" />
|
||||
|
||||
<data android:mimeType="text/plain" />
|
||||
</intent-filter>
|
||||
|
@ -194,12 +262,6 @@
|
|||
android:configChanges="orientation|screenSize"
|
||||
android:label="@string/invidious_settings"
|
||||
android:theme="@style/AppTheme" />
|
||||
<activity
|
||||
android:name=".activities.WebviewPlayerActivity"
|
||||
android:configChanges="keyboardHidden|orientation|screenSize"
|
||||
android:label="@string/app_name_lite"
|
||||
android:launchMode="singleTask"
|
||||
android:theme="@style/AppTheme" />
|
||||
</application>
|
||||
|
||||
</manifest>
|
|
@ -0,0 +1,477 @@
|
|||
{
|
||||
"providers": {
|
||||
"amazon": {
|
||||
"urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-]*\\.)?(amazon)(\\.[a-zA-Z]{2,})(.*\\?.*)",
|
||||
"completeProvider": false,
|
||||
"rules": [
|
||||
"pf_rd_[a-zA-Z]=[^\\/|\\?|&]*(\\/|&(amp;)?)?",
|
||||
"qid=[^\\/|\\?|&]*(\\/|&(amp;)?)?",
|
||||
"sr=[^\\/|\\?|&]*(\\/|&(amp;)?)?",
|
||||
"srs=[^\\/|\\?|&]*(\\/|&(amp;)?)?",
|
||||
".*(adsensecustomsearchads\\.com)\\/.*",
|
||||
"pd_rd_[a-zA-Z]*=[^\\/|\\?|&]*(\\/|&(amp;)?)?",
|
||||
"__mk_[a-zA-Z]{1,3}_[a-zA-Z]{1,3}=[^\\/|\\?|&]*(\\/|&(amp;)?)?",
|
||||
"spIA=[^\\/|\\?|&]*(\\/|&(amp;)?)?",
|
||||
"ms3_c=[^\\/|\\?|&]*(\\/|&(amp;)?)?",
|
||||
"[a-zA-Z%0-9]*ie=[^\\/|\\?|&]*(\\/|&(amp;)?)?",
|
||||
"refRID=[^\\/|\\?|&]*(\\/|&(amp;)?)?",
|
||||
"colid=[^\\/|\\?|&]*(\\/|&(amp;)?)?",
|
||||
"coliid=[^\\/|\\?|&]*(\\/|&(amp;)?)?",
|
||||
"[^a-zA-Z%0-9]adId=[^\\/|\\?|&]*(\\/|&(amp;)?)?",
|
||||
"qualifier=[^\\/|\\?|&]*(\\/|&(amp;)?)?",
|
||||
"_encoding=[^\\/|\\?|&]*(\\/|&(amp;)?)?",
|
||||
"smid=[^\\/|\\?|&]*(\\/|&(amp;)?)?",
|
||||
"field-lbr_brands_browse-bin=[^\\/|\\?|&]*(\\/|&(amp;)?)?"
|
||||
],
|
||||
"exceptions": [
|
||||
".*(amazon\\.).*(\\/gp).*\\/redirector.html\\/.*"
|
||||
],
|
||||
"redirections": []
|
||||
},
|
||||
"fls-na.amazon": {
|
||||
"urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-]*\\.)?(fls-na\\.amazon)(\\.[a-zA-Z]{2,}).*",
|
||||
"completeProvider": true,
|
||||
"rules": [],
|
||||
"exceptions": [],
|
||||
"redirections": []
|
||||
},
|
||||
"google": {
|
||||
"urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-]*\\.)?(google)(\\.[a-zA-Z]{2,})(.*\\?.*)",
|
||||
"completeProvider": false,
|
||||
"rules": [
|
||||
"ved=[^\\/|\\?|&]*(\\/|&(amp;)?)?",
|
||||
"bi[a-zA-Z]*=[^\\/|\\?|&]*(\\/|&(amp;)?)?",
|
||||
"gfe_[a-zA-Z]*=[^\\/|\\?|&]*(\\/|&(amp;)?)?",
|
||||
"ei=[^\\/|\\?|&]*(\\/|&(amp;)?)?",
|
||||
"source=[^\\/|\\?|&]*(\\/|&(amp;)?)?",
|
||||
"gs_[a-zA-Z]*=[^\\/|\\?|&]*(\\/|&(amp;)?)?",
|
||||
"site=[^\\/|\\?|&]*(\\/|&(amp;)?)?",
|
||||
"&\\.[^\\/|\\?|&]*(\\/|&(amp;)?)?",
|
||||
"oq=[^\\/|\\?|&]*(\\/|&(amp;)?)?",
|
||||
"esrc=[^\\/|\\?|&]*(\\/|&(amp;)?)?",
|
||||
"uact=[^\\/|\\?|&]*(\\/|&(amp;)?)?",
|
||||
"cd=[^\\/|\\?|&]*(\\/|&(amp;)?)?",
|
||||
"cad=[^\\/|\\?|&]*(\\/|&(amp;)?)?",
|
||||
"gws_[a-zA-Z]*=[^\\/|\\?|&]*(\\/|&(amp;)?)?",
|
||||
"atyp=[^\\/|\\?|&]*(\\/|&(amp;)?)?",
|
||||
"vet=[^\\/|\\?|&]*(\\/|&(amp;)?)?",
|
||||
"zx=[^\\/|\\?|&]*(\\/|&(amp;)?)?",
|
||||
"_u=[^\\/|\\?|&]*(\\/|&(amp;)?)?",
|
||||
"je=[^\\/|\\?|&]*(\\/|&(amp;)?)?",
|
||||
"dcr=[^\\/|\\?|&]*(\\/|&(amp;)?)?",
|
||||
"ie=[^\\/|\\?|&]*(\\/|&(amp;)?)?",
|
||||
"sei=[^\\/|\\?|&]*(\\/|&(amp;)?)?",
|
||||
"sa=[^\\/|\\?|&]*(\\/|&(amp;)?)?",
|
||||
"dpr=[^\\/|\\?|&]*(\\/|&(amp;)?)?",
|
||||
"hl=[^\\/|\\?|&]*(\\/|&(amp;)?)?",
|
||||
"btn[a-zA-Z]*=[^\\/|\\?|&]*(\\/|&(amp;)?)?",
|
||||
"sa=[^\\/|\\?|&]*(\\/|&(amp;)?)?",
|
||||
"usg=[^\\/|\\?|&]*(\\/|&(amp;)?)?",
|
||||
"cd=[^\\/|\\?|&]*(\\/|&(amp;)?)?",
|
||||
"cad=[^\\/|\\?|&]*(\\/|&(amp;)?)?",
|
||||
"uact=[^\\/|\\?|&]*(\\/|&(amp;)?)?"
|
||||
],
|
||||
"exceptions": [
|
||||
".*(mail\\.google\\.).*(\\/mail\\/u\\/0).*",
|
||||
".*(google\\.).*(\\/upload)?(\\/drive)\\/.*",
|
||||
".*(docs\\.google\\.).*\\/.*",
|
||||
".*(accounts\\.google\\.).*",
|
||||
".*(google\\.).*\\/searchbyimage\\?image_url=[^\\/|\\?|&]*(\\/|&(amp;)?)?",
|
||||
".*(hangouts\\.google\\.).*\\/webchat.*zx=[^\\/|\\?|&]*(\\/|&(amp;)?)?",
|
||||
".*(client-channel\\.google\\.).*\\/client-channel.*zx=[^\\/|\\?|&]*(\\/|&(amp;)?)?",
|
||||
".*(google\\.).*\\/complete\\/search\\?.*gs_[a-zA-Z]*=[^\\/|\\?|&]*(\\/|&(amp;)?)?",
|
||||
".*(google\\.).*\\/s\\?tbm=map.*gs_[a-zA-Z]*=[^\\/|\\?|&]*(\\/|&(amp;)?)?",
|
||||
".*(news\\.google\\.).*\\?hl=.*",
|
||||
".*(google\\.).*\\/setprefs\\?.*hl=[^\\/|\\?|&]*(\\/|&(amp;)?)?",
|
||||
".*(google\\.).*\\/appsactivity\\/.*",
|
||||
".*(google\\.).*\\/recaptcha\\/.*"
|
||||
],
|
||||
"redirections": [
|
||||
".*google\\..*\\/.*url\\?.*url=((https|http)[^&]*)",
|
||||
".*google\\..*\\/.*url\\?.*q=((https|http)[^&]*)"
|
||||
]
|
||||
},
|
||||
"googlesyndication": {
|
||||
"urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-]*\\.)?(googlesyndication)(\\.[a-zA-Z]{2,}).*",
|
||||
"completeProvider": true,
|
||||
"rules": [],
|
||||
"exceptions": [],
|
||||
"redirections": []
|
||||
},
|
||||
"doubleclick": {
|
||||
"urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-]*\\.)?(doubleclick)(\\.[a-zA-Z]{2,}).*",
|
||||
"completeProvider": true,
|
||||
"rules": [],
|
||||
"exceptions": [],
|
||||
"redirections": [
|
||||
".*doubleclick\\..*\\/.*tag_for_child_directed_treatment=;%3F(.*)"
|
||||
]
|
||||
},
|
||||
"globalRules": {
|
||||
"urlPattern": ".*",
|
||||
"completeProvider": false,
|
||||
"rules": [
|
||||
"utm_[a-zA-Z]*=[^\\/|\\?|&]*(\\/|&(amp;)?)?",
|
||||
"ga_source=[^\\/|\\?|&]*(\\/|&(amp;)?)?",
|
||||
"ga_medium=[^\\/|\\?|&]*(\\/|&(amp;)?)?",
|
||||
"ga_term=[^\\/|\\?|&]*(\\/|&(amp;)?)?",
|
||||
"ga_content=[^\\/|\\?|&]*(\\/|&(amp;)?)?",
|
||||
"ga_campaign=[^\\/|\\?|&]*(\\/|&(amp;)?)?",
|
||||
"ga_place=[^\\/|\\?|&]*(\\/|&(amp;)?)?",
|
||||
"yclid=[^\\/|\\?|&]*(\\/|&(amp;)?)?",
|
||||
"_openstat=[^\\/|\\?|&]*(\\/|&(amp;)?)?",
|
||||
"fb_action_ids=[^\\/|\\?|&]*(\\/|&(amp;)?)?",
|
||||
"fb_action_types=[^\\/|\\?|&]*(\\/|&(amp;)?)?",
|
||||
"fb_source=[^\\/|\\?|&]*(\\/|&(amp;)?)?",
|
||||
"fb_ref=[^\\/|\\?|&]*(\\/|&(amp;)?)?",
|
||||
"fbclid=[^\\/|\\?|&]*(\\/|&(amp;)?)?",
|
||||
"action_object_map=[^\\/|\\?|&]*(\\/|&(amp;)?)?",
|
||||
"action_type_map=[^\\/|\\?|&]*(\\/|&(amp;)?)?",
|
||||
"action_ref_map=[^\\/|\\?|&]*(\\/|&(amp;)?)?",
|
||||
"gs_l=[^\\/|\\?|&]*(\\/|&(amp;)?)?",
|
||||
"mkt_tok=[^\\/|\\?|&]*(\\/|&(amp;)?)?",
|
||||
"hmb_campaign=[^\\/|\\?|&]*(\\/|&(amp;)?)?",
|
||||
"hmb_medium=[^\\/|\\?|&]*(\\/|&(amp;)?)?",
|
||||
"hmb_source=[^\\/|\\?|&]*(\\/|&(amp;)?)?",
|
||||
"[\\?|&]ref[\\_]?=[^\\/|\\?|&]*",
|
||||
"\\?$",
|
||||
"\\&$"
|
||||
],
|
||||
"exceptions": [
|
||||
".*([\\.]?matrix\\.org)(\\/_matrix)\\/.*",
|
||||
".*([\\.]?prismic\\.io).*",
|
||||
".*([\\.]?gitlab\\.com).*",
|
||||
".*([\\.]?gcsip\\.com).*[\\?|&]ref[\\_]?=[^\\/|\\?|&]*.*",
|
||||
".*([\\.]?cloudflare\\.com).*",
|
||||
".*([\\.]?tv2\\.no)(\\/api)\\/.*"
|
||||
],
|
||||
"redirections": []
|
||||
},
|
||||
"adtech": {
|
||||
"urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-]*\\.)?(adtech)(\\.[a-zA-Z]{2,}).*",
|
||||
"completeProvider": true,
|
||||
"rules": [],
|
||||
"exceptions": [],
|
||||
"redirections": []
|
||||
},
|
||||
"contentpass.net": {
|
||||
"urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-]*\\.)?(contentpass\\.net).*",
|
||||
"completeProvider": true,
|
||||
"rules": [],
|
||||
"exceptions": [],
|
||||
"redirections": []
|
||||
},
|
||||
"bf-ad": {
|
||||
"urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-]*\\.)?(bf-ad)(\\.[a-zA-Z]{2,}).*",
|
||||
"completeProvider": true,
|
||||
"rules": [],
|
||||
"exceptions": [],
|
||||
"redirections": []
|
||||
},
|
||||
"amazon-adsystem": {
|
||||
"urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-]*\\.)?(amazon-adsystem)(\\.[a-zA-Z]{2,}).*",
|
||||
"completeProvider": true,
|
||||
"rules": [],
|
||||
"exceptions": [],
|
||||
"redirections": []
|
||||
},
|
||||
"adsensecustomsearchads": {
|
||||
"urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-]*\\.)?(adsensecustomsearchads)(\\.[a-zA-Z]{2,}).*",
|
||||
"completeProvider": true,
|
||||
"rules": [],
|
||||
"exceptions": [],
|
||||
"redirections": []
|
||||
},
|
||||
"youtube": {
|
||||
"urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-]*\\.)?(youtube)(\\.[a-zA-Z]{2,})(.*\\?.*)",
|
||||
"completeProvider": false,
|
||||
"rules": [
|
||||
"feature=[^\\/|\\?|&]*(\\/|&(amp;)?)?",
|
||||
"gclid=[^\\/|\\?|&]*(\\/|&(amp;)?)?",
|
||||
"kw=[^\\/|\\?|&]*(\\/|&(amp;)?)?"
|
||||
],
|
||||
"exceptions": [],
|
||||
"redirections": []
|
||||
},
|
||||
"facebook": {
|
||||
"urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-]*\\.)?(facebook)(\\.[a-zA-Z]{2,})(.*\\?.*)",
|
||||
"completeProvider": false,
|
||||
"rules": [
|
||||
"hc_[a-zA-Z_\\[\\]0-9]*=[^\\/|\\?|&]*(\\/|&(amp;)?)?",
|
||||
"[a-zA-Z]*ref[a-zA-Z]*=[^\\/|\\?|&]*(\\/|&(amp;)?)?",
|
||||
"__tn__=[^\\/|\\?|&]*(\\/|&(amp;)?)?",
|
||||
"eid=[^\\/|\\?|&]*(\\/|&(amp;)?)?",
|
||||
"__xts__%5B[0-9]%5D=[^\\/|\\?|&]*(\\/|&(amp;)?)?"
|
||||
],
|
||||
"exceptions": [
|
||||
".*(facebook\\.)\\w{2,}.*(\\/plugins\\/).*"
|
||||
],
|
||||
"redirections": [
|
||||
".*l\\.facebook\\..*\\/.*l\\.php\\?.*u=((https%3A%2F%2F|http%3A%2F%2F)[^&]*)"
|
||||
]
|
||||
},
|
||||
"twitter": {
|
||||
"urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-]*\\.)?(twitter)(\\.[a-zA-Z]{2,})(.*\\?.*)",
|
||||
"completeProvider": false,
|
||||
"rules": [
|
||||
"src=[^\\/|\\?|&]*(\\/|&(amp;)?)?",
|
||||
"ref_[a-z_]+=[^\\/|\\?|&]*(\\/|&(amp;)?)?"
|
||||
],
|
||||
"exceptions": [],
|
||||
"redirections": []
|
||||
},
|
||||
"reddit": {
|
||||
"urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-]*\\.)?(reddit)(\\.[a-zA-Z]{2,})(.*\\?.*)",
|
||||
"completeProvider": false,
|
||||
"rules": [],
|
||||
"exceptions": [],
|
||||
"redirections": [
|
||||
"out\\.reddit\\.\\w{2,}\\/.*url=([^&]*)"
|
||||
]
|
||||
},
|
||||
"netflix": {
|
||||
"urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-]*\\.)?(netflix)(\\.[a-zA-Z]{2,})(.*\\?.*)",
|
||||
"completeProvider": false,
|
||||
"rules": [
|
||||
"trackId=[^\\/|\\?|&]*(\\/|&(amp;)?)?",
|
||||
"tctx=[^\\/|\\?|&]*(\\/|&(amp;)?)?",
|
||||
"jb[a-zA-Z]*=[^\\/|\\?|&]*(\\/|&(amp;)?)?"
|
||||
],
|
||||
"exceptions": [],
|
||||
"redirections": []
|
||||
},
|
||||
"tiktok": {
|
||||
"urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-]*\\.)?(tiktok)(\\.[a-zA-Z]{2,})(.*\\?.*)",
|
||||
"completeProvider": false,
|
||||
"rules": [
|
||||
"_[a-z]=[^\\/|\\?|&]*(\\/|&(amp;)?)?",
|
||||
"(sec_)?(u|user_)id=[^\\/|\\?|&]*(\\/|&(amp;)?)?",
|
||||
"share_[a-z_]+=[^\\/|\\?|&]*(\\/|&(amp;)?)?",
|
||||
"source=[^\\/|\\?|&]*(\\/|&(amp;)?)?",
|
||||
"timestamp=[^\\/|\\?|&]*(\\/|&(amp;)?)?",
|
||||
"u_code=[^\\/|\\?|&]*(\\/|&(amp;)?)?",
|
||||
"ugbiz_name=[^\\/|\\?|&]*(\\/|&(amp;)?)?",
|
||||
"utm_[a-z_]+=[^\\/|\\?|&]*(\\/|&(amp;)?)?"
|
||||
],
|
||||
"exceptions": [],
|
||||
"redirections": []
|
||||
},
|
||||
"techcrunch": {
|
||||
"urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-]*\\.)?([\\.]?techcrunch\\.com)(.*\\?.*)",
|
||||
"completeProvider": false,
|
||||
"rules": [
|
||||
"ncid=[^\\/|\\?|&]*(\\/|&(amp;)?)?",
|
||||
"sr=[^\\/|\\?|&]*(\\/|&(amp;)?)?",
|
||||
"sr_share=[^\\/|\\?|&]*(\\/|&(amp;)?)?",
|
||||
"guccounter=[^\\/|\\?|&]*(\\/|&(amp;)?)?",
|
||||
"guce_referrer_[a-z]+=[^\\/|\\?|&]*(\\/|&(amp;)?)?"
|
||||
],
|
||||
"exceptions": [],
|
||||
"redirections": []
|
||||
},
|
||||
"bing": {
|
||||
"urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-]*\\.)?(bing)(\\.[a-zA-Z]{2,})(.*\\?.*)",
|
||||
"completeProvider": false,
|
||||
"rules": [
|
||||
"cvid=[^\\/|\\?|&]*(\\/|&(amp;)?)?",
|
||||
"form=[^\\/|\\?|&]*(\\/|&(amp;)?)?",
|
||||
"sk=[^\\/|\\?|&]*(\\/|&(amp;)?)?",
|
||||
"sp=[^\\/|\\?|&]*(\\/|&(amp;)?)?",
|
||||
"sc=[^\\/|\\?|&]*(\\/|&(amp;)?)?",
|
||||
"qs=[^\\/|\\?|&]*(\\/|&(amp;)?)?",
|
||||
"qp=[^\\/|\\?|&]*(\\/|&(amp;)?)?"
|
||||
],
|
||||
"exceptions": [],
|
||||
"redirections": []
|
||||
},
|
||||
"tweakers": {
|
||||
"urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-]*\\.)?(tweakers\\.net)(.*\\?.*)",
|
||||
"completeProvider": false,
|
||||
"rules": [
|
||||
"nb=[^\\/|\\?|&]*(\\/|&(amp;)?)?",
|
||||
"u=[^\\/|\\?|&]*(\\/|&(amp;)?)?"
|
||||
],
|
||||
"exceptions": [],
|
||||
"redirections": []
|
||||
},
|
||||
"twitch": {
|
||||
"urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-]*\\.)?(twitch)(\\.[a-zA-Z]{2,})(.*\\?.*)",
|
||||
"completeProvider": false,
|
||||
"rules": [
|
||||
"tt_medium=[^\\/|\\?|&]*(\\/|&(amp;)?)?",
|
||||
"tt_content=[^\\/|\\?|&]*(\\/|&(amp;)?)?"
|
||||
],
|
||||
"exceptions": [],
|
||||
"redirections": []
|
||||
},
|
||||
"vivaldi": {
|
||||
"urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-]*\\.)?(vivaldi\\.com)(.*\\?.*)",
|
||||
"completeProvider": false,
|
||||
"rules": [
|
||||
"pk_campaign=[^\\/|\\?|&]*(\\/|&(amp;)?)?",
|
||||
"pk_kwd=[^\\/|\\?|&]*(\\/|&(amp;)?)?"
|
||||
],
|
||||
"exceptions": [],
|
||||
"redirections": []
|
||||
},
|
||||
"indeed": {
|
||||
"urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-]*\\.)?(indeed\\.com)(.*\\?.*)",
|
||||
"completeProvider": false,
|
||||
"rules": [
|
||||
"from=[^\\/|\\?|&]*(\\/|&(amp;)?)?",
|
||||
"alid=[^\\/|\\?|&]*(\\/|&(amp;)?)?",
|
||||
"[a-zA-Z]*tk=[^\\/|\\?|&]*(\\/|&(amp;)?)?"
|
||||
],
|
||||
"exceptions": [],
|
||||
"redirections": []
|
||||
},
|
||||
"hhdotru": {
|
||||
"urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-]*\\.)?(hh\\.ru)(.*\\?.*)",
|
||||
"completeProvider": false,
|
||||
"rules": [
|
||||
"vss=[^\\/|\\?|&]*(\\/|&(amp;)?)?",
|
||||
"t=[^\\/|\\?|&]*(\\/|&(amp;)?)?",
|
||||
"swnt=[^\\/|\\?|&]*(\\/|&(amp;)?)?",
|
||||
"grpos=[^\\/|\\?|&]*(\\/|&(amp;)?)?",
|
||||
"ptl=[^\\/|\\?|&]*(\\/|&(amp;)?)?",
|
||||
"stl=[^\\/|\\?|&]*(\\/|&(amp;)?)?",
|
||||
"exp=[^\\/|\\?|&]*(\\/|&(amp;)?)?",
|
||||
"plim=[^\\/|\\?|&]*(\\/|&(amp;)?)?"
|
||||
],
|
||||
"exceptions": [],
|
||||
"redirections": []
|
||||
},
|
||||
"ebay": {
|
||||
"urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-]*\\.)?(ebay)(\\.[a-zA-Z]{2,})(.*\\?.*)",
|
||||
"completeProvider": false,
|
||||
"rules": [
|
||||
"_trkparms=[^\\/|\\?|&]*(\\/|&(amp;)?)?",
|
||||
"_trksid=[^\\/|\\?|&]*(\\/|&(amp;)?)?",
|
||||
"_from=[^\\/|\\?|&]*(\\/|&(amp;)?)?"
|
||||
],
|
||||
"exceptions": [],
|
||||
"redirections": []
|
||||
},
|
||||
"cnet": {
|
||||
"urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-]*\\.)?(cnet\\.com)(.*\\?.*)",
|
||||
"completeProvider": false,
|
||||
"rules": [
|
||||
"ftag=[^\\/|\\?|&]*(\\/|&(amp;)?)?"
|
||||
],
|
||||
"exceptions": [],
|
||||
"redirections": []
|
||||
},
|
||||
"imdb.com": {
|
||||
"urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-]*\\.)?(imdb\\.com)(.*\\?.*)",
|
||||
"completeProvider": false,
|
||||
"rules": [
|
||||
"ref_=[^\\/|\\?|&]*(\\/|&(amp;)?)?",
|
||||
"pf_rd_[a-zA-Z]*=[^\\/|\\?|&]*(\\/|&(amp;)?)?"
|
||||
],
|
||||
"exceptions": [],
|
||||
"redirections": []
|
||||
},
|
||||
"govdelivery.com": {
|
||||
"urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-]*\\.)?(govdelivery\\.com)(.*\\?.*)",
|
||||
"completeProvider": false,
|
||||
"rules": [],
|
||||
"exceptions": [],
|
||||
"redirections": [
|
||||
".*links\\.govdelivery\\.com.*\\/track\\?.*(http:\\/\\/.*)",
|
||||
".*links\\.govdelivery\\.com.*\\/track\\?.*(https:\\/\\/.*)"
|
||||
]
|
||||
},
|
||||
"walmart.com": {
|
||||
"urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-]*\\.)?(walmart\\.com)(.*\\?.*)",
|
||||
"completeProvider": false,
|
||||
"rules": [
|
||||
"u1=[^\\/|\\?|&]*(\\/|&(amp;)?)?",
|
||||
"ath[a-zA-Z]*=[^\\/|\\?|&]*(\\/|&(amp;)?)?"
|
||||
],
|
||||
"exceptions": [],
|
||||
"redirections": []
|
||||
},
|
||||
"net-parade.it": {
|
||||
"urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-]*\\.)?(net\\-parade\\.it)(.*\\?.*)",
|
||||
"completeProvider": false,
|
||||
"rules": [
|
||||
"pl=[^\\/|\\?|&]*(\\/|&(amp;)?)?"
|
||||
],
|
||||
"exceptions": [],
|
||||
"redirections": []
|
||||
},
|
||||
"prvnizpravy.cz": {
|
||||
"urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-]*\\.)?(prvnizpravy\\.cz)(.*\\?.*)",
|
||||
"completeProvider": false,
|
||||
"rules": [
|
||||
"xid=[^\\/|\\?|&]*(\\/|&(amp;)?)?"
|
||||
],
|
||||
"exceptions": [],
|
||||
"redirections": []
|
||||
},
|
||||
"youku.com": {
|
||||
"urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-]*\\.)?(youku\\.com)(.*\\?.*)",
|
||||
"completeProvider": false,
|
||||
"rules": [
|
||||
"spm=[^\\/|\\?|&]*(\\/|&(amp;)?)?",
|
||||
"tpa=[^\\/|\\?|&]*(\\/|&(amp;)?)?"
|
||||
],
|
||||
"exceptions": [],
|
||||
"redirections": []
|
||||
},
|
||||
"nytimes.com": {
|
||||
"urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-]*\\.)?(nytimes\\.com)(.*\\?.*)",
|
||||
"completeProvider": false,
|
||||
"rules": [
|
||||
"smid=[^\\/|\\?|&]*(\\/|&(amp;)?)?"
|
||||
],
|
||||
"exceptions": [],
|
||||
"redirections": []
|
||||
},
|
||||
"tchibo.de": {
|
||||
"urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-]*\\.)?(tchibo\\.de)(.*\\?.*)",
|
||||
"completeProvider": false,
|
||||
"rules": [
|
||||
"wbdcd=[^\\/|\\?|&]*(\\/|&(amp;)?)?"
|
||||
],
|
||||
"exceptions": [],
|
||||
"redirections": []
|
||||
},
|
||||
"steam": {
|
||||
"urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-]*\\.)?(steampowered\\.com)(.*\\?.*)",
|
||||
"completeProvider": false,
|
||||
"rules": [
|
||||
"snr=[^\\/|\\?|&]*(\\/|&(amp;)?)?"
|
||||
],
|
||||
"exceptions": [],
|
||||
"redirections": []
|
||||
},
|
||||
"disq.us": {
|
||||
"urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-]*\\.)?(disq\\.us)(.*\\?.*)",
|
||||
"completeProvider": false,
|
||||
"rules": [],
|
||||
"exceptions": [],
|
||||
"redirections": [
|
||||
".*disq\\.us.*\\/.*url\\?.*url=((https%3A%2F%2F|http%3A%2F%2F).*)%3A"
|
||||
]
|
||||
},
|
||||
"mozaws.net": {
|
||||
"urlPattern": "https?://outgoing\\.prod\\.mozaws\\.net/.*",
|
||||
"completeProvider": false,
|
||||
"rules": [],
|
||||
"exceptions": [],
|
||||
"redirections": [
|
||||
"https?://[^/]+/v1/[0-9a-f]{64}/(.*)"
|
||||
]
|
||||
},
|
||||
"shutterstock.com": {
|
||||
"urlPattern": "https?://([a-zA-Z0-9-]*\\.)?(shutterstock\\.com)(.*\\?.*)",
|
||||
"completeProvider": false,
|
||||
"rules": [
|
||||
"src=[^\\/|\\?|&]*(\\/|&(amp;)?)?"
|
||||
],
|
||||
"exceptions": [],
|
||||
"redirections": []
|
||||
}
|
||||
}
|
||||
}
|
|
@ -23,29 +23,29 @@ import android.text.SpannableString;
|
|||
import android.text.style.ForegroundColorSpan;
|
||||
import android.text.style.UnderlineSpan;
|
||||
import android.view.MenuItem;
|
||||
import android.widget.Button;
|
||||
import android.widget.TextView;
|
||||
import android.view.View;
|
||||
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import androidx.core.content.ContextCompat;
|
||||
|
||||
import app.fedilab.nitterizeme.BuildConfig;
|
||||
import app.fedilab.nitterizeme.R;
|
||||
import app.fedilab.nitterizeme.databinding.ActivityAboutBinding;
|
||||
|
||||
|
||||
public class AboutActivity extends AppCompatActivity {
|
||||
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.activity_about);
|
||||
ActivityAboutBinding binding = ActivityAboutBinding.inflate(getLayoutInflater());
|
||||
View viewRoot = binding.getRoot();
|
||||
setContentView(viewRoot);
|
||||
|
||||
TextView about_version = findViewById(R.id.about_version);
|
||||
try {
|
||||
PackageInfo pInfo = getPackageManager().getPackageInfo(getPackageName(), 0);
|
||||
String version = pInfo.versionName;
|
||||
about_version.setText(getResources().getString(R.string.about_vesrion, version));
|
||||
binding.aboutVersion.setText(getResources().getString(R.string.about_vesrion, version));
|
||||
} catch (PackageManager.NameNotFoundException ignored) {
|
||||
}
|
||||
|
||||
|
@ -55,77 +55,70 @@ public class AboutActivity extends AppCompatActivity {
|
|||
getSupportActionBar().setDisplayShowHomeEnabled(true);
|
||||
}
|
||||
//Developer click for Mastodon account
|
||||
TextView developer_mastodon = findViewById(R.id.developer_mastodon);
|
||||
SpannableString content = new SpannableString(developer_mastodon.getText().toString());
|
||||
|
||||
SpannableString content = new SpannableString(binding.developerMastodon.getText().toString());
|
||||
content.setSpan(new ForegroundColorSpan(ContextCompat.getColor(AboutActivity.this, R.color.colorAccent)), 0, content.length(), 0);
|
||||
developer_mastodon.setText(content);
|
||||
developer_mastodon.setOnClickListener(v -> {
|
||||
Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://toot.fedilab.app/@UntrackMe"));
|
||||
binding.developerMastodon.setText(content);
|
||||
binding.developerMastodon.setOnClickListener(v -> {
|
||||
Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://toot.fedilab.app/@apps"));
|
||||
startActivity(browserIntent);
|
||||
});
|
||||
|
||||
//App Name:
|
||||
TextView app_name = findViewById(R.id.app_name);
|
||||
|
||||
if (BuildConfig.fullLinks) {
|
||||
app_name.setText(R.string.app_name);
|
||||
binding.appName.setText(R.string.app_name);
|
||||
} else {
|
||||
app_name.setText(R.string.app_name_lite);
|
||||
binding.appName.setText(R.string.app_name_lite);
|
||||
}
|
||||
|
||||
//Developer Github
|
||||
TextView github = findViewById(R.id.github);
|
||||
content = new SpannableString(github.getText().toString());
|
||||
content = new SpannableString(binding.github.getText().toString());
|
||||
content.setSpan(new UnderlineSpan(), 0, content.length(), 0);
|
||||
github.setText(content);
|
||||
github.setOnClickListener(v -> {
|
||||
binding.github.setText(content);
|
||||
binding.github.setOnClickListener(v -> {
|
||||
Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://github.com/stom79"));
|
||||
startActivity(browserIntent);
|
||||
});
|
||||
|
||||
//Developer Framagit
|
||||
TextView framagit = findViewById(R.id.framagit);
|
||||
content = new SpannableString(framagit.getText().toString());
|
||||
content = new SpannableString(binding.framagit.getText().toString());
|
||||
content.setSpan(new UnderlineSpan(), 0, content.length(), 0);
|
||||
framagit.setText(content);
|
||||
framagit.setOnClickListener(v -> {
|
||||
binding.framagit.setText(content);
|
||||
binding.framagit.setOnClickListener(v -> {
|
||||
Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://framagit.org/tom79"));
|
||||
startActivity(browserIntent);
|
||||
});
|
||||
|
||||
//Developer Codeberg
|
||||
TextView codeberg = findViewById(R.id.codeberg);
|
||||
content = new SpannableString(codeberg.getText().toString());
|
||||
content = new SpannableString(binding.codeberg.getText().toString());
|
||||
content.setSpan(new UnderlineSpan(), 0, content.length(), 0);
|
||||
codeberg.setText(content);
|
||||
codeberg.setOnClickListener(v -> {
|
||||
binding.codeberg.setText(content);
|
||||
binding.codeberg.setOnClickListener(v -> {
|
||||
Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://codeberg.org/tom79"));
|
||||
startActivity(browserIntent);
|
||||
});
|
||||
|
||||
//Developer donation
|
||||
Button donatePaypal = findViewById(R.id.donate_paypal);
|
||||
donatePaypal.setOnClickListener(v -> {
|
||||
binding.donatePaypal.setOnClickListener(v -> {
|
||||
Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://www.paypal.me/Mastalab"));
|
||||
startActivity(browserIntent);
|
||||
});
|
||||
Button donateLiberapay = findViewById(R.id.donate_liberapay);
|
||||
donateLiberapay.setOnClickListener(v -> {
|
||||
binding.donateLiberapay.setOnClickListener(v -> {
|
||||
Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://liberapay.com/tom79"));
|
||||
startActivity(browserIntent);
|
||||
});
|
||||
|
||||
Button how_to = findViewById(R.id.how_to);
|
||||
how_to.setOnClickListener(v -> {
|
||||
binding.howTo.setOnClickListener(v -> {
|
||||
Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://fedilab.app/wiki/untrackme/"));
|
||||
startActivity(browserIntent);
|
||||
});
|
||||
|
||||
TextView license = findViewById(R.id.license);
|
||||
content = new SpannableString(license.getText().toString());
|
||||
content = new SpannableString(binding.license.getText().toString());
|
||||
content.setSpan(new ForegroundColorSpan(ContextCompat.getColor(AboutActivity.this, R.color.colorAccent)), 0, content.length(), 0);
|
||||
content.setSpan(new UnderlineSpan(), 0, content.length(), 0);
|
||||
license.setText(content);
|
||||
license.setOnClickListener(v -> {
|
||||
binding.license.setText(content);
|
||||
binding.license.setOnClickListener(v -> {
|
||||
Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://www.gnu.org/licenses/quick-guide-gplv3.fr.html"));
|
||||
startActivity(browserIntent);
|
||||
});
|
||||
|
|
|
@ -14,6 +14,12 @@ package app.fedilab.nitterizeme.activities;
|
|||
* You should have received a copy of the GNU General Public License along with UntrackMe; if not,
|
||||
* see <http://www.gnu.org/licenses>. */
|
||||
|
||||
import static app.fedilab.nitterizeme.activities.MainActivity.APP_PREFS;
|
||||
import static app.fedilab.nitterizeme.helpers.Utils.INTENT_ACTION;
|
||||
import static app.fedilab.nitterizeme.helpers.Utils.KILL_ACTIVITY;
|
||||
import static app.fedilab.nitterizeme.helpers.Utils.LAST_USED_APP_PACKAGE;
|
||||
import static app.fedilab.nitterizeme.helpers.Utils.URL_APP_PICKER;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.ClipData;
|
||||
import android.content.ClipboardManager;
|
||||
|
@ -26,30 +32,19 @@ import android.database.sqlite.SQLiteDatabase;
|
|||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
import android.view.View;
|
||||
import android.widget.Button;
|
||||
import android.widget.GridView;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
|
||||
import androidx.constraintlayout.widget.ConstraintLayout;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import app.fedilab.nitterizeme.R;
|
||||
import app.fedilab.nitterizeme.adapters.AppPickerAdapter;
|
||||
import app.fedilab.nitterizeme.databinding.ActivityPickupAppBinding;
|
||||
import app.fedilab.nitterizeme.entities.AppPicker;
|
||||
import app.fedilab.nitterizeme.helpers.Utils;
|
||||
import app.fedilab.nitterizeme.sqlite.DefaultAppDAO;
|
||||
import app.fedilab.nitterizeme.sqlite.Sqlite;
|
||||
|
||||
import static app.fedilab.nitterizeme.activities.MainActivity.APP_PREFS;
|
||||
import static app.fedilab.nitterizeme.helpers.Utils.INTENT_ACTION;
|
||||
import static app.fedilab.nitterizeme.helpers.Utils.KILL_ACTIVITY;
|
||||
import static app.fedilab.nitterizeme.helpers.Utils.LAST_USED_APP_PACKAGE;
|
||||
import static app.fedilab.nitterizeme.helpers.Utils.URL_APP_PICKER;
|
||||
|
||||
|
||||
public class AppsPickerActivity extends Activity {
|
||||
|
||||
|
@ -62,7 +57,9 @@ public class AppsPickerActivity extends Activity {
|
|||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.activity_pickup_app);
|
||||
ActivityPickupAppBinding binding = ActivityPickupAppBinding.inflate(getLayoutInflater());
|
||||
View viewRoot = binding.getRoot();
|
||||
setContentView(viewRoot);
|
||||
if (getIntent() == null) {
|
||||
finish();
|
||||
}
|
||||
|
@ -102,8 +99,8 @@ public class AppsPickerActivity extends Activity {
|
|||
|
||||
|
||||
SQLiteDatabase db = Sqlite.getInstance(getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open();
|
||||
View blank = findViewById(R.id.blank);
|
||||
blank.setOnClickListener(v -> finish());
|
||||
|
||||
binding.blank.setOnClickListener(v -> finish());
|
||||
String thisPackageName = getApplicationContext().getPackageName();
|
||||
ArrayList<String> packages = new ArrayList<>();
|
||||
List<AppPicker> appPickers = new ArrayList<>();
|
||||
|
@ -132,8 +129,8 @@ public class AppsPickerActivity extends Activity {
|
|||
}
|
||||
}
|
||||
String defaultApp = new DefaultAppDAO(AppsPickerActivity.this, db).getDefault(packages);
|
||||
TextView urlText = findViewById(R.id.url);
|
||||
urlText.setText(url);
|
||||
|
||||
binding.url.setText(url);
|
||||
|
||||
if (defaultApp != null) {
|
||||
Intent intent = new Intent(action, Uri.parse(url));
|
||||
|
@ -142,13 +139,11 @@ public class AppsPickerActivity extends Activity {
|
|||
finish();
|
||||
return;
|
||||
} else {
|
||||
ConstraintLayout app_container = findViewById(R.id.app_container);
|
||||
app_container.setVisibility(View.VISIBLE);
|
||||
GridView gridView = findViewById(R.id.app_list);
|
||||
binding.appContainer.setVisibility(View.VISIBLE);
|
||||
AppPickerAdapter appPickerAdapter = new AppPickerAdapter(appPickers);
|
||||
gridView.setAdapter(appPickerAdapter);
|
||||
gridView.setNumColumns(3);
|
||||
gridView.setOnItemClickListener((parent, view1, position, id) -> {
|
||||
binding.appList.setAdapter(appPickerAdapter);
|
||||
binding.appList.setNumColumns(3);
|
||||
binding.appList.setOnItemClickListener((parent, view1, position, id) -> {
|
||||
if (!appPickers.get(position).isSelected()) {
|
||||
for (AppPicker ap : appPickers) {
|
||||
ap.setSelected(false);
|
||||
|
@ -178,16 +173,13 @@ public class AppsPickerActivity extends Activity {
|
|||
});
|
||||
|
||||
|
||||
Button always = findViewById(R.id.always);
|
||||
Button once = findViewById(R.id.once);
|
||||
|
||||
always.setOnClickListener(v -> {
|
||||
binding.always.setOnClickListener(v -> {
|
||||
|
||||
boolean isPresent = new DefaultAppDAO(AppsPickerActivity.this, db).isPresent(appToUse);
|
||||
long val = -1;
|
||||
if (isPresent) {
|
||||
ArrayList<String> oldConcurrent = new DefaultAppDAO(AppsPickerActivity.this, db).getConcurrent(appToUse);
|
||||
ArrayList<String> newConcurrent = Utils.union(oldConcurrent, packages);
|
||||
ArrayList<String> newConcurrent = oldConcurrent != null ? Utils.union(oldConcurrent, packages) : packages;
|
||||
newConcurrent.remove(appToUse);
|
||||
new DefaultAppDAO(AppsPickerActivity.this, db).update(appToUse, newConcurrent);
|
||||
} else {
|
||||
|
@ -210,7 +202,7 @@ public class AppsPickerActivity extends Activity {
|
|||
finish();
|
||||
});
|
||||
|
||||
once.setOnClickListener(v -> {
|
||||
binding.once.setOnClickListener(v -> {
|
||||
if (action.compareTo(Intent.ACTION_VIEW) == 0) {
|
||||
Intent intent = new Intent(action, Uri.parse(url));
|
||||
intent.setPackage(appToUse);
|
||||
|
@ -229,8 +221,7 @@ public class AppsPickerActivity extends Activity {
|
|||
});
|
||||
}
|
||||
|
||||
ImageView copyLink = findViewById(R.id.copy_link);
|
||||
copyLink.setOnClickListener(v -> {
|
||||
binding.copyLink.setOnClickListener(v -> {
|
||||
ClipboardManager clipboard = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);
|
||||
ClipData clipData = ClipData.newPlainText("", url);
|
||||
assert clipboard != null;
|
||||
|
|
|
@ -23,17 +23,19 @@ import android.content.pm.ResolveInfo;
|
|||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Objects;
|
||||
|
||||
import app.fedilab.nitterizeme.BuildConfig;
|
||||
import app.fedilab.nitterizeme.R;
|
||||
import app.fedilab.nitterizeme.adapters.AppInfoAdapter;
|
||||
import app.fedilab.nitterizeme.databinding.ActivityCheckAppBinding;
|
||||
import app.fedilab.nitterizeme.entities.AppInfo;
|
||||
|
||||
|
||||
|
@ -60,10 +62,42 @@ public class CheckAppActivity extends AppCompatActivity {
|
|||
"youtu.be",
|
||||
"youtube-nocookie.com"
|
||||
};
|
||||
|
||||
public static String[] reddit_domains = {
|
||||
"www.reddit.com",
|
||||
"reddit.com",
|
||||
"i.reddit.com",
|
||||
"old.reddit.com",
|
||||
"i.redd.it",
|
||||
"preview.redd.it"
|
||||
};
|
||||
public static String[] medium_domains = {
|
||||
"medium.com",
|
||||
"www.medium.com"
|
||||
};
|
||||
|
||||
public static String[] wikipedia_domains = {
|
||||
"wikipedia.org",
|
||||
"www.wikipedia.org"
|
||||
};
|
||||
|
||||
public static String[] tiktok_domains = {
|
||||
"tiktok.com",
|
||||
"www.tiktok.com",
|
||||
"us.tiktok.com"
|
||||
};
|
||||
|
||||
public static String[] shortener_domains = {
|
||||
"t.co",
|
||||
"vxtwitter.com",
|
||||
"nyti.ms",
|
||||
"bit.ly",
|
||||
"is.gd",
|
||||
"aspedrom.com",
|
||||
"bit.do",
|
||||
"fb.me",
|
||||
"rb.gy",
|
||||
"cutt.ly",
|
||||
"amp.gs",
|
||||
"tinyurl.com",
|
||||
"goo.gl",
|
||||
|
@ -72,11 +106,12 @@ public class CheckAppActivity extends AppCompatActivity {
|
|||
"ow.ly",
|
||||
"bl.ink",
|
||||
"buff.ly",
|
||||
"maps.app.goo.gl"
|
||||
"maps.app.goo.gl",
|
||||
"vm.tiktok.com",
|
||||
"vt.tiktok.com"
|
||||
};
|
||||
//Supported instances to redirect one instance to another faster for the user
|
||||
public static String[] invidious_instances = {
|
||||
"invidio.us",
|
||||
"invidious.snopyta.org",
|
||||
"invidiou.sh",
|
||||
"invidious.toot.koeln",
|
||||
|
@ -101,16 +136,24 @@ public class CheckAppActivity extends AppCompatActivity {
|
|||
"bibliogram.dsrev.ru",
|
||||
"bibliogram.pussthecat.org"
|
||||
};
|
||||
public static String[] proxitok_instances = {
|
||||
"proxitok.pabloferreiro.es",
|
||||
"proxitok.privacydev.net",
|
||||
"proxitok.pussthecat.org"
|
||||
};
|
||||
|
||||
public static String outlook_safe_domain = "safelinks.protection.outlook.com";
|
||||
|
||||
private RecyclerView list_apps;
|
||||
private String[] domains;
|
||||
private ActivityCheckAppBinding binding;
|
||||
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.activity_check_app);
|
||||
binding = ActivityCheckAppBinding.inflate(getLayoutInflater());
|
||||
View viewRoot = binding.getRoot();
|
||||
setContentView(viewRoot);
|
||||
|
||||
|
||||
setTitle(R.string.check_apps);
|
||||
|
@ -118,10 +161,32 @@ public class CheckAppActivity extends AppCompatActivity {
|
|||
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
|
||||
getSupportActionBar().setDisplayShowHomeEnabled(true);
|
||||
}
|
||||
|
||||
if (BuildConfig.fullLinks) {
|
||||
domains = new String[twitter_domains.length + youtube_domains.length + shortener_domains.length + instagram_domains.length + invidious_instances.length + nitter_instances.length + bibliogram_instances.length];
|
||||
domains = new String[
|
||||
twitter_domains.length
|
||||
+ youtube_domains.length
|
||||
+ reddit_domains.length
|
||||
+ instagram_domains.length
|
||||
+ wikipedia_domains.length
|
||||
+ medium_domains.length
|
||||
+ tiktok_domains.length
|
||||
+ shortener_domains.length
|
||||
+ invidious_instances.length
|
||||
+ nitter_instances.length
|
||||
+ bibliogram_instances.length
|
||||
+ proxitok_instances.length
|
||||
];
|
||||
} else {
|
||||
domains = new String[twitter_domains.length + youtube_domains.length + shortener_domains.length + instagram_domains.length];
|
||||
domains = new String[
|
||||
twitter_domains.length
|
||||
+ youtube_domains.length
|
||||
+ reddit_domains.length
|
||||
+ instagram_domains.length
|
||||
+ wikipedia_domains.length
|
||||
+ medium_domains.length
|
||||
+ tiktok_domains.length
|
||||
+ shortener_domains.length];
|
||||
}
|
||||
int i = 0;
|
||||
for (String host : twitter_domains) {
|
||||
|
@ -132,10 +197,26 @@ public class CheckAppActivity extends AppCompatActivity {
|
|||
domains[i] = host;
|
||||
i++;
|
||||
}
|
||||
for (String host : reddit_domains) {
|
||||
domains[i] = host;
|
||||
i++;
|
||||
}
|
||||
for (String host : instagram_domains) {
|
||||
domains[i] = host;
|
||||
i++;
|
||||
}
|
||||
for (String host : medium_domains) {
|
||||
domains[i] = host;
|
||||
i++;
|
||||
}
|
||||
for (String host : wikipedia_domains) {
|
||||
domains[i] = host;
|
||||
i++;
|
||||
}
|
||||
for (String host : tiktok_domains) {
|
||||
domains[i] = host;
|
||||
i++;
|
||||
}
|
||||
for (String host : shortener_domains) {
|
||||
domains[i] = host;
|
||||
i++;
|
||||
|
@ -153,27 +234,28 @@ public class CheckAppActivity extends AppCompatActivity {
|
|||
domains[i] = host;
|
||||
i++;
|
||||
}
|
||||
for (String host : proxitok_instances) {
|
||||
domains[i] = host;
|
||||
i++;
|
||||
}
|
||||
}
|
||||
list_apps = findViewById(R.id.list_apps);
|
||||
|
||||
final LinearLayoutManager mLayoutManager;
|
||||
mLayoutManager = new LinearLayoutManager(CheckAppActivity.this);
|
||||
list_apps.setLayoutManager(mLayoutManager);
|
||||
list_apps.setNestedScrollingEnabled(false);
|
||||
binding.listApps.setLayoutManager(mLayoutManager);
|
||||
binding.listApps.setNestedScrollingEnabled(false);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
protected void onResume() {
|
||||
super.onResume();
|
||||
if (list_apps != null) {
|
||||
int position = ((LinearLayoutManager) Objects.requireNonNull(list_apps.getLayoutManager()))
|
||||
.findFirstVisibleItemPosition();
|
||||
ArrayList<AppInfo> appInfos = getAppInfo();
|
||||
AppInfoAdapter appInfoAdapter = new AppInfoAdapter(appInfos);
|
||||
list_apps.setAdapter(appInfoAdapter);
|
||||
list_apps.scrollToPosition(position);
|
||||
}
|
||||
int position = ((LinearLayoutManager) Objects.requireNonNull(binding.listApps.getLayoutManager()))
|
||||
.findFirstVisibleItemPosition();
|
||||
ArrayList<AppInfo> appInfos = getAppInfo();
|
||||
AppInfoAdapter appInfoAdapter = new AppInfoAdapter(appInfos);
|
||||
binding.listApps.setAdapter(appInfoAdapter);
|
||||
binding.listApps.scrollToPosition(position);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -209,42 +291,60 @@ public class CheckAppActivity extends AppCompatActivity {
|
|||
|
||||
private ArrayList<AppInfo> getAppInfo() {
|
||||
ArrayList<AppInfo> appInfos = new ArrayList<>();
|
||||
int j = 0;
|
||||
for (String domain : domains) {
|
||||
if (j == 0) {
|
||||
if (Arrays.asList(twitter_domains).contains(domain)) {
|
||||
AppInfo appInfo = new AppInfo();
|
||||
appInfo.setTitle("Twitter");
|
||||
appInfos.add(appInfo);
|
||||
} else if (j == twitter_domains.length) {
|
||||
} else if (Arrays.asList(youtube_domains).contains(domain)) {
|
||||
AppInfo appInfo = new AppInfo();
|
||||
appInfo.setTitle("YouTube");
|
||||
appInfos.add(appInfo);
|
||||
} else if (j == twitter_domains.length + youtube_domains.length) {
|
||||
} else if (Arrays.asList(instagram_domains).contains(domain)) {
|
||||
AppInfo appInfo = new AppInfo();
|
||||
appInfo.setTitle("Instagram");
|
||||
appInfos.add(appInfo);
|
||||
} else if (j == twitter_domains.length + youtube_domains.length + instagram_domains.length) {
|
||||
} else if (Arrays.asList(reddit_domains).contains(domain)) {
|
||||
AppInfo appInfo = new AppInfo();
|
||||
appInfo.setTitle("Reddit");
|
||||
appInfos.add(appInfo);
|
||||
} else if (Arrays.asList(medium_domains).contains(domain)) {
|
||||
AppInfo appInfo = new AppInfo();
|
||||
appInfo.setTitle("Medium");
|
||||
appInfos.add(appInfo);
|
||||
} else if (Arrays.asList(wikipedia_domains).contains(domain)) {
|
||||
AppInfo appInfo = new AppInfo();
|
||||
appInfo.setTitle("Wikipedia");
|
||||
appInfos.add(appInfo);
|
||||
} else if (Arrays.asList(tiktok_domains).contains(domain)) {
|
||||
AppInfo appInfo = new AppInfo();
|
||||
appInfo.setTitle("TikTok");
|
||||
appInfos.add(appInfo);
|
||||
} else if (Arrays.asList(shortener_domains).contains(domain)) {
|
||||
AppInfo appInfo = new AppInfo();
|
||||
appInfo.setTitle(getString(R.string.shortener_services));
|
||||
appInfos.add(appInfo);
|
||||
} else if (j == twitter_domains.length + youtube_domains.length + instagram_domains.length + shortener_domains.length) {
|
||||
} else if (Arrays.asList(invidious_instances).contains(domain)) {
|
||||
AppInfo appInfo = new AppInfo();
|
||||
appInfo.setTitle(getString(R.string.invidious_instances));
|
||||
appInfos.add(appInfo);
|
||||
} else if (j == twitter_domains.length + youtube_domains.length + instagram_domains.length + shortener_domains.length + invidious_instances.length) {
|
||||
} else if (Arrays.asList(nitter_instances).contains(domain)) {
|
||||
AppInfo appInfo = new AppInfo();
|
||||
appInfo.setTitle(getString(R.string.nitter_instances));
|
||||
appInfos.add(appInfo);
|
||||
} else if (j == twitter_domains.length + youtube_domains.length + instagram_domains.length + shortener_domains.length + invidious_instances.length + nitter_instances.length) {
|
||||
} else if (Arrays.asList(bibliogram_instances).contains(domain)) {
|
||||
AppInfo appInfo = new AppInfo();
|
||||
appInfo.setTitle(getString(R.string.bibliogram_instances));
|
||||
appInfos.add(appInfo);
|
||||
} else if (Arrays.asList(proxitok_instances).contains(domain)) {
|
||||
AppInfo appInfo = new AppInfo();
|
||||
appInfo.setTitle(getString(R.string.proxitok_instances));
|
||||
appInfos.add(appInfo);
|
||||
}
|
||||
AppInfo appInfo = new AppInfo();
|
||||
appInfo.setDomain(domain);
|
||||
appInfo.setApplicationInfo(getDefaultApp("https://" + domain + "/"));
|
||||
appInfos.add(appInfo);
|
||||
j++;
|
||||
}
|
||||
return appInfos;
|
||||
}
|
||||
|
|
|
@ -20,16 +20,15 @@ import android.database.sqlite.SQLiteDatabase;
|
|||
import android.os.Bundle;
|
||||
import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
import app.fedilab.nitterizeme.R;
|
||||
import app.fedilab.nitterizeme.adapters.DefaultAppAdapter;
|
||||
import app.fedilab.nitterizeme.databinding.ActivityDefaultAppBinding;
|
||||
import app.fedilab.nitterizeme.entities.DefaultApp;
|
||||
import app.fedilab.nitterizeme.helpers.Utils;
|
||||
import app.fedilab.nitterizeme.sqlite.DefaultAppDAO;
|
||||
|
@ -42,7 +41,9 @@ public class DefaultAppActivity extends AppCompatActivity {
|
|||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.activity_default_app);
|
||||
ActivityDefaultAppBinding binding = ActivityDefaultAppBinding.inflate(getLayoutInflater());
|
||||
View viewRoot = binding.getRoot();
|
||||
setContentView(viewRoot);
|
||||
|
||||
|
||||
setTitle(R.string.default_apps);
|
||||
|
@ -51,18 +52,16 @@ public class DefaultAppActivity extends AppCompatActivity {
|
|||
getSupportActionBar().setDisplayShowHomeEnabled(true);
|
||||
}
|
||||
|
||||
RecyclerView list_apps = findViewById(R.id.list_apps);
|
||||
final LinearLayoutManager mLayoutManager;
|
||||
mLayoutManager = new LinearLayoutManager(DefaultAppActivity.this);
|
||||
list_apps.setLayoutManager(mLayoutManager);
|
||||
list_apps.setNestedScrollingEnabled(false);
|
||||
binding.listApps.setLayoutManager(mLayoutManager);
|
||||
binding.listApps.setNestedScrollingEnabled(false);
|
||||
|
||||
ArrayList<DefaultApp> appInfos = getAppInfo();
|
||||
DefaultAppAdapter defaultAppAdapter = new DefaultAppAdapter(appInfos);
|
||||
list_apps.setAdapter(defaultAppAdapter);
|
||||
binding.listApps.setAdapter(defaultAppAdapter);
|
||||
if (appInfos.size() == 0) {
|
||||
TextView no_apps = findViewById(R.id.no_apps);
|
||||
no_apps.setVisibility(View.VISIBLE);
|
||||
binding.noApps.setVisibility(View.VISIBLE);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -73,7 +72,9 @@ public class DefaultAppActivity extends AppCompatActivity {
|
|||
finish();
|
||||
return true;
|
||||
}
|
||||
|
||||
return super.onOptionsItemSelected(item);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -19,48 +19,41 @@ import android.content.Context;
|
|||
import android.content.SharedPreferences;
|
||||
import android.os.Bundle;
|
||||
import android.view.View;
|
||||
import android.widget.Button;
|
||||
import android.widget.ImageButton;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.RelativeLayout;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.appcompat.app.AlertDialog;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import androidx.lifecycle.ViewModelProvider;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.google.android.material.snackbar.Snackbar;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import app.fedilab.nitterizeme.R;
|
||||
import app.fedilab.nitterizeme.adapters.InstanceAdapter;
|
||||
import app.fedilab.nitterizeme.databinding.ActivityPopupInstanceBinding;
|
||||
import app.fedilab.nitterizeme.entities.Instance;
|
||||
import app.fedilab.nitterizeme.viewmodels.SearchInstanceVM;
|
||||
|
||||
|
||||
public class InstanceActivity extends AppCompatActivity {
|
||||
|
||||
private static final String list_for_instances = "https://framagit.org/tom79/fedilab_app/-/blob/master/content/untrackme_instances/payload_2.json";
|
||||
private static final String list_for_instances = "https://framagit.org/tom79/fedilab_app/-/blob/master/content/untrackme_instances/payload_3.json";
|
||||
private ActivityPopupInstanceBinding binding;
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.activity_popup_instance);
|
||||
binding = ActivityPopupInstanceBinding.inflate(getLayoutInflater());
|
||||
View viewRoot = binding.getRoot();
|
||||
setContentView(viewRoot);
|
||||
setTitle(R.string.select_instances);
|
||||
|
||||
SearchInstanceVM viewModel = new ViewModelProvider(this).get(SearchInstanceVM.class);
|
||||
viewModel.getInstances().observe(this, result -> {
|
||||
LinearLayout instance_container = findViewById(R.id.instance_container);
|
||||
RelativeLayout loader = findViewById(R.id.loader);
|
||||
RecyclerView invidious_instances = findViewById(R.id.invidious_instances);
|
||||
RecyclerView nitter_instances = findViewById(R.id.nitter_instances);
|
||||
RecyclerView bibliogram_instances = findViewById(R.id.bibliogram_instances);
|
||||
Button latency_test = findViewById(R.id.latency_test);
|
||||
ImageButton instance_info = findViewById(R.id.instance_info);
|
||||
Button close = findViewById(R.id.close);
|
||||
if (result == null) {
|
||||
View parentLayout = findViewById(android.R.id.content);
|
||||
Snackbar.make(parentLayout, R.string.error_message_internet, Snackbar.LENGTH_LONG).setAction(R.string.close, v -> finish()).show();
|
||||
|
@ -71,81 +64,178 @@ public class InstanceActivity extends AppCompatActivity {
|
|||
String invidiousHost = sharedpreferences.getString(MainActivity.SET_INVIDIOUS_HOST, MainActivity.DEFAULT_INVIDIOUS_HOST);
|
||||
String nitterHost = sharedpreferences.getString(MainActivity.SET_NITTER_HOST, MainActivity.DEFAULT_NITTER_HOST);
|
||||
String bibliogramHost = sharedpreferences.getString(MainActivity.SET_BIBLIOGRAM_HOST, MainActivity.DEFAULT_BIBLIOGRAM_HOST);
|
||||
String tedditHost = sharedpreferences.getString(MainActivity.SET_TEDDIT_HOST, MainActivity.DEFAULT_TEDDIT_HOST);
|
||||
String scribeHost = sharedpreferences.getString(MainActivity.SET_SCRIBERIP_HOST, MainActivity.DEFAULT_SCRIBERIP_HOST);
|
||||
String wikilessHost = sharedpreferences.getString(MainActivity.SET_WIKILESS_HOST, MainActivity.DEFAULT_WIKILESS_HOST);
|
||||
String proxitokHost = sharedpreferences.getString(MainActivity.SET_PROXITOK_HOST, MainActivity.DEFAULT_PROXITOK_HOST);
|
||||
|
||||
ArrayList<Instance> invidiousInstances = new ArrayList<>();
|
||||
ArrayList<Instance> nitterInstances = new ArrayList<>();
|
||||
ArrayList<Instance> bibliogramInstances = new ArrayList<>();
|
||||
ArrayList<Instance> tedditInstances = new ArrayList<>();
|
||||
ArrayList<Instance> scribeInstances = new ArrayList<>();
|
||||
ArrayList<Instance> wikilessInstances = new ArrayList<>();
|
||||
ArrayList<Instance> proxitokInstances = new ArrayList<>();
|
||||
|
||||
boolean customInvidiousInstance = true;
|
||||
boolean customNitterInstance = true;
|
||||
boolean customBibliogramInstance = true;
|
||||
boolean customTedditInstance = true;
|
||||
boolean customScribeInstance = true;
|
||||
boolean customWikilessInstance = true;
|
||||
boolean customProxitokInstance = true;
|
||||
|
||||
for (Instance instance : result) {
|
||||
if (instance.getType() == Instance.instanceType.INVIDIOUS) {
|
||||
if (instance.getInstanceType() == Instance.instanceType.YOUTUBE) {
|
||||
invidiousInstances.add(instance);
|
||||
if (invidiousHost != null && invidiousHost.trim().toLowerCase().compareTo(instance.getDomain()) == 0) {
|
||||
customInvidiousInstance = false;
|
||||
}
|
||||
} else if (instance.getType() == Instance.instanceType.NITTER) {
|
||||
} else if (instance.getInstanceType() == Instance.instanceType.TWITTER) {
|
||||
nitterInstances.add(instance);
|
||||
if (nitterHost != null && nitterHost.trim().toLowerCase().compareTo(instance.getDomain()) == 0) {
|
||||
customNitterInstance = false;
|
||||
}
|
||||
} else if (instance.getType() == Instance.instanceType.BIBLIOGRAM) {
|
||||
} else if (instance.getInstanceType() == Instance.instanceType.INSTAGRAM) {
|
||||
bibliogramInstances.add(instance);
|
||||
if (bibliogramHost != null && bibliogramHost.trim().toLowerCase().compareTo(instance.getDomain()) == 0) {
|
||||
customBibliogramInstance = false;
|
||||
}
|
||||
} else if (instance.getInstanceType() == Instance.instanceType.REDDIT) {
|
||||
tedditInstances.add(instance);
|
||||
if (tedditHost != null && tedditHost.trim().toLowerCase().compareTo(instance.getDomain()) == 0) {
|
||||
customTedditInstance = false;
|
||||
}
|
||||
} else if (instance.getInstanceType() == Instance.instanceType.MEDIUM) {
|
||||
scribeInstances.add(instance);
|
||||
if (scribeHost != null && scribeHost.trim().toLowerCase().compareTo(instance.getDomain()) == 0) {
|
||||
customScribeInstance = false;
|
||||
}
|
||||
} else if (instance.getInstanceType() == Instance.instanceType.WIKIPEDIA) {
|
||||
wikilessInstances.add(instance);
|
||||
if (wikilessHost != null && wikilessHost.trim().toLowerCase().compareTo(instance.getDomain()) == 0) {
|
||||
customWikilessInstance = false;
|
||||
}
|
||||
} else if (instance.getInstanceType() == Instance.instanceType.PROXITOK) {
|
||||
proxitokInstances.add(instance);
|
||||
if (proxitokHost != null && proxitokHost.trim().toLowerCase().compareTo(instance.getDomain()) == 0) {
|
||||
customProxitokInstance = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
List<String> defaultLocales = new ArrayList<>();
|
||||
defaultLocales.add("--");
|
||||
//Check if custom instances are also added
|
||||
if (customInvidiousInstance) {
|
||||
Instance instance = new Instance();
|
||||
instance.setChecked(true);
|
||||
instance.setDomain(invidiousHost);
|
||||
instance.setLocale("--");
|
||||
instance.setLocales(defaultLocales);
|
||||
invidiousInstances.add(0, instance);
|
||||
}
|
||||
if (customNitterInstance) {
|
||||
Instance instance = new Instance();
|
||||
instance.setChecked(true);
|
||||
instance.setDomain(nitterHost);
|
||||
instance.setLocale("--");
|
||||
instance.setLocales(defaultLocales);
|
||||
nitterInstances.add(0, instance);
|
||||
}
|
||||
if (customBibliogramInstance) {
|
||||
Instance instance = new Instance();
|
||||
instance.setChecked(true);
|
||||
instance.setDomain(bibliogramHost);
|
||||
instance.setLocale("--");
|
||||
instance.setLocales(defaultLocales);
|
||||
bibliogramInstances.add(0, instance);
|
||||
}
|
||||
if (customTedditInstance) {
|
||||
Instance instance = new Instance();
|
||||
instance.setChecked(true);
|
||||
instance.setDomain(tedditHost);
|
||||
instance.setLocales(defaultLocales);
|
||||
tedditInstances.add(0, instance);
|
||||
}
|
||||
if (customScribeInstance) {
|
||||
Instance instance = new Instance();
|
||||
instance.setChecked(true);
|
||||
instance.setDomain(scribeHost);
|
||||
instance.setLocales(defaultLocales);
|
||||
scribeInstances.add(0, instance);
|
||||
}
|
||||
if (customWikilessInstance) {
|
||||
Instance instance = new Instance();
|
||||
instance.setChecked(true);
|
||||
instance.setDomain(wikilessHost);
|
||||
instance.setLocales(defaultLocales);
|
||||
wikilessInstances.add(0, instance);
|
||||
}
|
||||
if (customProxitokInstance) {
|
||||
Instance instance = new Instance();
|
||||
instance.setChecked(true);
|
||||
instance.setDomain(proxitokHost);
|
||||
instance.setLocales(defaultLocales);
|
||||
proxitokInstances.add(0, instance);
|
||||
}
|
||||
binding.instanceContainer.setVisibility(View.VISIBLE);
|
||||
binding.loader.setVisibility(View.GONE);
|
||||
|
||||
|
||||
final LinearLayoutManager iLayoutManager = new LinearLayoutManager(this);
|
||||
InstanceAdapter invidiousAdapter = new InstanceAdapter(invidiousInstances);
|
||||
invidious_instances.setAdapter(invidiousAdapter);
|
||||
invidious_instances.setLayoutManager(iLayoutManager);
|
||||
invidious_instances.setNestedScrollingEnabled(false);
|
||||
binding.invidiousInstances.setAdapter(invidiousAdapter);
|
||||
binding.invidiousInstances.setLayoutManager(iLayoutManager);
|
||||
binding.invidiousInstances.setNestedScrollingEnabled(false);
|
||||
|
||||
final LinearLayoutManager nLayoutManager = new LinearLayoutManager(this);
|
||||
InstanceAdapter nitterAdapter = new InstanceAdapter(nitterInstances);
|
||||
nitter_instances.setAdapter(nitterAdapter);
|
||||
nitter_instances.setLayoutManager(nLayoutManager);
|
||||
nitter_instances.setNestedScrollingEnabled(false);
|
||||
binding.nitterInstances.setAdapter(nitterAdapter);
|
||||
binding.nitterInstances.setLayoutManager(nLayoutManager);
|
||||
binding.nitterInstances.setNestedScrollingEnabled(false);
|
||||
|
||||
final LinearLayoutManager bLayoutManager = new LinearLayoutManager(this);
|
||||
InstanceAdapter bibliogramAdapter = new InstanceAdapter(bibliogramInstances);
|
||||
bibliogram_instances.setAdapter(bibliogramAdapter);
|
||||
bibliogram_instances.setLayoutManager(bLayoutManager);
|
||||
bibliogram_instances.setNestedScrollingEnabled(false);
|
||||
latency_test.setOnClickListener(
|
||||
v -> {
|
||||
binding.bibliogramInstances.setAdapter(bibliogramAdapter);
|
||||
binding.bibliogramInstances.setLayoutManager(bLayoutManager);
|
||||
binding.bibliogramInstances.setNestedScrollingEnabled(false);
|
||||
|
||||
|
||||
final LinearLayoutManager tLayoutManager = new LinearLayoutManager(this);
|
||||
InstanceAdapter tedditAdapter = new InstanceAdapter(tedditInstances);
|
||||
binding.tedditInstances.setAdapter(tedditAdapter);
|
||||
binding.tedditInstances.setLayoutManager(tLayoutManager);
|
||||
binding.tedditInstances.setNestedScrollingEnabled(false);
|
||||
|
||||
|
||||
final LinearLayoutManager sLayoutManager = new LinearLayoutManager(this);
|
||||
InstanceAdapter scribeAdapter = new InstanceAdapter(scribeInstances);
|
||||
binding.scribeInstances.setAdapter(scribeAdapter);
|
||||
binding.scribeInstances.setLayoutManager(sLayoutManager);
|
||||
binding.scribeInstances.setNestedScrollingEnabled(false);
|
||||
|
||||
final LinearLayoutManager wLayoutManager = new LinearLayoutManager(this);
|
||||
InstanceAdapter wikilessAdapter = new InstanceAdapter(wikilessInstances);
|
||||
binding.wikilessInstances.setAdapter(wikilessAdapter);
|
||||
binding.wikilessInstances.setLayoutManager(wLayoutManager);
|
||||
binding.wikilessInstances.setNestedScrollingEnabled(false);
|
||||
|
||||
final LinearLayoutManager pLayoutManager = new LinearLayoutManager(this);
|
||||
InstanceAdapter proxitokAdapter = new InstanceAdapter(proxitokInstances);
|
||||
binding.proxitokInstances.setAdapter(proxitokAdapter);
|
||||
binding.proxitokInstances.setLayoutManager(pLayoutManager);
|
||||
binding.proxitokInstances.setNestedScrollingEnabled(false);
|
||||
|
||||
binding.latencyTest.setOnClickListener(v -> {
|
||||
invidiousAdapter.evalLatency();
|
||||
nitterAdapter.evalLatency();
|
||||
bibliogramAdapter.evalLatency();
|
||||
tedditAdapter.evalLatency();
|
||||
scribeAdapter.evalLatency();
|
||||
wikilessAdapter.evalLatency();
|
||||
proxitokAdapter.evalLatency();
|
||||
}
|
||||
);
|
||||
|
||||
instance_info.setOnClickListener(v -> {
|
||||
|
||||
binding.instanceInfo.setOnClickListener(v -> {
|
||||
AlertDialog.Builder instanceInfo = new AlertDialog.Builder(this);
|
||||
instanceInfo.setTitle(R.string.about_instances_title);
|
||||
View view = getLayoutInflater().inflate(R.layout.popup_instance_info, new LinearLayout(getApplicationContext()), false);
|
||||
|
@ -157,11 +247,9 @@ public class InstanceActivity extends AppCompatActivity {
|
|||
alertDialog.show();
|
||||
});
|
||||
|
||||
close.setOnClickListener(v -> finish());
|
||||
binding.close.setOnClickListener(v -> finish());
|
||||
|
||||
|
||||
instance_container.setVisibility(View.VISIBLE);
|
||||
loader.setVisibility(View.GONE);
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
@ -14,6 +14,8 @@ package app.fedilab.nitterizeme.activities;
|
|||
* You should have received a copy of the GNU General Public License along with UntrackMe; if not,
|
||||
* see <http://www.gnu.org/licenses>. */
|
||||
|
||||
import static app.fedilab.nitterizeme.helpers.Utils.KILL_ACTIVITY;
|
||||
|
||||
import android.content.BroadcastReceiver;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
|
@ -27,47 +29,49 @@ import android.provider.Settings;
|
|||
import android.view.Menu;
|
||||
import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
import android.widget.Button;
|
||||
import android.widget.CheckBox;
|
||||
import android.widget.ImageButton;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import androidx.appcompat.widget.SwitchCompat;
|
||||
import androidx.appcompat.widget.Toolbar;
|
||||
import androidx.constraintlayout.widget.ConstraintLayout;
|
||||
import androidx.constraintlayout.widget.Group;
|
||||
|
||||
import com.google.android.material.snackbar.Snackbar;
|
||||
import com.google.android.material.textfield.TextInputEditText;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
import app.fedilab.nitterizeme.BuildConfig;
|
||||
import app.fedilab.nitterizeme.R;
|
||||
|
||||
import static app.fedilab.nitterizeme.helpers.Utils.KILL_ACTIVITY;
|
||||
import app.fedilab.nitterizeme.databinding.ActivityMainBinding;
|
||||
import app.fedilab.nitterizeme.databinding.ContentMainBinding;
|
||||
|
||||
public class MainActivity extends AppCompatActivity {
|
||||
|
||||
public static final String APP_PREFS = "app_prefs";
|
||||
public static final String SET_NITTER_HOST = "set_nitter_host";
|
||||
public static final String SET_INVIDIOUS_HOST = "set_invidious_host";
|
||||
public static final String SET_TEDDIT_HOST = "set_teddit_host";
|
||||
public static final String SET_OSM_HOST = "set_osm_host";
|
||||
public static final String SET_BIBLIOGRAM_HOST = "set_bibliogram_host";
|
||||
public static final String SET_SCRIBERIP_HOST = "set_scriberip_host";
|
||||
public static final String SET_WIKILESS_HOST = "set_wikiless_host";
|
||||
public static final String SET_PROXITOK_HOST = "set_proxitok_host";
|
||||
@SuppressWarnings({"unused", "RedundantSuppression"})
|
||||
public static String TAG = "UntrackMe";
|
||||
public static String DEFAULT_NITTER_HOST = "nitter.net";
|
||||
public static String DEFAULT_INVIDIOUS_HOST = "invidious.snopyta.org";
|
||||
public static String SET_INVIDIOUS_ENABLED = "set_invidious_enabled";
|
||||
public static String SET_TEDDIT_ENABLED = "set_teddit_enabled";
|
||||
public static String SET_NITTER_ENABLED = "set_nitter_enabled";
|
||||
public static String SET_SCRIBERIP_ENABLED = "set_scriberip_enabled";
|
||||
public static String SET_WIKILESS_ENABLED = "set_wikiless_enabled";
|
||||
public static String SET_OSM_ENABLED = "set_osm_enabled";
|
||||
public static String SET_PROXITOK_ENABLED = "set_osm_enabled";
|
||||
public static String DEFAULT_OSM_HOST = "www.openstreetmap.org";
|
||||
public static String SET_BIBLIOGRAM_ENABLED = "set_bibliogram_enabled";
|
||||
public static String DEFAULT_BIBLIOGRAM_HOST = "bibliogram.art";
|
||||
public static String DEFAULT_SCRIBERIP_HOST = "scribe.rip";
|
||||
public static String DEFAULT_WIKILESS_HOST = "wikiless.org";
|
||||
public static String DEFAULT_TEDDIT_HOST = "teddit.net";
|
||||
public static String DEFAULT_PROXITOK_HOST = "proxitok.pabloferreiro.es";
|
||||
public static String SET_GEO_URIS = "set_geo_uris";
|
||||
public static String SET_EMBEDDED_PLAYER = "set_embedded_player";
|
||||
BroadcastReceiver broadcastReceiver = new BroadcastReceiver() {
|
||||
|
||||
@Override
|
||||
|
@ -82,366 +86,538 @@ public class MainActivity extends AppCompatActivity {
|
|||
private String nitterHost;
|
||||
private String invidiousHost;
|
||||
private String bibliogramHost;
|
||||
private String tedditHost;
|
||||
private String scriberipHost;
|
||||
private String wikilessHost;
|
||||
private String osmHost;
|
||||
private String proxitokHost;
|
||||
private ContentMainBinding binding;
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.activity_main);
|
||||
Toolbar toolbar = findViewById(R.id.toolbar);
|
||||
setSupportActionBar(toolbar);
|
||||
ActivityMainBinding activityMainBinding = ActivityMainBinding.inflate(getLayoutInflater());
|
||||
View viewRoot = activityMainBinding.getRoot();
|
||||
setContentView(viewRoot);
|
||||
binding = activityMainBinding.contentMain;
|
||||
setSupportActionBar(activityMainBinding.toolbar);
|
||||
Objects.requireNonNull(getSupportActionBar()).setDisplayShowHomeEnabled(true);
|
||||
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
|
||||
|
||||
SharedPreferences sharedpreferences = getSharedPreferences(APP_PREFS, Context.MODE_PRIVATE);
|
||||
|
||||
TextView current_instance_nitter = findViewById(R.id.current_instance_nitter);
|
||||
TextView current_instance_invidious = findViewById(R.id.current_instance_invidious);
|
||||
TextView current_instance_bibliogram = findViewById(R.id.current_instance_bibliogram);
|
||||
TextView current_instance_osm = findViewById(R.id.current_instance_osm);
|
||||
|
||||
|
||||
TextInputEditText nitter_instance = findViewById(R.id.nitter_instance);
|
||||
TextInputEditText invidious_instance = findViewById(R.id.invidious_instance);
|
||||
TextInputEditText bibliogram_instance = findViewById(R.id.bibliogram_instance);
|
||||
TextInputEditText osm_instance = findViewById(R.id.osm_instance);
|
||||
|
||||
|
||||
Group invidious_current_group = findViewById(R.id.group_current_invidious);
|
||||
Group nitter_current_group = findViewById(R.id.group_current_nitter);
|
||||
Group bibliogram_current_group = findViewById(R.id.group_current_bibliogram);
|
||||
Group osm_current_group = findViewById(R.id.group_current_osm);
|
||||
|
||||
|
||||
Group invidious_custom_group = findViewById(R.id.group_custom_invidious);
|
||||
Group nitter_custom_group = findViewById(R.id.group_custom_nitter);
|
||||
Group bibliogram_custom_group = findViewById(R.id.group_custom_bibliogram);
|
||||
Group osm_custom_group = findViewById(R.id.group_custom_osm);
|
||||
|
||||
|
||||
SwitchCompat enable_nitter = findViewById(R.id.enable_nitter);
|
||||
SwitchCompat enable_invidious = findViewById(R.id.enable_invidious);
|
||||
SwitchCompat enable_bibliogram = findViewById(R.id.enable_bibliogram);
|
||||
SwitchCompat enable_osm = findViewById(R.id.enable_osm);
|
||||
|
||||
|
||||
ImageButton expand_instance_nitter = findViewById(R.id.button_expand_instance_nitter);
|
||||
ImageButton expand_instance_invidious = findViewById(R.id.button_expand_instance_invidious);
|
||||
ImageButton expand_instance_bibliogram = findViewById(R.id.button_expand_instance_bibliogram);
|
||||
ImageButton expand_instance_osm = findViewById(R.id.button_expand_instance_osm);
|
||||
|
||||
|
||||
boolean nitter_enabled = sharedpreferences.getBoolean(SET_NITTER_ENABLED, true);
|
||||
boolean invidious_enabled = sharedpreferences.getBoolean(SET_INVIDIOUS_ENABLED, true);
|
||||
boolean osm_enabled = sharedpreferences.getBoolean(SET_OSM_ENABLED, true);
|
||||
boolean bibliogram_enabled = sharedpreferences.getBoolean(SET_BIBLIOGRAM_ENABLED, true);
|
||||
boolean teddit_enabled = sharedpreferences.getBoolean(SET_TEDDIT_ENABLED, true);
|
||||
boolean scriberip_enabled = sharedpreferences.getBoolean(SET_SCRIBERIP_ENABLED, true);
|
||||
boolean wikiless_enabled = sharedpreferences.getBoolean(SET_WIKILESS_ENABLED, true);
|
||||
boolean proxitok_enabled = sharedpreferences.getBoolean(SET_PROXITOK_ENABLED, true);
|
||||
boolean geouri_enabled = sharedpreferences.getBoolean(SET_GEO_URIS, false);
|
||||
boolean embedded_player = sharedpreferences.getBoolean(SET_EMBEDDED_PLAYER, false);
|
||||
|
||||
enable_nitter.setChecked(nitter_enabled);
|
||||
enable_invidious.setChecked(invidious_enabled);
|
||||
enable_bibliogram.setChecked(bibliogram_enabled);
|
||||
enable_osm.setChecked(osm_enabled);
|
||||
ImageButton save_instance_nitter = findViewById(R.id.button_save_instance_nitter);
|
||||
ImageButton save_instance_invidious = findViewById(R.id.button_save_instance_invidious);
|
||||
ImageButton save_instance_bibliogram = findViewById(R.id.button_save_instance_bibliogram);
|
||||
ImageButton save_instance_osm = findViewById(R.id.button_save_instance_osm);
|
||||
|
||||
CheckBox enable_geo_uris = findViewById(R.id.enable_geo_uris);
|
||||
CheckBox enable_embed_player = findViewById(R.id.enable_embed_player);
|
||||
binding.enableNitter.setChecked(nitter_enabled);
|
||||
binding.enableInvidious.setChecked(invidious_enabled);
|
||||
binding.enableBibliogram.setChecked(bibliogram_enabled);
|
||||
binding.enableTeddit.setChecked(teddit_enabled);
|
||||
binding.enableScriberip.setChecked(scriberip_enabled);
|
||||
binding.enableWikiless.setChecked(wikiless_enabled);
|
||||
binding.enableOsm.setChecked(osm_enabled);
|
||||
binding.enableProxitok.setChecked(proxitok_enabled);
|
||||
|
||||
|
||||
nitterHost = sharedpreferences.getString(SET_NITTER_HOST, null);
|
||||
invidiousHost = sharedpreferences.getString(SET_INVIDIOUS_HOST, null);
|
||||
bibliogramHost = sharedpreferences.getString(SET_BIBLIOGRAM_HOST, null);
|
||||
tedditHost = sharedpreferences.getString(SET_TEDDIT_HOST, null);
|
||||
scriberipHost = sharedpreferences.getString(SET_SCRIBERIP_HOST, null);
|
||||
wikilessHost = sharedpreferences.getString(SET_WIKILESS_HOST, null);
|
||||
osmHost = sharedpreferences.getString(SET_OSM_HOST, null);
|
||||
proxitokHost = sharedpreferences.getString(SET_PROXITOK_HOST, null);
|
||||
|
||||
invidious_current_group.setVisibility(invidious_enabled ? View.VISIBLE : View.GONE);
|
||||
nitter_current_group.setVisibility(nitter_enabled ? View.VISIBLE : View.GONE);
|
||||
bibliogram_current_group.setVisibility(bibliogram_enabled ? View.VISIBLE : View.GONE);
|
||||
osm_current_group.setVisibility((osm_enabled && geouri_enabled) ? View.VISIBLE : View.GONE);
|
||||
enable_geo_uris.setVisibility(osm_enabled ? View.VISIBLE : View.GONE);
|
||||
enable_embed_player.setVisibility(invidious_enabled ? View.VISIBLE : View.GONE);
|
||||
binding.groupCurrentInvidious.setVisibility(invidious_enabled ? View.VISIBLE : View.GONE);
|
||||
binding.groupCurrentNitter.setVisibility(nitter_enabled ? View.VISIBLE : View.GONE);
|
||||
binding.groupCurrentBibliogram.setVisibility(bibliogram_enabled ? View.VISIBLE : View.GONE);
|
||||
binding.groupCurrentTeddit.setVisibility(bibliogram_enabled ? View.VISIBLE : View.GONE);
|
||||
binding.groupCurrentScriberip.setVisibility(scriberip_enabled ? View.VISIBLE : View.GONE);
|
||||
binding.groupCurrentWikiless.setVisibility(wikiless_enabled ? View.VISIBLE : View.GONE);
|
||||
binding.groupCurrentOsm.setVisibility((osm_enabled && geouri_enabled) ? View.VISIBLE : View.GONE);
|
||||
binding.groupCurrentProxitok.setVisibility(proxitok_enabled ? View.VISIBLE : View.GONE);
|
||||
binding.enableGeoUris.setVisibility(osm_enabled ? View.VISIBLE : View.GONE);
|
||||
|
||||
enable_invidious.setOnCheckedChangeListener((buttonView, isChecked) -> {
|
||||
binding.enableInvidious.setOnCheckedChangeListener((buttonView, isChecked) -> {
|
||||
SharedPreferences.Editor editor = sharedpreferences.edit();
|
||||
editor.putBoolean(SET_INVIDIOUS_ENABLED, isChecked);
|
||||
editor.apply();
|
||||
invidious_current_group.setVisibility(isChecked ? View.VISIBLE : View.GONE);
|
||||
invidious_custom_group.setVisibility(View.GONE);
|
||||
enable_embed_player.setVisibility(isChecked ? View.VISIBLE : View.GONE);
|
||||
expand_instance_invidious.setRotation(0);
|
||||
binding.groupCurrentInvidious.setVisibility(isChecked ? View.VISIBLE : View.GONE);
|
||||
binding.groupCustomInvidious.setVisibility(View.GONE);
|
||||
binding.buttonExpandInstanceInvidious.setRotation(0);
|
||||
});
|
||||
enable_nitter.setOnCheckedChangeListener((buttonView, isChecked) -> {
|
||||
binding.enableNitter.setOnCheckedChangeListener((buttonView, isChecked) -> {
|
||||
SharedPreferences.Editor editor = sharedpreferences.edit();
|
||||
editor.putBoolean(SET_NITTER_ENABLED, isChecked);
|
||||
editor.apply();
|
||||
nitter_current_group.setVisibility(isChecked ? View.VISIBLE : View.GONE);
|
||||
nitter_custom_group.setVisibility(View.GONE);
|
||||
expand_instance_nitter.setRotation(0);
|
||||
binding.groupCurrentNitter.setVisibility(isChecked ? View.VISIBLE : View.GONE);
|
||||
binding.groupCustomNitter.setVisibility(View.GONE);
|
||||
binding.buttonExpandInstanceNitter.setRotation(0);
|
||||
});
|
||||
enable_bibliogram.setOnCheckedChangeListener((buttonView, isChecked) -> {
|
||||
binding.enableBibliogram.setOnCheckedChangeListener((buttonView, isChecked) -> {
|
||||
SharedPreferences.Editor editor = sharedpreferences.edit();
|
||||
editor.putBoolean(SET_BIBLIOGRAM_ENABLED, isChecked);
|
||||
editor.apply();
|
||||
bibliogram_current_group.setVisibility(isChecked ? View.VISIBLE : View.GONE);
|
||||
bibliogram_custom_group.setVisibility(View.GONE);
|
||||
expand_instance_bibliogram.setRotation(0);
|
||||
binding.groupCurrentBibliogram.setVisibility(isChecked ? View.VISIBLE : View.GONE);
|
||||
binding.groupCustomBibliogram.setVisibility(View.GONE);
|
||||
binding.buttonExpandInstanceBibliogram.setRotation(0);
|
||||
});
|
||||
enable_osm.setOnCheckedChangeListener((buttonView, isChecked) -> {
|
||||
binding.enableTeddit.setOnCheckedChangeListener((buttonView, isChecked) -> {
|
||||
SharedPreferences.Editor editor = sharedpreferences.edit();
|
||||
editor.putBoolean(SET_TEDDIT_ENABLED, isChecked);
|
||||
editor.apply();
|
||||
binding.groupCurrentTeddit.setVisibility(isChecked ? View.VISIBLE : View.GONE);
|
||||
binding.groupCustomTeddit.setVisibility(View.GONE);
|
||||
binding.buttonExpandInstanceTeddit.setRotation(0);
|
||||
});
|
||||
binding.enableScriberip.setOnCheckedChangeListener((buttonView, isChecked) -> {
|
||||
SharedPreferences.Editor editor = sharedpreferences.edit();
|
||||
editor.putBoolean(SET_SCRIBERIP_ENABLED, isChecked);
|
||||
editor.apply();
|
||||
binding.groupCurrentScriberip.setVisibility(isChecked ? View.VISIBLE : View.GONE);
|
||||
binding.groupCustomScriberip.setVisibility(View.GONE);
|
||||
binding.buttonExpandInstanceScriberip.setRotation(0);
|
||||
});
|
||||
binding.enableWikiless.setOnCheckedChangeListener((buttonView, isChecked) -> {
|
||||
SharedPreferences.Editor editor = sharedpreferences.edit();
|
||||
editor.putBoolean(SET_WIKILESS_ENABLED, isChecked);
|
||||
editor.apply();
|
||||
binding.groupCurrentWikiless.setVisibility(isChecked ? View.VISIBLE : View.GONE);
|
||||
binding.groupCustomWikiless.setVisibility(View.GONE);
|
||||
binding.buttonExpandInstanceWikiless.setRotation(0);
|
||||
});
|
||||
binding.enableOsm.setOnCheckedChangeListener((buttonView, isChecked) -> {
|
||||
SharedPreferences.Editor editor = sharedpreferences.edit();
|
||||
editor.putBoolean(SET_OSM_ENABLED, isChecked);
|
||||
editor.apply();
|
||||
osm_custom_group.setVisibility(View.GONE);
|
||||
enable_geo_uris.setVisibility(isChecked ? View.VISIBLE : View.GONE);
|
||||
expand_instance_osm.setRotation(0);
|
||||
binding.groupCustomOsm.setVisibility(View.GONE);
|
||||
binding.enableGeoUris.setVisibility(isChecked ? View.VISIBLE : View.GONE);
|
||||
binding.buttonExpandInstanceOsm.setRotation(0);
|
||||
boolean geo = sharedpreferences.getBoolean(SET_GEO_URIS, false);
|
||||
if (isChecked) {
|
||||
if (geo) {
|
||||
osm_current_group.setVisibility(View.GONE);
|
||||
osm_custom_group.setVisibility(View.GONE);
|
||||
binding.groupCurrentOsm.setVisibility(View.GONE);
|
||||
binding.groupCustomOsm.setVisibility(View.GONE);
|
||||
} else {
|
||||
osm_current_group.setVisibility(View.VISIBLE);
|
||||
binding.groupCurrentOsm.setVisibility(View.VISIBLE);
|
||||
}
|
||||
} else {
|
||||
osm_current_group.setVisibility(View.GONE);
|
||||
binding.groupCurrentOsm.setVisibility(View.GONE);
|
||||
}
|
||||
});
|
||||
binding.enableProxitok.setOnCheckedChangeListener((buttonView, isChecked) -> {
|
||||
SharedPreferences.Editor editor = sharedpreferences.edit();
|
||||
editor.putBoolean(SET_PROXITOK_ENABLED, isChecked);
|
||||
editor.apply();
|
||||
binding.groupCurrentProxitok.setVisibility(isChecked ? View.VISIBLE : View.GONE);
|
||||
binding.groupCustomProxitok.setVisibility(View.GONE);
|
||||
binding.buttonExpandInstanceProxitok.setRotation(0);
|
||||
});
|
||||
|
||||
|
||||
expand_instance_nitter.setOnClickListener(v -> {
|
||||
boolean custom_instance_visibility = nitter_custom_group.getVisibility() == View.VISIBLE;
|
||||
binding.buttonExpandInstanceNitter.setOnClickListener(v -> {
|
||||
boolean custom_instance_visibility = binding.groupCustomNitter.getVisibility() == View.VISIBLE;
|
||||
if (custom_instance_visibility) {
|
||||
expand_instance_nitter.setRotation(0f);
|
||||
nitter_custom_group.setVisibility(View.GONE);
|
||||
binding.buttonExpandInstanceNitter.setRotation(0f);
|
||||
binding.groupCustomNitter.setVisibility(View.GONE);
|
||||
} else {
|
||||
expand_instance_nitter.setRotation(180f);
|
||||
nitter_custom_group.setVisibility(View.VISIBLE);
|
||||
binding.buttonExpandInstanceNitter.setRotation(180f);
|
||||
binding.groupCustomNitter.setVisibility(View.VISIBLE);
|
||||
}
|
||||
|
||||
if (nitterHost != null) {
|
||||
nitter_instance.setText(nitterHost);
|
||||
binding.nitterInstance.setText(nitterHost);
|
||||
} else {
|
||||
nitter_instance.setText("");
|
||||
binding.nitterInstance.setText("");
|
||||
}
|
||||
});
|
||||
expand_instance_invidious.setOnClickListener(v -> {
|
||||
boolean custom_instance_visibility = invidious_custom_group.getVisibility() == View.VISIBLE;
|
||||
binding.buttonExpandInstanceInvidious.setOnClickListener(v -> {
|
||||
boolean custom_instance_visibility = binding.groupCustomInvidious.getVisibility() == View.VISIBLE;
|
||||
if (custom_instance_visibility) {
|
||||
expand_instance_invidious.setRotation(0f);
|
||||
invidious_custom_group.setVisibility(View.GONE);
|
||||
binding.buttonExpandInstanceInvidious.setRotation(0f);
|
||||
binding.groupCustomInvidious.setVisibility(View.GONE);
|
||||
} else {
|
||||
expand_instance_invidious.setRotation(180f);
|
||||
invidious_custom_group.setVisibility(View.VISIBLE);
|
||||
binding.buttonExpandInstanceInvidious.setRotation(180f);
|
||||
binding.groupCustomInvidious.setVisibility(View.VISIBLE);
|
||||
}
|
||||
|
||||
if (invidiousHost != null) {
|
||||
invidious_instance.setText(invidiousHost);
|
||||
binding.invidiousInstance.setText(invidiousHost);
|
||||
} else {
|
||||
invidious_instance.setText("");
|
||||
binding.invidiousInstance.setText("");
|
||||
}
|
||||
});
|
||||
expand_instance_bibliogram.setOnClickListener(v -> {
|
||||
boolean custom_instance_visibility = bibliogram_custom_group.getVisibility() == View.VISIBLE;
|
||||
binding.buttonExpandInstanceBibliogram.setOnClickListener(v -> {
|
||||
boolean custom_instance_visibility = binding.groupCustomBibliogram.getVisibility() == View.VISIBLE;
|
||||
if (custom_instance_visibility) {
|
||||
expand_instance_bibliogram.setRotation(0f);
|
||||
bibliogram_custom_group.setVisibility(View.GONE);
|
||||
binding.buttonExpandInstanceBibliogram.setRotation(0f);
|
||||
binding.groupCustomBibliogram.setVisibility(View.GONE);
|
||||
} else {
|
||||
expand_instance_bibliogram.setRotation(180f);
|
||||
bibliogram_custom_group.setVisibility(View.VISIBLE);
|
||||
binding.buttonExpandInstanceBibliogram.setRotation(180f);
|
||||
binding.groupCustomBibliogram.setVisibility(View.VISIBLE);
|
||||
}
|
||||
|
||||
if (bibliogramHost != null) {
|
||||
bibliogram_instance.setText(bibliogramHost);
|
||||
binding.bibliogramInstance.setText(bibliogramHost);
|
||||
} else {
|
||||
bibliogram_instance.setText("");
|
||||
binding.bibliogramInstance.setText("");
|
||||
}
|
||||
});
|
||||
expand_instance_osm.setOnClickListener(v -> {
|
||||
boolean custom_instance_visibility = osm_custom_group.getVisibility() == View.VISIBLE;
|
||||
binding.buttonExpandInstanceTeddit.setOnClickListener(v -> {
|
||||
boolean custom_instance_visibility = binding.groupCustomTeddit.getVisibility() == View.VISIBLE;
|
||||
if (custom_instance_visibility) {
|
||||
expand_instance_osm.setRotation(0f);
|
||||
osm_custom_group.setVisibility(View.GONE);
|
||||
binding.buttonExpandInstanceTeddit.setRotation(0f);
|
||||
binding.groupCustomTeddit.setVisibility(View.GONE);
|
||||
} else {
|
||||
expand_instance_osm.setRotation(180f);
|
||||
osm_custom_group.setVisibility(View.VISIBLE);
|
||||
binding.buttonExpandInstanceTeddit.setRotation(180f);
|
||||
binding.groupCustomTeddit.setVisibility(View.VISIBLE);
|
||||
}
|
||||
|
||||
if (tedditHost != null) {
|
||||
binding.tedditInstance.setText(tedditHost);
|
||||
} else {
|
||||
binding.tedditInstance.setText("");
|
||||
}
|
||||
});
|
||||
binding.buttonExpandInstanceScriberip.setOnClickListener(v -> {
|
||||
boolean custom_instance_visibility = binding.groupCustomScriberip.getVisibility() == View.VISIBLE;
|
||||
if (custom_instance_visibility) {
|
||||
binding.buttonExpandInstanceScriberip.setRotation(0f);
|
||||
binding.groupCustomScriberip.setVisibility(View.GONE);
|
||||
} else {
|
||||
binding.buttonExpandInstanceScriberip.setRotation(180f);
|
||||
binding.groupCustomScriberip.setVisibility(View.VISIBLE);
|
||||
}
|
||||
|
||||
if (scriberipHost != null) {
|
||||
binding.scriberipInstance.setText(scriberipHost);
|
||||
} else {
|
||||
binding.scriberipInstance.setText("");
|
||||
}
|
||||
});
|
||||
binding.buttonExpandInstanceWikiless.setOnClickListener(v -> {
|
||||
boolean custom_instance_visibility = binding.groupCustomWikiless.getVisibility() == View.VISIBLE;
|
||||
if (custom_instance_visibility) {
|
||||
binding.buttonExpandInstanceWikiless.setRotation(0f);
|
||||
binding.groupCustomWikiless.setVisibility(View.GONE);
|
||||
} else {
|
||||
binding.buttonExpandInstanceWikiless.setRotation(180f);
|
||||
binding.groupCustomWikiless.setVisibility(View.VISIBLE);
|
||||
}
|
||||
if (wikilessHost != null) {
|
||||
binding.wikilessInstance.setText(wikilessHost);
|
||||
} else {
|
||||
binding.wikilessInstance.setText("");
|
||||
}
|
||||
});
|
||||
binding.buttonExpandInstanceOsm.setOnClickListener(v -> {
|
||||
boolean custom_instance_visibility = binding.groupCustomOsm.getVisibility() == View.VISIBLE;
|
||||
if (custom_instance_visibility) {
|
||||
binding.buttonExpandInstanceOsm.setRotation(0f);
|
||||
binding.groupCustomOsm.setVisibility(View.GONE);
|
||||
} else {
|
||||
binding.buttonExpandInstanceOsm.setRotation(180f);
|
||||
binding.groupCustomOsm.setVisibility(View.VISIBLE);
|
||||
}
|
||||
|
||||
if (osmHost != null) {
|
||||
osm_instance.setText(osmHost);
|
||||
binding.osmInstance.setText(osmHost);
|
||||
} else {
|
||||
osm_instance.setText("");
|
||||
binding.osmInstance.setText("");
|
||||
}
|
||||
});
|
||||
binding.buttonExpandInstanceProxitok.setOnClickListener(v -> {
|
||||
boolean custom_instance_visibility = binding.groupCustomProxitok.getVisibility() == View.VISIBLE;
|
||||
if (custom_instance_visibility) {
|
||||
binding.buttonExpandInstanceProxitok.setRotation(0f);
|
||||
binding.groupCustomProxitok.setVisibility(View.GONE);
|
||||
} else {
|
||||
binding.buttonExpandInstanceProxitok.setRotation(180f);
|
||||
binding.groupCustomProxitok.setVisibility(View.VISIBLE);
|
||||
}
|
||||
|
||||
if (proxitokHost != null) {
|
||||
binding.proxitokInstance.setText(proxitokHost);
|
||||
} else {
|
||||
binding.proxitokInstance.setText("");
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
if (nitterHost != null) {
|
||||
nitter_instance.setText(nitterHost);
|
||||
current_instance_nitter.setText(nitterHost);
|
||||
binding.nitterInstance.setText(nitterHost);
|
||||
binding.currentInstanceNitter.setText(nitterHost);
|
||||
} else {
|
||||
current_instance_nitter.setText(DEFAULT_NITTER_HOST);
|
||||
binding.currentInstanceNitter.setText(DEFAULT_NITTER_HOST);
|
||||
}
|
||||
if (invidiousHost != null) {
|
||||
invidious_instance.setText(invidiousHost);
|
||||
current_instance_invidious.setText(invidiousHost);
|
||||
binding.invidiousInstance.setText(invidiousHost);
|
||||
binding.currentInstanceInvidious.setText(invidiousHost);
|
||||
} else {
|
||||
current_instance_invidious.setText(DEFAULT_INVIDIOUS_HOST);
|
||||
binding.currentInstanceInvidious.setText(DEFAULT_INVIDIOUS_HOST);
|
||||
}
|
||||
if (bibliogramHost != null) {
|
||||
bibliogram_instance.setText(bibliogramHost);
|
||||
current_instance_bibliogram.setText(bibliogramHost);
|
||||
binding.bibliogramInstance.setText(bibliogramHost);
|
||||
binding.currentInstanceBibliogram.setText(bibliogramHost);
|
||||
} else {
|
||||
current_instance_bibliogram.setText(DEFAULT_BIBLIOGRAM_HOST);
|
||||
binding.currentInstanceBibliogram.setText(DEFAULT_BIBLIOGRAM_HOST);
|
||||
}
|
||||
if (tedditHost != null) {
|
||||
binding.tedditInstance.setText(tedditHost);
|
||||
binding.currentInstanceTeddit.setText(tedditHost);
|
||||
} else {
|
||||
binding.currentInstanceTeddit.setText(DEFAULT_TEDDIT_HOST);
|
||||
}
|
||||
if (scriberipHost != null) {
|
||||
binding.scriberipInstance.setText(scriberipHost);
|
||||
binding.currentInstanceScriberip.setText(scriberipHost);
|
||||
} else {
|
||||
binding.currentInstanceScriberip.setText(DEFAULT_SCRIBERIP_HOST);
|
||||
}
|
||||
if (wikilessHost != null) {
|
||||
binding.wikilessInstance.setText(wikilessHost);
|
||||
binding.currentInstanceWikiless.setText(wikilessHost);
|
||||
} else {
|
||||
binding.currentInstanceWikiless.setText(DEFAULT_WIKILESS_HOST);
|
||||
}
|
||||
if (osmHost != null) {
|
||||
osm_instance.setText(osmHost);
|
||||
current_instance_osm.setText(osmHost);
|
||||
binding.osmInstance.setText(osmHost);
|
||||
binding.currentInstanceOsm.setText(osmHost);
|
||||
} else {
|
||||
current_instance_osm.setText(DEFAULT_OSM_HOST);
|
||||
binding.currentInstanceOsm.setText(DEFAULT_OSM_HOST);
|
||||
}
|
||||
enable_geo_uris.setChecked(geouri_enabled);
|
||||
binding.enableGeoUris.setChecked(geouri_enabled);
|
||||
if (geouri_enabled) {
|
||||
osm_current_group.setVisibility(View.GONE);
|
||||
osm_custom_group.setVisibility(View.GONE);
|
||||
binding.groupCurrentOsm.setVisibility(View.GONE);
|
||||
binding.groupCustomOsm.setVisibility(View.GONE);
|
||||
} else if (osm_enabled) {
|
||||
osm_current_group.setVisibility(View.VISIBLE);
|
||||
binding.groupCurrentOsm.setVisibility(View.VISIBLE);
|
||||
} else {
|
||||
osm_custom_group.setVisibility(View.GONE);
|
||||
binding.groupCustomOsm.setVisibility(View.GONE);
|
||||
}
|
||||
if (proxitokHost != null) {
|
||||
binding.proxitokInstance.setText(proxitokHost);
|
||||
binding.currentInstanceProxitok.setText(proxitokHost);
|
||||
} else {
|
||||
binding.currentInstanceProxitok.setText(DEFAULT_PROXITOK_HOST);
|
||||
}
|
||||
|
||||
enable_embed_player.setChecked(embedded_player);
|
||||
save_instance_nitter.setOnClickListener(v -> {
|
||||
binding.buttonSaveInstanceNitter.setOnClickListener(v -> {
|
||||
SharedPreferences.Editor editor = sharedpreferences.edit();
|
||||
if (nitter_instance.getText() != null && nitter_instance.getText().toString().trim().length() > 0) {
|
||||
String custom_instance = nitter_instance.getText().toString().toLowerCase().trim();
|
||||
if (binding.nitterInstance.getText() != null && binding.nitterInstance.getText().toString().trim().length() > 0) {
|
||||
String custom_instance = binding.nitterInstance.getText().toString().toLowerCase().trim();
|
||||
editor.putString(SET_NITTER_HOST, custom_instance);
|
||||
current_instance_nitter.setText(custom_instance);
|
||||
binding.currentInstanceNitter.setText(custom_instance);
|
||||
} else {
|
||||
editor.putString(SET_NITTER_HOST, null);
|
||||
current_instance_nitter.setText(DEFAULT_NITTER_HOST);
|
||||
binding.currentInstanceNitter.setText(DEFAULT_NITTER_HOST);
|
||||
}
|
||||
editor.apply();
|
||||
});
|
||||
save_instance_invidious.setOnClickListener(v -> {
|
||||
binding.buttonSaveInstanceInvidious.setOnClickListener(v -> {
|
||||
SharedPreferences.Editor editor = sharedpreferences.edit();
|
||||
if (invidious_instance.getText() != null && invidious_instance.getText().toString().trim().length() > 0) {
|
||||
String custom_instance = invidious_instance.getText().toString().toLowerCase().trim();
|
||||
if (binding.invidiousInstance.getText() != null && binding.invidiousInstance.getText().toString().trim().length() > 0) {
|
||||
String custom_instance = binding.invidiousInstance.getText().toString().toLowerCase().trim();
|
||||
editor.putString(SET_INVIDIOUS_HOST, custom_instance);
|
||||
current_instance_invidious.setText(custom_instance);
|
||||
binding.currentInstanceInvidious.setText(custom_instance);
|
||||
} else {
|
||||
editor.putString(SET_INVIDIOUS_HOST, null);
|
||||
current_instance_invidious.setText(DEFAULT_INVIDIOUS_HOST);
|
||||
binding.currentInstanceInvidious.setText(DEFAULT_INVIDIOUS_HOST);
|
||||
}
|
||||
editor.apply();
|
||||
});
|
||||
save_instance_bibliogram.setOnClickListener(v -> {
|
||||
binding.buttonSaveInstanceBibliogram.setOnClickListener(v -> {
|
||||
SharedPreferences.Editor editor = sharedpreferences.edit();
|
||||
if (bibliogram_instance.getText() != null && bibliogram_instance.getText().toString().trim().length() > 0) {
|
||||
String custom_instance = bibliogram_instance.getText().toString().toLowerCase().trim();
|
||||
if (binding.bibliogramInstance.getText() != null && binding.bibliogramInstance.getText().toString().trim().length() > 0) {
|
||||
String custom_instance = binding.bibliogramInstance.getText().toString().toLowerCase().trim();
|
||||
editor.putString(SET_BIBLIOGRAM_HOST, custom_instance);
|
||||
current_instance_bibliogram.setText(custom_instance);
|
||||
binding.currentInstanceBibliogram.setText(custom_instance);
|
||||
} else {
|
||||
editor.putString(SET_BIBLIOGRAM_HOST, null);
|
||||
current_instance_bibliogram.setText(DEFAULT_BIBLIOGRAM_HOST);
|
||||
binding.currentInstanceBibliogram.setText(DEFAULT_BIBLIOGRAM_HOST);
|
||||
}
|
||||
editor.apply();
|
||||
});
|
||||
save_instance_osm.setOnClickListener(v -> {
|
||||
binding.buttonSaveInstanceTeddit.setOnClickListener(v -> {
|
||||
SharedPreferences.Editor editor = sharedpreferences.edit();
|
||||
if (osm_instance.getText() != null && osm_instance.getText().toString().trim().length() > 0) {
|
||||
String custom_instance = osm_instance.getText().toString().toLowerCase().trim();
|
||||
if (binding.tedditInstance.getText() != null && binding.tedditInstance.getText().toString().trim().length() > 0) {
|
||||
String custom_instance = binding.tedditInstance.getText().toString().toLowerCase().trim();
|
||||
editor.putString(SET_TEDDIT_HOST, custom_instance);
|
||||
binding.currentInstanceTeddit.setText(custom_instance);
|
||||
} else {
|
||||
editor.putString(SET_TEDDIT_HOST, null);
|
||||
binding.currentInstanceTeddit.setText(DEFAULT_TEDDIT_HOST);
|
||||
}
|
||||
editor.apply();
|
||||
});
|
||||
binding.buttonSaveInstanceScriberip.setOnClickListener(v -> {
|
||||
SharedPreferences.Editor editor = sharedpreferences.edit();
|
||||
if (binding.scriberipInstance.getText() != null && binding.scriberipInstance.getText().toString().trim().length() > 0) {
|
||||
String custom_instance = binding.scriberipInstance.getText().toString().toLowerCase().trim();
|
||||
editor.putString(SET_SCRIBERIP_HOST, custom_instance);
|
||||
binding.currentInstanceScriberip.setText(custom_instance);
|
||||
} else {
|
||||
editor.putString(SET_SCRIBERIP_HOST, null);
|
||||
binding.currentInstanceScriberip.setText(DEFAULT_SCRIBERIP_HOST);
|
||||
}
|
||||
editor.apply();
|
||||
});
|
||||
binding.buttonSaveInstanceWikiless.setOnClickListener(v -> {
|
||||
SharedPreferences.Editor editor = sharedpreferences.edit();
|
||||
if (binding.wikilessInstance.getText() != null && binding.wikilessInstance.getText().toString().trim().length() > 0) {
|
||||
String custom_instance = binding.wikilessInstance.getText().toString().toLowerCase().trim();
|
||||
editor.putString(SET_WIKILESS_HOST, custom_instance);
|
||||
binding.currentInstanceWikiless.setText(custom_instance);
|
||||
} else {
|
||||
editor.putString(SET_WIKILESS_HOST, null);
|
||||
binding.currentInstanceWikiless.setText(DEFAULT_WIKILESS_HOST);
|
||||
}
|
||||
editor.apply();
|
||||
});
|
||||
binding.buttonSaveInstanceOsm.setOnClickListener(v -> {
|
||||
SharedPreferences.Editor editor = sharedpreferences.edit();
|
||||
if (binding.osmInstance.getText() != null && binding.osmInstance.getText().toString().trim().length() > 0) {
|
||||
String custom_instance = binding.osmInstance.getText().toString().toLowerCase().trim();
|
||||
editor.putString(SET_OSM_HOST, custom_instance);
|
||||
} else {
|
||||
editor.putString(SET_OSM_HOST, null);
|
||||
current_instance_osm.setText(DEFAULT_OSM_HOST);
|
||||
binding.currentInstanceOsm.setText(DEFAULT_OSM_HOST);
|
||||
}
|
||||
editor.apply();
|
||||
});
|
||||
binding.buttonSaveInstanceProxitok.setOnClickListener(v -> {
|
||||
SharedPreferences.Editor editor = sharedpreferences.edit();
|
||||
if (binding.proxitokInstance.getText() != null && binding.proxitokInstance.getText().toString().trim().length() > 0) {
|
||||
String custom_instance = binding.proxitokInstance.getText().toString().toLowerCase().trim();
|
||||
editor.putString(SET_PROXITOK_HOST, custom_instance);
|
||||
binding.currentInstanceProxitok.setText(custom_instance);
|
||||
} else {
|
||||
editor.putString(SET_PROXITOK_HOST, null);
|
||||
binding.currentInstanceProxitok.setText(DEFAULT_PROXITOK_HOST);
|
||||
}
|
||||
editor.apply();
|
||||
});
|
||||
|
||||
Button configure = findViewById(R.id.configure);
|
||||
configure.setOnClickListener(v -> {
|
||||
binding.configure.setOnClickListener(v -> {
|
||||
Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
|
||||
Uri uri = Uri.fromParts("package", getApplicationInfo().packageName, null);
|
||||
intent.setData(uri);
|
||||
startActivity(intent);
|
||||
});
|
||||
|
||||
ImageButton buttonExpand = findViewById(R.id.button_expand);
|
||||
buttonExpand.setOnClickListener(v -> {
|
||||
binding.buttonExpand.setOnClickListener(v -> {
|
||||
Intent intent = new Intent(MainActivity.this, CheckAppActivity.class);
|
||||
startActivity(intent);
|
||||
});
|
||||
|
||||
ImageButton buttonPing = findViewById(R.id.instances);
|
||||
buttonPing.setOnClickListener(v -> {
|
||||
binding.instances.setOnClickListener(v -> {
|
||||
Intent intent = new Intent(MainActivity.this, InstanceActivity.class);
|
||||
startActivity(intent);
|
||||
});
|
||||
|
||||
|
||||
enable_geo_uris.setOnCheckedChangeListener((buttonView, isChecked) -> {
|
||||
binding.enableGeoUris.setOnCheckedChangeListener((buttonView, isChecked) -> {
|
||||
SharedPreferences.Editor editor = sharedpreferences.edit();
|
||||
editor.putBoolean(SET_GEO_URIS, isChecked);
|
||||
editor.apply();
|
||||
TextView osm_indications = findViewById(R.id.osm_indications);
|
||||
if (isChecked) {
|
||||
expand_instance_osm.setRotation(0f);
|
||||
osm_current_group.setVisibility(View.GONE);
|
||||
osm_custom_group.setVisibility(View.GONE);
|
||||
osm_indications.setText(R.string.redirect_gm_to_geo_uri);
|
||||
binding.buttonExpandInstanceOsm.setRotation(0f);
|
||||
binding.groupCurrentOsm.setVisibility(View.GONE);
|
||||
binding.groupCustomOsm.setVisibility(View.GONE);
|
||||
binding.osmIndications.setText(R.string.redirect_gm_to_geo_uri);
|
||||
} else {
|
||||
osm_current_group.setVisibility(View.VISIBLE);
|
||||
osm_indications.setText(R.string.redirect_gm_to_osm);
|
||||
binding.groupCurrentOsm.setVisibility(View.VISIBLE);
|
||||
binding.osmIndications.setText(R.string.redirect_gm_to_osm);
|
||||
}
|
||||
});
|
||||
enable_embed_player.setOnCheckedChangeListener((buttonView, isChecked) -> {
|
||||
SharedPreferences.Editor editor = sharedpreferences.edit();
|
||||
editor.putBoolean(SET_EMBEDDED_PLAYER, isChecked);
|
||||
editor.apply();
|
||||
});
|
||||
|
||||
sharedpreferences.registerOnSharedPreferenceChangeListener(
|
||||
(sharedPreferences, key) -> {
|
||||
switch (key) {
|
||||
case SET_NITTER_HOST:
|
||||
nitterHost = sharedpreferences.getString(SET_NITTER_HOST, null);
|
||||
nitter_custom_group.setVisibility(View.GONE);
|
||||
binding.groupCustomNitter.setVisibility(View.GONE);
|
||||
if (nitterHost != null && nitterHost.trim().length() > 0)
|
||||
current_instance_nitter.setText(nitterHost);
|
||||
binding.currentInstanceNitter.setText(nitterHost);
|
||||
else
|
||||
current_instance_nitter.setText(DEFAULT_NITTER_HOST);
|
||||
expand_instance_nitter.setRotation(0f);
|
||||
binding.currentInstanceNitter.setText(DEFAULT_NITTER_HOST);
|
||||
binding.buttonExpandInstanceNitter.setRotation(0f);
|
||||
break;
|
||||
case SET_INVIDIOUS_HOST:
|
||||
invidiousHost = sharedpreferences.getString(SET_INVIDIOUS_HOST, null);
|
||||
invidious_custom_group.setVisibility(View.GONE);
|
||||
binding.groupCustomInvidious.setVisibility(View.GONE);
|
||||
if (invidiousHost != null && invidiousHost.trim().length() > 0)
|
||||
current_instance_invidious.setText(invidiousHost);
|
||||
binding.currentInstanceInvidious.setText(invidiousHost);
|
||||
else
|
||||
current_instance_invidious.setText(DEFAULT_INVIDIOUS_HOST);
|
||||
expand_instance_invidious.setRotation(0f);
|
||||
binding.currentInstanceInvidious.setText(DEFAULT_INVIDIOUS_HOST);
|
||||
binding.buttonExpandInstanceInvidious.setRotation(0f);
|
||||
break;
|
||||
case SET_BIBLIOGRAM_HOST:
|
||||
bibliogramHost = sharedpreferences.getString(SET_BIBLIOGRAM_HOST, null);
|
||||
bibliogram_custom_group.setVisibility(View.GONE);
|
||||
binding.groupCustomBibliogram.setVisibility(View.GONE);
|
||||
if (bibliogramHost != null && bibliogramHost.trim().length() > 0)
|
||||
current_instance_bibliogram.setText(bibliogramHost);
|
||||
binding.currentInstanceBibliogram.setText(bibliogramHost);
|
||||
else
|
||||
current_instance_bibliogram.setText(DEFAULT_BIBLIOGRAM_HOST);
|
||||
expand_instance_bibliogram.setRotation(0f);
|
||||
binding.currentInstanceBibliogram.setText(DEFAULT_BIBLIOGRAM_HOST);
|
||||
binding.buttonExpandInstanceBibliogram.setRotation(0f);
|
||||
break;
|
||||
case SET_TEDDIT_HOST:
|
||||
tedditHost = sharedpreferences.getString(SET_TEDDIT_HOST, null);
|
||||
binding.groupCustomTeddit.setVisibility(View.GONE);
|
||||
if (tedditHost != null && tedditHost.trim().length() > 0)
|
||||
binding.currentInstanceTeddit.setText(tedditHost);
|
||||
else
|
||||
binding.currentInstanceTeddit.setText(DEFAULT_TEDDIT_HOST);
|
||||
binding.buttonExpandInstanceTeddit.setRotation(0f);
|
||||
break;
|
||||
case SET_SCRIBERIP_HOST:
|
||||
scriberipHost = sharedpreferences.getString(SET_SCRIBERIP_HOST, null);
|
||||
binding.groupCustomScriberip.setVisibility(View.GONE);
|
||||
if (scriberipHost != null && scriberipHost.trim().length() > 0)
|
||||
binding.currentInstanceScriberip.setText(scriberipHost);
|
||||
else
|
||||
binding.currentInstanceScriberip.setText(DEFAULT_SCRIBERIP_HOST);
|
||||
binding.buttonExpandInstanceScriberip.setRotation(0f);
|
||||
break;
|
||||
case SET_WIKILESS_HOST:
|
||||
wikilessHost = sharedpreferences.getString(SET_WIKILESS_HOST, null);
|
||||
binding.groupCustomWikiless.setVisibility(View.GONE);
|
||||
if (wikilessHost != null && wikilessHost.trim().length() > 0)
|
||||
binding.currentInstanceWikiless.setText(wikilessHost);
|
||||
else
|
||||
binding.currentInstanceWikiless.setText(DEFAULT_WIKILESS_HOST);
|
||||
binding.buttonExpandInstanceWikiless.setRotation(0f);
|
||||
break;
|
||||
case SET_OSM_HOST:
|
||||
osmHost = sharedpreferences.getString(SET_OSM_HOST, null);
|
||||
osm_custom_group.setVisibility(View.GONE);
|
||||
binding.groupCustomOsm.setVisibility(View.GONE);
|
||||
if (osmHost != null && osmHost.trim().length() > 0)
|
||||
current_instance_osm.setText(osmHost);
|
||||
binding.currentInstanceOsm.setText(osmHost);
|
||||
else
|
||||
current_instance_osm.setText(DEFAULT_OSM_HOST);
|
||||
expand_instance_osm.setRotation(0f);
|
||||
binding.currentInstanceOsm.setText(DEFAULT_OSM_HOST);
|
||||
binding.buttonExpandInstanceOsm.setRotation(0f);
|
||||
break;
|
||||
case SET_PROXITOK_HOST:
|
||||
proxitokHost = sharedpreferences.getString(SET_PROXITOK_HOST, null);
|
||||
binding.groupCustomProxitok.setVisibility(View.GONE);
|
||||
if (proxitokHost != null && proxitokHost.trim().length() > 0)
|
||||
binding.currentInstanceProxitok.setText(proxitokHost);
|
||||
else
|
||||
binding.currentInstanceProxitok.setText(DEFAULT_PROXITOK_HOST);
|
||||
binding.buttonExpandInstanceProxitok.setRotation(0f);
|
||||
break;
|
||||
}
|
||||
|
||||
if (key.equals(SET_NITTER_HOST) || key.equals(SET_INVIDIOUS_HOST) || key.equals(SET_BIBLIOGRAM_HOST) || key.equals(SET_OSM_HOST)) {
|
||||
if (key.equals(SET_NITTER_HOST) || key.equals(SET_INVIDIOUS_HOST) || key.equals(SET_BIBLIOGRAM_HOST) || key.equals(SET_TEDDIT_HOST) || key.equals(SET_OSM_HOST) || key.equals(SET_PROXITOK_HOST)) {
|
||||
View parentLayout = findViewById(android.R.id.content);
|
||||
Snackbar.make(parentLayout, R.string.instances_saved, Snackbar.LENGTH_LONG).show();
|
||||
}
|
||||
|
@ -450,8 +626,7 @@ public class MainActivity extends AppCompatActivity {
|
|||
);
|
||||
|
||||
//Invidious custom settings
|
||||
ImageButton invidious_settings = findViewById(R.id.invidious_settings);
|
||||
invidious_settings.setOnClickListener(v -> {
|
||||
binding.invidiousSettings.setOnClickListener(v -> {
|
||||
Intent intent = new Intent(MainActivity.this, InvidiousSettingsActivity.class);
|
||||
startActivity(intent);
|
||||
});
|
||||
|
@ -498,41 +673,53 @@ public class MainActivity extends AppCompatActivity {
|
|||
@Override
|
||||
protected void onResume() {
|
||||
super.onResume();
|
||||
TextInputEditText nitter_instance = findViewById(R.id.nitter_instance);
|
||||
TextInputEditText invidious_instance = findViewById(R.id.invidious_instance);
|
||||
TextInputEditText bibliogram_instance = findViewById(R.id.bibliogram_instance);
|
||||
|
||||
TextView current_instance_nitter = findViewById(R.id.current_instance_nitter);
|
||||
TextView current_instance_invidious = findViewById(R.id.current_instance_invidious);
|
||||
TextView current_instance_bibliogram = findViewById(R.id.current_instance_bibliogram);
|
||||
|
||||
SharedPreferences sharedpreferences = getSharedPreferences(APP_PREFS, Context.MODE_PRIVATE);
|
||||
String nitterHost = sharedpreferences.getString(SET_NITTER_HOST, null);
|
||||
String invidiousHost = sharedpreferences.getString(SET_INVIDIOUS_HOST, null);
|
||||
String bibliogramHost = sharedpreferences.getString(SET_BIBLIOGRAM_HOST, null);
|
||||
String tedditHost = sharedpreferences.getString(SET_TEDDIT_HOST, null);
|
||||
String scriberipHost = sharedpreferences.getString(SET_SCRIBERIP_HOST, null);
|
||||
String wikilessHost = sharedpreferences.getString(SET_WIKILESS_HOST, null);
|
||||
String proxitokHost = sharedpreferences.getString(SET_PROXITOK_HOST, null);
|
||||
if (nitterHost != null) {
|
||||
nitter_instance.setText(nitterHost);
|
||||
current_instance_nitter.setText(nitterHost);
|
||||
binding.nitterInstance.setText(nitterHost);
|
||||
binding.currentInstanceNitter.setText(nitterHost);
|
||||
}
|
||||
if (invidiousHost != null) {
|
||||
invidious_instance.setText(invidiousHost);
|
||||
current_instance_invidious.setText(invidiousHost);
|
||||
binding.invidiousInstance.setText(invidiousHost);
|
||||
binding.currentInstanceInvidious.setText(invidiousHost);
|
||||
}
|
||||
if (bibliogramHost != null) {
|
||||
bibliogram_instance.setText(bibliogramHost);
|
||||
current_instance_bibliogram.setText(bibliogramHost);
|
||||
binding.bibliogramInstance.setText(bibliogramHost);
|
||||
binding.currentInstanceBibliogram.setText(bibliogramHost);
|
||||
}
|
||||
if (tedditHost != null) {
|
||||
binding.tedditInstance.setText(tedditHost);
|
||||
binding.currentInstanceTeddit.setText(tedditHost);
|
||||
}
|
||||
if (scriberipHost != null) {
|
||||
binding.scriberipInstance.setText(scriberipHost);
|
||||
binding.currentInstanceScriberip.setText(scriberipHost);
|
||||
}
|
||||
if (wikilessHost != null) {
|
||||
binding.wikilessInstance.setText(wikilessHost);
|
||||
binding.currentInstanceWikiless.setText(wikilessHost);
|
||||
}
|
||||
if (proxitokHost != null) {
|
||||
binding.proxitokInstance.setText(proxitokHost);
|
||||
binding.currentInstanceProxitok.setText(proxitokHost);
|
||||
}
|
||||
ConstraintLayout display_indications = findViewById(R.id.display_indications);
|
||||
if (BuildConfig.fullLinks) {
|
||||
List<ResolveInfo> resolveInfos = getPackageManager().queryIntentActivities(new Intent(Intent.ACTION_VIEW, Uri.parse("https://fedilab.app")), PackageManager.MATCH_DEFAULT_ONLY);
|
||||
String thisPackageName = getApplicationContext().getPackageName();
|
||||
if (resolveInfos.size() == 1 && resolveInfos.get(0).activityInfo.packageName.compareTo(thisPackageName) == 0) {
|
||||
display_indications.setVisibility(View.VISIBLE);
|
||||
binding.displayIndications.setVisibility(View.VISIBLE);
|
||||
} else {
|
||||
display_indications.setVisibility(View.GONE);
|
||||
binding.displayIndications.setVisibility(View.GONE);
|
||||
}
|
||||
} else {
|
||||
display_indications.setVisibility(View.GONE);
|
||||
binding.displayIndications.setVisibility(View.GONE);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -14,6 +14,16 @@ package app.fedilab.nitterizeme.activities;
|
|||
* You should have received a copy of the GNU General Public License along with UntrackMe; if not,
|
||||
* see <http://www.gnu.org/licenses>. */
|
||||
|
||||
import static app.fedilab.nitterizeme.activities.CheckAppActivity.shortener_domains;
|
||||
import static app.fedilab.nitterizeme.helpers.Utils.KILL_ACTIVITY;
|
||||
import static app.fedilab.nitterizeme.helpers.Utils.forwardToBrowser;
|
||||
import static app.fedilab.nitterizeme.helpers.Utils.isRouted;
|
||||
import static app.fedilab.nitterizeme.helpers.Utils.manageShortened;
|
||||
import static app.fedilab.nitterizeme.helpers.Utils.manageShortenedShare;
|
||||
import static app.fedilab.nitterizeme.helpers.Utils.remove_tracking_param;
|
||||
import static app.fedilab.nitterizeme.helpers.Utils.routerEnabledForHost;
|
||||
import static app.fedilab.nitterizeme.helpers.Utils.transformUrl;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.Intent;
|
||||
import android.net.Uri;
|
||||
|
@ -31,16 +41,6 @@ import java.util.regex.Pattern;
|
|||
import app.fedilab.nitterizeme.BuildConfig;
|
||||
import app.fedilab.nitterizeme.helpers.Utils;
|
||||
|
||||
import static app.fedilab.nitterizeme.activities.CheckAppActivity.shortener_domains;
|
||||
import static app.fedilab.nitterizeme.helpers.Utils.KILL_ACTIVITY;
|
||||
import static app.fedilab.nitterizeme.helpers.Utils.forwardToBrowser;
|
||||
import static app.fedilab.nitterizeme.helpers.Utils.isRouted;
|
||||
import static app.fedilab.nitterizeme.helpers.Utils.manageShortened;
|
||||
import static app.fedilab.nitterizeme.helpers.Utils.manageShortenedShare;
|
||||
import static app.fedilab.nitterizeme.helpers.Utils.remove_tracking_param;
|
||||
import static app.fedilab.nitterizeme.helpers.Utils.routerEnabledForHost;
|
||||
import static app.fedilab.nitterizeme.helpers.Utils.transformUrl;
|
||||
|
||||
|
||||
public class TransformActivity extends Activity {
|
||||
|
||||
|
@ -59,7 +59,7 @@ public class TransformActivity extends Activity {
|
|||
//Dealing with URLs
|
||||
if (Objects.requireNonNull(intent.getAction()).equals(Intent.ACTION_VIEW)) {
|
||||
String url = Objects.requireNonNull(intent.getData()).toString();
|
||||
url = remove_tracking_param(url);
|
||||
url = remove_tracking_param(TransformActivity.this, url);
|
||||
URL url_;
|
||||
String host = null;
|
||||
try {
|
||||
|
@ -77,12 +77,12 @@ public class TransformActivity extends Activity {
|
|||
Intent delegate = new Intent(Intent.ACTION_VIEW);
|
||||
String transformedURL = transformUrl(TransformActivity.this, url);
|
||||
if (transformedURL != null) {
|
||||
delegate.setData(Uri.parse(transformUrl(TransformActivity.this, url)));
|
||||
delegate.setData(Uri.parse(transformedURL));
|
||||
delegate.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
if (BuildConfig.fullLinks) {
|
||||
forwardToBrowser(TransformActivity.this, delegate);
|
||||
} else {
|
||||
if (delegate.resolveActivity(getPackageManager()) != null) {
|
||||
if (delegate.resolveActivity(getPackageManager()) != null || !BuildConfig.fullLinks) {
|
||||
startActivity(delegate);
|
||||
finish();
|
||||
}
|
||||
|
@ -94,7 +94,7 @@ public class TransformActivity extends Activity {
|
|||
forwardToBrowser(TransformActivity.this, intent);
|
||||
}
|
||||
} else {
|
||||
String newUrl = remove_tracking_param(url);
|
||||
String newUrl = remove_tracking_param(TransformActivity.this, url);
|
||||
try {
|
||||
url_ = new URL(newUrl);
|
||||
host = url_.getHost();
|
||||
|
@ -154,7 +154,7 @@ public class TransformActivity extends Activity {
|
|||
forwardToBrowser(TransformActivity.this, sendIntent);
|
||||
return;
|
||||
}
|
||||
url = Utils.remove_tracking_param(url);
|
||||
url = Utils.remove_tracking_param(TransformActivity.this, url);
|
||||
URL url_;
|
||||
String host = null;
|
||||
try {
|
||||
|
|
|
@ -1,233 +0,0 @@
|
|||
package app.fedilab.nitterizeme.activities;
|
||||
/* Copyright 2020 Thomas Schneider
|
||||
*
|
||||
* This file is a part of UntrackMe
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it under the terms of the
|
||||
* GNU General Public License as published by the Free Software Foundation; either version 3 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* UntrackMe is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even
|
||||
* the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
|
||||
* Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along with UntrackMe; if not,
|
||||
* see <http://www.gnu.org/licenses>. */
|
||||
|
||||
import android.Manifest;
|
||||
import android.annotation.SuppressLint;
|
||||
import android.content.BroadcastReceiver;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.IntentFilter;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.graphics.Color;
|
||||
import android.net.Uri;
|
||||
import android.os.AsyncTask;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.view.WindowManager;
|
||||
import android.webkit.WebView;
|
||||
import android.widget.FrameLayout;
|
||||
import android.widget.RelativeLayout;
|
||||
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import androidx.core.app.ActivityCompat;
|
||||
import androidx.core.content.ContextCompat;
|
||||
import androidx.localbroadcastmanager.content.LocalBroadcastManager;
|
||||
|
||||
import org.jsoup.Jsoup;
|
||||
import org.jsoup.nodes.Document;
|
||||
import org.jsoup.nodes.Element;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
import app.fedilab.nitterizeme.R;
|
||||
import app.fedilab.nitterizeme.helpers.PlayerChromeClient;
|
||||
import app.fedilab.nitterizeme.helpers.Utils;
|
||||
|
||||
|
||||
public class WebviewPlayerActivity extends AppCompatActivity {
|
||||
|
||||
private static final int EXTERNAL_STORAGE_REQUEST_CODE = 84;
|
||||
private String videoUrl;
|
||||
private WebView webView;
|
||||
private RelativeLayout loader;
|
||||
private BroadcastReceiver receive_data;
|
||||
private FrameLayout webview_container;
|
||||
private String streaming_url;
|
||||
private String initialUrl;
|
||||
|
||||
@SuppressLint("SetJavaScriptEnabled")
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
initialUrl = null;
|
||||
Bundle b = getIntent().getExtras();
|
||||
if (b != null) {
|
||||
initialUrl = b.getString("url", null);
|
||||
}
|
||||
if (initialUrl == null) {
|
||||
finish();
|
||||
}
|
||||
|
||||
setContentView(R.layout.activity_webview_player);
|
||||
|
||||
|
||||
if (getSupportActionBar() != null) {
|
||||
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
|
||||
getSupportActionBar().setDisplayShowHomeEnabled(true);
|
||||
}
|
||||
|
||||
final ViewGroup videoLayout = findViewById(R.id.videoLayout);
|
||||
webView = findViewById(R.id.webview);
|
||||
webView.setBackgroundColor(Color.TRANSPARENT);
|
||||
loader = findViewById(R.id.loader);
|
||||
webview_container = findViewById(R.id.webview_container);
|
||||
webView.getSettings().setJavaScriptEnabled(true);
|
||||
|
||||
PlayerChromeClient playerChromeClient = new PlayerChromeClient(WebviewPlayerActivity.this, webView, webview_container, videoLayout);
|
||||
playerChromeClient.setOnToggledFullscreen(fullscreen -> {
|
||||
if (fullscreen) {
|
||||
videoLayout.setVisibility(View.VISIBLE);
|
||||
WindowManager.LayoutParams attrs = getWindow().getAttributes();
|
||||
attrs.flags |= WindowManager.LayoutParams.FLAG_FULLSCREEN;
|
||||
attrs.flags |= WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON;
|
||||
getWindow().setAttributes(attrs);
|
||||
getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LOW_PROFILE);
|
||||
} else {
|
||||
WindowManager.LayoutParams attrs = getWindow().getAttributes();
|
||||
attrs.flags &= ~WindowManager.LayoutParams.FLAG_FULLSCREEN;
|
||||
attrs.flags &= ~WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON;
|
||||
getWindow().setAttributes(attrs);
|
||||
getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_VISIBLE);
|
||||
videoLayout.setVisibility(View.GONE);
|
||||
}
|
||||
});
|
||||
|
||||
receive_data = new BroadcastReceiver() {
|
||||
@Override
|
||||
public void onReceive(Context context, Intent intent) {
|
||||
Bundle b = intent.getExtras();
|
||||
assert b != null;
|
||||
streaming_url = b.getString("streaming_url", null);
|
||||
if (streaming_url != null) {
|
||||
webView.stopLoading();
|
||||
webView.loadUrl(streaming_url);
|
||||
loader.setVisibility(View.GONE);
|
||||
webview_container.setVisibility(View.VISIBLE);
|
||||
}
|
||||
}
|
||||
};
|
||||
webView.setWebChromeClient(playerChromeClient);
|
||||
LocalBroadcastManager.getInstance(WebviewPlayerActivity.this).registerReceiver(receive_data, new IntentFilter(Utils.RECEIVE_STREAMING_URL));
|
||||
|
||||
AsyncTask.execute(() -> {
|
||||
try {
|
||||
Document document = Jsoup
|
||||
.connect(initialUrl).ignoreContentType(true).get();
|
||||
|
||||
Element video = document.select("video").first();
|
||||
if (video != null) {
|
||||
Element source = video.select("source").first();
|
||||
if (source != null) {
|
||||
videoUrl = source.absUrl("src");
|
||||
runOnUiThread(() -> webView.loadUrl(videoUrl));
|
||||
}
|
||||
}
|
||||
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCreateOptionsMenu(Menu menu) {
|
||||
getMenuInflater().inflate(R.menu.menu_player, menu);
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onOptionsItemSelected(MenuItem item) {
|
||||
int id = item.getItemId();
|
||||
|
||||
if (id == R.id.action_share && initialUrl != null) {
|
||||
|
||||
|
||||
AsyncTask.execute(() -> {
|
||||
try {
|
||||
Document document = Jsoup
|
||||
.connect(initialUrl).ignoreContentType(true).get();
|
||||
|
||||
Element metaTitle = document.select("meta[property=\"og:title\"]").first();
|
||||
String title = metaTitle.attr("content");
|
||||
Element metaMedia = document.select("meta[property=\"og:video:url\"]").first();
|
||||
String media = metaMedia.attr("content");
|
||||
Element metaDescription = document.select("meta[property=\"og:description\"]").first();
|
||||
String description = metaDescription.attr("content");
|
||||
runOnUiThread(() -> {
|
||||
Intent sendIntent = new Intent(Intent.ACTION_SEND);
|
||||
sendIntent.putExtra(Intent.EXTRA_SUBJECT, title);
|
||||
sendIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse(media));
|
||||
sendIntent.putExtra(Intent.EXTRA_TEXT, description + "\n\n" + initialUrl);
|
||||
sendIntent.setType("text/plain");
|
||||
startActivity(Intent.createChooser(sendIntent, getString(R.string.share_with)));
|
||||
});
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
});
|
||||
return true;
|
||||
} else if (id == R.id.action_download && streaming_url != null) {
|
||||
if (Build.VERSION.SDK_INT >= 23) {
|
||||
if (ContextCompat.checkSelfPermission(WebviewPlayerActivity.this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED || ContextCompat.checkSelfPermission(WebviewPlayerActivity.this, Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
|
||||
ActivityCompat.requestPermissions(WebviewPlayerActivity.this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, EXTERNAL_STORAGE_REQUEST_CODE);
|
||||
} else {
|
||||
Utils.manageDownloadsNoPopup(WebviewPlayerActivity.this, streaming_url);
|
||||
}
|
||||
} else {
|
||||
Utils.manageDownloadsNoPopup(WebviewPlayerActivity.this, streaming_url);
|
||||
}
|
||||
return true;
|
||||
} else if (id == android.R.id.home) {
|
||||
finish();
|
||||
}
|
||||
|
||||
return super.onOptionsItemSelected(item);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPause() {
|
||||
super.onPause();
|
||||
if (webView != null) {
|
||||
webView.onPause();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onResume() {
|
||||
super.onResume();
|
||||
if (webView != null) {
|
||||
webView.onResume();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDestroy() {
|
||||
super.onDestroy();
|
||||
if (receive_data != null) {
|
||||
LocalBroadcastManager.getInstance(WebviewPlayerActivity.this).unregisterReceiver(receive_data);
|
||||
}
|
||||
if (webView != null) {
|
||||
webView.stopLoading();
|
||||
webView.destroy();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -14,6 +14,16 @@ package app.fedilab.nitterizeme.adapters;
|
|||
* You should have received a copy of the GNU General Public License along with UntrackMe; if not,
|
||||
* see <http://www.gnu.org/licenses>. */
|
||||
|
||||
import static app.fedilab.nitterizeme.activities.MainActivity.APP_PREFS;
|
||||
import static app.fedilab.nitterizeme.activities.MainActivity.SET_BIBLIOGRAM_HOST;
|
||||
import static app.fedilab.nitterizeme.activities.MainActivity.SET_INVIDIOUS_HOST;
|
||||
import static app.fedilab.nitterizeme.activities.MainActivity.SET_NITTER_HOST;
|
||||
import static app.fedilab.nitterizeme.activities.MainActivity.SET_PROXITOK_HOST;
|
||||
import static app.fedilab.nitterizeme.activities.MainActivity.SET_SCRIBERIP_HOST;
|
||||
import static app.fedilab.nitterizeme.activities.MainActivity.SET_TEDDIT_HOST;
|
||||
import static app.fedilab.nitterizeme.activities.MainActivity.SET_WIKILESS_HOST;
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
import android.content.Context;
|
||||
import android.content.SharedPreferences;
|
||||
import android.os.Handler;
|
||||
|
@ -21,10 +31,6 @@ import android.os.Looper;
|
|||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.ProgressBar;
|
||||
import android.widget.RadioButton;
|
||||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
|
@ -34,13 +40,10 @@ import java.util.List;
|
|||
import java.util.Locale;
|
||||
|
||||
import app.fedilab.nitterizeme.R;
|
||||
import app.fedilab.nitterizeme.databinding.DrawerInstanceBinding;
|
||||
import app.fedilab.nitterizeme.entities.Instance;
|
||||
import app.fedilab.nitterizeme.helpers.Utils;
|
||||
|
||||
import static app.fedilab.nitterizeme.activities.MainActivity.APP_PREFS;
|
||||
import static app.fedilab.nitterizeme.activities.MainActivity.SET_BIBLIOGRAM_HOST;
|
||||
import static app.fedilab.nitterizeme.activities.MainActivity.SET_INVIDIOUS_HOST;
|
||||
import static app.fedilab.nitterizeme.activities.MainActivity.SET_NITTER_HOST;
|
||||
|
||||
public class InstanceAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
|
||||
|
||||
|
@ -62,9 +65,8 @@ public class InstanceAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolde
|
|||
@NonNull
|
||||
@Override
|
||||
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int position) {
|
||||
Context context = parent.getContext();
|
||||
LayoutInflater layoutInflater = LayoutInflater.from(context);
|
||||
return new ViewHolder(layoutInflater.inflate(R.layout.drawer_instance, parent, false));
|
||||
DrawerInstanceBinding itemBinding = DrawerInstanceBinding.inflate(LayoutInflater.from(parent.getContext()), parent, false);
|
||||
return new ViewHolder(itemBinding);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -76,35 +78,38 @@ public class InstanceAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolde
|
|||
SharedPreferences sharedpreferences = context.getSharedPreferences(APP_PREFS, Context.MODE_PRIVATE);
|
||||
//Reset checked instances by type when tipping
|
||||
|
||||
|
||||
holder.checkbox_instance.setText(instance.getDomain());
|
||||
holder.binding.checkboxInstance.setText(instance.getDomain());
|
||||
if (instance.getLatency() == -1) {
|
||||
holder.latency.setVisibility(View.GONE);
|
||||
holder.progress.setVisibility(View.GONE);
|
||||
holder.binding.latency.setVisibility(View.GONE);
|
||||
holder.binding.progress.setVisibility(View.GONE);
|
||||
} else if (instance.getLatency() == 0) {
|
||||
holder.latency.setVisibility(View.GONE);
|
||||
holder.progress.setVisibility(View.VISIBLE);
|
||||
holder.binding.latency.setVisibility(View.GONE);
|
||||
holder.binding.progress.setVisibility(View.VISIBLE);
|
||||
} else if (instance.getLatency() == -2) {
|
||||
holder.latency.setText(R.string.error);
|
||||
holder.latency.setVisibility(View.GONE);
|
||||
holder.progress.setVisibility(View.VISIBLE);
|
||||
holder.binding.latency.setText(R.string.error);
|
||||
holder.binding.latency.setVisibility(View.GONE);
|
||||
holder.binding.progress.setVisibility(View.VISIBLE);
|
||||
} else {
|
||||
holder.latency.setText(String.format(Locale.getDefault(), "%d ms", instance.getLatency()));
|
||||
holder.latency.setVisibility(View.VISIBLE);
|
||||
holder.progress.setVisibility(View.GONE);
|
||||
holder.binding.latency.setText(String.format(Locale.getDefault(), "%d ms", instance.getLatency()));
|
||||
holder.binding.latency.setVisibility(View.VISIBLE);
|
||||
holder.binding.progress.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
holder.locale.setText(instance.getLocale());
|
||||
List<String> locales = instance.getLocales();
|
||||
StringBuilder locale = new StringBuilder();
|
||||
for (String _l : locales) {
|
||||
locale.append(_l).append(" ");
|
||||
}
|
||||
holder.binding.locale.setText(locale.toString());
|
||||
if (instance.isCloudflare()) {
|
||||
holder.useCloudflare.setVisibility(View.VISIBLE);
|
||||
holder.useCloudflare.setOnClickListener(v -> Toast.makeText(context, R.string.cloudflare, Toast.LENGTH_SHORT).show());
|
||||
holder.binding.useCloudflare.setVisibility(View.VISIBLE);
|
||||
holder.binding.useCloudflare.setOnClickListener(v -> Toast.makeText(context, R.string.cloudflare, Toast.LENGTH_SHORT).show());
|
||||
} else {
|
||||
holder.useCloudflare.setVisibility(View.GONE);
|
||||
holder.binding.useCloudflare.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
holder.checkbox_instance.setChecked(instance.isChecked());
|
||||
holder.binding.checkboxInstance.setChecked(instance.isChecked());
|
||||
|
||||
holder.checkbox_instance.setOnClickListener(v -> {
|
||||
holder.binding.checkboxInstance.setOnClickListener(v -> {
|
||||
|
||||
boolean isChecked = !instance.isChecked();
|
||||
for (Instance _ins : instances) {
|
||||
|
@ -112,8 +117,8 @@ public class InstanceAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolde
|
|||
}
|
||||
instance.setChecked(true);
|
||||
SharedPreferences.Editor editor = sharedpreferences.edit();
|
||||
switch (instance.getType()) {
|
||||
case INVIDIOUS:
|
||||
switch (instance.getInstanceType()) {
|
||||
case YOUTUBE:
|
||||
if (isChecked) {
|
||||
editor.putString(SET_INVIDIOUS_HOST, instance.getDomain().trim());
|
||||
} else {
|
||||
|
@ -121,7 +126,7 @@ public class InstanceAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolde
|
|||
}
|
||||
editor.apply();
|
||||
break;
|
||||
case NITTER:
|
||||
case TWITTER:
|
||||
if (isChecked) {
|
||||
editor.putString(SET_NITTER_HOST, instance.getDomain().trim());
|
||||
} else {
|
||||
|
@ -129,7 +134,7 @@ public class InstanceAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolde
|
|||
}
|
||||
editor.apply();
|
||||
break;
|
||||
case BIBLIOGRAM:
|
||||
case INSTAGRAM:
|
||||
if (isChecked) {
|
||||
editor.putString(SET_BIBLIOGRAM_HOST, instance.getDomain().trim());
|
||||
} else {
|
||||
|
@ -137,13 +142,47 @@ public class InstanceAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolde
|
|||
}
|
||||
editor.apply();
|
||||
break;
|
||||
case REDDIT:
|
||||
if (isChecked) {
|
||||
editor.putString(SET_TEDDIT_HOST, instance.getDomain().trim());
|
||||
} else {
|
||||
editor.putString(SET_TEDDIT_HOST, null);
|
||||
}
|
||||
editor.apply();
|
||||
break;
|
||||
case MEDIUM:
|
||||
if (isChecked) {
|
||||
editor.putString(SET_SCRIBERIP_HOST, instance.getDomain().trim());
|
||||
} else {
|
||||
editor.putString(SET_SCRIBERIP_HOST, null);
|
||||
}
|
||||
editor.apply();
|
||||
break;
|
||||
case WIKIPEDIA:
|
||||
if (isChecked) {
|
||||
editor.putString(SET_WIKILESS_HOST, instance.getDomain().trim());
|
||||
} else {
|
||||
editor.putString(SET_WIKILESS_HOST, null);
|
||||
}
|
||||
editor.apply();
|
||||
break;
|
||||
case PROXITOK:
|
||||
if (isChecked) {
|
||||
editor.putString(SET_PROXITOK_HOST, instance.getDomain().trim());
|
||||
} else {
|
||||
editor.putString(SET_PROXITOK_HOST, null);
|
||||
}
|
||||
editor.apply();
|
||||
break;
|
||||
}
|
||||
|
||||
instanceAdapter.notifyItemRangeChanged(0, instances.size());
|
||||
});
|
||||
|
||||
|
||||
}
|
||||
|
||||
@SuppressLint("NotifyDataSetChanged")
|
||||
public void evalLatency() {
|
||||
for (Instance instance : instances) {
|
||||
instance.setLatency(0);
|
||||
|
@ -152,7 +191,7 @@ public class InstanceAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolde
|
|||
public void run() {
|
||||
long ping = Utils.ping(instance.getDomain());
|
||||
Handler mainHandler = new Handler(Looper.getMainLooper());
|
||||
Runnable myRunnable = () -> {
|
||||
@SuppressLint("NotifyDataSetChanged") Runnable myRunnable = () -> {
|
||||
instance.setLatency(ping);
|
||||
notifyDataSetChanged();
|
||||
};
|
||||
|
@ -176,18 +215,11 @@ public class InstanceAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolde
|
|||
|
||||
|
||||
static class ViewHolder extends RecyclerView.ViewHolder {
|
||||
RadioButton checkbox_instance;
|
||||
TextView latency, locale;
|
||||
ProgressBar progress;
|
||||
ImageView useCloudflare;
|
||||
DrawerInstanceBinding binding;
|
||||
|
||||
ViewHolder(@NonNull View itemView) {
|
||||
super(itemView);
|
||||
checkbox_instance = itemView.findViewById(R.id.checkbox_instance);
|
||||
latency = itemView.findViewById(R.id.latency);
|
||||
progress = itemView.findViewById(R.id.progress);
|
||||
locale = itemView.findViewById(R.id.locale);
|
||||
useCloudflare = itemView.findViewById(R.id.use_cloudflare);
|
||||
ViewHolder(@NonNull DrawerInstanceBinding itemView) {
|
||||
super(itemView.getRoot());
|
||||
binding = itemView;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
package app.fedilab.nitterizeme.entities;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/* Copyright 2020 Thomas Schneider
|
||||
*
|
||||
* This file is a part of UntrackMe
|
||||
|
@ -16,12 +18,14 @@ package app.fedilab.nitterizeme.entities;
|
|||
* see <http://www.gnu.org/licenses>. */
|
||||
public class Instance {
|
||||
|
||||
|
||||
private String domain;
|
||||
private long latency = -1;
|
||||
private boolean checked = false;
|
||||
private instanceType type;
|
||||
private instanceType instanceType;
|
||||
private boolean cloudflare = false;
|
||||
private String locale;
|
||||
private List<String> locales;
|
||||
private String type;
|
||||
|
||||
public String getDomain() {
|
||||
return domain;
|
||||
|
@ -47,14 +51,6 @@ public class Instance {
|
|||
this.checked = checked;
|
||||
}
|
||||
|
||||
public instanceType getType() {
|
||||
return type;
|
||||
}
|
||||
|
||||
public void setType(instanceType type) {
|
||||
this.type = type;
|
||||
}
|
||||
|
||||
public boolean isCloudflare() {
|
||||
return cloudflare;
|
||||
}
|
||||
|
@ -63,17 +59,38 @@ public class Instance {
|
|||
this.cloudflare = cloudflare;
|
||||
}
|
||||
|
||||
public String getLocale() {
|
||||
return locale;
|
||||
public List<String> getLocales() {
|
||||
return locales;
|
||||
}
|
||||
|
||||
public void setLocale(String locale) {
|
||||
this.locale = locale;
|
||||
public void setLocales(List<String> locales) {
|
||||
this.locales = locales;
|
||||
}
|
||||
|
||||
public Instance.instanceType getInstanceType() {
|
||||
return instanceType;
|
||||
}
|
||||
|
||||
public void setInstanceType(Instance.instanceType instanceType) {
|
||||
this.instanceType = instanceType;
|
||||
}
|
||||
|
||||
public String getType() {
|
||||
return type;
|
||||
}
|
||||
|
||||
public void setType(String type) {
|
||||
this.type = type;
|
||||
}
|
||||
|
||||
|
||||
public enum instanceType {
|
||||
INVIDIOUS,
|
||||
NITTER,
|
||||
BIBLIOGRAM
|
||||
YOUTUBE,
|
||||
TWITTER,
|
||||
INSTAGRAM,
|
||||
REDDIT,
|
||||
MEDIUM,
|
||||
WIKIPEDIA,
|
||||
PROXITOK
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,181 +0,0 @@
|
|||
package app.fedilab.nitterizeme.helpers;
|
||||
/* Copyright 2020 Thomas Schneider
|
||||
*
|
||||
* This file is a part of UntrackMe
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it under the terms of the
|
||||
* GNU General Public License as published by the Free Software Foundation; either version 3 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* UntrackMe is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even
|
||||
* the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
|
||||
* Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along with UntrackMe; if not,
|
||||
* see <http://www.gnu.org/licenses>. */
|
||||
|
||||
import android.app.Activity;
|
||||
import android.media.MediaPlayer;
|
||||
import android.view.SurfaceView;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.webkit.WebChromeClient;
|
||||
import android.webkit.WebView;
|
||||
import android.widget.FrameLayout;
|
||||
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
|
||||
/**
|
||||
* Custom WebChromeClient
|
||||
*/
|
||||
|
||||
public class PlayerChromeClient extends WebChromeClient implements MediaPlayer.OnCompletionListener, MediaPlayer.OnErrorListener {
|
||||
|
||||
private final WebView webView;
|
||||
private final View activityNonVideoView;
|
||||
private final ViewGroup activityVideoView;
|
||||
private final Activity activity;
|
||||
private FrameLayout videoViewContainer;
|
||||
private CustomViewCallback videoViewCallback;
|
||||
private ToggledFullscreenCallback toggledFullscreenCallback;
|
||||
private boolean isVideoFullscreen;
|
||||
|
||||
|
||||
public PlayerChromeClient(Activity activity, WebView webView, FrameLayout activityNonVideoView, ViewGroup activityVideoView) {
|
||||
this.activity = activity;
|
||||
this.isVideoFullscreen = false;
|
||||
this.webView = webView;
|
||||
this.activityNonVideoView = activityNonVideoView;
|
||||
this.activityVideoView = activityVideoView;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set a callback that will be fired when the video starts or finishes displaying using a custom view (typically full-screen)
|
||||
*
|
||||
* @param callback A VideoEnabledWebChromeClient.ToggledFullscreenCallback callback
|
||||
*/
|
||||
public void setOnToggledFullscreen(ToggledFullscreenCallback callback) {
|
||||
this.toggledFullscreenCallback = callback;
|
||||
}
|
||||
|
||||
//FULLSCREEN VIDEO
|
||||
//Code from https://stackoverflow.com/a/16179544/3197259
|
||||
|
||||
@Override
|
||||
public void onShowCustomView(View view, CustomViewCallback callback) {
|
||||
if (view instanceof FrameLayout) {
|
||||
if (((AppCompatActivity) activity).getSupportActionBar() != null)
|
||||
//noinspection ConstantConditions
|
||||
((AppCompatActivity) activity).getSupportActionBar().hide();
|
||||
// A video wants to be shown
|
||||
FrameLayout frameLayout = (FrameLayout) view;
|
||||
View focusedChild = frameLayout.getFocusedChild();
|
||||
|
||||
// Save video related variables
|
||||
isVideoFullscreen = true;
|
||||
this.videoViewContainer = frameLayout;
|
||||
this.videoViewCallback = callback;
|
||||
|
||||
// Hide the non-video view, add the video view, and show it
|
||||
activityNonVideoView.setVisibility(View.INVISIBLE);
|
||||
activityVideoView.addView(videoViewContainer, new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
|
||||
activityVideoView.setVisibility(View.VISIBLE);
|
||||
if (focusedChild instanceof android.widget.VideoView) {
|
||||
// android.widget.VideoView (typically API level <11)
|
||||
android.widget.VideoView videoView = (android.widget.VideoView) focusedChild;
|
||||
// Handle all the required events
|
||||
videoView.setOnCompletionListener(this);
|
||||
videoView.setOnErrorListener(this);
|
||||
} else {
|
||||
// Other classes, including:
|
||||
// - android.webkit.HTML5VideoFullScreen$VideoSurfaceView, which inherits from android.view.SurfaceView (typically API level 11-18)
|
||||
// - android.webkit.HTML5VideoFullScreen$VideoTextureView, which inherits from android.view.TextureView (typically API level 11-18)
|
||||
// - com.android.org.chromium.content.browser.ContentVideoView$VideoSurfaceView, which inherits from android.view.SurfaceView (typically API level 19+)
|
||||
|
||||
// Handle HTML5 video ended event only if the class is a SurfaceView
|
||||
// Test case: TextureView of Sony Xperia T API level 16 doesn't work fullscreen when loading the javascript below
|
||||
if (webView != null && webView.getSettings().getJavaScriptEnabled() && focusedChild instanceof SurfaceView) {
|
||||
// Run javascript code that detects the video end and notifies the Javascript interface
|
||||
String js = "javascript:";
|
||||
js += "var _ytrp_html5_video_last;";
|
||||
js += "var _ytrp_html5_video = document.getElementsByTagName('video')[0];";
|
||||
js += "if (_ytrp_html5_video != undefined && _ytrp_html5_video != _ytrp_html5_video_last) {";
|
||||
{
|
||||
js += "_ytrp_html5_video_last = _ytrp_html5_video;";
|
||||
js += "function _ytrp_html5_video_ended() {";
|
||||
{
|
||||
js += "_VideoEnabledWebView.notifyVideoEnd();"; // Must match Javascript interface name and method of VideoEnableWebView
|
||||
}
|
||||
js += "}";
|
||||
js += "_ytrp_html5_video.addEventListener('ended', _ytrp_html5_video_ended);";
|
||||
}
|
||||
js += "}";
|
||||
webView.loadUrl(js);
|
||||
}
|
||||
}
|
||||
// Notify full-screen change
|
||||
if (toggledFullscreenCallback != null) {
|
||||
toggledFullscreenCallback.toggledFullscreen(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Available in API level 14+, deprecated in API level 18+
|
||||
@Override
|
||||
public void onShowCustomView(View view, int requestedOrientation, CustomViewCallback callback) {
|
||||
onShowCustomView(view, callback);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onHideCustomView() {
|
||||
if (((AppCompatActivity) activity).getSupportActionBar() != null)
|
||||
//noinspection ConstantConditions
|
||||
((AppCompatActivity) activity).getSupportActionBar().show();
|
||||
// This method should be manually called on video end in all cases because it's not always called automatically.
|
||||
// This method must be manually called on back key press (from this class' onBackPressed() method).
|
||||
if (isVideoFullscreen) {
|
||||
// Hide the video view, remove it, and show the non-video view
|
||||
activityVideoView.setVisibility(View.INVISIBLE);
|
||||
activityVideoView.removeView(videoViewContainer);
|
||||
activityNonVideoView.setVisibility(View.VISIBLE);
|
||||
// Call back (only in API level <19, because in API level 19+ with chromium webview it crashes)
|
||||
if (videoViewCallback != null && !videoViewCallback.getClass().getName().contains(".chromium.")) {
|
||||
videoViewCallback.onCustomViewHidden();
|
||||
}
|
||||
|
||||
// Reset video related variables
|
||||
isVideoFullscreen = false;
|
||||
videoViewContainer = null;
|
||||
videoViewCallback = null;
|
||||
|
||||
// Notify full-screen change
|
||||
if (toggledFullscreenCallback != null) {
|
||||
toggledFullscreenCallback.toggledFullscreen(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Video will start loading
|
||||
@Override
|
||||
public View getVideoLoadingProgressView() {
|
||||
return super.getVideoLoadingProgressView();
|
||||
}
|
||||
|
||||
// Video finished playing, only called in the case of android.widget.VideoView (typically API level <11)
|
||||
@Override
|
||||
public void onCompletion(MediaPlayer mp) {
|
||||
onHideCustomView();
|
||||
}
|
||||
|
||||
// Error while playing video, only called in the case of android.widget.VideoView (typically API level <11)
|
||||
@Override
|
||||
public boolean onError(MediaPlayer mp, int what, int extra) {
|
||||
return false; // By returning false, onCompletion() will be called
|
||||
}
|
||||
|
||||
public interface ToggledFullscreenCallback {
|
||||
void toggledFullscreen(boolean fullscreen);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -15,8 +15,28 @@ package app.fedilab.nitterizeme.helpers;
|
|||
* see <http://www.gnu.org/licenses>. */
|
||||
|
||||
|
||||
import static app.fedilab.nitterizeme.activities.CheckAppActivity.bibliogram_instances;
|
||||
import static app.fedilab.nitterizeme.activities.CheckAppActivity.instagram_domains;
|
||||
import static app.fedilab.nitterizeme.activities.CheckAppActivity.invidious_instances;
|
||||
import static app.fedilab.nitterizeme.activities.CheckAppActivity.medium_domains;
|
||||
import static app.fedilab.nitterizeme.activities.CheckAppActivity.nitter_instances;
|
||||
import static app.fedilab.nitterizeme.activities.CheckAppActivity.outlook_safe_domain;
|
||||
import static app.fedilab.nitterizeme.activities.CheckAppActivity.reddit_domains;
|
||||
import static app.fedilab.nitterizeme.activities.CheckAppActivity.shortener_domains;
|
||||
import static app.fedilab.nitterizeme.activities.CheckAppActivity.tiktok_domains;
|
||||
import static app.fedilab.nitterizeme.activities.CheckAppActivity.twitter_domains;
|
||||
import static app.fedilab.nitterizeme.activities.CheckAppActivity.wikipedia_domains;
|
||||
import static app.fedilab.nitterizeme.activities.CheckAppActivity.youtube_domains;
|
||||
import static app.fedilab.nitterizeme.activities.MainActivity.SET_BIBLIOGRAM_ENABLED;
|
||||
import static app.fedilab.nitterizeme.activities.MainActivity.SET_INVIDIOUS_ENABLED;
|
||||
import static app.fedilab.nitterizeme.activities.MainActivity.SET_NITTER_ENABLED;
|
||||
import static app.fedilab.nitterizeme.activities.MainActivity.SET_PROXITOK_ENABLED;
|
||||
import static app.fedilab.nitterizeme.activities.MainActivity.SET_SCRIBERIP_ENABLED;
|
||||
import static app.fedilab.nitterizeme.activities.MainActivity.SET_TEDDIT_ENABLED;
|
||||
import static app.fedilab.nitterizeme.activities.MainActivity.SET_TEDDIT_HOST;
|
||||
import static app.fedilab.nitterizeme.activities.MainActivity.SET_WIKILESS_ENABLED;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.app.DownloadManager;
|
||||
import android.content.ComponentName;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
|
@ -25,9 +45,7 @@ import android.content.pm.PackageInfo;
|
|||
import android.content.pm.PackageManager;
|
||||
import android.content.pm.ResolveInfo;
|
||||
import android.net.Uri;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.os.Environment;
|
||||
import android.os.Handler;
|
||||
import android.os.Looper;
|
||||
import android.os.Parcelable;
|
||||
|
@ -38,10 +56,16 @@ import android.widget.RelativeLayout;
|
|||
import android.widget.TextView;
|
||||
|
||||
import androidx.appcompat.app.AlertDialog;
|
||||
import androidx.localbroadcastmanager.content.LocalBroadcastManager;
|
||||
import androidx.preference.PreferenceManager;
|
||||
|
||||
import org.json.JSONArray;
|
||||
import org.json.JSONException;
|
||||
import org.json.JSONObject;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.InputStreamReader;
|
||||
import java.io.UnsupportedEncodingException;
|
||||
import java.net.HttpURLConnection;
|
||||
import java.net.InetAddress;
|
||||
|
@ -49,13 +73,11 @@ import java.net.MalformedURLException;
|
|||
import java.net.URL;
|
||||
import java.net.URLDecoder;
|
||||
import java.net.URLEncoder;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Date;
|
||||
import java.util.HashSet;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.Set;
|
||||
|
@ -68,21 +90,6 @@ import app.fedilab.nitterizeme.BuildConfig;
|
|||
import app.fedilab.nitterizeme.R;
|
||||
import app.fedilab.nitterizeme.activities.AppsPickerActivity;
|
||||
import app.fedilab.nitterizeme.activities.MainActivity;
|
||||
import app.fedilab.nitterizeme.activities.WebviewPlayerActivity;
|
||||
|
||||
import static android.content.Context.DOWNLOAD_SERVICE;
|
||||
import static app.fedilab.nitterizeme.activities.CheckAppActivity.bibliogram_instances;
|
||||
import static app.fedilab.nitterizeme.activities.CheckAppActivity.instagram_domains;
|
||||
import static app.fedilab.nitterizeme.activities.CheckAppActivity.invidious_instances;
|
||||
import static app.fedilab.nitterizeme.activities.CheckAppActivity.nitter_instances;
|
||||
import static app.fedilab.nitterizeme.activities.CheckAppActivity.outlook_safe_domain;
|
||||
import static app.fedilab.nitterizeme.activities.CheckAppActivity.shortener_domains;
|
||||
import static app.fedilab.nitterizeme.activities.CheckAppActivity.twitter_domains;
|
||||
import static app.fedilab.nitterizeme.activities.CheckAppActivity.youtube_domains;
|
||||
import static app.fedilab.nitterizeme.activities.MainActivity.SET_BIBLIOGRAM_ENABLED;
|
||||
import static app.fedilab.nitterizeme.activities.MainActivity.SET_EMBEDDED_PLAYER;
|
||||
import static app.fedilab.nitterizeme.activities.MainActivity.SET_INVIDIOUS_ENABLED;
|
||||
import static app.fedilab.nitterizeme.activities.MainActivity.SET_NITTER_ENABLED;
|
||||
|
||||
public class Utils {
|
||||
|
||||
|
@ -91,16 +98,22 @@ public class Utils {
|
|||
public static final String INTENT_ACTION = "intent_action";
|
||||
public static final String LAST_USED_APP_PACKAGE = "last_used_app_package";
|
||||
public static final Pattern youtubePattern = Pattern.compile("(www\\.|m\\.)?(youtube\\.com|youtu\\.be|youtube-nocookie\\.com)/(((?!([\"'<])).)*)");
|
||||
public static final Pattern redditPattern = Pattern.compile("(www\\.|m\\.)?(reddit\\.com|preview\\.redd\\.it|i\\.redd\\.it)/(((?!([\"'<])).)*)");
|
||||
public static final Pattern redditSubdomainPattern = Pattern.compile("([\\w_-]+)\\.reddit.com/?(?!r/)(((?!([\"'<])).)*)");
|
||||
public static final Pattern nitterPattern = Pattern.compile("(mobile\\.|www\\.)?twitter.com([\\w-/]+)");
|
||||
public static final Pattern bibliogramPostPattern = Pattern.compile("(m\\.|www\\.)?instagram.com(/p/[\\w-/]+)");
|
||||
public static final Pattern scriberipPattern = Pattern.compile("(www\\.)?medium.com/(((?!([\"'<])).)*)");
|
||||
public static final Pattern scriberipSubdomainPattern = Pattern.compile("([\\w_-]+)\\.medium.com/(((?!([\"'<])).)*)");
|
||||
|
||||
public static final Pattern tiktokPattern = Pattern.compile("(www\\.|us\\.)?tiktok.com/(((?!([\"'<])).)*)");
|
||||
public static final Pattern wikilessPattern = Pattern.compile("([\\w_-]+)\\.(?:m\\.)?wikipedia.org/(((?!([\"'<])).)*)");
|
||||
|
||||
public static final Pattern bibliogramAccountPattern = Pattern.compile("(m\\.|www\\.)?instagram.com(((?!/p/).)+)");
|
||||
public static final Pattern maps = Pattern.compile("/maps/place/([^@]+@)?([\\d.,z]+).*");
|
||||
public static final Pattern ampExtract = Pattern.compile("amp/s/(.*)");
|
||||
public static final String RECEIVE_STREAMING_URL = "receive_streaming_url";
|
||||
public static final Pattern outlookRedirect = Pattern.compile("(.*)safelinks\\.protection\\.outlook\\.com/?[?]?((?!url).)*url=([^&]+)");
|
||||
private static final Pattern extractPlace = Pattern.compile("/maps/place/(((?!/data).)*)");
|
||||
private static final Pattern googleRedirect = Pattern.compile("https?://(www\\.)?google(\\.\\w{2,})?(\\.\\w{2,})/url\\?q=(.*)");
|
||||
private static final Pattern googleRedirect = Pattern.compile("https?://(www\\.)?google(\\.\\w{2,})?(\\.\\w{2,})/url\\?(q=|q%3D)(.*)");
|
||||
private static final String[] G_TRACKING = {
|
||||
"sourceid",
|
||||
"aqs",
|
||||
|
@ -168,7 +181,7 @@ public class Utils {
|
|||
if (entry.toString().toLowerCase().startsWith("location")) {
|
||||
Matcher matcher = urlPattern.matcher(entry.toString());
|
||||
if (matcher.find()) {
|
||||
newURL = remove_tracking_param(matcher.group(1));
|
||||
newURL = remove_tracking_param(context, matcher.group(1));
|
||||
urls.add(transformUrl(context, newURL));
|
||||
}
|
||||
}
|
||||
|
@ -186,7 +199,7 @@ public class Utils {
|
|||
if (entry.toString().toLowerCase().startsWith("location")) {
|
||||
Matcher matcher = urlPattern.matcher(entry.toString());
|
||||
if (matcher.find()) {
|
||||
newURL = remove_tracking_param(matcher.group(1));
|
||||
newURL = remove_tracking_param(context, matcher.group(1));
|
||||
urls.add(transformUrl(context, newURL));
|
||||
}
|
||||
}
|
||||
|
@ -221,7 +234,7 @@ public class Utils {
|
|||
String newUrl = null;
|
||||
URL url_;
|
||||
String host = null;
|
||||
url = Utils.remove_tracking_param(url);
|
||||
url = Utils.remove_tracking_param(context, url);
|
||||
try {
|
||||
url_ = new URL(url);
|
||||
host = url_.getHost();
|
||||
|
@ -295,6 +308,56 @@ public class Utils {
|
|||
} else {
|
||||
return url;
|
||||
}
|
||||
} else if (host != null && host.endsWith(medium_domains[0])) {
|
||||
boolean scriberip_enabled = sharedpreferences.getBoolean(MainActivity.SET_SCRIBERIP_ENABLED, true);
|
||||
if (scriberip_enabled) {
|
||||
String scriberipHost = sharedpreferences.getString(MainActivity.SET_SCRIBERIP_HOST, MainActivity.DEFAULT_SCRIBERIP_HOST);
|
||||
assert scriberipHost != null;
|
||||
scriberipHost = scriberipHost.toLowerCase();
|
||||
if (scriberipHost.startsWith("http")) {
|
||||
scheme = "";
|
||||
}
|
||||
Matcher matcher = scriberipSubdomainPattern.matcher(url);
|
||||
while (matcher.find()) {
|
||||
final String subdomain = matcher.group(1);
|
||||
final String path = matcher.group(2);
|
||||
if (subdomain != null && subdomain.toLowerCase().compareTo("www") != 0) {
|
||||
url = scheme + "medium.com" + "/@" + subdomain + "/" + path;
|
||||
}
|
||||
}
|
||||
matcher = scriberipPattern.matcher(url);
|
||||
while (matcher.find()) {
|
||||
final String scriberip_directory = matcher.group(2);
|
||||
newUrl = scheme + scriberipHost + "/" + scriberip_directory;
|
||||
}
|
||||
return newUrl;
|
||||
} else {
|
||||
return url;
|
||||
}
|
||||
} else if (host != null && host.endsWith(wikipedia_domains[0])) {
|
||||
boolean wikiless_enabled = sharedpreferences.getBoolean(MainActivity.SET_WIKILESS_ENABLED, true);
|
||||
if (wikiless_enabled) {
|
||||
String wikilessHost = sharedpreferences.getString(MainActivity.SET_WIKILESS_HOST, MainActivity.DEFAULT_WIKILESS_HOST);
|
||||
assert wikilessHost != null;
|
||||
wikilessHost = wikilessHost.toLowerCase();
|
||||
if (wikilessHost.startsWith("http")) {
|
||||
scheme = "";
|
||||
}
|
||||
Matcher matcher = wikilessPattern.matcher(url);
|
||||
String subdomain = "";
|
||||
String path = "";
|
||||
while (matcher.find()) {
|
||||
String tmpSub = matcher.group(1);
|
||||
if (tmpSub != null && tmpSub.toLowerCase().compareTo("www") != 0) {
|
||||
subdomain = matcher.group(1);
|
||||
}
|
||||
path = matcher.group(2);
|
||||
}
|
||||
newUrl = scheme + wikilessHost + "/" + path + (subdomain != null ? "?lang=" + subdomain : "");
|
||||
return newUrl;
|
||||
} else {
|
||||
return url;
|
||||
}
|
||||
} else if (url.contains("/maps/place")) {
|
||||
boolean osm_enabled = sharedpreferences.getBoolean(MainActivity.SET_OSM_ENABLED, true);
|
||||
if (osm_enabled) {
|
||||
|
@ -371,6 +434,58 @@ public class Utils {
|
|||
} else {
|
||||
return url;
|
||||
}
|
||||
} else if (Arrays.asList(reddit_domains).contains(host) || (host != null && host.endsWith(reddit_domains[1]))) { //Reddit URL
|
||||
boolean teddit_enabled = sharedpreferences.getBoolean(SET_TEDDIT_ENABLED, true);
|
||||
if (teddit_enabled) {
|
||||
String tedditHost = sharedpreferences.getString(SET_TEDDIT_HOST, MainActivity.DEFAULT_TEDDIT_HOST);
|
||||
assert tedditHost != null;
|
||||
tedditHost = tedditHost.toLowerCase();
|
||||
if (tedditHost.startsWith("http")) {
|
||||
scheme = "";
|
||||
}
|
||||
Matcher matcher = redditSubdomainPattern.matcher(url);
|
||||
while (matcher.find()) {
|
||||
final String subdomain = matcher.group(1);
|
||||
final String path = matcher.group(2);
|
||||
if (subdomain != null && subdomain.toLowerCase().compareTo("www") != 0) {
|
||||
url = scheme + "reddit.com" + "/r/" + subdomain + "/" + path;
|
||||
}
|
||||
}
|
||||
matcher = redditPattern.matcher(url);
|
||||
while (matcher.find()) {
|
||||
String redditPath = matcher.group(3);
|
||||
if (Objects.requireNonNull(matcher.group(2)).compareTo("preview.redd.it") == 0 ||
|
||||
Objects.requireNonNull(matcher.group(2)).compareTo("i.redd.it") == 0
|
||||
) {
|
||||
newUrl = scheme + tedditHost + "/pics/w:null_" + (redditPath != null ? redditPath.split("\\?|%26")[0] : "null");
|
||||
} else {
|
||||
newUrl = scheme + tedditHost + "/" + redditPath;
|
||||
}
|
||||
}
|
||||
return newUrl;
|
||||
} else {
|
||||
return url;
|
||||
}
|
||||
} else if (host != null && Arrays.asList(tiktok_domains).contains(host)) {
|
||||
boolean proxitok_enabled = sharedpreferences.getBoolean(SET_PROXITOK_ENABLED, true);
|
||||
if (proxitok_enabled) {
|
||||
String proxitokHost = sharedpreferences.getString(MainActivity.SET_PROXITOK_HOST, MainActivity.DEFAULT_PROXITOK_HOST);
|
||||
assert proxitokHost != null;
|
||||
proxitokHost = proxitokHost.toLowerCase();
|
||||
Matcher matcher = tiktokPattern.matcher(url);
|
||||
while (matcher.find()) {
|
||||
String path = matcher.group(2);
|
||||
if (path == null || path.trim().equals("") || path.startsWith("@") || path.startsWith("music") || path.startsWith("tag") || path.startsWith("t")) {
|
||||
newUrl = url.replace(host, proxitokHost);
|
||||
}
|
||||
}
|
||||
if (newUrl == null) {
|
||||
newUrl = url;
|
||||
}
|
||||
return newUrl;
|
||||
} else {
|
||||
return url;
|
||||
}
|
||||
} else if (Arrays.asList(invidious_instances).contains(host)) {
|
||||
boolean invidious_enabled = sharedpreferences.getBoolean(SET_INVIDIOUS_ENABLED, true);
|
||||
newUrl = url;
|
||||
|
@ -645,14 +760,83 @@ public class Utils {
|
|||
return timeDifference;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Remove unwanted redirects from Google - recursive removal
|
||||
*
|
||||
* @param context Context
|
||||
* @param url String initial url
|
||||
* @return String url without Google redirects
|
||||
*/
|
||||
private static String removeGoogleRedirects(Context context, String url) {
|
||||
Matcher matcher = googleRedirect.matcher(url);
|
||||
if (matcher.find()) {
|
||||
return remove_tracking_param(context, matcher.group(5));
|
||||
}
|
||||
return url;
|
||||
}
|
||||
|
||||
/**
|
||||
* Clean URLs from utm parameters
|
||||
*
|
||||
* @param url String URL
|
||||
* @return cleaned URL String
|
||||
*/
|
||||
public static String remove_tracking_param(String url) {
|
||||
public static String remove_tracking_param(Context context, String url) {
|
||||
|
||||
if (url != null) {
|
||||
try {
|
||||
|
||||
InputStream inputStream = context.getAssets().open("rules.json");
|
||||
BufferedReader bR = new BufferedReader(new InputStreamReader(inputStream));
|
||||
String line;
|
||||
StringBuilder responseStrBuilder = new StringBuilder();
|
||||
while ((line = bR.readLine()) != null) {
|
||||
|
||||
responseStrBuilder.append(line);
|
||||
}
|
||||
inputStream.close();
|
||||
JSONObject result = new JSONObject(responseStrBuilder.toString());
|
||||
JSONObject providers = result.getJSONObject("providers");
|
||||
Iterator<String> iter = providers.keys();
|
||||
while (iter.hasNext()) {
|
||||
String key = iter.next();
|
||||
JSONObject domainValues = providers.getJSONObject(key);
|
||||
String urlPattern = domainValues.getString("urlPattern");
|
||||
JSONArray rules = domainValues.getJSONArray("rules");
|
||||
JSONArray exceptions = domainValues.getJSONArray("exceptions");
|
||||
boolean completeProvider = domainValues.getBoolean("completeProvider");
|
||||
Pattern rulesRegex = Pattern.compile(
|
||||
urlPattern,
|
||||
Pattern.CASE_INSENSITIVE | Pattern.MULTILINE | Pattern.DOTALL);
|
||||
Matcher matcher = rulesRegex.matcher(url);
|
||||
if (matcher.find()) {
|
||||
//noinspection StatementWithEmptyBody
|
||||
if (!completeProvider) {
|
||||
for (int i = 0; i < rules.length(); i++) {
|
||||
boolean exception = false;
|
||||
for (int j = 0; j < exceptions.length(); j++) {
|
||||
Pattern exceptionRegex = Pattern.compile(
|
||||
exceptions.getString(j),
|
||||
Pattern.CASE_INSENSITIVE | Pattern.MULTILINE | Pattern.DOTALL);
|
||||
Matcher matcherException = exceptionRegex.matcher(url);
|
||||
if (matcherException.find()) {
|
||||
exception = true;
|
||||
}
|
||||
}
|
||||
if (!exception) {
|
||||
url = url.replaceAll(rules.getString(i), "");
|
||||
}
|
||||
}
|
||||
} else {
|
||||
//TODO see what can be done with that URL
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (IOException | JSONException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
for (String utm : UTM_PARAMS) {
|
||||
url = url.replaceAll("&" + utm + "=[0-9a-zA-Z._-]*", "");
|
||||
url = url.replaceAll("&" + utm + "=[0-9a-zA-Z._-]*", "");
|
||||
|
@ -661,10 +845,7 @@ public class Utils {
|
|||
url = url.replaceAll("#" + utm + "=" + urlRegex, "");
|
||||
}
|
||||
try {
|
||||
Matcher matcher = googleRedirect.matcher(url);
|
||||
if (matcher.find()) {
|
||||
url = matcher.group(4);
|
||||
}
|
||||
url = removeGoogleRedirects(context, url);
|
||||
URL redirectURL = new URL(url);
|
||||
String host = redirectURL.getHost();
|
||||
if (host != null) {
|
||||
|
@ -688,36 +869,6 @@ public class Utils {
|
|||
}
|
||||
|
||||
|
||||
/**
|
||||
* Manage downloads with URLs
|
||||
*
|
||||
* @param context Context
|
||||
* @param url String download url
|
||||
*/
|
||||
public static void manageDownloadsNoPopup(final Context context, final String url) {
|
||||
|
||||
final DownloadManager.Request request;
|
||||
try {
|
||||
request = new DownloadManager.Request(Uri.parse(url.trim()));
|
||||
} catch (Exception e) {
|
||||
return;
|
||||
}
|
||||
try {
|
||||
SimpleDateFormat formatter = new SimpleDateFormat("yyyy_MM_dd_HH_mm_ss", Locale.ENGLISH);
|
||||
Date now = new Date();
|
||||
final String fileName = "UntrackMe_" + formatter.format(now) + ".mp4";
|
||||
request.allowScanningByMediaScanner();
|
||||
request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, fileName);
|
||||
request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
|
||||
DownloadManager dm = (DownloadManager) context.getSystemService(DOWNLOAD_SERVICE);
|
||||
assert dm != null;
|
||||
dm.enqueue(request);
|
||||
} catch (IllegalStateException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Check if an app is installed
|
||||
*
|
||||
|
@ -883,7 +1034,7 @@ public class Utils {
|
|||
* @param extraText String text when sharing content
|
||||
* @param scheme String scheme of the URL
|
||||
*/
|
||||
public static void manageShortenedShare(Context context, String url, String extraText, String scheme) {
|
||||
public static void manageShortenedShare(Context context, String url, String extraText, final String scheme) {
|
||||
ArrayList<String> notShortnedURLDialog = new ArrayList<>();
|
||||
Thread thread = new Thread() {
|
||||
@Override
|
||||
|
@ -903,6 +1054,7 @@ public class Utils {
|
|||
boolean nitter_enabled = sharedpreferences.getBoolean(SET_NITTER_ENABLED, true);
|
||||
boolean invidious_enabled = sharedpreferences.getBoolean(SET_INVIDIOUS_ENABLED, true);
|
||||
boolean osm_enabled = sharedpreferences.getBoolean(MainActivity.SET_OSM_ENABLED, true);
|
||||
boolean teddit_enabled = sharedpreferences.getBoolean(SET_TEDDIT_ENABLED, true);
|
||||
if (nitter_enabled && Arrays.asList(twitter_domains).contains(host)) {
|
||||
Matcher matcher = nitterPattern.matcher(notShortnedURLDialog.get(notShortnedURLDialog.size() - 1));
|
||||
String newUrlFinal = notShortnedURLDialog.get(notShortnedURLDialog.size() - 1);
|
||||
|
@ -940,6 +1092,28 @@ public class Utils {
|
|||
sendIntent.putExtra(Intent.EXTRA_TEXT, newExtraText);
|
||||
sendIntent.setType("text/plain");
|
||||
forwardToBrowser(context, sendIntent);
|
||||
} else if (teddit_enabled && Arrays.asList(reddit_domains).contains(host)) {
|
||||
Matcher matcher = redditPattern.matcher(url);
|
||||
String newUrlFinal = notShortnedURLDialog.get(notShortnedURLDialog.size() - 1);
|
||||
while (matcher.find()) {
|
||||
String redditPath = matcher.group(3);
|
||||
String tedditHost = sharedpreferences.getString(MainActivity.SET_TEDDIT_HOST, MainActivity.DEFAULT_TEDDIT_HOST);
|
||||
assert tedditHost != null;
|
||||
tedditHost = tedditHost.toLowerCase();
|
||||
if (Objects.requireNonNull(matcher.group(2)).compareTo("preview.redd.it") == 0 ||
|
||||
Objects.requireNonNull(matcher.group(2)).compareTo("i.redd.it") == 0
|
||||
) {
|
||||
newUrlFinal = scheme + tedditHost + "/pics/w:null_" + (redditPath != null ? redditPath.split("\\?|%26")[0] : "null");
|
||||
} else {
|
||||
newUrlFinal = scheme + tedditHost + "/" + redditPath;
|
||||
}
|
||||
}
|
||||
String newExtraText = extraText.replaceAll(Pattern.quote(url), Matcher.quoteReplacement(newUrlFinal));
|
||||
Intent sendIntent = new Intent();
|
||||
sendIntent.setAction(Intent.ACTION_SEND);
|
||||
sendIntent.putExtra(Intent.EXTRA_TEXT, newExtraText);
|
||||
sendIntent.setType("text/plain");
|
||||
forwardToBrowser(context, sendIntent);
|
||||
} else if (osm_enabled && notShortnedURLDialog.get(notShortnedURLDialog.size() - 1).contains("/maps/place/")) {
|
||||
String newUrlFinal = notShortnedURLDialog.get(notShortnedURLDialog.size() - 1);
|
||||
Matcher matcher = maps.matcher(notShortnedURLDialog.get(notShortnedURLDialog.size() - 1));
|
||||
|
@ -1018,29 +1192,10 @@ public class Utils {
|
|||
targetIntents.add(targetIntent);
|
||||
}
|
||||
|
||||
SharedPreferences sharedpreferences = context.getSharedPreferences(MainActivity.APP_PREFS, Context.MODE_PRIVATE);
|
||||
boolean embedded_player = sharedpreferences.getBoolean(SET_EMBEDDED_PLAYER, false);
|
||||
|
||||
if (Arrays.asList(invidious_instances).contains(Objects.requireNonNull(i.getData()).getHost()) && embedded_player) {
|
||||
if (!i.getData().toString().contains("videoplayback")) {
|
||||
Intent intentPlayer = new Intent(context, WebviewPlayerActivity.class);
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
|
||||
intentPlayer.addFlags(Intent.FLAG_ACTIVITY_NEW_DOCUMENT | Intent.FLAG_ACTIVITY_MULTIPLE_TASK);
|
||||
}
|
||||
intentPlayer.putExtra("url", i.getData().toString());
|
||||
context.startActivity(intentPlayer);
|
||||
} else {
|
||||
Intent intentStreamingUrl = new Intent(Utils.RECEIVE_STREAMING_URL);
|
||||
Bundle b = new Bundle();
|
||||
b.putString("streaming_url", i.getData().toString());
|
||||
intentStreamingUrl.putExtras(b);
|
||||
LocalBroadcastManager.getInstance(context).sendBroadcast(intentStreamingUrl);
|
||||
}
|
||||
} else if (targetIntents.size() > 0) {
|
||||
Intent chooserIntent = Intent.createChooser(targetIntents.remove(0), context.getString(R.string.open_with));
|
||||
chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, targetIntents.toArray(new Parcelable[]{}));
|
||||
context.startActivity(chooserIntent);
|
||||
}
|
||||
Intent chooserIntent = Intent.createChooser(targetIntents.remove(0), context.getString(R.string.open_with));
|
||||
chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, targetIntents.toArray(new Parcelable[]{}));
|
||||
context.startActivity(chooserIntent);
|
||||
((Activity) context).finish();
|
||||
|
||||
} else {
|
||||
|
@ -1069,10 +1224,12 @@ public class Utils {
|
|||
} catch (MalformedURLException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return Arrays.asList(twitter_domains).contains(host) || Arrays.asList(nitter_instances).contains(host)
|
||||
return Arrays.asList(twitter_domains).contains(host) || Arrays.asList(nitter_instances).contains(host) || Arrays.asList(reddit_domains).contains(host)
|
||||
|| Arrays.asList(instagram_domains).contains(host) || Arrays.asList(bibliogram_instances).contains(host)
|
||||
|| url.contains("/maps/place") || url.contains("/amp/s/") || (host != null && host.contains(outlook_safe_domain))
|
||||
|| Arrays.asList(youtube_domains).contains(host) || Arrays.asList(invidious_instances).contains(host);
|
||||
|| Arrays.asList(youtube_domains).contains(host) || Arrays.asList(invidious_instances).contains(host)
|
||||
|| Arrays.asList(tiktok_domains).contains(host) || (host != null && host.endsWith(medium_domains[0])
|
||||
|| (host != null && host.endsWith(wikipedia_domains[0])) || (host != null && host.endsWith(reddit_domains[1])));
|
||||
}
|
||||
|
||||
public static boolean routerEnabledForHost(Context context, String url) {
|
||||
|
@ -1094,6 +1251,14 @@ public class Utils {
|
|||
return sharedpreferences.getBoolean(MainActivity.SET_OSM_ENABLED, true);
|
||||
} else if (Arrays.asList(youtube_domains).contains(host) || Arrays.asList(invidious_instances).contains(host)) {
|
||||
return sharedpreferences.getBoolean(SET_INVIDIOUS_ENABLED, true);
|
||||
} else if (Arrays.asList(reddit_domains).contains(host) || (host != null && host.endsWith(reddit_domains[1]))) {
|
||||
return sharedpreferences.getBoolean(SET_TEDDIT_ENABLED, true);
|
||||
} else if (Arrays.asList(tiktok_domains).contains(host)) {
|
||||
return sharedpreferences.getBoolean(SET_PROXITOK_ENABLED, true);
|
||||
} else if (host != null && host.endsWith(medium_domains[0])) {
|
||||
return sharedpreferences.getBoolean(SET_SCRIBERIP_ENABLED, true);
|
||||
} else if (host != null && host.endsWith(wikipedia_domains[0])) {
|
||||
return sharedpreferences.getBoolean(SET_WIKILESS_ENABLED, true);
|
||||
} else
|
||||
return url.contains("/amp/s/") || (host != null && host.contains(outlook_safe_domain));
|
||||
}
|
||||
|
|
|
@ -14,6 +14,20 @@ package app.fedilab.nitterizeme.viewmodels;
|
|||
* You should have received a copy of the GNU General Public License along with UntrackMe; if not,
|
||||
* see <http://www.gnu.org/licenses>. */
|
||||
|
||||
import static app.fedilab.nitterizeme.activities.MainActivity.APP_PREFS;
|
||||
import static app.fedilab.nitterizeme.activities.MainActivity.DEFAULT_BIBLIOGRAM_HOST;
|
||||
import static app.fedilab.nitterizeme.activities.MainActivity.DEFAULT_INVIDIOUS_HOST;
|
||||
import static app.fedilab.nitterizeme.activities.MainActivity.DEFAULT_NITTER_HOST;
|
||||
import static app.fedilab.nitterizeme.activities.MainActivity.DEFAULT_SCRIBERIP_HOST;
|
||||
import static app.fedilab.nitterizeme.activities.MainActivity.DEFAULT_TEDDIT_HOST;
|
||||
import static app.fedilab.nitterizeme.activities.MainActivity.DEFAULT_WIKILESS_HOST;
|
||||
import static app.fedilab.nitterizeme.activities.MainActivity.SET_BIBLIOGRAM_HOST;
|
||||
import static app.fedilab.nitterizeme.activities.MainActivity.SET_INVIDIOUS_HOST;
|
||||
import static app.fedilab.nitterizeme.activities.MainActivity.SET_NITTER_HOST;
|
||||
import static app.fedilab.nitterizeme.activities.MainActivity.SET_SCRIBERIP_HOST;
|
||||
import static app.fedilab.nitterizeme.activities.MainActivity.SET_TEDDIT_HOST;
|
||||
import static app.fedilab.nitterizeme.activities.MainActivity.SET_WIKILESS_HOST;
|
||||
|
||||
import android.app.Application;
|
||||
import android.content.Context;
|
||||
import android.content.SharedPreferences;
|
||||
|
@ -38,14 +52,6 @@ import javax.net.ssl.HttpsURLConnection;
|
|||
|
||||
import app.fedilab.nitterizeme.entities.Instance;
|
||||
|
||||
import static app.fedilab.nitterizeme.activities.MainActivity.APP_PREFS;
|
||||
import static app.fedilab.nitterizeme.activities.MainActivity.DEFAULT_BIBLIOGRAM_HOST;
|
||||
import static app.fedilab.nitterizeme.activities.MainActivity.DEFAULT_INVIDIOUS_HOST;
|
||||
import static app.fedilab.nitterizeme.activities.MainActivity.DEFAULT_NITTER_HOST;
|
||||
import static app.fedilab.nitterizeme.activities.MainActivity.SET_BIBLIOGRAM_HOST;
|
||||
import static app.fedilab.nitterizeme.activities.MainActivity.SET_INVIDIOUS_HOST;
|
||||
import static app.fedilab.nitterizeme.activities.MainActivity.SET_NITTER_HOST;
|
||||
|
||||
public class SearchInstanceVM extends AndroidViewModel {
|
||||
private MutableLiveData<List<Instance>> instancesMLD;
|
||||
|
||||
|
@ -67,8 +73,6 @@ public class SearchInstanceVM extends AndroidViewModel {
|
|||
@Override
|
||||
public void run() {
|
||||
List<Instance> instances = getInstancesFromFedilabApp();
|
||||
List<Instance> bibliogramInstances = getInstancesFromBibliogramArt();
|
||||
instances.addAll(bibliogramInstances);
|
||||
Handler mainHandler = new Handler(Looper.getMainLooper());
|
||||
Runnable myRunnable = () -> instancesMLD.setValue(instances);
|
||||
mainHandler.post(myRunnable);
|
||||
|
@ -81,7 +85,7 @@ public class SearchInstanceVM extends AndroidViewModel {
|
|||
HttpsURLConnection httpsURLConnection;
|
||||
ArrayList<Instance> instances = new ArrayList<>();
|
||||
try {
|
||||
String instances_url = "https://fedilab.app/untrackme_instances/payload_2.json";
|
||||
String instances_url = "https://fedilab.app/untrackme_instances/payload_3.json";
|
||||
URL url = new URL(instances_url);
|
||||
httpsURLConnection = (HttpsURLConnection) url.openConnection();
|
||||
httpsURLConnection.setConnectTimeout(10 * 1000);
|
||||
|
@ -98,38 +102,173 @@ public class SearchInstanceVM extends AndroidViewModel {
|
|||
}
|
||||
httpsURLConnection.getInputStream().close();
|
||||
SharedPreferences sharedpreferences = getApplication().getApplicationContext().getSharedPreferences(APP_PREFS, Context.MODE_PRIVATE);
|
||||
String defaultInvidious = sharedpreferences.getString(SET_INVIDIOUS_HOST, DEFAULT_INVIDIOUS_HOST);
|
||||
String defaultNitter = sharedpreferences.getString(SET_NITTER_HOST, DEFAULT_NITTER_HOST);
|
||||
String defaultYoutube = sharedpreferences.getString(SET_INVIDIOUS_HOST, DEFAULT_INVIDIOUS_HOST);
|
||||
String defaultTwitter = sharedpreferences.getString(SET_NITTER_HOST, DEFAULT_NITTER_HOST);
|
||||
String defaultReddit = sharedpreferences.getString(SET_TEDDIT_HOST, DEFAULT_TEDDIT_HOST);
|
||||
String defaultInstagram = sharedpreferences.getString(SET_BIBLIOGRAM_HOST, DEFAULT_BIBLIOGRAM_HOST);
|
||||
String defaultMedium = sharedpreferences.getString(SET_SCRIBERIP_HOST, DEFAULT_SCRIBERIP_HOST);
|
||||
String defaultWikipedia = sharedpreferences.getString(SET_WIKILESS_HOST, DEFAULT_WIKILESS_HOST);
|
||||
|
||||
if (response != null) {
|
||||
try {
|
||||
JSONObject jsonObject = new JSONObject(response);
|
||||
JSONArray jsonArrayInvidious = jsonObject.getJSONArray("invidious");
|
||||
JSONArray jsonArrayNitter = jsonObject.getJSONArray("nitter");
|
||||
for (int i = 0; i < jsonArrayInvidious.length(); i++) {
|
||||
JSONArray jsonArrayYoutube = jsonObject.getJSONArray("Youtube");
|
||||
JSONArray jsonArrayTwitter = jsonObject.getJSONArray("Twitter");
|
||||
JSONArray jsonArrayInstagram = jsonObject.getJSONArray("Instagram");
|
||||
JSONArray jsonArrayReddit = jsonObject.getJSONArray("Reddit");
|
||||
JSONArray jsonArrayMedium = jsonObject.getJSONArray("Medium");
|
||||
JSONArray jsonArrayWikipedia = jsonObject.getJSONArray("Wikipedia");
|
||||
for (int i = 0; i < jsonArrayYoutube.length(); i++) {
|
||||
Instance instance = new Instance();
|
||||
String domain = jsonArrayInvidious.getJSONObject(i).getString("domain");
|
||||
boolean cloudFlare = jsonArrayInvidious.getJSONObject(i).getBoolean("cloudflare");
|
||||
String locale = jsonArrayInvidious.getJSONObject(i).getString("locale");
|
||||
String domain = jsonArrayYoutube.getJSONObject(i).getString("domain");
|
||||
String type = jsonArrayYoutube.getJSONObject(i).getString("type");
|
||||
boolean cloudFlare = jsonArrayYoutube.getJSONObject(i).getBoolean("cloudflare");
|
||||
List<String> localesList = new ArrayList<>();
|
||||
if (jsonArrayYoutube.getJSONObject(i).has("country")) {
|
||||
JSONArray locales = jsonArrayYoutube.getJSONObject(i).getJSONArray("country");
|
||||
|
||||
for (int j = 0; j < locales.length(); j++) {
|
||||
localesList.add(locales.getString(j));
|
||||
}
|
||||
} else {
|
||||
localesList.add("--");
|
||||
}
|
||||
instance.setLocales(localesList);
|
||||
instance.setDomain(domain);
|
||||
instance.setType(type);
|
||||
instance.setCloudflare(cloudFlare);
|
||||
instance.setLocale(locale);
|
||||
instance.setType(Instance.instanceType.INVIDIOUS);
|
||||
if (defaultInvidious != null && domain.compareTo(defaultInvidious) == 0) {
|
||||
instance.setInstanceType(Instance.instanceType.YOUTUBE);
|
||||
if (defaultYoutube != null && domain.compareTo(defaultYoutube) == 0) {
|
||||
instance.setChecked(true);
|
||||
}
|
||||
instances.add(instance);
|
||||
}
|
||||
for (int i = 0; i < jsonArrayNitter.length(); i++) {
|
||||
for (int i = 0; i < jsonArrayTwitter.length(); i++) {
|
||||
Instance instance = new Instance();
|
||||
String domain = jsonArrayNitter.getJSONObject(i).getString("domain");
|
||||
boolean cloudFlare = jsonArrayNitter.getJSONObject(i).getBoolean("cloudflare");
|
||||
String locale = jsonArrayNitter.getJSONObject(i).getString("locale");
|
||||
String domain = jsonArrayTwitter.getJSONObject(i).getString("domain");
|
||||
String type = jsonArrayTwitter.getJSONObject(i).getString("type");
|
||||
boolean cloudFlare = jsonArrayTwitter.getJSONObject(i).getBoolean("cloudflare");
|
||||
|
||||
List<String> localesList = new ArrayList<>();
|
||||
if (jsonArrayTwitter.getJSONObject(i).has("country")) {
|
||||
JSONArray locales = jsonArrayTwitter.getJSONObject(i).getJSONArray("country");
|
||||
for (int j = 0; j < locales.length(); j++) {
|
||||
localesList.add(locales.getString(j));
|
||||
}
|
||||
} else {
|
||||
localesList.add("--");
|
||||
}
|
||||
instance.setLocales(localesList);
|
||||
|
||||
instance.setDomain(domain);
|
||||
instance.setType(type);
|
||||
instance.setCloudflare(cloudFlare);
|
||||
instance.setLocale(locale);
|
||||
instance.setType(Instance.instanceType.NITTER);
|
||||
if (defaultNitter != null && domain.compareTo(defaultNitter) == 0) {
|
||||
instance.setInstanceType(Instance.instanceType.TWITTER);
|
||||
if (defaultTwitter != null && domain.compareTo(defaultTwitter) == 0) {
|
||||
instance.setChecked(true);
|
||||
}
|
||||
instances.add(instance);
|
||||
}
|
||||
for (int i = 0; i < jsonArrayInstagram.length(); i++) {
|
||||
Instance instance = new Instance();
|
||||
String domain = jsonArrayInstagram.getJSONObject(i).getString("domain");
|
||||
String type = jsonArrayInstagram.getJSONObject(i).getString("type");
|
||||
boolean cloudFlare = jsonArrayInstagram.getJSONObject(i).getBoolean("cloudflare");
|
||||
|
||||
List<String> localesList = new ArrayList<>();
|
||||
if (jsonArrayInstagram.getJSONObject(i).has("country")) {
|
||||
JSONArray locales = jsonArrayInstagram.getJSONObject(i).getJSONArray("country");
|
||||
for (int j = 0; j < locales.length(); j++) {
|
||||
localesList.add(locales.getString(j));
|
||||
}
|
||||
} else {
|
||||
localesList.add("--");
|
||||
}
|
||||
instance.setLocales(localesList);
|
||||
|
||||
instance.setDomain(domain);
|
||||
instance.setType(type);
|
||||
instance.setCloudflare(cloudFlare);
|
||||
instance.setInstanceType(Instance.instanceType.INSTAGRAM);
|
||||
if (defaultInstagram != null && domain.compareTo(defaultInstagram) == 0) {
|
||||
instance.setChecked(true);
|
||||
}
|
||||
instances.add(instance);
|
||||
}
|
||||
for (int i = 0; i < jsonArrayReddit.length(); i++) {
|
||||
Instance instance = new Instance();
|
||||
String domain = jsonArrayReddit.getJSONObject(i).getString("domain");
|
||||
String type = jsonArrayReddit.getJSONObject(i).getString("type");
|
||||
boolean cloudFlare = jsonArrayReddit.getJSONObject(i).getBoolean("cloudflare");
|
||||
|
||||
List<String> localesList = new ArrayList<>();
|
||||
if (jsonArrayReddit.getJSONObject(i).has("country")) {
|
||||
JSONArray locales = jsonArrayReddit.getJSONObject(i).getJSONArray("country");
|
||||
for (int j = 0; j < locales.length(); j++) {
|
||||
localesList.add(locales.getString(j));
|
||||
}
|
||||
} else {
|
||||
localesList.add("--");
|
||||
}
|
||||
instance.setLocales(localesList);
|
||||
|
||||
instance.setDomain(domain);
|
||||
instance.setType(type);
|
||||
instance.setCloudflare(cloudFlare);
|
||||
instance.setInstanceType(Instance.instanceType.REDDIT);
|
||||
if (defaultReddit != null && domain.compareTo(defaultReddit) == 0) {
|
||||
instance.setChecked(true);
|
||||
}
|
||||
instances.add(instance);
|
||||
}
|
||||
for (int i = 0; i < jsonArrayMedium.length(); i++) {
|
||||
Instance instance = new Instance();
|
||||
String domain = jsonArrayMedium.getJSONObject(i).getString("domain");
|
||||
String type = jsonArrayMedium.getJSONObject(i).getString("type");
|
||||
boolean cloudFlare = jsonArrayMedium.getJSONObject(i).getBoolean("cloudflare");
|
||||
|
||||
List<String> localesList = new ArrayList<>();
|
||||
if (jsonArrayMedium.getJSONObject(i).has("country")) {
|
||||
JSONArray locales = jsonArrayMedium.getJSONObject(i).getJSONArray("country");
|
||||
for (int j = 0; j < locales.length(); j++) {
|
||||
localesList.add(locales.getString(j));
|
||||
}
|
||||
} else {
|
||||
localesList.add("--");
|
||||
}
|
||||
instance.setLocales(localesList);
|
||||
|
||||
instance.setDomain(domain);
|
||||
instance.setType(type);
|
||||
instance.setCloudflare(cloudFlare);
|
||||
instance.setInstanceType(Instance.instanceType.MEDIUM);
|
||||
if (defaultMedium != null && domain.compareTo(defaultMedium) == 0) {
|
||||
instance.setChecked(true);
|
||||
}
|
||||
instances.add(instance);
|
||||
}
|
||||
for (int i = 0; i < jsonArrayWikipedia.length(); i++) {
|
||||
Instance instance = new Instance();
|
||||
String domain = jsonArrayWikipedia.getJSONObject(i).getString("domain");
|
||||
String type = jsonArrayWikipedia.getJSONObject(i).getString("type");
|
||||
boolean cloudFlare = jsonArrayWikipedia.getJSONObject(i).getBoolean("cloudflare");
|
||||
|
||||
List<String> localesList = new ArrayList<>();
|
||||
if (jsonArrayWikipedia.getJSONObject(i).has("country")) {
|
||||
JSONArray locales = jsonArrayWikipedia.getJSONObject(i).getJSONArray("country");
|
||||
for (int j = 0; j < locales.length(); j++) {
|
||||
localesList.add(locales.getString(j));
|
||||
}
|
||||
} else {
|
||||
localesList.add("--");
|
||||
}
|
||||
instance.setLocales(localesList);
|
||||
|
||||
instance.setDomain(domain);
|
||||
instance.setType(type);
|
||||
instance.setCloudflare(cloudFlare);
|
||||
instance.setInstanceType(Instance.instanceType.WIKIPEDIA);
|
||||
if (defaultWikipedia != null && domain.compareTo(defaultWikipedia) == 0) {
|
||||
instance.setChecked(true);
|
||||
}
|
||||
instances.add(instance);
|
||||
|
@ -137,6 +276,7 @@ public class SearchInstanceVM extends AndroidViewModel {
|
|||
} catch (JSONException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
}
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
|
@ -145,56 +285,4 @@ public class SearchInstanceVM extends AndroidViewModel {
|
|||
}
|
||||
|
||||
|
||||
private List<Instance> getInstancesFromBibliogramArt() {
|
||||
HttpsURLConnection httpsURLConnection;
|
||||
ArrayList<Instance> instances = new ArrayList<>();
|
||||
try {
|
||||
String instances_url = "https://bibliogram.art/api/instances";
|
||||
URL url = new URL(instances_url);
|
||||
httpsURLConnection = (HttpsURLConnection) url.openConnection();
|
||||
httpsURLConnection.setConnectTimeout(10 * 1000);
|
||||
httpsURLConnection.setRequestProperty("http.keepAlive", "false");
|
||||
httpsURLConnection.setRequestProperty("Content-Type", "application/json");
|
||||
httpsURLConnection.setRequestProperty("Accept", "application/json");
|
||||
httpsURLConnection.setRequestMethod("GET");
|
||||
httpsURLConnection.setDefaultUseCaches(true);
|
||||
httpsURLConnection.setUseCaches(true);
|
||||
String response = null;
|
||||
if (httpsURLConnection.getResponseCode() >= 200 && httpsURLConnection.getResponseCode() < 400) {
|
||||
java.util.Scanner s = new java.util.Scanner(httpsURLConnection.getInputStream()).useDelimiter("\\A");
|
||||
response = s.hasNext() ? s.next() : "";
|
||||
}
|
||||
httpsURLConnection.getInputStream().close();
|
||||
SharedPreferences sharedpreferences = getApplication().getApplicationContext().getSharedPreferences(APP_PREFS, Context.MODE_PRIVATE);
|
||||
String defaultBibliogram = sharedpreferences.getString(SET_BIBLIOGRAM_HOST, DEFAULT_BIBLIOGRAM_HOST);
|
||||
|
||||
if (response != null) {
|
||||
try {
|
||||
JSONObject jsonObject = new JSONObject(response);
|
||||
JSONArray jsonArrayBibliogram = jsonObject.getJSONArray("data");
|
||||
for (int i = 0; i < jsonArrayBibliogram.length(); i++) {
|
||||
Instance instance = new Instance();
|
||||
String url_bibliogram = jsonArrayBibliogram.getJSONObject(i).getString("address");
|
||||
URL urlBibliogram = new URL(url_bibliogram);
|
||||
String domain = urlBibliogram.getHost();
|
||||
boolean cloudFlare = jsonArrayBibliogram.getJSONObject(i).getBoolean("using_cloudflare");
|
||||
String locale = jsonArrayBibliogram.getJSONObject(i).getString("country");
|
||||
instance.setDomain(domain);
|
||||
instance.setCloudflare(cloudFlare);
|
||||
instance.setLocale(locale);
|
||||
instance.setType(Instance.instanceType.BIBLIOGRAM);
|
||||
if (defaultBibliogram != null && domain.compareTo(defaultBibliogram) == 0) {
|
||||
instance.setChecked(true);
|
||||
}
|
||||
instances.add(instance);
|
||||
}
|
||||
} catch (JSONException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return instances;
|
||||
}
|
||||
}
|
||||
|
|
Before Width: | Height: | Size: 17 KiB |
|
@ -1,10 +0,0 @@
|
|||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:tint="#FFFFFF"
|
||||
android:viewportWidth="24.0"
|
||||
android:viewportHeight="24.0">
|
||||
<path
|
||||
android:fillColor="#FF000000"
|
||||
android:pathData="M19,9h-4V3H9v6H5l7,7 7,-7zM5,18v2h14v-2H5z" />
|
||||
</vector>
|
|
@ -1,10 +0,0 @@
|
|||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:tint="#FFFFFF"
|
||||
android:viewportWidth="24.0"
|
||||
android:viewportHeight="24.0">
|
||||
<path
|
||||
android:fillColor="#FF000000"
|
||||
android:pathData="M18,16.08c-0.76,0 -1.44,0.3 -1.96,0.77L8.91,12.7c0.05,-0.23 0.09,-0.46 0.09,-0.7s-0.04,-0.47 -0.09,-0.7l7.05,-4.11c0.54,0.5 1.25,0.81 2.04,0.81 1.66,0 3,-1.34 3,-3s-1.34,-3 -3,-3 -3,1.34 -3,3c0,0.24 0.04,0.47 0.09,0.7L8.04,9.81C7.5,9.31 6.79,9 6,9c-1.66,0 -3,1.34 -3,3s1.34,3 3,3c0.79,0 1.5,-0.31 2.04,-0.81l7.12,4.16c-0.05,0.21 -0.08,0.43 -0.08,0.65 0,1.61 1.31,2.92 2.92,2.92 1.61,0 2.92,-1.31 2.92,-2.92s-1.31,-2.92 -2.92,-2.92z" />
|
||||
</vector>
|
|
@ -109,7 +109,7 @@
|
|||
android:id="@+id/developer_mastodon"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="\@UntrackMe@toot.fedilab.org"
|
||||
android:text="\@apps@toot.fedilab.app"
|
||||
android:textSize="16sp"
|
||||
android:textStyle="bold"
|
||||
tools:ignore="HardcodedText" />
|
||||
|
@ -122,27 +122,27 @@
|
|||
|
||||
<TextView
|
||||
android:id="@+id/framagit"
|
||||
android:layout_width="0dp"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:layout_marginRight="15dp"
|
||||
android:text="Framagit"
|
||||
android:textSize="16sp"
|
||||
tools:ignore="HardcodedText" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/github"
|
||||
android:layout_width="0dp"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:layout_marginRight="15dp"
|
||||
android:text="Github"
|
||||
android:textSize="16sp"
|
||||
tools:ignore="HardcodedText" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/codeberg"
|
||||
android:layout_width="0dp"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:layout_marginRight="15dp"
|
||||
android:text="Codeberg"
|
||||
android:textSize="16sp"
|
||||
tools:ignore="HardcodedText" />
|
||||
|
@ -202,8 +202,7 @@
|
|||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="Wiki"
|
||||
tools:ignore="HardcodedText" />
|
||||
android:text="@string/wiki" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/how_to"
|
||||
|
@ -307,4 +306,4 @@
|
|||
tools:ignore="HardcodedText" />
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
</ScrollView>
|
||||
</ScrollView>
|
||||
|
|
|
@ -25,7 +25,6 @@
|
|||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:theme="@style/AppTheme.AppBarOverlay">
|
||||
|
||||
<androidx.appcompat.widget.Toolbar
|
||||
android:id="@+id/toolbar"
|
||||
android:layout_width="match_parent"
|
||||
|
@ -35,7 +34,9 @@
|
|||
|
||||
</com.google.android.material.appbar.AppBarLayout>
|
||||
|
||||
<include layout="@layout/content_main" />
|
||||
<include
|
||||
android:id="@+id/content_main"
|
||||
layout="@layout/content_main" />
|
||||
|
||||
|
||||
</androidx.coordinatorlayout.widget.CoordinatorLayout>
|
|
@ -68,6 +68,7 @@
|
|||
android:padding="2dp"
|
||||
android:src="@drawable/ic_copy"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
android:contentDescription="@string/copy_url"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<TextView
|
||||
|
@ -76,14 +77,13 @@
|
|||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="10dp"
|
||||
android:layout_marginLeft="10dp"
|
||||
android:drawableStart="@drawable/ic_app_logo"
|
||||
android:drawableLeft="@drawable/ic_app_logo"
|
||||
android:drawablePadding="5dp"
|
||||
android:gravity="center_vertical"
|
||||
android:paddingTop="5dp"
|
||||
android:text="@string/continue_with"
|
||||
android:textSize="16sp"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:drawableStartCompat="@drawable/ic_app_logo"
|
||||
app:layout_constraintTop_toBottomOf="@+id/scroll_url" />
|
||||
|
||||
<GridView
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_margin="@dimen/fab_margin"
|
||||
android:padding="@dimen/fab_margin"
|
||||
android:orientation="vertical">
|
||||
|
||||
<RelativeLayout
|
||||
|
@ -10,7 +10,7 @@
|
|||
android:layout_height="0dp"
|
||||
android:layout_weight="1">
|
||||
|
||||
<ScrollView
|
||||
<androidx.core.widget.NestedScrollView
|
||||
android:id="@+id/scrolling_container"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
|
@ -62,8 +62,62 @@
|
|||
android:id="@+id/bibliogram_instances"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="10dp"
|
||||
android:text="@string/teddit_instances"
|
||||
android:textColor="@color/colorAccent"
|
||||
android:textSize="16sp" />
|
||||
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
android:id="@+id/teddit_instances"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="10dp"
|
||||
android:text="@string/scribe_instances"
|
||||
android:textColor="@color/colorAccent"
|
||||
android:textSize="16sp" />
|
||||
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
android:id="@+id/scribe_instances"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="10dp"
|
||||
android:text="@string/wikiless_instances"
|
||||
android:textColor="@color/colorAccent"
|
||||
android:textSize="16sp" />
|
||||
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
android:id="@+id/wikiless_instances"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="10dp"
|
||||
android:text="@string/proxitok_instances"
|
||||
android:textColor="@color/colorAccent"
|
||||
android:textSize="16sp" />
|
||||
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
android:id="@+id/proxitok_instances"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content" />
|
||||
|
||||
|
||||
</LinearLayout>
|
||||
</ScrollView>
|
||||
</androidx.core.widget.NestedScrollView>
|
||||
|
||||
<RelativeLayout
|
||||
android:id="@+id/loader"
|
||||
|
|
|
@ -1,52 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?><!--
|
||||
/* Copyright 2020 Thomas Schneider
|
||||
*
|
||||
* This file is a part of UntrackMe
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it under the terms of the
|
||||
* GNU General Public License as published by the Free Software Foundation; either version 3 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* UntrackMe is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even
|
||||
* the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
|
||||
* Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along with UntrackMe; if not,
|
||||
* see <http://www.gnu.org/licenses>. */
|
||||
-->
|
||||
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="@android:color/black"
|
||||
tools:context=".activities.WebviewPlayerActivity">
|
||||
|
||||
<FrameLayout
|
||||
android:id="@+id/webview_container"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:visibility="gone">
|
||||
|
||||
<WebView
|
||||
android:id="@+id/webview"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent" />
|
||||
</FrameLayout>
|
||||
<!-- View where the video will be shown when video goes fullscreen -->
|
||||
<RelativeLayout
|
||||
android:id="@+id/videoLayout"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:visibility="gone" />
|
||||
|
||||
<RelativeLayout
|
||||
android:id="@+id/loader"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:gravity="center">
|
||||
|
||||
<ProgressBar
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content" />
|
||||
</RelativeLayout>
|
||||
</RelativeLayout>
|
|
@ -243,7 +243,6 @@
|
|||
android:layout_marginLeft="@dimen/label_instance_margin_start"
|
||||
android:gravity="center_vertical"
|
||||
android:text="@string/instance_label"
|
||||
|
||||
app:layout_constraintStart_toEndOf="@id/button_expand_instance_invidious"
|
||||
app:layout_constraintTop_toTopOf="@id/guide_invidious" />
|
||||
|
||||
|
@ -254,7 +253,7 @@
|
|||
android:layout_height="40dp"
|
||||
android:contentDescription="@string/custom_settings_for_invidious"
|
||||
android:src="@drawable/ic_settings_applications"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="@+id/enable_invidious"
|
||||
app:layout_constraintTop_toTopOf="@id/guide_invidious" />
|
||||
|
||||
<TextView
|
||||
|
@ -265,7 +264,7 @@
|
|||
android:layout_marginLeft="5dp"
|
||||
android:gravity="center_vertical"
|
||||
android:textColor="#fff"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintEnd_toStartOf="@+id/invidious_settings"
|
||||
app:layout_constraintStart_toEndOf="@id/label_instance_invidious"
|
||||
app:layout_constraintTop_toTopOf="@id/guide_invidious" />
|
||||
|
||||
|
@ -316,15 +315,6 @@
|
|||
app:barrierDirection="bottom"
|
||||
app:constraint_referenced_ids="invidious_instance_container,button_save_instance_invidious" />
|
||||
|
||||
<CheckBox
|
||||
android:id="@+id/enable_embed_player"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="5dp"
|
||||
android:text="@string/use_built_in_player"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/barrier_invidious_2" />
|
||||
|
||||
<androidx.constraintlayout.widget.Group
|
||||
android:id="@+id/group_current_invidious"
|
||||
|
@ -348,7 +338,7 @@
|
|||
style="@style/containerCard"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
app:layout_constraintBottom_toTopOf="@id/osm_container"
|
||||
app:layout_constraintBottom_toTopOf="@id/teddit_container"
|
||||
app:layout_constraintTop_toBottomOf="@id/invidious_container">
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
|
@ -485,13 +475,440 @@
|
|||
|
||||
</androidx.cardview.widget.CardView>
|
||||
|
||||
<androidx.cardview.widget.CardView
|
||||
android:id="@+id/teddit_container"
|
||||
style="@style/containerCard"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
app:layout_constraintBottom_toTopOf="@id/scriberip_container"
|
||||
app:layout_constraintTop_toBottomOf="@id/bibliogram_container">
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:animateLayoutChanges="true">
|
||||
|
||||
<androidx.constraintlayout.widget.Guideline
|
||||
android:id="@+id/guide_teddit"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal"
|
||||
app:layout_constraintGuide_begin="40dp" />
|
||||
|
||||
<View
|
||||
android:id="@+id/top_part_bg_teddit"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="0dp"
|
||||
android:background="@color/topBar"
|
||||
app:layout_constraintBottom_toBottomOf="@id/guide_teddit"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/teddit_indications"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="10dp"
|
||||
android:layout_marginLeft="10dp"
|
||||
android:text="@string/redirect_reddit_to_teddit"
|
||||
app:layout_constraintBottom_toBottomOf="@id/guide_teddit"
|
||||
app:layout_constraintEnd_toStartOf="@id/enable_teddit"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<androidx.appcompat.widget.SwitchCompat
|
||||
android:id="@+id/enable_teddit"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
android:layout_marginEnd="10dp"
|
||||
android:layout_marginRight="10dp"
|
||||
app:layout_constraintBottom_toBottomOf="@id/guide_teddit"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<ImageButton
|
||||
android:id="@+id/button_expand_instance_teddit"
|
||||
android:layout_width="30dp"
|
||||
android:layout_height="30dp"
|
||||
android:background="@null"
|
||||
android:contentDescription="@string/expand_instance_details"
|
||||
android:scaleType="fitCenter"
|
||||
android:src="@drawable/ic_expand_more"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="@id/guide_teddit" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/label_instance_teddit"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="30dp"
|
||||
android:layout_marginStart="@dimen/label_instance_margin_start"
|
||||
android:layout_marginLeft="@dimen/label_instance_margin_start"
|
||||
android:gravity="center_vertical"
|
||||
android:text="@string/instance_label"
|
||||
app:layout_constraintStart_toEndOf="@id/button_expand_instance_teddit"
|
||||
app:layout_constraintTop_toTopOf="@id/guide_teddit" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/current_instance_teddit"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="30dp"
|
||||
android:layout_marginStart="5dp"
|
||||
android:layout_marginLeft="5dp"
|
||||
android:gravity="center_vertical"
|
||||
android:textColor="#fff"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toEndOf="@id/label_instance_teddit"
|
||||
app:layout_constraintTop_toTopOf="@id/guide_teddit" />
|
||||
|
||||
<androidx.constraintlayout.widget.Barrier
|
||||
android:id="@+id/barrier_teddit"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
app:barrierDirection="bottom"
|
||||
app:constraint_referenced_ids="label_instance_teddit,current_instance_teddit,button_expand_instance_teddit" />
|
||||
|
||||
<com.google.android.material.textfield.TextInputLayout
|
||||
android:id="@+id/teddit_instance_container"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_margin="5dp"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toStartOf="@id/button_save_instance_teddit"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/barrier_teddit">
|
||||
|
||||
<com.google.android.material.textfield.TextInputEditText
|
||||
android:id="@+id/teddit_instance"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:hint="@string/custom_teddit"
|
||||
android:inputType="textUri"
|
||||
android:maxLines="1"
|
||||
android:textSize="@dimen/custom_instance_input_text_size" />
|
||||
|
||||
</com.google.android.material.textfield.TextInputLayout>
|
||||
|
||||
<ImageButton
|
||||
android:id="@+id/button_save_instance_teddit"
|
||||
android:layout_width="30dp"
|
||||
android:layout_height="30dp"
|
||||
android:layout_margin="5dp"
|
||||
android:background="@null"
|
||||
android:contentDescription="@string/save"
|
||||
android:src="@drawable/ic_save"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toTopOf="@id/barrier_teddit" />
|
||||
|
||||
<androidx.constraintlayout.widget.Group
|
||||
android:id="@+id/group_current_teddit"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
app:constraint_referenced_ids="label_instance_teddit,current_instance_teddit,button_expand_instance_teddit" />
|
||||
|
||||
<androidx.constraintlayout.widget.Group
|
||||
android:id="@+id/group_custom_teddit"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:visibility="gone"
|
||||
app:constraint_referenced_ids="teddit_instance_container,button_save_instance_teddit" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
</androidx.cardview.widget.CardView>
|
||||
|
||||
<androidx.cardview.widget.CardView
|
||||
android:id="@+id/scriberip_container"
|
||||
style="@style/containerCard"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
app:layout_constraintBottom_toTopOf="@id/wikiless_container"
|
||||
app:layout_constraintTop_toBottomOf="@id/teddit_container">
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:animateLayoutChanges="true">
|
||||
|
||||
<androidx.constraintlayout.widget.Guideline
|
||||
android:id="@+id/guide_scriberip"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal"
|
||||
app:layout_constraintGuide_begin="40dp" />
|
||||
|
||||
<View
|
||||
android:id="@+id/top_part_bg_scriberip"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="0dp"
|
||||
android:background="@color/topBar"
|
||||
app:layout_constraintBottom_toBottomOf="@id/guide_scriberip"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/scriberip_indications"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="10dp"
|
||||
android:layout_marginLeft="10dp"
|
||||
android:text="@string/redirect_medium_to_scriberip"
|
||||
app:layout_constraintBottom_toBottomOf="@id/guide_scriberip"
|
||||
app:layout_constraintEnd_toStartOf="@id/enable_scriberip"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<androidx.appcompat.widget.SwitchCompat
|
||||
android:id="@+id/enable_scriberip"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
android:layout_marginEnd="10dp"
|
||||
android:layout_marginRight="10dp"
|
||||
app:layout_constraintBottom_toBottomOf="@id/guide_scriberip"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<ImageButton
|
||||
android:id="@+id/button_expand_instance_scriberip"
|
||||
android:layout_width="30dp"
|
||||
android:layout_height="30dp"
|
||||
android:background="@null"
|
||||
android:contentDescription="@string/expand_instance_details"
|
||||
android:scaleType="fitCenter"
|
||||
android:src="@drawable/ic_expand_more"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="@id/guide_scriberip" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/label_instance_scriberip"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="30dp"
|
||||
android:layout_marginStart="@dimen/label_instance_margin_start"
|
||||
android:layout_marginLeft="@dimen/label_instance_margin_start"
|
||||
android:gravity="center_vertical"
|
||||
android:text="@string/instance_label"
|
||||
app:layout_constraintStart_toEndOf="@id/button_expand_instance_scriberip"
|
||||
app:layout_constraintTop_toTopOf="@id/guide_scriberip" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/current_instance_scriberip"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="30dp"
|
||||
android:layout_marginStart="5dp"
|
||||
android:layout_marginLeft="5dp"
|
||||
android:gravity="center_vertical"
|
||||
android:textColor="#fff"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toEndOf="@id/label_instance_scriberip"
|
||||
app:layout_constraintTop_toTopOf="@id/guide_scriberip" />
|
||||
|
||||
<androidx.constraintlayout.widget.Barrier
|
||||
android:id="@+id/barrier_scriberip"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
app:barrierDirection="bottom"
|
||||
app:constraint_referenced_ids="label_instance_scriberip,current_instance_scriberip,button_expand_instance_scriberip" />
|
||||
|
||||
<com.google.android.material.textfield.TextInputLayout
|
||||
android:id="@+id/scriberip_instance_container"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_margin="5dp"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toStartOf="@id/button_save_instance_scriberip"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/barrier_scriberip">
|
||||
|
||||
<com.google.android.material.textfield.TextInputEditText
|
||||
android:id="@+id/scriberip_instance"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:hint="@string/custom_scriberip"
|
||||
android:inputType="textUri"
|
||||
android:maxLines="1"
|
||||
android:textSize="@dimen/custom_instance_input_text_size" />
|
||||
|
||||
</com.google.android.material.textfield.TextInputLayout>
|
||||
|
||||
<ImageButton
|
||||
android:id="@+id/button_save_instance_scriberip"
|
||||
android:layout_width="30dp"
|
||||
android:layout_height="30dp"
|
||||
android:layout_margin="5dp"
|
||||
android:background="@null"
|
||||
android:contentDescription="@string/save"
|
||||
android:src="@drawable/ic_save"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toTopOf="@id/barrier_scriberip" />
|
||||
|
||||
<androidx.constraintlayout.widget.Group
|
||||
android:id="@+id/group_current_scriberip"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
app:constraint_referenced_ids="label_instance_scriberip,current_instance_scriberip,button_expand_instance_scriberip" />
|
||||
|
||||
<androidx.constraintlayout.widget.Group
|
||||
android:id="@+id/group_custom_scriberip"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:visibility="gone"
|
||||
app:constraint_referenced_ids="scriberip_instance_container,button_save_instance_scriberip" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
</androidx.cardview.widget.CardView>
|
||||
|
||||
<androidx.cardview.widget.CardView
|
||||
android:id="@+id/wikiless_container"
|
||||
style="@style/containerCard"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
app:layout_constraintBottom_toTopOf="@id/osm_container"
|
||||
app:layout_constraintTop_toBottomOf="@id/scriberip_container">
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:animateLayoutChanges="true">
|
||||
|
||||
<androidx.constraintlayout.widget.Guideline
|
||||
android:id="@+id/guide_wikiless"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal"
|
||||
app:layout_constraintGuide_begin="40dp" />
|
||||
|
||||
<View
|
||||
android:id="@+id/top_part_bg_wikiless"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="0dp"
|
||||
android:background="@color/topBar"
|
||||
app:layout_constraintBottom_toBottomOf="@id/guide_wikiless"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/wikiless_indications"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="10dp"
|
||||
android:layout_marginLeft="10dp"
|
||||
android:text="@string/redirect_wikipedia_to_wikiless"
|
||||
app:layout_constraintBottom_toBottomOf="@id/guide_wikiless"
|
||||
app:layout_constraintEnd_toStartOf="@id/enable_wikiless"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<androidx.appcompat.widget.SwitchCompat
|
||||
android:id="@+id/enable_wikiless"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
android:layout_marginEnd="10dp"
|
||||
android:layout_marginRight="10dp"
|
||||
app:layout_constraintBottom_toBottomOf="@id/guide_wikiless"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<ImageButton
|
||||
android:id="@+id/button_expand_instance_wikiless"
|
||||
android:layout_width="30dp"
|
||||
android:layout_height="30dp"
|
||||
android:background="@null"
|
||||
android:contentDescription="@string/expand_instance_details"
|
||||
android:scaleType="fitCenter"
|
||||
android:src="@drawable/ic_expand_more"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="@id/guide_wikiless" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/label_instance_wikiless"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="30dp"
|
||||
android:layout_marginStart="@dimen/label_instance_margin_start"
|
||||
android:layout_marginLeft="@dimen/label_instance_margin_start"
|
||||
android:gravity="center_vertical"
|
||||
android:text="@string/instance_label"
|
||||
app:layout_constraintStart_toEndOf="@id/button_expand_instance_wikiless"
|
||||
app:layout_constraintTop_toTopOf="@id/guide_wikiless" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/current_instance_wikiless"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="30dp"
|
||||
android:layout_marginStart="5dp"
|
||||
android:layout_marginLeft="5dp"
|
||||
android:gravity="center_vertical"
|
||||
android:textColor="#fff"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toEndOf="@id/label_instance_wikiless"
|
||||
app:layout_constraintTop_toTopOf="@id/guide_wikiless" />
|
||||
|
||||
<androidx.constraintlayout.widget.Barrier
|
||||
android:id="@+id/barrier_wikiless"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
app:barrierDirection="bottom"
|
||||
app:constraint_referenced_ids="label_instance_wikiless,current_instance_wikiless,button_expand_instance_wikiless" />
|
||||
|
||||
<com.google.android.material.textfield.TextInputLayout
|
||||
android:id="@+id/wikiless_instance_container"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_margin="5dp"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toStartOf="@id/button_save_instance_wikiless"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/barrier_wikiless">
|
||||
|
||||
<com.google.android.material.textfield.TextInputEditText
|
||||
android:id="@+id/wikiless_instance"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:hint="@string/custom_wikiless"
|
||||
android:inputType="textUri"
|
||||
android:maxLines="1"
|
||||
android:textSize="@dimen/custom_instance_input_text_size" />
|
||||
|
||||
</com.google.android.material.textfield.TextInputLayout>
|
||||
|
||||
<ImageButton
|
||||
android:id="@+id/button_save_instance_wikiless"
|
||||
android:layout_width="30dp"
|
||||
android:layout_height="30dp"
|
||||
android:layout_margin="5dp"
|
||||
android:background="@null"
|
||||
android:contentDescription="@string/save"
|
||||
android:src="@drawable/ic_save"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toTopOf="@id/barrier_wikiless" />
|
||||
|
||||
<androidx.constraintlayout.widget.Group
|
||||
android:id="@+id/group_current_wikiless"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
app:constraint_referenced_ids="label_instance_wikiless,current_instance_wikiless,button_expand_instance_wikiless" />
|
||||
|
||||
<androidx.constraintlayout.widget.Group
|
||||
android:id="@+id/group_custom_wikiless"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:visibility="gone"
|
||||
app:constraint_referenced_ids="wikiless_instance_container,button_save_instance_wikiless" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
</androidx.cardview.widget.CardView>
|
||||
|
||||
|
||||
<androidx.cardview.widget.CardView
|
||||
android:id="@+id/osm_container"
|
||||
style="@style/containerCard"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
app:layout_constraintBottom_toTopOf="@id/buttons_container"
|
||||
app:layout_constraintTop_toBottomOf="@id/bibliogram_container">
|
||||
app:layout_constraintBottom_toTopOf="@id/proxitok_container"
|
||||
app:layout_constraintTop_toBottomOf="@id/teddit_container">
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:layout_width="match_parent"
|
||||
|
@ -644,19 +1061,161 @@
|
|||
|
||||
</androidx.cardview.widget.CardView>
|
||||
|
||||
<androidx.cardview.widget.CardView
|
||||
android:id="@+id/proxitok_container"
|
||||
style="@style/containerCard"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
app:layout_constraintBottom_toTopOf="@id/buttons_container"
|
||||
app:layout_constraintTop_toBottomOf="@id/osm_container">
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:animateLayoutChanges="true">
|
||||
|
||||
<androidx.constraintlayout.widget.Guideline
|
||||
android:id="@+id/guide_proxitok"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal"
|
||||
app:layout_constraintGuide_begin="40dp" />
|
||||
|
||||
<View
|
||||
android:id="@+id/top_part_bg_proxitok"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="0dp"
|
||||
android:background="@color/topBar"
|
||||
app:layout_constraintBottom_toBottomOf="@id/guide_proxitok"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/proxitok_indications"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="10dp"
|
||||
android:layout_marginLeft="10dp"
|
||||
android:text="@string/redirect_tiktok_to_proxitok"
|
||||
app:layout_constraintBottom_toBottomOf="@id/guide_proxitok"
|
||||
app:layout_constraintEnd_toStartOf="@id/enable_proxitok"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<androidx.appcompat.widget.SwitchCompat
|
||||
android:id="@+id/enable_proxitok"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
android:layout_marginEnd="10dp"
|
||||
android:layout_marginRight="10dp"
|
||||
app:layout_constraintBottom_toBottomOf="@id/guide_proxitok"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<ImageButton
|
||||
android:id="@+id/button_expand_instance_proxitok"
|
||||
android:layout_width="30dp"
|
||||
android:layout_height="30dp"
|
||||
android:background="@null"
|
||||
android:contentDescription="@string/expand_instance_details"
|
||||
android:scaleType="fitCenter"
|
||||
android:src="@drawable/ic_expand_more"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="@id/guide_proxitok" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/label_instance_proxitok"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="30dp"
|
||||
android:layout_marginStart="@dimen/label_instance_margin_start"
|
||||
android:layout_marginLeft="@dimen/label_instance_margin_start"
|
||||
android:gravity="center_vertical"
|
||||
android:text="@string/instance_label"
|
||||
app:layout_constraintStart_toEndOf="@id/button_expand_instance_proxitok"
|
||||
app:layout_constraintTop_toTopOf="@id/guide_proxitok" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/current_instance_proxitok"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="30dp"
|
||||
android:layout_marginStart="5dp"
|
||||
android:layout_marginLeft="5dp"
|
||||
android:gravity="center_vertical"
|
||||
android:textColor="#fff"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toEndOf="@id/label_instance_proxitok"
|
||||
app:layout_constraintTop_toTopOf="@id/guide_proxitok" />
|
||||
|
||||
<androidx.constraintlayout.widget.Barrier
|
||||
android:id="@+id/barrier_proxitok"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
app:barrierDirection="bottom"
|
||||
app:constraint_referenced_ids="label_instance_proxitok,current_instance_proxitok,button_expand_instance_proxitok" />
|
||||
|
||||
<com.google.android.material.textfield.TextInputLayout
|
||||
android:id="@+id/proxitok_instance_container"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_margin="5dp"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toStartOf="@id/button_save_instance_proxitok"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/barrier_proxitok">
|
||||
|
||||
<com.google.android.material.textfield.TextInputEditText
|
||||
android:id="@+id/proxitok_instance"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:hint="@string/custom_proxitok"
|
||||
android:inputType="textUri"
|
||||
android:maxLines="1"
|
||||
android:textSize="@dimen/custom_instance_input_text_size" />
|
||||
|
||||
</com.google.android.material.textfield.TextInputLayout>
|
||||
|
||||
<ImageButton
|
||||
android:id="@+id/button_save_instance_proxitok"
|
||||
android:layout_width="30dp"
|
||||
android:layout_height="30dp"
|
||||
android:layout_margin="5dp"
|
||||
android:background="@null"
|
||||
android:contentDescription="@string/save"
|
||||
android:src="@drawable/ic_save"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toTopOf="@id/barrier_proxitok" />
|
||||
|
||||
<androidx.constraintlayout.widget.Group
|
||||
android:id="@+id/group_current_proxitok"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
app:constraint_referenced_ids="label_instance_proxitok,current_instance_proxitok,button_expand_instance_proxitok" />
|
||||
|
||||
<androidx.constraintlayout.widget.Group
|
||||
android:id="@+id/group_custom_proxitok"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:visibility="gone"
|
||||
app:constraint_referenced_ids="proxitok_instance_container,button_save_instance_proxitok" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
</androidx.cardview.widget.CardView>
|
||||
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:id="@+id/buttons_container"
|
||||
style="@style/containerCard"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
app:layout_constraintBottom_toTopOf="@+id/display_indications"
|
||||
app:layout_constraintTop_toBottomOf="@id/osm_container">
|
||||
app:layout_constraintTop_toBottomOf="@id/proxitok_container">
|
||||
|
||||
<Button
|
||||
android:id="@+id/configure"
|
||||
style="@style/Widget.AppCompat.Button.Colored"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="50dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_margin="5dp"
|
||||
android:drawableStart="@drawable/ic_settings"
|
||||
android:drawableLeft="@drawable/ic_settings"
|
||||
|
|
|
@ -44,8 +44,8 @@
|
|||
android:id="@+id/locale"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="0dp"
|
||||
android:layout_marginEnd="2dp"
|
||||
android:layout_marginRight="2dp"
|
||||
android:layout_marginEnd="5dp"
|
||||
android:layout_marginRight="5dp"
|
||||
android:gravity="center_vertical"
|
||||
android:textAllCaps="true"
|
||||
app:layout_constraintBottom_toTopOf="@id/barrier_latency_top"
|
||||
|
|
|
@ -1,17 +0,0 @@
|
|||
<menu xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
tools:context="app.fedilab.nitterizeme.activities.WebviewPlayerActivity">
|
||||
<item
|
||||
android:id="@+id/action_share"
|
||||
android:icon="@drawable/ic_share"
|
||||
android:orderInCategory="1"
|
||||
android:title="@string/share"
|
||||
app:showAsAction="ifRoom" />
|
||||
<item
|
||||
android:id="@+id/action_download"
|
||||
android:icon="@drawable/ic_download"
|
||||
android:orderInCategory="2"
|
||||
android:title="@string/download"
|
||||
app:showAsAction="ifRoom" />
|
||||
</menu>
|
|
@ -27,7 +27,13 @@
|
|||
<string name="redirect_youtube_to_invidious">يقوم بتحويل Youtube إلى Invidious</string>
|
||||
<string name="redirect_twitter_to_nitter">يقوم بتحويل تويتر إلى Nitter</string>
|
||||
<string name="redirect_instagram_to_bibliogram">يقوم بتحويل أنستغرام إلى Bibliogram</string>
|
||||
<string name="redirect_reddit_to_teddit">إعادة توجيه ريديت إلى Teddit</string>
|
||||
<string name="redirect_medium_to_scriberip">إعادة توجيه Medium إلى Scribe.rip</string>
|
||||
<string name="redirect_wikipedia_to_wikiless">إعادة توجيه ويكيبيديا إلى ويكيلس</string>
|
||||
<string name="custom_bibliogram">مثيل خادم Bibliogram مخصَّص</string>
|
||||
<string name="custom_scriberip">مثيل مخصص Scribe.rip</string>
|
||||
<string name="custom_wikiless">مثيل Wikiless مخصص</string>
|
||||
<string name="custom_teddit">مثيل Teddit مخصص</string>
|
||||
<string name="redirect_gm_to_geo_uri">إعادة توجيه خريطة غوغل إلى Geo URI</string>
|
||||
<string name="configure">ضبط</string>
|
||||
<string name="display_supported_links">اظهر الروابط المدعومة</string>
|
||||
|
@ -44,6 +50,9 @@
|
|||
<string name="invidious_instances">مثيلات خوادم Invidious</string>
|
||||
<string name="nitter_instances">مثيلات خوادم Nitter</string>
|
||||
<string name="bibliogram_instances">مثيلات خوادم Bibliogram</string>
|
||||
<string name="teddit_instances">مثيلات Teddit</string>
|
||||
<string name="scribe_instances">خلط المثيلات</string>
|
||||
<string name="wikiless_instances">مثيلات Wikiless</string>
|
||||
<string name="latency">وقت الإستجابة</string>
|
||||
<string name="error_message_internet">تحقق من اتصالك بالإنترنت</string>
|
||||
<string name="instance_label">مثيل الخادم:</string>
|
||||
|
@ -116,6 +125,7 @@
|
|||
<string name="invidious_help_remove"><b>حذف:</b> إلغاء تعقبني سوف يزيل المعلمة من الرابط، إذا كان موجودا</string>
|
||||
<string name="invidious_help_other">إذا قمت بتحديد قيم أخرى لمعلمة، سيتم إضافتها إلى عنوان URL. إذا كان المعامل موجود مسبقا، سيتم تغيير قيمته إلى اختيارك</string>
|
||||
<string name="invidious_help_explanations">[1] معلمة \'محلية\' تم تعيينها إلى \'صحيح\' افتراضيا للحصول على خصوصية أفضل</string>
|
||||
<string name="copy_url">نسخ عنوان URL إلى الحافظة</string>
|
||||
<string-array name="invidious_theme">
|
||||
<item>تجاهل</item>
|
||||
<item>إزالة</item>
|
||||
|
|
|
@ -27,7 +27,13 @@
|
|||
<string name="redirect_youtube_to_invidious">Redirect YouTube to Invidious</string>
|
||||
<string name="redirect_twitter_to_nitter">Redirect Twitter to Nitter</string>
|
||||
<string name="redirect_instagram_to_bibliogram">Redirect Instagram to Bibliogram</string>
|
||||
<string name="redirect_reddit_to_teddit">Redirect Reddit to Teddit</string>
|
||||
<string name="redirect_medium_to_scriberip">Redirect Medium to Scribe.rip</string>
|
||||
<string name="redirect_wikipedia_to_wikiless">Redirect Wikipedia to Wikiless</string>
|
||||
<string name="custom_bibliogram">Custom Bibliogram instance</string>
|
||||
<string name="custom_scriberip">Custom Scribe.rip instance</string>
|
||||
<string name="custom_wikiless">Custom Wikiless instance</string>
|
||||
<string name="custom_teddit">Custom Teddit instance</string>
|
||||
<string name="redirect_gm_to_geo_uri">Redirect Google Map to Geo URI</string>
|
||||
<string name="configure">মান নির্ধারণ করো</string>
|
||||
<string name="display_supported_links">Display supported links</string>
|
||||
|
@ -44,9 +50,12 @@
|
|||
<string name="invidious_instances">Invidious instances</string>
|
||||
<string name="nitter_instances">Nitter instances</string>
|
||||
<string name="bibliogram_instances">Bibliogram instances</string>
|
||||
<string name="teddit_instances">Teddit instances</string>
|
||||
<string name="scribe_instances">Scribe instances</string>
|
||||
<string name="wikiless_instances">Wikiless instances</string>
|
||||
<string name="latency">ল্যাটেন্সি</string>
|
||||
<string name="error_message_internet">Check your Internet connection</string>
|
||||
<string name="instance_label">Instance:</string>
|
||||
<string name="instance_label">সংগঠন:</string>
|
||||
<string name="expand_instance_details">Expand instance details</string>
|
||||
<string name="cloudflare">This instance uses Cloudflare</string>
|
||||
<string name="instance_info">Information about listed instances</string>
|
||||
|
@ -55,7 +64,7 @@
|
|||
<string name="use_built_in_player">Use the built-in player</string>
|
||||
<string name="share">শেয়ার</string>
|
||||
<string name="download">ডাউনলোড</string>
|
||||
<string name="share_with">Share with</string>
|
||||
<string name="share_with">শেয়ার করো</string>
|
||||
<string name="check_apps">Check apps</string>
|
||||
<string name="select_instances">Select instances</string>
|
||||
<string name="continue_with">Continue with…</string>
|
||||
|
@ -116,6 +125,7 @@
|
|||
<string name="invidious_help_remove"><b>Remove:</b> UntrackMe will remove the parameter from URL, if it exists</string>
|
||||
<string name="invidious_help_other">If you select other values for a parameter, they will be added to the URL. If the parameter already exists, its value will be changed to your choice</string>
|
||||
<string name="invidious_help_explanations">[1] \'local\' parameter is set to \'true\' by default for better privacy</string>
|
||||
<string name="copy_url">Copy URL To Clipboard</string>
|
||||
<string-array name="invidious_theme">
|
||||
<item>উপেক্ষা করো</item>
|
||||
<item>সরাও</item>
|
||||
|
|
|
@ -27,7 +27,9 @@
|
|||
<string name="redirect_youtube_to_invidious">Redirect YouTube to Invidious</string>
|
||||
<string name="redirect_twitter_to_nitter">Redirect Twitter to Nitter</string>
|
||||
<string name="redirect_instagram_to_bibliogram">Redirect Instagram to Bibliogram</string>
|
||||
<string name="redirect_reddit_to_teddit">Redirect Reddit to Teddit</string>
|
||||
<string name="custom_bibliogram">Custom Bibliogram instance</string>
|
||||
<string name="custom_teddit">Custom Teddit instance</string>
|
||||
<string name="redirect_gm_to_geo_uri">Redirect Google Map to Geo URI</string>
|
||||
<string name="configure">Configure</string>
|
||||
<string name="display_supported_links">Display supported links</string>
|
||||
|
@ -44,6 +46,7 @@
|
|||
<string name="invidious_instances">Invidious instances</string>
|
||||
<string name="nitter_instances">Nitter instances</string>
|
||||
<string name="bibliogram_instances">Bibliogram instances</string>
|
||||
<string name="teddit_instances">Teddit instances</string>
|
||||
<string name="latency">Latency</string>
|
||||
<string name="error_message_internet">Check your Internet connection</string>
|
||||
<string name="instance_label">Instance:</string>
|
||||
|
|
|
@ -27,7 +27,9 @@
|
|||
<string name="redirect_youtube_to_invidious">Redirecció de YouTube de Invidious</string>
|
||||
<string name="redirect_twitter_to_nitter">Redirect Twitter to Nitter</string>
|
||||
<string name="redirect_instagram_to_bibliogram">Redirecció Instagram per Bibliogram</string>
|
||||
<string name="redirect_reddit_to_teddit">Redirect Reddit to Teddit</string>
|
||||
<string name="custom_bibliogram">Costum Bibliogram exemple</string>
|
||||
<string name="custom_teddit">Custom Teddit instance</string>
|
||||
<string name="redirect_gm_to_geo_uri">Redirecció de mapes de Google per a Geo URI</string>
|
||||
<string name="configure">Configurar</string>
|
||||
<string name="display_supported_links">Mostrar suport enllaços</string>
|
||||
|
@ -44,9 +46,10 @@
|
|||
<string name="invidious_instances">Invidious instances</string>
|
||||
<string name="nitter_instances">Nitter instances</string>
|
||||
<string name="bibliogram_instances">Bibliogram instàncies</string>
|
||||
<string name="teddit_instances">Teddit instances</string>
|
||||
<string name="latency">Latència</string>
|
||||
<string name="error_message_internet">Comproveu la connexió a Internet</string>
|
||||
<string name="instance_label">Instance:</string>
|
||||
<string name="instance_label">Instància:</string>
|
||||
<string name="expand_instance_details">Ampliar exemple detalls</string>
|
||||
<string name="cloudflare">Aquest exemple utilitza Cloudflare</string>
|
||||
<string name="instance_info">Informació sobre el llistat de les instàncies</string>
|
||||
|
@ -60,7 +63,7 @@
|
|||
<string name="select_instances">Seleccioneu instàncies</string>
|
||||
<string name="continue_with">Continue with…</string>
|
||||
<string name="just_once">Just once</string>
|
||||
<string name="always">Always</string>
|
||||
<string name="always">Sempre</string>
|
||||
<string name="default_app_indication">%1$s has been set as a default app.\nYou can remove this behavior from the app settings.</string>
|
||||
<string name="indication_error_title">There is something wrong with the configuration of the app. Please, follow these indications to fix that issue.</string>
|
||||
<string name="open_configure">1 - Tap on the \"CONFIGURE\" button above.</string>
|
||||
|
@ -72,14 +75,14 @@
|
|||
<string name="display_indications_3_description">Screenshot showing app settings to define the behavior for opening URLs</string>
|
||||
<string name="default_apps">Default apps</string>
|
||||
<string name="remove_from_default_app">Remove from default apps</string>
|
||||
<string name="delete">Delete</string>
|
||||
<string name="cancel">Cancel</string>
|
||||
<string name="delete">Suprimeix</string>
|
||||
<string name="cancel">Cancel·la</string>
|
||||
<string name="delete_app_from_default">Delete %1$s from default apps?</string>
|
||||
<string name="copy_done">Copied</string>
|
||||
<string name="no_apps_set_as_default">No apps set as default!</string>
|
||||
<string name="custom_settings_for_invidious">Custom settings for Invidious</string>
|
||||
<string name="invidious_settings">Invidious settings</string>
|
||||
<string name="invidious_dark_mode_title">Theme</string>
|
||||
<string name="invidious_dark_mode_title">Tema</string>
|
||||
<string name="invidious_dark_mode_indication">Configure default theme without setting cookies</string>
|
||||
<string name="invidious_thin_mode_title">Thin mode</string>
|
||||
<string name="invidious_thin_mode_indication">Load HTML, CSS, JS and video elements (disables images)</string>
|
||||
|
@ -118,19 +121,19 @@
|
|||
<string name="invidious_help_explanations">[1] \'local\' parameter is set to \'true\' by default for better privacy</string>
|
||||
<string-array name="invidious_theme">
|
||||
<item>Ignore</item>
|
||||
<item>Remove</item>
|
||||
<item>Suprimeix</item>
|
||||
<item>Dark theme</item>
|
||||
<item>Light theme</item>
|
||||
</string-array>
|
||||
<string-array name="invidious_enable">
|
||||
<item>Ignore</item>
|
||||
<item>Remove</item>
|
||||
<item>Suprimeix</item>
|
||||
<item>Enabled</item>
|
||||
<item>Disabled</item>
|
||||
<item>Deshabilitat</item>
|
||||
</string-array>
|
||||
<string-array name="invidious_language">
|
||||
<item>Ignore</item>
|
||||
<item>Remove</item>
|
||||
<item>Suprimeix</item>
|
||||
<item>Arabic</item>
|
||||
<item>German</item>
|
||||
<item>Greek</item>
|
||||
|
@ -150,25 +153,25 @@
|
|||
</string-array>
|
||||
<string-array name="invidious_annotations">
|
||||
<item>Ignore</item>
|
||||
<item>Remove</item>
|
||||
<item>Suprimeix</item>
|
||||
<item>Show annotations</item>
|
||||
<item>Hide annotations</item>
|
||||
</string-array>
|
||||
<string-array name="invidious_quality">
|
||||
<item>Ignore</item>
|
||||
<item>Remove</item>
|
||||
<item>Suprimeix</item>
|
||||
<item>DASH</item>
|
||||
<item>720p</item>
|
||||
<item>480p</item>
|
||||
</string-array>
|
||||
<string-array name="invidious_volume">
|
||||
<item>Ignore</item>
|
||||
<item>Remove</item>
|
||||
<item>Suprimeix</item>
|
||||
<item>Custom</item>
|
||||
</string-array>
|
||||
<string-array name="invidious_player_style">
|
||||
<item>Ignore</item>
|
||||
<item>Remove</item>
|
||||
<item>Suprimeix</item>
|
||||
<item>Invidious</item>
|
||||
<item>Youtube</item>
|
||||
</string-array>
|
||||
|
|
|
@ -27,7 +27,9 @@
|
|||
<string name="redirect_youtube_to_invidious">Přesměrujte YouTube na Invidious</string>
|
||||
<string name="redirect_twitter_to_nitter">Přesměrovat Twitter na Nitter</string>
|
||||
<string name="redirect_instagram_to_bibliogram">Přesměrovat Instagram na Bibliogram</string>
|
||||
<string name="redirect_reddit_to_teddit">Redirect Reddit to Teddit</string>
|
||||
<string name="custom_bibliogram">Vlastní Bibliogram instance</string>
|
||||
<string name="custom_teddit">Custom Teddit instance</string>
|
||||
<string name="redirect_gm_to_geo_uri">Přesměrovat Google mapu na Geo URI</string>
|
||||
<string name="configure">Konfigurovat</string>
|
||||
<string name="display_supported_links">Zobrazit podporované odkazy</string>
|
||||
|
@ -44,6 +46,7 @@
|
|||
<string name="invidious_instances">Invidious instancí</string>
|
||||
<string name="nitter_instances">Instance Nitter</string>
|
||||
<string name="bibliogram_instances">Bibliogram instancí</string>
|
||||
<string name="teddit_instances">Teddit instances</string>
|
||||
<string name="latency">Latence</string>
|
||||
<string name="error_message_internet">Zkontrolujte připojení k Internetu</string>
|
||||
<string name="instance_label">Instance:</string>
|
||||
|
@ -60,7 +63,7 @@
|
|||
<string name="select_instances">Vybrat instance</string>
|
||||
<string name="continue_with">Continue with…</string>
|
||||
<string name="just_once">Just once</string>
|
||||
<string name="always">Always</string>
|
||||
<string name="always">Vždy</string>
|
||||
<string name="default_app_indication">%1$s has been set as a default app.\nYou can remove this behavior from the app settings.</string>
|
||||
<string name="indication_error_title">There is something wrong with the configuration of the app. Please, follow these indications to fix that issue.</string>
|
||||
<string name="open_configure">1 - Tap on the \"CONFIGURE\" button above.</string>
|
||||
|
@ -72,14 +75,14 @@
|
|||
<string name="display_indications_3_description">Screenshot showing app settings to define the behavior for opening URLs</string>
|
||||
<string name="default_apps">Default apps</string>
|
||||
<string name="remove_from_default_app">Remove from default apps</string>
|
||||
<string name="delete">Delete</string>
|
||||
<string name="cancel">Cancel</string>
|
||||
<string name="delete">Odstranit</string>
|
||||
<string name="cancel">Zrušit</string>
|
||||
<string name="delete_app_from_default">Delete %1$s from default apps?</string>
|
||||
<string name="copy_done">Copied</string>
|
||||
<string name="no_apps_set_as_default">No apps set as default!</string>
|
||||
<string name="custom_settings_for_invidious">Custom settings for Invidious</string>
|
||||
<string name="invidious_settings">Invidious settings</string>
|
||||
<string name="invidious_dark_mode_title">Theme</string>
|
||||
<string name="invidious_dark_mode_title">Motiv</string>
|
||||
<string name="invidious_dark_mode_indication">Configure default theme without setting cookies</string>
|
||||
<string name="invidious_thin_mode_title">Thin mode</string>
|
||||
<string name="invidious_thin_mode_indication">Load HTML, CSS, JS and video elements (disables images)</string>
|
||||
|
@ -95,7 +98,7 @@
|
|||
<string name="invidious_continue_mode_indication">When video is done, automatically go to the next related video (similar to YouTube’s Autoplay feature)</string>
|
||||
<string name="invidious_listen_mode_title">Listen</string>
|
||||
<string name="invidious_listen_mode_indication">Play only audio portion of video</string>
|
||||
<string name="invidious_local_mode_title">Local</string>
|
||||
<string name="invidious_local_mode_title">Místní</string>
|
||||
<string name="invidious_local_mode_indication">Proxy video streams</string>
|
||||
<string name="invidious_subtitles_mode_title">Subtitles</string>
|
||||
<string name="invidious_subtitles_mode_indication">List of ISO 639–1 language codes</string>
|
||||
|
@ -118,19 +121,19 @@
|
|||
<string name="invidious_help_explanations">[1] \'local\' parameter is set to \'true\' by default for better privacy</string>
|
||||
<string-array name="invidious_theme">
|
||||
<item>Ignore</item>
|
||||
<item>Remove</item>
|
||||
<item>Odstranit</item>
|
||||
<item>Dark theme</item>
|
||||
<item>Light theme</item>
|
||||
</string-array>
|
||||
<string-array name="invidious_enable">
|
||||
<item>Ignore</item>
|
||||
<item>Remove</item>
|
||||
<item>Odstranit</item>
|
||||
<item>Enabled</item>
|
||||
<item>Disabled</item>
|
||||
</string-array>
|
||||
<string-array name="invidious_language">
|
||||
<item>Ignore</item>
|
||||
<item>Remove</item>
|
||||
<item>Odstranit</item>
|
||||
<item>Arabic</item>
|
||||
<item>German</item>
|
||||
<item>Greek</item>
|
||||
|
@ -150,25 +153,25 @@
|
|||
</string-array>
|
||||
<string-array name="invidious_annotations">
|
||||
<item>Ignore</item>
|
||||
<item>Remove</item>
|
||||
<item>Odstranit</item>
|
||||
<item>Show annotations</item>
|
||||
<item>Hide annotations</item>
|
||||
</string-array>
|
||||
<string-array name="invidious_quality">
|
||||
<item>Ignore</item>
|
||||
<item>Remove</item>
|
||||
<item>Odstranit</item>
|
||||
<item>DASH</item>
|
||||
<item>720p</item>
|
||||
<item>480p</item>
|
||||
</string-array>
|
||||
<string-array name="invidious_volume">
|
||||
<item>Ignore</item>
|
||||
<item>Remove</item>
|
||||
<item>Odstranit</item>
|
||||
<item>Custom</item>
|
||||
</string-array>
|
||||
<string-array name="invidious_player_style">
|
||||
<item>Ignore</item>
|
||||
<item>Remove</item>
|
||||
<item>Odstranit</item>
|
||||
<item>Invidious</item>
|
||||
<item>Youtube</item>
|
||||
</string-array>
|
||||
|
|
|
@ -27,7 +27,9 @@
|
|||
<string name="redirect_youtube_to_invidious">Omdirigere YouTube til Uheldige,</string>
|
||||
<string name="redirect_twitter_to_nitter">Omdirigere Twitter-til Nitter</string>
|
||||
<string name="redirect_instagram_to_bibliogram">Omdirigere Instagram til at Bibliogram</string>
|
||||
<string name="redirect_reddit_to_teddit">Redirect Reddit to Teddit</string>
|
||||
<string name="custom_bibliogram">Brugerdefineret Bibliogram eksempel</string>
|
||||
<string name="custom_teddit">Custom Teddit instance</string>
|
||||
<string name="redirect_gm_to_geo_uri">Google Redirect Kort at Geo-URI</string>
|
||||
<string name="configure">Konfigurer</string>
|
||||
<string name="display_supported_links">Visning understøttes links</string>
|
||||
|
@ -44,6 +46,7 @@
|
|||
<string name="invidious_instances">Uheldige tilfælde</string>
|
||||
<string name="nitter_instances">Nitter instances</string>
|
||||
<string name="bibliogram_instances">Bibliogram tilfælde</string>
|
||||
<string name="teddit_instances">Teddit instances</string>
|
||||
<string name="latency">Ventetid</string>
|
||||
<string name="error_message_internet">Tjek din Internetforbindelse</string>
|
||||
<string name="instance_label">Instans:</string>
|
||||
|
@ -60,7 +63,7 @@
|
|||
<string name="select_instances">Vælg tilfælde</string>
|
||||
<string name="continue_with">Continue with…</string>
|
||||
<string name="just_once">Just once</string>
|
||||
<string name="always">Always</string>
|
||||
<string name="always">Altid</string>
|
||||
<string name="default_app_indication">%1$s has been set as a default app.\nYou can remove this behavior from the app settings.</string>
|
||||
<string name="indication_error_title">There is something wrong with the configuration of the app. Please, follow these indications to fix that issue.</string>
|
||||
<string name="open_configure">1 - Tap on the \"CONFIGURE\" button above.</string>
|
||||
|
@ -72,14 +75,14 @@
|
|||
<string name="display_indications_3_description">Screenshot showing app settings to define the behavior for opening URLs</string>
|
||||
<string name="default_apps">Default apps</string>
|
||||
<string name="remove_from_default_app">Remove from default apps</string>
|
||||
<string name="delete">Delete</string>
|
||||
<string name="cancel">Cancel</string>
|
||||
<string name="delete">Slet</string>
|
||||
<string name="cancel">Annullér</string>
|
||||
<string name="delete_app_from_default">Delete %1$s from default apps?</string>
|
||||
<string name="copy_done">Copied</string>
|
||||
<string name="no_apps_set_as_default">No apps set as default!</string>
|
||||
<string name="custom_settings_for_invidious">Custom settings for Invidious</string>
|
||||
<string name="invidious_settings">Invidious settings</string>
|
||||
<string name="invidious_dark_mode_title">Theme</string>
|
||||
<string name="invidious_dark_mode_title">Tema</string>
|
||||
<string name="invidious_dark_mode_indication">Configure default theme without setting cookies</string>
|
||||
<string name="invidious_thin_mode_title">Thin mode</string>
|
||||
<string name="invidious_thin_mode_indication">Load HTML, CSS, JS and video elements (disables images)</string>
|
||||
|
@ -95,7 +98,7 @@
|
|||
<string name="invidious_continue_mode_indication">When video is done, automatically go to the next related video (similar to YouTube’s Autoplay feature)</string>
|
||||
<string name="invidious_listen_mode_title">Listen</string>
|
||||
<string name="invidious_listen_mode_indication">Play only audio portion of video</string>
|
||||
<string name="invidious_local_mode_title">Local</string>
|
||||
<string name="invidious_local_mode_title">Lokalt</string>
|
||||
<string name="invidious_local_mode_indication">Proxy video streams</string>
|
||||
<string name="invidious_subtitles_mode_title">Subtitles</string>
|
||||
<string name="invidious_subtitles_mode_indication">List of ISO 639–1 language codes</string>
|
||||
|
@ -118,19 +121,19 @@
|
|||
<string name="invidious_help_explanations">[1] \'local\' parameter is set to \'true\' by default for better privacy</string>
|
||||
<string-array name="invidious_theme">
|
||||
<item>Ignore</item>
|
||||
<item>Remove</item>
|
||||
<item>Fjern</item>
|
||||
<item>Dark theme</item>
|
||||
<item>Light theme</item>
|
||||
</string-array>
|
||||
<string-array name="invidious_enable">
|
||||
<item>Ignore</item>
|
||||
<item>Remove</item>
|
||||
<item>Fjern</item>
|
||||
<item>Enabled</item>
|
||||
<item>Disabled</item>
|
||||
<item>Deaktiveret</item>
|
||||
</string-array>
|
||||
<string-array name="invidious_language">
|
||||
<item>Ignore</item>
|
||||
<item>Remove</item>
|
||||
<item>Fjern</item>
|
||||
<item>Arabic</item>
|
||||
<item>German</item>
|
||||
<item>Greek</item>
|
||||
|
@ -150,25 +153,25 @@
|
|||
</string-array>
|
||||
<string-array name="invidious_annotations">
|
||||
<item>Ignore</item>
|
||||
<item>Remove</item>
|
||||
<item>Fjern</item>
|
||||
<item>Show annotations</item>
|
||||
<item>Hide annotations</item>
|
||||
</string-array>
|
||||
<string-array name="invidious_quality">
|
||||
<item>Ignore</item>
|
||||
<item>Remove</item>
|
||||
<item>Fjern</item>
|
||||
<item>DASH</item>
|
||||
<item>720p</item>
|
||||
<item>480p</item>
|
||||
</string-array>
|
||||
<string-array name="invidious_volume">
|
||||
<item>Ignore</item>
|
||||
<item>Remove</item>
|
||||
<item>Fjern</item>
|
||||
<item>Custom</item>
|
||||
</string-array>
|
||||
<string-array name="invidious_player_style">
|
||||
<item>Ignore</item>
|
||||
<item>Remove</item>
|
||||
<item>Fjern</item>
|
||||
<item>Invidious</item>
|
||||
<item>Youtube</item>
|
||||
</string-array>
|
||||
|
|
|
@ -27,7 +27,13 @@
|
|||
<string name="redirect_youtube_to_invidious">YouTube zu Invidious umleiten</string>
|
||||
<string name="redirect_twitter_to_nitter">Twitter zu Nitter umleiten</string>
|
||||
<string name="redirect_instagram_to_bibliogram">Instagram zu Bibliogram umleiten</string>
|
||||
<string name="redirect_reddit_to_teddit">Reddit an Teddit weiterleiten</string>
|
||||
<string name="redirect_medium_to_scriberip">Medium zu Scribe.rip weiterleiten</string>
|
||||
<string name="redirect_wikipedia_to_wikiless">Wikipedia zu Wikiless weiterleiten</string>
|
||||
<string name="custom_bibliogram">Benutzerdefinierte Bibliogram Instanz</string>
|
||||
<string name="custom_scriberip">Benutzerdefinierte Scribe.rip Instanz</string>
|
||||
<string name="custom_wikiless">Benutzerdefinierte Wikiless Instanz</string>
|
||||
<string name="custom_teddit">Benutzerdefinierte Teddit Instanz</string>
|
||||
<string name="redirect_gm_to_geo_uri">Google Maps zu Geo URI umleiten</string>
|
||||
<string name="configure">Konfigurieren</string>
|
||||
<string name="display_supported_links">Unterstützte Links anzeigen</string>
|
||||
|
@ -44,6 +50,9 @@
|
|||
<string name="invidious_instances">Invidious-Instanzen</string>
|
||||
<string name="nitter_instances">Nitter-Instanzen</string>
|
||||
<string name="bibliogram_instances">Bibliogram-Instanzen</string>
|
||||
<string name="teddit_instances">Teddit-Instanzen</string>
|
||||
<string name="scribe_instances">Scribe instances</string>
|
||||
<string name="wikiless_instances">Wikiless instances</string>
|
||||
<string name="latency">Latenz</string>
|
||||
<string name="error_message_internet">Überprüfe deine Internetverbindung</string>
|
||||
<string name="instance_label">Instanz:</string>
|
||||
|
@ -116,6 +125,7 @@
|
|||
<string name="invidious_help_remove"><b>Entfernen:</b> UntrackMe wird den Parameter von der URL entfernen, falls er existiert</string>
|
||||
<string name="invidious_help_other">Wenn Sie andere Werte für einen Parameter auswählen, werden diese zur URL hinzugefügt. Wenn der Parameter bereits vorhanden ist, wird der Wert auf Ihre Wahl geändert</string>
|
||||
<string name="invidious_help_explanations">[1] \'\"local\' Sprachparameter ist standardmäßig auf \'wahr\' gesetzt, um die Privatsphäre zu verbessern</string>
|
||||
<string name="copy_url">Copy URL To Clipboard</string>
|
||||
<string-array name="invidious_theme">
|
||||
<item>Ignorieren</item>
|
||||
<item>Entfernen</item>
|
||||
|
|
|
@ -27,7 +27,13 @@
|
|||
<string name="redirect_youtube_to_invidious">Ανακατεύθυνση Youtube σε Invidious</string>
|
||||
<string name="redirect_twitter_to_nitter">Ανακατεύθυνση Twitter σε Nitter</string>
|
||||
<string name="redirect_instagram_to_bibliogram">Ανακατεύθυνση Instagram σε Bibliogram</string>
|
||||
<string name="redirect_reddit_to_teddit">Ανακατεύθυνση Reddit σε Teddit</string>
|
||||
<string name="redirect_medium_to_scriberip">Ανακατεύθυνση Medium σε Scribe.rip</string>
|
||||
<string name="redirect_wikipedia_to_wikiless">Redirect Wikipedia to Wikiless</string>
|
||||
<string name="custom_bibliogram">Προσαρμοσμένος κόμβος Bibliogram</string>
|
||||
<string name="custom_scriberip">Προσαρμοσμένος κόμβος Scribe.rip</string>
|
||||
<string name="custom_wikiless">Custom Wikiless instance</string>
|
||||
<string name="custom_teddit">Προσαρμοσμένος κόμβος Teddit</string>
|
||||
<string name="redirect_gm_to_geo_uri">Ανακατεύθυνση Google Map σε Geo URI</string>
|
||||
<string name="configure">Ρύθμιση</string>
|
||||
<string name="display_supported_links">Εμφάνιση υποστηριζόμενων συνδέσμων</string>
|
||||
|
@ -44,6 +50,9 @@
|
|||
<string name="invidious_instances">Κόμβοι Invidious</string>
|
||||
<string name="nitter_instances">Κόμβοι Nitter</string>
|
||||
<string name="bibliogram_instances">Κόμβοι Bibliogram</string>
|
||||
<string name="teddit_instances">Κόμβοι Teddit</string>
|
||||
<string name="scribe_instances">Scribe instances</string>
|
||||
<string name="wikiless_instances">Wikiless instances</string>
|
||||
<string name="latency">Καθυστέρηση</string>
|
||||
<string name="error_message_internet">Ελέγξτε τη σύνδεσή σας στο Internet</string>
|
||||
<string name="instance_label">Κόμβος:</string>
|
||||
|
@ -85,8 +94,8 @@
|
|||
<string name="invidious_thin_mode_indication">Φόρτωση στοιχείων HTML, CSS, JS και video (απενεργοποιεί τις εικόνες)</string>
|
||||
<string name="invidious_language_mode_indication">Διαθέσιμες γλώσσες</string>
|
||||
<string name="invidious_language_mode_title">Γλώσσα Διεπαφής</string>
|
||||
<string name="pref_invidious_head1">Site-wide parameters</string>
|
||||
<string name="pref_invidious_head2">Player parameters</string>
|
||||
<string name="pref_invidious_head1">Παράμετροι ιστότοπου</string>
|
||||
<string name="pref_invidious_head2">Παράμετροι αναπαραγωγέα</string>
|
||||
<string name="invidious_annotations_mode_title">Σχολιασμοί</string>
|
||||
<string name="invidious_annotations_mode_indication">Show legacy annotations, provided by the Internet Archive</string>
|
||||
<string name="invidious_autoplay_mode_indication">Automatically play video on load</string>
|
||||
|
@ -94,9 +103,9 @@
|
|||
<string name="invidious_continue_mode_title">Συνέχεια</string>
|
||||
<string name="invidious_continue_mode_indication">When video is done, automatically go to the next related video (similar to YouTube’s Autoplay feature)</string>
|
||||
<string name="invidious_listen_mode_title">Ακρόαση</string>
|
||||
<string name="invidious_listen_mode_indication">Play only audio portion of video</string>
|
||||
<string name="invidious_listen_mode_indication">Αναπαραγωγή μόνο ήχου από το βίντεο</string>
|
||||
<string name="invidious_local_mode_title">Τοπικά</string>
|
||||
<string name="invidious_local_mode_indication">Proxy video streams</string>
|
||||
<string name="invidious_local_mode_indication">Ενεργοποίηση μεσολάβησης ροών βίντεο</string>
|
||||
<string name="invidious_subtitles_mode_title">Υπότιτλοι</string>
|
||||
<string name="invidious_subtitles_mode_indication">Λίστα ISO 639-1 κωδικών γλώσσας</string>
|
||||
<string name="invidious_quality_mode_title">Ποιότητα</string>
|
||||
|
@ -104,9 +113,9 @@
|
|||
<string name="invidious_loop_mode_title">Επανάληψη</string>
|
||||
<string name="invidious_volume_mode_title">Ένταση ήχου</string>
|
||||
<string name="invidious_volume_mode_indication">Default player volume, can be any whole number between 0 and 100</string>
|
||||
<string name="invidious_loop_mode_indication">Loop player by default</string>
|
||||
<string name="invidious_loop_mode_indication">Ενεργοποίηση επανάληψης από προεπιλογή</string>
|
||||
<string name="invidious_volume_mode_value">Τιμή έντασης ήχου</string>
|
||||
<string name="invidious_volume_mode_value_indication">Override the volume with this value</string>
|
||||
<string name="invidious_volume_mode_value_indication">Αντικατάσταση έντασης με αυτήν την τιμή</string>
|
||||
<string name="pref_invidious_head3">Τύπος Αναπαραγωγέα</string>
|
||||
<string name="invidious_player_style_mode_title">Εμφάνιση</string>
|
||||
<string name="invidious_player_style_mode_indication">Invidious, the default one. YouTube, using a centered play button and always visible video control bar</string>
|
||||
|
@ -116,6 +125,7 @@
|
|||
<string name="invidious_help_remove"><b>Remove:</b> UntrackMe will remove the parameter from URL, if it exists</string>
|
||||
<string name="invidious_help_other">If you select other values for a parameter, they will be added to the URL. If the parameter already exists, its value will be changed to your choice</string>
|
||||
<string name="invidious_help_explanations">[1] \'local\' parameter is set to \'true\' by default for better privacy</string>
|
||||
<string name="copy_url">Copy URL To Clipboard</string>
|
||||
<string-array name="invidious_theme">
|
||||
<item>Παράβλεψη</item>
|
||||
<item>Αφαίρεση</item>
|
||||
|
|
|
@ -27,7 +27,13 @@
|
|||
<string name="redirect_youtube_to_invidious">Redirigir YouTube a Invidious</string>
|
||||
<string name="redirect_twitter_to_nitter">Redirigir Twitter a Nitter</string>
|
||||
<string name="redirect_instagram_to_bibliogram">Redirigir Instagram a Bibliogram</string>
|
||||
<string name="redirect_reddit_to_teddit">Redirigir Reddit a Teddit</string>
|
||||
<string name="redirect_medium_to_scriberip">Redirect Medium to Scribe.rip</string>
|
||||
<string name="redirect_wikipedia_to_wikiless">Redirect Wikipedia to Wikiless</string>
|
||||
<string name="custom_bibliogram">Nodo personalizado de Bibliogram</string>
|
||||
<string name="custom_scriberip">Custom Scribe.rip instance</string>
|
||||
<string name="custom_wikiless">Custom Wikiless instance</string>
|
||||
<string name="custom_teddit">Servidor personalizado de Teddit</string>
|
||||
<string name="redirect_gm_to_geo_uri">Redirigir Google Map a Geo URI</string>
|
||||
<string name="configure">Configurar</string>
|
||||
<string name="display_supported_links">Mostrar enlaces compatibles</string>
|
||||
|
@ -44,6 +50,9 @@
|
|||
<string name="invidious_instances">Nodos de Invidious</string>
|
||||
<string name="nitter_instances">Nodos de Nitter</string>
|
||||
<string name="bibliogram_instances">Nodos de Bibliogram</string>
|
||||
<string name="teddit_instances">Instancias de Teddit</string>
|
||||
<string name="scribe_instances">Instancias Scribe</string>
|
||||
<string name="wikiless_instances">Instancias Wikiless</string>
|
||||
<string name="latency">Latencia</string>
|
||||
<string name="error_message_internet">Comprueba tu conexión a Internet</string>
|
||||
<string name="instance_label">Nodo:</string>
|
||||
|
@ -116,6 +125,7 @@
|
|||
<string name="invidious_help_remove"><b>Eliminar:</b> UntrackMe eliminará el parámetro de la URL, si existe</string>
|
||||
<string name="invidious_help_other">Si seleccionas otros valores para un parámetro, se añadirán a la URL. Si el parámetro ya existe, su valor será cambiado al que hayas elegido</string>
|
||||
<string name="invidious_help_explanations">El parámetro \'local\' [1] está establecido como \'true\' por defecto para una mejor privacidad</string>
|
||||
<string name="copy_url">Copiar URL al portapapeles</string>
|
||||
<string-array name="invidious_theme">
|
||||
<item>Ignorar</item>
|
||||
<item>Eliminar</item>
|
||||
|
|
|
@ -27,7 +27,13 @@
|
|||
<string name="redirect_youtube_to_invidious">Birbideratu YouTube Invidious-era</string>
|
||||
<string name="redirect_twitter_to_nitter">Birbideratu Twitter Nitter-era</string>
|
||||
<string name="redirect_instagram_to_bibliogram">Birbideratu Instagram Bibliogram-era</string>
|
||||
<string name="redirect_reddit_to_teddit">Redirect Reddit to Teddit</string>
|
||||
<string name="redirect_medium_to_scriberip">Redirect Medium to Scribe.rip</string>
|
||||
<string name="redirect_wikipedia_to_wikiless">Redirect Wikipedia to Wikiless</string>
|
||||
<string name="custom_bibliogram">Hautatu Bibliogram instatzia</string>
|
||||
<string name="custom_scriberip">Custom Scribe.rip instance</string>
|
||||
<string name="custom_wikiless">Custom Wikiless instance</string>
|
||||
<string name="custom_teddit">Custom Teddit instance</string>
|
||||
<string name="redirect_gm_to_geo_uri">Berbideratu Google Map Geo URI-ra</string>
|
||||
<string name="configure">Konfiguratu</string>
|
||||
<string name="display_supported_links">Erakutsi onartutako estekak</string>
|
||||
|
@ -44,6 +50,9 @@
|
|||
<string name="invidious_instances">Invidious instantziak</string>
|
||||
<string name="nitter_instances">Nitter instantziak</string>
|
||||
<string name="bibliogram_instances">Bibliogram instantziak</string>
|
||||
<string name="teddit_instances">Teddit instances</string>
|
||||
<string name="scribe_instances">Scribe instances</string>
|
||||
<string name="wikiless_instances">Wikiless instances</string>
|
||||
<string name="latency">Latentzia</string>
|
||||
<string name="error_message_internet">Egiaztatu zure internet konexioa</string>
|
||||
<string name="instance_label">Instantzia:</string>
|
||||
|
@ -116,6 +125,7 @@
|
|||
<string name="invidious_help_remove"><b>Kendu:</b> UntrackMe aplikazioak parametroa kenduko du URLtik, aurkituz gero</string>
|
||||
<string name="invidious_help_other">Parametroarentzat beste balio batzuk hautatzen badituzu, URLra gehituko dira. Parametroa aurretik badago, balioa aldatuko zaio zure aukera jartzeko</string>
|
||||
<string name="invidious_help_explanations">[1] Parametro \'lokala\' egiazkora jartzen da pribatutasun hobe baterako</string>
|
||||
<string name="copy_url">Copy URL To Clipboard</string>
|
||||
<string-array name="invidious_theme">
|
||||
<item>Ezikusi</item>
|
||||
<item>Kendu</item>
|
||||
|
|
|
@ -1,175 +1,185 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<!-- Some local values -->
|
||||
<string name="action_settings">Settings</string>
|
||||
<string name="action_about">About</string>
|
||||
<string name="developer">Developer</string>
|
||||
<string name="donations">Donations</string>
|
||||
<string name="about_the_app">About the app</string>
|
||||
<string name="source_code">Source code</string>
|
||||
<string name="issue_tracker">Issue tracker</string>
|
||||
<string name="license">License</string>
|
||||
<string name="about_vesrion">Release %1$s</string>
|
||||
<string name="custom_nitter">Custom Nitter instance</string>
|
||||
<string name="save">Save</string>
|
||||
<string name="close">Close</string>
|
||||
<string name="instances_saved">Custom instances have been saved!</string>
|
||||
<string name="custom_invidious">Custom Invidious instance</string>
|
||||
<string name="no_apps">No applications by default</string>
|
||||
<string name="Donate">Donate</string>
|
||||
<string name="warning">Warning</string>
|
||||
<string name="error">Error</string>
|
||||
<string name="valid">Valid</string>
|
||||
<string name="icon_of_the_app">Icon of the app</string>
|
||||
<string name="open_with">Open with</string>
|
||||
<string name="redirect_gm_to_osm">Redirect Google Map to OpenStreetMap</string>
|
||||
<string name="custom_osm">Custom OSM hostname</string>
|
||||
<string name="redirect_youtube_to_invidious">Redirect YouTube to Invidious</string>
|
||||
<string name="redirect_twitter_to_nitter">Redirect Twitter to Nitter</string>
|
||||
<string name="redirect_instagram_to_bibliogram">Redirect Instagram to Bibliogram</string>
|
||||
<string name="custom_bibliogram">Custom Bibliogram instance</string>
|
||||
<string name="redirect_gm_to_geo_uri">Redirect Google Map to Geo URI</string>
|
||||
<string name="configure">Configure</string>
|
||||
<string name="display_supported_links">Display supported links</string>
|
||||
<string name="use_geo_uri">Use geo URI</string>
|
||||
<string name="how_to">How-to</string>
|
||||
<string name="shortened_detected">Shortened URL</string>
|
||||
<string name="shortener_services">Shortener services</string>
|
||||
<string name="open">Open</string>
|
||||
<string name="dismiss">Dismiss</string>
|
||||
<string name="resolving_shortened">Resolving shortened URL, please wait…</string>
|
||||
<string name="try_to_redirect">%1$s \n\nwill redirect you to\n\n<b>%2$s</b></string>
|
||||
<string name="try_to_redirect_again">Then it will redirect you to\n\n<b>%1$s</b></string>
|
||||
<string name="the_app_failed_shortened">The app didn\'t manage to retrieve the full URL</string>
|
||||
<string name="invidious_instances">Invidious instances</string>
|
||||
<string name="nitter_instances">Nitter instances</string>
|
||||
<string name="bibliogram_instances">Bibliogram instances</string>
|
||||
<string name="latency">Latency</string>
|
||||
<string name="error_message_internet">Check your Internet connection</string>
|
||||
<string name="instance_label">Instance:</string>
|
||||
<string name="expand_instance_details">Expand instance details</string>
|
||||
<string name="cloudflare">This instance uses Cloudflare</string>
|
||||
<string name="instance_info">Information about listed instances</string>
|
||||
<string name="about_instances">The list of instances comes from\n\n <a href="%1$s">%2$s</a>\n\nYou can contribute to this list by adding or removing instances.</string>
|
||||
<string name="about_instances_title">About instances</string>
|
||||
<string name="use_built_in_player">Use the built-in player</string>
|
||||
<string name="share">Share</string>
|
||||
<string name="download">Download</string>
|
||||
<string name="share_with">Share with</string>
|
||||
<string name="check_apps">Check apps</string>
|
||||
<string name="select_instances">Select instances</string>
|
||||
<string name="continue_with">Continue with…</string>
|
||||
<string name="just_once">Just once</string>
|
||||
<string name="always">Always</string>
|
||||
<string name="default_app_indication">%1$s has been set as a default app.\nYou can remove this behavior from the app settings.</string>
|
||||
<string name="indication_error_title">There is something wrong with the configuration of the app. Please, follow these indications to fix that issue.</string>
|
||||
<string name="open_configure">1 - Tap on the \"CONFIGURE\" button above.</string>
|
||||
<string name="supported_url_indication_1">2 - You are now in app settings from your device. Tap on \"Set as default\".</string>
|
||||
<string name="display_indications_1_description">Screenshot showing app settings for the app. You have to Tap on \"Set as default\"</string>
|
||||
<string name="supported_url_indication_2">2 - Then tap on \"Go to supported URLs\".</string>
|
||||
<string name="display_indications_2_description">Screenshot showing app settings for the app. You have to Tap on \"Go to supported URLs\"</string>
|
||||
<string name="supported_url_indication_3">3 - In suggestions make sure to pickup \"Always ask\"</string>
|
||||
<string name="display_indications_3_description">Screenshot showing app settings to define the behavior for opening URLs</string>
|
||||
<string name="default_apps">Default apps</string>
|
||||
<string name="remove_from_default_app">Remove from default apps</string>
|
||||
<string name="delete">Delete</string>
|
||||
<string name="cancel">Cancel</string>
|
||||
<string name="delete_app_from_default">Delete %1$s from default apps?</string>
|
||||
<string name="copy_done">Copied</string>
|
||||
<string name="no_apps_set_as_default">No apps set as default!</string>
|
||||
<string name="custom_settings_for_invidious">Custom settings for Invidious</string>
|
||||
<string name="invidious_settings">Invidious settings</string>
|
||||
<string name="invidious_dark_mode_title">Theme</string>
|
||||
<string name="invidious_dark_mode_indication">Configure default theme without setting cookies</string>
|
||||
<string name="invidious_thin_mode_title">Thin mode</string>
|
||||
<string name="invidious_thin_mode_indication">Load HTML, CSS, JS and video elements (disables images)</string>
|
||||
<string name="invidious_language_mode_indication">Available locales</string>
|
||||
<string name="invidious_language_mode_title">UI Language</string>
|
||||
<string name="pref_invidious_head1">Site-wide parameters</string>
|
||||
<string name="pref_invidious_head2">Player parameters</string>
|
||||
<string name="invidious_annotations_mode_title">Annotations</string>
|
||||
<string name="invidious_annotations_mode_indication">Show legacy annotations, provided by the Internet Archive</string>
|
||||
<string name="invidious_autoplay_mode_indication">Automatically play video on load</string>
|
||||
<string name="invidious_autoplay_mode_title">Autoplay</string>
|
||||
<string name="invidious_continue_mode_title">Continue</string>
|
||||
<string name="invidious_continue_mode_indication">When video is done, automatically go to the next related video (similar to YouTube’s Autoplay feature)</string>
|
||||
<string name="invidious_listen_mode_title">Listen</string>
|
||||
<string name="invidious_listen_mode_indication">Play only audio portion of video</string>
|
||||
<string name="invidious_local_mode_title">Local</string>
|
||||
<string name="invidious_local_mode_indication">Proxy video streams</string>
|
||||
<string name="invidious_subtitles_mode_title">Subtitles</string>
|
||||
<string name="invidious_subtitles_mode_indication">List of ISO 639–1 language codes</string>
|
||||
<string name="invidious_quality_mode_title">Quality</string>
|
||||
<string name="invidious_quality_mode_indication">Default player quality</string>
|
||||
<string name="invidious_loop_mode_title">Loop</string>
|
||||
<string name="invidious_volume_mode_title">Volume</string>
|
||||
<string name="invidious_volume_mode_indication">Default player volume, can be any whole number between 0 and 100</string>
|
||||
<string name="invidious_loop_mode_indication">Loop player by default</string>
|
||||
<string name="invidious_volume_mode_value">Volume value</string>
|
||||
<string name="invidious_volume_mode_value_indication">Override the volume with this value</string>
|
||||
<string name="pref_invidious_head3">Player Style</string>
|
||||
<string name="invidious_player_style_mode_title">Appearance</string>
|
||||
<string name="invidious_player_style_mode_indication">Invidious, the default one. YouTube, using a centered play button and always visible video control bar</string>
|
||||
<string name="help">Help</string>
|
||||
<string name="invidious_help_title">Setting options</string>
|
||||
<string name="invidious_help_ignore"><b>Ignore:</b> This is the default action for all¹ parameters. This means UntrackMe will not do anything about the parameter</string>
|
||||
<string name="invidious_help_remove"><b>Remove:</b> UntrackMe will remove the parameter from URL, if it exists</string>
|
||||
<string name="invidious_help_other">If you select other values for a parameter, they will be added to the URL. If the parameter already exists, its value will be changed to your choice</string>
|
||||
<string name="invidious_help_explanations">[1] \'local\' parameter is set to \'true\' by default for better privacy</string>
|
||||
<string name="action_settings">تنظیمات</string>
|
||||
<string name="action_about">درباره</string>
|
||||
<string name="developer">توسعهدهنده</string>
|
||||
<string name="donations">اعانه</string>
|
||||
<string name="about_the_app">دربارهٔ کاره</string>
|
||||
<string name="source_code">کد مبدأ</string>
|
||||
<string name="issue_tracker">ردیاب مشکل</string>
|
||||
<string name="license">پروانه</string>
|
||||
<string name="about_vesrion">ارائه %1$s</string>
|
||||
<string name="custom_nitter">نمونهٔ سفارشی نیتر</string>
|
||||
<string name="save">ذخیره</string>
|
||||
<string name="close">بستن</string>
|
||||
<string name="instances_saved">نمونههای سفارشی ذخیره شدند!</string>
|
||||
<string name="custom_invidious">نمونهٔ سفارشی اینویدیوس</string>
|
||||
<string name="no_apps">بدون برنامهٔ پیشگزیده</string>
|
||||
<string name="Donate">اعانه</string>
|
||||
<string name="warning">هشدار</string>
|
||||
<string name="error">خطا</string>
|
||||
<string name="valid">معتبر</string>
|
||||
<string name="icon_of_the_app">نقشک کاره</string>
|
||||
<string name="open_with">گشودن با</string>
|
||||
<string name="redirect_gm_to_osm">هدایت نقشهٔ گوگل به اوپناستریتمپ</string>
|
||||
<string name="custom_osm">نام میزبان سفارشی اوپناستریتمپ</string>
|
||||
<string name="redirect_youtube_to_invidious">هدایت یوتوب به اینویدیوس</string>
|
||||
<string name="redirect_twitter_to_nitter">هدایت توییتر به نیتر</string>
|
||||
<string name="redirect_instagram_to_bibliogram">هدایت اینستاگرم به بیبلیوگرم</string>
|
||||
<string name="redirect_reddit_to_teddit">هدایت ردیت به تدیت</string>
|
||||
<string name="redirect_medium_to_scriberip">Redirect Medium to Scribe.rip</string>
|
||||
<string name="redirect_wikipedia_to_wikiless">Redirect Wikipedia to Wikiless</string>
|
||||
<string name="custom_bibliogram">نمونهٔ سفارشی بیبلیوگرم</string>
|
||||
<string name="custom_scriberip">Custom Scribe.rip instance</string>
|
||||
<string name="custom_wikiless">Custom Wikiless instance</string>
|
||||
<string name="custom_teddit">نمونهٔ سفارشی تدیت</string>
|
||||
<string name="redirect_gm_to_geo_uri">هدایت نقشهٔ گوگل به نشانی جغرافیایی</string>
|
||||
<string name="configure">پیکربندی</string>
|
||||
<string name="display_supported_links">نمایش پیوندهای پشتیبانیشده</string>
|
||||
<string name="use_geo_uri">استفاده از نشانی جغرافیایی</string>
|
||||
<string name="how_to">راهنما</string>
|
||||
<string name="shortened_detected">نشانی کوتاه</string>
|
||||
<string name="shortener_services">خدمات کوتاهکننده</string>
|
||||
<string name="open">گشودن</string>
|
||||
<string name="dismiss">رد کردن</string>
|
||||
<string name="resolving_shortened">باز کردن نشانی کوتاه، لطفاً شکیبایی کنید…</string>
|
||||
<string name="try_to_redirect">%1$s \n\n به \n\n<b>%2$s</b> هدایتتان میکند</string>
|
||||
<string name="try_to_redirect_again">سپس به \n\n<b>%1$s</b> هدایتتان خواهد کرد</string>
|
||||
<string name="the_app_failed_shortened">کاره نتوانست نشانی کامل را به دست آورد</string>
|
||||
<string name="invidious_instances">نمونههای اینویدیوس</string>
|
||||
<string name="nitter_instances">نمونههای نیتر</string>
|
||||
<string name="bibliogram_instances">نمونههای بیبلیوگرم</string>
|
||||
<string name="teddit_instances">نمونههای تدیت</string>
|
||||
<string name="scribe_instances">Scribe instances</string>
|
||||
<string name="wikiless_instances">Wikiless instances</string>
|
||||
<string name="latency">تأخیر</string>
|
||||
<string name="error_message_internet">اتصال اینترنتیتان را بررسی کنید</string>
|
||||
<string name="instance_label">نمونه:</string>
|
||||
<string name="expand_instance_details">گسترش جزییات نمونه</string>
|
||||
<string name="cloudflare">این نمونه از کلودفلر استفاده میکند</string>
|
||||
<string name="instance_info">اطلاعات نمونههای فهرستشده</string>
|
||||
<string name="about_instances">فهرست نمونهها از \n\n <a href="%1$s">%2$s</a>\n\n میآید. میتوانید با افزودن یا برداشتن نمونهها در آن مشارکت کنید.</string>
|
||||
<string name="about_instances_title">دربارهٔ نمونهها</string>
|
||||
<string name="use_built_in_player">استفاده از پخشکنندهٔ داخلی</string>
|
||||
<string name="share">همرسانی</string>
|
||||
<string name="download">بارگیری</string>
|
||||
<string name="share_with">همرسانی با</string>
|
||||
<string name="check_apps">بررسی کارهها</string>
|
||||
<string name="select_instances">گزینش نمونهها</string>
|
||||
<string name="continue_with">ادامه دادن با…</string>
|
||||
<string name="just_once">همین یک بار</string>
|
||||
<string name="always">همیشه</string>
|
||||
<string name="default_app_indication">%1$s به عنوان برنامهٔ پیشفرض انتخاب شده. \n شما میتوانید از قسمت تنظیمات برنامه آن را تغییر بدهید.</string>
|
||||
<string name="indication_error_title">مشکلی در پیکربندی برنامه وجود دارد. برای درست کردنش لطفاً این سرنخها را دنبال کنید.</string>
|
||||
<string name="open_configure">دکمهٔ «پیکربندی» را در قسمت بالا بزنید.</string>
|
||||
<string name="supported_url_indication_1">اکنون در قسمت تنظیمات دستگاهتان هستید. روی «تنظیم به عنوان پیشفرض» بزنید.</string>
|
||||
<string name="display_indications_1_description">این اسکرینشات بخش تنظیمات برنامهها را نشان میدهد. باید روی «تنظیم به عنوان پیشفرض» بزنید</string>
|
||||
<string name="supported_url_indication_2">سپس روی «برو به نشانیهای پشتیبانیشده» بزنید.</string>
|
||||
<string name="display_indications_2_description">این اسکرینشات بخش تنظیمات برنامهها را نشان میدهد. باید روی «برو به نشانیهای پشتیبانیشده» بزنید</string>
|
||||
<string name="supported_url_indication_3">در بخش پیشنهادها، حواستان باشد که گزینهٔ «همیشه بپرس» را انتخاب کنید</string>
|
||||
<string name="display_indications_3_description">این اسکرینشات تنظیمات مربوط به نحوهٔ باز کردن نشانیها را در برنامه نشان میدهد</string>
|
||||
<string name="default_apps">برنامههای پیشفرض</string>
|
||||
<string name="remove_from_default_app">از برنامههای پیشفرض حذف کن</string>
|
||||
<string name="delete">پاک کردن</string>
|
||||
<string name="cancel">لغو کردن</string>
|
||||
<string name="delete_app_from_default">%1$s از برنامههای پیشفرض حذف شود؟</string>
|
||||
<string name="copy_done">کپی شد</string>
|
||||
<string name="no_apps_set_as_default">هیچ برنامهای به عنوان پیشفرض انتخاب نشده!</string>
|
||||
<string name="custom_settings_for_invidious">تنظیمات سفارشی برای اینویدیوس</string>
|
||||
<string name="invidious_settings">تنظیمات اینویدیوس</string>
|
||||
<string name="invidious_dark_mode_title">تِم</string>
|
||||
<string name="invidious_dark_mode_indication">پیکربندی تم پیشفرض بدون تنظیم کوکیها</string>
|
||||
<string name="invidious_thin_mode_title">حالت Thin</string>
|
||||
<string name="invidious_thin_mode_indication">عناصر HTML، CSS، JS و ویدئو را بار کن (تصاویر را غیرفعال میکند)</string>
|
||||
<string name="invidious_language_mode_indication">زبانهای موجود</string>
|
||||
<string name="invidious_language_mode_title">زبان رابط کاربری</string>
|
||||
<string name="pref_invidious_head1">پارامترهای حاکم بر سرتاسر سایت</string>
|
||||
<string name="pref_invidious_head2">پارامترهای پخشکننده</string>
|
||||
<string name="invidious_annotations_mode_title">حاشیهها</string>
|
||||
<string name="invidious_annotations_mode_indication">نشان دادن حاشیههای قدیمی، که Internet Archive فراهم کرده</string>
|
||||
<string name="invidious_autoplay_mode_indication">ویدئو را پس از بار شدن به صورت خودکار پخش کن</string>
|
||||
<string name="invidious_autoplay_mode_title">پخش خودکار</string>
|
||||
<string name="invidious_continue_mode_title">ادامه دادن</string>
|
||||
<string name="invidious_continue_mode_indication">وقتی که پخش این ویدئو تمام شد، به صورت خودکار سراغ ویدئوی مرتبط بعدی برو (مشابه ویژگی پخش خودکار یوتیوب)</string>
|
||||
<string name="invidious_listen_mode_title">شنیدن</string>
|
||||
<string name="invidious_listen_mode_indication">تنها بخش صوتی ویدئو را پخش کن</string>
|
||||
<string name="invidious_local_mode_title">محلی</string>
|
||||
<string name="invidious_local_mode_indication">ویدئو استریمها را از پروکسی رد کن</string>
|
||||
<string name="invidious_subtitles_mode_title">زیرنویسها</string>
|
||||
<string name="invidious_subtitles_mode_indication">فهرست کدهای زبانی ISO 639–1</string>
|
||||
<string name="invidious_quality_mode_title">کيفيت</string>
|
||||
<string name="invidious_quality_mode_indication">کیفیت پیشفرض پخشکننده</string>
|
||||
<string name="invidious_loop_mode_title">تکرار</string>
|
||||
<string name="invidious_volume_mode_title">ولوم</string>
|
||||
<string name="invidious_volume_mode_indication">ولوم پیشفرض پخشکننده، هر عدد صحیحی بین ۰ تا ۱۰۰ میتواند باشد</string>
|
||||
<string name="invidious_loop_mode_indication">تکرار پخشکننده به صورت پیشفرض</string>
|
||||
<string name="invidious_volume_mode_value">مقدار ولوم</string>
|
||||
<string name="invidious_volume_mode_value_indication">ولوم را با این مقدار جایگزین کن</string>
|
||||
<string name="pref_invidious_head3">مدل پخشکننده</string>
|
||||
<string name="invidious_player_style_mode_title">ظاهر</string>
|
||||
<string name="invidious_player_style_mode_indication">اینویدیوس مدل پیشفرض است. مدل یوتیوب یک دکمهٔ پخش در مرکز و یک نوار کنترل دارد که همیشه مرئی است</string>
|
||||
<string name="help">راهنما</string>
|
||||
<string name="invidious_help_title">گزینههای تنظیمات</string>
|
||||
<string name="invidious_help_ignore"><b>نادیده گرفتن:</b> این عمل پیشفرض برای همهٔ (۱) پارامترها است. یعنی آنترکمی در مورد آن پارامتر کاری نمیکند</string>
|
||||
<string name="invidious_help_remove"><b>حذف:</b> آنترکمی آن پارامتر را، اگر وجود داشته باشد، از نشانی حذف میکند</string>
|
||||
<string name="invidious_help_other">اگر شما مقداری برای یک پارامتر تعیین کنید، آن پارامتر به نشانی افزوده میشود. اگر آن پارامتر از قبل وجود داشته باشد، مقدارش به آنچه شما انتخاب کردهاید، تغییر میکند</string>
|
||||
<string name="invidious_help_explanations">[1] پارامتر «محلی» برای حفظ بهتر حریم خصوصی به صورت پیشفرض روی «صحیح» تنظیم شده است</string>
|
||||
<string name="copy_url">Copy URL To Clipboard</string>
|
||||
<string-array name="invidious_theme">
|
||||
<item>Ignore</item>
|
||||
<item>Remove</item>
|
||||
<item>Dark theme</item>
|
||||
<item>Light theme</item>
|
||||
<item>نادیده بگیر</item>
|
||||
<item>حذف کن</item>
|
||||
<item>تم تاریک</item>
|
||||
<item>تم روشن</item>
|
||||
</string-array>
|
||||
<string-array name="invidious_enable">
|
||||
<item>Ignore</item>
|
||||
<item>Remove</item>
|
||||
<item>Enabled</item>
|
||||
<item>Disabled</item>
|
||||
<item>نادیده بگیر</item>
|
||||
<item>حذف کن</item>
|
||||
<item>فعال</item>
|
||||
<item>غیر فعال</item>
|
||||
</string-array>
|
||||
<string-array name="invidious_language">
|
||||
<item>Ignore</item>
|
||||
<item>Remove</item>
|
||||
<item>Arabic</item>
|
||||
<item>German</item>
|
||||
<item>Greek</item>
|
||||
<item>English</item>
|
||||
<item>Esperanto</item>
|
||||
<item>Spanish</item>
|
||||
<item>Basque</item>
|
||||
<item>French</item>
|
||||
<item>Icelandic</item>
|
||||
<item>Italian</item>
|
||||
<item>Norwegian Bokmål</item>
|
||||
<item>Dutch</item>
|
||||
<item>Polish</item>
|
||||
<item>Russian</item>
|
||||
<item>Ukrainian</item>
|
||||
<item>Chinese</item>
|
||||
<item>نادیده بگیر</item>
|
||||
<item>حذف کن</item>
|
||||
<item>عربی</item>
|
||||
<item>آلمانی</item>
|
||||
<item>یونانی</item>
|
||||
<item>انگلیسی</item>
|
||||
<item>اسپرانتو</item>
|
||||
<item>اسپانیایی</item>
|
||||
<item>باسکی</item>
|
||||
<item>فرانسوی</item>
|
||||
<item>ایسلندی</item>
|
||||
<item>ایتالیایی</item>
|
||||
<item>نروژی بوکمل</item>
|
||||
<item>هلندی</item>
|
||||
<item>لهستانی</item>
|
||||
<item>روسی</item>
|
||||
<item>اوکراینی</item>
|
||||
<item>چینی</item>
|
||||
</string-array>
|
||||
<string-array name="invidious_annotations">
|
||||
<item>Ignore</item>
|
||||
<item>Remove</item>
|
||||
<item>Show annotations</item>
|
||||
<item>Hide annotations</item>
|
||||
<item>نادیده گرفتن</item>
|
||||
<item>حذف کردن</item>
|
||||
<item>حاشیهها را نشان بده</item>
|
||||
<item>حاشیهها را پنهان کن</item>
|
||||
</string-array>
|
||||
<string-array name="invidious_quality">
|
||||
<item>Ignore</item>
|
||||
<item>Remove</item>
|
||||
<item>نادیده بگیر</item>
|
||||
<item>حذف کن</item>
|
||||
<item>DASH</item>
|
||||
<item>720p</item>
|
||||
<item>480p</item>
|
||||
<item>۷۲۰پ</item>
|
||||
<item>۴۸۰پ</item>
|
||||
</string-array>
|
||||
<string-array name="invidious_volume">
|
||||
<item>Ignore</item>
|
||||
<item>Remove</item>
|
||||
<item>Custom</item>
|
||||
<item>نادیده بگیر</item>
|
||||
<item>حذف کن</item>
|
||||
<item>سفارشی</item>
|
||||
</string-array>
|
||||
<string-array name="invidious_player_style">
|
||||
<item>Ignore</item>
|
||||
<item>Remove</item>
|
||||
<item>Invidious</item>
|
||||
<item>Youtube</item>
|
||||
<item>نادیده بگیر</item>
|
||||
<item>حذف کن</item>
|
||||
<item>اینویدیوس</item>
|
||||
<item>یوتیوب</item>
|
||||
</string-array>
|
||||
</resources>
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
<string name="Donate">Lahjoita</string>
|
||||
<string name="warning">Varoitus</string>
|
||||
<string name="error">Virhe</string>
|
||||
<string name="valid">Valid</string>
|
||||
<string name="valid">Kelvollinen</string>
|
||||
<string name="icon_of_the_app">Sovelluksen kuvake</string>
|
||||
<string name="open_with">Open with</string>
|
||||
<string name="redirect_gm_to_osm">Uudelleenohjaa Google Maps OpenStreetMapiin</string>
|
||||
|
@ -27,7 +27,13 @@
|
|||
<string name="redirect_youtube_to_invidious">Uudelleenohjaa YouTube Invidiousiin</string>
|
||||
<string name="redirect_twitter_to_nitter">Uudelleenohjaa Twitter Nitteriin</string>
|
||||
<string name="redirect_instagram_to_bibliogram">Uudelleenohjaa Instagram Bibliogrammiin</string>
|
||||
<string name="redirect_reddit_to_teddit">Uudelleenohjaa Reddit Tedditiin</string>
|
||||
<string name="redirect_medium_to_scriberip">Redirect Medium to Scribe.rip</string>
|
||||
<string name="redirect_wikipedia_to_wikiless">Redirect Wikipedia to Wikiless</string>
|
||||
<string name="custom_bibliogram">Mukautettu Bibliogram instanssi</string>
|
||||
<string name="custom_scriberip">Custom Scribe.rip instance</string>
|
||||
<string name="custom_wikiless">Custom Wikiless instance</string>
|
||||
<string name="custom_teddit">Mukautettu Teddit instanssi</string>
|
||||
<string name="redirect_gm_to_geo_uri">Uudelleenohjaa Google Maps Geo URI:ihin</string>
|
||||
<string name="configure">Konfiguroi</string>
|
||||
<string name="display_supported_links">Näytä tuetut linkit</string>
|
||||
|
@ -39,18 +45,21 @@
|
|||
<string name="dismiss">Hylkää</string>
|
||||
<string name="resolving_shortened">Selvitetään lyhennettyä URL-osoitetta, ole hyvä ja odota…</string>
|
||||
<string name="try_to_redirect">%1$s \n\nuudelleenohjaa sinut kohteeseen:\n\n<b>%2$s</b></string>
|
||||
<string name="try_to_redirect_again">Then it will redirect you to\n\n<b>%1$s</b></string>
|
||||
<string name="try_to_redirect_again">Sitten se ohjaa sinut kohteeseen:\n\n<b>%1$s</b></string>
|
||||
<string name="the_app_failed_shortened">Sovellus ei onnistunut hakemaan koko URL-osoitetta</string>
|
||||
<string name="invidious_instances">Invidious instanssit</string>
|
||||
<string name="nitter_instances">Nitter instanssit</string>
|
||||
<string name="bibliogram_instances">Bibliogram instanssit</string>
|
||||
<string name="teddit_instances">Teddit instanssit</string>
|
||||
<string name="scribe_instances">Scribe instances</string>
|
||||
<string name="wikiless_instances">Wikiless instances</string>
|
||||
<string name="latency">Latenssi</string>
|
||||
<string name="error_message_internet">Tarkista internetyhteytesi</string>
|
||||
<string name="instance_label">Instanssi:</string>
|
||||
<string name="expand_instance_details">Laajenna instanssin tiedot</string>
|
||||
<string name="cloudflare">Tämä instanssi käyttää Cloudflarea</string>
|
||||
<string name="instance_info">Information about listed instances</string>
|
||||
<string name="about_instances">The list of instances comes from\n\n <a href="%1$s">%2$s</a>\n\nYou can contribute to this list by adding or removing instances.</string>
|
||||
<string name="instance_info">Tietoa luetteloiduista instansseista</string>
|
||||
<string name="about_instances">Luettelo instansseista tulee\n\n <a href="%1$s">%2$s</a>\n\nVoit osallistua tähän luetteloon lisäämällä tai poistamalla instansseja.</string>
|
||||
<string name="about_instances_title">Tietoja instansseista</string>
|
||||
<string name="use_built_in_player">Käytä sisäänrakennettua toistinta</string>
|
||||
<string name="share">Jaa</string>
|
||||
|
@ -61,61 +70,62 @@
|
|||
<string name="continue_with">Jatka sovelluksella…</string>
|
||||
<string name="just_once">Vain kerran</string>
|
||||
<string name="always">Aina</string>
|
||||
<string name="default_app_indication">%1$s has been set as a default app.\nYou can remove this behavior from the app settings.</string>
|
||||
<string name="indication_error_title">There is something wrong with the configuration of the app. Please, follow these indications to fix that issue.</string>
|
||||
<string name="open_configure">1 - Tap on the \"CONFIGURE\" button above.</string>
|
||||
<string name="supported_url_indication_1">2 - You are now in app settings from your device. Tap on \"Set as default\".</string>
|
||||
<string name="display_indications_1_description">Screenshot showing app settings for the app. You have to Tap on \"Set as default\"</string>
|
||||
<string name="supported_url_indication_2">2 - Then tap on \"Go to supported URLs\".</string>
|
||||
<string name="display_indications_2_description">Screenshot showing app settings for the app. You have to Tap on \"Go to supported URLs\"</string>
|
||||
<string name="supported_url_indication_3">3 - In suggestions make sure to pickup \"Always ask\"</string>
|
||||
<string name="display_indications_3_description">Screenshot showing app settings to define the behavior for opening URLs</string>
|
||||
<string name="default_app_indication">%1$s on asetettu oletussovellukseksi.\nVoit poistaa tämän toiminnon sovelluksen asetuksista.</string>
|
||||
<string name="indication_error_title">Sovelluksen konfiguraatiossa on jotain vikaa. Ole hyvä ja seuraa näitä ohjeita korjataksesi ongelman.</string>
|
||||
<string name="open_configure">1 - Napauta yllä olevaa \"KONFIGUROI\"-painiketta.</string>
|
||||
<string name="supported_url_indication_1">2 - Olet nyt laitteesi sovellusasetuksissa. Napauta \"Avaa oletuksena\".</string>
|
||||
<string name="display_indications_1_description">Kuvakaappaus, joka näyttää sovelluksen asetukset. Sinun täytyy napauttaa \"Avaa oletuksena\"</string>
|
||||
<string name="supported_url_indication_2">2 - Napauta sitten \"Avaa tuetut linkit\".</string>
|
||||
<string name="display_indications_2_description">Kuvakaappaus, joka näyttää sovelluksen asetukset. Sinun täytyy napauttaa \"Avaa tuetut linkit\"</string>
|
||||
<string name="supported_url_indication_3">3 - Varmista ehdotuksista, että valitset \"Kysy aina\"</string>
|
||||
<string name="display_indications_3_description">Kuvakaappaus, joka näyttää sovelluksen asetukset määrittääksesi käyttäytymisen URL-osoitteiden avaamiseksi</string>
|
||||
<string name="default_apps">Oletussovellukset</string>
|
||||
<string name="remove_from_default_app">Remove from default apps</string>
|
||||
<string name="remove_from_default_app">Poista oletussovelluksista</string>
|
||||
<string name="delete">Poista</string>
|
||||
<string name="cancel">Peruuta</string>
|
||||
<string name="delete_app_from_default">Delete %1$s from default apps?</string>
|
||||
<string name="delete_app_from_default">Poista %1$s oletussovelluksista?</string>
|
||||
<string name="copy_done">Kopioitu</string>
|
||||
<string name="no_apps_set_as_default">No apps set as default!</string>
|
||||
<string name="custom_settings_for_invidious">Custom settings for Invidious</string>
|
||||
<string name="no_apps_set_as_default">Sovelluksia ei ole asetettu oletuksiksi!</string>
|
||||
<string name="custom_settings_for_invidious">Mukautetut asetukset Invidious:ille</string>
|
||||
<string name="invidious_settings">Invidioussin asetukset</string>
|
||||
<string name="invidious_dark_mode_title">Teema</string>
|
||||
<string name="invidious_dark_mode_indication">Määritä oletusteema asettamatta evästeitä</string>
|
||||
<string name="invidious_thin_mode_title">Thin mode</string>
|
||||
<string name="invidious_thin_mode_indication">Load HTML, CSS, JS and video elements (disables images)</string>
|
||||
<string name="invidious_thin_mode_title">Ohut tila</string>
|
||||
<string name="invidious_thin_mode_indication">Lataa HTML-, CSS-, JS- ja videoelementit (poistaa kuvat käytöstä)</string>
|
||||
<string name="invidious_language_mode_indication">Käytettävissä olevat kielet</string>
|
||||
<string name="invidious_language_mode_title">Ulkoasun kieli</string>
|
||||
<string name="pref_invidious_head1">Sivuston laajuiset parametrit</string>
|
||||
<string name="pref_invidious_head2">Toistimen parametrit</string>
|
||||
<string name="invidious_annotations_mode_title">Annotations</string>
|
||||
<string name="invidious_annotations_mode_indication">Show legacy annotations, provided by the Internet Archive</string>
|
||||
<string name="invidious_autoplay_mode_indication">Automatically play video on load</string>
|
||||
<string name="invidious_autoplay_mode_title">Autoplay</string>
|
||||
<string name="invidious_annotations_mode_title">Huomautukset</string>
|
||||
<string name="invidious_annotations_mode_indication">Näytä vanhat huomautukset, jotka on toimitettu Internet Archivesta</string>
|
||||
<string name="invidious_autoplay_mode_indication">Toista video automaattisesti ladattaessa</string>
|
||||
<string name="invidious_autoplay_mode_title">Automaattinen toisto</string>
|
||||
<string name="invidious_continue_mode_title">Jatka</string>
|
||||
<string name="invidious_continue_mode_indication">When video is done, automatically go to the next related video (similar to YouTube’s Autoplay feature)</string>
|
||||
<string name="invidious_listen_mode_title">Listen</string>
|
||||
<string name="invidious_listen_mode_indication">Play only audio portion of video</string>
|
||||
<string name="invidious_continue_mode_indication">Kun video on valmis, siirry automaattisesti seuraavaan aiheeseen liittyvään videoon (samanlainen kuin YouTuben Automaattinen toisto ominaisuus)</string>
|
||||
<string name="invidious_listen_mode_title">Kuuntele</string>
|
||||
<string name="invidious_listen_mode_indication">Toista vain ääni videosta</string>
|
||||
<string name="invidious_local_mode_title">Local</string>
|
||||
<string name="invidious_local_mode_indication">Proxy video streams</string>
|
||||
<string name="invidious_subtitles_mode_title">Subtitles</string>
|
||||
<string name="invidious_subtitles_mode_indication">List of ISO 639–1 language codes</string>
|
||||
<string name="invidious_quality_mode_title">Quality</string>
|
||||
<string name="invidious_subtitles_mode_title">Tekstitys</string>
|
||||
<string name="invidious_subtitles_mode_indication">Luettelo ISO 639–1 -standardin kielikoodeista</string>
|
||||
<string name="invidious_quality_mode_title">Laatu</string>
|
||||
<string name="invidious_quality_mode_indication">Toistimen oletuslaatu</string>
|
||||
<string name="invidious_loop_mode_title">Loop</string>
|
||||
<string name="invidious_volume_mode_title">Volume</string>
|
||||
<string name="invidious_volume_mode_indication">Default player volume, can be any whole number between 0 and 100</string>
|
||||
<string name="invidious_loop_mode_indication">Loop player by default</string>
|
||||
<string name="invidious_volume_mode_value">Volume value</string>
|
||||
<string name="invidious_volume_mode_value_indication">Override the volume with this value</string>
|
||||
<string name="invidious_loop_mode_title">Jatkuva toisto</string>
|
||||
<string name="invidious_volume_mode_title">Äänenvoimakkuus</string>
|
||||
<string name="invidious_volume_mode_indication">Toistimen oletusäänenvoimakkuus voi olla mikä tahansa kokonaisluku 0 ja 100 väliltä</string>
|
||||
<string name="invidious_loop_mode_indication">Toista video jatkuvasti uudelleen</string>
|
||||
<string name="invidious_volume_mode_value">Äänenvoimakkuuden arvo</string>
|
||||
<string name="invidious_volume_mode_value_indication">Ohita äänenvoimakkuus tällä arvolla</string>
|
||||
<string name="pref_invidious_head3">Toistimen tyyli</string>
|
||||
<string name="invidious_player_style_mode_title">Appearance</string>
|
||||
<string name="invidious_player_style_mode_indication">Invidious, the default one. YouTube, using a centered play button and always visible video control bar</string>
|
||||
<string name="help">Help</string>
|
||||
<string name="invidious_help_title">Setting options</string>
|
||||
<string name="invidious_help_ignore"><b>Ignore:</b> This is the default action for all¹ parameters. This means UntrackMe will not do anything about the parameter</string>
|
||||
<string name="invidious_help_remove"><b>Remove:</b> UntrackMe will remove the parameter from URL, if it exists</string>
|
||||
<string name="invidious_help_other">If you select other values for a parameter, they will be added to the URL. If the parameter already exists, its value will be changed to your choice</string>
|
||||
<string name="invidious_player_style_mode_title">Ulkoasu</string>
|
||||
<string name="invidious_player_style_mode_indication">Invidious on oletus. YouTuben tyyli käyttää keskitettyä toistopainiketta ja aina näkyvissä olevaa videon ohjauspalkkia</string>
|
||||
<string name="help">Ohje</string>
|
||||
<string name="invidious_help_title">Asetukset</string>
|
||||
<string name="invidious_help_ignore"><b>Ohita:</b> Tämä on oletus toiminto kaikille¹ parametreille. Tämä tarkoittaa, että UntrackMe ei tee mitään parametrille</string>
|
||||
<string name="invidious_help_remove"><b>Poista:</b> UntrackMe poistaa parametrin URL-osoitteesta, jos se on olemassa</string>
|
||||
<string name="invidious_help_other">Jos valitset parametrille muita arvoja, ne lisätään URL-osoitteeseen. Jos parametri on jo olemassa, sen arvo muutetaan valintasi mukaan</string>
|
||||
<string name="invidious_help_explanations">[1] \'local\' parameter is set to \'true\' by default for better privacy</string>
|
||||
<string name="copy_url">Copy URL To Clipboard</string>
|
||||
<string-array name="invidious_theme">
|
||||
<item>Ohita</item>
|
||||
<item>Poista</item>
|
||||
|
@ -125,50 +135,50 @@
|
|||
<string-array name="invidious_enable">
|
||||
<item>Ohita</item>
|
||||
<item>Poista</item>
|
||||
<item>Enabled</item>
|
||||
<item>Disabled</item>
|
||||
<item>Käytössä</item>
|
||||
<item>Ei käytössä</item>
|
||||
</string-array>
|
||||
<string-array name="invidious_language">
|
||||
<item>Ohita</item>
|
||||
<item>Remove</item>
|
||||
<item>Arabic</item>
|
||||
<item>German</item>
|
||||
<item>Greek</item>
|
||||
<item>English</item>
|
||||
<item>Esperanto</item>
|
||||
<item>Spanish</item>
|
||||
<item>Basque</item>
|
||||
<item>French</item>
|
||||
<item>Icelandic</item>
|
||||
<item>Italian</item>
|
||||
<item>Norwegian Bokmål</item>
|
||||
<item>Dutch</item>
|
||||
<item>Polish</item>
|
||||
<item>Russian</item>
|
||||
<item>Ukrainian</item>
|
||||
<item>Chinese</item>
|
||||
<item>Poista</item>
|
||||
<item>arabia</item>
|
||||
<item>saksa</item>
|
||||
<item>kreikka</item>
|
||||
<item>englanti</item>
|
||||
<item>esperanto</item>
|
||||
<item>espanja</item>
|
||||
<item>baski</item>
|
||||
<item>ranska</item>
|
||||
<item>islanti</item>
|
||||
<item>italia</item>
|
||||
<item>kirjanorja</item>
|
||||
<item>hollanti</item>
|
||||
<item>puola</item>
|
||||
<item>venäjä</item>
|
||||
<item>ukraina</item>
|
||||
<item>kiina</item>
|
||||
</string-array>
|
||||
<string-array name="invidious_annotations">
|
||||
<item>Ohita</item>
|
||||
<item>Remove</item>
|
||||
<item>Show annotations</item>
|
||||
<item>Hide annotations</item>
|
||||
<item>Poista</item>
|
||||
<item>Näytä huomautukset</item>
|
||||
<item>Piilota huomautukset</item>
|
||||
</string-array>
|
||||
<string-array name="invidious_quality">
|
||||
<item>Ohita</item>
|
||||
<item>Remove</item>
|
||||
<item>Poista</item>
|
||||
<item>DASH</item>
|
||||
<item>720p</item>
|
||||
<item>480p</item>
|
||||
</string-array>
|
||||
<string-array name="invidious_volume">
|
||||
<item>Ohita</item>
|
||||
<item>Remove</item>
|
||||
<item>Custom</item>
|
||||
<item>Poista</item>
|
||||
<item>Mukautettu</item>
|
||||
</string-array>
|
||||
<string-array name="invidious_player_style">
|
||||
<item>Ohita</item>
|
||||
<item>Remove</item>
|
||||
<item>Poista</item>
|
||||
<item>Invidious</item>
|
||||
<item>Youtube</item>
|
||||
</string-array>
|
||||
|
|
|
@ -27,7 +27,13 @@
|
|||
<string name="redirect_youtube_to_invidious">Rediriger YouTube vers Invidious</string>
|
||||
<string name="redirect_twitter_to_nitter">Rediriger Twitter vers Nitter</string>
|
||||
<string name="redirect_instagram_to_bibliogram">Rediriger Instagram vers Bibliogram</string>
|
||||
<string name="redirect_reddit_to_teddit">Rediriger Reddit vers Teddit</string>
|
||||
<string name="redirect_medium_to_scriberip">Rediriger Medium vers Scribe.rip</string>
|
||||
<string name="redirect_wikipedia_to_wikiless">Rediriger Wikipedia vers Wikiless</string>
|
||||
<string name="custom_bibliogram">Instance Bibliogram personnalisée</string>
|
||||
<string name="custom_scriberip">Instance Scribe.rip personnalisée</string>
|
||||
<string name="custom_wikiless">Instance Wikiless personnalisée</string>
|
||||
<string name="custom_teddit">Instance Teddit personnalisée</string>
|
||||
<string name="redirect_gm_to_geo_uri">Rediriger Google Map vers Geo URI</string>
|
||||
<string name="configure">Configurer</string>
|
||||
<string name="display_supported_links">Afficher les liens pris en charge</string>
|
||||
|
@ -44,6 +50,9 @@
|
|||
<string name="invidious_instances">Instances Invidious</string>
|
||||
<string name="nitter_instances">Instances Nitter</string>
|
||||
<string name="bibliogram_instances">Instances Bibliogram</string>
|
||||
<string name="teddit_instances">Instances Teddit</string>
|
||||
<string name="scribe_instances">Scribe instances</string>
|
||||
<string name="wikiless_instances">Wikiless instances</string>
|
||||
<string name="latency">Latence</string>
|
||||
<string name="error_message_internet">Vérifiez votre connexion Internet</string>
|
||||
<string name="instance_label">Instance :</string>
|
||||
|
@ -116,6 +125,7 @@
|
|||
<string name="invidious_help_remove"><b>Supprimer:</b> UntrackMe supprimera le paramètre de l\'URL, s\'il existe</string>
|
||||
<string name="invidious_help_other">Si vous sélectionnez d\'autres valeurs pour un paramètre, elles seront ajoutées à l\'URL. Si le paramètre existe déjà, sa valeur sera changée selon votre choix</string>
|
||||
<string name="invidious_help_explanations">[1] Le paramètre \'local\' est défini à \'Actif\' par défaut pour une meilleure confidentialité</string>
|
||||
<string name="copy_url">Copy URL To Clipboard</string>
|
||||
<string-array name="invidious_theme">
|
||||
<item>Ignorer</item>
|
||||
<item>Retirer</item>
|
||||
|
|
|
@ -27,7 +27,13 @@
|
|||
<string name="redirect_youtube_to_invidious">Redireccionar YouTube a Invidious</string>
|
||||
<string name="redirect_twitter_to_nitter">Redireccionar Twitter a Nitter</string>
|
||||
<string name="redirect_instagram_to_bibliogram">Redireccionar Instagram a Bibliogram</string>
|
||||
<string name="redirect_reddit_to_teddit">Redirixir Reddit a Teddit</string>
|
||||
<string name="redirect_medium_to_scriberip">Redirixir Medium a Scribe.rip</string>
|
||||
<string name="redirect_wikipedia_to_wikiless">Redirixir Wikipedia a Wikiless</string>
|
||||
<string name="custom_bibliogram">Instancia Bibliogram personalizada</string>
|
||||
<string name="custom_scriberip">Instancia Scribe.rip personalizada</string>
|
||||
<string name="custom_wikiless">Instancia Wikiless personalizada</string>
|
||||
<string name="custom_teddit">Instancia Teddit personalizada</string>
|
||||
<string name="redirect_gm_to_geo_uri">Redireccionar Google Map a Geo URI</string>
|
||||
<string name="configure">Configurar</string>
|
||||
<string name="display_supported_links">Mostrar ligazóns soportadas</string>
|
||||
|
@ -44,6 +50,9 @@
|
|||
<string name="invidious_instances">Instancias Invidious</string>
|
||||
<string name="nitter_instances">Instancias Nitter</string>
|
||||
<string name="bibliogram_instances">Instancias Bibliogram</string>
|
||||
<string name="teddit_instances">Instancias Teddit</string>
|
||||
<string name="scribe_instances">Instancias Scribe</string>
|
||||
<string name="wikiless_instances">Instancias Wikiless</string>
|
||||
<string name="latency">Latencia</string>
|
||||
<string name="error_message_internet">Comproba a conexión a internet</string>
|
||||
<string name="instance_label">Instancia:</string>
|
||||
|
@ -116,6 +125,7 @@
|
|||
<string name="invidious_help_remove"><b>Eliminar:</b> UntrackMe eliminará o parámetro do URL, se existe</string>
|
||||
<string name="invidious_help_other">Se escolles outros valores para o parámetro, serán engadidos ao URL. Se o parámetro xa existe, o seu valor será cambiado pola túa escolla</string>
|
||||
<string name="invidious_help_explanations">[1] parámetro \'local\' establécese a \'true\' por omisión para mellor privacidade</string>
|
||||
<string name="copy_url">Copiar URL ao portapapeis</string>
|
||||
<string-array name="invidious_theme">
|
||||
<item>Ignorar</item>
|
||||
<item>Eliminar</item>
|
||||
|
|
|
@ -27,7 +27,9 @@
|
|||
<string name="redirect_youtube_to_invidious">Redirect YouTube to Invidious</string>
|
||||
<string name="redirect_twitter_to_nitter">Redirect Twitter to Nitter</string>
|
||||
<string name="redirect_instagram_to_bibliogram">Redirect Instagram to Bibliogram</string>
|
||||
<string name="redirect_reddit_to_teddit">Redirect Reddit to Teddit</string>
|
||||
<string name="custom_bibliogram">Custom Bibliogram instance</string>
|
||||
<string name="custom_teddit">Custom Teddit instance</string>
|
||||
<string name="redirect_gm_to_geo_uri">Redirect Google Map to Geo URI</string>
|
||||
<string name="configure">Configure</string>
|
||||
<string name="display_supported_links">Display supported links</string>
|
||||
|
@ -44,6 +46,7 @@
|
|||
<string name="invidious_instances">Invidious instances</string>
|
||||
<string name="nitter_instances">Nitter instances</string>
|
||||
<string name="bibliogram_instances">Bibliogram instances</string>
|
||||
<string name="teddit_instances">Teddit instances</string>
|
||||
<string name="latency">Latency</string>
|
||||
<string name="error_message_internet">Check your Internet connection</string>
|
||||
<string name="instance_label">Instance:</string>
|
||||
|
|
|
@ -1,33 +1,35 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<!-- Some local values -->
|
||||
<string name="action_settings">Settings</string>
|
||||
<string name="action_about">About</string>
|
||||
<string name="developer">Developer</string>
|
||||
<string name="action_settings">सैटिंग्स</string>
|
||||
<string name="action_about">के बारे में</string>
|
||||
<string name="developer">डैवलपर</string>
|
||||
<string name="donations">Donations</string>
|
||||
<string name="about_the_app">About the app</string>
|
||||
<string name="source_code">Source code</string>
|
||||
<string name="issue_tracker">Issue tracker</string>
|
||||
<string name="license">License</string>
|
||||
<string name="about_vesrion">Release %1$s</string>
|
||||
<string name="license">लाइसेंस</string>
|
||||
<string name="about_vesrion">रिलीज़ %1$s</string>
|
||||
<string name="custom_nitter">Custom Nitter instance</string>
|
||||
<string name="save">Save</string>
|
||||
<string name="close">Close</string>
|
||||
<string name="save">सहेजें</string>
|
||||
<string name="close">बंद करें</string>
|
||||
<string name="instances_saved">Custom instances have been saved!</string>
|
||||
<string name="custom_invidious">Custom Invidious instance</string>
|
||||
<string name="no_apps">No applications by default</string>
|
||||
<string name="Donate">Donate</string>
|
||||
<string name="warning">Warning</string>
|
||||
<string name="warning">चेतावनी</string>
|
||||
<string name="error">Error</string>
|
||||
<string name="valid">Valid</string>
|
||||
<string name="icon_of_the_app">Icon of the app</string>
|
||||
<string name="open_with">Open with</string>
|
||||
<string name="open_with">के साथ खोलें</string>
|
||||
<string name="redirect_gm_to_osm">Redirect Google Map to OpenStreetMap</string>
|
||||
<string name="custom_osm">Custom OSM hostname</string>
|
||||
<string name="redirect_youtube_to_invidious">Redirect YouTube to Invidious</string>
|
||||
<string name="redirect_twitter_to_nitter">Redirect Twitter to Nitter</string>
|
||||
<string name="redirect_instagram_to_bibliogram">Redirect Instagram to Bibliogram</string>
|
||||
<string name="redirect_reddit_to_teddit">Redirect Reddit to Teddit</string>
|
||||
<string name="custom_bibliogram">Custom Bibliogram instance</string>
|
||||
<string name="custom_teddit">Custom Teddit instance</string>
|
||||
<string name="redirect_gm_to_geo_uri">Redirect Google Map to Geo URI</string>
|
||||
<string name="configure">Configure</string>
|
||||
<string name="display_supported_links">Display supported links</string>
|
||||
|
@ -44,23 +46,24 @@
|
|||
<string name="invidious_instances">Invidious instances</string>
|
||||
<string name="nitter_instances">Nitter instances</string>
|
||||
<string name="bibliogram_instances">Bibliogram instances</string>
|
||||
<string name="teddit_instances">Teddit instances</string>
|
||||
<string name="latency">Latency</string>
|
||||
<string name="error_message_internet">Check your Internet connection</string>
|
||||
<string name="instance_label">Instance:</string>
|
||||
<string name="instance_label">इंस्टंस:</string>
|
||||
<string name="expand_instance_details">Expand instance details</string>
|
||||
<string name="cloudflare">This instance uses Cloudflare</string>
|
||||
<string name="instance_info">Information about listed instances</string>
|
||||
<string name="about_instances">The list of instances comes from\n\n <a href="%1$s">%2$s</a>\n\nYou can contribute to this list by adding or removing instances.</string>
|
||||
<string name="about_instances_title">About instances</string>
|
||||
<string name="use_built_in_player">Use the built-in player</string>
|
||||
<string name="share">Share</string>
|
||||
<string name="download">Download</string>
|
||||
<string name="share_with">Share with</string>
|
||||
<string name="share">शेयर करें</string>
|
||||
<string name="download">डाउन्लोड</string>
|
||||
<string name="share_with">के साथ सांझे</string>
|
||||
<string name="check_apps">Check apps</string>
|
||||
<string name="select_instances">Select instances</string>
|
||||
<string name="continue_with">Continue with…</string>
|
||||
<string name="just_once">Just once</string>
|
||||
<string name="always">Always</string>
|
||||
<string name="always">हमेशा</string>
|
||||
<string name="default_app_indication">%1$s has been set as a default app.\nYou can remove this behavior from the app settings.</string>
|
||||
<string name="indication_error_title">There is something wrong with the configuration of the app. Please, follow these indications to fix that issue.</string>
|
||||
<string name="open_configure">1 - Tap on the \"CONFIGURE\" button above.</string>
|
||||
|
@ -72,14 +75,14 @@
|
|||
<string name="display_indications_3_description">Screenshot showing app settings to define the behavior for opening URLs</string>
|
||||
<string name="default_apps">Default apps</string>
|
||||
<string name="remove_from_default_app">Remove from default apps</string>
|
||||
<string name="delete">Delete</string>
|
||||
<string name="cancel">Cancel</string>
|
||||
<string name="delete">मिटाएं</string>
|
||||
<string name="cancel">रद्द करें</string>
|
||||
<string name="delete_app_from_default">Delete %1$s from default apps?</string>
|
||||
<string name="copy_done">Copied</string>
|
||||
<string name="no_apps_set_as_default">No apps set as default!</string>
|
||||
<string name="custom_settings_for_invidious">Custom settings for Invidious</string>
|
||||
<string name="invidious_settings">Invidious settings</string>
|
||||
<string name="invidious_dark_mode_title">Theme</string>
|
||||
<string name="invidious_dark_mode_title">रूपरंग</string>
|
||||
<string name="invidious_dark_mode_indication">Configure default theme without setting cookies</string>
|
||||
<string name="invidious_thin_mode_title">Thin mode</string>
|
||||
<string name="invidious_thin_mode_indication">Load HTML, CSS, JS and video elements (disables images)</string>
|
||||
|
@ -95,7 +98,7 @@
|
|||
<string name="invidious_continue_mode_indication">When video is done, automatically go to the next related video (similar to YouTube’s Autoplay feature)</string>
|
||||
<string name="invidious_listen_mode_title">Listen</string>
|
||||
<string name="invidious_listen_mode_indication">Play only audio portion of video</string>
|
||||
<string name="invidious_local_mode_title">Local</string>
|
||||
<string name="invidious_local_mode_title">स्थानीय</string>
|
||||
<string name="invidious_local_mode_indication">Proxy video streams</string>
|
||||
<string name="invidious_subtitles_mode_title">Subtitles</string>
|
||||
<string name="invidious_subtitles_mode_indication">List of ISO 639–1 language codes</string>
|
||||
|
@ -118,19 +121,19 @@
|
|||
<string name="invidious_help_explanations">[1] \'local\' parameter is set to \'true\' by default for better privacy</string>
|
||||
<string-array name="invidious_theme">
|
||||
<item>Ignore</item>
|
||||
<item>Remove</item>
|
||||
<item>हटाएं</item>
|
||||
<item>Dark theme</item>
|
||||
<item>Light theme</item>
|
||||
</string-array>
|
||||
<string-array name="invidious_enable">
|
||||
<item>Ignore</item>
|
||||
<item>Remove</item>
|
||||
<item>हटाएं</item>
|
||||
<item>Enabled</item>
|
||||
<item>Disabled</item>
|
||||
</string-array>
|
||||
<string-array name="invidious_language">
|
||||
<item>Ignore</item>
|
||||
<item>Remove</item>
|
||||
<item>हटाएं</item>
|
||||
<item>Arabic</item>
|
||||
<item>German</item>
|
||||
<item>Greek</item>
|
||||
|
@ -150,25 +153,25 @@
|
|||
</string-array>
|
||||
<string-array name="invidious_annotations">
|
||||
<item>Ignore</item>
|
||||
<item>Remove</item>
|
||||
<item>हटाएं</item>
|
||||
<item>Show annotations</item>
|
||||
<item>Hide annotations</item>
|
||||
</string-array>
|
||||
<string-array name="invidious_quality">
|
||||
<item>Ignore</item>
|
||||
<item>Remove</item>
|
||||
<item>हटाएं</item>
|
||||
<item>DASH</item>
|
||||
<item>720p</item>
|
||||
<item>480p</item>
|
||||
</string-array>
|
||||
<string-array name="invidious_volume">
|
||||
<item>Ignore</item>
|
||||
<item>Remove</item>
|
||||
<item>हटाएं</item>
|
||||
<item>Custom</item>
|
||||
</string-array>
|
||||
<string-array name="invidious_player_style">
|
||||
<item>Ignore</item>
|
||||
<item>Remove</item>
|
||||
<item>हटाएं</item>
|
||||
<item>Invidious</item>
|
||||
<item>Youtube</item>
|
||||
</string-array>
|
||||
|
|
|
@ -1,33 +1,35 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<!-- Some local values -->
|
||||
<string name="action_settings">Settings</string>
|
||||
<string name="action_about">About</string>
|
||||
<string name="developer">Developer</string>
|
||||
<string name="action_settings">Beállítások</string>
|
||||
<string name="action_about">Névjegy</string>
|
||||
<string name="developer">Fejlesztő</string>
|
||||
<string name="donations">Donations</string>
|
||||
<string name="about_the_app">About the app</string>
|
||||
<string name="source_code">Source code</string>
|
||||
<string name="issue_tracker">Issue tracker</string>
|
||||
<string name="license">License</string>
|
||||
<string name="about_vesrion">Release %1$s</string>
|
||||
<string name="about_the_app">Az alkalmazás névjegye</string>
|
||||
<string name="source_code">Forráskód</string>
|
||||
<string name="issue_tracker">Hibakövető</string>
|
||||
<string name="license">Licensz</string>
|
||||
<string name="about_vesrion">Verzió: %1$s</string>
|
||||
<string name="custom_nitter">Custom Nitter instance</string>
|
||||
<string name="save">Save</string>
|
||||
<string name="close">Close</string>
|
||||
<string name="save">Mentés</string>
|
||||
<string name="close">Bezárás</string>
|
||||
<string name="instances_saved">Custom instances have been saved!</string>
|
||||
<string name="custom_invidious">Custom Invidious instance</string>
|
||||
<string name="no_apps">No applications by default</string>
|
||||
<string name="Donate">Donate</string>
|
||||
<string name="warning">Warning</string>
|
||||
<string name="warning">Figyelmeztetés</string>
|
||||
<string name="error">Error</string>
|
||||
<string name="valid">Valid</string>
|
||||
<string name="icon_of_the_app">Icon of the app</string>
|
||||
<string name="open_with">Open with</string>
|
||||
<string name="open_with">Megnyitás a következővel:</string>
|
||||
<string name="redirect_gm_to_osm">Redirect Google Map to OpenStreetMap</string>
|
||||
<string name="custom_osm">Custom OSM hostname</string>
|
||||
<string name="redirect_youtube_to_invidious">Redirect YouTube to Invidious</string>
|
||||
<string name="redirect_twitter_to_nitter">Redirect Twitter to Nitter</string>
|
||||
<string name="redirect_instagram_to_bibliogram">Redirect Instagram to Bibliogram</string>
|
||||
<string name="redirect_reddit_to_teddit">Redirect Reddit to Teddit</string>
|
||||
<string name="custom_bibliogram">Custom Bibliogram instance</string>
|
||||
<string name="custom_teddit">Custom Teddit instance</string>
|
||||
<string name="redirect_gm_to_geo_uri">Redirect Google Map to Geo URI</string>
|
||||
<string name="configure">Configure</string>
|
||||
<string name="display_supported_links">Display supported links</string>
|
||||
|
@ -44,23 +46,24 @@
|
|||
<string name="invidious_instances">Invidious instances</string>
|
||||
<string name="nitter_instances">Nitter instances</string>
|
||||
<string name="bibliogram_instances">Bibliogram instances</string>
|
||||
<string name="teddit_instances">Teddit instances</string>
|
||||
<string name="latency">Latency</string>
|
||||
<string name="error_message_internet">Check your Internet connection</string>
|
||||
<string name="instance_label">Instance:</string>
|
||||
<string name="instance_label">Szerver:</string>
|
||||
<string name="expand_instance_details">Expand instance details</string>
|
||||
<string name="cloudflare">This instance uses Cloudflare</string>
|
||||
<string name="instance_info">Information about listed instances</string>
|
||||
<string name="about_instances">The list of instances comes from\n\n <a href="%1$s">%2$s</a>\n\nYou can contribute to this list by adding or removing instances.</string>
|
||||
<string name="about_instances_title">About instances</string>
|
||||
<string name="use_built_in_player">Use the built-in player</string>
|
||||
<string name="share">Share</string>
|
||||
<string name="download">Download</string>
|
||||
<string name="share_with">Share with</string>
|
||||
<string name="share">Megosztás</string>
|
||||
<string name="download">Letöltés</string>
|
||||
<string name="share_with">Megosztás a következővel:</string>
|
||||
<string name="check_apps">Check apps</string>
|
||||
<string name="select_instances">Select instances</string>
|
||||
<string name="continue_with">Continue with…</string>
|
||||
<string name="just_once">Just once</string>
|
||||
<string name="always">Always</string>
|
||||
<string name="always">Mindig</string>
|
||||
<string name="default_app_indication">%1$s has been set as a default app.\nYou can remove this behavior from the app settings.</string>
|
||||
<string name="indication_error_title">There is something wrong with the configuration of the app. Please, follow these indications to fix that issue.</string>
|
||||
<string name="open_configure">1 - Tap on the \"CONFIGURE\" button above.</string>
|
||||
|
@ -72,14 +75,14 @@
|
|||
<string name="display_indications_3_description">Screenshot showing app settings to define the behavior for opening URLs</string>
|
||||
<string name="default_apps">Default apps</string>
|
||||
<string name="remove_from_default_app">Remove from default apps</string>
|
||||
<string name="delete">Delete</string>
|
||||
<string name="cancel">Cancel</string>
|
||||
<string name="delete">Törlés</string>
|
||||
<string name="cancel">Mégsem</string>
|
||||
<string name="delete_app_from_default">Delete %1$s from default apps?</string>
|
||||
<string name="copy_done">Copied</string>
|
||||
<string name="no_apps_set_as_default">No apps set as default!</string>
|
||||
<string name="custom_settings_for_invidious">Custom settings for Invidious</string>
|
||||
<string name="invidious_settings">Invidious settings</string>
|
||||
<string name="invidious_dark_mode_title">Theme</string>
|
||||
<string name="invidious_dark_mode_title">Téma</string>
|
||||
<string name="invidious_dark_mode_indication">Configure default theme without setting cookies</string>
|
||||
<string name="invidious_thin_mode_title">Thin mode</string>
|
||||
<string name="invidious_thin_mode_indication">Load HTML, CSS, JS and video elements (disables images)</string>
|
||||
|
@ -95,7 +98,7 @@
|
|||
<string name="invidious_continue_mode_indication">When video is done, automatically go to the next related video (similar to YouTube’s Autoplay feature)</string>
|
||||
<string name="invidious_listen_mode_title">Listen</string>
|
||||
<string name="invidious_listen_mode_indication">Play only audio portion of video</string>
|
||||
<string name="invidious_local_mode_title">Local</string>
|
||||
<string name="invidious_local_mode_title">Helyi</string>
|
||||
<string name="invidious_local_mode_indication">Proxy video streams</string>
|
||||
<string name="invidious_subtitles_mode_title">Subtitles</string>
|
||||
<string name="invidious_subtitles_mode_indication">List of ISO 639–1 language codes</string>
|
||||
|
@ -118,19 +121,19 @@
|
|||
<string name="invidious_help_explanations">[1] \'local\' parameter is set to \'true\' by default for better privacy</string>
|
||||
<string-array name="invidious_theme">
|
||||
<item>Ignore</item>
|
||||
<item>Remove</item>
|
||||
<item>Eltávolítás</item>
|
||||
<item>Dark theme</item>
|
||||
<item>Light theme</item>
|
||||
</string-array>
|
||||
<string-array name="invidious_enable">
|
||||
<item>Ignore</item>
|
||||
<item>Remove</item>
|
||||
<item>Eltávolítás</item>
|
||||
<item>Enabled</item>
|
||||
<item>Disabled</item>
|
||||
</string-array>
|
||||
<string-array name="invidious_language">
|
||||
<item>Ignore</item>
|
||||
<item>Remove</item>
|
||||
<item>Eltávolítás</item>
|
||||
<item>Arabic</item>
|
||||
<item>German</item>
|
||||
<item>Greek</item>
|
||||
|
@ -150,25 +153,25 @@
|
|||
</string-array>
|
||||
<string-array name="invidious_annotations">
|
||||
<item>Ignore</item>
|
||||
<item>Remove</item>
|
||||
<item>Eltávolítás</item>
|
||||
<item>Show annotations</item>
|
||||
<item>Hide annotations</item>
|
||||
</string-array>
|
||||
<string-array name="invidious_quality">
|
||||
<item>Ignore</item>
|
||||
<item>Remove</item>
|
||||
<item>Eltávolítás</item>
|
||||
<item>DASH</item>
|
||||
<item>720p</item>
|
||||
<item>480p</item>
|
||||
</string-array>
|
||||
<string-array name="invidious_volume">
|
||||
<item>Ignore</item>
|
||||
<item>Remove</item>
|
||||
<item>Eltávolítás</item>
|
||||
<item>Custom</item>
|
||||
</string-array>
|
||||
<string-array name="invidious_player_style">
|
||||
<item>Ignore</item>
|
||||
<item>Remove</item>
|
||||
<item>Eltávolítás</item>
|
||||
<item>Invidious</item>
|
||||
<item>Youtube</item>
|
||||
</string-array>
|
||||
|
|
|
@ -27,7 +27,9 @@
|
|||
<string name="redirect_youtube_to_invidious">Mengarahkan YouTube untuk menyakitkan hati</string>
|
||||
<string name="redirect_twitter_to_nitter">Mengarahkan Twitter untuk Nitter</string>
|
||||
<string name="redirect_instagram_to_bibliogram">Mengarahkan Instagram untuk Bibliogram</string>
|
||||
<string name="redirect_reddit_to_teddit">Redirect Reddit to Teddit</string>
|
||||
<string name="custom_bibliogram">Custom Bibliogram contoh</string>
|
||||
<string name="custom_teddit">Custom Teddit instance</string>
|
||||
<string name="redirect_gm_to_geo_uri">Custom Bibliogram contoh</string>
|
||||
<string name="configure">Configure</string>
|
||||
<string name="display_supported_links">Display supported links</string>
|
||||
|
@ -44,6 +46,7 @@
|
|||
<string name="invidious_instances">Contoh menyakitkan hati</string>
|
||||
<string name="nitter_instances">Nitter instances</string>
|
||||
<string name="bibliogram_instances">Bibliogram instances</string>
|
||||
<string name="teddit_instances">Teddit instances</string>
|
||||
<string name="latency">Latency</string>
|
||||
<string name="error_message_internet">Periksa koneksi Internet anda</string>
|
||||
<string name="instance_label">Contoh:</string>
|
||||
|
@ -53,14 +56,14 @@
|
|||
<string name="about_instances">The list of instances comes from\n\n <a href="%1$s">%2$s</a>\n\nYou can contribute to this list by adding or removing instances.</string>
|
||||
<string name="about_instances_title">Tentang contoh</string>
|
||||
<string name="use_built_in_player">Use the built-in player</string>
|
||||
<string name="share">Share</string>
|
||||
<string name="download">Download</string>
|
||||
<string name="share_with">Share with</string>
|
||||
<string name="share">Bagikan</string>
|
||||
<string name="download">Unduh</string>
|
||||
<string name="share_with">Bagikan dengan</string>
|
||||
<string name="check_apps">Periksa aplikasi</string>
|
||||
<string name="select_instances">Pilih contoh</string>
|
||||
<string name="continue_with">Continue with…</string>
|
||||
<string name="just_once">Just once</string>
|
||||
<string name="always">Always</string>
|
||||
<string name="always">Selalu</string>
|
||||
<string name="default_app_indication">%1$s has been set as a default app.\nYou can remove this behavior from the app settings.</string>
|
||||
<string name="indication_error_title">There is something wrong with the configuration of the app. Please, follow these indications to fix that issue.</string>
|
||||
<string name="open_configure">1 - Tap on the \"CONFIGURE\" button above.</string>
|
||||
|
@ -72,8 +75,8 @@
|
|||
<string name="display_indications_3_description">Screenshot showing app settings to define the behavior for opening URLs</string>
|
||||
<string name="default_apps">Default apps</string>
|
||||
<string name="remove_from_default_app">Remove from default apps</string>
|
||||
<string name="delete">Delete</string>
|
||||
<string name="cancel">Cancel</string>
|
||||
<string name="delete">Hapus</string>
|
||||
<string name="cancel">Batal</string>
|
||||
<string name="delete_app_from_default">Delete %1$s from default apps?</string>
|
||||
<string name="copy_done">Copied</string>
|
||||
<string name="no_apps_set_as_default">No apps set as default!</string>
|
||||
|
@ -118,19 +121,19 @@
|
|||
<string name="invidious_help_explanations">[1] \'local\' parameter is set to \'true\' by default for better privacy</string>
|
||||
<string-array name="invidious_theme">
|
||||
<item>Ignore</item>
|
||||
<item>Remove</item>
|
||||
<item>Menghapus</item>
|
||||
<item>Dark theme</item>
|
||||
<item>Light theme</item>
|
||||
</string-array>
|
||||
<string-array name="invidious_enable">
|
||||
<item>Ignore</item>
|
||||
<item>Remove</item>
|
||||
<item>Menghapus</item>
|
||||
<item>Enabled</item>
|
||||
<item>Disabled</item>
|
||||
</string-array>
|
||||
<string-array name="invidious_language">
|
||||
<item>Ignore</item>
|
||||
<item>Remove</item>
|
||||
<item>Menghapus</item>
|
||||
<item>Arabic</item>
|
||||
<item>German</item>
|
||||
<item>Greek</item>
|
||||
|
@ -150,25 +153,25 @@
|
|||
</string-array>
|
||||
<string-array name="invidious_annotations">
|
||||
<item>Ignore</item>
|
||||
<item>Remove</item>
|
||||
<item>Menghapus</item>
|
||||
<item>Show annotations</item>
|
||||
<item>Hide annotations</item>
|
||||
</string-array>
|
||||
<string-array name="invidious_quality">
|
||||
<item>Ignore</item>
|
||||
<item>Remove</item>
|
||||
<item>Menghapus</item>
|
||||
<item>DASH</item>
|
||||
<item>720p</item>
|
||||
<item>480p</item>
|
||||
</string-array>
|
||||
<string-array name="invidious_volume">
|
||||
<item>Ignore</item>
|
||||
<item>Remove</item>
|
||||
<item>Menghapus</item>
|
||||
<item>Custom</item>
|
||||
</string-array>
|
||||
<string-array name="invidious_player_style">
|
||||
<item>Ignore</item>
|
||||
<item>Remove</item>
|
||||
<item>Menghapus</item>
|
||||
<item>Invidious</item>
|
||||
<item>Youtube</item>
|
||||
</string-array>
|
||||
|
|
|
@ -27,7 +27,13 @@
|
|||
<string name="redirect_youtube_to_invidious">Reindirizza YouTube a Invidious</string>
|
||||
<string name="redirect_twitter_to_nitter">Reindirizza Twitter a Nitter</string>
|
||||
<string name="redirect_instagram_to_bibliogram">Reindirizza Instagram a Bibliogram</string>
|
||||
<string name="redirect_reddit_to_teddit">Reindirizza Reddit a Teddit</string>
|
||||
<string name="redirect_medium_to_scriberip">Reindirizza Medium a Scribe.rip</string>
|
||||
<string name="redirect_wikipedia_to_wikiless">Reindirizza Wikipedia a Wikiless</string>
|
||||
<string name="custom_bibliogram">Istanza Bibliogram personalizzata</string>
|
||||
<string name="custom_scriberip">Istanza Scribe.rip personalizzata</string>
|
||||
<string name="custom_wikiless">Istanza Wikiless personalizzata</string>
|
||||
<string name="custom_teddit">Altra istanza Nitter</string>
|
||||
<string name="redirect_gm_to_geo_uri">Reindirizza Google Maps a Geo URI</string>
|
||||
<string name="configure">Configura</string>
|
||||
<string name="display_supported_links">Mostra link supportati</string>
|
||||
|
@ -44,6 +50,9 @@
|
|||
<string name="invidious_instances">Istanze Invidious</string>
|
||||
<string name="nitter_instances">Istanze Nitter</string>
|
||||
<string name="bibliogram_instances">Istanze Bibliogram</string>
|
||||
<string name="teddit_instances">Istanze di Teddit</string>
|
||||
<string name="scribe_instances">Istanze Scribe</string>
|
||||
<string name="wikiless_instances">Istanze Wikiless</string>
|
||||
<string name="latency">Latenza</string>
|
||||
<string name="error_message_internet">Controlla la tua connessione Internet</string>
|
||||
<string name="instance_label">Istanza:</string>
|
||||
|
@ -116,6 +125,7 @@
|
|||
<string name="invidious_help_remove"><b>Rimuovi:</b> UntrackMe rimuoverà il parametro dall\'URL, se esiste</string>
|
||||
<string name="invidious_help_other">Se selezioni altri valori per un parametro, saranno aggiunti all\'URL. Se il parametro esiste già, il suo valore sarà cambiato con la tua scelta</string>
|
||||
<string name="invidious_help_explanations">[1] Il parametro \'local\' è impostato su \'true\' per impostazione predefinita per una migliore privacy</string>
|
||||
<string name="copy_url">Copia URL negli Appunti</string>
|
||||
<string-array name="invidious_theme">
|
||||
<item>Ignora</item>
|
||||
<item>Rimuovi</item>
|
||||
|
|
|
@ -27,7 +27,13 @@
|
|||
<string name="redirect_youtube_to_invidious">YouTubeをInvidiousにリダイレクトする</string>
|
||||
<string name="redirect_twitter_to_nitter">TwitterをNitterにリダイレクトする</string>
|
||||
<string name="redirect_instagram_to_bibliogram">InstagramをBibliogramにリダイレクトする</string>
|
||||
<string name="redirect_reddit_to_teddit">RedditをTedditにリダイレクトする</string>
|
||||
<string name="redirect_medium_to_scriberip">MediumをScribe.ripにリダイレクトする</string>
|
||||
<string name="redirect_wikipedia_to_wikiless">WikipediaをWikilessにリダイレクトする</string>
|
||||
<string name="custom_bibliogram">カスタムBibliogramインスタンス</string>
|
||||
<string name="custom_scriberip">カスタムScribe.ripインスタンス</string>
|
||||
<string name="custom_wikiless">カスタムWikilessインスタンス</string>
|
||||
<string name="custom_teddit">カスタムTedditインスタンス</string>
|
||||
<string name="redirect_gm_to_geo_uri">Google マップをGeo URIにリダイレクトする</string>
|
||||
<string name="configure">設定</string>
|
||||
<string name="display_supported_links">サポートされているリンクを表示する</string>
|
||||
|
@ -44,6 +50,9 @@
|
|||
<string name="invidious_instances">Invidiousインスタンス</string>
|
||||
<string name="nitter_instances">Nitterインスタンス</string>
|
||||
<string name="bibliogram_instances">Bibliogramインスタンス</string>
|
||||
<string name="teddit_instances">Tedditインスタンス</string>
|
||||
<string name="scribe_instances">Scribe インスタンス</string>
|
||||
<string name="wikiless_instances">Wikiless インスタンス</string>
|
||||
<string name="latency">レイテンシ</string>
|
||||
<string name="error_message_internet">インターネット接続を確認してください</string>
|
||||
<string name="instance_label">インスタンス:</string>
|
||||
|
@ -116,6 +125,7 @@
|
|||
<string name="invidious_help_remove"><b>削除:</b> UntrackMeはURLからパラメータを削除します。</string>
|
||||
<string name="invidious_help_other">パラメータに他の値を選択すると、それらはURLに追加されます。 パラメータがすでに存在する場合、その値は選択したものに変更されます。</string>
|
||||
<string name="invidious_help_explanations">[1] プライバシー保護のため、デフォルトでは \'local\' パラメータは \'true\' に設定されています</string>
|
||||
<string name="copy_url">URLをクリップボードにコピー</string>
|
||||
<string-array name="invidious_theme">
|
||||
<item>無視</item>
|
||||
<item>削除</item>
|
||||
|
|
|
@ -27,7 +27,9 @@
|
|||
<string name="redirect_youtube_to_invidious">ಯೂಟ್ಯೂಬನ್ನು ಇನ್ವಿಡಿಯೋಸ್ ಗೆ ರವಾನಿಸು</string>
|
||||
<string name="redirect_twitter_to_nitter">ಟ್ವಿಟ್ಟರ್ ಅನ್ನು ನಿಟ್ಟರ್ ಗೆ ರವಾನಿಸು</string>
|
||||
<string name="redirect_instagram_to_bibliogram">ಇನ್ಸ್ಟಾಗ್ರಾಂ ಅನ್ನು ಬಿಬ್ಲಿಯೊಗ್ರಾಂ ಗೆ ರವಾನಿಸು</string>
|
||||
<string name="redirect_reddit_to_teddit">Redirect Reddit to Teddit</string>
|
||||
<string name="custom_bibliogram">ಬೇರೆ ಬಿಬ್ಲಿಯೋಗ್ರಾಂ ನಿದರ್ಶನ</string>
|
||||
<string name="custom_teddit">Custom Teddit instance</string>
|
||||
<string name="redirect_gm_to_geo_uri">ಗೂಗಲ್ ನಕ್ಷೆಯನ್ನು ಭೂ ಸಂಪನ್ಮೂಲ ಗುರುತಿಗೆ (Geo URI) ರವಾನಿಸು</string>
|
||||
<string name="configure">ಜೋಡಿಸು</string>
|
||||
<string name="display_supported_links">ಬೆಂಬಲಿತ ಲಿಂಕ್ಗಳ ಪ್ರದರ್ಶನ</string>
|
||||
|
@ -44,6 +46,7 @@
|
|||
<string name="invidious_instances">ಇನ್ವಿಡಿಯೋಸ್ ನಿದರ್ಶನಗಳು</string>
|
||||
<string name="nitter_instances">ನಿಟ್ಟರ್ ನಿದರ್ಶನಗಳು</string>
|
||||
<string name="bibliogram_instances">ಬಿಬ್ಲಿಯೊಗ್ರಾಂ ನಿದರ್ಶನಗಳು</string>
|
||||
<string name="teddit_instances">Teddit instances</string>
|
||||
<string name="latency">ವಿಳಂಬ</string>
|
||||
<string name="error_message_internet">Check your Internet connection</string>
|
||||
<string name="instance_label">Instance:</string>
|
||||
|
|
|
@ -1,33 +1,35 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<!-- Some local values -->
|
||||
<string name="action_settings">Settings</string>
|
||||
<string name="action_about">About</string>
|
||||
<string name="developer">Developer</string>
|
||||
<string name="action_settings">설정</string>
|
||||
<string name="action_about">정보</string>
|
||||
<string name="developer">개발자</string>
|
||||
<string name="donations">Donations</string>
|
||||
<string name="about_the_app">About the app</string>
|
||||
<string name="source_code">Source code</string>
|
||||
<string name="issue_tracker">Issue tracker</string>
|
||||
<string name="license">License</string>
|
||||
<string name="about_vesrion">Release %1$s</string>
|
||||
<string name="about_vesrion">릴리즈 %1$s</string>
|
||||
<string name="custom_nitter">Custom Nitter instance</string>
|
||||
<string name="save">Save</string>
|
||||
<string name="close">Close</string>
|
||||
<string name="save">저장</string>
|
||||
<string name="close">닫기</string>
|
||||
<string name="instances_saved">Custom instances have been saved!</string>
|
||||
<string name="custom_invidious">Custom Invidious instance</string>
|
||||
<string name="no_apps">No applications by default</string>
|
||||
<string name="Donate">Donate</string>
|
||||
<string name="warning">Warning</string>
|
||||
<string name="warning">경고</string>
|
||||
<string name="error">Error</string>
|
||||
<string name="valid">Valid</string>
|
||||
<string name="icon_of_the_app">Icon of the app</string>
|
||||
<string name="open_with">Open with</string>
|
||||
<string name="open_with">다음으로 열기</string>
|
||||
<string name="redirect_gm_to_osm">Redirect Google Map to OpenStreetMap</string>
|
||||
<string name="custom_osm">Custom OSM hostname</string>
|
||||
<string name="redirect_youtube_to_invidious">Redirect YouTube to Invidious</string>
|
||||
<string name="redirect_twitter_to_nitter">Redirect Twitter to Nitter</string>
|
||||
<string name="redirect_instagram_to_bibliogram">Redirect Instagram to Bibliogram</string>
|
||||
<string name="redirect_reddit_to_teddit">Redirect Reddit to Teddit</string>
|
||||
<string name="custom_bibliogram">Custom Bibliogram instance</string>
|
||||
<string name="custom_teddit">Custom Teddit instance</string>
|
||||
<string name="redirect_gm_to_geo_uri">Redirect Google Map to Geo URI</string>
|
||||
<string name="configure">Configure</string>
|
||||
<string name="display_supported_links">Display supported links</string>
|
||||
|
@ -44,23 +46,24 @@
|
|||
<string name="invidious_instances">Invidious instances</string>
|
||||
<string name="nitter_instances">Nitter instances</string>
|
||||
<string name="bibliogram_instances">Bibliogram instances</string>
|
||||
<string name="teddit_instances">Teddit instances</string>
|
||||
<string name="latency">Latency</string>
|
||||
<string name="error_message_internet">Check your Internet connection</string>
|
||||
<string name="instance_label">Instance:</string>
|
||||
<string name="instance_label">인스턴스:</string>
|
||||
<string name="expand_instance_details">Expand instance details</string>
|
||||
<string name="cloudflare">This instance uses Cloudflare</string>
|
||||
<string name="instance_info">Information about listed instances</string>
|
||||
<string name="about_instances">The list of instances comes from\n\n <a href="%1$s">%2$s</a>\n\nYou can contribute to this list by adding or removing instances.</string>
|
||||
<string name="about_instances_title">About instances</string>
|
||||
<string name="use_built_in_player">Use the built-in player</string>
|
||||
<string name="share">Share</string>
|
||||
<string name="download">Download</string>
|
||||
<string name="share_with">Share with</string>
|
||||
<string name="share">공유</string>
|
||||
<string name="download">다운로드</string>
|
||||
<string name="share_with">공유</string>
|
||||
<string name="check_apps">Check apps</string>
|
||||
<string name="select_instances">Select instances</string>
|
||||
<string name="continue_with">Continue with…</string>
|
||||
<string name="just_once">Just once</string>
|
||||
<string name="always">Always</string>
|
||||
<string name="always">항상</string>
|
||||
<string name="default_app_indication">%1$s has been set as a default app.\nYou can remove this behavior from the app settings.</string>
|
||||
<string name="indication_error_title">There is something wrong with the configuration of the app. Please, follow these indications to fix that issue.</string>
|
||||
<string name="open_configure">1 - Tap on the \"CONFIGURE\" button above.</string>
|
||||
|
@ -72,14 +75,14 @@
|
|||
<string name="display_indications_3_description">Screenshot showing app settings to define the behavior for opening URLs</string>
|
||||
<string name="default_apps">Default apps</string>
|
||||
<string name="remove_from_default_app">Remove from default apps</string>
|
||||
<string name="delete">Delete</string>
|
||||
<string name="cancel">Cancel</string>
|
||||
<string name="delete">삭제</string>
|
||||
<string name="cancel">취소</string>
|
||||
<string name="delete_app_from_default">Delete %1$s from default apps?</string>
|
||||
<string name="copy_done">Copied</string>
|
||||
<string name="no_apps_set_as_default">No apps set as default!</string>
|
||||
<string name="custom_settings_for_invidious">Custom settings for Invidious</string>
|
||||
<string name="invidious_settings">Invidious settings</string>
|
||||
<string name="invidious_dark_mode_title">Theme</string>
|
||||
<string name="invidious_dark_mode_title">테마</string>
|
||||
<string name="invidious_dark_mode_indication">Configure default theme without setting cookies</string>
|
||||
<string name="invidious_thin_mode_title">Thin mode</string>
|
||||
<string name="invidious_thin_mode_indication">Load HTML, CSS, JS and video elements (disables images)</string>
|
||||
|
@ -118,19 +121,19 @@
|
|||
<string name="invidious_help_explanations">[1] \'local\' parameter is set to \'true\' by default for better privacy</string>
|
||||
<string-array name="invidious_theme">
|
||||
<item>Ignore</item>
|
||||
<item>Remove</item>
|
||||
<item>삭제</item>
|
||||
<item>Dark theme</item>
|
||||
<item>Light theme</item>
|
||||
</string-array>
|
||||
<string-array name="invidious_enable">
|
||||
<item>Ignore</item>
|
||||
<item>Remove</item>
|
||||
<item>삭제</item>
|
||||
<item>Enabled</item>
|
||||
<item>Disabled</item>
|
||||
</string-array>
|
||||
<string-array name="invidious_language">
|
||||
<item>Ignore</item>
|
||||
<item>Remove</item>
|
||||
<item>삭제</item>
|
||||
<item>Arabic</item>
|
||||
<item>German</item>
|
||||
<item>Greek</item>
|
||||
|
@ -150,25 +153,25 @@
|
|||
</string-array>
|
||||
<string-array name="invidious_annotations">
|
||||
<item>Ignore</item>
|
||||
<item>Remove</item>
|
||||
<item>삭제</item>
|
||||
<item>Show annotations</item>
|
||||
<item>Hide annotations</item>
|
||||
</string-array>
|
||||
<string-array name="invidious_quality">
|
||||
<item>Ignore</item>
|
||||
<item>Remove</item>
|
||||
<item>삭제</item>
|
||||
<item>DASH</item>
|
||||
<item>720p</item>
|
||||
<item>480p</item>
|
||||
</string-array>
|
||||
<string-array name="invidious_volume">
|
||||
<item>Ignore</item>
|
||||
<item>Remove</item>
|
||||
<item>삭제</item>
|
||||
<item>Custom</item>
|
||||
</string-array>
|
||||
<string-array name="invidious_player_style">
|
||||
<item>Ignore</item>
|
||||
<item>Remove</item>
|
||||
<item>삭제</item>
|
||||
<item>Invidious</item>
|
||||
<item>Youtube</item>
|
||||
</string-array>
|
||||
|
|
|
@ -0,0 +1,185 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<!-- Some local values -->
|
||||
<string name="action_settings">Sazkarî</string>
|
||||
<string name="action_about">Derbar</string>
|
||||
<string name="developer">Pêşdebir</string>
|
||||
<string name="donations">Bexşandin</string>
|
||||
<string name="about_the_app">Derbarê sepanê de</string>
|
||||
<string name="source_code">Çavkaniya Kodê</string>
|
||||
<string name="issue_tracker">Şopênerê pirsgirêkê</string>
|
||||
<string name="license">Lîsans</string>
|
||||
<string name="about_vesrion">Goherto %1$s</string>
|
||||
<string name="custom_nitter">Mînaka Nitter a kesanekirî</string>
|
||||
<string name="save">Tomar bike</string>
|
||||
<string name="close">Bigire</string>
|
||||
<string name="instances_saved">Mînaka kesanekirî hate tomarkirin!</string>
|
||||
<string name="custom_invidious">Custom Invidious instance</string>
|
||||
<string name="no_apps">No applications by default</string>
|
||||
<string name="Donate">Bexş bike</string>
|
||||
<string name="warning">Hişyarî</string>
|
||||
<string name="error">Çewtî</string>
|
||||
<string name="valid">Derbasdar</string>
|
||||
<string name="icon_of_the_app">Îkona sepanê</string>
|
||||
<string name="open_with">Veke bi</string>
|
||||
<string name="redirect_gm_to_osm">Redirect Google Map to OpenStreetMap</string>
|
||||
<string name="custom_osm">Custom OSM hostname</string>
|
||||
<string name="redirect_youtube_to_invidious">Redirect YouTube to Invidious</string>
|
||||
<string name="redirect_twitter_to_nitter">Redirect Twitter to Nitter</string>
|
||||
<string name="redirect_instagram_to_bibliogram">Redirect Instagram to Bibliogram</string>
|
||||
<string name="redirect_reddit_to_teddit">Redirect Reddit to Teddit</string>
|
||||
<string name="redirect_medium_to_scriberip">Redirect Medium to Scribe.rip</string>
|
||||
<string name="redirect_wikipedia_to_wikiless">Redirect Wikipedia to Wikiless</string>
|
||||
<string name="custom_bibliogram">Custom Bibliogram instance</string>
|
||||
<string name="custom_scriberip">Custom Scribe.rip instance</string>
|
||||
<string name="custom_wikiless">Custom Wikiless instance</string>
|
||||
<string name="custom_teddit">Custom Teddit instance</string>
|
||||
<string name="redirect_gm_to_geo_uri">Redirect Google Map to Geo URI</string>
|
||||
<string name="configure">Configure</string>
|
||||
<string name="display_supported_links">Display supported links</string>
|
||||
<string name="use_geo_uri">Use geo URI</string>
|
||||
<string name="how_to">Çawa</string>
|
||||
<string name="shortened_detected">Shortened URL</string>
|
||||
<string name="shortener_services">Shortener services</string>
|
||||
<string name="open">Veke</string>
|
||||
<string name="dismiss">Dismiss</string>
|
||||
<string name="resolving_shortened">Resolving shortened URL, please wait…</string>
|
||||
<string name="try_to_redirect">%1$s \n\nwill redirect you to\n\n<b>%2$s</b></string>
|
||||
<string name="try_to_redirect_again">Then it will redirect you to\n\n<b>%1$s</b></string>
|
||||
<string name="the_app_failed_shortened">The app didn\'t manage to retrieve the full URL</string>
|
||||
<string name="invidious_instances">Invidious instances</string>
|
||||
<string name="nitter_instances">Nitter instances</string>
|
||||
<string name="bibliogram_instances">Bibliogram instances</string>
|
||||
<string name="teddit_instances">Teddit instances</string>
|
||||
<string name="scribe_instances">Scribe instances</string>
|
||||
<string name="wikiless_instances">Wikiless instances</string>
|
||||
<string name="latency">Latency</string>
|
||||
<string name="error_message_internet">Check your Internet connection</string>
|
||||
<string name="instance_label">Instance:</string>
|
||||
<string name="expand_instance_details">Expand instance details</string>
|
||||
<string name="cloudflare">This instance uses Cloudflare</string>
|
||||
<string name="instance_info">Information about listed instances</string>
|
||||
<string name="about_instances">The list of instances comes from\n\n <a href="%1$s">%2$s</a>\n\nYou can contribute to this list by adding or removing instances.</string>
|
||||
<string name="about_instances_title">About instances</string>
|
||||
<string name="use_built_in_player">Use the built-in player</string>
|
||||
<string name="share">Parve bike</string>
|
||||
<string name="download">Daxe</string>
|
||||
<string name="share_with">Parve bike</string>
|
||||
<string name="check_apps">Check apps</string>
|
||||
<string name="select_instances">Select instances</string>
|
||||
<string name="continue_with">Bidomîne bi…</string>
|
||||
<string name="just_once">Tenê carekê</string>
|
||||
<string name="always">Her dem</string>
|
||||
<string name="default_app_indication">%1$s has been set as a default app.\nYou can remove this behavior from the app settings.</string>
|
||||
<string name="indication_error_title">There is something wrong with the configuration of the app. Please, follow these indications to fix that issue.</string>
|
||||
<string name="open_configure">1 - Tap on the \"CONFIGURE\" button above.</string>
|
||||
<string name="supported_url_indication_1">2 - You are now in app settings from your device. Tap on \"Set as default\".</string>
|
||||
<string name="display_indications_1_description">Screenshot showing app settings for the app. You have to Tap on \"Set as default\"</string>
|
||||
<string name="supported_url_indication_2">2 - Paşê li ser \"Biçe URL ên piştgirî\" bitikîne.</string>
|
||||
<string name="display_indications_2_description">Screenshot showing app settings for the app. You have to Tap on \"Go to supported URLs\"</string>
|
||||
<string name="supported_url_indication_3">3 - In suggestions make sure to pickup \"Always ask\"</string>
|
||||
<string name="display_indications_3_description">Screenshot showing app settings to define the behavior for opening URLs</string>
|
||||
<string name="default_apps">Sepanên berdest</string>
|
||||
<string name="remove_from_default_app">Ji sepanên berdest rake</string>
|
||||
<string name="delete">Jê bibe</string>
|
||||
<string name="cancel">Dev jê berde</string>
|
||||
<string name="delete_app_from_default">%1$s ji sepanên berdest jê bibe?</string>
|
||||
<string name="copy_done">Hate jêgirtin</string>
|
||||
<string name="no_apps_set_as_default">Tu sepan nehatine sazkirin wekî berdest!</string>
|
||||
<string name="custom_settings_for_invidious">Sazkariyên kesanekirî bo Invidious</string>
|
||||
<string name="invidious_settings">Sazkariyên Invidious</string>
|
||||
<string name="invidious_dark_mode_title">Rûkar</string>
|
||||
<string name="invidious_dark_mode_indication">Configure default theme without setting cookies</string>
|
||||
<string name="invidious_thin_mode_title">Moda tenik</string>
|
||||
<string name="invidious_thin_mode_indication">Load HTML, CSS, JS and video elements (disables images)</string>
|
||||
<string name="invidious_language_mode_indication">Available locales</string>
|
||||
<string name="invidious_language_mode_title">Zimanê navrûyê bikarhêner</string>
|
||||
<string name="pref_invidious_head1">Site-wide parameters</string>
|
||||
<string name="pref_invidious_head2">Player parameters</string>
|
||||
<string name="invidious_annotations_mode_title">Annotations</string>
|
||||
<string name="invidious_annotations_mode_indication">Show legacy annotations, provided by the Internet Archive</string>
|
||||
<string name="invidious_autoplay_mode_indication">Automatically play video on load</string>
|
||||
<string name="invidious_autoplay_mode_title">Autoplay</string>
|
||||
<string name="invidious_continue_mode_title">Bidomîne</string>
|
||||
<string name="invidious_continue_mode_indication">When video is done, automatically go to the next related video (similar to YouTube’s Autoplay feature)</string>
|
||||
<string name="invidious_listen_mode_title">Guhdar bike</string>
|
||||
<string name="invidious_listen_mode_indication">Play only audio portion of video</string>
|
||||
<string name="invidious_local_mode_title">Herêmî</string>
|
||||
<string name="invidious_local_mode_indication">Proxy video streams</string>
|
||||
<string name="invidious_subtitles_mode_title">Jêrnivîs</string>
|
||||
<string name="invidious_subtitles_mode_indication">List of ISO 639–1 language codes</string>
|
||||
<string name="invidious_quality_mode_title">Quality</string>
|
||||
<string name="invidious_quality_mode_indication">Kalîteya lêdera berdest</string>
|
||||
<string name="invidious_loop_mode_title">Gilover</string>
|
||||
<string name="invidious_volume_mode_title">Deng</string>
|
||||
<string name="invidious_volume_mode_indication">Default player volume, can be any whole number between 0 and 100</string>
|
||||
<string name="invidious_loop_mode_indication">Loop player by default</string>
|
||||
<string name="invidious_volume_mode_value">Nirxa dengê</string>
|
||||
<string name="invidious_volume_mode_value_indication">Override the volume with this value</string>
|
||||
<string name="pref_invidious_head3">Player Style</string>
|
||||
<string name="invidious_player_style_mode_title">Xuyang</string>
|
||||
<string name="invidious_player_style_mode_indication">Invidious, the default one. YouTube, using a centered play button and always visible video control bar</string>
|
||||
<string name="help">Alîkarî</string>
|
||||
<string name="invidious_help_title">Vebijêrkên sazkariyê</string>
|
||||
<string name="invidious_help_ignore"><b>Ignore:</b> This is the default action for all¹ parameters. This means UntrackMe will not do anything about the parameter</string>
|
||||
<string name="invidious_help_remove"><b>Remove:</b> UntrackMe will remove the parameter from URL, if it exists</string>
|
||||
<string name="invidious_help_other">If you select other values for a parameter, they will be added to the URL. If the parameter already exists, its value will be changed to your choice</string>
|
||||
<string name="invidious_help_explanations">[1] \'local\' parameter is set to \'true\' by default for better privacy</string>
|
||||
<string name="copy_url">Copy URL To Clipboard</string>
|
||||
<string-array name="invidious_theme">
|
||||
<item>Paşguh bike</item>
|
||||
<item>Rake</item>
|
||||
<item>Rûkara tarî</item>
|
||||
<item>Rûkara ronî</item>
|
||||
</string-array>
|
||||
<string-array name="invidious_enable">
|
||||
<item>Paşguh bike</item>
|
||||
<item>Rake</item>
|
||||
<item>Çalak e</item>
|
||||
<item>Neçalak e</item>
|
||||
</string-array>
|
||||
<string-array name="invidious_language">
|
||||
<item>Paşguh bike</item>
|
||||
<item>Rake</item>
|
||||
<item>Erebî</item>
|
||||
<item>Elmanî</item>
|
||||
<item>Yunanî</item>
|
||||
<item>Îngilîzî</item>
|
||||
<item>Espêranto</item>
|
||||
<item>Spanî</item>
|
||||
<item>Baskî</item>
|
||||
<item>Fransî</item>
|
||||
<item>Îzlandî</item>
|
||||
<item>Italî</item>
|
||||
<item>Norwecî Bokmål</item>
|
||||
<item>Holandî</item>
|
||||
<item>Polandî</item>
|
||||
<item>Rûsî</item>
|
||||
<item>Ukraynî</item>
|
||||
<item>Çînî</item>
|
||||
</string-array>
|
||||
<string-array name="invidious_annotations">
|
||||
<item>Paşguh bike</item>
|
||||
<item>Rake</item>
|
||||
<item>Show annotations</item>
|
||||
<item>Hide annotations</item>
|
||||
</string-array>
|
||||
<string-array name="invidious_quality">
|
||||
<item>Paşguh bike</item>
|
||||
<item>Rake</item>
|
||||
<item>DASH</item>
|
||||
<item>720p</item>
|
||||
<item>480p</item>
|
||||
</string-array>
|
||||
<string-array name="invidious_volume">
|
||||
<item>Paşguh bike</item>
|
||||
<item>Rake</item>
|
||||
<item>Kesanekirî</item>
|
||||
</string-array>
|
||||
<string-array name="invidious_player_style">
|
||||
<item>Paşguh bike</item>
|
||||
<item>Rake</item>
|
||||
<item>Invidious</item>
|
||||
<item>Youtube</item>
|
||||
</string-array>
|
||||
</resources>
|
|
@ -27,7 +27,13 @@
|
|||
<string name="redirect_youtube_to_invidious">YouTube omleiden naar Invidious</string>
|
||||
<string name="redirect_twitter_to_nitter">Twitter omleiden naar Nitter</string>
|
||||
<string name="redirect_instagram_to_bibliogram">Instagram omleiden naar Bibliogram</string>
|
||||
<string name="redirect_reddit_to_teddit">Redirect Reddit to Teddit</string>
|
||||
<string name="redirect_medium_to_scriberip">Redirect Medium to Scribe.rip</string>
|
||||
<string name="redirect_wikipedia_to_wikiless">Redirect Wikipedia to Wikiless</string>
|
||||
<string name="custom_bibliogram">Aangepaste Bibliogram-exemplaar</string>
|
||||
<string name="custom_scriberip">Custom Scribe.rip instance</string>
|
||||
<string name="custom_wikiless">Custom Wikiless instance</string>
|
||||
<string name="custom_teddit">Custom Teddit instance</string>
|
||||
<string name="redirect_gm_to_geo_uri">Google Map omleiden naar Geo URI</string>
|
||||
<string name="configure">Configureren</string>
|
||||
<string name="display_supported_links">Toon ondersteunde links</string>
|
||||
|
@ -44,6 +50,9 @@
|
|||
<string name="invidious_instances">Ongewenste gevallen</string>
|
||||
<string name="nitter_instances">Nitter instanties</string>
|
||||
<string name="bibliogram_instances">Bibliografische voorbeelden</string>
|
||||
<string name="teddit_instances">Teddit instances</string>
|
||||
<string name="scribe_instances">Scribe instances</string>
|
||||
<string name="wikiless_instances">Wikiless instances</string>
|
||||
<string name="latency">Latentie</string>
|
||||
<string name="error_message_internet">Controleer uw internetverbinding</string>
|
||||
<string name="instance_label">Instantie:</string>
|
||||
|
@ -116,6 +125,7 @@
|
|||
<string name="invidious_help_remove"><b>Verwijderen:</b> UntrackMe verwijdert de parameter van de URL, als deze bestaat</string>
|
||||
<string name="invidious_help_other">Als u andere waarden voor een parameter selecteert, worden deze toegevoegd aan de URL. Als de parameter al bestaat, zal de waarde worden aangepast worden aan uw keuze</string>
|
||||
<string name="invidious_help_explanations">[1] \'lokale\' parameter is standaard op \'waar\' ingesteld voor betere privacy</string>
|
||||
<string name="copy_url">Copy URL To Clipboard</string>
|
||||
<string-array name="invidious_theme">
|
||||
<item>Negeren</item>
|
||||
<item>Verwijderen</item>
|
||||
|
|
|
@ -27,7 +27,9 @@
|
|||
<string name="redirect_youtube_to_invidious">Omdiriger YouTube til Invidious</string>
|
||||
<string name="redirect_twitter_to_nitter">Omdirigere Twitter til Nitter</string>
|
||||
<string name="redirect_instagram_to_bibliogram">Omdiriger Instagram til Bibliogram</string>
|
||||
<string name="redirect_reddit_to_teddit">Redirect Reddit to Teddit</string>
|
||||
<string name="custom_bibliogram">Tilpasset bibliogram-forekomst</string>
|
||||
<string name="custom_teddit">Custom Teddit instance</string>
|
||||
<string name="redirect_gm_to_geo_uri">Omdirigere Google Map til Geo URI</string>
|
||||
<string name="configure">Konfigurer</string>
|
||||
<string name="display_supported_links">Vis støttede linker</string>
|
||||
|
@ -44,6 +46,7 @@
|
|||
<string name="invidious_instances">Invidiøse forekomster</string>
|
||||
<string name="nitter_instances">Ritter instanser</string>
|
||||
<string name="bibliogram_instances">Instanser i Bibliogram</string>
|
||||
<string name="teddit_instances">Teddit instances</string>
|
||||
<string name="latency">Latens</string>
|
||||
<string name="error_message_internet">Sjekk Internett-tilkoblingen din</string>
|
||||
<string name="instance_label">Instans:</string>
|
||||
|
@ -53,14 +56,14 @@
|
|||
<string name="about_instances">Listen over eksempler kommer fra\n\n <a href="%1$s">%2$s</a>\n\nDu kan bidra til denne listen ved å legge til eller fjerne instanser.</string>
|
||||
<string name="about_instances_title">Om instanser</string>
|
||||
<string name="use_built_in_player">Use the built-in player</string>
|
||||
<string name="share">Share</string>
|
||||
<string name="download">Download</string>
|
||||
<string name="share_with">Share with</string>
|
||||
<string name="share">Del</string>
|
||||
<string name="download">Last ned</string>
|
||||
<string name="share_with">Del med</string>
|
||||
<string name="check_apps">Check apps</string>
|
||||
<string name="select_instances">Select instances</string>
|
||||
<string name="continue_with">Continue with…</string>
|
||||
<string name="just_once">Just once</string>
|
||||
<string name="always">Always</string>
|
||||
<string name="always">Alltid</string>
|
||||
<string name="default_app_indication">%1$s has been set as a default app.\nYou can remove this behavior from the app settings.</string>
|
||||
<string name="indication_error_title">There is something wrong with the configuration of the app. Please, follow these indications to fix that issue.</string>
|
||||
<string name="open_configure">1 - Tap on the \"CONFIGURE\" button above.</string>
|
||||
|
@ -72,14 +75,14 @@
|
|||
<string name="display_indications_3_description">Screenshot showing app settings to define the behavior for opening URLs</string>
|
||||
<string name="default_apps">Default apps</string>
|
||||
<string name="remove_from_default_app">Remove from default apps</string>
|
||||
<string name="delete">Delete</string>
|
||||
<string name="cancel">Cancel</string>
|
||||
<string name="delete">Slett</string>
|
||||
<string name="cancel">Avbryt</string>
|
||||
<string name="delete_app_from_default">Delete %1$s from default apps?</string>
|
||||
<string name="copy_done">Copied</string>
|
||||
<string name="no_apps_set_as_default">No apps set as default!</string>
|
||||
<string name="custom_settings_for_invidious">Custom settings for Invidious</string>
|
||||
<string name="invidious_settings">Invidious settings</string>
|
||||
<string name="invidious_dark_mode_title">Theme</string>
|
||||
<string name="invidious_dark_mode_title">Tema</string>
|
||||
<string name="invidious_dark_mode_indication">Configure default theme without setting cookies</string>
|
||||
<string name="invidious_thin_mode_title">Thin mode</string>
|
||||
<string name="invidious_thin_mode_indication">Load HTML, CSS, JS and video elements (disables images)</string>
|
||||
|
@ -95,7 +98,7 @@
|
|||
<string name="invidious_continue_mode_indication">When video is done, automatically go to the next related video (similar to YouTube’s Autoplay feature)</string>
|
||||
<string name="invidious_listen_mode_title">Listen</string>
|
||||
<string name="invidious_listen_mode_indication">Play only audio portion of video</string>
|
||||
<string name="invidious_local_mode_title">Local</string>
|
||||
<string name="invidious_local_mode_title">Lokale</string>
|
||||
<string name="invidious_local_mode_indication">Proxy video streams</string>
|
||||
<string name="invidious_subtitles_mode_title">Subtitles</string>
|
||||
<string name="invidious_subtitles_mode_indication">List of ISO 639–1 language codes</string>
|
||||
|
@ -118,19 +121,19 @@
|
|||
<string name="invidious_help_explanations">[1] \'local\' parameter is set to \'true\' by default for better privacy</string>
|
||||
<string-array name="invidious_theme">
|
||||
<item>Ignore</item>
|
||||
<item>Remove</item>
|
||||
<item>Fjern</item>
|
||||
<item>Dark theme</item>
|
||||
<item>Light theme</item>
|
||||
</string-array>
|
||||
<string-array name="invidious_enable">
|
||||
<item>Ignore</item>
|
||||
<item>Remove</item>
|
||||
<item>Fjern</item>
|
||||
<item>Enabled</item>
|
||||
<item>Disabled</item>
|
||||
<item>Deaktivert</item>
|
||||
</string-array>
|
||||
<string-array name="invidious_language">
|
||||
<item>Ignore</item>
|
||||
<item>Remove</item>
|
||||
<item>Fjern</item>
|
||||
<item>Arabic</item>
|
||||
<item>German</item>
|
||||
<item>Greek</item>
|
||||
|
@ -150,25 +153,25 @@
|
|||
</string-array>
|
||||
<string-array name="invidious_annotations">
|
||||
<item>Ignore</item>
|
||||
<item>Remove</item>
|
||||
<item>Fjern</item>
|
||||
<item>Show annotations</item>
|
||||
<item>Hide annotations</item>
|
||||
</string-array>
|
||||
<string-array name="invidious_quality">
|
||||
<item>Ignore</item>
|
||||
<item>Remove</item>
|
||||
<item>Fjern</item>
|
||||
<item>DASH</item>
|
||||
<item>720p</item>
|
||||
<item>480p</item>
|
||||
</string-array>
|
||||
<string-array name="invidious_volume">
|
||||
<item>Ignore</item>
|
||||
<item>Remove</item>
|
||||
<item>Fjern</item>
|
||||
<item>Custom</item>
|
||||
</string-array>
|
||||
<string-array name="invidious_player_style">
|
||||
<item>Ignore</item>
|
||||
<item>Remove</item>
|
||||
<item>Fjern</item>
|
||||
<item>Invidious</item>
|
||||
<item>Youtube</item>
|
||||
</string-array>
|
||||
|
|
|
@ -1,18 +1,18 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<!-- Some local values -->
|
||||
<string name="action_settings">Settings</string>
|
||||
<string name="action_about">About</string>
|
||||
<string name="developer">Developer</string>
|
||||
<string name="action_settings">Paramètres</string>
|
||||
<string name="action_about">A prepaus</string>
|
||||
<string name="developer">Desvolopaire</string>
|
||||
<string name="donations">Donations</string>
|
||||
<string name="about_the_app">About the app</string>
|
||||
<string name="source_code">Source code</string>
|
||||
<string name="issue_tracker">Issue tracker</string>
|
||||
<string name="license">License</string>
|
||||
<string name="about_vesrion">Release %1$s</string>
|
||||
<string name="about_the_app">A prepaus de la mapa</string>
|
||||
<string name="source_code">Còdi font</string>
|
||||
<string name="issue_tracker">Seguiment de bug</string>
|
||||
<string name="license">Licéncia</string>
|
||||
<string name="about_vesrion">Version %1$s</string>
|
||||
<string name="custom_nitter">Custom Nitter instance</string>
|
||||
<string name="save">Save</string>
|
||||
<string name="close">Close</string>
|
||||
<string name="close">Tancar</string>
|
||||
<string name="instances_saved">Custom instances have been saved!</string>
|
||||
<string name="custom_invidious">Custom Invidious instance</string>
|
||||
<string name="no_apps">No applications by default</string>
|
||||
|
@ -27,7 +27,9 @@
|
|||
<string name="redirect_youtube_to_invidious">Redirect YouTube to Invidious</string>
|
||||
<string name="redirect_twitter_to_nitter">Redirect Twitter to Nitter</string>
|
||||
<string name="redirect_instagram_to_bibliogram">Redirect Instagram to Bibliogram</string>
|
||||
<string name="redirect_reddit_to_teddit">Redirect Reddit to Teddit</string>
|
||||
<string name="custom_bibliogram">Custom Bibliogram instance</string>
|
||||
<string name="custom_teddit">Custom Teddit instance</string>
|
||||
<string name="redirect_gm_to_geo_uri">Redirect Google Map to Geo URI</string>
|
||||
<string name="configure">Configure</string>
|
||||
<string name="display_supported_links">Display supported links</string>
|
||||
|
@ -44,6 +46,7 @@
|
|||
<string name="invidious_instances">Invidious instances</string>
|
||||
<string name="nitter_instances">Nitter instances</string>
|
||||
<string name="bibliogram_instances">Bibliogram instances</string>
|
||||
<string name="teddit_instances">Teddit instances</string>
|
||||
<string name="latency">Latency</string>
|
||||
<string name="error_message_internet">Check your Internet connection</string>
|
||||
<string name="instance_label">Instance:</string>
|
||||
|
@ -73,7 +76,7 @@
|
|||
<string name="default_apps">Default apps</string>
|
||||
<string name="remove_from_default_app">Remove from default apps</string>
|
||||
<string name="delete">Delete</string>
|
||||
<string name="cancel">Cancel</string>
|
||||
<string name="cancel">Anullar</string>
|
||||
<string name="delete_app_from_default">Delete %1$s from default apps?</string>
|
||||
<string name="copy_done">Copied</string>
|
||||
<string name="no_apps_set_as_default">No apps set as default!</string>
|
||||
|
|
|
@ -27,7 +27,13 @@
|
|||
<string name="redirect_youtube_to_invidious">Przekieruj YouTube do Invidious</string>
|
||||
<string name="redirect_twitter_to_nitter">Przekieruj Twitter do Nitter</string>
|
||||
<string name="redirect_instagram_to_bibliogram">Przekieruj Instagram do Bibliogram</string>
|
||||
<string name="redirect_reddit_to_teddit">Przekieruj Reddit do Teddit</string>
|
||||
<string name="redirect_medium_to_scriberip">Przekieruj Medium do Scribe.rip</string>
|
||||
<string name="redirect_wikipedia_to_wikiless">Przekieruj Wikipedię do Wikiless</string>
|
||||
<string name="custom_bibliogram">Własna instancja Bibliogram</string>
|
||||
<string name="custom_scriberip">Własna instancja Scribe.rip</string>
|
||||
<string name="custom_wikiless">Własna instancja Wikiless</string>
|
||||
<string name="custom_teddit">Własna instancja Teddit</string>
|
||||
<string name="redirect_gm_to_geo_uri">Przekieruj Mapy Google do Geo URI</string>
|
||||
<string name="configure">Skonfiguruj</string>
|
||||
<string name="display_supported_links">Wyświetl obsługiwane linki</string>
|
||||
|
@ -44,6 +50,9 @@
|
|||
<string name="invidious_instances">Instancje Invidious</string>
|
||||
<string name="nitter_instances">Instancje Nitter</string>
|
||||
<string name="bibliogram_instances">Instancje Bibliogram</string>
|
||||
<string name="teddit_instances">Instancje Teddit</string>
|
||||
<string name="scribe_instances">Instancje Scribe</string>
|
||||
<string name="wikiless_instances">Instancje Wikiless</string>
|
||||
<string name="latency">Opóźnienie</string>
|
||||
<string name="error_message_internet">Sprawdź połączenie z internetem</string>
|
||||
<string name="instance_label">Instancja:</string>
|
||||
|
@ -116,6 +125,7 @@
|
|||
<string name="invidious_help_remove"><b>Usuń:</b> UntrackMe usunie parametr z adresu URL, jeśli istnieje</string>
|
||||
<string name="invidious_help_other">Jeśli wybierzesz inne wartości dla parametru, zostaną one dodane do adresu URL. Jeśli parametr już istnieje, jego wartość zostanie zmieniona na Twój wybór</string>
|
||||
<string name="invidious_help_explanations">[1] Parametr \'local\' jest domyślnie ustawiony na \'true\' dla lepszej ochrony prywatności</string>
|
||||
<string name="copy_url">Kopiuj Adres URL Do Schowka</string>
|
||||
<string-array name="invidious_theme">
|
||||
<item>Ignoruj</item>
|
||||
<item>Usuń</item>
|
||||
|
|
|
@ -15,10 +15,10 @@
|
|||
<string name="close">Fechar</string>
|
||||
<string name="instances_saved">Instâncias personalizadas foram salvas!</string>
|
||||
<string name="custom_invidious">Instância Invidious personalizada</string>
|
||||
<string name="no_apps">Nenhum aplicativo default</string>
|
||||
<string name="no_apps">Nenhum aplicativo por padrão</string>
|
||||
<string name="Donate">Doar</string>
|
||||
<string name="warning">Warning</string>
|
||||
<string name="error">Error</string>
|
||||
<string name="warning">Aviso</string>
|
||||
<string name="error">Erro</string>
|
||||
<string name="valid">Válido</string>
|
||||
<string name="icon_of_the_app">Ícone do app</string>
|
||||
<string name="open_with">Abrir com</string>
|
||||
|
@ -27,23 +27,32 @@
|
|||
<string name="redirect_youtube_to_invidious">Redirecionar YouTube para Invidious</string>
|
||||
<string name="redirect_twitter_to_nitter">Redirecionar Twitter para Nitter</string>
|
||||
<string name="redirect_instagram_to_bibliogram">Redirecionar o Instagram para a Bibliogram</string>
|
||||
<string name="custom_bibliogram">Instância Bibliogram personalizada</string>
|
||||
<string name="redirect_gm_to_geo_uri">Redirecionar Google Map para Geo URI</string>
|
||||
<string name="redirect_reddit_to_teddit">Redirecionar Reddit para Teddit</string>
|
||||
<string name="redirect_medium_to_scriberip">Redirect Medium to Scribe.rip</string>
|
||||
<string name="redirect_wikipedia_to_wikiless">Redirect Wikipedia to Wikiless</string>
|
||||
<string name="custom_bibliogram">Instância personalizada do Bibliogram</string>
|
||||
<string name="custom_scriberip">Custom Scribe.rip instance</string>
|
||||
<string name="custom_wikiless">Custom Wikiless instance</string>
|
||||
<string name="custom_teddit">Instância personalizada do Teddit</string>
|
||||
<string name="redirect_gm_to_geo_uri">Redirecionar Google Maps para Geo URI</string>
|
||||
<string name="configure">Configurar</string>
|
||||
<string name="display_supported_links">Exibir links aceitos</string>
|
||||
<string name="use_geo_uri">Use geo URI</string>
|
||||
<string name="how_to">Como</string>
|
||||
<string name="how_to">Instruções</string>
|
||||
<string name="shortened_detected">URL encurtada</string>
|
||||
<string name="shortener_services">Shortener services</string>
|
||||
<string name="open">Abertas</string>
|
||||
<string name="shortener_services">Serviços de encurtamento</string>
|
||||
<string name="open">Abrir</string>
|
||||
<string name="dismiss">Descartar</string>
|
||||
<string name="resolving_shortened">Resolvendo URL encurtada, por favor aguarde…</string>
|
||||
<string name="try_to_redirect">%1$s \n\nwill redirect you to\n\n<b>%2$s</b></string>
|
||||
<string name="try_to_redirect">%1$s \n\nirá te redirecionar para\n\n<b>%2$s</b></string>
|
||||
<string name="try_to_redirect_again">Então ele vai te redirecionar para\n\n<b>%1$s</b></string>
|
||||
<string name="the_app_failed_shortened">O app não conseguiu recuperar o URL completo</string>
|
||||
<string name="invidious_instances">Instâncias Invidious</string>
|
||||
<string name="nitter_instances">Instâncias Nitter</string>
|
||||
<string name="the_app_failed_shortened">O app não conseguiu obter o URL completo</string>
|
||||
<string name="invidious_instances">Instâncias do Invidious</string>
|
||||
<string name="nitter_instances">Instâncias do Nitter</string>
|
||||
<string name="bibliogram_instances">Instâncias Bibliogram</string>
|
||||
<string name="teddit_instances">Instâncias do Teddit</string>
|
||||
<string name="scribe_instances">Scribe instances</string>
|
||||
<string name="wikiless_instances">Wikiless instances</string>
|
||||
<string name="latency">Latência</string>
|
||||
<string name="error_message_internet">Verifique sua conexão com a Internet</string>
|
||||
<string name="instance_label">Instância:</string>
|
||||
|
@ -52,123 +61,124 @@
|
|||
<string name="instance_info">Informações sobre instâncias listadas</string>
|
||||
<string name="about_instances">A lista de instâncias vem de\n\n <a href="%1$s">%2$s</a>\n\nVocê pode contribuir para esta lista adicionando ou removendo instâncias.</string>
|
||||
<string name="about_instances_title">Sobre instâncias</string>
|
||||
<string name="use_built_in_player">Use the built-in player</string>
|
||||
<string name="share">Share</string>
|
||||
<string name="download">Download</string>
|
||||
<string name="share_with">Share with</string>
|
||||
<string name="check_apps">Check apps</string>
|
||||
<string name="select_instances">Select instances</string>
|
||||
<string name="continue_with">Continue with…</string>
|
||||
<string name="just_once">Just once</string>
|
||||
<string name="always">Always</string>
|
||||
<string name="default_app_indication">%1$s has been set as a default app.\nYou can remove this behavior from the app settings.</string>
|
||||
<string name="indication_error_title">There is something wrong with the configuration of the app. Please, follow these indications to fix that issue.</string>
|
||||
<string name="open_configure">1 - Tap on the \"CONFIGURE\" button above.</string>
|
||||
<string name="supported_url_indication_1">2 - You are now in app settings from your device. Tap on \"Set as default\".</string>
|
||||
<string name="display_indications_1_description">Screenshot showing app settings for the app. You have to Tap on \"Set as default\"</string>
|
||||
<string name="supported_url_indication_2">2 - Then tap on \"Go to supported URLs\".</string>
|
||||
<string name="display_indications_2_description">Screenshot showing app settings for the app. You have to Tap on \"Go to supported URLs\"</string>
|
||||
<string name="supported_url_indication_3">3 - In suggestions make sure to pickup \"Always ask\"</string>
|
||||
<string name="display_indications_3_description">Screenshot showing app settings to define the behavior for opening URLs</string>
|
||||
<string name="default_apps">Default apps</string>
|
||||
<string name="remove_from_default_app">Remove from default apps</string>
|
||||
<string name="delete">Delete</string>
|
||||
<string name="cancel">Cancel</string>
|
||||
<string name="delete_app_from_default">Delete %1$s from default apps?</string>
|
||||
<string name="copy_done">Copied</string>
|
||||
<string name="no_apps_set_as_default">No apps set as default!</string>
|
||||
<string name="custom_settings_for_invidious">Custom settings for Invidious</string>
|
||||
<string name="invidious_settings">Invidious settings</string>
|
||||
<string name="invidious_dark_mode_title">Theme</string>
|
||||
<string name="invidious_dark_mode_indication">Configure default theme without setting cookies</string>
|
||||
<string name="invidious_thin_mode_title">Thin mode</string>
|
||||
<string name="invidious_thin_mode_indication">Load HTML, CSS, JS and video elements (disables images)</string>
|
||||
<string name="invidious_language_mode_indication">Available locales</string>
|
||||
<string name="invidious_language_mode_title">UI Language</string>
|
||||
<string name="pref_invidious_head1">Site-wide parameters</string>
|
||||
<string name="pref_invidious_head2">Player parameters</string>
|
||||
<string name="invidious_annotations_mode_title">Annotations</string>
|
||||
<string name="invidious_annotations_mode_indication">Show legacy annotations, provided by the Internet Archive</string>
|
||||
<string name="invidious_autoplay_mode_indication">Automatically play video on load</string>
|
||||
<string name="invidious_autoplay_mode_title">Autoplay</string>
|
||||
<string name="invidious_continue_mode_title">Continue</string>
|
||||
<string name="invidious_continue_mode_indication">When video is done, automatically go to the next related video (similar to YouTube’s Autoplay feature)</string>
|
||||
<string name="invidious_listen_mode_title">Listen</string>
|
||||
<string name="invidious_listen_mode_indication">Play only audio portion of video</string>
|
||||
<string name="use_built_in_player">Usar o reprodutor interno</string>
|
||||
<string name="share">Compartilhar</string>
|
||||
<string name="download">Baixar</string>
|
||||
<string name="share_with">Compartilhar com</string>
|
||||
<string name="check_apps">Verificar apps</string>
|
||||
<string name="select_instances">Escolher instâncias</string>
|
||||
<string name="continue_with">Continuar com…</string>
|
||||
<string name="just_once">Só uma vez</string>
|
||||
<string name="always">Sempre</string>
|
||||
<string name="default_app_indication">%1$s foi definido como aplicativo padrão.\nVocê pode alterar isso nas configurações do app.</string>
|
||||
<string name="indication_error_title">Há algo errado com a configuração do aplicativo. Por favor, siga estas indicações para corrigir esse problema.</string>
|
||||
<string name="open_configure">1 - Toque no botão \"CONFIGURAR\" acima.</string>
|
||||
<string name="supported_url_indication_1">2 - Agora você está nas configurações do app do seu dispositivo. Toque em \"Definir como padrão\".</string>
|
||||
<string name="display_indications_1_description">Captura de tela mostrando as informações do aplicativo. Você precisa tocar em \"Definir como padrão\"</string>
|
||||
<string name="supported_url_indication_2">2 - Em seguida, toque em \"Abrir links compatíveis\".</string>
|
||||
<string name="display_indications_2_description">Captura de tela mostrando as informações do app. Você precisa tocar em \"Abrir links compatíveis\"</string>
|
||||
<string name="supported_url_indication_3">3 - Nas opções, escolha \"Perguntar sempre\"</string>
|
||||
<string name="display_indications_3_description">Captura de tela mostrando configurações de aplicativo para definir como abrir links</string>
|
||||
<string name="default_apps">Apps padrão</string>
|
||||
<string name="remove_from_default_app">Remover dos aplicativos padrão</string>
|
||||
<string name="delete">Remover</string>
|
||||
<string name="cancel">Cancelar</string>
|
||||
<string name="delete_app_from_default">Remover %1$s dos aplicativos padrão?</string>
|
||||
<string name="copy_done">Copiado</string>
|
||||
<string name="no_apps_set_as_default">Nenhum app definido como padrão!</string>
|
||||
<string name="custom_settings_for_invidious">Opções personalizadas para Invidious</string>
|
||||
<string name="invidious_settings">Opções do Invidious</string>
|
||||
<string name="invidious_dark_mode_title">Tema</string>
|
||||
<string name="invidious_dark_mode_indication">Configurar o tema padrão sem utilizar cookies</string>
|
||||
<string name="invidious_thin_mode_title">Modo leve</string>
|
||||
<string name="invidious_thin_mode_indication">Carregar elementos HTML, CSS, JS e vídeo (desativa imagens)</string>
|
||||
<string name="invidious_language_mode_indication">Idiomas disponíveis</string>
|
||||
<string name="invidious_language_mode_title">Idioma da interface</string>
|
||||
<string name="pref_invidious_head1">Parâmetros em todo site</string>
|
||||
<string name="pref_invidious_head2">Parâmetros do reprodutor</string>
|
||||
<string name="invidious_annotations_mode_title">Anotações</string>
|
||||
<string name="invidious_annotations_mode_indication">Mostrar anotações antigas, fornecidas pelo Internet Archive</string>
|
||||
<string name="invidious_autoplay_mode_indication">Reproduzir vídeo automaticamente ao carregar</string>
|
||||
<string name="invidious_autoplay_mode_title">Reprodução automática</string>
|
||||
<string name="invidious_continue_mode_title">Continuar</string>
|
||||
<string name="invidious_continue_mode_indication">Após um vídeo acabar, abrir automaticamente o próximo vídeo relacionado (semelhante à reprodução automática do YouTube)</string>
|
||||
<string name="invidious_listen_mode_title">Ouvir</string>
|
||||
<string name="invidious_listen_mode_indication">Reproduzir apenas o áudio do vídeo</string>
|
||||
<string name="invidious_local_mode_title">Local</string>
|
||||
<string name="invidious_local_mode_indication">Proxy video streams</string>
|
||||
<string name="invidious_subtitles_mode_title">Subtitles</string>
|
||||
<string name="invidious_subtitles_mode_indication">List of ISO 639–1 language codes</string>
|
||||
<string name="invidious_quality_mode_title">Quality</string>
|
||||
<string name="invidious_quality_mode_indication">Default player quality</string>
|
||||
<string name="invidious_loop_mode_title">Loop</string>
|
||||
<string name="invidious_subtitles_mode_title">Legendas</string>
|
||||
<string name="invidious_subtitles_mode_indication">Lista de códigos de idioma ISO 639-1</string>
|
||||
<string name="invidious_quality_mode_title">Qualidade</string>
|
||||
<string name="invidious_quality_mode_indication">Qualidade de vídeo padrão</string>
|
||||
<string name="invidious_loop_mode_title">Repetir</string>
|
||||
<string name="invidious_volume_mode_title">Volume</string>
|
||||
<string name="invidious_volume_mode_indication">Default player volume, can be any whole number between 0 and 100</string>
|
||||
<string name="invidious_loop_mode_indication">Loop player by default</string>
|
||||
<string name="invidious_volume_mode_value">Volume value</string>
|
||||
<string name="invidious_volume_mode_value_indication">Override the volume with this value</string>
|
||||
<string name="pref_invidious_head3">Player Style</string>
|
||||
<string name="invidious_player_style_mode_title">Appearance</string>
|
||||
<string name="invidious_player_style_mode_indication">Invidious, the default one. YouTube, using a centered play button and always visible video control bar</string>
|
||||
<string name="help">Help</string>
|
||||
<string name="invidious_help_title">Setting options</string>
|
||||
<string name="invidious_help_ignore"><b>Ignore:</b> This is the default action for all¹ parameters. This means UntrackMe will not do anything about the parameter</string>
|
||||
<string name="invidious_help_remove"><b>Remove:</b> UntrackMe will remove the parameter from URL, if it exists</string>
|
||||
<string name="invidious_help_other">If you select other values for a parameter, they will be added to the URL. If the parameter already exists, its value will be changed to your choice</string>
|
||||
<string name="invidious_help_explanations">[1] \'local\' parameter is set to \'true\' by default for better privacy</string>
|
||||
<string name="invidious_volume_mode_indication">Volume padrão do reprodutor, entre 0 e 100</string>
|
||||
<string name="invidious_loop_mode_indication">Repetir por padrão</string>
|
||||
<string name="invidious_volume_mode_value">Valor do volume</string>
|
||||
<string name="invidious_volume_mode_value_indication">Substituir o volume com este valor</string>
|
||||
<string name="pref_invidious_head3">Estilo do Reprodutor</string>
|
||||
<string name="invidious_player_style_mode_title">Aparência</string>
|
||||
<string name="invidious_player_style_mode_indication">Invidious, o padrão. YouTube, usando um botão play centralizado e controles de reprodução sempre visíveis</string>
|
||||
<string name="help">Ajuda</string>
|
||||
<string name="invidious_help_title">Definindo opções</string>
|
||||
<string name="invidious_help_ignore"><b>Ignorar:</b> Esta é a ação padrão para todos os parâmetros. Isso significa que UntrackMe não fará nada sobre o parâmetro</string>
|
||||
<string name="invidious_help_remove"><b>Remover:</b> O UntrackMe irá remover o parâmetro da URL, se ele existir</string>
|
||||
<string name="invidious_help_other">Se você selecionar outros valores para um parâmetro, eles serão adicionados à URL. Se o parâmetro já existir, seu valor será alterado para sua escolha</string>
|
||||
<string name="invidious_help_explanations">[1] O parâmetro \'local\' está definido como \'true\' por padrão para melhor privacidade</string>
|
||||
<string name="copy_url">Copiar URL para a Área de Transferência</string>
|
||||
<string-array name="invidious_theme">
|
||||
<item>Ignore</item>
|
||||
<item>Remove</item>
|
||||
<item>Dark theme</item>
|
||||
<item>Light theme</item>
|
||||
<item>Ignorar</item>
|
||||
<item>Excluir</item>
|
||||
<item>Tema escuro</item>
|
||||
<item>Tema claro</item>
|
||||
</string-array>
|
||||
<string-array name="invidious_enable">
|
||||
<item>Ignore</item>
|
||||
<item>Remove</item>
|
||||
<item>Enabled</item>
|
||||
<item>Disabled</item>
|
||||
<item>Ignorar</item>
|
||||
<item>Excluir</item>
|
||||
<item>Habilitado</item>
|
||||
<item>Desativado</item>
|
||||
</string-array>
|
||||
<string-array name="invidious_language">
|
||||
<item>Ignore</item>
|
||||
<item>Remove</item>
|
||||
<item>Arabic</item>
|
||||
<item>German</item>
|
||||
<item>Greek</item>
|
||||
<item>English</item>
|
||||
<item>Ignorar</item>
|
||||
<item>Excluir</item>
|
||||
<item>Árabe</item>
|
||||
<item>Alemão</item>
|
||||
<item>Grego</item>
|
||||
<item>Inglês</item>
|
||||
<item>Esperanto</item>
|
||||
<item>Spanish</item>
|
||||
<item>Basque</item>
|
||||
<item>French</item>
|
||||
<item>Icelandic</item>
|
||||
<item>Italian</item>
|
||||
<item>Norwegian Bokmål</item>
|
||||
<item>Dutch</item>
|
||||
<item>Polish</item>
|
||||
<item>Russian</item>
|
||||
<item>Ukrainian</item>
|
||||
<item>Chinese</item>
|
||||
<item>Espanhol</item>
|
||||
<item>Basco</item>
|
||||
<item>Francês</item>
|
||||
<item>Islandês</item>
|
||||
<item>Italiano</item>
|
||||
<item>Norueguês Bokmahl</item>
|
||||
<item>Holandês</item>
|
||||
<item>Polonês</item>
|
||||
<item>Russo</item>
|
||||
<item>Ucraniano</item>
|
||||
<item>Chinês</item>
|
||||
</string-array>
|
||||
<string-array name="invidious_annotations">
|
||||
<item>Ignore</item>
|
||||
<item>Remove</item>
|
||||
<item>Show annotations</item>
|
||||
<item>Hide annotations</item>
|
||||
<item>Ignorar</item>
|
||||
<item>Excluir</item>
|
||||
<item>Mostrar anotações</item>
|
||||
<item>Ocultar anotações</item>
|
||||
</string-array>
|
||||
<string-array name="invidious_quality">
|
||||
<item>Ignore</item>
|
||||
<item>Remove</item>
|
||||
<item>Ignorar</item>
|
||||
<item>Excluir</item>
|
||||
<item>DASH</item>
|
||||
<item>720p</item>
|
||||
<item>480p</item>
|
||||
</string-array>
|
||||
<string-array name="invidious_volume">
|
||||
<item>Ignore</item>
|
||||
<item>Remove</item>
|
||||
<item>Custom</item>
|
||||
<item>Ignorar</item>
|
||||
<item>Excluir</item>
|
||||
<item>Personalizado</item>
|
||||
</string-array>
|
||||
<string-array name="invidious_player_style">
|
||||
<item>Ignore</item>
|
||||
<item>Remove</item>
|
||||
<item>Ignorar</item>
|
||||
<item>Excluir</item>
|
||||
<item>Invidious</item>
|
||||
<item>Youtube</item>
|
||||
</string-array>
|
||||
|
|
|
@ -27,7 +27,13 @@
|
|||
<string name="redirect_youtube_to_invidious">Redirecionar YouTube para Invidious</string>
|
||||
<string name="redirect_twitter_to_nitter">Redirecionar Twitter para Nitter</string>
|
||||
<string name="redirect_instagram_to_bibliogram">Redirecionar o Instagram para a Bibliogram</string>
|
||||
<string name="redirect_reddit_to_teddit">Redirect Reddit to Teddit</string>
|
||||
<string name="redirect_medium_to_scriberip">Redirect Medium to Scribe.rip</string>
|
||||
<string name="redirect_wikipedia_to_wikiless">Redirect Wikipedia to Wikiless</string>
|
||||
<string name="custom_bibliogram">Instância Bibliograma personalizada</string>
|
||||
<string name="custom_scriberip">Custom Scribe.rip instance</string>
|
||||
<string name="custom_wikiless">Custom Wikiless instance</string>
|
||||
<string name="custom_teddit">Custom Teddit instance</string>
|
||||
<string name="redirect_gm_to_geo_uri">Redirecionar Google Map para o Geo-URI</string>
|
||||
<string name="configure">Configurar</string>
|
||||
<string name="display_supported_links">Mostrar links suportados</string>
|
||||
|
@ -44,6 +50,9 @@
|
|||
<string name="invidious_instances">Instâncias Invidious</string>
|
||||
<string name="nitter_instances">Instâncias de Nitter</string>
|
||||
<string name="bibliogram_instances">Instâncias Bibliogram</string>
|
||||
<string name="teddit_instances">Teddit instances</string>
|
||||
<string name="scribe_instances">Scribe instances</string>
|
||||
<string name="wikiless_instances">Wikiless instances</string>
|
||||
<string name="latency">Latência</string>
|
||||
<string name="error_message_internet">Verifique a sua ligação à internet</string>
|
||||
<string name="instance_label">Instância:</string>
|
||||
|
@ -116,6 +125,7 @@
|
|||
<string name="invidious_help_remove"><b>Remover:</b> O UntrackMe irá remover o parâmetro da URL, se ele existir</string>
|
||||
<string name="invidious_help_other">Se você selecionar outros valores para um parâmetro, eles serão adicionados à URL. Se o parâmetro já existir, seu valor será alterado à sua escolha</string>
|
||||
<string name="invidious_help_explanations">[1] O parâmetro \'local\' está definido como \'true\' por padrão para melhor privacidade</string>
|
||||
<string name="copy_url">Copy URL To Clipboard</string>
|
||||
<string-array name="invidious_theme">
|
||||
<item>Ignorar</item>
|
||||
<item>Remover</item>
|
||||
|
|
|
@ -1,33 +1,35 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<!-- Some local values -->
|
||||
<string name="action_settings">Settings</string>
|
||||
<string name="action_about">About</string>
|
||||
<string name="developer">Developer</string>
|
||||
<string name="action_settings">Setări</string>
|
||||
<string name="action_about">Despre</string>
|
||||
<string name="developer">Programator</string>
|
||||
<string name="donations">Donations</string>
|
||||
<string name="about_the_app">About the app</string>
|
||||
<string name="source_code">Source code</string>
|
||||
<string name="issue_tracker">Issue tracker</string>
|
||||
<string name="license">License</string>
|
||||
<string name="about_vesrion">Release %1$s</string>
|
||||
<string name="about_vesrion">Lansare %1$s</string>
|
||||
<string name="custom_nitter">Custom Nitter instance</string>
|
||||
<string name="save">Save</string>
|
||||
<string name="close">Close</string>
|
||||
<string name="save">Salvează</string>
|
||||
<string name="close">Închide</string>
|
||||
<string name="instances_saved">Custom instances have been saved!</string>
|
||||
<string name="custom_invidious">Custom Invidious instance</string>
|
||||
<string name="no_apps">No applications by default</string>
|
||||
<string name="Donate">Donate</string>
|
||||
<string name="warning">Warning</string>
|
||||
<string name="warning">Atenționare</string>
|
||||
<string name="error">Error</string>
|
||||
<string name="valid">Valid</string>
|
||||
<string name="icon_of_the_app">Icon of the app</string>
|
||||
<string name="open_with">Open with</string>
|
||||
<string name="open_with">Deschide cu</string>
|
||||
<string name="redirect_gm_to_osm">Redirect Google Map to OpenStreetMap</string>
|
||||
<string name="custom_osm">Custom OSM hostname</string>
|
||||
<string name="redirect_youtube_to_invidious">Redirect YouTube to Invidious</string>
|
||||
<string name="redirect_twitter_to_nitter">Redirect Twitter to Nitter</string>
|
||||
<string name="redirect_instagram_to_bibliogram">Redirect Instagram to Bibliogram</string>
|
||||
<string name="redirect_reddit_to_teddit">Redirect Reddit to Teddit</string>
|
||||
<string name="custom_bibliogram">Custom Bibliogram instance</string>
|
||||
<string name="custom_teddit">Custom Teddit instance</string>
|
||||
<string name="redirect_gm_to_geo_uri">Redirect Google Map to Geo URI</string>
|
||||
<string name="configure">Configure</string>
|
||||
<string name="display_supported_links">Display supported links</string>
|
||||
|
@ -44,23 +46,24 @@
|
|||
<string name="invidious_instances">Invidious instances</string>
|
||||
<string name="nitter_instances">Nitter instances</string>
|
||||
<string name="bibliogram_instances">Bibliogram instances</string>
|
||||
<string name="teddit_instances">Teddit instances</string>
|
||||
<string name="latency">Latency</string>
|
||||
<string name="error_message_internet">Check your Internet connection</string>
|
||||
<string name="instance_label">Instance:</string>
|
||||
<string name="instance_label">Instanță:</string>
|
||||
<string name="expand_instance_details">Expand instance details</string>
|
||||
<string name="cloudflare">This instance uses Cloudflare</string>
|
||||
<string name="instance_info">Information about listed instances</string>
|
||||
<string name="about_instances">The list of instances comes from\n\n <a href="%1$s">%2$s</a>\n\nYou can contribute to this list by adding or removing instances.</string>
|
||||
<string name="about_instances_title">About instances</string>
|
||||
<string name="use_built_in_player">Use the built-in player</string>
|
||||
<string name="share">Share</string>
|
||||
<string name="download">Download</string>
|
||||
<string name="share_with">Share with</string>
|
||||
<string name="share">Distribuie</string>
|
||||
<string name="download">Descărcați</string>
|
||||
<string name="share_with">Distribuie cu</string>
|
||||
<string name="check_apps">Check apps</string>
|
||||
<string name="select_instances">Select instances</string>
|
||||
<string name="continue_with">Continue with…</string>
|
||||
<string name="just_once">Just once</string>
|
||||
<string name="always">Always</string>
|
||||
<string name="always">Întotdeauna</string>
|
||||
<string name="default_app_indication">%1$s has been set as a default app.\nYou can remove this behavior from the app settings.</string>
|
||||
<string name="indication_error_title">There is something wrong with the configuration of the app. Please, follow these indications to fix that issue.</string>
|
||||
<string name="open_configure">1 - Tap on the \"CONFIGURE\" button above.</string>
|
||||
|
@ -72,8 +75,8 @@
|
|||
<string name="display_indications_3_description">Screenshot showing app settings to define the behavior for opening URLs</string>
|
||||
<string name="default_apps">Default apps</string>
|
||||
<string name="remove_from_default_app">Remove from default apps</string>
|
||||
<string name="delete">Delete</string>
|
||||
<string name="cancel">Cancel</string>
|
||||
<string name="delete">Șterge</string>
|
||||
<string name="cancel">Anulare</string>
|
||||
<string name="delete_app_from_default">Delete %1$s from default apps?</string>
|
||||
<string name="copy_done">Copied</string>
|
||||
<string name="no_apps_set_as_default">No apps set as default!</string>
|
||||
|
@ -118,19 +121,19 @@
|
|||
<string name="invidious_help_explanations">[1] \'local\' parameter is set to \'true\' by default for better privacy</string>
|
||||
<string-array name="invidious_theme">
|
||||
<item>Ignore</item>
|
||||
<item>Remove</item>
|
||||
<item>Elimină</item>
|
||||
<item>Dark theme</item>
|
||||
<item>Light theme</item>
|
||||
</string-array>
|
||||
<string-array name="invidious_enable">
|
||||
<item>Ignore</item>
|
||||
<item>Remove</item>
|
||||
<item>Elimină</item>
|
||||
<item>Enabled</item>
|
||||
<item>Disabled</item>
|
||||
</string-array>
|
||||
<string-array name="invidious_language">
|
||||
<item>Ignore</item>
|
||||
<item>Remove</item>
|
||||
<item>Elimină</item>
|
||||
<item>Arabic</item>
|
||||
<item>German</item>
|
||||
<item>Greek</item>
|
||||
|
@ -150,25 +153,25 @@
|
|||
</string-array>
|
||||
<string-array name="invidious_annotations">
|
||||
<item>Ignore</item>
|
||||
<item>Remove</item>
|
||||
<item>Elimină</item>
|
||||
<item>Show annotations</item>
|
||||
<item>Hide annotations</item>
|
||||
</string-array>
|
||||
<string-array name="invidious_quality">
|
||||
<item>Ignore</item>
|
||||
<item>Remove</item>
|
||||
<item>Elimină</item>
|
||||
<item>DASH</item>
|
||||
<item>720p</item>
|
||||
<item>480p</item>
|
||||
</string-array>
|
||||
<string-array name="invidious_volume">
|
||||
<item>Ignore</item>
|
||||
<item>Remove</item>
|
||||
<item>Elimină</item>
|
||||
<item>Custom</item>
|
||||
</string-array>
|
||||
<string-array name="invidious_player_style">
|
||||
<item>Ignore</item>
|
||||
<item>Remove</item>
|
||||
<item>Elimină</item>
|
||||
<item>Invidious</item>
|
||||
<item>Youtube</item>
|
||||
</string-array>
|
||||
|
|
|
@ -27,7 +27,13 @@
|
|||
<string name="redirect_youtube_to_invidious">Перенаправлять YouTube на Invidious</string>
|
||||
<string name="redirect_twitter_to_nitter">Перенаправлять Twitter на Nitter</string>
|
||||
<string name="redirect_instagram_to_bibliogram">Перенаправлять Instagram на Bibliogram</string>
|
||||
<string name="redirect_reddit_to_teddit">Перенаправить Reddit на Teddit</string>
|
||||
<string name="redirect_medium_to_scriberip">Redirect Medium to Scribe.rip</string>
|
||||
<string name="redirect_wikipedia_to_wikiless">Redirect Wikipedia to Wikiless</string>
|
||||
<string name="custom_bibliogram">Пользовательский сервер Bibliogram</string>
|
||||
<string name="custom_scriberip">Custom Scribe.rip instance</string>
|
||||
<string name="custom_wikiless">Custom Wikiless instance</string>
|
||||
<string name="custom_teddit">Пользовательский сервер Teddit</string>
|
||||
<string name="redirect_gm_to_geo_uri">Перенаправлять Google Карты на Geo URI</string>
|
||||
<string name="configure">Настроить</string>
|
||||
<string name="display_supported_links">Показать поддерживаемые ссылки</string>
|
||||
|
@ -44,6 +50,9 @@
|
|||
<string name="invidious_instances">Сервера Invidious</string>
|
||||
<string name="nitter_instances">Сервера Nitter</string>
|
||||
<string name="bibliogram_instances">Сервера Bibliogram</string>
|
||||
<string name="teddit_instances">Сервера Teddit</string>
|
||||
<string name="scribe_instances">Scribe instances</string>
|
||||
<string name="wikiless_instances">Wikiless instances</string>
|
||||
<string name="latency">Задержка</string>
|
||||
<string name="error_message_internet">Проверьте подключение к Интернету</string>
|
||||
<string name="instance_label">Сервер:</string>
|
||||
|
@ -116,6 +125,7 @@
|
|||
<string name="invidious_help_remove"><b>Удалить:</b> UntrackMe удалит параметр из URL, если он существует</string>
|
||||
<string name="invidious_help_other">Если вы выбирете другие значения параметра, они будут добавлены в URL. Если параметр уже существует, его значение будет изменено на ваше</string>
|
||||
<string name="invidious_help_explanations">[1] параметр \'local\' по умолчанию имеет значение \'true\' для большей конфиденциальности</string>
|
||||
<string name="copy_url">Copy URL To Clipboard</string>
|
||||
<string-array name="invidious_theme">
|
||||
<item>Игнорировать</item>
|
||||
<item>Удалить</item>
|
||||
|
|
|
@ -0,0 +1,185 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<!-- Some local values -->
|
||||
<string name="action_settings">Impostatziones</string>
|
||||
<string name="action_about">Informatziones</string>
|
||||
<string name="developer">Isvilupadore</string>
|
||||
<string name="donations">Donatziones</string>
|
||||
<string name="about_the_app">Informatziones in subra de s\'aplicatzione</string>
|
||||
<string name="source_code">Còdighe de orìgine</string>
|
||||
<string name="issue_tracker">Sinnaladore de problemas</string>
|
||||
<string name="license">Litzèntzia</string>
|
||||
<string name="about_vesrion">Versione %1$s</string>
|
||||
<string name="custom_nitter">Istàntzia personalizada de Nitter</string>
|
||||
<string name="save">Sarva</string>
|
||||
<string name="close">Serra</string>
|
||||
<string name="instances_saved">Sas istàntzias personalizadas sunt istadas sarvadas!</string>
|
||||
<string name="custom_invidious">Istàntzia personalizada de Invidious</string>
|
||||
<string name="no_apps">Peruna aplicatzione predefinida</string>
|
||||
<string name="Donate">Dona</string>
|
||||
<string name="warning">Avisu</string>
|
||||
<string name="error">Faddina</string>
|
||||
<string name="valid">Vàlidu</string>
|
||||
<string name="icon_of_the_app">Icona de s\'aplicatzione</string>
|
||||
<string name="open_with">Aberi cun</string>
|
||||
<string name="redirect_gm_to_osm">Torra a indiritzare Google Maps cara a OpenStreetMap</string>
|
||||
<string name="custom_osm">Nùmene de istrangiadore (host) de OSM personalizadu</string>
|
||||
<string name="redirect_youtube_to_invidious">Torra a indiritzare YouTube cara a Invidious</string>
|
||||
<string name="redirect_twitter_to_nitter">Torra a indiritzare Twitter cara a Nitter</string>
|
||||
<string name="redirect_instagram_to_bibliogram">Torra a indiritzare Instagram cara a Bibliogram</string>
|
||||
<string name="redirect_reddit_to_teddit">Torra a indiritzare Reddit cara a Teddit</string>
|
||||
<string name="redirect_medium_to_scriberip">Torra a indiritzare Medium cara a Scribe.rip</string>
|
||||
<string name="redirect_wikipedia_to_wikiless">Torra a indiritzare Wikipedia cara a Wikiless</string>
|
||||
<string name="custom_bibliogram">Istàntzia personalizada de Bibliogram</string>
|
||||
<string name="custom_scriberip">Istàntzia personalizada de Scribe.rip</string>
|
||||
<string name="custom_wikiless">Istàntzia personalizada de Wikiless</string>
|
||||
<string name="custom_teddit">Istàntzia personalizada de Teddit</string>
|
||||
<string name="redirect_gm_to_geo_uri">Torra a indiritzare Google Map cara a Geo URI</string>
|
||||
<string name="configure">Cunfigura</string>
|
||||
<string name="display_supported_links">Ammustra sos ligàmenes suportados</string>
|
||||
<string name="use_geo_uri">Imprea geo URI</string>
|
||||
<string name="how_to">Comente fàghere</string>
|
||||
<string name="shortened_detected">URL incurtzadu</string>
|
||||
<string name="shortener_services">Servìtzios de incurtzadura</string>
|
||||
<string name="open">Aberi</string>
|
||||
<string name="dismiss">Iscarta</string>
|
||||
<string name="resolving_shortened">Risolvende s\'URL incurtzadu. Iseta…</string>
|
||||
<string name="try_to_redirect">%1$s \n\nt\'at a torrare a indiritzare cara a\n\n<b>%2$s</b></string>
|
||||
<string name="try_to_redirect_again">E a pustis t\'at a torrare a indiritzare cara a\n\n<b>%1$s</b></string>
|
||||
<string name="the_app_failed_shortened">Custa aplicatzione no est resèssida a recuperare s\'URL intreu</string>
|
||||
<string name="invidious_instances">Istàntzias de Invidious</string>
|
||||
<string name="nitter_instances">Istàntzias de Nitter</string>
|
||||
<string name="bibliogram_instances">Istàntzias de Bibliogram</string>
|
||||
<string name="teddit_instances">Istàntzias de Teddit</string>
|
||||
<string name="scribe_instances">Istàntzias de Scribe</string>
|
||||
<string name="wikiless_instances">Istàntzias de Wikiless</string>
|
||||
<string name="latency">Latèntzia</string>
|
||||
<string name="error_message_internet">Verìfica sa connessione a ìnternet tua</string>
|
||||
<string name="instance_label">Istàntzia:</string>
|
||||
<string name="expand_instance_details">Ismànnia sos detàllios de s\'istàntzia</string>
|
||||
<string name="cloudflare">Custa istàntzia impreat Cloudflare</string>
|
||||
<string name="instance_info">Informatziones in subra de sas istàntzias allistadas</string>
|
||||
<string name="about_instances">Sa lista de sas istàntzias benit dae\n\n <a href="%1$s">%2$s</a>\n\nPodes contribuire a custa lista annanghende o boghende istàntzias.</string>
|
||||
<string name="about_instances_title">Informatziones in subra de sas istàntzias</string>
|
||||
<string name="use_built_in_player">Imprea su riproduidore integradu</string>
|
||||
<string name="share">Cumpartzi</string>
|
||||
<string name="download">Iscàrriga</string>
|
||||
<string name="share_with">Cumpartzi cun</string>
|
||||
<string name="check_apps">Verìfica sas aplicatziones</string>
|
||||
<string name="select_instances">Ischerta sas istàntzias</string>
|
||||
<string name="continue_with">Sighi cun…</string>
|
||||
<string name="just_once">Una borta ebbia</string>
|
||||
<string name="always">Semper</string>
|
||||
<string name="default_app_indication">%1$s est istada impostada comente aplicatzione predefinida.\n Podes bogare custu cumportamentu dae sas impostatziones de s\'aplicatzione.</string>
|
||||
<string name="indication_error_title">B\'at carchi cosa de isballiadu cun sa cunfiguratzione de s\'aplicatzione. Sighi custas indicatziones pro risòlvere su problema.</string>
|
||||
<string name="open_configure">1 - Incarca in su butone \"CUNFIGURA\" in subra.</string>
|
||||
<string name="supported_url_indication_1">2 - Como ses in sas impostatziones de s\'aplicatzione dae su dispositivu tuo. Incarca in \"Imposta comente predefinida\".</string>
|
||||
<string name="display_indications_1_description">Ischermada chi ammustrat sas impostatziones pro s\'aplicatzione. Depes incarcare in \"Imposta comente predefinida\"</string>
|
||||
<string name="supported_url_indication_2">2 - A pustis incarca in \"Bae a sos URL suportados\".</string>
|
||||
<string name="display_indications_2_description">Ischermada chi ammustrat sas impostatziones pro s\'aplicatzione. Depes incarcare in \"Bae a sos URL suportados\"</string>
|
||||
<string name="supported_url_indication_3">3 - In sos impòsitos assegura·ti de isseberare \"Pedi semper\"</string>
|
||||
<string name="display_indications_3_description">Ischermada chi ammustrat sas impostatziones de s\'aplicatzione pro definire su cumportamentu pro s\'abertura de sos URL</string>
|
||||
<string name="default_apps">Aplicatziones predefinidas</string>
|
||||
<string name="remove_from_default_app">Boga dae sas aplicatziones predefinidas</string>
|
||||
<string name="delete">Iscantzella</string>
|
||||
<string name="cancel">Annulla</string>
|
||||
<string name="delete_app_from_default">Iscantzellare %1$s dae sas aplicatziones predefinidas?</string>
|
||||
<string name="copy_done">Copiadu</string>
|
||||
<string name="no_apps_set_as_default">Peruna aplicatzione impostada comente predefinida!</string>
|
||||
<string name="custom_settings_for_invidious">Impostatziones personalizadas pro Invidious</string>
|
||||
<string name="invidious_settings">Impostatziones de Invidious</string>
|
||||
<string name="invidious_dark_mode_title">Tema</string>
|
||||
<string name="invidious_dark_mode_indication">Cunfigura su tema predefinidu chene impostare sos testimòngios</string>
|
||||
<string name="invidious_thin_mode_title">Modalidade sùtile</string>
|
||||
<string name="invidious_thin_mode_indication">Càrriga elementos HTML, CSS, JS e vìdeos (disabìlitat sas immàgines)</string>
|
||||
<string name="invidious_language_mode_indication">Limbas a disponimentu</string>
|
||||
<string name="invidious_language_mode_title">Limba de interfache de s\'utente</string>
|
||||
<string name="pref_invidious_head1">Paràmetros pro totu su situ</string>
|
||||
<string name="pref_invidious_head2">Paràmetros de su riproduidore</string>
|
||||
<string name="invidious_annotations_mode_title">Annotatziones</string>
|
||||
<string name="invidious_annotations_mode_indication">Ammustra sas annotatziones betzas, frunidas dae s\'Internet Archive</string>
|
||||
<string name="invidious_autoplay_mode_indication">Riprodui automaticamente su vìdeu a su carrigamentu</string>
|
||||
<string name="invidious_autoplay_mode_title">Riprodutzione automàtica</string>
|
||||
<string name="invidious_continue_mode_title">Sighi</string>
|
||||
<string name="invidious_continue_mode_indication">Cando su vìdeu est agabbadu bae automaticamente a su vìdeu ligadu chi benit (in manera simigiante a sa funtzionalidade de riprodutzione automàtica de YouTube)</string>
|
||||
<string name="invidious_listen_mode_title">Ascurta</string>
|
||||
<string name="invidious_listen_mode_indication">Riprodui petzi sa parte sonora de su vìdeu</string>
|
||||
<string name="invidious_local_mode_title">Locale</string>
|
||||
<string name="invidious_local_mode_indication">Faghe colare sos flussos de sos vìdeos in su serbidore intermediàriu (proxy)</string>
|
||||
<string name="invidious_subtitles_mode_title">Sutatìtulos</string>
|
||||
<string name="invidious_subtitles_mode_indication">Lista de còdighes linguìsticos ISO 639-1</string>
|
||||
<string name="invidious_quality_mode_title">Calidade</string>
|
||||
<string name="invidious_quality_mode_indication">Calidade predefinida de su riproduidore</string>
|
||||
<string name="invidious_loop_mode_title">Ripetitzione</string>
|
||||
<string name="invidious_volume_mode_title">Volume</string>
|
||||
<string name="invidious_volume_mode_indication">Su volume predefinidu de su riproduidore. Podet èssere cale si siat nùmeru intre 0 e 100</string>
|
||||
<string name="invidious_loop_mode_indication">Repite comente impostatzione predefinida</string>
|
||||
<string name="invidious_volume_mode_value">Valore de su volume</string>
|
||||
<string name="invidious_volume_mode_value_indication">Subraiscrie su volume cun custu valore</string>
|
||||
<string name="pref_invidious_head3">Istile de su riproduidore</string>
|
||||
<string name="invidious_player_style_mode_title">Aparèntzia</string>
|
||||
<string name="invidious_player_style_mode_indication">Invidious, su predefinidu. YouTube, impreende unu butone de riprodutzione tzentradu e una barra de controllu de su vìdeu semper visìbile</string>
|
||||
<string name="help">Agiudu</string>
|
||||
<string name="invidious_help_title">Optziones de impostatzione</string>
|
||||
<string name="invidious_help_ignore"><b>Ignora:</b> Custa est s\'atzione predefinida pro totu¹ sos paràmetros. Custu cheret nàrrere chi UntrackMe no at a fàghere nudda pro su chi pertocat a su paràmetru</string>
|
||||
<string name="invidious_help_remove"><b>Boga:</b> UntrackMe at a bogare su paràmetru dae s\'URL, si esistit</string>
|
||||
<string name="invidious_help_other">Si ischertas àteros valores pro unu paràmetru s\'ant a annànghere a s\'URL. Si su paràmetru esistit giai su valore suo s\'at a cambiare cun s\'issèberu tuo</string>
|
||||
<string name="invidious_help_explanations">[1] su paràmetru \'local\' est impostadu comente \'true\' in sas impostatziones predefinidas pro una riservadesa prus manna</string>
|
||||
<string name="copy_url">Còpia s\'URL in punta de billete</string>
|
||||
<string-array name="invidious_theme">
|
||||
<item>Ignora</item>
|
||||
<item>Boga</item>
|
||||
<item>Tema iscuru</item>
|
||||
<item>Tema craru</item>
|
||||
</string-array>
|
||||
<string-array name="invidious_enable">
|
||||
<item>Ignora</item>
|
||||
<item>Boga</item>
|
||||
<item>Abilitadu</item>
|
||||
<item>Disabilitadu</item>
|
||||
</string-array>
|
||||
<string-array name="invidious_language">
|
||||
<item>Ignora</item>
|
||||
<item>Boga</item>
|
||||
<item>Àrabu</item>
|
||||
<item>Tedescu</item>
|
||||
<item>Grecu</item>
|
||||
<item>Inglesu</item>
|
||||
<item>Esperanto</item>
|
||||
<item>Ispagnolu</item>
|
||||
<item>Bascu</item>
|
||||
<item>Frantzesu</item>
|
||||
<item>Islandesu</item>
|
||||
<item>Italianu</item>
|
||||
<item>Norvegesu Bokmål</item>
|
||||
<item>Olandesu</item>
|
||||
<item>Polacu</item>
|
||||
<item>Russu</item>
|
||||
<item>Ucrainu</item>
|
||||
<item>Tzinesu</item>
|
||||
</string-array>
|
||||
<string-array name="invidious_annotations">
|
||||
<item>Ignora</item>
|
||||
<item>Boga</item>
|
||||
<item>Ammustra sas annotatziones</item>
|
||||
<item>Cua sas annotatziones</item>
|
||||
</string-array>
|
||||
<string-array name="invidious_quality">
|
||||
<item>Ignora</item>
|
||||
<item>Boga</item>
|
||||
<item>DASH</item>
|
||||
<item>720p</item>
|
||||
<item>480p</item>
|
||||
</string-array>
|
||||
<string-array name="invidious_volume">
|
||||
<item>Ignora</item>
|
||||
<item>Boga</item>
|
||||
<item>Personalizadu</item>
|
||||
</string-array>
|
||||
<string-array name="invidious_player_style">
|
||||
<item>Ignora</item>
|
||||
<item>Boga</item>
|
||||
<item>Invidious</item>
|
||||
<item>Youtube</item>
|
||||
</string-array>
|
||||
</resources>
|
|
@ -1,33 +1,35 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<!-- Some local values -->
|
||||
<string name="action_settings">Settings</string>
|
||||
<string name="action_about">About</string>
|
||||
<string name="developer">Developer</string>
|
||||
<string name="action_settings">Подешавања</string>
|
||||
<string name="action_about">О програму</string>
|
||||
<string name="developer">Програмер</string>
|
||||
<string name="donations">Donations</string>
|
||||
<string name="about_the_app">About the app</string>
|
||||
<string name="source_code">Source code</string>
|
||||
<string name="issue_tracker">Issue tracker</string>
|
||||
<string name="license">License</string>
|
||||
<string name="about_vesrion">Release %1$s</string>
|
||||
<string name="license">Лиценца</string>
|
||||
<string name="about_vesrion">Издање %1$s</string>
|
||||
<string name="custom_nitter">Custom Nitter instance</string>
|
||||
<string name="save">Save</string>
|
||||
<string name="close">Close</string>
|
||||
<string name="save">Сачувај</string>
|
||||
<string name="close">Затвори</string>
|
||||
<string name="instances_saved">Custom instances have been saved!</string>
|
||||
<string name="custom_invidious">Custom Invidious instance</string>
|
||||
<string name="no_apps">No applications by default</string>
|
||||
<string name="Donate">Donate</string>
|
||||
<string name="warning">Warning</string>
|
||||
<string name="warning">Упозорење</string>
|
||||
<string name="error">Error</string>
|
||||
<string name="valid">Valid</string>
|
||||
<string name="icon_of_the_app">Icon of the app</string>
|
||||
<string name="open_with">Open with</string>
|
||||
<string name="open_with">Отворите помоћу</string>
|
||||
<string name="redirect_gm_to_osm">Redirect Google Map to OpenStreetMap</string>
|
||||
<string name="custom_osm">Custom OSM hostname</string>
|
||||
<string name="redirect_youtube_to_invidious">Redirect YouTube to Invidious</string>
|
||||
<string name="redirect_twitter_to_nitter">Redirect Twitter to Nitter</string>
|
||||
<string name="redirect_instagram_to_bibliogram">Redirect Instagram to Bibliogram</string>
|
||||
<string name="redirect_reddit_to_teddit">Redirect Reddit to Teddit</string>
|
||||
<string name="custom_bibliogram">Custom Bibliogram instance</string>
|
||||
<string name="custom_teddit">Custom Teddit instance</string>
|
||||
<string name="redirect_gm_to_geo_uri">Redirect Google Map to Geo URI</string>
|
||||
<string name="configure">Configure</string>
|
||||
<string name="display_supported_links">Display supported links</string>
|
||||
|
@ -44,23 +46,24 @@
|
|||
<string name="invidious_instances">Invidious instances</string>
|
||||
<string name="nitter_instances">Nitter instances</string>
|
||||
<string name="bibliogram_instances">Bibliogram instances</string>
|
||||
<string name="teddit_instances">Teddit instances</string>
|
||||
<string name="latency">Latency</string>
|
||||
<string name="error_message_internet">Check your Internet connection</string>
|
||||
<string name="instance_label">Instance:</string>
|
||||
<string name="instance_label">Инстанца:</string>
|
||||
<string name="expand_instance_details">Expand instance details</string>
|
||||
<string name="cloudflare">This instance uses Cloudflare</string>
|
||||
<string name="instance_info">Information about listed instances</string>
|
||||
<string name="about_instances">The list of instances comes from\n\n <a href="%1$s">%2$s</a>\n\nYou can contribute to this list by adding or removing instances.</string>
|
||||
<string name="about_instances_title">About instances</string>
|
||||
<string name="use_built_in_player">Use the built-in player</string>
|
||||
<string name="share">Share</string>
|
||||
<string name="download">Download</string>
|
||||
<string name="share_with">Share with</string>
|
||||
<string name="share">Подели</string>
|
||||
<string name="download">Преузми</string>
|
||||
<string name="share_with">Поделите са</string>
|
||||
<string name="check_apps">Check apps</string>
|
||||
<string name="select_instances">Select instances</string>
|
||||
<string name="continue_with">Continue with…</string>
|
||||
<string name="just_once">Just once</string>
|
||||
<string name="always">Always</string>
|
||||
<string name="always">Увек</string>
|
||||
<string name="default_app_indication">%1$s has been set as a default app.\nYou can remove this behavior from the app settings.</string>
|
||||
<string name="indication_error_title">There is something wrong with the configuration of the app. Please, follow these indications to fix that issue.</string>
|
||||
<string name="open_configure">1 - Tap on the \"CONFIGURE\" button above.</string>
|
||||
|
@ -72,14 +75,14 @@
|
|||
<string name="display_indications_3_description">Screenshot showing app settings to define the behavior for opening URLs</string>
|
||||
<string name="default_apps">Default apps</string>
|
||||
<string name="remove_from_default_app">Remove from default apps</string>
|
||||
<string name="delete">Delete</string>
|
||||
<string name="cancel">Cancel</string>
|
||||
<string name="delete">Обриши</string>
|
||||
<string name="cancel">Поништи</string>
|
||||
<string name="delete_app_from_default">Delete %1$s from default apps?</string>
|
||||
<string name="copy_done">Copied</string>
|
||||
<string name="no_apps_set_as_default">No apps set as default!</string>
|
||||
<string name="custom_settings_for_invidious">Custom settings for Invidious</string>
|
||||
<string name="invidious_settings">Invidious settings</string>
|
||||
<string name="invidious_dark_mode_title">Theme</string>
|
||||
<string name="invidious_dark_mode_title">Тема</string>
|
||||
<string name="invidious_dark_mode_indication">Configure default theme without setting cookies</string>
|
||||
<string name="invidious_thin_mode_title">Thin mode</string>
|
||||
<string name="invidious_thin_mode_indication">Load HTML, CSS, JS and video elements (disables images)</string>
|
||||
|
@ -95,7 +98,7 @@
|
|||
<string name="invidious_continue_mode_indication">When video is done, automatically go to the next related video (similar to YouTube’s Autoplay feature)</string>
|
||||
<string name="invidious_listen_mode_title">Listen</string>
|
||||
<string name="invidious_listen_mode_indication">Play only audio portion of video</string>
|
||||
<string name="invidious_local_mode_title">Local</string>
|
||||
<string name="invidious_local_mode_title">Локално</string>
|
||||
<string name="invidious_local_mode_indication">Proxy video streams</string>
|
||||
<string name="invidious_subtitles_mode_title">Subtitles</string>
|
||||
<string name="invidious_subtitles_mode_indication">List of ISO 639–1 language codes</string>
|
||||
|
@ -118,19 +121,19 @@
|
|||
<string name="invidious_help_explanations">[1] \'local\' parameter is set to \'true\' by default for better privacy</string>
|
||||
<string-array name="invidious_theme">
|
||||
<item>Ignore</item>
|
||||
<item>Remove</item>
|
||||
<item>Уклони</item>
|
||||
<item>Dark theme</item>
|
||||
<item>Light theme</item>
|
||||
</string-array>
|
||||
<string-array name="invidious_enable">
|
||||
<item>Ignore</item>
|
||||
<item>Remove</item>
|
||||
<item>Уклони</item>
|
||||
<item>Enabled</item>
|
||||
<item>Disabled</item>
|
||||
</string-array>
|
||||
<string-array name="invidious_language">
|
||||
<item>Ignore</item>
|
||||
<item>Remove</item>
|
||||
<item>Уклони</item>
|
||||
<item>Arabic</item>
|
||||
<item>German</item>
|
||||
<item>Greek</item>
|
||||
|
@ -150,25 +153,25 @@
|
|||
</string-array>
|
||||
<string-array name="invidious_annotations">
|
||||
<item>Ignore</item>
|
||||
<item>Remove</item>
|
||||
<item>Уклони</item>
|
||||
<item>Show annotations</item>
|
||||
<item>Hide annotations</item>
|
||||
</string-array>
|
||||
<string-array name="invidious_quality">
|
||||
<item>Ignore</item>
|
||||
<item>Remove</item>
|
||||
<item>Уклони</item>
|
||||
<item>DASH</item>
|
||||
<item>720p</item>
|
||||
<item>480p</item>
|
||||
</string-array>
|
||||
<string-array name="invidious_volume">
|
||||
<item>Ignore</item>
|
||||
<item>Remove</item>
|
||||
<item>Уклони</item>
|
||||
<item>Custom</item>
|
||||
</string-array>
|
||||
<string-array name="invidious_player_style">
|
||||
<item>Ignore</item>
|
||||
<item>Remove</item>
|
||||
<item>Уклони</item>
|
||||
<item>Invidious</item>
|
||||
<item>Youtube</item>
|
||||
</string-array>
|
||||
|
|
|
@ -27,7 +27,9 @@
|
|||
<string name="redirect_youtube_to_invidious">Omdirigera YouTube till Ovidious</string>
|
||||
<string name="redirect_twitter_to_nitter">Omdirigera Twitter till Nitter</string>
|
||||
<string name="redirect_instagram_to_bibliogram">Omdirigera Twitter till Nitter</string>
|
||||
<string name="redirect_reddit_to_teddit">Redirect Reddit to Teddit</string>
|
||||
<string name="custom_bibliogram">Anpassad Bibliogram instans</string>
|
||||
<string name="custom_teddit">Custom Teddit instance</string>
|
||||
<string name="redirect_gm_to_geo_uri">Omdirigera Google Map till Geo URI</string>
|
||||
<string name="configure">Konfigurera</string>
|
||||
<string name="display_supported_links">Visa länkar som stöds</string>
|
||||
|
@ -44,6 +46,7 @@
|
|||
<string name="invidious_instances">Olivliga instanser</string>
|
||||
<string name="nitter_instances">Nitter instances</string>
|
||||
<string name="bibliogram_instances">Bibliogram instanser</string>
|
||||
<string name="teddit_instances">Teddit instances</string>
|
||||
<string name="latency">Latens</string>
|
||||
<string name="error_message_internet">Kontrollera din internetanslutning</string>
|
||||
<string name="instance_label">Instans:</string>
|
||||
|
@ -60,7 +63,7 @@
|
|||
<string name="select_instances">Välj instanser</string>
|
||||
<string name="continue_with">Continue with…</string>
|
||||
<string name="just_once">Just once</string>
|
||||
<string name="always">Always</string>
|
||||
<string name="always">Alltid</string>
|
||||
<string name="default_app_indication">%1$s has been set as a default app.\nYou can remove this behavior from the app settings.</string>
|
||||
<string name="indication_error_title">There is something wrong with the configuration of the app. Please, follow these indications to fix that issue.</string>
|
||||
<string name="open_configure">1 - Tap on the \"CONFIGURE\" button above.</string>
|
||||
|
@ -72,14 +75,14 @@
|
|||
<string name="display_indications_3_description">Screenshot showing app settings to define the behavior for opening URLs</string>
|
||||
<string name="default_apps">Default apps</string>
|
||||
<string name="remove_from_default_app">Remove from default apps</string>
|
||||
<string name="delete">Delete</string>
|
||||
<string name="cancel">Cancel</string>
|
||||
<string name="delete">Ta bort</string>
|
||||
<string name="cancel">Avbryt</string>
|
||||
<string name="delete_app_from_default">Delete %1$s from default apps?</string>
|
||||
<string name="copy_done">Copied</string>
|
||||
<string name="no_apps_set_as_default">No apps set as default!</string>
|
||||
<string name="custom_settings_for_invidious">Custom settings for Invidious</string>
|
||||
<string name="invidious_settings">Invidious settings</string>
|
||||
<string name="invidious_dark_mode_title">Theme</string>
|
||||
<string name="invidious_dark_mode_title">Tema</string>
|
||||
<string name="invidious_dark_mode_indication">Configure default theme without setting cookies</string>
|
||||
<string name="invidious_thin_mode_title">Thin mode</string>
|
||||
<string name="invidious_thin_mode_indication">Load HTML, CSS, JS and video elements (disables images)</string>
|
||||
|
@ -95,7 +98,7 @@
|
|||
<string name="invidious_continue_mode_indication">When video is done, automatically go to the next related video (similar to YouTube’s Autoplay feature)</string>
|
||||
<string name="invidious_listen_mode_title">Listen</string>
|
||||
<string name="invidious_listen_mode_indication">Play only audio portion of video</string>
|
||||
<string name="invidious_local_mode_title">Local</string>
|
||||
<string name="invidious_local_mode_title">Lokal</string>
|
||||
<string name="invidious_local_mode_indication">Proxy video streams</string>
|
||||
<string name="invidious_subtitles_mode_title">Subtitles</string>
|
||||
<string name="invidious_subtitles_mode_indication">List of ISO 639–1 language codes</string>
|
||||
|
@ -118,19 +121,19 @@
|
|||
<string name="invidious_help_explanations">[1] \'local\' parameter is set to \'true\' by default for better privacy</string>
|
||||
<string-array name="invidious_theme">
|
||||
<item>Ignore</item>
|
||||
<item>Remove</item>
|
||||
<item>Ta bort</item>
|
||||
<item>Dark theme</item>
|
||||
<item>Light theme</item>
|
||||
</string-array>
|
||||
<string-array name="invidious_enable">
|
||||
<item>Ignore</item>
|
||||
<item>Remove</item>
|
||||
<item>Ta bort</item>
|
||||
<item>Enabled</item>
|
||||
<item>Disabled</item>
|
||||
<item>Inaktiverad</item>
|
||||
</string-array>
|
||||
<string-array name="invidious_language">
|
||||
<item>Ignore</item>
|
||||
<item>Remove</item>
|
||||
<item>Ta bort</item>
|
||||
<item>Arabic</item>
|
||||
<item>German</item>
|
||||
<item>Greek</item>
|
||||
|
@ -150,25 +153,25 @@
|
|||
</string-array>
|
||||
<string-array name="invidious_annotations">
|
||||
<item>Ignore</item>
|
||||
<item>Remove</item>
|
||||
<item>Ta bort</item>
|
||||
<item>Show annotations</item>
|
||||
<item>Hide annotations</item>
|
||||
</string-array>
|
||||
<string-array name="invidious_quality">
|
||||
<item>Ignore</item>
|
||||
<item>Remove</item>
|
||||
<item>Ta bort</item>
|
||||
<item>DASH</item>
|
||||
<item>720p</item>
|
||||
<item>480p</item>
|
||||
</string-array>
|
||||
<string-array name="invidious_volume">
|
||||
<item>Ignore</item>
|
||||
<item>Remove</item>
|
||||
<item>Ta bort</item>
|
||||
<item>Custom</item>
|
||||
</string-array>
|
||||
<string-array name="invidious_player_style">
|
||||
<item>Ignore</item>
|
||||
<item>Remove</item>
|
||||
<item>Ta bort</item>
|
||||
<item>Invidious</item>
|
||||
<item>Youtube</item>
|
||||
</string-array>
|
||||
|
|
|
@ -27,7 +27,9 @@
|
|||
<string name="redirect_youtube_to_invidious">Redirect YouTube to Invidious</string>
|
||||
<string name="redirect_twitter_to_nitter">Redirect Twitter to Nitter</string>
|
||||
<string name="redirect_instagram_to_bibliogram">Redirect Instagram to Bibliogram</string>
|
||||
<string name="redirect_reddit_to_teddit">Redirect Reddit to Teddit</string>
|
||||
<string name="custom_bibliogram">Custom Bibliogram instance</string>
|
||||
<string name="custom_teddit">Custom Teddit instance</string>
|
||||
<string name="redirect_gm_to_geo_uri">Redirect Google Map to Geo URI</string>
|
||||
<string name="configure">Configure</string>
|
||||
<string name="display_supported_links">Display supported links</string>
|
||||
|
@ -44,6 +46,7 @@
|
|||
<string name="invidious_instances">Invidious instances</string>
|
||||
<string name="nitter_instances">Nitter instances</string>
|
||||
<string name="bibliogram_instances">Bibliogram instances</string>
|
||||
<string name="teddit_instances">Teddit instances</string>
|
||||
<string name="latency">Latency</string>
|
||||
<string name="error_message_internet">Check your Internet connection</string>
|
||||
<string name="instance_label">Instance:</string>
|
||||
|
|
|
@ -1,33 +1,35 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<!-- Some local values -->
|
||||
<string name="action_settings">Settings</string>
|
||||
<string name="action_about">About</string>
|
||||
<string name="developer">Developer</string>
|
||||
<string name="action_settings">Ayarlar</string>
|
||||
<string name="action_about">Hakkında</string>
|
||||
<string name="developer">Geliştirici</string>
|
||||
<string name="donations">Donations</string>
|
||||
<string name="about_the_app">About the app</string>
|
||||
<string name="source_code">Source code</string>
|
||||
<string name="issue_tracker">Issue tracker</string>
|
||||
<string name="license">License</string>
|
||||
<string name="about_vesrion">Release %1$s</string>
|
||||
<string name="license">Lisans</string>
|
||||
<string name="about_vesrion">Sürüm %1$s</string>
|
||||
<string name="custom_nitter">Custom Nitter instance</string>
|
||||
<string name="save">Save</string>
|
||||
<string name="close">Close</string>
|
||||
<string name="save">Kaydet</string>
|
||||
<string name="close">Kapat</string>
|
||||
<string name="instances_saved">Custom instances have been saved!</string>
|
||||
<string name="custom_invidious">Custom Invidious instance</string>
|
||||
<string name="no_apps">No applications by default</string>
|
||||
<string name="Donate">Donate</string>
|
||||
<string name="warning">Warning</string>
|
||||
<string name="warning">Uyarı</string>
|
||||
<string name="error">Error</string>
|
||||
<string name="valid">Valid</string>
|
||||
<string name="icon_of_the_app">Icon of the app</string>
|
||||
<string name="open_with">Open with</string>
|
||||
<string name="open_with">Birlikte aç</string>
|
||||
<string name="redirect_gm_to_osm">Redirect Google Map to OpenStreetMap</string>
|
||||
<string name="custom_osm">Custom OSM hostname</string>
|
||||
<string name="redirect_youtube_to_invidious">Redirect YouTube to Invidious</string>
|
||||
<string name="redirect_twitter_to_nitter">Redirect Twitter to Nitter</string>
|
||||
<string name="redirect_instagram_to_bibliogram">Redirect Instagram to Bibliogram</string>
|
||||
<string name="redirect_reddit_to_teddit">Redirect Reddit to Teddit</string>
|
||||
<string name="custom_bibliogram">Custom Bibliogram instance</string>
|
||||
<string name="custom_teddit">Custom Teddit instance</string>
|
||||
<string name="redirect_gm_to_geo_uri">Redirect Google Map to Geo URI</string>
|
||||
<string name="configure">Configure</string>
|
||||
<string name="display_supported_links">Display supported links</string>
|
||||
|
@ -44,23 +46,24 @@
|
|||
<string name="invidious_instances">Invidious instances</string>
|
||||
<string name="nitter_instances">Nitter instances</string>
|
||||
<string name="bibliogram_instances">Bibliogram instances</string>
|
||||
<string name="teddit_instances">Teddit instances</string>
|
||||
<string name="latency">Latency</string>
|
||||
<string name="error_message_internet">Check your Internet connection</string>
|
||||
<string name="instance_label">Instance:</string>
|
||||
<string name="instance_label">Sunucu:</string>
|
||||
<string name="expand_instance_details">Expand instance details</string>
|
||||
<string name="cloudflare">This instance uses Cloudflare</string>
|
||||
<string name="instance_info">Information about listed instances</string>
|
||||
<string name="about_instances">The list of instances comes from\n\n <a href="%1$s">%2$s</a>\n\nYou can contribute to this list by adding or removing instances.</string>
|
||||
<string name="about_instances_title">About instances</string>
|
||||
<string name="use_built_in_player">Use the built-in player</string>
|
||||
<string name="share">Share</string>
|
||||
<string name="download">Download</string>
|
||||
<string name="share_with">Share with</string>
|
||||
<string name="share">Paylaş</string>
|
||||
<string name="download">İndir</string>
|
||||
<string name="share_with">Şununla paylaş</string>
|
||||
<string name="check_apps">Check apps</string>
|
||||
<string name="select_instances">Select instances</string>
|
||||
<string name="continue_with">Continue with…</string>
|
||||
<string name="just_once">Just once</string>
|
||||
<string name="always">Always</string>
|
||||
<string name="always">Her zaman</string>
|
||||
<string name="default_app_indication">%1$s has been set as a default app.\nYou can remove this behavior from the app settings.</string>
|
||||
<string name="indication_error_title">There is something wrong with the configuration of the app. Please, follow these indications to fix that issue.</string>
|
||||
<string name="open_configure">1 - Tap on the \"CONFIGURE\" button above.</string>
|
||||
|
@ -72,14 +75,14 @@
|
|||
<string name="display_indications_3_description">Screenshot showing app settings to define the behavior for opening URLs</string>
|
||||
<string name="default_apps">Default apps</string>
|
||||
<string name="remove_from_default_app">Remove from default apps</string>
|
||||
<string name="delete">Delete</string>
|
||||
<string name="cancel">Cancel</string>
|
||||
<string name="delete">Sil</string>
|
||||
<string name="cancel">Iptal</string>
|
||||
<string name="delete_app_from_default">Delete %1$s from default apps?</string>
|
||||
<string name="copy_done">Copied</string>
|
||||
<string name="no_apps_set_as_default">No apps set as default!</string>
|
||||
<string name="custom_settings_for_invidious">Custom settings for Invidious</string>
|
||||
<string name="invidious_settings">Invidious settings</string>
|
||||
<string name="invidious_dark_mode_title">Theme</string>
|
||||
<string name="invidious_dark_mode_title">Tema</string>
|
||||
<string name="invidious_dark_mode_indication">Configure default theme without setting cookies</string>
|
||||
<string name="invidious_thin_mode_title">Thin mode</string>
|
||||
<string name="invidious_thin_mode_indication">Load HTML, CSS, JS and video elements (disables images)</string>
|
||||
|
@ -95,7 +98,7 @@
|
|||
<string name="invidious_continue_mode_indication">When video is done, automatically go to the next related video (similar to YouTube’s Autoplay feature)</string>
|
||||
<string name="invidious_listen_mode_title">Listen</string>
|
||||
<string name="invidious_listen_mode_indication">Play only audio portion of video</string>
|
||||
<string name="invidious_local_mode_title">Local</string>
|
||||
<string name="invidious_local_mode_title">Yerel</string>
|
||||
<string name="invidious_local_mode_indication">Proxy video streams</string>
|
||||
<string name="invidious_subtitles_mode_title">Subtitles</string>
|
||||
<string name="invidious_subtitles_mode_indication">List of ISO 639–1 language codes</string>
|
||||
|
@ -118,19 +121,19 @@
|
|||
<string name="invidious_help_explanations">[1] \'local\' parameter is set to \'true\' by default for better privacy</string>
|
||||
<string-array name="invidious_theme">
|
||||
<item>Ignore</item>
|
||||
<item>Remove</item>
|
||||
<item>Kaldır</item>
|
||||
<item>Dark theme</item>
|
||||
<item>Light theme</item>
|
||||
</string-array>
|
||||
<string-array name="invidious_enable">
|
||||
<item>Ignore</item>
|
||||
<item>Remove</item>
|
||||
<item>Kaldır</item>
|
||||
<item>Enabled</item>
|
||||
<item>Disabled</item>
|
||||
<item>Devre dışı bırakıldı</item>
|
||||
</string-array>
|
||||
<string-array name="invidious_language">
|
||||
<item>Ignore</item>
|
||||
<item>Remove</item>
|
||||
<item>Kaldır</item>
|
||||
<item>Arabic</item>
|
||||
<item>German</item>
|
||||
<item>Greek</item>
|
||||
|
@ -150,25 +153,25 @@
|
|||
</string-array>
|
||||
<string-array name="invidious_annotations">
|
||||
<item>Ignore</item>
|
||||
<item>Remove</item>
|
||||
<item>Kaldır</item>
|
||||
<item>Show annotations</item>
|
||||
<item>Hide annotations</item>
|
||||
</string-array>
|
||||
<string-array name="invidious_quality">
|
||||
<item>Ignore</item>
|
||||
<item>Remove</item>
|
||||
<item>Kaldır</item>
|
||||
<item>DASH</item>
|
||||
<item>720p</item>
|
||||
<item>480p</item>
|
||||
</string-array>
|
||||
<string-array name="invidious_volume">
|
||||
<item>Ignore</item>
|
||||
<item>Remove</item>
|
||||
<item>Kaldır</item>
|
||||
<item>Custom</item>
|
||||
</string-array>
|
||||
<string-array name="invidious_player_style">
|
||||
<item>Ignore</item>
|
||||
<item>Remove</item>
|
||||
<item>Kaldır</item>
|
||||
<item>Invidious</item>
|
||||
<item>Youtube</item>
|
||||
</string-array>
|
||||
|
|
|
@ -1,175 +1,197 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<!-- Some local values -->
|
||||
<string name="action_settings">Settings</string>
|
||||
<string name="action_about">About</string>
|
||||
<string name="developer">Developer</string>
|
||||
<string name="donations">Donations</string>
|
||||
<string name="about_the_app">About the app</string>
|
||||
<string name="source_code">Source code</string>
|
||||
<string name="issue_tracker">Issue tracker</string>
|
||||
<string name="license">License</string>
|
||||
<string name="about_vesrion">Release %1$s</string>
|
||||
<string name="custom_nitter">Custom Nitter instance</string>
|
||||
<string name="save">Save</string>
|
||||
<string name="close">Close</string>
|
||||
<string name="instances_saved">Custom instances have been saved!</string>
|
||||
<string name="custom_invidious">Custom Invidious instance</string>
|
||||
<string name="no_apps">No applications by default</string>
|
||||
<string name="Donate">Donate</string>
|
||||
<string name="warning">Warning</string>
|
||||
<string name="error">Error</string>
|
||||
<string name="valid">Valid</string>
|
||||
<string name="icon_of_the_app">Icon of the app</string>
|
||||
<string name="open_with">Open with</string>
|
||||
<string name="redirect_gm_to_osm">Redirect Google Map to OpenStreetMap</string>
|
||||
<string name="custom_osm">Custom OSM hostname</string>
|
||||
<string name="redirect_youtube_to_invidious">Redirect YouTube to Invidious</string>
|
||||
<string name="redirect_twitter_to_nitter">Redirect Twitter to Nitter</string>
|
||||
<string name="redirect_instagram_to_bibliogram">Redirect Instagram to Bibliogram</string>
|
||||
<string name="custom_bibliogram">Custom Bibliogram instance</string>
|
||||
<string name="redirect_gm_to_geo_uri">Redirect Google Map to Geo URI</string>
|
||||
<string name="configure">Configure</string>
|
||||
<string name="display_supported_links">Display supported links</string>
|
||||
<string name="use_geo_uri">Use geo URI</string>
|
||||
<string name="how_to">How-to</string>
|
||||
<string name="shortened_detected">Shortened URL</string>
|
||||
<string name="shortener_services">Shortener services</string>
|
||||
<string name="open">Open</string>
|
||||
<string name="dismiss">Dismiss</string>
|
||||
<string name="resolving_shortened">Resolving shortened URL, please wait…</string>
|
||||
<string name="try_to_redirect">%1$s \n\nwill redirect you to\n\n<b>%2$s</b></string>
|
||||
<string name="try_to_redirect_again">Then it will redirect you to\n\n<b>%1$s</b></string>
|
||||
<string name="the_app_failed_shortened">The app didn\'t manage to retrieve the full URL</string>
|
||||
<string name="invidious_instances">Invidious instances</string>
|
||||
<string name="nitter_instances">Nitter instances</string>
|
||||
<string name="bibliogram_instances">Bibliogram instances</string>
|
||||
<string name="latency">Latency</string>
|
||||
<string name="error_message_internet">Check your Internet connection</string>
|
||||
<string name="instance_label">Instance:</string>
|
||||
<string name="expand_instance_details">Expand instance details</string>
|
||||
<string name="cloudflare">This instance uses Cloudflare</string>
|
||||
<string name="instance_info">Information about listed instances</string>
|
||||
<string name="about_instances">The list of instances comes from\n\n <a href="%1$s">%2$s</a>\n\nYou can contribute to this list by adding or removing instances.</string>
|
||||
<string name="about_instances_title">About instances</string>
|
||||
<string name="use_built_in_player">Use the built-in player</string>
|
||||
<string name="share">Share</string>
|
||||
<string name="download">Download</string>
|
||||
<string name="share_with">Share with</string>
|
||||
<string name="check_apps">Check apps</string>
|
||||
<string name="select_instances">Select instances</string>
|
||||
<string name="continue_with">Continue with…</string>
|
||||
<string name="just_once">Just once</string>
|
||||
<string name="always">Always</string>
|
||||
<string name="default_app_indication">%1$s has been set as a default app.\nYou can remove this behavior from the app settings.</string>
|
||||
<string name="indication_error_title">There is something wrong with the configuration of the app. Please, follow these indications to fix that issue.</string>
|
||||
<string name="open_configure">1 - Tap on the \"CONFIGURE\" button above.</string>
|
||||
<string name="supported_url_indication_1">2 - You are now in app settings from your device. Tap on \"Set as default\".</string>
|
||||
<string name="display_indications_1_description">Screenshot showing app settings for the app. You have to Tap on \"Set as default\"</string>
|
||||
<string name="supported_url_indication_2">2 - Then tap on \"Go to supported URLs\".</string>
|
||||
<string name="display_indications_2_description">Screenshot showing app settings for the app. You have to Tap on \"Go to supported URLs\"</string>
|
||||
<string name="supported_url_indication_3">3 - In suggestions make sure to pickup \"Always ask\"</string>
|
||||
<string name="display_indications_3_description">Screenshot showing app settings to define the behavior for opening URLs</string>
|
||||
<string name="default_apps">Default apps</string>
|
||||
<string name="remove_from_default_app">Remove from default apps</string>
|
||||
<string name="delete">Delete</string>
|
||||
<string name="cancel">Cancel</string>
|
||||
<string name="delete_app_from_default">Delete %1$s from default apps?</string>
|
||||
<string name="copy_done">Copied</string>
|
||||
<string name="no_apps_set_as_default">No apps set as default!</string>
|
||||
<string name="custom_settings_for_invidious">Custom settings for Invidious</string>
|
||||
<string name="invidious_settings">Invidious settings</string>
|
||||
<string name="invidious_dark_mode_title">Theme</string>
|
||||
<string name="invidious_dark_mode_indication">Configure default theme without setting cookies</string>
|
||||
<string name="invidious_thin_mode_title">Thin mode</string>
|
||||
<string name="invidious_thin_mode_indication">Load HTML, CSS, JS and video elements (disables images)</string>
|
||||
<string name="invidious_language_mode_indication">Available locales</string>
|
||||
<string name="invidious_language_mode_title">UI Language</string>
|
||||
<string name="pref_invidious_head1">Site-wide parameters</string>
|
||||
<string name="pref_invidious_head2">Player parameters</string>
|
||||
<string name="invidious_annotations_mode_title">Annotations</string>
|
||||
<string name="invidious_annotations_mode_indication">Show legacy annotations, provided by the Internet Archive</string>
|
||||
<string name="invidious_autoplay_mode_indication">Automatically play video on load</string>
|
||||
<string name="invidious_autoplay_mode_title">Autoplay</string>
|
||||
<string name="invidious_continue_mode_title">Continue</string>
|
||||
<string name="invidious_continue_mode_indication">When video is done, automatically go to the next related video (similar to YouTube’s Autoplay feature)</string>
|
||||
<string name="invidious_listen_mode_title">Listen</string>
|
||||
<string name="invidious_listen_mode_indication">Play only audio portion of video</string>
|
||||
<string name="invidious_local_mode_title">Local</string>
|
||||
<string name="invidious_local_mode_indication">Proxy video streams</string>
|
||||
<string name="invidious_subtitles_mode_title">Subtitles</string>
|
||||
<string name="invidious_subtitles_mode_indication">List of ISO 639–1 language codes</string>
|
||||
<string name="invidious_quality_mode_title">Quality</string>
|
||||
<string name="invidious_quality_mode_indication">Default player quality</string>
|
||||
<string name="invidious_loop_mode_title">Loop</string>
|
||||
<string name="invidious_volume_mode_title">Volume</string>
|
||||
<string name="invidious_volume_mode_indication">Default player volume, can be any whole number between 0 and 100</string>
|
||||
<string name="invidious_loop_mode_indication">Loop player by default</string>
|
||||
<string name="invidious_volume_mode_value">Volume value</string>
|
||||
<string name="invidious_volume_mode_value_indication">Override the volume with this value</string>
|
||||
<string name="pref_invidious_head3">Player Style</string>
|
||||
<string name="invidious_player_style_mode_title">Appearance</string>
|
||||
<string name="invidious_player_style_mode_indication">Invidious, the default one. YouTube, using a centered play button and always visible video control bar</string>
|
||||
<string name="help">Help</string>
|
||||
<string name="invidious_help_title">Setting options</string>
|
||||
<string name="invidious_help_ignore"><b>Ignore:</b> This is the default action for all¹ parameters. This means UntrackMe will not do anything about the parameter</string>
|
||||
<string name="invidious_help_remove"><b>Remove:</b> UntrackMe will remove the parameter from URL, if it exists</string>
|
||||
<string name="invidious_help_other">If you select other values for a parameter, they will be added to the URL. If the parameter already exists, its value will be changed to your choice</string>
|
||||
<string name="invidious_help_explanations">[1] \'local\' parameter is set to \'true\' by default for better privacy</string>
|
||||
<!-- Ukrainian -->
|
||||
<string name="action_settings">Параметри</string>
|
||||
<string name="action_about">Про застосунок</string>
|
||||
<string name="developer">Розробник</string>
|
||||
<string name="donations">Пожертви</string>
|
||||
<string name="about_the_app">Про застосунок</string>
|
||||
<string name="source_code">Джерело</string>
|
||||
<string name="issue_tracker">Підтримка</string>
|
||||
<string name="license">Ліцензія</string>
|
||||
<string name="about_vesrion">Випуск %1$s</string>
|
||||
<string name="custom_nitter">Ваша адреса Nitter</string>
|
||||
<string name="save">Зберегти</string>
|
||||
<string name="close">Закрити</string>
|
||||
<string name="instances_saved">Користувацькі сервери збережено</string>
|
||||
<string name="custom_invidious">Ваша адреса Invidious</string>
|
||||
<string name="no_apps">Нема усталеного застосунку</string>
|
||||
<string name="Donate">Кава</string>
|
||||
<string name="wiki">Вікі</string>
|
||||
<string name="warning">Застереження</string>
|
||||
<string name="error">Помилка</string>
|
||||
<string name="valid">Чинно</string>
|
||||
<string name="icon_of_the_app">Піктограма застосунку</string>
|
||||
<string name="open_with">Відкрити в </string>
|
||||
<string name="redirect_gm_to_osm">OpenStreetMap замість Google Maps</string>
|
||||
<string name="custom_osm">Ваша адреса OSM</string>
|
||||
<string name="redirect_youtube_to_invidious">Invidious замість YouTube</string>
|
||||
<string name="redirect_twitter_to_nitter">Nitter замість Twitter</string>
|
||||
<string name="redirect_tiktok_to_proxitok">ProxiTok замість TikTok</string>
|
||||
<string name="redirect_instagram_to_bibliogram">Bibliogram замість Instagram</string>
|
||||
<string name="redirect_reddit_to_teddit">Teddit замість Reddit</string>
|
||||
<string name="redirect_medium_to_scriberip">Scribe.rip замість Medium</string>
|
||||
<string name="redirect_wikipedia_to_wikiless">Wikiless замість Wikipedia</string>
|
||||
<string name="custom_bibliogram">Ваша адреса Bibliogram</string>
|
||||
<string name="custom_scriberip">Ваша адреса Scribe.rip</string>
|
||||
<string name="custom_wikiless">Ваша адреса Wikiless</string>
|
||||
<string name="custom_teddit">Ваша адреса Teddit</string>
|
||||
<string name="custom_proxitok">Ваша адреса ProxiTok</string>
|
||||
<string name="redirect_gm_to_geo_uri">Geo URI замість Google Maps</string>
|
||||
<string name="configure">Параметри</string>
|
||||
<string name="display_supported_links">Показати підтримувані посилання</string>
|
||||
<string name="use_geo_uri">Використовувати Geo URI</string>
|
||||
<string name="how_to">Інструкція</string>
|
||||
<string name="shortened_detected">Адресу сховано</string>
|
||||
<string name="shortener_services">Ховання адрес</string>
|
||||
<string name="open">Відкрити</string>
|
||||
<string name="dismiss">Скасувати</string>
|
||||
<string name="resolving_shortened">Отримання повної URL-адреси…</string>
|
||||
<string name="try_to_redirect">%1$s \n\nспрямує вас до\n\n<b>%2$s</b></string>
|
||||
<string name="try_to_redirect_again">Й тоді переспрямує до\n\n<b>%1$s</b></string>
|
||||
<string name="the_app_failed_shortened">Не вдалось отримати повну URL-адресу</string>
|
||||
<string name="invidious_instances">Сервери Invidious</string>
|
||||
<string name="nitter_instances">Сервери Nitter</string>
|
||||
<string name="bibliogram_instances">Сервери Bibliogram</string>
|
||||
<string name="teddit_instances">Сервери Teddit</string>
|
||||
<string name="scribe_instances">Сервери Scribe</string>
|
||||
<string name="wikiless_instances">Сервери Wikiless</string>
|
||||
<string name="proxitok_instances">Сервери ProxiTok</string>
|
||||
<string name="latency">Швидкість</string>
|
||||
<string name="error_message_internet">Перевірте інтернет-з\'єднання</string>
|
||||
<string name="instance_label">Сервер:</string>
|
||||
<string name="expand_instance_details">Докладніше про сервер</string>
|
||||
<string name="cloudflare">Цей сервер використовує Cloudflare</string>
|
||||
<string name="instance_info">Дані про перелічені сервери</string>
|
||||
<string name="about_instances">Перелік серверів узято з\n\n <a href="%1$s">%2$s</a>\n\nВдоскональте його, додавши чи вилучивши сервери.</string>
|
||||
<string name="about_instances_title">Про сервери</string>
|
||||
<string name="use_built_in_player">Вбудоване відтворення</string>
|
||||
<string name="share">Поширити</string>
|
||||
<string name="download">Завантажити</string>
|
||||
<string name="share_with">Поширити через</string>
|
||||
<string name="check_apps">Перевірка застосунків</string>
|
||||
<string name="select_instances">Про сервери</string>
|
||||
<string name="continue_with">Оберіть застосунок</string>
|
||||
<string name="just_once">Лише зараз</string>
|
||||
<string name="always">Усталено</string>
|
||||
<string name="default_app_indication">%1$s обрано як усталений застосунок.\nЦю властивість можна вилучити в параметрах UntrackMe.</string>
|
||||
<string name="indication_error_title">Щось не так із конфігурацією застосунку. Будь ласка, виконайте наступні кроки, щоб це виправити.</string>
|
||||
<string name="open_configure">1. Торкніть кнопку «Параметри» вгорі.</string>
|
||||
<string name="supported_url_indication_1">2. Ви потрапите в системні параметри застосунку. Торкніть «Відкривати за умовчанням».</string>
|
||||
<string name="display_indications_1_description">Знімок системних параметрів застосунку. Тут слід торкнути «Відкривати за умовчанням»</string>
|
||||
<string name="supported_url_indication_2">2. Торкніть «Відкривати підтримувані посилання».</string>
|
||||
<string name="display_indications_2_description">Знімок системних параметрів застосунку. Тут слід торкнути «Відкривати підтримувані посилання»</string>
|
||||
<string name="supported_url_indication_3">3. У пропозиціях завжди обирайте «Щоразу запитувати»</string>
|
||||
<string name="display_indications_3_description">Знімок системних параметрів застосунку, де слід налаштувати поведінку відкриття посилань</string>
|
||||
<string name="default_apps">Усталені застосунки</string>
|
||||
<string name="remove_from_default_app">Вилучити з усталених застосунків</string>
|
||||
<string name="delete">Вилучити</string>
|
||||
<string name="cancel">Скасувати</string>
|
||||
<string name="delete_app_from_default">Вилучити %1$s з усталених застосунків?</string>
|
||||
<string name="copy_done">Скопійовано</string>
|
||||
<string name="no_apps_set_as_default">Усталеного поки нема</string>
|
||||
<string name="custom_settings_for_invidious">Власні параметри Invidious</string>
|
||||
<string name="invidious_settings">Параметри Invidious</string>
|
||||
<string name="invidious_dark_mode_title">Тема</string>
|
||||
<string name="invidious_dark_mode_indication">Налаштувати тему без кук</string>
|
||||
<string name="invidious_thin_mode_title">Легкий режим</string>
|
||||
<string name="invidious_thin_mode_indication">HTML, CSS, JS та відео, але не зображення</string>
|
||||
<string name="invidious_language_mode_indication">Доступні мови</string>
|
||||
<string name="invidious_language_mode_title">Мова інтерфейсу</string>
|
||||
<string name="pref_invidious_head1">Сайт</string>
|
||||
<string name="pref_invidious_head2">Відтворення</string>
|
||||
<string name="invidious_annotations_mode_title">Анотації</string>
|
||||
<string name="invidious_annotations_mode_indication">Показувати застарілі анотації, завантажуючи їх із Internet Archive</string>
|
||||
<string name="invidious_autoplay_mode_indication">Одразу відтворювати відео</string>
|
||||
<string name="invidious_autoplay_mode_title">Самовідтворення</string>
|
||||
<string name="invidious_continue_mode_title">Безперервність</string>
|
||||
<string name="invidious_continue_mode_indication">По завершенню відео, автоматично переходити до наступного</string>
|
||||
<string name="invidious_listen_mode_title">Музичний режим</string>
|
||||
<string name="invidious_listen_mode_indication">Відтворювати лише звукову доріжку відео</string>
|
||||
<string name="invidious_local_mode_title">Опосередкованість</string>
|
||||
<string name="invidious_local_mode_indication">Спрямовувати відеопотоки через проксі</string>
|
||||
<string name="invidious_subtitles_mode_title">Субтитри</string>
|
||||
<string name="invidious_subtitles_mode_indication">Перелік мов ISO 639–1</string>
|
||||
<string name="invidious_quality_mode_title">Якість</string>
|
||||
<string name="invidious_quality_mode_indication">Формат відео</string>
|
||||
<string name="invidious_loop_mode_title">Цикл</string>
|
||||
<string name="invidious_volume_mode_title">Гучність</string>
|
||||
<string name="invidious_volume_mode_indication">Довільне ціле число від 0 до 100</string>
|
||||
<string name="invidious_loop_mode_indication">Повторювати відтворення</string>
|
||||
<string name="invidious_volume_mode_value">Значення гучності</string>
|
||||
<string name="invidious_volume_mode_value_indication">Гучність буде замінено цим значенням</string>
|
||||
<string name="pref_invidious_head3">Стиль</string>
|
||||
<string name="invidious_player_style_mode_title">Оформлення</string>
|
||||
<string name="invidious_player_style_mode_indication">Invidious — усталена тема. YouTube — кнопку відтворення центровано, а панель керування завжди видно</string>
|
||||
<string name="help">Довідка</string>
|
||||
|
||||
<string name="invidious_help_title">Значення параметрів</string>
|
||||
<string name="invidious_help_ignore"><b>Пропустити:</b> UntrackMe залишатиме параметр у посиланнях як є. Усталене значення всіх¹ параметрів</string>
|
||||
<string name="invidious_help_remove"><b>Вилучити:</b> UntrackMe вилучатиме параметр із посилання за наявності</string>
|
||||
<string name="invidious_help_other">Якщо ви оберете інше значення параметру, його буде додано до посилання. Якщо параметр уже є, ваше значення його замінить</string>
|
||||
<string name="invidious_help_explanations">[1] Крім параметру «Опосередкованість», усталено ввімкненого задля захисту приватності</string>
|
||||
<string name="copy_url">Скопіювати URL-адресу в буфер</string>
|
||||
<string-array name="invidious_theme">
|
||||
<item>Ignore</item>
|
||||
<item>Remove</item>
|
||||
<item>Dark theme</item>
|
||||
<item>Light theme</item>
|
||||
<item>Пропустити</item>
|
||||
<item>Вилучити</item>
|
||||
<item>Тьмяна тема</item>
|
||||
<item>Світла тема</item>
|
||||
</string-array>
|
||||
|
||||
<string-array name="invidious_enable">
|
||||
<item>Ignore</item>
|
||||
<item>Remove</item>
|
||||
<item>Enabled</item>
|
||||
<item>Disabled</item>
|
||||
<item>Пропустити</item>
|
||||
<item>Вилучити</item>
|
||||
<item>Увімкнути</item>
|
||||
<item>Вимкнути</item>
|
||||
</string-array>
|
||||
|
||||
<string-array name="invidious_language">
|
||||
<item>Ignore</item>
|
||||
<item>Remove</item>
|
||||
<item>Arabic</item>
|
||||
<item>German</item>
|
||||
<item>Greek</item>
|
||||
<item>English</item>
|
||||
<item>Esperanto</item>
|
||||
<item>Spanish</item>
|
||||
<item>Basque</item>
|
||||
<item>French</item>
|
||||
<item>Icelandic</item>
|
||||
<item>Italian</item>
|
||||
<item>Norwegian Bokmål</item>
|
||||
<item>Dutch</item>
|
||||
<item>Polish</item>
|
||||
<item>Russian</item>
|
||||
<item>Ukrainian</item>
|
||||
<item>Chinese</item>
|
||||
<item>Пропустити</item>
|
||||
<item>Вилучити</item>
|
||||
<item>Арабська</item>
|
||||
<item>Німецька</item>
|
||||
<item>Грецька</item>
|
||||
<item>Англійська</item>
|
||||
<item>Есперанто</item>
|
||||
<item>Іспанська</item>
|
||||
<item>Баскська</item>
|
||||
<item>Французька</item>
|
||||
<item>Ісландська</item>
|
||||
<item>Італійська</item>
|
||||
<item>Букмол (норвезька)</item>
|
||||
<item>Нідерландська</item>
|
||||
<item>Польська</item>
|
||||
<item>Мертва</item>
|
||||
<item>Українська</item>
|
||||
<item>Китайська</item>
|
||||
</string-array>
|
||||
|
||||
|
||||
<string-array name="invidious_annotations">
|
||||
<item>Ignore</item>
|
||||
<item>Remove</item>
|
||||
<item>Show annotations</item>
|
||||
<item>Hide annotations</item>
|
||||
<item>Пропустити</item>
|
||||
<item>Вилучити</item>
|
||||
<item>Показати анотації</item>
|
||||
<item>Сховати анотації</item>
|
||||
</string-array>
|
||||
|
||||
|
||||
<string-array name="invidious_quality">
|
||||
<item>Ignore</item>
|
||||
<item>Remove</item>
|
||||
<item>Пропустити</item>
|
||||
<item>Вилучити</item>
|
||||
<item>DASH</item>
|
||||
<item>720p</item>
|
||||
<item>480p</item>
|
||||
</string-array>
|
||||
|
||||
<string-array name="invidious_volume">
|
||||
<item>Ignore</item>
|
||||
<item>Remove</item>
|
||||
<item>Custom</item>
|
||||
<item>Пропустити</item>
|
||||
<item>Вилучити</item>
|
||||
<item>Налаштувати</item>
|
||||
</string-array>
|
||||
|
||||
<string-array name="invidious_player_style">
|
||||
<item>Ignore</item>
|
||||
<item>Remove</item>
|
||||
<item>Пропустити</item>
|
||||
<item>Вилучити</item>
|
||||
<item>Invidious</item>
|
||||
<item>Youtube</item>
|
||||
<item>YouTube</item>
|
||||
</string-array>
|
||||
</resources>
|
||||
|
|
|
@ -19,24 +19,30 @@
|
|||
<string name="Donate">عطیہ کریں</string>
|
||||
<string name="warning">انتباہ</string>
|
||||
<string name="error">خرابی</string>
|
||||
<string name="valid">Valid</string>
|
||||
<string name="icon_of_the_app">Icon of the app</string>
|
||||
<string name="open_with">Open with</string>
|
||||
<string name="redirect_gm_to_osm">Redirect Google Map to OpenStreetMap</string>
|
||||
<string name="custom_osm">Custom OSM hostname</string>
|
||||
<string name="redirect_youtube_to_invidious">Redirect YouTube to Invidious</string>
|
||||
<string name="redirect_twitter_to_nitter">Redirect Twitter to Nitter</string>
|
||||
<string name="redirect_instagram_to_bibliogram">Redirect Instagram to Bibliogram</string>
|
||||
<string name="valid">درست</string>
|
||||
<string name="icon_of_the_app">ایپ کی آئیکن</string>
|
||||
<string name="open_with">کے ساتھ کھولیں</string>
|
||||
<string name="redirect_gm_to_osm">گوگل میپ کو اوپن اسٹریٹ میپ میں ری ڈائریکٹ کریں</string>
|
||||
<string name="custom_osm">حسب منشا OSM hostname</string>
|
||||
<string name="redirect_youtube_to_invidious">یوٹیوب کو Invidious میں ری ڈائریکٹ کریں</string>
|
||||
<string name="redirect_twitter_to_nitter">ٹوئیٹر کو Nitter میں ری ڈائریکٹ کریں</string>
|
||||
<string name="redirect_instagram_to_bibliogram">انسٹاگرام کو بیبلیوگرام کی طرف منتقل کریں</string>
|
||||
<string name="redirect_reddit_to_teddit">ریڈڈیٹ کو ٹیڈیٹ کی طرف منتقل کریں</string>
|
||||
<string name="redirect_medium_to_scriberip">میڈئیم کو Scribe.rip کی طرف منتقل کریں</string>
|
||||
<string name="redirect_wikipedia_to_wikiless">ویکیپیڈیا کو ویکی لیس کی طرف منتقل کریں</string>
|
||||
<string name="custom_bibliogram">Custom Bibliogram instance</string>
|
||||
<string name="custom_scriberip">Custom Scribe.rip instance</string>
|
||||
<string name="custom_wikiless">Custom Wikiless instance</string>
|
||||
<string name="custom_teddit">Custom Teddit instance</string>
|
||||
<string name="redirect_gm_to_geo_uri">Redirect Google Map to Geo URI</string>
|
||||
<string name="configure">Configure</string>
|
||||
<string name="display_supported_links">Display supported links</string>
|
||||
<string name="display_supported_links">معاون لنکس دکھائیں</string>
|
||||
<string name="use_geo_uri">Use geo URI</string>
|
||||
<string name="how_to">How-to</string>
|
||||
<string name="how_to">کس طرح</string>
|
||||
<string name="shortened_detected">Shortened URL</string>
|
||||
<string name="shortener_services">Shortener services</string>
|
||||
<string name="open">Open</string>
|
||||
<string name="dismiss">Dismiss</string>
|
||||
<string name="open">کھولیں</string>
|
||||
<string name="dismiss">منسوخ</string>
|
||||
<string name="resolving_shortened">Resolving shortened URL, please wait…</string>
|
||||
<string name="try_to_redirect">%1$s \n\nwill redirect you to\n\n<b>%2$s</b></string>
|
||||
<string name="try_to_redirect_again">Then it will redirect you to\n\n<b>%1$s</b></string>
|
||||
|
@ -44,8 +50,11 @@
|
|||
<string name="invidious_instances">Invidious instances</string>
|
||||
<string name="nitter_instances">Nitter instances</string>
|
||||
<string name="bibliogram_instances">Bibliogram instances</string>
|
||||
<string name="teddit_instances">Teddit instances</string>
|
||||
<string name="scribe_instances">Scribe instances</string>
|
||||
<string name="wikiless_instances">Wikiless instances</string>
|
||||
<string name="latency">Latency</string>
|
||||
<string name="error_message_internet">Check your Internet connection</string>
|
||||
<string name="error_message_internet">اپنے انٹرنیٹ کنکشن کی جانچ کریں</string>
|
||||
<string name="instance_label">Instance:</string>
|
||||
<string name="expand_instance_details">Expand instance details</string>
|
||||
<string name="cloudflare">This instance uses Cloudflare</string>
|
||||
|
@ -54,13 +63,13 @@
|
|||
<string name="about_instances_title">About instances</string>
|
||||
<string name="use_built_in_player">Use the built-in player</string>
|
||||
<string name="share">Share</string>
|
||||
<string name="download">Download</string>
|
||||
<string name="share_with">Share with</string>
|
||||
<string name="download">ڈاؤن لوڈ</string>
|
||||
<string name="share_with">کے ساتھ شئیر</string>
|
||||
<string name="check_apps">Check apps</string>
|
||||
<string name="select_instances">Select instances</string>
|
||||
<string name="continue_with">Continue with…</string>
|
||||
<string name="just_once">Just once</string>
|
||||
<string name="always">Always</string>
|
||||
<string name="just_once">صرف ایک بار</string>
|
||||
<string name="always">ہمیشہ</string>
|
||||
<string name="default_app_indication">%1$s has been set as a default app.\nYou can remove this behavior from the app settings.</string>
|
||||
<string name="indication_error_title">There is something wrong with the configuration of the app. Please, follow these indications to fix that issue.</string>
|
||||
<string name="open_configure">1 - Tap on the \"CONFIGURE\" button above.</string>
|
||||
|
@ -116,6 +125,7 @@
|
|||
<string name="invidious_help_remove"><b>Remove:</b> UntrackMe will remove the parameter from URL, if it exists</string>
|
||||
<string name="invidious_help_other">If you select other values for a parameter, they will be added to the URL. If the parameter already exists, its value will be changed to your choice</string>
|
||||
<string name="invidious_help_explanations">[1] \'local\' parameter is set to \'true\' by default for better privacy</string>
|
||||
<string name="copy_url">Copy URL To Clipboard</string>
|
||||
<string-array name="invidious_theme">
|
||||
<item>Ignore</item>
|
||||
<item>Remove</item>
|
||||
|
|
|
@ -1,33 +1,35 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<!-- Some local values -->
|
||||
<string name="action_settings">Settings</string>
|
||||
<string name="action_about">About</string>
|
||||
<string name="developer">Developer</string>
|
||||
<string name="action_settings">Cài đặt</string>
|
||||
<string name="action_about">Trong khoảng</string>
|
||||
<string name="developer">Nhà phát triển</string>
|
||||
<string name="donations">Donations</string>
|
||||
<string name="about_the_app">About the app</string>
|
||||
<string name="source_code">Source code</string>
|
||||
<string name="issue_tracker">Issue tracker</string>
|
||||
<string name="license">License</string>
|
||||
<string name="about_vesrion">Release %1$s</string>
|
||||
<string name="about_vesrion">Phát hành %1$s</string>
|
||||
<string name="custom_nitter">Custom Nitter instance</string>
|
||||
<string name="save">Save</string>
|
||||
<string name="close">Close</string>
|
||||
<string name="save">Lưu</string>
|
||||
<string name="close">Gần</string>
|
||||
<string name="instances_saved">Custom instances have been saved!</string>
|
||||
<string name="custom_invidious">Custom Invidious instance</string>
|
||||
<string name="no_apps">No applications by default</string>
|
||||
<string name="Donate">Donate</string>
|
||||
<string name="warning">Warning</string>
|
||||
<string name="warning">Cảnh báo</string>
|
||||
<string name="error">Error</string>
|
||||
<string name="valid">Valid</string>
|
||||
<string name="icon_of_the_app">Icon of the app</string>
|
||||
<string name="open_with">Open with</string>
|
||||
<string name="open_with">Mở với</string>
|
||||
<string name="redirect_gm_to_osm">Redirect Google Map to OpenStreetMap</string>
|
||||
<string name="custom_osm">Custom OSM hostname</string>
|
||||
<string name="redirect_youtube_to_invidious">Redirect YouTube to Invidious</string>
|
||||
<string name="redirect_twitter_to_nitter">Redirect Twitter to Nitter</string>
|
||||
<string name="redirect_instagram_to_bibliogram">Redirect Instagram to Bibliogram</string>
|
||||
<string name="redirect_reddit_to_teddit">Redirect Reddit to Teddit</string>
|
||||
<string name="custom_bibliogram">Custom Bibliogram instance</string>
|
||||
<string name="custom_teddit">Custom Teddit instance</string>
|
||||
<string name="redirect_gm_to_geo_uri">Redirect Google Map to Geo URI</string>
|
||||
<string name="configure">Configure</string>
|
||||
<string name="display_supported_links">Display supported links</string>
|
||||
|
@ -44,23 +46,24 @@
|
|||
<string name="invidious_instances">Invidious instances</string>
|
||||
<string name="nitter_instances">Nitter instances</string>
|
||||
<string name="bibliogram_instances">Bibliogram instances</string>
|
||||
<string name="teddit_instances">Teddit instances</string>
|
||||
<string name="latency">Latency</string>
|
||||
<string name="error_message_internet">Check your Internet connection</string>
|
||||
<string name="instance_label">Instance:</string>
|
||||
<string name="instance_label">Ví dụ:</string>
|
||||
<string name="expand_instance_details">Expand instance details</string>
|
||||
<string name="cloudflare">This instance uses Cloudflare</string>
|
||||
<string name="instance_info">Information about listed instances</string>
|
||||
<string name="about_instances">The list of instances comes from\n\n <a href="%1$s">%2$s</a>\n\nYou can contribute to this list by adding or removing instances.</string>
|
||||
<string name="about_instances_title">About instances</string>
|
||||
<string name="use_built_in_player">Use the built-in player</string>
|
||||
<string name="share">Share</string>
|
||||
<string name="download">Download</string>
|
||||
<string name="share_with">Share with</string>
|
||||
<string name="share">Chia sẻ</string>
|
||||
<string name="download">Tải về</string>
|
||||
<string name="share_with">Chia sẽ với</string>
|
||||
<string name="check_apps">Check apps</string>
|
||||
<string name="select_instances">Select instances</string>
|
||||
<string name="continue_with">Continue with…</string>
|
||||
<string name="just_once">Just once</string>
|
||||
<string name="always">Always</string>
|
||||
<string name="always">Luôn luôn</string>
|
||||
<string name="default_app_indication">%1$s has been set as a default app.\nYou can remove this behavior from the app settings.</string>
|
||||
<string name="indication_error_title">There is something wrong with the configuration of the app. Please, follow these indications to fix that issue.</string>
|
||||
<string name="open_configure">1 - Tap on the \"CONFIGURE\" button above.</string>
|
||||
|
@ -72,8 +75,8 @@
|
|||
<string name="display_indications_3_description">Screenshot showing app settings to define the behavior for opening URLs</string>
|
||||
<string name="default_apps">Default apps</string>
|
||||
<string name="remove_from_default_app">Remove from default apps</string>
|
||||
<string name="delete">Delete</string>
|
||||
<string name="cancel">Cancel</string>
|
||||
<string name="delete">Xóa bỏ</string>
|
||||
<string name="cancel">Hủy</string>
|
||||
<string name="delete_app_from_default">Delete %1$s from default apps?</string>
|
||||
<string name="copy_done">Copied</string>
|
||||
<string name="no_apps_set_as_default">No apps set as default!</string>
|
||||
|
@ -118,19 +121,19 @@
|
|||
<string name="invidious_help_explanations">[1] \'local\' parameter is set to \'true\' by default for better privacy</string>
|
||||
<string-array name="invidious_theme">
|
||||
<item>Ignore</item>
|
||||
<item>Remove</item>
|
||||
<item>Tẩy</item>
|
||||
<item>Dark theme</item>
|
||||
<item>Light theme</item>
|
||||
</string-array>
|
||||
<string-array name="invidious_enable">
|
||||
<item>Ignore</item>
|
||||
<item>Remove</item>
|
||||
<item>Tẩy</item>
|
||||
<item>Enabled</item>
|
||||
<item>Disabled</item>
|
||||
</string-array>
|
||||
<string-array name="invidious_language">
|
||||
<item>Ignore</item>
|
||||
<item>Remove</item>
|
||||
<item>Tẩy</item>
|
||||
<item>Arabic</item>
|
||||
<item>German</item>
|
||||
<item>Greek</item>
|
||||
|
@ -150,25 +153,25 @@
|
|||
</string-array>
|
||||
<string-array name="invidious_annotations">
|
||||
<item>Ignore</item>
|
||||
<item>Remove</item>
|
||||
<item>Tẩy</item>
|
||||
<item>Show annotations</item>
|
||||
<item>Hide annotations</item>
|
||||
</string-array>
|
||||
<string-array name="invidious_quality">
|
||||
<item>Ignore</item>
|
||||
<item>Remove</item>
|
||||
<item>Tẩy</item>
|
||||
<item>DASH</item>
|
||||
<item>720p</item>
|
||||
<item>480p</item>
|
||||
</string-array>
|
||||
<string-array name="invidious_volume">
|
||||
<item>Ignore</item>
|
||||
<item>Remove</item>
|
||||
<item>Tẩy</item>
|
||||
<item>Custom</item>
|
||||
</string-array>
|
||||
<string-array name="invidious_player_style">
|
||||
<item>Ignore</item>
|
||||
<item>Remove</item>
|
||||
<item>Tẩy</item>
|
||||
<item>Invidious</item>
|
||||
<item>Youtube</item>
|
||||
</string-array>
|
||||
|
|
|
@ -27,7 +27,13 @@
|
|||
<string name="redirect_youtube_to_invidious">重定向YouTube到Invidious</string>
|
||||
<string name="redirect_twitter_to_nitter">重定向Twitter到Nitter</string>
|
||||
<string name="redirect_instagram_to_bibliogram">重定向Instagram到Bibliogram</string>
|
||||
<string name="redirect_reddit_to_teddit">重定向 Reddit 到 Teddit</string>
|
||||
<string name="redirect_medium_to_scriberip">重定向 Medium 到 Screibe.rip</string>
|
||||
<string name="redirect_wikipedia_to_wikiless">将维基百科重定向至 Wikiless</string>
|
||||
<string name="custom_bibliogram">自定义Bibliogram实例</string>
|
||||
<string name="custom_scriberip">自定义 Scribe.rip 实例</string>
|
||||
<string name="custom_wikiless">自定义Wikiless 实例</string>
|
||||
<string name="custom_teddit">自定义 Teddit 实例</string>
|
||||
<string name="redirect_gm_to_geo_uri">重定向谷歌地图到 Geo URI</string>
|
||||
<string name="configure">配置</string>
|
||||
<string name="display_supported_links">显示支持的链接</string>
|
||||
|
@ -44,6 +50,9 @@
|
|||
<string name="invidious_instances">Invidious实例</string>
|
||||
<string name="nitter_instances">Nitter实例</string>
|
||||
<string name="bibliogram_instances">Bibliogram实例</string>
|
||||
<string name="teddit_instances">Teddit 实例</string>
|
||||
<string name="scribe_instances">Scribe 实例</string>
|
||||
<string name="wikiless_instances">Wikiless 实例</string>
|
||||
<string name="latency">网络延迟</string>
|
||||
<string name="error_message_internet">检查您的互联网连接</string>
|
||||
<string name="instance_label">实例:</string>
|
||||
|
@ -116,6 +125,7 @@
|
|||
<string name="invidious_help_remove"><b>删除:</b>UntrackMe将从URL中删除该参数(如果存在)</string>
|
||||
<string name="invidious_help_other">如果您为一个参数选择其他值,它们将被添加到URL。如果这个参数已经存在,其值将更改为您选择的值</string>
|
||||
<string name="invidious_help_explanations">[1] 默认情况下,“ local”参数设置为“ true”,以获得更好的隐私</string>
|
||||
<string name="copy_url">复制 URL 到剪贴板</string>
|
||||
<string-array name="invidious_theme">
|
||||
<item>忽略</item>
|
||||
<item>移除</item>
|
||||
|
|
|
@ -1,33 +1,35 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<!-- Some local values -->
|
||||
<string name="action_settings">Settings</string>
|
||||
<string name="action_about">About</string>
|
||||
<string name="developer">Developer</string>
|
||||
<string name="action_settings">設定</string>
|
||||
<string name="action_about">關於</string>
|
||||
<string name="developer">開發者</string>
|
||||
<string name="donations">Donations</string>
|
||||
<string name="about_the_app">About the app</string>
|
||||
<string name="source_code">Source code</string>
|
||||
<string name="issue_tracker">Issue tracker</string>
|
||||
<string name="license">License</string>
|
||||
<string name="about_vesrion">Release %1$s</string>
|
||||
<string name="about_the_app">關於應用程式</string>
|
||||
<string name="source_code">原始碼</string>
|
||||
<string name="issue_tracker">議題追蹤程式</string>
|
||||
<string name="license">授權條款</string>
|
||||
<string name="about_vesrion">釋出 %1$s</string>
|
||||
<string name="custom_nitter">Custom Nitter instance</string>
|
||||
<string name="save">Save</string>
|
||||
<string name="close">Close</string>
|
||||
<string name="save">儲存</string>
|
||||
<string name="close">關閉</string>
|
||||
<string name="instances_saved">Custom instances have been saved!</string>
|
||||
<string name="custom_invidious">Custom Invidious instance</string>
|
||||
<string name="no_apps">No applications by default</string>
|
||||
<string name="Donate">Donate</string>
|
||||
<string name="warning">Warning</string>
|
||||
<string name="warning">警告</string>
|
||||
<string name="error">Error</string>
|
||||
<string name="valid">Valid</string>
|
||||
<string name="icon_of_the_app">Icon of the app</string>
|
||||
<string name="open_with">Open with</string>
|
||||
<string name="open_with">選擇開啟工具</string>
|
||||
<string name="redirect_gm_to_osm">Redirect Google Map to OpenStreetMap</string>
|
||||
<string name="custom_osm">Custom OSM hostname</string>
|
||||
<string name="redirect_youtube_to_invidious">Redirect YouTube to Invidious</string>
|
||||
<string name="redirect_twitter_to_nitter">Redirect Twitter to Nitter</string>
|
||||
<string name="redirect_instagram_to_bibliogram">Redirect Instagram to Bibliogram</string>
|
||||
<string name="redirect_reddit_to_teddit">Redirect Reddit to Teddit</string>
|
||||
<string name="custom_bibliogram">Custom Bibliogram instance</string>
|
||||
<string name="custom_teddit">Custom Teddit instance</string>
|
||||
<string name="redirect_gm_to_geo_uri">Redirect Google Map to Geo URI</string>
|
||||
<string name="configure">Configure</string>
|
||||
<string name="display_supported_links">Display supported links</string>
|
||||
|
@ -44,23 +46,24 @@
|
|||
<string name="invidious_instances">Invidious instances</string>
|
||||
<string name="nitter_instances">Nitter instances</string>
|
||||
<string name="bibliogram_instances">Bibliogram instances</string>
|
||||
<string name="teddit_instances">Teddit instances</string>
|
||||
<string name="latency">Latency</string>
|
||||
<string name="error_message_internet">Check your Internet connection</string>
|
||||
<string name="instance_label">Instance:</string>
|
||||
<string name="instance_label">站台:</string>
|
||||
<string name="expand_instance_details">Expand instance details</string>
|
||||
<string name="cloudflare">This instance uses Cloudflare</string>
|
||||
<string name="instance_info">Information about listed instances</string>
|
||||
<string name="about_instances">The list of instances comes from\n\n <a href="%1$s">%2$s</a>\n\nYou can contribute to this list by adding or removing instances.</string>
|
||||
<string name="about_instances_title">About instances</string>
|
||||
<string name="use_built_in_player">Use the built-in player</string>
|
||||
<string name="share">Share</string>
|
||||
<string name="download">Download</string>
|
||||
<string name="share_with">Share with</string>
|
||||
<string name="share">分享</string>
|
||||
<string name="download">下載</string>
|
||||
<string name="share_with">分享給</string>
|
||||
<string name="check_apps">Check apps</string>
|
||||
<string name="select_instances">Select instances</string>
|
||||
<string name="continue_with">Continue with…</string>
|
||||
<string name="just_once">Just once</string>
|
||||
<string name="always">Always</string>
|
||||
<string name="always">總是</string>
|
||||
<string name="default_app_indication">%1$s has been set as a default app.\nYou can remove this behavior from the app settings.</string>
|
||||
<string name="indication_error_title">There is something wrong with the configuration of the app. Please, follow these indications to fix that issue.</string>
|
||||
<string name="open_configure">1 - Tap on the \"CONFIGURE\" button above.</string>
|
||||
|
@ -72,8 +75,8 @@
|
|||
<string name="display_indications_3_description">Screenshot showing app settings to define the behavior for opening URLs</string>
|
||||
<string name="default_apps">Default apps</string>
|
||||
<string name="remove_from_default_app">Remove from default apps</string>
|
||||
<string name="delete">Delete</string>
|
||||
<string name="cancel">Cancel</string>
|
||||
<string name="delete">刪除</string>
|
||||
<string name="cancel">取消</string>
|
||||
<string name="delete_app_from_default">Delete %1$s from default apps?</string>
|
||||
<string name="copy_done">Copied</string>
|
||||
<string name="no_apps_set_as_default">No apps set as default!</string>
|
||||
|
@ -95,7 +98,7 @@
|
|||
<string name="invidious_continue_mode_indication">When video is done, automatically go to the next related video (similar to YouTube’s Autoplay feature)</string>
|
||||
<string name="invidious_listen_mode_title">Listen</string>
|
||||
<string name="invidious_listen_mode_indication">Play only audio portion of video</string>
|
||||
<string name="invidious_local_mode_title">Local</string>
|
||||
<string name="invidious_local_mode_title">本機</string>
|
||||
<string name="invidious_local_mode_indication">Proxy video streams</string>
|
||||
<string name="invidious_subtitles_mode_title">Subtitles</string>
|
||||
<string name="invidious_subtitles_mode_indication">List of ISO 639–1 language codes</string>
|
||||
|
@ -118,19 +121,19 @@
|
|||
<string name="invidious_help_explanations">[1] \'local\' parameter is set to \'true\' by default for better privacy</string>
|
||||
<string-array name="invidious_theme">
|
||||
<item>Ignore</item>
|
||||
<item>Remove</item>
|
||||
<item>移除</item>
|
||||
<item>Dark theme</item>
|
||||
<item>Light theme</item>
|
||||
</string-array>
|
||||
<string-array name="invidious_enable">
|
||||
<item>Ignore</item>
|
||||
<item>Remove</item>
|
||||
<item>移除</item>
|
||||
<item>Enabled</item>
|
||||
<item>Disabled</item>
|
||||
<item>已停用</item>
|
||||
</string-array>
|
||||
<string-array name="invidious_language">
|
||||
<item>Ignore</item>
|
||||
<item>Remove</item>
|
||||
<item>移除</item>
|
||||
<item>Arabic</item>
|
||||
<item>German</item>
|
||||
<item>Greek</item>
|
||||
|
@ -150,25 +153,25 @@
|
|||
</string-array>
|
||||
<string-array name="invidious_annotations">
|
||||
<item>Ignore</item>
|
||||
<item>Remove</item>
|
||||
<item>移除</item>
|
||||
<item>Show annotations</item>
|
||||
<item>Hide annotations</item>
|
||||
</string-array>
|
||||
<string-array name="invidious_quality">
|
||||
<item>Ignore</item>
|
||||
<item>Remove</item>
|
||||
<item>移除</item>
|
||||
<item>DASH</item>
|
||||
<item>720p</item>
|
||||
<item>480p</item>
|
||||
</string-array>
|
||||
<string-array name="invidious_volume">
|
||||
<item>Ignore</item>
|
||||
<item>Remove</item>
|
||||
<item>移除</item>
|
||||
<item>Custom</item>
|
||||
</string-array>
|
||||
<string-array name="invidious_player_style">
|
||||
<item>Ignore</item>
|
||||
<item>Remove</item>
|
||||
<item>移除</item>
|
||||
<item>Invidious</item>
|
||||
<item>Youtube</item>
|
||||
</string-array>
|
||||
|
|
|
@ -35,6 +35,7 @@
|
|||
<string name="custom_invidious">Custom Invidious instance</string>
|
||||
<string name="no_apps">No applications by default</string>
|
||||
<string name="Donate">Donate</string>
|
||||
<string name="wiki">Wiki</string>
|
||||
<string name="warning">Warning</string>
|
||||
<string name="error">Error</string>
|
||||
<string name="valid">Valid</string>
|
||||
|
@ -44,8 +45,16 @@
|
|||
<string name="custom_osm">Custom OSM hostname</string>
|
||||
<string name="redirect_youtube_to_invidious">Redirect YouTube to Invidious</string>
|
||||
<string name="redirect_twitter_to_nitter">Redirect Twitter to Nitter</string>
|
||||
<string name="redirect_tiktok_to_proxitok">Redirect TikTok to ProxiTok</string>
|
||||
<string name="redirect_instagram_to_bibliogram">Redirect Instagram to Bibliogram</string>
|
||||
<string name="redirect_reddit_to_teddit">Redirect Reddit to Teddit</string>
|
||||
<string name="redirect_medium_to_scriberip">Redirect Medium to Scribe.rip</string>
|
||||
<string name="redirect_wikipedia_to_wikiless">Redirect Wikipedia to Wikiless</string>
|
||||
<string name="custom_bibliogram">Custom Bibliogram instance</string>
|
||||
<string name="custom_scriberip">Custom Scribe.rip instance</string>
|
||||
<string name="custom_wikiless">Custom Wikiless instance</string>
|
||||
<string name="custom_teddit">Custom Teddit instance</string>
|
||||
<string name="custom_proxitok">Custom ProxiTok instance</string>
|
||||
<string name="redirect_gm_to_geo_uri">Redirect Google Map to Geo URI</string>
|
||||
<string name="configure">Configure</string>
|
||||
<string name="display_supported_links">Display supported links</string>
|
||||
|
@ -62,6 +71,10 @@
|
|||
<string name="invidious_instances">Invidious instances</string>
|
||||
<string name="nitter_instances">Nitter instances</string>
|
||||
<string name="bibliogram_instances">Bibliogram instances</string>
|
||||
<string name="teddit_instances">Teddit instances</string>
|
||||
<string name="scribe_instances">Scribe instances</string>
|
||||
<string name="wikiless_instances">Wikiless instances</string>
|
||||
<string name="proxitok_instances">ProxiTok instances</string>
|
||||
<string name="latency">Latency</string>
|
||||
<string name="error_message_internet">Check your Internet connection</string>
|
||||
<string name="instance_label">Instance:</string>
|
||||
|
@ -135,6 +148,7 @@
|
|||
<string name="invidious_help_remove"><b>Remove:</b> UntrackMe will remove the parameter from URL, if it exists</string>
|
||||
<string name="invidious_help_other">If you select other values for a parameter, they will be added to the URL. If the parameter already exists, its value will be changed to your choice</string>
|
||||
<string name="invidious_help_explanations">[1] \'local\' parameter is set to \'true\' by default for better privacy</string>
|
||||
<string name="copy_url">Copy URL To Clipboard</string>
|
||||
<string-array name="invidious_theme">
|
||||
<item>Ignore</item>
|
||||
<item>Remove</item>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<resources>
|
||||
<resources xmlns:tools="http://schemas.android.com/tools">
|
||||
|
||||
<!-- Base application theme. -->
|
||||
<style name="AppTheme" parent="Theme.AppCompat">
|
||||
|
@ -10,6 +10,8 @@
|
|||
<item name="android:colorBackground">@color/colorPrimaryDark</item>
|
||||
<item name="android:textColor">@color/textColor</item>
|
||||
<item name="alertDialogTheme">@style/AppThemeDialog</item>
|
||||
<item name="android:navigationBarColor" tools:targetApi="lollipop">@color/colorPrimary
|
||||
</item>
|
||||
</style>
|
||||
|
||||
<!-- Base application theme. -->
|
||||
|
|
|
@ -3,11 +3,11 @@
|
|||
buildscript {
|
||||
repositories {
|
||||
google()
|
||||
jcenter()
|
||||
mavenCentral()
|
||||
|
||||
}
|
||||
dependencies {
|
||||
classpath 'com.android.tools.build:gradle:4.1.1'
|
||||
classpath 'com.android.tools.build:gradle:4.2.2'
|
||||
|
||||
// NOTE: Do not place your application dependencies here; they belong
|
||||
// in the individual module build.gradle files
|
||||
|
@ -17,7 +17,7 @@ buildscript {
|
|||
allprojects {
|
||||
repositories {
|
||||
google()
|
||||
jcenter()
|
||||
mavenCentral()
|
||||
|
||||
}
|
||||
}
|
||||
|
|
26
crowdin.yml
|
@ -8,31 +8,17 @@ files:
|
|||
zh-CN: zh-rCN
|
||||
pt-PT: pt-rPT
|
||||
pt-BR: pt-rBR
|
||||
- source: /app/src/fullLinks/play/listings/en-US/full-description.txt
|
||||
translation: /app/src/fullLinks/play/listings/%two_letters_code%/%original_file_name%
|
||||
#update_option: update_without_changes
|
||||
- source: /src/fullLinks/fastlane/metadata/android/en-US/full_description.txt
|
||||
translation: >-
|
||||
/src/fullLinks/fastlane/metadata/android/%two_letters_code%/%original_file_name%
|
||||
languages_mapping:
|
||||
two_letters_code:
|
||||
zh-TW: zh-rTW
|
||||
zh-CN: zh-rCN
|
||||
- source: /app/src/fullLinks/play/listings/en-US/full-description.txt
|
||||
translation: /app/src/lite/play/listings/%two_letters_code%/%original_file_name%
|
||||
#update_option: update_without_changes
|
||||
- source: /src/fullLinks/fastlane/metadata/android/en-US/short_description.txt
|
||||
translation: >-
|
||||
/src/fullLinks/fastlane/metadata/android/%two_letters_code%/%original_file_name%
|
||||
languages_mapping:
|
||||
two_letters_code:
|
||||
zh-TW: zh-rTW
|
||||
zh-CN: zh-rCN
|
||||
- source: /app/src/fullLinks/play/listings/en-US/short-description.txt
|
||||
translation: /app/src/fullLinks/play/listings/%two_letters_code%/%original_file_name%
|
||||
#update_option: update_without_changes
|
||||
languages_mapping:
|
||||
two_letters_code:
|
||||
zh-TW: zh-rTW
|
||||
zh-CN: zh-rCN
|
||||
- source: /app/src/fullLinks/play/listings/en-US/short-description.txt
|
||||
translation: /app/src/lite/play/listings/%two_letters_code%/%original_file_name%
|
||||
#update_option: update_without_changes
|
||||
languages_mapping:
|
||||
two_letters_code:
|
||||
zh-TW: zh-rTW
|
||||
zh-CN: zh-rCN
|
|
@ -1,20 +1,16 @@
|
|||
# Project-wide Gradle settings.
|
||||
# IDE (e.g. Android Studio) users:
|
||||
# Gradle settings configured through the IDE *will override*
|
||||
# any settings specified in this file.
|
||||
# For more details on how to configure your build environment visit
|
||||
## For more details on how to configure your build environment visit
|
||||
# http://www.gradle.org/docs/current/userguide/build_environment.html
|
||||
#
|
||||
# Specifies the JVM arguments used for the daemon process.
|
||||
# The setting is particularly useful for tweaking memory settings.
|
||||
org.gradle.jvmargs=-Xmx1536m
|
||||
# Default value: -Xmx1024m -XX:MaxPermSize=256m
|
||||
# org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
|
||||
#
|
||||
# When configured, Gradle will run in incubating parallel mode.
|
||||
# This option should only be used with decoupled projects. More details, visit
|
||||
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
|
||||
# org.gradle.parallel=true
|
||||
# AndroidX package structure to make it clearer which packages are bundled with the
|
||||
# Android operating system, and which are packaged with your app's APK
|
||||
# https://developer.android.com/topic/libraries/support-library/androidx-rn
|
||||
#Fri May 07 08:38:41 CEST 2021
|
||||
org.gradle.jvmargs=-Xmx2048M -Dkotlin.daemon.jvm.options\="-Xmx2048M"
|
||||
android.useAndroidX=true
|
||||
# Automatically convert third-party libraries to use AndroidX
|
||||
android.enableJetifier=true
|
||||
|
||||
|
|
|
@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME
|
|||
distributionPath=wrapper/dists
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
zipStorePath=wrapper/dists
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-6.5-all.zip
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-all.zip
|
||||
|
|
BIN
images/img1.png
Before Width: | Height: | Size: 40 KiB |
BIN
images/img2.png
Before Width: | Height: | Size: 58 KiB |
BIN
images/img3.png
Before Width: | Height: | Size: 55 KiB |
BIN
images/img4.png
Before Width: | Height: | Size: 18 KiB |
BIN
images/img5.png
Before Width: | Height: | Size: 57 KiB |
BIN
images/img6.png
Before Width: | Height: | Size: 66 KiB |
|
@ -28,4 +28,22 @@
|
|||
ما هو الببليوغرام:
|
||||
|
||||
واجهة أمامية بديلة مجانية ومفتوحة المصدر إلى إنستغرام
|
||||
مشروع Github https://github.com/cloudrac3r/bibliogram
|
||||
مشروع Github https://github.com/cloudrac3r/bibliogram
|
||||
|
||||
|
||||
ما هو Teddit:
|
||||
|
||||
واجهة ريديت الأمامية بديلة و حرة و مفتوحة المصدر تركز على الخصوصية.
|
||||
مشروع Github https://github.com/teddit-net/teddit
|
||||
|
||||
|
||||
ما هو سكريبي:
|
||||
|
||||
طرف أمامي بديل لـMedium
|
||||
المصادر: https://git.sr.ht/~edwardloveall/scribe
|
||||
|
||||
|
||||
ما هو الويكيليس:
|
||||
|
||||
واجهة أمامية بديلة لويكيبيديا مفتوحة المصدر تركز على الخصوصية.
|
||||
مشروع: https://codeberg.org/orenom/Wikiless
|