Reorder notification tabs and remember selection (AND-82)

This commit is contained in:
Grishka 2023-10-17 03:00:05 +03:00
parent 02729fe02b
commit 1f7155a932
4 changed files with 25 additions and 27 deletions

View File

@ -268,4 +268,12 @@ public class AccountSession{
public void updateAccountInfo(){ public void updateAccountInfo(){
AccountSessionManager.getInstance().updateSessionLocalInfo(this); AccountSessionManager.getInstance().updateSessionLocalInfo(this);
} }
public boolean isNotificationsMentionsOnly(){
return getRawLocalPreferences().getBoolean("notificationsMentionsOnly", false);
}
public void setNotificationsMentionsOnly(boolean mentionsOnly){
getRawLocalPreferences().edit().putBoolean("notificationsMentionsOnly", mentionsOnly).apply();
}
} }

View File

@ -44,7 +44,7 @@ import me.grishka.appkit.Nav;
import me.grishka.appkit.api.SimpleCallback; import me.grishka.appkit.api.SimpleCallback;
public class NotificationsListFragment extends BaseStatusListFragment<Notification>{ public class NotificationsListFragment extends BaseStatusListFragment<Notification>{
private boolean onlyMentions=true; private boolean onlyMentions;
private String maxID; private String maxID;
private View tabBar; private View tabBar;
private View mentionsTab, allTab; private View mentionsTab, allTab;
@ -58,9 +58,7 @@ public class NotificationsListFragment extends BaseStatusListFragment<Notificati
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
setLayout(R.layout.fragment_notifications); setLayout(R.layout.fragment_notifications);
E.register(this); E.register(this);
if(savedInstanceState!=null){ onlyMentions=AccountSessionManager.get(accountID).isNotificationsMentionsOnly();
onlyMentions=savedInstanceState.getBoolean("onlyMentions", true);
}
setHasOptionsMenu(true); setHasOptionsMenu(true);
} }
@ -133,14 +131,10 @@ public class NotificationsListFragment extends BaseStatusListFragment<Notificati
super.onShown(); super.onShown();
unreadMarker=realUnreadMarker=AccountSessionManager.get(accountID).getLastKnownNotificationsMarker(); unreadMarker=realUnreadMarker=AccountSessionManager.get(accountID).getLastKnownNotificationsMarker();
if(!dataLoading){ if(!dataLoading){
if(onlyMentions){
refresh();
}else{
reloadingFromCache=true; reloadingFromCache=true;
refresh(); refresh();
} }
} }
}
@Override @Override
protected void onHidden(){ protected void onHidden(){
@ -221,12 +215,6 @@ public class NotificationsListFragment extends BaseStatusListFragment<Notificati
return views; return views;
} }
@Override
public void onSaveInstanceState(Bundle outState){
super.onSaveInstanceState(outState);
outState.putBoolean("onlyMentions", onlyMentions);
}
private Notification getNotificationByID(String id){ private Notification getNotificationByID(String id){
for(Notification n:data){ for(Notification n:data){
if(n.id.equals(id)) if(n.id.equals(id))
@ -291,8 +279,10 @@ public class NotificationsListFragment extends BaseStatusListFragment<Notificati
allTab.setSelected(!onlyMentions); allTab.setSelected(!onlyMentions);
maxID=null; maxID=null;
showProgress(); showProgress();
loadData(0, 20);
refreshing=true; refreshing=true;
reloadingFromCache=true;
loadData(0, 20);
AccountSessionManager.get(accountID).setNotificationsMentionsOnly(onlyMentions);
} }
@Override @Override

View File

@ -31,7 +31,7 @@ public class Status extends BaseModel implements DisplayItemsParent{
public StatusPrivacy visibility; public StatusPrivacy visibility;
public boolean sensitive; public boolean sensitive;
@RequiredField @RequiredField
public String spoilerText; public String spoilerText="";
@RequiredField @RequiredField
public List<Attachment> mediaAttachments; public List<Attachment> mediaAttachments;
public Application application; public Application application;

View File

@ -35,15 +35,6 @@
android:layout_gravity="center" android:layout_gravity="center"
style="@style/Widget.Mastodon.M3.SegmentedButtonContainer"> style="@style/Widget.Mastodon.M3.SegmentedButtonContainer">
<FrameLayout
android:id="@+id/mentions_tab"
style="@style/Widget.Mastodon.M3.SegmentedButton">
<org.joinmastodon.android.ui.views.CheckIconSelectableTextView
android:id="@+id/mentions_text"
style="@style/Widget.Mastodon.M3.SegmentedButtonText"
android:text="@string/mentions"/>
</FrameLayout>
<FrameLayout <FrameLayout
android:id="@+id/all_tab" android:id="@+id/all_tab"
style="@style/Widget.Mastodon.M3.SegmentedButton"> style="@style/Widget.Mastodon.M3.SegmentedButton">
@ -53,6 +44,15 @@
android:text="@string/all_notifications"/> android:text="@string/all_notifications"/>
</FrameLayout> </FrameLayout>
<FrameLayout
android:id="@+id/mentions_tab"
style="@style/Widget.Mastodon.M3.SegmentedButton">
<org.joinmastodon.android.ui.views.CheckIconSelectableTextView
android:id="@+id/mentions_text"
style="@style/Widget.Mastodon.M3.SegmentedButtonText"
android:text="@string/mentions"/>
</FrameLayout>
</LinearLayout> </LinearLayout>
</FrameLayout> </FrameLayout>