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();
break;
case LoginActivity.RETURN_LOGIN_SUCCESSFUL:
case AccountActivity.RETURN_ACCOUNT_CHANGED:
case LoginActivity.RETURN_LOGIN_SUCCESSFUL:
setupAdapter();
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
@Override
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.config.GlobalSettings;
import java.util.Random;
/**
* this fragment class hosts a list view inside a swipe view
* 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 Random rand = new Random();
private RecyclerView list;
private SwipeRefreshLayout reload;
protected GlobalSettings settings;
private boolean isRefreshing = false;
private long sessionId = rand.nextLong();
@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
*/