Reworking assistant, add transport in login and fix error display

This commit is contained in:
Margaux Clerc 2016-01-05 09:31:38 +01:00
parent 06f981e538
commit 8f26fe7a23
24 changed files with 745 additions and 626 deletions

View file

@ -2,6 +2,8 @@
<selector xmlns:android="http://schemas.android.com/apk/res/android"> <selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" <item android:state_pressed="true"
android:drawable="@drawable/resizable_assistant_button_over" /> android:drawable="@drawable/resizable_assistant_button_over" />
<item android:state_enabled="false"
android:drawable="@drawable/resizable_cancel_button" />
<item <item
android:drawable="@drawable/resizable_assistant_button" /> android:drawable="@drawable/resizable_assistant_button" />
</selector> </selector>

View file

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_enabled="true"
android:color="@color/colorB"/>
<item
android:color="@color/colorE"/>
</selector>

View file

@ -5,7 +5,7 @@
android:orientation="vertical"> android:orientation="vertical">
<TextView <TextView
android:text="@string/assistant_linphone_account_title" android:text="@string/assistant_linphone_account"
android:contentDescription="@string/content_description_welcome" android:contentDescription="@string/content_description_welcome"
style="@style/font6" style="@style/font6"
android:textAllCaps="true" android:textAllCaps="true"
@ -78,7 +78,7 @@
android:gravity="center"> android:gravity="center">
<TextView <TextView
android:text="@string/assistant_display_name" android:text="@string/assistant_display_name_optional"
style="@style/font13" style="@style/font13"
android:textAllCaps="true" android:textAllCaps="true"
android:layout_marginLeft="5dp" android:layout_marginLeft="5dp"

View file

@ -10,16 +10,15 @@
android:id="@+id/status" android:id="@+id/status"
android:name="org.linphone.StatusFragment" android:name="org.linphone.StatusFragment"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="35dp" android:layout_height="40dp"
tools:layout="@layout/status" /> tools:layout="@layout/status"/>
<include layout="@layout/assistant_topbar" android:id="@+id/topbar" /> <include layout="@layout/assistant_topbar" android:id="@+id/topbar" />
<LinearLayout <LinearLayout
android:id="@+id/fragmentContainer" android:id="@+id/fragment_container"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:padding="20dp"
android:orientation="horizontal" /> android:orientation="horizontal" />
</LinearLayout> </LinearLayout>

View file

@ -1,186 +1,187 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" <ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent">
android:orientation="vertical" >
<TextView <LinearLayout
android:text="@string/assistant_create_account_title" android:layout_width="match_parent"
style="@style/font6"
android:textAllCaps="true"
android:contentDescription="@string/content_description_welcome"
android:paddingTop="20dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center" android:padding="30dp"
android:gravity="center_horizontal"/> android:orientation="vertical">
<TextView <TextView
android:text="@string/assistant_create_account_part_1" android:text="@string/assistant_create_account"
style="@style/font11" style="@style/font6"
android:layout_gravity="center" android:textAllCaps="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:gravity="center"
android:orientation="vertical">
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/username_label"
android:text="@string/username"
style="@style/font13"
android:textAllCaps="true"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<EditText
android:id="@+id/username"
android:background="@drawable/resizable_textfield"
android:textColor="@color/colorB"
android:inputType="text|textEmailAddress"
android:textCursorDrawable="@null"
android:layout_width="match_parent"
android:layout_height="40dp"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:singleLine="true"/>
<TextView
android:id="@+id/username_error"
android:text="@string/error"
style="@style/font20"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:visibility="invisible"/>
</LinearLayout>
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/password_label"
style="@style/font13"
android:text="@string/password"
android:textAllCaps="true"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<EditText
android:id="@+id/password"
android:background="@drawable/resizable_textfield"
android:textColor="@color/colorB"
android:inputType="textPassword"
android:textCursorDrawable="@null"
android:layout_width="match_parent"
android:layout_height="40dp"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:singleLine="true"/>
<TextView
android:id="@+id/password_error"
android:text="@string/error"
style="@style/font20"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:visibility="invisible"/>
</LinearLayout>
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/confirm_password_label"
android:text="@string/confirm_password"
style="@style/font13"
android:textAllCaps="true"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<EditText
android:id="@+id/confirm_password"
android:background="@drawable/resizable_textfield"
android:textColor="@color/colorB"
android:inputType="textPassword"
android:textCursorDrawable="@null"
android:layout_width="match_parent"
android:layout_height="40dp"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:singleLine="true"/>
<TextView
android:id="@+id/confirm_password_error"
android:text="@string/error"
style="@style/font20"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:visibility="invisible"/>
</LinearLayout>
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/email_label"
android:text="@string/email"
style="@style/font13"
android:textAllCaps="true"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<EditText
android:id="@+id/email"
android:background="@drawable/resizable_textfield"
android:textColor="@color/colorB"
android:inputType="text|textEmailAddress"
android:textCursorDrawable="@null"
android:layout_width="match_parent"
android:layout_height="40dp"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:singleLine="true"/>
<TextView
android:id="@+id/email_error"
android:text="@string/error"
style="@style/font20"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:visibility="invisible"/>
</LinearLayout>
<Button
android:id="@+id/assistant_create"
android:text="@string/assistant_create"
android:background="@drawable/assistant_button"
style="@style/font8"
android:contentDescription="@string/content_description_validate"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_margin="5dp" android:layout_gravity="center"/>
android:layout_centerVertical="true"/>
<TextView
android:text="@string/assistant_create_account_part_1"
style="@style/font11"
android:paddingTop="10dp"
android:layout_gravity="center"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:layout_marginTop="30dp"
android:orientation="vertical">
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/username_label"
android:text="@string/username"
style="@style/font13"
android:textAllCaps="true"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<EditText
android:id="@+id/username"
android:background="@drawable/resizable_textfield"
android:textColor="@color/colorB"
android:inputType="text|textEmailAddress"
android:layout_width="match_parent"
android:layout_height="40dp"
android:singleLine="true"/>
<TextView
android:id="@+id/username_error"
android:text="@string/error"
style="@style/font20"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:visibility="invisible"/>
</LinearLayout>
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/password_label"
style="@style/font13"
android:text="@string/password"
android:textAllCaps="true"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<EditText
android:id="@+id/password"
android:background="@drawable/resizable_textfield"
android:textColor="@color/colorB"
android:inputType="textPassword"
android:textCursorDrawable="@null"
android:layout_width="match_parent"
android:layout_height="40dp"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:singleLine="true"/>
<TextView
android:id="@+id/password_error"
android:text="@string/error"
style="@style/font20"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:visibility="invisible"/>
</LinearLayout>
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/confirm_password_label"
android:text="@string/confirm_password"
style="@style/font13"
android:textAllCaps="true"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<EditText
android:id="@+id/confirm_password"
android:background="@drawable/resizable_textfield"
android:textColor="@color/colorB"
android:inputType="textPassword"
android:textCursorDrawable="@null"
android:layout_width="match_parent"
android:layout_height="40dp"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:singleLine="true"/>
<TextView
android:id="@+id/confirm_password_error"
android:text="@string/error"
style="@style/font20"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:visibility="invisible"/>
</LinearLayout>
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/email_label"
android:text="@string/email"
style="@style/font13"
android:textAllCaps="true"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<EditText
android:id="@+id/email"
android:background="@drawable/resizable_textfield"
android:textColor="@color/colorB"
android:inputType="text|textEmailAddress"
android:textCursorDrawable="@null"
android:layout_width="match_parent"
android:layout_height="40dp"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:singleLine="true"/>
<TextView
android:id="@+id/email_error"
android:text="@string/error"
style="@style/font20"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:visibility="invisible"/>
</LinearLayout>
<Button
android:id="@+id/assistant_create"
android:text="@string/assistant_create_account"
android:background="@drawable/assistant_button"
android:textColor="@drawable/assistant_button_text_color"
style="@style/font8"
android:contentDescription="@string/content_description_validate"
android:layout_width="wrap_content"
android:layout_height="40dp"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:layout_marginTop="20dp"/>
</LinearLayout>
</LinearLayout> </LinearLayout>
</ScrollView>
</LinearLayout>

View file

@ -2,39 +2,42 @@
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:gravity="center_horizontal" android:padding="30dp"
android:gravity="center_horizontal"
android:orientation="vertical" > android:orientation="vertical" >
<TextView <TextView
android:text="@string/assistant_create_account" android:text="@string/assistant_create_account"
android:contentDescription="@string/content_description_welcome"
style="@style/font6" style="@style/font6"
android:textAllCaps="true" android:textAllCaps="true"
android:paddingTop="20dp"
android:layout_gravity="center"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"/>
android:gravity="center_horizontal"/>
<TextView <TextView
android:text="@string/assistant_create_account_part_2" android:text="@string/assistant_create_account_part_2"
style="@style/font11" style="@style/font11"
android:paddingTop="10dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<TextView
android:text="@string/assistant_validate_account"
style="@style/font11"
android:paddingTop="10dp"
android:layout_gravity="center" android:layout_gravity="center"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content"/> android:layout_height="wrap_content"/>
<Button <Button
android:id="@+id/assistant_check" android:id="@+id/assistant_check"
android:text="@string/assistant_create" android:text="@string/assistant_create_account"
android:background="@drawable/assistant_button" android:background="@drawable/assistant_button"
style="@style/font8" style="@style/font8"
android:contentDescription="@string/content_description_validate" android:contentDescription="@string/content_description_validate"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="40dp"
android:layout_margin="10dp"
android:paddingLeft="10dp" android:paddingLeft="10dp"
android:paddingRight="10dp" android:paddingRight="10dp"/>
android:layout_marginTop="20dp"
android:layout_height="wrap_content"
android:layout_centerVertical="true"/>
</LinearLayout> </LinearLayout>

View file

@ -2,25 +2,22 @@
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:padding="30dp"
android:orientation="vertical" > android:orientation="vertical" >
<TextView <TextView
android:text="@string/assistant_ec_calibration" android:text="@string/assistant_ec_calibration"
android:contentDescription="@string/content_description_welcome"
style="@style/font6" style="@style/font6"
android:textAllCaps="true" android:textAllCaps="true"
android:paddingTop="20dp"
android:layout_gravity="center"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:gravity="center_horizontal"/> android:gravity="center_horizontal"/>
<ImageView <ImageView
android:contentDescription="@string/content_description_welcome" android:src="@drawable/linphone_logo_orange"
android:layout_width="200dp" android:layout_width="150dp"
android:layout_height="200dp" android:layout_height="150dp"
android:layout_centerInParent="true" android:layout_centerInParent="true"/>
android:src="@drawable/linphone_logo_orange"/>
<ProgressBar <ProgressBar
android:layout_height="wrap_content" android:layout_height="wrap_content"

View file

@ -1,101 +1,99 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" <ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent">
android:orientation="vertical">
<TextView <LinearLayout
android:text="@string/assistant_linphone_account_title" android:layout_width="match_parent"
android:contentDescription="@string/content_description_welcome"
style="@style/font6"
android:textAllCaps="true"
android:paddingTop="20dp"
android:layout_gravity="center"
android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:gravity="center_horizontal"/> android:padding="30dp"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:gravity="center">
<TextView <TextView
android:text="@string/username" android:text="@string/assistant_linphone_account"
style="@style/font13" style="@style/font6"
android:textAllCaps="true" android:textAllCaps="true"
android:paddingTop="10dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<EditText
android:id="@+id/assistant_username"
android:background="@drawable/resizable_textfield"
android:textColor="@color/colorB"
android:textCursorDrawable="@null"
android:inputType="textEmailAddress"
android:layout_width="match_parent"
android:layout_height="40dp"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:singleLine="true"/>
<TextView
android:text="@string/password"
style="@style/font13"
android:textAllCaps="true"
android:paddingTop="10dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<EditText
android:id="@+id/assistant_password"
android:background="@drawable/resizable_textfield"
android:textColor="@color/colorB"
android:textCursorDrawable="@null"
android:inputType="textPassword"
android:layout_width="match_parent"
android:layout_height="40dp"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:singleLine="true"/>
<TextView
android:text="@string/assistant_display_name"
style="@style/font13"
android:textAllCaps="true"
android:paddingTop="10dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<EditText
android:id="@+id/assistant_display_name"
android:background="@drawable/resizable_textfield"
android:textColor="@color/colorB"
android:textCursorDrawable="@null"
android:inputType="textEmailAddress"
android:layout_width="match_parent"
android:layout_height="40dp"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:singleLine="true"/>
<Button
android:id="@+id/assistant_apply"
android:text="@string/assistant_login"
android:background="@drawable/assistant_button"
style="@style/font8"
android:contentDescription="@string/content_description_validate"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:paddingLeft="10dp" android:gravity="center_horizontal"/>
android:paddingRight="10dp"
android:layout_marginTop="20dp"
android:layout_centerInParent="true"
android:layout_centerVertical="true"/>
<TextView
android:text="@string/assistant_linphone_login_desc"
style="@style/font11"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingTop="10dp"
android:gravity="center"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:layout_marginTop="30dp"
android:orientation="vertical">
<TextView
android:text="@string/username"
style="@style/font13"
android:textAllCaps="true"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<EditText
android:id="@+id/assistant_username"
android:background="@drawable/resizable_textfield"
android:textColor="@color/colorB"
android:inputType="text|textEmailAddress"
android:layout_width="match_parent"
android:layout_height="40dp"
android:singleLine="true"/>
<TextView
android:text="@string/password"
style="@style/font13"
android:textAllCaps="true"
android:paddingTop="20dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<EditText
android:id="@+id/assistant_password"
android:background="@drawable/resizable_textfield"
android:textColor="@color/colorB"
android:inputType="textPassword"
android:layout_width="match_parent"
android:layout_height="40dp"
android:singleLine="true"/>
<TextView
android:text="@string/assistant_display_name_optional"
style="@style/font13"
android:textAllCaps="true"
android:paddingTop="20dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<EditText
android:id="@+id/assistant_display_name"
android:background="@drawable/resizable_textfield"
android:textColor="@color/colorB"
android:inputType="textEmailAddress"
android:layout_width="match_parent"
android:layout_height="40dp"
android:singleLine="true"/>
<Button
android:id="@+id/assistant_apply"
android:text="@string/assistant_login"
android:background="@drawable/assistant_button"
android:textColor="@drawable/assistant_button_text_color"
style="@style/font8"
android:layout_width="wrap_content"
android:layout_height="40dp"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:layout_marginTop="20dp"/>
</LinearLayout>
</LinearLayout> </LinearLayout>
</LinearLayout> </ScrollView>

View file

@ -1,123 +1,154 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" <ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="fill_parent">
android:orientation="vertical" >
<TextView <LinearLayout
android:text="@string/assistant_general_account_title" android:layout_width="match_parent"
android:contentDescription="@string/content_description_welcome" android:layout_height="match_parent"
style="@style/font6" android:padding="30dp"
android:textAllCaps="true" android:orientation="vertical">
android:paddingTop="20dp"
android:layout_gravity="center"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_horizontal"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:gravity="center"
android:orientation="vertical">
<TextView <TextView
android:text="@string/username" android:text="@string/assistant_generic_account"
style="@style/font13" style="@style/font6"
android:textAllCaps="true" android:textAllCaps="true"
android:paddingTop="10dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<EditText
android:id="@+id/assistant_username"
android:background="@drawable/resizable_textfield"
android:textColor="@color/colorB"
android:textCursorDrawable="@null"
android:inputType="textEmailAddress"
android:layout_width="match_parent"
android:layout_height="40dp"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:singleLine="true"/>
<TextView
android:text="@string/password"
style="@style/font13"
android:textAllCaps="true"
android:paddingTop="10dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<EditText
android:id="@+id/assistant_password"
android:background="@drawable/resizable_textfield"
android:textColor="@color/colorB"
android:textCursorDrawable="@null"
android:inputType="textPassword"
android:layout_width="match_parent"
android:layout_height="40dp"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:singleLine="true"/>
<TextView
android:text="@string/domain"
style="@style/font13"
android:textAllCaps="true"
android:paddingTop="10dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<EditText
android:id="@+id/assistant_domain"
android:background="@drawable/resizable_textfield"
android:textColor="@color/colorB"
android:textCursorDrawable="@null"
android:inputType="textEmailAddress"
android:layout_width="match_parent"
android:layout_height="40dp"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:singleLine="true"/>
<TextView
android:text="@string/assistant_display_name"
style="@style/font13"
android:textAllCaps="true"
android:paddingTop="10dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<EditText
android:id="@+id/assistant_display_name"
android:background="@drawable/resizable_textfield"
android:textColor="@color/colorB"
android:textCursorDrawable="@null"
android:inputType="textEmailAddress"
android:layout_width="match_parent"
android:layout_height="40dp"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:singleLine="true"/>
<Button
android:id="@+id/assistant_apply"
android:text="@string/assistant_login"
android:background="@drawable/assistant_button"
style="@style/font8"
android:contentDescription="@string/content_description_validate"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:paddingLeft="10dp" android:layout_gravity="center_horizontal"/>
android:paddingRight="10dp"
android:layout_marginTop="20dp"
android:layout_centerInParent="true"
android:layout_centerVertical="true"/>
<TextView
android:text="@string/assistant_login_desc"
style="@style/font11"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingTop="10dp"
android:gravity="center"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:layout_marginTop="30dp"
android:orientation="vertical">
<TextView
android:text="@string/username"
style="@style/font13"
android:textAllCaps="true"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<EditText
android:id="@+id/assistant_username"
android:background="@drawable/resizable_textfield"
android:textColor="@color/colorB"
android:inputType="text|textEmailAddress"
android:layout_width="match_parent"
android:layout_height="40dp"
android:singleLine="true"/>
<TextView
android:text="@string/password"
style="@style/font13"
android:textAllCaps="true"
android:paddingTop="20dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<EditText
android:id="@+id/assistant_password"
android:background="@drawable/resizable_textfield"
android:textColor="@color/colorB"
android:inputType="textPassword"
android:layout_width="match_parent"
android:layout_height="40dp"
android:singleLine="true"/>
<TextView
android:text="@string/domain"
style="@style/font13"
android:textAllCaps="true"
android:paddingTop="20dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<EditText
android:id="@+id/assistant_domain"
android:background="@drawable/resizable_textfield"
android:textColor="@color/colorB"
android:inputType="textEmailAddress"
android:layout_width="match_parent"
android:layout_height="40dp"
android:singleLine="true"/>
<TextView
android:text="@string/assistant_display_name_optional"
style="@style/font13"
android:textAllCaps="true"
android:paddingTop="20dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<EditText
android:id="@+id/assistant_display_name"
android:background="@drawable/resizable_textfield"
android:textColor="@color/colorB"
android:inputType="textEmailAddress"
android:layout_width="match_parent"
android:layout_height="40dp"
android:singleLine="true"/>
<TextView
android:text="@string/transport"
style="@style/font13"
android:textAllCaps="true"
android:paddingTop="20dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<RadioGroup
android:id="@+id/assistant_transports"
android:orientation="horizontal"
android:gravity="center"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<RadioButton
android:id="@+id/transport_udp"
android:text="@string/pref_transport_udp"
android:layout_margin="5dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<RadioButton
android:id="@+id/transport_tcp"
android:text="@string/pref_transport_tcp"
android:layout_margin="5dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<RadioButton
android:id="@+id/transport_tls"
android:text="@string/pref_transport_tls"
android:layout_margin="5dp"
android:checked="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</RadioGroup>
<Button
android:id="@+id/assistant_apply"
android:text="@string/assistant_login"
android:background="@drawable/assistant_button"
android:textColor="@drawable/assistant_button_text_color"
style="@style/font8"
android:layout_width="wrap_content"
android:layout_height="40dp"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:layout_marginTop="20dp"/>
</LinearLayout>
</LinearLayout> </LinearLayout>
</LinearLayout> </ScrollView>

View file

@ -2,32 +2,36 @@
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:padding="30dp"
android:orientation="vertical"> android:orientation="vertical">
<TextView <TextView
android:text="@string/assistant_remote_provisioning_title" android:text="@string/assistant_remote_provisioning_title"
android:contentDescription="@string/content_description_welcome"
style="@style/font6" style="@style/font6"
android:textAllCaps="true" android:textAllCaps="true"
android:paddingTop="20dp"
android:layout_gravity="center"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:gravity="center_horizontal"/> android:gravity="center_horizontal"/>
<TextView
android:text="@string/assistant_remote_provisioning_desc"
style="@style/font11"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingTop="10dp"
android:layout_gravity="center"/>
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="wrap_content"
android:paddingLeft="10dp" android:gravity="center"
android:paddingRight="10dp" android:layout_marginTop="30dp"
android:gravity="center" android:orientation="vertical">
android:orientation="vertical">
<TextView <TextView
android:text="@string/remote_provisioning_url" android:text="@string/remote_provisioning_url"
style="@style/font13" style="@style/font13"
android:textAllCaps="true" android:textAllCaps="true"
android:paddingTop="10dp"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content"/> android:layout_height="wrap_content"/>
@ -35,27 +39,22 @@
android:id="@+id/assistant_remote_provisioning_url" android:id="@+id/assistant_remote_provisioning_url"
android:background="@drawable/resizable_textfield" android:background="@drawable/resizable_textfield"
android:textColor="@color/colorB" android:textColor="@color/colorB"
android:textCursorDrawable="@null" android:inputType="textUri"
android:inputType="textEmailAddress"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="40dp" android:layout_height="40dp"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:singleLine="true"/> android:singleLine="true"/>
<Button <Button
android:id="@+id/assistant_apply" android:id="@+id/assistant_apply"
android:text="@string/assistant_apply" android:text="@string/assistant_fetch_apply"
android:background="@drawable/assistant_button" android:background="@drawable/assistant_button"
android:textColor="@drawable/assistant_button_text_color"
style="@style/font8" style="@style/font8"
android:contentDescription="@string/content_description_validate"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="40dp"
android:paddingLeft="10dp" android:paddingLeft="10dp"
android:paddingRight="10dp" android:paddingRight="10dp"
android:layout_marginTop="20dp" android:layout_marginTop="20dp"/>
android:layout_centerInParent="true"
android:layout_centerVertical="true"/>
</LinearLayout>
</LinearLayout>
</LinearLayout> </LinearLayout>

View file

@ -96,7 +96,7 @@
<Button <Button
android:id="@+id/assistant_connect" android:id="@+id/assistant_connect"
android:text="@string/assistant_connect" android:text="@string/connect"
android:background="@drawable/assistant_button" android:background="@drawable/assistant_button"
style="@style/font8" style="@style/font8"
android:contentDescription="@string/content_description_validate" android:contentDescription="@string/content_description_validate"

View file

@ -1,36 +1,38 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/topbar" android:id="@+id/topbar"
android:background="@color/colorF" android:background="@color/colorF"
android:orientation="horizontal"
android:layout_gravity="center_horizontal"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="70dp"> android:layout_height="60dp">
<ImageView <ImageView
android:id="@+id/back" android:id="@+id/back"
android:src="@drawable/back" android:src="@drawable/back"
android:background="@drawable/toolbar_button"
android:contentDescription="@string/content_description_back" android:contentDescription="@string/content_description_back"
android:layout_width="70dp" android:layout_width="0dp"
android:layout_height="match_parent" android:layout_height="match_parent"
android:padding="20dp" android:layout_weight="0.2"
android:layout_alignParentLeft="true" android:padding="18dp"/>
android:layout_centerInParent="true"/>
<TextView <TextView
android:text="@string/assistant_title" android:text="@string/assistant"
style="@style/font1" style="@style/font1"
android:layout_width="wrap_content" android:layout_width="0dp"
android:layout_height="match_parent" android:layout_height="match_parent"
android:layout_centerInParent="true" android:layout_weight="0.6"
android:gravity="center_vertical"/> android:gravity="center"/>
<ImageView <ImageView
android:id="@+id/cancel" android:id="@+id/cancel"
android:src="@drawable/dialer_back" android:src="@drawable/dialer_back"
android:background="@drawable/toolbar_button"
android:contentDescription="@string/content_description_dialer" android:contentDescription="@string/content_description_dialer"
android:layout_width="70dp" android:layout_width="0dp"
android:layout_height="match_parent" android:layout_height="match_parent"
android:padding="20dp" android:layout_weight="0.2"
android:layout_centerInParent="true" android:padding="15dp"/>
android:layout_alignParentRight="true"/>
</RelativeLayout> </LinearLayout>

View file

@ -1,71 +1,79 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" <ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent">
android:orientation="vertical">
<LinearLayout
<TextView android:layout_width="match_parent"
android:text="@string/assistant_welcome"
style="@style/font6"
android:textAllCaps="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:paddingTop="20dp" android:padding="30dp"
android:layout_gravity="center"/> android:orientation="vertical">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:gravity="center"
android:layout_margin="20dp"
android:layout_gravity="center">
<Button <TextView
android:id="@+id/create_account" android:text="@string/welcome"
android:text="@string/assistant_create_account" style="@style/font6"
android:background="@drawable/assistant_button" android:textAllCaps="true"
style="@style/font8" android:layout_width="wrap_content"
android:contentDescription="@string/assistant_create_account" android:layout_height="wrap_content"
android:layout_marginTop="20dp" android:layout_gravity="center"/>
<TextView
android:text="@string/assistant_welcome_desc"
style="@style/font11"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingTop="10dp"
android:gravity="center"/>
<LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_centerInParent="true"/> android:orientation="vertical"
android:gravity="center"
android:layout_marginTop="10dp"
android:layout_gravity="center">
<Button
android:id="@+id/create_account"
android:text="@string/assistant_create_account"
android:background="@drawable/assistant_button"
style="@style/font8"
android:contentDescription="@string/assistant_create_account"
android:layout_marginTop="30dp"
android:layout_width="match_parent"
android:layout_height="40dp"/>
<Button <Button
android:id="@+id/login_linphone" android:id="@+id/login_linphone"
android:text="@string/assistant_login_linphone" android:text="@string/assistant_login_linphone"
android:background="@drawable/assistant_button" android:background="@drawable/assistant_button"
style="@style/font8" style="@style/font8"
android:contentDescription="@string/assistant_login_linphone" android:contentDescription="@string/assistant_login_linphone"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="40dp"
android:layout_marginTop="20dp" android:layout_marginTop="30dp"/>
android:layout_centerInParent="true"/>
<Button <Button
android:id="@+id/login_generic" android:id="@+id/login_generic"
android:text="@string/assistant_login_generic" android:text="@string/assistant_login_generic"
android:background="@drawable/assistant_button" android:background="@drawable/assistant_button"
style="@style/font8" style="@style/font8"
android:contentDescription="@string/assistant_login_generic" android:contentDescription="@string/assistant_login_generic"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="40dp"
android:layout_marginTop="20dp" android:layout_marginTop="30dp"/>
android:layout_centerInParent="true"/>
<Button <Button
android:id="@+id/remote_provisioning" android:id="@+id/remote_provisioning"
android:text="@string/assistant_remote_provisioning" android:text="@string/assistant_remote_provisioning"
android:background="@drawable/assistant_button" android:background="@drawable/assistant_button"
style="@style/font8" style="@style/font8"
android:contentDescription="@string/assistant_remote_provisioning" android:contentDescription="@string/assistant_remote_provisioning"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="40dp"
android:layout_marginTop="20dp" android:layout_marginTop="30dp"/>
android:layout_centerInParent="true"/>
</LinearLayout>
</LinearLayout> </LinearLayout>
</ScrollView>
</LinearLayout>

View file

@ -9,7 +9,7 @@
android:id="@+id/status" android:id="@+id/status"
android:name="org.linphone.StatusFragment" android:name="org.linphone.StatusFragment"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="35dp" android:layout_height="40dp"
tools:layout="@layout/status" /> tools:layout="@layout/status" />
<android.support.v4.widget.DrawerLayout <android.support.v4.widget.DrawerLayout

View file

@ -3,7 +3,7 @@
android:id="@+id/status" android:id="@+id/status"
android:background="@color/colorA" android:background="@color/colorA"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="35dp" android:layout_height="40dp"
android:orientation="horizontal"> android:orientation="horizontal">
<RelativeLayout <RelativeLayout
@ -37,9 +37,9 @@
android:contentDescription="@string/content_description_led" android:contentDescription="@string/content_description_led"
android:paddingLeft="5dp" android:paddingLeft="5dp"
android:adjustViewBounds="true" android:adjustViewBounds="true"
android:layout_width="wrap_content" android:layout_width="20dp"
android:layout_height="match_parent" android:layout_height="wrap_content"
android:layout_alignParentTop="true" android:layout_centerInParent="true"
android:layout_toRightOf="@id/side_menu_button"/> android:layout_toRightOf="@id/side_menu_button"/>
<TextView <TextView

View file

@ -9,13 +9,14 @@
<string name="password">Password</string> <string name="password">Password</string>
<string name="confirm_password">Password confirmation</string> <string name="confirm_password">Password confirmation</string>
<string name="domain">Domain</string> <string name="domain">Domain</string>
<string name="remote_provisioning_url">Provisioning url</string> <string name="remote_provisioning_url">Url</string>
<string name="email">Email</string> <string name="email">Email</string>
<string name="delete_text">Are you sure you want to delete your selection ?</string> <string name="delete_text">Are you sure you want to delete your selection ?</string>
<string name="delete">Delete</string> <string name="delete">Delete</string>
<string name="retry">Retry</string> <string name="retry">Retry</string>
<string name="cancel">Cancel</string> <string name="cancel">Cancel</string>
<string name="accept">Accept</string> <string name="accept">Accept</string>
<string name="continue_text">Continue</string>
<string name="about">About</string> <string name="about">About</string>
<string name="deny">Deny</string> <string name="deny">Deny</string>
<string name="no_account">No account configured</string> <string name="no_account">No account configured</string>
@ -24,30 +25,37 @@
<string name="incoming">incoming</string> <string name="incoming">incoming</string>
<string name="missed">missed</string> <string name="missed">missed</string>
<string name="settings">Settings</string> <string name="settings">Settings</string>
<string name="connect">Connection</string>
<!-- splashscreen --> <!-- splashscreen -->
<string name="app_description">free SIP VOIP client</string> <string name="app_description">free SIP VOIP client</string>
<!-- 0. Assistant --> <!-- 0. Assistant -->
<string name="assistant_welcome">Welcome</string> <string name="welcome">Welcome</string>
<string name="assistant_title">Assistant</string> <string name="assistant">Assistant</string>
<string name="assistant_create_account">Create account</string> <string name="assistant_create_account">Create account</string>
<string name="assistant_welcome_desc">This assistant will help you to use a SIP account for your calls.</string>
<string name="assistant_linphone_login_desc">Enter your username and password of your linphone.org account</string>
<string name="assistant_remote_provisioning_desc">Please provide your provisioning url</string>
<string name="assistant_login_desc">Enter your username and password with your SIP domain</string>
<string name="assistant_validate_account">An email has been sent to the address you gave. In order to activate your account, you need to click on the link inside it. Once it is done, come back here and click on the button.</string>
<string name="transport">Transport</string>
<string name="assistant_login_linphone">Use Linphone account</string> <string name="assistant_login_linphone">Use Linphone account</string>
<string name="assistant_login_generic">Use SIP account</string> <string name="assistant_login_generic">Use SIP account</string>
<string name="assistant_remote_provisioning">Fetch remote configuration</string> <string name="assistant_remote_provisioning">Fetch remote configuration</string>
<string name="assistant_create_account_title">Create account</string>
<string name="assistant_create_account_part_1">1/2</string> <string name="assistant_create_account_part_1">1/2</string>
<string name="assistant_create_account_part_2">2/2</string> <string name="assistant_create_account_part_2">2/2</string>
<string name="assistant_display_name">Display name (optional)</string> <string name="assistant_display_name_optional">Display name (optional)</string>
<string name="assistant_linphone_account_title">Configure Linphone account</string> <string name="assistant_linphone_account">Configure Linphone account</string>
<string name="assistant_general_account_title">Configure SIP account</string> <string name="assistant_generic_account">Configure SIP account</string>
<string name="assistant_remote_provisioning_title">Fetch remote configuration</string> <string name="assistant_remote_provisioning_title">Fetch remote configuration</string>
<string name="assistant_create">Create account</string> <string name="assistant_fetch_apply">Fetch and apply</string>
<string name="assistant_apply">Fetch and apply</string>
<string name="assistant_login">Login</string> <string name="assistant_login">Login</string>
<string name="assistant_ec_calibration">Echo canceller calibration in progress</string> <string name="assistant_ec_calibration">Echo canceller calibration in progress</string>
<string name="assistant_remote_provisioning_login">Enter your login</string> <string name="assistant_remote_provisioning_login">Enter your login</string>
<string name="assistant_connect">Connection</string> <string name="assistant_account_not_validated">Your account has not been validated yet.</string>
<string name="assistant_account_validated">Your account has been validated.</string>
<string name="assistant_error_bad_credentials">Incorrect username or passowrd</string>
<!-- 1. Dailer --> <!-- 1. Dailer -->
<string name="address_bar_hint">Enter a number or an address</string> <string name="address_bar_hint">Enter a number or an address</string>
@ -94,6 +102,9 @@
<!-- Content description --> <!-- Content description -->
<string name="content_description_back">Back</string>
<string name="content_description_dialer">Dialer</string>
<string name="content_description_toggle_micro">Toggle micro</string> <string name="content_description_toggle_micro">Toggle micro</string>
<string name="content_description_toggle_speaker">Toggle speaker</string> <string name="content_description_toggle_speaker">Toggle speaker</string>
<string name="content_description_decline">Decline</string> <string name="content_description_decline">Decline</string>
@ -132,7 +143,6 @@
<string name="content_description_pause">Pause</string> <string name="content_description_pause">Pause</string>
<string name="content_description_numpad">Numpad</string> <string name="content_description_numpad">Numpad</string>
<string name="content_description_settings">Settings button</string> <string name="content_description_settings">Settings button</string>
<string name="content_description_dialer">Dialer</string>
<string name="content_description_history">History button</string> <string name="content_description_history">History button</string>
<string name="content_description_chat_button">Chat button</string> <string name="content_description_chat_button">Chat button</string>
<string name="content_description_contacts">Contacts button</string> <string name="content_description_contacts">Contacts button</string>
@ -140,12 +150,9 @@
<string name="content_description_call_quality">Call quality</string> <string name="content_description_call_quality">Call quality</string>
<string name="content_description_encryption">Encryption</string> <string name="content_description_encryption">Encryption</string>
<string name="content_description_switch_camera">Switch camera</string> <string name="content_description_switch_camera">Switch camera</string>
<string name="content_description_welcome">Welcome to the account setup assistant</string>
<string name="content_description_cancel">Cancel</string> <string name="content_description_cancel">Cancel</string>
<string name="content_description_cancel_button">Cancel button</string> <string name="content_description_cancel_button">Cancel button</string>
<string name="content_description_next">Next button</string> <string name="content_description_next">Next button</string>
<string name="content_description_back">Back button</string>
<string name="content_description_setup_ok">Ok</string>
<string name="content_description_message_status">Message status</string> <string name="content_description_message_status">Message status</string>
<string name="content_description_conference">Conference</string> <string name="content_description_conference">Conference</string>
@ -187,10 +194,7 @@
<string name="state_paused">paused</string> <string name="state_paused">paused</string>
<string name="state_paused_by_remote">paused by remote</string> <string name="state_paused_by_remote">paused by remote</string>
<string name="state_streams_running"></string> <string name="state_streams_running"></string>
<string name="mutemic_button_txt">Mute</string>
<string name="speaker_button_txt">Speaker</string>
<string name="bluetooth_button_txt">Bluetooth</string> <string name="bluetooth_button_txt">Bluetooth</string>
<string name="CancelButtonText">Cancel</string>
<string name="AddCallButtonText">Add call</string> <string name="AddCallButtonText">Add call</string>
<string name="TransferCallButtonText">Transfer call</string> <string name="TransferCallButtonText">Transfer call</string>
<string name="conf_admin_choice_enter">Enter conference</string> <string name="conf_admin_choice_enter">Enter conference</string>
@ -382,22 +386,11 @@
<string name="call_stats_video_resolution">Video size:</string> <string name="call_stats_video_resolution">Video size:</string>
<!--Used by Android to help blind people by describing them images--> <!--Used by Android to help blind people by describing them images-->
<string name="setup_password_hint">password</string>
<string name="setup_domain_hint">domain</string>
<string name="setup_email_hint">email</string>
<string name="setup_create">Create Account</string>
<string name="setup_validate_account">An email has been sent to the address you gave. In order to activate your account, you need to click on the link inside it. Once it is done, come back here and click on the button above.</string>
<string name="setup_check_account_validation">Check</string>
<string name="setup_account_not_validated">Your account has not been validated yet.</string>
<string name="setup_account_validated">Your account has been validated.</string>
<string name="button_history">History</string> <string name="button_history">History</string>
<string name="button_contacts">Contacts</string> <string name="button_contacts">Contacts</string>
<string name="button_settings">Settings</string> <string name="button_settings">Settings</string>
<string name="button_chat">Chat</string> <string name="button_chat">Chat</string>
<string name="button_about">About</string> <string name="button_about">About</string>
<string name="button_setup_cancel">Cancel</string>
<string name="button_setup_back">Back</string>
<string name="button_setup_next">Let\'s go</string>
<string name="button_new_chat">New conversation</string> <string name="button_new_chat">New conversation</string>
<string name="button_edit">Edit</string> <string name="button_edit">Edit</string>
<string name="button_ok">Okay</string> <string name="button_ok">Okay</string>

View file

@ -14,100 +14,100 @@
<style name="font2" parent="@android:style/TextAppearance.Medium"> <style name="font2" parent="@android:style/TextAppearance.Medium">
<item name="android:textColor">@color/colorA</item> <item name="android:textColor">@color/colorA</item>
<item name="android:textSize">18sp</item> <item name="android:textSize">16sp</item>
</style> </style>
<style name="font3" parent="@android:style/TextAppearance.Small"> <style name="font3" parent="@android:style/TextAppearance.Small">
<item name="android:textColor">@color/colorA</item> <item name="android:textColor">@color/colorA</item>
<item name="android:textSize">15sp</item> <item name="android:textSize">13sp</item>
</style> </style>
<style name="font4" parent="@android:style/TextAppearance.Medium"> <style name="font4" parent="@android:style/TextAppearance.Medium">
<item name="android:textColor">@color/colorB</item> <item name="android:textColor">@color/colorB</item>
<item name="android:textAllCaps">true</item> <item name="android:textAllCaps">true</item>
<item name="android:textStyle">bold</item> <item name="android:textStyle">bold</item>
<item name="android:textSize">28sp</item> <item name="android:textSize">21sp</item>
</style> </style>
<style name="font5" parent="@android:style/TextAppearance.Medium"> <style name="font5" parent="@android:style/TextAppearance.Medium">
<item name="android:textColor">@color/colorC</item> <item name="android:textColor">@color/colorC</item>
<item name="android:textSize">28sp</item> <item name="android:textSize">30sp</item>
</style> </style>
<style name="font6" parent="@android:style/TextAppearance.Medium"> <style name="font6" parent="@android:style/TextAppearance.Medium">
<item name="android:textColor">@color/colorC</item> <item name="android:textColor">@color/colorC</item>
<item name="android:textSize">18sp</item> <item name="android:textSize">21sp</item>
</style> </style>
<style name="font7" parent="@android:style/TextAppearance.Medium"> <style name="font7" parent="@android:style/TextAppearance.Medium">
<item name="android:textColor">@color/colorC</item> <item name="android:textColor">@color/colorC</item>
<item name="android:textStyle">bold</item> <item name="android:textStyle">bold</item>
<item name="android:textSize">26sp</item> <item name="android:textSize">18sp</item>
</style> </style>
<style name="font8" parent="@android:style/TextAppearance.Medium"> <style name="font8" parent="@android:style/TextAppearance.Medium">
<item name="android:textColor">@color/colorC</item> <item name="android:textColor">@color/colorC</item>
<item name="android:textAllCaps">true</item> <item name="android:textAllCaps">true</item>
<item name="android:textSize">18sp</item> <item name="android:textSize">16sp</item>
</style> </style>
<style name="font9" parent="@android:style/TextAppearance.Small"> <style name="font9" parent="@android:style/TextAppearance.Small">
<item name="android:textColor">@color/colorC</item> <item name="android:textColor">@color/colorC</item>
<item name="android:textSize">15sp</item> <item name="android:textSize">13sp</item>
</style> </style>
<style name="font10" parent="@android:style/TextAppearance.Medium"> <style name="font10" parent="@android:style/TextAppearance.Medium">
<item name="android:textColor">@color/colorD</item> <item name="android:textColor">@color/colorD</item>
<item name="android:textSize">20sp</item> <item name="android:textSize">18sp</item>
</style> </style>
<style name="font11" parent="@android:style/TextAppearance.Medium"> <style name="font11" parent="@android:style/TextAppearance.Medium">
<item name="android:textColor">@color/colorD</item> <item name="android:textColor">@color/colorD</item>
<item name="android:textSize">16sp</item> <item name="android:textSize">15sp</item>
</style> </style>
<style name="font12" parent="@android:style/TextAppearance.Small"> <style name="font12" parent="@android:style/TextAppearance.Small">
<item name="android:textColor">@color/colorE</item> <item name="android:textColor">@color/colorE</item>
<item name="android:textSize">25sp</item> <item name="android:textSize">16sp</item>
</style> </style>
<style name="font13" parent="@android:style/TextAppearance.Medium"> <style name="font13" parent="@android:style/TextAppearance.Medium">
<item name="android:textColor">@color/colorE</item> <item name="android:textColor">@color/colorE</item>
<item name="android:textSize">18sp</item> <item name="android:textSize">13sp</item>
</style> </style>
<style name="font14" parent="@android:style/TextAppearance.Small"> <style name="font14" parent="@android:style/TextAppearance.Small">
<item name="android:textColor">@color/colorH</item> <item name="android:textColor">@color/colorH</item>
<item name="android:textSize">26sp</item> <item name="android:textSize">21sp</item>
</style> </style>
<style name="font15" parent="@android:style/TextAppearance.Small"> <style name="font15" parent="@android:style/TextAppearance.Small">
<item name="android:textColor">@color/colorH</item> <item name="android:textColor">@color/colorH</item>
<item name="android:textAllCaps">true</item> <item name="android:textAllCaps">true</item>
<item name="android:textSize">20sp</item> <item name="android:textSize">16sp</item>
</style> </style>
<style name="font16" parent="@android:style/TextAppearance.Small"> <style name="font16" parent="@android:style/TextAppearance.Small">
<item name="android:textColor">@color/colorH</item> <item name="android:textColor">@color/colorH</item>
<item name="android:textSize">18sp</item> <item name="android:textSize">15sp</item>
</style> </style>
<style name="font17" parent="@android:style/TextAppearance.Small"> <style name="font17" parent="@android:style/TextAppearance.Small">
<item name="android:textColor">@color/colorH</item> <item name="android:textColor">@color/colorH</item>
<item name="android:textStyle">bold</item> <item name="android:textStyle">bold</item>
<item name="android:textSize">20sp</item> <item name="android:textSize">13sp</item>
</style> </style>
<style name="font18" parent="@android:style/TextAppearance.Small"> <style name="font18" parent="@android:style/TextAppearance.Small">
<item name="android:textColor">@color/colorH</item> <item name="android:textColor">@color/colorH</item>
<item name="android:textSize">15sp</item> <item name="android:textSize">10sp</item>
</style> </style>
<style name="font19" parent="@android:style/TextAppearance.Medium"> <style name="font19" parent="@android:style/TextAppearance.Medium">
<item name="android:textColor">@color/colorD</item> <item name="android:textColor">@color/colorD</item>
<item name="android:textStyle">bold</item> <item name="android:textStyle">bold</item>
<item name="android:textAllCaps">true</item> <item name="android:textAllCaps">true</item>
<item name="android:textSize">22sp</item> <item name="android:textSize">13sp</item>
</style> </style>
<style name="font20" parent="@android:style/TextAppearance.Small"> <style name="font20" parent="@android:style/TextAppearance.Small">

