Skip to content
This repository was archived by the owner on Dec 3, 2024. It is now read-only.

Commit 9a5c500

Browse files
adamszeweimsodin
authored andcommitted
Use view binding in FolderActivity
1 parent 43d8ebf commit 9a5c500

File tree

1 file changed

+48
-74
lines changed

1 file changed

+48
-74
lines changed

app/src/main/java/com/nutomic/syncthingandroid/activities/FolderActivity.java

Lines changed: 48 additions & 74 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
import com.google.android.material.materialswitch.MaterialSwitch;
2828
import com.google.gson.Gson;
2929
import com.nutomic.syncthingandroid.R;
30+
import com.nutomic.syncthingandroid.databinding.FragmentFolderBinding;
3031
import com.nutomic.syncthingandroid.model.Device;
3132
import com.nutomic.syncthingandroid.model.Folder;
3233
import 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

Comments
 (0)