87
87
import me .vkryl .core .StringUtils ;
88
88
import me .vkryl .td .Td ;
89
89
90
- public class EditChatFolderController extends EditBaseController <EditChatFolderController .Arguments > implements View .OnClickListener , View .OnLongClickListener , SettingsAdapter . TextChangeListener , SelectChatsController .Delegate , ChatFoldersListener , ChatFolderListener {
90
+ public class EditChatFolderController extends EditBaseController <EditChatFolderController .Arguments > implements View .OnClickListener , View .OnLongClickListener , SelectChatsController .Delegate , ChatFoldersListener , ChatFolderListener {
91
91
92
92
private static final int NO_CHAT_FOLDER_ID = 0 ;
93
93
private static final int COLLAPSED_CHAT_COUNT = 3 ;
@@ -152,7 +152,6 @@ public static EditChatFolderController newFolder (Context context, Tdlib tdlib,
152
152
private boolean showAllExcludedChats ;
153
153
154
154
private SettingsAdapter adapter ;
155
- private @ Nullable ListItem input ;
156
155
private @ Nullable EditHeaderView headerCell ;
157
156
158
157
private volatile int chatFolderId ;
@@ -194,20 +193,14 @@ public View getCustomHeaderCell () {
194
193
@ Override
195
194
@ SuppressWarnings ("deprecation" )
196
195
protected int getHeaderHeight () {
197
- if (Config .CHAT_FOLDERS_REDESIGN && Config .COLLAPSE_CHAT_FOLDER_HEADER_ON_SCROLL ) {
198
- ComplexRecyclerView recyclerView = getRecyclerView ();
199
- return (int ) (Size .getHeaderPortraitSize () + Size .getHeaderSizeDifference (true ) * recyclerView .getScrollFactor ());
200
- }
201
- return headerCell != null ? Size .getHeaderBigPortraitSize (false ) : super .getHeaderHeight ();
196
+ ComplexRecyclerView recyclerView = getRecyclerView ();
197
+ return (int ) (Size .getHeaderPortraitSize () + Size .getHeaderSizeDifference (true ) * recyclerView .getScrollFactor ());
202
198
}
203
199
204
200
@ Override
205
201
@ SuppressWarnings ("deprecation" )
206
202
protected int getMaximumHeaderHeight () {
207
- if (Config .CHAT_FOLDERS_REDESIGN && Config .COLLAPSE_CHAT_FOLDER_HEADER_ON_SCROLL ) {
208
- return Size .getHeaderBigPortraitSize (false );
209
- }
210
- return super .getMaximumHeaderHeight ();
203
+ return Size .getHeaderBigPortraitSize (false );
211
204
}
212
205
213
206
@ Override
@@ -226,46 +219,31 @@ public void setArguments (Arguments args) {
226
219
@ Override
227
220
@ SuppressWarnings ("deprecation" )
228
221
protected void onCreateView (Context context , FrameLayoutFix contentView , RecyclerView recyclerView ) {
229
- if (Config .CHAT_FOLDERS_REDESIGN ) {
230
- headerCell = new EditHeaderView (context , this );
231
- headerCell .setInput (editedChatFolder .title );
232
- headerCell .setInputOptions (R .string .FolderNameHint , InputType .TYPE_CLASS_TEXT | InputType .TYPE_TEXT_FLAG_CAP_WORDS );
233
- headerCell .setOnPhotoClickListener (this ::showIconSelector );
234
- headerCell .setImeOptions (EditorInfo .IME_ACTION_DONE );
235
- headerCell .getInputView ().setFilters (new InputFilter [] {
236
- new CodePointCountFilter (MAX_CHAT_FOLDER_TITLE_LENGTH ),
237
- new CharacterStyleFilter ()
238
- });
239
- TextViewKt .doAfterTextChanged (headerCell .getInputView (), (editable ) -> {
240
- onTitleChanged (editable != null ? editable .toString () : "" );
241
- return Unit .INSTANCE ;
242
- });
243
- setLockFocusView (headerCell .getInputView (), /* showAlways */ StringUtils .isEmpty (editedChatFolder .title ));
244
- if (Config .COLLAPSE_CHAT_FOLDER_HEADER_ON_SCROLL ) {
245
- ((ComplexRecyclerView ) recyclerView ).setHeaderView (headerCell , this );
246
- } else {
247
- Views .setTopMargin (recyclerView , Size .getHeaderSizeDifference (false ));
248
- }
249
- updateFolderIcon ();
250
- }
222
+ headerCell = new EditHeaderView (context , this );
223
+ headerCell .setInput (editedChatFolder .title );
224
+ headerCell .setInputOptions (R .string .FolderNameHint , InputType .TYPE_CLASS_TEXT | InputType .TYPE_TEXT_FLAG_CAP_WORDS );
225
+ headerCell .setOnPhotoClickListener (this ::showIconSelector );
226
+ headerCell .setImeOptions (EditorInfo .IME_ACTION_DONE );
227
+ headerCell .getInputView ().setFilters (new InputFilter [] {
228
+ new CodePointCountFilter (MAX_CHAT_FOLDER_TITLE_LENGTH ),
229
+ new CharacterStyleFilter ()
230
+ });
231
+ TextViewKt .doAfterTextChanged (headerCell .getInputView (), (editable ) -> {
232
+ onTitleChanged (editable != null ? editable .toString () : "" );
233
+ return Unit .INSTANCE ;
234
+ });
235
+ setLockFocusView (headerCell .getInputView (), /* showAlways */ StringUtils .isEmpty (editedChatFolder .title ));
236
+ ((ComplexRecyclerView ) recyclerView ).setHeaderView (headerCell , this );
237
+ updateFolderIcon ();
251
238
252
239
ArrayList <ListItem > items = new ArrayList <>();
253
240
254
- if (Config .CHAT_FOLDERS_REDESIGN ) {
255
- if (Config .COLLAPSE_CHAT_FOLDER_HEADER_ON_SCROLL ) {
256
- items .add (new ListItem (ListItem .TYPE_PADDING ).setHeight (Size .getHeaderSizeDifference (false )).setBoolValue (chatFolderId != NO_CHAT_FOLDER_ID ));
257
- }
258
- if (chatFolderId != NO_CHAT_FOLDER_ID ) {
259
- items .add (new ListItem (ListItem .TYPE_RADIO_SETTING , R .id .btn_visible , 0 , R .string .FolderVisible ));
260
- items .add (new ListItem (ListItem .TYPE_SHADOW_BOTTOM ));
261
- } else {
262
- items .add (new ListItem (ListItem .TYPE_EMPTY_OFFSET_SMALL ));
263
- }
264
- } else {
265
- items .add (new ListItem (ListItem .TYPE_HEADER_PADDED , 0 , 0 , R .string .FolderName ));
266
- items .add (new ListItem (ListItem .TYPE_SHADOW_TOP ));
267
- items .add (input = new ListItem (ListItem .TYPE_CUSTOM_SINGLE , R .id .input ).setStringValue (editedChatFolder .title ));
241
+ items .add (new ListItem (ListItem .TYPE_PADDING ).setHeight (Size .getHeaderSizeDifference (false )).setBoolValue (chatFolderId != NO_CHAT_FOLDER_ID ));
242
+ if (chatFolderId != NO_CHAT_FOLDER_ID ) {
243
+ items .add (new ListItem (ListItem .TYPE_RADIO_SETTING , R .id .btn_visible , 0 , R .string .FolderVisible ));
268
244
items .add (new ListItem (ListItem .TYPE_SHADOW_BOTTOM ));
245
+ } else {
246
+ items .add (new ListItem (ListItem .TYPE_EMPTY_OFFSET_SMALL ));
269
247
}
270
248
271
249
items .add (new ListItem (ListItem .TYPE_HEADER , 0 , 0 , R .string .FolderIncludedChats ));
@@ -297,20 +275,9 @@ protected void onCreateView (Context context, FrameLayoutFix contentView, Recycl
297
275
items .add (new ListItem (ListItem .TYPE_SHADOW_BOTTOM ));
298
276
}
299
277
300
- if (Config .CHAT_FOLDERS_REDESIGN && Config .COLLAPSE_CHAT_FOLDER_HEADER_ON_SCROLL ) {
301
- items .add (new ListItem (ListItem .TYPE_PADDING ).setHeight (Size .getHeaderSizeDifference (false )));
302
- } else {
303
- if (chatFolderId != NO_CHAT_FOLDER_ID ) {
304
- items .add (new ListItem (ListItem .TYPE_PADDING ).setHeight (Screen .dp (12 )));
305
- }
306
- items .add (new ListItem (ListItem .TYPE_ZERO_VIEW ));
307
- }
278
+ items .add (new ListItem (ListItem .TYPE_PADDING ).setHeight (Size .getHeaderSizeDifference (false )));
308
279
309
280
adapter = new Adapter (this );
310
- if (input != null ) {
311
- adapter .setLockFocusOn (this , /* showAlways */ StringUtils .isEmpty (editedChatFolder .title ));
312
- adapter .setTextChangeListener (this );
313
- }
314
281
adapter .setItems (items , false );
315
282
recyclerView .setAdapter (adapter );
316
283
RemoveHelper .attach (recyclerView , new RemoveHelperCallback ());
@@ -334,25 +301,23 @@ protected RecyclerView onCreateRecyclerView () {
334
301
recyclerView .setLayoutManager (new LinearLayoutManager (context , RecyclerView .VERTICAL , false ));
335
302
recyclerView .setLayoutParams (FrameLayoutFix .newParams (ViewGroup .LayoutParams .MATCH_PARENT , ViewGroup .LayoutParams .MATCH_PARENT ));
336
303
recyclerView .addItemDecoration (new ItemDecoration ());
337
- if (Config .CHAT_FOLDERS_REDESIGN && Config .COLLAPSE_CHAT_FOLDER_HEADER_ON_SCROLL ) {
338
- recyclerView .addOnScrollListener (new RecyclerView .OnScrollListener () {
339
- @ Override
340
- public void onScrollStateChanged (@ NonNull RecyclerView recyclerView , int newState ) {
341
- if (newState == RecyclerView .SCROLL_STATE_IDLE ) {
342
- LinearLayoutManager layoutManager = (LinearLayoutManager ) recyclerView .getLayoutManager ();
343
- View view = layoutManager != null ? layoutManager .findViewByPosition (0 ) : null ;
344
- if (view == null ) return ;
345
- if (view .getTop () < 0 && view .getBottom () > 0 ) {
346
- if ((view .getTop () + view .getBottom ()) / 2 > 0 ) {
347
- recyclerView .smoothScrollBy (0 , view .getTop (), AnimatorUtils .DECELERATE_INTERPOLATOR );
348
- } else {
349
- recyclerView .smoothScrollBy (0 , view .getBottom (), AnimatorUtils .DECELERATE_INTERPOLATOR );
350
- }
304
+ recyclerView .addOnScrollListener (new RecyclerView .OnScrollListener () {
305
+ @ Override
306
+ public void onScrollStateChanged (@ NonNull RecyclerView recyclerView , int newState ) {
307
+ if (newState == RecyclerView .SCROLL_STATE_IDLE ) {
308
+ LinearLayoutManager layoutManager = (LinearLayoutManager ) recyclerView .getLayoutManager ();
309
+ View view = layoutManager != null ? layoutManager .findViewByPosition (0 ) : null ;
310
+ if (view == null ) return ;
311
+ if (view .getTop () < 0 && view .getBottom () > 0 ) {
312
+ if ((view .getTop () + view .getBottom ()) / 2 > 0 ) {
313
+ recyclerView .smoothScrollBy (0 , view .getTop (), AnimatorUtils .DECELERATE_INTERPOLATOR );
314
+ } else {
315
+ recyclerView .smoothScrollBy (0 , view .getBottom (), AnimatorUtils .DECELERATE_INTERPOLATOR );
351
316
}
352
317
}
353
318
}
354
- });
355
- }
319
+ }
320
+ });
356
321
return recyclerView ;
357
322
}
358
323
@@ -364,9 +329,7 @@ public ComplexRecyclerView getRecyclerView () {
364
329
@ Override
365
330
protected void onDoneVisibleChanged (boolean isVisible ) {
366
331
if (recyclerView != null ) {
367
- if (!Config .COLLAPSE_CHAT_FOLDER_HEADER_ON_SCROLL ) {
368
- recyclerView .invalidateItemDecorations ();
369
- }
332
+ recyclerView .invalidateItemDecorations ();
370
333
adapter .notifyLastItemChanged ();
371
334
}
372
335
}
@@ -563,13 +526,6 @@ public void onChatFoldersChanged (TdApi.ChatFolderInfo[] chatFolders, int mainCh
563
526
}
564
527
}
565
528
566
- @ Override
567
- public void onTextChanged (int id , ListItem item , MaterialEditTextGroup v ) {
568
- if (item == input ) {
569
- onTitleChanged (v .getText ().toString ());
570
- }
571
- }
572
-
573
529
private void onTitleChanged (String text ) {
574
530
editedChatFolder .title = text ;
575
531
updateDoneButton ();
@@ -767,20 +723,12 @@ private void updateFolderName () {
767
723
}
768
724
int includedChatType = includedChatTypes [0 ];
769
725
String chatTypeName = Lang .getString (TD .chatTypeName (includedChatType ));
770
- boolean isNameChanged = false ;
771
726
if (!StringUtils .equalsOrBothEmpty (editedChatFolder .title , chatTypeName )) {
772
727
editedChatFolder .title = chatTypeName ;
773
- isNameChanged = true ;
774
- if (input != null ) {
775
- input .setStringValue (chatTypeName );
776
- }
777
728
if (headerCell != null ) {
778
729
headerCell .setInput (chatTypeName );
779
730
}
780
731
}
781
- if (input != null && isNameChanged ) {
782
- adapter .updateSimpleItemById (input .getId ());
783
- }
784
732
}
785
733
786
734
@ Override
@@ -922,9 +870,6 @@ private void closeSelf () {
922
870
}
923
871
924
872
private void updateFolderIcon () {
925
- if (input != null ) {
926
- adapter .updateSimpleItemById (input .getId ());
927
- }
928
873
if (headerCell != null ) {
929
874
int iconResource = tdlib .chatFolderIconDrawable (editedChatFolder , R .drawable .baseline_folder_24 );
930
875
headerCell .setIcon (iconResource , ColorId .white );
0 commit comments