Assorted crash fixes
This commit is contained in:
@@ -248,6 +248,7 @@ public abstract class BaseStatusListFragment<T extends DisplayItemsParent> exten
|
|||||||
@Override
|
@Override
|
||||||
public void photoViewerDismissed(){
|
public void photoViewerDismissed(){
|
||||||
currentPhotoViewer=null;
|
currentPhotoViewer=null;
|
||||||
|
gridHolder.itemView.setHasTransientState(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -259,6 +260,7 @@ public abstract class BaseStatusListFragment<T extends DisplayItemsParent> exten
|
|||||||
return gridHolder.getViewController(index);
|
return gridHolder.getViewController(index);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
gridHolder.itemView.setHasTransientState(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -314,6 +314,8 @@ public class NotificationsListFragment extends BaseStatusListFragment<Notificati
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void markAsRead(){
|
private void markAsRead(){
|
||||||
|
if(data.isEmpty())
|
||||||
|
return;
|
||||||
String id=data.get(0).id;
|
String id=data.get(0).id;
|
||||||
if(ObjectIdComparator.INSTANCE.compare(id, realUnreadMarker)>0){
|
if(ObjectIdComparator.INSTANCE.compare(id, realUnreadMarker)>0){
|
||||||
new SaveMarkers(null, id).exec(accountID);
|
new SaveMarkers(null, id).exec(accountID);
|
||||||
|
|||||||
@@ -153,7 +153,7 @@ public class SettingsMainFragment extends BaseSettingsFragment<Void>{
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void onManageAccountsClick(ListItem<?> item){
|
private void onManageAccountsClick(ListItem<?> item){
|
||||||
new AccountSwitcherSheet(getActivity(), null).show();
|
new AccountSwitcherSheet(getActivity(), null).setOnLoggedOutCallback(()->loggedOut=true).show();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void onLogOutClick(ListItem<?> item_){
|
private void onLogOutClick(ListItem<?> item_){
|
||||||
|
|||||||
@@ -60,6 +60,7 @@ public class AccountSwitcherSheet extends BottomSheet{
|
|||||||
private UsableRecyclerView list;
|
private UsableRecyclerView list;
|
||||||
private List<WrappedAccount> accounts;
|
private List<WrappedAccount> accounts;
|
||||||
private ListImageLoaderWrapper imgLoader;
|
private ListImageLoaderWrapper imgLoader;
|
||||||
|
private Runnable onLoggedOutCallback;
|
||||||
|
|
||||||
public AccountSwitcherSheet(@NonNull Activity activity, @Nullable HomeFragment fragment){
|
public AccountSwitcherSheet(@NonNull Activity activity, @Nullable HomeFragment fragment){
|
||||||
super(activity);
|
super(activity);
|
||||||
@@ -95,6 +96,11 @@ public class AccountSwitcherSheet extends BottomSheet{
|
|||||||
UiUtils.getThemeColor(activity, R.attr.colorM3Primary), 0.05f)), !UiUtils.isDarkTheme());
|
UiUtils.getThemeColor(activity, R.attr.colorM3Primary), 0.05f)), !UiUtils.isDarkTheme());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public AccountSwitcherSheet setOnLoggedOutCallback(Runnable onLoggedOutCallback){
|
||||||
|
this.onLoggedOutCallback=onLoggedOutCallback;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
private void confirmLogOut(String accountID){
|
private void confirmLogOut(String accountID){
|
||||||
AccountSession session=AccountSessionManager.getInstance().getAccount(accountID);
|
AccountSession session=AccountSessionManager.getInstance().getAccount(accountID);
|
||||||
new M3AlertDialogBuilder(activity)
|
new M3AlertDialogBuilder(activity)
|
||||||
@@ -113,7 +119,10 @@ public class AccountSwitcherSheet extends BottomSheet{
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void logOut(String accountID){
|
private void logOut(String accountID){
|
||||||
|
String activeAccount=AccountSessionManager.getInstance().getLastActiveAccountID();
|
||||||
AccountSessionManager.get(accountID).logOut(activity, ()->{
|
AccountSessionManager.get(accountID).logOut(activity, ()->{
|
||||||
|
if(accountID.equals(activeAccount) && onLoggedOutCallback!=null)
|
||||||
|
onLoggedOutCallback.run();
|
||||||
dismiss();
|
dismiss();
|
||||||
((MainActivity)activity).restartHomeFragment();
|
((MainActivity)activity).restartHomeFragment();
|
||||||
});
|
});
|
||||||
@@ -133,6 +142,8 @@ public class AccountSwitcherSheet extends BottomSheet{
|
|||||||
AccountSessionManager.getInstance().removeAccount(session.getID());
|
AccountSessionManager.getInstance().removeAccount(session.getID());
|
||||||
sessions.remove(session);
|
sessions.remove(session);
|
||||||
if(sessions.isEmpty()){
|
if(sessions.isEmpty()){
|
||||||
|
if(onLoggedOutCallback!=null)
|
||||||
|
onLoggedOutCallback.run();
|
||||||
progress.dismiss();
|
progress.dismiss();
|
||||||
Nav.goClearingStack(activity, SplashFragment.class, null);
|
Nav.goClearingStack(activity, SplashFragment.class, null);
|
||||||
dismiss();
|
dismiss();
|
||||||
@@ -144,6 +155,8 @@ public class AccountSwitcherSheet extends BottomSheet{
|
|||||||
AccountSessionManager.getInstance().removeAccount(session.getID());
|
AccountSessionManager.getInstance().removeAccount(session.getID());
|
||||||
sessions.remove(session);
|
sessions.remove(session);
|
||||||
if(sessions.isEmpty()){
|
if(sessions.isEmpty()){
|
||||||
|
if(onLoggedOutCallback!=null)
|
||||||
|
onLoggedOutCallback.run();
|
||||||
progress.dismiss();
|
progress.dismiss();
|
||||||
Nav.goClearingStack(activity, SplashFragment.class, null);
|
Nav.goClearingStack(activity, SplashFragment.class, null);
|
||||||
dismiss();
|
dismiss();
|
||||||
|
|||||||
@@ -181,6 +181,8 @@ public class ToolbarDropdownMenuController{
|
|||||||
public void resizeOnNextFrame(){
|
public void resizeOnNextFrame(){
|
||||||
if(currentTransition!=null)
|
if(currentTransition!=null)
|
||||||
currentTransition.cancel();
|
currentTransition.cancel();
|
||||||
|
if(windowView==null)
|
||||||
|
return;
|
||||||
int origBottom=menuContainer.getBottom();
|
int origBottom=menuContainer.getBottom();
|
||||||
menuContainer.getViewTreeObserver().addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener(){
|
menuContainer.getViewTreeObserver().addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener(){
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -173,6 +173,7 @@ public class ReorderableLinearLayout extends LinearLayout implements CustomViewH
|
|||||||
else
|
else
|
||||||
bottomSibling=null;
|
bottomSibling=null;
|
||||||
dragListener.onSwapItems(prevIndex, index);
|
dragListener.onSwapItems(prevIndex, index);
|
||||||
|
final View draggedView=this.draggedView;
|
||||||
draggedView.getViewTreeObserver().addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener(){
|
draggedView.getViewTreeObserver().addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener(){
|
||||||
@Override
|
@Override
|
||||||
public boolean onPreDraw(){
|
public boolean onPreDraw(){
|
||||||
|
|||||||
Reference in New Issue
Block a user