diff options
author | stefan-niedermann <info@niedermann.it> | 2020-03-04 23:31:18 +0300 |
---|---|---|
committer | stefan-niedermann <info@niedermann.it> | 2020-03-04 23:31:18 +0300 |
commit | 284461133c6f49c128d4d898348469ac2cda13c9 (patch) | |
tree | 88df946d17e970d2979a6667440706ceec3e2991 | |
parent | 2f1970e2f1f611f9af447b6f5c801a714914d50d (diff) |
Handle exceptions when no account has been imported yet
5 files changed, 46 insertions, 12 deletions
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/DeckLog.java b/app/src/main/java/it/niedermann/nextcloud/deck/DeckLog.java index e8427b275..f266c65f1 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/DeckLog.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/DeckLog.java @@ -7,11 +7,31 @@ import java.io.StringWriter; public class DeckLog { + public enum Severity { + VERBOSE, DEBUG, LOG, INFO, WARN, ERROR + } + public static void log(String message) { + log(message, Severity.DEBUG); + } + + public static void log(String message, Severity severity) { StackTraceElement caller = Thread.currentThread().getStackTrace()[3]; - String source = caller.getMethodName() + "() (" + caller.getFileName() + ":" + caller.getLineNumber() + ") -> "; - Log.d(DeckConsts.DEBUG_TAG, source + message); + String source = caller.getMethodName() + "() (" + caller.getFileName() + ":" + caller.getLineNumber() + ") → " + message; + switch(severity) { + case VERBOSE: Log.v(DeckConsts.DEBUG_TAG, source); + break; + case DEBUG: Log.d(DeckConsts.DEBUG_TAG, source); + break; + case INFO: Log.i(DeckConsts.DEBUG_TAG, source); + break; + case WARN: Log.w(DeckConsts.DEBUG_TAG, source); + break; + case ERROR: Log.e(DeckConsts.DEBUG_TAG, source); + break; + } } + public static void logError(Throwable e) { StringWriter sw = new StringWriter(); PrintWriter pw = new PrintWriter(sw); @@ -22,15 +42,15 @@ public class DeckLog { Log.d(DeckConsts.DEBUG_TAG, source + stacktrace); } - public static void printCurrentStacktrace(){ + public static void printCurrentStacktrace() { log(getCurrentStacktrace(4)); } - public static String getCurrentStacktrace(){ + public static String getCurrentStacktrace() { return getCurrentStacktrace(4); } - private static String getCurrentStacktrace(int offset){ + private static String getCurrentStacktrace(@SuppressWarnings("SameParameterValue") int offset) { StackTraceElement[] elements = Thread.currentThread().getStackTrace(); StringBuffer buff = new StringBuffer(); for (int i = offset; i < elements.length; i++) { 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 e2cb858fb..85e5286b7 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 @@ -254,7 +254,7 @@ public abstract class DrawerActivity extends AppCompatActivity implements Naviga }); } - private void showAccountPicker() { + protected void showAccountPicker() { if (deckVersionTooLowSnackbar != null) { deckVersionTooLowSnackbar.dismiss(); } 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 4a7b0052f..50d4f9790 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 @@ -45,6 +45,7 @@ import it.niedermann.nextcloud.deck.ui.stack.StackFragment; import it.niedermann.nextcloud.deck.util.DeleteDialogBuilder; import it.niedermann.nextcloud.deck.util.ViewUtil; +import static it.niedermann.nextcloud.deck.DeckLog.Severity.INFO; import static it.niedermann.nextcloud.deck.persistence.sync.adapters.db.util.LiveDataHelper.observeOnce; import static it.niedermann.nextcloud.deck.ui.card.CardAdapter.BUNDLE_KEY_ACCOUNT_ID; import static it.niedermann.nextcloud.deck.ui.card.CardAdapter.BUNDLE_KEY_BOARD_ID; @@ -107,14 +108,17 @@ public class MainActivity extends DrawerActivity implements CrossTabDragAndDrop dragAndDrop = new CrossTabDragAndDrop(this); 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); }); binding.fab.setOnClickListener((View view) -> { if (this.boardsList == null) { - Snackbar.make(binding.coordinatorLayout, "Please add an account first", Snackbar.LENGTH_LONG); + DeckLog.log("FAB has been clicked, but boardsList is null... Asking to add an account", INFO); + Snackbar + .make(binding.coordinatorLayout, R.string.please_add_an_account_first, Snackbar.LENGTH_LONG) + .setAction(R.string.simple_add, (v) -> showAccountPicker()) + .show(); } else if (this.boardsList.size() > 0) { Intent intent = new Intent(this, EditActivity.class); intent.putExtra(BUNDLE_KEY_ACCOUNT_ID, account.getId()); @@ -134,10 +138,18 @@ public class MainActivity extends DrawerActivity implements }); binding.addStackButton.setOnClickListener((v) -> { - if (this.boardsList.size() == 0) { - EditBoardDialogFragment.newInstance().show(getSupportFragmentManager(), addBoard); + if (this.boardsList == null) { + DeckLog.log("Add stack has been added but boardsList is null, displaying account picker", INFO); + Snackbar + .make(binding.coordinatorLayout, R.string.please_add_an_account_first, Snackbar.LENGTH_LONG) + .setAction(R.string.simple_add, (view) -> showAccountPicker()) + .show(); } else { - EditStackDialogFragment.newInstance(NO_STACK_ID).show(getSupportFragmentManager(), addColumn); + if (this.boardsList.size() == 0) { + EditBoardDialogFragment.newInstance().show(getSupportFragmentManager(), addBoard); + } else { + EditStackDialogFragment.newInstance(NO_STACK_ID).show(getSupportFragmentManager(), addColumn); + } } }); diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 77587a2a6..d1d8f8576 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -156,4 +156,5 @@ <string name="action_card_move_title">Move %1$s</string> <string name="simple_disabled">disabled</string> <string name="simple_copied">Copied</string> + <string name="please_add_an_account_first">Please add an account first</string> </resources> diff --git a/fastlane/metadata/android/en-US/changelogs/22.txt b/fastlane/metadata/android/en-US/changelogs/22.txt index d6f73afe6..9fb768ba0 100644 --- a/fastlane/metadata/android/en-US/changelogs/22.txt +++ b/fastlane/metadata/android/en-US/changelogs/22.txt @@ -1,4 +1,5 @@ - Wrap card title to new line(s) if length exceeds width of screen (#261) - Migrate from ButterKnife to ViewBinding (#285) - Card context menu is cut off (#290) -- Fix label margins and paddings
\ No newline at end of file +- Fix label margins and paddings +- Handle exceptions when no account has been imported yet
\ No newline at end of file |