diff options
author | Harsh Shandilya <msfjarvis@gmail.com> | 2020-10-23 10:59:42 +0530 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-10-23 07:29:42 +0200 |
commit | c513722a304bc5a1a5911a92e3ee44e69a8fc420 (patch) | |
tree | cea84d1f408b13d9a3b417cab68d6a4d27e3090d | |
parent | 4a9151870d8e5196248b2abc09df8fbb1593c265 (diff) |
Rollback automatic synchronization feature (#1165)
* Revert "Add option to automatically sync repository on app launch (#1137)"
Fixes #1163
This reverts commit 92f1aab25da12411aa256c3b763e0cb6182e9320.
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
* CHANGELOG: add entry for auto sync rollback
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
-rw-r--r-- | CHANGELOG.md | 1 | ||||
-rw-r--r-- | app/src/main/AndroidManifest.xml | 3 | ||||
-rw-r--r-- | app/src/main/java/com/zeapo/pwdstore/LaunchActivity.kt | 58 | ||||
-rw-r--r-- | app/src/main/java/com/zeapo/pwdstore/UserPreference.kt | 3 | ||||
-rw-r--r-- | app/src/main/java/com/zeapo/pwdstore/utils/PreferenceKeys.kt | 1 | ||||
-rw-r--r-- | app/src/main/res/layout/activity_launch.xml | 59 | ||||
-rw-r--r-- | app/src/main/res/values/strings.xml | 3 | ||||
-rw-r--r-- | app/src/main/res/xml/preference.xml | 6 |
8 files changed, 15 insertions, 119 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md index 880db063..d8b1cbc7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,7 @@ All notable changes to this project will be documented in this file. ### Changed - Accessibility autofill has been removed completely due to being buggy, insecure and lacking in features. Upgrade to Android 8 or preferably later to gain access to our advanced Autofill implementation. +- The newly added automatic synchronisation feature has been rolled back due to multiple issues with its implementation. ## [1.13.0] - 2020-10-22 diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 8c945909..72714908 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -39,7 +39,8 @@ <activity android:name=".LaunchActivity" android:configChanges="orientation|screenSize" - android:label="@string/app_name"> + android:label="@string/app_name" + android:theme="@style/NoBackgroundTheme"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> diff --git a/app/src/main/java/com/zeapo/pwdstore/LaunchActivity.kt b/app/src/main/java/com/zeapo/pwdstore/LaunchActivity.kt index 1003167f..268698e7 100644 --- a/app/src/main/java/com/zeapo/pwdstore/LaunchActivity.kt +++ b/app/src/main/java/com/zeapo/pwdstore/LaunchActivity.kt @@ -4,34 +4,20 @@ */ package com.zeapo.pwdstore -import android.content.ComponentName import android.content.Intent import android.os.Bundle import android.os.Handler +import androidx.appcompat.app.AppCompatActivity import androidx.core.content.edit -import androidx.core.view.isVisible -import androidx.lifecycle.lifecycleScope -import com.github.michaelbull.result.fold import com.zeapo.pwdstore.crypto.DecryptActivity -import com.zeapo.pwdstore.databinding.ActivityLaunchBinding -import com.zeapo.pwdstore.git.BaseGitActivity -import com.zeapo.pwdstore.git.config.AuthMode -import com.zeapo.pwdstore.git.config.GitSettings import com.zeapo.pwdstore.utils.BiometricAuthenticator -import com.zeapo.pwdstore.utils.PasswordRepository import com.zeapo.pwdstore.utils.PreferenceKeys import com.zeapo.pwdstore.utils.sharedPrefs -import com.zeapo.pwdstore.utils.viewBinding -import kotlinx.coroutines.launch -class LaunchActivity : BaseGitActivity() { - - private val binding by viewBinding(ActivityLaunchBinding::inflate) +class LaunchActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - setContentView(binding.root) - supportActionBar?.hide() val prefs = sharedPrefs if (prefs.getBoolean(PreferenceKeys.BIOMETRIC_AUTH, false)) { BiometricAuthenticator.authenticate(this) { @@ -54,38 +40,18 @@ class LaunchActivity : BaseGitActivity() { } private fun startTargetActivity(noAuth: Boolean) { - if (intent.action == ACTION_DECRYPT_PASS) { - intent.component = ComponentName(this, DecryptActivity::class.java) - startPasswordStoreActivity(intent, noAuth) - } else { - val intent = Intent(this, PasswordStore::class.java) - val repo = PasswordRepository.initialize() - // if repo is null, let PasswordStore handle it. - if (repo != null && - !GitSettings.url.isNullOrEmpty() && - sharedPrefs.getBoolean(PreferenceKeys.SYNC_ON_LAUNCH, false)) { - binding.progressBar.isVisible = true - binding.sync.isVisible = true - runGitOperation { startPasswordStoreActivity(intent, noAuth) } - } else { - startPasswordStoreActivity(intent, noAuth) + val intentToStart = if (intent.action == ACTION_DECRYPT_PASS) + Intent(this, DecryptActivity::class.java).apply { + putExtra("NAME", intent.getStringExtra("NAME")) + putExtra("FILE_PATH", intent.getStringExtra("FILE_PATH")) + putExtra("REPO_PATH", intent.getStringExtra("REPO_PATH")) + putExtra("LAST_CHANGED_TIMESTAMP", intent.getLongExtra("LAST_CHANGED_TIMESTAMP", 0L)) } - } - } - - private fun startPasswordStoreActivity(intent: Intent, noAuth: Boolean) { - Handler().postDelayed({ - startActivity(intent) - finish() - }, if (noAuth) 500L else 0L) - } + else + Intent(this, PasswordStore::class.java) + startActivity(intentToStart) - private fun runGitOperation(onCompletion: () -> Unit) = lifecycleScope.launch { - val gitOp = if (GitSettings.authMode == AuthMode.None) GitOp.PULL else GitOp.SYNC - launchGitOperation(gitOp).fold( - success = { onCompletion.invoke() }, - failure = { promptOnErrorHandler(it) { onCompletion.invoke() } }, - ) + Handler().postDelayed({ finish() }, if (noAuth) 0L else 500L) } companion object { diff --git a/app/src/main/java/com/zeapo/pwdstore/UserPreference.kt b/app/src/main/java/com/zeapo/pwdstore/UserPreference.kt index 53a49653..66873426 100644 --- a/app/src/main/java/com/zeapo/pwdstore/UserPreference.kt +++ b/app/src/main/java/com/zeapo/pwdstore/UserPreference.kt @@ -44,7 +44,6 @@ import com.google.android.material.dialog.MaterialAlertDialogBuilder import com.zeapo.pwdstore.crypto.BasePgpActivity import com.zeapo.pwdstore.git.GitConfigActivity import com.zeapo.pwdstore.git.GitServerConfigActivity -import com.zeapo.pwdstore.git.config.GitSettings import com.zeapo.pwdstore.git.sshj.SshKey import com.zeapo.pwdstore.pwgenxkpwd.XkpwdDictionary import com.zeapo.pwdstore.sshkeygen.ShowSshKeyFragment @@ -408,8 +407,6 @@ class UserPreference : AppCompatActivity() { true } - findPreference<CheckBoxPreference>(PreferenceKeys.SYNC_ON_LAUNCH)?.isVisible = !GitSettings.url.isNullOrEmpty() - val prefCustomXkpwdDictionary = findPreference<Preference>(PreferenceKeys.PREF_KEY_CUSTOM_DICT) prefCustomXkpwdDictionary?.onPreferenceClickListener = ClickListener { prefsActivity.storeCustomDictionaryPath() diff --git a/app/src/main/java/com/zeapo/pwdstore/utils/PreferenceKeys.kt b/app/src/main/java/com/zeapo/pwdstore/utils/PreferenceKeys.kt index 536a0c19..70818568 100644 --- a/app/src/main/java/com/zeapo/pwdstore/utils/PreferenceKeys.kt +++ b/app/src/main/java/com/zeapo/pwdstore/utils/PreferenceKeys.kt @@ -73,7 +73,6 @@ object PreferenceKeys { const val SSH_OPENKEYSTORE_CLEAR_KEY_ID = "ssh_openkeystore_clear_keyid" const val SSH_OPENKEYSTORE_KEYID = "ssh_openkeystore_keyid" const val SSH_SEE_KEY = "ssh_see_key" - const val SYNC_ON_LAUNCH = "sync_on_launch" @Deprecated("To be used only in Migrations.kt") const val USE_GENERATED_KEY = "use_generated_key" diff --git a/app/src/main/res/layout/activity_launch.xml b/app/src/main/res/layout/activity_launch.xml deleted file mode 100644 index df6e4f7b..00000000 --- a/app/src/main/res/layout/activity_launch.xml +++ /dev/null @@ -1,59 +0,0 @@ -<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:app="http://schemas.android.com/apk/res-auto" - android:layout_width="match_parent" - android:layout_height="match_parent" - android:background="?attr/colorPrimary" - android:orientation="vertical"> - - <androidx.appcompat.widget.AppCompatImageView - android:id="@+id/app_icon" - android:layout_width="100dp" - android:layout_height="100dp" - android:contentDescription="@string/app_icon_hint" - android:src="@mipmap/ic_launcher" - android:transitionName="transition_first_app_icon" - app:layout_constraintBottom_toBottomOf="parent" - app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toTopOf="parent" /> - - <androidx.appcompat.widget.AppCompatTextView - android:id="@+id/app_name" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_centerHorizontal="true" - android:layout_marginTop="16dp" - android:text="@string/app_name" - android:textAppearance="@style/TextAppearance.MaterialComponents.Headline5" - android:textColor="@color/color_control_normal" - android:textStyle="bold" - android:transitionName="transition_first_run_app_name" - app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toBottomOf="@+id/app_icon" /> - - <ProgressBar - android:id="@+id/progress_bar" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:visibility="invisible" - app:layout_constraintBottom_toBottomOf="parent" - app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toTopOf="parent" - app:layout_constraintVertical_bias="0.85" /> - - <androidx.appcompat.widget.AppCompatTextView - android:id="@+id/sync" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_marginTop="8dp" - android:text="@string/syncing" - android:textAppearance="@style/TextAppearance.MaterialComponents.Body1" - android:textColor="@color/color_control_normal" - android:visibility="invisible" - app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toBottomOf="@id/progress_bar" /> - -</androidx.constraintlayout.widget.ConstraintLayout> diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 579017b9..ea222409 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -391,9 +391,6 @@ <string name="ssh_scheme_needed_message">It appears that your URL contains a custom port, but does not specify the ssh:// scheme.\nThis can cause the port to be considered a part of your path. Press OK here to fix the URL.</string> <string name="https_scheme_with_port_title">HTTPS URL with custom port</string> <string name="https_scheme_with_port_message">It looks like you are using a HTTPS URL with a custom port. This is not supported, and will cause problems down the line. Press OK to remove the port from your URL.</string> - <string name="sync_on_launch_title">Sync on launch</string> - <string name="sync_on_launch_summary">Sync passwords when application is launched</string> - <string name="syncing">Syncing…</string> <!-- Proxy configuration activity --> <string name="proxy_hostname">Proxy hostname</string> diff --git a/app/src/main/res/xml/preference.xml b/app/src/main/res/xml/preference.xml index 6b670618..c0b3a105 100644 --- a/app/src/main/res/xml/preference.xml +++ b/app/src/main/res/xml/preference.xml @@ -121,12 +121,6 @@ app:key="biometric_auth" app:summary="@string/biometric_auth_summary" app:title="@string/biometric_auth_title" /> - <CheckBoxPreference - app:defaultValue="false" - app:key="sync_on_launch" - app:persistent="true" - app:summary="@string/sync_on_launch_summary" - app:title="@string/sync_on_launch_title" /> </PreferenceCategory> <PreferenceCategory app:title="@string/pref_category_title_passwords"> <EditTextPreference |