Signal-android: Signal Displays Incorrect SMS Settings Page

Created on 19 Jun 2016  路  10Comments  路  Source: signalapp/Signal-Android

Open Signal - Settings - SMS and MMS - Click SMS Enabled

Signal Opens the wrong settings page in order to switch to a different SMS app.
The correct settings page for Kitkat is in Settings - Apps - Default Apps
As of Android N the correct Page is in Settings - Apps - Advanced - Configure Apps Page

Nexus 6P
Android N Preview 4 Build NPD56N
Signal Version 3.16.0

Most helpful comment

Summary:
Issue exists on Android 6 & 7. Signal currently points to the place where the setting used to be on Android 5 (and potentially lower).
Said in another way: For each of these 3 Android versions, the correct location for this setting is a different one.

The correct setting pages are on

  • Android 6: 'Settings' >> 'Apps' >> 'Configure apps' (= cogwheel icon) >> 'Default Apps' >> 'SMS app'
  • Android 7: 'Settings' >> 'Apps' >> 'Configure apps' (= cogwheel icon) >> 'SMS app'

All 10 comments

Now the application is trying to direct user to default sms app screen, when he tries to switch off Signal as SMS app. It works for Kitkat and Lollipop users, but in the Marshmallow and N, this option is under Setting/Apps/Configure/Default apps. Third-party application cannot open this screen in Marshmallow due to absence of API, so we need to lead the user the most close to it(application settings).

@hidekido Unfortunately the screen it redirects to is the Wireless & Networks page which is not anywhere close to the correct settings page.

To set Signal as default SMS/MMS app Signal should be using
String defaultSmsApp = Telephony.Sms.getDefaultSmsPackage(context);

And to switch back to the previous set default SMS/MMS app then save the Default from step first code

andIntent intent = new Intent(context, Sms.Intents.ACTION_CHANGE_DEFAULT);
intent.putExtra(Sms.Intents.EXTRA_PACKAGE_NAME, defaultSmsApp);
startActivity(intent);

Information from Google Dev Blog
https://android-developers.blogspot.com/2013/10/getting-your-sms-apps-ready-for-kitkat.html?m=1

This issue is related to #5373.

@Ste4thOverride, I don't think it's a good idea to "switch back to the previous set default app". In the blog post you mentioned time between those switches is measured in minutes (if not seconds). Consider those steps:

  1. User wanted "signal" to be default sms app, previous was "google messaging"
  2. User decided to uninstall google messaging
  3. User decided to disable signal as default sms
    What exactly signal should do there?
    I think the idea to show user standard "setting" dialog, where one can switch default sms app is good. The only problem is that the location of this dialog was changed in Android M. I guess @hidekido is trying to correct this behavior in #5598. It is a little bit inconvenient in Android M (because google did not do their homework), but should works for your Nexus with N-Preview.

@FeuRenard That's a totally different issue regarding a crash and that was already patched.

@ghuron The option I mentioned is only one possible option the team can choose. The Signal app is trying to change SMS apps by attempting to open a system settings page. The correct method would be the proper system intent code to change sms apps.

They are clearly using the proper code for setting Signal as the default SMS app no issue there.
The only issue is when Signal is already the default SMS app I don't know believe they are using the correct code. It should not be linking to settings but display the system dialog box that list the SMS applications.

@Ste4thOverride, signal behavior in 3.16.0 is not correct for Android M, N and probably all future versions. But I don't believe there is a standard way to open list of candidates for default sms app. All public "settings" intents are described here. @hidekido seems to be correct in #5598 using ACTION_WIRELESS_SETTINGS for K and L, ACTION_MANAGE_APPLICATIONS_SETTINGS for M and MANAGE_DEFAULT_APPS_SETTINGS for N and all future versions

@ghuron
The only apps I have tested that I have seen use the list method is Google Messenger, Hangouts, and Facebook Messenger. Most apps I have used don't have an option to change the SMS app within the app. They might have simply written code that list applications that use a certain intent.

The following link has some code examples. http://www.programcreek.com/java-api-examples/index.php?api=android.provider.Telephony

Summary:
Issue exists on Android 6 & 7. Signal currently points to the place where the setting used to be on Android 5 (and potentially lower).
Said in another way: For each of these 3 Android versions, the correct location for this setting is a different one.

The correct setting pages are on

  • Android 6: 'Settings' >> 'Apps' >> 'Configure apps' (= cogwheel icon) >> 'Default Apps' >> 'SMS app'
  • Android 7: 'Settings' >> 'Apps' >> 'Configure apps' (= cogwheel icon) >> 'SMS app'

The same problem on Android 8.

  • Android 8: 'Settings' >> 'Apps & notifications' >> 'Advanced' >> 'Default Apps' >> 'SMS app'

GitHub Issue Cleanup:
See #7598 for more information.

Was this page helpful?
0 / 5 - 0 ratings