From 8f4c3e5206f69bf139512eae29e1dbfa6597f5ba Mon Sep 17 00:00:00 2001 From: M M Arif Date: Mon, 25 Sep 2023 22:23:52 +0500 Subject: [PATCH] Redesign add email screen --- app/src/main/AndroidManifest.xml | 6 +- .../AccountSettingsEmailActivity.java | 108 +++++++----------- .../activity_account_settings_email.xml | 108 ++++++++---------- app/src/main/res/menu/save.xml | 1 - 4 files changed, 89 insertions(+), 134 deletions(-) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 38777283..005a9b3d 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -54,7 +54,8 @@ android:configChanges="orientation|screenSize|smallestScreenSize|density|screenLayout|keyboard|keyboardHidden|navigation"/> + android:configChanges="orientation|screenSize|smallestScreenSize|density|screenLayout|keyboard|keyboardHidden|navigation" + android:windowSoftInputMode="adjustResize"/> @@ -73,7 +74,8 @@ android:configChanges="orientation|screenSize|smallestScreenSize|density|screenLayout|keyboard|keyboardHidden|navigation"/> + android:configChanges="orientation|screenSize|smallestScreenSize|density|screenLayout|keyboard|keyboardHidden|navigation" + android:windowSoftInputMode="adjustResize"/> diff --git a/app/src/main/java/org/mian/gitnex/activities/AccountSettingsEmailActivity.java b/app/src/main/java/org/mian/gitnex/activities/AccountSettingsEmailActivity.java index 94d0c725..edc2aea6 100644 --- a/app/src/main/java/org/mian/gitnex/activities/AccountSettingsEmailActivity.java +++ b/app/src/main/java/org/mian/gitnex/activities/AccountSettingsEmailActivity.java @@ -1,11 +1,8 @@ package org.mian.gitnex.activities; -import android.content.Context; import android.os.Bundle; -import android.util.Log; +import android.os.Handler; import android.util.Patterns; -import android.view.View; -import android.view.inputmethod.InputMethodManager; import androidx.annotation.NonNull; import java.util.ArrayList; import java.util.Arrays; @@ -18,8 +15,7 @@ import org.mian.gitnex.clients.RetrofitClient; import org.mian.gitnex.databinding.ActivityAccountSettingsEmailBinding; import org.mian.gitnex.fragments.AccountSettingsEmailsFragment; import org.mian.gitnex.helpers.AlertDialogs; -import org.mian.gitnex.helpers.AppUtil; -import org.mian.gitnex.helpers.Toasty; +import org.mian.gitnex.helpers.SnackBar; import retrofit2.Call; import retrofit2.Callback; @@ -28,8 +24,6 @@ import retrofit2.Callback; */ public class AccountSettingsEmailActivity extends BaseActivity { - private View.OnClickListener onClickListener; - private final View.OnClickListener addEmailListener = v -> processAddNewEmail(); private ActivityAccountSettingsEmailBinding activityAccountSettingsEmailBinding; @Override @@ -41,56 +35,42 @@ public class AccountSettingsEmailActivity extends BaseActivity { ActivityAccountSettingsEmailBinding.inflate(getLayoutInflater()); setContentView(activityAccountSettingsEmailBinding.getRoot()); - boolean connToInternet = AppUtil.hasNetworkConnection(appCtx); + activityAccountSettingsEmailBinding.topAppBar.setNavigationOnClickListener(v -> finish()); - InputMethodManager imm = - (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); + activityAccountSettingsEmailBinding.topAppBar.setOnMenuItemClickListener( + menuItem -> { + int id = menuItem.getItemId(); - activityAccountSettingsEmailBinding.userEmail.requestFocus(); - assert imm != null; - imm.showSoftInput( - activityAccountSettingsEmailBinding.userEmail, InputMethodManager.SHOW_IMPLICIT); - - initCloseListener(); - activityAccountSettingsEmailBinding.close.setOnClickListener(onClickListener); - - if (!connToInternet) { - - disableProcessButton(); - } else { - - activityAccountSettingsEmailBinding.addEmailButton.setOnClickListener(addEmailListener); - } + if (id == R.id.save) { + processAddNewEmail(); + return true; + } else { + return super.onOptionsItemSelected(menuItem); + } + }); } private void processAddNewEmail() { - boolean connToInternet = AppUtil.hasNetworkConnection(appCtx); - String newUserEmail = Objects.requireNonNull(activityAccountSettingsEmailBinding.userEmail.getText()) .toString() .trim(); - if (!connToInternet) { - - Toasty.error(ctx, getResources().getString(R.string.checkNetConnection)); - return; - } - if (newUserEmail.equals("")) { - Toasty.error(ctx, getString(R.string.emailErrorEmpty)); + SnackBar.error( + ctx, findViewById(android.R.id.content), getString(R.string.emailErrorEmpty)); return; } else if (!Patterns.EMAIL_ADDRESS.matcher(newUserEmail).matches()) { - Toasty.warning(ctx, getString(R.string.emailErrorInvalid)); + SnackBar.error( + ctx, findViewById(android.R.id.content), getString(R.string.emailErrorInvalid)); return; } List newEmailList = new ArrayList<>(Arrays.asList(newUserEmail.split(","))); - disableProcessButton(); addNewEmail(newEmailList); } @@ -111,54 +91,44 @@ public class AccountSettingsEmailActivity extends BaseActivity { if (response.code() == 201) { - Toasty.success(ctx, getString(R.string.emailAddedText)); + SnackBar.info( + ctx, + findViewById(android.R.id.content), + getString(R.string.emailAddedText)); AccountSettingsEmailsFragment.refreshEmails = true; - enableProcessButton(); - finish(); + new Handler().postDelayed(() -> finish(), 3000); } else if (response.code() == 401) { - enableProcessButton(); AlertDialogs.authorizationTokenRevokedDialog(ctx); } else if (response.code() == 403) { - enableProcessButton(); - Toasty.error(ctx, ctx.getString(R.string.authorizeError)); + SnackBar.error( + ctx, + findViewById(android.R.id.content), + getString(R.string.authorizeError)); } else if (response.code() == 404) { - enableProcessButton(); - Toasty.warning(ctx, ctx.getString(R.string.apiNotFound)); + SnackBar.error( + ctx, + findViewById(android.R.id.content), + getString(R.string.apiNotFound)); } else if (response.code() == 422) { - enableProcessButton(); - Toasty.warning(ctx, ctx.getString(R.string.emailErrorInUse)); + SnackBar.error( + ctx, + findViewById(android.R.id.content), + getString(R.string.emailErrorInUse)); } else { - enableProcessButton(); - Toasty.error(ctx, getString(R.string.genericError)); + SnackBar.error( + ctx, + findViewById(android.R.id.content), + getString(R.string.genericError)); } } @Override - public void onFailure(@NonNull Call> call, @NonNull Throwable t) { - - Log.e("onFailure", t.toString()); - enableProcessButton(); - } + public void onFailure(@NonNull Call> call, @NonNull Throwable t) {} }); } - - private void initCloseListener() { - - onClickListener = view -> finish(); - } - - private void disableProcessButton() { - - activityAccountSettingsEmailBinding.addEmailButton.setEnabled(false); - } - - private void enableProcessButton() { - - activityAccountSettingsEmailBinding.addEmailButton.setEnabled(true); - } } diff --git a/app/src/main/res/layout/activity_account_settings_email.xml b/app/src/main/res/layout/activity_account_settings_email.xml index a4b5c8dd..fa24c6aa 100644 --- a/app/src/main/res/layout/activity_account_settings_email.xml +++ b/app/src/main/res/layout/activity_account_settings_email.xml @@ -1,72 +1,63 @@ - + xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto"> + android:background="?attr/primaryBackgroundColor" + android:fitsSystemWindows="true"> - + app:layout_scrollFlags="scroll|exitUntilCollapsed|snap" + app:contentScrim="?attr/primaryBackgroundColor" + android:layout_height="?attr/collapsingToolbarLayoutLargeSize"> - + - - - + - + android:layout_height="match_parent" + app:layout_behavior="@string/appbar_scrolling_view_behavior"> - + + + - + - + - + diff --git a/app/src/main/res/menu/save.xml b/app/src/main/res/menu/save.xml index 242959f1..073af93e 100644 --- a/app/src/main/res/menu/save.xml +++ b/app/src/main/res/menu/save.xml @@ -5,7 +5,6 @@