From 840c0543151944b784cc30641e7c73122fa05b69 Mon Sep 17 00:00:00 2001 From: stefan-niedermann Date: Sun, 1 Mar 2020 14:38:42 +0100 Subject: #285 Migrate from ButterKnife to ViewBinding --- app/build.gradle | 4 +- .../nextcloud/deck/ui/DrawerActivity.java | 104 ++++++----------- .../niedermann/nextcloud/deck/ui/MainActivity.java | 126 ++++++++------------- app/src/main/res/layout/activity_main.xml | 4 +- 4 files changed, 88 insertions(+), 150 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 274cac01f..5c0bd0976 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -31,7 +31,9 @@ android { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } - + viewBinding { + enabled = true + } flavorDimensions "version" productFlavors { fdroid { diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/DrawerActivity.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/DrawerActivity.java index 5727e52d0..a5cd102b9 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/DrawerActivity.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/DrawerActivity.java @@ -16,8 +16,6 @@ import android.util.Log; import android.view.Menu; import android.view.MenuItem; import android.view.View; -import android.widget.ImageView; -import android.widget.LinearLayout; import android.widget.TextView; import androidx.annotation.NonNull; @@ -27,10 +25,7 @@ import androidx.appcompat.app.ActionBarDrawerToggle; import androidx.appcompat.app.AlertDialog; import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.widget.AppCompatImageButton; -import androidx.appcompat.widget.Toolbar; -import androidx.coordinatorlayout.widget.CoordinatorLayout; import androidx.core.view.GravityCompat; -import androidx.drawerlayout.widget.DrawerLayout; import com.bumptech.glide.Glide; import com.bumptech.glide.request.RequestOptions; @@ -50,14 +45,12 @@ import java.util.ArrayList; import java.util.List; import java.util.Objects; -import butterknife.BindInt; -import butterknife.BindString; -import butterknife.BindView; -import butterknife.ButterKnife; import it.niedermann.nextcloud.deck.Application; import it.niedermann.nextcloud.deck.DeckLog; import it.niedermann.nextcloud.deck.R; import it.niedermann.nextcloud.deck.api.IResponseCallback; +import it.niedermann.nextcloud.deck.databinding.ActivityMainBinding; +import it.niedermann.nextcloud.deck.databinding.NavHeaderMainBinding; import it.niedermann.nextcloud.deck.exceptions.OfflineException; import it.niedermann.nextcloud.deck.model.Account; import it.niedermann.nextcloud.deck.model.ocs.Capabilities; @@ -80,35 +73,18 @@ public abstract class DrawerActivity extends AppCompatActivity implements Naviga protected static final long NO_BOARDS = -1; protected static final long NO_STACKS = -1; - @BindView(R.id.coordinatorLayout) - CoordinatorLayout coordinatorLayout; - @BindView(R.id.navigationView) - NavigationView navigationView; - @BindView(R.id.drawer_layout) - DrawerLayout drawer; - @BindView(R.id.toolbar) - Toolbar toolbar; - - @BindString(R.string.account_is_getting_imported) - String accountIsGettingImported; - @BindString(R.string.account_already_added) - String accountAlreadyAdded; - @BindString(R.string.shared_preference_last_account) - String sharedPreferenceLastAccount; - @BindString(R.string.url_fragment_update_deck) - String urlFragmentUpdateDeck; - @BindString(R.string.add_board) - String addBoard; - @BindString(R.string.no_account) - String noAccount; - @BindString(R.string.add_account) - String addAccount; - @BindInt(R.integer.minimum_server_app_major) - int minimumServerAppMajor; - @BindInt(R.integer.minimum_server_app_minor) - int minimumServerAppMinor; - @BindInt(R.integer.minimum_server_app_patch) - int minimumServerAppPatch; + protected ActivityMainBinding binding; + + String accountIsGettingImported = getString(R.string.account_is_getting_imported); + String accountAlreadyAdded = getString(R.string.account_already_added); + String sharedPreferenceLastAccount = getString(R.string.shared_preference_last_account); + String urlFragmentUpdateDeck = getString(R.string.url_fragment_update_deck); + String addBoard = getString(R.string.add_board); + String noAccount = getString(R.string.no_account); + String addAccount = getString(R.string.add_account); + int minimumServerAppMajor = getResources().getInteger(R.integer.minimum_server_app_major); + int minimumServerAppMinor = getResources().getInteger(R.integer.minimum_server_app_minor); + int minimumServerAppPatch = getResources().getInteger(R.integer.minimum_server_app_patch); protected List accountsList = new ArrayList<>(); protected Account account; @@ -145,7 +121,7 @@ public abstract class DrawerActivity extends AppCompatActivity implements Naviga try { accountLiveData.throwError(); } catch (SQLiteConstraintException ex) { - Snackbar.make(coordinatorLayout, accountAlreadyAdded, Snackbar.LENGTH_LONG).show(); + Snackbar.make(binding.coordinatorLayout, accountAlreadyAdded, Snackbar.LENGTH_LONG).show(); } } else { // Remember last account - THIS HAS TO BE DONE SYNCHRONOUSLY @@ -159,7 +135,7 @@ public abstract class DrawerActivity extends AppCompatActivity implements Naviga @Override public void onResponse(Capabilities response) { if (response.getDeckVersion().compareTo(new Version(minimumServerAppMajor, minimumServerAppMinor, minimumServerAppPatch)) < 0) { - deckVersionTooLowSnackbar = Snackbar.make(coordinatorLayout, R.string.your_deck_version_is_too_old, Snackbar.LENGTH_INDEFINITE).setAction("Learn more", v -> { + deckVersionTooLowSnackbar = Snackbar.make(binding.coordinatorLayout, R.string.your_deck_version_is_too_old, Snackbar.LENGTH_INDEFINITE).setAction("Learn more", v -> { new AlertDialog.Builder(DrawerActivity.this, Application.getAppTheme(getApplicationContext()) ? R.style.DialogDarkTheme : R.style.ThemeOverlay_AppCompat_Dialog_Alert) .setTitle(R.string.update_deck) .setMessage(R.string.deck_outdated_please_update) @@ -209,19 +185,19 @@ public abstract class DrawerActivity extends AppCompatActivity implements Naviga super.onCreate(savedInstanceState); Thread.setDefaultUncaughtExceptionHandler(new ExceptionHandler(this)); - setSupportActionBar(toolbar); + setSupportActionBar(binding.toolbar); - accountIsGettingImportedSnackbar = Snackbar.make(coordinatorLayout, accountIsGettingImported, Snackbar.LENGTH_INDEFINITE); + accountIsGettingImportedSnackbar = Snackbar.make(binding.coordinatorLayout, accountIsGettingImported, Snackbar.LENGTH_INDEFINITE); - View header = navigationView.getHeaderView(0); + View header = binding.navigationView.getHeaderView(0); headerViewHolder = new HeaderViewHolder(header); ActionBarDrawerToggle toggle = new ActionBarDrawerToggle( - this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close); - drawer.addDrawerListener(toggle); + this, binding.drawerLayout, binding.toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close); + binding.drawerLayout.addDrawerListener(toggle); toggle.syncState(); - navigationView.setNavigationItemSelectedListener(this); + binding.navigationView.setNavigationItemSelectedListener(this); syncManager = new SyncManager(this); sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()); @@ -239,7 +215,7 @@ public abstract class DrawerActivity extends AppCompatActivity implements Naviga SingleAccountHelper.setCurrentAccount(getApplicationContext(), this.account.getName()); syncManager = new SyncManager(this); setHeaderView(); - ViewUtil.addAvatar(this, headerViewHolder.currentAccountAvatar, this.account.getUrl(), this.account.getUserName(), R.mipmap.ic_launcher_round); + ViewUtil.addAvatar(this, headerViewHolder.binding.drawerCurrentAccount, this.account.getUrl(), this.account.getUserName(), R.mipmap.ic_launcher_round); // TODO show spinner if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { registerAutoSyncOnNetworkAvailable(); @@ -261,7 +237,7 @@ public abstract class DrawerActivity extends AppCompatActivity implements Naviga } }); - navigationView.getHeaderView(0).findViewById(R.id.drawer_header_view).setOnClickListener(v -> { + binding.navigationView.getHeaderView(0).findViewById(R.id.drawer_header_view).setOnClickListener(v -> { this.accountChooserActive = !this.accountChooserActive; if (accountChooserActive) { buildSidenavAccountChooser(); @@ -300,8 +276,8 @@ public abstract class DrawerActivity extends AppCompatActivity implements Naviga @Override public void onBackPressed() { - if (drawer.isDrawerOpen(GravityCompat.START)) { - drawer.closeDrawer(GravityCompat.START); + if (binding.drawerLayout.isDrawerOpen(GravityCompat.START)) { + binding.drawerLayout.closeDrawer(GravityCompat.START); } else { super.onBackPressed(); } @@ -347,24 +323,24 @@ public abstract class DrawerActivity extends AppCompatActivity implements Naviga boardSelected(item.getItemId(), account); } } - drawer.closeDrawer(GravityCompat.START); + binding.drawerLayout.closeDrawer(GravityCompat.START); return true; } protected abstract void boardSelected(int itemId, Account account); protected void setHeaderView() { - ViewUtil.addAvatar(this, navigationView.getHeaderView(0).findViewById(R.id.drawer_current_account), account.getUrl(), account.getUserName(), R.mipmap.ic_launcher_round); - ((TextView) navigationView.getHeaderView(0).findViewById(R.id.drawer_username_full)).setText(account.getName()); + ViewUtil.addAvatar(this, binding.navigationView.getHeaderView(0).findViewById(R.id.drawer_current_account), account.getUrl(), account.getUserName(), R.mipmap.ic_launcher_round); + ((TextView) binding.navigationView.getHeaderView(0).findViewById(R.id.drawer_username_full)).setText(account.getName()); } protected void setNoAccountHeaderView() { - ViewUtil.addAvatar(this, navigationView.getHeaderView(0).findViewById(R.id.drawer_current_account), null, "", R.mipmap.ic_launcher_round); - ((TextView) navigationView.getHeaderView(0).findViewById(R.id.drawer_username_full)).setText(noAccount); + ViewUtil.addAvatar(this, binding.navigationView.getHeaderView(0).findViewById(R.id.drawer_current_account), null, "", R.mipmap.ic_launcher_round); + ((TextView) binding.navigationView.getHeaderView(0).findViewById(R.id.drawer_username_full)).setText(noAccount); } private void buildSidenavAccountChooser() { - Menu menu = navigationView.getMenu(); + Menu menu = binding.navigationView.getMenu(); menu.clear(); if (accountsList == null || accountsList.size() == 0) { Objects.requireNonNull(getSupportActionBar()).setTitle(R.string.app_name_short); @@ -427,7 +403,7 @@ public abstract class DrawerActivity extends AppCompatActivity implements Naviga syncManager.deleteAccount(account.getId()); buildSidenavAccountChooser(); - drawer.closeDrawer(GravityCompat.START); + binding.drawerLayout.closeDrawer(GravityCompat.START); }); m.setActionView(contextMenu); } @@ -438,20 +414,10 @@ public abstract class DrawerActivity extends AppCompatActivity implements Naviga abstract void buildSidenavMenu(); static class HeaderViewHolder { - @BindView(R.id.drawer_current_account) - ImageView currentAccountAvatar; - @BindView(R.id.drawer_account_middle) - ImageView accountMiddleAvatar; - @BindView(R.id.drawer_account_end) - ImageView accountEndAvatar; - - @BindView(R.id.drawer_menu_toggle) - LinearLayout drawerMenuToggle; - @BindView(R.id.drawer_account_chooser_toggle) - ImageView drawerMenuToggleIcon; + NavHeaderMainBinding binding; HeaderViewHolder(View view) { - ButterKnife.bind(this, view); + NavHeaderMainBinding.bind(view); } } diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/MainActivity.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/MainActivity.java index 6989354f4..1e280c3c6 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/MainActivity.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/MainActivity.java @@ -16,26 +16,20 @@ import androidx.appcompat.widget.PopupMenu; import androidx.core.view.GravityCompat; import androidx.lifecycle.LiveData; import androidx.lifecycle.Observer; -import androidx.swiperefreshlayout.widget.SwipeRefreshLayout; import androidx.viewpager.widget.ViewPager; import com.bumptech.glide.Glide; -import com.google.android.material.floatingactionbutton.FloatingActionButton; -import com.google.android.material.navigation.NavigationView; import com.google.android.material.snackbar.Snackbar; -import com.google.android.material.tabs.TabLayout; import com.h6ah4i.android.tablayouthelper.TabLayoutHelper; import java.util.List; import java.util.Objects; -import butterknife.BindString; -import butterknife.BindView; -import butterknife.ButterKnife; import it.niedermann.nextcloud.deck.Application; import it.niedermann.nextcloud.deck.DeckLog; import it.niedermann.nextcloud.deck.R; import it.niedermann.nextcloud.deck.api.IResponseCallback; +import it.niedermann.nextcloud.deck.databinding.ActivityMainBinding; import it.niedermann.nextcloud.deck.model.Account; import it.niedermann.nextcloud.deck.model.Board; import it.niedermann.nextcloud.deck.model.Stack; @@ -45,7 +39,6 @@ import it.niedermann.nextcloud.deck.ui.board.AccessControlDialogFragment; import it.niedermann.nextcloud.deck.ui.board.EditBoardDialogFragment; import it.niedermann.nextcloud.deck.ui.exception.ExceptionHandler; import it.niedermann.nextcloud.deck.ui.helper.dnd.CrossTabDragAndDrop; -import it.niedermann.nextcloud.deck.ui.helper.emptycontentview.EmptyContentView; import it.niedermann.nextcloud.deck.ui.stack.EditStackDialogFragment; import it.niedermann.nextcloud.deck.ui.stack.StackAdapter; import it.niedermann.nextcloud.deck.ui.stack.StackFragment; @@ -67,39 +60,14 @@ public class MainActivity extends DrawerActivity implements private static final String TAG = MainActivity.class.getCanonicalName(); - @BindView(R.id.swipe_refresh_layout) - SwipeRefreshLayout swipeRefreshLayout; - @BindView(R.id.fab) - FloatingActionButton fab; - @BindView(R.id.navigationView) - NavigationView navigationView; - @BindView(R.id.stackLayout) - TabLayout stackLayout; - @BindView(R.id.viewPager) - ViewPager viewPager; - @BindView(R.id.no_stacks) - EmptyContentView emptyContentView; - @BindView(R.id.add_stack) - AppCompatImageButton addStackButton; - - @BindString(R.string.shared_preference_last_board_for_account_) - String sharedPreferencesLastBoardForAccount_; - @BindString(R.string.shared_preference_last_stack_for_account_and_board_) - String sharedPreferencesLastStackForAccountAndBoard_; - @BindString(R.string.simple_settings) - String simpleSettings; - @BindString(R.string.simple_boards) - String simpleBoards; - @BindString(R.string.about) - String about; - @BindString(R.string.share_board) - String shareBoard; - @BindString(R.string.edit_board) - String editBoard; - @BindString(R.string.add_column) - String addColumn; - @BindString(R.string.action_card_list_rename_column) - String actionCardListRenameColumn; + String sharedPreferencesLastBoardForAccount_ = getString(R.string.shared_preference_last_board_for_account_); + String sharedPreferencesLastStackForAccountAndBoard_ = getString(R.string.shared_preference_last_stack_for_account_and_board_); + String simpleSettings = getString(R.string.simple_settings); + String simpleBoards = getString(R.string.simple_boards); + String about = getString(R.string.about); + String shareBoard = getString(R.string.share_board); + String editBoard = getString(R.string.edit_board); + String addColumn = getString(R.string.add_column); private StackAdapter stackAdapter; private List boardsList; @@ -113,8 +81,10 @@ public class MainActivity extends DrawerActivity implements @Override protected void onCreate(Bundle savedInstanceState) { setTheme(Application.getAppTheme(this) ? R.style.DarkAppTheme : R.style.AppTheme); - setContentView(R.layout.activity_main); - ButterKnife.bind(this); + + binding = ActivityMainBinding.inflate(getLayoutInflater()); + setContentView(binding.getRoot()); + super.onCreate(savedInstanceState); Thread.currentThread().setUncaughtExceptionHandler(new ExceptionHandler(this)); @@ -124,16 +94,16 @@ public class MainActivity extends DrawerActivity implements AppCompatDelegate.setCompatVectorFromResourcesEnabled(true); CrossTabDragAndDrop dragAndDrop = new CrossTabDragAndDrop(this); - dragAndDrop.register(viewPager, stackLayout); + dragAndDrop.register(binding.viewPager, binding.stackLayout); dragAndDrop.addCardMovedByDragListener((movedCard, stackId, position) -> { //FIXME: implement me por favour! syncManager.reorder(account.getId(), movedCard, stackId, position); DeckLog.log("Card \"" + movedCard.getCard().getTitle() + "\" was moved to Stack " + stackId + " on position " + position); }); - fab.setOnClickListener((View view) -> { + binding.fab.setOnClickListener((View view) -> { if (this.boardsList == null) { - Snackbar.make(coordinatorLayout, "Please add an account first", Snackbar.LENGTH_LONG); + Snackbar.make(binding.coordinatorLayout, "Please add an account first", Snackbar.LENGTH_LONG); } else if (this.boardsList.size() > 0) { Intent intent = new Intent(this, EditActivity.class); intent.putExtra(BUNDLE_KEY_ACCOUNT_ID, account.getId()); @@ -141,7 +111,7 @@ public class MainActivity extends DrawerActivity implements intent.putExtra(BUNDLE_KEY_BOARD_ID, currentBoardId); intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_NEW_TASK); try { - intent.putExtra(BUNDLE_KEY_STACK_ID, stackAdapter.getItem(viewPager.getCurrentItem()).getStackId()); + intent.putExtra(BUNDLE_KEY_STACK_ID, stackAdapter.getItem(binding.viewPager.getCurrentItem()).getStackId()); startActivity(intent); } catch (IndexOutOfBoundsException e) { EditStackDialogFragment.newInstance(NO_STACK_ID) @@ -152,7 +122,7 @@ public class MainActivity extends DrawerActivity implements } }); - addStackButton.setOnClickListener((v) -> { + binding.addStackButton.setOnClickListener((v) -> { if (this.boardsList.size() == 0) { EditBoardDialogFragment.newInstance().show(getSupportFragmentManager(), addBoard); } else { @@ -160,7 +130,7 @@ public class MainActivity extends DrawerActivity implements } }); - viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { + binding.viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { @@ -168,7 +138,7 @@ public class MainActivity extends DrawerActivity implements @Override public void onPageSelected(int position) { - viewPager.post(() -> { + binding.viewPager.post(() -> { // Remember last stack for this board if (stackAdapter.getCount() >= position) { long currentStackId = stackAdapter.getItem(position).getStackId(); @@ -187,7 +157,7 @@ public class MainActivity extends DrawerActivity implements } }); - swipeRefreshLayout.setOnRefreshListener(() -> { + binding.swipeRefreshLayout.setOnRefreshListener(() -> { Log.i(TAG, "Clearing Glide memory cache"); Glide.get(this).clearMemory(); new Thread(() -> { @@ -197,12 +167,12 @@ public class MainActivity extends DrawerActivity implements syncManager.synchronize(new IResponseCallback(account) { @Override public void onResponse(Boolean response) { - runOnUiThread(() -> swipeRefreshLayout.setRefreshing(false)); + runOnUiThread(() -> binding.swipeRefreshLayout.setRefreshing(false)); } @Override public void onError(Throwable throwable) { - runOnUiThread(() -> swipeRefreshLayout.setRefreshing(false)); + runOnUiThread(() -> binding.swipeRefreshLayout.setRefreshing(false)); DeckLog.logError(throwable); } }); @@ -227,7 +197,7 @@ public class MainActivity extends DrawerActivity implements // original to do: should return ID of the created stack, so one can immediately switch to the new board after creation DeckLog.log("Create Stack with account id = " + account.getId()); syncManager.createStack(account.getId(), s).observe(MainActivity.this, (stack) -> { - viewPager.setCurrentItem(stackAdapter.getCount()); + binding.viewPager.setCurrentItem(stackAdapter.getCount()); }); }); } @@ -248,7 +218,7 @@ public class MainActivity extends DrawerActivity implements b.setColor(colorToSet); observeOnce(syncManager.createBoard(account.getId(), b), this, board -> { if (board == null) { - Snackbar.make(coordinatorLayout, "Open Deck in web interface first!", Snackbar.LENGTH_LONG); + Snackbar.make(binding.coordinatorLayout, "Open Deck in web interface first!", Snackbar.LENGTH_LONG); } else { boardsList.add(board.getBoard()); currentBoardId = board.getLocalId(); @@ -302,8 +272,8 @@ public class MainActivity extends DrawerActivity implements @Override protected void buildSidenavMenu() { - navigationView.setItemIconTintList(null); - Menu menu = navigationView.getMenu(); + binding.navigationView.setItemIconTintList(null); + Menu menu = binding.navigationView.getMenu(); menu.clear(); SubMenu boardsMenu = menu.addSubMenu(simpleBoards); if (boardsList != null) { @@ -333,7 +303,7 @@ public class MainActivity extends DrawerActivity implements break; case R.id.archive_board: // TODO implement - Snackbar.make(drawer, "Archiving boards is not yet supported.", Snackbar.LENGTH_LONG).show(); + Snackbar.make(binding.drawerLayout, "Archiving boards is not yet supported.", Snackbar.LENGTH_LONG).show(); break; case R.id.delete_board: new DeleteDialogBuilder(this) @@ -351,7 +321,7 @@ public class MainActivity extends DrawerActivity implements } } syncManager.deleteBoard(board); - drawer.closeDrawer(GravityCompat.START); + binding.drawerLayout.closeDrawer(GravityCompat.START); }) .setNegativeButton(android.R.string.cancel, (dialog, which) -> { }) @@ -399,33 +369,33 @@ public class MainActivity extends DrawerActivity implements * @param board Board */ private void displayStacksForBoard(Board board, Account account) { - toolbar.setTitle(board.getTitle()); + binding.toolbar.setTitle(board.getTitle()); currentBoardHasEditPermission = board.isPermissionEdit(); if (currentBoardHasEditPermission) { - fab.show(); - addStackButton.setVisibility(View.VISIBLE); + binding.fab.show(); + binding.addStackButton.setVisibility(View.VISIBLE); } else { - fab.hide(); - addStackButton.setVisibility(View.GONE); - emptyContentView.hideDescription(); + binding.fab.hide(); + binding.addStackButton.setVisibility(View.GONE); + binding.emptyContentView.hideDescription(); } syncManager.getStacksForBoard(account.getId(), board.getLocalId()).observe(MainActivity.this, (List fullStacks) -> { if (fullStacks == null) { - emptyContentView.setVisibility(View.VISIBLE); + binding.emptyContentView.setVisibility(View.VISIBLE); currentBoardHasStacks = false; } else { - emptyContentView.setVisibility(View.GONE); + binding.emptyContentView.setVisibility(View.GONE); currentBoardHasStacks = true; long savedStackId = sharedPreferences.getLong(sharedPreferencesLastStackForAccountAndBoard_ + account.getId() + "_" + this.currentBoardId, NO_STACKS); DeckLog.log("--- Read: shared_preference_last_stack_for_account_and_board" + account.getId() + "_" + this.currentBoardId + " | " + savedStackId); if (fullStacks.size() == 0) { - emptyContentView.setVisibility(View.VISIBLE); + binding.emptyContentView.setVisibility(View.VISIBLE); currentBoardHasStacks = false; } else { - emptyContentView.setVisibility(View.GONE); + binding.emptyContentView.setVisibility(View.GONE); currentBoardHasStacks = true; } @@ -439,12 +409,12 @@ public class MainActivity extends DrawerActivity implements } stackAdapter = newStackAdapter; runOnUiThread(() -> { - viewPager.setAdapter(newStackAdapter); + binding.viewPager.setAdapter(newStackAdapter); - new TabLayoutHelper(stackLayout, viewPager).setAutoAdjustTabModeEnabled(true); + new TabLayoutHelper(binding.stackLayout, binding.viewPager).setAutoAdjustTabModeEnabled(true); - viewPager.setCurrentItem(stackPositionInAdapter); - stackLayout.setupWithViewPager(viewPager); + binding.viewPager.setCurrentItem(stackPositionInAdapter); + binding.stackLayout.setupWithViewPager(binding.viewPager); }); } invalidateOptionsMenu(); @@ -472,7 +442,7 @@ public class MainActivity extends DrawerActivity implements .setTitle(R.string.action_card_list_delete_column) .setMessage(R.string.do_you_want_to_delete_the_current_column) .setPositiveButton(R.string.simple_delete, (dialog, whichButton) -> { - long stackId = stackAdapter.getItem(viewPager.getCurrentItem()).getStackId(); + long stackId = stackAdapter.getItem(binding.viewPager.getCurrentItem()).getStackId(); observeOnce(syncManager.getStack(account.getId(), stackId), MainActivity.this, fullStack -> { DeckLog.log("Delete stack #" + fullStack.getLocalId() + ": " + fullStack.getStack().getTitle()); syncManager.deleteStack(fullStack.getStack()); @@ -482,8 +452,8 @@ public class MainActivity extends DrawerActivity implements break; case R.id.action_card_list_rename_column: // TODO call newInstance with old stack name - EditStackDialogFragment.newInstance(stackAdapter.getItem(viewPager.getCurrentItem()).getStackId()) - .show(getSupportFragmentManager(), actionCardListRenameColumn); + EditStackDialogFragment.newInstance(stackAdapter.getItem(binding.viewPager.getCurrentItem()).getStackId()) + .show(getSupportFragmentManager(), getString(R.string.action_card_list_rename_column)); break; } return super.onOptionsItemSelected(item); @@ -491,7 +461,7 @@ public class MainActivity extends DrawerActivity implements private void showFabIfEditPermissionGranted() { if (currentBoardHasEditPermission) { - this.fab.show(); + binding.fab.show(); } } @@ -502,6 +472,6 @@ public class MainActivity extends DrawerActivity implements @Override public void onScrollDown() { - this.fab.hide(); + binding.fab.hide(); } } \ No newline at end of file diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 245587678..d9ff21328 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -19,7 +19,7 @@ app:layout_behavior="@string/appbar_scrolling_view_behavior">