Target API 29, update gradle and update the dependencies

This also fixes an issue with the use of the Iconics library where it was
initialized twice. I also removed the dependency to [AndroidX Preference
eXtended](https://github.com/takisoft/preferencex-android), as there don't seem
to be any issues with using the vanilla AndroidX preference library anymore.
This commit is contained in:
Alexander Bakker 2019-09-14 15:20:02 +02:00
parent 5e7697039a
commit e58dec35c0
9 changed files with 28 additions and 38 deletions

View file

@ -1,7 +1,7 @@
language: android language: android
android: android:
components: components:
- android-28 - android-29
- build-tools-28.0.3 - build-tools-29.0.2
script: script:
- ./gradlew build test - ./gradlew build test

View file

@ -13,12 +13,12 @@ def getGitHash = { -> return getCmdOutput(["git", "rev-parse", "--short", "HEAD"
def getGitBranch = { -> return getCmdOutput(["git", "rev-parse", "--abbrev-ref", "HEAD"]) } def getGitBranch = { -> return getCmdOutput(["git", "rev-parse", "--abbrev-ref", "HEAD"]) }
android { android {
compileSdkVersion 28 compileSdkVersion 29
defaultConfig { defaultConfig {
applicationId "com.beemdevelopment.aegis" applicationId "com.beemdevelopment.aegis"
minSdkVersion 19 minSdkVersion 19
targetSdkVersion 28 targetSdkVersion 29
versionCode 21 versionCode 21
versionName "1.0.2" versionName "1.0.2"
buildConfigField "String", "GIT_HASH", "\"${getGitHash()}\"" buildConfigField "String", "GIT_HASH", "\"${getGitHash()}\""
@ -63,23 +63,21 @@ android {
} }
dependencies { dependencies {
def libsuVersion = '2.3.2' def libsuVersion = '2.5.1'
implementation fileTree(dir: 'libs', include: ['*.jar']) implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.amulyakhare:com.amulyakhare.textdrawable:1.0.1' implementation 'com.amulyakhare:com.amulyakhare.textdrawable:1.0.1'
implementation 'androidx.appcompat:appcompat:1.0.2' implementation 'androidx.appcompat:appcompat:1.1.0'
implementation 'androidx.cardview:cardview:1.0.0' implementation 'androidx.cardview:cardview:1.0.0'
implementation 'androidx.preference:preference:1.0.0' implementation 'androidx.preference:preference:1.1.0'
implementation 'com.takisoft.preferencex:preferencex:1.0.0'
implementation 'com.google.android.material:material:1.0.0' implementation 'com.google.android.material:material:1.0.0'
implementation 'androidx.recyclerview:recyclerview:1.0.0' implementation 'androidx.recyclerview:recyclerview:1.0.0'
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
implementation 'com.getbase:floatingactionbutton:1.10.1' implementation 'com.getbase:floatingactionbutton:1.10.1'
implementation 'com.github.apl-devs:appintro:v4.2.2' implementation 'com.github.apl-devs:appintro:5.1.0'
implementation 'com.github.avito-tech:krop:0.44' implementation 'com.github.avito-tech:krop:0.44'
implementation 'com.madgag.spongycastle:core:1.58.0.0' implementation 'com.madgag.spongycastle:core:1.58.0.0'
implementation 'com.mattprecious.swirl:swirl:1.0.0' implementation 'com.mattprecious.swirl:swirl:1.2.0'
implementation 'de.hdodenhof:circleimageview:2.2.0' implementation 'de.hdodenhof:circleimageview:3.0.1'
implementation 'me.dm7.barcodescanner:zxing:1.9' implementation 'me.dm7.barcodescanner:zxing:1.9.8'
implementation "com.github.topjohnwu.libsu:core:${libsuVersion}" implementation "com.github.topjohnwu.libsu:core:${libsuVersion}"
implementation "com.github.topjohnwu.libsu:io:${libsuVersion}" implementation "com.github.topjohnwu.libsu:io:${libsuVersion}"
implementation 'com.github.bumptech.glide:annotations:4.9.0' implementation 'com.github.bumptech.glide:annotations:4.9.0'
@ -92,6 +90,6 @@ dependencies {
} }
annotationProcessor 'androidx.annotation:annotation:1.1.0' annotationProcessor 'androidx.annotation:annotation:1.1.0'
annotationProcessor 'com.github.bumptech.glide:compiler:4.9.0' annotationProcessor 'com.github.bumptech.glide:compiler:4.9.0'
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.4.2' testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.5.2'
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.4.2' testImplementation 'org.junit.jupiter:junit-jupiter-api:5.5.2'
} }

View file

@ -15,6 +15,8 @@ import android.os.Build;
import com.beemdevelopment.aegis.db.DatabaseManager; import com.beemdevelopment.aegis.db.DatabaseManager;
import com.beemdevelopment.aegis.services.NotificationService; import com.beemdevelopment.aegis.services.NotificationService;
import com.beemdevelopment.aegis.ui.MainActivity; import com.beemdevelopment.aegis.ui.MainActivity;
import com.mikepenz.iconics.Iconics;
import com.mikepenz.material_design_iconic_typeface_library.MaterialDesignIconic;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
@ -37,6 +39,9 @@ public class AegisApplication extends Application {
_prefs = new Preferences(this); _prefs = new Preferences(this);
_lockListeners = new ArrayList<>(); _lockListeners = new ArrayList<>();
Iconics.init(this);
Iconics.registerFont(new MaterialDesignIconic());
// listen for SCREEN_OFF events // listen for SCREEN_OFF events
ScreenOffReceiver receiver = new ScreenOffReceiver(); ScreenOffReceiver receiver = new ScreenOffReceiver();
IntentFilter intentFilter = new IntentFilter(); IntentFilter intentFilter = new IntentFilter();

View file

@ -10,17 +10,15 @@ import android.view.View;
import android.widget.TextView; import android.widget.TextView;
import android.widget.Toast; import android.widget.Toast;
import androidx.annotation.StringRes;
import androidx.core.view.LayoutInflaterCompat;
import com.beemdevelopment.aegis.BuildConfig; import com.beemdevelopment.aegis.BuildConfig;
import com.beemdevelopment.aegis.R; import com.beemdevelopment.aegis.R;
import com.beemdevelopment.aegis.Theme; import com.beemdevelopment.aegis.Theme;
import com.beemdevelopment.aegis.helpers.ThemeHelper; import com.beemdevelopment.aegis.helpers.ThemeHelper;
import com.beemdevelopment.aegis.ui.glide.GlideLicense; import com.beemdevelopment.aegis.ui.glide.GlideLicense;
import com.mikepenz.iconics.Iconics;
import com.mikepenz.iconics.context.IconicsLayoutInflater2; import com.mikepenz.iconics.context.IconicsLayoutInflater2;
import com.mikepenz.material_design_iconic_typeface_library.MaterialDesignIconic;
import androidx.annotation.StringRes;
import androidx.core.view.LayoutInflaterCompat;
import de.psdev.licensesdialog.LicenseResolver; import de.psdev.licensesdialog.LicenseResolver;
import de.psdev.licensesdialog.LicensesDialog; import de.psdev.licensesdialog.LicensesDialog;
@ -42,9 +40,6 @@ public class AboutActivity extends AegisActivity {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
setContentView(R.layout.activity_about); setContentView(R.layout.activity_about);
Iconics.init(getApplicationContext());
Iconics.registerFont(new MaterialDesignIconic());
View btnLicenses = findViewById(R.id.btn_licenses); View btnLicenses = findViewById(R.id.btn_licenses);
btnLicenses.setOnClickListener(v -> showLicenseDialog()); btnLicenses.setOnClickListener(v -> showLicenseDialog());

View file

@ -192,6 +192,8 @@ public class MainActivity extends AegisActivity implements EntryListView.Listene
case CODE_SCAN_IMAGE: case CODE_SCAN_IMAGE:
onScanImageResult(resultCode, data); onScanImageResult(resultCode, data);
} }
super.onActivityResult(requestCode, resultCode, data);
} }
@Override @Override
@ -505,11 +507,6 @@ public class MainActivity extends AegisActivity implements EntryListView.Listene
_entryListView.removeEntry(oldEntry); _entryListView.removeEntry(oldEntry);
} }
@Override
protected void attachBaseContext(Context newBase) {
super.attachBaseContext(IconicsContextWrapper.wrap(newBase));
}
@Override @Override
public boolean onCreateOptionsMenu(Menu menu) { public boolean onCreateOptionsMenu(Menu menu) {
_menu = menu; _menu = menu;

View file

@ -40,7 +40,6 @@ import com.beemdevelopment.aegis.services.NotificationService;
import com.beemdevelopment.aegis.ui.models.ImportEntry; import com.beemdevelopment.aegis.ui.models.ImportEntry;
import com.beemdevelopment.aegis.ui.preferences.SwitchPreference; import com.beemdevelopment.aegis.ui.preferences.SwitchPreference;
import com.beemdevelopment.aegis.util.UUIDMap; import com.beemdevelopment.aegis.util.UUIDMap;
import com.takisoft.preferencex.PreferenceFragmentCompat;
import com.topjohnwu.superuser.Shell; import com.topjohnwu.superuser.Shell;
import com.topjohnwu.superuser.io.SuFile; import com.topjohnwu.superuser.io.SuFile;
import com.topjohnwu.superuser.io.SuFileInputStream; import com.topjohnwu.superuser.io.SuFileInputStream;
@ -59,6 +58,7 @@ import javax.crypto.Cipher;
import androidx.appcompat.app.AlertDialog; import androidx.appcompat.app.AlertDialog;
import androidx.preference.Preference; import androidx.preference.Preference;
import androidx.preference.PreferenceFragmentCompat;
public class PreferencesFragment extends PreferenceFragmentCompat { public class PreferencesFragment extends PreferenceFragmentCompat {
// activity request codes // activity request codes
@ -88,7 +88,7 @@ public class PreferencesFragment extends PreferenceFragmentCompat {
private Preference _groupsPreference; private Preference _groupsPreference;
@Override @Override
public void onCreatePreferencesFix(Bundle savedInstanceState, String rootKey) { public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
addPreferencesFromResource(R.xml.preferences); addPreferencesFromResource(R.xml.preferences);
AegisApplication app = (AegisApplication) getActivity().getApplication(); AegisApplication app = (AegisApplication) getActivity().getApplication();

View file

@ -116,7 +116,7 @@
<string name="reading_file_error">试图读取文件时出错</string> <string name="reading_file_error">试图读取文件时出错</string>
<string name="app_lookup_error">错误:应用未安装</string> <string name="app_lookup_error">错误:应用未安装</string>
<string name="root_error">错误:无法获得 root 权限</string> <string name="root_error">错误:无法获得 root 权限</string>
<string name="imported_entries_count">导入 %!d 项条目</string> <string name="imported_entries_count">导入 %d 项条目</string>
<string name="read_entries_count">读取 %!d 项条目。 %!d 项错误。</string> <string name="read_entries_count">读取 %!d 项条目。 %!d 项错误。</string>
<string name="import_error_title">导入时发生一个或多个错误</string> <string name="import_error_title">导入时发生一个或多个错误</string>
<string name="exporting_database_error">试图导出数据库时出错</string> <string name="exporting_database_error">试图导出数据库时出错</string>

View file

@ -146,11 +146,6 @@
<item name="android:textColor">#FFFFFF</item> <item name="android:textColor">#FFFFFF</item>
</style> </style>
<style name="AppTheme.NoActionBar.NoActionBar">
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
</style>
<style name="DialogStyle" parent="Theme.AppCompat.Light.Dialog.Alert"> <style name="DialogStyle" parent="Theme.AppCompat.Light.Dialog.Alert">
<item name="android:background">@color/card_background</item> <item name="android:background">@color/card_background</item>
<item name="colorAccent">@color/colorAccent</item> <item name="colorAccent">@color/colorAccent</item>

View file

@ -6,7 +6,7 @@ buildscript {
google() google()
} }
dependencies { dependencies {
classpath 'com.android.tools.build:gradle:3.4.1' classpath 'com.android.tools.build:gradle:3.5.0'
// NOTE: Do not place your application dependencies here; they belong // NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files // in the individual module build.gradle files