Browse Source

Merge branch 'develop' of https://github.com/swict/LifePlusAndroid into develop

Hasemi 7 years ago
parent
commit
c8c37be99c

+ 3 - 1
app/src/main/AndroidManifest.xml

@@ -26,7 +26,9 @@
     </activity>
     <activity android:name=".lifeplus.activity.MainActivity"/>
     <activity android:name=".lifeplus.activity.TutorialActivity"/>
-    <activity android:name=".lifeplus.activity.SignUpActivity"/>
+    <activity
+      android:name=".lifeplus.activity.SignUpActivity"
+      android:windowSoftInputMode="adjustResize"/>
     <activity android:name=".lifeplus.activity.NetworkErrorActivity"/>
     <activity android:name=".lifeplus.activity.SignUpZumoUserActivity"/>
     <activity android:name=".lifeplus.activity.PermissionInfoActivity"/>

+ 3 - 4
app/src/main/java/kr/co/zumo/app/lifeplus/activity/ActivityBase.java

@@ -20,7 +20,6 @@ import kr.co.zumo.app.lifeplus.model.Model;
 import kr.co.zumo.app.lifeplus.network.NetworkReceiver;
 import kr.co.zumo.app.lifeplus.network.NetworkWatcher;
 import kr.co.zumo.app.lifeplus.supervisor.DialogHelper;
-import kr.co.zumo.app.lifeplus.util.AppUtil;
 import kr.co.zumo.app.lifeplus.view.IView;
 import kr.co.zumo.app.lifeplus.view.presenter.Presenter;
 
