Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b9cd8c35 authored by stefan-niedermann's avatar stefan-niedermann
Browse files

Added some null checks & more defensive programming

parent c2aef80d
Loading
Loading
Loading
Loading
+25 −43
Original line number Diff line number Diff line
@@ -180,26 +180,20 @@ public class NotesListViewActivity extends AppCompatActivity implements ItemAdap
    private void setupNotesList() {
        initList();
        // Pull to Refresh
        swipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
            @Override
            public void onRefresh() {
        swipeRefreshLayout.setOnRefreshListener(() -> {
            if (db.getNoteServerSyncHelper().isSyncPossible()) {
                synchronize();
            } else {
                swipeRefreshLayout.setRefreshing(false);
                Toast.makeText(getApplicationContext(), getString(R.string.error_sync, getString(NotesClientUtil.LoginStatus.NO_NETWORK.str)), Toast.LENGTH_LONG).show();
            }
            }
        });

        // Floating Action Button
        fabCreate.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
        fabCreate.setOnClickListener((View view) -> {
            Intent createIntent = new Intent(getApplicationContext(), EditNoteActivity.class);
            createIntent.putExtra(EditNoteActivity.PARAM_CATEGORY, navigationSelection);
            startActivityForResult(createIntent, create_note_cmd);
            }
        });
    }

@@ -373,12 +367,9 @@ public class NotesListViewActivity extends AppCompatActivity implements ItemAdap

        this.updateUsernameInDrawer();
        final NotesListViewActivity that = this;
        this.account.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
        this.account.setOnClickListener((View v) -> {
            Intent settingsIntent = new Intent(that, SettingsActivity.class);
            startActivityForResult(settingsIntent, server_settings);
            }
        });

        adapterMenu.setItems(itemsMenu);
@@ -424,14 +415,11 @@ public class NotesListViewActivity extends AppCompatActivity implements ItemAdap
                        refreshLists();
                        Log.v("Note", "Item deleted through swipe ----------------------------------------------");
                        Snackbar.make(swipeRefreshLayout, R.string.action_note_deleted, Snackbar.LENGTH_LONG)
                                .setAction(R.string.action_undo, new View.OnClickListener() {
                                    @Override
                                    public void onClick(View v) {
                                .setAction(R.string.action_undo, (View v) -> {
                                    db.addNoteAndSync(dbNote);
                                    refreshLists();
                                    Snackbar.make(swipeRefreshLayout, R.string.action_note_restored, Snackbar.LENGTH_SHORT)
                                            .show();
                                    }
                                })
                                .show();
                        break;
@@ -485,15 +473,12 @@ public class NotesListViewActivity extends AppCompatActivity implements ItemAdap
            query = searchView.getQuery();
        }

        LoadNotesListTask.NotesLoadedListener callback = new LoadNotesListTask.NotesLoadedListener() {
            @Override
            public void onNotesLoaded(List<Item> notes, boolean showCategory) {
        LoadNotesListTask.NotesLoadedListener callback = (List<Item> notes, boolean showCategory) -> {
            adapter.setShowCategory(showCategory);
            adapter.setItemList(notes);
            if (scrollToTop) {
                listView.scrollToPosition(0);
            }
            }
        };
        new LoadNotesListTask(getApplicationContext(), callback, navigationSelection, query).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
        new LoadCategoryListTask().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
@@ -534,11 +519,8 @@ public class NotesListViewActivity extends AppCompatActivity implements ItemAdap
                    if (currentVisibility == View.VISIBLE) {
                        fabCreate.hide();
                    } else {
                        new Handler().postDelayed(new Runnable() {
                            @Override
                            public void run() {
                        new Handler().postDelayed(() -> {
                            fabCreate.show();
                            }
                        }, 150);
                    }

+13 −24
Original line number Diff line number Diff line
@@ -6,9 +6,6 @@ import android.graphics.drawable.Drawable;
import android.os.AsyncTask;
import android.os.Bundle;
import android.preference.PreferenceManager;
import com.google.android.material.textfield.TextInputLayout;
import androidx.core.content.ContextCompat;
import androidx.appcompat.app.AppCompatActivity;
import android.text.Editable;
import android.text.TextWatcher;
import android.util.Log;
@@ -19,6 +16,10 @@ import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

import com.google.android.material.textfield.TextInputLayout;

import androidx.appcompat.app.AppCompatActivity;
import androidx.core.content.ContextCompat;
import at.bitfire.cert4android.CustomCertManager;
import butterknife.BindView;
import butterknife.ButterKnife;
@@ -76,11 +77,8 @@ public class SettingsActivity extends AppCompatActivity {
            }
        }

        field_url.setOnFocusChangeListener(new View.OnFocusChangeListener() {
            @Override
            public void onFocusChange(View v, boolean hasFocus) {
        field_url.setOnFocusChangeListener((View v, boolean hasFocus) -> {
            new URLValidatorAsyncTask().execute(NotesClientUtil.formatURL(field_url.getText().toString()));
            }
        });

        field_url.addTextChangedListener(new TextWatcher() {
@@ -128,27 +126,18 @@ public class SettingsActivity extends AppCompatActivity {
        field_username.setText(preferences.getString(SETTINGS_USERNAME, DEFAULT_SETTINGS));
        old_password = preferences.getString(SETTINGS_PASSWORD, DEFAULT_SETTINGS);

        field_password.setOnEditorActionListener(new TextView.OnEditorActionListener() {
            @Override
            public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
        field_password.setOnEditorActionListener((TextView v, int actionId, KeyEvent event) -> {
            login();
            return true;
            }
        });
        field_password.setOnFocusChangeListener(new View.OnFocusChangeListener() {
            @Override
            public void onFocusChange(View v, boolean hasFocus) {
        field_password.setOnFocusChangeListener((View v, boolean hasFocus) -> {
            setPasswordHint(hasFocus);
            }
        });
        setPasswordHint(false);

        btn_submit.setEnabled(false);
        btn_submit.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
        btn_submit.setOnClickListener((View v) -> {
            login();
            }
        });
    }

+28 −18
Original line number Diff line number Diff line
@@ -9,6 +9,7 @@ import android.content.Intent;
import android.content.SharedPreferences;
import android.net.Uri;
import android.preference.PreferenceManager;
import android.util.Log;
import android.widget.RemoteViews;

import it.niedermann.owncloud.notes.R;
@@ -104,13 +105,21 @@ public class NoteListWidget extends AppWidgetProvider {
        super.onReceive(context, intent);
        AppWidgetManager awm = AppWidgetManager.getInstance(context);

        if (intent.getAction().equals(awm.ACTION_APPWIDGET_UPDATE)) {
        if (intent.getAction() != null) {
            if (intent.getAction().equals(AppWidgetManager.ACTION_APPWIDGET_UPDATE)) {
                if (intent.hasExtra(AppWidgetManager.EXTRA_APPWIDGET_ID)) {
                    if (intent.getExtras() != null) {
                        updateAppWidget(context, awm, new int[]{intent.getExtras().getInt(AppWidgetManager.EXTRA_APPWIDGET_ID, -1)});
                    } else {
                        Log.w(NoteListWidget.class.getSimpleName(), "intent.getExtras() is null");
                    }
                } else {
                    updateAppWidget(context, awm, awm.getAppWidgetIds(new ComponentName(context, NoteListWidget.class)));
                }
            }
        } else {
            Log.w(NoteListWidget.class.getSimpleName(), "intent.getAction() is null");
        }
    }

    @Override
@@ -129,10 +138,11 @@ public class NoteListWidget extends AppWidgetProvider {
    }

    private static String getWidgetTitle(Context context, int displayMode, String category) {
        switch (displayMode)
        {
            case NoteListWidget.NLW_DISPLAY_ALL: return context.getString(R.string.app_name);
            case NoteListWidget.NLW_DISPLAY_STARRED: return context.getString(R.string.label_favorites);
        switch (displayMode) {
            case NoteListWidget.NLW_DISPLAY_ALL:
                return context.getString(R.string.app_name);
            case NoteListWidget.NLW_DISPLAY_STARRED:
                return context.getString(R.string.label_favorites);
            case NoteListWidget.NLW_DISPLAY_CATEGORY:
                if (category.equals("")) {
                    return context.getString(R.string.action_uncategorized);
+8 −3
Original line number Diff line number Diff line
@@ -8,7 +8,7 @@ import android.content.Context;
import android.content.DialogInterface;
import android.os.AsyncTask;
import android.os.Bundle;
import androidx.annotation.NonNull;
import android.util.Log;
import android.view.View;
import android.view.WindowManager;
import android.widget.ArrayAdapter;
@@ -17,6 +17,7 @@ import android.widget.Filter;
import java.util.ArrayList;
import java.util.List;

import androidx.annotation.NonNull;
import butterknife.BindView;
import butterknife.ButterKnife;
import it.niedermann.owncloud.notes.R;
@@ -68,7 +69,7 @@ public class CategoryDialogFragment extends DialogFragment {
                    public void onClick(DialogInterface dialog, int which) {
                        CategoryDialogListener listener;
                        Fragment target = getTargetFragment();
                        if (target != null && target instanceof CategoryDialogListener) {
                        if (target instanceof CategoryDialogListener) {
                            listener = (CategoryDialogListener) target;
                        } else {
                            listener = (CategoryDialogListener) getActivity();
@@ -88,7 +89,11 @@ public class CategoryDialogFragment extends DialogFragment {
    @Override
    public void onActivityCreated(Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        if (getDialog().getWindow() != null) {
            getDialog().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);
        } else {
            Log.w(CategoryDialogFragment.class.getSimpleName(), "can not set SOFT_INPUT_STATE_ALWAYAS_VISIBLE because getWindow() == null");
        }
    }


+38 −34
Original line number Diff line number Diff line
@@ -109,6 +109,7 @@ public class NoteEditFragment extends BaseNoteFragment {
    public void onActivityCreated(@Nullable Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);

        if(getView() != null) {
            ButterKnife.bind(this, getView());

            setActiveTextView(editContent);
@@ -147,6 +148,9 @@ public class NoteEditFragment extends BaseNoteFragment {
            if (sp.getBoolean("font", false)) {
                editContent.setTypeface(Typeface.MONOSPACE);
            }
        } else {
            Log.e(NoteEditFragment.class.getSimpleName(), "getView() is null");
        }
    }

    @Override
Loading