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
This commit is contained in:
@@ -25,6 +25,7 @@ import android.support.v7.widget.PopupMenu;
|
|||||||
import android.support.v7.widget.RecyclerView;
|
import android.support.v7.widget.RecyclerView;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
import android.util.ArrayMap;
|
import android.util.ArrayMap;
|
||||||
|
import android.util.Log;
|
||||||
import android.util.TypedValue;
|
import android.util.TypedValue;
|
||||||
import android.view.ContextThemeWrapper;
|
import android.view.ContextThemeWrapper;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
@@ -153,6 +154,7 @@ public class DashboardAdapter extends RecyclerView.Adapter<DashboardAdapter.Dash
|
|||||||
|
|
||||||
public void setConditions(List<Condition> conditions) {
|
public void setConditions(List<Condition> conditions) {
|
||||||
final DashboardData prevData = mDashboardData;
|
final DashboardData prevData = mDashboardData;
|
||||||
|
Log.d(TAG, "adapter setConditions called");
|
||||||
mDashboardData = new DashboardData.Builder(prevData)
|
mDashboardData = new DashboardData.Builder(prevData)
|
||||||
.setConditions(conditions)
|
.setConditions(conditions)
|
||||||
.build();
|
.build();
|
||||||
|
@@ -177,9 +177,12 @@ public class DashboardSummary extends InstrumentedFragment
|
|||||||
public void onWindowFocusChanged(boolean hasWindowFocus) {
|
public void onWindowFocusChanged(boolean hasWindowFocus) {
|
||||||
long startTime = System.currentTimeMillis();
|
long startTime = System.currentTimeMillis();
|
||||||
if (hasWindowFocus) {
|
if (hasWindowFocus) {
|
||||||
|
Log.d(TAG, "Listening for condition changes");
|
||||||
mConditionManager.addListener(this);
|
mConditionManager.addListener(this);
|
||||||
|
Log.d(TAG, "conditions refreshed");
|
||||||
mConditionManager.refreshAll();
|
mConditionManager.refreshAll();
|
||||||
} else {
|
} else {
|
||||||
|
Log.d(TAG, "Stopped listening for condition changes");
|
||||||
mConditionManager.remListener(this);
|
mConditionManager.remListener(this);
|
||||||
}
|
}
|
||||||
if (DEBUG_TIMING) {
|
if (DEBUG_TIMING) {
|
||||||
@@ -220,6 +223,7 @@ public class DashboardSummary extends InstrumentedFragment
|
|||||||
mDashboard.setHasFixedSize(true);
|
mDashboard.setHasFixedSize(true);
|
||||||
mDashboard.addItemDecoration(new DashboardDecorator(getContext()));
|
mDashboard.addItemDecoration(new DashboardDecorator(getContext()));
|
||||||
mDashboard.setListener(this);
|
mDashboard.setListener(this);
|
||||||
|
Log.d(TAG, "adapter created");
|
||||||
mAdapter = new DashboardAdapter(getContext(), mSuggestionParser, mMetricsFeatureProvider,
|
mAdapter = new DashboardAdapter(getContext(), mSuggestionParser, mMetricsFeatureProvider,
|
||||||
bundle, mConditionManager.getConditions());
|
bundle, mConditionManager.getConditions());
|
||||||
mDashboard.setAdapter(mAdapter);
|
mDashboard.setAdapter(mAdapter);
|
||||||
|
@@ -20,12 +20,14 @@ import android.content.Context;
|
|||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.graphics.drawable.Icon;
|
import android.graphics.drawable.Icon;
|
||||||
import android.net.ConnectivityManager;
|
import android.net.ConnectivityManager;
|
||||||
|
import android.util.Log;
|
||||||
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
|
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
import com.android.settings.Settings;
|
import com.android.settings.Settings;
|
||||||
import com.android.settingslib.WirelessUtils;
|
import com.android.settingslib.WirelessUtils;
|
||||||
|
|
||||||
public class AirplaneModeCondition extends Condition {
|
public class AirplaneModeCondition extends Condition {
|
||||||
|
public static String TAG = "APM_Condition";
|
||||||
|
|
||||||
public AirplaneModeCondition(ConditionManager conditionManager) {
|
public AirplaneModeCondition(ConditionManager conditionManager) {
|
||||||
super(conditionManager);
|
super(conditionManager);
|
||||||
@@ -33,6 +35,7 @@ public class AirplaneModeCondition extends Condition {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void refreshState() {
|
public void refreshState() {
|
||||||
|
Log.d(TAG, "APM condition refreshed");
|
||||||
setActive(WirelessUtils.isAirplaneModeOn(mManager.getContext()));
|
setActive(WirelessUtils.isAirplaneModeOn(mManager.getContext()));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -46,6 +49,12 @@ public class AirplaneModeCondition extends Condition {
|
|||||||
return Icon.createWithResource(mManager.getContext(), R.drawable.ic_airplane);
|
return Icon.createWithResource(mManager.getContext(), R.drawable.ic_airplane);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void setActive(boolean active) {
|
||||||
|
super.setActive(active);
|
||||||
|
Log.d(TAG, "setActive was called with " + active);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public CharSequence getTitle() {
|
public CharSequence getTitle() {
|
||||||
return mManager.getContext().getString(R.string.condition_airplane_title);
|
return mManager.getContext().getString(R.string.condition_airplane_title);
|
||||||
|
@@ -21,6 +21,7 @@ import android.animation.ObjectAnimator;
|
|||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.support.v7.widget.RecyclerView;
|
import android.support.v7.widget.RecyclerView;
|
||||||
import android.support.v7.widget.helper.ItemTouchHelper;
|
import android.support.v7.widget.helper.ItemTouchHelper;
|
||||||
|
import android.util.Log;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.View.OnLayoutChangeListener;
|
import android.view.View.OnLayoutChangeListener;
|
||||||
import android.view.ViewGroup.LayoutParams;
|
import android.view.ViewGroup.LayoutParams;
|
||||||
@@ -31,8 +32,10 @@ import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
|
|||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
import com.android.settings.dashboard.DashboardAdapter;
|
import com.android.settings.dashboard.DashboardAdapter;
|
||||||
import com.android.settings.overlay.FeatureFactory;
|
import com.android.settings.overlay.FeatureFactory;
|
||||||
|
import com.android.settingslib.WirelessUtils;
|
||||||
|
|
||||||
public class ConditionAdapterUtils {
|
public class ConditionAdapterUtils {
|
||||||
|
private static final String TAG = "ConditionAdapterUtils";
|
||||||
|
|
||||||
public static void addDismiss(final RecyclerView recyclerView) {
|
public static void addDismiss(final RecyclerView recyclerView) {
|
||||||
ItemTouchHelper.SimpleCallback callback = new ItemTouchHelper.SimpleCallback(0,
|
ItemTouchHelper.SimpleCallback callback = new ItemTouchHelper.SimpleCallback(0,
|
||||||
@@ -65,6 +68,11 @@ public class ConditionAdapterUtils {
|
|||||||
public static void bindViews(final Condition condition,
|
public static void bindViews(final Condition condition,
|
||||||
DashboardAdapter.DashboardItemHolder view, boolean isExpanded,
|
DashboardAdapter.DashboardItemHolder view, boolean isExpanded,
|
||||||
View.OnClickListener onClickListener, View.OnClickListener onExpandListener) {
|
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);
|
View card = view.itemView.findViewById(R.id.content);
|
||||||
card.setTag(condition);
|
card.setTag(condition);
|
||||||
card.setOnClickListener(onClickListener);
|
card.setOnClickListener(onClickListener);
|
||||||
|
@@ -59,9 +59,11 @@ public class ConditionManager {
|
|||||||
mContext = context;
|
mContext = context;
|
||||||
mConditions = new ArrayList<>();
|
mConditions = new ArrayList<>();
|
||||||
if (loadConditionsNow) {
|
if (loadConditionsNow) {
|
||||||
|
Log.d(TAG, "conditions loading synchronously");
|
||||||
ConditionLoader loader = new ConditionLoader();
|
ConditionLoader loader = new ConditionLoader();
|
||||||
loader.onPostExecute(loader.doInBackground());
|
loader.onPostExecute(loader.doInBackground());
|
||||||
} else {
|
} else {
|
||||||
|
Log.d(TAG, "conditions loading asychronously");
|
||||||
new ConditionLoader().execute();
|
new ConditionLoader().execute();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -229,6 +231,7 @@ public class ConditionManager {
|
|||||||
private class ConditionLoader extends AsyncTask<Void, Void, ArrayList<Condition>> {
|
private class ConditionLoader extends AsyncTask<Void, Void, ArrayList<Condition>> {
|
||||||
@Override
|
@Override
|
||||||
protected ArrayList<Condition> doInBackground(Void... params) {
|
protected ArrayList<Condition> doInBackground(Void... params) {
|
||||||
|
Log.d(TAG, "loading conditions from xml");
|
||||||
ArrayList<Condition> conditions = new ArrayList<>();
|
ArrayList<Condition> conditions = new ArrayList<>();
|
||||||
mXmlFile = new File(mContext.getFilesDir(), FILE_NAME);
|
mXmlFile = new File(mContext.getFilesDir(), FILE_NAME);
|
||||||
if (mXmlFile.exists()) {
|
if (mXmlFile.exists()) {
|
||||||
@@ -240,6 +243,7 @@ public class ConditionManager {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onPostExecute(ArrayList<Condition> conditions) {
|
protected void onPostExecute(ArrayList<Condition> conditions) {
|
||||||
|
Log.d(TAG, "conditions loaded from xml, refreshing conditions");
|
||||||
mConditions.clear();
|
mConditions.clear();
|
||||||
mConditions.addAll(conditions);
|
mConditions.addAll(conditions);
|
||||||
refreshAll();
|
refreshAll();
|
||||||
|
Reference in New Issue
Block a user