2727import com .google .android .material .materialswitch .MaterialSwitch ;
2828import com .google .gson .Gson ;
2929import com .nutomic .syncthingandroid .R ;
30+ import com .nutomic .syncthingandroid .databinding .FragmentFolderBinding ;
3031import com .nutomic .syncthingandroid .model .Device ;
3132import com .nutomic .syncthingandroid .model .Folder ;
3233import com .nutomic .syncthingandroid .service .Constants ;
@@ -85,20 +86,7 @@ public class FolderActivity extends SyncthingActivity
8586 // Indicates the result of the write test to mFolder.path on dialog init or after a path change.
8687 Boolean mCanWriteToPath = false ;
8788
88- private EditText mLabelView ;
89- private EditText mIdView ;
90- private TextView mPathView ;
91- private TextView mAccessExplanationView ;
92- private TextView mFolderTypeView ;
93- private TextView mFolderTypeDescriptionView ;
94- private MaterialSwitch mFolderFileWatcher ;
95- private MaterialSwitch mFolderPaused ;
96- private ViewGroup mDevicesContainer ;
97- private TextView mPullOrderTypeView ;
98- private TextView mPullOrderDescriptionView ;
99- private TextView mVersioningDescriptionView ;
100- private TextView mVersioningTypeView ;
101- private TextView mEditIgnores ;
89+ private FragmentFolderBinding binding ;
10290
10391 private boolean mIsCreateMode ;
10492 private boolean mFolderNeedsToUpdate = false ;
@@ -111,9 +99,9 @@ public class FolderActivity extends SyncthingActivity
11199 private final TextWatcher mTextWatcher = new TextWatcherAdapter () {
112100 @ Override
113101 public void afterTextChanged (Editable s ) {
114- mFolder .label = mLabelView .getText ().toString ();
115- mFolder .id = mIdView .getText ().toString ();
116- // mPathView must not be handled here as it's handled by {@link onActivityResult}
102+ mFolder .label = binding . label .getText ().toString ();
103+ mFolder .id = binding . id .getText ().toString ();
104+ // binding.directoryTextView must not be handled here as it's handled by {@link onActivityResult}
117105 mFolderNeedsToUpdate = true ;
118106 }
119107 };
@@ -147,33 +135,19 @@ public void onCheckedChanged(CompoundButton view, boolean isChecked) {
147135 @ Override
148136 public void onCreate (Bundle savedInstanceState ) {
149137 super .onCreate (savedInstanceState );
150- setContentView (R .layout .fragment_folder );
138+ binding = FragmentFolderBinding .inflate (getLayoutInflater ());
139+ setContentView (binding .getRoot ());
151140
152141 mIsCreateMode = getIntent ().getBooleanExtra (EXTRA_IS_CREATE , false );
153142 setTitle (mIsCreateMode ? R .string .create_folder : R .string .edit_folder );
154143 registerOnServiceConnectedListener (this );
155144
156- mLabelView = findViewById (R .id .label );
157- mIdView = findViewById (R .id .id );
158- mPathView = findViewById (R .id .directoryTextView );
159- mAccessExplanationView = findViewById (R .id .accessExplanationView );
160- mFolderTypeView = findViewById (R .id .folderType );
161- mFolderTypeDescriptionView = findViewById (R .id .folderTypeDescription );
162- mFolderFileWatcher = findViewById (R .id .fileWatcher );
163- mFolderPaused = findViewById (R .id .folderPause );
164- mPullOrderTypeView = findViewById (R .id .pullOrderType );
165- mPullOrderDescriptionView = findViewById (R .id .pullOrderDescription );
166- mVersioningDescriptionView = findViewById (R .id .versioningDescription );
167- mVersioningTypeView = findViewById (R .id .versioningType );
168- mDevicesContainer = findViewById (R .id .devicesContainer );
169- mEditIgnores = findViewById (R .id .edit_ignores );
170-
171- mPathView .setOnClickListener (view -> onPathViewClick ());
145+ binding .directoryTextView .setOnClickListener (view -> onPathViewClick ());
172146
173147 findViewById (R .id .folderTypeContainer ).setOnClickListener (v -> showFolderTypeDialog ());
174148 findViewById (R .id .pullOrderContainer ).setOnClickListener (v -> showPullOrderDialog ());
175149 findViewById (R .id .versioningContainer ).setOnClickListener (v -> showVersioningDialog ());
176- mEditIgnores .setOnClickListener (v -> editIgnores ());
150+ binding . editIgnores .setOnClickListener (v -> editIgnores ());
177151
178152 if (mIsCreateMode ) {
179153 if (savedInstanceState != null ) {
@@ -186,15 +160,15 @@ public void onCreate(Bundle savedInstanceState) {
186160 initFolder ();
187161 }
188162 // Open keyboard on label view in edit mode.
189- mLabelView .requestFocus ();
190- mEditIgnores .setEnabled (false );
163+ binding . label .requestFocus ();
164+ binding . editIgnores .setEnabled (false );
191165 }
192166 else {
193167 // Prepare edit mode.
194- mIdView .clearFocus ();
195- mIdView .setFocusable (false );
196- mIdView .setEnabled (false );
197- mPathView .setEnabled (false );
168+ binding . id .clearFocus ();
169+ binding . id .setFocusable (false );
170+ binding . id .setEnabled (false );
171+ binding . directoryTextView .setEnabled (false );
198172 }
199173
200174 if (savedInstanceState != null ){
@@ -211,7 +185,7 @@ public void onCreate(Bundle savedInstanceState) {
211185 }
212186
213187 /**
214- * Invoked after user clicked on the {@link mPathView} label.
188+ * Invoked after user clicked on the directoryTextView label.
215189 */
216190 @ SuppressLint ("InlinedAPI" )
217191 private void onPathViewClick () {
@@ -312,8 +286,8 @@ public void onDestroy() {
312286 syncthingService .getNotificationHandler ().cancelConsentNotification (getIntent ().getIntExtra (EXTRA_NOTIFICATION_ID , 0 ));
313287 syncthingService .unregisterOnServiceStateChangeListener (this ::onServiceStateChange );
314288 }
315- mLabelView .removeTextChangedListener (mTextWatcher );
316- mIdView .removeTextChangedListener (mTextWatcher );
289+ binding . label .removeTextChangedListener (mTextWatcher );
290+ binding . id .removeTextChangedListener (mTextWatcher );
317291 }
318292
319293 @ Override
@@ -395,22 +369,22 @@ private void attemptToApplyVersioningConfig() {
395369 }
396370
397371 private void updateViewsAndSetListeners () {
398- mLabelView .removeTextChangedListener (mTextWatcher );
399- mIdView .removeTextChangedListener (mTextWatcher );
400- mFolderFileWatcher .setOnCheckedChangeListener (null );
401- mFolderPaused .setOnCheckedChangeListener (null );
372+ binding . label .removeTextChangedListener (mTextWatcher );
373+ binding . id .removeTextChangedListener (mTextWatcher );
374+ binding . fileWatcher .setOnCheckedChangeListener (null );
375+ binding . folderPause .setOnCheckedChangeListener (null );
402376
403377 // Update views
404- mLabelView .setText (mFolder .label );
405- mIdView .setText (mFolder .id );
378+ binding . label .setText (mFolder .label );
379+ binding . id .setText (mFolder .id );
406380 updateFolderTypeDescription ();
407381 updatePullOrderDescription ();
408382 updateVersioningDescription ();
409- mFolderFileWatcher .setChecked (mFolder .fsWatcherEnabled );
410- mFolderPaused .setChecked (mFolder .paused );
383+ binding . fileWatcher .setChecked (mFolder .fsWatcherEnabled );
384+ binding . folderPause .setChecked (mFolder .paused );
411385 List <Device > devicesList = getApi ().getDevices (false );
412386
413- mDevicesContainer .removeAllViews ();
387+ binding . devicesContainer .removeAllViews ();
414388 if (devicesList .isEmpty ()) {
415389 addEmptyDeviceListView ();
416390 } else {
@@ -420,10 +394,10 @@ private void updateViewsAndSetListeners() {
420394 }
421395
422396 // Keep state updated
423- mLabelView .addTextChangedListener (mTextWatcher );
424- mIdView .addTextChangedListener (mTextWatcher );
425- mFolderFileWatcher .setOnCheckedChangeListener (mCheckedListener );
426- mFolderPaused .setOnCheckedChangeListener (mCheckedListener );
397+ binding . label .addTextChangedListener (mTextWatcher );
398+ binding . id .addTextChangedListener (mTextWatcher );
399+ binding . fileWatcher .setOnCheckedChangeListener (mCheckedListener );
400+ binding . folderPause .setOnCheckedChangeListener (mCheckedListener );
427401 }
428402
429403 @ Override
@@ -552,7 +526,7 @@ public void onActivityResult(int requestCode, int resultCode, Intent data) {
552526 * Prerequisite: mFolder.path must be non-empty
553527 */
554528 private void checkWriteAndUpdateUI () {
555- mPathView .setText (mFolder .path );
529+ binding . directoryTextView .setText (mFolder .path );
556530 if (TextUtils .isEmpty (mFolder .path )) {
557531 return ;
558532 }
@@ -564,9 +538,9 @@ private void checkWriteAndUpdateUI() {
564538 */
565539 mCanWriteToPath = Util .nativeBinaryCanWriteToPath (FolderActivity .this , mFolder .path );
566540 if (mCanWriteToPath ) {
567- mAccessExplanationView .setText (R .string .folder_path_readwrite );
568- mFolderTypeView .setEnabled (true );
569- mEditIgnores .setEnabled (true );
541+ binding . accessExplanationView .setText (R .string .folder_path_readwrite );
542+ binding . folderType .setEnabled (true );
543+ binding . editIgnores .setEnabled (true );
570544 if (mIsCreateMode ) {
571545 /**
572546 * Suggest folder type FOLDER_TYPE_SEND_RECEIVE for folders to be created
@@ -579,9 +553,9 @@ private void checkWriteAndUpdateUI() {
579553 }
580554 } else {
581555 // Force "sendonly" folder.
582- mAccessExplanationView .setText (R .string .folder_path_readonly );
583- mFolderTypeView .setEnabled (false );
584- mEditIgnores .setEnabled (false );
556+ binding . accessExplanationView .setText (R .string .folder_path_readonly );
557+ binding . folderType .setEnabled (false );
558+ binding . editIgnores .setEnabled (false );
585559 mFolder .type = Constants .FOLDER_TYPE_SEND_ONLY ;
586560 updateFolderTypeDescription ();
587561 }
@@ -626,15 +600,15 @@ private void addEmptyDeviceListView() {
626600 int contentInset = getResources ().getDimensionPixelOffset (R .dimen .abc_action_bar_content_inset_material );
627601 setMarginStart (params , dividerInset );
628602 setMarginEnd (params , contentInset );
629- TextView emptyView = new TextView (mDevicesContainer .getContext ());
603+ TextView emptyView = new TextView (binding . devicesContainer .getContext ());
630604 emptyView .setGravity (CENTER_VERTICAL );
631605 emptyView .setText (R .string .devices_list_empty );
632- mDevicesContainer .addView (emptyView , params );
606+ binding . devicesContainer .addView (emptyView , params );
633607 }
634608
635609 private void addDeviceViewAndSetListener (Device device , LayoutInflater inflater ) {
636- inflater .inflate (R .layout .item_device_form , mDevicesContainer );
637- MaterialSwitch deviceView = (MaterialSwitch ) mDevicesContainer . getChildAt (mDevicesContainer .getChildCount ()-1 );
610+ inflater .inflate (R .layout .item_device_form , binding . devicesContainer );
611+ MaterialSwitch deviceView = (MaterialSwitch ) binding . devicesContainer . getChildAt (binding . devicesContainer .getChildCount ()-1 );
638612 deviceView .setOnCheckedChangeListener (null );
639613 deviceView .setChecked (mFolder .getDevice (device .deviceID ) != null );
640614 deviceView .setText (device .getDisplayName ());
@@ -721,8 +695,8 @@ private void updateFolderTypeDescription() {
721695 }
722696
723697 private void setFolderTypeDescription (String type , String description ) {
724- mFolderTypeView .setText (type );
725- mFolderTypeDescriptionView .setText (description );
698+ binding . folderType .setText (type );
699+ binding . folderTypeDescription .setText (description );
726700 }
727701
728702 private void updatePullOrderDescription () {
@@ -765,8 +739,8 @@ private void updatePullOrderDescription() {
765739 }
766740
767741 private void setPullOrderDescription (String type , String description ) {
768- mPullOrderTypeView .setText (type );
769- mPullOrderDescriptionView .setText (description );
742+ binding . pullOrderType .setText (type );
743+ binding . pullOrderDescription .setText (description );
770744 }
771745
772746 private void updateVersioningDescription () {
@@ -801,7 +775,7 @@ private void updateVersioningDescription() {
801775 }
802776
803777 private void setVersioningDescription (String type , String description ) {
804- mVersioningTypeView .setText (type );
805- mVersioningDescriptionView .setText (description );
778+ binding . versioningType .setText (type );
779+ binding . versioningDescription .setText (description );
806780 }
807781}
0 commit comments