Show Errors on login!

This commit is contained in:
Caesar2011
2018-10-19 18:00:34 +02:00
parent a6f7e3c7fd
commit 4f2cb4be8c
5 changed files with 43 additions and 4 deletions

View File

@@ -6,6 +6,7 @@ import android.view.Menu;
import android.view.MenuItem; import android.view.MenuItem;
import android.view.View; import android.view.View;
import android.widget.TextView; import android.widget.TextView;
import android.widget.Toast;
import com.google.android.material.navigation.NavigationView; import com.google.android.material.navigation.NavigationView;
@@ -476,36 +477,54 @@ public class MainActivity extends AppCompatActivity
toLoginState(loginToken.getFullname(), loginToken.getEmail(), getDefaultFragmentAfterLogin(), "", onlineMode); toLoginState(loginToken.getFullname(), loginToken.getEmail(), getDefaultFragmentAfterLogin(), "", onlineMode);
} }
@Override
public void onModulesFragmentInteraction(final String itemID) { public void onModulesFragmentInteraction(final String itemID) {
changeFragment(FRAGMENT_MODULES_DETAILS, itemID); changeFragment(FRAGMENT_MODULES_DETAILS, itemID);
} }
@Override
public void onCanteensFragmentInteraction(final int itemID) { public void onCanteensFragmentInteraction(final int itemID) {
changeFragment(FRAGMENT_CANTEENS_DETAILS, String.valueOf(itemID)); changeFragment(FRAGMENT_CANTEENS_DETAILS, String.valueOf(itemID));
} }
@Override
public void onTitleTextChange(String newTitle) { public void onTitleTextChange(String newTitle) {
setTitle(newTitle); setTitle(newTitle);
} }
@Override
public void onTitleTextChange(@StringRes int titleId) { public void onTitleTextChange(@StringRes int titleId) {
setTitle(titleId); setTitle(titleId);
} }
@Override
public void loginTokenInvalid(boolean doPrecheck) { public void loginTokenInvalid(boolean doPrecheck) {
getKVV().invalidate(); getKVV().invalidate();
checkAndDoLogin(); checkAndDoLogin();
} }
@Override
public void refreshFailed(boolean isFailed) { public void refreshFailed(boolean isFailed) {
setRefreshFailedBanner(isFailed); setRefreshFailedBanner(isFailed);
} }
@Override
public void addRequestPermissionsResultListener(RequestPermissionsResultListener listener, String id) { public void addRequestPermissionsResultListener(RequestPermissionsResultListener listener, String id) {
permissionListeners.put(id, listener); permissionListeners.put(id, listener);
} }
@Override
public void removeRequestPermissionsResultListener(String id) { public void removeRequestPermissionsResultListener(String id) {
permissionListeners.remove(id); permissionListeners.remove(id);
} }
@Override
public void showToast(@StringRes int msgStringRes) {
showToast(getString(msgStringRes));
}
@Override
public void showToast(String message) {
Toast.makeText(this, message, Toast.LENGTH_SHORT).show();
}
} }

View File

@@ -33,6 +33,7 @@ import de.sebse.fuplanner.tools.logging.Logger;
public class LoginFragment extends Fragment { public class LoginFragment extends Fragment {
private OnLoginFragmentInteractionListener mListener; private OnLoginFragmentInteractionListener mListener;
private final Logger log = new Logger(this); private final Logger log = new Logger(this);
private MainActivityListener mActivityListener;
public LoginFragment() { public LoginFragment() {
// Required empty public constructor // Required empty public constructor
@@ -96,10 +97,20 @@ public class LoginFragment extends Fragment {
kvv.login(username, password, success -> { kvv.login(username, password, success -> {
progressDialog.dismiss(); progressDialog.dismiss();
gauth.setLoginState(username, password); gauth.setLoginState(username, password);
if (mListener != null) if (mListener != null) {
input_usr.setError(null);
input_pwd.setError(null);
mListener.onLoginFragmentInteraction(success, true); mListener.onLoginFragmentInteraction(success, true);
}
}, error -> { }, error -> {
progressDialog.dismiss(); progressDialog.dismiss();
// Invalid password
if (error.getCode() == 100131 && mActivityListener != null) {
mActivityListener.showToast(R.string.invalid_credentials);
input_usr.setError(input_usr.getResources().getString(R.string.invalid_credentials));
input_pwd.setError(input_pwd.getResources().getString(R.string.invalid_credentials));
} else
mActivityListener.showToast(v.getResources().getString(R.string.error_occurred_code, error.getCode()));
log.e("Error on KVV login!", error); log.e("Error on KVV login!", error);
}); });
} }
@@ -120,9 +131,10 @@ public class LoginFragment extends Fragment {
throw new RuntimeException(context.toString() throw new RuntimeException(context.toString()
+ " must implement OnLoginFragmentInteractionListener"); + " must implement OnLoginFragmentInteractionListener");
} }
if (context instanceof MainActivityListener) if (context instanceof MainActivityListener) {
((MainActivityListener) context).onTitleTextChange(R.string.log_in); mActivityListener = (MainActivityListener) context;
else mActivityListener.onTitleTextChange(R.string.log_in);
} else
throw new RuntimeException(context.toString() + "must implement MainActivityListener"); throw new RuntimeException(context.toString() + "must implement MainActivityListener");
} }

View File

@@ -24,4 +24,8 @@ public interface MainActivityListener {
void addRequestPermissionsResultListener(RequestPermissionsResultListener listener, String id); void addRequestPermissionsResultListener(RequestPermissionsResultListener listener, String id);
void removeRequestPermissionsResultListener(String id); void removeRequestPermissionsResultListener(String id);
void showToast(@StringRes int msgStringRes);
void showToast(String message);
} }

View File

@@ -61,4 +61,6 @@
<string name="openFile">Datei Öffnen</string> <string name="openFile">Datei Öffnen</string>
<string name="ErrorFileDownload">Download-Fehler</string> <string name="ErrorFileDownload">Download-Fehler</string>
<string name="ErrorFileDownloadText">Beim Herunterladen der Datei ist ein Fehler aufgetreten. Prüfe, ob Du mit dem Internet verbunden bist und der App Zugriff auf den Speicher gewährt hast.</string> <string name="ErrorFileDownloadText">Beim Herunterladen der Datei ist ein Fehler aufgetreten. Prüfe, ob Du mit dem Internet verbunden bist und der App Zugriff auf den Speicher gewährt hast.</string>
<string name="invalid_credentials">Ungültiger Benutzername oder Password!</string>
<string name="error_occurred_code">Fehler %1$d aufgetreten!</string>
</resources> </resources>

View File

@@ -68,4 +68,6 @@
<string name="openFile">Open File</string> <string name="openFile">Open File</string>
<string name="ErrorFileDownload">Download Error</string> <string name="ErrorFileDownload">Download Error</string>
<string name="ErrorFileDownloadText">An error occurred while downloading the file. Please check if you are connected to the internet and if you have granted storage access to the app.</string> <string name="ErrorFileDownloadText">An error occurred while downloading the file. Please check if you are connected to the internet and if you have granted storage access to the app.</string>
<string name="invalid_credentials">Invalid username or password!</string>
<string name="error_occurred_code">Error occurred: %1$d</string>
</resources> </resources>