Skip to content

Commit 7c5907d

Browse files
committed
Optimize Login and API
1 parent 922f693 commit 7c5907d

File tree

4 files changed

+43
-25
lines changed

4 files changed

+43
-25
lines changed

app/src/main/java/io/github/storagereloaded/android/ui/LoginActivity.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,6 @@
33
import android.content.Context;
44
import android.content.SharedPreferences;
55
import android.os.Bundle;
6-
import android.os.Handler;
7-
import android.os.Looper;
86
import android.view.View;
97
import android.view.inputmethod.EditorInfo;
108
import android.widget.LinearLayout;
@@ -15,8 +13,6 @@
1513

1614
import com.google.android.material.textfield.TextInputLayout;
1715

18-
import java.util.Random;
19-
2016
import io.github.storagereloaded.android.R;
2117
import io.github.storagereloaded.android.viewmodel.LoginViewModel;
2218

@@ -111,6 +107,8 @@ private void userCheckComplete(int status, String sessionId, String serverAddres
111107
displayStatus(status);
112108

113109
if (status == STATUS_OK) {
110+
model.setSessionId(sessionId);
111+
114112
SharedPreferences prefs = getSharedPreferences(getString(R.string.preference_file_key), Context.MODE_PRIVATE);
115113
SharedPreferences.Editor editor = prefs.edit();
116114
editor.putString(getString(R.string.preferences_server_address), serverAddress);

app/src/main/java/io/github/storagereloaded/android/viewmodel/LoginViewModel.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,10 @@ public LoginViewModel(@NonNull Application application) {
2424
stoRe = ((StoReApp) application).getStoRe();
2525
}
2626

27+
public void setSessionId(String sessionId) {
28+
stoRe.setSessionId(sessionId);
29+
}
30+
2731
public LiveData<Boolean> checkServer(String serverAddress) {
2832
MutableLiveData<Boolean> data = new MutableLiveData<Boolean>() {
2933
};

app/src/main/java/io/github/storagereloaded/api/StoRe.java

Lines changed: 36 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
package io.github.storagereloaded.api;
22

3-
import java.util.Arrays;
43
import java.util.List;
54

6-
import io.github.storagereloaded.api.impl.DatabaseDummyImpl;
5+
import okhttp3.OkHttpClient;
6+
import okhttp3.Request;
77
import retrofit2.Call;
88
import retrofit2.Retrofit;
99
import retrofit2.converter.gson.GsonConverterFactory;
@@ -29,6 +29,22 @@ public boolean hasLogin() {
2929
return serverAddress != null && sessionId != null;
3030
}
3131

32+
public String getServerAddress() {
33+
return serverAddress;
34+
}
35+
36+
public void setServerAddress(String serverAddress) {
37+
this.serverAddress = serverAddress;
38+
}
39+
40+
public String getSessionId() {
41+
return sessionId;
42+
}
43+
44+
public void setSessionId(String sessionId) {
45+
this.sessionId = sessionId;
46+
}
47+
3248
public Call<InfoResponse> info() {
3349
return service.info();
3450
}
@@ -45,28 +61,16 @@ public Call<AuthResponse> auth(String serverAddress, String username, String pas
4561
return service.auth(new AuthRequest(username, password));
4662
}
4763

48-
public String getServerAddress() {
49-
return serverAddress;
50-
}
51-
52-
public void setServerAddress(String serverAddress) {
53-
this.serverAddress = serverAddress;
54-
}
55-
56-
public String getSessionId() {
57-
return sessionId;
58-
}
59-
60-
public void setSessionId(String sessionId) {
61-
this.sessionId = sessionId;
64+
public Call<List<Database>> getDatabases() {
65+
return service.getDatabases();
6266
}
6367

64-
public List<Database> getDatabases() {
65-
return Arrays.asList(new DatabaseDummyImpl());
68+
public Call<List<Item>> getItems() {
69+
return service.getItems();
6670
}
6771

68-
public boolean sync(List<Database> databases) {
69-
return false;
72+
public Call<List<Tag>> getTags() {
73+
return service.getTags();
7074
}
7175

7276
private String getServerUrl() {
@@ -77,8 +81,20 @@ private String getServerUrl() {
7781
}
7882

7983
private void createService() {
84+
OkHttpClient.Builder httpClient = new OkHttpClient.Builder();
85+
httpClient.addInterceptor(chain -> {
86+
Request.Builder builder = chain.request().newBuilder()
87+
.header("Content-Type", "application/json")
88+
.header("Accept", "application/json");
89+
if (sessionId != null)
90+
builder = builder.header("X-StoRe-Session", sessionId);
91+
92+
return chain.proceed(builder.build());
93+
});
94+
8095
service = new Retrofit.Builder()
8196
.baseUrl(getServerUrl())
97+
.client(httpClient.build())
8298
.addConverterFactory(GsonConverterFactory.create())
8399
.build()
84100
.create(StoReService.class);

app/src/main/java/io/github/storagereloaded/api/StoReService.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,14 @@
55
import retrofit2.Call;
66
import retrofit2.http.Body;
77
import retrofit2.http.GET;
8+
import retrofit2.http.Header;
89
import retrofit2.http.Headers;
910
import retrofit2.http.POST;
1011

1112
public interface StoReService {
1213
@GET("info")
1314
Call<InfoResponse> info();
1415

15-
@Headers("Content-Type: application/json")
1616
@POST("v1/auth")
1717
Call<AuthResponse> auth(@Body AuthRequest authRequest);
1818

0 commit comments

Comments
 (0)