fragment bug fix

This commit is contained in:
nuclearfog 2023-04-17 09:08:59 +02:00
parent 253f6339ee
commit 5c0aaf7ad8
No known key found for this signature in database
GPG Key ID: 03488A185C476379
3 changed files with 31 additions and 1 deletions

View File

@ -114,8 +114,8 @@ public class MainActivity extends AppCompatActivity implements ActivityResultCal
finish(); finish();
break; break;
case LoginActivity.RETURN_LOGIN_SUCCESSFUL:
case AccountActivity.RETURN_ACCOUNT_CHANGED: case AccountActivity.RETURN_ACCOUNT_CHANGED:
case LoginActivity.RETURN_LOGIN_SUCCESSFUL:
setupAdapter(); setupAdapter();
break; break;

View File

@ -67,6 +67,22 @@ public class FragmentAdapter extends FragmentStateAdapter {
} }
@Override
public long getItemId(int position) {
return fragments[position].getSessionId();
}
@Override
public boolean containsItem(long itemId) {
for (ListFragment fragment : fragments) {
if (fragment.getSessionId() == itemId)
return true;
}
return false;
}
@NonNull @NonNull
@Override @Override
public Fragment createFragment(int position) { public Fragment createFragment(int position) {

View File

@ -20,6 +20,8 @@ import org.nuclearfog.twidda.backend.utils.RefreshDelay;
import org.nuclearfog.twidda.backend.utils.RefreshDelay.RefreshCallback; import org.nuclearfog.twidda.backend.utils.RefreshDelay.RefreshCallback;
import org.nuclearfog.twidda.config.GlobalSettings; import org.nuclearfog.twidda.config.GlobalSettings;
import java.util.Random;
/** /**
* this fragment class hosts a list view inside a swipe view * this fragment class hosts a list view inside a swipe view
* superclass for all list fragments * superclass for all list fragments
@ -33,11 +35,14 @@ public abstract class ListFragment extends Fragment implements OnRefreshListener
*/ */
private static final int REFRESH_DELAY_MS = 1000; private static final int REFRESH_DELAY_MS = 1000;
private static final Random rand = new Random();
private RecyclerView list; private RecyclerView list;
private SwipeRefreshLayout reload; private SwipeRefreshLayout reload;
protected GlobalSettings settings; protected GlobalSettings settings;
private boolean isRefreshing = false; private boolean isRefreshing = false;
private long sessionId = rand.nextLong();
@Override @Override
@ -125,6 +130,15 @@ public abstract class ListFragment extends Fragment implements OnRefreshListener
} }
} }
/**
* get session fragment ID
*
* @return unique session ID
*/
public long getSessionId() {
return sessionId;
}
/** /**
* called when swipe refresh is active * called when swipe refresh is active
*/ */