Redesign login screen
|
|
@ -120,8 +120,8 @@
|
|||
<orderEntry type="library" exported="" name="crashlytics-core-2.3.0" level="project" />
|
||||
<orderEntry type="library" exported="" name="recyclerview-v7-23.1.0" level="project" />
|
||||
<orderEntry type="library" exported="" name="aboutlibraries-5.0.5" level="project" />
|
||||
<orderEntry type="library" exported="" name="antlr4-runtime-4.5" level="project" />
|
||||
<orderEntry type="library" exported="" name="antlr4-annotations-4.5" level="project" />
|
||||
<orderEntry type="library" exported="" name="antlr4-runtime-4.5" level="project" />
|
||||
<orderEntry type="library" exported="" name="library-1.0-rc1" level="project" />
|
||||
<orderEntry type="library" exported="" name="library-1.1.4" level="project" />
|
||||
<orderEntry type="library" exported="" name="org.abego.treelayout.core-1.0.1" level="project" />
|
||||
|
|
@ -129,8 +129,8 @@
|
|||
<orderEntry type="library" exported="" name="materialdrawer-4.3.8" level="project" />
|
||||
<orderEntry type="library" exported="" name="appcompat-v7-23.1.0" level="project" />
|
||||
<orderEntry type="library" exported="" name="checkout-0.7.4" level="project" />
|
||||
<orderEntry type="library" exported="" name="compilerCommon-1.0-rc1" level="project" />
|
||||
<orderEntry type="library" exported="" name="support-annotations-23.1.0" level="project" />
|
||||
<orderEntry type="library" exported="" name="compilerCommon-1.0-rc1" level="project" />
|
||||
<orderEntry type="library" exported="" name="compiler-1.0-rc1" level="project" />
|
||||
<orderEntry type="library" exported="" name="library-2.4.0" level="project" />
|
||||
<orderEntry type="library" exported="" name="mimecraft-1.1.1" level="project" />
|
||||
|
|
@ -146,8 +146,8 @@
|
|||
<orderEntry type="library" exported="" name="paperboy-2.1.0" level="project" />
|
||||
<orderEntry type="library" exported="" name="javawriter-2.5.0" level="project" />
|
||||
<orderEntry type="library" exported="" name="commons-codec-1.10" level="project" />
|
||||
<orderEntry type="library" exported="" name="commons-lang3-3.3.2" level="project" />
|
||||
<orderEntry type="library" exported="" name="kotlin-stdlib-0.12.613" level="project" />
|
||||
<orderEntry type="library" exported="" name="commons-lang3-3.3.2" level="project" />
|
||||
<orderEntry type="library" exported="" name="fab-1.6.1" level="project" />
|
||||
<orderEntry type="library" exported="" name="instabugcore-1.8-SNAPSHOT" level="project" />
|
||||
<orderEntry type="library" exported="" name="cardview-v7-22.2.0" level="project" />
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 1.7 KiB |
|
Before Width: | Height: | Size: 1.3 KiB |
BIN
Habitica/res/drawable-mdpi/ic_email.png
Normal file
|
After Width: | Height: | Size: 3.2 KiB |
BIN
Habitica/res/drawable-mdpi/ic_gryphon.png
Normal file
|
After Width: | Height: | Size: 19 KiB |
BIN
Habitica/res/drawable-mdpi/ic_habitica.png
Normal file
|
After Width: | Height: | Size: 20 KiB |
BIN
Habitica/res/drawable-mdpi/ic_header_healer.png
Normal file
|
After Width: | Height: | Size: 19 KiB |
|
Before Width: | Height: | Size: 940 B After Width: | Height: | Size: 19 KiB |
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 19 KiB |
|
Before Width: | Height: | Size: 811 B After Width: | Height: | Size: 19 KiB |
BIN
Habitica/res/drawable-mdpi/ic_password.png
Normal file
|
After Width: | Height: | Size: 3.3 KiB |
BIN
Habitica/res/drawable-mdpi/ic_username.png
Normal file
|
After Width: | Height: | Size: 3.1 KiB |
BIN
Habitica/res/drawable-xhdpi/ic_email.png
Normal file
|
After Width: | Height: | Size: 3.6 KiB |
BIN
Habitica/res/drawable-xhdpi/ic_gryphon.png
Normal file
|
After Width: | Height: | Size: 21 KiB |
BIN
Habitica/res/drawable-xhdpi/ic_habitica.png
Normal file
|
After Width: | Height: | Size: 22 KiB |
BIN
Habitica/res/drawable-xhdpi/ic_header_healer.png
Normal file
|
After Width: | Height: | Size: 20 KiB |
|
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 20 KiB |
|
Before Width: | Height: | Size: 2.7 KiB After Width: | Height: | Size: 20 KiB |
|
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 19 KiB |
BIN
Habitica/res/drawable-xhdpi/ic_password.png
Normal file
|
After Width: | Height: | Size: 3.7 KiB |
BIN
Habitica/res/drawable-xhdpi/ic_username.png
Normal file
|
After Width: | Height: | Size: 3.5 KiB |
BIN
Habitica/res/drawable-xxhdpi/ic_email.png
Normal file
|
After Width: | Height: | Size: 4.1 KiB |
BIN
Habitica/res/drawable-xxhdpi/ic_gryphon.png
Normal file
|
After Width: | Height: | Size: 24 KiB |
BIN
Habitica/res/drawable-xxhdpi/ic_habitica.png
Normal file
|
After Width: | Height: | Size: 24 KiB |
BIN
Habitica/res/drawable-xxhdpi/ic_header_healer.png
Normal file
|
After Width: | Height: | Size: 21 KiB |
|
Before Width: | Height: | Size: 3.3 KiB After Width: | Height: | Size: 20 KiB |
|
Before Width: | Height: | Size: 5.1 KiB After Width: | Height: | Size: 21 KiB |
|
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 20 KiB |
BIN
Habitica/res/drawable-xxhdpi/ic_password.png
Normal file
|
After Width: | Height: | Size: 4.2 KiB |
BIN
Habitica/res/drawable-xxhdpi/ic_username.png
Normal file
|
After Width: | Height: | Size: 3.9 KiB |
|
|
@ -1,170 +1,174 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:orientation="vertical"
|
||||
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:gravity="center"
|
||||
android:id="@+id/login.linear.layout">
|
||||
<ImageView
|
||||
android:layout_width="100dp"
|
||||
android:layout_height="100dp"
|
||||
android:id="@+id/login_barcode"
|
||||
android:clickable="true"
|
||||
android:scaleType="fitCenter"
|
||||
android:background="@drawable/selectable_background_cardbank"
|
||||
android:src="@drawable/ic_action_barcode_dark"/>
|
||||
<LinearLayout
|
||||
android:id="@+id/login_tokens_layout"
|
||||
android:orientation="horizontal"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:visibility="gone">
|
||||
<EditText
|
||||
android:id="@+id/userId"
|
||||
android:layout_width="150dip"
|
||||
android:layout_height="wrap_content"
|
||||
android:singleLine="true"
|
||||
android:imeOptions="actionNext"
|
||||
android:hint="@string/userToken"
|
||||
/>
|
||||
<EditText
|
||||
android:id="@+id/apiToken"
|
||||
android:layout_width="150dip"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<TableLayout
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:id="@+id/login.linear.layout"
|
||||
android:gravity="center"
|
||||
android:paddingTop="40dp"
|
||||
android:paddingBottom="40dp"
|
||||
android:orientation="vertical"
|
||||
android:shrinkColumns="0"
|
||||
android:layout_gravity="center_horizontal">
|
||||
|
||||
<TableRow
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:gravity="center"
|
||||
android:layout_gravity="center">
|
||||
|
||||
<ImageView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:id="@+id/imageView"
|
||||
android:layout_gravity="center_horizontal"
|
||||
android:contentDescription="@string/gryphon"
|
||||
android:src="@drawable/ic_gryphon"
|
||||
android:layout_span="2" />
|
||||
</TableRow>
|
||||
|
||||
<TableRow
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:gravity="center">
|
||||
|
||||
<ImageView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:id="@+id/imageView2"
|
||||
android:src="@drawable/ic_habitica"
|
||||
android:layout_span="2" />
|
||||
</TableRow>
|
||||
|
||||
<TableRow
|
||||
android:id="@+id/username_row"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_gravity="center">
|
||||
|
||||
<ImageView
|
||||
android:layout_width="17dp"
|
||||
android:layout_height="17dp"
|
||||
android:id="@+id/imageView4"
|
||||
android:src="@drawable/ic_username"
|
||||
android:layout_gravity="center"
|
||||
android:layout_marginRight="4dp" />
|
||||
|
||||
<EditText
|
||||
android:id="@+id/username"
|
||||
android:layout_width="@dimen/login_field_width"
|
||||
android:layout_height="wrap_content"
|
||||
android:singleLine="true"
|
||||
android:imeOptions="actionNext"
|
||||
android:hint="@string/username"
|
||||
/>
|
||||
|
||||
</TableRow>
|
||||
|
||||
<TableRow
|
||||
android:id="@+id/email_row"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:visibility="gone">
|
||||
|
||||
<ImageView
|
||||
android:layout_width="17dp"
|
||||
android:layout_height="17dp"
|
||||
android:id="@+id/imageView5"
|
||||
android:src="@drawable/ic_email"
|
||||
android:layout_gravity="center"
|
||||
android:layout_marginRight="4dp" />
|
||||
|
||||
<EditText
|
||||
android:id="@+id/email"
|
||||
android:layout_width="@dimen/login_field_width"
|
||||
android:layout_height="wrap_content"
|
||||
android:inputType="textEmailAddress"
|
||||
android:singleLine="true"
|
||||
android:imeOptions="actionNext"
|
||||
android:hint="@string/emailAddress" />
|
||||
</TableRow>
|
||||
|
||||
<TableRow
|
||||
android:id="@+id/password_row"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<ImageView
|
||||
android:layout_width="17dp"
|
||||
android:layout_height="17dp"
|
||||
android:id="@+id/imageView6"
|
||||
android:src="@drawable/ic_password"
|
||||
android:layout_gravity="center"
|
||||
android:layout_marginRight="4dp" />
|
||||
|
||||
<EditText
|
||||
android:id="@+id/password"
|
||||
android:layout_width="@dimen/login_field_width"
|
||||
android:layout_height="wrap_content"
|
||||
android:inputType="textPassword"
|
||||
android:singleLine="true"
|
||||
android:imeOptions="actionDone"
|
||||
android:layout_height="wrap_content"
|
||||
android:hint="@string/apiToken"
|
||||
android:hint="@string/password"
|
||||
/>
|
||||
</LinearLayout>
|
||||
<LinearLayout
|
||||
android:id="@+id/login_normal_layout"
|
||||
android:orientation="vertical"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:visibility="gone">
|
||||
<TextView
|
||||
android:id="@+id/fb_message"
|
||||
android:text="@string/fb_login_message"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="center"/>
|
||||
<LinearLayout
|
||||
android:orientation="horizontal"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center">
|
||||
<EditText
|
||||
android:id="@+id/username"
|
||||
android:layout_width="150dip"
|
||||
</TableRow>
|
||||
|
||||
<TableRow
|
||||
android:id="@+id/confirm_password_row"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:visibility="gone">
|
||||
|
||||
<ImageView
|
||||
android:layout_width="17dp"
|
||||
android:layout_height="17dp"
|
||||
android:id="@+id/imageView7"
|
||||
android:src="@drawable/ic_password"
|
||||
android:layout_gravity="center"
|
||||
android:layout_marginRight="4dp" />
|
||||
|
||||
<EditText
|
||||
android:id="@+id/confirm_password"
|
||||
android:layout_width="@dimen/login_field_width"
|
||||
android:layout_height="wrap_content"
|
||||
android:singleLine="true"
|
||||
android:imeOptions="actionNext"
|
||||
android:hint="@string/username"
|
||||
/>
|
||||
<EditText
|
||||
android:id="@+id/password"
|
||||
android:layout_width="150dip"
|
||||
android:layout_height="wrap_content"
|
||||
android:inputType="textPassword"
|
||||
android:singleLine="true"
|
||||
android:imeOptions="actionDone"
|
||||
android:hint="@string/password"
|
||||
/>
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
<LinearLayout
|
||||
android:id="@+id/register_layout"
|
||||
android:orientation="vertical"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:visibility="gone"
|
||||
>
|
||||
<LinearLayout
|
||||
android:orientation="horizontal"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:id="@+id/login_btn_container">
|
||||
<EditText
|
||||
android:id="@+id/reg_username"
|
||||
android:layout_width="150dip"
|
||||
android:layout_height="wrap_content"
|
||||
android:singleLine="true"
|
||||
android:imeOptions="actionNext"
|
||||
android:hint="@string/username"
|
||||
/>
|
||||
<EditText
|
||||
android:id="@+id/reg_email"
|
||||
android:layout_width="150dip"
|
||||
android:layout_height="wrap_content"
|
||||
android:inputType="textEmailAddress"
|
||||
android:singleLine="true"
|
||||
android:imeOptions="actionNext"
|
||||
android:hint="@string/emailAddress"
|
||||
/>
|
||||
</LinearLayout>
|
||||
<LinearLayout
|
||||
android:orientation="horizontal"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content">
|
||||
<EditText
|
||||
android:id="@+id/reg_password"
|
||||
android:layout_width="150dip"
|
||||
android:layout_height="wrap_content"
|
||||
android:inputType="textPassword"
|
||||
android:singleLine="true"
|
||||
android:imeOptions="actionNext"
|
||||
android:hint="@string/password"
|
||||
/>
|
||||
<EditText
|
||||
android:id="@+id/reg_confirm_password"
|
||||
android:layout_width="150dip"
|
||||
android:layout_height="wrap_content"
|
||||
android:inputType="textPassword"
|
||||
android:singleLine="true"
|
||||
android:imeOptions="actionDone"
|
||||
android:hint="@string/confirmpassword"
|
||||
/>
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
<LinearLayout
|
||||
android:orientation="vertical"
|
||||
android:id="@+id/buttons"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="center">
|
||||
<LinearLayout
|
||||
android:orientation="horizontal"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="match_parent">
|
||||
<Button
|
||||
android:id="@+id/login_normal_btn"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/login_btn"
|
||||
/>
|
||||
<Button
|
||||
android:id="@+id/login_tokens_btn"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/login_tokens_btn"
|
||||
/>
|
||||
</LinearLayout>
|
||||
<Button
|
||||
android:id="@+id/register_btn"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/register_btn"
|
||||
/>
|
||||
</LinearLayout>
|
||||
<ProgressBar
|
||||
android:id="@+id/PB_AsyncTask"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
style="@style/Widget.ProgressBar.Horizontal"
|
||||
android:indeterminate="true"
|
||||
android:visibility="gone"
|
||||
android:layout_gravity="bottom"
|
||||
android:layout_marginBottom="@dimen/PB_marginBottom"
|
||||
/>
|
||||
</LinearLayout>
|
||||
android:inputType="textPassword"
|
||||
android:singleLine="true"
|
||||
android:imeOptions="actionDone"
|
||||
android:hint="@string/confirmpassword" />
|
||||
</TableRow>
|
||||
|
||||
<TableRow
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<LinearLayout
|
||||
android:orientation="horizontal"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_span="2"
|
||||
android:layout_gravity="center">
|
||||
|
||||
<Button
|
||||
android:id="@+id/login_btn"
|
||||
android:layout_width="150dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/login_btn"
|
||||
android:layout_gravity="center_horizontal" />
|
||||
|
||||
<ProgressBar
|
||||
android:id="@+id/PB_AsyncTask"
|
||||
android:indeterminate="true"
|
||||
android:visibility="gone"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content" />
|
||||
</LinearLayout>
|
||||
|
||||
</TableRow>
|
||||
|
||||
</TableLayout>
|
||||
|
||||
</ScrollView>
|
||||
|
|
@ -4,11 +4,10 @@
|
|||
xmlns:abc="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:app="http://schemas.android.com/tools">
|
||||
<item
|
||||
android:id="@+id/action_info"
|
||||
android:icon="@drawable/ic_menu_info"
|
||||
android:id="@+id/action_toggleRegistering"
|
||||
android:orderInCategory="1"
|
||||
app:showAsAction="always"
|
||||
android:title="@string/action_info"
|
||||
abc:showAsAction="always"/>
|
||||
app:showAsAction="ifRoom"
|
||||
android:title="@string/register_btn"
|
||||
abc:showAsAction="ifRoom"/>
|
||||
|
||||
</menu>
|
||||
4
Habitica/res/values-sw320dp/dimens.xml
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<dimen name="login_field_width">300dp</dimen>
|
||||
</resources>
|
||||
|
|
@ -39,4 +39,6 @@
|
|||
<dimen name="checklist_divider_width">14dp</dimen>
|
||||
<dimen name="checklist_wrapper_width">36dp</dimen>
|
||||
<dimen name="checklist_item_min_height">50dp</dimen>
|
||||
|
||||
<dimen name="login_field_width">350dp</dimen>
|
||||
</resources>
|
||||
|
|
@ -59,11 +59,11 @@
|
|||
<string name="drawer_close">close drawer</string>
|
||||
<string name="missing_tags">…</string>
|
||||
<string name="tags_section_title">Tags</string>
|
||||
<string name="QRCode">To simplify everything you can scan the QRCode to connect to HabitRPG. To
|
||||
<string name="QRCode">To simplify everything you can scan the QRCode to connect to Habitica. To
|
||||
start the scanning mode, use the button in the menu.
|
||||
</string>
|
||||
<string name="SP_acknowledge_qrcode">acknowledge_qrcode_omg</string>
|
||||
<string name="new_todo">New todo</string>
|
||||
<string name="SP_acknowledge_qrcode">acknowledge_qrcode_omg</string>
|
||||
<string name="new_reward">New reward</string>
|
||||
<string name="new_daily">New daily</string>
|
||||
<string name="new_habit">New habit</string>
|
||||
|
|
@ -76,20 +76,17 @@
|
|||
<string name="item_bought">You just bought a shinny new %s!</string>
|
||||
<string name="userToken">User Token</string>
|
||||
<string name="apiToken">API Token</string>
|
||||
<string name="login_btn">Login (normal)</string>
|
||||
<string name="login_btn">Login</string>
|
||||
<string name="register_btn">Register</string>
|
||||
<string name="username">Username</string>
|
||||
<string name="password">Password</string>
|
||||
<string name="emailAddress">Email address</string>
|
||||
<string name="confirmpassword">Confirm password</string>
|
||||
<string name="login_tokens_btn">Login (via tokens)</string>
|
||||
<string name="fb_login_message">If you registered via facebook, please use the QRCode, or login
|
||||
using your API/USER tokens
|
||||
</string>
|
||||
|
||||
<string name="ERR_pb_accountCreation">An error happened. Please try to connect</string>
|
||||
<string name="ERR_pb_connection">Error: your credentials couldn\'t be saved!</string>
|
||||
<string name="logout">Logout</string>
|
||||
<string name="LoginActivityName">Login</string>
|
||||
<string name="LoginActivityName">Welcome</string>
|
||||
<string name="helpString">To use this application, you need to have an account on http://habitrpg.com. You can register using the register button in this application.\n\n
|
||||
If you already have an account, use the connect buttons, or the QRCode scanner. If you created your account using Facebook on the website, you will need to use the QRcode scanner or connect using your API and User token that you can find on http://habitrpg.com.</string>
|
||||
<string name="action_info">Help</string>
|
||||
|
|
@ -157,4 +154,5 @@
|
|||
<string name="title_activity_tavern">Tavern</string>
|
||||
<string name="title_activity_party">Party</string>
|
||||
<string name="title_activity_gem_purchase">Purchase Gems</string>
|
||||
<string name="gryphon">Gryphon</string>
|
||||
</resources>
|
||||
|
|
@ -24,11 +24,13 @@ import android.view.Window;
|
|||
import android.view.WindowManager;
|
||||
import android.view.animation.Animation;
|
||||
import android.view.animation.Transformation;
|
||||
import android.view.inputmethod.EditorInfo;
|
||||
import android.widget.Button;
|
||||
import android.widget.EditText;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.ProgressBar;
|
||||
import android.widget.TableRow;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.habitrpg.android.habitica.callbacks.HabitRPGUserCallback;
|
||||
|
|
@ -54,47 +56,36 @@ public class LoginActivity extends AppCompatActivity
|
|||
private final static String TAG_USERID="user";
|
||||
private final static String TAG_APIKEY="key";
|
||||
|
||||
private Button mRegisterBtn, mLoginNormalBtn, mLoginTokensBtn;
|
||||
private ImageView mLoginBarcode;
|
||||
private LinearLayout mLoginNormalLayout, mLoginTokensLayout, mRegisterLayout, mLoginBtnContainer;
|
||||
private EditText mUserTokenET,mApiTokenET, mUsernameET, mPasswordET,mRegUsername,mRegEmail,mRegPassword,mRegConfirmPassword;
|
||||
private Button mLoginNormalBtn;
|
||||
private EditText mUsernameET, mPasswordET,mEmail,mConfirmPassword;
|
||||
private TableRow mEmailRow, mConfirmPasswordRow;
|
||||
private APIHelper mApiHelper;
|
||||
private Handler mMainHandler;
|
||||
private ProgressBar mProgressBar;
|
||||
public String mTmpUserToken;
|
||||
public String mTmpApiToken;
|
||||
public Boolean isRegistering;
|
||||
private Menu menu;
|
||||
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
setContentView(R.layout.login_screen);
|
||||
|
||||
mRegisterBtn = (Button) this.findViewById(R.id.register_btn);
|
||||
mLoginNormalBtn = (Button) this.findViewById(R.id.login_normal_btn);
|
||||
mLoginTokensBtn = (Button) this.findViewById(R.id.login_tokens_btn);
|
||||
mLoginBarcode = (ImageView) this.findViewById(R.id.login_barcode);
|
||||
mProgressBar = (ProgressBar) this.findViewById(R.id.PB_AsyncTask);
|
||||
mLoginNormalBtn = (Button) this.findViewById(R.id.login_btn);
|
||||
mProgressBar = (ProgressBar) this.findViewById(R.id.PB_AsyncTask);
|
||||
|
||||
mLoginNormalLayout = (LinearLayout) this.findViewById(R.id.login_normal_layout);
|
||||
mLoginTokensLayout = (LinearLayout) this.findViewById(R.id.login_tokens_layout);
|
||||
mRegisterLayout = (LinearLayout) this.findViewById(R.id.register_layout);
|
||||
mLoginBtnContainer = (LinearLayout) this.findViewById(R.id.login_btn_container);
|
||||
|
||||
mUserTokenET = (EditText) this.findViewById(R.id.userId);
|
||||
mApiTokenET = (EditText) this.findViewById(R.id.apiToken);
|
||||
|
||||
mUsernameET = (EditText) this.findViewById(R.id.username);
|
||||
mPasswordET = (EditText) this.findViewById(R.id.password);
|
||||
|
||||
mRegUsername = (EditText) this.findViewById(R.id.reg_username);
|
||||
mRegEmail = (EditText) this.findViewById(R.id.reg_email);
|
||||
mRegPassword = (EditText) this.findViewById(R.id.reg_password);
|
||||
mRegConfirmPassword = (EditText) this.findViewById(R.id.reg_confirm_password);
|
||||
|
||||
mRegisterBtn.setOnClickListener(mRegisterClick);
|
||||
mEmail = (EditText) this.findViewById(R.id.email);
|
||||
mConfirmPassword = (EditText) this.findViewById(R.id.confirm_password);
|
||||
|
||||
mEmailRow = (TableRow) this.findViewById(R.id.email_row);
|
||||
mConfirmPasswordRow = (TableRow) this.findViewById(R.id.confirm_password_row);
|
||||
|
||||
mLoginNormalBtn.setOnClickListener(mLoginNormalClick);
|
||||
mLoginTokensBtn.setOnClickListener(mLoginTokensClick);
|
||||
mLoginBarcode.setOnClickListener(mBarcodeClick);
|
||||
|
||||
HostConfig hc= PrefsActivity.fromContext(this);
|
||||
if(hc ==null) {
|
||||
|
|
@ -102,24 +93,26 @@ public class LoginActivity extends AppCompatActivity
|
|||
}
|
||||
mApiHelper = new APIHelper(this,hc);
|
||||
|
||||
this.isRegistering = false;
|
||||
|
||||
}
|
||||
|
||||
private void resetLayout() {
|
||||
//expand(mLoginBarcode);
|
||||
if(mRegisterBtn.getVisibility() == View.GONE)
|
||||
expand(mRegisterBtn);
|
||||
if(mLoginTokensBtn.getVisibility() == View.GONE)
|
||||
expand(mLoginTokensBtn);
|
||||
if(mLoginNormalBtn.getVisibility() == View.GONE)
|
||||
expand(mLoginNormalBtn);
|
||||
if(mLoginBarcode.getVisibility()==View.GONE)
|
||||
expand(mLoginBarcode);
|
||||
if(mLoginBtnContainer.getVisibility()==View.GONE)
|
||||
expand(mLoginBtnContainer);
|
||||
collapse(mLoginNormalLayout);
|
||||
collapse(mLoginTokensLayout);
|
||||
collapse(mRegisterLayout);
|
||||
|
||||
if (this.isRegistering) {
|
||||
if (this.mEmailRow.getVisibility() == View.GONE) {
|
||||
expand(this.mEmailRow);
|
||||
}
|
||||
if (this.mConfirmPasswordRow.getVisibility() == View.GONE) {
|
||||
expand(this.mConfirmPasswordRow);
|
||||
}
|
||||
} else {
|
||||
if (this.mEmailRow.getVisibility() == View.VISIBLE) {
|
||||
collapse(this.mEmailRow);
|
||||
}
|
||||
if (this.mConfirmPasswordRow.getVisibility() == View.VISIBLE) {
|
||||
collapse(this.mConfirmPasswordRow);
|
||||
}
|
||||
}
|
||||
}
|
||||
private View.OnClickListener mBarcodeClick = new View.OnClickListener() {
|
||||
|
||||
|
|
@ -132,134 +125,38 @@ public class LoginActivity extends AppCompatActivity
|
|||
private View.OnClickListener mRegisterClick = new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
if(mLoginTokensBtn.getVisibility()==View.GONE && mLoginNormalBtn.getVisibility()==View.GONE) {
|
||||
String username, email,password,cpassword;
|
||||
username = String.valueOf(mRegUsername.getText());
|
||||
email = String.valueOf(mRegEmail.getText());
|
||||
password = String.valueOf(mRegPassword.getText());
|
||||
cpassword = String.valueOf(mRegConfirmPassword.getText());
|
||||
mApiHelper.registerUser(v,username,email,password,cpassword);
|
||||
}else {
|
||||
expand(mRegisterLayout);//.setVisibility(View.VISIBLE);
|
||||
collapse(mLoginNormalBtn);//.setVisibility(View.GONE);
|
||||
collapse(mLoginTokensBtn);//.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
}
|
||||
};
|
||||
private View.OnClickListener mLoginNormalClick = new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
if(mRegisterBtn.getVisibility()==View.GONE && mLoginTokensBtn.getVisibility()==View.GONE) {
|
||||
String username,password;
|
||||
username = String.valueOf(mUsernameET.getText());
|
||||
password = String.valueOf(mPasswordET.getText());
|
||||
mApiHelper.connectUser(username,password, LoginActivity.this);
|
||||
} else {
|
||||
expand(mLoginNormalLayout);//.setVisibility(View.VISIBLE);
|
||||
collapse(mRegisterBtn);//.setVisibility(View.GONE);
|
||||
collapse(mLoginTokensBtn);//.setVisibility(View.GONE);
|
||||
}
|
||||
}
|
||||
};
|
||||
private View.OnClickListener mLoginTokensClick = new View.OnClickListener() {
|
||||
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
if (mRegisterBtn.getVisibility() == View.GONE && mLoginNormalBtn.getVisibility() == View.GONE) {
|
||||
mTmpUserToken = String.valueOf(mUserTokenET.getText());
|
||||
mTmpApiToken = String.valueOf(mApiTokenET.getText());
|
||||
HostConfig config = PrefsActivity.fromContext(LoginActivity.this);
|
||||
if(config==null) {
|
||||
config = new HostConfig(getString(R.string.SP_address_default), "80", mTmpApiToken, mTmpUserToken);
|
||||
} else {
|
||||
config.setApi(mTmpApiToken);
|
||||
config.setUser(mTmpUserToken);
|
||||
}
|
||||
APIHelper secApiHelper = new APIHelper(LoginActivity.this, config);
|
||||
secApiHelper.retrieveUser(new HabitRPGUserCallback(LoginActivity.this));
|
||||
|
||||
} else {
|
||||
expand(mLoginTokensLayout);
|
||||
collapse(mLoginNormalBtn);
|
||||
collapse(mRegisterBtn);
|
||||
}
|
||||
mProgressBar.setVisibility(View.VISIBLE);
|
||||
if (isRegistering) {
|
||||
String username, email,password,cpassword;
|
||||
username = String.valueOf(mUsernameET.getText());
|
||||
email = String.valueOf(mEmail.getText());
|
||||
password = String.valueOf(mPasswordET.getText());
|
||||
cpassword = String.valueOf(mConfirmPassword.getText());
|
||||
mApiHelper.registerUser(v,username,email,password,cpassword);
|
||||
} else {
|
||||
String username,password;
|
||||
username = String.valueOf(mUsernameET.getText());
|
||||
password = String.valueOf(mPasswordET.getText());
|
||||
mApiHelper.connectUser(username,password, LoginActivity.this);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
|
||||
private boolean layoutHasChanged() {
|
||||
return mRegisterBtn.getVisibility() == View.GONE || mLoginNormalBtn.getVisibility() == View.GONE ||mLoginTokensBtn.getVisibility() == View.GONE;
|
||||
}
|
||||
@Override
|
||||
public boolean onKeyDown(int keyCode, KeyEvent event) {
|
||||
if (keyCode == KeyEvent.KEYCODE_BACK && layoutHasChanged()) {
|
||||
resetLayout();
|
||||
return true;
|
||||
}
|
||||
return super.onKeyDown(keyCode, event);
|
||||
}
|
||||
public static void expand(final View v) {
|
||||
v.measure(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
|
||||
final int targtetHeight = v.getMeasuredHeight();
|
||||
final int targtetWidth = v.getMeasuredWidth();
|
||||
Log.v("expanding ", "w:" + targtetWidth + " h:"+targtetHeight);
|
||||
//v.getLayoutParams().height = 0;
|
||||
//v.getLayoutParams().width=0;
|
||||
v.setVisibility(View.VISIBLE);//works when the setVisibility is outside the animationlistener.
|
||||
|
||||
Animation a = new Animation()
|
||||
{
|
||||
|
||||
@Override
|
||||
protected void applyTransformation(float interpolatedTime, Transformation t) {
|
||||
v.getLayoutParams().height = interpolatedTime == 1
|
||||
? ViewGroup.LayoutParams.WRAP_CONTENT
|
||||
: (int)(targtetHeight * interpolatedTime);
|
||||
v.getLayoutParams().width = interpolatedTime == 1
|
||||
? ViewGroup.LayoutParams.WRAP_CONTENT
|
||||
: (int)(targtetWidth * interpolatedTime);
|
||||
v.requestLayout();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean willChangeBounds() {
|
||||
return true;
|
||||
}
|
||||
};
|
||||
// 1dp/ms
|
||||
a.setDuration(500);
|
||||
v.startAnimation(a);
|
||||
v.setVisibility(View.VISIBLE);
|
||||
}
|
||||
//
|
||||
|
||||
public static void collapse(final View v) {
|
||||
final int initialHeight = v.getMeasuredHeight();
|
||||
final int initialWidth = v.getMeasuredWidth();
|
||||
|
||||
Animation a = new Animation()
|
||||
{
|
||||
@Override
|
||||
protected void applyTransformation(float interpolatedTime, Transformation t) {
|
||||
if(interpolatedTime == 1){
|
||||
v.setVisibility(View.GONE);
|
||||
}else{
|
||||
v.getLayoutParams().height = initialHeight - (int)(initialHeight * interpolatedTime);
|
||||
v.getLayoutParams().width = initialWidth - (int) (initialWidth*interpolatedTime);
|
||||
v.requestLayout();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean willChangeBounds() {
|
||||
return true;
|
||||
}
|
||||
};
|
||||
|
||||
// 1dp/ms
|
||||
a.setDuration(500);//targtetHeight / (v.getContext().getResources().getDisplayMetrics().density)));
|
||||
v.startAnimation(a);
|
||||
}
|
||||
v.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
private void startMainActivity() {
|
||||
startActivity(new Intent(LoginActivity.this, MainActivity.class));
|
||||
|
|
@ -269,7 +166,6 @@ public class LoginActivity extends AppCompatActivity
|
|||
private void saveTokens(String api, String user) throws Exception {
|
||||
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(LoginActivity.this);
|
||||
SharedPreferences.Editor editor = prefs.edit();
|
||||
Log.v("login", "saving tokens");
|
||||
boolean ans = editor.putString(getString(R.string.SP_APIToken), api)
|
||||
.putString(getString(R.string.SP_userID), user)
|
||||
.putString(getString(R.string.SP_address),getString(R.string.SP_address_default))
|
||||
|
|
@ -279,23 +175,19 @@ public class LoginActivity extends AppCompatActivity
|
|||
}
|
||||
|
||||
}
|
||||
private void showHelpMMessage() {
|
||||
final SpannableString mess = new SpannableString(getString(R.string.helpString));
|
||||
Linkify.addLinks(mess, Linkify.ALL);
|
||||
AlertDialog d =new AlertDialog.Builder(this)
|
||||
.setTitle(R.string.pref_dialog_title)
|
||||
.setMessage(mess).setCancelable(false)
|
||||
.setPositiveButton(R.string.string_pref_dialog_positive, new DialogInterface.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
dialog.dismiss();
|
||||
}
|
||||
|
||||
}).create();
|
||||
d.show();
|
||||
((TextView)d.findViewById(android.R.id.message)).setMovementMethod(LinkMovementMethod.getInstance());
|
||||
((TextView)d.findViewById(android.R.id.message)).setTextSize(13);
|
||||
|
||||
private void toggleRegistering() {
|
||||
this.isRegistering = !this.isRegistering;
|
||||
MenuItem menuItem = menu.findItem(R.id.action_toggleRegistering);
|
||||
if (this.isRegistering) {
|
||||
this.mLoginNormalBtn.setText(getString(R.string.register_btn));
|
||||
menuItem.setTitle(getString(R.string.login_btn));
|
||||
mPasswordET.setImeOptions(EditorInfo.IME_ACTION_NEXT);
|
||||
} else {
|
||||
this.mLoginNormalBtn.setText(getString(R.string.login_btn));
|
||||
menuItem.setTitle(getString(R.string.register_btn));
|
||||
mPasswordET.setImeOptions(EditorInfo.IME_ACTION_DONE);
|
||||
}
|
||||
this.resetLayout();
|
||||
}
|
||||
|
||||
public void onActivityResult(int requestCode, int resultCode, Intent intent) {
|
||||
|
|
@ -353,106 +245,20 @@ public class LoginActivity extends AppCompatActivity
|
|||
@Override
|
||||
public boolean onCreateOptionsMenu(Menu menu) {
|
||||
getMenuInflater().inflate(R.menu.login, menu);
|
||||
this.menu = menu;
|
||||
return super.onCreateOptionsMenu(menu);
|
||||
}
|
||||
@Override
|
||||
public boolean onOptionsItemSelected(MenuItem item) {
|
||||
switch(item.getItemId()) {
|
||||
case R.id.action_info:
|
||||
showHelpMMessage();
|
||||
case R.id.action_toggleRegistering:
|
||||
toggleRegistering();
|
||||
break;
|
||||
}
|
||||
return super.onOptionsItemSelected(item);
|
||||
}
|
||||
|
||||
|
||||
/* @Override
|
||||
public void onNewUser(String apiToken, String apiUser) {
|
||||
final String api = apiToken;
|
||||
final String user = apiUser;
|
||||
mMainHandler = new Handler(getMainLooper());
|
||||
Runnable myRunnable = new Runnable(){
|
||||
public void run() {
|
||||
afterResults();
|
||||
try {
|
||||
saveTokens(api,user);
|
||||
startMainActivity();
|
||||
finish();
|
||||
} catch (Exception e) {
|
||||
if("PB_string_commit".equals(e.getMessage()))
|
||||
Crouton.makeText(LoginActivity.this, getString(R.string.ERR_pb_accountCreation), Style.ALERT).show();
|
||||
}
|
||||
}
|
||||
};
|
||||
mMainHandler.post(myRunnable);
|
||||
}
|
||||
@Override
|
||||
public void onUserConnected(String api_t, String user_t) {
|
||||
final String api = api_t;
|
||||
final String user = user_t;
|
||||
mMainHandler = new Handler(getMainLooper());
|
||||
Log.v("user connected", "api:" +api_t+ " us" + user_t);
|
||||
Runnable myRunnable = new Runnable(){
|
||||
public void run() {
|
||||
afterResults();
|
||||
try {
|
||||
saveTokens(api,user);
|
||||
startMainActivity();
|
||||
} catch (Exception e) {
|
||||
if("PB_string_commit".equals(e.getMessage()))
|
||||
Crouton.makeText(LoginActivity.this, getString(R.string.ERR_pb_connection), Style.ALERT).show();
|
||||
}
|
||||
}
|
||||
};
|
||||
mMainHandler.post(myRunnable);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void onUserReceived(User user) {
|
||||
try {
|
||||
saveTokens(mTmpApiToken,mTmpUserToken);
|
||||
startMainActivity();
|
||||
finish();
|
||||
} catch(Exception e) {
|
||||
if("PB_string_commit".equals(e.getMessage()))
|
||||
Crouton.makeText(LoginActivity.this, getString(R.string.ERR_pb_connection), Style.ALERT).show();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onUserItemsReceived(UserLook.UserItems userLook, Reward.SpecialReward itemBought) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPostResult(double xp, double hp, double gold, double lvl, double delta) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPreResult() {
|
||||
mProgressBar.setVisibility(View.VISIBLE);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(HabitRPGException error) {
|
||||
final HabitRPGException err = error;
|
||||
mMainHandler = new Handler(getMainLooper());
|
||||
Runnable myRunnable = new Runnable(){
|
||||
public void run() {
|
||||
afterResults();
|
||||
String myMessage=err!=null ? err.getMessage() : null;
|
||||
if(myMessage == null)
|
||||
myMessage= getString(R.string.unknown_error);
|
||||
Crouton.makeText(LoginActivity.this, myMessage, Style.ALERT).show();
|
||||
}
|
||||
};
|
||||
mMainHandler.post(myRunnable);
|
||||
}*/
|
||||
|
||||
|
||||
private void afterResults() {
|
||||
mProgressBar.setVisibility(View.INVISIBLE);
|
||||
}
|
||||
|
|
@ -469,7 +275,7 @@ public class LoginActivity extends AppCompatActivity
|
|||
|
||||
@Override
|
||||
public void failure(RetrofitError error) {
|
||||
Log.d("OMG", "omg" + error.getMessage() + " " + error.getUrl());
|
||||
mProgressBar.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -484,6 +290,7 @@ public class LoginActivity extends AppCompatActivity
|
|||
|
||||
@Override
|
||||
public void onUserFail() {
|
||||
showSnackbar(getString(R.string.unknown_error));
|
||||
mProgressBar.setVisibility(View.GONE);
|
||||
showSnackbar(getString(R.string.unknown_error));
|
||||
}
|
||||
}
|
||||
|
|
|
|||