diff --git a/app/build.gradle b/app/build.gradle index 4378d6879..6732075bc 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -15,10 +15,19 @@ def getVersionName = { -> def isCi = "true".equals(System.getenv("CI")) def preDexEnabled = "true".equals(System.getProperty("pre-dex", "true")) +def fullApplicationId = "org.fdroid.fdroid" +def basicApplicationId = "org.fdroid.basic" + android { compileSdkVersion 27 buildToolsVersion '27.0.3' + defaultConfig { + versionCode 1003001 + versionName getVersionName() + testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" + } + buildTypes { // use proguard on debug too since we have unknowingly broken // release builds before. @@ -29,6 +38,26 @@ android { proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' testProguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro', 'src/androidTest/proguard-rules.pro' } + debug { + applicationIdSuffix ".debug" + resValue "string", "applicationId", fullApplicationId + applicationIdSuffix + versionNameSuffix "-debug" + println 'buildTypes.debug defaultConfig.versionCode ' + defaultConfig.versionCode + } + } + + flavorDimensions "base" + productFlavors { + full { + dimension "base" + applicationId fullApplicationId + resValue "string", "applicationId", fullApplicationId + } + basic { + dimension "base" + applicationId basicApplicationId + resValue "string", "applicationId", basicApplicationId + } } compileOptions { @@ -46,23 +75,6 @@ android { preDexLibraries = preDexEnabled && !isCi } - defaultConfig { - versionCode 1003001 - versionName getVersionName() - applicationId 'org.fdroid.fdroid' - resValue "string", "applicationId", applicationId - testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" - } - - buildTypes { - debug { - applicationIdSuffix ".debug" - resValue "string", "applicationId", defaultConfig.applicationId + applicationIdSuffix - versionNameSuffix "-debug" - println 'buildTypes.debug defaultConfig.versionCode ' + defaultConfig.versionCode - } - } - testOptions { unitTests { includeAndroidResources = true @@ -125,13 +137,10 @@ dependencies { implementation 'com.nostra13.universalimageloader:universal-image-loader:1.9.5' implementation 'com.google.zxing:core:3.3.2' implementation 'eu.chainfire:libsuperuser:1.0.0.201602271131' - implementation 'cc.mvdan.accesspoint:library:0.2.0' implementation 'info.guardianproject.netcipher:netcipher:2.0.0-alpha1' implementation 'info.guardianproject.panic:panic:0.5' implementation 'commons-io:commons-io:2.5' implementation 'commons-net:commons-net:3.5' - implementation 'org.jmdns:jmdns:3.5.3' - implementation 'org.nanohttpd:nanohttpd:2.3.1' implementation 'ch.acra:acra:4.9.1' implementation 'io.reactivex:rxjava:1.1.0' implementation 'io.reactivex:rxandroid:0.23.0' @@ -142,10 +151,14 @@ dependencies { implementation 'com.fasterxml.jackson.core:jackson-annotations:2.8.7' implementation 'com.fasterxml.jackson.core:jackson-databind:2.8.7' - implementation 'org.bouncycastle:bcpkix-jdk15on:1.59' implementation 'org.bouncycastle:bcprov-jdk15on:1.59' + fullImplementation 'org.bouncycastle:bcpkix-jdk15on:1.59' + fullImplementation 'cc.mvdan.accesspoint:library:0.2.0' + fullImplementation 'org.jmdns:jmdns:3.5.3' + fullImplementation 'org.nanohttpd:nanohttpd:2.3.1' testImplementation 'org.robolectric:robolectric:3.8' + testImplementation 'org.bouncycastle:bcprov-jdk15on:1.59' testImplementation 'junit:junit:4.12' testImplementation 'org.mockito:mockito-core:2.7.22' @@ -154,6 +167,12 @@ dependencies { androidTestImplementation 'com.android.support.test:rules:0.5' } +tasks.whenTaskAdded { task -> + if (task.name.startsWith("lintBasic")) { + android.lintOptions.abortOnError = false + } +} + checkstyle { toolVersion = '7.2' } diff --git a/app/lint.xml b/app/lint.xml index a2eed735d..277c6dcb1 100644 --- a/app/lint.xml +++ b/app/lint.xml @@ -36,7 +36,7 @@ - + diff --git a/app/src/basic/java/org/fdroid/fdroid/localrepo/peers/WifiPeer.java b/app/src/basic/java/org/fdroid/fdroid/localrepo/peers/WifiPeer.java new file mode 100644 index 000000000..112dfdce7 --- /dev/null +++ b/app/src/basic/java/org/fdroid/fdroid/localrepo/peers/WifiPeer.java @@ -0,0 +1,30 @@ +/* + * Copyright (C) 2018 Senecto Limited + * + * 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. + * + * This program 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 this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + */ + +package org.fdroid.fdroid.localrepo.peers; + +import org.fdroid.fdroid.data.NewRepoConfig; + +/** + * Dummy version for basic app flavor. + */ +public class WifiPeer { + public WifiPeer(NewRepoConfig config) { + } +} diff --git a/app/src/basic/java/org/fdroid/fdroid/net/WifiStateChangeService.java b/app/src/basic/java/org/fdroid/fdroid/net/WifiStateChangeService.java new file mode 100644 index 000000000..4a7e652f0 --- /dev/null +++ b/app/src/basic/java/org/fdroid/fdroid/net/WifiStateChangeService.java @@ -0,0 +1,35 @@ +/* + * Copyright (C) 2018 Senecto Limited + * + * 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. + * + * This program 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 this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + */ + +package org.fdroid.fdroid.net; + +import android.content.Context; +import android.content.Intent; +import android.support.annotation.Nullable; + +/** + * Dummy version for basic app flavor. + */ +public class WifiStateChangeService { + public static void start(Context context, @Nullable Intent intent) { + } + + public class WifiInfoThread extends Thread { + } +} diff --git a/app/src/basic/java/org/fdroid/fdroid/net/bluetooth/BluetoothClient.java b/app/src/basic/java/org/fdroid/fdroid/net/bluetooth/BluetoothClient.java new file mode 100644 index 000000000..bb095c56a --- /dev/null +++ b/app/src/basic/java/org/fdroid/fdroid/net/bluetooth/BluetoothClient.java @@ -0,0 +1,34 @@ +/* + * Copyright (C) 2018 Senecto Limited + * + * 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. + * + * This program 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 this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + */ + +package org.fdroid.fdroid.net.bluetooth; + +/** + * Dummy version for basic app flavor. + */ + +public class BluetoothClient { + + public BluetoothClient(String ignored) { + } + + public BluetoothConnection openConnection() { + return null; + } +} diff --git a/app/src/basic/java/org/fdroid/fdroid/views/hiding/HidingManager.java b/app/src/basic/java/org/fdroid/fdroid/views/hiding/HidingManager.java new file mode 100644 index 000000000..6a574e0fb --- /dev/null +++ b/app/src/basic/java/org/fdroid/fdroid/views/hiding/HidingManager.java @@ -0,0 +1,32 @@ +/* + * Copyright (C) 2018 Senecto Limited + * + * 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. + * + * This program 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 this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + */ + +package org.fdroid.fdroid.views.hiding; + +import android.content.Context; + +/** + * Dummy version for basic app flavor. + */ +public class HidingManager { + + public static boolean isHidden(Context context) { + return false; + } +} diff --git a/app/src/basic/java/org/fdroid/fdroid/views/main/MainViewController.java b/app/src/basic/java/org/fdroid/fdroid/views/main/MainViewController.java new file mode 100644 index 000000000..ba85cd1dc --- /dev/null +++ b/app/src/basic/java/org/fdroid/fdroid/views/main/MainViewController.java @@ -0,0 +1,96 @@ +/* + * Copyright (C) 2018 Senecto Limited + * + * 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. + * + * This program 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 this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + */ + +package org.fdroid.fdroid.views.main; + +import android.support.annotation.Nullable; +import android.support.v4.app.Fragment; +import android.support.v7.app.AppCompatActivity; +import android.support.v7.widget.RecyclerView; +import android.widget.FrameLayout; +import org.fdroid.fdroid.R; +import org.fdroid.fdroid.views.fragments.PreferencesFragment; +import org.fdroid.fdroid.views.updates.UpdatesViewBinder; + +/** + * Decides which view on the main screen to attach to a given {@link FrameLayout}. This class + * doesn't know which view it will be rendering at the time it is constructed. Rather, at some + * point in the future the {@link MainViewAdapter} will have information about which view we + * are required to render, and will invoke the relevant "bind*()" method on this class. + */ +class MainViewController extends RecyclerView.ViewHolder { + + private final AppCompatActivity activity; + private final FrameLayout frame; + + @Nullable + private UpdatesViewBinder updatesView = null; + + MainViewController(AppCompatActivity activity, FrameLayout frame) { + super(frame); + this.activity = activity; + this.frame = frame; + } + + public void bindWhatsNewView() { + throw new IllegalStateException("unimplemented"); + } + + /** + * @see UpdatesViewBinder + */ + public void bindUpdates() { + if (updatesView == null) { + updatesView = new UpdatesViewBinder(activity, frame); + } + + updatesView.bind(); + } + + public void unbindUpdates() { + if (updatesView != null) { + updatesView.unbind(); + } + } + + public void bindCategoriesView() { + throw new IllegalStateException("unimplemented"); + } + + public void bindSwapView() { + throw new IllegalStateException("unimplemented"); + } + + /** + * Attaches a {@link PreferencesFragment} to the view. Everything else is managed by the + * fragment itself, so no further work needs to be done by this view binder. + *

+ * Note: It is tricky to attach a {@link Fragment} to a view from this view holder. This is due + * to the way in which the {@link RecyclerView} will reuse existing views and ask us to + * put a settings fragment in there at arbitrary times. Usually it wont be the same view we + * attached the fragment to last time, which causes weirdness. The solution is to use code from + * the com.lsjwzh.widget.recyclerviewpager.FragmentStatePagerAdapter which manages this. + * The code has been ported to {@link SettingsView}. + * + * @see SettingsView + */ + public void bindSettingsView() { + activity.getLayoutInflater().inflate(R.layout.main_tab_settings, frame, true); + } +} diff --git a/app/src/basic/java/org/fdroid/fdroid/views/swap/SwapWorkflowActivity.java b/app/src/basic/java/org/fdroid/fdroid/views/swap/SwapWorkflowActivity.java new file mode 100644 index 000000000..4e86467a5 --- /dev/null +++ b/app/src/basic/java/org/fdroid/fdroid/views/swap/SwapWorkflowActivity.java @@ -0,0 +1,28 @@ +/* + * Copyright (C) 2018 Senecto Limited + * + * 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. + * + * This program 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 this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + */ + +package org.fdroid.fdroid.views.swap; + +/** + * Dummy version for basic app flavor. + */ +public class SwapWorkflowActivity { + public static final String EXTRA_PREVENT_FURTHER_SWAP_REQUESTS = "preventFurtherSwap"; + public static final String EXTRA_CONFIRM = "EXTRA_CONFIRM"; +} diff --git a/app/src/basic/res/menu/main_activity_screens.xml b/app/src/basic/res/menu/main_activity_screens.xml new file mode 100644 index 000000000..4785bd5c0 --- /dev/null +++ b/app/src/basic/res/menu/main_activity_screens.xml @@ -0,0 +1,14 @@ + +

+ + + \ No newline at end of file diff --git a/app/src/basic/res/xml/preferences.xml b/app/src/basic/res/xml/preferences.xml new file mode 100644 index 000000000..c1e62f5ca --- /dev/null +++ b/app/src/basic/res/xml/preferences.xml @@ -0,0 +1,166 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/full/AndroidManifest.xml b/app/src/full/AndroidManifest.xml new file mode 100644 index 000000000..f2ed455be --- /dev/null +++ b/app/src/full/AndroidManifest.xml @@ -0,0 +1,131 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/java/javax/jmdns/impl/FDroidServiceInfo.java b/app/src/full/java/javax/jmdns/impl/FDroidServiceInfo.java similarity index 100% rename from app/src/main/java/javax/jmdns/impl/FDroidServiceInfo.java rename to app/src/full/java/javax/jmdns/impl/FDroidServiceInfo.java diff --git a/app/src/main/java/kellinwood/logging/AbstractLogger.java b/app/src/full/java/kellinwood/logging/AbstractLogger.java similarity index 100% rename from app/src/main/java/kellinwood/logging/AbstractLogger.java rename to app/src/full/java/kellinwood/logging/AbstractLogger.java diff --git a/app/src/main/java/kellinwood/logging/ConsoleLoggerFactory.java b/app/src/full/java/kellinwood/logging/ConsoleLoggerFactory.java similarity index 100% rename from app/src/main/java/kellinwood/logging/ConsoleLoggerFactory.java rename to app/src/full/java/kellinwood/logging/ConsoleLoggerFactory.java diff --git a/app/src/main/java/kellinwood/logging/LoggerFactory.java b/app/src/full/java/kellinwood/logging/LoggerFactory.java similarity index 100% rename from app/src/main/java/kellinwood/logging/LoggerFactory.java rename to app/src/full/java/kellinwood/logging/LoggerFactory.java diff --git a/app/src/main/java/kellinwood/logging/LoggerInterface.java b/app/src/full/java/kellinwood/logging/LoggerInterface.java similarity index 100% rename from app/src/main/java/kellinwood/logging/LoggerInterface.java rename to app/src/full/java/kellinwood/logging/LoggerInterface.java diff --git a/app/src/main/java/kellinwood/logging/LoggerManager.java b/app/src/full/java/kellinwood/logging/LoggerManager.java similarity index 100% rename from app/src/main/java/kellinwood/logging/LoggerManager.java rename to app/src/full/java/kellinwood/logging/LoggerManager.java diff --git a/app/src/main/java/kellinwood/logging/NullLoggerFactory.java b/app/src/full/java/kellinwood/logging/NullLoggerFactory.java similarity index 100% rename from app/src/main/java/kellinwood/logging/NullLoggerFactory.java rename to app/src/full/java/kellinwood/logging/NullLoggerFactory.java diff --git a/app/src/main/java/kellinwood/logging/StreamLogger.java b/app/src/full/java/kellinwood/logging/StreamLogger.java similarity index 100% rename from app/src/main/java/kellinwood/logging/StreamLogger.java rename to app/src/full/java/kellinwood/logging/StreamLogger.java diff --git a/app/src/main/java/kellinwood/security/zipsigner/AutoKeyException.java b/app/src/full/java/kellinwood/security/zipsigner/AutoKeyException.java similarity index 100% rename from app/src/main/java/kellinwood/security/zipsigner/AutoKeyException.java rename to app/src/full/java/kellinwood/security/zipsigner/AutoKeyException.java diff --git a/app/src/main/java/kellinwood/security/zipsigner/Base64.java b/app/src/full/java/kellinwood/security/zipsigner/Base64.java similarity index 100% rename from app/src/main/java/kellinwood/security/zipsigner/Base64.java rename to app/src/full/java/kellinwood/security/zipsigner/Base64.java diff --git a/app/src/main/java/kellinwood/security/zipsigner/DefaultResourceAdapter.java b/app/src/full/java/kellinwood/security/zipsigner/DefaultResourceAdapter.java similarity index 100% rename from app/src/main/java/kellinwood/security/zipsigner/DefaultResourceAdapter.java rename to app/src/full/java/kellinwood/security/zipsigner/DefaultResourceAdapter.java diff --git a/app/src/main/java/kellinwood/security/zipsigner/HexDumpEncoder.java b/app/src/full/java/kellinwood/security/zipsigner/HexDumpEncoder.java similarity index 100% rename from app/src/main/java/kellinwood/security/zipsigner/HexDumpEncoder.java rename to app/src/full/java/kellinwood/security/zipsigner/HexDumpEncoder.java diff --git a/app/src/main/java/kellinwood/security/zipsigner/HexEncoder.java b/app/src/full/java/kellinwood/security/zipsigner/HexEncoder.java similarity index 100% rename from app/src/main/java/kellinwood/security/zipsigner/HexEncoder.java rename to app/src/full/java/kellinwood/security/zipsigner/HexEncoder.java diff --git a/app/src/main/java/kellinwood/security/zipsigner/KeySet.java b/app/src/full/java/kellinwood/security/zipsigner/KeySet.java similarity index 100% rename from app/src/main/java/kellinwood/security/zipsigner/KeySet.java rename to app/src/full/java/kellinwood/security/zipsigner/KeySet.java diff --git a/app/src/main/java/kellinwood/security/zipsigner/ProgressEvent.java b/app/src/full/java/kellinwood/security/zipsigner/ProgressEvent.java similarity index 100% rename from app/src/main/java/kellinwood/security/zipsigner/ProgressEvent.java rename to app/src/full/java/kellinwood/security/zipsigner/ProgressEvent.java diff --git a/app/src/main/java/kellinwood/security/zipsigner/ProgressHelper.java b/app/src/full/java/kellinwood/security/zipsigner/ProgressHelper.java similarity index 100% rename from app/src/main/java/kellinwood/security/zipsigner/ProgressHelper.java rename to app/src/full/java/kellinwood/security/zipsigner/ProgressHelper.java diff --git a/app/src/main/java/kellinwood/security/zipsigner/ProgressListener.java b/app/src/full/java/kellinwood/security/zipsigner/ProgressListener.java similarity index 100% rename from app/src/main/java/kellinwood/security/zipsigner/ProgressListener.java rename to app/src/full/java/kellinwood/security/zipsigner/ProgressListener.java diff --git a/app/src/main/java/kellinwood/security/zipsigner/ResourceAdapter.java b/app/src/full/java/kellinwood/security/zipsigner/ResourceAdapter.java similarity index 100% rename from app/src/main/java/kellinwood/security/zipsigner/ResourceAdapter.java rename to app/src/full/java/kellinwood/security/zipsigner/ResourceAdapter.java diff --git a/app/src/main/java/kellinwood/security/zipsigner/ZipSignature.java b/app/src/full/java/kellinwood/security/zipsigner/ZipSignature.java similarity index 100% rename from app/src/main/java/kellinwood/security/zipsigner/ZipSignature.java rename to app/src/full/java/kellinwood/security/zipsigner/ZipSignature.java diff --git a/app/src/main/java/kellinwood/security/zipsigner/ZipSigner.java b/app/src/full/java/kellinwood/security/zipsigner/ZipSigner.java similarity index 100% rename from app/src/main/java/kellinwood/security/zipsigner/ZipSigner.java rename to app/src/full/java/kellinwood/security/zipsigner/ZipSigner.java diff --git a/app/src/main/java/kellinwood/security/zipsigner/optional/CertCreator.java b/app/src/full/java/kellinwood/security/zipsigner/optional/CertCreator.java similarity index 100% rename from app/src/main/java/kellinwood/security/zipsigner/optional/CertCreator.java rename to app/src/full/java/kellinwood/security/zipsigner/optional/CertCreator.java diff --git a/app/src/main/java/kellinwood/security/zipsigner/optional/CustomKeySigner.java b/app/src/full/java/kellinwood/security/zipsigner/optional/CustomKeySigner.java similarity index 100% rename from app/src/main/java/kellinwood/security/zipsigner/optional/CustomKeySigner.java rename to app/src/full/java/kellinwood/security/zipsigner/optional/CustomKeySigner.java diff --git a/app/src/main/java/kellinwood/security/zipsigner/optional/DistinguishedNameValues.java b/app/src/full/java/kellinwood/security/zipsigner/optional/DistinguishedNameValues.java similarity index 100% rename from app/src/main/java/kellinwood/security/zipsigner/optional/DistinguishedNameValues.java rename to app/src/full/java/kellinwood/security/zipsigner/optional/DistinguishedNameValues.java diff --git a/app/src/main/java/kellinwood/security/zipsigner/optional/Fingerprint.java b/app/src/full/java/kellinwood/security/zipsigner/optional/Fingerprint.java similarity index 100% rename from app/src/main/java/kellinwood/security/zipsigner/optional/Fingerprint.java rename to app/src/full/java/kellinwood/security/zipsigner/optional/Fingerprint.java diff --git a/app/src/main/java/kellinwood/security/zipsigner/optional/JKS.java b/app/src/full/java/kellinwood/security/zipsigner/optional/JKS.java similarity index 100% rename from app/src/main/java/kellinwood/security/zipsigner/optional/JKS.java rename to app/src/full/java/kellinwood/security/zipsigner/optional/JKS.java diff --git a/app/src/main/java/kellinwood/security/zipsigner/optional/JksKeyStore.java b/app/src/full/java/kellinwood/security/zipsigner/optional/JksKeyStore.java similarity index 100% rename from app/src/main/java/kellinwood/security/zipsigner/optional/JksKeyStore.java rename to app/src/full/java/kellinwood/security/zipsigner/optional/JksKeyStore.java diff --git a/app/src/main/java/kellinwood/security/zipsigner/optional/KeyNameConflictException.java b/app/src/full/java/kellinwood/security/zipsigner/optional/KeyNameConflictException.java similarity index 100% rename from app/src/main/java/kellinwood/security/zipsigner/optional/KeyNameConflictException.java rename to app/src/full/java/kellinwood/security/zipsigner/optional/KeyNameConflictException.java diff --git a/app/src/main/java/kellinwood/security/zipsigner/optional/KeyStoreFileManager.java b/app/src/full/java/kellinwood/security/zipsigner/optional/KeyStoreFileManager.java similarity index 100% rename from app/src/main/java/kellinwood/security/zipsigner/optional/KeyStoreFileManager.java rename to app/src/full/java/kellinwood/security/zipsigner/optional/KeyStoreFileManager.java diff --git a/app/src/main/java/kellinwood/security/zipsigner/optional/LoadKeystoreException.java b/app/src/full/java/kellinwood/security/zipsigner/optional/LoadKeystoreException.java similarity index 100% rename from app/src/main/java/kellinwood/security/zipsigner/optional/LoadKeystoreException.java rename to app/src/full/java/kellinwood/security/zipsigner/optional/LoadKeystoreException.java diff --git a/app/src/main/java/kellinwood/security/zipsigner/optional/PasswordObfuscator.java b/app/src/full/java/kellinwood/security/zipsigner/optional/PasswordObfuscator.java similarity index 100% rename from app/src/main/java/kellinwood/security/zipsigner/optional/PasswordObfuscator.java rename to app/src/full/java/kellinwood/security/zipsigner/optional/PasswordObfuscator.java diff --git a/app/src/main/java/kellinwood/security/zipsigner/optional/SignatureBlockGenerator.java b/app/src/full/java/kellinwood/security/zipsigner/optional/SignatureBlockGenerator.java similarity index 100% rename from app/src/main/java/kellinwood/security/zipsigner/optional/SignatureBlockGenerator.java rename to app/src/full/java/kellinwood/security/zipsigner/optional/SignatureBlockGenerator.java diff --git a/app/src/main/java/kellinwood/zipio/CentralEnd.java b/app/src/full/java/kellinwood/zipio/CentralEnd.java similarity index 100% rename from app/src/main/java/kellinwood/zipio/CentralEnd.java rename to app/src/full/java/kellinwood/zipio/CentralEnd.java diff --git a/app/src/main/java/kellinwood/zipio/ZioEntry.java b/app/src/full/java/kellinwood/zipio/ZioEntry.java similarity index 100% rename from app/src/main/java/kellinwood/zipio/ZioEntry.java rename to app/src/full/java/kellinwood/zipio/ZioEntry.java diff --git a/app/src/main/java/kellinwood/zipio/ZioEntryInputStream.java b/app/src/full/java/kellinwood/zipio/ZioEntryInputStream.java similarity index 100% rename from app/src/main/java/kellinwood/zipio/ZioEntryInputStream.java rename to app/src/full/java/kellinwood/zipio/ZioEntryInputStream.java diff --git a/app/src/main/java/kellinwood/zipio/ZioEntryOutputStream.java b/app/src/full/java/kellinwood/zipio/ZioEntryOutputStream.java similarity index 100% rename from app/src/main/java/kellinwood/zipio/ZioEntryOutputStream.java rename to app/src/full/java/kellinwood/zipio/ZioEntryOutputStream.java diff --git a/app/src/main/java/kellinwood/zipio/ZipInput.java b/app/src/full/java/kellinwood/zipio/ZipInput.java similarity index 100% rename from app/src/main/java/kellinwood/zipio/ZipInput.java rename to app/src/full/java/kellinwood/zipio/ZipInput.java diff --git a/app/src/main/java/kellinwood/zipio/ZipListingHelper.java b/app/src/full/java/kellinwood/zipio/ZipListingHelper.java similarity index 100% rename from app/src/main/java/kellinwood/zipio/ZipListingHelper.java rename to app/src/full/java/kellinwood/zipio/ZipListingHelper.java diff --git a/app/src/main/java/kellinwood/zipio/ZipOutput.java b/app/src/full/java/kellinwood/zipio/ZipOutput.java similarity index 100% rename from app/src/main/java/kellinwood/zipio/ZipOutput.java rename to app/src/full/java/kellinwood/zipio/ZipOutput.java diff --git a/app/src/main/java/org/fdroid/fdroid/localrepo/CacheSwapAppsService.java b/app/src/full/java/org/fdroid/fdroid/localrepo/CacheSwapAppsService.java similarity index 100% rename from app/src/main/java/org/fdroid/fdroid/localrepo/CacheSwapAppsService.java rename to app/src/full/java/org/fdroid/fdroid/localrepo/CacheSwapAppsService.java diff --git a/app/src/main/java/org/fdroid/fdroid/localrepo/LocalRepoKeyStore.java b/app/src/full/java/org/fdroid/fdroid/localrepo/LocalRepoKeyStore.java similarity index 100% rename from app/src/main/java/org/fdroid/fdroid/localrepo/LocalRepoKeyStore.java rename to app/src/full/java/org/fdroid/fdroid/localrepo/LocalRepoKeyStore.java diff --git a/app/src/main/java/org/fdroid/fdroid/localrepo/LocalRepoManager.java b/app/src/full/java/org/fdroid/fdroid/localrepo/LocalRepoManager.java similarity index 100% rename from app/src/main/java/org/fdroid/fdroid/localrepo/LocalRepoManager.java rename to app/src/full/java/org/fdroid/fdroid/localrepo/LocalRepoManager.java diff --git a/app/src/main/java/org/fdroid/fdroid/localrepo/SwapService.java b/app/src/full/java/org/fdroid/fdroid/localrepo/SwapService.java similarity index 100% rename from app/src/main/java/org/fdroid/fdroid/localrepo/SwapService.java rename to app/src/full/java/org/fdroid/fdroid/localrepo/SwapService.java diff --git a/app/src/main/java/org/fdroid/fdroid/localrepo/peers/BluetoothFinder.java b/app/src/full/java/org/fdroid/fdroid/localrepo/peers/BluetoothFinder.java similarity index 100% rename from app/src/main/java/org/fdroid/fdroid/localrepo/peers/BluetoothFinder.java rename to app/src/full/java/org/fdroid/fdroid/localrepo/peers/BluetoothFinder.java diff --git a/app/src/main/java/org/fdroid/fdroid/localrepo/peers/BluetoothPeer.java b/app/src/full/java/org/fdroid/fdroid/localrepo/peers/BluetoothPeer.java similarity index 100% rename from app/src/main/java/org/fdroid/fdroid/localrepo/peers/BluetoothPeer.java rename to app/src/full/java/org/fdroid/fdroid/localrepo/peers/BluetoothPeer.java diff --git a/app/src/main/java/org/fdroid/fdroid/localrepo/peers/BonjourFinder.java b/app/src/full/java/org/fdroid/fdroid/localrepo/peers/BonjourFinder.java similarity index 100% rename from app/src/main/java/org/fdroid/fdroid/localrepo/peers/BonjourFinder.java rename to app/src/full/java/org/fdroid/fdroid/localrepo/peers/BonjourFinder.java diff --git a/app/src/main/java/org/fdroid/fdroid/localrepo/peers/BonjourPeer.java b/app/src/full/java/org/fdroid/fdroid/localrepo/peers/BonjourPeer.java similarity index 100% rename from app/src/main/java/org/fdroid/fdroid/localrepo/peers/BonjourPeer.java rename to app/src/full/java/org/fdroid/fdroid/localrepo/peers/BonjourPeer.java diff --git a/app/src/main/java/org/fdroid/fdroid/localrepo/peers/Peer.java b/app/src/full/java/org/fdroid/fdroid/localrepo/peers/Peer.java similarity index 100% rename from app/src/main/java/org/fdroid/fdroid/localrepo/peers/Peer.java rename to app/src/full/java/org/fdroid/fdroid/localrepo/peers/Peer.java diff --git a/app/src/main/java/org/fdroid/fdroid/localrepo/peers/PeerFinder.java b/app/src/full/java/org/fdroid/fdroid/localrepo/peers/PeerFinder.java similarity index 100% rename from app/src/main/java/org/fdroid/fdroid/localrepo/peers/PeerFinder.java rename to app/src/full/java/org/fdroid/fdroid/localrepo/peers/PeerFinder.java diff --git a/app/src/main/java/org/fdroid/fdroid/localrepo/peers/WifiPeer.java b/app/src/full/java/org/fdroid/fdroid/localrepo/peers/WifiPeer.java similarity index 100% rename from app/src/main/java/org/fdroid/fdroid/localrepo/peers/WifiPeer.java rename to app/src/full/java/org/fdroid/fdroid/localrepo/peers/WifiPeer.java diff --git a/app/src/main/java/org/fdroid/fdroid/localrepo/type/BluetoothSwap.java b/app/src/full/java/org/fdroid/fdroid/localrepo/type/BluetoothSwap.java similarity index 100% rename from app/src/main/java/org/fdroid/fdroid/localrepo/type/BluetoothSwap.java rename to app/src/full/java/org/fdroid/fdroid/localrepo/type/BluetoothSwap.java diff --git a/app/src/main/java/org/fdroid/fdroid/localrepo/type/BonjourBroadcast.java b/app/src/full/java/org/fdroid/fdroid/localrepo/type/BonjourBroadcast.java similarity index 100% rename from app/src/main/java/org/fdroid/fdroid/localrepo/type/BonjourBroadcast.java rename to app/src/full/java/org/fdroid/fdroid/localrepo/type/BonjourBroadcast.java diff --git a/app/src/main/java/org/fdroid/fdroid/localrepo/type/SwapType.java b/app/src/full/java/org/fdroid/fdroid/localrepo/type/SwapType.java similarity index 100% rename from app/src/main/java/org/fdroid/fdroid/localrepo/type/SwapType.java rename to app/src/full/java/org/fdroid/fdroid/localrepo/type/SwapType.java diff --git a/app/src/main/java/org/fdroid/fdroid/localrepo/type/WifiSwap.java b/app/src/full/java/org/fdroid/fdroid/localrepo/type/WifiSwap.java similarity index 100% rename from app/src/main/java/org/fdroid/fdroid/localrepo/type/WifiSwap.java rename to app/src/full/java/org/fdroid/fdroid/localrepo/type/WifiSwap.java diff --git a/app/src/main/java/org/fdroid/fdroid/net/LocalHTTPD.java b/app/src/full/java/org/fdroid/fdroid/net/LocalHTTPD.java similarity index 100% rename from app/src/main/java/org/fdroid/fdroid/net/LocalHTTPD.java rename to app/src/full/java/org/fdroid/fdroid/net/LocalHTTPD.java diff --git a/app/src/main/java/org/fdroid/fdroid/net/WifiStateChangeService.java b/app/src/full/java/org/fdroid/fdroid/net/WifiStateChangeService.java similarity index 100% rename from app/src/main/java/org/fdroid/fdroid/net/WifiStateChangeService.java rename to app/src/full/java/org/fdroid/fdroid/net/WifiStateChangeService.java diff --git a/app/src/main/java/org/fdroid/fdroid/net/bluetooth/BluetoothClient.java b/app/src/full/java/org/fdroid/fdroid/net/bluetooth/BluetoothClient.java similarity index 100% rename from app/src/main/java/org/fdroid/fdroid/net/bluetooth/BluetoothClient.java rename to app/src/full/java/org/fdroid/fdroid/net/bluetooth/BluetoothClient.java diff --git a/app/src/main/java/org/fdroid/fdroid/net/bluetooth/BluetoothServer.java b/app/src/full/java/org/fdroid/fdroid/net/bluetooth/BluetoothServer.java similarity index 100% rename from app/src/main/java/org/fdroid/fdroid/net/bluetooth/BluetoothServer.java rename to app/src/full/java/org/fdroid/fdroid/net/bluetooth/BluetoothServer.java diff --git a/app/src/main/java/org/fdroid/fdroid/receiver/WifiStateChangeReceiver.java b/app/src/full/java/org/fdroid/fdroid/receiver/WifiStateChangeReceiver.java similarity index 100% rename from app/src/main/java/org/fdroid/fdroid/receiver/WifiStateChangeReceiver.java rename to app/src/full/java/org/fdroid/fdroid/receiver/WifiStateChangeReceiver.java diff --git a/app/src/main/java/org/fdroid/fdroid/views/hiding/CalculatorActivity.java b/app/src/full/java/org/fdroid/fdroid/views/hiding/CalculatorActivity.java similarity index 100% rename from app/src/main/java/org/fdroid/fdroid/views/hiding/CalculatorActivity.java rename to app/src/full/java/org/fdroid/fdroid/views/hiding/CalculatorActivity.java diff --git a/app/src/main/java/org/fdroid/fdroid/views/hiding/HidingManager.java b/app/src/full/java/org/fdroid/fdroid/views/hiding/HidingManager.java similarity index 100% rename from app/src/main/java/org/fdroid/fdroid/views/hiding/HidingManager.java rename to app/src/full/java/org/fdroid/fdroid/views/hiding/HidingManager.java diff --git a/app/src/main/java/org/fdroid/fdroid/views/main/CategoriesViewBinder.java b/app/src/full/java/org/fdroid/fdroid/views/main/CategoriesViewBinder.java similarity index 100% rename from app/src/main/java/org/fdroid/fdroid/views/main/CategoriesViewBinder.java rename to app/src/full/java/org/fdroid/fdroid/views/main/CategoriesViewBinder.java diff --git a/app/src/main/java/org/fdroid/fdroid/views/main/MainViewController.java b/app/src/full/java/org/fdroid/fdroid/views/main/MainViewController.java similarity index 100% rename from app/src/main/java/org/fdroid/fdroid/views/main/MainViewController.java rename to app/src/full/java/org/fdroid/fdroid/views/main/MainViewController.java diff --git a/app/src/main/java/org/fdroid/fdroid/views/main/WhatsNewViewBinder.java b/app/src/full/java/org/fdroid/fdroid/views/main/WhatsNewViewBinder.java similarity index 100% rename from app/src/main/java/org/fdroid/fdroid/views/main/WhatsNewViewBinder.java rename to app/src/full/java/org/fdroid/fdroid/views/main/WhatsNewViewBinder.java diff --git a/app/src/main/java/org/fdroid/fdroid/views/panic/ExitActivity.java b/app/src/full/java/org/fdroid/fdroid/views/panic/ExitActivity.java similarity index 100% rename from app/src/main/java/org/fdroid/fdroid/views/panic/ExitActivity.java rename to app/src/full/java/org/fdroid/fdroid/views/panic/ExitActivity.java diff --git a/app/src/main/java/org/fdroid/fdroid/views/panic/PanicPreferencesActivity.java b/app/src/full/java/org/fdroid/fdroid/views/panic/PanicPreferencesActivity.java similarity index 100% rename from app/src/main/java/org/fdroid/fdroid/views/panic/PanicPreferencesActivity.java rename to app/src/full/java/org/fdroid/fdroid/views/panic/PanicPreferencesActivity.java diff --git a/app/src/main/java/org/fdroid/fdroid/views/panic/PanicPreferencesFragment.java b/app/src/full/java/org/fdroid/fdroid/views/panic/PanicPreferencesFragment.java similarity index 100% rename from app/src/main/java/org/fdroid/fdroid/views/panic/PanicPreferencesFragment.java rename to app/src/full/java/org/fdroid/fdroid/views/panic/PanicPreferencesFragment.java diff --git a/app/src/main/java/org/fdroid/fdroid/views/panic/PanicResponderActivity.java b/app/src/full/java/org/fdroid/fdroid/views/panic/PanicResponderActivity.java similarity index 100% rename from app/src/main/java/org/fdroid/fdroid/views/panic/PanicResponderActivity.java rename to app/src/full/java/org/fdroid/fdroid/views/panic/PanicResponderActivity.java diff --git a/app/src/main/java/org/fdroid/fdroid/views/swap/ConfirmReceive.java b/app/src/full/java/org/fdroid/fdroid/views/swap/ConfirmReceive.java similarity index 100% rename from app/src/main/java/org/fdroid/fdroid/views/swap/ConfirmReceive.java rename to app/src/full/java/org/fdroid/fdroid/views/swap/ConfirmReceive.java diff --git a/app/src/main/java/org/fdroid/fdroid/views/swap/InitialLoadingView.java b/app/src/full/java/org/fdroid/fdroid/views/swap/InitialLoadingView.java similarity index 100% rename from app/src/main/java/org/fdroid/fdroid/views/swap/InitialLoadingView.java rename to app/src/full/java/org/fdroid/fdroid/views/swap/InitialLoadingView.java diff --git a/app/src/main/java/org/fdroid/fdroid/views/swap/JoinWifiView.java b/app/src/full/java/org/fdroid/fdroid/views/swap/JoinWifiView.java similarity index 100% rename from app/src/main/java/org/fdroid/fdroid/views/swap/JoinWifiView.java rename to app/src/full/java/org/fdroid/fdroid/views/swap/JoinWifiView.java diff --git a/app/src/main/java/org/fdroid/fdroid/views/swap/NfcView.java b/app/src/full/java/org/fdroid/fdroid/views/swap/NfcView.java similarity index 100% rename from app/src/main/java/org/fdroid/fdroid/views/swap/NfcView.java rename to app/src/full/java/org/fdroid/fdroid/views/swap/NfcView.java diff --git a/app/src/main/java/org/fdroid/fdroid/views/swap/SelectAppsView.java b/app/src/full/java/org/fdroid/fdroid/views/swap/SelectAppsView.java similarity index 100% rename from app/src/main/java/org/fdroid/fdroid/views/swap/SelectAppsView.java rename to app/src/full/java/org/fdroid/fdroid/views/swap/SelectAppsView.java diff --git a/app/src/main/java/org/fdroid/fdroid/views/swap/SendFDroidView.java b/app/src/full/java/org/fdroid/fdroid/views/swap/SendFDroidView.java similarity index 100% rename from app/src/main/java/org/fdroid/fdroid/views/swap/SendFDroidView.java rename to app/src/full/java/org/fdroid/fdroid/views/swap/SendFDroidView.java diff --git a/app/src/main/java/org/fdroid/fdroid/views/swap/StartSwapView.java b/app/src/full/java/org/fdroid/fdroid/views/swap/StartSwapView.java similarity index 100% rename from app/src/main/java/org/fdroid/fdroid/views/swap/StartSwapView.java rename to app/src/full/java/org/fdroid/fdroid/views/swap/StartSwapView.java diff --git a/app/src/main/java/org/fdroid/fdroid/views/swap/SwapAppsView.java b/app/src/full/java/org/fdroid/fdroid/views/swap/SwapAppsView.java similarity index 100% rename from app/src/main/java/org/fdroid/fdroid/views/swap/SwapAppsView.java rename to app/src/full/java/org/fdroid/fdroid/views/swap/SwapAppsView.java diff --git a/app/src/main/java/org/fdroid/fdroid/views/swap/SwapConnecting.java b/app/src/full/java/org/fdroid/fdroid/views/swap/SwapConnecting.java similarity index 100% rename from app/src/main/java/org/fdroid/fdroid/views/swap/SwapConnecting.java rename to app/src/full/java/org/fdroid/fdroid/views/swap/SwapConnecting.java diff --git a/app/src/main/java/org/fdroid/fdroid/views/swap/SwapWorkflowActivity.java b/app/src/full/java/org/fdroid/fdroid/views/swap/SwapWorkflowActivity.java similarity index 100% rename from app/src/main/java/org/fdroid/fdroid/views/swap/SwapWorkflowActivity.java rename to app/src/full/java/org/fdroid/fdroid/views/swap/SwapWorkflowActivity.java diff --git a/app/src/main/java/org/fdroid/fdroid/views/swap/WifiQrView.java b/app/src/full/java/org/fdroid/fdroid/views/swap/WifiQrView.java similarity index 100% rename from app/src/main/java/org/fdroid/fdroid/views/swap/WifiQrView.java rename to app/src/full/java/org/fdroid/fdroid/views/swap/WifiQrView.java diff --git a/app/src/main/java/org/fdroid/fdroid/views/swap/device/camera/CameraCharacteristicsChecker.java b/app/src/full/java/org/fdroid/fdroid/views/swap/device/camera/CameraCharacteristicsChecker.java similarity index 100% rename from app/src/main/java/org/fdroid/fdroid/views/swap/device/camera/CameraCharacteristicsChecker.java rename to app/src/full/java/org/fdroid/fdroid/views/swap/device/camera/CameraCharacteristicsChecker.java diff --git a/app/src/main/java/org/fdroid/fdroid/views/swap/device/camera/CameraCharacteristicsMaxApiLevel20.java b/app/src/full/java/org/fdroid/fdroid/views/swap/device/camera/CameraCharacteristicsMaxApiLevel20.java similarity index 100% rename from app/src/main/java/org/fdroid/fdroid/views/swap/device/camera/CameraCharacteristicsMaxApiLevel20.java rename to app/src/full/java/org/fdroid/fdroid/views/swap/device/camera/CameraCharacteristicsMaxApiLevel20.java diff --git a/app/src/main/java/org/fdroid/fdroid/views/swap/device/camera/CameraCharacteristicsMinApiLevel21.java b/app/src/full/java/org/fdroid/fdroid/views/swap/device/camera/CameraCharacteristicsMinApiLevel21.java similarity index 100% rename from app/src/main/java/org/fdroid/fdroid/views/swap/device/camera/CameraCharacteristicsMinApiLevel21.java rename to app/src/full/java/org/fdroid/fdroid/views/swap/device/camera/CameraCharacteristicsMinApiLevel21.java diff --git a/app/src/main/res/drawable-hdpi/circle.png b/app/src/full/res/drawable-hdpi/circle.png similarity index 100% rename from app/src/main/res/drawable-hdpi/circle.png rename to app/src/full/res/drawable-hdpi/circle.png diff --git a/app/src/main/res/drawable-hdpi/hotspot.png b/app/src/full/res/drawable-hdpi/hotspot.png similarity index 100% rename from app/src/main/res/drawable-hdpi/hotspot.png rename to app/src/full/res/drawable-hdpi/hotspot.png diff --git a/app/src/main/res/drawable-hdpi/ic_add_circle_outline_white.png b/app/src/full/res/drawable-hdpi/ic_add_circle_outline_white.png similarity index 100% rename from app/src/main/res/drawable-hdpi/ic_add_circle_outline_white.png rename to app/src/full/res/drawable-hdpi/ic_add_circle_outline_white.png diff --git a/app/src/main/res/drawable-hdpi/ic_arrow_forward_white.png b/app/src/full/res/drawable-hdpi/ic_arrow_forward_white.png similarity index 100% rename from app/src/main/res/drawable-hdpi/ic_arrow_forward_white.png rename to app/src/full/res/drawable-hdpi/ic_arrow_forward_white.png diff --git a/app/src/main/res/drawable-hdpi/ic_bluetooth_white.png b/app/src/full/res/drawable-hdpi/ic_bluetooth_white.png similarity index 100% rename from app/src/main/res/drawable-hdpi/ic_bluetooth_white.png rename to app/src/full/res/drawable-hdpi/ic_bluetooth_white.png diff --git a/app/src/main/res/drawable-hdpi/ic_check_circle_white.png b/app/src/full/res/drawable-hdpi/ic_check_circle_white.png similarity index 100% rename from app/src/main/res/drawable-hdpi/ic_check_circle_white.png rename to app/src/full/res/drawable-hdpi/ic_check_circle_white.png diff --git a/app/src/main/res/drawable-hdpi/ic_fdroid_grey.png b/app/src/full/res/drawable-hdpi/ic_fdroid_grey.png similarity index 100% rename from app/src/main/res/drawable-hdpi/ic_fdroid_grey.png rename to app/src/full/res/drawable-hdpi/ic_fdroid_grey.png diff --git a/app/src/main/res/drawable-hdpi/ic_network_wifi_white.png b/app/src/full/res/drawable-hdpi/ic_network_wifi_white.png similarity index 100% rename from app/src/main/res/drawable-hdpi/ic_network_wifi_white.png rename to app/src/full/res/drawable-hdpi/ic_network_wifi_white.png diff --git a/app/src/main/res/drawable-hdpi/ic_qr_grey.png b/app/src/full/res/drawable-hdpi/ic_qr_grey.png similarity index 100% rename from app/src/main/res/drawable-hdpi/ic_qr_grey.png rename to app/src/full/res/drawable-hdpi/ic_qr_grey.png diff --git a/app/src/main/res/drawable-hdpi/ic_swap.png b/app/src/full/res/drawable-hdpi/ic_swap.png similarity index 100% rename from app/src/main/res/drawable-hdpi/ic_swap.png rename to app/src/full/res/drawable-hdpi/ic_swap.png diff --git a/app/src/main/res/drawable-ldpi/circle.png b/app/src/full/res/drawable-ldpi/circle.png similarity index 100% rename from app/src/main/res/drawable-ldpi/circle.png rename to app/src/full/res/drawable-ldpi/circle.png diff --git a/app/src/main/res/drawable-ldpi/hotspot.png b/app/src/full/res/drawable-ldpi/hotspot.png similarity index 100% rename from app/src/main/res/drawable-ldpi/hotspot.png rename to app/src/full/res/drawable-ldpi/hotspot.png diff --git a/app/src/main/res/drawable-ldpi/ic_fdroid_grey.png b/app/src/full/res/drawable-ldpi/ic_fdroid_grey.png similarity index 100% rename from app/src/main/res/drawable-ldpi/ic_fdroid_grey.png rename to app/src/full/res/drawable-ldpi/ic_fdroid_grey.png diff --git a/app/src/main/res/drawable-ldpi/ic_qr_grey.png b/app/src/full/res/drawable-ldpi/ic_qr_grey.png similarity index 100% rename from app/src/main/res/drawable-ldpi/ic_qr_grey.png rename to app/src/full/res/drawable-ldpi/ic_qr_grey.png diff --git a/app/src/main/res/drawable-ldpi/ic_swap.png b/app/src/full/res/drawable-ldpi/ic_swap.png similarity index 100% rename from app/src/main/res/drawable-ldpi/ic_swap.png rename to app/src/full/res/drawable-ldpi/ic_swap.png diff --git a/app/src/main/res/drawable-mdpi/circle.png b/app/src/full/res/drawable-mdpi/circle.png similarity index 100% rename from app/src/main/res/drawable-mdpi/circle.png rename to app/src/full/res/drawable-mdpi/circle.png diff --git a/app/src/main/res/drawable-mdpi/hotspot.png b/app/src/full/res/drawable-mdpi/hotspot.png similarity index 100% rename from app/src/main/res/drawable-mdpi/hotspot.png rename to app/src/full/res/drawable-mdpi/hotspot.png diff --git a/app/src/main/res/drawable-mdpi/ic_add_circle_outline_white.png b/app/src/full/res/drawable-mdpi/ic_add_circle_outline_white.png similarity index 100% rename from app/src/main/res/drawable-mdpi/ic_add_circle_outline_white.png rename to app/src/full/res/drawable-mdpi/ic_add_circle_outline_white.png diff --git a/app/src/main/res/drawable-mdpi/ic_arrow_forward_white.png b/app/src/full/res/drawable-mdpi/ic_arrow_forward_white.png similarity index 100% rename from app/src/main/res/drawable-mdpi/ic_arrow_forward_white.png rename to app/src/full/res/drawable-mdpi/ic_arrow_forward_white.png diff --git a/app/src/main/res/drawable-mdpi/ic_bluetooth_white.png b/app/src/full/res/drawable-mdpi/ic_bluetooth_white.png similarity index 100% rename from app/src/main/res/drawable-mdpi/ic_bluetooth_white.png rename to app/src/full/res/drawable-mdpi/ic_bluetooth_white.png diff --git a/app/src/main/res/drawable-mdpi/ic_check_circle_white.png b/app/src/full/res/drawable-mdpi/ic_check_circle_white.png similarity index 100% rename from app/src/main/res/drawable-mdpi/ic_check_circle_white.png rename to app/src/full/res/drawable-mdpi/ic_check_circle_white.png diff --git a/app/src/main/res/drawable-mdpi/ic_fdroid_grey.png b/app/src/full/res/drawable-mdpi/ic_fdroid_grey.png similarity index 100% rename from app/src/main/res/drawable-mdpi/ic_fdroid_grey.png rename to app/src/full/res/drawable-mdpi/ic_fdroid_grey.png diff --git a/app/src/main/res/drawable-mdpi/ic_network_wifi_white.png b/app/src/full/res/drawable-mdpi/ic_network_wifi_white.png similarity index 100% rename from app/src/main/res/drawable-mdpi/ic_network_wifi_white.png rename to app/src/full/res/drawable-mdpi/ic_network_wifi_white.png diff --git a/app/src/main/res/drawable-mdpi/ic_qr_grey.png b/app/src/full/res/drawable-mdpi/ic_qr_grey.png similarity index 100% rename from app/src/main/res/drawable-mdpi/ic_qr_grey.png rename to app/src/full/res/drawable-mdpi/ic_qr_grey.png diff --git a/app/src/main/res/drawable-mdpi/ic_swap.png b/app/src/full/res/drawable-mdpi/ic_swap.png similarity index 100% rename from app/src/main/res/drawable-mdpi/ic_swap.png rename to app/src/full/res/drawable-mdpi/ic_swap.png diff --git a/app/src/main/res/drawable-xhdpi/circle.png b/app/src/full/res/drawable-xhdpi/circle.png similarity index 100% rename from app/src/main/res/drawable-xhdpi/circle.png rename to app/src/full/res/drawable-xhdpi/circle.png diff --git a/app/src/main/res/drawable-xhdpi/ic_add_circle_outline_white.png b/app/src/full/res/drawable-xhdpi/ic_add_circle_outline_white.png similarity index 100% rename from app/src/main/res/drawable-xhdpi/ic_add_circle_outline_white.png rename to app/src/full/res/drawable-xhdpi/ic_add_circle_outline_white.png diff --git a/app/src/main/res/drawable-xhdpi/ic_arrow_forward_white.png b/app/src/full/res/drawable-xhdpi/ic_arrow_forward_white.png similarity index 100% rename from app/src/main/res/drawable-xhdpi/ic_arrow_forward_white.png rename to app/src/full/res/drawable-xhdpi/ic_arrow_forward_white.png diff --git a/app/src/main/res/drawable-xhdpi/ic_bluetooth_white.png b/app/src/full/res/drawable-xhdpi/ic_bluetooth_white.png similarity index 100% rename from app/src/main/res/drawable-xhdpi/ic_bluetooth_white.png rename to app/src/full/res/drawable-xhdpi/ic_bluetooth_white.png diff --git a/app/src/main/res/drawable-xhdpi/ic_check_circle_white.png b/app/src/full/res/drawable-xhdpi/ic_check_circle_white.png similarity index 100% rename from app/src/main/res/drawable-xhdpi/ic_check_circle_white.png rename to app/src/full/res/drawable-xhdpi/ic_check_circle_white.png diff --git a/app/src/main/res/drawable-xhdpi/ic_fdroid_grey.png b/app/src/full/res/drawable-xhdpi/ic_fdroid_grey.png similarity index 100% rename from app/src/main/res/drawable-xhdpi/ic_fdroid_grey.png rename to app/src/full/res/drawable-xhdpi/ic_fdroid_grey.png diff --git a/app/src/main/res/drawable-xhdpi/ic_network_wifi_white.png b/app/src/full/res/drawable-xhdpi/ic_network_wifi_white.png similarity index 100% rename from app/src/main/res/drawable-xhdpi/ic_network_wifi_white.png rename to app/src/full/res/drawable-xhdpi/ic_network_wifi_white.png diff --git a/app/src/main/res/drawable-xhdpi/ic_qr_grey.png b/app/src/full/res/drawable-xhdpi/ic_qr_grey.png similarity index 100% rename from app/src/main/res/drawable-xhdpi/ic_qr_grey.png rename to app/src/full/res/drawable-xhdpi/ic_qr_grey.png diff --git a/app/src/main/res/drawable-xhdpi/ic_swap.png b/app/src/full/res/drawable-xhdpi/ic_swap.png similarity index 100% rename from app/src/main/res/drawable-xhdpi/ic_swap.png rename to app/src/full/res/drawable-xhdpi/ic_swap.png diff --git a/app/src/main/res/drawable-xxhdpi/circle.png b/app/src/full/res/drawable-xxhdpi/circle.png similarity index 100% rename from app/src/main/res/drawable-xxhdpi/circle.png rename to app/src/full/res/drawable-xxhdpi/circle.png diff --git a/app/src/main/res/drawable-xxhdpi/ic_add_circle_outline_white.png b/app/src/full/res/drawable-xxhdpi/ic_add_circle_outline_white.png similarity index 100% rename from app/src/main/res/drawable-xxhdpi/ic_add_circle_outline_white.png rename to app/src/full/res/drawable-xxhdpi/ic_add_circle_outline_white.png diff --git a/app/src/main/res/drawable-xxhdpi/ic_arrow_forward_white.png b/app/src/full/res/drawable-xxhdpi/ic_arrow_forward_white.png similarity index 100% rename from app/src/main/res/drawable-xxhdpi/ic_arrow_forward_white.png rename to app/src/full/res/drawable-xxhdpi/ic_arrow_forward_white.png diff --git a/app/src/main/res/drawable-xxhdpi/ic_bluetooth_white.png b/app/src/full/res/drawable-xxhdpi/ic_bluetooth_white.png similarity index 100% rename from app/src/main/res/drawable-xxhdpi/ic_bluetooth_white.png rename to app/src/full/res/drawable-xxhdpi/ic_bluetooth_white.png diff --git a/app/src/main/res/drawable-xxhdpi/ic_check_circle_white.png b/app/src/full/res/drawable-xxhdpi/ic_check_circle_white.png similarity index 100% rename from app/src/main/res/drawable-xxhdpi/ic_check_circle_white.png rename to app/src/full/res/drawable-xxhdpi/ic_check_circle_white.png diff --git a/app/src/main/res/drawable-xxhdpi/ic_fdroid_grey.png b/app/src/full/res/drawable-xxhdpi/ic_fdroid_grey.png similarity index 100% rename from app/src/main/res/drawable-xxhdpi/ic_fdroid_grey.png rename to app/src/full/res/drawable-xxhdpi/ic_fdroid_grey.png diff --git a/app/src/main/res/drawable-xxhdpi/ic_network_wifi_white.png b/app/src/full/res/drawable-xxhdpi/ic_network_wifi_white.png similarity index 100% rename from app/src/main/res/drawable-xxhdpi/ic_network_wifi_white.png rename to app/src/full/res/drawable-xxhdpi/ic_network_wifi_white.png diff --git a/app/src/main/res/drawable-xxhdpi/ic_qr_grey.png b/app/src/full/res/drawable-xxhdpi/ic_qr_grey.png similarity index 100% rename from app/src/main/res/drawable-xxhdpi/ic_qr_grey.png rename to app/src/full/res/drawable-xxhdpi/ic_qr_grey.png diff --git a/app/src/main/res/drawable-xxxhdpi/circle.png b/app/src/full/res/drawable-xxxhdpi/circle.png similarity index 100% rename from app/src/main/res/drawable-xxxhdpi/circle.png rename to app/src/full/res/drawable-xxxhdpi/circle.png diff --git a/app/src/main/res/drawable-xxxhdpi/ic_add_circle_outline_white.png b/app/src/full/res/drawable-xxxhdpi/ic_add_circle_outline_white.png similarity index 100% rename from app/src/main/res/drawable-xxxhdpi/ic_add_circle_outline_white.png rename to app/src/full/res/drawable-xxxhdpi/ic_add_circle_outline_white.png diff --git a/app/src/main/res/drawable-xxxhdpi/ic_arrow_forward_white.png b/app/src/full/res/drawable-xxxhdpi/ic_arrow_forward_white.png similarity index 100% rename from app/src/main/res/drawable-xxxhdpi/ic_arrow_forward_white.png rename to app/src/full/res/drawable-xxxhdpi/ic_arrow_forward_white.png diff --git a/app/src/main/res/drawable-xxxhdpi/ic_bluetooth_white.png b/app/src/full/res/drawable-xxxhdpi/ic_bluetooth_white.png similarity index 100% rename from app/src/main/res/drawable-xxxhdpi/ic_bluetooth_white.png rename to app/src/full/res/drawable-xxxhdpi/ic_bluetooth_white.png diff --git a/app/src/main/res/drawable-xxxhdpi/ic_check_circle_white.png b/app/src/full/res/drawable-xxxhdpi/ic_check_circle_white.png similarity index 100% rename from app/src/main/res/drawable-xxxhdpi/ic_check_circle_white.png rename to app/src/full/res/drawable-xxxhdpi/ic_check_circle_white.png diff --git a/app/src/main/res/drawable-xxxhdpi/ic_fdroid_grey.png b/app/src/full/res/drawable-xxxhdpi/ic_fdroid_grey.png similarity index 100% rename from app/src/main/res/drawable-xxxhdpi/ic_fdroid_grey.png rename to app/src/full/res/drawable-xxxhdpi/ic_fdroid_grey.png diff --git a/app/src/main/res/drawable-xxxhdpi/ic_network_wifi_white.png b/app/src/full/res/drawable-xxxhdpi/ic_network_wifi_white.png similarity index 100% rename from app/src/main/res/drawable-xxxhdpi/ic_network_wifi_white.png rename to app/src/full/res/drawable-xxxhdpi/ic_network_wifi_white.png diff --git a/app/src/main/res/drawable-xxxhdpi/ic_qr_grey.png b/app/src/full/res/drawable-xxxhdpi/ic_qr_grey.png similarity index 100% rename from app/src/main/res/drawable-xxxhdpi/ic_qr_grey.png rename to app/src/full/res/drawable-xxxhdpi/ic_qr_grey.png diff --git a/app/src/main/res/drawable/nearby_splash.xml b/app/src/full/res/drawable/nearby_splash.xml similarity index 100% rename from app/src/main/res/drawable/nearby_splash.xml rename to app/src/full/res/drawable/nearby_splash.xml diff --git a/app/src/main/res/layout-v11/select_local_apps_list_item.xml b/app/src/full/res/layout-v11/select_local_apps_list_item.xml similarity index 100% rename from app/src/main/res/layout-v11/select_local_apps_list_item.xml rename to app/src/full/res/layout-v11/select_local_apps_list_item.xml diff --git a/app/src/main/res/layout-v17/select_local_apps_list_item.xml b/app/src/full/res/layout-v17/select_local_apps_list_item.xml similarity index 100% rename from app/src/main/res/layout-v17/select_local_apps_list_item.xml rename to app/src/full/res/layout-v17/select_local_apps_list_item.xml diff --git a/app/src/main/res/layout/activity_calculator.xml b/app/src/full/res/layout/activity_calculator.xml similarity index 100% rename from app/src/main/res/layout/activity_calculator.xml rename to app/src/full/res/layout/activity_calculator.xml diff --git a/app/src/main/res/layout/activity_panic_settings.xml b/app/src/full/res/layout/activity_panic_settings.xml similarity index 100% rename from app/src/main/res/layout/activity_panic_settings.xml rename to app/src/full/res/layout/activity_panic_settings.xml diff --git a/app/src/main/res/layout/dialog_app_hiding.xml b/app/src/full/res/layout/dialog_app_hiding.xml similarity index 100% rename from app/src/main/res/layout/dialog_app_hiding.xml rename to app/src/full/res/layout/dialog_app_hiding.xml diff --git a/app/src/main/res/layout/main_tab_categories.xml b/app/src/full/res/layout/main_tab_categories.xml similarity index 100% rename from app/src/main/res/layout/main_tab_categories.xml rename to app/src/full/res/layout/main_tab_categories.xml diff --git a/app/src/main/res/layout/main_tab_swap.xml b/app/src/full/res/layout/main_tab_swap.xml similarity index 100% rename from app/src/main/res/layout/main_tab_swap.xml rename to app/src/full/res/layout/main_tab_swap.xml diff --git a/app/src/main/res/layout/main_tab_whats_new.xml b/app/src/full/res/layout/main_tab_whats_new.xml similarity index 100% rename from app/src/main/res/layout/main_tab_whats_new.xml rename to app/src/full/res/layout/main_tab_whats_new.xml diff --git a/app/src/main/res/layout/select_local_apps_list_item.xml b/app/src/full/res/layout/select_local_apps_list_item.xml similarity index 100% rename from app/src/main/res/layout/select_local_apps_list_item.xml rename to app/src/full/res/layout/select_local_apps_list_item.xml diff --git a/app/src/main/res/layout/swap_activity.xml b/app/src/full/res/layout/swap_activity.xml similarity index 100% rename from app/src/main/res/layout/swap_activity.xml rename to app/src/full/res/layout/swap_activity.xml diff --git a/app/src/main/res/layout/swap_app_list_item.xml b/app/src/full/res/layout/swap_app_list_item.xml similarity index 100% rename from app/src/main/res/layout/swap_app_list_item.xml rename to app/src/full/res/layout/swap_app_list_item.xml diff --git a/app/src/main/res/layout/swap_blank.xml b/app/src/full/res/layout/swap_blank.xml similarity index 100% rename from app/src/main/res/layout/swap_blank.xml rename to app/src/full/res/layout/swap_blank.xml diff --git a/app/src/main/res/layout/swap_confirm_receive.xml b/app/src/full/res/layout/swap_confirm_receive.xml similarity index 100% rename from app/src/main/res/layout/swap_confirm_receive.xml rename to app/src/full/res/layout/swap_confirm_receive.xml diff --git a/app/src/main/res/layout/swap_connecting.xml b/app/src/full/res/layout/swap_connecting.xml similarity index 100% rename from app/src/main/res/layout/swap_connecting.xml rename to app/src/full/res/layout/swap_connecting.xml diff --git a/app/src/main/res/layout/swap_initial_loading.xml b/app/src/full/res/layout/swap_initial_loading.xml similarity index 100% rename from app/src/main/res/layout/swap_initial_loading.xml rename to app/src/full/res/layout/swap_initial_loading.xml diff --git a/app/src/main/res/layout/swap_join_wifi.xml b/app/src/full/res/layout/swap_join_wifi.xml similarity index 100% rename from app/src/main/res/layout/swap_join_wifi.xml rename to app/src/full/res/layout/swap_join_wifi.xml diff --git a/app/src/main/res/layout/swap_nfc.xml b/app/src/full/res/layout/swap_nfc.xml similarity index 100% rename from app/src/main/res/layout/swap_nfc.xml rename to app/src/full/res/layout/swap_nfc.xml diff --git a/app/src/main/res/layout/swap_peer_list_item.xml b/app/src/full/res/layout/swap_peer_list_item.xml similarity index 100% rename from app/src/main/res/layout/swap_peer_list_item.xml rename to app/src/full/res/layout/swap_peer_list_item.xml diff --git a/app/src/main/res/layout/swap_select_apps.xml b/app/src/full/res/layout/swap_select_apps.xml similarity index 100% rename from app/src/main/res/layout/swap_select_apps.xml rename to app/src/full/res/layout/swap_select_apps.xml diff --git a/app/src/main/res/layout/swap_send_fdroid.xml b/app/src/full/res/layout/swap_send_fdroid.xml similarity index 100% rename from app/src/main/res/layout/swap_send_fdroid.xml rename to app/src/full/res/layout/swap_send_fdroid.xml diff --git a/app/src/main/res/layout/swap_success.xml b/app/src/full/res/layout/swap_success.xml similarity index 100% rename from app/src/main/res/layout/swap_success.xml rename to app/src/full/res/layout/swap_success.xml diff --git a/app/src/main/res/layout/swap_wifi_qr.xml b/app/src/full/res/layout/swap_wifi_qr.xml similarity index 100% rename from app/src/main/res/layout/swap_wifi_qr.xml rename to app/src/full/res/layout/swap_wifi_qr.xml diff --git a/app/src/main/res/menu/main_activity_screens.xml b/app/src/full/res/menu/main_activity_screens.xml similarity index 100% rename from app/src/main/res/menu/main_activity_screens.xml rename to app/src/full/res/menu/main_activity_screens.xml diff --git a/app/src/main/res/menu/swap_next.xml b/app/src/full/res/menu/swap_next.xml similarity index 100% rename from app/src/main/res/menu/swap_next.xml rename to app/src/full/res/menu/swap_next.xml diff --git a/app/src/main/res/menu/swap_next_search.xml b/app/src/full/res/menu/swap_next_search.xml similarity index 100% rename from app/src/main/res/menu/swap_next_search.xml rename to app/src/full/res/menu/swap_next_search.xml diff --git a/app/src/main/res/menu/swap_search.xml b/app/src/full/res/menu/swap_search.xml similarity index 100% rename from app/src/main/res/menu/swap_search.xml rename to app/src/full/res/menu/swap_search.xml diff --git a/app/src/main/res/menu/swap_skip.xml b/app/src/full/res/menu/swap_skip.xml similarity index 100% rename from app/src/main/res/menu/swap_skip.xml rename to app/src/full/res/menu/swap_skip.xml diff --git a/app/src/main/res/mipmap-hdpi/ic_calculator_launcher.png b/app/src/full/res/mipmap-hdpi/ic_calculator_launcher.png similarity index 100% rename from app/src/main/res/mipmap-hdpi/ic_calculator_launcher.png rename to app/src/full/res/mipmap-hdpi/ic_calculator_launcher.png diff --git a/app/src/main/res/mipmap-mdpi/ic_calculator_launcher.png b/app/src/full/res/mipmap-mdpi/ic_calculator_launcher.png similarity index 100% rename from app/src/main/res/mipmap-mdpi/ic_calculator_launcher.png rename to app/src/full/res/mipmap-mdpi/ic_calculator_launcher.png diff --git a/app/src/main/res/mipmap-xhdpi/ic_calculator_launcher.png b/app/src/full/res/mipmap-xhdpi/ic_calculator_launcher.png similarity index 100% rename from app/src/main/res/mipmap-xhdpi/ic_calculator_launcher.png rename to app/src/full/res/mipmap-xhdpi/ic_calculator_launcher.png diff --git a/app/src/main/res/mipmap-xxhdpi/ic_calculator_launcher.png b/app/src/full/res/mipmap-xxhdpi/ic_calculator_launcher.png similarity index 100% rename from app/src/main/res/mipmap-xxhdpi/ic_calculator_launcher.png rename to app/src/full/res/mipmap-xxhdpi/ic_calculator_launcher.png diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_calculator_launcher.png b/app/src/full/res/mipmap-xxxhdpi/ic_calculator_launcher.png similarity index 100% rename from app/src/main/res/mipmap-xxxhdpi/ic_calculator_launcher.png rename to app/src/full/res/mipmap-xxxhdpi/ic_calculator_launcher.png diff --git a/app/src/full/res/values-v17/styles.xml b/app/src/full/res/values-v17/styles.xml new file mode 100644 index 000000000..e2bb070aa --- /dev/null +++ b/app/src/full/res/values-v17/styles.xml @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + diff --git a/app/src/full/res/values-v21/styles.xml b/app/src/full/res/values-v21/styles.xml new file mode 100644 index 000000000..4f1c6edae --- /dev/null +++ b/app/src/full/res/values-v21/styles.xml @@ -0,0 +1,8 @@ + + + + + + diff --git a/app/src/full/res/values/attrs.xml b/app/src/full/res/values/attrs.xml new file mode 100644 index 000000000..2e1d9cd0b --- /dev/null +++ b/app/src/full/res/values/attrs.xml @@ -0,0 +1,6 @@ + + + + 1337 + + diff --git a/app/src/full/res/values/colors.xml b/app/src/full/res/values/colors.xml new file mode 100644 index 000000000..fe1fee70e --- /dev/null +++ b/app/src/full/res/values/colors.xml @@ -0,0 +1,13 @@ + + + + #ff7900 + #27aae1 + #1c6bbc + #ff21488c + #00b9e6 + #bbbbbb + #4a4a4a + #bbbbbb + + diff --git a/app/src/full/res/values/styles.xml b/app/src/full/res/values/styles.xml new file mode 100644 index 000000000..ea34ac0f7 --- /dev/null +++ b/app/src/full/res/values/styles.xml @@ -0,0 +1,134 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/xml/preferences_panic.xml b/app/src/full/res/xml/preferences_panic.xml similarity index 100% rename from app/src/main/res/xml/preferences_panic.xml rename to app/src/full/res/xml/preferences_panic.xml diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index dea7e3b8b..457f02c1e 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -1,4 +1,26 @@ + - - - - - - - - - - - + android:supportsRtl="true"> - - - - - - - - - @@ -279,23 +266,16 @@ android:name=".DeleteCacheService" android:permission="android.permission.BIND_JOB_SERVICE" android:exported="false"/> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/app/src/main/java/org/fdroid/fdroid/CompatibilityChecker.java b/app/src/main/java/org/fdroid/fdroid/CompatibilityChecker.java index 576431f6e..d8d81fffc 100644 --- a/app/src/main/java/org/fdroid/fdroid/CompatibilityChecker.java +++ b/app/src/main/java/org/fdroid/fdroid/CompatibilityChecker.java @@ -1,12 +1,10 @@ package org.fdroid.fdroid; import android.content.Context; -import android.content.SharedPreferences; import android.content.pm.FeatureInfo; import android.content.pm.PackageManager; import android.os.Build; import android.support.annotation.Nullable; -import android.support.v7.preference.PreferenceManager; import org.fdroid.fdroid.compat.SupportedArchitectures; import org.fdroid.fdroid.data.Apk; @@ -31,8 +29,7 @@ public class CompatibilityChecker { context = ctx.getApplicationContext(); - SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(ctx); - forceTouchApps = prefs.getBoolean(Preferences.PREF_FORCE_TOUCH_APPS, false); + forceTouchApps = Preferences.get().forceTouchApps(); PackageManager pm = ctx.getPackageManager(); diff --git a/app/src/main/java/org/fdroid/fdroid/Preferences.java b/app/src/main/java/org/fdroid/fdroid/Preferences.java index 65bc50821..6c42f88d7 100644 --- a/app/src/main/java/org/fdroid/fdroid/Preferences.java +++ b/app/src/main/java/org/fdroid/fdroid/Preferences.java @@ -1,3 +1,25 @@ +/* + * Copyright (C) 2010-12 Ciaran Gultnieks, ciaran@ciarang.com + * Copyright (C) 2013-2017 Peter Serwylo + * Copyright (C) 2013-2016 Daniel Martí + * Copyright (C) 2014-2018 Hans-Christoph Steiner + * Copyright (C) 2018 Senecto Limited + * + * 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. + * + * This program 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 this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + package org.fdroid.fdroid; import android.annotation.SuppressLint; @@ -26,6 +48,14 @@ import java.util.concurrent.TimeUnit; * (using {@link Preferences#setup(android.content.Context)} before it gets * accessed via the {@link org.fdroid.fdroid.Preferences#get()} * singleton method. + *

+ * All defaults should be set in {@code res/xml/preferences.xml}. The one + * exception is {@link Preferences#PREF_LOCAL_REPO_NAME} since it needs to be + * generated per install. The preferences are only written out explicitly when + * the user changes the preferences. So the default values need to be reloaded + * every time F-Droid starts. The various {@link SharedPreferences} getters are + * using {@code false} and {@code -1} as fallback default values to help catch + * problems with the proper default loading as quickly as possible. */ public final class Preferences implements SharedPreferences.OnSharedPreferenceChangeListener { @@ -34,6 +64,7 @@ public final class Preferences implements SharedPreferences.OnSharedPreferenceCh private final SharedPreferences preferences; private Preferences(Context context) { + PreferenceManager.setDefaultValues(context, R.xml.preferences, true); preferences = PreferenceManager.getDefaultSharedPreferences(context); preferences.registerOnSharedPreferenceChangeListener(this); if (preferences.getString(PREF_LOCAL_REPO_NAME, null) == null) { @@ -79,31 +110,22 @@ public final class Preferences implements SharedPreferences.OnSharedPreferenceCh public static final int OVER_NETWORK_ON_DEMAND = 1; public static final int OVER_NETWORK_ALWAYS = 2; - private static final boolean DEFAULT_SHOW_INCOMPAT_VERSIONS = false; - private static final boolean DEFAULT_SHOW_ROOT_APPS = true; - private static final boolean DEFAULT_SHOW_ANTI_FEATURE_APPS = true; - public static final int DEFAULT_OVER_WIFI = OVER_NETWORK_ALWAYS; - public static final int DEFAULT_OVER_DATA = OVER_NETWORK_ON_DEMAND; - public static final int DEFAULT_UPDATE_INTERVAL = 3; - private static final boolean DEFAULT_PRIVILEGED_INSTALLER = true; - //private static final boolean DEFAULT_LOCAL_REPO_BONJOUR = true; - private static final long DEFAULT_KEEP_CACHE_TIME = TimeUnit.DAYS.toMillis(1); - private static final boolean DEFAULT_UNSTABLE_UPDATES = false; - private static final boolean DEFAULT_KEEP_INSTALL_HISTORY = false; - //private static final boolean DEFAULT_LOCAL_REPO_HTTPS = false; - private static final boolean DEFAULT_EXPERT = false; - private static final boolean DEFAULT_ENABLE_PROXY = false; - public static final String DEFAULT_THEME = "light"; + // these preferences are not listed in preferences.xml so the defaults are set here @SuppressWarnings("PMD.AvoidUsingHardCodedIP") - public static final String DEFAULT_PROXY_HOST = "127.0.0.1"; - public static final int DEFAULT_PROXY_PORT = 8118; + public static final String DEFAULT_PROXY_HOST = "127.0.0.1"; // TODO move to preferences.xml + public static final int DEFAULT_PROXY_PORT = 8118; // TODO move to preferences.xml private static final boolean DEFAULT_SHOW_NFC_DURING_SWAP = true; - private static final boolean DEFAULT_FORCE_OLD_INDEX = false; private static final boolean DEFAULT_POST_PRIVILEGED_INSTALL = false; - private static final boolean DEFAULT_PREVENT_SCREENSHOTS = false; private static final boolean DEFAULT_PANIC_EXIT = true; - private static final boolean DEFAULT_HIDE_ON_LONG_PRESS_SEARCH = false; + private static final boolean IGNORED_B = false; + private static final int IGNORED_I = -1; + + /** + * Old preference replaced by {@link #PREF_KEEP_CACHE_TIME} + */ + @Deprecated + private static final String OLD_PREF_CACHE_APK = "cacheDownloaded"; @Deprecated private static final String OLD_PREF_UPDATE_INTERVAL = "updateInterval"; @Deprecated @@ -126,8 +148,8 @@ public final class Preferences implements SharedPreferences.OnSharedPreferenceCh DateUtils.HOUR_IN_MILLIS, }; - private boolean showAppsRequiringRoot = DEFAULT_SHOW_ROOT_APPS; - private boolean showAppsWithAntiFeatures = DEFAULT_SHOW_ANTI_FEATURE_APPS; + private boolean showAppsRequiringRoot; + private boolean showAppsWithAntiFeatures; private final Map initialized = new HashMap<>(); @@ -150,7 +172,7 @@ public final class Preferences implements SharedPreferences.OnSharedPreferenceCh } public boolean isForceOldIndexEnabled() { - return preferences.getBoolean(PREF_FORCE_OLD_INDEX, DEFAULT_FORCE_OLD_INDEX); + return preferences.getBoolean(PREF_FORCE_OLD_INDEX, IGNORED_B); } public void setForceOldIndex(boolean flag) { @@ -166,7 +188,7 @@ public final class Preferences implements SharedPreferences.OnSharedPreferenceCh * @see org.fdroid.fdroid.views.fragments.PreferencesFragment#initPrivilegedInstallerPreference() */ public boolean isPrivilegedInstallerEnabled() { - return preferences.getBoolean(PREF_PRIVILEGED_INSTALLER, DEFAULT_PRIVILEGED_INSTALLER); + return preferences.getBoolean(PREF_PRIVILEGED_INSTALLER, IGNORED_B); } public boolean isPostPrivilegedInstall() { @@ -177,11 +199,6 @@ public final class Preferences implements SharedPreferences.OnSharedPreferenceCh preferences.edit().putBoolean(PREF_POST_PRIVILEGED_INSTALL, postInstall).apply(); } - /** - * Old preference replaced by {@link #PREF_KEEP_CACHE_TIME} - */ - private static final String PREF_CACHE_APK = "cacheDownloaded"; - /** * Get the update interval in milliseconds. */ @@ -189,7 +206,7 @@ public final class Preferences implements SharedPreferences.OnSharedPreferenceCh if (getOverData() == OVER_NETWORK_NEVER && getOverWifi() == OVER_NETWORK_NEVER) { return UPDATE_INTERVAL_VALUES[0]; } else { - int position = preferences.getInt(PREF_UPDATE_INTERVAL, DEFAULT_UPDATE_INTERVAL); + int position = preferences.getInt(PREF_UPDATE_INTERVAL, IGNORED_I); return UPDATE_INTERVAL_VALUES[position]; } } @@ -215,7 +232,7 @@ public final class Preferences implements SharedPreferences.OnSharedPreferenceCh if (!preferences.contains(OLD_PREF_UPDATE_INTERVAL)) { return false; // already completed } - int updateInterval = DEFAULT_UPDATE_INTERVAL; + int updateInterval = 3; String value = preferences.getString(OLD_PREF_UPDATE_INTERVAL, String.valueOf(24)); if ("1".equals(value)) { // 1 hour updateInterval = 6; @@ -265,8 +282,8 @@ public final class Preferences implements SharedPreferences.OnSharedPreferenceCh * Time in millis to keep cached files. Anything that has been around longer will be deleted */ public long getKeepCacheTime() { - String value = preferences.getString(PREF_KEEP_CACHE_TIME, - String.valueOf(DEFAULT_KEEP_CACHE_TIME)); + String value = preferences.getString(PREF_KEEP_CACHE_TIME, null); + long fallbackValue = TimeUnit.DAYS.toMillis(1); // the first time this was migrated, it was botched, so reset to default switch (value) { @@ -279,15 +296,15 @@ public final class Preferences implements SharedPreferences.OnSharedPreferenceCh SharedPreferences.Editor editor = preferences.edit(); editor.remove(PREF_KEEP_CACHE_TIME); editor.apply(); - return Preferences.DEFAULT_KEEP_CACHE_TIME; + return fallbackValue; } - if (preferences.contains(PREF_CACHE_APK)) { - if (preferences.getBoolean(PREF_CACHE_APK, false)) { + if (preferences.contains(OLD_PREF_CACHE_APK)) { + if (preferences.getBoolean(OLD_PREF_CACHE_APK, false)) { value = String.valueOf(Long.MAX_VALUE); } SharedPreferences.Editor editor = preferences.edit(); - editor.remove(PREF_CACHE_APK); + editor.remove(OLD_PREF_CACHE_APK); editor.putString(PREF_KEEP_CACHE_TIME, value); editor.apply(); } @@ -295,7 +312,7 @@ public final class Preferences implements SharedPreferences.OnSharedPreferenceCh try { return Long.parseLong(value); } catch (NumberFormatException e) { - return DEFAULT_KEEP_CACHE_TIME; + return fallbackValue; } } @@ -306,7 +323,7 @@ public final class Preferences implements SharedPreferences.OnSharedPreferenceCh * asking), or whether there is no apps because we have never actually asked to update the repos. */ public boolean hasTriedEmptyUpdate() { - return preferences.getBoolean(PREF_TRIED_EMPTY_UPDATE, false); + return preferences.getBoolean(PREF_TRIED_EMPTY_UPDATE, IGNORED_B); } public void setTriedEmptyUpdate(boolean value) { @@ -314,7 +331,7 @@ public final class Preferences implements SharedPreferences.OnSharedPreferenceCh } public boolean getUnstableUpdates() { - return preferences.getBoolean(PREF_UNSTABLE_UPDATES, DEFAULT_UNSTABLE_UPDATES); + return preferences.getBoolean(PREF_UNSTABLE_UPDATES, IGNORED_B); } public void setUnstableUpdates(boolean value) { @@ -322,11 +339,11 @@ public final class Preferences implements SharedPreferences.OnSharedPreferenceCh } public boolean isKeepingInstallHistory() { - return preferences.getBoolean(PREF_KEEP_INSTALL_HISTORY, DEFAULT_KEEP_INSTALL_HISTORY); + return preferences.getBoolean(PREF_KEEP_INSTALL_HISTORY, IGNORED_B); } public boolean showIncompatibleVersions() { - return preferences.getBoolean(PREF_SHOW_INCOMPAT_VERSIONS, DEFAULT_SHOW_INCOMPAT_VERSIONS); + return preferences.getBoolean(PREF_SHOW_INCOMPAT_VERSIONS, IGNORED_B); } public boolean showNfcDuringSwap() { @@ -338,15 +355,19 @@ public final class Preferences implements SharedPreferences.OnSharedPreferenceCh } public boolean expertMode() { - return preferences.getBoolean(PREF_EXPERT, DEFAULT_EXPERT); + return preferences.getBoolean(PREF_EXPERT, IGNORED_B); } public void setExpertMode(boolean flag) { preferences.edit().putBoolean(PREF_EXPERT, flag).apply(); } + public boolean forceTouchApps() { + return preferences.getBoolean(Preferences.PREF_FORCE_TOUCH_APPS, IGNORED_B); + } + public Theme getTheme() { - return Theme.valueOf(preferences.getString(Preferences.PREF_THEME, Preferences.DEFAULT_THEME)); + return Theme.valueOf(preferences.getString(Preferences.PREF_THEME, null)); } public boolean isLocalRepoHttpsEnabled() { @@ -375,7 +396,7 @@ public final class Preferences implements SharedPreferences.OnSharedPreferenceCh } public boolean isAutoDownloadEnabled() { - return preferences.getBoolean(PREF_AUTO_DOWNLOAD_INSTALL_UPDATES, false); + return preferences.getBoolean(PREF_AUTO_DOWNLOAD_INSTALL_UPDATES, IGNORED_B); } /** @@ -401,11 +422,11 @@ public final class Preferences implements SharedPreferences.OnSharedPreferenceCh } public int getOverWifi() { - return preferences.getInt(PREF_OVER_WIFI, DEFAULT_OVER_WIFI); + return preferences.getInt(PREF_OVER_WIFI, IGNORED_I); } public int getOverData() { - return preferences.getInt(PREF_OVER_DATA, DEFAULT_OVER_DATA); + return preferences.getInt(PREF_OVER_DATA, IGNORED_I); } /** @@ -415,11 +436,11 @@ public final class Preferences implements SharedPreferences.OnSharedPreferenceCh public boolean isTorEnabled() { // TODO enable once Orbot can auto-start after first install //return preferences.getBoolean(PREF_USE_TOR, OrbotHelper.requestStartTor(context)); - return preferences.getBoolean(PREF_USE_TOR, false); + return preferences.getBoolean(PREF_USE_TOR, IGNORED_B); } private boolean isProxyEnabled() { - return preferences.getBoolean(PREF_ENABLE_PROXY, DEFAULT_ENABLE_PROXY); + return preferences.getBoolean(PREF_ENABLE_PROXY, IGNORED_B); } /** @@ -453,7 +474,7 @@ public final class Preferences implements SharedPreferences.OnSharedPreferenceCh } public boolean preventScreenshots() { - return preferences.getBoolean(PREF_PREVENT_SCREENSHOTS, DEFAULT_PREVENT_SCREENSHOTS); + return preferences.getBoolean(PREF_PREVENT_SCREENSHOTS, IGNORED_B); } public boolean panicExit() { @@ -461,11 +482,11 @@ public final class Preferences implements SharedPreferences.OnSharedPreferenceCh } public boolean panicHide() { - return preferences.getBoolean(PREF_PANIC_HIDE, false); + return preferences.getBoolean(PREF_PANIC_HIDE, IGNORED_B); } public boolean hideOnLongPressSearch() { - return preferences.getBoolean(PREF_HIDE_ON_LONG_PRESS_SEARCH, DEFAULT_HIDE_ON_LONG_PRESS_SEARCH); + return preferences.getBoolean(PREF_HIDE_ON_LONG_PRESS_SEARCH, IGNORED_B); } /** @@ -477,7 +498,7 @@ public final class Preferences implements SharedPreferences.OnSharedPreferenceCh public boolean showAppsRequiringRoot() { if (!isInitialized(PREF_SHOW_ROOT_APPS)) { initialize(PREF_SHOW_ROOT_APPS); - showAppsRequiringRoot = preferences.getBoolean(PREF_SHOW_ROOT_APPS, DEFAULT_SHOW_ROOT_APPS); + showAppsRequiringRoot = preferences.getBoolean(PREF_SHOW_ROOT_APPS, IGNORED_B); } return showAppsRequiringRoot; } @@ -496,8 +517,7 @@ public final class Preferences implements SharedPreferences.OnSharedPreferenceCh } if (!isInitialized(PREF_SHOW_ANTI_FEATURE_APPS)) { initialize(PREF_SHOW_ANTI_FEATURE_APPS); - showAppsWithAntiFeatures = preferences.getBoolean(PREF_SHOW_ANTI_FEATURE_APPS, - DEFAULT_SHOW_ANTI_FEATURE_APPS); + showAppsWithAntiFeatures = preferences.getBoolean(PREF_SHOW_ANTI_FEATURE_APPS, IGNORED_B); } return showAppsWithAntiFeatures; } diff --git a/app/src/main/java/org/fdroid/fdroid/views/fragments/PreferencesFragment.java b/app/src/main/java/org/fdroid/fdroid/views/fragments/PreferencesFragment.java index 574474f24..a3752021d 100644 --- a/app/src/main/java/org/fdroid/fdroid/views/fragments/PreferencesFragment.java +++ b/app/src/main/java/org/fdroid/fdroid/views/fragments/PreferencesFragment.java @@ -206,21 +206,18 @@ public class PreferencesFragment extends PreferenceFragment case Preferences.PREF_UPDATE_INTERVAL: updateIntervalSeekBar.setMax(Preferences.UPDATE_INTERVAL_VALUES.length - 1); - updateIntervalSeekBar.setDefaultValue(Preferences.DEFAULT_UPDATE_INTERVAL); int seekBarPosition = updateIntervalSeekBar.getValue(); updateIntervalSeekBar.setSummary(UPDATE_INTERVAL_NAMES[seekBarPosition]); break; case Preferences.PREF_OVER_WIFI: overWifiSeekBar.setMax(Preferences.OVER_NETWORK_ALWAYS); - overWifiSeekBar.setDefaultValue(Preferences.DEFAULT_OVER_WIFI); setNetworkSeekBarSummary(overWifiSeekBar); enableUpdateInverval(); break; case Preferences.PREF_OVER_DATA: overDataSeekBar.setMax(Preferences.OVER_NETWORK_ALWAYS); - overDataSeekBar.setDefaultValue(Preferences.DEFAULT_OVER_DATA); setNetworkSeekBarSummary(overDataSeekBar); enableUpdateInverval(); break; diff --git a/app/src/main/java/org/fdroid/fdroid/views/main/MainActivity.java b/app/src/main/java/org/fdroid/fdroid/views/main/MainActivity.java index bf38849ce..7350e5c80 100644 --- a/app/src/main/java/org/fdroid/fdroid/views/main/MainActivity.java +++ b/app/src/main/java/org/fdroid/fdroid/views/main/MainActivity.java @@ -44,6 +44,7 @@ import com.ashokvarma.bottomnavigation.TextBadgeItem; import org.fdroid.fdroid.AppDetails2; import org.fdroid.fdroid.AppUpdateStatusManager; import org.fdroid.fdroid.AppUpdateStatusManager.AppUpdateStatus; +import org.fdroid.fdroid.BuildConfig; import org.fdroid.fdroid.FDroidApp; import org.fdroid.fdroid.NfcHelper; import org.fdroid.fdroid.Preferences; @@ -114,14 +115,17 @@ public class MainActivity extends AppCompatActivity implements BottomNavigationB updatesBadge = new TextBadgeItem().hide(false); bottomNavigation = (BottomNavigationBar) findViewById(R.id.bottom_navigation); + if (BuildConfig.FLAVOR.startsWith("full")) { + bottomNavigation + .addItem(new BottomNavigationItem(R.drawable.ic_latest, R.string.main_menu__latest_apps)) + .addItem(new BottomNavigationItem(R.drawable.ic_categories, R.string.main_menu__categories)) + .addItem(new BottomNavigationItem(R.drawable.ic_nearby, R.string.main_menu__swap_nearby)); + } bottomNavigation.setTabSelectedListener(this) .setBarBackgroundColor(getBottomNavigationBackgroundColorResId()) .setInActiveColor(R.color.bottom_nav_items) .setActiveColor(android.R.color.white) .setMode(BottomNavigationBar.MODE_FIXED) - .addItem(new BottomNavigationItem(R.drawable.ic_latest, R.string.main_menu__latest_apps)) - .addItem(new BottomNavigationItem(R.drawable.ic_categories, R.string.main_menu__categories)) - .addItem(new BottomNavigationItem(R.drawable.ic_nearby, R.string.main_menu__swap_nearby)) .addItem(new BottomNavigationItem(R.drawable.ic_updates, R.string.updates).setBadgeItem(updatesBadge)) .addItem(new BottomNavigationItem(R.drawable.ic_settings, R.string.menu_settings)) .initialise(); diff --git a/app/src/main/java/org/fdroid/fdroid/views/main/MainViewAdapter.java b/app/src/main/java/org/fdroid/fdroid/views/main/MainViewAdapter.java index e6c583082..729fcd458 100644 --- a/app/src/main/java/org/fdroid/fdroid/views/main/MainViewAdapter.java +++ b/app/src/main/java/org/fdroid/fdroid/views/main/MainViewAdapter.java @@ -1,42 +1,65 @@ +/* + * Copyright (C) 2016-2017 Peter Serwylo + * Copyright (C) 2017 Mikael von Pfaler + * Copyright (C) 2018 Senecto Limited + * + * 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. + * + * This program 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 this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + */ + package org.fdroid.fdroid.views.main; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.RecyclerView; import android.util.SparseIntArray; +import android.view.Menu; import android.view.ViewGroup; import android.widget.FrameLayout; - +import android.widget.PopupMenu; import org.fdroid.fdroid.R; /** - * Represents the five main views that are accessible from the main view. These are: - * + Whats new - * + Categories - * + Nearby - * + Updates - * + Settings - * - * It is responsible for understanding the relationship between each main view that is reachable - * from the bottom navigation, and its position. - * - * It doesn't need to do very much other than redirect requests from the {@link MainActivity}s - * {@link RecyclerView} to the relevant "bind*()" method - * of the {@link MainViewController}. + * Represents the main views that are accessible from the main screen via each + * tab. They are set and loaded dynamically from {@code menu/main_activity_screens.xml} + * This class is responsible for understanding the relationship between each + * tab view that is reachable from the bottom navigation, and its position. + *

+ * It doesn't need to do very much other than redirect requests from the {@link MainActivity}s + * {@link RecyclerView} to the relevant "bind*()" method + * of the {@link MainViewController}. + *

+ * {@link PopupMenu} is used as a hack to get a disposable {@link Menu} instance + * for parsing and reading the menu XML. */ class MainViewAdapter extends RecyclerView.Adapter { - private final SparseIntArray positionToId = new SparseIntArray(); + private final SparseIntArray positionToId; private final AppCompatActivity activity; MainViewAdapter(AppCompatActivity activity) { this.activity = activity; setHasStableIds(true); - positionToId.put(0, R.id.whats_new); - positionToId.put(1, R.id.categories); - positionToId.put(2, R.id.nearby); - positionToId.put(3, R.id.updates); - positionToId.put(4, R.id.settings); + + PopupMenu p = new PopupMenu(activity, null); + Menu menu = p.getMenu(); + activity.getMenuInflater().inflate(R.menu.main_activity_screens, menu); + positionToId = new SparseIntArray(menu.size()); + for (int i = 0; i < menu.size(); i++) { + positionToId.append(i, menu.getItem(i).getItemId()); + } } @Override diff --git a/app/src/main/res/values-v17/styles.xml b/app/src/main/res/values-v17/styles.xml index 79d23f125..5437f3bff 100644 --- a/app/src/main/res/values-v17/styles.xml +++ b/app/src/main/res/values-v17/styles.xml @@ -13,29 +13,4 @@ - - - - - - - - - diff --git a/app/src/main/res/values-v21/styles.xml b/app/src/main/res/values-v21/styles.xml index c3841ddae..19fabb1d1 100644 --- a/app/src/main/res/values-v21/styles.xml +++ b/app/src/main/res/values-v21/styles.xml @@ -18,10 +18,6 @@ @transition/shared_elements - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -