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

Commit 8efb27e4 authored by Ben Lin's avatar Ben Lin Committed by android-build-merger
Browse files

Add nifty stacktrace to Exceptions in debug mode.

am: e77419c6

Change-Id: I3cc17114f2249823f7857b48988f146bb2f2e381
parents ae28e0ea e77419c6
Loading
Loading
Loading
Loading
+12 −0
Original line number Diff line number Diff line
@@ -35,6 +35,8 @@ import android.view.WindowManager;

import com.android.documentsui.R;

import java.io.PrintWriter;
import java.io.StringWriter;
import java.text.Collator;
import java.util.ArrayList;
import java.util.List;
@@ -167,6 +169,16 @@ public final class Shared {
            : new ArrayList<>(list);
    }

    /**
     * Returns a condensed stacktrace in String format, separated by \n.
     */
    public static String getStackTrace(Exception e) {
        StringWriter sw = new StringWriter();
        PrintWriter pw = new PrintWriter(sw);
        e.printStackTrace(pw);
        return sw.toString();
    }

    /**
     * Compare two strings against each other using system default collator in a
     * case-insensitive mode. Clusters strings prefixed with {@link DIR_PREFIX}
+13 −4
Original line number Diff line number Diff line
@@ -19,6 +19,7 @@ package com.android.documentsui.dirlist;
import android.annotation.Nullable;

import com.android.documentsui.R;
import com.android.documentsui.base.Shared;
import com.android.documentsui.dirlist.DocumentsAdapter.Environment;
import com.android.documentsui.dirlist.Model.Update;

@@ -94,15 +95,23 @@ abstract class Message {
        void update(Update event) {
            reset();
            if (event.hasError()) {
                updateToInflatedErrorMesage();
                updateToInflatedErrorMesage(
                        Shared.DEBUG ? Shared.getStackTrace(event.getError()) : null);

            } else if (mEnv.getModel().getModelIds().length == 0) {
                updateToInflatedEmptyMessage();
            }
        }

        private void updateToInflatedErrorMesage() {

        private void updateToInflatedErrorMesage(@Nullable String debugString) {
            if (debugString == null) {
                update(mEnv.getContext().getResources().getText(R.string.query_error),
                        R.drawable.hourglass);
            } else {
                assert (Shared.DEBUG);
                update(debugString, R.drawable.hourglass);
            }
        }

        private void updateToInflatedEmptyMessage() {