Account Activity enhancements (#1196)
* use the "follow" button as an "unblock" button on the profiles of blocked users * use the "follow" button as an "unblock" button on the profiles of blocked users * add an icon to the profiles that can be clicked to mute/unmute the user * add an icon to the profiles that can be clicked to mute/unmute the user * Fix view issues * Fix view issues * Implement swipe to refresh for Account layout * Implement swipe to refresh handler at the account screen * Implement swipe to refresh * Correct account refresh * Show Progress Bar * Show Progress Bar * Move "itSelf" check into the viewModel * Change methods access level * Change TimelineFragment newInstance overload * Change avatarSize type to Float * Replace ImageButton with MaterialButton * Update account activity swipe to refresh colors * Refactor code * Refactor code * Fix crash on moved account refresh * Show moved account stats * Update mute button behaviour * Show tabs and content for moved accounts * Fix crash on tablet
This commit is contained in:
parent
2cd25b6ce0
commit
ae5d8b8633
13 changed files with 890 additions and 580 deletions
|
@ -20,6 +20,10 @@ import android.view.ViewGroup;
|
|||
|
||||
import com.keylesspalace.tusky.fragment.AccountMediaFragment;
|
||||
import com.keylesspalace.tusky.fragment.TimelineFragment;
|
||||
import com.keylesspalace.tusky.interfaces.RefreshableFragment;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
|
@ -34,6 +38,8 @@ public class AccountPagerAdapter extends FragmentPagerAdapter {
|
|||
|
||||
private SparseArray<Fragment> fragments = new SparseArray<>(TAB_COUNT);
|
||||
|
||||
private final Set<Integer> pagesToRefresh = new HashSet<>();
|
||||
|
||||
public AccountPagerAdapter(FragmentManager manager, String accountId) {
|
||||
super(manager);
|
||||
this.accountId = accountId;
|
||||
|
@ -48,16 +54,16 @@ public class AccountPagerAdapter extends FragmentPagerAdapter {
|
|||
public Fragment getItem(int position) {
|
||||
switch (position) {
|
||||
case 0: {
|
||||
return TimelineFragment.newInstance(TimelineFragment.Kind.USER, accountId);
|
||||
return TimelineFragment.newInstance(TimelineFragment.Kind.USER, accountId,false);
|
||||
}
|
||||
case 1: {
|
||||
return TimelineFragment.newInstance(TimelineFragment.Kind.USER_WITH_REPLIES, accountId);
|
||||
return TimelineFragment.newInstance(TimelineFragment.Kind.USER_WITH_REPLIES, accountId,false);
|
||||
}
|
||||
case 2: {
|
||||
return TimelineFragment.newInstance(TimelineFragment.Kind.USER_PINNED, accountId);
|
||||
return TimelineFragment.newInstance(TimelineFragment.Kind.USER_PINNED, accountId,false);
|
||||
}
|
||||
case 3: {
|
||||
return AccountMediaFragment.newInstance(accountId);
|
||||
return AccountMediaFragment.newInstance(accountId,false);
|
||||
}
|
||||
default: {
|
||||
throw new AssertionError("Page " + position + " is out of AccountPagerAdapter bounds");
|
||||
|
@ -76,6 +82,11 @@ public class AccountPagerAdapter extends FragmentPagerAdapter {
|
|||
Object fragment = super.instantiateItem(container, position);
|
||||
if (fragment instanceof Fragment)
|
||||
fragments.put(position, (Fragment) fragment);
|
||||
if (pagesToRefresh.contains(position)) {
|
||||
if (fragment instanceof RefreshableFragment)
|
||||
((RefreshableFragment) fragment).refreshContent();
|
||||
pagesToRefresh.remove(position);
|
||||
}
|
||||
return fragment;
|
||||
}
|
||||
|
||||
|
@ -94,4 +105,16 @@ public class AccountPagerAdapter extends FragmentPagerAdapter {
|
|||
public Fragment getFragment(int position) {
|
||||
return fragments.get(position);
|
||||
}
|
||||
|
||||
public void refreshContent(){
|
||||
for (int i=0;i<getCount();i++){
|
||||
Fragment fragment = getFragment(i);
|
||||
if (fragment instanceof RefreshableFragment){
|
||||
((RefreshableFragment) fragment).refreshContent();
|
||||
}
|
||||
else{
|
||||
pagesToRefresh.add(i);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue