DeviceInfo: Wrap prefereces in PreferenceController

Bug: 34774945
Test: make RunSettingsRoboTests
Change-Id: I8bf56b436064684f4d2010e6899548249af69fc3
This commit is contained in:
Fan Zhang
2017-02-23 16:05:30 -08:00
parent 7e0df1e48c
commit 69e95c6e75
7 changed files with 193 additions and 78 deletions

View File

@@ -0,0 +1,43 @@
package com.android.settings.deviceinfo;
import android.app.Fragment;
import android.content.Context;
import android.content.Intent;
import android.support.v7.preference.Preference;
import android.text.TextUtils;
import com.android.settings.core.PreferenceController;
import com.android.settingslib.DeviceInfoUtils;
public class FeedbackPreferenceController extends PreferenceController {
private static final String KEY_DEVICE_FEEDBACK = "device_feedback";
private final Fragment mHost;
public FeedbackPreferenceController(Fragment host, Context context) {
super(context);
this.mHost = host;
}
public boolean isAvailable() {
return !TextUtils.isEmpty(DeviceInfoUtils.getFeedbackReporterPackage(this.mContext));
}
public String getPreferenceKey() {
return KEY_DEVICE_FEEDBACK;
}
public boolean handlePreferenceTreeClick(Preference preference) {
if (!TextUtils.equals(preference.getKey(), KEY_DEVICE_FEEDBACK)) {
return false;
}
if (!this.isAvailable()) {
return false;
}
String reporterPackage = DeviceInfoUtils.getFeedbackReporterPackage(this.mContext);
Intent intent = new Intent("android.intent.action.BUG_REPORT");
intent.setPackage(reporterPackage);
this.mHost.startActivityForResult(intent, 0);
return true;
}
}