Skip to content

Commit

Permalink
update login
Browse files Browse the repository at this point in the history
  • Loading branch information
金良善 authored and 金良善 committed Sep 12, 2017
1 parent 258255d commit 90e3209
Show file tree
Hide file tree
Showing 16 changed files with 317 additions and 17 deletions.
6 changes: 5 additions & 1 deletion app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,17 @@
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".view.MainActivity">
<activity android:name=".view.MainActivity"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>

<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>

<activity android:name=".view.profile.login.LoginActivity"
android:screenOrientation="portrait"/>
</application>

</manifest>
Original file line number Diff line number Diff line change
Expand Up @@ -66,4 +66,10 @@ class UserBean {
var expires_at: String? = null
}
}
}

class TokenBean{
var token: String? = null
var user_id: String? = null
var state: String? = null
}
}
44 changes: 40 additions & 4 deletions app/src/main/kotlin/com/fashare/mvvm_juejin/repo/JueJinApis.kt
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,17 @@ package com.fashare.mvvm_juejin.repo

import com.fashare.mvvm_juejin.model.ArticleListBean
import com.fashare.mvvm_juejin.model.HotRecomment
import com.fashare.mvvm_juejin.model.user.UserBean
import com.fashare.net.ApiFactory
import io.reactivex.Observable
import retrofit2.http.GET
import retrofit2.http.Query
import retrofit2.http.*

/**
* Created by apple on 2017/9/6.
*/
@ApiFactory.BaseUrl("https://timeline-merger-ms.juejin.im/")
const val BASE_URL = "https://timeline-merger-ms.juejin.im/"

@ApiFactory.BaseUrl(BASE_URL)
interface JueJinApis {
// 热门推荐
@GET("/v1/get_entry_by_hot_recomment")
Expand All @@ -28,4 +30,38 @@ interface JueJinApis {
@Query("token") token: String,
@Query("device_id") device_id: String,
@Query("src") src: String): Observable<Response<ArticleListBean>>
}

@ApiFactory.BaseUrl("https://auth-center-ms.juejin.im")
interface User{
class LoginParam{
var login_type = "tel"
var user = ""
var psd = ""
var client_id = "b9ae8b6a-efe0-4944-b574-b01a3a1303ee"
var state = "nOOKnTFSCE"
var src = "android"

fun toMap(): Map<String, String>{
return mapOf(
"login_type" to login_type,
"user" to user,
"psd" to psd,
"client_id" to client_id,
"state" to state,
"src" to src
)
// return (Gson().toJsonTree(this) as JsonObject).let{
// JsonObject:: class.java.getField("members").get(it) as Map<String, *>
// }
}
}

@FormUrlEncoded
@Headers(
// "Content-Type: application/x-www-form-urlencoded",
"X-Juejin-Src:android"
)
@POST("/v1/login")
fun login(@FieldMap param: Map<String, String>): Observable<Response<UserBean.TokenBean>>
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,6 @@ package com.fashare.mvvm_juejin.view.home

import android.databinding.DataBindingUtil
import android.os.Bundle
import android.support.v4.widget.SwipeRefreshLayout
import android.util.Log
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
Expand Down Expand Up @@ -76,6 +74,8 @@ class HomeListFragment : BaseFragment(){
this.clear()
this.addAll(if(list.size<=3) list else list.subList(0, 3))
}
}, {

})
}

Expand All @@ -98,6 +98,8 @@ class HomeListFragment : BaseFragment(){
this.clear()
this.addAll(list)
}
}, {

})
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
package com.fashare.mvvm_juejin.view.home

import android.databinding.DataBindingUtil
import android.databinding.ViewDataBinding
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import com.fashare.base_ui.BaseFragment
import com.fashare.mvvm_juejin.R
import com.fashare.mvvm_juejin.databinding.FragmentProfileBinding
import com.fashare.mvvm_juejin.viewmodel.ProfileVM