@@ -205,9 +204,9 @@ public abstract class ActivityBase<P extends Presenter> extends AppCompatActivit
    * 변동이 있을 때 presenter 로 알려준다.
    */
   protected void watchNetwork() {
-    if (AppUtil.isDebug()) {
-      return;
-    }
+//    if (AppUtil.isDebug()) {
+//      return;
+//    }
 
     Log.w("APP# ActivityBase | watchNetwork", "| " + this.getClass().getSimpleName() + " - WATCHING............");
 

+ 3 - 2
app/src/main/java/kr/co/zumo/app/lifeplus/activity/NetworkErrorActivity.java

@@ -4,7 +4,7 @@
 package kr.co.zumo.app.lifeplus.activity;
 
 import android.os.Bundle;
-import android.widget.Button;
+import android.view.View;
 
 import kr.co.zumo.app.R;
 import kr.co.zumo.app.lifeplus.manager.ActionBarManager;
@@ -29,7 +29,7 @@ public class NetworkErrorActivity extends ActivityBase<NetworkErrorPresenter> im
   void onAfterCreate(Bundle savedInstanceState) {
     setContentView(R.layout.fragment_network_disconnected);
 
-    Button buttonRetry = findViewById(R.id.button_retry);
+    View buttonRetry = findViewById(R.id.button_retry);
     buttonRetry.setOnClickListener(v -> {
       presenter.onEvent(new Event.Builder(Event.RETRY).build());
     });
@@ -41,6 +41,7 @@ public class NetworkErrorActivity extends ActivityBase<NetworkErrorPresenter> im
     ActionBarManager actionBarManager = ActionBarManager.getInstance();
     actionBarManager.setTitle(R.string.network_disconnected);
     actionBarManager.setDisplayHomeAsUpEnabled(false);
+    actionBarManager.hide();
   }
 
   @Override

+ 12 - 13
app/src/main/java/kr/co/zumo/app/lifeplus/activity/SplashActivity.java

@@ -16,7 +16,6 @@ import kr.co.zumo.app.lifeplus.application.App;
 import kr.co.zumo.app.lifeplus.model.SuperModelInit;
 import kr.co.zumo.app.lifeplus.network.NetworkWatcher;
 import kr.co.zumo.app.lifeplus.supervisor.DialogHelper;
-import kr.co.zumo.app.lifeplus.util.AppUtil;
 import kr.co.zumo.app.lifeplus.util.PermissionUtil;
 
 /**
@@ -43,19 +42,19 @@ public class SplashActivity extends AppCompatActivity {
 
     ActivityStarter starter = new ActivityStarter(this);
 
-    if (AppUtil.isRelease()) {
-      disposable.add(NetworkWatcher.check(context)
-        .subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread())
-        .subscribe(isConnected -> {
-          disposable.dispose();
+//    if (AppUtil.isDebug()) {
+//      starter.launch(true);
+//      return;
+//    }
 
-          starter.launch(isConnected);
-        }, Throwable::printStackTrace)
-      );
-    }
-    else {
-      starter.launch(true);
-    }
+    disposable.add(NetworkWatcher.check(context)
+      .subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread())
+      .subscribe(isConnected -> {
+        disposable.dispose();
+
+        starter.launch(isConnected);
+      }, Throwable::printStackTrace)
+    );
   }
 
   @Override

+ 95 - 0
app/src/main/java/kr/co/zumo/app/lifeplus/view/custom/CustomSpinner.java

@@ -0,0 +1,95 @@
+/*
+ * COPYRIGHT (c) 2018 All rights reserved by HANWHA LIFE.
+ */
+package kr.co.zumo.app.lifeplus.view.custom;
+
+/**
+ * CustomSpinner
+ * <pre>
+ * </pre>
+ *
+ * @author 민효동
+ * @version 1.0
+ * @history 민효동   [2018. 10. 2.]   [최초 작성]
+ * @since 2018. 10. 2.
+ */
+
+import android.content.Context;
+import android.util.AttributeSet;
+import android.widget.Spinner;
+
+public class CustomSpinner extends android.support.v7.widget.AppCompatSpinner {
+  private OnSpinnerEventsListener mListener;
+  private boolean mOpenInitiated = false;
+
+  public CustomSpinner(Context context, AttributeSet attrs, int defStyleAttr, int mode) {
+    super(context, attrs, defStyleAttr, mode);
+  }
+
+  public CustomSpinner(Context context, AttributeSet attrs, int defStyleAttr) {
+    super(context, attrs, defStyleAttr);
+  }
+
+  public CustomSpinner(Context context, AttributeSet attrs) {
+    super(context, attrs);
+  }
+
+  public CustomSpinner(Context context, int mode) {
+    super(context, mode);
+  }
+
+  public CustomSpinner(Context context) {
+    super(context);
+  }
+
+  public interface OnSpinnerEventsListener {
+
+    void onSpinnerOpened(Spinner spin);
+
+    void onSpinnerClosed(Spinner spin);
+
+  }
+
+  @Override
+  public boolean performClick() {
+    // register that the Spinner was opened so we have a status
+    // indicator for the activity(which may lose focus for some other
+    // reasons)
+    mOpenInitiated = true;
+    if (mListener != null) {
+      mListener.onSpinnerOpened(this);
+    }
+    return super.performClick();
+  }
+
+  public void setSpinnerEventsListener(OnSpinnerEventsListener onSpinnerEventsListener) {
+    mListener = onSpinnerEventsListener;
+  }
+
+  /**
+   * Propagate the closed Spinner event to the listener from outside.
+   */
+  public void performClosedEvent() {
+    mOpenInitiated = false;
+    if (mListener != null) {
+      mListener.onSpinnerClosed(this);
+    }
+  }
+
+  /**
+   * A boolean flag indicating that the Spinner triggered an open event.
+   *
+   * @return true for opened Spinner
+   */
+  public boolean hasBeenOpened() {
+    return mOpenInitiated;
+  }
+
+  @Override
+  public void onWindowFocusChanged(boolean hasWindowFocus) {
+    super.onWindowFocusChanged(hasWindowFocus);
+    if (hasBeenOpened() && hasWindowFocus) {
+      performClosedEvent();
+    }
+  }
+}

+ 1 - 1
app/src/main/java/kr/co/zumo/app/lifeplus/view/custom/MobileAuthorizationPresenter.java

@@ -713,7 +713,7 @@ public class MobileAuthorizationPresenter {
       result = true;
     }
 
-    view.setEnabledRequestConfirmButton(authorizationNumber.length() > 0);
+    view.setEnabledRequestConfirmButton(result);
 
     return result;
   }

