X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=src%2Fcom%2Fandroid%2Fsettings%2FProgressCategory.java;h=c1b25d83b2e0e424926988c3d76c2fae6574ca06;hb=648f4f66887e3bb0a289ff92f19c0c86e898c9a9;hp=c5b68b6ddeb1266f2113fd4850a36674e8626b0f;hpb=5ea56365c5d3f731194e7eb88726968dfa53a4f0;p=android-x86%2Fpackages-apps-Settings.git diff --git a/src/com/android/settings/ProgressCategory.java b/src/com/android/settings/ProgressCategory.java index c5b68b6dde..c1b25d83b2 100644 --- a/src/com/android/settings/ProgressCategory.java +++ b/src/com/android/settings/ProgressCategory.java @@ -17,35 +17,51 @@ package com.android.settings; import android.content.Context; +import android.preference.Preference; import android.util.AttributeSet; import android.view.View; +import android.widget.TextView; public class ProgressCategory extends ProgressCategoryBase { private boolean mProgress = false; - private View oldView = null; + private Preference mNoDeviceFoundPreference; + private boolean mNoDeviceFoundAdded; public ProgressCategory(Context context, AttributeSet attrs) { super(context, attrs); setLayoutResource(R.layout.preference_progress_category); } - + @Override public void onBindView(View view) { super.onBindView(view); - final View textView = view.findViewById(R.id.scanning_text); + final TextView scanning = (TextView) view.findViewById(R.id.scanning_text); final View progressBar = view.findViewById(R.id.scanning_progress); - final int visibility = mProgress ? View.VISIBLE : View.INVISIBLE; - textView.setVisibility(visibility); - progressBar.setVisibility(visibility); + scanning.setText(mProgress ? R.string.progress_scanning : R.string.progress_tap_to_pair); + boolean noDeviceFound = (getPreferenceCount() == 0 || + (getPreferenceCount() == 1 && getPreference(0) == mNoDeviceFoundPreference)); + scanning.setVisibility(noDeviceFound ? View.GONE : View.VISIBLE); + progressBar.setVisibility(mProgress ? View.VISIBLE : View.GONE); - if (oldView != null) { - oldView.findViewById(R.id.scanning_progress).setVisibility(View.GONE); - oldView.findViewById(R.id.scanning_text).setVisibility(View.GONE); - oldView.setVisibility(View.GONE); + if (mProgress || !noDeviceFound) { + if (mNoDeviceFoundAdded) { + removePreference(mNoDeviceFoundPreference); + mNoDeviceFoundAdded = false; + } + } else { + if (!mNoDeviceFoundAdded) { + if (mNoDeviceFoundPreference == null) { + mNoDeviceFoundPreference = new Preference(getContext()); + mNoDeviceFoundPreference.setLayoutResource(R.layout.preference_empty_list); + mNoDeviceFoundPreference.setTitle(R.string.bluetooth_no_devices_found); + mNoDeviceFoundPreference.setSelectable(false); + } + addPreference(mNoDeviceFoundPreference); + mNoDeviceFoundAdded = true; + } } - oldView = view; } @Override @@ -54,4 +70,3 @@ public class ProgressCategory extends ProgressCategoryBase { notifyChanged(); } } -