/**
* <pre>
Expand All @@ -18,6 +19,8 @@ import com.fashare.mvvm_juejin.R
*/
class ProfileFragment : BaseFragment(){
override fun onCreateView(inflater: LayoutInflater?, container: ViewGroup?, savedInstanceState: Bundle?): View? {
return DataBindingUtil.inflate<ViewDataBinding>(inflater, R.layout.fragment_profile, container, false).root
return DataBindingUtil.inflate<FragmentProfileBinding>(inflater, R.layout.fragment_profile, container, false).apply {
this.profileVM = ProfileVM()
}.root
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package com.fashare.mvvm_juejin.view.profile.login

import android.databinding.DataBindingUtil
import android.os.Bundle
import com.fashare.base_ui.BaseActivity
import com.fashare.mvvm_juejin.R
import com.fashare.mvvm_juejin.databinding.ActivityLoginBinding
import com.fashare.mvvm_juejin.viewmodel.LoginVM

class LoginActivity : BaseActivity() {

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)

DataBindingUtil.setContentView<ActivityLoginBinding>(this, R.layout.activity_login).apply{
this.loginVM = LoginVM()
}
}
}
32 changes: 32 additions & 0 deletions app/src/main/kotlin/com/fashare/mvvm_juejin/viewmodel/LoginVM.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
package com.fashare.mvvm_juejin.viewmodel

import android.app.Activity
import android.databinding.ObservableField
import android.view.View
import com.fashare.mvvm_juejin.repo.Composers
import com.fashare.mvvm_juejin.repo.JueJinApis
import com.fashare.net.ApiFactory

/**
* <pre>
* author : jinliangshan
* e-mail : [email protected]
* desc :
* </pre>
*/
class LoginVM(){
var userName = ObservableField<String>("18818276018")
var passWord = ObservableField<String>("qwe13579")

val doLogin = View.OnClickListener{ view: View ->
ApiFactory.getApi(JueJinApis.User::class.java)
.login(JueJinApis.User.LoginParam().apply{
this.user = userName.get()
this.psd = passWord.get()
}.toMap())
.compose(Composers.compose())
.subscribe({
(view.context as Activity).finish()
}, {})
}
}
18 changes: 18 additions & 0 deletions app/src/main/kotlin/com/fashare/mvvm_juejin/viewmodel/ProfileVM.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package com.fashare.mvvm_juejin.viewmodel

import android.content.Intent
import android.view.View
import com.fashare.mvvm_juejin.view.profile.login.LoginActivity

/**
* <pre>
* author : jinliangshan
* e-mail : [email protected]
* desc :
* </pre>
*/
class ProfileVM(){
val toLogin = View.OnClickListener{
it.context.startActivity(Intent(it.context, LoginActivity:: class.java))
}
}
89 changes: 89 additions & 0 deletions app/src/main/res/layout/activity_login.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
<?xml version="1.0" encoding="utf-8"?>

<layout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:bind="http://schemas.android.com/apk/res-auto">

<data>

<variable name="loginVM" type="com.fashare.mvvm_juejin.viewmodel.LoginVM"/>
</data>

<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:gravity="center_horizontal"
android:padding="@dimen/login_margin"
android:background="@color/colorPrimary">

<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/login_margin"
android:src="@mipmap/login_logo"/>

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_marginTop="@dimen/login_margin"
android:background="@color/login_form_bg">

<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="@dimen/login_edit_padding"
android:hint="手机号/邮箱"
android:text="@{loginVM.userName}"
android:textSize="16sp"/>

<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="@dimen/login_edit_padding"
android:inputType="textPassword"
android:hint="密码"
android:text="@{loginVM.passWord}"
android:textSize="16sp"/>

</LinearLayout>

<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:padding="@dimen/login_btn_padding"
android:gravity="center"
android:background="@android:color/holo_blue_dark"
android:text="登录"
android:textColor="@color/login_text_default"
android:textSize="16sp"
android:onClick="@{loginVM.doLogin}"/>

<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="12dp">

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="忘记密码?"
android:textColor="@color/login_text_light"
android:textSize="13sp"/>

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:text="注册账号"
android:textColor="@color/login_text_default"
android:textSize="13sp"/>

</RelativeLayout>

</LinearLayout>

</layout>

Loading

0 comments on commit 90e3209

Please sign in to comment.