Fix issue #933
This commit is contained in:
parent
c37f1584d1
commit
4c848f8ac8
|
@ -819,7 +819,8 @@ public class API {
|
||||||
String response = httpsConnection.get(getAbsoluteUrl(String.format("/statuses/%s", statusId)), 60, null, prefKeyOauthTokenT);
|
String response = httpsConnection.get(getAbsoluteUrl(String.format("/statuses/%s", statusId)), 60, null, prefKeyOauthTokenT);
|
||||||
Status status = parseStatuses(context, new JSONObject(response));
|
Status status = parseStatuses(context, new JSONObject(response));
|
||||||
SQLiteDatabase db = Sqlite.getInstance(context, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open();
|
SQLiteDatabase db = Sqlite.getInstance(context, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open();
|
||||||
new TimelineCacheDAO(context, db).update(status.getId(), response);
|
Account account = new AccountDAO(context, db).getAccountByToken(prefKeyOauthTokenT);
|
||||||
|
new TimelineCacheDAO(context, db).update(status.getId(), response, account.getId(), account.getInstance());
|
||||||
statuses.add(status);
|
statuses.add(status);
|
||||||
} catch (HttpsConnection.HttpsConnectionException e) {
|
} catch (HttpsConnection.HttpsConnectionException e) {
|
||||||
setError(e.getStatusCode(), e);
|
setError(e.getStatusCode(), e);
|
||||||
|
@ -1078,7 +1079,7 @@ public class API {
|
||||||
String response = httpsConnection.get(getAbsoluteUrl("/timelines/home"), 60, params, prefKeyOauthTokenT);
|
String response = httpsConnection.get(getAbsoluteUrl("/timelines/home"), 60, params, prefKeyOauthTokenT);
|
||||||
apiResponse.setSince_id(httpsConnection.getSince_id());
|
apiResponse.setSince_id(httpsConnection.getSince_id());
|
||||||
apiResponse.setMax_id(httpsConnection.getMax_id());
|
apiResponse.setMax_id(httpsConnection.getMax_id());
|
||||||
statuses = parseStatuses(context, new JSONArray(response), true);
|
statuses = parseStatusesForCache(context, new JSONArray(response));
|
||||||
} catch (HttpsConnection.HttpsConnectionException e) {
|
} catch (HttpsConnection.HttpsConnectionException e) {
|
||||||
setError(e.getStatusCode(), e);
|
setError(e.getStatusCode(), e);
|
||||||
} catch (NoSuchAlgorithmException e) {
|
} catch (NoSuchAlgorithmException e) {
|
||||||
|
@ -2203,7 +2204,8 @@ public class API {
|
||||||
intentBC.putExtras(b);
|
intentBC.putExtras(b);
|
||||||
LocalBroadcastManager.getInstance(context).sendBroadcast(intentBC);
|
LocalBroadcastManager.getInstance(context).sendBroadcast(intentBC);
|
||||||
SQLiteDatabase db = Sqlite.getInstance(context, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open();
|
SQLiteDatabase db = Sqlite.getInstance(context, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open();
|
||||||
new TimelineCacheDAO(context, db).update(targetedId, resp);
|
Account account = new AccountDAO(context, db).getAccountByToken(prefKeyOauthTokenT);
|
||||||
|
new TimelineCacheDAO(context, db).update(targetedId, resp, account.getId(), account.getInstance());
|
||||||
}
|
}
|
||||||
} catch (HttpsConnection.HttpsConnectionException e) {
|
} catch (HttpsConnection.HttpsConnectionException e) {
|
||||||
setError(e.getStatusCode(), e);
|
setError(e.getStatusCode(), e);
|
||||||
|
@ -2366,8 +2368,9 @@ public class API {
|
||||||
intentBC.putExtras(b);
|
intentBC.putExtras(b);
|
||||||
SQLiteDatabase db = Sqlite.getInstance(context, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open();
|
SQLiteDatabase db = Sqlite.getInstance(context, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open();
|
||||||
Status alreadyCached = new TimelineCacheDAO(context, db).getSingle(status.getId());
|
Status alreadyCached = new TimelineCacheDAO(context, db).getSingle(status.getId());
|
||||||
|
Account account = new AccountDAO(context, db).getAccountByToken(prefKeyOauthTokenT);
|
||||||
if (alreadyCached != null) {
|
if (alreadyCached != null) {
|
||||||
new TimelineCacheDAO(context, db).update(status.getId(), response);
|
new TimelineCacheDAO(context, db).update(status.getId(), response, account.getId(), account.getInstance());
|
||||||
}
|
}
|
||||||
LocalBroadcastManager.getInstance(context).sendBroadcast(intentBC);
|
LocalBroadcastManager.getInstance(context).sendBroadcast(intentBC);
|
||||||
return parsePoll(context, new JSONObject(response));
|
return parsePoll(context, new JSONObject(response));
|
||||||
|
@ -3856,7 +3859,7 @@ public class API {
|
||||||
* @param jsonArray JSONArray
|
* @param jsonArray JSONArray
|
||||||
* @return List<Status>
|
* @return List<Status>
|
||||||
*/
|
*/
|
||||||
private static List<Status> parseStatuses(Context context, JSONArray jsonArray, boolean cached){
|
private List<Status> parseStatusesForCache(Context context, JSONArray jsonArray){
|
||||||
|
|
||||||
List<Status> statuses = new ArrayList<>();
|
List<Status> statuses = new ArrayList<>();
|
||||||
try {
|
try {
|
||||||
|
@ -3865,12 +3868,11 @@ public class API {
|
||||||
|
|
||||||
JSONObject resobj = jsonArray.getJSONObject(i);
|
JSONObject resobj = jsonArray.getJSONObject(i);
|
||||||
Status status = parseStatuses(context, resobj);
|
Status status = parseStatuses(context, resobj);
|
||||||
if( cached) {
|
SQLiteDatabase db = Sqlite.getInstance(context, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open();
|
||||||
SQLiteDatabase db = Sqlite.getInstance(context, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open();
|
Status alreadyCached = new TimelineCacheDAO(context, db).getSingle(status.getId());
|
||||||
Status alreadyCached = new TimelineCacheDAO(context, db).getSingle(status.getId());
|
if (alreadyCached == null) {
|
||||||
if (alreadyCached == null) {
|
Account account = new AccountDAO(context, db).getAccountByToken(prefKeyOauthTokenT);
|
||||||
new TimelineCacheDAO(context, db).insert(status.getId(), resobj.toString());
|
new TimelineCacheDAO(context, db).insert(status.getId(), resobj.toString(), account.getId(), account.getInstance());
|
||||||
}
|
|
||||||
}
|
}
|
||||||
i++;
|
i++;
|
||||||
statuses.add(status);
|
statuses.add(status);
|
||||||
|
|
|
@ -1395,7 +1395,8 @@ public class GNUAPI {
|
||||||
intentBC.putExtras(b);
|
intentBC.putExtras(b);
|
||||||
LocalBroadcastManager.getInstance(context).sendBroadcast(intentBC);
|
LocalBroadcastManager.getInstance(context).sendBroadcast(intentBC);
|
||||||
SQLiteDatabase db = Sqlite.getInstance(context, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open();
|
SQLiteDatabase db = Sqlite.getInstance(context, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open();
|
||||||
new TimelineCacheDAO(context, db).update(targetedId, resp);
|
Account account = new AccountDAO(context, db).getAccountByToken(prefKeyOauthTokenT);
|
||||||
|
new TimelineCacheDAO(context, db).update(targetedId, resp, account.getId(), account.getToken());
|
||||||
}else if( statusAction == API.StatusAction.UNSTATUS){
|
}else if( statusAction == API.StatusAction.UNSTATUS){
|
||||||
SQLiteDatabase db = Sqlite.getInstance(context, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open();
|
SQLiteDatabase db = Sqlite.getInstance(context, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open();
|
||||||
new TimelineCacheDAO(context, db).remove(targetedId);
|
new TimelineCacheDAO(context, db).remove(targetedId);
|
||||||
|
|
|
@ -53,10 +53,7 @@ public class TimelineCacheDAO {
|
||||||
* Insert a status in database
|
* Insert a status in database
|
||||||
* @return boolean
|
* @return boolean
|
||||||
*/
|
*/
|
||||||
public long insert(String statusId, String jsonString) {
|
public long insert(String statusId, String jsonString, String userId, String instance) {
|
||||||
SharedPreferences sharedpreferences = context.getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE);
|
|
||||||
String userId = sharedpreferences.getString(Helper.PREF_KEY_ID, null);
|
|
||||||
String instance = Helper.getLiveInstance(context);
|
|
||||||
ContentValues values = new ContentValues();
|
ContentValues values = new ContentValues();
|
||||||
values.put(Sqlite.COL_INSTANCE, instance);
|
values.put(Sqlite.COL_INSTANCE, instance);
|
||||||
values.put(Sqlite.COL_STATUS_ID, statusId);
|
values.put(Sqlite.COL_STATUS_ID, statusId);
|
||||||
|
@ -78,10 +75,7 @@ public class TimelineCacheDAO {
|
||||||
/**
|
/**
|
||||||
* Update a status in database
|
* Update a status in database
|
||||||
*/
|
*/
|
||||||
public void update(String statusId, String jsonString) {
|
public void update(String statusId, String jsonString, String userId, String instance) {
|
||||||
SharedPreferences sharedpreferences = context.getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE);
|
|
||||||
String userId = sharedpreferences.getString(Helper.PREF_KEY_ID, null);
|
|
||||||
String instance = Helper.getLiveInstance(context);
|
|
||||||
ContentValues values = new ContentValues();
|
ContentValues values = new ContentValues();
|
||||||
values.put(Sqlite.COL_DATE, Helper.dateToString(new Date()));
|
values.put(Sqlite.COL_DATE, Helper.dateToString(new Date()));
|
||||||
values.put(Sqlite.COL_CACHE, jsonString);
|
values.put(Sqlite.COL_CACHE, jsonString);
|
||||||
|
|
Loading…
Reference in New Issue