Add a RecyclerView adapter for first tab in settings.
Bug: 27907841 The new adapter eventually will contain: conditionals, status, suggestions. Change-Id: I62f9db3db6557b16255ad94e2ce166b3c376e1bb
This commit is contained in:
@@ -17,25 +17,93 @@
|
||||
package com.android.settings.dashboard;
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.support.v7.widget.GridLayoutManager;
|
||||
import android.util.Log;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
|
||||
import com.android.internal.logging.MetricsLogger;
|
||||
import com.android.settings.InstrumentedFragment;
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.dashboard.conditional.Condition;
|
||||
import com.android.settings.dashboard.conditional.ConditionAdapterUtils;
|
||||
import com.android.settings.dashboard.conditional.ConditionManager;
|
||||
import com.android.settings.dashboard.conditional.FocusRecyclerView;
|
||||
|
||||
/**
|
||||
* Dashboard fragment for showing status and suggestions.
|
||||
*/
|
||||
public final class DashboardStatusFragment extends InstrumentedFragment {
|
||||
public final class DashboardStatusFragment extends InstrumentedFragment
|
||||
implements ConditionManager.ConditionListener, FocusRecyclerView.FocusListener {
|
||||
|
||||
private static final String TAG = "DashboardStatus";
|
||||
private static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG);
|
||||
|
||||
private ConditionManager mConditionManager;
|
||||
private DashboardStatusAdapter mAdapter;
|
||||
private FocusRecyclerView mRecyclerView;
|
||||
private GridLayoutManager mLayoutManager;
|
||||
|
||||
@Override
|
||||
protected int getMetricsCategory() {
|
||||
return DASHBOARD_STATUS;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
mConditionManager = ConditionManager.get(getContext());
|
||||
}
|
||||
|
||||
@Override
|
||||
public View onCreateView(LayoutInflater inflater, ViewGroup parent, Bundle savedInstanceState) {
|
||||
return inflater.inflate(R.layout.dashboard_status, parent, false);
|
||||
final View content = inflater.inflate(R.layout.dashboard_status, parent, false);
|
||||
mRecyclerView =
|
||||
(FocusRecyclerView) content.findViewById(R.id.dashboard_status_recycler_view);
|
||||
mAdapter = new DashboardStatusAdapter(getContext());
|
||||
mAdapter.setConditions(mConditionManager.getConditions());
|
||||
mLayoutManager = new GridLayoutManager(
|
||||
getContext(), DashboardStatusAdapter.GRID_COLUMN_COUNT);
|
||||
mLayoutManager.setOrientation(GridLayoutManager.VERTICAL);
|
||||
mLayoutManager.setSpanSizeLookup(mAdapter.getSpanSizeLookup());
|
||||
mRecyclerView.setLayoutManager(mLayoutManager);
|
||||
mRecyclerView.setHasFixedSize(true);
|
||||
mRecyclerView.setListener(this);
|
||||
mRecyclerView.setAdapter(mAdapter);
|
||||
ConditionAdapterUtils.addDismiss(mRecyclerView);
|
||||
return content;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onResume() {
|
||||
super.onResume();
|
||||
for (Condition c : mConditionManager.getVisibleConditions()) {
|
||||
MetricsLogger.visible(getContext(), c.getMetricsConstant());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPause() {
|
||||
super.onPause();
|
||||
for (Condition c : mConditionManager.getVisibleConditions()) {
|
||||
MetricsLogger.hidden(getContext(), c.getMetricsConstant());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onWindowFocusChanged(boolean hasWindowFocus) {
|
||||
if (hasWindowFocus) {
|
||||
mConditionManager.addListener(this);
|
||||
mConditionManager.refreshAll();
|
||||
} else {
|
||||
mConditionManager.remListener(this);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onConditionsChanged() {
|
||||
if (DEBUG) Log.d(TAG, "onConditionsChanged");
|
||||
mAdapter.setConditions(mConditionManager.getConditions());
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user