Commit 9824f3b1 by 倪力烽

1. 修改了模糊搜索框焦点的变化情况

parent de33d9af
...@@ -135,7 +135,7 @@ ...@@ -135,7 +135,7 @@
<ConfirmationsSetting value="0" id="Add" /> <ConfirmationsSetting value="0" id="Add" />
<ConfirmationsSetting value="0" id="Remove" /> <ConfirmationsSetting value="0" id="Remove" />
</component> </component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_7" default="true" assert-keyword="true" jdk-15="true" project-jdk-name="1.8" project-jdk-type="JavaSDK"> <component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" assert-keyword="true" jdk-15="true" project-jdk-name="1.8" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/build/classes" /> <output url="file://$PROJECT_DIR$/build/classes" />
</component> </component>
<component name="ProjectType"> <component name="ProjectType">
......
package com.senthink.ebike_administrer_tool.api;
import com.senthink.ebike_administrer_tool.MyApplication;
import com.senthink.ebike_administrer_tool.utils.NetWorkUtil;
import java.io.File;
import java.io.IOException;
import okhttp3.Cache;
import okhttp3.Interceptor;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
import retrofit2.Retrofit;
import retrofit2.adapter.rxjava.RxJavaCallAdapterFactory;
import retrofit2.converter.gson.GsonConverterFactory;
/**
* @Description :
* @Author : ni
* @Email : lifengni2015@gmail.com
* @Date : 2017/6/6
*/
public class ApiManager {
public static ApiManager apiManage = null;
private static final Interceptor REWRITE_CACHE_CONTROL_INTERCEPTOR = new Interceptor() {
@Override
public Response intercept(Chain chain) throws IOException {
Response originalResponse = chain.proceed(chain.request());
if (NetWorkUtil.isNetWorkAvailable(MyApplication.getApplication())) {
int maxAge = 60; // 在线缓存在1分钟内可读取
return originalResponse.newBuilder()
.removeHeader("Pragma") // 删除原有头部的字段
.removeHeader("Cache-Control") // 删除原有头部的字段
.header("Cache-Control", "public, max-age=" + maxAge) // 替换为这些字段,以达到重写头部,存入缓存的功能
.build();
} else {
int maxStale = 60 * 60 * 24 * 28; // 离线时缓存保存4周
return originalResponse.newBuilder()
.removeHeader("Pragma")
.removeHeader("Cache-Control")
.header("Cache-Control", "public, only-if-cached, max-stale=" + maxStale)
.build();
}
}
};
public LoginApi loginApi;
public UserApi userApi;
private Object monitor = new Object();
private static File httpCacheDirectory = new File(MyApplication.getContext().getCacheDir(), "zhihuCache");
private static int cacheSize = 10 * 1024 * 1024; // 10 MiB
private static Cache cache = new Cache(httpCacheDirectory, cacheSize);
// 预请求的header信息
private static final class OptionsInterceptor implements Interceptor {
@Override
public Response intercept(Chain chain) throws IOException {
Request.Builder builder = chain.request().newBuilder();
Request requst = builder.addHeader("Content-type", "application/json")
.addHeader("Accept", "application/json").build();
return chain.proceed(requst);
}
}
private static final class PostInterceptor implements Interceptor {
@Override
public Response intercept(Chain chain) throws IOException {
Request.Builder builder = chain.request().newBuilder();
Request requst = builder.addHeader("Content-type", "application/json")
.addHeader("Accept", "application/json").build();
return chain.proceed(requst);
}
}
private static OkHttpClient client = new OkHttpClient.Builder() // client 中添加了以下属性
.addNetworkInterceptor(REWRITE_CACHE_CONTROL_INTERCEPTOR)
.addInterceptor(new PostInterceptor())
.build();
private static OkHttpClient addTokenClient = new OkHttpClient.Builder()
.addNetworkInterceptor(REWRITE_CACHE_CONTROL_INTERCEPTOR)
.addInterceptor(new PostInterceptor())
.build();
public static ApiManager getInstance() {
if (apiManage == null) {
synchronized (ApiManager.class) {
if (apiManage == null) {
apiManage = new ApiManager();
}
}
}
return apiManage;
}
public LoginApi postUserInfo() {
if (loginApi == null) {
synchronized (monitor) {
if (loginApi == null) {
loginApi = new Retrofit.Builder()
.baseUrl("http://10.200.2.109:9051/")
// .baseUrl("http://10.200.0.51:9051/auth")
.client(client)
.addCallAdapterFactory(RxJavaCallAdapterFactory.create())
.addConverterFactory(GsonConverterFactory.create())
.build().create(LoginApi.class);
}
}
}
return loginApi;
}
/**
* @Description 获取Id
* */
public UserApi getUserId() {
if (userApi == null) {
synchronized (monitor) {
if (userApi == null) {
userApi = new Retrofit.Builder()
.baseUrl("http://10.200.2.109:9011/")
.client(client)
.addCallAdapterFactory(RxJavaCallAdapterFactory.create())
.addConverterFactory(GsonConverterFactory.create())
.build().create(UserApi.class);
}
}
}
return userApi;
}
public UserApi modifyPsw() {
if (userApi == null) {
synchronized (monitor) {
if (userApi == null) {
userApi = new Retrofit.Builder()
.baseUrl("http://10.200.2.109:9011/")
.client(client)
.addCallAdapterFactory(RxJavaCallAdapterFactory.create())
.addConverterFactory(GsonConverterFactory.create())
.build().create(UserApi.class);
}
}
}
return userApi;
}
}
package com.senthink.ebike_administrer_tool.api;
import com.squareup.okhttp.RequestBody;
import retrofit2.Call;
import retrofit2.http.Body;
import retrofit2.http.OPTIONS;
import retrofit2.http.POST;
import rx.Observable;
/**
* @Description :
* @Author : ni
* @Email : lifengni2015@gmail.com
* @Date : 2017/6/3
*/
public interface LoginApi {
@POST("auth")
Observable<RequestBody> userLogin(@Body RequestBody bean);// <LoginUser>为请求结果后的实体类,即账号密码;route为进行post请求的实体类
}
package com.senthink.ebike_administrer_tool.api;
import com.senthink.ebike_administrer_tool.bean.userInfo.GetUserByName;
import com.senthink.ebike_administrer_tool.bean.userInfo.GetUserInfoById;
import com.senthink.ebike_administrer_tool.bean.userInfo.ModifyResponseBody;
import com.squareup.okhttp.RequestBody;
import retrofit2.Call;
import retrofit2.http.Body;
import retrofit2.http.GET;
import retrofit2.http.Header;
import retrofit2.http.POST;
import retrofit2.http.Path;
import rx.Observable;
/**
* @Description : 获取个人信息的api
* @Author : ni
* @Email : lifengni2015@gmail.com
* @Date : 2017/6/7
*/
public interface UserApi {
// 通过userName获得userId
@GET("challenger/user/me/{loginName}")
Observable<GetUserByName> getUserId(@Path("loginName") String userName);
@GET("app/user/me/{userId}")
Observable<GetUserInfoById> getUserInfo(@Path("userId") int userId);
@POST("challenger/app/user/updatePass")
Call<ModifyResponseBody> postPsw(@Header("Authorization") String authorization,@Body RequestBody body);
}
package com.senthink.ebike_administrer_tool.bean.login;
/**
* @Description : 将账号密码转化为json格式
* @Author : ni
* @Email : lifengni2015@gmail.com
* @Date : 2017/6/6
*/
public class LoginBean {
/**
* password : 123456
* username : xjl
*/
private String password;
private String username;
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
}
package com.senthink.ebike_administrer_tool.bean.login;
/**
* @Description :
* @Author : ni
* @Email : lifengni2015@gmail.com
* @Date : 2017/6/3
*/
public class LoginBody {
String userName;
String passWord;
public void setUserName(String userName) {
this.userName = userName;
}
public void setPassWord(String passWord) {
this.passWord = passWord;
}
public String getUserName() {
return userName;
}
public String getPassWord() {
return passWord;
}
}
...@@ -11,8 +11,9 @@ public class CommonUrl { ...@@ -11,8 +11,9 @@ public class CommonUrl {
public static final String LOGIN_URL = "http://10.200.2.109:9051/auth"; public static final String LOGIN_URL = "http://10.200.2.109:9051/auth";
/** 修改密码接口 */ /** 修改密码接口 */
public static final String MODIFY_PASSWORD_URL = "http://10.200.2.109:9051/challenger/app/user/updatePass"; public static final String MODIFY_PASSWORD_URL = "http://10.200.2.109:9051/challenger/app/user/updatePass";
/** 通过用户名获取用户id */
public static final String GET_USER_INFO_BY_USERNAME = "http://10.200.2.109:9011/challenger/user/get/"; public static final String GET_USER_INFO_BY_USERNAME = "http://10.200.2.109:9011/challenger/user/get/";
/** 获取用户信息接口 */ /** 通过用户id获取用户信息接口 */
public static final String GET_USER_INFO_URL = "http://10.200.2.109:9011/challenger/app/user/me/"; public static final String GET_USER_INFO_URL = "http://10.200.2.109:9011/challenger/app/user/me/";
/** 根据车架号获取车辆编号以及停车点编号的接口 */ /** 根据车架号获取车辆编号以及停车点编号的接口 */
public static final String GET_CAR_PARK_INFO = "http://10.200.2.109:9041/discovery/app/vehicle/"; public static final String GET_CAR_PARK_INFO = "http://10.200.2.109:9041/discovery/app/vehicle/";
......
package com.senthink.ebike_administrer_tool.model.impl; package com.senthink.ebike_administrer_tool.model.impl;
import com.senthink.ebike_administrer_tool.MyApplication; import com.senthink.ebike_administrer_tool.MyApplication;
import com.senthink.ebike_administrer_tool.api.LoginApi;
import com.senthink.ebike_administrer_tool.asynchttp.AsyncHttp; import com.senthink.ebike_administrer_tool.asynchttp.AsyncHttp;
import com.senthink.ebike_administrer_tool.asynchttp.HttpCallback; import com.senthink.ebike_administrer_tool.asynchttp.HttpCallback;
import com.senthink.ebike_administrer_tool.bean.login.LoginBean;
import com.senthink.ebike_administrer_tool.bean.login.LoginUser; import com.senthink.ebike_administrer_tool.bean.login.LoginUser;
import com.senthink.ebike_administrer_tool.common.CommonUrl; import com.senthink.ebike_administrer_tool.common.CommonUrl;
import com.senthink.ebike_administrer_tool.model.callback.LoginCallback; import com.senthink.ebike_administrer_tool.model.callback.LoginCallback;
......
...@@ -9,10 +9,7 @@ import com.google.gson.reflect.TypeToken; ...@@ -9,10 +9,7 @@ import com.google.gson.reflect.TypeToken;
import com.loopj.android.http.AsyncHttpClient; import com.loopj.android.http.AsyncHttpClient;
import com.loopj.android.http.AsyncHttpRequest; import com.loopj.android.http.AsyncHttpRequest;
import com.senthink.ebike_administrer_tool.MyApplication; import com.senthink.ebike_administrer_tool.MyApplication;
import com.senthink.ebike_administrer_tool.api.ApiManager;
import com.senthink.ebike_administrer_tool.api.LoginApi;
import com.senthink.ebike_administrer_tool.api.UserApi;
import com.senthink.ebike_administrer_tool.asynchttp.AsyncClient;
import com.senthink.ebike_administrer_tool.asynchttp.AsyncHttp; import com.senthink.ebike_administrer_tool.asynchttp.AsyncHttp;
import com.senthink.ebike_administrer_tool.asynchttp.HttpCallback; import com.senthink.ebike_administrer_tool.asynchttp.HttpCallback;
import com.senthink.ebike_administrer_tool.bean.userInfo.GetUserInfoById; import com.senthink.ebike_administrer_tool.bean.userInfo.GetUserInfoById;
...@@ -57,7 +54,6 @@ import okio.BufferedSink; ...@@ -57,7 +54,6 @@ import okio.BufferedSink;
*/ */
public class UserInfoModelImpl extends BasePresenterImpl implements UserInfoModel { public class UserInfoModelImpl extends BasePresenterImpl implements UserInfoModel {
UserApi userApi;
private static final String TAG = UserInfoModelImpl.class.getSimpleName(); private static final String TAG = UserInfoModelImpl.class.getSimpleName();
/** /**
......
...@@ -8,7 +8,6 @@ ...@@ -8,7 +8,6 @@
android:focusableInTouchMode="true" android:focusableInTouchMode="true"
> >
<com.senthink.ebike_administrer_tool.widget.ClearEditText <com.senthink.ebike_administrer_tool.widget.ClearEditText
android:id="@+id/et_input_parkname" android:id="@+id/et_input_parkname"
android:hint="@string/input_park_name" android:hint="@string/input_park_name"
android:textSize="@dimen/small_text" android:textSize="@dimen/small_text"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment