#StackBounty: #javascript #css #mobile #css-animations #css-transitions Animations lagging on mobile chrome

Bounty: 100

I’m trying to do animations on my website. I’m using have a similar version of the jsfiddle code linked below. When viewed on desktop, the animations work well. However when viewed on mobile, specifically on my chrome browser, there is a weird lag. The jsfiddle shows the exact same lag when I open it on my phone. If I restart the chrome app the lag goes away back comes back soon after.

This issue doesn’t occur in Safari.

I have the latest iPhone with IOS 14.6 and chrome V90.

https://jsfiddle.net/brodriguez98/e2bvwcja/33/

HTML:

<html>
 <p style = 'margin-top: 100vh;'>above</p>
 
 <img class = 'balltest show-on-scroll standard-push' src = 'http://www.pngall.com/wp-content/uploads/5/Sports-Ball-Transparent.png'/>
 
 <img class = 'balltest show-on-scroll fade-in' src = 'http://www.pngall.com/wp-content/uploads/5/Sports-Ball-Transparent.png'/>
  
 <p style = 'margin-bottom: 100vh'>below</p>
</html>

CSS:

.balltest {
    width: 50px;
}

.fade-in {
    opacity: 0;
    -webkit-transition: transform 4s 0.25s cubic-bezier(0, 1, 0.3, 1), opacity 1s 0.25s ease-out;
    -moz-transition: transform 4s 0.25s cubic-bezier(0, 1, 0.3, 1), opacity 1s 0.25s ease-out;
    -o-transition: transform 4s 0.25s cubic-bezier(0, 1, 0.3, 1), opacity 1s 0.25s ease-out;
    transition: transform 4s 0.25s cubic-bezier(0, 1, 0.3, 1), opacity 0.3s 0.25s ease-out;
    will-change: transform, opacity;
}

.standard-push {
    opacity: 0;
    transform: translateY(4em);
    -webkit-transition: transform 4s 0.25s cubic-bezier(0, 1, 0.3, 1), opacity 1s 0.25s ease-out, translateZ(0);
    -moz-transition: transform 4s 0.25s cubic-bezier(0, 1, 0.3, 1), opacity 1s 0.25s ease-out;
    -o-transition: transform 4s 0.25s cubic-bezier(0, 1, 0.3, 1), opacity 1s 0.25s ease-out;
    transition: transform 4s 0.25s cubic-bezier(0, 1, 0.3, 1), opacity 0.3s 0.25s ease-out;
    will-change: transform, opacity;
}

.is-visible {
    transform: translateY(0);
    opacity: 1;
}

Javascript:

var elementsToShow = document.querySelectorAll('.show-on-scroll');
$(window).scroll(function() {
    Array.prototype.forEach.call(elementsToShow, function (element) {
        if (isElementInViewport(element)) {
            element.classList.add('is-visible');
        } else {
            element.classList.remove('is-visible');
        }
    });
});


// Helper function from: http://stackoverflow.com/a/7557433/274826
function isElementInViewport(el) {
    // special bonus for those using jQuery
    if (typeof jQuery === "function" && el instanceof jQuery) {
        el = el[0];
    }
    var rect = el.getBoundingClientRect();
    return (
        (rect.top <= 0 &&
            rect.bottom >= 0) ||
        (rect.bottom >= (window.innerHeight || document.documentElement.clientHeight) &&
            rect.top <= (window.innerHeight || document.documentElement.clientHeight)) ||
        (rect.top >= 0 &&
            rect.bottom <= (window.innerHeight || document.documentElement.clientHeight))
    );
}

I apologize for the tiny screen, couldn’t get JSfiddle on fullscreen on my phone:

Animation working right after restarting mobile chrome:
https://www.loom.com/share/ac6c843b90d2428bb875572d55e32959

Animation breaking soon after (when I close/reload the page):
https://www.loom.com/share/e51cf88aa1a74aed8e4d1ed253e83ea0

This is exactly the same behavior I’m seeing on my website using mobile chrome browser.


Get this bounty!!!

#StackBounty: #android #mobile #logging #auditd-for-android #logcat How to do ADB and user activity logging on Android?

Bounty: 150

My question is how to detect ADB connection or unusual user activity in shell on the Android devices.

I have an Android 5.1.1 device with Wi-Fi hotspot enabled and also with opened ADB port, similar to the setup in this challenge, except that I do not have a web server running on it, just ADB is directly open.

Now I want to detect a "hacker" that cracked the WiFi hotspot password and connected via port 5555 into shell, su and run various shell commands.

However, I noticed that the output of logcat, even verbose for all buffers (like ‘adb logcat *:V’) does not allow me to detect anything like that. Neither ADB connection, nor su, nor any shell commands are not visible in the logcat output.

How can I generate / collect logs that will contain the "hacker’s activities"? So far I found auditd for Android, however it is not so easy to install, especially for on older Android versions. Do you know any alternative or any other easier way to monitor shell activities / ADB connection?


Get this bounty!!!

#StackBounty: #mobile #visual-studio-app-center #carthage #visual-studio-app-center-distribute Build app in AppCenter that uses Carthage

Bounty: 100

I’ve inherited a project that builds with Carthage. Using Xcode 12, I was faced with this error:

fatal error: /Applications/Xcode_12.3.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/lipo: /Users/runner/Library/Caches/org.carthage.CarthageKit/DerivedData/12.3_12C33/AEXML/4.6.0/Build/Intermediates.noindex/ArchiveIntermediates/AEXML iOS/IntermediateBuildFilesPath/UninstalledProducts/iphoneos/AEXML.framework/AEXML and /Users/runner/Library/Caches/org.carthage.CarthageKit/DerivedData/12.3_12C33/AEXML/4.6.0/Build/Products/Release-iphonesimulator/AEXML.framework/AEXML have the same architectures (arm64) and can’t be in the same fat output file

