Implement floating dream preview button.
Bug: 217556080 Test: locally on device Change-Id: If76dce6a250fc5fc37d26fc3d7a31775333055d7
This commit is contained in:
@@ -19,8 +19,6 @@ package com.android.settings.dream;
|
||||
import android.app.settings.SettingsEnums;
|
||||
import android.content.Context;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.view.View;
|
||||
import android.widget.Button;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.preference.Preference;
|
||||
@@ -46,7 +44,6 @@ public class DreamPickerController extends BasePreferenceController {
|
||||
private final DreamBackend mBackend;
|
||||
private final MetricsFeatureProvider mMetricsFeatureProvider;
|
||||
private final List<DreamInfo> mDreamInfos;
|
||||
private Button mPreviewButton;
|
||||
@Nullable
|
||||
private DreamInfo mActiveDream;
|
||||
private DreamAdapter mAdapter;
|
||||
@@ -86,17 +83,6 @@ public class DreamPickerController extends BasePreferenceController {
|
||||
recyclerView.setLayoutManager(new AutoFitGridLayoutManager(mContext));
|
||||
recyclerView.setHasFixedSize(true);
|
||||
recyclerView.setAdapter(mAdapter);
|
||||
|
||||
mPreviewButton = ((LayoutPreference) preference).findViewById(R.id.preview_button);
|
||||
mPreviewButton.setVisibility(View.VISIBLE);
|
||||
mPreviewButton.setOnClickListener(v -> mBackend.preview(mActiveDream));
|
||||
updatePreviewButtonState();
|
||||
}
|
||||
|
||||
private void updatePreviewButtonState() {
|
||||
final boolean hasDream = mActiveDream != null;
|
||||
mPreviewButton.setClickable(hasDream);
|
||||
mPreviewButton.setEnabled(hasDream);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@@ -129,7 +115,6 @@ public class DreamPickerController extends BasePreferenceController {
|
||||
public void onItemClicked() {
|
||||
mActiveDream = mDreamInfo;
|
||||
mBackend.setActiveDream(mDreamInfo.componentName);
|
||||
updatePreviewButtonState();
|
||||
mMetricsFeatureProvider.action(
|
||||
mContext,
|
||||
SettingsEnums.ACTION_DREAM_SELECT_TYPE,
|
||||
|
@@ -23,8 +23,13 @@ import static com.android.settingslib.dream.DreamBackend.WHILE_DOCKED;
|
||||
|
||||
import android.app.settings.SettingsEnums;
|
||||
import android.content.Context;
|
||||
import android.os.Bundle;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.Button;
|
||||
|
||||
import androidx.annotation.VisibleForTesting;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.dashboard.DashboardFragment;
|
||||
@@ -144,6 +149,25 @@ public class DreamSettings extends DashboardFragment {
|
||||
return controllers;
|
||||
}
|
||||
|
||||
@Override
|
||||
public RecyclerView onCreateRecyclerView(LayoutInflater inflater, ViewGroup parent,
|
||||
Bundle bundle) {
|
||||
|
||||
final ViewGroup root = getActivity().findViewById(android.R.id.content);
|
||||
final Button previewButton = (Button) getActivity().getLayoutInflater().inflate(
|
||||
R.layout.dream_preview_button, root, false);
|
||||
root.addView(previewButton);
|
||||
|
||||
final DreamBackend dreamBackend = DreamBackend.getInstance(getContext());
|
||||
previewButton.setOnClickListener(v -> dreamBackend.preview(dreamBackend.getActiveDream()));
|
||||
|
||||
final RecyclerView recyclerView = super.onCreateRecyclerView(inflater, parent, bundle);
|
||||
previewButton.post(() -> {
|
||||
recyclerView.setPadding(0, 0, 0, previewButton.getMeasuredHeight());
|
||||
});
|
||||
return recyclerView;
|
||||
}
|
||||
|
||||
public static final BaseSearchIndexProvider SEARCH_INDEX_DATA_PROVIDER
|
||||
= new BaseSearchIndexProvider(R.xml.dream_fragment_overview) {
|
||||
|
||||
|
Reference in New Issue
Block a user