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
notifyChanged();
}
}
-