made caller privacy pebble setting generic

This commit is contained in:
Andreas Shimokawa 2017-02-07 10:15:23 +01:00
parent b6852308b7
commit e2b3394900
6 changed files with 89 additions and 50 deletions

View File

@ -11,6 +11,8 @@ import android.support.annotation.Nullable;
import java.util.ArrayList;
import java.util.UUID;
import nodomain.freeyourgadget.gadgetbridge.GBApplication;
import nodomain.freeyourgadget.gadgetbridge.R;
import nodomain.freeyourgadget.gadgetbridge.model.Alarm;
import nodomain.freeyourgadget.gadgetbridge.model.CalendarEventSpec;
import nodomain.freeyourgadget.gadgetbridge.model.CallSpec;
@ -85,7 +87,7 @@ public class GBDeviceService implements DeviceService {
connect(device, false);
}
@Override
@Override
public void connect(@Nullable GBDevice device, boolean performPair) {
Intent intent = createIntent().setAction(ACTION_CONNECT)
.putExtra(GBDevice.EXTRA_DEVICE, device)
@ -149,9 +151,22 @@ public class GBDeviceService implements DeviceService {
@Override
public void onSetCallState(CallSpec callSpec) {
Context context = GBApplication.getContext();
String currentPrivacyMode = GBApplication.getPrefs().getString("pref_call_privacy_mode", GBApplication.getContext().getString(R.string.p_call_privacy_mode_off));
if (context.getString(R.string.p_call_privacy_mode_name).equals(currentPrivacyMode)) {
callSpec.name = callSpec.number;
}
else if (context.getString(R.string.p_call_privacy_mode_complete).equals(currentPrivacyMode)) {
callSpec.number = null;
callSpec.name = null;
}
else {
callSpec.name = coalesce(callSpec.name, getContactDisplayNameByNumber(callSpec.number));
}
Intent intent = createIntent().setAction(ACTION_CALLSTATE)
.putExtra(EXTRA_CALL_PHONENUMBER, callSpec.number)
.putExtra(EXTRA_CALL_DISPLAYNAME, coalesce(callSpec.name, getContactDisplayNameByNumber(callSpec.number)))
.putExtra(EXTRA_CALL_DISPLAYNAME, callSpec.name)
.putExtra(EXTRA_CALL_COMMAND, callSpec.command);
invokeService(intent);
}

View File

@ -131,14 +131,6 @@ public class PebbleSupport extends AbstractSerialDeviceSupport {
@Override
public void onSetCallState(CallSpec callSpec) {
String currentPrivacyMode = GBApplication.getPrefs().getString("pebble_pref_privacy_mode", getContext().getString(R.string.p_pebble_privacy_mode_off));
if (getContext().getString(R.string.p_pebble_privacy_mode_complete).equals(currentPrivacyMode)) {
callSpec.name = null;
callSpec.number = null;
} else if (getContext().getString(R.string.p_pebble_privacy_mode_content).equals(currentPrivacyMode)) {
callSpec.name = null;
}
if (reconnect()) {
if ((callSpec.command != CallSpec.CALL_OUTGOING) || GBApplication.getPrefs().getBoolean("pebble_enable_outgoing_call", true)) {
super.onSetCallState(callSpec);

View File

@ -155,4 +155,16 @@
<item>@string/p_timeformat_am_pm</item>
</string-array>
<string-array name="pref_call_privacy_mode">
<item name="off">@string/pref_call_privacy_mode_off</item>
<item name="name">@string/pref_call_privacy_mode_name</item>
<item name="complete">@string/pref_call_privacy_mode_complete</item>
</string-array>
<string-array name="pref_call_privacy_mode_values">
<item>@string/p_call_privacy_mode_off</item>
<item>@string/p_call_privacy_mode_name</item>
<item>@string/p_call_privacy_mode_complete</item>
</string-array>
</resources>

View File

@ -88,6 +88,12 @@
<string name="when_screen_off">when screen is off</string>
<string name="never">never</string>
<string name="pref_header_privacy">Privacy</string>
<string name="pref_title_call_privacy_mode">Call Privacy Mode</string>
<string name="pref_call_privacy_mode_off">Display name and number</string>
<string name="pref_call_privacy_mode_name">Hide name but display number</string>
<string name="pref_call_privacy_mode_complete">Hide name and number</string>
<string name="pref_blacklist">Blacklist Apps</string>
<string name="pref_header_cannned_messages">Canned Messages</string>
@ -120,9 +126,9 @@
<string name="pref_summary_autoremove_notifications">Notifications are automatically removed from the Pebble when dismissed from the Android device</string>
<string name="pref_title_pebble_privacy_mode">Privacy mode</string>
<string name="pref_pebble_privacy_mode_off">Normal notifications and incoming calls display.</string>
<string name="pref_pebble_privacy_mode_content">Shift the notification text off-screen. Hide the caller\'s name on incoming calls.</string>
<string name="pref_pebble_privacy_mode_complete">Show only the notification icon. Hide the caller\'s name and number on incoming calls.</string>
<string name="pref_pebble_privacy_mode_off">Normal notifications</string>
<string name="pref_pebble_privacy_mode_content">Shift the notification text off-screen</string>
<string name="pref_pebble_privacy_mode_complete">Show only the notification icon</string>
<string name="pref_header_location">Location</string>
<string name="pref_title_location_aquire">Acquire Location</string>

View File

@ -22,4 +22,7 @@
<item name="p_pebble_privacy_mode_content" type="string">content</item>
<item name="p_pebble_privacy_mode_complete" type="string">complete</item>
<item name="p_call_privacy_mode_off" type="string">off</item>
<item name="p_call_privacy_mode_name" type="string">name</item>
<item name="p_call_privacy_mode_complete" type="string">complete</item>
</resources>

View File

@ -36,6 +36,44 @@
android:summaryOff="@string/pref_summary_minimize_priority_off"
android:summaryOn="@string/pref_summary_minimize_priority_on"
android:title="@string/pref_title_minimize_priority" />
<PreferenceScreen
android:key="pref_category_activity_personal"
android:title="@string/activity_prefs_about_you">
<EditTextPreference
android:inputType="number"
android:key="activity_user_year_of_birth"
android:maxLength="4"
android:title="@string/activity_prefs_year_birth" />
<ListPreference
android:defaultValue="2"
android:entries="@array/gender"
android:entryValues="@array/gender_values"
android:key="activity_user_gender"
android:title="@string/activity_prefs_gender"
android:summary="%s" />
<!--TODO: support localized heights and weights -->
<EditTextPreference
android:inputType="number"
android:key="activity_user_height_cm"
android:maxLength="3"
android:title="@string/activity_prefs_height_cm" />
<EditTextPreference
android:inputType="number"
android:key="activity_user_weight_kg"
android:maxLength="3"
android:title="@string/activity_prefs_weight_kg" />
<EditTextPreference
android:inputType="number"
android:key="activity_user_sleep_duration"
android:maxLength="2"
android:title="@string/activity_prefs_sleep_duration" />
</PreferenceScreen>
</PreferenceCategory>
<PreferenceCategory
android:key="pref_key_datetime"
@ -109,43 +147,16 @@
android:title="@string/pref_blacklist" />
</PreferenceCategory>
<PreferenceScreen
android:key="pref_category_activity_personal"
android:title="@string/activity_prefs_about_you">
<EditTextPreference
android:inputType="number"
android:key="activity_user_year_of_birth"
android:maxLength="4"
android:title="@string/activity_prefs_year_birth" />
<ListPreference
android:defaultValue="2"
android:entries="@array/gender"
android:entryValues="@array/gender_values"
android:key="activity_user_gender"
android:title="@string/activity_prefs_gender"
android:summary="%s" />
<!--TODO: support localized heights and weights -->
<EditTextPreference
android:inputType="number"
android:key="activity_user_height_cm"
android:maxLength="3"
android:title="@string/activity_prefs_height_cm" />
<EditTextPreference
android:inputType="number"
android:key="activity_user_weight_kg"
android:maxLength="3"
android:title="@string/activity_prefs_weight_kg" />
<EditTextPreference
android:inputType="number"
android:key="activity_user_sleep_duration"
android:maxLength="2"
android:title="@string/activity_prefs_sleep_duration" />
</PreferenceScreen>
<PreferenceCategory
android:title="@string/pref_header_privacy">
<ListPreference
android:key="pref_call_privacy_mode"
android:title="@string/pref_title_call_privacy_mode"
android:entries="@array/pref_call_privacy_mode"
android:entryValues="@array/pref_call_privacy_mode_values"
android:defaultValue="@string/pref_call_privacy_mode_off"
android:summary="%s" />
</PreferenceCategory>
<PreferenceCategory
android:title="@string/preferences_category_device_specific_settings">