+ 64 - 12
app/src/main/java/kr/co/zumo/app/lifeplus/view/custom/MobileAuthorizationView.java

@@ -57,8 +57,8 @@ public class MobileAuthorizationView extends ConstraintLayout implements View.On
   private RadioButton radioSelectMale;
   private RadioButton radioSelectFemale;
   private CheckBox checkBoxAllAgree;
-  private Spinner spinnerMobileCompany;
-  private Spinner spinnerFirstPhoneNumber;
+  private CustomSpinner spinnerMobileCompany;
+  private CustomSpinner spinnerFirstPhoneNumber;
   private EditText editTextPhoneNumber;
   private EditText editTextAuthorizedNumber;
   private TextView textViewPhoneIdentifyTime;
@@ -71,6 +71,14 @@ public class MobileAuthorizationView extends ConstraintLayout implements View.On
   private ImageView imageViewArrow;
   private RelativeLayout layoutInputAuthNumber;
 
+  private View viewNameBar;
+  private View viewBirthDateBar;
+  private View viewPhoneNumberBar;
+  private View viewAuthNumberBar;
+  private View viewCompanyBar;
+  private View viewFirstNumberBar;
+  private View viewAgreeBar;
+
   private MobileAuthorizationPresenter presenter;
   protected CheckBoxAllDriver checkBoxAllDriver;
 
@@ -135,6 +143,15 @@ public class MobileAuthorizationView extends ConstraintLayout implements View.On
     buttonAllAgreeDetail = view.findViewById(R.id.button_all_agree_detail);
     imageViewArrow = view.findViewById(R.id.image_view_arrow);
     layoutInputAuthNumber = view.findViewById(R.id.layout_input_auth_number);
+
+    viewNameBar = view.findViewById(R.id.edit_text_name_bar);
+    viewBirthDateBar = view.findViewById(R.id.edit_text_birth_date_bar);
+    viewPhoneNumberBar = view.findViewById(R.id.edit_text_phone_number_bar);
+    viewAuthNumberBar = view.findViewById(R.id.edit_text_authorized_number_bar);
+    viewCompanyBar = view.findViewById(R.id.spinner_mobile_company_bar);
+    viewFirstNumberBar = view.findViewById(R.id.spinner_first_phone_number_bar);
+    viewAgreeBar = view.findViewById(R.id.checkbox_all_agree_bar);
+
     presenter = new MobileAuthorizationPresenter(this);
 
     scrollViewLinearLayout.setOnClickListener(this);
@@ -173,8 +190,9 @@ public class MobileAuthorizationView extends ConstraintLayout implements View.On
     }
 
     // name
-    editTextName.setOnFocusChangeListener((view1, isFocusChanged) -> {
-      presenter.onFocusNameText(isFocusChanged);
+    editTextName.setOnFocusChangeListener((view1, hasFocus) -> {
+      presenter.onFocusNameText(hasFocus);
+      setBarBackgroundColor(viewNameBar, hasFocus);
     });
     editTextName.addTextChangedListener(new TextWatcher() {
       @Override
@@ -190,8 +208,9 @@ public class MobileAuthorizationView extends ConstraintLayout implements View.On
     });
 
     // birthDate
-    editTextBirthDate.setOnFocusChangeListener((view12, isFocusChanged) -> {
-      presenter.onFocusBirthDateText(isFocusChanged);
+    editTextBirthDate.setOnFocusChangeListener((view12, hasFocus) -> {
+      presenter.onFocusBirthDateText(hasFocus);
+      setBarBackgroundColor(viewBirthDateBar, hasFocus);
     });
     editTextBirthDate.addTextChangedListener(new TextWatcher() {
       @Override
@@ -207,8 +226,9 @@ public class MobileAuthorizationView extends ConstraintLayout implements View.On
     });
 
     // phone number
-    editTextPhoneNumber.setOnFocusChangeListener((view1, isFocusChanged) -> {
-      presenter.onFocusPhoneNumberText(isFocusChanged);
+    editTextPhoneNumber.setOnFocusChangeListener((view1, hasFocus) -> {
+      presenter.onFocusPhoneNumberText(hasFocus);
+      setBarBackgroundColor(viewPhoneNumberBar, hasFocus);
     });
     editTextPhoneNumber.addTextChangedListener(new TextWatcher() {
       @Override
@@ -224,8 +244,9 @@ public class MobileAuthorizationView extends ConstraintLayout implements View.On
     });
 
     // 인증 번호
-    editTextAuthorizedNumber.setOnFocusChangeListener((view1, isFocusChanged) -> {
-      presenter.onFocusValidationNumberText(isFocusChanged);
+    editTextAuthorizedNumber.setOnFocusChangeListener((view1, hasFocus) -> {
+      presenter.onFocusValidationNumberText(hasFocus);
+      setBarBackgroundColor(viewAuthNumberBar, hasFocus);
     });
     editTextAuthorizedNumber.addTextChangedListener(new TextWatcher() {
       @Override
@@ -247,6 +268,18 @@ public class MobileAuthorizationView extends ConstraintLayout implements View.On
     radioSelectLocal.setOnCheckedChangeListener((compoundButton, b) -> presenter.onNationalCheckedChanged(b));
 
     // 폰 국번
+    spinnerFirstPhoneNumber.setSpinnerEventsListener(new CustomSpinner.OnSpinnerEventsListener() {
+      @Override
+      public void onSpinnerOpened(Spinner spin) {
+        spin.requestFocus();
+        setBarBackgroundColor(viewFirstNumberBar, true);
+      }
+
+      @Override
+      public void onSpinnerClosed(Spinner spin) {
+        setBarBackgroundColor(viewFirstNumberBar, false);
+      }
+    });
     spinnerFirstPhoneNumber.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
       @Override
       public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
@@ -265,6 +298,18 @@ public class MobileAuthorizationView extends ConstraintLayout implements View.On
     });
 
     // 폰 회사
+    spinnerMobileCompany.setSpinnerEventsListener(new CustomSpinner.OnSpinnerEventsListener() {
+      @Override
+      public void onSpinnerOpened(Spinner spin) {
+        spin.requestFocus();
+        setBarBackgroundColor(viewCompanyBar, true);
+      }
+
+      @Override
+      public void onSpinnerClosed(Spinner spin) {
+        setBarBackgroundColor(viewCompanyBar, false);
+      }
+    });
     spinnerMobileCompany.setOnTouchListener(new View.OnTouchListener() {
       @Override
       public boolean onTouch(View view, MotionEvent motionEvent) {
@@ -279,11 +324,16 @@ public class MobileAuthorizationView extends ConstraintLayout implements View.On
       }
 
       @Override
-      public void onNothingSelected(AdapterView<?> adapterView) {}
+      public void onNothingSelected(AdapterView<?> adapterView) {
+      }
     });
 
   }
 
+  private void setBarBackgroundColor(View view, boolean hasFocus) {
+    view.setBackgroundColor(hasFocus ? ResourceUtil.getColor(R.color.C000000) : ResourceUtil.getColor(R.color.CE5E5E5));
+  }
+
   @Override
   public void onClick(View view) {
     switch (view.getId()) {
@@ -315,7 +365,7 @@ public class MobileAuthorizationView extends ConstraintLayout implements View.On
   @Override
   public void setEnabledRequestConfirmTextView(boolean isEnabled) {
     editTextAuthorizedNumber.setEnabled(isEnabled);
-    layoutInputAuthNumber.setVisibility(isEnabled ? View.VISIBLE :View.GONE);
+    layoutInputAuthNumber.setVisibility(isEnabled ? View.VISIBLE : View.GONE);
   }
 
   @Override
@@ -403,10 +453,12 @@ public class MobileAuthorizationView extends ConstraintLayout implements View.On
     if (agreeListLayout.getVisibility() == GONE) {
       imageViewArrow.setImageResource(R.drawable.icon_closearrow);
       agreeListLayout.setVisibility(VISIBLE);
+      setBarBackgroundColor(viewAgreeBar, true);
     }
     else {
       imageViewArrow.setImageResource(R.drawable.icon_openarrow);
       agreeListLayout.setVisibility(GONE);
+      setBarBackgroundColor(viewAgreeBar, false);
     }
 
   }

+ 1 - 1
app/src/main/java/kr/co/zumo/app/lifeplus/view/fragment/signup/SignUpAlreadyMemberFragment.java

@@ -41,7 +41,7 @@ public class SignUpAlreadyMemberFragment extends FragmentBase<SignUpAlreadyMembe
   @Override
   protected void onAfterActivityCreated(Bundle savedInstanceState) {
 
-    Button buttonAuthorization = (Button) getView().findViewById(R.id.sign_up_mobile_authorization_button);
+    View buttonAuthorization = (Button) getView().findViewById(R.id.sign_up_mobile_authorization_button);
 
     buttonAuthorization.setOnClickListener(new View.OnClickListener() {
       @Override

+ 1 - 1
app/src/main/java/kr/co/zumo/app/lifeplus/view/fragment/signup/SignUpNeedFor30daysFragment.java

@@ -41,7 +41,7 @@ public class SignUpNeedFor30daysFragment extends FragmentBase<SignUpNeedFor30day
   @Override
   protected void onAfterActivityCreated(Bundle savedInstanceState) {
 
-    Button buttonAuthorization = (Button) getView().findViewById(R.id.sign_up_mobile_authorization_button);
+    View buttonAuthorization = (Button) getView().findViewById(R.id.sign_up_mobile_authorization_button);
 
     buttonAuthorization.setOnClickListener(new View.OnClickListener() {
       @Override

+ 1 - 1
app/src/main/java/kr/co/zumo/app/lifeplus/view/fragment/signup/SignUpStartFromOnBoardingFragment.java

@@ -41,7 +41,7 @@ public class SignUpStartFromOnBoardingFragment extends FragmentBase<SignUpStartF
   @Override
   protected void onAfterActivityCreated(Bundle savedInstanceState) {
 
-    Button buttonAuthorization = (Button) getView().findViewById(R.id.sign_up_mobile_authorization_button);
+    View buttonAuthorization = (Button) getView().findViewById(R.id.sign_up_mobile_authorization_button);
 
     buttonAuthorization.setOnClickListener(new View.OnClickListener() {
       @Override

+ 1 - 1
app/src/main/java/kr/co/zumo/app/lifeplus/view/fragment/signup/SignUpStartFromZumoFragment.java

@@ -41,7 +41,7 @@ public class SignUpStartFromZumoFragment extends FragmentBase<SignUpStartFromZum
   @Override
   protected void onAfterActivityCreated(Bundle savedInstanceState) {
 
-    Button buttonAuthorization = (Button) getView().findViewById(R.id.sign_up_mobile_authorization_button);
+    View buttonAuthorization = (Button) getView().findViewById(R.id.sign_up_mobile_authorization_button);
 
     buttonAuthorization.setOnClickListener(new View.OnClickListener() {
       @Override

+ 1 - 0
app/src/main/res/layout/activity_main.xml

@@ -13,6 +13,7 @@
     android:layout_width="match_parent"
     android:gravity="bottom"
     android:layout_height="match_parent"
+    android:padding="20dp"
     android:orientation="horizontal">
 
     <kr.co.zumo.app.lifeplus.view.custom.SignUpButtonView

+ 0 - 1
app/src/main/res/layout/alert_dialog.xml

@@ -22,7 +22,6 @@
 
   <kr.co.zumo.app.lifeplus.view.custom.SignUpButtonView
     android:id="@+id/button_confirm"
-    android:minWidth="80dp"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:text="@string/confirm"

+ 1 - 0
app/src/main/res/layout/sign_up_button_view.xml

@@ -7,6 +7,7 @@
 
   <LinearLayout
     android:id="@+id/layout_background"
+    android:layout_gravity="center"
     android:layout_width="wrap_content"
     android:layout_height="38dp"
     android:background="@drawable/button_background"

+ 39 - 30
app/src/main/res/layout/sign_up_phone_authorization_view.xml

@@ -24,7 +24,7 @@
         android:layout_height="wrap_content"
         android:lineSpacingExtra="8sp"
         android:text="@string/sign_up_mobile_identify_pop_up"
-        android:textColor="#000000"
+        android:textColor="@color/C000000"
         android:textSize="21sp"
         />
 
@@ -49,8 +49,8 @@
         android:inputType="text"
         android:lineSpacingExtra="5sp"
         android:maxLength="30"
-        android:textColor="#000000"
-        android:textColorHint="#c5c5c5"
+        android:textColor="@color/C000000"
+        android:textColorHint="@color/CC5C5C5"
         android:textSize="14sp"
         />
 
@@ -102,9 +102,10 @@
       android:orientation="vertical">
 
       <View
+        android:id="@+id/edit_text_name_bar"
         android:layout_width="match_parent"
         android:layout_height="1dp"
-        android:background="#e5e5e5"/>
+        android:background="@color/CE5E5E5"/>
 
     </LinearLayout>
 
@@ -121,7 +122,7 @@
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:lineSpacingExtra="3sp"
-        android:textColor="#f12815"
+        android:textColor="@color/CF12815"
         android:textSize="10sp"
         />
     </LinearLayout>
@@ -145,8 +146,8 @@
         android:inputType="number"
         android:lineSpacingExtra="5sp"
         android:maxLength="8"
-        android:textColor="#000000"
-        android:textColorHint="#c5c5c5"
+        android:textColor="@color/C000000"
+        android:textColorHint="@color/CC5C5C5"
         android:textSize="14sp"
         />
 
@@ -199,9 +200,10 @@
       android:orientation="vertical">
 
       <View
+        android:id="@+id/edit_text_birth_date_bar"
         android:layout_width="match_parent"
         android:layout_height="1dp"
-        android:background="#e5e5e5"/>
+        android:background="@color/CE5E5E5"/>
 
     </LinearLayout>
 
@@ -218,7 +220,7 @@
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:lineSpacingExtra="3sp"
-        android:textColor="#f12815"
+        android:textColor="@color/CF12815"
         android:textSize="10sp"
         />
     </LinearLayout>
@@ -244,7 +246,7 @@
         android:drawablePadding="8dp"
         android:lineSpacingExtra="5sp"
         android:text="@string/phone_identify_all_agree"
-        android:textColor="#000000"
+        android:textColor="@color/C000000"
         android:textIsSelectable="false"
         android:textSize="14sp"
         />
@@ -276,12 +278,13 @@
       android:orientation="vertical">
 
       <View
+        android:id="@+id/checkbox_all_agree_bar"
         android:layout_width="match_parent"
         android:layout_height="1dp"
         android:layout_centerInParent="true"
         android:layout_marginTop="17dp"
         android:layout_marginBottom="17dp"
-        android:background="#ebebeb"/>
+        android:background="@color/CEBEBEB"/>
 
     </LinearLayout>
 
@@ -313,7 +316,7 @@
           android:drawablePadding="8dp"
           android:lineSpacingExtra="5sp"
           android:text="@string/phone_identify_agree1"
-          android:textColor="#000000"
+          android:textColor="@color/C000000"
           android:textSize="14sp"
           />
 
@@ -346,7 +349,7 @@
           android:drawablePadding="8dp"
           android:lineSpacingExtra="5sp"
           android:text="@string/phone_identify_agree2"
-          android:textColor="#000000"
+          android:textColor="@color/C000000"
           android:textSize="14sp"
           />
 
@@ -379,7 +382,7 @@
           android:drawablePadding="8dp"
           android:lineSpacingExtra="5sp"
           android:text="@string/phone_identify_agree3"
-          android:textColor="#000000"
+          android:textColor="@color/C000000"
           android:textSize="14sp"
           />
 
@@ -412,7 +415,7 @@
           android:drawablePadding="8dp"
           android:lineSpacingExtra="5sp"
           android:text="@string/phone_identify_agree4"
-          android:textColor="#000000"
+          android:textColor="@color/C000000"
           android:textSize="14sp"
           />
 
@@ -436,24 +439,26 @@
       android:weightSum="4">
 
 
-      <Spinner
+      <kr.co.zumo.app.lifeplus.view.custom.CustomSpinner
         android:id="@+id/spinner_mobile_company"
         android:layout_width="0dp"
         android:layout_height="45dp"
         android:layout_weight="2"
         android:entries="@array/mobile_companies"
+        android:focusable="true"
         android:lineSpacingExtra="5sp"
-        android:textColor="#000000"
+        android:textColor="@color/C000000"
         android:textSize="14sp"/>
 
-      <Spinner
+      <kr.co.zumo.app.lifeplus.view.custom.CustomSpinner
         android:id="@+id/spinner_first_phone_number"
         android:layout_width="0dp"
         android:layout_height="45dp"
         android:layout_weight="2"
         android:entries="@array/phone_numbers"
+        android:focusable="true"
         android:lineSpacingExtra="5sp"
-        android:textColor="#000000"
+        android:textColor="@color/C000000"
         android:textSize="14sp"/>
 
     </LinearLayout>
@@ -467,17 +472,19 @@
       android:weightSum="4">
 
       <View
+        android:id="@+id/spinner_mobile_company_bar"
         android:layout_width="0dp"
         android:layout_height="1dp"
         android:layout_marginRight="12dp"
         android:layout_weight="2"
-        android:background="#e5e5e5"/>
+        android:background="@color/CE5E5E5"/>
 
       <View
+        android:id="@+id/spinner_first_phone_number_bar"
         android:layout_width="0dp"
         android:layout_height="1dp"
         android:layout_weight="2"
-        android:background="#e5e5e5"/>
+        android:background="@color/CE5E5E5"/>
 
     </LinearLayout>
 
@@ -510,8 +517,8 @@
             android:lineSpacingExtra="5sp"
             android:maxLength="8"
             android:paddingBottom="40dp"
-            android:textColor="#000000"
-            android:textColorHint="#c5c5c5"
+            android:textColor="@color/C000000"
+            android:textColorHint="@color/CC5C5C5"
             android:textSize="14sp"
             tools:text="12345678"
             />
@@ -543,9 +550,10 @@
         android:orientation="vertical">
 
         <View
+          android:id="@+id/edit_text_phone_number_bar"
           android:layout_width="match_parent"
           android:layout_height="1dp"
-          android:background="#e5e5e5"/>
+          android:background="@color/CE5E5E5"/>
 
       </LinearLayout>
 
@@ -561,7 +569,7 @@
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:lineSpacingExtra="3sp"
-          android:textColor="#f12815"
+          android:textColor="@color/CF12815"
           android:textSize="10sp"
           />
       </LinearLayout>
@@ -592,8 +600,8 @@
           android:lineSpacingExtra="5sp"
           android:maxLength="6"
           android:paddingBottom="40dp"
-          android:textColor="#000000"
-          android:textColorHint="#c5c5c5"
+          android:textColor="@color/C000000"
+          android:textColorHint="@color/CC5C5C5"
           android:textSize="14sp"
           tools:text="234879"/>
 
@@ -619,7 +627,7 @@
             android:layout_height="wrap_content"
             android:layout_marginRight="12dp"
             android:lineSpacingExtra="5sp"
-            android:textColor="#999999"
+            android:textColor="@color/C999999"
             android:textSize="14sp"
             tools:text="2:55"
             />
@@ -650,9 +658,10 @@
         android:orientation="vertical">
 
         <View
+          android:id="@+id/edit_text_authorized_number_bar"
           android:layout_width="match_parent"
           android:layout_height="1dp"
-          android:background="#e5e5e5"/>
+          android:background="@color/CE5E5E5"/>
 
       </LinearLayout>
 
@@ -668,7 +677,7 @@
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:lineSpacingExtra="3sp"
-          android:textColor="#f12815"
+          android:textColor="@color/CF12815"
           android:textSize="10sp"
           />
       </LinearLayout>

+ 2 - 0
app/src/main/res/values/colors.xml

@@ -13,4 +13,6 @@
   <color name="CC5C5C5">#c5c5c5</color>
   <color name="CF8F8F8">#f8f8f8</color>
   <color name="C333333">#333333</color>
+  <color name="CE5E5E5">#e5e5e5</color>
+  <color name="CEBEBEB">#ebebeb</color>
 </resources>