Loading app/src/main/java/it/niedermann/owncloud/notes/main/MainActivity.java +17 −17 Original line number Diff line number Diff line Loading @@ -73,9 +73,9 @@ import it.niedermann.owncloud.notes.main.menu.MenuAdapter; import it.niedermann.owncloud.notes.main.navigation.NavigationAdapter; import it.niedermann.owncloud.notes.main.navigation.NavigationClickListener; import it.niedermann.owncloud.notes.main.navigation.NavigationItem; import it.niedermann.owncloud.notes.persistence.ApiProvider; import it.niedermann.owncloud.notes.persistence.CapabilitiesClient; import it.niedermann.owncloud.notes.persistence.CapabilitiesWorker; import it.niedermann.owncloud.notes.persistence.ApiProvider; import it.niedermann.owncloud.notes.persistence.entity.Account; import it.niedermann.owncloud.notes.persistence.entity.Note; import it.niedermann.owncloud.notes.shared.model.Capabilities; Loading @@ -92,7 +92,6 @@ import static android.view.View.VISIBLE; import static it.niedermann.owncloud.notes.NotesApplication.isDarkThemeActive; import static it.niedermann.owncloud.notes.NotesApplication.isGridViewEnabled; import static it.niedermann.owncloud.notes.branding.BrandingUtil.getSecondaryForegroundColorDependingOnTheme; import static it.niedermann.owncloud.notes.main.menu.MenuAdapter.SERVER_SETTINGS; import static it.niedermann.owncloud.notes.shared.model.ENavigationCategoryType.DEFAULT_CATEGORY; import static it.niedermann.owncloud.notes.shared.model.ENavigationCategoryType.FAVORITES; import static it.niedermann.owncloud.notes.shared.model.ENavigationCategoryType.RECENT; Loading @@ -109,13 +108,12 @@ public class MainActivity extends LockedActivity implements NoteClickListener, A private boolean gridView = true; public static final String CREATED_NOTE = "it.niedermann.owncloud.notes.created_notes"; public static final String ADAPTER_KEY_RECENT = "recent"; public static final String ADAPTER_KEY_STARRED = "starred"; public static final String ADAPTER_KEY_UNCATEGORIZED = "uncategorized"; private final static int create_note_cmd = 0; private final static int show_single_note_cmd = 1; private static final int REQUEST_CODE_CREATE_NOTE = 0; private static final int REQUEST_CODE_SERVER_SETTINGS = 1; protected ItemAdapter adapter; private NavigationAdapter adapterCategories; Loading Loading @@ -212,13 +210,13 @@ public class MainActivity extends LockedActivity implements NoteClickListener, A } fabCreate.setOnClickListener((View view) -> { Intent createIntent = new Intent(getApplicationContext(), EditNoteActivity.class); final Intent createIntent = new Intent(getApplicationContext(), EditNoteActivity.class); createIntent.putExtra(EditNoteActivity.PARAM_CATEGORY, selectedCategory); if (activityBinding.searchView.getQuery().length() > 0) { createIntent.putExtra(EditNoteActivity.PARAM_CONTENT, activityBinding.searchView.getQuery().toString()); invalidateOptionsMenu(); } startActivityForResult(createIntent, create_note_cmd); startActivityForResult(createIntent, REQUEST_CODE_CREATE_NOTE); }); }); mainViewModel.getNotesListLiveData().observe(this, notes -> { Loading Loading @@ -298,12 +296,12 @@ public class MainActivity extends LockedActivity implements NoteClickListener, A activityBinding.launchAccountSwitcher.setOnClickListener((v) -> AccountSwitcherDialog.newInstance(nextAccount.getId()).show(getSupportFragmentManager(), AccountSwitcherDialog.class.getSimpleName())); if (menuAdapter == null) { menuAdapter = new MenuAdapter(getApplicationContext(), nextAccount, (menuItem) -> { menuAdapter = new MenuAdapter(getApplicationContext(), nextAccount, REQUEST_CODE_SERVER_SETTINGS, (menuItem) -> { @Nullable Integer resultCode = menuItem.getResultCode(); if (resultCode == null) { startActivity(menuItem.getIntent()); } else { startActivityForResult(menuItem.getIntent(), menuItem.getResultCode()); startActivityForResult(menuItem.getIntent(), resultCode); } }); Loading Loading @@ -638,14 +636,17 @@ public class MainActivity extends LockedActivity implements NoteClickListener, A super.onActivityResult(requestCode, resultCode, data); switch (requestCode) { case create_note_cmd: { case REQUEST_CODE_CREATE_NOTE: { listView.scrollToPosition(0); break; } case SERVER_SETTINGS: { case REQUEST_CODE_SERVER_SETTINGS: { // Recreate activity completely, because theme switching makes problems when only invalidating the views. // @see https://github.com/stefan-niedermann/nextcloud-notes/issues/529 if (RESULT_OK == resultCode) { ActivityCompat.recreate(this); return; } break; } default: { Loading Loading @@ -683,7 +684,7 @@ public class MainActivity extends LockedActivity implements NoteClickListener, A // TODO there is already a sync in progress and results in displaying a TokenMissMatchException snackbar which conflicts with this one coordinatorLayout.post(() -> BrandedSnackbar.make(coordinatorLayout, R.string.account_already_imported, Snackbar.LENGTH_LONG).show()); }); } else if (e instanceof UnknownErrorException && e.getMessage().contains("No address associated with hostname")) { } else if (e instanceof UnknownErrorException && e.getMessage() != null && e.getMessage().contains("No address associated with hostname")) { // https://github.com/stefan-niedermann/nextcloud-notes/issues/1014 runOnUiThread(() -> Snackbar.make(coordinatorLayout, R.string.you_have_to_be_connected_to_the_internet_in_order_to_add_an_account, Snackbar.LENGTH_LONG).show()); } else { Loading @@ -707,10 +708,9 @@ public class MainActivity extends LockedActivity implements NoteClickListener, A public void onNoteClick(int position, View v) { boolean hasCheckedItems = tracker.getSelection().size() > 0; if (!hasCheckedItems) { Note note = (Note) adapter.getItem(position); Intent intent = new Intent(getApplicationContext(), EditNoteActivity.class); intent.putExtra(EditNoteActivity.PARAM_NOTE_ID, note.getId()); startActivityForResult(intent, show_single_note_cmd); final Note note = (Note) adapter.getItem(position); startActivity(new Intent(getApplicationContext(), EditNoteActivity.class) .putExtra(EditNoteActivity.PARAM_NOTE_ID, note.getId())); } } Loading app/src/main/java/it/niedermann/owncloud/notes/main/menu/MenuAdapter.java +2 −4 Original line number Diff line number Diff line Loading @@ -19,18 +19,16 @@ import it.niedermann.owncloud.notes.preferences.PreferencesActivity; public class MenuAdapter extends RecyclerView.Adapter<MenuViewHolder> { public static final int SERVER_SETTINGS = 2; @NonNull private final MenuItem[] menuItems; @NonNull private final Consumer<MenuItem> onClick; public MenuAdapter(@NonNull Context context, @NonNull Account account, @NonNull Consumer<MenuItem> onClick) { public MenuAdapter(@NonNull Context context, @NonNull Account account, int settingsRequestCode, @NonNull Consumer<MenuItem> onClick) { this.menuItems = new MenuItem[]{ new MenuItem(new Intent(context, FormattingHelpActivity.class), R.string.action_formatting_help, R.drawable.ic_baseline_help_outline_24), new MenuItem(generateTrashbinIntent(account), R.string.action_trashbin, R.drawable.ic_delete_grey600_24dp), new MenuItem(new Intent(context, PreferencesActivity.class), SERVER_SETTINGS, R.string.action_settings, R.drawable.ic_settings_grey600_24dp), new MenuItem(new Intent(context, PreferencesActivity.class), settingsRequestCode, R.string.action_settings, R.drawable.ic_settings_grey600_24dp), new MenuItem(new Intent(context, AboutActivity.class), R.string.simple_about, R.drawable.ic_info_outline_grey600_24dp) }; this.onClick = onClick; Loading Loading
app/src/main/java/it/niedermann/owncloud/notes/main/MainActivity.java +17 −17 Original line number Diff line number Diff line Loading @@ -73,9 +73,9 @@ import it.niedermann.owncloud.notes.main.menu.MenuAdapter; import it.niedermann.owncloud.notes.main.navigation.NavigationAdapter; import it.niedermann.owncloud.notes.main.navigation.NavigationClickListener; import it.niedermann.owncloud.notes.main.navigation.NavigationItem; import it.niedermann.owncloud.notes.persistence.ApiProvider; import it.niedermann.owncloud.notes.persistence.CapabilitiesClient; import it.niedermann.owncloud.notes.persistence.CapabilitiesWorker; import it.niedermann.owncloud.notes.persistence.ApiProvider; import it.niedermann.owncloud.notes.persistence.entity.Account; import it.niedermann.owncloud.notes.persistence.entity.Note; import it.niedermann.owncloud.notes.shared.model.Capabilities; Loading @@ -92,7 +92,6 @@ import static android.view.View.VISIBLE; import static it.niedermann.owncloud.notes.NotesApplication.isDarkThemeActive; import static it.niedermann.owncloud.notes.NotesApplication.isGridViewEnabled; import static it.niedermann.owncloud.notes.branding.BrandingUtil.getSecondaryForegroundColorDependingOnTheme; import static it.niedermann.owncloud.notes.main.menu.MenuAdapter.SERVER_SETTINGS; import static it.niedermann.owncloud.notes.shared.model.ENavigationCategoryType.DEFAULT_CATEGORY; import static it.niedermann.owncloud.notes.shared.model.ENavigationCategoryType.FAVORITES; import static it.niedermann.owncloud.notes.shared.model.ENavigationCategoryType.RECENT; Loading @@ -109,13 +108,12 @@ public class MainActivity extends LockedActivity implements NoteClickListener, A private boolean gridView = true; public static final String CREATED_NOTE = "it.niedermann.owncloud.notes.created_notes"; public static final String ADAPTER_KEY_RECENT = "recent"; public static final String ADAPTER_KEY_STARRED = "starred"; public static final String ADAPTER_KEY_UNCATEGORIZED = "uncategorized"; private final static int create_note_cmd = 0; private final static int show_single_note_cmd = 1; private static final int REQUEST_CODE_CREATE_NOTE = 0; private static final int REQUEST_CODE_SERVER_SETTINGS = 1; protected ItemAdapter adapter; private NavigationAdapter adapterCategories; Loading Loading @@ -212,13 +210,13 @@ public class MainActivity extends LockedActivity implements NoteClickListener, A } fabCreate.setOnClickListener((View view) -> { Intent createIntent = new Intent(getApplicationContext(), EditNoteActivity.class); final Intent createIntent = new Intent(getApplicationContext(), EditNoteActivity.class); createIntent.putExtra(EditNoteActivity.PARAM_CATEGORY, selectedCategory); if (activityBinding.searchView.getQuery().length() > 0) { createIntent.putExtra(EditNoteActivity.PARAM_CONTENT, activityBinding.searchView.getQuery().toString()); invalidateOptionsMenu(); } startActivityForResult(createIntent, create_note_cmd); startActivityForResult(createIntent, REQUEST_CODE_CREATE_NOTE); }); }); mainViewModel.getNotesListLiveData().observe(this, notes -> { Loading Loading @@ -298,12 +296,12 @@ public class MainActivity extends LockedActivity implements NoteClickListener, A activityBinding.launchAccountSwitcher.setOnClickListener((v) -> AccountSwitcherDialog.newInstance(nextAccount.getId()).show(getSupportFragmentManager(), AccountSwitcherDialog.class.getSimpleName())); if (menuAdapter == null) { menuAdapter = new MenuAdapter(getApplicationContext(), nextAccount, (menuItem) -> { menuAdapter = new MenuAdapter(getApplicationContext(), nextAccount, REQUEST_CODE_SERVER_SETTINGS, (menuItem) -> { @Nullable Integer resultCode = menuItem.getResultCode(); if (resultCode == null) { startActivity(menuItem.getIntent()); } else { startActivityForResult(menuItem.getIntent(), menuItem.getResultCode()); startActivityForResult(menuItem.getIntent(), resultCode); } }); Loading Loading @@ -638,14 +636,17 @@ public class MainActivity extends LockedActivity implements NoteClickListener, A super.onActivityResult(requestCode, resultCode, data); switch (requestCode) { case create_note_cmd: { case REQUEST_CODE_CREATE_NOTE: { listView.scrollToPosition(0); break; } case SERVER_SETTINGS: { case REQUEST_CODE_SERVER_SETTINGS: { // Recreate activity completely, because theme switching makes problems when only invalidating the views. // @see https://github.com/stefan-niedermann/nextcloud-notes/issues/529 if (RESULT_OK == resultCode) { ActivityCompat.recreate(this); return; } break; } default: { Loading Loading @@ -683,7 +684,7 @@ public class MainActivity extends LockedActivity implements NoteClickListener, A // TODO there is already a sync in progress and results in displaying a TokenMissMatchException snackbar which conflicts with this one coordinatorLayout.post(() -> BrandedSnackbar.make(coordinatorLayout, R.string.account_already_imported, Snackbar.LENGTH_LONG).show()); }); } else if (e instanceof UnknownErrorException && e.getMessage().contains("No address associated with hostname")) { } else if (e instanceof UnknownErrorException && e.getMessage() != null && e.getMessage().contains("No address associated with hostname")) { // https://github.com/stefan-niedermann/nextcloud-notes/issues/1014 runOnUiThread(() -> Snackbar.make(coordinatorLayout, R.string.you_have_to_be_connected_to_the_internet_in_order_to_add_an_account, Snackbar.LENGTH_LONG).show()); } else { Loading @@ -707,10 +708,9 @@ public class MainActivity extends LockedActivity implements NoteClickListener, A public void onNoteClick(int position, View v) { boolean hasCheckedItems = tracker.getSelection().size() > 0; if (!hasCheckedItems) { Note note = (Note) adapter.getItem(position); Intent intent = new Intent(getApplicationContext(), EditNoteActivity.class); intent.putExtra(EditNoteActivity.PARAM_NOTE_ID, note.getId()); startActivityForResult(intent, show_single_note_cmd); final Note note = (Note) adapter.getItem(position); startActivity(new Intent(getApplicationContext(), EditNoteActivity.class) .putExtra(EditNoteActivity.PARAM_NOTE_ID, note.getId())); } } Loading
app/src/main/java/it/niedermann/owncloud/notes/main/menu/MenuAdapter.java +2 −4 Original line number Diff line number Diff line Loading @@ -19,18 +19,16 @@ import it.niedermann.owncloud.notes.preferences.PreferencesActivity; public class MenuAdapter extends RecyclerView.Adapter<MenuViewHolder> { public static final int SERVER_SETTINGS = 2; @NonNull private final MenuItem[] menuItems; @NonNull private final Consumer<MenuItem> onClick; public MenuAdapter(@NonNull Context context, @NonNull Account account, @NonNull Consumer<MenuItem> onClick) { public MenuAdapter(@NonNull Context context, @NonNull Account account, int settingsRequestCode, @NonNull Consumer<MenuItem> onClick) { this.menuItems = new MenuItem[]{ new MenuItem(new Intent(context, FormattingHelpActivity.class), R.string.action_formatting_help, R.drawable.ic_baseline_help_outline_24), new MenuItem(generateTrashbinIntent(account), R.string.action_trashbin, R.drawable.ic_delete_grey600_24dp), new MenuItem(new Intent(context, PreferencesActivity.class), SERVER_SETTINGS, R.string.action_settings, R.drawable.ic_settings_grey600_24dp), new MenuItem(new Intent(context, PreferencesActivity.class), settingsRequestCode, R.string.action_settings, R.drawable.ic_settings_grey600_24dp), new MenuItem(new Intent(context, AboutActivity.class), R.string.simple_about, R.drawable.ic_info_outline_grey600_24dp) }; this.onClick = onClick; Loading