Adds instance to sharedpref
This commit is contained in:
parent
6a4b7b7cce
commit
0707fb7570
|
@ -147,7 +147,8 @@ public abstract class BaseMainActivity extends BaseActivity
|
||||||
private AppBarLayout appBar;
|
private AppBarLayout appBar;
|
||||||
private static boolean activityPaused;
|
private static boolean activityPaused;
|
||||||
private String bookmark;
|
private String bookmark;
|
||||||
|
private String userId;
|
||||||
|
private String instance;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
|
@ -577,11 +578,13 @@ public abstract class BaseMainActivity extends BaseActivity
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
String userId = sharedpreferences.getString(Helper.PREF_KEY_ID, null);
|
userId = sharedpreferences.getString(Helper.PREF_KEY_ID, null);
|
||||||
|
instance = sharedpreferences.getString(Helper.PREF_INSTANCE, Helper.getLiveInstance(getApplicationContext()));
|
||||||
|
|
||||||
//Get the previous bookmark value
|
//Get the previous bookmark value
|
||||||
//If null try to use the LAST_HOMETIMELINE_MAX_ID
|
//If null try to use the LAST_HOMETIMELINE_MAX_ID
|
||||||
String lastHomeTimeline = sharedpreferences.getString(Helper.LAST_HOMETIMELINE_MAX_ID + userId, null);
|
String lastHomeTimeline = sharedpreferences.getString(Helper.LAST_HOMETIMELINE_MAX_ID + userId + instance, null);
|
||||||
bookmark = sharedpreferences.getString(Helper.BOOKMARK_ID + userId, lastHomeTimeline);
|
bookmark = sharedpreferences.getString(Helper.BOOKMARK_ID + userId + instance, lastHomeTimeline);
|
||||||
Account account = new AccountDAO(getApplicationContext(), db).getAccountByID(userId);
|
Account account = new AccountDAO(getApplicationContext(), db).getAccountByID(userId);
|
||||||
if( account == null){
|
if( account == null){
|
||||||
Helper.logout(getApplicationContext());
|
Helper.logout(getApplicationContext());
|
||||||
|
@ -757,7 +760,6 @@ public abstract class BaseMainActivity extends BaseActivity
|
||||||
}
|
}
|
||||||
|
|
||||||
//Check instance release for lists
|
//Check instance release for lists
|
||||||
String instance = Helper.getLiveInstance(getApplicationContext());
|
|
||||||
String instanceVersion = sharedpreferences.getString(Helper.INSTANCE_VERSION + userId + instance, null);
|
String instanceVersion = sharedpreferences.getString(Helper.INSTANCE_VERSION + userId + instance, null);
|
||||||
if (instanceVersion != null) {
|
if (instanceVersion != null) {
|
||||||
Version currentVersion = new Version(instanceVersion);
|
Version currentVersion = new Version(instanceVersion);
|
||||||
|
@ -834,7 +836,6 @@ public abstract class BaseMainActivity extends BaseActivity
|
||||||
Helper.EventStreaming eventStreaming = (Helper.EventStreaming) intent.getSerializableExtra("eventStreaming");
|
Helper.EventStreaming eventStreaming = (Helper.EventStreaming) intent.getSerializableExtra("eventStreaming");
|
||||||
assert b != null;
|
assert b != null;
|
||||||
userIdService = b.getString("userIdService", null);
|
userIdService = b.getString("userIdService", null);
|
||||||
String userId = sharedpreferences.getString(Helper.PREF_KEY_ID, null);
|
|
||||||
if( userIdService != null && userIdService.equals(userId)) {
|
if( userIdService != null && userIdService.equals(userId)) {
|
||||||
if (eventStreaming == Helper.EventStreaming.NOTIFICATION) {
|
if (eventStreaming == Helper.EventStreaming.NOTIFICATION) {
|
||||||
Notification notification = b.getParcelable("data");
|
Notification notification = b.getParcelable("data");
|
||||||
|
@ -1192,14 +1193,12 @@ public abstract class BaseMainActivity extends BaseActivity
|
||||||
@Override
|
@Override
|
||||||
public void onStart(){
|
public void onStart(){
|
||||||
super.onStart();
|
super.onStart();
|
||||||
final SharedPreferences sharedpreferences = getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE);
|
|
||||||
receive_federated_data = new BroadcastReceiver() {
|
receive_federated_data = new BroadcastReceiver() {
|
||||||
@Override
|
@Override
|
||||||
public void onReceive(Context context, Intent intent) {
|
public void onReceive(Context context, Intent intent) {
|
||||||
Bundle b = intent.getExtras();
|
Bundle b = intent.getExtras();
|
||||||
assert b != null;
|
assert b != null;
|
||||||
userIdService = b.getString("userIdService", null);
|
userIdService = b.getString("userIdService", null);
|
||||||
String userId = sharedpreferences.getString(Helper.PREF_KEY_ID, null);
|
|
||||||
if( userIdService != null && userIdService.equals(userId)) {
|
if( userIdService != null && userIdService.equals(userId)) {
|
||||||
Status status = b.getParcelable("data");
|
Status status = b.getParcelable("data");
|
||||||
if (federatedFragment != null) {
|
if (federatedFragment != null) {
|
||||||
|
@ -1214,7 +1213,6 @@ public abstract class BaseMainActivity extends BaseActivity
|
||||||
Bundle b = intent.getExtras();
|
Bundle b = intent.getExtras();
|
||||||
assert b != null;
|
assert b != null;
|
||||||
userIdService = b.getString("userIdService", null);
|
userIdService = b.getString("userIdService", null);
|
||||||
String userId = sharedpreferences.getString(Helper.PREF_KEY_ID, null);
|
|
||||||
if( userIdService != null && userIdService.equals(userId)) {
|
if( userIdService != null && userIdService.equals(userId)) {
|
||||||
Status status = b.getParcelable("data");
|
Status status = b.getParcelable("data");
|
||||||
if (localFragment != null) {
|
if (localFragment != null) {
|
||||||
|
@ -1234,7 +1232,6 @@ public abstract class BaseMainActivity extends BaseActivity
|
||||||
if( streamingIntent != null) {
|
if( streamingIntent != null) {
|
||||||
SharedPreferences sharedpreferences = getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE);
|
SharedPreferences sharedpreferences = getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE);
|
||||||
SharedPreferences.Editor editor = sharedpreferences.edit();
|
SharedPreferences.Editor editor = sharedpreferences.edit();
|
||||||
String userId = sharedpreferences.getString(Helper.PREF_KEY_ID, null);
|
|
||||||
editor.putBoolean(Helper.SHOULD_CONTINUE_STREAMING_FEDERATED+userId, false);
|
editor.putBoolean(Helper.SHOULD_CONTINUE_STREAMING_FEDERATED+userId, false);
|
||||||
stopService(streamingIntent);
|
stopService(streamingIntent);
|
||||||
editor.apply();
|
editor.apply();
|
||||||
|
@ -1392,8 +1389,6 @@ public abstract class BaseMainActivity extends BaseActivity
|
||||||
startActivity(myIntent);
|
startActivity(myIntent);
|
||||||
finish();
|
finish();
|
||||||
}else {
|
}else {
|
||||||
SharedPreferences sharedpreferences = getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE);
|
|
||||||
String userId = sharedpreferences.getString(Helper.PREF_KEY_ID, null);
|
|
||||||
SQLiteDatabase db = Sqlite.getInstance(BaseMainActivity.this, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open();
|
SQLiteDatabase db = Sqlite.getInstance(BaseMainActivity.this, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open();
|
||||||
Account account = new AccountDAO(getApplicationContext(), db).getAccountByID(userId);
|
Account account = new AccountDAO(getApplicationContext(), db).getAccountByID(userId);
|
||||||
updateHeaderAccountInfo(BaseMainActivity.this, account, headerLayout);
|
updateHeaderAccountInfo(BaseMainActivity.this, account, headerLayout);
|
||||||
|
@ -1436,8 +1431,6 @@ public abstract class BaseMainActivity extends BaseActivity
|
||||||
Version minVersion = new Version("1.6");
|
Version minVersion = new Version("1.6");
|
||||||
SharedPreferences sharedpreferences = getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE);
|
SharedPreferences sharedpreferences = getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE);
|
||||||
SharedPreferences.Editor editor = sharedpreferences.edit();
|
SharedPreferences.Editor editor = sharedpreferences.edit();
|
||||||
String instance = Helper.getLiveInstance(getApplicationContext());
|
|
||||||
String userId = sharedpreferences.getString(Helper.PREF_KEY_ID, null);
|
|
||||||
editor.putString(Helper.INSTANCE_VERSION + userId + instance, apiResponse.getInstance().getVersion());
|
editor.putString(Helper.INSTANCE_VERSION + userId + instance, apiResponse.getInstance().getVersion());
|
||||||
editor.apply();
|
editor.apply();
|
||||||
Helper.canPin = (currentVersion.compareTo(minVersion) == 1 || currentVersion.equals(minVersion));
|
Helper.canPin = (currentVersion.compareTo(minVersion) == 1 || currentVersion.equals(minVersion));
|
||||||
|
|
|
@ -188,11 +188,14 @@ public class TootActivity extends BaseActivity implements OnRetrieveSearcAccount
|
||||||
private AlertDialog alertDialogEmoji;
|
private AlertDialog alertDialogEmoji;
|
||||||
private String mentionAccount;
|
private String mentionAccount;
|
||||||
private String idRedirect;
|
private String idRedirect;
|
||||||
|
private String userId, instance;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
SharedPreferences sharedpreferences = getSharedPreferences(Helper.APP_PREFS, android.content.Context.MODE_PRIVATE);
|
SharedPreferences sharedpreferences = getSharedPreferences(Helper.APP_PREFS, android.content.Context.MODE_PRIVATE);
|
||||||
|
userId = sharedpreferences.getString(Helper.PREF_KEY_ID, null);
|
||||||
|
instance = sharedpreferences.getString(Helper.PREF_INSTANCE, Helper.getLiveInstance(getApplicationContext()));
|
||||||
final int theme = sharedpreferences.getInt(Helper.SET_THEME, Helper.THEME_DARK);
|
final int theme = sharedpreferences.getInt(Helper.SET_THEME, Helper.THEME_DARK);
|
||||||
if( theme == Helper.THEME_LIGHT){
|
if( theme == Helper.THEME_LIGHT){
|
||||||
setTheme(R.style.AppTheme);
|
setTheme(R.style.AppTheme);
|
||||||
|
@ -308,11 +311,11 @@ public class TootActivity extends BaseActivity implements OnRetrieveSearcAccount
|
||||||
setTitle(R.string.toot_title);
|
setTitle(R.string.toot_title);
|
||||||
}
|
}
|
||||||
SQLiteDatabase db = Sqlite.getInstance(getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open();
|
SQLiteDatabase db = Sqlite.getInstance(getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open();
|
||||||
String userId;
|
String userIdReply;
|
||||||
if( accountReply == null)
|
if( accountReply == null)
|
||||||
userId = sharedpreferences.getString(Helper.PREF_KEY_ID, null);
|
userIdReply = sharedpreferences.getString(Helper.PREF_KEY_ID, null);
|
||||||
else
|
else
|
||||||
userId = accountReply.getId();
|
userIdReply = accountReply.getId();
|
||||||
|
|
||||||
if( mentionAccount != null){
|
if( mentionAccount != null){
|
||||||
toot_content.setText(String.format("@%s\n", mentionAccount));
|
toot_content.setText(String.format("@%s\n", mentionAccount));
|
||||||
|
@ -337,7 +340,7 @@ public class TootActivity extends BaseActivity implements OnRetrieveSearcAccount
|
||||||
initialContent = toot_content.getText().toString();
|
initialContent = toot_content.getText().toString();
|
||||||
Account account;
|
Account account;
|
||||||
if( accountReply == null)
|
if( accountReply == null)
|
||||||
account = new AccountDAO(getApplicationContext(),db).getAccountByID(userId);
|
account = new AccountDAO(getApplicationContext(),db).getAccountByID(userIdReply);
|
||||||
else
|
else
|
||||||
account = accountReply;
|
account = accountReply;
|
||||||
|
|
||||||
|
@ -1137,8 +1140,7 @@ public class TootActivity extends BaseActivity implements OnRetrieveSearcAccount
|
||||||
itemViewReply.setVisible(false);
|
itemViewReply.setVisible(false);
|
||||||
}
|
}
|
||||||
SharedPreferences sharedpreferences = getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE);
|
SharedPreferences sharedpreferences = getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE);
|
||||||
String instance = Helper.getLiveInstance(getApplicationContext());
|
|
||||||
String userId = sharedpreferences.getString(Helper.PREF_KEY_ID, null);
|
|
||||||
String instanceVersion = sharedpreferences.getString(Helper.INSTANCE_VERSION + userId + instance, null);
|
String instanceVersion = sharedpreferences.getString(Helper.INSTANCE_VERSION + userId + instance, null);
|
||||||
Version currentVersion = new Version(instanceVersion);
|
Version currentVersion = new Version(instanceVersion);
|
||||||
Version minVersion = new Version("2.0");
|
Version minVersion = new Version("2.0");
|
||||||
|
@ -1231,8 +1233,6 @@ public class TootActivity extends BaseActivity implements OnRetrieveSearcAccount
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
String instance = Helper.getLiveInstance(getApplicationContext());
|
|
||||||
String userId = sharedpreferences.getString(Helper.PREF_KEY_ID, null);
|
|
||||||
String instanceVersion = sharedpreferences.getString(Helper.INSTANCE_VERSION + userId + instance, null);
|
String instanceVersion = sharedpreferences.getString(Helper.INSTANCE_VERSION + userId + instance, null);
|
||||||
if (instanceVersion != null) {
|
if (instanceVersion != null) {
|
||||||
Version currentVersion = new Version(instanceVersion);
|
Version currentVersion = new Version(instanceVersion);
|
||||||
|
@ -1735,8 +1735,6 @@ public class TootActivity extends BaseActivity implements OnRetrieveSearcAccount
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View view) {
|
public void onClick(View view) {
|
||||||
SharedPreferences sharedpreferences = getSharedPreferences(Helper.APP_PREFS, android.content.Context.MODE_PRIVATE);
|
SharedPreferences sharedpreferences = getSharedPreferences(Helper.APP_PREFS, android.content.Context.MODE_PRIVATE);
|
||||||
String instance = Helper.getLiveInstance(getApplicationContext());
|
|
||||||
String userId = sharedpreferences.getString(Helper.PREF_KEY_ID, null);
|
|
||||||
String instanceVersion = sharedpreferences.getString(Helper.INSTANCE_VERSION + userId + instance, null);
|
String instanceVersion = sharedpreferences.getString(Helper.INSTANCE_VERSION + userId + instance, null);
|
||||||
if (instanceVersion != null) {
|
if (instanceVersion != null) {
|
||||||
Version currentVersion = new Version(instanceVersion);
|
Version currentVersion = new Version(instanceVersion);
|
||||||
|
@ -1823,11 +1821,11 @@ public class TootActivity extends BaseActivity implements OnRetrieveSearcAccount
|
||||||
title.setText(getString(R.string.toot_title_reply));
|
title.setText(getString(R.string.toot_title_reply));
|
||||||
else
|
else
|
||||||
setTitle(R.string.toot_title_reply);
|
setTitle(R.string.toot_title_reply);
|
||||||
String userId;
|
String userIdReply;
|
||||||
if( accountReply == null)
|
if( accountReply == null)
|
||||||
userId = sharedpreferences.getString(Helper.PREF_KEY_ID, null);
|
userIdReply = sharedpreferences.getString(Helper.PREF_KEY_ID, null);
|
||||||
else
|
else
|
||||||
userId = accountReply.getId();
|
userIdReply = accountReply.getId();
|
||||||
|
|
||||||
//If toot is not restored
|
//If toot is not restored
|
||||||
if( restored == -1 ){
|
if( restored == -1 ){
|
||||||
|
@ -1858,7 +1856,7 @@ public class TootActivity extends BaseActivity implements OnRetrieveSearcAccount
|
||||||
//Retrieves mentioned accounts + OP and adds them at the beginin of the toot
|
//Retrieves mentioned accounts + OP and adds them at the beginin of the toot
|
||||||
ArrayList<String> mentionedAccountsAdded = new ArrayList<>();
|
ArrayList<String> mentionedAccountsAdded = new ArrayList<>();
|
||||||
int cursorReply = 0;
|
int cursorReply = 0;
|
||||||
if( tootReply.getAccount() != null && tootReply.getAccount().getAcct() != null && !tootReply.getAccount().getId().equals(userId)) {
|
if( tootReply.getAccount() != null && tootReply.getAccount().getAcct() != null && !tootReply.getAccount().getId().equals(userIdReply)) {
|
||||||
toot_content.setText(String.format("@%s", tootReply.getAccount().getAcct()));
|
toot_content.setText(String.format("@%s", tootReply.getAccount().getAcct()));
|
||||||
mentionedAccountsAdded.add(tootReply.getAccount().getAcct());
|
mentionedAccountsAdded.add(tootReply.getAccount().getAcct());
|
||||||
//Evaluate the cursor position => mention length + 1 char for carriage return
|
//Evaluate the cursor position => mention length + 1 char for carriage return
|
||||||
|
@ -1868,7 +1866,7 @@ public class TootActivity extends BaseActivity implements OnRetrieveSearcAccount
|
||||||
//Put other accounts mentioned at the bottom
|
//Put other accounts mentioned at the bottom
|
||||||
toot_content.setText(String.format("%s", (toot_content.getText().toString() + "\n\n")));
|
toot_content.setText(String.format("%s", (toot_content.getText().toString() + "\n\n")));
|
||||||
for(Mention mention : tootReply.getMentions()){
|
for(Mention mention : tootReply.getMentions()){
|
||||||
if( mention.getAcct() != null && !mention.getId().equals(userId) && !mentionedAccountsAdded.contains(mention.getAcct())) {
|
if( mention.getAcct() != null && !mention.getId().equals(userIdReply) && !mentionedAccountsAdded.contains(mention.getAcct())) {
|
||||||
mentionedAccountsAdded.add(mention.getAcct());
|
mentionedAccountsAdded.add(mention.getAcct());
|
||||||
String tootTemp = String.format("@%s ", mention.getAcct());
|
String tootTemp = String.format("@%s ", mention.getAcct());
|
||||||
toot_content.setText(String.format("%s ", (toot_content.getText().toString() + tootTemp.trim())));
|
toot_content.setText(String.format("%s ", (toot_content.getText().toString() + tootTemp.trim())));
|
||||||
|
|
|
@ -21,6 +21,7 @@ import java.lang.ref.WeakReference;
|
||||||
|
|
||||||
import fr.gouv.etalab.mastodon.client.API;
|
import fr.gouv.etalab.mastodon.client.API;
|
||||||
import fr.gouv.etalab.mastodon.client.APIResponse;
|
import fr.gouv.etalab.mastodon.client.APIResponse;
|
||||||
|
import fr.gouv.etalab.mastodon.client.Entities.Account;
|
||||||
import fr.gouv.etalab.mastodon.interfaces.OnRetrieveHomeTimelineServiceInterface;
|
import fr.gouv.etalab.mastodon.interfaces.OnRetrieveHomeTimelineServiceInterface;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -32,32 +33,27 @@ public class RetrieveHomeTimelineServiceAsyncTask extends AsyncTask<Void, Void,
|
||||||
|
|
||||||
private APIResponse apiResponse;
|
private APIResponse apiResponse;
|
||||||
private String since_id;
|
private String since_id;
|
||||||
private String acct, userId;
|
private Account account;
|
||||||
private OnRetrieveHomeTimelineServiceInterface listener;
|
private OnRetrieveHomeTimelineServiceInterface listener;
|
||||||
private String instance;
|
|
||||||
private String token;
|
|
||||||
private WeakReference<Context> contextReference;
|
private WeakReference<Context> contextReference;
|
||||||
|
|
||||||
public RetrieveHomeTimelineServiceAsyncTask(Context context, String instance, String token, String since_id, String acct, String userId, OnRetrieveHomeTimelineServiceInterface onRetrieveHomeTimelineServiceInterface){
|
public RetrieveHomeTimelineServiceAsyncTask(Context context, Account account, String since_id, OnRetrieveHomeTimelineServiceInterface onRetrieveHomeTimelineServiceInterface){
|
||||||
this.contextReference = new WeakReference<>(context);
|
this.contextReference = new WeakReference<>(context);
|
||||||
this.since_id = since_id;
|
this.since_id = since_id;
|
||||||
this.listener = onRetrieveHomeTimelineServiceInterface;
|
this.listener = onRetrieveHomeTimelineServiceInterface;
|
||||||
this.acct = acct;
|
this.account = account;
|
||||||
this.instance = instance;
|
|
||||||
this.userId = userId;
|
|
||||||
this.token = token;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected Void doInBackground(Void... params) {
|
protected Void doInBackground(Void... params) {
|
||||||
API api = new API(this.contextReference.get(), instance, token);
|
API api = new API(this.contextReference.get(), this.account.getInstance(), this.account.getToken());
|
||||||
apiResponse = api.getHomeTimelineSinceId(since_id);
|
apiResponse = api.getHomeTimelineSinceId(since_id);
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onPostExecute(Void result) {
|
protected void onPostExecute(Void result) {
|
||||||
listener.onRetrieveHomeTimelineService(apiResponse, acct, userId);
|
listener.onRetrieveHomeTimelineService(apiResponse, this.account);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -65,7 +65,7 @@ public class DisplayNotificationsFragment extends Fragment implements OnRetrieve
|
||||||
private boolean swiped;
|
private boolean swiped;
|
||||||
private RecyclerView lv_notifications;
|
private RecyclerView lv_notifications;
|
||||||
private String lastReadNotifications;
|
private String lastReadNotifications;
|
||||||
private String userId;
|
private String userId, instance;
|
||||||
private SharedPreferences sharedpreferences;
|
private SharedPreferences sharedpreferences;
|
||||||
LinearLayoutManager mLayoutManager;
|
LinearLayoutManager mLayoutManager;
|
||||||
|
|
||||||
|
@ -96,6 +96,7 @@ public class DisplayNotificationsFragment extends Fragment implements OnRetrieve
|
||||||
boolean isOnWifi = Helper.isOnWIFI(context);
|
boolean isOnWifi = Helper.isOnWIFI(context);
|
||||||
int behaviorWithAttachments = sharedpreferences.getInt(Helper.SET_ATTACHMENT_ACTION, Helper.ATTACHMENT_ALWAYS);
|
int behaviorWithAttachments = sharedpreferences.getInt(Helper.SET_ATTACHMENT_ACTION, Helper.ATTACHMENT_ALWAYS);
|
||||||
userId = sharedpreferences.getString(Helper.PREF_KEY_ID, null);
|
userId = sharedpreferences.getString(Helper.PREF_KEY_ID, null);
|
||||||
|
instance = sharedpreferences.getString(Helper.PREF_INSTANCE, context!=null?Helper.getLiveInstance(context):null);
|
||||||
lastReadNotifications = sharedpreferences.getString(Helper.LAST_NOTIFICATION_MAX_ID + userId, null);
|
lastReadNotifications = sharedpreferences.getString(Helper.LAST_NOTIFICATION_MAX_ID + userId, null);
|
||||||
notificationsListAdapter = new NotificationsListAdapter(context,isOnWifi, behaviorWithAttachments,this.notifications);
|
notificationsListAdapter = new NotificationsListAdapter(context,isOnWifi, behaviorWithAttachments,this.notifications);
|
||||||
lv_notifications.setAdapter(notificationsListAdapter);
|
lv_notifications.setAdapter(notificationsListAdapter);
|
||||||
|
@ -318,12 +319,12 @@ public class DisplayNotificationsFragment extends Fragment implements OnRetrieve
|
||||||
*/
|
*/
|
||||||
private void updateNotificationLastId(String notificationId){
|
private void updateNotificationLastId(String notificationId){
|
||||||
|
|
||||||
String lastNotif = sharedpreferences.getString(Helper.LAST_NOTIFICATION_MAX_ID + userId, null);
|
String lastNotif = sharedpreferences.getString(Helper.LAST_NOTIFICATION_MAX_ID + userId + instance, null);
|
||||||
if( lastNotif == null || Long.parseLong(notificationId) > Long.parseLong(lastNotif)){
|
if( lastNotif == null || Long.parseLong(notificationId) > Long.parseLong(lastNotif)){
|
||||||
this.lastReadNotifications = notificationId;
|
this.lastReadNotifications = notificationId;
|
||||||
MainActivity.countNewNotifications = 0;
|
MainActivity.countNewNotifications = 0;
|
||||||
SharedPreferences.Editor editor = sharedpreferences.edit();
|
SharedPreferences.Editor editor = sharedpreferences.edit();
|
||||||
editor.putString(Helper.LAST_NOTIFICATION_MAX_ID + userId, notificationId);
|
editor.putString(Helper.LAST_NOTIFICATION_MAX_ID + userId + instance, notificationId);
|
||||||
editor.apply();
|
editor.apply();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -74,7 +74,7 @@ public class DisplayStatusFragment extends Fragment implements OnRetrieveFeedsIn
|
||||||
LinearLayoutManager mLayoutManager;
|
LinearLayoutManager mLayoutManager;
|
||||||
boolean firstTootsLoaded;
|
boolean firstTootsLoaded;
|
||||||
private String lastReadStatus;
|
private String lastReadStatus;
|
||||||
private String userId;
|
private String userId, instance;
|
||||||
private SharedPreferences sharedpreferences;
|
private SharedPreferences sharedpreferences;
|
||||||
|
|
||||||
public DisplayStatusFragment(){
|
public DisplayStatusFragment(){
|
||||||
|
@ -118,7 +118,8 @@ public class DisplayStatusFragment extends Fragment implements OnRetrieveFeedsIn
|
||||||
mLayoutManager = new LinearLayoutManager(context);
|
mLayoutManager = new LinearLayoutManager(context);
|
||||||
lv_status.setLayoutManager(mLayoutManager);
|
lv_status.setLayoutManager(mLayoutManager);
|
||||||
userId = sharedpreferences.getString(Helper.PREF_KEY_ID, null);
|
userId = sharedpreferences.getString(Helper.PREF_KEY_ID, null);
|
||||||
lastReadStatus = sharedpreferences.getString(Helper.LAST_NOTIFICATION_MAX_ID + userId, null);
|
lastReadStatus = sharedpreferences.getString(Helper.LAST_NOTIFICATION_MAX_ID + userId + instance, null);
|
||||||
|
instance = sharedpreferences.getString(Helper.PREF_INSTANCE, context!=null?Helper.getLiveInstance(context):null);
|
||||||
|
|
||||||
lv_status.addOnScrollListener(new RecyclerView.OnScrollListener() {
|
lv_status.addOnScrollListener(new RecyclerView.OnScrollListener() {
|
||||||
public void onScrolled(RecyclerView recyclerView, int dx, int dy)
|
public void onScrolled(RecyclerView recyclerView, int dx, int dy)
|
||||||
|
@ -147,7 +148,7 @@ public class DisplayStatusFragment extends Fragment implements OnRetrieveFeedsIn
|
||||||
if( context instanceof BaseMainActivity){
|
if( context instanceof BaseMainActivity){
|
||||||
SharedPreferences.Editor editor = sharedpreferences.edit();
|
SharedPreferences.Editor editor = sharedpreferences.edit();
|
||||||
Long bookmarkL = Long.parseLong(statuses.get(firstVisibleItem).getId()) + 1;
|
Long bookmarkL = Long.parseLong(statuses.get(firstVisibleItem).getId()) + 1;
|
||||||
editor.putString(Helper.BOOKMARK_ID + userId, String.valueOf(bookmarkL));
|
editor.putString(Helper.BOOKMARK_ID + userId + instance, String.valueOf(bookmarkL));
|
||||||
editor.apply();
|
editor.apply();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -300,7 +301,7 @@ public class DisplayStatusFragment extends Fragment implements OnRetrieveFeedsIn
|
||||||
this.statuses.addAll(statuses);
|
this.statuses.addAll(statuses);
|
||||||
statusListAdapter.notifyItemRangeInserted(previousPosition, statuses.size());
|
statusListAdapter.notifyItemRangeInserted(previousPosition, statuses.size());
|
||||||
}else { //Toots are younger than the bookmark
|
}else { //Toots are younger than the bookmark
|
||||||
String currentMaxId = sharedpreferences.getString(Helper.LAST_HOMETIMELINE_MAX_ID + userId, null);
|
String currentMaxId = sharedpreferences.getString(Helper.LAST_HOMETIMELINE_MAX_ID + userId + instance, null);
|
||||||
int position = 0;
|
int position = 0;
|
||||||
while (position < this.statuses.size() && Long.parseLong(statuses.get(0).getId()) < Long.parseLong(this.statuses.get(position).getId())) {
|
while (position < this.statuses.size() && Long.parseLong(statuses.get(0).getId()) < Long.parseLong(this.statuses.get(position).getId())) {
|
||||||
position++;
|
position++;
|
||||||
|
@ -551,12 +552,12 @@ public class DisplayStatusFragment extends Fragment implements OnRetrieveFeedsIn
|
||||||
*/
|
*/
|
||||||
private void updateStatusLastId(String statusId){
|
private void updateStatusLastId(String statusId){
|
||||||
|
|
||||||
String lastNotif = sharedpreferences.getString(Helper.LAST_HOMETIMELINE_MAX_ID + userId, null);
|
String lastNotif = sharedpreferences.getString(Helper.LAST_HOMETIMELINE_MAX_ID + userId + instance, null);
|
||||||
if( lastNotif == null || Long.parseLong(statusId) > Long.parseLong(lastNotif)){
|
if( lastNotif == null || Long.parseLong(statusId) > Long.parseLong(lastNotif)){
|
||||||
this.lastReadStatus = statusId;
|
this.lastReadStatus = statusId;
|
||||||
MainActivity.countNewStatus = 0;
|
MainActivity.countNewStatus = 0;
|
||||||
SharedPreferences.Editor editor = sharedpreferences.edit();
|
SharedPreferences.Editor editor = sharedpreferences.edit();
|
||||||
editor.putString(Helper.LAST_HOMETIMELINE_MAX_ID + userId, statusId);
|
editor.putString(Helper.LAST_HOMETIMELINE_MAX_ID + userId + instance, statusId);
|
||||||
editor.apply();
|
editor.apply();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -882,6 +882,8 @@ public class Helper {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Converts dp to pixel
|
* Converts dp to pixel
|
||||||
* @param dp float - the value in dp to convert
|
* @param dp float - the value in dp to convert
|
||||||
|
|
|
@ -16,11 +16,12 @@ package fr.gouv.etalab.mastodon.interfaces;
|
||||||
|
|
||||||
|
|
||||||
import fr.gouv.etalab.mastodon.client.APIResponse;
|
import fr.gouv.etalab.mastodon.client.APIResponse;
|
||||||
|
import fr.gouv.etalab.mastodon.client.Entities.Account;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by Thomas on 20/05/2017.
|
* Created by Thomas on 20/05/2017.
|
||||||
* Interface when home timeline toots have been retrieved
|
* Interface when home timeline toots have been retrieved
|
||||||
*/
|
*/
|
||||||
public interface OnRetrieveHomeTimelineServiceInterface {
|
public interface OnRetrieveHomeTimelineServiceInterface {
|
||||||
void onRetrieveHomeTimelineService(APIResponse apiResponse, String acct, String userId);
|
void onRetrieveHomeTimelineService(APIResponse apiResponse, Account account);
|
||||||
}
|
}
|
||||||
|
|
|
@ -53,6 +53,7 @@ import fr.gouv.etalab.mastodon.sqlite.Sqlite;
|
||||||
|
|
||||||
import static fr.gouv.etalab.mastodon.helper.Helper.HOME_TIMELINE_INTENT;
|
import static fr.gouv.etalab.mastodon.helper.Helper.HOME_TIMELINE_INTENT;
|
||||||
import static fr.gouv.etalab.mastodon.helper.Helper.INTENT_ACTION;
|
import static fr.gouv.etalab.mastodon.helper.Helper.INTENT_ACTION;
|
||||||
|
import static fr.gouv.etalab.mastodon.helper.Helper.PREF_INSTANCE;
|
||||||
import static fr.gouv.etalab.mastodon.helper.Helper.PREF_KEY_ID;
|
import static fr.gouv.etalab.mastodon.helper.Helper.PREF_KEY_ID;
|
||||||
import static fr.gouv.etalab.mastodon.helper.Helper.canNotify;
|
import static fr.gouv.etalab.mastodon.helper.Helper.canNotify;
|
||||||
import static fr.gouv.etalab.mastodon.helper.Helper.notify_user;
|
import static fr.gouv.etalab.mastodon.helper.Helper.notify_user;
|
||||||
|
@ -119,17 +120,17 @@ public class HomeTimelineSyncJob extends Job implements OnRetrieveHomeTimelineSe
|
||||||
return;
|
return;
|
||||||
//Retrieve users in db that owner has.
|
//Retrieve users in db that owner has.
|
||||||
for (Account account: accounts) {
|
for (Account account: accounts) {
|
||||||
String max_id = sharedpreferences.getString(Helper.LAST_HOMETIMELINE_NOTIFICATION_MAX_ID + account.getId(), null);
|
String max_id = sharedpreferences.getString(Helper.LAST_HOMETIMELINE_NOTIFICATION_MAX_ID + account.getId() + account.getInstance(), null);
|
||||||
String lastHomeSeen = sharedpreferences.getString(Helper.LAST_HOMETIMELINE_MAX_ID + account.getId(), null);
|
String lastHomeSeen = sharedpreferences.getString(Helper.LAST_HOMETIMELINE_MAX_ID + account.getId() + account.getInstance(), null);
|
||||||
if( lastHomeSeen != null && max_id != null){
|
if( lastHomeSeen != null && max_id != null){
|
||||||
if( Long.parseLong(lastHomeSeen) > Long.parseLong(max_id)){
|
if( Long.parseLong(lastHomeSeen) > Long.parseLong(max_id)){
|
||||||
max_id = lastHomeSeen;
|
max_id = lastHomeSeen;
|
||||||
SharedPreferences.Editor editor = sharedpreferences.edit();
|
SharedPreferences.Editor editor = sharedpreferences.edit();
|
||||||
editor.putString(Helper.LAST_HOMETIMELINE_NOTIFICATION_MAX_ID + account.getId(), max_id);
|
editor.putString(Helper.LAST_HOMETIMELINE_NOTIFICATION_MAX_ID + account.getId() + account.getInstance(), max_id);
|
||||||
editor.apply();
|
editor.apply();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
new RetrieveHomeTimelineServiceAsyncTask(getContext(), account.getInstance(), account.getToken(), max_id, account.getAcct(), account.getId(), HomeTimelineSyncJob.this).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
|
new RetrieveHomeTimelineServiceAsyncTask(getContext(), account, max_id, HomeTimelineSyncJob.this).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -137,13 +138,14 @@ public class HomeTimelineSyncJob extends Job implements OnRetrieveHomeTimelineSe
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onRetrieveHomeTimelineService(APIResponse apiResponse, String acct, final String userId) {
|
public void onRetrieveHomeTimelineService(APIResponse apiResponse, final Account account) {
|
||||||
final List<Status> statuses = apiResponse.getStatuses();
|
final List<Status> statuses = apiResponse.getStatuses();
|
||||||
if( apiResponse.getError() != null || statuses == null || statuses.size() == 0)
|
if( apiResponse.getError() != null || statuses == null || statuses.size() == 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
final SharedPreferences sharedpreferences = getContext().getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE);
|
final SharedPreferences sharedpreferences = getContext().getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE);
|
||||||
|
|
||||||
final String max_id = sharedpreferences.getString(Helper.LAST_HOMETIMELINE_NOTIFICATION_MAX_ID + userId, null);
|
final String max_id = sharedpreferences.getString(Helper.LAST_HOMETIMELINE_NOTIFICATION_MAX_ID + account.getId() + account.getInstance(), null);
|
||||||
|
|
||||||
//No previous notifications in cache, so no notification will be sent
|
//No previous notifications in cache, so no notification will be sent
|
||||||
String message;
|
String message;
|
||||||
|
@ -151,7 +153,7 @@ public class HomeTimelineSyncJob extends Job implements OnRetrieveHomeTimelineSe
|
||||||
for(Status status: statuses){
|
for(Status status: statuses){
|
||||||
//The notification associated to max_id is discarded as it is supposed to have already been sent
|
//The notification associated to max_id is discarded as it is supposed to have already been sent
|
||||||
//Also, if the toot comes from the owner, we will avoid to warn him/her...
|
//Also, if the toot comes from the owner, we will avoid to warn him/her...
|
||||||
if( max_id != null && (status.getId().equals(max_id)) || (acct != null && status.getAccount().getAcct().trim().equals(acct.trim()) ))
|
if( max_id != null && (status.getId().equals(max_id)) || (account.getAcct() != null && status.getAccount().getAcct().trim().equals(account.getAcct().trim()) ))
|
||||||
continue;
|
continue;
|
||||||
String notificationUrl = status.getAccount().getAvatar();
|
String notificationUrl = status.getAccount().getAvatar();
|
||||||
|
|
||||||
|
@ -162,8 +164,9 @@ public class HomeTimelineSyncJob extends Job implements OnRetrieveHomeTimelineSe
|
||||||
final Intent intent = new Intent(getContext(), MainActivity.class);
|
final Intent intent = new Intent(getContext(), MainActivity.class);
|
||||||
intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_NEW_TASK );
|
intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_NEW_TASK );
|
||||||
intent.putExtra(INTENT_ACTION, HOME_TIMELINE_INTENT);
|
intent.putExtra(INTENT_ACTION, HOME_TIMELINE_INTENT);
|
||||||
intent.putExtra(PREF_KEY_ID, userId);
|
intent.putExtra(PREF_KEY_ID, account.getId());
|
||||||
long notif_id = Long.parseLong(userId);
|
intent.putExtra(PREF_INSTANCE, account.getInstance());
|
||||||
|
long notif_id = Long.parseLong(account.getId());
|
||||||
final int notificationId = ((notif_id + 2) > 2147483647) ? (int) (2147483647 - notif_id - 2) : (int) (notif_id + 2);
|
final int notificationId = ((notif_id + 2) > 2147483647) ? (int) (2147483647 - notif_id - 2) : (int) (notif_id + 2);
|
||||||
|
|
||||||
if( notificationUrl != null){
|
if( notificationUrl != null){
|
||||||
|
@ -190,7 +193,7 @@ public class HomeTimelineSyncJob extends Job implements OnRetrieveHomeTimelineSe
|
||||||
notify_user(getContext(), intent, notificationId, BitmapFactory.decodeResource(getContext().getResources(),
|
notify_user(getContext(), intent, notificationId, BitmapFactory.decodeResource(getContext().getResources(),
|
||||||
R.drawable.mastodonlogo), finalTitle, finalMessage);
|
R.drawable.mastodonlogo), finalTitle, finalMessage);
|
||||||
SharedPreferences.Editor editor = sharedpreferences.edit();
|
SharedPreferences.Editor editor = sharedpreferences.edit();
|
||||||
editor.putString(Helper.LAST_HOMETIMELINE_NOTIFICATION_MAX_ID + userId, statuses.get(0).getId());
|
editor.putString(Helper.LAST_HOMETIMELINE_NOTIFICATION_MAX_ID + account.getId() + account.getInstance(), statuses.get(0).getId());
|
||||||
editor.apply();
|
editor.apply();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -200,7 +203,7 @@ public class HomeTimelineSyncJob extends Job implements OnRetrieveHomeTimelineSe
|
||||||
public void onResourceReady(Bitmap resource, Transition<? super Bitmap> transition) {
|
public void onResourceReady(Bitmap resource, Transition<? super Bitmap> transition) {
|
||||||
notify_user(getContext(), intent, notificationId, resource, finalTitle, finalMessage);
|
notify_user(getContext(), intent, notificationId, resource, finalTitle, finalMessage);
|
||||||
SharedPreferences.Editor editor = sharedpreferences.edit();
|
SharedPreferences.Editor editor = sharedpreferences.edit();
|
||||||
editor.putString(Helper.LAST_HOMETIMELINE_NOTIFICATION_MAX_ID + userId, statuses.get(0).getId());
|
editor.putString(Helper.LAST_HOMETIMELINE_NOTIFICATION_MAX_ID + account.getId() + account.getInstance(), statuses.get(0).getId());
|
||||||
editor.apply();
|
editor.apply();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in New Issue