Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Port my changes forward to Jelly Bean (CM10.1/Android 4.2) #7

Open
barrykn opened this issue May 27, 2013 · 16 comments
Open

Port my changes forward to Jelly Bean (CM10.1/Android 4.2) #7

barrykn opened this issue May 27, 2013 · 16 comments
Assignees

Comments

@barrykn
Copy link
Owner

barrykn commented May 27, 2013

This is motivated by hardware availability/future-proofing concerns. It's obvious enough (IMO) that I won't be able to obtain Gingerbread-compatible hardware forever.

[X] indicates a modification that I no longer need to patch into the source code before building Jelly Bean. [?] indicates a modification which may or may not need to be applied to Jelly Bean source -- I'll have to figure this out. (More specifically, it means I have a patch, but just because I can do it doesn't necessarily mean I should.)

(CM10.1 has not been officially released as of this writing. For the rest of this issue description, CM10.1 refers to the CM10.1 source code as it currently exists on the cm-10.1 branch.)

Going through the changes one by one:

[X] 2waysup volume button hack: I created a shell script that applies this mod; I can run this script after I flash a phone. I created the script for Gingerbread but I believe it should work with no changes on Jelly Bean.

android_frameworks_base:
[X] Global Actions dialog (over)simplification: This can be done from CM10.0/10.1 settings. The 1500ms power button timeout may also render this unnecessary. So I have nothing to worry about here. (Well, I may possibly have to worry if I go with ICS/CM9 instead of JB, but that's outside the scope of this issue.)

[X] 1500ms long press timeout: ICS and later have an Accessibility setting that does this already.

1500ms power key timeout: I've forward-ported this patch to CM10.1, and it should be trivial to port to anything between CM7.2 and 10.1. It's a straight, literal forward port, so it just hard-codes the timeout like the Gingerbread version of the patch. Perhaps that's not the most elegant way to go, but for now it'll get the job done.

[?] Make Quick Contact Badges play dead: I'm not completely sure how this will affect the Jelly Bean experience, so maybe I shouldn't apply this change. However, I have ported it forward.

android_packages_apps_Contacts:
I had originally checked out the wrong branch of CyanogenMod/android_packages_apps_Contacts, so it's no wonder that all my Gingerbread patches applied cleanly! I'll add another comment to this issue once I figure things out for real.

@ghost ghost assigned barrykn May 27, 2013
@barrykn
Copy link
Owner Author

barrykn commented May 27, 2013

In order for my Jelly Bean ROM to have full feature parity with my Gingerbread ROM, this CM feature request needs to be implemented as well: https://jira.cyanogenmod.org/browse/CYAN-179

Based on past experience, I think my user should be able to tap the Home button then tap Contacts on the launcher (as opposed to getting into Contacts through the Search button), though.

@barrykn
Copy link
Owner Author

barrykn commented May 27, 2013

BTW, right now I'm maintaining my Jelly Bean patches as a set of diffs to be manually applied, rather than as public Git repos. That way, I can maintain the patches against multiple variations of Jelly Bean, if the need arises, without having to publish tons of repos on GitHub. Of course, this will change if I start experimenting with additional changes to Jelly Bean (where SCM will help manage complexity), or if I start distributing binaries publicly (and I therefore must release source to the public).

@barrykn
Copy link
Owner Author

barrykn commented May 27, 2013

android_packages_apps_Contacts:

  1. [?] Eliminate favorites tab: I've reimplemented this. [It didn't work. This looks like it's going to be a bigger job than I had expected.]
  2. [?] Eliminate the ability to mark a contact as a Favorite: Reimplemented a little differently for Jelly Bean. Instead of hiding the star, I've deactivated its OnClickListener so that it should (hopefully) be inert. [There's something going on here that I don't understand yet; it didn't work.]
  3. [?] Remove the SMS button in the contact detail view: I have some idea of how I'll reimplement this, but I think I want to test the rest of what I've done first. (Never mind that, I just implemented it, but in a rather different manner than what I did for Gingerbread.)

@barrykn
Copy link
Owner Author

barrykn commented May 27, 2013

Potential future areas to look at regarding contacts:

  • Clickable photo in contact detail view (or whatever) might be dangerous
  • The menu button in that same view has some dangerous options (Send all calls (from a given contact) to voicemail!?), although I have to admit this looks more functionally useful overall than the clickable photo thing.

@barrykn
Copy link
Owner Author

barrykn commented May 27, 2013

