Merge pull request #278 from seedvault-app/android11-merge-master/11-1.2
11-1.2:
This commit is contained in:
commit
8e18b68608
18 changed files with 73 additions and 29 deletions
|
@ -23,7 +23,7 @@
|
||||||
|
|
||||||
### Notes
|
### Notes
|
||||||
- This contains breaking changes, any backups made prior to this release can no longer be restored.
|
- This contains breaking changes, any backups made prior to this release can no longer be restored.
|
||||||
- Application can no longer be built in the Android source tree. It must be built using Gradle and binaries can now be found here: https://github.com/stevesoltys/seedvault-prebuilt
|
- Application can no longer be built in the Android source tree. It must be built using Gradle and binaries can now be found here: https://github.com/seedvault-app/seedvault-prebuilt
|
||||||
|
|
||||||
## [0.3.0] - 2019-03-14
|
## [0.3.0] - 2019-03-14
|
||||||
### Fixed
|
### Fixed
|
||||||
|
@ -38,7 +38,7 @@
|
||||||
|
|
||||||
## [0.1.2] - 2019-02-11
|
## [0.1.2] - 2019-02-11
|
||||||
### Fixed
|
### Fixed
|
||||||
- Downgrade SDK target version to 26 due to [#15](https://github.com/stevesoltys/seedvault/issues/15).
|
- Downgrade SDK target version to 26 due to [#15](https://github.com/seedvault-app/seedvault/issues/15).
|
||||||
|
|
||||||
## [0.1.1] - 2019-02-11
|
## [0.1.1] - 2019-02-11
|
||||||
### Added
|
### Added
|
||||||
|
@ -47,4 +47,4 @@
|
||||||
- Upgrade target SDK version to 28.
|
- Upgrade target SDK version to 28.
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
- Ignore `com.android.providers.downloads.ui` to resolve [#14](https://github.com/stevesoltys/seedvault/issues/14).
|
- Ignore `com.android.providers.downloads.ui` to resolve [#14](https://github.com/seedvault-app/seedvault/issues/14).
|
||||||
|
|
|
@ -13,10 +13,10 @@ A backup application for the [Android Open Source Project](https://source.androi
|
||||||
|
|
||||||
- Android 11
|
- Android 11
|
||||||
|
|
||||||
For older versions of Android, check out [the branches](https://github.com/stevesoltys/seedvault/branches).
|
For older versions of Android, check out [the branches](https://github.com/seedvault-app/seedvault/branches).
|
||||||
|
|
||||||
## Getting Started
|
## Getting Started
|
||||||
- Check out [the wiki](https://github.com/stevesoltys/seedvault/wiki) for information on building the application with
|
- Check out [the wiki](https://github.com/seedvault-app/seedvault/wiki) for information on building the application with
|
||||||
AOSP.
|
AOSP.
|
||||||
|
|
||||||
## What makes this different?
|
## What makes this different?
|
||||||
|
|
|
@ -2,8 +2,8 @@
|
||||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
xmlns:tools="http://schemas.android.com/tools"
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
package="com.stevesoltys.seedvault"
|
package="com.stevesoltys.seedvault"
|
||||||
android:versionCode="30000011"
|
android:versionCode="30000021"
|
||||||
android:versionName="11-1.1">
|
android:versionName="11-1.2">
|
||||||
<!--
|
<!--
|
||||||
The version code is the targeted SDK_VERSION plus 6 digits for our own version code.
|
The version code is the targeted SDK_VERSION plus 6 digits for our own version code.
|
||||||
The version name is the targeted Android version followed by - and our own version name.
|
The version name is the targeted Android version followed by - and our own version name.
|
||||||
|
|
|
@ -236,7 +236,7 @@ internal class BackupCoordinator(
|
||||||
// K/V backups (typically starting with package manager metadata - @pm@)
|
// K/V backups (typically starting with package manager metadata - @pm@)
|
||||||
// are scheduled with JobInfo.Builder#setOverrideDeadline() and thus do not respect backoff.
|
// are scheduled with JobInfo.Builder#setOverrideDeadline() and thus do not respect backoff.
|
||||||
// We need to reject them manually when we can not do a backup now.
|
// We need to reject them manually when we can not do a backup now.
|
||||||
// What else we tried can be found in: https://github.com/stevesoltys/seedvault/issues/102
|
// What else we tried can be found in: https://github.com/seedvault-app/seedvault/issues/102
|
||||||
if (packageName == MAGIC_PACKAGE_MANAGER) {
|
if (packageName == MAGIC_PACKAGE_MANAGER) {
|
||||||
if (!settingsManager.canDoBackupNow()) {
|
if (!settingsManager.canDoBackupNow()) {
|
||||||
// Returning anything else here (except non-incremental-required which re-tries)
|
// Returning anything else here (except non-incremental-required which re-tries)
|
||||||
|
|
|
@ -60,6 +60,7 @@
|
||||||
|
|
||||||
<Button
|
<Button
|
||||||
android:id="@+id/doneButton"
|
android:id="@+id/doneButton"
|
||||||
|
style="@style/ActionPrimaryButton"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginStart="8dp"
|
android:layout_marginStart="8dp"
|
||||||
|
|
|
@ -57,19 +57,21 @@
|
||||||
<androidx.recyclerview.widget.RecyclerView
|
<androidx.recyclerview.widget.RecyclerView
|
||||||
android:id="@+id/wordList"
|
android:id="@+id/wordList"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="0dp"
|
||||||
android:orientation="vertical"
|
android:scrollbars="vertical"
|
||||||
app:layoutManager="androidx.recyclerview.widget.GridLayoutManager"
|
app:layoutManager="androidx.recyclerview.widget.GridLayoutManager"
|
||||||
app:layout_constraintBottom_toTopOf="@+id/confirmCodeButton"
|
app:layout_constraintBottom_toTopOf="@+id/confirmCodeButton"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toBottomOf="@+id/divider"
|
app:layout_constraintTop_toBottomOf="@+id/divider"
|
||||||
|
app:layout_constraintVertical_chainStyle="spread_inside"
|
||||||
app:spanCount="2"
|
app:spanCount="2"
|
||||||
tools:itemCount="12"
|
tools:itemCount="12"
|
||||||
tools:listitem="@layout/list_item_recovery_code_output" />
|
tools:listitem="@layout/list_item_recovery_code_output" />
|
||||||
|
|
||||||
<Button
|
<Button
|
||||||
android:id="@+id/confirmCodeButton"
|
android:id="@+id/confirmCodeButton"
|
||||||
|
style="@style/ActionPrimaryButton"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginStart="8dp"
|
android:layout_marginStart="8dp"
|
||||||
|
@ -78,6 +80,7 @@
|
||||||
android:text="@string/recovery_code_confirm_button"
|
android:text="@string/recovery_code_confirm_button"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintStart_toStartOf="parent" />
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toBottomOf="@+id/wordList" />
|
||||||
|
|
||||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
|
@ -68,7 +68,7 @@
|
||||||
|
|
||||||
<Button
|
<Button
|
||||||
android:id="@+id/button"
|
android:id="@+id/button"
|
||||||
style="@style/Widget.AppCompat.Button.Colored"
|
style="@style/ActionPrimaryButton"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginStart="16dp"
|
android:layout_marginStart="16dp"
|
||||||
|
|
|
@ -57,7 +57,7 @@
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_margin="16dp"
|
android:layout_margin="16dp"
|
||||||
android:textColor="@android:color/holo_red_dark"
|
android:textColor="?android:colorError"
|
||||||
android:textSize="18sp"
|
android:textSize="18sp"
|
||||||
android:visibility="invisible"
|
android:visibility="invisible"
|
||||||
app:layout_constraintBottom_toTopOf="@+id/backView"
|
app:layout_constraintBottom_toTopOf="@+id/backView"
|
||||||
|
|
|
@ -50,7 +50,7 @@
|
||||||
android:layout_marginStart="16dp"
|
android:layout_marginStart="16dp"
|
||||||
android:layout_marginTop="32dp"
|
android:layout_marginTop="32dp"
|
||||||
android:layout_marginEnd="16dp"
|
android:layout_marginEnd="16dp"
|
||||||
android:textColor="@android:color/holo_red_dark"
|
android:textColor="?android:colorError"
|
||||||
android:textSize="18sp"
|
android:textSize="18sp"
|
||||||
android:visibility="invisible"
|
android:visibility="invisible"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
|
@ -63,7 +63,7 @@
|
||||||
|
|
||||||
<Button
|
<Button
|
||||||
android:id="@+id/backButton"
|
android:id="@+id/backButton"
|
||||||
style="@style/Widget.AppCompat.Button.Colored"
|
style="@style/ActionPrimaryButton"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_margin="16dp"
|
android:layout_margin="16dp"
|
||||||
|
|
|
@ -4,7 +4,8 @@
|
||||||
xmlns:tools="http://schemas.android.com/tools"
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:padding="24dp"
|
android:layout_marginTop="24dp"
|
||||||
|
android:layout_marginBottom="24dp"
|
||||||
tools:showIn="@layout/fragment_recovery_code_output">
|
tools:showIn="@layout/fragment_recovery_code_output">
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
|
@ -25,12 +26,12 @@
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginStart="16dp"
|
android:layout_marginStart="16dp"
|
||||||
android:autoSizeTextType="uniform"
|
|
||||||
android:textSize="24sp"
|
android:textSize="24sp"
|
||||||
|
app:layout_constrainedWidth="true"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintStart_toEndOf="@+id/num"
|
app:layout_constraintStart_toEndOf="@+id/num"
|
||||||
app:layout_constraintTop_toTopOf="parent"
|
app:layout_constraintTop_toTopOf="parent"
|
||||||
tools:text="Test1" />
|
tools:text="Test1CanBeLong" />
|
||||||
|
|
||||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
4
app/src/main/res/values-night/bools.xml
Normal file
4
app/src/main/res/values-night/bools.xml
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<resources>
|
||||||
|
<bool name="isLight">false</bool>
|
||||||
|
</resources>
|
10
app/src/main/res/values-night/colors.xml
Normal file
10
app/src/main/res/values-night/colors.xml
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<resources>
|
||||||
|
<color name="accent">@*android:color/accent_device_default_dark</color>
|
||||||
|
<color name="primary">@*android:color/primary_device_default_settings</color>
|
||||||
|
<color name="primaryDark">@*android:color/primary_dark_device_default_settings</color>
|
||||||
|
<color name="background">@color/primaryDark</color>
|
||||||
|
<color name="actionBarPrimary">@color/background</color>
|
||||||
|
<color name="statusBarColor">@android:color/transparent</color>
|
||||||
|
<color name="red">@*android:color/error_color_device_default_dark</color>
|
||||||
|
</resources>
|
4
app/src/main/res/values/bools.xml
Normal file
4
app/src/main/res/values/bools.xml
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<resources>
|
||||||
|
<bool name="isLight">true</bool>
|
||||||
|
</resources>
|
|
@ -1,8 +1,13 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<resources>
|
<resources>
|
||||||
<color name="accent">#99cc00</color>
|
<color name="accent">@*android:color/accent_device_default_light</color>
|
||||||
<color name="divider">#8A000000</color>
|
<color name="primary">@*android:color/primary_device_default_settings_light</color>
|
||||||
|
<color name="primaryDark">@*android:color/primary_dark_device_default_settings_light</color>
|
||||||
|
<color name="background">@*android:color/background_device_default_light</color>
|
||||||
|
<color name="actionBarPrimary">@*android:color/primary_device_default_light</color>
|
||||||
|
<color name="statusBarColor">@*android:color/primary_dark_material_light_light_status_bar</color>
|
||||||
|
<color name="red">@*android:color/error_color_device_default_dark</color>
|
||||||
|
<color name="divider">#20ffffff</color>
|
||||||
<color name="green">#558B2F</color>
|
<color name="green">#558B2F</color>
|
||||||
<color name="red">#D32F2F</color>
|
|
||||||
<color name="yellow">#F9A825</color>
|
<color name="yellow">#F9A825</color>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
@ -28,7 +28,7 @@
|
||||||
<string name="settings_backup_status_summary">Last backup: %1$s</string>
|
<string name="settings_backup_status_summary">Last backup: %1$s</string>
|
||||||
<string name="settings_backup_exclude_apps">Exclude apps</string>
|
<string name="settings_backup_exclude_apps">Exclude apps</string>
|
||||||
<string name="settings_backup_now">Backup now</string>
|
<string name="settings_backup_now">Backup now</string>
|
||||||
<string name="settings_backup_recovery_code">Recovery Code</string>
|
<string name="settings_backup_recovery_code">Recovery code</string>
|
||||||
<string name="settings_backup_recovery_code_summary">Verify existing code or generate a new one</string>
|
<string name="settings_backup_recovery_code_summary">Verify existing code or generate a new one</string>
|
||||||
|
|
||||||
<!-- Storage -->
|
<!-- Storage -->
|
||||||
|
@ -39,8 +39,8 @@
|
||||||
<string name="storage_fake_drive_summary">Needs to be plugged in</string>
|
<string name="storage_fake_drive_summary">Needs to be plugged in</string>
|
||||||
<string name="storage_available_bytes"><xliff:g example="1 GB" id="size">%1$s</xliff:g> free</string>
|
<string name="storage_available_bytes"><xliff:g example="1 GB" id="size">%1$s</xliff:g> free</string>
|
||||||
<string name="storage_fake_nextcloud_title" translatable="false">Nextcloud</string>
|
<string name="storage_fake_nextcloud_title" translatable="false">Nextcloud</string>
|
||||||
<string name="storage_fake_nextcloud_summary">Click to install</string>
|
<string name="storage_fake_nextcloud_summary">Tap to install</string>
|
||||||
<string name="storage_fake_nextcloud_summary_installed">Click to set up account</string>
|
<string name="storage_fake_nextcloud_summary_installed">Tap to set up account</string>
|
||||||
<string name="storage_fake_nextcloud_summary_unavailable">Account not available. Set one up (or disable passcode).</string>
|
<string name="storage_fake_nextcloud_summary_unavailable">Account not available. Set one up (or disable passcode).</string>
|
||||||
<string name="storage_check_fragment_backup_title">Initializing backup location…</string>
|
<string name="storage_check_fragment_backup_title">Initializing backup location…</string>
|
||||||
<string name="storage_check_fragment_restore_title">Looking for backups…</string>
|
<string name="storage_check_fragment_restore_title">Looking for backups…</string>
|
||||||
|
@ -154,6 +154,6 @@
|
||||||
<string name="about_author">Written by: <a href="https://github.com/stevesoltys">Steve Soltys</a> and <a href="https://blog.grobox.de">Torsten Grote</a></string>
|
<string name="about_author">Written by: <a href="https://github.com/stevesoltys">Steve Soltys</a> and <a href="https://blog.grobox.de">Torsten Grote</a></string>
|
||||||
<string name="about_design">Design by: <a href="https://www.glennsorrentino.com/">Glenn Sorrentino</a></string>
|
<string name="about_design">Design by: <a href="https://www.glennsorrentino.com/">Glenn Sorrentino</a></string>
|
||||||
<string name="about_sponsor">Sponsored by: <a href="https://www.calyxinstitute.org">Calyx Institute</a> for use in <a href="https://calyxos.org">CalyxOS</a></string>
|
<string name="about_sponsor">Sponsored by: <a href="https://www.calyxinstitute.org">Calyx Institute</a> for use in <a href="https://calyxos.org">CalyxOS</a></string>
|
||||||
<string name="about_source_code">Source Code: https://github.com/stevesoltys/seedvault</string>
|
<string name="about_source_code">Source code: https://github.com/seedvault-app/seedvault</string>
|
||||||
|
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
@ -1,8 +1,21 @@
|
||||||
<resources>
|
<resources>
|
||||||
|
|
||||||
<style name="AppTheme" parent="Theme.AppCompat.DayNight">
|
<style name="AppTheme" parent="@style/Theme.AppCompat.DayNight">
|
||||||
|
<item name="colorPrimary">@color/primary</item>
|
||||||
|
<item name="colorPrimaryDark">@color/primaryDark</item>
|
||||||
<item name="colorAccent">@color/accent</item>
|
<item name="colorAccent">@color/accent</item>
|
||||||
|
<item name="colorError">@color/red</item>
|
||||||
|
<item name="android:windowBackground">@color/background</item>
|
||||||
|
<item name="fontFamily">@*android:string/config_bodyFontFamily</item>
|
||||||
<item name="preferenceTheme">@style/PreferenceThemeOverlay</item>
|
<item name="preferenceTheme">@style/PreferenceThemeOverlay</item>
|
||||||
|
<item name="android:windowLightStatusBar">@bool/isLight</item>
|
||||||
|
<item name="android:statusBarColor">@color/statusBarColor</item>
|
||||||
|
<item name="actionBarTheme">@style/Theme.ActionBar</item>
|
||||||
|
<item name="android:navigationBarColor">@android:color/transparent</item>
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<style name="Theme.ActionBar" parent="Theme.AppCompat.DayNight.DarkActionBar">
|
||||||
|
<item name="colorPrimary">@color/actionBarPrimary</item>
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<style name="AppTheme.NoActionBar" parent="AppTheme">
|
<style name="AppTheme.NoActionBar" parent="AppTheme">
|
||||||
|
@ -10,4 +23,7 @@
|
||||||
<item name="windowNoTitle">true</item>
|
<item name="windowNoTitle">true</item>
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
|
<!-- Copied from Settings -->
|
||||||
|
<style name="ActionPrimaryButton" parent="android:Widget.DeviceDefault.Button.Colored" />
|
||||||
|
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
@ -2,8 +2,8 @@
|
||||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
xmlns:tools="http://schemas.android.com/tools"
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
package="org.calyxos.backup.contacts"
|
package="org.calyxos.backup.contacts"
|
||||||
android:versionCode="30000011"
|
android:versionCode="30000021"
|
||||||
android:versionName="11-1.1">
|
android:versionName="11-1.2">
|
||||||
<!--
|
<!--
|
||||||
The version code is the targeted SDK_VERSION plus 6 digits for our own version code.
|
The version code is the targeted SDK_VERSION plus 6 digits for our own version code.
|
||||||
The version name is the targeted Android version followed by - and our own version name.
|
The version name is the targeted Android version followed by - and our own version name.
|
||||||
|
|
|
@ -45,7 +45,7 @@ class VCardExporter {
|
||||||
private Collection<String> getLookupKeys() {
|
private Collection<String> getLookupKeys() {
|
||||||
String[] projection = new String[]{LOOKUP_KEY};
|
String[] projection = new String[]{LOOKUP_KEY};
|
||||||
// We can not add IS_PRIMARY here as this gets lost on restored contacts
|
// We can not add IS_PRIMARY here as this gets lost on restored contacts
|
||||||
String selection = ACCOUNT_TYPE + " is null";
|
String selection = ACCOUNT_TYPE + " is null OR " + ACCOUNT_TYPE + "='com.android.contacts'";
|
||||||
Cursor cursor = contentResolver.query(CONTENT_URI, projection, selection, null, null);
|
Cursor cursor = contentResolver.query(CONTENT_URI, projection, selection, null, null);
|
||||||
if (cursor == null) {
|
if (cursor == null) {
|
||||||
Log.e(TAG, "Cursor for LOOKUP_KEY is null");
|
Log.e(TAG, "Cursor for LOOKUP_KEY is null");
|
||||||
|
|
Loading…
Reference in a new issue