diff --git a/app/build.gradle b/app/build.gradle
index 3e07d601f..bdcff688b 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -43,30 +43,20 @@ android {
dimension "version"
applicationIdSuffix = ".libre"
buildConfigField "String", "BUILD_VERSION", "\"libre\""
- buildConfigField "boolean", "FULL_VERSION", "true"
buildConfigField "boolean", "CLOSED_STORE", "false"
buildConfigField "String[]", "STYLES_DISABLED",
"{\"KeepassDXStyle_Red\"," +
"\"KeepassDXStyle_Red_Night\"," +
+ "\"KeepassDXStyle_Reply\"," +
+ "\"KeepassDXStyle_Reply_Night\"," +
"\"KeepassDXStyle_Purple\"," +
"\"KeepassDXStyle_Purple_Dark\"}"
buildConfigField "String[]", "ICON_PACKS_DISABLED", "{}"
}
- pro {
- dimension "version"
- applicationIdSuffix = ".pro"
- buildConfigField "String", "BUILD_VERSION", "\"pro\""
- buildConfigField "boolean", "FULL_VERSION", "true"
- buildConfigField "boolean", "CLOSED_STORE", "true"
- buildConfigField "String[]", "STYLES_DISABLED", "{}"
- buildConfigField "String[]", "ICON_PACKS_DISABLED", "{}"
- manifestPlaceholders = [ googleAndroidBackupAPIKey:"AEdPqrEAAAAIZiXvrQCzSV9LNI6-p7cjTKENZLHIrz_zaqZuQQ" ]
- }
free {
dimension "version"
applicationIdSuffix = ".free"
buildConfigField "String", "BUILD_VERSION", "\"free\""
- buildConfigField "boolean", "FULL_VERSION", "false"
buildConfigField "boolean", "CLOSED_STORE", "true"
buildConfigField "String[]", "STYLES_DISABLED",
"{\"KeepassDXStyle_Simple\"," +
@@ -86,7 +76,6 @@ android {
sourceSets {
libre.res.srcDir 'src/libre/res'
- pro.res.srcDir 'src/pro/res'
free.res.srcDir 'src/free/res'
}
diff --git a/app/src/free/res/drawable-v24/ic_launcher_foreground.xml b/app/src/free/res/drawable-v24/ic_launcher_foreground.xml
index b54c710e3..46a88724e 100644
--- a/app/src/free/res/drawable-v24/ic_launcher_foreground.xml
+++ b/app/src/free/res/drawable-v24/ic_launcher_foreground.xml
@@ -1,61 +1,31 @@
+ android:height="108dp"
+ android:viewportWidth="120"
+ android:viewportHeight="120">
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ android:translateX="6"
+ android:translateY="8">
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/free/res/drawable/ic_launcher_foreground.png b/app/src/free/res/drawable/ic_launcher_foreground.png
index 7a0813cc8..40a67c4a2 100644
Binary files a/app/src/free/res/drawable/ic_launcher_foreground.png and b/app/src/free/res/drawable/ic_launcher_foreground.png differ
diff --git a/app/src/free/res/mipmap-hdpi/ic_launcher.png b/app/src/free/res/mipmap-hdpi/ic_launcher.png
index 76e5e48f6..e792dc909 100644
Binary files a/app/src/free/res/mipmap-hdpi/ic_launcher.png and b/app/src/free/res/mipmap-hdpi/ic_launcher.png differ
diff --git a/app/src/free/res/mipmap-hdpi/ic_launcher_round.png b/app/src/free/res/mipmap-hdpi/ic_launcher_round.png
index 6dd273d9c..5c8d715fb 100644
Binary files a/app/src/free/res/mipmap-hdpi/ic_launcher_round.png and b/app/src/free/res/mipmap-hdpi/ic_launcher_round.png differ
diff --git a/app/src/free/res/mipmap-ldpi/ic_launcher.png b/app/src/free/res/mipmap-ldpi/ic_launcher.png
index e49de1a9b..d4c8e7b3a 100644
Binary files a/app/src/free/res/mipmap-ldpi/ic_launcher.png and b/app/src/free/res/mipmap-ldpi/ic_launcher.png differ
diff --git a/app/src/free/res/mipmap-ldpi/ic_launcher_round.png b/app/src/free/res/mipmap-ldpi/ic_launcher_round.png
index 9d70f747f..88506ddde 100644
Binary files a/app/src/free/res/mipmap-ldpi/ic_launcher_round.png and b/app/src/free/res/mipmap-ldpi/ic_launcher_round.png differ
diff --git a/app/src/free/res/mipmap-mdpi/ic_launcher.png b/app/src/free/res/mipmap-mdpi/ic_launcher.png
index fd7a390fb..7553e4bac 100644
Binary files a/app/src/free/res/mipmap-mdpi/ic_launcher.png and b/app/src/free/res/mipmap-mdpi/ic_launcher.png differ
diff --git a/app/src/free/res/mipmap-mdpi/ic_launcher_round.png b/app/src/free/res/mipmap-mdpi/ic_launcher_round.png
index 939600a10..53df2c24d 100644
Binary files a/app/src/free/res/mipmap-mdpi/ic_launcher_round.png and b/app/src/free/res/mipmap-mdpi/ic_launcher_round.png differ
diff --git a/app/src/free/res/mipmap-xhdpi/ic_launcher.png b/app/src/free/res/mipmap-xhdpi/ic_launcher.png
index 5d235e5fe..6c1d90054 100644
Binary files a/app/src/free/res/mipmap-xhdpi/ic_launcher.png and b/app/src/free/res/mipmap-xhdpi/ic_launcher.png differ
diff --git a/app/src/free/res/mipmap-xhdpi/ic_launcher_round.png b/app/src/free/res/mipmap-xhdpi/ic_launcher_round.png
index 5d59bcda8..93c1b1aa8 100644
Binary files a/app/src/free/res/mipmap-xhdpi/ic_launcher_round.png and b/app/src/free/res/mipmap-xhdpi/ic_launcher_round.png differ
diff --git a/app/src/free/res/mipmap-xxhdpi/ic_launcher.png b/app/src/free/res/mipmap-xxhdpi/ic_launcher.png
index dcb6bade9..bf77a76a3 100644
Binary files a/app/src/free/res/mipmap-xxhdpi/ic_launcher.png and b/app/src/free/res/mipmap-xxhdpi/ic_launcher.png differ
diff --git a/app/src/free/res/mipmap-xxhdpi/ic_launcher_round.png b/app/src/free/res/mipmap-xxhdpi/ic_launcher_round.png
index 1437e94ae..9a1276f78 100644
Binary files a/app/src/free/res/mipmap-xxhdpi/ic_launcher_round.png and b/app/src/free/res/mipmap-xxhdpi/ic_launcher_round.png differ
diff --git a/app/src/free/res/mipmap-xxxhdpi/ic_launcher.png b/app/src/free/res/mipmap-xxxhdpi/ic_launcher.png
index 8d7c1dc50..4fb2628e2 100644
Binary files a/app/src/free/res/mipmap-xxxhdpi/ic_launcher.png and b/app/src/free/res/mipmap-xxxhdpi/ic_launcher.png differ
diff --git a/app/src/free/res/mipmap-xxxhdpi/ic_launcher_round.png b/app/src/free/res/mipmap-xxxhdpi/ic_launcher_round.png
index 0a43687a2..9ac93e89a 100644
Binary files a/app/src/free/res/mipmap-xxxhdpi/ic_launcher_round.png and b/app/src/free/res/mipmap-xxxhdpi/ic_launcher_round.png differ
diff --git a/app/src/libre/res/drawable-v24/ic_launcher_foreground.xml b/app/src/libre/res/drawable-v24/ic_launcher_foreground.xml
index 5d5622fcb..844d17b36 100644
--- a/app/src/libre/res/drawable-v24/ic_launcher_foreground.xml
+++ b/app/src/libre/res/drawable-v24/ic_launcher_foreground.xml
@@ -1,61 +1,31 @@
+ android:height="108dp"
+ android:viewportWidth="120"
+ android:viewportHeight="120">
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ android:translateX="6"
+ android:translateY="8">
+
+
+
+
+
+
diff --git a/app/src/libre/res/drawable/ic_launcher_foreground.png b/app/src/libre/res/drawable/ic_launcher_foreground.png
index bc0b751b7..27a417000 100644
Binary files a/app/src/libre/res/drawable/ic_launcher_foreground.png and b/app/src/libre/res/drawable/ic_launcher_foreground.png differ
diff --git a/app/src/libre/res/mipmap-anydpi-v26/ic_launcher.xml b/app/src/libre/res/mipmap-anydpi-v26/ic_launcher.xml
deleted file mode 100644
index b2e3062c2..000000000
--- a/app/src/libre/res/mipmap-anydpi-v26/ic_launcher.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
-
-
\ No newline at end of file
diff --git a/app/src/libre/res/mipmap-anydpi-v26/ic_launcher_round.xml b/app/src/libre/res/mipmap-anydpi-v26/ic_launcher_round.xml
deleted file mode 100644
index b2e3062c2..000000000
--- a/app/src/libre/res/mipmap-anydpi-v26/ic_launcher_round.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
-
-
\ No newline at end of file
diff --git a/app/src/libre/res/mipmap-hdpi/ic_launcher.png b/app/src/libre/res/mipmap-hdpi/ic_launcher.png
index 0e03ed911..f2ca3ab87 100644
Binary files a/app/src/libre/res/mipmap-hdpi/ic_launcher.png and b/app/src/libre/res/mipmap-hdpi/ic_launcher.png differ
diff --git a/app/src/libre/res/mipmap-hdpi/ic_launcher_round.png b/app/src/libre/res/mipmap-hdpi/ic_launcher_round.png
index 346e3ae37..11d483336 100644
Binary files a/app/src/libre/res/mipmap-hdpi/ic_launcher_round.png and b/app/src/libre/res/mipmap-hdpi/ic_launcher_round.png differ
diff --git a/app/src/libre/res/mipmap-ldpi/ic_launcher.png b/app/src/libre/res/mipmap-ldpi/ic_launcher.png
index 85061918b..d05888a5d 100644
Binary files a/app/src/libre/res/mipmap-ldpi/ic_launcher.png and b/app/src/libre/res/mipmap-ldpi/ic_launcher.png differ
diff --git a/app/src/libre/res/mipmap-ldpi/ic_launcher_round.png b/app/src/libre/res/mipmap-ldpi/ic_launcher_round.png
index 11bc2ef0c..d4409bb34 100644
Binary files a/app/src/libre/res/mipmap-ldpi/ic_launcher_round.png and b/app/src/libre/res/mipmap-ldpi/ic_launcher_round.png differ
diff --git a/app/src/libre/res/mipmap-mdpi/ic_launcher.png b/app/src/libre/res/mipmap-mdpi/ic_launcher.png
index 0d4d3177a..1818a27c3 100644
Binary files a/app/src/libre/res/mipmap-mdpi/ic_launcher.png and b/app/src/libre/res/mipmap-mdpi/ic_launcher.png differ
diff --git a/app/src/libre/res/mipmap-mdpi/ic_launcher_round.png b/app/src/libre/res/mipmap-mdpi/ic_launcher_round.png
index 9a20477ca..b790578f7 100644
Binary files a/app/src/libre/res/mipmap-mdpi/ic_launcher_round.png and b/app/src/libre/res/mipmap-mdpi/ic_launcher_round.png differ
diff --git a/app/src/libre/res/mipmap-xhdpi/ic_launcher.png b/app/src/libre/res/mipmap-xhdpi/ic_launcher.png
index 4d20fe68b..d1250d424 100644
Binary files a/app/src/libre/res/mipmap-xhdpi/ic_launcher.png and b/app/src/libre/res/mipmap-xhdpi/ic_launcher.png differ
diff --git a/app/src/libre/res/mipmap-xhdpi/ic_launcher_round.png b/app/src/libre/res/mipmap-xhdpi/ic_launcher_round.png
index c810e1f5b..1a6de023a 100644
Binary files a/app/src/libre/res/mipmap-xhdpi/ic_launcher_round.png and b/app/src/libre/res/mipmap-xhdpi/ic_launcher_round.png differ
diff --git a/app/src/libre/res/mipmap-xxhdpi/ic_launcher.png b/app/src/libre/res/mipmap-xxhdpi/ic_launcher.png
index 828d4bafe..9364c6997 100644
Binary files a/app/src/libre/res/mipmap-xxhdpi/ic_launcher.png and b/app/src/libre/res/mipmap-xxhdpi/ic_launcher.png differ
diff --git a/app/src/libre/res/mipmap-xxhdpi/ic_launcher_round.png b/app/src/libre/res/mipmap-xxhdpi/ic_launcher_round.png
index 8b6c374e6..b663aa38a 100644
Binary files a/app/src/libre/res/mipmap-xxhdpi/ic_launcher_round.png and b/app/src/libre/res/mipmap-xxhdpi/ic_launcher_round.png differ
diff --git a/app/src/libre/res/mipmap-xxxhdpi/ic_launcher.png b/app/src/libre/res/mipmap-xxxhdpi/ic_launcher.png
index 01fcd24fc..0a0644820 100644
Binary files a/app/src/libre/res/mipmap-xxxhdpi/ic_launcher.png and b/app/src/libre/res/mipmap-xxxhdpi/ic_launcher.png differ
diff --git a/app/src/libre/res/mipmap-xxxhdpi/ic_launcher_round.png b/app/src/libre/res/mipmap-xxxhdpi/ic_launcher_round.png
index d3a45aa52..ead84335b 100644
Binary files a/app/src/libre/res/mipmap-xxxhdpi/ic_launcher_round.png and b/app/src/libre/res/mipmap-xxxhdpi/ic_launcher_round.png differ
diff --git a/app/src/main/java/com/kunzisoft/keepass/activities/FileDatabaseSelectActivity.kt b/app/src/main/java/com/kunzisoft/keepass/activities/FileDatabaseSelectActivity.kt
index d9e2ba675..ace25b3f7 100644
--- a/app/src/main/java/com/kunzisoft/keepass/activities/FileDatabaseSelectActivity.kt
+++ b/app/src/main/java/com/kunzisoft/keepass/activities/FileDatabaseSelectActivity.kt
@@ -31,12 +31,14 @@ import android.util.Log
import android.view.Menu
import android.view.MenuItem
import android.view.View
+import android.widget.TextView
import androidx.activity.result.ActivityResultLauncher
import androidx.activity.viewModels
import androidx.annotation.RequiresApi
import androidx.appcompat.app.AppCompatActivity
import androidx.appcompat.widget.Toolbar
import androidx.coordinatorlayout.widget.CoordinatorLayout
+import androidx.core.view.isVisible
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import androidx.recyclerview.widget.SimpleItemAnimator
@@ -112,6 +114,10 @@ class FileDatabaseSelectActivity : DatabaseModeActivity(),
toolbar.title = ""
setSupportActionBar(toolbar)
+ // Special title
+ val specialTitle: TextView = findViewById(R.id.file_selection_title_part_3)
+ specialTitle.isVisible = UriUtil.contributingUser(this)
+
// Create database button
createDatabaseButtonView = findViewById(R.id.create_database_button)
createDatabaseButtonView?.setOnClickListener { createNewFile() }
@@ -391,7 +397,7 @@ class FileDatabaseSelectActivity : DatabaseModeActivity(),
super.onCreateOptionsMenu(menu)
if (mSpecialMode == SpecialMode.DEFAULT) {
- MenuUtil.defaultMenuInflater(menuInflater, menu)
+ MenuUtil.defaultMenuInflater(this, menuInflater, menu)
}
Handler(Looper.getMainLooper()).post {
diff --git a/app/src/main/java/com/kunzisoft/keepass/activities/MainCredentialActivity.kt b/app/src/main/java/com/kunzisoft/keepass/activities/MainCredentialActivity.kt
index cb17b3df6..94f10541c 100644
--- a/app/src/main/java/com/kunzisoft/keepass/activities/MainCredentialActivity.kt
+++ b/app/src/main/java/com/kunzisoft/keepass/activities/MainCredentialActivity.kt
@@ -539,7 +539,7 @@ class MainCredentialActivity : DatabaseModeActivity(), AdvancedUnlockFragment.Bu
}
if (mSpecialMode == SpecialMode.DEFAULT) {
- MenuUtil.defaultMenuInflater(inflater, menu)
+ MenuUtil.defaultMenuInflater(this, inflater, menu)
}
super.onCreateOptionsMenu(menu)
diff --git a/app/src/main/java/com/kunzisoft/keepass/activities/dialogs/SetOTPDialogFragment.kt b/app/src/main/java/com/kunzisoft/keepass/activities/dialogs/SetOTPDialogFragment.kt
index 26c769afb..3986dca19 100644
--- a/app/src/main/java/com/kunzisoft/keepass/activities/dialogs/SetOTPDialogFragment.kt
+++ b/app/src/main/java/com/kunzisoft/keepass/activities/dialogs/SetOTPDialogFragment.kt
@@ -204,9 +204,10 @@ class SetOTPDialogFragment : DatabaseDialogFragment() {
android.R.layout.simple_spinner_item, mHotpTokenTypeArray!!).apply {
setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item)
}
- // Proprietary only on closed and full version
+ // Proprietary only on full version
mTotpTokenTypeArray = OtpTokenType.getTotpTokenTypeValues(
- BuildConfig.CLOSED_STORE && BuildConfig.FULL_VERSION)
+ UriUtil.contributingUser(activity)
+ )
totpTokenTypeAdapter = ArrayAdapter(activity,
android.R.layout.simple_spinner_item, mTotpTokenTypeArray!!).apply {
setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item)
diff --git a/app/src/main/java/com/kunzisoft/keepass/activities/dialogs/UnderDevelopmentFeatureDialogFragment.kt b/app/src/main/java/com/kunzisoft/keepass/activities/dialogs/UnderDevelopmentFeatureDialogFragment.kt
index 99440c7f8..57fffb0d5 100644
--- a/app/src/main/java/com/kunzisoft/keepass/activities/dialogs/UnderDevelopmentFeatureDialogFragment.kt
+++ b/app/src/main/java/com/kunzisoft/keepass/activities/dialogs/UnderDevelopmentFeatureDialogFragment.kt
@@ -25,7 +25,6 @@ import android.text.SpannableStringBuilder
import androidx.appcompat.app.AlertDialog
import androidx.core.text.HtmlCompat
import androidx.fragment.app.DialogFragment
-import com.kunzisoft.keepass.BuildConfig
import com.kunzisoft.keepass.R
import com.kunzisoft.keepass.utils.UriUtil
@@ -40,22 +39,12 @@ class UnderDevelopmentFeatureDialogFragment : DialogFragment() {
val builder = AlertDialog.Builder(activity)
val stringBuilder = SpannableStringBuilder()
- if (BuildConfig.CLOSED_STORE) {
- if (BuildConfig.FULL_VERSION) {
- stringBuilder.append(HtmlCompat.fromHtml(getString(R.string.html_text_dev_feature_thanks), HtmlCompat.FROM_HTML_MODE_LEGACY)).append("\n\n")
- .append(HtmlCompat.fromHtml(getString(R.string.html_rose), HtmlCompat.FROM_HTML_MODE_LEGACY)).append("\n\n")
- .append(HtmlCompat.fromHtml(getString(R.string.html_text_dev_feature_work_hard), HtmlCompat.FROM_HTML_MODE_LEGACY)).append("\n")
- .append(HtmlCompat.fromHtml(getString(R.string.html_text_dev_feature_upgrade), HtmlCompat.FROM_HTML_MODE_LEGACY)).append(" ")
- builder.setPositiveButton(android.R.string.ok) { _, _ -> dismiss() }
- } else {
- stringBuilder.append(HtmlCompat.fromHtml(getString(R.string.html_text_dev_feature), HtmlCompat.FROM_HTML_MODE_LEGACY)).append("\n\n")
- .append(HtmlCompat.fromHtml(getString(R.string.html_text_dev_feature_buy_pro), HtmlCompat.FROM_HTML_MODE_LEGACY)).append("\n")
- .append(HtmlCompat.fromHtml(getString(R.string.html_text_dev_feature_encourage), HtmlCompat.FROM_HTML_MODE_LEGACY))
- builder.setPositiveButton(R.string.download) { _, _ ->
- UriUtil.gotoUrl(requireContext(), R.string.app_pro_url)
- }
- builder.setNegativeButton(android.R.string.cancel) { _, _ -> dismiss() }
- }
+ if (UriUtil.contributingUser(activity)) {
+ stringBuilder.append(HtmlCompat.fromHtml(getString(R.string.html_text_dev_feature_thanks), HtmlCompat.FROM_HTML_MODE_LEGACY)).append("\n\n")
+ .append(HtmlCompat.fromHtml(getString(R.string.html_rose), HtmlCompat.FROM_HTML_MODE_LEGACY)).append("\n\n")
+ .append(HtmlCompat.fromHtml(getString(R.string.html_text_dev_feature_work_hard), HtmlCompat.FROM_HTML_MODE_LEGACY)).append("\n")
+ .append(HtmlCompat.fromHtml(getString(R.string.html_text_dev_feature_upgrade), HtmlCompat.FROM_HTML_MODE_LEGACY)).append(" ")
+ builder.setPositiveButton(android.R.string.ok) { _, _ -> dismiss() }
} else {
stringBuilder.append(HtmlCompat.fromHtml(getString(R.string.html_text_dev_feature), HtmlCompat.FROM_HTML_MODE_LEGACY)).append("\n\n")
.append(HtmlCompat.fromHtml(getString(R.string.html_text_dev_feature_contibute), HtmlCompat.FROM_HTML_MODE_LEGACY)).append(" ")
diff --git a/app/src/main/java/com/kunzisoft/keepass/education/Education.kt b/app/src/main/java/com/kunzisoft/keepass/education/Education.kt
index e40ebbf58..782b7428f 100644
--- a/app/src/main/java/com/kunzisoft/keepass/education/Education.kt
+++ b/app/src/main/java/com/kunzisoft/keepass/education/Education.kt
@@ -360,6 +360,13 @@ open class Education(val activity: Activity) {
context.resources.getBoolean(R.bool.education_setup_OTP_default))
}
+ fun setEducationScreenReclickedPerformed(context: Context) {
+ getEducationSharedPreferences(context)
+ .edit()
+ .putBoolean(context.getString(R.string.education_screen_reclicked_key), true)
+ .apply()
+ }
+
/**
* Defines if the reset education preference has been reclicked
*
diff --git a/app/src/main/java/com/kunzisoft/keepass/settings/NestedAppSettingsFragment.kt b/app/src/main/java/com/kunzisoft/keepass/settings/NestedAppSettingsFragment.kt
index 1885202e1..a172ac776 100644
--- a/app/src/main/java/com/kunzisoft/keepass/settings/NestedAppSettingsFragment.kt
+++ b/app/src/main/java/com/kunzisoft/keepass/settings/NestedAppSettingsFragment.kt
@@ -382,13 +382,17 @@ class NestedAppSettingsFragment : NestedSettingsFragment() {
findPreference(getString(R.string.setting_style_key))?.setOnPreferenceChangeListener { _, newValue ->
var styleEnabled = true
val styleIdString = newValue as String
- if (BuildConfig.CLOSED_STORE || !Education.isEducationScreenReclickedPerformed(activity))
+ if (!UriUtil.contributingUser(activity)) {
for (themeIdDisabled in BuildConfig.STYLES_DISABLED) {
if (themeIdDisabled == styleIdString) {
styleEnabled = false
- ProFeatureDialogFragment().show(parentFragmentManager, "pro_feature_dialog")
+ ProFeatureDialogFragment().show(
+ parentFragmentManager,
+ "pro_feature_dialog"
+ )
}
}
+ }
if (styleEnabled) {
Stylish.assignStyle(activity, styleIdString)
// Relaunch the current activity to redraw theme
@@ -409,13 +413,17 @@ class NestedAppSettingsFragment : NestedSettingsFragment() {
findPreference(getString(R.string.setting_icon_pack_choose_key))?.setOnPreferenceChangeListener { _, newValue ->
var iconPackEnabled = true
val iconPackId = newValue as String
- if (BuildConfig.CLOSED_STORE || !Education.isEducationScreenReclickedPerformed(activity))
+ if (!UriUtil.contributingUser(activity)) {
for (iconPackIdDisabled in BuildConfig.ICON_PACKS_DISABLED) {
if (iconPackIdDisabled == iconPackId) {
iconPackEnabled = false
- ProFeatureDialogFragment().show(parentFragmentManager, "pro_feature_dialog")
+ ProFeatureDialogFragment().show(
+ parentFragmentManager,
+ "pro_feature_dialog"
+ )
}
}
+ }
if (iconPackEnabled) {
IconPackChooser.setSelectedIconPack(iconPackId)
}
@@ -509,9 +517,8 @@ class NestedAppSettingsFragment : NestedSettingsFragment() {
override fun onStop() {
super.onStop()
activity?.let { activity ->
- if (mCount == 10) {
- Education.getEducationSharedPreferences(activity).edit()
- .putBoolean(getString(R.string.education_screen_reclicked_key), true).apply()
+ if (mCount == 10 && !BuildConfig.CLOSED_STORE) {
+ Education.setEducationScreenReclickedPerformed(activity)
}
}
}
diff --git a/app/src/main/java/com/kunzisoft/keepass/settings/PreferencesUtil.kt b/app/src/main/java/com/kunzisoft/keepass/settings/PreferencesUtil.kt
index 0089d8ab9..ed9f53d70 100644
--- a/app/src/main/java/com/kunzisoft/keepass/settings/PreferencesUtil.kt
+++ b/app/src/main/java/com/kunzisoft/keepass/settings/PreferencesUtil.kt
@@ -33,6 +33,7 @@ import com.kunzisoft.keepass.biometric.AdvancedUnlockManager
import com.kunzisoft.keepass.database.element.SortNodeEnum
import com.kunzisoft.keepass.education.Education
import com.kunzisoft.keepass.timeout.TimeoutHelper
+import com.kunzisoft.keepass.utils.UriUtil
import java.util.*
object PreferencesUtil {
@@ -151,7 +152,7 @@ object PreferencesUtil {
fun setStyle(context: Context, styleString: String) {
var tempThemeString = styleString
- if (BuildConfig.CLOSED_STORE || !Education.isEducationScreenReclickedPerformed(context)) {
+ if (!UriUtil.contributingUser(context)) {
if (tempThemeString in BuildConfig.STYLES_DISABLED) {
tempThemeString = Stylish.defaultStyle(context)
}
diff --git a/app/src/main/java/com/kunzisoft/keepass/utils/MenuUtil.kt b/app/src/main/java/com/kunzisoft/keepass/utils/MenuUtil.kt
index c7233968d..b6c2df52b 100644
--- a/app/src/main/java/com/kunzisoft/keepass/utils/MenuUtil.kt
+++ b/app/src/main/java/com/kunzisoft/keepass/utils/MenuUtil.kt
@@ -25,17 +25,16 @@ import android.content.Intent
import android.view.Menu
import android.view.MenuInflater
import android.view.MenuItem
-import com.kunzisoft.keepass.BuildConfig
import com.kunzisoft.keepass.R
import com.kunzisoft.keepass.activities.AboutActivity
import com.kunzisoft.keepass.settings.SettingsActivity
object MenuUtil {
- fun defaultMenuInflater(inflater: MenuInflater, menu: Menu) {
+ fun defaultMenuInflater(context: Context, inflater: MenuInflater, menu: Menu) {
inflater.inflate(R.menu.settings, menu)
inflater.inflate(R.menu.about, menu)
- if (!(BuildConfig.FULL_VERSION && BuildConfig.CLOSED_STORE))
+ if (!UriUtil.contributingUser(context))
menu.findItem(R.id.menu_contribute)?.isVisible = false
}
diff --git a/app/src/main/java/com/kunzisoft/keepass/utils/UriUtil.kt b/app/src/main/java/com/kunzisoft/keepass/utils/UriUtil.kt
index 71e50ff3e..5cd542d4f 100644
--- a/app/src/main/java/com/kunzisoft/keepass/utils/UriUtil.kt
+++ b/app/src/main/java/com/kunzisoft/keepass/utils/UriUtil.kt
@@ -30,6 +30,7 @@ import android.widget.Toast
import androidx.documentfile.provider.DocumentFile
import com.kunzisoft.keepass.R
import com.kunzisoft.keepass.app.database.FileDatabaseHistoryAction
+import com.kunzisoft.keepass.education.Education
import java.io.*
import java.util.*
@@ -255,9 +256,16 @@ object UriUtil {
gotoUrl(context, context.getString(resId))
}
- fun isExternalAppInstalled(context: Context, packageName: String): Boolean {
+ fun contributingUser(context: Context): Boolean {
+ return (Education.isEducationScreenReclickedPerformed(context)
+ || isExternalAppInstalled(context, "com.kunzisoft.keepass.pro")
+ )
+ }
+
+ private fun isExternalAppInstalled(context: Context, packageName: String): Boolean {
try {
context.applicationContext.packageManager.getPackageInfo(packageName, PackageManager.GET_ACTIVITIES)
+ Education.setEducationScreenReclickedPerformed(context)
return true
} catch (e: Exception) {
Log.e(TAG, "App not accessible", e)
diff --git a/app/src/main/res/drawable/ic_launcher_background.png b/app/src/main/res/drawable/ic_launcher_background.png
new file mode 100644
index 000000000..4f5f736f1
Binary files /dev/null and b/app/src/main/res/drawable/ic_launcher_background.png differ
diff --git a/app/src/main/res/layout/activity_file_selection.xml b/app/src/main/res/layout/activity_file_selection.xml
index 88ae61034..cbe367c1a 100644
--- a/app/src/main/res/layout/activity_file_selection.xml
+++ b/app/src/main/res/layout/activity_file_selection.xml
@@ -103,6 +103,7 @@
android:layout_marginLeft="12dp"
android:textSize="32sp"
android:textStyle="bold"
+ android:visibility="gone"
android:shadowColor="#80000000"
android:shadowDx="2"
android:shadowDy="2"
diff --git a/app/src/free/res/mipmap-anydpi-v26/ic_launcher.xml b/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
similarity index 67%
rename from app/src/free/res/mipmap-anydpi-v26/ic_launcher.xml
rename to app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
index b2e3062c2..6b78462d6 100644
--- a/app/src/free/res/mipmap-anydpi-v26/ic_launcher.xml
+++ b/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
@@ -1,5 +1,5 @@
-
+
-
\ No newline at end of file
+
diff --git a/app/src/free/res/mipmap-anydpi-v26/ic_launcher_round.xml b/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
similarity index 100%
rename from app/src/free/res/mipmap-anydpi-v26/ic_launcher_round.xml
rename to app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
diff --git a/app/src/main/res/values/donottranslate.xml b/app/src/main/res/values/donottranslate.xml
index 446636576..2b7f56209 100644
--- a/app/src/main/res/values/donottranslate.xml
+++ b/app/src/main/res/values/donottranslate.xml
@@ -28,7 +28,7 @@
KeePassDX
KeePass
DX
-
+ Pro
https://play.google.com/store/apps/details?id=com.kunzisoft.keepass.pro
https://www.keepassdx.com/contribution
diff --git a/app/src/pro/res/drawable-v24/ic_launcher_foreground.xml b/app/src/pro/res/drawable-v24/ic_launcher_foreground.xml
deleted file mode 100644
index 4edab404a..000000000
--- a/app/src/pro/res/drawable-v24/ic_launcher_foreground.xml
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app/src/pro/res/drawable/ic_launcher_foreground.png b/app/src/pro/res/drawable/ic_launcher_foreground.png
deleted file mode 100644
index 2c697177a..000000000
Binary files a/app/src/pro/res/drawable/ic_launcher_foreground.png and /dev/null differ
diff --git a/app/src/pro/res/mipmap-anydpi-v26/ic_launcher.xml b/app/src/pro/res/mipmap-anydpi-v26/ic_launcher.xml
deleted file mode 100644
index 6658b787a..000000000
--- a/app/src/pro/res/mipmap-anydpi-v26/ic_launcher.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app/src/pro/res/mipmap-anydpi-v26/ic_launcher_round.xml b/app/src/pro/res/mipmap-anydpi-v26/ic_launcher_round.xml
deleted file mode 100644
index 6658b787a..000000000
--- a/app/src/pro/res/mipmap-anydpi-v26/ic_launcher_round.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app/src/pro/res/mipmap-hdpi/ic_launcher.png b/app/src/pro/res/mipmap-hdpi/ic_launcher.png
deleted file mode 100644
index dee50dbe0..000000000
Binary files a/app/src/pro/res/mipmap-hdpi/ic_launcher.png and /dev/null differ
diff --git a/app/src/pro/res/mipmap-hdpi/ic_launcher_round.png b/app/src/pro/res/mipmap-hdpi/ic_launcher_round.png
deleted file mode 100644
index facc74b9c..000000000
Binary files a/app/src/pro/res/mipmap-hdpi/ic_launcher_round.png and /dev/null differ
diff --git a/app/src/pro/res/mipmap-ldpi/ic_launcher.png b/app/src/pro/res/mipmap-ldpi/ic_launcher.png
deleted file mode 100644
index c3c193ae0..000000000
Binary files a/app/src/pro/res/mipmap-ldpi/ic_launcher.png and /dev/null differ
diff --git a/app/src/pro/res/mipmap-ldpi/ic_launcher_round.png b/app/src/pro/res/mipmap-ldpi/ic_launcher_round.png
deleted file mode 100644
index 92e21027d..000000000
Binary files a/app/src/pro/res/mipmap-ldpi/ic_launcher_round.png and /dev/null differ
diff --git a/app/src/pro/res/mipmap-mdpi/ic_launcher.png b/app/src/pro/res/mipmap-mdpi/ic_launcher.png
deleted file mode 100644
index 7280d11ed..000000000
Binary files a/app/src/pro/res/mipmap-mdpi/ic_launcher.png and /dev/null differ
diff --git a/app/src/pro/res/mipmap-mdpi/ic_launcher_round.png b/app/src/pro/res/mipmap-mdpi/ic_launcher_round.png
deleted file mode 100644
index 22f37fbdc..000000000
Binary files a/app/src/pro/res/mipmap-mdpi/ic_launcher_round.png and /dev/null differ
diff --git a/app/src/pro/res/mipmap-xhdpi/ic_launcher.png b/app/src/pro/res/mipmap-xhdpi/ic_launcher.png
deleted file mode 100644
index 301252598..000000000
Binary files a/app/src/pro/res/mipmap-xhdpi/ic_launcher.png and /dev/null differ
diff --git a/app/src/pro/res/mipmap-xhdpi/ic_launcher_round.png b/app/src/pro/res/mipmap-xhdpi/ic_launcher_round.png
deleted file mode 100644
index bce5d287d..000000000
Binary files a/app/src/pro/res/mipmap-xhdpi/ic_launcher_round.png and /dev/null differ
diff --git a/app/src/pro/res/mipmap-xxhdpi/ic_launcher.png b/app/src/pro/res/mipmap-xxhdpi/ic_launcher.png
deleted file mode 100644
index bd30a3778..000000000
Binary files a/app/src/pro/res/mipmap-xxhdpi/ic_launcher.png and /dev/null differ
diff --git a/app/src/pro/res/mipmap-xxhdpi/ic_launcher_round.png b/app/src/pro/res/mipmap-xxhdpi/ic_launcher_round.png
deleted file mode 100644
index 4f05b8732..000000000
Binary files a/app/src/pro/res/mipmap-xxhdpi/ic_launcher_round.png and /dev/null differ
diff --git a/app/src/pro/res/mipmap-xxxhdpi/ic_launcher.png b/app/src/pro/res/mipmap-xxxhdpi/ic_launcher.png
deleted file mode 100644
index 24c0eec61..000000000
Binary files a/app/src/pro/res/mipmap-xxxhdpi/ic_launcher.png and /dev/null differ
diff --git a/app/src/pro/res/mipmap-xxxhdpi/ic_launcher_round.png b/app/src/pro/res/mipmap-xxxhdpi/ic_launcher_round.png
deleted file mode 100644
index aedc2acd7..000000000
Binary files a/app/src/pro/res/mipmap-xxxhdpi/ic_launcher_round.png and /dev/null differ
diff --git a/app/src/pro/res/values/donottranslate.xml b/app/src/pro/res/values/donottranslate.xml
deleted file mode 100644
index b1535d410..000000000
--- a/app/src/pro/res/values/donottranslate.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
- KeePassDX Pro
- Pro
-
diff --git a/art/ic_launcher.svg b/art/ic_launcher.svg
index 584d704dc..42f15cdfc 100644
--- a/art/ic_launcher.svg
+++ b/art/ic_launcher.svg
@@ -30,14 +30,14 @@
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1920"
- inkscape:window-height="1016"
+ inkscape:window-height="1043"
id="namedview4"
showgrid="false"
inkscape:zoom="2.8284272"
- inkscape:cx="67.839783"
- inkscape:cy="79.540344"
+ inkscape:cx="-14.470711"
+ inkscape:cy="90.995306"
inkscape:window-x="0"
- inkscape:window-y="27"
+ inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="layer5"
showguides="false">for create long shadow
+
+
+
+
shade and shadow values
+
+
+
+
Color: White
+
+
+
+
shade and shadow values
+
+
+
+
Location: 100%
+
+
+
+
shade and shadow values
+
+
+
+
Color: Black
+
+
+
+
Location: 100%
+
+
+
+
\ No newline at end of file
+ sodipodi:nodetypes="sssssccccsssssscccccccccccccc"
+ transform="matrix(2.1916449,0,0,2.1916449,-136.70172,-64.462974)" />
\ No newline at end of file
diff --git a/art/ic_launcher_adaptive.svg b/art/ic_launcher_adaptive.svg
index 84cfb485b..313cf3739 100644
--- a/art/ic_launcher_adaptive.svg
+++ b/art/ic_launcher_adaptive.svg
@@ -30,16 +30,16 @@
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1920"
- inkscape:window-height="1016"
+ inkscape:window-height="1043"
id="namedview4"
showgrid="false"
- inkscape:zoom="4"
- inkscape:cx="-4.5151"
- inkscape:cy="29.113264"
+ inkscape:zoom="2.8284271"
+ inkscape:cx="-7.8772259"
+ inkscape:cy="59.023519"
inkscape:window-x="0"
- inkscape:window-y="27"
+ inkscape:window-y="0"
inkscape:window-maximized="1"
- inkscape:current-layer="layer2"
+ inkscape:current-layer="layer6"
showguides="true">for create long shadow
+
+
shade and shadow values
+
+
Color: White
+
+
shade and shadow values
+
+
Location: 100%
+
+
shade and shadow values
+
+
Color: Black
+
+
Location: 100%
+
+
\ No newline at end of file
+ style="display:inline;fill:#ffffff;fill-opacity:1;stroke-width:4.42103624;filter:url(#filter1599)" />
\ No newline at end of file
diff --git a/art/icon.png b/art/icon.png
index 84cb85d2d..d1250d424 100644
Binary files a/art/icon.png and b/art/icon.png differ