Test results so far:
1500ms power button long press timeout: Working great.
Remove SMS button: Working great.
(I'll definitely want both of these!)

Eliminate favorites tab & eliminate the ability to mark a contact as a favorite: These are not working. At least one of these also caused the phone app to crash 100% of the time.

Make Quick Contact Badges play dead: This is working far better than I imagined it could. I'm still not sure if I should use this in production -- my user might actually be able to use the Jelly Bean Quick Contact Badges -- but at least I have working code in case I need it.

@barrykn
Copy link
Owner Author

barrykn commented May 27, 2013

Memo to self:

Code to look at in Contacts: PeopleActivity.java; detail activity

@barrykn
Copy link
Owner Author

barrykn commented May 27, 2013

A wild idea: See if I can modify Contacts/People so that my user is required to click on the Quick Contact Badge. Then, if she taps the wrong contact('s badge), she can just tap the bottom 1/3rd or so of the screen, instead of having to find and tap/press the Back button.

...

Ok, that's probably a bit too wild. Nonetheless, I'll still put this idea in writing (in the form of this comment) in case I become desperate enough for it at some point.

@barrykn
Copy link
Owner Author

barrykn commented May 27, 2013

So, I actually was able to disable the photo menu thing.

Disabling the Favorites tab in Contacts/People looks like it might take a lot of effort. I'll have to postpone this. Maybe I'll take my chances without this and see if it's really necessary.

I guess I'll still look a little further into disabling marking contacts as favorites. Based on past experience with my user and Gingerbread, I really want to see if I can accomplish this.

@barrykn
Copy link
Owner Author

barrykn commented May 27, 2013

Now I've successfully disabled favoriting. Things are looking up!

@barrykn
Copy link
Owner Author

barrykn commented May 27, 2013

Now I've successfully disabled the send all calls to voicemail menu option. Good.

@barrykn
Copy link
Owner Author

barrykn commented May 28, 2013

I'm getting more good stuff done... and I have enough changes to Contacts that, once I (more or less) finish experimenting, I will in fact be putting my modifications up on GitHub.

@barrykn
Copy link
Owner Author

barrykn commented May 29, 2013

Current status of this issue:

I think I've completed this for CM10.1 RC2. I made my changes and tested them. (I probably should do some more testing, but the changes seem to work perfectly so far.) I also backported the changes to CM10.0, although I haven't compiled or tested that yet. The changes to the Contacts app are in android_packages_apps_Contacts-cm-bkndh1, which is the same repo I used for CM7.2. (See the new branches with "bkn" in their names.)

Outside of the Contacts app package, there's just the one-liner for extending the power button long press timeout. My current plan is to just apply that patch manually before building. At least for now, the overhead of having more forks of other git repos isn't worth it for a one-line change.

@barrykn
Copy link
Owner Author

barrykn commented Jun 2, 2013

I've tested CM10.0 on the Motorola Defy, but I think 10.1 will be needed. Unless I hit an absolute brick wall with using 10.1 on the Defy, I'm stopping all work on 10.0.

I'll also put my non-Contacts changes up on GitHub after things settle down. I'll separate that out into an issue of its own, and then I think I'll be done with this issue and I'll be able to close it.

@barrykn
Copy link
Owner Author

barrykn commented Jun 4, 2013

On second thought, I will merge all my 10.1 changes into 10.0, just to keep my options open. I'll also try 10.0 on my Galaxy Nexus, to see what that feels like and see whether 10.0 is really going to be worse than 10.1 for my user.

These are the remaining commits I need to manually merge into 10.0:

commit f393e5a76f0633d81e34e9c0b93de80dea675ce7
Author: Barry K. Nathan barryn@pobox.com
Date: Sun Jun 2 08:45:21 2013 -0700

CallDetailHeader: Don't offer to add a number to contacts.

This is related to barrykn/android-cm7-bkndh1#9.

commit 5ebed4be8b781ca95978024bd281154eff770f6f
Author: Barry K. Nathan barryn@pobox.com
Date: Sun Jun 2 10:45:23 2013 -0700

Phone: Make search button stay away forever.

Part of barrykn/android-cm7-bkndh1#10.

@barrykn
Copy link
Owner Author

barrykn commented Jun 5, 2013

OK, I've manually merged these two commits into 10.0.

@barrykn
Copy link
Owner Author

barrykn commented Aug 25, 2013

On second thought, I'm not going to create a separate issue for the public release of my (non-Contacts) patches. Once they're public, I'll close this issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant