Can I send commits to Android with new langue locale and keyboard layouts? - android-source

Can I send a commit once I have figured out how to add a language (Kurdish) which is still not in Android source code upto API 28?
Bonus: where would you start from? Link to few files/folders that need changing in AOSP such as here:
https://github.com/aosp-mirror
Feel free to mark it as a duplicate question but I could not find one.
Thank you.

Submitting Patches
Yes, you can create patches and send them to Androids review server for approval. Android even has a tutorial on how to do that: https://source.android.com/setup/contribute/submit-patches.
Note that the official git server for Android is https://android.googlesource.com
Adding Locales
Ideally, you wouldn't have to contribute to the official AOSP repositories just to add a custom locale. But it looks like custom vendor locales are not (yet) supported. You will likely (I have zero experience with adding locales) have to update at least external/icu/icu4c/source/data/lang and build/make/target/product/languages_full.mk.
Did you notice that there might already be a kurdish locale in icu4c?

Related

How to determine if a flutter application can be released closed source

Flutter provides a nice mechanism to show all license agreements within an application, since all packages from pub.dev come with structured license informations.
Suppose I want to commercialize an application and I'd like to choose the closed source model.
Can I somehow determine in a simple (programmatically) way, if the chosen packages allow this or require to open-source the application?
As jamesdlin pointed out in his comment, these licenses are copy-left licenses. And those licenses often require derivative works to use a compatible license model as well.
Since packages recursively include other packages, things get complicated soon. I estimate my current application to show around 250 lincense files - while I added only 14 packages.
Moreover, some licenses come from dart and flutter and therefore - I suppose - allows open-source and close-source distribution.
Unfortunately, I currently see no easy way to identify just those licenses, which belong to added packages by me.

Are there apps built on top of VSCode open source base?

VSCode has a very customizable UI with Activity Bar, Sidebar, Tabs, Status Bar etc (https://code.visualstudio.com/docs/getstarted/userinterface); customizable via extensions and seems to have been developed without any of the common web frameworks (https://github.com/microsoft/vscode/issues/99845).
It is well maintained, works in different OSes and has automatic updates.
Even if we remove the code-editor part, there is a lot of work in that.
This makes me wonder if it is possible to write a totally different app (not a code editor) on top of VSCode. For example a Slack-like messaging app, an Obsidian-like knowledge base app, etc.
Is it possible? Are there apps built on top of this code? Have I missed an important point that makes this idea unviable?
EDIT:
Some have pointed a very valid point. Some of what I mentioned here as VSCode features are really Electron features that VSCode inherits. Having developed an Electron app (5yrs ago) I see many things in VSCode that are not in Electron (but maybe my concept of Electron is wrong).
I want to emphasize that VSCode UI (bars, tabs, etc) + its extensibility seems to be a valid development framework. And I am ignorant of anything in this sense.
EDIT (jan/2023):
I guess we can add StackBlitz as a product that just did that.
I think your question is very valid and I was wondering the same thing, so thanks for asking it.
One thing that VS Code gives you that Electron doesn't is a distribution model - the marketplace and how new versions of your app can be detected and downloaded automatically etc. This is a big deal.
I think the disadvantages are that a very fancy UX may not be possible directly - but you have to "work around" by putting HTML within a Web View perhaps. This is just my guess and I haven't directly tried it.
To answer your question - the only one I am aware of is Thunder Client - so think of Postman - but as a VS Code plugin.
See also https://stackoverflow.com/a/67069697/314780 , which points to Eclipse Theia which uses parts from Visual Studio Code (i.e "Code - OSS") - https://theia-ide.org/ . The site links to a number of IDE-style apps built on top of it.
VS Code is an electron app. You might want to research what electron is – because you mention it: The Slack app is built on that same framework.
So, you've just invented something that already is done, very widely, in practice.

Detect which release channel (stable,unstable,dev) from JavaScript

I'd like to be able to detect which release channel of ChromeOS or Chrome a user is in from inside my chrome platform app. Is there any way to do this? The information is in chrome://version
navigator.appVersion of course gives which major chrome version I'm running. I would be fine with having to make an XHR to some webpage that lists the current ChromeOS versions. But I cannot find such a table anywhere. It would be nice if it were on http://googlechromereleases.blogspot.com/
You can probably use http://omahaproxy.appspot.com/. The main page has a table mapping versions to channels, and the "data feeds" section has machine-readable (CSV and JSON) versions of the same data.
What exactly are you trying to do? Tying app behavior to a channel is an anti-pattern, as the channels are constantly evolving. If you are interested in restricting functionality to a specific new feature, then use minimum_chrome_version in your manifest, or if you don't want to restrict availability of your product during the (generally) brief window between dev and stable, simply parse navigator.userAgent (or navigator.appVersion, as you say) for the Chrome version, then switch your app's behavior based on whether you're before or at the version you need for the functionality in question.
Again, don't require a specific channel. It frustrates users and is a maintenance headache for you.

missing image in confluence 3.0.1

I am using confluence 3.0.1 and have the problem that some images are not shown after logout. I remember there being a fix but cannot find anything despite extensive google searches.
Can someone please point me in the right direction?
Thanks.
Christian
I do not have an installation of Confluence 3.0.1 available, we use a more current version 3.4.9, but perhaps the things are similar.
I think the reason for your missing image is simple. Your profile image is stored in the people directory, and you don't have access to the people directory without login. So even if anonymous access is allowed in your personal wiki, the space logo is taken from the people directory, and there the anonymous user has no access.
There is no workaround known to that problem. Atlassian states that it is a feature, not a bug. See the issue https://jira.atlassian.com/browse/CONF-16626 for a similar case. In newer versions of confluence, a question mark is shown to indicate that a profile picture should exist, but is not shown. So it does not look anymore like a technical bug.

Version Controlling for Designers in a Digital Agency

I'm trying to implement a version control system, but as most of us know designers don't feel comfortable with version control systems. I'm looking for a solution mostly for our designers using Photoshop, Flash and other design tools.
It's not a big deal to use a version control system, like VSS 2005, with our frontend and backend coders, but we have some serious problems with our designers. They mostly refuse to use version control systems, and they are right at some points, mostly on productivity level. They mostly work on more than one file, and on more than one application like Photoshop and Flash.
I don't know if version controlling is the right answer or not. Maybe we have to implement a backup system, but there has to be a versioning system, I think. I and our designers are very tired of doing the same thing or going back to the previous designs over and over again.
It would be wonderful to know how digital agencies overcome this problem. If version controlling is the answer, please share your tips on how to make designers comfortable with version controlling.
EDIT 1: Maybe it would be great to have a solution like Dropbox, as it doesn't disturb you with check-ins/check-outs. All you have to do is to open up a file, work on it and save it, the rest is handled by Dropbox.
EDIT 2: We are on Windows, so no chance to implement anything other than Windows support :(
Thanks...
I haven't actually ever done this with graphic designers, but is it possible that Subversion's WebDAV support might work for them? You can mount a WebDAV share as a drive under Mac OS X and Windows XP & Vista, I believe. Each save becomes a new revision in the repository.
And as for your second, hidden question: Yes, you do need to implement a backup system. At least if you value your data.
Adobe has it's own version control, Version Cue, which is bundled with the Creative Suite package. http://www.adobe.com/products/creativesuite/versioncue/sdk_overview/ Apparently, Eclipse can plug into this. I haven't tried it extensively, but I know it integrates nicely into the file dialog in Creative Suite.
NOTE: Version Cue has been discontinued by adobe after the release of CS5:
http://www.adobe.com/products/adobedrive/
Adobe Version Cue maybe?
You might want to try subversion because there are plugins for windows explorer and max OS X finder. integration with the filesystem has been a big help for me on projects where non-developers had to work with source control. This includes projects that have had designers.
Another key thing that helped was having a good directory structure for the files the designers and other non-developers worked with.
I just came accross ConceptShare and it's pretty great...it's not automated version control but you could use it for that and it's a great way to collect and document feedback.
You can try Subversion (installed on a local or remote server) plus Adobe Creative Suite plug-in that would face the designers - Pixelnovel Timeline
It's compact, has previews of all versions (submitted via the plug-in), works for Photoshop, Illustrator & InDesign.
If developers also use Subversion, everything (code & design) can be kept in one place.
Instead of trying to integrate a version control system with lots of applications on different operating systems, you might want to have a look at copy-on-write file systems such as http://en.wikipedia.org/wiki/Ext3cow. That way your designers won't even notice a difference; all they will have to do is save their work to a network share on a linux/samba server using ext3cow.
I'm both a designer and coder. I usually version control code (text data) with git, and simply use "save as" with a version name for graphics (binary data). And I run Apple's Time Machine on top of all that, for safety.
To me, version control on graphic files would just be a burden. I'd have to roll back to see changes, and you wouldn't even get one of the great features of version control: see the changes you did in a specific commit just by looking at diffs. The log feature is nice though, to see how you progressed in time, and notes, but to me personally it's not worth it.
Take a look at Perforce - it has a plugin and tools that allow you to use it from within designer tools such as Photoshop, its also super fast and integrates well with Visual Studio - runs on Windows as well as Linux
What I did once was create a "Snapshot" shortcut on the desktop that added and committed everything from a specific directory.
If every designer commits to their own branch (trivial with a DVCS but easy with SVN too) there will be no conflicts, and the cross-branch merging can be done at intervals by someone who isn't afraid of it.
I've been having my eyes on GridIron's Flow for a while now. It looks like a competent version control suite that has some neat asset management features such as visualization on graphics between versions and relationships between different assets. Flow has support for handling files for adobe photoshop, illustrator, flash etc. However as of now (early january) GridIron hasn't released Flow yet other than having to announce the beta program.
Most digital agencies that I know of that mainly do web development use Subversion for version control. To avoid conflicts on image files an artist will lock the files he or she will work on. That way, another artist won't do the mistake of overwriting changes. This requires some coordination among artists and devs so that noone steps on anyone shoes. Also, if someone forgets to unlock, there is the possibility to break locks.
If you're into distributed version control you might want to take a look at Mercurial as it has good support for Windows and has some neat cheat sheets. The Ruby kids are using git but is rather lacking in Windows.
Before using version control with artists, at least make sure they know the basics of version control and let them fool around with it in a sandbox. Also make sure they've set up some basic rules of conduct when collaborating with each other and interacting through version control (i.e. ways to make sure they don't destroy each others works or step on each others toes).