5658 Commits

Author SHA1 Message Date
Hans-Christoph Steiner
bce35ef865 remove unused methods in database code to make auditing easier
These were flagged as potential vulnerabilities.
2019-01-02 15:40:27 +01:00
Hans-Christoph Steiner
7fbfa46e18 Merge branch 'library-updates' into 'master'
some safe library version bumps

See merge request fdroid/fdroidclient!779
2018-12-31 19:12:44 +00:00
Hans-Christoph Steiner
309694458b some safe library version bimps
This is a collection of minor version updates for included libraries
that should be safe to do.  Doing this at the very beginning of the
release cycle so they'll be tested.

thanks @TacoTheDank for finding these

fdroid/fdroidclient!776

Some related changelogs:
* https://github.com/FasterXML/jackson/wiki/Jackson-Release-2.8.11
* https://github.com/jmdns/jmdns/releases
2018-12-31 17:36:33 +01:00
Hans-Christoph Steiner
f799d24f1d version code 1005050 1.5 2018-12-26 00:42:11 +01:00
Hans-Christoph Steiner
e5121dc508 update CHANGELOG 2018-12-26 00:42:03 +01:00
Hans-Christoph Steiner
945dbdbd3c prevent NPE in Bluetooth swap
ACRA  E  ACRA caught a IllegalStateException for org.fdroid.fdroid.debug
                         E  java.lang.IllegalStateException: Fatal Exception thrown on Scheduler.Worker thread.
                         E      at rx.internal.schedulers.ScheduledAction.run(ScheduledAction.java:62)
                         E      at android.os.Handler.handleCallback(Handler.java:751)
                         E      at android.os.Handler.dispatchMessage(Handler.java:95)
                         E      at android.os.Looper.loop(Looper.java:154)
                         E      at android.app.ActivityThread.main(ActivityThread.java:6128)
                         E      at java.lang.reflect.Method.invoke(Native Method)
                         E      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:889)
                         E      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:779)
                         E  Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'int java.lang.String.hashCode()' on a
                            null object reference
                         E      at org.fdroid.fdroid.localrepo.peers.BonjourPeer.hashCode(BonjourPeer.java:41)
                         E      at sun.misc.Hashing.singleWordWangJenkinsHash(Hashing.java:48)
                         E      at java.util.HashMap.put(HashMap.java:423)
                         E      at java.util.HashSet.add(HashSet.java:217)
                         E      at rx.internal.operators.OperatorDistinct$1.onNext(OperatorDistinct.java:62)
                         E      at rx.internal.operators.OperatorObserveOn$ObserveOnSubscriber.pollQueue(OperatorObserveOn.java:202)
                         E      at rx.internal.operators.OperatorObserveOn$ObserveOnSubscriber$2.call(OperatorObserveOn.java:162)
                         E      at rx.internal.schedulers.ScheduledAction.run(ScheduledAction.java:55)
                         E      ... 7 more
2018-12-26 00:29:19 +01:00
Hans-Christoph Steiner
8ce4882c1d Merge branch 'weblate' into 'master'
Weblate

See merge request fdroid/fdroidclient!777
2018-12-25 23:05:19 +00:00
Hans-Christoph Steiner
b264688385 Weblate 2018-12-25 23:05:19 +00:00
Hans-Christoph Steiner
e4537a4271 Merge branch 'clean-up-sdcard-swap' into 'master'
Clean up sdcard swap

See merge request fdroid/fdroidclient!775
2018-12-25 22:32:23 +00:00
Marcus
928042540f Merge branch 'fix_iconquery' into 'master'
Fix iconquery

Closes #1108

See merge request fdroid/fdroidclient!715
2018-12-23 11:06:16 +00:00
Peter Serwylo
da9eba94eb Remove unused parameter from app provider, after updating icon query 2018-12-22 19:39:03 +11:00
Peter Serwylo
d82023b943 Add test for loading app icons from correct repository 2018-12-22 19:34:23 +11:00
Hans-Christoph Steiner
7f9bfd38a1 Merge branch 'weblate' into 'master'
Weblate

See merge request fdroid/fdroidclient!774
2018-12-21 23:10:37 +00:00
Hans-Christoph Steiner
fc474ddf58 Weblate 2018-12-21 23:10:37 +00:00
Marcus Hoffmann
4595517aba AppProvider: fix IconUpdateQuery
The query was trying to figure out some thing about suggestedVercode
which shouldn't at all be necessary for setting the iconUrl.
The index already contains the icon pointing to the suggested version by
that repository, so we just take that regardless.
2018-12-22 09:40:16 +11:00
Marcus Hoffmann
43e5ab7eb2 fix typoes in comments 2018-12-22 09:40:16 +11:00
Hans-Christoph Steiner
0a306a4df2 after requesting Storage permissions, start SDCard scan 2018-12-21 23:06:10 +01:00
Hans-Christoph Steiner
c97424f054 show Toast when scanning an SDCard for repos 2018-12-21 23:06:04 +01:00
Hans-Christoph Steiner
43ee48ac2b only show "SDCards can be used to swap" if an SD Card is present 2018-12-21 23:05:24 +01:00
Hans-Christoph Steiner
20ebc00e5e improved log warning about TargetSdkVersion mismatch 2018-12-21 23:03:08 +01:00
Hans-Christoph Steiner
9c8c3380c1 Merge branch 'update-bottombar-translations' into 'master'
Update BottomBar translations

Closes #1569 and #887

See merge request fdroid/fdroidclient!773
2018-12-21 22:01:07 +00:00
Hans-Christoph Steiner
30c4a26145 Merge branch 'bottom-bar-overhaul' into 'master'
remove text animation from BottomBar so more text fits in the labels

Closes #1569

See merge request fdroid/fdroidclient!772
2018-12-21 21:57:06 +00:00
Hans-Christoph Steiner
4b30b42e16 add "Updates" translation to kn from Android strings 2018-12-21 17:16:28 +01:00
Hans-Christoph Steiner
0a4ee45083 sync up "Categories" translation with Android standard strings
fdroid/fdroidclient#1569
2018-12-21 17:16:25 +01:00
Hans-Christoph Steiner
3868b81587 sync up "Settings" translation with Android standard strings
fdroid/fdroidclient#1569

```python
import glob
import os
import re

locale_pat = re.compile(r'.*values-([a-z][a-z][a-zA-Z-]*)/strings.xml')
translation_pat = re.compile(r'.*name="settings_label"[^>]*>"?([^"<]*).*')
for f in glob.glob('/home/hans/code/android.googlesource.com/packages/apps/Settings/res/values-[a-z][a-z]*/strings.xml'):
    m = locale_pat.search(f)
    if m:
        locale = m.group(1)
        if locale.endswith('-nokeys'):
            continue
    #print(locale)
    with open(f) as fp:
        m = translation_pat.search(fp.read())
        if m:
            word = m.group(1)
            print(locale, '\t', word)
            fdroid = '/home/hans/code/fdroid/client/app/src/main/res/values-' + locale + '/strings.xml'
            if os.path.exists(fdroid):
                with open(fdroid) as fp:
                    data = fp.read()
                with open(fdroid, 'w') as fp:
                    fp.write(re.sub(r'menu_settings">[^<]+</string', 'menu_settings">' + word + '</string', data))
```
2018-12-21 17:07:41 +01:00
Hans-Christoph Steiner
c031f49ede sync up "Nearby" translation with Android standard strings
fdroid/fdroidclient#1569
fdroid/fdroidclient#887

```python
import glob
import os
import re

locale_pat = re.compile(r'.*values-([a-zA-Z-]*)/strings.xml')
translation_pat = re.compile(r'.*name="corpus_name_websearch_nearby">([^<]*).*')
for f in glob.glob('/tmp/Velvet/res/values-*/strings.xml'):
    m = locale_pat.search(f)
    if m:
        locale = m.group(1)
    with open(f) as fp:
        m = translation_pat.search(fp.read())
        if m:
            word = m.group(1)
            print(locale, '\t', word)
            fdroid = '/home/hans/code/fdroid/client/app/src/main/res/values-' + locale + '/strings.xml'
            if os.path.exists(fdroid):
                with open(fdroid) as fp:
                    data = fp.read()
                with open(fdroid, 'w') as fp:
                    fp.write(re.sub(r'main_menu__swap_nearby">[^<]+</string', 'main_menu__swap_nearby">' + word + '</string', data))
```
2018-12-21 17:07:40 +01:00
Hans-Christoph Steiner
38e0b8d29d update language to reflect "nearby" usage
closes #887
2018-12-21 17:07:40 +01:00
Hans-Christoph Steiner
e0f346d4b4 fix repo tests after change in mirror list logic
Why didn't these tests fail earlier?

this should have been included in ac1a5e0ad8bed1c658885c8f6142367a3812815d
fdroid/fdroidclient!769
2018-12-21 15:26:02 +01:00
Hans-Christoph Steiner
ae0c712a3e remove animation from BottomBar to make more text fit into labels
For many languages, there are unavoidable long words needed for the labels
on the button bar, for example, the standard word for Settings can be up to
15 characters long:
https://gitlab.com/fdroid/fdroidclient/issues/1569#note_126469088

The BottomBar was scaling the active one up, and sizing all the fields based
on that size.  This removes that animation, and sets all tabs to always have
the same text size.  That makes it possible to make the spacing tighter.
This also sets the text truncating mode to "middle" which sticks an elipsis
in the middle of the truncated word and shows the start and end.

closes #1569
closes !756
2018-12-21 14:27:57 +01:00
Hans-Christoph Steiner
59befbd355 use Android constants for common URI schemes
This makes the code easier to trace.
2018-12-21 14:27:57 +01:00
Hans-Christoph Steiner
d8e8cc82f1
version code 1005002 1.5-alpha2 2018-12-21 00:25:56 +01:00
Hans-Christoph Steiner
8c5263c5c5 Merge branch 'use-repos-from-usb-and-sdcard' into 'master'
use repos from USB-OTG Drives and SDCards

