diff options
author | Raj Yengisetty <raj@cyngn.com> | 2016-05-16 20:50:38 -0700 |
---|---|---|
committer | Rajesh Yengisetty <rajesh@cyngn.com> | 2016-05-17 11:54:53 -0700 |
commit | 561cc16bbf86ff9fdebd0dbc2487722c6ae95991 (patch) | |
tree | 3ed376331e8fbb95c2eb16bdbdc41c53c496423f /src | |
parent | fa919fea7cccb5c9b54ff6905e8c8f15d9c472ce (diff) | |
download | android_packages_apps_Dialer-561cc16bbf86ff9fdebd0dbc2487722c6ae95991.tar.gz android_packages_apps_Dialer-561cc16bbf86ff9fdebd0dbc2487722c6ae95991.tar.bz2 android_packages_apps_Dialer-561cc16bbf86ff9fdebd0dbc2487722c6ae95991.zip |
Dialer Settings: fix InCall Plugin settings
Ticket: FEIJ-536
Change-Id: I6229aba64191c23c1b57165022d14bb384977c91
Diffstat (limited to 'src')
-rw-r--r-- | src/com/android/dialer/settings/DialerSettingsActivity.java | 54 |
1 files changed, 34 insertions, 20 deletions
diff --git a/src/com/android/dialer/settings/DialerSettingsActivity.java b/src/com/android/dialer/settings/DialerSettingsActivity.java index 9422ce028..0dfcd195f 100644 --- a/src/com/android/dialer/settings/DialerSettingsActivity.java +++ b/src/com/android/dialer/settings/DialerSettingsActivity.java @@ -287,6 +287,7 @@ public class DialerSettingsActivity extends PreferenceActivity { if (cmi.mStatus == PluginStatus.ENABLED && cmi.mSettingsIntent != null) { header = new Header(); + header.id = R.id.incall_settings_preference_id; header.title = getResources().getString(R.string.incall_plugin_settings, cmi .mName); b = new Bundle(); @@ -377,6 +378,7 @@ public class DialerSettingsActivity extends PreferenceActivity { static final int HEADER_TYPE_NORMAL = 0; static final int HEADER_TYPE_SWITCH = 1; + static final int HEADER_TYPE_CUSTOM = 2; class HeaderViewHolder { TextView title; @@ -468,6 +470,9 @@ public class DialerSettingsActivity extends PreferenceActivity { } else if (header.id == R.id.callerinfo_provider || header.titleRes == R.string .silence_spam_title || header.titleRes == R.string.block_hidden_title) { return HEADER_TYPE_SWITCH; + } else if (header.id == R.id.incall_settings_preference_id || header.id == R.id + .note_preference_id) { + return HEADER_TYPE_CUSTOM; } else { return HEADER_TYPE_NORMAL; } @@ -475,7 +480,7 @@ public class DialerSettingsActivity extends PreferenceActivity { @Override public int getViewTypeCount() { - return 2; + return 3; } @Override @@ -500,6 +505,18 @@ public class DialerSettingsActivity extends PreferenceActivity { // Activate the provider CallerInfoProviderPicker.onSettingEnabled(getContext()); } + } else if (id == R.id.incall_settings_preference_id) { + if (header.extras != null && header.extras.containsKey(INCALL_SETTINGS_INTENT)) { + PendingIntent settingsIntent = (PendingIntent) header.extras.get + (INCALL_SETTINGS_INTENT); + try { + settingsIntent.send(); + } catch (PendingIntent.CanceledException e) { + // if the pending intent was cancelled, nothing to do + Log.e(TAG, "Unable to fire intent for plugin settings, " + + "because PendingIntent was canceled", e); + } + } } else if (header.titleRes == R.string.silence_spam_title) { if (status == com.cyanogen.ambient.callerinfo.util.PluginStatus.ACTIVE) { CallerInfoHelper.setSilenceSpamCalls(getContext(), @@ -554,7 +571,7 @@ public class DialerSettingsActivity extends PreferenceActivity { updateSwitchHeaders(holder); break; - default: + case HEADER_TYPE_CUSTOM: if (convertView == null) { view = mInflater.inflate(R.layout.dialer_preferences, parent, false); holder = new HeaderViewHolder(); @@ -566,25 +583,22 @@ public class DialerSettingsActivity extends PreferenceActivity { holder = (HeaderViewHolder) view.getTag(); } - if (header.extras != null && header.extras.containsKey(INCALL_SETTINGS_INTENT)) { - final PendingIntent settingsIntent = - (PendingIntent) header.extras.get(INCALL_SETTINGS_INTENT); - view.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - try { - settingsIntent.send(); - } catch (PendingIntent.CanceledException e) { - // if the pending intent was cancelled, nothing to do - Log.e(TAG, "Unable to fire intent for plugin settings, " - + "because PendingIntent was canceled", e); - } - } - }); - } else if (header.id == R.id.note_preference_id){ - holder.header = header; - view.setOnClickListener(this); + holder.header = header; + view.setOnClickListener(this); + break; + + default: + if (convertView == null) { + view = mInflater.inflate(R.layout.dialer_preferences, parent, false); + holder = new HeaderViewHolder(); + holder.title = (TextView) view.findViewById(R.id.title); + holder.summary = (TextView) view.findViewById(R.id.summary); + view.setTag(holder); + } else { + view = convertView; + holder = (HeaderViewHolder) view.getTag(); } + break; } |