[Q] About per app DPI - Android Q&A, Help & Troubleshooting

Paranoid android is great because it allows you to choose the UI you'd like to sue for each app.
Would it be possible to perform a similar action with an app?
For instance, I'm assuming that apps read the dpi information from the build.prop file when they launch and select the correct ui accordingly?
This might be a poor assumption but this is my limited understanding of it.
So with this assumed, would it be possible to intercept every time an app is launched and set the dpi to whatever setting that app is individually set to, allow the app to launch, then return the dpi to whatever it was?

jcspecs said:
Paranoid android is great because it allows you to choose the UI you'd like to sue for each app.
Would it be possible to perform a similar action with an app?
For instance, I'm assuming that apps read the dpi information from the build.prop file when they launch and select the correct ui accordingly?
This might be a poor assumption but this is my limited understanding of it.
So with this assumed, would it be possible to intercept every time an app is launched and set the dpi to whatever setting that app is individually set to, allow the app to launch, then return the dpi to whatever it was?
Click to expand...
Click to collapse
Bump

jcspecs said:
Would it be possible to perform a similar action with an app?
For instance, I'm assuming that apps read the dpi information from the build.prop file when they launch and select the correct ui accordingly?
This might be a poor assumption but this is my limited understanding of it.
So with this assumed, would it be possible to intercept every time an app is launched and set the dpi to whatever setting that app is individually set to, allow the app to launch, then return the dpi to whatever it was?
Click to expand...
Click to collapse
Apps generally do one or both of two things:
- Define multiple XML layouts and resources and let the OS code select the most appropriate for the device being used
- Programatically define pixel sizes of things drawn to screen, based on the density of the screen (which is available from the API, it's not a question of accessing build.prop as such)

PicomatStudios said:
Apps generally do one or both of two things:
- Define multiple XML layouts and resources and let the OS code select the most appropriate for the device being used
- Programatically define pixel sizes of things drawn to screen, based on the density of the screen (which is available from the API, it's not a question of accessing build.prop as such)
Click to expand...
Click to collapse
Right. So a ROM such as paranoid android does what? Individually alters each app you change settings for to force it to conform to that UI?

Related

Android font installation

Hi I'm sorry if this kind of question has been asked before.
All I wanted to know is what's the technical reason that:
We, users, cannot install font in android without root? Any technical reason or anything at all for this?
AFAIK, you can install font in samsung galaxy phones.(apk ).
Thanks,
Bayint
The technical reason is the simple fact that to change anything in the system folders you need read/write permissions. You get these permissions with root access.
There is no technical reason that applications cannot use different fonts and many do (ereaders, GoSMS, etc.) Google has not defined a font directory on the SD card to standardise user installed fonts to where more apps let you choose your own font.
Most commercial operating systems depend on font metrics to correctly display Widgets (like buttons and text boxes) at a specific size with all the text correctly visible. This is why you cannot change the system font.
Window managers on Linux do not have set metrics that text must fit inside. The text dictates the widget size. This is more flexible but even to the point of unwanted results, like window titles and buttons so large the content of a window is obscured.
Sent from my NookColor using xda premium
lowandbehold said:
Did you read the question at all? You can change the system font. The question was why do you need root access to change the system font. So you basically give this senseless long drawn out answer why?
Click to expand...
Click to collapse
Which part was senseless?
What was senseless was your response.
Q"Why can't I change fonts without root access?"
A"Well you can change fonts but you need root access."
I told him why root was required. You just rephrased his question as an answer.
Sent from my MB860 using xda premium
Okay Guys, keep it nice and friendly.

[BOUNTY] DPI Spoofing tool for individual Tablet & Phone Apps

I'd like to propose a bounty for this project to encourage our talented devs to come up with our own solution to running tablet or phone apps on our Notes without being slave to Google's DPI related red tape.
I have attached examples of some of the great tablet UI's that can be viewed comfortably on the Note so you can see the awesome advantages...
Gmail, YouTube, Settings, BeyondPod, Photoshop Touch, Sketch Pro, File Manager HD
The Goal: Use both Tablet and Phone apps without changing the default system DPI​
The bounty is for a tool that will...
Provide spoofed DPI settings at a 'per app' level, meaning the user can assign a specific DPI to be used by each App they have installed.
All Apps start out with 'Default' system DPI setting.
Tool can be baked into any ROM.
Does NOT require the user to run their phone at a custom system DPI.
Can change the default system DPI if a user should wish to do so.
I'll keep a list of pledges here in this post.
PLEDGES:​
GRIFFINDODD - $25 (US)
​
griffindodd said:
I'd like to propose a bounty for this project to encourage our talented devs to come up with our own solution to running tablet or phone apps on our Notes without being slave to Google's DPI related red tape.
I have attached examples of some of the great tablet UI's that can be viewed comfortably on the Note so you can see the awesome advantages...
Gmail, YouTube, Settings, BeyondPod, Photoshop Touch, Sketch Pro, File Manager HD
The Goal: Use both Tablet and Phone apps without changing the default system DPI​
The bounty is for a tool that will...
Provide spoofed DPI settings at a 'per app' level, meaning the user can assign a specific DPI to be used by each App they have installed.
All Apps start out with 'Default' system DPI setting.
Tool can be baked into any ROM.
Does NOT require the user to run their phone at a custom system DPI.
Can change the default system DPI if a user should wish to do so.
I'll keep a list of pledges here in this post.
PLEDGES:​
GRIFFINDODD - $25 (US)
​
Click to expand...
Click to collapse
I wast this for my galaxy s2
this would be awesome!
Im good for $10 bucks. I wish I had more.
Sent from my SAMSUNG-SGH-I717 using xda premium
This is an old thread, see DAGr8's Hybrid ROM, it's almost perfect for what we wanted here.

[Q] layout XML, fill_parent, app-specific screen-size spoofing

Hi all,
I have a Galaxy Tab 2 10.1 with a 1280x800 display and recently enabled floating multi-window capabilities using this mod: http://forum.xda-developers.com/showthread.php?t=2449094
Now that I can have floating windows, I wanted to try and edit some games I play to not take up the whole screen and make them think I'm running on a phone with a small screen size (which I know they can, since I've played the same exact APK on a smaller screen size).
So what do I do? I download apktool, decompile the APK, and check the res/layout XML files. In this particular app's case, there are 3 XML files, and all the views are defined at layout_width and layout_height of fill_parent. I change them to something silly like 400px and 640px (to, say, run 4 of these in landscape mode on my screen).
Of course this doesn't work. Some parts are actually 400/640, but some draw at full screen size. My guess is that there are some parts that are drawn pragmatically that bypass the layout settings set in the XMLs and use calls like GetDeviceScreenSize() for dimensions or whatever. I can't find any other layout rules in the XML so I assume this is embedded in the smali files somewhere (pardon my android development nubbery here).
Now that you know the background, my question is: is there a way I can fool a particular app into thinking that my screen is smaller? I know I can change the entire devices DPI but that won't help me. I want to do this on an app-specific basis, sandbox style. Have I missed something simple other than red/layout that I can change to get this app to behave like I want it to?
If the answer to these questions is no, will I be able to achieve my goal by digging into the smali files? If so, would anyone care to share some advice?
Thanks in advance!

Samsung keyboard does not allows me to switch languages...

Hi,
After a long while with the SGS5, I've decided to go back and try the native Samsung keyboard.
I've installed couple of an additional languages but even after those are selected and I go back to the keyboard - I see "English" written on the space bar but there are no arrows on the left and right of it and swiping over the spacebar does not change to any of the languages even if they are selected in the keyboard settings.
I also went and cleared memory and cache of the "Samsung Keyboard" app. Even though it went back to default settings, selecting an additional language did not turn on the left/right arrows and does not let me switch languages...
I saw that couple users had this problem in the past and the solution was (as a workaround) - try other keyboards. I was wondering if anyone faced this issue and if there is a way to fix that?
Thanks,
Try renaming /system/csc/language.xml
Reboot, choose your preferred language in the settings menu. Then see if the language is available to the keyboard.
.
fffft said:
Try renaming /system/csc/language.xml
Reboot, choose your preferred language in the settings menu. Then see if the language is available to the keyboard.
.
Click to expand...
Click to collapse
I don't have language.xml in /system/csc . Can you please re-confirm the directory name?
Thanks.
gilbnx said:
I don't have language.xml in /system/csc . Can you please re-confirm the directory name?
Click to expand...
Click to collapse
There were extensive syntax changes made in 4.4 and it can be challenging to keep track of the old vs new methods. Language.xml would have been for 4.2.2 then. So ignore the advice about language.xml then as the organization has been changed under 4.4.2.
Here are three things you can try.
First try resetting the keyboard language setting. Go the the settings menu
Settings menu > My device > Language and input
and click on the gear icon beside the Samsung keyboard and click reset settings. Now go back and see if you can select the keyboard language you desire.
If not, and it is a single language of interest to you, it will probably suffice on a 900F 4.4.2 ROM to change the default language setting. You can do that by editing /system/csc/customer.xml replacing instances of "en_GB" with the ISO code for your desired language. ISO country codes here. Note that you should use an underscore rather than hyphen and capitalize the country code to the right of the underscore. e.g. en_GB not en-gb.
<DefLanguage>en_GB</DefLanguage>
<DefLanguageNoSIM>en_GB</DefLanguageNoSIM>
If that doesn't work for you or if you want support for multiple languages, then under 4.4.2 then you would likely need to make distributed edits to multiple system apps e.g. settings.apk, systemUI.apk, framework-res.apk. There is a patch thread to do this for Motorola devices here. That won't help you directly but could serve as a template as to what is necessary if you are ambitious.
A more practical approach may be to consider migrating to a custom ROM where the multiple edits to enable multiple language support are already in place e.g. the S5 Phoenix ROM.
.
fffft said:
There were extensive syntax changes made in 4.4 and it can be challenging to keep track of the old vs new methods. Language.xml would have been for 4.2.2 then. So ignore the advice about language.xml then as the organization has been changed under 4.4.2.
Here are three things you can try.
First try resetting the keyboard language setting. Go the the settings menu
Settings menu > My device > Language and input
and click on the gear icon beside the Samsung keyboard and click reset settings. Now go back and see if you can select the keyboard language you desire.
If not, and it is a single language of interest to you, it will probably suffice on a 900F 4.4.2 ROM to change the default language setting. You can do that by editing /system/csc/customer.xml replacing instances of "en_GB" with the ISO code for your desired language. ISO country codes here. Note that you should use an underscore rather than hyphen and capitalize the country code to the right of the underscore. e.g. en_GB not en-gb.
<DefLanguage>en_GB</DefLanguage>
<DefLanguageNoSIM>en_GB</DefLanguageNoSIM>
If that doesn't work for you or if you want support for multiple languages, then under 4.4.2 then you would likely need to make distributed edits to multiple system apps e.g. settings.apk, systemUI.apk, framework-res.apk. There is a patch thread to do this for Motorola devices here. That won't help you directly but could serve as a template as to what is necessary if you are ambitious.
A more practical approach may be to consider migrating to a custom ROM where the multiple edits to enable multiple language support are already in place e.g. the S5 Phoenix ROM.
.
Click to expand...
Click to collapse
Thanks for the detailed suggestion, I did some more digging and found the fix. Apparently, if you are allowing any app to use the "accessibility" features (I'm using Tasker for example), the multi-language option on the Samsung keyboard will not work. Once I turned off the accessibility option for Tasker - the keyboard worked fine. Turned the Accessibility back on and the multi-language gone again.
Luckily, I don't need Tasker to sense any activity related to accessibility so I'm all good but this is probably a long-lasting bug since Galaxy S4 I think; looks like the phone does not like any other app to be able to use these accessibility permissions.
I had the same problem with my Samsung Galaxy S7. I read several threads that said go to Settings and Language and Input but nothing more than that. When ya in Language and Input, go to Virtual Keyboard and then add the languages you want there.
A happy Samsung convert

Change icon sizes on Chrome homepage.

After much (very much) frustration, I have managed to find a combination of settings (minimum width in developer options /zoom/font size) that allows all my apps to display correctly. Except now the homepage looks like this:-
Is there any way to change either the icon dpi/size alone or have the whole screen dedicated to the icons because I never use Discover (so its wasted space)?
Thank you.
What combination of settings? (minimum width in developer options /zoom/font size)
I'm really sorry, I can't remember what I was using because it was unusable like that.
I now use Labs/Bixby routines to change the resolution automatically when I use the apps that were previously giving me problems. It's not a perfect solution but it's better than it was.
Plus, I don't think that the minimum dpi settings actually stick correctly on this tablet, unless I am doing something wrong.

Categories

Resources