Added logging to pinpoint source of bug
Sometimes the airplane mode banner will show up even
though airplane mode is not on. Logging has been added
to several areas around this condition in addition to
where the actual view is created. This will be used
to try and get a better handle on what the source of
the bug is.
Test: manual
Bug: 30860132
Change-Id: I7213aa7e187c5a8c0e94a5ce7a3269e6667cd61b
diff --git a/src/com/android/settings/dashboard/DashboardAdapter.java b/src/com/android/settings/dashboard/DashboardAdapter.java
index 3891030..8ff5607 100644
--- a/src/com/android/settings/dashboard/DashboardAdapter.java
+++ b/src/com/android/settings/dashboard/DashboardAdapter.java
@@ -25,6 +25,7 @@
import android.support.v7.widget.RecyclerView;
import android.text.TextUtils;
import android.util.ArrayMap;
+import android.util.Log;
import android.util.TypedValue;
import android.view.ContextThemeWrapper;
import android.view.LayoutInflater;
@@ -153,6 +154,7 @@
public void setConditions(List<Condition> conditions) {
final DashboardData prevData = mDashboardData;
+ Log.d(TAG, "adapter setConditions called");
mDashboardData = new DashboardData.Builder(prevData)
.setConditions(conditions)
.build();
diff --git a/src/com/android/settings/dashboard/DashboardSummary.java b/src/com/android/settings/dashboard/DashboardSummary.java
index 0b3cc32..09c0e62 100644
--- a/src/com/android/settings/dashboard/DashboardSummary.java
+++ b/src/com/android/settings/dashboard/DashboardSummary.java
@@ -177,9 +177,12 @@
public void onWindowFocusChanged(boolean hasWindowFocus) {
long startTime = System.currentTimeMillis();
if (hasWindowFocus) {
+ Log.d(TAG, "Listening for condition changes");
mConditionManager.addListener(this);
+ Log.d(TAG, "conditions refreshed");
mConditionManager.refreshAll();
} else {
+ Log.d(TAG, "Stopped listening for condition changes");
mConditionManager.remListener(this);
}
if (DEBUG_TIMING) {
@@ -220,6 +223,7 @@
mDashboard.setHasFixedSize(true);
mDashboard.addItemDecoration(new DashboardDecorator(getContext()));
mDashboard.setListener(this);
+ Log.d(TAG, "adapter created");
mAdapter = new DashboardAdapter(getContext(), mSuggestionParser, mMetricsFeatureProvider,
bundle, mConditionManager.getConditions());
mDashboard.setAdapter(mAdapter);
diff --git a/src/com/android/settings/dashboard/conditional/AirplaneModeCondition.java b/src/com/android/settings/dashboard/conditional/AirplaneModeCondition.java
index b40baf5..37faeab 100644
--- a/src/com/android/settings/dashboard/conditional/AirplaneModeCondition.java
+++ b/src/com/android/settings/dashboard/conditional/AirplaneModeCondition.java
@@ -20,12 +20,14 @@
import android.content.Intent;
import android.graphics.drawable.Icon;
import android.net.ConnectivityManager;
+import android.util.Log;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.settings.R;
import com.android.settings.Settings;
import com.android.settingslib.WirelessUtils;
public class AirplaneModeCondition extends Condition {
+ public static String TAG = "APM_Condition";
public AirplaneModeCondition(ConditionManager conditionManager) {
super(conditionManager);
@@ -33,6 +35,7 @@
@Override
public void refreshState() {
+ Log.d(TAG, "APM condition refreshed");
setActive(WirelessUtils.isAirplaneModeOn(mManager.getContext()));
}
@@ -47,6 +50,12 @@
}
@Override
+ protected void setActive(boolean active) {
+ super.setActive(active);
+ Log.d(TAG, "setActive was called with " + active);
+ }
+
+ @Override
public CharSequence getTitle() {
return mManager.getContext().getString(R.string.condition_airplane_title);
}
diff --git a/src/com/android/settings/dashboard/conditional/ConditionAdapterUtils.java b/src/com/android/settings/dashboard/conditional/ConditionAdapterUtils.java
index c79cdf3..b58ac39 100644
--- a/src/com/android/settings/dashboard/conditional/ConditionAdapterUtils.java
+++ b/src/com/android/settings/dashboard/conditional/ConditionAdapterUtils.java
@@ -21,6 +21,7 @@
import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.helper.ItemTouchHelper;
+import android.util.Log;
import android.view.View;
import android.view.View.OnLayoutChangeListener;
import android.view.ViewGroup.LayoutParams;
@@ -31,8 +32,10 @@
import com.android.settings.R;
import com.android.settings.dashboard.DashboardAdapter;
import com.android.settings.overlay.FeatureFactory;
+import com.android.settingslib.WirelessUtils;
public class ConditionAdapterUtils {
+ private static final String TAG = "ConditionAdapterUtils";
public static void addDismiss(final RecyclerView recyclerView) {
ItemTouchHelper.SimpleCallback callback = new ItemTouchHelper.SimpleCallback(0,
@@ -65,6 +68,11 @@
public static void bindViews(final Condition condition,
DashboardAdapter.DashboardItemHolder view, boolean isExpanded,
View.OnClickListener onClickListener, View.OnClickListener onExpandListener) {
+ if (condition instanceof AirplaneModeCondition) {
+ Log.d(TAG, "Airplane mode condition has been bound with "
+ + "isActive=" + condition.isActive() + ". Airplane mode is currently " +
+ WirelessUtils.isAirplaneModeOn(condition.mManager.getContext()));
+ }
View card = view.itemView.findViewById(R.id.content);
card.setTag(condition);
card.setOnClickListener(onClickListener);
diff --git a/src/com/android/settings/dashboard/conditional/ConditionManager.java b/src/com/android/settings/dashboard/conditional/ConditionManager.java
index 691821a..030c62d 100644
--- a/src/com/android/settings/dashboard/conditional/ConditionManager.java
+++ b/src/com/android/settings/dashboard/conditional/ConditionManager.java
@@ -59,9 +59,11 @@
mContext = context;
mConditions = new ArrayList<>();
if (loadConditionsNow) {
+ Log.d(TAG, "conditions loading synchronously");
ConditionLoader loader = new ConditionLoader();
loader.onPostExecute(loader.doInBackground());
} else {
+ Log.d(TAG, "conditions loading asychronously");
new ConditionLoader().execute();
}
}
@@ -229,6 +231,7 @@
private class ConditionLoader extends AsyncTask<Void, Void, ArrayList<Condition>> {
@Override
protected ArrayList<Condition> doInBackground(Void... params) {
+ Log.d(TAG, "loading conditions from xml");
ArrayList<Condition> conditions = new ArrayList<>();
mXmlFile = new File(mContext.getFilesDir(), FILE_NAME);
if (mXmlFile.exists()) {
@@ -240,6 +243,7 @@
@Override
protected void onPostExecute(ArrayList<Condition> conditions) {
+ Log.d(TAG, "conditions loaded from xml, refreshing conditions");
mConditions.clear();
mConditions.addAll(conditions);
refreshAll();