1369 Commits

Author SHA1 Message Date
wsdfhjxc
62f1a60949 Use apkName to keep track of expanded version items 2018-09-03 17:14:36 +02:00
wsdfhjxc
de837284ba Use a workaround for AppBarLayout bug to make app details screen responsive 2018-09-02 13:08:28 +02:00
Hans-Christoph Steiner
c4265fe5cb Merge branch 'lintfix' into 'master'
Minor fixes for NonNull annotations and Javadoc

See merge request fdroid/fdroidclient!742
2018-08-30 20:09:30 +00:00
wsdfhjxc
3b711ea571 App version list overhaul 2018-08-30 20:07:31 +00:00
Reimar Döffinger
6b655b8c04 Minor JavaDoc fixes. 2018-08-30 19:14:14 +02:00
Reimar Döffinger
7e14bf4c10 Add @NonNull annotations to @Override methods. 2018-08-30 19:14:14 +02:00
Hans-Christoph Steiner
acefc4ca59 Merge branch 'header-image' into 'master'
Fix missing header image after scrolling down and scrolling up in app details

Closes #1540

See merge request fdroid/fdroidclient!731
2018-08-30 10:52:38 +00:00
Hans-Christoph Steiner
5701cfe34b Merge branch 'expert-mode-scroll' into 'master'
Keep "Expert mode" item at top of screen when revealing expert preferences

See merge request fdroid/fdroidclient!737
2018-08-30 10:08:15 +00:00
wsdfhjxc
37b310575a Make checking app availability after external changes a little bit safer 2018-08-25 13:02:45 +02:00
wsdfhjxc
e68de76185 Keep "Expert mode" item at top of screen when revealing expert preferences 2018-08-22 02:56:06 +02:00
Hans-Christoph Steiner
efd577b36b add Share button to "Installed Apps" to export CSV list
refs #1484
2018-08-17 15:32:27 +02:00
Hans-Christoph Steiner
aead26f02c show "Open" button when media is installed and viewable
This checks if there is an app that can view the installed media file, and
if so, it shows an "Open" button where the "Run" button is for apps.
2018-08-17 15:32:27 +02:00
Hans-Christoph Steiner
ab8948eb5a fix "Send F-Droid via Bluetooth"
The 'com.mediatek.bluetooth' Bluetooth or android-23 devices were not
being granted URI permissions.
2018-08-17 15:05:00 +02:00
Hans-Christoph Steiner
db5ac3bdfc stop throwing an exception in DBHelper.onDowngrade()
I missed this little detail ind64a55e013882a7d6b3de646955ed68647a82e97,
the super version of this throws an exception, so it stops the downgrade.

fdroid/fdroidclient!729
2018-08-17 14:33:50 +02:00
Hans-Christoph Steiner
c291b8f0f8 retry index downloads from mirrors when failing for a networking reason
f1f56abd0f4253d69ee91bccaf09ce3730a648a3
fdroid/fdroidclient!697
2018-08-17 14:33:50 +02:00
Hans-Christoph Steiner
e02a5987d2 make DownloaderService use urlString var names like rest of code 2018-08-17 14:33:50 +02:00
Hans-Christoph Steiner
20a1b4c83d standardize on "sha256" as the hash name, like fdroidserver uses
fdroidserver has always written "sha256" to the index.xml file, so client
should use the same.  The Java hashers will correctly respond to both
"sha256" and "SHA-256", and the only place that the hashType is read from
the DB and used is in the swap repo index.xml generation, where it should
also use "sha256".
2018-08-17 14:33:50 +02:00
Hans-Christoph Steiner
20c93c64d8 eliminate .views.fragments package used by a single class 2018-08-17 14:33:50 +02:00
Hans-Christoph Steiner
2f038d81e0 error on NewApi/InlinedApi to catch compat issues with old devices 2018-08-17 10:10:00 +02:00
Hans-Christoph Steiner
896d4a788f enable lint PackageManagerGetSignatures as error 2018-08-17 10:10:00 +02:00
Hans-Christoph Steiner
8fb43b29b2 misc lint fixes
fdroid/fdroidclient!543
2018-08-17 10:10:00 +02:00
Hans-Christoph Steiner
32296910df set @NotNull properly when overriding methods
fdroid/fdroidclient!543
2018-08-17 10:10:00 +02:00
Hans-Christoph Steiner
e5d25ae8d0 use StringBuilder when assembling the repo fingerprint for display
Should speed things up a bit, and fixes a lint issue.
2018-08-17 10:10:00 +02:00
Hans-Christoph Steiner
6f88dcdbf5 fix NewApi lint issue in InstallerService.uninstall
For whatever reason, this didn't seem to cause crashes on old devices. But
better safe than sorry.
2018-08-17 10:10:00 +02:00
wsdfhjxc
0af7c18750 Set focus on the header section if there's a changelog 2018-08-15 22:23:13 +02:00
wsdfhjxc
66530358b8 Don't use OverscrollLinearLayoutManager in AppDetails2 anymore 2018-08-15 02:56:53 +02:00
Hans-Christoph Steiner
d64a55e013 close the database after completing the test run 2018-08-08 00:00:20 +02:00
Hans-Christoph Steiner
2cf2fe5341 when downgrading, reset the database 2018-08-08 00:00:01 +02:00
Hans-Christoph Steiner
738216c205 totally rework LocalHTTPD based on nanohttpd 2.3.1
The webserver was totally broken since nanohttpd had changed so much since
the swap webserver was implemented.  This syncs up with the sample file and
gets rid of our hacks.  The only differences now are the stuff that is
removed since it is totally unused in F-Droid.  This also adds a full test
suite.

