diff --git a/.gitignore b/.gitignore
index 5da144d4..0db2eb33 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,11 +1,9 @@
-# Created by https://www.gitignore.io/api/androidstudio
-
-### AndroidStudio ###
-# Covers files to be ignored for android development using Android Studio.
+# Reference gitignore https://gist.github.com/G00fY2/81c0aa67943cca021e915840bf73ee1b
# Built application files
*.apk
*.ap_
+*.aab
# Files for the ART/Dalvik VM
*.dex
@@ -43,8 +41,7 @@ proguard/
/*/out
/*/*/build
/*/*/production
-captures/
-.navigation/
+/*/*/staging
*.ipr
*~
*.swp
@@ -52,97 +49,165 @@ captures/
# Android Patch
gen-external-apklibs
-# External native build folder generated in Android Studio 2.2 and later
-.externalNativeBuild
+# Android Studio Navigation editor temp files
+.navigation/
-# NDK
-obj/
+# Android Studio captures folder
+captures/
-# IntelliJ IDEA
+# IntelliJ
*.iml
*.iws
-/out/
-
-# User-specific or generated
-.idea/libraries/
+.idea/artifacts
+.idea/modules
+.idea/modules.xml
.idea/workspace.xml
+.idea/navEditor.xml
.idea/tasks.xml
.idea/gradle.xml
-.idea/usage.statistics.xml
.idea/assetWizardSettings.xml
+.idea/libraries
+.idea/caches
+.idea/shelf
.idea/.name
.idea/compiler.xml
.idea/copyright/profiles_settings.xml
.idea/encodings.xml
.idea/misc.xml
-.idea/caches
-.idea/modules
-.idea/modules.xml
.idea/scopes/scope_settings.xml
-.idea/dictionaries
-.idea/shelf
.idea/vcs.xml
.idea/jsLibraryMappings.xml
-.idea/datasources
+.idea/dataSources
.idea/datasources.xml
+.idea/dataSources.local.xml
.idea/dataSources.ids
-.idea/datasources.local.xml
.idea/sqlDataSources.xml
+.idea/dbnavigator.xml
.idea/dynamic.xml
.idea/uiDesigner.xml
-.idea/dbnavigator.xml
+.idea/usage.statistics.xml
.idea/contentModel.xml
.idea/kotlinc.xml
+# optional
+.idea/dictionaries
.idea/inspectionProfiles
+.idea/runConfigurations
+.idea/runConfigurations.xml
# Keystore files
*.jks
+*.keystore
-# OS-specific files
-.DS_Store
-.DS_Store?
-._*
-.Spotlight-V100
-.Trashes
-ehthumbs.db
-Thumbs.db
+# External native build folder generated in Android Studio 2.2 and later
+.externalNativeBuild
-# Legacy Eclipse project files
-.classpath
-.project
+# NDK
+obj/
-# Mobile Tools for Java (J2ME)
-.mtj.tmp/
+# CMake
+cmake-build-*/
+
+# Google Services (e.g. APIs or Firebase)
+google-services.json
-# Package Files #
-*.jar
-*.war
-*.ear
+# Freeline
+freeline.py
+freeline/
+freeline_project_description.json
-# virtual machine crash logs (Reference: http://www.java.com/en/download/help/error_hotspot.xml)
-hs_err_pid*
+# fastlane
+fastlane/report.xml
+fastlane/Preview.html
+fastlane/screenshots
+fastlane/test_output
+fastlane/readme.md
+
+#Crashlytics
+crashlytics-build.properties
+com_crashlytics_export_strings.xml
+crashlytics.properties
+fabric.properties
## Plugin-specific files:
# mpeltonen/sbt-idea plugin
.idea_modules/
+# Mongo Explorer plugin
+.idea/mongoSettings.xml
+
# JIRA plugin
atlassian-ide-plugin.xml
-# Mongo Explorer plugin
-.idea/mongoSettings.xml
+# Cursive Clojure plugin
+.idea/replstate.xml
-# Crashlytics plugin (for Android Studio and IntelliJ)
-com_crashlytics_export_strings.xml
-crashlytics.properties
-crashlytics-build.properties
-fabric.properties
+# Editor-based Rest Client
+.idea/httpRequests
-### AndroidStudio Patch ###
-# Google Services plugin
-google-services.json
+## OS specific files:
+
+# General
+.DS_Store
+.DS_Store?
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+
+# Thumbnails
+._*
+
+# Files that might appear in the root of a volume
+.DocumentRevisions-V100
+.fseventsd
+.Spotlight-V100
+.TemporaryItems
+.Trashes
+.VolumeIcon.icns
+.com.apple.timemachine.donotpresent
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+# Windows thumbnail cache files
+Thumbs.db
+ehthumbs.db
+ehthumbs_vista.db
+
+# Dump file
+*.stackdump
+
+# Folder config file
+[Dd]esktop.ini
+
+# Recycle Bin used on file shares
+$RECYCLE.BIN/
+
+# Windows Installer files
+*.cab
+*.msi
+*.msix
+*.msm
+*.msp
+
+# Windows shortcuts
+*.lnk
+
+# temporary files which can be created if a process still has a handle open of a deleted file
+.fuse_hidden*
+
+# KDE directory preferences
+.directory
-!/gradle/wrapper/gradle-wrapper.jar
+# Linux trash folder which might appear on any partition or disk
+.Trash-*
-# End of https://www.gitignore.io/api/androidstudio
\ No newline at end of file
+# .nfs files are created when an open file is removed but is still being accessed
+.nfs*
\ No newline at end of file
diff --git a/.idea/runConfigurations.xml b/.idea/runConfigurations.xml
deleted file mode 100644
index 7f68460d..00000000
--- a/.idea/runConfigurations.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/runConfigurations/app.xml b/.idea/runConfigurations/app.xml
deleted file mode 100644
index 70375627..00000000
--- a/.idea/runConfigurations/app.xml
+++ /dev/null
@@ -1,55 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.travis.yml b/.travis.yml
index 9f62ec83..c02ebbb6 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,8 +1,8 @@
-language: minimal
+language: java
os: linux
-dist: xenial
+dist: bionic
group: edge
-sudo: required
+jdk: openjdk10
git:
depth: false
env:
@@ -27,16 +27,11 @@ stages:
android_phases:
- phase: &before_install
- # check if OpenJDK8 is installed and install if missing
- - if ! dpkg -s openjdk-8-jdk >/dev/null 2>&1; then sudo apt-get update; sudo apt-get install openjdk-8-jdk; fi
- - java -version
- # print available Java versions with their path (must contain java-8-openjdk-amd64)
- - sudo update-alternatives --config java
- # set JAVA_HOME path
- - export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
# download and unzip Android SDK command line tools
- wget -nv https://dl.google.com/android/repository/$ANDROID_SDK_TOOLS
- unzip -q $ANDROID_SDK_TOOLS -d $HOME/sdk
+ # add deprecated java ee module to jdk10 to run the sdkmanager
+ - export JAVA_OPTS="-XX:+IgnoreUnrecognizedVMOptions --add-modules java.se.ee"
# set SDK tools path variable and ANDROID_HOME
- export PATH=$PATH:$HOME/sdk/tools/bin
- export ANDROID_HOME=$HOME/sdk
diff --git a/app/build.gradle b/app/build.gradle
index bed0f805..40749323 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -60,6 +60,12 @@ android {
kotlinOptions {
jvmTarget = '1.8'
}
+ kapt {
+ javacOptions {
+ option("-source", "8")
+ option("-target", "8")
+ }
+ }
}
dependencies {
@@ -73,10 +79,10 @@ dependencies {
implementation "androidx.activity:activity:$activityVersion"
implementation "androidx.recyclerview:recyclerview:$recyclerviewVersion"
implementation "androidx.constraintlayout:constraintlayout:$constraintlayoutVersion"
+ implementation "androidx.vectordrawable:vectordrawable:$vectorDrawableVersion"
// UI
implementation "com.google.android.material:material:$materialVersion"
- implementation "androidx.vectordrawable:vectordrawable:$vectorDrawableVersion"
// Misc
implementation "com.jakewharton.timber:timber:$timberVersion"
diff --git a/app/src/main/kotlin/com/g00fy2/developerwidget/activities/about/AboutActivity.kt b/app/src/main/kotlin/com/g00fy2/developerwidget/activities/about/AboutActivity.kt
index e8a2551e..2dbef055 100644
--- a/app/src/main/kotlin/com/g00fy2/developerwidget/activities/about/AboutActivity.kt
+++ b/app/src/main/kotlin/com/g00fy2/developerwidget/activities/about/AboutActivity.kt
@@ -13,15 +13,6 @@ import com.g00fy2.developerwidget.R
import com.g00fy2.developerwidget.activities.widgetconfig.ConfigLauncherActivity
import com.g00fy2.developerwidget.base.BaseActivity
import com.g00fy2.developerwidget.base.BaseContract.BasePresenter
-import com.g00fy2.developerwidget.utils.CHANGES
-import com.g00fy2.developerwidget.utils.GITHUB_ISSUE
-import com.g00fy2.developerwidget.utils.GITHUB_PROJECT
-import com.g00fy2.developerwidget.utils.GITHUB_USER
-import com.g00fy2.developerwidget.utils.ICON_CREDITS
-import com.g00fy2.developerwidget.utils.MIT_LICENSE
-import com.g00fy2.developerwidget.utils.OSS_LICENSES
-import com.g00fy2.developerwidget.utils.PRIVACY_POLICY
-import com.g00fy2.developerwidget.utils.TWITTER_USER
import kotlinx.android.synthetic.main.activity_about.*
import javax.inject.Inject
diff --git a/app/src/main/kotlin/com/g00fy2/developerwidget/activities/about/AboutPresenterImpl.kt b/app/src/main/kotlin/com/g00fy2/developerwidget/activities/about/AboutPresenterImpl.kt
index 0cd2d467..abef8a49 100644
--- a/app/src/main/kotlin/com/g00fy2/developerwidget/activities/about/AboutPresenterImpl.kt
+++ b/app/src/main/kotlin/com/g00fy2/developerwidget/activities/about/AboutPresenterImpl.kt
@@ -5,7 +5,6 @@ import com.g00fy2.developerwidget.base.BasePresenterImpl
import com.g00fy2.developerwidget.controllers.DayNightController
import com.g00fy2.developerwidget.controllers.IntentController
import com.g00fy2.developerwidget.controllers.ToastController
-import com.g00fy2.developerwidget.utils.GITHUB_PROJECT_IO
import javax.inject.Inject
class AboutPresenterImpl @Inject constructor() : BasePresenterImpl(), AboutContract.AboutPresenter {
diff --git a/app/src/main/kotlin/com/g00fy2/developerwidget/utils/Constants.kt b/app/src/main/kotlin/com/g00fy2/developerwidget/activities/about/UrlConstants.kt
similarity index 69%
rename from app/src/main/kotlin/com/g00fy2/developerwidget/utils/Constants.kt
rename to app/src/main/kotlin/com/g00fy2/developerwidget/activities/about/UrlConstants.kt
index 617ca09a..060533c5 100644
--- a/app/src/main/kotlin/com/g00fy2/developerwidget/utils/Constants.kt
+++ b/app/src/main/kotlin/com/g00fy2/developerwidget/activities/about/UrlConstants.kt
@@ -1,15 +1,5 @@
-package com.g00fy2.developerwidget.utils
+package com.g00fy2.developerwidget.activities.about
-// Dagger scopes
-const val ACTIVITY = "activity"
-const val APPLICATION = "application"
-const val WIDGET_ID = "widgetId"
-
-// Activity window layout
-const val DIALOG_ACTIVITY_WIDTH_FACTOR = 0.95
-const val DIALOG_ACTIVITY_HEIGHT_FACTOR = 0.80
-
-// Urls
const val GITHUB_PROJECT = "https://github.com/G00fY2/DeveloperWidget"
const val CHANGES = "$GITHUB_PROJECT/releases"
const val MIT_LICENSE = "$GITHUB_PROJECT/blob/master/LICENSE"
diff --git a/app/src/main/kotlin/com/g00fy2/developerwidget/activities/apkinstall/ApkAdapter.kt b/app/src/main/kotlin/com/g00fy2/developerwidget/activities/apkinstall/ApkAdapter.kt
index 7051623a..5f219120 100644
--- a/app/src/main/kotlin/com/g00fy2/developerwidget/activities/apkinstall/ApkAdapter.kt
+++ b/app/src/main/kotlin/com/g00fy2/developerwidget/activities/apkinstall/ApkAdapter.kt
@@ -1,5 +1,8 @@
package com.g00fy2.developerwidget.activities.apkinstall
+import android.graphics.drawable.InsetDrawable
+import android.os.Build.VERSION
+import android.os.Build.VERSION_CODES
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
@@ -72,6 +75,9 @@ class ApkAdapter : BaseAdapter(ApksDiffUtilsCallback())
app_debug_imageview.visibility = if (apkFile.debuggable) View.VISIBLE else View.INVISIBLE
file_date_textview.text = apkFile.lastModified
app_icon_imageview.setImageDrawable(apkFile.appIcon)
+ if (VERSION.SDK_INT >= VERSION_CODES.O) {
+ app_icon_imageview.setBackgroundResource(if (apkFile.appIcon is InsetDrawable) R.drawable.bg_adaptive_launcher_icon else 0)
+ }
setSelected(position)
}
}
diff --git a/app/src/main/kotlin/com/g00fy2/developerwidget/activities/apkinstall/ApkFile.kt b/app/src/main/kotlin/com/g00fy2/developerwidget/activities/apkinstall/ApkFile.kt
index 2e5341fd..66e74cf4 100644
--- a/app/src/main/kotlin/com/g00fy2/developerwidget/activities/apkinstall/ApkFile.kt
+++ b/app/src/main/kotlin/com/g00fy2/developerwidget/activities/apkinstall/ApkFile.kt
@@ -2,14 +2,16 @@ package com.g00fy2.developerwidget.activities.apkinstall
import android.content.Context
import android.content.pm.ApplicationInfo
+import android.graphics.drawable.AdaptiveIconDrawable
import android.graphics.drawable.Drawable
+import android.graphics.drawable.InsetDrawable
import android.net.Uri
import android.os.Build.VERSION
import android.os.Build.VERSION_CODES
import android.text.format.DateFormat
import androidx.core.content.FileProvider
import androidx.core.content.pm.PackageInfoCompat
-import com.g00fy2.developerwidget.utils.ACTIVITY
+import com.g00fy2.developerwidget.di.annotations.ACTIVITY
import timber.log.Timber
import java.io.File
import java.text.NumberFormat
@@ -74,8 +76,14 @@ class ApkFile private constructor() : Comparable {
appInfo.sourceDir = filePath
appInfo.publicSourceDir = filePath
packageManager.getApplicationLabel(appInfo).let { appName = it.toString() }
- appIcon = packageManager.getApplicationIcon(appInfo)
debuggable = appInfo.flags.and(ApplicationInfo.FLAG_DEBUGGABLE) != 0
+ packageManager.getApplicationIcon(appInfo).let {
+ if (VERSION.SDK_INT >= VERSION_CODES.O && it is AdaptiveIconDrawable) {
+ appIcon = InsetDrawable(it, 0.025f, 0.01f, 0.025f, 0.04f)
+ } else {
+ appIcon = it
+ }
+ }
}
}
diff --git a/app/src/main/kotlin/com/g00fy2/developerwidget/activities/appmanager/AppInfo.kt b/app/src/main/kotlin/com/g00fy2/developerwidget/activities/appmanager/AppInfo.kt
index 16574bcb..537442e3 100644
--- a/app/src/main/kotlin/com/g00fy2/developerwidget/activities/appmanager/AppInfo.kt
+++ b/app/src/main/kotlin/com/g00fy2/developerwidget/activities/appmanager/AppInfo.kt
@@ -2,9 +2,13 @@ package com.g00fy2.developerwidget.activities.appmanager
import android.content.Context
import android.content.pm.PackageInfo
+import android.graphics.drawable.AdaptiveIconDrawable
import android.graphics.drawable.Drawable
+import android.graphics.drawable.InsetDrawable
+import android.os.Build.VERSION
+import android.os.Build.VERSION_CODES
import androidx.core.content.pm.PackageInfoCompat
-import com.g00fy2.developerwidget.utils.ACTIVITY
+import com.g00fy2.developerwidget.di.annotations.ACTIVITY
import javax.inject.Inject
import javax.inject.Named
@@ -46,7 +50,13 @@ class AppInfo private constructor() : Comparable {
packageInfo.applicationInfo
}?.let { appInfo ->
appName = packageManager.getApplicationLabel(appInfo).toString()
- appIcon = packageManager.getApplicationIcon(appInfo.packageName)
+ packageManager.getApplicationIcon(appInfo.packageName).let {
+ if (VERSION.SDK_INT >= VERSION_CODES.O && it is AdaptiveIconDrawable) {
+ appIcon = InsetDrawable(it, 0.025f, 0.01f, 0.025f, 0.04f)
+ } else {
+ appIcon = it
+ }
+ }
}
}
}
diff --git a/app/src/main/kotlin/com/g00fy2/developerwidget/activities/appmanager/AppsActivity.kt b/app/src/main/kotlin/com/g00fy2/developerwidget/activities/appmanager/AppsActivity.kt
index 63ac0805..8b45a17b 100644
--- a/app/src/main/kotlin/com/g00fy2/developerwidget/activities/appmanager/AppsActivity.kt
+++ b/app/src/main/kotlin/com/g00fy2/developerwidget/activities/appmanager/AppsActivity.kt
@@ -27,11 +27,11 @@ import androidx.recyclerview.widget.LinearLayoutManager
import com.g00fy2.developerwidget.R
import com.g00fy2.developerwidget.base.BaseActivity
import com.g00fy2.developerwidget.base.BaseContract.BasePresenter
-import com.g00fy2.developerwidget.utils.AnimationUtils
-import com.g00fy2.developerwidget.utils.hideKeyboard
+import com.g00fy2.developerwidget.ktx.collapse
+import com.g00fy2.developerwidget.ktx.expand
+import com.g00fy2.developerwidget.ktx.hideKeyboard
import com.google.android.material.chip.Chip
import kotlinx.android.synthetic.main.activity_apps.*
-import kotlinx.android.synthetic.main.app_filter_info.*
import javax.inject.Inject
class AppsActivity : BaseActivity(R.layout.activity_apps, true), AppsContract.AppsView {
@@ -74,7 +74,7 @@ class AppsActivity : BaseActivity(R.layout.activity_apps, true), AppsContract.Ap
app_filter_info.setOnClickListener {
scrollToTopAfterCommit = true
presenter.disableFilter()
- AnimationUtils.collapseView(app_filter_info, true, LinearOutSlowInInterpolator())
+ app_filter_info.collapse(true, LinearOutSlowInInterpolator())
}
TooltipCompat.setTooltipText(filter_imageview, filter_imageview.contentDescription)
filter_imageview.setOnClickListener {
@@ -161,15 +161,14 @@ class AppsActivity : BaseActivity(R.layout.activity_apps, true), AppsContract.Ap
private fun toggleFilterView() {
if (filter_linearlayout.isVisible) {
- if (presenter.getCurrentFilter().isNotEmpty()) AnimationUtils.expandView(app_filter_info, true,
- FastOutLinearInInterpolator())
- AnimationUtils.collapseView(filter_linearlayout, easing = FastOutLinearInInterpolator())
+ if (presenter.getCurrentFilter().isNotEmpty()) app_filter_info.expand(true, FastOutLinearInInterpolator())
+ filter_linearlayout.collapse(easing = FastOutLinearInInterpolator())
filter_edittext.hideKeyboard()
} else {
- if (app_filter_info.isVisible) AnimationUtils.collapseView(app_filter_info, true, LinearOutSlowInInterpolator())
+ if (app_filter_info.isVisible) app_filter_info.collapse(true, LinearOutSlowInInterpolator())
filter_edittext.text.clear()
setFilterChips(presenter.getCurrentFilter())
- AnimationUtils.expandView(filter_linearlayout, easing = LinearOutSlowInInterpolator())
+ filter_linearlayout.expand(easing = LinearOutSlowInInterpolator())
}
}
diff --git a/app/src/main/kotlin/com/g00fy2/developerwidget/activities/appmanager/AppsActivityModule.kt b/app/src/main/kotlin/com/g00fy2/developerwidget/activities/appmanager/AppsActivityModule.kt
index e89ef7ec..d0a46fd8 100644
--- a/app/src/main/kotlin/com/g00fy2/developerwidget/activities/appmanager/AppsActivityModule.kt
+++ b/app/src/main/kotlin/com/g00fy2/developerwidget/activities/appmanager/AppsActivityModule.kt
@@ -4,7 +4,7 @@ import android.appwidget.AppWidgetManager
import com.g00fy2.developerwidget.base.BaseActivity
import com.g00fy2.developerwidget.di.ActivityModule
import com.g00fy2.developerwidget.di.annotations.ActivityScope
-import com.g00fy2.developerwidget.utils.WIDGET_ID
+import com.g00fy2.developerwidget.di.annotations.WIDGET_ID
import dagger.Binds
import dagger.Module
import dagger.Provides
diff --git a/app/src/main/kotlin/com/g00fy2/developerwidget/activities/appmanager/AppsAdapter.kt b/app/src/main/kotlin/com/g00fy2/developerwidget/activities/appmanager/AppsAdapter.kt
index 9d3297be..b5893a14 100644
--- a/app/src/main/kotlin/com/g00fy2/developerwidget/activities/appmanager/AppsAdapter.kt
+++ b/app/src/main/kotlin/com/g00fy2/developerwidget/activities/appmanager/AppsAdapter.kt
@@ -1,12 +1,15 @@
package com.g00fy2.developerwidget.activities.appmanager
+import android.graphics.drawable.InsetDrawable
+import android.os.Build.VERSION
+import android.os.Build.VERSION_CODES
import android.view.LayoutInflater
import android.view.ViewGroup
import androidx.recyclerview.widget.RecyclerView
import com.g00fy2.developerwidget.R
import com.g00fy2.developerwidget.base.BaseAdapter
import com.g00fy2.developerwidget.base.BaseViewHolder
-import com.g00fy2.developerwidget.utils.FilterUtils
+import com.g00fy2.developerwidget.ktx.filterPackageName
import kotlinx.android.synthetic.main.app_item.*
class AppsAdapter : BaseAdapter(AppsDiffUtilsCallback()) {
@@ -31,6 +34,9 @@ class AppsAdapter : BaseAdapter(AppsDiffUtilsCallback()
app_version_textview.text =
String.format(itemView.context.getString(R.string.apk_version), appInfo.versionName, appInfo.versionCode)
app_icon_imageview.setImageDrawable(appInfo.appIcon)
+ if (VERSION.SDK_INT >= VERSION_CODES.O) {
+ app_icon_imageview.setBackgroundResource(if (appInfo.appIcon is InsetDrawable) R.drawable.bg_adaptive_launcher_icon else 0)
+ }
}
}
@@ -48,11 +54,7 @@ class AppsAdapter : BaseAdapter(AppsDiffUtilsCallback()
if (filter.isEmpty()) {
resetAppFilter()
} else {
- val filteredItems = ArrayList()
- for (i in itemsCopy) {
- if (FilterUtils.filterValue(i.packageName, filter)) filteredItems.add(i)
- }
- submitList(filteredItems)
+ submitList(itemsCopy.filter { it.filterPackageName(filter) })
}
}
@@ -60,11 +62,7 @@ class AppsAdapter : BaseAdapter(AppsDiffUtilsCallback()
if (filters.isEmpty()) {
resetAppFilter()
} else {
- val filteredItems = ArrayList()
- for (i in itemsCopy) {
- if (FilterUtils.filterValueByCollection(i.packageName, filters)) filteredItems.add(i)
- }
- submitList(filteredItems)
+ submitList(itemsCopy.filter { it.filterPackageName(filters) })
}
}
diff --git a/app/src/main/kotlin/com/g00fy2/developerwidget/activities/widgetconfig/WidgetConfigActivity.kt b/app/src/main/kotlin/com/g00fy2/developerwidget/activities/widgetconfig/WidgetConfigActivity.kt
index ccd1a93e..3e63e9f6 100644
--- a/app/src/main/kotlin/com/g00fy2/developerwidget/activities/widgetconfig/WidgetConfigActivity.kt
+++ b/app/src/main/kotlin/com/g00fy2/developerwidget/activities/widgetconfig/WidgetConfigActivity.kt
@@ -33,9 +33,9 @@ import com.g00fy2.developerwidget.activities.about.AboutActivity
import com.g00fy2.developerwidget.base.BaseActivity
import com.g00fy2.developerwidget.base.BaseContract.BasePresenter
import com.g00fy2.developerwidget.data.DeviceDataItem
+import com.g00fy2.developerwidget.ktx.hideKeyboard
+import com.g00fy2.developerwidget.ktx.showKeyboard
import com.g00fy2.developerwidget.receiver.widget.WidgetProviderImpl
-import com.g00fy2.developerwidget.utils.hideKeyboard
-import com.g00fy2.developerwidget.utils.showKeyboard
import kotlinx.android.synthetic.main.activity_widget_config.*
import javax.inject.Inject
diff --git a/app/src/main/kotlin/com/g00fy2/developerwidget/activities/widgetconfig/WidgetConfigActivityModule.kt b/app/src/main/kotlin/com/g00fy2/developerwidget/activities/widgetconfig/WidgetConfigActivityModule.kt
index 67d17f09..082a7339 100644
--- a/app/src/main/kotlin/com/g00fy2/developerwidget/activities/widgetconfig/WidgetConfigActivityModule.kt
+++ b/app/src/main/kotlin/com/g00fy2/developerwidget/activities/widgetconfig/WidgetConfigActivityModule.kt
@@ -4,7 +4,7 @@ import android.appwidget.AppWidgetManager
import com.g00fy2.developerwidget.base.BaseActivity
import com.g00fy2.developerwidget.di.ActivityModule
import com.g00fy2.developerwidget.di.annotations.ActivityScope
-import com.g00fy2.developerwidget.utils.WIDGET_ID
+import com.g00fy2.developerwidget.di.annotations.WIDGET_ID
import dagger.Binds
import dagger.Module
import dagger.Provides
diff --git a/app/src/main/kotlin/com/g00fy2/developerwidget/activities/widgetconfig/WidgetConfigPresenterImpl.kt b/app/src/main/kotlin/com/g00fy2/developerwidget/activities/widgetconfig/WidgetConfigPresenterImpl.kt
index f4f0c9b0..e0a1a97e 100644
--- a/app/src/main/kotlin/com/g00fy2/developerwidget/activities/widgetconfig/WidgetConfigPresenterImpl.kt
+++ b/app/src/main/kotlin/com/g00fy2/developerwidget/activities/widgetconfig/WidgetConfigPresenterImpl.kt
@@ -13,7 +13,6 @@ import com.g00fy2.developerwidget.data.DeviceDataSource
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext
-import timber.log.Timber
import javax.inject.Inject
class WidgetConfigPresenterImpl @Inject constructor() : BasePresenterImpl(),
diff --git a/app/src/main/kotlin/com/g00fy2/developerwidget/base/BaseActivity.kt b/app/src/main/kotlin/com/g00fy2/developerwidget/base/BaseActivity.kt
index 83e7b710..5fa4d5af 100644
--- a/app/src/main/kotlin/com/g00fy2/developerwidget/base/BaseActivity.kt
+++ b/app/src/main/kotlin/com/g00fy2/developerwidget/base/BaseActivity.kt
@@ -7,13 +7,9 @@ import android.os.Bundle
import android.view.View
import android.view.ViewGroup
import android.view.Window
-import android.view.inputmethod.InputMethodManager
import androidx.annotation.LayoutRes
import androidx.appcompat.app.AppCompatActivity
-import androidx.core.content.getSystemService
import com.g00fy2.developerwidget.controllers.DayNightController
-import com.g00fy2.developerwidget.utils.DIALOG_ACTIVITY_HEIGHT_FACTOR
-import com.g00fy2.developerwidget.utils.DIALOG_ACTIVITY_WIDTH_FACTOR
import dagger.android.AndroidInjection
import timber.log.Timber
import javax.inject.Inject
@@ -32,8 +28,8 @@ abstract class BaseActivity(@LayoutRes contentLayoutId: Int, private val isDialo
requestWindowFeature(Window.FEATURE_NO_TITLE)
super.onCreate(savedInstanceState)
- val width = (resources.displayMetrics.widthPixels * DIALOG_ACTIVITY_WIDTH_FACTOR).toInt()
- val height = (resources.displayMetrics.heightPixels * DIALOG_ACTIVITY_HEIGHT_FACTOR).toInt()
+ val width = (resources.displayMetrics.widthPixels * 0.95).toInt()
+ val height = (resources.displayMetrics.heightPixels * 0.80).toInt()
window.setLayout(width, height)
} else {
super.onCreate(savedInstanceState)
diff --git a/app/src/main/kotlin/com/g00fy2/developerwidget/controllers/DayNightControllerImpl.kt b/app/src/main/kotlin/com/g00fy2/developerwidget/controllers/DayNightControllerImpl.kt
index c5ac5749..5691a5dd 100644
--- a/app/src/main/kotlin/com/g00fy2/developerwidget/controllers/DayNightControllerImpl.kt
+++ b/app/src/main/kotlin/com/g00fy2/developerwidget/controllers/DayNightControllerImpl.kt
@@ -7,8 +7,8 @@ import android.os.Build.VERSION_CODES
import androidx.appcompat.app.AppCompatDelegate
import androidx.core.content.edit
import com.g00fy2.developerwidget.R
+import com.g00fy2.developerwidget.di.annotations.APPLICATION
import com.g00fy2.developerwidget.receiver.widget.WidgetProviderImpl
-import com.g00fy2.developerwidget.utils.APPLICATION
import javax.inject.Inject
import javax.inject.Named
diff --git a/app/src/main/kotlin/com/g00fy2/developerwidget/controllers/IntentControllerImpl.kt b/app/src/main/kotlin/com/g00fy2/developerwidget/controllers/IntentControllerImpl.kt
index 50f12af2..69181dab 100644
--- a/app/src/main/kotlin/com/g00fy2/developerwidget/controllers/IntentControllerImpl.kt
+++ b/app/src/main/kotlin/com/g00fy2/developerwidget/controllers/IntentControllerImpl.kt
@@ -10,9 +10,9 @@ import android.provider.Settings
import androidx.core.net.toUri
import com.g00fy2.developerwidget.BuildConfig
import com.g00fy2.developerwidget.R
+import com.g00fy2.developerwidget.activities.about.DEVELOPER_EMAIL
import com.g00fy2.developerwidget.activities.apkinstall.ApkFile
-import com.g00fy2.developerwidget.utils.ACTIVITY
-import com.g00fy2.developerwidget.utils.DEVELOPER_EMAIL
+import com.g00fy2.developerwidget.di.annotations.ACTIVITY
import timber.log.Timber
import javax.inject.Inject
import javax.inject.Named
diff --git a/app/src/main/kotlin/com/g00fy2/developerwidget/controllers/PermissionControllerImpl.kt b/app/src/main/kotlin/com/g00fy2/developerwidget/controllers/PermissionControllerImpl.kt
index 861a5914..bb9d8386 100644
--- a/app/src/main/kotlin/com/g00fy2/developerwidget/controllers/PermissionControllerImpl.kt
+++ b/app/src/main/kotlin/com/g00fy2/developerwidget/controllers/PermissionControllerImpl.kt
@@ -7,7 +7,7 @@ import android.content.pm.PackageManager
import android.os.Build.VERSION
import android.os.Build.VERSION_CODES
import androidx.core.content.ContextCompat
-import com.g00fy2.developerwidget.utils.ACTIVITY
+import com.g00fy2.developerwidget.di.annotations.ACTIVITY
import javax.inject.Inject
import javax.inject.Named
diff --git a/app/src/main/kotlin/com/g00fy2/developerwidget/controllers/StorageDirsControllerImpl.kt b/app/src/main/kotlin/com/g00fy2/developerwidget/controllers/StorageDirsControllerImpl.kt
index 36781156..0ede7c88 100644
--- a/app/src/main/kotlin/com/g00fy2/developerwidget/controllers/StorageDirsControllerImpl.kt
+++ b/app/src/main/kotlin/com/g00fy2/developerwidget/controllers/StorageDirsControllerImpl.kt
@@ -5,7 +5,7 @@ import android.content.Context
import android.os.Build.VERSION
import android.os.Build.VERSION_CODES
import android.os.Environment
-import com.g00fy2.developerwidget.utils.ACTIVITY
+import com.g00fy2.developerwidget.di.annotations.ACTIVITY
import timber.log.Timber
import java.io.File
import java.io.File.pathSeparator
diff --git a/app/src/main/kotlin/com/g00fy2/developerwidget/controllers/StringControllerImpl.kt b/app/src/main/kotlin/com/g00fy2/developerwidget/controllers/StringControllerImpl.kt
index 44d94898..aa2df2f8 100644
--- a/app/src/main/kotlin/com/g00fy2/developerwidget/controllers/StringControllerImpl.kt
+++ b/app/src/main/kotlin/com/g00fy2/developerwidget/controllers/StringControllerImpl.kt
@@ -1,7 +1,7 @@
package com.g00fy2.developerwidget.controllers
import android.content.Context
-import com.g00fy2.developerwidget.utils.ACTIVITY
+import com.g00fy2.developerwidget.di.annotations.ACTIVITY
import javax.inject.Inject
import javax.inject.Named
diff --git a/app/src/main/kotlin/com/g00fy2/developerwidget/controllers/ToastControllerImpl.kt b/app/src/main/kotlin/com/g00fy2/developerwidget/controllers/ToastControllerImpl.kt
index bb554a44..e345a95e 100644
--- a/app/src/main/kotlin/com/g00fy2/developerwidget/controllers/ToastControllerImpl.kt
+++ b/app/src/main/kotlin/com/g00fy2/developerwidget/controllers/ToastControllerImpl.kt
@@ -2,7 +2,7 @@ package com.g00fy2.developerwidget.controllers
import android.content.Context
import android.widget.Toast
-import com.g00fy2.developerwidget.utils.APPLICATION
+import com.g00fy2.developerwidget.di.annotations.APPLICATION
import javax.inject.Inject
import javax.inject.Named
diff --git a/app/src/main/kotlin/com/g00fy2/developerwidget/controllers/WidgetPreferenceControllerImpl.kt b/app/src/main/kotlin/com/g00fy2/developerwidget/controllers/WidgetPreferenceControllerImpl.kt
index 44ee6daa..dc566074 100644
--- a/app/src/main/kotlin/com/g00fy2/developerwidget/controllers/WidgetPreferenceControllerImpl.kt
+++ b/app/src/main/kotlin/com/g00fy2/developerwidget/controllers/WidgetPreferenceControllerImpl.kt
@@ -2,8 +2,8 @@ package com.g00fy2.developerwidget.controllers
import android.content.Context
import androidx.core.content.edit
-import com.g00fy2.developerwidget.utils.ACTIVITY
-import com.g00fy2.developerwidget.utils.WIDGET_ID
+import com.g00fy2.developerwidget.di.annotations.ACTIVITY
+import com.g00fy2.developerwidget.di.annotations.WIDGET_ID
import javax.inject.Inject
import javax.inject.Named
diff --git a/app/src/main/kotlin/com/g00fy2/developerwidget/data/DeviceDataSourceImpl.kt b/app/src/main/kotlin/com/g00fy2/developerwidget/data/DeviceDataSourceImpl.kt
index fcecc6e9..a11b1462 100644
--- a/app/src/main/kotlin/com/g00fy2/developerwidget/data/DeviceDataSourceImpl.kt
+++ b/app/src/main/kotlin/com/g00fy2/developerwidget/data/DeviceDataSourceImpl.kt
@@ -10,7 +10,7 @@ import com.g00fy2.developerwidget.data.device.hardwarefeature.HardwareFeaturePro
import com.g00fy2.developerwidget.data.device.ram.RamDataProvider
import com.g00fy2.developerwidget.data.device.system.SystemDataProvider
import com.g00fy2.developerwidget.data.device.systemapps.SystemAppsDataProvider
-import com.g00fy2.developerwidget.utils.APPLICATION
+import com.g00fy2.developerwidget.di.annotations.APPLICATION
import javax.inject.Inject
import javax.inject.Named
diff --git a/app/src/main/kotlin/com/g00fy2/developerwidget/data/WidgetsPreferencesDataSourceImpl.kt b/app/src/main/kotlin/com/g00fy2/developerwidget/data/WidgetsPreferencesDataSourceImpl.kt
index 939c8725..2641f032 100644
--- a/app/src/main/kotlin/com/g00fy2/developerwidget/data/WidgetsPreferencesDataSourceImpl.kt
+++ b/app/src/main/kotlin/com/g00fy2/developerwidget/data/WidgetsPreferencesDataSourceImpl.kt
@@ -3,7 +3,7 @@ package com.g00fy2.developerwidget.data
import android.content.Context
import android.util.SparseArray
import com.g00fy2.developerwidget.controllers.WidgetPreferenceControllerImpl
-import com.g00fy2.developerwidget.utils.APPLICATION
+import com.g00fy2.developerwidget.di.annotations.APPLICATION
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.Job
diff --git a/app/src/main/kotlin/com/g00fy2/developerwidget/data/device/display/DisplayDataProvider.kt b/app/src/main/kotlin/com/g00fy2/developerwidget/data/device/display/DisplayDataProvider.kt
index c71fd151..5223e3f0 100644
--- a/app/src/main/kotlin/com/g00fy2/developerwidget/data/device/display/DisplayDataProvider.kt
+++ b/app/src/main/kotlin/com/g00fy2/developerwidget/data/device/display/DisplayDataProvider.kt
@@ -7,8 +7,6 @@ import android.util.DisplayMetrics
import android.view.WindowManager
import androidx.core.content.getSystemService
import java.text.NumberFormat
-import kotlin.math.max
-import kotlin.math.min
import kotlin.math.roundToInt
class DisplayDataProvider {
diff --git a/app/src/main/kotlin/com/g00fy2/developerwidget/di/ActivityModule.kt b/app/src/main/kotlin/com/g00fy2/developerwidget/di/ActivityModule.kt
index 2e48419c..3231410b 100644
--- a/app/src/main/kotlin/com/g00fy2/developerwidget/di/ActivityModule.kt
+++ b/app/src/main/kotlin/com/g00fy2/developerwidget/di/ActivityModule.kt
@@ -2,8 +2,8 @@ package com.g00fy2.developerwidget.di
import android.content.Context
import com.g00fy2.developerwidget.base.BaseActivity
+import com.g00fy2.developerwidget.di.annotations.ACTIVITY
import com.g00fy2.developerwidget.di.annotations.ActivityScope
-import com.g00fy2.developerwidget.utils.ACTIVITY
import dagger.Binds
import dagger.Module
import javax.inject.Named
diff --git a/app/src/main/kotlin/com/g00fy2/developerwidget/di/AppModule.kt b/app/src/main/kotlin/com/g00fy2/developerwidget/di/AppModule.kt
index d7c865fa..5e4c9683 100644
--- a/app/src/main/kotlin/com/g00fy2/developerwidget/di/AppModule.kt
+++ b/app/src/main/kotlin/com/g00fy2/developerwidget/di/AppModule.kt
@@ -2,7 +2,7 @@ package com.g00fy2.developerwidget.di
import android.content.Context
import com.g00fy2.developerwidget.DevWidgetApp
-import com.g00fy2.developerwidget.utils.APPLICATION
+import com.g00fy2.developerwidget.di.annotations.APPLICATION
import dagger.Binds
import dagger.Module
import javax.inject.Named
diff --git a/app/src/main/kotlin/com/g00fy2/developerwidget/di/annotations/ScopeNames.kt b/app/src/main/kotlin/com/g00fy2/developerwidget/di/annotations/ScopeNames.kt
new file mode 100644
index 00000000..91afaa44
--- /dev/null
+++ b/app/src/main/kotlin/com/g00fy2/developerwidget/di/annotations/ScopeNames.kt
@@ -0,0 +1,5 @@
+package com.g00fy2.developerwidget.di.annotations
+
+const val ACTIVITY = "activity"
+const val APPLICATION = "application"
+const val WIDGET_ID = "widgetId"
\ No newline at end of file
diff --git a/app/src/main/kotlin/com/g00fy2/developerwidget/ktx/AppInfoExtensions.kt b/app/src/main/kotlin/com/g00fy2/developerwidget/ktx/AppInfoExtensions.kt
new file mode 100644
index 00000000..05538688
--- /dev/null
+++ b/app/src/main/kotlin/com/g00fy2/developerwidget/ktx/AppInfoExtensions.kt
@@ -0,0 +1,25 @@
+package com.g00fy2.developerwidget.ktx
+
+import com.g00fy2.developerwidget.activities.appmanager.AppInfo
+
+fun AppInfo.filterPackageName(filter: String): Boolean {
+ var result = false
+ val filterInputs = filter.split("*")
+ var tempValue = packageName
+ for (i in filterInputs) {
+ if (tempValue.contains(i, true)) {
+ tempValue = tempValue.substringAfter(i)
+ result = true
+ } else {
+ return false
+ }
+ }
+ return result
+}
+
+fun AppInfo.filterPackageName(filterEntries: Collection): Boolean {
+ for (i in filterEntries) {
+ if (filterPackageName(i)) return true
+ }
+ return false
+}
diff --git a/app/src/main/kotlin/com/g00fy2/developerwidget/utils/EditTextExtensions.kt b/app/src/main/kotlin/com/g00fy2/developerwidget/ktx/EditTextExtensions.kt
similarity index 90%
rename from app/src/main/kotlin/com/g00fy2/developerwidget/utils/EditTextExtensions.kt
rename to app/src/main/kotlin/com/g00fy2/developerwidget/ktx/EditTextExtensions.kt
index 4622cc30..7c451df2 100644
--- a/app/src/main/kotlin/com/g00fy2/developerwidget/utils/EditTextExtensions.kt
+++ b/app/src/main/kotlin/com/g00fy2/developerwidget/ktx/EditTextExtensions.kt
@@ -1,4 +1,4 @@
-package com.g00fy2.developerwidget.utils
+package com.g00fy2.developerwidget.ktx
import android.view.inputmethod.InputMethodManager
import android.widget.EditText
diff --git a/app/src/main/kotlin/com/g00fy2/developerwidget/ktx/ViewGroupExtensions.kt b/app/src/main/kotlin/com/g00fy2/developerwidget/ktx/ViewGroupExtensions.kt
new file mode 100644
index 00000000..f3e054ff
--- /dev/null
+++ b/app/src/main/kotlin/com/g00fy2/developerwidget/ktx/ViewGroupExtensions.kt
@@ -0,0 +1,51 @@
+package com.g00fy2.developerwidget.ktx
+
+import android.animation.TimeInterpolator
+import android.animation.ValueAnimator
+import android.view.View
+import android.view.ViewGroup
+import androidx.core.animation.doOnEnd
+import com.g00fy2.developerwidget.R
+
+fun ViewGroup.expand(fade: Boolean = false, easing: TimeInterpolator? = null) = this.apply {
+ val params = layoutParams as ViewGroup.MarginLayoutParams
+ params.topMargin = -height
+ requestLayout()
+ if (fade) alpha = 0f
+ visibility = View.VISIBLE
+
+ val viewHeight = height
+ ValueAnimator.ofInt(-viewHeight, 0).apply {
+ addUpdateListener {
+ (it.animatedValue as Int).let { value ->
+ params.topMargin = value
+ if (fade) alpha = (viewHeight + value) / viewHeight.toFloat()
+ }
+ requestLayout()
+ }
+ easing?.let { easing -> interpolator = easing }
+ duration = resources.getInteger(R.integer.animation_duration).toLong()
+ }.start()
+}
+
+fun ViewGroup.collapse(fade: Boolean = false, easing: TimeInterpolator? = null) = this.apply {
+ val params = layoutParams as ViewGroup.MarginLayoutParams
+ params.topMargin = 0
+ requestLayout()
+ if (fade) alpha = 1f
+ visibility = View.VISIBLE
+
+ val viewHeight = height
+ ValueAnimator.ofInt(0, -viewHeight).apply {
+ addUpdateListener {
+ (it.animatedValue as Int).let { value ->
+ params.topMargin = value
+ if (fade) alpha = (viewHeight + value) / viewHeight.toFloat()
+ }
+ requestLayout()
+ }
+ easing?.let { easing -> interpolator = easing }
+ duration = resources.getInteger(R.integer.animation_duration).toLong()
+ doOnEnd { visibility = View.GONE }
+ }.start()
+}
\ No newline at end of file
diff --git a/app/src/main/kotlin/com/g00fy2/developerwidget/utils/AnimationUtils.kt b/app/src/main/kotlin/com/g00fy2/developerwidget/utils/AnimationUtils.kt
deleted file mode 100644
index 227bc87b..00000000
--- a/app/src/main/kotlin/com/g00fy2/developerwidget/utils/AnimationUtils.kt
+++ /dev/null
@@ -1,61 +0,0 @@
-package com.g00fy2.developerwidget.utils
-
-import android.animation.TimeInterpolator
-import android.animation.ValueAnimator
-import android.view.View
-import android.widget.LinearLayout
-import androidx.core.animation.doOnEnd
-import com.g00fy2.developerwidget.R
-
-class AnimationUtils {
-
- companion object {
-
- fun expandView(v: View, fade: Boolean = false, easing: TimeInterpolator? = null) {
- v.apply {
- val params = layoutParams as LinearLayout.LayoutParams
- params.topMargin = -height
- requestLayout()
- if (fade) alpha = 0f
- visibility = View.VISIBLE
-
- val viewHeight = height
- ValueAnimator.ofInt(-viewHeight, 0).apply {
- addUpdateListener {
- (it.animatedValue as Int).let { value ->
- params.topMargin = value
- if (fade) alpha = (viewHeight + value) / viewHeight.toFloat()
- }
- requestLayout()
- }
- easing?.let { easing -> interpolator = easing }
- duration = resources.getInteger(R.integer.animation_duration).toLong()
- }.start()
- }
- }
-
- fun collapseView(v: View, fade: Boolean = false, easing: TimeInterpolator? = null) {
- v.apply {
- val params = layoutParams as LinearLayout.LayoutParams
- params.topMargin = 0
- requestLayout()
- if (fade) alpha = 1f
- visibility = View.VISIBLE
-
- val viewHeight = height
- ValueAnimator.ofInt(0, -viewHeight).apply {
- addUpdateListener {
- (it.animatedValue as Int).let { value ->
- params.topMargin = value
- if (fade) alpha = (viewHeight + value) / viewHeight.toFloat()
- }
- requestLayout()
- }
- easing?.let { easing -> interpolator = easing }
- duration = resources.getInteger(R.integer.animation_duration).toLong()
- doOnEnd { visibility = View.GONE }
- }.start()
- }
- }
- }
-}
\ No newline at end of file
diff --git a/app/src/main/kotlin/com/g00fy2/developerwidget/utils/FilterUtils.kt b/app/src/main/kotlin/com/g00fy2/developerwidget/utils/FilterUtils.kt
deleted file mode 100644
index 8bf6898a..00000000
--- a/app/src/main/kotlin/com/g00fy2/developerwidget/utils/FilterUtils.kt
+++ /dev/null
@@ -1,29 +0,0 @@
-package com.g00fy2.developerwidget.utils
-
-class FilterUtils {
-
- companion object {
-
- fun filterValue(value: String, filter: String): Boolean {
- var result = false
- val filterInputs = filter.split("*")
- var tempValue = value
- for (i in filterInputs) {
- if (tempValue.contains(i, true)) {
- tempValue = tempValue.substringAfter(i)
- result = true
- } else {
- return false
- }
- }
- return result
- }
-
- fun filterValueByCollection(value: String, filterEntries: Collection): Boolean {
- for (i in filterEntries) {
- if (filterValue(value, i)) return true
- }
- return false
- }
- }
-}
\ No newline at end of file
diff --git a/app/src/main/res/drawable-night/filter_edittext_background.xml b/app/src/main/res/drawable-night/bg_filter_edittext.xml
similarity index 100%
rename from app/src/main/res/drawable-night/filter_edittext_background.xml
rename to app/src/main/res/drawable-night/bg_filter_edittext.xml
diff --git a/app/src/main/res/drawable-v26/bg_adaptive_launcher_icon.xml b/app/src/main/res/drawable-v26/bg_adaptive_launcher_icon.xml
new file mode 100644
index 00000000..0198e9ef
--- /dev/null
+++ b/app/src/main/res/drawable-v26/bg_adaptive_launcher_icon.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/filter_edittext_background.xml b/app/src/main/res/drawable/bg_filter_edittext.xml
similarity index 100%
rename from app/src/main/res/drawable/filter_edittext_background.xml
rename to app/src/main/res/drawable/bg_filter_edittext.xml
diff --git a/app/src/main/res/layout/activity_apps.xml b/app/src/main/res/layout/activity_apps.xml
index c5b0b1eb..2d19e604 100644
--- a/app/src/main/res/layout/activity_apps.xml
+++ b/app/src/main/res/layout/activity_apps.xml
@@ -4,6 +4,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto"
+ xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"
>
@@ -68,7 +69,7 @@
android:layout_marginBottom="2dp"
android:layout_marginLeft="@dimen/filter_input_inset"
android:layout_marginRight="@dimen/filter_input_inset"
- android:background="@drawable/filter_edittext_background"
+ android:background="@drawable/bg_filter_edittext"
android:clickable="true"
android:drawablePadding="8dp"
android:focusable="true"
@@ -97,10 +98,34 @@
-
+ android:layout_width="wrap_content"
+ android:layout_height="40dp"
+ android:orientation="horizontal"
+ android:paddingLeft="@dimen/action_bar_inset"
+ android:paddingRight="@dimen/action_bar_inset"
+ tools:ignore="UseCompoundDrawables"
+ >
+
+
+
-
-
-
-
\ No newline at end of file
diff --git a/app/src/main/res/values-night-v29/colors.xml b/app/src/main/res/values-night-v29/colors.xml
index 7229c0b3..b602b262 100644
--- a/app/src/main/res/values-night-v29/colors.xml
+++ b/app/src/main/res/values-night-v29/colors.xml
@@ -4,6 +4,7 @@
@color/black
#1f1f1f
+ @color/black
@color/white
diff --git a/app/src/main/res/values-night/colors.xml b/app/src/main/res/values-night/colors.xml
index 4681e521..33170474 100644
--- a/app/src/main/res/values-night/colors.xml
+++ b/app/src/main/res/values-night/colors.xml
@@ -19,4 +19,5 @@
@color/nightGrey
#e4e4e5
+ #33000000
diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml
index b48eec83..c66038b4 100644
--- a/app/src/main/res/values/colors.xml
+++ b/app/src/main/res/values/colors.xml
@@ -33,6 +33,7 @@
@color/black
@color/lighterGrey
+ #33808080
#212121
#262728
diff --git a/build.gradle b/build.gradle
index 68d5263f..1f530fc3 100644
--- a/build.gradle
+++ b/build.gradle
@@ -1,10 +1,10 @@
buildscript {
ext {
- // SDK and tools
+ // SDK and plugins
compileSdkVersion = 29
minSdkVersion = 14
targetSdkVersion = 29
- androidGradleVersion = '3.5.0-rc01'
+ androidGradleVersion = '3.5.0-rc03'
gradleScanVersion = '2.3'
versioningPluginVersion = '1.0.0'
@@ -12,10 +12,10 @@ buildscript {
kotlinVersion = '1.3.41'
coroutinesVersion = '1.2.2'
appcompatVersion = '1.1.0-rc01'
- coreKtxVersion = '1.2.0-alpha02'
- activityVersion = '1.1.0-alpha01'
- materialVersion = '1.1.0-alpha08'
- recyclerviewVersion = '1.1.0-beta01'
+ coreKtxVersion = '1.2.0-alpha03'
+ activityVersion = '1.1.0-alpha02'
+ materialVersion = '1.1.0-alpha09'
+ recyclerviewVersion = '1.1.0-beta02'
vectorDrawableVersion = '1.1.0-rc01'
constraintlayoutVersion = '2.0.0-beta2'
timberVersion = '4.7.1'