Closes #1377 and #656

See merge request fdroid/fdroidclient!769
2018-12-20 23:25:01 +00:00
Hans-Christoph Steiner
f95af36140 allow repos on removable storage to work without any internet 2018-12-21 00:06:15 +01:00
Hans-Christoph Steiner
69e2ca4283 keep F-Droid visible after adding removeable storage mirror 2018-12-21 00:06:15 +01:00
Hans-Christoph Steiner
0e5dd45859 fix a couple missed renames for IndexUpdater
* 0e6b4acabf72050e47dc80a273f5a5d1ec4ce222
* fdroid/fdroidclient!767
2018-12-21 00:06:15 +01:00
Hans-Christoph Steiner
90c3baf5af scanning WiFi/Bluetooth in android-23 requires location permission
This requires that admin#65 is fixed, otherwise every F-Droid update will
require Unknown Sources with Privileged Extension.

https://developer.android.com/about/versions/marshmallow/android-6.0-changes.html#behavior-hardware-id
https://stackoverflow.com/a/44200390

closes #656
2018-12-21 00:06:13 +01:00
Hans-Christoph Steiner
1d1f489d85 handle repo Intents for mirrors that are already enabled
This adds a new IntentService to pre-process Intents that request a
new repo is added.  Right now, this only handles Intents that come
from the new storage scanners.

This also adds a new case to the AddRepo UI logic to cover when an
incoming Intent is for a mirror that is already included in an enabled
repo.  In that case, the user is show the Repo Details screen for the
repo that includes that mirror.  This is done is a hacky way right now
since the only path through is to click the button.  So this clicks
the button in code.
2018-12-21 00:04:34 +01:00
Hans-Christoph Steiner
c4b0955c96 add preference to disable removable storage scanning 2018-12-21 00:04:34 +01:00
Hans-Christoph Steiner
f9bc219073 SDCardScannerService for using repos from SD Cards
Creates an IntentService subclass for scanning removable "external
storage" for F-Droid package repos, e.g. SD Cards. This is intented to
support sharable package repos, so it ignores non-removable storage,
like the fake emulated sdcard from devices with only built-in storage.
This method will only ever allow for reading repos, never writing.  It
also will not work for removeable storage devices plugged in via USB,
since do not show up as "External Storage"

* https://stackoverflow.com/a/40201333
* https://commonsware.com/blog/2017/11/14/storage-situation-external-storage.html

closes #1377
2018-12-21 00:04:34 +01:00
Hans-Christoph Steiner
1571e28f68 support swapping with removable storage on android-21+
This uses the new Storage Access Framework, which was required for
accessing files on the SD Card starting in android-19.  But the API
was really limited until android-21, and not really complete until
android-23 or even android-26.  So the levels of usability will vary a
lot based on how new the version of Android is.
2018-12-21 00:03:39 +01:00
Hans-Christoph Steiner
ac1a5e0ad8 ensure the canonical repo URL is always included in mirrors list
The mirror logic assumes that it has a mirrors list with at least once
valid entry in it.  In the index format as defined by `fdroid update`,
there is always at least one valid URL: the canonical URL.  That also
means if there is only one item in the mirrors list, there are no
other URLs to try.

The initial state of the repos in the database also include the canonical
URL in the mirrors list so the mirror logic works on the first index
update.  That makes it possible to do the first index update via SD Card
or USB OTG drive.
2018-12-20 22:58:13 +01:00
ButterflyOfFire
9380a6fd0f Translated using Weblate (Kabyle)
Currently translated at 50.4% (211 of 419 strings)
2018-12-20 22:56:53 +01:00
C. Rüdinger
89ce8cb5a9 Translated using Weblate (German)
Currently translated at 99.8% (418 of 419 strings)
2018-12-20 22:56:53 +01:00
Ldm Public
d6eb7ece89 Translated using Weblate (French)
Currently translated at 100.0% (419 of 419 strings)
2018-12-20 22:52:45 +01:00
Verdulo
09ffe21969 Translated using Weblate (Esperanto)
Currently translated at 100.0% (419 of 419 strings)
2018-12-20 22:51:06 +01:00
Hans-Christoph Steiner
6a12fd011a Merge branch 'weblate' into 'master'
Weblate

See merge request fdroid/fdroidclient!771
2018-12-20 21:48:37 +00:00
Hans-Christoph Steiner
2d2a36bab7 Weblate 2018-12-20 21:48:37 +00:00
Hans-Christoph Steiner
a24a98aaf2 script to run the steps for pulling translations from Weblate
Hopefully the need for this will go away soon, once we work with Weblate to
smooth out the workflow.

[skip ci]
2018-12-20 22:44:22 +01:00
Hans-Christoph Steiner
a2addd22a6 Merge branch 'fix-1326' into 'master'
display versionCode in expanded Versions list entries

Closes #1326

See merge request fdroid/fdroidclient!770
2018-12-20 21:41:16 +00:00
Hans-Christoph Steiner
f7049a3295 display versionCode in expanded Versions list entries
closes #1326
2018-12-20 13:14:18 +01:00