diff --git a/Simplenote/src/main/AndroidManifest.xml b/Simplenote/src/main/AndroidManifest.xml index e01a921bb..e757a862a 100644 --- a/Simplenote/src/main/AndroidManifest.xml +++ b/Simplenote/src/main/AndroidManifest.xml @@ -174,10 +174,10 @@ + android:theme="@style/Style.Authentication" /> + android:theme="@style/Style.Authentication"/> ${email}" missingEmailMessage?.text = HtmlCompat.fromHtml( String.format( @@ -488,8 +488,8 @@ open class NewCredentialsActivity : AppCompatActivity() { val password = this.getEditTextString(inputPassword!!) if (this.isValidPasswordLogin()) { this.progressDialogFragment = - ProgressDialogFragment.newInstance(this.getString(R.string.simperium_dialog_progress_logging_in)) - progressDialogFragment?.show(this.supportFragmentManager, ProgressDialogFragment.TAG) + SimplenoteProgressDialogFragment.newInstance(this.getString(R.string.simperium_dialog_progress_logging_in)) + progressDialogFragment?.show(this.supportFragmentManager, SimplenoteProgressDialogFragment.TAG) simperium?.authorizeUser(email, password, this.authListener) } else { this.showDialogError(this.getString(R.string.simperium_dialog_message_password_login, PASSWORD_LENGTH_LOGIN)) @@ -500,10 +500,10 @@ open class NewCredentialsActivity : AppCompatActivity() { val email = this.getEditTextString(inputEmail) val password = this.getEditTextString(inputPassword) if (this.isValidPassword(email, password)) { - this.progressDialogFragment = ProgressDialogFragment.newInstance( + this.progressDialogFragment = SimplenoteProgressDialogFragment.newInstance( this.getString(R.string.simperium_dialog_progress_signing_up) ) - progressDialogFragment?.show(this.supportFragmentManager, ProgressDialogFragment.TAG) + progressDialogFragment?.show(this.supportFragmentManager, SimplenoteProgressDialogFragment.TAG) simperium?.createUser(email, password, this.authListener) } else { this.showDialogError(this.getString(R.string.simperium_dialog_message_password, PASSWORD_LENGTH_MINIMUM)) diff --git a/Simplenote/src/main/java/com/automattic/simplenote/authentication/SignupFragment.java b/Simplenote/src/main/java/com/automattic/simplenote/authentication/SignupFragment.java index df2413bcc..d4a9589e9 100644 --- a/Simplenote/src/main/java/com/automattic/simplenote/authentication/SignupFragment.java +++ b/Simplenote/src/main/java/com/automattic/simplenote/authentication/SignupFragment.java @@ -29,8 +29,8 @@ import com.automattic.simplenote.utils.BrowserUtils; import com.automattic.simplenote.utils.DisplayUtils; import com.automattic.simplenote.utils.NetworkUtils; +import com.automattic.simplenote.utils.SimplenoteProgressDialogFragment; import com.google.android.material.textfield.TextInputLayout; -import com.simperium.android.ProgressDialogFragment; import com.simperium.util.Logger; import org.json.JSONException; @@ -59,7 +59,7 @@ public class SignupFragment extends Fragment { private static final MediaType JSON_MEDIA_TYPE = MediaType.parse("application/json; charset=utf-8"); - private ProgressDialogFragment progressDialogFragment; + private SimplenoteProgressDialogFragment progressDialogFragment; @Nullable @Override @@ -117,9 +117,9 @@ public void onClick(View v) { private void showProgressDialog() { progressDialogFragment = - ProgressDialogFragment.newInstance(getString(R.string.simperium_dialog_progress_signing_up)); + SimplenoteProgressDialogFragment.newInstance(getString(R.string.simperium_dialog_progress_signing_up)); progressDialogFragment.setStyle(DialogFragment.STYLE_NO_TITLE, R.style.Simperium); - progressDialogFragment.show(requireFragmentManager(), ProgressDialogFragment.TAG); + progressDialogFragment.show(requireFragmentManager(), SimplenoteProgressDialogFragment.TAG); } private void hideDialogProgress() { diff --git a/Simplenote/src/main/java/com/automattic/simplenote/authentication/SimplenoteAuthenticationActivity.java b/Simplenote/src/main/java/com/automattic/simplenote/authentication/SimplenoteAuthenticationActivity.java index 839943087..7270f7bdb 100644 --- a/Simplenote/src/main/java/com/automattic/simplenote/authentication/SimplenoteAuthenticationActivity.java +++ b/Simplenote/src/main/java/com/automattic/simplenote/authentication/SimplenoteAuthenticationActivity.java @@ -24,13 +24,13 @@ import com.automattic.simplenote.Simplenote; import com.automattic.simplenote.analytics.AnalyticsTracker; import com.automattic.simplenote.utils.IntentUtils; +import com.automattic.simplenote.utils.SimplenoteProgressDialogFragment; import com.automattic.simplenote.utils.StrUtils; import com.automattic.simplenote.utils.SystemBarUtils; import com.automattic.simplenote.utils.WordPressUtils; import com.automattic.simplenote.viewmodels.MagicLinkUiState; import com.automattic.simplenote.viewmodels.CompleteMagicLinkViewModel; import com.simperium.android.AuthenticationActivity; -import com.simperium.android.ProgressDialogFragment; import net.openid.appauth.AuthorizationException; import net.openid.appauth.AuthorizationRequest; @@ -65,20 +65,20 @@ public class SimplenoteAuthenticationActivity extends AuthenticationActivity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - + // Setup edge-to-edge display only on Android 15+ to avoid breaking existing theming // Since this extends Simperium's AuthenticationActivity, we need to be conservative if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.VANILLA_ICE_CREAM) { WindowCompat.setDecorFitsSystemWindows(getWindow(), false); // Use auto-theming to properly handle dark mode - boolean isLightTheme = (getResources().getConfiguration().uiMode & android.content.res.Configuration.UI_MODE_NIGHT_MASK) + boolean isLightTheme = (getResources().getConfiguration().uiMode & android.content.res.Configuration.UI_MODE_NIGHT_MASK) != android.content.res.Configuration.UI_MODE_NIGHT_YES; SystemBarUtils.setSystemBarsAppearance(this, isLightTheme, isLightTheme); - + // Apply navigation bar insets to avoid button overlap with 3-button navigation ViewCompat.setOnApplyWindowInsetsListener(findViewById(android.R.id.content), (v, windowInsets) -> { Insets systemBars = windowInsets.getInsets(WindowInsetsCompat.Type.systemBars()); - + // Apply bottom padding to avoid navigation bar overlap v.setPadding( v.getPaddingLeft(), @@ -86,13 +86,13 @@ public void onCreate(Bundle savedInstanceState) { v.getPaddingRight(), systemBars.bottom ); - + return WindowInsetsCompat.CONSUMED; }); } final Intent intent = getIntent(); - + final boolean isMagicLink = intent.getBooleanExtra(KEY_IS_MAGIC_LINK, false); final String authKey = intent.getStringExtra(KEY_MAGIC_LINK_AUTH_KEY); final String authCode = intent.getStringExtra(KEY_MAGIC_LINK_AUTH_CODE); @@ -245,24 +245,24 @@ protected void onRestoreInstanceState(Bundle savedInstanceState) { } private void showLoadingDialog(@StringRes int stringRes) { - final Fragment fragment = getSupportFragmentManager().findFragmentByTag(ProgressDialogFragment.TAG); + final Fragment fragment = getSupportFragmentManager().findFragmentByTag(SimplenoteProgressDialogFragment.TAG); if (fragment == null) { - final ProgressDialogFragment progressDialogFragment = ProgressDialogFragment.newInstance(getString(stringRes)); + final SimplenoteProgressDialogFragment progressDialogFragment = SimplenoteProgressDialogFragment.newInstance(getString(stringRes)); progressDialogFragment.setStyle(DialogFragment.STYLE_NO_TITLE, R.style.Simperium); - progressDialogFragment.show(getSupportFragmentManager(), ProgressDialogFragment.TAG); + progressDialogFragment.show(getSupportFragmentManager(), SimplenoteProgressDialogFragment.TAG); } } private void hideDialog() { - final Fragment fragment = getSupportFragmentManager().findFragmentByTag(ProgressDialogFragment.TAG); + final Fragment fragment = getSupportFragmentManager().findFragmentByTag(SimplenoteProgressDialogFragment.TAG); if (fragment != null) { try { - final ProgressDialogFragment progressDialogFragment = (ProgressDialogFragment) fragment; + final SimplenoteProgressDialogFragment progressDialogFragment = (SimplenoteProgressDialogFragment) fragment; if (!progressDialogFragment.isHidden()) { progressDialogFragment.dismiss(); } } catch (final ClassCastException e) { - Log.e(TAG, "We have a class other than ProgressDialogFragment", e); + Log.e(TAG, "We have a class other than SimplenoteProgressDialogFragment", e); } } } diff --git a/Simplenote/src/main/java/com/automattic/simplenote/authentication/SimplenoteSignupActivity.java b/Simplenote/src/main/java/com/automattic/simplenote/authentication/SimplenoteSignupActivity.java index eb153339c..2d168e938 100644 --- a/Simplenote/src/main/java/com/automattic/simplenote/authentication/SimplenoteSignupActivity.java +++ b/Simplenote/src/main/java/com/automattic/simplenote/authentication/SimplenoteSignupActivity.java @@ -11,13 +11,14 @@ import androidx.fragment.app.FragmentManager; import com.automattic.simplenote.R; +import com.automattic.simplenote.ThemedAppCompatActivity; import com.automattic.simplenote.authentication.magiclink.MagicLinkConfirmationFragment; import com.automattic.simplenote.utils.SystemBarUtils; import dagger.hilt.android.AndroidEntryPoint; @AndroidEntryPoint -public class SimplenoteSignupActivity extends AppCompatActivity { +public class SimplenoteSignupActivity extends ThemedAppCompatActivity { public final static String SIGNUP_FRAGMENT_TAG = "signup"; // Used to differentiate between sign in and sign up in the sign in activity @@ -46,7 +47,7 @@ protected void onCreate(@Nullable Bundle savedInstanceState) { final boolean isSignUp = !getIntent().getBooleanExtra(KEY_IS_LOGIN, false); initContainer(isSignUp); initToolbar(isSignUp); - + // Setup edge-to-edge display with proper WindowInsets handling // Use auto-theming to properly handle status bar appearance based on theme SystemBarUtils.setupEdgeToEdgeWithAutoTheming( diff --git a/Simplenote/src/main/java/com/automattic/simplenote/authentication/magiclink/MagicLinkConfirmationFragment.kt b/Simplenote/src/main/java/com/automattic/simplenote/authentication/magiclink/MagicLinkConfirmationFragment.kt index 18a2bc9b9..a46d31a21 100644 --- a/Simplenote/src/main/java/com/automattic/simplenote/authentication/magiclink/MagicLinkConfirmationFragment.kt +++ b/Simplenote/src/main/java/com/automattic/simplenote/authentication/magiclink/MagicLinkConfirmationFragment.kt @@ -18,9 +18,9 @@ import com.automattic.simplenote.Simplenote import com.automattic.simplenote.authentication.SignInFragment import com.automattic.simplenote.utils.HtmlCompat import com.automattic.simplenote.utils.NetworkUtils +import com.automattic.simplenote.utils.SimplenoteProgressDialogFragment import com.automattic.simplenote.viewmodels.CompleteMagicLinkViewModel import com.automattic.simplenote.viewmodels.MagicLinkUiState -import com.simperium.android.ProgressDialogFragment import dagger.hilt.android.AndroidEntryPoint import javax.inject.Inject @@ -29,7 +29,7 @@ class MagicLinkConfirmationFragment : Fragment() { @Inject lateinit var simplenote: Simplenote - private var progressDialogFragment: ProgressDialogFragment? = null + private var progressDialogFragment: SimplenoteProgressDialogFragment? = null private var codeEditText: EditText? = null private var actionCodeButton: Button? = null @@ -124,9 +124,9 @@ class MagicLinkConfirmationFragment : Fragment() { private fun showProgressDialog(label: String) { progressDialogFragment = - ProgressDialogFragment.newInstance(label) + SimplenoteProgressDialogFragment.newInstance(label) progressDialogFragment?.setStyle(DialogFragment.STYLE_NO_TITLE, R.style.Simperium) - progressDialogFragment?.show(requireFragmentManager(), ProgressDialogFragment.TAG) + progressDialogFragment?.show(requireFragmentManager(), SimplenoteProgressDialogFragment.TAG) } private fun hideDialogProgress() { diff --git a/Simplenote/src/main/res/drawable/ic_simplenote_blue_24dp.xml b/Simplenote/src/main/res/drawable/ic_simplenote_blue_24dp.xml index 6b5edbaa3..829be579a 100644 --- a/Simplenote/src/main/res/drawable/ic_simplenote_blue_24dp.xml +++ b/Simplenote/src/main/res/drawable/ic_simplenote_blue_24dp.xml @@ -8,7 +8,7 @@ android:viewportWidth="24"> diff --git a/Simplenote/src/main/res/layout/activity_signup.xml b/Simplenote/src/main/res/layout/activity_signup.xml index 4dd3d0ac3..88993038c 100644 --- a/Simplenote/src/main/res/layout/activity_signup.xml +++ b/Simplenote/src/main/res/layout/activity_signup.xml @@ -1,7 +1,6 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/magic_link_login_with_wordpress_or_break" - android:textColor="?attr/onMainBackgroundColor" + android:textColor="@color/text_subtitle" android:paddingHorizontal="5dp" /> - + app:tint="?attr/emptyImageColor" /> diff --git a/Simplenote/src/main/res/layout/fragment_login.xml b/Simplenote/src/main/res/layout/fragment_login.xml index f180096b9..6e94b2c02 100644 --- a/Simplenote/src/main/res/layout/fragment_login.xml +++ b/Simplenote/src/main/res/layout/fragment_login.xml @@ -1,79 +1,86 @@ - + android:fillViewport="true" + android:layout_height="match_parent" + android:layout_width="match_parent"> - + android:clipToPadding="false" + android:padding="@dimen/margin_default" + tools:layout_width="match_parent"> - + android:layout_height="wrap_content" + android:layout_margin="@dimen/margin_default_quarter" + android:hint="@string/simperium_hint_email" + android:theme="@style/TextInput" + app:errorEnabled="true"> - + - + - + - + - + + + + + - + diff --git a/Simplenote/src/main/res/layout/fragment_magic_link_code.xml b/Simplenote/src/main/res/layout/fragment_magic_link_code.xml index a9aa601ee..83a06a89d 100644 --- a/Simplenote/src/main/res/layout/fragment_magic_link_code.xml +++ b/Simplenote/src/main/res/layout/fragment_magic_link_code.xml @@ -12,22 +12,20 @@ android:id="@+id/magic_link_enter_code_message" android:layout_width="match_parent" android:layout_height="wrap_content" + android:layout_marginBottom="@dimen/margin_default_half" android:gravity="center_horizontal" - android:textColor="?attr/onMainBackgroundColor" android:textSize="18sp" tools:text="We\'ve sent a code to example@email.com. The code will be valid for a few minutes" - android:layout_marginVertical="15dp" + android:layout_marginVertical="@dimen/margin_default" /> - + android:textColor="@color/text_button_primary" /> - + android:textColor="@color/button_tertiary_disabled_selector"/> diff --git a/Simplenote/src/main/res/layout/fragment_signup.xml b/Simplenote/src/main/res/layout/fragment_signup.xml index 707e3e48b..ad8b6004e 100644 --- a/Simplenote/src/main/res/layout/fragment_signup.xml +++ b/Simplenote/src/main/res/layout/fragment_signup.xml @@ -14,11 +14,9 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentTop="true" - android:layout_marginStart="@dimen/margin_default_quarter" - android:layout_marginTop="@dimen/margin_default_quarter" - android:layout_marginEnd="@dimen/margin_default_quarter" - android:layout_marginBottom="@dimen/margin_default_quarter" + android:layout_margin="@dimen/margin_default_quarter" android:hint="@string/simperium_hint_email" + android:theme="@style/TextInput" app:errorEnabled="true"> - - - - + android:layout_width="match_parent"> - - + + - + + + + + + android:orientation="vertical" + android:layout_alignParentTop="true" + > + + + + + + + + + - - - - - - - - - - - - - + + + + + + + - + diff --git a/Simplenote/src/main/res/values-night/colors.xml b/Simplenote/src/main/res/values-night/colors.xml index 400140567..29a034266 100644 --- a/Simplenote/src/main/res/values-night/colors.xml +++ b/Simplenote/src/main/res/values-night/colors.xml @@ -3,6 +3,7 @@ + @color/simplenote_blue_20 @color/background_dark_black_8 @color/background_dark_black_2 @color/blue_70 @@ -24,12 +25,17 @@ @color/text_title_dark @color/red_20 - - @color/gray_20 - @color/gray_30 - - - @color/gray_1 - @color/gray_1 + + @color/background_dark + @color/gray_50 + @color/simplenote_blue_20 + @color/wordpress_blue_20 + @color/gray_50 + @color/gray_100 + @color/gray_100 + @color/simplenote_blue_10 + @color/simplenote_blue_20 + @android:color/white + @android:color/white diff --git a/Simplenote/src/main/res/values-night/styles.xml b/Simplenote/src/main/res/values-night/styles.xml index 044541ef2..e1cfe6c9a 100755 --- a/Simplenote/src/main/res/values-night/styles.xml +++ b/Simplenote/src/main/res/values-night/styles.xml @@ -182,6 +182,10 @@ @android:color/transparent + + - - - diff --git a/Simplenote/src/main/res/values/attrs.xml b/Simplenote/src/main/res/values/attrs.xml index 8fff73677..452da58ac 100644 --- a/Simplenote/src/main/res/values/attrs.xml +++ b/Simplenote/src/main/res/values/attrs.xml @@ -8,7 +8,6 @@ - diff --git a/Simplenote/src/main/res/values/colors.xml b/Simplenote/src/main/res/values/colors.xml index 75f13b15f..8097350bb 100644 --- a/Simplenote/src/main/res/values/colors.xml +++ b/Simplenote/src/main/res/values/colors.xml @@ -55,6 +55,7 @@ @android:color/white + @color/simplenote_blue_50 @color/background_dark_1 @color/background_dark_8 #4d5152 @@ -128,11 +129,8 @@ @color/gray_80 @color/red_50 - - @color/gray_80 - @color/gray_50 - + @color/background_light @color/gray_20 @color/simplenote_blue_50 @color/wordpress_blue_50 diff --git a/Simplenote/src/main/res/values/styles.xml b/Simplenote/src/main/res/values/styles.xml index baa1f5761..ca96380a7 100644 --- a/Simplenote/src/main/res/values/styles.xml +++ b/Simplenote/src/main/res/values/styles.xml @@ -122,6 +122,14 @@ ?attr/colorAccent + + + + - -