Skip to content

Commit 1e194d5

Browse files
ooroscniftynei
authored andcommitted
Retrofit work begins, ZulipServices and dependencies.
touch ups reset pointless auto styling fixes Removed line space, fix spelling based on pr. Fixes: nodejs#147 Removed fabricKey, removed extra line Removed line Added some crashlytics logging for potential breadcrumbs on failure. Started working on retrofit implementation. Backup save. Nearly reached completion of modeling responses. Backup. Working through weird bug on formatting for updating pointer realized wrong encoding was being used.
1 parent a694de8 commit 1e194d5

18 files changed

+696
-38
lines changed

app/build.gradle

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,10 @@ dependencies {
6565
compile 'com.android.support:recyclerview-v7:24.1.1'
6666
compile 'com.google.android.gms:play-services-gcm:8.4.0'
6767
compile 'com.google.android.gms:play-services-auth:8.4.0'
68+
compile 'com.squareup.retrofit2:retrofit:2.1.0'
69+
compile 'com.squareup.okhttp3:logging-interceptor:3.4.1'
70+
compile 'com.squareup.retrofit2:converter-gson:2.1.0'
71+
compile 'com.squareup.okhttp3:okhttp:3.4.1'
6872
compile 'com.j256.ormlite:ormlite-core:5.0'
6973
compile 'com.j256.ormlite:ormlite-android:5.0'
7074
compile 'commons-lang:commons-lang:2.6'
@@ -86,7 +90,6 @@ dependencies {
8690
}
8791
compile 'com.squareup.picasso:picasso:2.5.2'
8892
testCompile 'junit:junit:4.12'
89-
compile 'com.squareup.okhttp3:okhttp:3.4.1'
9093
compile('com.crashlytics.sdk.android:crashlytics:2.6.2@aar') {
9194
transitive = true;
9295
}

app/src/androidTest/java/com/zulip/android/test/UnsortedTests.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -216,9 +216,9 @@ public void testAGOMFetch() throws SQLException, InterruptedException,
216216

217217
private Message sampleMessage(ZulipApp app, int id) throws SQLException {
218218
Message rtr = new Message(app);
219-
rtr.setSender(Person.getOrUpdate(app, "Test User",
219+
rtr.setSender(Person.getOrUpdate(app, "UserConfigurationResponse User",
220220
TESTUSER_EXAMPLE_COM, ""));
221-
rtr.setContent("Test message");
221+
rtr.setContent("UserConfigurationResponse message");
222222
rtr.setType(MessageType.PRIVATE_MESSAGE);
223223
rtr.setRecipient(new String[] {TESTUSER_EXAMPLE_COM});
224224
rtr.setID(id);

app/src/main/java/com/zulip/android/ZulipApp.java

Lines changed: 63 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,5 @@
11
package com.zulip.android;
22

3-
import com.crashlytics.android.Crashlytics;
4-
import io.fabric.sdk.android.Fabric;
5-
import java.io.IOException;
6-
import java.sql.SQLException;
7-
import java.util.Map;
8-
import java.util.Queue;
9-
import java.util.HashSet;
10-
import java.util.Set;
11-
import java.util.concurrent.Callable;
12-
import java.util.concurrent.ConcurrentHashMap;
13-
import java.util.concurrent.ConcurrentLinkedQueue;
14-
153
import android.app.Application;
164
import android.content.Context;
175
import android.content.SharedPreferences;
@@ -21,6 +9,7 @@
219
import android.os.Handler;
2210
import android.util.Log;
2311

12+
import com.crashlytics.android.Crashlytics;
2413
import com.j256.ormlite.dao.Dao;
2514
import com.j256.ormlite.dao.RuntimeExceptionDao;
2615
import com.j256.ormlite.misc.TransactionManager;
@@ -32,12 +21,35 @@
3221
import com.zulip.android.models.Presence;
3322
import com.zulip.android.models.Stream;
3423
import com.zulip.android.networking.AsyncUnreadMessagesUpdate;
35-
import com.zulip.android.util.BuildHelper;
24+
import com.zulip.android.networking.ZulipInterceptor;
25+
import com.zulip.android.service.ZulipServices;
3626
import com.zulip.android.util.ZLog;
3727

3828
import org.json.JSONArray;
3929
import org.json.JSONException;
4030

31+
import java.io.IOException;
32+
import java.sql.SQLException;
33+
import java.util.HashSet;
34+
import java.util.Map;
35+
import java.util.Queue;
36+
import java.util.Set;
37+
import java.util.concurrent.Callable;
38+
import java.util.concurrent.ConcurrentHashMap;
39+
import java.util.concurrent.ConcurrentLinkedQueue;
40+
import java.util.concurrent.TimeUnit;
41+
42+
import io.fabric.sdk.android.Fabric;
43+
import okhttp3.OkHttpClient;
44+
import okhttp3.Request;
45+
import okhttp3.ResponseBody;
46+
import okhttp3.logging.HttpLoggingInterceptor;
47+
import retrofit2.Call;
48+
import retrofit2.Callback;
49+
import retrofit2.Response;
50+
import retrofit2.Retrofit;
51+
import retrofit2.converter.gson.GsonConverterFactory;
52+
4153
/**
4254
* Stores the global variables which are frequently used.
4355
*
@@ -60,6 +72,10 @@ public class ZulipApp extends Application {
6072
private DatabaseHelper databaseHelper;
6173
private Set<String> mutedTopics;
6274
private static final String MUTED_TOPIC_KEY = "mutedTopics";
75+
private ZulipServices zulipServices;
76+
77+
public Request goodRequest;
78+
public Request badRequest;
6379
private ZulipActivity zulipActivity;
6480

6581
public ZulipActivity getZulipActivity() {
@@ -159,6 +175,24 @@ private void afterLogin() {
159175
setupEmoji();
160176
}
161177

178+
public ZulipServices getZulipServices() {
179+
if(zulipServices == null) {
180+
HttpLoggingInterceptor logging = new HttpLoggingInterceptor();
181+
logging.setLevel(HttpLoggingInterceptor.Level.BASIC);
182+
183+
zulipServices = new Retrofit.Builder()
184+
.client(new OkHttpClient.Builder().readTimeout(60, TimeUnit.SECONDS)
185+
.addInterceptor(new ZulipInterceptor())
186+
.addInterceptor(logging)
187+
.build())
188+
.addConverterFactory(GsonConverterFactory.create())
189+
.baseUrl(getServerURI())
190+
.build()
191+
.create(ZulipServices.class);
192+
}
193+
return zulipServices;
194+
}
195+
162196
/**
163197
* Fills the Emoji Table with the existing emoticons saved in the assets folder.
164198
*/
@@ -389,4 +423,20 @@ private static void setInstance(ZulipApp instance) {
389423
public boolean isTopicMute(int id, String subject) {
390424
return mutedTopics.contains(id + subject);
391425
}
426+
427+
public void syncPointer(final int mID) {
428+
429+
getZulipServices().updatePointer(Integer.toString(mID))
430+
.enqueue(new Callback<ResponseBody>() {
431+
@Override
432+
public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {
433+
setPointer(mID);
434+
}
435+
436+
@Override
437+
public void onFailure(Call<ResponseBody> call, Throwable t) {
438+
//do nothing.. don't want to mis-update the pointer.
439+
}
440+
});
441+
}
392442
}

app/src/main/java/com/zulip/android/activities/RecyclerMessageAdapter.java

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@
2929
import com.zulip.android.models.MessageType;
3030
import com.zulip.android.models.Person;
3131
import com.zulip.android.models.Stream;
32-
import com.zulip.android.networking.AsyncPointerUpdate;
3332
import com.zulip.android.util.OnItemClickListener;
3433
import com.zulip.android.util.ZLog;
3534
import com.zulip.android.viewholders.LoadingHolder;
@@ -139,8 +138,7 @@ public void onItemClick(int viewId, int position) {
139138
try {
140139
int mID = msg.getID();
141140
if (zulipApp.getPointer() < mID) {
142-
(new AsyncPointerUpdate(zulipApp)).execute(mID);
143-
zulipApp.setPointer(mID);
141+
zulipApp.syncPointer(mID);
144142
}
145143
} catch (NullPointerException e) {
146144
ZLog.logException(e);
@@ -394,8 +392,7 @@ private void markThisMessageAsRead(Message message) {
394392
try {
395393
int mID = message.getID();
396394
if (!startedFromFilter && zulipApp.getPointer() < mID) {
397-
(new AsyncPointerUpdate(zulipApp)).execute(mID);
398-
zulipApp.setPointer(mID);
395+
zulipApp.syncPointer(mID);
399396
}
400397
if (!message.getMessageRead()) {
401398
try {

app/src/main/java/com/zulip/android/activities/ZulipActivity.java

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@
8585
import com.zulip.android.R;
8686
import com.zulip.android.models.Stream;
8787
import com.zulip.android.networking.AsyncSend;
88+
import com.zulip.android.networking.response.UserConfigurationResponse;
8889
import com.zulip.android.util.AnimationHelper;
8990
import com.zulip.android.util.SwipeRemoveLinearLayout;
9091
import com.zulip.android.util.ZLog;
@@ -96,6 +97,11 @@
9697

9798
import org.json.JSONObject;
9899

100+
import okhttp3.Response;
101+
import okhttp3.ResponseBody;
102+
import retrofit2.Call;
103+
import retrofit2.Callback;
104+
99105
/**
100106
* The main Activity responsible for holding the {@link MessageListFragment} which has the list to the
101107
* messages
@@ -1466,6 +1472,20 @@ protected void onResume() {
14661472
narrowedList.onActivityResume();
14671473
}
14681474
startRequests();
1475+
final Handler handler = new Handler();
1476+
ZulipApp.get().getZulipServices()
1477+
.register()
1478+
.enqueue(new Callback<UserConfigurationResponse>() {
1479+
@Override
1480+
public void onResponse(Call<UserConfigurationResponse> call, retrofit2.Response<UserConfigurationResponse> response) {
1481+
String k = "";
1482+
}
1483+
1484+
@Override
1485+
public void onFailure(Call<UserConfigurationResponse> call, Throwable t) {
1486+
String k = "";
1487+
}
1488+
});
14691489
}
14701490

14711491
@Override
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package com.zulip.android.models.updated;
2+
3+
import com.google.gson.annotations.SerializedName;
4+
5+
/**
6+
* Created by patrykpoborca on 8/25/16.
7+
*/
8+
9+
public class ChatStatusWrapper {
10+
11+
@SerializedName("website")
12+
private UserChatStatus website;
13+
14+
public UserChatStatus getWebsite() {
15+
return website;
16+
}
17+
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package com.zulip.android.models.updated;
2+
3+
/**
4+
* Created by patrykpoborca on 8/25/16.
5+
*/
6+
7+
public class JenkinsType {
8+
private String source_url;
9+
private String display_url;
10+
11+
public String getSource_url() {
12+
return source_url;
13+
}
14+
15+
public String getDisplay_url() {
16+
return display_url;
17+
}
18+
}
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
package com.zulip.android.models.updated;
2+
3+
import com.google.gson.annotations.SerializedName;
4+
5+
/**
6+
* Created by patrykpoborca on 8/25/16.
7+
*/
8+
9+
public class Referrals {
10+
@SerializedName("granted")
11+
private int granted;
12+
@SerializedName("used")
13+
private int used;
14+
15+
public int getGranted() {
16+
return granted;
17+
}
18+
19+
public void setGranted(int granted) {
20+
this.granted = granted;
21+
}
22+
23+
public int getUsed() {
24+
return used;
25+
}
26+
27+
public void setUsed(int used) {
28+
this.used = used;
29+
}
30+
}
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
package com.zulip.android.models.updated;
2+
3+
import com.google.gson.annotations.SerializedName;
4+
5+
/**
6+
* Created by patrykpoborca on 8/25/16.
7+
*/
8+
9+
public class UserChatStatus {
10+
11+
@SerializedName("status")
12+
private String status;
13+
@SerializedName("timestamp")
14+
private int timestamp;
15+
@SerializedName("client")
16+
private String client;
17+
@SerializedName("pushable")
18+
private boolean pushable;
19+
20+
public String getStatus() {
21+
return status;
22+
}
23+
24+
public int getTimestamp() {
25+
return timestamp;
26+
}
27+
28+
public String getClient() {
29+
return client;
30+
}
31+
32+
public boolean isPushable() {
33+
return pushable;
34+
}
35+
}

0 commit comments

Comments
 (0)