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">