[Nexus 5X General] Alcolawl:
Hello, fellow Fi users!

It has finally gotten on my nerves enough to create a thread, hoping to find some answers or perhaps work together to come to a solution for Project Fi's dreadfully slow carrier switching logic. I'm not sure about others, but in my town and the surrounding areas, T-Mobile has excellent service. My town is the only town in the county that does not have Sprint LTE, but I do get some 3G in certain areas. The problem is that when I lose connection with T-Mobile for a certain amount of time, the phone will switch over to Sprint to use its 3G network. This is great because this is how the phone and SIM card are supposed to function. However, the 3G service in this area is slow, spotty, and unreliable so typically as soon as I connect (usually while driving or on the move) I lose service again.

The real problem occurs when the phone is extremely reluctant to switch back to T-Mobile. Almost every day I make a 25 minute commute to work that takes me along a route where T-Mobile service drops off for a minute or two. During this gap in coverage, the phone switches to Sprint. I experience one brief moment of Sprint coverage, and then lose that as well (mountainous area). At this point, the phone should search for Sprint service for a few more seconds and then attempt to switch back to T-Mobile. Instead, it stays on Sprint and will continue to do so for the rest of my commute. I have Sprint LTE coverage at my job, but it's the return trip back home that results in my phone sometimes having no service elongated periods of time. Many times I'll look down at my phone while out to dinner after work or something and notice I have no service and haven't for some time. It's simply stuck on Sprint mode instead of switching.

This has forced me to pay for and download FiSwitch on the Play Store. I'm not too upset about this, but I feel like it'd be a bit of fun to maybe try to modify the logic in Fi's networking switching. Now, I don't know if it's possible to actually modify the logic, or where the actual logic resides. But perhaps writing a script or something in Tasker or Trigger could suffice.

The Correct Way to Handle Network Switching?

There are many different areas of coverage and every situation is unique. But I feel like there is some piece of code in there that prevents the phone from constantly switching between Tmo and Sprint. I also understand that this is extremely new, unique and is a work in progress, as Fi hasn't even been out for a year. But if others also experience this issue, perhaps we can find a way to mitigate the problem of the phone getting stuck on one carrier and not switching to another.

Luckily, I have a lot of free time at my job, so I drew up a quick flowchart to show how I'd like to handle carrier switching.

For you savvy coders out there, this would just be a series of conditional statements, which are extremely easy to write, implement and test. Assuming I can't actually modify the logic written somewhere into the phone or the Project Fi app, I'm going to have to make a script or something perhaps in tasker. I can use dialer codes to force the phone to switch to a different carrier, just like FiSwitch does. I feel like it'd be pretty easy to implement, but I'm not sure if it's even possible.

Has anyone else experienced frustration with Fi's carrier switching? I want to know if this is just an isolated case because of topography of my area (Suburban valley, slightly mountainous) or if this is an issue experienced by users elsewhere as well.