Remove Flashlight from search results while the hardware is unavailable

Test: manual
Fix: 222599976
Change-Id: I353b872f9e56f5e00026e95933125c345636bbd2
This commit is contained in:
Jason Chiu
2022-03-04 10:39:30 +08:00
parent ab22c72319
commit 705276771a
2 changed files with 16 additions and 4 deletions

View File

@@ -21,12 +21,13 @@ import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.provider.Settings;
import android.util.Log;
import com.android.settings.R;
import com.android.settings.search.BaseSearchIndexProvider;
import com.android.settingslib.search.Indexable;
import com.android.settingslib.search.SearchIndexableRaw;
import com.android.settingslib.search.SearchIndexable;
import com.android.settingslib.search.SearchIndexableRaw;
import java.util.ArrayList;
import java.util.List;
@@ -39,6 +40,9 @@ public class FlashlightHandleActivity extends Activity implements Indexable {
public static final String EXTRA_FALLBACK_TO_HOMEPAGE = "fallback_to_homepage";
private static final String TAG = "FlashlightActivity";
private static final String DATA_KEY = "flashlight";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@@ -69,10 +73,20 @@ public class FlashlightHandleActivity extends Activity implements Indexable {
data.intentTargetPackage = context.getPackageName();
data.intentTargetClass = FlashlightHandleActivity.class.getName();
data.intentAction = Intent.ACTION_MAIN;
data.key = "flashlight";
data.key = DATA_KEY;
result.add(data);
return result;
}
@Override
public List<String> getNonIndexableKeys(Context context) {
List<String> keys = super.getNonIndexableKeys(context);
if (!FlashlightSlice.isFlashlightAvailable(context)) {
Log.i(TAG, "Flashlight is unavailable");
keys.add(DATA_KEY);
}
return keys;
}
};
}

View File

@@ -39,7 +39,6 @@ import androidx.slice.builders.ListBuilder;
import androidx.slice.builders.ListBuilder.RowBuilder;
import androidx.slice.builders.SliceAction;
import com.android.internal.annotations.VisibleForTesting;
import com.android.settings.R;
import com.android.settings.Utils;
import com.android.settings.slices.CustomSliceRegistry;
@@ -138,7 +137,6 @@ public class FlashlightSlice implements CustomSliceable {
return null;
}
@VisibleForTesting
static boolean isFlashlightAvailable(Context context) {
int defaultAvailability = 0;
try {