Browse Source

ProgressDialog replaced by ProgressBar. Login screen focuses fixes.

pull/24/head
Apostolos Fanakis 8 years ago
parent
commit
994d4d5057
  1. 33
      app/src/main/java/gr/thmmy/mthmmy/activities/LoginActivity.java
  2. 24
      app/src/main/res/drawable/login_progress_bar_bg.xml
  3. 188
      app/src/main/res/layout/activity_login.xml
  4. 7
      app/src/main/res/values/strings.xml

33
app/src/main/java/gr/thmmy/mthmmy/activities/LoginActivity.java

@ -1,13 +1,15 @@
package gr.thmmy.mthmmy.activities; package gr.thmmy.mthmmy.activities;
import android.app.ProgressDialog;
import android.content.Intent; import android.content.Intent;
import android.os.AsyncTask; import android.os.AsyncTask;
import android.os.Bundle; import android.os.Bundle;
import android.util.Log; import android.util.Log;
import android.view.View; import android.view.View;
import android.view.inputmethod.InputMethodManager;
import android.widget.Button; import android.widget.Button;
import android.widget.EditText; import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.ScrollView;
import android.widget.Toast; import android.widget.Toast;
import gr.thmmy.mthmmy.R; import gr.thmmy.mthmmy.R;
@ -100,6 +102,7 @@ public class LoginActivity extends BaseActivity {
if (username.isEmpty()) { if (username.isEmpty()) {
inputUsername.setError("Enter a valid username"); inputUsername.setError("Enter a valid username");
inputUsername.requestFocus();
valid = false; valid = false;
} else { } else {
inputUsername.setError(null); inputUsername.setError(null);
@ -107,6 +110,8 @@ public class LoginActivity extends BaseActivity {
if (password.isEmpty()) { if (password.isEmpty()) {
inputPassword.setError("Enter a valid password", null); inputPassword.setError("Enter a valid password", null);
if (valid)
inputPassword.requestFocus();
valid = false; valid = false;
} else { } else {
inputPassword.setError(null); inputPassword.setError(null);
@ -118,7 +123,8 @@ public class LoginActivity extends BaseActivity {
//--------------------------------------------LOGIN------------------------------------------------- //--------------------------------------------LOGIN-------------------------------------------------
private class LoginTask extends AsyncTask<String, Void, Integer> { private class LoginTask extends AsyncTask<String, Void, Integer> {
//Class variables //Class variables
ProgressDialog progressDialog; private LinearLayout spinner;
private ScrollView loginContent;
@Override @Override
protected Integer doInBackground(String... params) { protected Integer doInBackground(String... params) {
@ -129,11 +135,17 @@ public class LoginActivity extends BaseActivity {
protected void onPreExecute() { //Show a progress dialog until done protected void onPreExecute() { //Show a progress dialog until done
btnLogin.setEnabled(false); //Login button shouldn't be pressed during this btnLogin.setEnabled(false); //Login button shouldn't be pressed during this
progressDialog = new ProgressDialog(LoginActivity.this,R.style.AppTheme_Dark_Dialog); spinner = (LinearLayout) findViewById(R.id.login_progress_bar);
progressDialog.setCancelable(false); loginContent = (ScrollView) findViewById(R.id.inner_scroll_view);
progressDialog.setIndeterminate(true);
progressDialog.setMessage("Authenticating..."); View view = getCurrentFocus();
progressDialog.show(); if (view != null) {
InputMethodManager imm = (InputMethodManager)getSystemService(INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
}
loginContent.setVisibility(View.INVISIBLE);
spinner.setVisibility(View.VISIBLE);
} }
@ -153,10 +165,12 @@ public class LoginActivity extends BaseActivity {
case WRONG_USER: case WRONG_USER:
Toast.makeText(getApplicationContext(), Toast.makeText(getApplicationContext(),
"Wrong username!", Toast.LENGTH_LONG).show(); "Wrong username!", Toast.LENGTH_LONG).show();
inputUsername.requestFocus();
break; break;
case WRONG_PASSWORD: case WRONG_PASSWORD:
Toast.makeText(getApplicationContext(), Toast.makeText(getApplicationContext(),
"Wrong password!", Toast.LENGTH_LONG).show(); "Wrong password!", Toast.LENGTH_LONG).show();
inputPassword.requestFocus();
break; break;
case FAILURE: case FAILURE:
Toast.makeText(getApplicationContext(), Toast.makeText(getApplicationContext(),
@ -174,9 +188,10 @@ public class LoginActivity extends BaseActivity {
} }
//Login failed //Login failed
btnLogin.setEnabled(true); //Re-enable login button btnLogin.setEnabled(true); //Re-enable login button
progressDialog.dismiss(); //Hide progress dialog
loginContent.setVisibility(View.VISIBLE);
spinner.setVisibility(View.INVISIBLE);
} }
} }
//---------------------------------------LOGIN ENDS------------------------------------------------- //---------------------------------------LOGIN ENDS-------------------------------------------------
} }

24
app/src/main/res/drawable/login_progress_bar_bg.xml

@ -0,0 +1,24 @@
<?xml version="1.0" encoding="utf-8"?>
<rotate xmlns:android="http://schemas.android.com/apk/res/android"
android:fromDegrees="0"
android:pivotX="50%"
android:pivotY="50%"
android:toDegrees="360">
<shape
android:innerRadiusRatio="3"
android:shape="ring"
android:thicknessRatio="8"
android:useLevel="false">
<size
android:width="76dip"
android:height="76dip"/>
<gradient
android:angle="0"
android:endColor="@color/accent"
android:startColor="@color/accent"
android:type="sweep"
android:useLevel="false"
/>
</shape>
</rotate>

188
app/src/main/res/layout/activity_login.xml

@ -1,97 +1,129 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="fill_parent" android:layout_width="fill_parent"
android:layout_height="fill_parent" android:layout_height="fill_parent"
android:fitsSystemWindows="true"> android:fitsSystemWindows="true">
<LinearLayout <ScrollView
android:id="@+id/inner_scroll_view"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="match_parent">
android:layout_gravity="top"
android:focusableInTouchMode="true"
android:orientation="vertical"
android:paddingLeft="24dp"
android:paddingRight="24dp">
<Space <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="25dp"/> android:layout_height="wrap_content"
android:layout_gravity="top"
android:focusableInTouchMode="true"
android:orientation="vertical"
android:paddingLeft="24dp"
android:paddingRight="24dp">
<ImageView <Space
android:id="@+id/thmmyLogo" android:layout_width="match_parent"
android:layout_width="match_parent" android:layout_height="25dp"/>
android:layout_height="144dp"
android:layout_gravity="center_horizontal"
android:layout_marginBottom="0dp"
android:contentDescription="@string/thmmy_img_description"
android:src="@drawable/logo_try_no_letter"/>
<ImageView
android:id="@+id/thmmy3dImg"
android:layout_width="match_parent"
android:layout_height="40dp"
android:layout_gravity="center_horizontal"
android:layout_marginBottom="0dp"
android:contentDescription="@string/thmmy_img_description"
android:src="@drawable/thmmy_material_somehow"/>
<Space <ImageView
android:layout_width="match_parent" android:id="@+id/thmmyLogo"
android:layout_height="10dp"/> android:layout_width="match_parent"
android:layout_height="144dp"
android:layout_gravity="center_horizontal"
android:layout_marginBottom="0dp"
android:contentDescription="@string/thmmy_img_description"
android:src="@drawable/logo_try_no_letter"/>
<!-- Username Label --> <ImageView
<android.support.design.widget.TextInputLayout android:id="@+id/thmmy3dImg"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="40dp"
android:layout_marginBottom="8dp" android:layout_gravity="center_horizontal"
android:layout_marginTop="8dp"> android:layout_marginBottom="0dp"
android:contentDescription="@string/thmmy_img_description"
android:src="@drawable/thmmy_material_somehow"/>
<Space
android:layout_width="match_parent"
android:layout_height="10dp"/>
<EditText <!-- Username Label -->
android:id="@+id/username" <android.support.design.widget.TextInputLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:hint="@string/hint_username" android:layout_marginBottom="8dp"
android:inputType="textPersonName"/> android:layout_marginTop="8dp">
</android.support.design.widget.TextInputLayout>
<!-- Password Label --> <EditText
<android.support.design.widget.TextInputLayout android:id="@+id/username"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
app:passwordToggleEnabled="true" android:hint="@string/hint_username"
android:layout_marginBottom="8dp" android:inputType="textPersonName"/>
android:layout_marginTop="8dp"> </android.support.design.widget.TextInputLayout>
<EditText <!-- Password Label -->
android:id="@+id/password" <android.support.design.widget.TextInputLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:hint="@string/hint_password" android:layout_marginBottom="8dp"
android:inputType="textPassword"/> android:layout_marginTop="8dp"
</android.support.design.widget.TextInputLayout> app:passwordToggleEnabled="true">
<!-- Login Button --> <EditText
<android.support.v7.widget.AppCompatButton android:id="@+id/password"
android:id="@+id/btnLogin" android:layout_width="match_parent"
android:layout_width="match_parent" android:layout_height="wrap_content"
android:layout_height="wrap_content" android:hint="@string/hint_password"
android:layout_marginBottom="24dp" android:inputType="textPassword"/>
android:layout_marginTop="24dp" </android.support.design.widget.TextInputLayout>
android:padding="12dp"
android:text="@string/btn_login" <!-- Login Button -->
android:textSize="18sp"/> <android.support.v7.widget.AppCompatButton
android:id="@+id/btnLogin"
<Button android:layout_width="match_parent"
android:id="@+id/btnContinueAsGuest" android:layout_height="wrap_content"
android:layout_width="match_parent" android:layout_marginBottom="24dp"
android:layout_marginTop="24dp"
android:padding="12dp"
android:text="@string/btn_login"
android:textSize="18sp"/>
<Button
android:id="@+id/btnContinueAsGuest"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="24dp"
android:layout_marginTop="40dip"
android:background="@null"
android:text="@string/btn_continue_as_guest"
android:textAllCaps="false"
android:textSize="15sp"/>
</LinearLayout>
</ScrollView>
<LinearLayout
android:id="@+id/login_progress_bar"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:orientation="vertical"
android:visibility="invisible">
<ProgressBar
style="?android:attr/progressBarStyleInverse"
android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginBottom="24dp" android:layout_gravity="center"
android:layout_marginTop="40dip" android:background="@drawable/login_progress_bar_bg"/>
android:background="@null"
android:text="@string/btn_continue_as_guest"
android:textAllCaps="false"
android:textSize="15sp"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginTop="10dp"
android:text="@string/login_spinner"
android:textColor="@color/accent"
android:textSize="20sp"
android:textStyle="bold"/>
</LinearLayout> </LinearLayout>
</ScrollView> </RelativeLayout>

7
app/src/main/res/values/strings.xml

@ -11,11 +11,12 @@
<string name="version">v%1$s</string> <string name="version">v%1$s</string>
<string name="logo">logo</string> <string name="logo">logo</string>
<string name="login">Login</string> <string name="login">Login</string>
<string name="login_spinner">Authenticating&#8230;</string>
<string name="logout">Logout</string> <string name="logout">Logout</string>
<string name="username">Username should be here...</string> <string name="username">Username should be here&#8230;</string>
<string name="subject">Subject should be here...</string> <string name="subject">Subject should be here&#8230;</string>
<string name="post">Post should be here...</string> <string name="post">Post should be here&#8230;</string>
<string name="text_first">first</string> <string name="text_first">first</string>
<string name="text_previous">previous</string> <string name="text_previous">previous</string>
<string name="text_page">Page</string> <string name="text_page">Page</string>

Loading…
Cancel
Save