this actually closes #248
2018-08-07 13:51:47 +02:00
Hans-Christoph Steiner
ddb85befa6 index.xml must use "sha256" as hash type, not "SHA-256"
Otherwise the string matching in RepoXMLHandler.endElement() fails, and the
swap repo's index.xml will use "SHA-256" instead of the correct "sha256".
2018-08-07 11:28:48 +02:00
Hans-Christoph Steiner
f56fbf4dcb swap connections fail with strange errors with keep-alive enabled 2018-08-07 11:28:48 +02:00
Hans-Christoph Steiner
e0d6371147 use constants for index.xml and index.jar throughout the code 2018-08-07 11:28:48 +02:00
Hans-Christoph Steiner
af7b94ff4c add Latest view to basic flavor
This is a quick hack to reuse the Latest view with a slightly simpler
layout.  It makes the "basic" flavor fully functional as an fdroid client.
The goal here is just to have something simpler with as little new code as
possible.  It is essential that the whitelabeling and "Light" aka "basic"
flavor does not increase the maintenance load.

closes fdroid/fdroidclient#48
fdroid/fdroidclient!692
fdroid/fdroidclient!695
2018-07-31 15:06:09 +02:00
Hans-Christoph Steiner
8f393d9f43 hide "Include touchscreen apps" pref on devices with touchscreen
closes fdroid/fdroidclient#1438
2018-07-31 12:19:07 +02:00
Hans-Christoph Steiner
3a501c9eac show PendingInstall and Installing in the Updates tab 2018-07-30 18:03:45 +02:00
Hans-Christoph Steiner
fe37695751 show "Anti-features" in list view when app is filtered
closes fdroid/fdroidclient#1533
2018-07-30 18:03:45 +02:00
Hans-Christoph Steiner
90acd75b90 purge broken, semi-used root filtering preference
RequiresRoot should become an Anti-Feature or <uses-feature> or
something like that. Having it a one-off makes it too brittle

fdroid/fdroidclient#928
2018-07-30 18:03:12 +02:00
Hans-Christoph Steiner
109a927a68 show downloading header on Downloading/PendingInstall status
PendingInstall means that the user considers the install still in process,
like when F-Droid gets killed in the background.  There is unfortunately no
reliable way currently to ensure that removePendingInstall() is called when
the app is finally installed so we can't use it here.

This reverts a small part of 1c50e2891054b629e2af6b2d0b1fc89e0b1cf18b

closes fdroid/fdroidclient#1527
fdroid/fdroidclient#1532
2018-07-30 18:02:03 +02:00
Hans-Christoph Steiner
8f8aa44f43 simplify reseting package when coming to App Details screen 2018-07-30 18:02:03 +02:00
Hans-Christoph Steiner
395efa2e3f mark app as installed only after F-Droid has processed the installed APK
InstalledAppProviderService also updates the AppUpdateStatus of any
package installs that are still in progress.  Most importantly, this
provides the final status update to mark the end of the installation
process.  It also errors out installation processes where some outside
factor uninstalled the package while the F-Droid process was underway, e.g.
uninstalling via adb, updates via Google Play, Yalp, etc.

fdroid/fdroidclient#1536
fdroid/fdroidclient#1357
2018-07-30 18:02:03 +02:00
Hans-Christoph Steiner
7d808b6e73 prevent Update button in Updates tab from being clicked multiple times
fdroid/fdroidclient#1357
2018-07-30 18:02:03 +02:00
Hans-Christoph Steiner
a2361df854 hide "Update All" button once clicked to prevent repeated clicks
fdroid/fdroidclient#1357
2018-07-30 18:02:03 +02:00
Hans-Christoph Steiner
01280d65a5 show different inline button when installing app
This could definitely use a better design treatment, but at least it is
better than showing the "click to install" button again during the install
process.

closes #1357
2018-07-21 00:49:53 +02:00
Hans-Christoph Steiner
5e75bc060c remove unneeded method, it is only called once by the method above 2018-07-21 00:49:53 +02:00
Hans-Christoph Steiner
8feb735140 disable inline install/progress button when active
refs #1357
2018-07-21 00:49:53 +02:00
Hans-Christoph Steiner
1c50e28910 use new PendingInstall mechanism to control AppDetails buttons
This should hopefully give more reliable display/hiding of the buttons.

refs #1357
2018-07-21 00:49:53 +02:00
Hans-Christoph Steiner
d1cbbe72d7 when canceling download, delay removeApk() until its no longer needed
This was deleting the Apk from appMapping too fast, so the later status
updates couldn't be sent.
2018-07-21 00:07:54 +02:00
Hans-Christoph Steiner
2ff47ed5c3 remove unneeded startInstall() method to make tracing easier
Now tracing where .queue() is used is more direct.
2018-07-21 00:07:54 +02:00
Hans-Christoph Steiner
4bf1a4fa2b App Details: do not show cancel X on installing/uninstalling
It is not possible to cancel these, so do not show the X button.  This is a
hacky way to do it, but I couldn't see another way.
2018-07-21 00:07:54 +02:00
Hans-Christoph Steiner
a1edfdfc8d PendingInstall event for announcing start of process
This adds a new PendingInstall event which broadcasts that an install
process has started, but the state of it is not yet known, like
whether it needs to be downloaded still, or is ready to install.  It
marks the very first step of the whole InstallManagerService process.

Installer events should only be directly related to the install process as
managed by the Installer set of classes.  The newer AppStatusUpdate stuff
now tracks the whole lifecycle of the process.

This mostly reverts f0d6acd974548e24662a64271ae57922f74c3225 since there is
now the overarching concept of "Pending Install" to mark packages that are
somewhere in the whole process.

refs #828
refs #1357
2018-07-21 00:07:54 +02:00