Join devRant
Do all the things like
++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatar
Sign Up
Pipeless API
From the creators of devRant, Pipeless lets you power real-time personalized recommendations and activity feeds using a simple API
Learn More
Search - "android intent"
-
3 rants for the price of 1, isn't that a great deal!
1. HP, you braindead fucking morons!!!
So recently I disassembled this HP laptop of mine to unfuck it at the hardware level. Some issues with the hinge that I had to solve. So I had to disassemble not only the bottom of the laptop but also the display panel itself. Turns out that HP - being the certified enganeers they are - made the following fuckups, with probably many more that I didn't even notice yet.
- They used fucking glue to ensure that the bottom of the display frame stays connected to the panel. Cheap solution to what should've been "MAKE A FUCKING DECENT FRAME?!" but a royal pain in the ass to disassemble. Luckily I was careful and didn't damage the panel, but the chance of that happening was most certainly nonzero.
- They connected the ribbon cables for the keyboard in such a way that you have to reach all the way into the spacing between the keyboard and the motherboard to connect the bloody things. And some extra spacing on the ribbon cables to enable servicing with some room for actually connecting the bloody things easily.. as Carlos Mantos would say it - M-m-M, nonoNO!!!
- Oh and let's not forget an old flaw that I noticed ages ago in this turd. The CPU goes straight to 70°C during boot-up but turning on the fan.. again, M-m-M, nonoNO!!! Let's just get the bloody thing to overheat, freeze completely and force the user to power cycle the machine, right? That's gonna be a great way to make them satisfied, RIGHT?! NO MOTHERFUCKERS, AND I WILL DISCONNECT THE DATA LINES OF THIS FUCKING THING TO MAKE IT SPIN ALL THE TIME, AS IT SHOULD!!! Certified fucking braindead abominations of engineers!!!
Oh and not only that, this laptop is outperformed by a Raspberry Pi 3B in performance, thermals, price and product quality.. A FUCKING SINGLE BOARD COMPUTER!!! Isn't that a great joke. Someone here mentioned earlier that HP and Acer seem to have been competing for a long time to make the shittiest products possible, and boy they fucking do. If there's anything that makes both of those shitcompanies remarkable, that'd be it.
2. If I want to conduct a pentest, I don't want to have to relearn the bloody tool!
Recently I did a Burp Suite test to see how the devRant web app logs in, but due to my Burp Suite being the community edition, I couldn't save it. Fucking amazing, thanks PortSwigger! And I couldn't recreate the results anymore due to what I think is a change in the web app. But I'll get back to that later.
So I fired up bettercap (which works at lower network layers and can conduct ARP poisoning and DNS cache poisoning) with the intent to ARP poison my phone and get the results straight from the devRant Android app. I haven't used this tool since around 2017 due to the fact that I kinda lost interest in offensive security. When I fired it up again a few days ago in my PTbox (which is a VM somewhere else on the network) and today again in my newly recovered HP laptop, I noticed that both hosts now have an updated version of bettercap, in which the options completely changed. It's now got different command-line switches and some interactive mode. Needless to say, I have no idea how to use this bloody thing anymore and don't feel like learning it all over again for a single test. Maybe this is why users often dislike changes to the UI, and why some sysadmins refrain from updating their servers? When you have users of any kind, you should at all times honor their installations, give them time to change their individual configurations - tell them that they should! - in other words give them a grace time, and allow for backwards compatibility for as long as feasible.
3. devRant web app!!
As mentioned earlier I tried to scrape the web app's login flow with Burp Suite but every time that I try to log in with its proxy enabled, it doesn't open the login form but instead just makes a GET request to /feed/top/month?login=1 without ever allowing me to actually log in. This happens in both Chromium and Firefox, in Windows and Arch Linux. Clearly this is a change to the web app, and a very undesirable one. Especially considering that the login flow for the API isn't documented anywhere as far as I know.
So, can this update to the web app be rolled back, merged back to an older version of that login flow or can I at least know how I'm supposed to log in to this API in order to be able to start developing my own client?6 -
!rant & story_time
This happend to the startup I was working for at ~2011. I was a junior Android dev, working on a very popular app.
During experiments for a new feature, I discovered that the system AlarmManager has a serious bug - you can set a repeating alarm with interval=0ms. If your app takes more then 1 ms to handle the Intent, then the AlarmManager will start to fill up the intent Queue, with unexpected results to the OS. causing it to slow down, and reboot when it ran out of Ram. Why? my guess was that because the AlarmManager was part of the OS, then any issues caused by it caused the system process to ran out of ram, crashing it, and the whole system with it. the real kicker was that even after a reboot, the AlarmManager still had Intents queued, causing the device to bootloop for a while, untill the queue was cleared. My boss decided to report the problem to google, as this was an issue in the OS. I built an example app, that caused the crash 10-30 seconds after starting, and submitted to Google. Google responded later that day with "not an issue, no one will ever do this".
Well... At this point I decided to review the autoupdate feature in our app, to make sure this will not happen to us. We just released a new feature where a user can set an update schedule option in the app settings - where you could setup a daily, weekly, or hourly update for the app. after reviewing it, It looked good, and the issue was not triggered in the manual QA I did. So, it was all good. And we released an updated version to the store.
After we did an update-install, we discoverd that, there was a provlem reading the previous version SharedPrefs value for the update schdule settings, and the value defaulted to 0...
the result was, our app caused all our users to go into a bootloop, and because the alarm was reset when the devices booted up, the bootloop could only be solved in a factory reset, or removing our app, before the device rebooted, and then waiting a few reboot cycles.
We lost 50 places in the market, and it took us 6 months to get back to where we were.
It was not my fault, but it sucked big time!4 -
So I landed this interview with a company that provided military simulations, to work as an android intern (mobile). And man was I intent on getting it, I could only dream of my first job being as a dev, for a company that developed cool software. 😯
I show up, pull out my laptop, go over some of my projects (crap at the time, since I was 16, but ChessAI ftw) and also show them an android app I developed.
Then, I pulled out my calculator and showed them a clock I'd made on it. That's probably when I lost them... ☹️
They asked me a couple questions about software development, like if I knew what agile was, or if I unit tested my code (didn't even know they existed at the time ☹️ ) , etc.
I had done research on the company and asked them questions about specific software and so on, also asked about what working there would look like, etc.
They never called.
I called.
They never answered.
😭
Ended up washing dishes. Honestly, fuck my life.5 -
Me: develops my first android app with firebase by google.
Me: finishes app, tests it and it works.
Firebase after 3 months: we were first going to scale our servers on our own based on how many people are simultaneously using your app. But now fuck you, we will have a cap of 100000 simultaneous users.
Me: fuck this kills my app if it scales. Have to Shard everything on the db side and overhaul the entire app to work will multiple db instances. Takes a month.
Android after 6 months: dude your app is working fine without any hiccups. Let me fuck it up. We will stop all your services when your app is not running or backgrounded. Also we will make it illegal to start services in this case and we will throw exceptions.
Me: what the actual fuck. They now want me to focus on a JobScheduler, fine... But now even intent services won't work properly. So use a job scheduler to start a JobIntentService which is essentially another job scheduler for queuing. wtf android.
Ps solved it and works again.
PS: WAITING FOR ANDROID TO FML WITH ANOTHER NEW VERSION. Maybe they'll say you can't run your app at all now4 -
*working in android with manager who doesn't know android*
Me:"we need to establish different intents for x and y to get the job done"
Manager:"i dont need you deciding what I intend to do"
.... thats not what I meant by intent -
Xiaomi's bootloader unlock procedure is So. Fucking. Tedious. I have no words... oh wait, I do. HIDING THE PERMISSION BEHIND A HUNDRED DEVICE-SIDE SWITCHES WON'T MAKE IT ANY SAFER, IT WILL ONLY MAKE MODDERS ANGRY. Why do you need a third switch besides OEM unlock and USB debugging anyway? If I toggled OEM unlock it's obvious what I'm trying to do and every other option should change to comply with that intent. Don't roll your own Android if you know fuckall about UX.9
-
Launch modes in Android?
Standard: It creates a new instance of an activity in the task from which it was started. Multiple instances of the activity can be created and multiple instances can be added to the same or different tasks.
Eg: Suppose there is an activity stack of A -> B -> C.
Now if we launch B again with the launch mode is “standard”, the new stack will be A -> B -> C -> B.
singleton: It is the same as the standard, except if there is a previous instance of the activity that exists in the top of the stack, then it will not create a new instance but rather send the intent to the existing instance of the activity.
Eg: Suppose there is an activity stack of A -> B.
Now if we launch C with the launch mode as “singleton”, the new stack will be A -> B -> C as usual.
Now if there is an activity stack of A -> B -> C.
If we launch C again with the launch mode as “singleton”, the new stack will still be A -> B -> C.
SingleTask: A new task will always be created and a new instance will be pushed to the task as the root one. So if the activity is already in the task, the intent will be redirected to onNewIntent() else a new instance will be created. At a time only one instance of activity will exist.
Eg: Suppose there is an activity stack of A -> B -> C -> D.
Now if we launch D with the launch mode as “single-task”, the new stack will be A -> B -> C -> D as usual.
Now if there is an activity stack of A -> B -> C -> D.
If we launch activity B again with the launch mode as “single-task”, the new activity stack will be A -> B. Activities C and D will be destroyed.
SingleInstance: Same as a single task but the system does not launch any activities in the same task as this activity. If new activities are launched, they are done so in a separate task.
Eg: Suppose there is an activity stack of A -> B -> C -> D. If we launch activity B again with the launch mode as “single instance”, the new activity stack will be:
Task1 — A -> B -> C
Task2 — D1 -
Everything is shit and I have to work drive thru till 11.15pm.
Everything appears to require js at one point or another (though kotlin requires groovy which, in the intellij IDE, the template it COMES with is fucking broken from the start)
c# could work (and microsoft shop jobs are plentiful) but fucking VS code is a headache and microsoft seems intent on locking everyone into VS and making everything they touch turn to shit, like the king midas of diarrhea (thanks MS, monodevelop is source only on windows). Also c# for android (xamarin) requires apache cordova to do anything, which means...TADA, FUCKING JAVASCRIPT and all the other shit it brings with it.
Java seems like an option, lots of jobs available, but I need netbeans for desktop (javafx) and Android Studio
separately in order to do anything. And Android Studio now uses, of all things...FUCKING GROOVY.
*cocks gunfinger and points in mouth*
why must every fucking thing be it's own DSL and make everything about the fucking ceremony of configuration over
fucking convention?
Haven't any of these fucking cocksuckers heard of MAKE? Or do they just masturbate over how intelligent and smart they are for having reinvented the god damn WHEEL?
I'll see you at the drive through. Will that be all for today?9 -
So i have learn android studio course (kotlin) for the basic.I've been practicing for some things, like recyclerview, ViewModel, bottomsheet, fragment, nav view,Firebase auth, intent and some other basic stuff.right now I'm confused what to do next, if it continues I don't know what to learn next, I know there's still a lot of things to learn, it's just that I don't know what it is, I'm trying to find out what apps a beginner should make like me, but most of the suggestions are still far from my abilities, such as making a calculator. So can you give a little advice to beginners like me, thanks6
-
When I was wondering why I am unable to navigate using #androidIntent , #intentFlag saved the day. #AndroidDev1
-
what is wrong with android storage access hierarchy?All i want to do is to make a file explorer app which could show user a list of all the files on their device and memory card(if available), but its been days and i cannot find a proper way for that.
I checked all the Environment class methods and context.getFileDir()/other methods of ContextCompat , but they either point to emulated storage or the app's folder, but not the sd card. I have scratched my head and pulled all my hairs out researching a lot deep into this area, but found nothing. The only thing that works sometime is the hardcoded paths( eg new File("/sdcard") ) , but that looks like a terrible hack and i know its not good.
I have also read briefly about Storage Access Framework, but i don't think that's what I want. From what i know, SAF works in the following manner : user opens my app>>clicks on a button>>my app fires an intent to SAF>> SAF opens its own UI>>user selects 1 or multiple file>> and my app recieves those file uris. THAT'S A FILE PICKER, AND I DON'T WANT THAT.
I want the user to see a list of his files in my app only. Because if not, then what's the point of my app with the title "File explorer"?7 -
and now i stuck at my app..
the fuckin camera that i call with intent can take a picture, but the picture isnt saving anywhere..
googled and tried several codes but nothing worked.. -
I want to learn, How to add test cases in android And also about layer code pattern. like Controller, View, model, persistence, network etc...
So Please suggest a few tutorial or blogs that help me.
And please give me some links that have a test for network functions and intent related test.
Something like the test for other methods that work of different thread. (Asynk task, Volley or etc..).1 -
Previously on devRant: https://devrant.com/rants/2010573/...
And here's something similar for vlc, but it expects you to point it at a local file (note: vlc can not access files inside termux's private storage). Obvious copy&paste from SO for escape characters aside, here you go:
https://pastebin.com/raw/QeHSnDK51 -
I am creating a new android app and I am also a web developer and i know that links are also set to be opened in new tabs and whenever this action will happen, my browser might get stuck or might call intent service.I want to get the links which it wants to open in new tab and whenever this happens I can programm my browser to handle this event.3