Building universal frameworks with common architectures is not possible. The device and simulator slices for "AEXML" both build for: arm64
Rebuild with –use-xcframeworks to create an xcframework bundle instead.

Quick Google search brought me to this which works for my local machine.

Using AppCenter for the first time, I created a Pre-Build script with the following:

#!/usr/bin/env bash

# Pre-build
# See: https://docs.microsoft.com/en-us/appcenter/build/custom/scripts/#pre-build
echo "Pre-build has started."
sh ./carthage.sh update --use-submodules
echo "Pre-build has ended."

I assume Carthage should be used to build this? I get the error in AppCenter:

*** Building scheme "AEXML iOS" in AEXML.xcodeproj
A shell task (/usr/bin/xcrun lipo -create /Users/runner/Library/Caches/org.carthage.CarthageKit/DerivedData/12.3_12C33/AEXML/4.6.0/Build/Intermediates.noindex/ArchiveIntermediates/AEXML iOS/IntermediateBuildFilesPath/UninstalledProducts/iphoneos/AEXML.framework/AEXML /Users/runner/Library/Caches/org.carthage.CarthageKit/DerivedData/12.3_12C33/AEXML/4.6.0/Build/Products/Release-iphonesimulator/AEXML.framework/AEXML -output /Users/runner/work/1/s/Carthage/Build/iOS/AEXML.framework/AEXML) failed with exit code 1:
fatal error: /Applications/Xcode_12.3.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/lipo: /Users/runner/Library/Caches/org.carthage.CarthageKit/DerivedData/12.3_12C33/AEXML/4.6.0/Build/Intermediates.noindex/ArchiveIntermediates/AEXML iOS/IntermediateBuildFilesPath/UninstalledProducts/iphoneos/AEXML.framework/AEXML and /Users/runner/Library/Caches/org.carthage.CarthageKit/DerivedData/12.3_12C33/AEXML/4.6.0/Build/Products/Release-iphonesimulator/AEXML.framework/AEXML have the same architectures (arm64) and can’t be in the same fat output file

Building universal frameworks with common architectures is not possible. The device and simulator slices for "AEXML" both build for: arm64
Rebuild with –use-xcframeworks to create an xcframework bundle instead.

How to build in AppCenter?


Get this bounty!!!

#StackBounty: #mobile #booking Software to make sure bookings are fulfilled and not just abandoned

Bounty: 50

Think probably easiest to explain what I need it for and the kind of solution I envisaged, and if there’s a better way to do it I’ll be interested in that too.

I’m part of a tennis club, we have introduced new rules to minimise the spread of covid. You have to book to play in advance. We charge a yearly membership, and don’t want to move to a pay-per-booking model (we have very few costs, thousands of pounds in the bank and some low-income members who would probably be upset about it and stop playing).

The problem is that people book to play but then don’t turn up. We’ve restricted bookings to one or two a week by a member but it keeps happening. The bookings are anonymous except to the Skedda administrator, who obviously can’t hang around the courts all day and write down whoever didn’t turn up.

There is no WiFi on site (though there is power), but I thought of a possible solution, and wondered if it has ever been implemented. On the court, a screen which displays an arbitrary sequence of numbers, which changes every hour, taken from a simple text file which lists the time and date next to said number. This number could be represented by a qr code.

On the user side, the user has a smartphone app which scans the qr code, and checks the number against the date and time on the server, and records that the booking was actually used.

Does this absurdly specific thing exist?


Get this bounty!!!

#StackBounty: #android #r #google-chrome #mobile #shiny R shiny mobile app: prevent PullToRefresh

Bounty: 50

Context: I am developing a mobile Shiny app using the shinyMobile package, which is a wrapper for the famous framework7 HTML template.

In my app, the user has to make a selection of attributes on a first tab using multiple dropdown lists, and then, on the other tabs, some output is produced. Each tab requires the user to scroll up and down to access all the content and in this process, very often the ‘pull to refresh’ feature is triggered.

This is really annoying, because the entire attribute selection and output are lost, and the user has to start over from scratch.

What I tried: based on this SO thread which pointed me to this Google developer page, I tried setting the CSS overscroll-behavior property to contain with: body {overscroll-behavior-y: contain;}. PROBLEM: It does not work for me! (tested on Chrome Android)

Minimal reproducible example:

default app, deployed here

library(shiny);library(shinyMobile)
shiny::shinyApp(
  ui = f7Page(
    f7Card(
      h5('try to pull to refresh. normally it should work.')
    )
  ),
  server = function(input, output) {}
)

Supposedly fixed app, deployed here

library(shiny);library(shinyMobile)
shiny::shinyApp(
  ui = f7Page(
    tags$style(type='text/css', '.body{overscroll-behavior-y: contain;}'),
    f7Card(
      h5('try to pull to refresh. Normally it should not work.')
    )
  ),
  server = function(input, output) {}
)

Hope you guys can reproduce my issue and identify what is amiss!!!


Get this bounty!!!

#StackBounty: #mobile Cordova's APP_SECRET discovered in config.xml file

Bounty: 50

What is the security implication of the APP_SECRET being discovered in a Cordova Mobile app? Steps on how to get the APP_SECRET is described here but there appears to be no clear guidance on what the risk is if it gets exposed.

I am looking at a number of Cordova mobile apps at the moment, and almost every single one of them appears to have the APP_SECRET hard-coded in the Cordova config.xml file. Is this a major risk? Or it is just a unique ID for Microsoft to be able to report analytics data back to the App Centre for the developer to review – so it is not a significant security risk, if exposed?


Get this bounty!!!