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