Fixes some issues

This commit is contained in:
tom79 2017-08-24 17:35:39 +02:00
parent 34701d2dbb
commit f8ad45bc9c
5 changed files with 21 additions and 16 deletions

View File

@ -34,6 +34,7 @@ import android.support.v4.view.ViewPager;
import android.support.v7.app.AlertDialog;
import android.support.v7.widget.SearchView;
import android.support.v7.widget.SwitchCompat;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.support.design.widget.NavigationView;
@ -980,7 +981,8 @@ public class MainActivity extends AppCompatActivity
if( account != null){
String last_refresh = sharedpreferences.getString(Helper.LAST_BUBBLE_REFRESH + account.getId(), null);
Date last_refresh_date = Helper.stringToDate(getApplicationContext(), last_refresh);
if (last_refresh_date == null || new Date().getTime() - last_refresh_date.getTime() >= TimeUnit.MINUTES.toMillis(5)) {
//TODO: replace by TimeUnit.MINUTES.toMillis(5)
if (last_refresh_date == null || new Date().getTime() - last_refresh_date.getTime() >= TimeUnit.SECONDS.toMillis(30)) {
if( homeFragment != null && notificationsFragment != null){
homeFragment.update();
notificationsFragment.update();
@ -998,7 +1000,7 @@ public class MainActivity extends AppCompatActivity
return;
View tabHome = tabLayout.getTabAt(0).getCustomView();
TextView tabCounterHome = (TextView) tabHome.findViewById(R.id.tab_counter);
tabCounterHome.setText(newHomeCount);
tabCounterHome.setText(String.valueOf(newHomeCount));
if( newHomeCount > 0){
//New data are available
//The fragment is not displayed, so the counter is displayed
@ -1016,7 +1018,7 @@ public class MainActivity extends AppCompatActivity
return;
View tabNotif = tabLayout.getTabAt(1).getCustomView();
TextView tabCounterNotif = (TextView) tabNotif.findViewById(R.id.tab_counter);
tabCounterNotif.setText(newNotifCount);
tabCounterNotif.setText(String.valueOf(newNotifCount));
if( newNotifCount > 0){
if( tabLayout.getSelectedTabPosition() != 1)
tabCounterNotif.setVisibility(View.VISIBLE);

View File

@ -20,6 +20,7 @@ import android.os.AsyncTask;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.widget.SwipeRefreshLayout;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@ -196,19 +197,19 @@ public class DisplayNotificationsFragment extends Fragment implements OnRetrieve
editor.putString(Helper.LAST_BUBBLE_REFRESH+ userId,Helper.dateToString(context, new Date()));
editor.apply();
String old_max_id = max_id;
String old_max_id = sharedpreferences.getString(Helper.LAST_NOTIFICATION_MAX_ID + userId, null);
List<Notification> notifications = apiResponse.getNotifications();
if( refreshData || !displayNotificationsFragment.isVisible()) {
if( refreshData || !displayNotificationsFragment.getUserVisibleHint()) {
max_id = apiResponse.getMax_id();
manageNotifications(notifications, max_id);
if( !displayNotificationsFragment.isVisible()){
if( !displayNotificationsFragment.getUserVisibleHint()){
int countData = 0;
for(Notification nt : notifications){
if( nt.getId().equals(old_max_id))
break;
countData++;
}
((MainActivity)getActivity()).updateNotifCounter(countData);
((MainActivity)context).updateNotifCounter(countData);
}
}else {
new_max_id = apiResponse.getMax_id();
@ -261,6 +262,6 @@ public class DisplayNotificationsFragment extends Fragment implements OnRetrieve
}
public void update(){
asyncTask = new RetrieveNotificationsAsyncTask(context, null, null, max_id, null, null, !displayNotificationsFragment.isVisible(), DisplayNotificationsFragment.this).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
asyncTask = new RetrieveNotificationsAsyncTask(context, null, null, max_id, null, null, !displayNotificationsFragment.getUserVisibleHint(), DisplayNotificationsFragment.this).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
}
}

View File

@ -260,18 +260,18 @@ public class DisplayStatusFragment extends Fragment implements OnRetrieveFeedsIn
editor.putString(Helper.LAST_BUBBLE_REFRESH+ userId,Helper.dateToString(context, new Date()));
editor.apply();
List<Status> statuses = apiResponse.getStatuses();
String old_max_id = max_id;
if( refreshData || !displayStatusFragment.isVisible()) {
String old_max_id = sharedpreferences.getString(Helper.LAST_HOMETIMELINE_MAX_ID + userId, null);
if( refreshData || !displayStatusFragment.getUserVisibleHint()) {
max_id = apiResponse.getMax_id();
manageStatus(statuses, max_id);
if( !displayStatusFragment.isVisible()){
if( !displayStatusFragment.getUserVisibleHint()){
int countData = 0;
for(Status st : statuses){
if( st.getId().equals(old_max_id))
break;
countData++;
}
((MainActivity)getActivity()).updateHomeCounter(countData);
((MainActivity)context).updateHomeCounter(countData);
}
}else {
new_max_id = apiResponse.getMax_id();
@ -351,6 +351,6 @@ public class DisplayStatusFragment extends Fragment implements OnRetrieveFeedsIn
statusListAdapter.notifyDataSetChanged();
}
public void update() {
asyncTask = new RetrieveFeedsAsyncTask(context, type, max_id, !displayStatusFragment.isVisible(), DisplayStatusFragment.this).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
asyncTask = new RetrieveFeedsAsyncTask(context, type, max_id, !displayStatusFragment.getUserVisibleHint(), DisplayStatusFragment.this).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
}
}

View File

@ -2,6 +2,6 @@
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="@color/mastodonC2" />
<padding android:left="5dp" android:right="5dp"/>
<padding android:left="2dp" android:right="2dp"/>
<corners android:radius="3dp" />
</shape>

View File

@ -27,9 +27,11 @@
<TextView
android:id="@+id/tab_counter"
android:visibility="gone"
android:gravity="center"
android:textSize="10sp"
android:textColor="@color/mastodonC1"
android:background="@drawable/shape_counter"
android:layout_gravity="center"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
android:layout_width="18dp"
android:layout_height="18dp"/>
</LinearLayout>