Add a flashlight handler activity to support indexability.

Fixes: 128465925
Fixes: 123711093
Test: reindex
Change-Id: Ie082e65ee070f6143c4c65db3f70615b16af0e52
This commit is contained in:
Fan Zhang
2019-04-02 16:41:01 -07:00
parent 15e0d60f11
commit 03dd39c92a
4 changed files with 91 additions and 2 deletions

View File

@@ -1032,7 +1032,8 @@
<activity
android:name=".slices.SliceDeepLinkSpringBoard"
android:excludeFromRecents="true"
android:theme="@android:style/Theme.NoDisplay">
android:theme="@android:style/Theme.NoDisplay"
android:permission="android.permission.MODIFY_PHONE_STATE">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
@@ -2672,6 +2673,13 @@
</intent-filter>
</activity>
<activity
android:name=".flashlight.FlashlightHandleActivity"
android:theme="@android:style/Theme.NoDisplay"
android:excludeFromRecents="true"
android:exported="true"
android:label="@string/power_flashlight"/>
<activity
android:name="Settings$WifiCallingSettingsActivity"
android:label="@string/wifi_calling_settings_title">

View File

@@ -7156,6 +7156,9 @@
<string name="keywords_time_zone">timezone</string>
<!-- Search keyword for "Display over other apps" settings [CHAR_LIMIT=NONE]-->
<string name="keywords_draw_overlay">Chat head</string>
<!-- Search keyword for "Flashlight" settings [CHAR_LIMIT=NONE]-->
<string name="keywords_flashlight">Flashlight, Light, Torch</string>
<string name="keywords_change_wifi_state">wifi, wi-fi, toggle, control</string>
<string name="keywords_more_default_sms_app">text message, texting, messages, messaging, default</string>
<string name="keywords_more_mobile_networks">cellular, mobile, cell carrier, wireless, data, 4g,3g, 2g, lte</string>

View File

@@ -112,7 +112,7 @@ public class UserBackupSettingsActivity extends FragmentActivity implements Inde
data.screenTitle = context.getString(R.string.settings_label);
data.keywords = context.getString(R.string.keywords_backup);
data.intentTargetPackage = context.getPackageName();
data.intentTargetClass = com.android.settings.backup.UserBackupSettingsActivity.class.getName();
data.intentTargetClass = UserBackupSettingsActivity.class.getName();
data.intentAction = Intent.ACTION_MAIN;
data.key = BACKUP_SEARCH_INDEX_KEY;
result.add(data);

View File

@@ -0,0 +1,78 @@
/*
* Copyright (C) 2019 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.android.settings.flashlight;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.provider.Settings;
import com.android.settings.R;
import com.android.settings.search.BaseSearchIndexProvider;
import com.android.settings.search.Indexable;
import com.android.settings.search.SearchIndexableRaw;
import com.android.settingslib.search.SearchIndexable;
import java.util.ArrayList;
import java.util.List;
/**
* Headless activity that toggles flashlight state when launched.
*/
@SearchIndexable(forTarget = SearchIndexable.MOBILE)
public class FlashlightHandleActivity extends Activity implements Indexable {
public static final String EXTRA_FALLBACK_TO_HOMEPAGE = "fallback_to_homepage";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Do nothing meaningful in this activity.
// The sole purpose of this activity is to provide a place to index flashlight
// into Settings search.
// Caller's choice: fallback to homepage, or just exit?
if (getIntent().getBooleanExtra(EXTRA_FALLBACK_TO_HOMEPAGE, false)) {
startActivity(new Intent(Settings.ACTION_SETTINGS));
}
finish();
}
public static final Indexable.SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
new BaseSearchIndexProvider() {
@Override
public List<SearchIndexableRaw> getRawDataToIndex(Context context,
boolean enabled) {
final List<SearchIndexableRaw> result = new ArrayList<>();
SearchIndexableRaw data = new SearchIndexableRaw(context);
data.title = context.getString(R.string.power_flashlight);
data.screenTitle = context.getString(R.string.power_flashlight);
data.keywords = context.getString(R.string.keywords_flashlight);
data.intentTargetPackage = context.getPackageName();
data.intentTargetClass = FlashlightHandleActivity.class.getName();
data.intentAction = Intent.ACTION_MAIN;
data.key = "flashlight";
result.add(data);
return result;
}
};
}