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

Commit 11f4bbe5 authored by Howard Chen's avatar Howard Chen Committed by Android (Google) Code Review
Browse files

Merge "Resize the DSULoader dialog dynamically"

parents 2d83f8b5 5f0c62f6
Loading
Loading
Loading
Loading
+19 −3
Original line number Original line Diff line number Diff line
@@ -26,6 +26,7 @@ import android.text.TextUtils;
import android.util.Slog;
import android.util.Slog;
import android.view.LayoutInflater;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View;
import android.view.View.MeasureSpec;
import android.view.ViewGroup;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.ListView;
@@ -117,6 +118,20 @@ public class DSULoader extends ListActivity {
            }
            }
        }
        }
    }
    }

    private void resizeListView() {
        ListView view = getListView();
        View item_view = mAdapter.getView(0, null, view);
        item_view.measure(
                MeasureSpec.makeMeasureSpec(view.getWidth(), MeasureSpec.EXACTLY),
                MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));
        ViewGroup.LayoutParams params = view.getLayoutParams();
        params.height = item_view.getMeasuredHeight() * (mAdapter.getCount() + 1);
        Slog.e(TAG, "resizeListView height=" + params.height);
        view.setLayoutParams(params);
        view.requestLayout();
    }

    // Fetcher fetches mDSUList in backgroud
    // Fetcher fetches mDSUList in backgroud
    private class Fetcher implements Runnable {
    private class Fetcher implements Runnable {
        private URL mDsuList;
        private URL mDsuList;
@@ -172,6 +187,9 @@ public class DSULoader extends ListActivity {
        public void run() {
        public void run() {
            try {
            try {
                fetch(mDsuList);
                fetch(mDsuList);
                if (mDSUList.size() == 0) {
                    mDSUList.add(0, "No DSU available for this device");
                }
            } catch (IOException e) {
            } catch (IOException e) {
                Slog.e(TAG, e.toString());
                Slog.e(TAG, e.toString());
                mDSUList.add(0, "Network Error");
                mDSUList.add(0, "Network Error");
@@ -179,14 +197,12 @@ public class DSULoader extends ListActivity {
                Slog.e(TAG, e.toString());
                Slog.e(TAG, e.toString());
                mDSUList.add(0, "Metadata Error");
                mDSUList.add(0, "Metadata Error");
            }
            }
            if (mDSUList.size() == 0) {
                mDSUList.add(0, "No DSU available for this device");
            }
            runOnUiThread(
            runOnUiThread(
                    new Runnable() {
                    new Runnable() {
                        public void run() {
                        public void run() {
                            mAdapter.clear();
                            mAdapter.clear();
                            mAdapter.addAll(mDSUList);
                            mAdapter.addAll(mDSUList);
                            resizeListView();
                        }
                        }
                    });
                    });
        }
        }