View file

@ -337,7 +337,7 @@ public class LinphonePreferences {
lc.addProxyConfig(prxCfg); lc.addProxyConfig(prxCfg);
lc.addAuthInfo(authInfo); lc.addAuthInfo(authInfo);
if (!tempNoDefault && LinphonePreferences.instance().getAccountCount() == 1) if (!tempNoDefault)
lc.setDefaultProxyConfig(prxCfg); lc.setDefaultProxyConfig(prxCfg);
} }
} }

View file

@ -21,12 +21,10 @@ import org.linphone.LinphoneActivity;
import org.linphone.LinphoneManager; import org.linphone.LinphoneManager;
import org.linphone.LinphonePreferences; import org.linphone.LinphonePreferences;
import org.linphone.LinphonePreferences.AccountBuilder; import org.linphone.LinphonePreferences.AccountBuilder;
import org.linphone.LinphoneUtils;
import org.linphone.R; import org.linphone.R;
import org.linphone.StatusFragment; import org.linphone.StatusFragment;
import org.linphone.core.LinphoneAddress; import org.linphone.core.LinphoneAddress;
import org.linphone.core.LinphoneAddress.TransportType; import org.linphone.core.LinphoneAddress.TransportType;
import org.linphone.core.LinphoneAuthInfo;
import org.linphone.core.LinphoneCore; import org.linphone.core.LinphoneCore;
import org.linphone.core.LinphoneCore.RegistrationState; import org.linphone.core.LinphoneCore.RegistrationState;
import org.linphone.core.LinphoneCoreException; import org.linphone.core.LinphoneCoreException;
@ -35,22 +33,23 @@ import org.linphone.core.LinphoneCoreListenerBase;
import org.linphone.core.LinphoneProxyConfig; import org.linphone.core.LinphoneProxyConfig;
import android.app.Activity; import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog; import android.app.Dialog;
import android.app.Fragment; import android.app.Fragment;
import android.app.FragmentTransaction; import android.app.FragmentTransaction;
import android.content.Context; import android.content.Context;
import android.content.DialogInterface;
import android.content.pm.ActivityInfo; import android.content.pm.ActivityInfo;
import android.graphics.drawable.ColorDrawable; import android.graphics.drawable.ColorDrawable;
import android.graphics.drawable.Drawable; import android.graphics.drawable.Drawable;
import android.os.Bundle; import android.os.Bundle;
import android.text.TextUtils; import android.text.TextUtils;
import android.view.View; import android.view.View;
import android.view.View.OnClickListener; import android.view.View.OnClickListener;
import android.view.Window; import android.view.Window;
import android.view.WindowManager; import android.view.WindowManager;
import android.view.inputmethod.InputMethodManager; import android.view.inputmethod.InputMethodManager;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView; import android.widget.ImageView;
import android.widget.TextView; import android.widget.TextView;
import android.widget.Toast; import android.widget.Toast;
@ -68,6 +67,7 @@ public class AssistantActivity extends Activity implements OnClickListener {
private LinphoneCoreListenerBase mListener; private LinphoneCoreListenerBase mListener;
private LinphoneAddress address; private LinphoneAddress address;
private StatusFragment status; private StatusFragment status;
private Dialog dialog;
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
@ -83,7 +83,7 @@ public class AssistantActivity extends Activity implements OnClickListener {
firstFragment = getResources().getBoolean(R.bool.assistant_use_linphone_login_as_first_fragment) ? firstFragment = getResources().getBoolean(R.bool.assistant_use_linphone_login_as_first_fragment) ?
AssistantFragmentsEnum.LINPHONE_LOGIN : AssistantFragmentsEnum.WELCOME; AssistantFragmentsEnum.LINPHONE_LOGIN : AssistantFragmentsEnum.WELCOME;
if (findViewById(R.id.fragmentContainer) != null) { if (findViewById(R.id.fragment_container) != null) {
if (savedInstanceState == null) { if (savedInstanceState == null) {
display(firstFragment); display(firstFragment);
} else { } else {
@ -102,8 +102,8 @@ public class AssistantActivity extends Activity implements OnClickListener {
launchEchoCancellerCalibration(true); launchEchoCancellerCalibration(true);
} }
} else if (state == RegistrationState.RegistrationFailed) { } else if (state == RegistrationState.RegistrationFailed) {
//showDialog(cfg); dialog = createErrorDialog(cfg, smessage);
Toast.makeText(AssistantActivity.this, getString(R.string.first_launch_bad_login_password), Toast.LENGTH_LONG).show(); dialog.show();
} }
} }
} }
@ -156,7 +156,7 @@ public class AssistantActivity extends Activity implements OnClickListener {
private void changeFragment(Fragment newFragment) { private void changeFragment(Fragment newFragment) {
FragmentTransaction transaction = getFragmentManager().beginTransaction(); FragmentTransaction transaction = getFragmentManager().beginTransaction();
transaction.replace(R.id.fragmentContainer, newFragment); transaction.replace(R.id.fragment_container, newFragment);
transaction.commitAllowingStateLoss(); transaction.commitAllowingStateLoss();
} }
@ -194,7 +194,7 @@ public class AssistantActivity extends Activity implements OnClickListener {
WelcomeFragment fragment = new WelcomeFragment(); WelcomeFragment fragment = new WelcomeFragment();
changeFragment(fragment); changeFragment(fragment);
currentFragment = AssistantFragmentsEnum.WELCOME; currentFragment = AssistantFragmentsEnum.WELCOME;
back.setVisibility(View.GONE); back.setVisibility(View.INVISIBLE);
} else if (currentFragment == AssistantFragmentsEnum.WELCOME) { } else if (currentFragment == AssistantFragmentsEnum.WELCOME) {
finish(); finish();
} }
@ -215,33 +215,40 @@ public class AssistantActivity extends Activity implements OnClickListener {
} }
} }
private void logIn(String username, String password, String displayName, String domain, boolean sendEcCalibrationResult) { private void logIn(String username, String password, String displayName, String domain, TransportType transport, boolean sendEcCalibrationResult) {
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
if (imm != null && getCurrentFocus() != null) { if (imm != null && getCurrentFocus() != null) {
imm.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), 0); imm.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), 0);
} }
saveCreatedAccount(username, password, displayName, domain); saveCreatedAccount(username, password, displayName, domain, transport);
/*if (LinphoneManager.getLc().getDefaultProxyConfig() != null) {
if (LinphoneManager.getLc().getDefaultProxyConfig() != null) { //launchEchoCancellerCalibration(sendEcCalibrationResult);
launchEchoCancellerCalibration(sendEcCalibrationResult); }*/
}
} }
public void checkAccount(String username, String password, String displayName, String domain) { public void checkAccount(String username, String password, String displayName, String domain) {
saveCreatedAccount(username, password, displayName, domain); saveCreatedAccount(username, password, displayName, domain, null);
} }
public void linphoneLogIn(String username, String password, String displayName, boolean validate) { public void linphoneLogIn(String username, String password, String displayName, boolean validate) {
if (validate) { if (validate) {
checkAccount(username, password, displayName, getString(R.string.default_domain)); checkAccount(username, password, displayName, getString(R.string.default_domain));
} else { } else {
logIn(username, password, displayName, getString(R.string.default_domain), true); if(accountCreated) {
retryLogin(username, password, displayName, getString(R.string.default_domain), null);
} else {
logIn(username, password, displayName, getString(R.string.default_domain), null, true);
}
} }
} }
public void genericLogIn(String username, String password, String displayName, String domain) { public void genericLogIn(String username, String password, String displayName, String domain, TransportType transport) {
logIn(username, password, displayName, domain, false); if(accountCreated) {
retryLogin(username, password, displayName, domain, transport);
} else {
logIn(username, password, displayName, domain, transport, false);
}
} }
private void display(AssistantFragmentsEnum fragment) { private void display(AssistantFragmentsEnum fragment) {
@ -261,7 +268,7 @@ public class AssistantActivity extends Activity implements OnClickListener {
fragment = new WelcomeFragment(); fragment = new WelcomeFragment();
changeFragment(fragment); changeFragment(fragment);
currentFragment = AssistantFragmentsEnum.WELCOME; currentFragment = AssistantFragmentsEnum.WELCOME;
back.setVisibility(View.GONE); back.setVisibility(View.INVISIBLE);
} }
public void displayLoginGeneric() { public void displayLoginGeneric() {
@ -272,12 +279,9 @@ public class AssistantActivity extends Activity implements OnClickListener {
} }
public void displayLoginLinphone() { public void displayLoginLinphone() {
//loadConfig();
fragment = new LinphoneLoginFragment(); fragment = new LinphoneLoginFragment();
//LinphoneManager.getInstance().loadConfig(R.raw.config_linphone_account);
//LinphoneManager.getInstance().resetLinphoneCore(this);
changeFragment(fragment); changeFragment(fragment);
currentFragment = AssistantFragmentsEnum.LINPHONE_LOGIN; currentFragment = AssistantFragmentsEnum.LINPHONE_LOGIN;
back.setVisibility(View.VISIBLE); back.setVisibility(View.VISIBLE);
@ -297,16 +301,17 @@ public class AssistantActivity extends Activity implements OnClickListener {
back.setVisibility(View.VISIBLE); back.setVisibility(View.VISIBLE);
} }
public void retryLogin(LinphoneProxyConfig proxy, String password){ public void retryLogin(String username, String password, String displayName, String domain, TransportType transport) {
LinphoneAuthInfo info = LinphoneManager.getLc().findAuthInfo(LinphoneUtils.getUsernameFromAddress(proxy.getIdentity()),proxy.getRealm(),proxy.getDomain()); accountCreated = false;
if(info != null) { saveCreatedAccount(username, password, displayName, domain, transport);
info.setPassword(password);
LinphoneManager.getLc().addAuthInfo(info);
}
LinphoneManager.getLc().refreshRegisters();
} }
public void saveCreatedAccount(String username, String password, String displayName, String domain) { public void loadLinphoneConfig(){
LinphoneManager.getInstance().loadConfig();
LinphoneManager.getInstance().restartLinphoneCore();
}
public void saveCreatedAccount(String username, String password, String displayName, String domain, TransportType transport) {
if (accountCreated) if (accountCreated)
return; return;
@ -356,7 +361,8 @@ public class AssistantActivity extends Activity implements OnClickListener {
.setQualityReportingCollector("sip:voip-metrics@sip.linphone.org") .setQualityReportingCollector("sip:voip-metrics@sip.linphone.org")
.setQualityReportingEnabled(true) .setQualityReportingEnabled(true)
.setQualityReportingInterval(180) .setQualityReportingInterval(180)
.setRealm("sip.linphone.org"); .setRealm("sip.linphone.org")
.setNoDefault(false);
mPrefs.setStunServer(getString(R.string.default_stun)); mPrefs.setStunServer(getString(R.string.default_stun));
@ -368,6 +374,10 @@ public class AssistantActivity extends Activity implements OnClickListener {
.setOutboundProxyEnabled(true) .setOutboundProxyEnabled(true)
.setAvpfRRInterval(5); .setAvpfRRInterval(5);
} }
if(transport != null){
builder.setTransport(transport);
}
} }
if (getResources().getBoolean(R.bool.enable_push_id)) { if (getResources().getBoolean(R.bool.enable_push_id)) {
@ -396,7 +406,7 @@ public class AssistantActivity extends Activity implements OnClickListener {
changeFragment(fragment); changeFragment(fragment);
currentFragment = AssistantFragmentsEnum.CREATE_ACCOUNT_ACTIVATION; currentFragment = AssistantFragmentsEnum.CREATE_ACCOUNT_ACTIVATION;
back.setVisibility(View.GONE); back.setVisibility(View.INVISIBLE);
} }
public void isAccountVerified(String username) { public void isAccountVerified(String username) {
@ -424,30 +434,27 @@ public class AssistantActivity extends Activity implements OnClickListener {
return dialog; return dialog;
} }
public void showDialog(final LinphoneProxyConfig proxy){ public Dialog createErrorDialog(LinphoneProxyConfig proxy, String message){
final Dialog dialog = displayWrongPasswordDialog(); AlertDialog.Builder builder = new AlertDialog.Builder(this);
if(message.equals("Forbidden")) {
Button retry = (Button) dialog.findViewById(R.id.retry); message = getString(R.string.assistant_error_bad_credentials);
Button cancel = (Button) dialog.findViewById(R.id.cancel); }
builder.setMessage(message)
retry.setOnClickListener(new OnClickListener() { .setTitle(proxy.getState().toString())
@Override .setPositiveButton(getString(R.string.continue_text), new DialogInterface.OnClickListener() {
public void onClick(View view) { public void onClick(DialogInterface dialog, int id) {
String newPassword = ((EditText) dialog.findViewById(R.id.password)).getText().toString(); success();
retryLogin(proxy, newPassword); }
dialog.dismiss(); })
} .setNegativeButton(getString(R.string.cancel), new DialogInterface.OnClickListener() {
}); public void onClick(DialogInterface dialog, int id) {
LinphoneManager.getLc().removeProxyConfig(LinphoneManager.getLc().getDefaultProxyConfig());
cancel.setOnClickListener(new OnClickListener() { LinphonePreferences.instance().resetDefaultProxyConfig();
@Override LinphoneManager.getLc().refreshRegisters();
public void onClick(View view) { dialog.cancel();
success(); }
dialog.dismiss(); });
} return builder.create();
});
dialog.show();
} }
public void success() { public void success() {

View file

@ -72,7 +72,7 @@ public class CreateAccountActivationFragment extends Fragment {
XMLRPCCallback listener = new XMLRPCCallback() { XMLRPCCallback listener = new XMLRPCCallback() {
Runnable runNotOk = new Runnable() { Runnable runNotOk = new Runnable() {
public void run() { public void run() {
Toast.makeText(getActivity(), getString(R.string.setup_account_not_validated), Toast.LENGTH_LONG).show(); Toast.makeText(getActivity(), getString(R.string.assistant_account_not_validated), Toast.LENGTH_LONG).show();
} }
}; };

View file

@ -107,7 +107,7 @@ public class CreateAccountFragment extends Fragment {
if (end > start) { if (end > start) {
for (int index = start; index < end; index++) { for (int index = start; index < end; index++) {
if (!inputFilterCharacters.contains(String.valueOf(source.charAt(index)))) { if (!inputFilterCharacters.contains(String.valueOf(source.charAt(index)))) {
return ""; return "";
} }
} }
} }
@ -156,7 +156,7 @@ public class CreateAccountFragment extends Fragment {
} }
private void displayError(Boolean isOk, TextView error, EditText editText, String errorText){ private void displayError(Boolean isOk, TextView error, EditText editText, String errorText){
if(isOk){ if(isOk || editText.getText().toString().equals("")){
error.setVisibility(View.INVISIBLE); error.setVisibility(View.INVISIBLE);
error.setText(errorText); error.setText(errorText);
editText.setBackgroundResource(R.drawable.resizable_textfield); editText.setBackgroundResource(R.drawable.resizable_textfield);
@ -261,7 +261,7 @@ public class CreateAccountFragment extends Fragment {
Runnable runOk = new Runnable() { Runnable runOk = new Runnable() {
public void run() { public void run() {
AssistantActivity.instance().saveCreatedAccount(username, password, null, context.getString(R.string.default_domain)); AssistantActivity.instance().saveCreatedAccount(username, password, null, context.getString(R.string.default_domain), null);
AssistantActivity.instance().displayWizardConfirm(username); AssistantActivity.instance().displayWizardConfirm(username);
} }
}; };

View file

@ -21,6 +21,8 @@ import org.linphone.R;
import android.app.Fragment; import android.app.Fragment;
import android.os.Bundle; import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.View.OnClickListener; import android.view.View.OnClickListener;
@ -31,7 +33,7 @@ import android.widget.Toast;
/** /**
* @author Sylvain Berfini * @author Sylvain Berfini
*/ */
public class LinphoneLoginFragment extends Fragment implements OnClickListener { public class LinphoneLoginFragment extends Fragment implements OnClickListener, TextWatcher {
private EditText login, password, displayName; private EditText login, password, displayName;
private Button apply; private Button apply;
@ -41,9 +43,12 @@ public class LinphoneLoginFragment extends Fragment implements OnClickListener {
View view = inflater.inflate(R.layout.assistant_linphone_login, container, false); View view = inflater.inflate(R.layout.assistant_linphone_login, container, false);
login = (EditText) view.findViewById(R.id.assistant_username); login = (EditText) view.findViewById(R.id.assistant_username);
login.addTextChangedListener(this);
password = (EditText) view.findViewById(R.id.assistant_password); password = (EditText) view.findViewById(R.id.assistant_password);
password.addTextChangedListener(this);
displayName = (EditText) view.findViewById(R.id.assistant_display_name); displayName = (EditText) view.findViewById(R.id.assistant_display_name);
apply = (Button) view.findViewById(R.id.assistant_apply); apply = (Button) view.findViewById(R.id.assistant_apply);
apply.setEnabled(false);
apply.setOnClickListener(this); apply.setOnClickListener(this);
if (getResources().getBoolean(R.bool.assistant_use_linphone_login_as_first_fragment)) { if (getResources().getBoolean(R.bool.assistant_use_linphone_login_as_first_fragment)) {
@ -70,4 +75,15 @@ public class LinphoneLoginFragment extends Fragment implements OnClickListener {
linphoneLogIn(); linphoneLogIn();
} }
} }
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
apply.setEnabled(!login.getText().toString().isEmpty() && !password.getText().toString().isEmpty());
}
@Override
public void afterTextChanged(Editable s) {}
} }

View file

@ -21,18 +21,26 @@ import org.linphone.R;
import android.app.Fragment; import android.app.Fragment;
import android.os.Bundle; import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import org.linphone.core.LinphoneAddress.TransportType;
import org.linphone.core.LinphoneAddress;
import org.linphone.mediastream.Log;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.View.OnClickListener; import android.view.View.OnClickListener;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.widget.Button; import android.widget.Button;
import android.widget.EditText; import android.widget.EditText;
import android.widget.RadioGroup;
import android.widget.Toast; import android.widget.Toast;
/** /**
* @author Sylvain Berfini * @author Sylvain Berfini
*/ */
public class LoginFragment extends Fragment implements OnClickListener { public class LoginFragment extends Fragment implements OnClickListener, TextWatcher {
private EditText login, password, displayName, domain; private EditText login, password, displayName, domain;
private RadioGroup transports;
private Button apply; private Button apply;
@Override @Override
@ -41,10 +49,15 @@ public class LoginFragment extends Fragment implements OnClickListener {
View view = inflater.inflate(R.layout.assistant_login, container, false); View view = inflater.inflate(R.layout.assistant_login, container, false);
login = (EditText) view.findViewById(R.id.assistant_username); login = (EditText) view.findViewById(R.id.assistant_username);
login.addTextChangedListener(this);
password = (EditText) view.findViewById(R.id.assistant_password); password = (EditText) view.findViewById(R.id.assistant_password);
password.addTextChangedListener(this);
displayName = (EditText) view.findViewById(R.id.assistant_display_name); displayName = (EditText) view.findViewById(R.id.assistant_display_name);
domain = (EditText) view.findViewById(R.id.assistant_domain); domain = (EditText) view.findViewById(R.id.assistant_domain);
domain.addTextChangedListener(this);
transports = (RadioGroup) view.findViewById(R.id.assistant_transports);
apply = (Button) view.findViewById(R.id.assistant_apply); apply = (Button) view.findViewById(R.id.assistant_apply);
apply.setEnabled(false);
apply.setOnClickListener(this); apply.setOnClickListener(this);
return view; return view;
@ -59,8 +72,32 @@ public class LoginFragment extends Fragment implements OnClickListener {
Toast.makeText(getActivity(), getString(R.string.first_launch_no_login_password), Toast.LENGTH_LONG).show(); Toast.makeText(getActivity(), getString(R.string.first_launch_no_login_password), Toast.LENGTH_LONG).show();
return; return;
} }
AssistantActivity.instance().genericLogIn(login.getText().toString(), password.getText().toString(), displayName.getText().toString(), domain.getText().toString()); TransportType transport;
if(transports.getCheckedRadioButtonId() == R.id.transport_udp){
transport = TransportType.LinphoneTransportUdp;
} else {
if(transports.getCheckedRadioButtonId() == R.id.transport_tcp){
transport = TransportType.LinphoneTransportTcp;
} else {
transport = TransportType.LinphoneTransportTls;
}
}
AssistantActivity.instance().genericLogIn(login.getText().toString(), password.getText().toString(), displayName.getText().toString(), domain.getText().toString(),transport);
} }
} }
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
apply.setEnabled(!login.getText().toString().isEmpty() && !password.getText().toString().isEmpty() && !domain.getText().toString().isEmpty());
}
@Override
public void afterTextChanged(Editable s) {
}
} }

View file

@ -25,6 +25,8 @@ import org.linphone.R;
import android.app.Fragment; import android.app.Fragment;
import android.os.Bundle; import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.View.OnClickListener; import android.view.View.OnClickListener;
@ -32,7 +34,7 @@ import android.view.ViewGroup;
import android.widget.Button; import android.widget.Button;
import android.widget.EditText; import android.widget.EditText;
public class RemoteProvisioningFragment extends Fragment implements OnClickListener { public class RemoteProvisioningFragment extends Fragment implements OnClickListener, TextWatcher{
private EditText remoteProvisioningUrl; private EditText remoteProvisioningUrl;
private Button apply; private Button apply;
@ -42,7 +44,9 @@ public class RemoteProvisioningFragment extends Fragment implements OnClickListe
View view = inflater.inflate(R.layout.assistant_remote_provisioning, container, false); View view = inflater.inflate(R.layout.assistant_remote_provisioning, container, false);
remoteProvisioningUrl = (EditText) view.findViewById(R.id.assistant_remote_provisioning_url); remoteProvisioningUrl = (EditText) view.findViewById(R.id.assistant_remote_provisioning_url);
remoteProvisioningUrl.addTextChangedListener(this);
apply = (Button) view.findViewById(R.id.assistant_apply); apply = (Button) view.findViewById(R.id.assistant_apply);
apply.setEnabled(false);
apply.setOnClickListener(this); apply.setOnClickListener(this);
return view; return view;
@ -58,4 +62,19 @@ public class RemoteProvisioningFragment extends Fragment implements OnClickListe
LinphoneManager.getInstance().restartLinphoneCore(); LinphoneManager.getInstance().restartLinphoneCore();
} }
} }
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
apply.setEnabled(!remoteProvisioningUrl.getText().toString().isEmpty());
}
@Override
public void afterTextChanged(Editable s) {
}
} }