Explore all Apps open source software, libraries, packages, source code, cloud functions and APIs.

Popular New Releases in Apps

nativefier

Nativefier v47.0.0

framework7

v7.0.1

winget-cli

Windows Package Manager 1.3.431-preview

erpnext

ERPNext Version 14.0.0-beta.4 Release Notes

OnsenUI

2.11.2

Popular Libraries in Apps

nativefier

by nativefier doticontypescriptdoticon

star image 30239 doticonMIT

Make any web page a desktop application

odoo

by odoo doticonjavascriptdoticon

star image 24687 doticonNOASSERTION

Odoo. Open Source Apps To Grow Your Business.

calculator

by microsoft doticonc++doticon

star image 24019 doticonMIT

Windows Calculator: A simple yet powerful calculator that ships with Windows

framework7

by framework7io doticonjavascriptdoticon

star image 16705 doticonMIT

Full featured HTML framework for building iOS & Android apps

winget-cli

by microsoft doticonc++doticon

star image 16676 doticonMIT

Windows Package Manager CLI (aka winget)

Awesome-Linux-Software

by luong-komorebi doticonpythondoticon

star image 16342 doticon

A list of awesome applications, software, tools and other materials for Linux distros.

desktop

by desktop doticontypescriptdoticon

star image 14532 doticonMIT

Simple collaboration from your desktop

react-native-macos

by ptmt doticonjavascriptdoticon

star image 11358 doticonNOASSERTION

[deprecated in favor of https://microsoft.github.io/react-native-windows/] React Native for macOS is an experimental fork for writing desktop apps using Cocoa

erpnext

by frappe doticonpythondoticon

star image 11033 doticonGPL-3.0

Free and Open Source Enterprise Resource Planning (ERP)

Trending New libraries in Apps

perfect-edition

by robinsloan doticoncssdoticon

star image 1171 doticonMIT

A lightweight, responsive web e-book template

electron-playground

by tal-tech doticontypescriptdoticon

star image 1109 doticonMIT

This is a project to quickly experiment and learn electron related APIs

OpenClubhouse

by ai-eks doticonjavascriptdoticon

star image 1094 doticonMIT

A third-part web application based on flask to play Clubhouse audio.

kalker

by PaddiM8 doticonrustdoticon

star image 946 doticonMIT

Kalker/kalk is a calculator with math syntax that supports user-defined variables and functions, complex numbers, and estimation of derivatives and integrals

mp-unpack

by xuedingmiaojun doticonjavascriptdoticon

star image 638 doticonGPL-3.0

基于electron-vue开发的跨平台微信小程序自助解包(反编译)客户端

guark

by guark doticongodoticon

star image 415 doticonMIT

Build awesome Golang desktop apps and beautiful interfaces with Vue.js, React.js, Framework 7, and more...

whatsapp-for-linux

by eneshecan doticonc++doticon

star image 388 doticonGPL-3.0

An unofficial WhatsApp desktop application for Linux.

desktop

by revoltchat doticontypescriptdoticon

star image 369 doticonAGPL-3.0

Revolt Desktop App

aurora

by kirill-grouchnikov doticonkotlindoticon

star image 330 doticonApache-2.0

Building modern, elegant and fast Compose Desktop applications

Top Authors in Apps

1

apache

41 Libraries

star icon14199

2

microsoft

17 Libraries

star icon42701

3

didinj

16 Libraries

star icon359

4

phonegap

14 Libraries

star icon3114

5

Gajotres

13 Libraries

star icon115

6

os-js

11 Libraries

star icon73

7

dpa99c

11 Libraries

star icon518

8

ionic-team

10 Libraries

star icon1806

9

sindresorhus

10 Libraries

star icon3198

10

MobileChromeApps

10 Libraries

star icon2723

1

41 Libraries

star icon14199

2

17 Libraries

star icon42701

3

16 Libraries

star icon359

4

14 Libraries

star icon3114

5

13 Libraries

star icon115

6

11 Libraries

star icon73

7

11 Libraries

star icon518

8

10 Libraries

star icon1806

9

10 Libraries

star icon3198

10

10 Libraries

star icon2723

Trending Kits in Apps

Python accounting provides software components. It enables powerful features like invoice generation, tax management, tax reminders, and risk management. 


Python development is ideal for analytics tools because of its gentle learning curve, flexibility, and open-sourced environment. It helps you build applications of many specializations, like machine learning, data analysis, financials, and cloud computing. Accountants can perform financial modeling in quantitative finance and tax solutions. A Python package enables the effective analysis of big data sets, large lists of numbers, and major financial data. You can also use these accounting libraries to simplify data visualization and statistical calculations. It makes working with invoices and structured data easier.


Below are our 16 best Python accounting open-source libraries in 2021. InvoiceNet is a deep neural network that can view PDF, JPG, and PNG invoices and extract intelligent information from them. You can train custom models, add or remove fields, and save the extracted information to your system. Another library, Rotki, is a portfolio tracking, analytics, accounting, and tax reporting application that works in the crypto and financial sectors and protects your privacy. On the other hand, LNbits is a free and open-source wallet or accounts system that has unique API keys for each wallet. It has a lightning-network functionality via LNbits extension framework.

erpnext  

  • Integrated Enterprise Resource Planning (ERP) system with modules for various business functions.  
  • Supports multi-currency and multi-language capabilities.  
  • Offers features for managing accounts, inventory, sales, and more.  

InvoiceNet  

  • Utilizes deep learning to extract structured information from invoices.  
  • Can handle invoices in various languages and formats.  
  • Provides a pre-trained model for invoice data extraction.  

beancount  

  • A double-entry accounting tool that uses plain text files for data entry.  
  • Provides powerful support for handling complex financial transactions.  
  • Offers extensibility through plugins and scripting.  

timestrap  

  • Specialized time tracking and invoicing system.  
  • Allows for flexible project and task management.  
  • Generates invoices directly from time entries.  

rotki  

  • Cryptocurrency portfolio tracker with support for many exchanges and wallets.  
  • Provides tax reporting and accounting features for crypto assets.  
  • Offers real-time price data and portfolio performance metrics.  

django-userena  

  • A customizable user management system for Django web applications.  
  • Supports user profiles, account activation, and more.  
  • Provides an extensible framework for authentication and user registration.  

fava  

  • A web interface for Beancount, designed for easy financial data visualization.  
  • Offers interactive charts and graphs for financial analysis.  
  • Supports custom reporting and budget tracking.  

invoice2data  

  • A Python library for extracting structured data from invoices.  
  • Supports many invoice formats and templates.  
  • Can output data in various formats, including JSON and CSV.  

QRLJacking  

  • A security tool for testing QR code-based attacks.  
  • Demonstrates vulnerabilities related to QR code authentication.  
  • Raises awareness about the potential risks of QR code usage.  

receipt-parser  

  • A Python library for parsing receipt data from images or scanned documents.  
  • Extracts key information such as dates, items, prices, and taxes.  
  • Can use it for expense tracking and accounting.  

django-ledger  

  • A Django-based double-entry accounting system.  
  • Provides a user-friendly web interface for managing financial data.  
  • Supports many currencies and account types.  

koalixcrm  

  • A CRM (Customer Relationship Management) system tailored for small and medium-sized businesses.  
  • Offers features for managing contacts, sales, and projects.  
  • Provides a customizable workflow engine.  

lnbits  

  • A Lightning Network wallet and application platform for Bitcoin.  
  • Supports Lightning Network payments and microtransactions.  
  • Offers a user-friendly interface for managing Lightning wallets.  

django-hordak  

  • A double-entry accounting library for Django web applications.  
  • Provides a Django-friendly API for managing financial data.  
  • Supports ledger-style accounting and reconciliation.  

bookkeeper  

  • A financial ledger and accounting tool.  
  • Offers double-entry bookkeeping capabilities.  
  • Supports importing data from various formats, including CSV and QIF.  

django-invoice  

  • A Django app for creating and managing invoices.  
  • Provides features for invoice generation, tracking, and payment.  
  • Offers customizable invoice templates and PDF generation.  

FAQ:  

1. Which data sources can data scientists use in Python accounting libraries?  

Data scientists who use accounting libraries can access many data sources in Python. You can find information in files, databases, web scraping, and market data providers. Data scientists study financial data from different sources to fully understand it.  


2. Which Python Libraries are most commonly used when working with financial data?  

The most used Python libraries for financial data are Pandas and NumPy. Pandas are great for manipulating and analyzing data, especially financial data. It helps clean, transform, and organize the data. NumPy is great for financial numerical computations. It supports operations on arrays, matrices, and multidimensional data. Together, Pandas and NumPy form a powerful duo for financial data analysis.  


3. What data types can the Python Library Numpy import and manipulate?  

Financial data scientists find NumPy invaluable because it can handle all data types. This software works with numbers and helps with organizing and changing data sets. You can easily import financial data into NumPy arrays for analysis and computation.  


4. How can a Data Scientist best use financial market datasets?  

Data scientists should employ a multifaceted approach to harness financial market datasets. To understand data, we clean and structure it. We analyze time series to find trends. We use machine learning for forecasting and risk assessment. We use data visualization to show insights. These methods help data scientists make smart decisions and achieve financial success.  


5. Can people use Python in an open source project to make their accounting apps?  

Users can create their accounting apps with Python using open-source projects. Notable examples include "Ledger" and "Beancount." These libraries form a base for double-entry accounting and financial management. You can adjust them to fit specific accounting requirements. You can customize your accounting solutions and enjoy the open-source community's contributions.  


6. Is Django better than other frameworks for creating Accounting Apps with Python?  

Django is a web framework that helps with developing accounting applications. It has advantages and can integrate Python libraries. It excels in providing a robust and secure foundation for web-based financial tools. Django offers built-in features for user authentication, data security, and efficient database management. You can use Python libraries to create secure and user-friendly accounting applications. They are scalable, modular, and great for financial data analysis and management. 

Introduction:


In today's fast-paced world, finding time to cook elaborate meals can be a challenge. Thankfully, the rise of online food ordering platforms has made it easier than ever to enjoy delicious meals from the comfort of home or office. Let's delve into the world of online food order and discover how these platforms are revolutionizing the way we dine.

 

 The Rise of Online Food Ordering


1. Convenience at Your Fingertips: With just a few clicks or taps on your smartphone or computer, you can browse through a wide selection of restaurants and cuisines, place your order, and have it delivered to your doorstep in no time.

  

2. Endless

Options: Online food ordering platforms offer an extensive range of dining

options, from local eateries to popular chains, ensuring that there's something

to suit every palate and craving.


3. Time-Saving

Solution: Say goodbye to long waits in restaurant queues or struggling to

decide what to cook for dinner. With online food ordering, you can skip the

hassle and have delicious meals delivered right to you.

 

The Benefits of Ordering Food Online


1. Convenience: Whether you're busy at work, hosting a gathering, or simply relaxing at home, online

food ordering offers unparalleled convenience. You can order whenever and

wherever you want, without having to worry about cooking or cleaning up afterward.


2. Variety: Craving pizza one day and sushi the next? No problem! Online food ordering platforms

feature a diverse range of cuisines and restaurants, allowing you to explore new flavors and satisfy any craving.


3.Customization: Many online food ordering platforms allow you to customize your

order to your preferences, whether it's adjusting spice levels, selecting

toppings, or specifying dietary requirements. This ensures that you get exactly

what you want, every time.



 How to Order Food Online


1. Choose Your Platform: There are

numerous online food ordering platforms available, so take your time to explore

and find one that best suits your needs and preferences.


2. Browse Restaurants: Once you've

selected a platform, browse through the list of restaurants in your area. You

can filter by cuisine, price range, or customer ratings to narrow down your

options.


3. Place Your Order: Select the

items you'd like to order from your chosen restaurant and add them to your

cart. Don't forget to double-check your order and ensure that all the details

are correct.


4. Payment and Delivery: Proceed to

checkout, where you'll have the option to choose your payment method and

provide delivery details. Once your order is confirmed, sit back, relax, and

wait for your delicious meal to arrive.



 Conclusion

Online food ordering has revolutionized the way we dine, offering unparalleled convenience,

variety, and customization options. Whether you're craving comfort food,

exploring new cuisines, or hosting a dinner party, online food ordering

platforms have got you covered. So why wait? Embrace the convenience and start

exploring the world of online food ordering today!


kandi 1-Click Install

Python is a high-level programming language for general purpose. It's a great language for building web applications, but it can also be used to develop applications for desktop and mobile. Python is a mature and powerful programming language that has gained momentum in recent years. Python’s syntax is well designed and easy to learn compared to other programming languages. It is becoming more popular as a language for data science and machine learning. This popularity has led to a large amount of new libraries, packages and frameworks being developed for the language. Python also has a large standard library with pre-written code that can be reused in the projects. Popular Python Application open source libraries for developers include: flask - The Python micro framework for building web applications; sentry - crossplatform application monitoring; ray - open source framework that provides a simple, universal API.

Java is one of the most used programming language. It's fast, can run on almost any operating system, and is being updated constantly to improve security. It is platform independent makes it is a great choice for developers to build enterprise-grade applications and it allows multiple inheritance. It is used in building highly efficient software with minimum code. It is also popular because it has a rich set of open source libraries that can be used in developing applications across various domains. Java open source libraries are the best tools for developers to implement and develop the Java application with more features. Some of the most widely used Java Application open source libraries among developers include: jib - Build container images for your Java applications; spring-boot-admin - Admin UI for administration of spring boot applications; micronaut-core - Micronaut Application Framework.

JavaScript has been among the most popular programming languages for a long time. It is an essential part of any front-end web development and can be used in almost any project. It's versatile and has a wide range of applications, from small mobile applications to enterprise-level server apps. JavaScript is a very resourceful and powerful language that gives you the power to create interactive web pages. It is used by the majority of developers because of its flexibility and simplicity. JavaScript provides tons of tools and frameworks to make the life easier as a developer. JavaScript Application libraries are actually codes that were previously written by people. These codes were written with a particular purpose of helping a programmer in building an application. A few of the most popular open source libraries for JavaScript Application developers are: nw.js - js modules directly from DOM/WebWorker and enable a new way; ember.js - JavaScript framework for creating ambitious web applications; hyperapp - The tiny framework for building hypertext applications.

The world of software development is evolving at a fast pace. It's no secret that the process of coding a desktop application from scratch can sometimes be extremely frustrating and time-consuming. Open-source libraries are a boon to programmers around the world. They save you time and effort, and prevent you from reinventing the wheel. C# application can be easily developed by using the open source libraries. The libraries are the set of functions that are used by the programmers to develop a web application. Some of the most widely used open source libraries for C# Application among developers include: ArchiSteamFarm - primary purpose of idling Steam cards | Video Game library; C-sharp-console-gui-framework - A GUI framework for C# console applications; GeneticSharp - multithreading C# Genetic Algorithm library; High-Speed-Priority-Queue-for-C-Sharp - A C# priority queue optimized for pathfinding applications.

Ruby is a dynamic, general-purpose programming language. It has an elegant syntax that's natural to read and easy to write. It is cross-platform, it can run on a variety of platforms, including Linux, Mac OS X, Windows, iOS and Android. It is powerful, secure and easy to learn. A Ruby application can be easily developed by using the open source libraries. The libraries are the set of functions that are used by the programmers to develop a web application. Ruby has been used to write programs that control robots, drive cars, and help power the websites of such organizations as NASA, Twitter, and the New York Times. Developers tend to use some of the following Ruby Application open source libraries: activeadmin - The administration framework for Ruby on Rails applications; brakeman - static analysis security vulnerability scanner; draper - Decorators/ViewModels for Rails Applications.

Go Application is a powerful and simple programming language which provides a lot of features like concurrency, parallelism, and simplicity. Go Application is a dynamic language that often used for web development. Go is an open source programming language that makes it easy to build simple, reliable, and efficient software. Go was developed by Google in 2007 with the aim of being an open source language that would be used for infrastructure software development. Its concurrency features make it a good choice for building systems that require high availability, such as Google's search engine. It is used by companies like Google, Red Hat, Digital Ocean, and Trello for some of their critical infrastructure. Some of the most widely used open source libraries for Go Application among developers include: traefik - The Cloud Native Application Proxy; gotty - are your terminal as a web application; gf - GoFrame is a modular, powerful, highperformance and enterpriseclass application development framework of Golang.

PHP is an open source programming language that is used to create dynamic web pages. PHP was created by Rasmus Lerdorf in 1994, and it was released as free software on the Internet. The latest version of PHP is 7.3, which contains many new features and bug fixes. PHP applications are the most common way to add dynamic functionality to web pages. It is one of the most popular programming languages in the world, with a market share of around 82%. They allow to develop applications more quickly and easily, and they can be used in a variety of industries, including ecommerce, education, health care and finance. A few of the most popular PHP Application open source libraries for developers are: Slim - PHP micro framework; wallabag - self hostable application for saving web pages; php-pm - process manager, supercharger and load balancer.

C++ programming language is a general-purpose, statically typed, free and open-source software language. It was developed by Bjarne Stroustrup at Bell Labs between 1979 and 1985. It supports object-oriented, imperative, and generic programming paradigms. C++ is a very powerful programming language that is used to develop many types of applications. It is one of the most popular languages in the world. These libraries make it easy for developers to build C++ applications that are modular, scalable and high performing. C++ is used for operating system development, desktop applications, mobile apps, and games. It provides a lot of flexibility, and it is used in many different areas. Some of the most popular C++ Application Open Source libraries among developers are: dlib - A toolkit for making real world machine learning and data analysis applications in C; drogon - Drogon: A C++14/17/20 based HTTP web application framework running on Linux/macOS/Unix/Windows; oatpp - Light and powerful C web framework for highly scalable and resourceefficient web application.

JavaScript is an open-source programming language used for building user interfaces. It is lightweight, fast and easy to learn. JavaScript is one of the most popular programming languages on the web for creating applications, games and websites. It is also used in server-side scripting through Node.js, which enables developers to build scalable network programs using JavaScript code. A JavaScript Desktop Application is a desktop application written in JavaScript. It is a type of web application which runs in web browsers without the need of Adobe Flash or any other plugin. The JavaScript desktop application libraries are used to create desktop applications, which can be run in Windows, Linux and Mac OS X. Some of the most widely used open source libraries for JavaScript Desktop Application among developers include: ipfs-desktop - An unobtrusive and userfriendly desktop application for IPFS on Windows, Mac and Linu; electron-react-webpack-boilerplate - Minimal Electron, React, PostCSS and Webpack boilerplate; OGX.JS - JS Javascript Framework.

Python is one of the most popular programming languages used by both developers and businesses people. It has a large library of third-party modules and frameworks that can be used to create web applications and desktop apps. Python is a general-purpose programming language, which is used for both single and multiple applications. It is very useful for developing desktop application. Python is used in many industries today, including web development, artificial intelligence (AI) research and development, data science and machine learning applications, computer graphics programming and scientific computing. Python supports multiple programming paradigms, including object-oriented, imperative, functional and procedural, and has a large and comprehensive standard library. A few of the most popular Python Desktop Application open source libraries for developers are: PySimpleGUI - Launched in 2018 Actively developed and supported; 15-minute-apps - 15 minute desktop apps built with PyQt; autokey - AutoKey, a desktop automation utility for Linux and X11.

Ruby is a dynamic, reflective, general-purpose object-oriented programming language and open source programming language with a focus on simplicity and productivity. It has an elegant syntax that is natural to read and easy to write. Ruby's philosophy is to provide developers with a comprehensive and efficient toolset that enables them to write simple code that runs with high performance. Ruby platform has many libraries for desktop applications, such as Rails and Sinatra. These libraries make it easy for developers to create cross-platform desktop applications. It is free to use, even for commercial purposes, and also comes with its own development environment called RubyMine which makes it easier to develop Ruby programs. Popular Ruby Desktop Application open source libraries for developers include: glimmer - DSL Framework consisting of a DSL Engine; notifyor -Get realtime notifications on your desktop if something happens; PeepOpen - Desktop application for switching between files in text editors.

C++ is a general-purpose programming language. It has imperative, object-oriented and generic programming features, which also providing facilities for low-level memory manipulation. C++ is a compiled language that requires an external compiler to produce executable code. C++ is also commonly used for video games and other software where high performance is required. It has been used for operating systems, networking software, office applications and scientific applications. C++ is the third most popular programming language in the world after Java and Visual Basic. C++ can be used to develop desktop applications and mobile applications. C++ Desktop Application Libraries are the most popular and widely used programming language in the world. There are several popular C++ Desktop Application open source libraries available for developers: neutralinojs - Portable and lightweight crossplatform desktop application development framework; JUCE - JUCE is an opensource crossplatform C application framework for desktop and mobile applications, including VST, VST3, AU, AUv3, RTAS and AAX audio plu; whatsapp-for-linux - An unofficial WhatsApp desktop application for Linux.

C# is a general-purpose programming language that can be used to create Windows applications, websites, web services, and other types of applications. C# is a programming language developed by Microsoft. C# is a language that is widely used in many projects. It’s an object-oriented programming language that was developed by Microsoft and released in 2000. C# is one of the most popular programming languages in the world, and it has been adopted by many companies. C# is a multi-paradigm programming language encompassing strong typing, imperative, declarative, functional, generic, object-oriented (class-based), and component-oriented programming disciplines. Developers tend to use some of the following C# Desktop Application open source libraries: wpf - NET Core UI framework for building Windows desktop applications; winforms - Windows Forms is a .NET Core UI framework; NanUI - open source .NET project for .NET / .NET Core developers.

GoLang is an open source programming language developed by Robert Griesemer, Rob Pike, and Ken Thompson at Google. The latest version of GoLang was released in March 2012 and was updated to 1.10 in February 2018 by Google. Go programming language is becoming more and more popular. It is being used to develop desktop applications, mobile apps, web applications. Go programming language is a great choice for building desktop applications. Golang is a programming language that has been gaining popularity in recent years. It is similar to Python and C++, but it is faster than both of them. Go is used by many organizations such as Google, Netflix, Docker. Popular open source libraries for Go Desktop Application include: wails - Create desktop apps using Go and Web Technologies; gallium - Build desktop applications in Go and HTML; guark - Build awesome Golang desktop apps and beautiful interfaces.

Java is a object-oriented programming language and computing platform that was first released by Sun Microsystems in 1995. Java is a programming language that is focused on object-oriented programming. It supports multiple platforms, including Android and iOS, and it’s compatible with a variety of operating systems, including Windows and Linux. Java is one of the most popular programming languages and has been used for mobile app development since its inception. It can be used to create both native apps as well as hybrid apps. It is used for a wide variety of applications from mobile phones, enterprise applications and embedded systems to web applications and client-server web applications. Many developers depend on the following Java Mobile Application open source libraries: realm-java - Realm is a mobile database: a replacement for SQLite & ORMs; Bolts-Android - lowlevel libraries designed to make developing mobile apps easier; CodenameOne - Crossplatform framework for building truly native mobile apps.

Ruby is a dynamic, reflective, open source programming language that was created by Yukihiro Matsumoto. It is a very powerful and flexible language. Ruby is an open source programming language that is widely used for developing desktop applications. It is also used for developing desktop, mobile, and other software products. It has an elegant syntax that is natural to read and easy to write. It is intended to be used with an Agile development methodology that is used by web developers for rapid development. The Ruby community has created many libraries and frameworks for building mobile applications. Some of the most widely used open source libraries for Ruby Mobile Application among developers include: react-native-config - Bring some 12 factor love to your mobile apps; gcm - helps developers send data from ruby backend servers; mywanderlust - mobile application.

JavaScript is a powerful, dynamic and expressive language that can be used to create both web and mobile applications. JavaScript is a client-side language. It runs in the browser and does not need to communicate with a remote server to function. JavaScript Mobile Application Open Source libraries are useful for developing single page applications (SPAs) that run in the browser and use JavaScript on the client side to render content dynamically without reloading the page. They also offer functionality such as user authentication, data management, view management. It’s a great language for both front-end web development and back-end server-side coding. It’s also an excellent language for building mobile apps. Popular JavaScript Mobile Application open source libraries among developers include: serverless - Serverless Framework – Build web, mobile and IoT applications; amazeui - Amaze UI, a mobilefirst and modular frontend framework; Mobile-Security-Framework-MobSF - Mobile Security Framework.

C++ is a general-purpose programming language and object-oriented programming language that has been used to create software applications. It can be used on all major operating systems including Windows, Linux and Mac OS X. It is also providing facilities for low-level memory manipulation. C++ programming language includes a wide range of features including object oriented capabilities, exception handling, templates and generic programming capabilities that allows programmers to write efficient code using high level abstraction techniques that can be compiled into efficient machine code. Mobile Application Development is the process of developing software applications for mobile devices, such as personal digital assistants, enterprise digital assistants or mobile phones. Some of the most widely used open source libraries for C++ Mobile Application among developers include: ncnn -highperformance neural network inference framework optimized; JUCE - JUCE is an opensource crossplatform C application framework for desktop and mobile applications, including VST, VST3, AU, AUv3, RTAS and AAX audio plu; icomet - A C1000K comet/push server built with C, for web and mobile app.

Trending Discussions on Apps

Error: MainActivity must extend android.app.Activity [Instantiatable]

Google OAuth 2.0 failing with Error 400: invalid_request for some client_id, but works well for others in the same project

Action requested: Declare your Ad ID permission

ASP.NET Core 6 how to access Configuration during startup

How to use appsettings.json in Asp.net core 6 Program.cs file

android:exported needs to be explicitly specified for <activity>. Apps targeting Android 12 and higher are required to specify

App Engine Python 2.7 - ImportError: cannot import name apiproxy

Log4j vulnerability - Is Log4j 1.2.17 vulnerable (was unable to find any JNDI code in source)?

My project doesn't compile with optimization parameters after upgrading from angular 11 to angular 12

How to set max-height of dropdown selection area?

QUESTION

Error: MainActivity must extend android.app.Activity [Instantiatable]

Asked 2022-Mar-31 at 02:13

I tried upgrading Android Gradle Plugin from 4.2.2 to 7.0.1 using the upgrade assistant which is available in Android Studio at Tools > AGP Upgrade Assistant. The only change it made was to my project-level build.gradle file:

1buildscript {
2    repositories {
3        google()
4        mavenCentral()
5    }
6    dependencies {
7        classpath 'com.android.tools.build:gradle:7.0.1' // changed from 4.2.2 to 7.0.1
8        // ...
9    }
10}
11

However, now when I run ./gradlew assemble assembleAndroidTest I get the following error:

1buildscript {
2    repositories {
3        google()
4        mavenCentral()
5    }
6    dependencies {
7        classpath 'com.android.tools.build:gradle:7.0.1' // changed from 4.2.2 to 7.0.1
8        // ...
9    }
10}
11/builds/locuslabs/android-team/locuslabs-android-sdk/app/src/main/AndroidManifest.xml:21: Error: MainActivity must extend android.app.Activity [Instantiatable]
12            android:name="com.locuslabs.appsdk.MainActivity"
13                          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
14   Explanation for issues of type "Instantiatable":
15   Activities, services, broadcast receivers etc. registered in the manifest
16   file (or for custom views, in a layout file) must be "instantiatable" by
17   the system, which means that the class must be public, it must have an
18   empty public constructor, and if it's an inner class, it must be a static
19   inner class.
201 errors, 0 warnings
21Lint found fatal errors while assembling a release target.
22To proceed, either fix the issues identified by lint, or modify your build script as follows:
23...
24android {
25    lintOptions {
26        checkReleaseBuilds false
27        // Or, if you prefer, you can continue to check for errors in release builds,
28        // but continue the build even when errors are found:
29        abortOnError false
30    }
31}
32

My project is multi-module, but I don't suspect that as the problem since it's complaining about the application module, not a library module.

I believe my <activity> tag is well formed in my AndroidManifest.xml for my application module:

1buildscript {
2    repositories {
3        google()
4        mavenCentral()
5    }
6    dependencies {
7        classpath 'com.android.tools.build:gradle:7.0.1' // changed from 4.2.2 to 7.0.1
8        // ...
9    }
10}
11/builds/locuslabs/android-team/locuslabs-android-sdk/app/src/main/AndroidManifest.xml:21: Error: MainActivity must extend android.app.Activity [Instantiatable]
12            android:name=&quot;com.locuslabs.appsdk.MainActivity&quot;
13                          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
14   Explanation for issues of type &quot;Instantiatable&quot;:
15   Activities, services, broadcast receivers etc. registered in the manifest
16   file (or for custom views, in a layout file) must be &quot;instantiatable&quot; by
17   the system, which means that the class must be public, it must have an
18   empty public constructor, and if it's an inner class, it must be a static
19   inner class.
201 errors, 0 warnings
21Lint found fatal errors while assembling a release target.
22To proceed, either fix the issues identified by lint, or modify your build script as follows:
23...
24android {
25    lintOptions {
26        checkReleaseBuilds false
27        // Or, if you prefer, you can continue to check for errors in release builds,
28        // but continue the build even when errors are found:
29        abortOnError false
30    }
31}
32        &lt;activity
33            android:name=&quot;com.locuslabs.appsdk.MainActivity&quot;
34            android:label=&quot;@string/app_name&quot;
35            android:windowSoftInputMode=&quot;adjustNothing&quot;&gt;
36            &lt;intent-filter&gt;
37                &lt;action android:name=&quot;android.intent.action.MAIN&quot; /&gt;
38
39                &lt;category android:name=&quot;android.intent.category.LAUNCHER&quot; /&gt;
40            &lt;/intent-filter&gt;
41        &lt;/activity&gt;
42

Furthermore, I don't think there is anything wrong with extending AppCompatActivity instead of android.app.Activity as I'm doing in my MainActivity.kt:

1buildscript {
2    repositories {
3        google()
4        mavenCentral()
5    }
6    dependencies {
7        classpath 'com.android.tools.build:gradle:7.0.1' // changed from 4.2.2 to 7.0.1
8        // ...
9    }
10}
11/builds/locuslabs/android-team/locuslabs-android-sdk/app/src/main/AndroidManifest.xml:21: Error: MainActivity must extend android.app.Activity [Instantiatable]
12            android:name=&quot;com.locuslabs.appsdk.MainActivity&quot;
13                          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
14   Explanation for issues of type &quot;Instantiatable&quot;:
15   Activities, services, broadcast receivers etc. registered in the manifest
16   file (or for custom views, in a layout file) must be &quot;instantiatable&quot; by
17   the system, which means that the class must be public, it must have an
18   empty public constructor, and if it's an inner class, it must be a static
19   inner class.
201 errors, 0 warnings
21Lint found fatal errors while assembling a release target.
22To proceed, either fix the issues identified by lint, or modify your build script as follows:
23...
24android {
25    lintOptions {
26        checkReleaseBuilds false
27        // Or, if you prefer, you can continue to check for errors in release builds,
28        // but continue the build even when errors are found:
29        abortOnError false
30    }
31}
32        &lt;activity
33            android:name=&quot;com.locuslabs.appsdk.MainActivity&quot;
34            android:label=&quot;@string/app_name&quot;
35            android:windowSoftInputMode=&quot;adjustNothing&quot;&gt;
36            &lt;intent-filter&gt;
37                &lt;action android:name=&quot;android.intent.action.MAIN&quot; /&gt;
38
39                &lt;category android:name=&quot;android.intent.category.LAUNCHER&quot; /&gt;
40            &lt;/intent-filter&gt;
41        &lt;/activity&gt;
42import androidx.appcompat.app.AppCompatActivity
43
44class MainActivity : AppCompatActivity() {
45    // ...
46}
47

I'm concerned that Android Gradle Plugin 7.0.1 is not really ready for prime-time because the Android Gradle Plugin documentation still says classpath 'com.android.tools.build:gradle:4.2.0' instead of 7.0.1.

I saw that the Android Gradle Plugin 7.0.1 release notes mentioned some changes to linting but none of those changes seemed relevant to me.

I also skimmed through the Android Gradle Plugin source code to see if I could find the linting stage any identify any changes but it looked like a lot of work to find that code and do that analysis.

I searched for answers but all I could find were these two stackoverflow entries where the error was legitimate and the programmer just needed to change their code to ensure they were referencing an actual Activity:

  1. Android Studio Error: Activity must extend android.app.activity
  2. MainActivity cannot be cast to android.app.Activity

I also tried Android Gradle Plugin 7.0.0 but got the same error. Only Android Gradle Plugin 4.2.2 prevents the error.

Is this a bug in Android Gradle Plugin 7.0.1?

Update: could not disable Instantiatable

I tried to disable the Instantiatable lint error the following ways but none of them prevented the error.

First, I tried adding disable "Instantiatable" to my application-level build.gradle file:

1buildscript {
2    repositories {
3        google()
4        mavenCentral()
5    }
6    dependencies {
7        classpath 'com.android.tools.build:gradle:7.0.1' // changed from 4.2.2 to 7.0.1
8        // ...
9    }
10}
11/builds/locuslabs/android-team/locuslabs-android-sdk/app/src/main/AndroidManifest.xml:21: Error: MainActivity must extend android.app.Activity [Instantiatable]
12            android:name=&quot;com.locuslabs.appsdk.MainActivity&quot;
13                          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
14   Explanation for issues of type &quot;Instantiatable&quot;:
15   Activities, services, broadcast receivers etc. registered in the manifest
16   file (or for custom views, in a layout file) must be &quot;instantiatable&quot; by
17   the system, which means that the class must be public, it must have an
18   empty public constructor, and if it's an inner class, it must be a static
19   inner class.
201 errors, 0 warnings
21Lint found fatal errors while assembling a release target.
22To proceed, either fix the issues identified by lint, or modify your build script as follows:
23...
24android {
25    lintOptions {
26        checkReleaseBuilds false
27        // Or, if you prefer, you can continue to check for errors in release builds,
28        // but continue the build even when errors are found:
29        abortOnError false
30    }
31}
32        &lt;activity
33            android:name=&quot;com.locuslabs.appsdk.MainActivity&quot;
34            android:label=&quot;@string/app_name&quot;
35            android:windowSoftInputMode=&quot;adjustNothing&quot;&gt;
36            &lt;intent-filter&gt;
37                &lt;action android:name=&quot;android.intent.action.MAIN&quot; /&gt;
38
39                &lt;category android:name=&quot;android.intent.category.LAUNCHER&quot; /&gt;
40            &lt;/intent-filter&gt;
41        &lt;/activity&gt;
42import androidx.appcompat.app.AppCompatActivity
43
44class MainActivity : AppCompatActivity() {
45    // ...
46}
47android {
48    lintOptions {
49        disable &quot;Instantiatable&quot;
50    }
51}
52

Second, I tried prepending @SdkSuppress("Instantiatable") to the class:

1buildscript {
2    repositories {
3        google()
4        mavenCentral()
5    }
6    dependencies {
7        classpath 'com.android.tools.build:gradle:7.0.1' // changed from 4.2.2 to 7.0.1
8        // ...
9    }
10}
11/builds/locuslabs/android-team/locuslabs-android-sdk/app/src/main/AndroidManifest.xml:21: Error: MainActivity must extend android.app.Activity [Instantiatable]
12            android:name=&quot;com.locuslabs.appsdk.MainActivity&quot;
13                          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
14   Explanation for issues of type &quot;Instantiatable&quot;:
15   Activities, services, broadcast receivers etc. registered in the manifest
16   file (or for custom views, in a layout file) must be &quot;instantiatable&quot; by
17   the system, which means that the class must be public, it must have an
18   empty public constructor, and if it's an inner class, it must be a static
19   inner class.
201 errors, 0 warnings
21Lint found fatal errors while assembling a release target.
22To proceed, either fix the issues identified by lint, or modify your build script as follows:
23...
24android {
25    lintOptions {
26        checkReleaseBuilds false
27        // Or, if you prefer, you can continue to check for errors in release builds,
28        // but continue the build even when errors are found:
29        abortOnError false
30    }
31}
32        &lt;activity
33            android:name=&quot;com.locuslabs.appsdk.MainActivity&quot;
34            android:label=&quot;@string/app_name&quot;
35            android:windowSoftInputMode=&quot;adjustNothing&quot;&gt;
36            &lt;intent-filter&gt;
37                &lt;action android:name=&quot;android.intent.action.MAIN&quot; /&gt;
38
39                &lt;category android:name=&quot;android.intent.category.LAUNCHER&quot; /&gt;
40            &lt;/intent-filter&gt;
41        &lt;/activity&gt;
42import androidx.appcompat.app.AppCompatActivity
43
44class MainActivity : AppCompatActivity() {
45    // ...
46}
47android {
48    lintOptions {
49        disable &quot;Instantiatable&quot;
50    }
51}
52@SdkSuppress(&quot;Instantiatable&quot;)
53class MainActivity : AppCompatActivity() {
54   // ...
55}
56

Similarly, I tried @SuppressLint("Instantiatable") but that didn't work either.

ANSWER

Answered 2021-Aug-24 at 16:35

the Android Gradle Plugin documentation still says classpath 'com.android.tools.build:gradle:4.2.0' instead of 7.0.1.

You need to read further down the page, to this and this. That table is only relevant for pre-7.0.0 versions.

Is this a bug in Android Gradle Plugin 7.0.1?

Quite possibly. Or, perhaps beyond, as the Instantiatable Lint check has a history of problems.

If your scenario does not match one of those three August 2021 bugs, and you are in position to provide a reproducible test case, file a fresh issue! Beyond that, if a clean-and-rebuild is not clearing up your problem, you might need to simply disable the Instantiatable Lint check for the time being by adding the following to all of your build.gradle files at the application or library level (i.e. all except your project-level build.gradle):

1buildscript {
2    repositories {
3        google()
4        mavenCentral()
5    }
6    dependencies {
7        classpath 'com.android.tools.build:gradle:7.0.1' // changed from 4.2.2 to 7.0.1
8        // ...
9    }
10}
11/builds/locuslabs/android-team/locuslabs-android-sdk/app/src/main/AndroidManifest.xml:21: Error: MainActivity must extend android.app.Activity [Instantiatable]
12            android:name=&quot;com.locuslabs.appsdk.MainActivity&quot;
13                          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
14   Explanation for issues of type &quot;Instantiatable&quot;:
15   Activities, services, broadcast receivers etc. registered in the manifest
16   file (or for custom views, in a layout file) must be &quot;instantiatable&quot; by
17   the system, which means that the class must be public, it must have an
18   empty public constructor, and if it's an inner class, it must be a static
19   inner class.
201 errors, 0 warnings
21Lint found fatal errors while assembling a release target.
22To proceed, either fix the issues identified by lint, or modify your build script as follows:
23...
24android {
25    lintOptions {
26        checkReleaseBuilds false
27        // Or, if you prefer, you can continue to check for errors in release builds,
28        // but continue the build even when errors are found:
29        abortOnError false
30    }
31}
32        &lt;activity
33            android:name=&quot;com.locuslabs.appsdk.MainActivity&quot;
34            android:label=&quot;@string/app_name&quot;
35            android:windowSoftInputMode=&quot;adjustNothing&quot;&gt;
36            &lt;intent-filter&gt;
37                &lt;action android:name=&quot;android.intent.action.MAIN&quot; /&gt;
38
39                &lt;category android:name=&quot;android.intent.category.LAUNCHER&quot; /&gt;
40            &lt;/intent-filter&gt;
41        &lt;/activity&gt;
42import androidx.appcompat.app.AppCompatActivity
43
44class MainActivity : AppCompatActivity() {
45    // ...
46}
47android {
48    lintOptions {
49        disable &quot;Instantiatable&quot;
50    }
51}
52@SdkSuppress(&quot;Instantiatable&quot;)
53class MainActivity : AppCompatActivity() {
54   // ...
55}
56android {
57    lintOptions {
58        disable &quot;Instantiatable&quot;
59    }
60}
61

Source https://stackoverflow.com/questions/68899665

QUESTION

Google OAuth 2.0 failing with Error 400: invalid_request for some client_id, but works well for others in the same project

Asked 2022-Mar-30 at 14:21

We have some apps (or maybe we should call them a handful of scripts) that use Google APIs to facilitate some administrative tasks. Recently, after making another client_id in the same project, I started getting an error message similar to the one described in localhost redirect_uri does not work for Google Oauth2 (results in 400: invalid_request error). I.e.,

Error 400: invalid_request

You can't sign in to this app because it doesn't comply with Google's OAuth 2.0 policy for keeping apps secure.

You can let the app developer know that this app doesn't comply with one or more Google validation rules.

Request details:

The content in this section has been provided by the app developer. This content has not been reviewed or verified by Google.

If you’re the app developer, make sure that these request details comply with Google policies.

redirect_uri: urn:ietf:wg:oauth:2.0:oob

How do I get through this error? It is important to note that:

  • The OAuth consent screen for this project is marked as "Internal". Therefore any mentions of Google review of the project, or publishing status are irrelevant
  • I do have "Trust internal, domain-owned apps" enabled for the domain
  • Another client id in the same project works and there are no obvious differences between the client IDs - they are both "Desktop" type which only gives me a Client ID and Client secret that are different
  • This is a command line script, so I use the "copy/paste" verification method as documented here hence the urn:ietf:wg:oauth:2.0:oob redirect URI (copy/paste is the only friendly way to run this on a headless machine which has no browser).
  • I was able to reproduce the same problem in a dev domain. I have three client ids. The oldest one is from January 2021, another one from December 2021, and one I created today - March 2022. Of those, only the December 2021 works and lets me choose which account to authenticate with before it either accepts it or rejects it with "Error 403: org_internal" (this is expected). The other two give me an "Error 400: invalid_request" and do not even let me choose the "internal" account. Here are the URLs generated by my app (I use the ruby google client APIs) and the only difference between them is the client_id - January 2021, December 2021, March 2022.

Here is the part of the code around the authorization flow, and the URLs for the different client IDs are what was produced on the $stderr.puts url line. It is pretty much the same thing as documented in the official example here (version as of this writing).

1
2OOB_URI = 'urn:ietf:wg:oauth:2.0:oob'
3
4def user_credentials_for(scope, user_id = 'default')
5    token_store = Google::Auth::Stores::FileTokenStore.new(:file =&gt; token_store_path)
6    authorizer = Google::Auth::UserAuthorizer.new(client_id, scope, token_store)
7    credentials = authorizer.get_credentials(user_id)
8    if credentials.nil?
9        url = authorizer.get_authorization_url(base_url: OOB_URI)
10        $stderr.puts &quot;&quot;
11        $stderr.puts &quot;-----------------------------------------------&quot;
12        $stderr.puts &quot;Requesting authorization for '#{user_id}'&quot;
13        $stderr.puts &quot;Open the following URL in your browser and authorize the application.&quot;
14        $stderr.puts url
15        code = $stdin.readline.chomp
16        $stderr.puts &quot;-----------------------------------------------&quot;
17        credentials = authorizer.get_and_store_credentials_from_code(
18            user_id: user_id, code: code, base_url: OOB_URI)
19    end
20    credentials
21end
22                                                                                                                                          
23

ANSWER

Answered 2022-Mar-02 at 07:56

steps.oauth.v2.invalid_request 400 This error name is used for multiple different kinds of errors, typically for missing or incorrect parameters sent in the request. If is set to false, use fault variables (described below) to retrieve details about the error, such as the fault name and cause.

  • GenerateAccessToken GenerateAuthorizationCode
  • GenerateAccessTokenImplicitGrant
  • RefreshAccessToken

Google Oauth Policy

Source https://stackoverflow.com/questions/71318804

QUESTION

Action requested: Declare your Ad ID permission

Asked 2022-Mar-15 at 13:37

Today i have got this email:

Last July, we announced Advertising policy changes to help bolster security and privacy. We added new restrictions on identifiers used by apps that target children. When users choose to delete their advertising ID in order to opt out of personalization advertising, developers will receive a string of zeros instead of the identifier if they attempt to access the identifier. This behavior will extend to phones, tablets, and Android TV starting April 1, 2022. We also announced that you need to declare an AD_ID permission when you update your app targeting API level to 31 (Android 12). Today, we are sharing that we will give developers more time to ease the transition. We will require this permission declaration when your apps are able to target Android 13 instead of starting with Android 12.

Action Items If you use an advertising ID, you must declare the AD_ID Permission when your app targets Android 13 or above. Apps that don’t declare the permission will get a string of zeros. Note: You’ll be able to target Android 13 later this year. If your app uses an SDK that has declared the Ad ID permission, it will acquire the permission declaration through manifest merge. If your app’s target audience includes children, you must not transmit Android Advertising ID (AAID) from children or users of unknown age.

My app is not using the Advertising ID. Should i declare the AD_ID Permission in Manifest or not?

ANSWER

Answered 2022-Mar-14 at 20:51

Google describe here how to solve

https://support.google.com/googleplay/android-developer/answer/6048248?hl=en

Add in manifest

1&lt;uses-permission android:name=&quot;com.google.android.gms.permission.AD_ID&quot;/&gt;
2

Source https://stackoverflow.com/questions/71473553

QUESTION

ASP.NET Core 6 how to access Configuration during startup

Asked 2022-Mar-08 at 11:45

In earlier versions, we had Startup.cs class and we get configuration object as follows in the Startup file.

1public class Startup 
2{
3    private readonly IHostEnvironment environment;
4    private readonly IConfiguration config;
5
6    public Startup(IConfiguration configuration, IHostEnvironment environment) 
7    {
8        this.config = configuration;
9        this.environment = environment;
10    }
11
12    public void ConfigureServices(IServiceCollection services) 
13    {
14        // Add Services
15    }
16
17    public void Configure(IApplicationBuilder app, IWebHostEnvironment env) 
18    {
19        // Add Middlewares
20    }
21
22}
23

Now in .NET 6 (With Visual Studio 2022), we don't see the Startup.cs class. Looks like its days are numbered. So how do we get these objects like Configuration(IConfiguration) and Hosting Environment(IHostEnvironment)

How do we get these objects, to say read the configuration from appsettings? Currently the Program.cs file looks like this.

1public class Startup 
2{
3    private readonly IHostEnvironment environment;
4    private readonly IConfiguration config;
5
6    public Startup(IConfiguration configuration, IHostEnvironment environment) 
7    {
8        this.config = configuration;
9        this.environment = environment;
10    }
11
12    public void ConfigureServices(IServiceCollection services) 
13    {
14        // Add Services
15    }
16
17    public void Configure(IApplicationBuilder app, IWebHostEnvironment env) 
18    {
19        // Add Middlewares
20    }
21
22}
23using Festify.Database;
24using Microsoft.EntityFrameworkCore;
25
26var builder = WebApplication.CreateBuilder(args);
27
28// Add services to the container.
29builder.Services.AddRazorPages();
30
31builder.Services.AddDbContext&lt;FestifyContext&gt;();
32
33
34////////////////////////////////////////////////
35// The following is Giving me error as Configuration 
36// object is not avaible, I dont know how to inject this here.
37////////////////////////////////////////////////
38
39
40builder.Services.AddDbContext&lt;FestifyContext&gt;(opt =&gt;
41        opt.UseSqlServer(
42            Configuration.GetConnectionString(&quot;Festify&quot;)));
43
44
45var app = builder.Build();
46
47// Configure the HTTP request pipeline.
48if (!app.Environment.IsDevelopment())
49{
50    app.UseExceptionHandler(&quot;/Error&quot;);
51    // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
52    app.UseHsts();
53}
54
55app.UseHttpsRedirection();
56app.UseStaticFiles();
57
58app.UseRouting();
59
60app.UseAuthorization();
61
62app.MapRazorPages();
63
64app.Run();
65

I want to know how to read the configuration from appsettings.json ?

ANSWER

Answered 2021-Oct-26 at 12:26

WebApplicationBuilder returned by WebApplication.CreateBuilder(args) exposes Configuration and Environment properties:

1public class Startup 
2{
3    private readonly IHostEnvironment environment;
4    private readonly IConfiguration config;
5
6    public Startup(IConfiguration configuration, IHostEnvironment environment) 
7    {
8        this.config = configuration;
9        this.environment = environment;
10    }
11
12    public void ConfigureServices(IServiceCollection services) 
13    {
14        // Add Services
15    }
16
17    public void Configure(IApplicationBuilder app, IWebHostEnvironment env) 
18    {
19        // Add Middlewares
20    }
21
22}
23using Festify.Database;
24using Microsoft.EntityFrameworkCore;
25
26var builder = WebApplication.CreateBuilder(args);
27
28// Add services to the container.
29builder.Services.AddRazorPages();
30
31builder.Services.AddDbContext&lt;FestifyContext&gt;();
32
33
34////////////////////////////////////////////////
35// The following is Giving me error as Configuration 
36// object is not avaible, I dont know how to inject this here.
37////////////////////////////////////////////////
38
39
40builder.Services.AddDbContext&lt;FestifyContext&gt;(opt =&gt;
41        opt.UseSqlServer(
42            Configuration.GetConnectionString(&quot;Festify&quot;)));
43
44
45var app = builder.Build();
46
47// Configure the HTTP request pipeline.
48if (!app.Environment.IsDevelopment())
49{
50    app.UseExceptionHandler(&quot;/Error&quot;);
51    // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
52    app.UseHsts();
53}
54
55app.UseHttpsRedirection();
56app.UseStaticFiles();
57
58app.UseRouting();
59
60app.UseAuthorization();
61
62app.MapRazorPages();
63
64app.Run();
65var builder = WebApplication.CreateBuilder(args);
66
67// Add services to the container.
68...
69ConfigurationManager configuration = builder.Configuration;
70IWebHostEnvironment environment = builder.Environment;
71

WebApplication returned by WebApplicationBuilder.Build() also exposes Configuration and Environment:

1public class Startup 
2{
3    private readonly IHostEnvironment environment;
4    private readonly IConfiguration config;
5
6    public Startup(IConfiguration configuration, IHostEnvironment environment) 
7    {
8        this.config = configuration;
9        this.environment = environment;
10    }
11
12    public void ConfigureServices(IServiceCollection services) 
13    {
14        // Add Services
15    }
16
17    public void Configure(IApplicationBuilder app, IWebHostEnvironment env) 
18    {
19        // Add Middlewares
20    }
21
22}
23using Festify.Database;
24using Microsoft.EntityFrameworkCore;
25
26var builder = WebApplication.CreateBuilder(args);
27
28// Add services to the container.
29builder.Services.AddRazorPages();
30
31builder.Services.AddDbContext&lt;FestifyContext&gt;();
32
33
34////////////////////////////////////////////////
35// The following is Giving me error as Configuration 
36// object is not avaible, I dont know how to inject this here.
37////////////////////////////////////////////////
38
39
40builder.Services.AddDbContext&lt;FestifyContext&gt;(opt =&gt;
41        opt.UseSqlServer(
42            Configuration.GetConnectionString(&quot;Festify&quot;)));
43
44
45var app = builder.Build();
46
47// Configure the HTTP request pipeline.
48if (!app.Environment.IsDevelopment())
49{
50    app.UseExceptionHandler(&quot;/Error&quot;);
51    // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
52    app.UseHsts();
53}
54
55app.UseHttpsRedirection();
56app.UseStaticFiles();
57
58app.UseRouting();
59
60app.UseAuthorization();
61
62app.MapRazorPages();
63
64app.Run();
65var builder = WebApplication.CreateBuilder(args);
66
67// Add services to the container.
68...
69ConfigurationManager configuration = builder.Configuration;
70IWebHostEnvironment environment = builder.Environment;
71var app = builder.Build();
72IConfiguration configuration = app.Configuration;
73IWebHostEnvironment environment = app.Environment;
74

Also check the migration guide and code samples.

Source https://stackoverflow.com/questions/69722872

QUESTION

How to use appsettings.json in Asp.net core 6 Program.cs file

Asked 2022-Feb-25 at 21:39

I'm trying to access appsettings.json in my Asp.net core v6 application Program.cs file, but in this version of .Net the Startup class and Program class are merged together and the using and another statements are simplified and removed from Program.cs. In this situation, How to access IConfiguration or how to use dependency injection for example ?

Edited : Here is my default Program.cs that Asp.net 6 created for me

1var builder = WebApplication.CreateBuilder(args);
2// Add services to the container.
3builder.Services.AddControllers();
4builder.Services.AddStackExchangeRedisCache(options =&gt;
5{
6    options.Configuration = &quot;localhost:6379&quot;;
7});
8
9builder.Services.AddSwaggerGen(c =&gt;
10{
11    c.SwaggerDoc(&quot;v1&quot;, new() { Title = &quot;BasketAPI&quot;, Version = &quot;v1&quot; });
12});
13var app = builder.Build();
14// Configure the HTTP request pipeline.
15if (app.Environment.IsDevelopment())
16{
17    app.UseSwagger();
18    app.UseSwaggerUI(c =&gt; c.SwaggerEndpoint(&quot;/swagger/v1/swagger.json&quot;, &quot;BasketAPI v1&quot;));
19}
20app.UseHttpsRedirection();
21app.UseAuthorization();
22app.MapControllers();
23app.Run();
24

For example , I want to use appsettings.json instead of hard typed connectionstring in this line :

1var builder = WebApplication.CreateBuilder(args);
2// Add services to the container.
3builder.Services.AddControllers();
4builder.Services.AddStackExchangeRedisCache(options =&gt;
5{
6    options.Configuration = &quot;localhost:6379&quot;;
7});
8
9builder.Services.AddSwaggerGen(c =&gt;
10{
11    c.SwaggerDoc(&quot;v1&quot;, new() { Title = &quot;BasketAPI&quot;, Version = &quot;v1&quot; });
12});
13var app = builder.Build();
14// Configure the HTTP request pipeline.
15if (app.Environment.IsDevelopment())
16{
17    app.UseSwagger();
18    app.UseSwaggerUI(c =&gt; c.SwaggerEndpoint(&quot;/swagger/v1/swagger.json&quot;, &quot;BasketAPI v1&quot;));
19}
20app.UseHttpsRedirection();
21app.UseAuthorization();
22app.MapControllers();
23app.Run();
24options.Configuration = &quot;localhost:6379&quot;;
25

ANSWER

Answered 2021-Sep-30 at 11:13

Assuming an appsettings.json

1var builder = WebApplication.CreateBuilder(args);
2// Add services to the container.
3builder.Services.AddControllers();
4builder.Services.AddStackExchangeRedisCache(options =&gt;
5{
6    options.Configuration = &quot;localhost:6379&quot;;
7});
8
9builder.Services.AddSwaggerGen(c =&gt;
10{
11    c.SwaggerDoc(&quot;v1&quot;, new() { Title = &quot;BasketAPI&quot;, Version = &quot;v1&quot; });
12});
13var app = builder.Build();
14// Configure the HTTP request pipeline.
15if (app.Environment.IsDevelopment())
16{
17    app.UseSwagger();
18    app.UseSwaggerUI(c =&gt; c.SwaggerEndpoint(&quot;/swagger/v1/swagger.json&quot;, &quot;BasketAPI v1&quot;));
19}
20app.UseHttpsRedirection();
21app.UseAuthorization();
22app.MapControllers();
23app.Run();
24options.Configuration = &quot;localhost:6379&quot;;
25{
26    &quot;RedisCacheOptions&quot; : {
27        &quot;Configuration&quot;: &quot;localhost:6379&quot;
28    }
29}
30

There is nothing stopping you from building a configuration object to extract the desired settings.

1var builder = WebApplication.CreateBuilder(args);
2// Add services to the container.
3builder.Services.AddControllers();
4builder.Services.AddStackExchangeRedisCache(options =&gt;
5{
6    options.Configuration = &quot;localhost:6379&quot;;
7});
8
9builder.Services.AddSwaggerGen(c =&gt;
10{
11    c.SwaggerDoc(&quot;v1&quot;, new() { Title = &quot;BasketAPI&quot;, Version = &quot;v1&quot; });
12});
13var app = builder.Build();
14// Configure the HTTP request pipeline.
15if (app.Environment.IsDevelopment())
16{
17    app.UseSwagger();
18    app.UseSwaggerUI(c =&gt; c.SwaggerEndpoint(&quot;/swagger/v1/swagger.json&quot;, &quot;BasketAPI v1&quot;));
19}
20app.UseHttpsRedirection();
21app.UseAuthorization();
22app.MapControllers();
23app.Run();
24options.Configuration = &quot;localhost:6379&quot;;
25{
26    &quot;RedisCacheOptions&quot; : {
27        &quot;Configuration&quot;: &quot;localhost:6379&quot;
28    }
29}
30IConfiguration configuration = new ConfigurationBuilder()
31                            .AddJsonFile(&quot;appsettings.json&quot;)
32                            .Build();
33
34var builder = WebApplication.CreateBuilder(args);
35// Add services to the container.
36builder.Services.AddControllers();
37builder.Services.AddStackExchangeRedisCache(options =&gt; {
38    options.Configuration = configuration[&quot;RedisCacheOptions:Configuration&quot;];
39});
40
41//...
42

Source https://stackoverflow.com/questions/69390676

QUESTION

android:exported needs to be explicitly specified for &lt;activity&gt;. Apps targeting Android 12 and higher are required to specify

Asked 2022-Feb-23 at 14:13

After upgrading to android 12, the application is not compiling. It shows

"Manifest merger failed with multiple errors, see logs"

Error showing in Merged manifest:

Merging Errors: Error: android:exported needs to be explicitly specified for . Apps targeting Android 12 and higher are required to specify an explicit value for android:exported when the corresponding component has an intent filter defined. See https://developer.android.com/guide/topics/manifest/activity-element#exported for details. main manifest (this file)

I have set all the activity with android:exported="false". But it is still showing this issue.

My manifest file:

1&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
2&lt;manifest xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;
3    xmlns:tools=&quot;http://schemas.android.com/tools&quot;
4    package=&quot;eu.siacs.conversations&quot;&gt;
5
6    &lt;uses-sdk tools:overrideLibrary=&quot;net.ypresto.androidtranscoder&quot; /&gt;
7
8    &lt;uses-permission android:name=&quot;android.permission.WRITE_EXTERNAL_STORAGE&quot; /&gt;
9    &lt;uses-permission android:name=&quot;android.permission.READ_EXTERNAL_STORAGE&quot; /&gt;
10    &lt;uses-permission android:name=&quot;android.permission.READ_CONTACTS&quot; /&gt;
11    &lt;uses-permission android:name=&quot;android.permission.READ_PROFILE&quot; /&gt;
12    &lt;uses-permission
13        android:name=&quot;android.permission.READ_PHONE_STATE&quot;
14        android:maxSdkVersion=&quot;22&quot; /&gt;
15    &lt;uses-permission android:name=&quot;android.permission.INTERNET&quot; /&gt;
16    &lt;uses-permission android:name=&quot;android.permission.ACCESS_NETWORK_STATE&quot; /&gt;
17    &lt;uses-permission android:name=&quot;android.permission.WAKE_LOCK&quot; /&gt;
18    &lt;uses-permission android:name=&quot;android.permission.RECEIVE_BOOT_COMPLETED&quot; /&gt;
19    &lt;uses-permission android:name=&quot;android.permission.VIBRATE&quot; /&gt;
20    &lt;uses-permission android:name=&quot;android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS&quot; /&gt;
21    &lt;uses-permission android:name=&quot;android.permission.ACCESS_COARSE_LOCATION&quot; /&gt;
22    &lt;uses-permission android:name=&quot;android.permission.ACCESS_FINE_LOCATION&quot; /&gt;
23    &lt;uses-permission android:name=&quot;android.permission.ACCESS_WIFI_STATE&quot; /&gt;
24    &lt;uses-permission android:name=&quot;android.permission.FOREGROUND_SERVICE&quot; /&gt;
25    &lt;uses-permission android:name=&quot;android.permission.REQUEST_INSTALL_PACKAGES&quot; /&gt;
26
27    &lt;uses-feature
28        android:name=&quot;android.hardware.location&quot;
29        android:required=&quot;false&quot; /&gt;
30    &lt;uses-feature
31        android:name=&quot;android.hardware.location.gps&quot;
32        android:required=&quot;false&quot; /&gt;
33    &lt;uses-feature
34        android:name=&quot;android.hardware.location.network&quot;
35        android:required=&quot;false&quot; /&gt;
36
37    &lt;uses-permission android:name=&quot;android.permission.CAMERA&quot; /&gt;
38    &lt;uses-permission android:name=&quot;android.permission.RECORD_AUDIO&quot; /&gt;
39    &lt;uses-permission android:name=&quot;android.permission.BLUETOOTH&quot; /&gt;
40    &lt;uses-permission android:name=&quot;android.permission.MODIFY_AUDIO_SETTINGS&quot; /&gt;
41    &lt;uses-permission android:name=&quot;android.permission.USE_FULL_SCREEN_INTENT&quot; /&gt;
42    &lt;uses-permission android:name=&quot;android.permission.SYSTEM_ALERT_WINDOW&quot; /&gt;
43
44    &lt;uses-feature
45        android:name=&quot;android.hardware.camera&quot;
46        android:required=&quot;false&quot; /&gt;
47    &lt;uses-feature
48        android:name=&quot;android.hardware.camera.autofocus&quot;
49        android:required=&quot;false&quot; /&gt;
50    &lt;uses-feature
51        android:name=&quot;android.hardware.microphone&quot;
52        android:required=&quot;false&quot; /&gt;
53
54    &lt;application
55        android:name=&quot;.Application&quot;
56        android:allowBackup=&quot;false&quot;
57        android:allowClearUserData=&quot;true&quot;
58        android:appCategory=&quot;social&quot;
59        android:hardwareAccelerated=&quot;true&quot;
60        android:icon=&quot;@mipmap/ic_app_launch&quot;
61        android:label=&quot;@string/app_name&quot;
62        android:largeHeap=&quot;true&quot;
63        android:networkSecurityConfig=&quot;@xml/network_security_configuration&quot;
64        android:requestLegacyExternalStorage=&quot;true&quot;
65        android:roundIcon=&quot;@mipmap/ic_app_launch_round&quot;
66        android:theme=&quot;@style/ConversationsTheme&quot;
67        android:usesCleartextTraffic=&quot;true&quot;
68        android:windowSoftInputMode=&quot;adjustPan|adjustResize&quot;
69        tools:replace=&quot;android:label&quot;
70        tools:targetApi=&quot;q&quot;&gt;
71        &lt;activity
72            android:name=&quot;.ui.search.GroupSearchActivity&quot;
73            android:exported=&quot;true&quot; /&gt;
74        &lt;activity
75            android:name=&quot;.ui.profileUpdating.FavouritesActivity&quot;
76            android:exported=&quot;true&quot; /&gt;
77        &lt;activity
78            android:name=&quot;.ui.profileUpdating.NameActivity&quot;
79            android:exported=&quot;true&quot; /&gt;
80        &lt;activity
81            android:name=&quot;.ui.CompulsoryUpdateActivity&quot;
82            android:exported=&quot;true&quot; /&gt;
83        &lt;activity android:name=&quot;.ui.payments.doPayment.DoPaymentActivity&quot;
84            android:exported=&quot;true&quot; /&gt;
85        &lt;activity android:name=&quot;.ui.individualList.IndividualListActivity&quot;
86            android:exported=&quot;true&quot; /&gt;
87        &lt;activity android:name=&quot;.ui.payments.setPayment.SetPaymentActivity&quot;
88            android:exported=&quot;true&quot; /&gt;
89        &lt;activity android:name=&quot;.ui.login.otpActivity.OTPActivity&quot;
90            android:exported=&quot;true&quot; /&gt;
91        &lt;activity android:name=&quot;.ui.login.loginActivity.LoginActivity&quot;
92            android:exported=&quot;true&quot; /&gt;
93
94        &lt;service android:name=&quot;.services.XmppConnectionService&quot; android:exported=&quot;true&quot; /&gt;
95
96        &lt;receiver android:name=&quot;.services.EventReceiver&quot;
97            android:exported=&quot;true&quot;&gt;
98            &lt;intent-filter&gt;
99                &lt;action android:name=&quot;android.intent.action.BOOT_COMPLETED&quot; /&gt;
100                &lt;action android:name=&quot;android.net.conn.CONNECTIVITY_CHANGE&quot; /&gt;
101                &lt;action android:name=&quot;android.intent.action.ACTION_SHUTDOWN&quot; /&gt;
102                &lt;action android:name=&quot;android.media.RINGER_MODE_CHANGED&quot; /&gt;
103            &lt;/intent-filter&gt;
104        &lt;/receiver&gt;
105
106        &lt;activity
107            android:name=&quot;.ui.ShareLocationActivity&quot;
108            android:label=&quot;@string/title_activity_share_location&quot;
109            android:exported=&quot;true&quot;/&gt;
110        &lt;activity
111            android:name=&quot;.ui.SearchActivity&quot;
112            android:label=&quot;@string/search_messages&quot;
113            android:exported=&quot;true&quot; /&gt;
114        &lt;activity
115            android:name=&quot;.ui.RecordingActivity&quot;
116            android:configChanges=&quot;orientation|screenSize&quot;
117            android:theme=&quot;@style/ConversationsTheme.Dialog&quot;
118            android:exported=&quot;true&quot; /&gt;
119        &lt;activity
120            android:name=&quot;.ui.ShowLocationActivity&quot;
121            android:label=&quot;@string/title_activity_show_location&quot;
122            android:exported=&quot;true&quot; /&gt;
123        &lt;activity
124            android:name=&quot;.ui.SplashActivity&quot;
125            android:theme=&quot;@style/SplashTheme&quot;
126            android:exported=&quot;true&quot;&gt;
127            &lt;intent-filter&gt;
128                &lt;action android:name=&quot;android.intent.action.MAIN&quot; /&gt;
129
130                &lt;category android:name=&quot;android.intent.category.LAUNCHER&quot; /&gt;
131            &lt;/intent-filter&gt;
132        &lt;/activity&gt;
133        &lt;activity
134            android:name=&quot;.ui.ConversationsActivity&quot;
135            android:label=&quot;@string/app_name&quot;
136            android:launchMode=&quot;singleTask&quot;
137            android:minWidth=&quot;300dp&quot;
138            android:minHeight=&quot;300dp&quot;
139            android:exported=&quot;true&quot;
140            android:windowSoftInputMode=&quot;stateHidden&quot; /&gt;
141        &lt;activity
142            android:name=&quot;.ui.ScanActivity&quot;
143            android:screenOrientation=&quot;portrait&quot;
144            android:exported=&quot;true&quot;
145            android:theme=&quot;@style/ConversationsTheme.FullScreen&quot;
146            android:windowSoftInputMode=&quot;stateAlwaysHidden&quot; /&gt;
147        &lt;activity
148            android:name=&quot;.ui.UriHandlerActivity&quot;
149            android:label=&quot;@string/app_name&quot;
150            android:exported=&quot;true&quot;&gt;
151            &lt;intent-filter&gt;
152                &lt;action android:name=&quot;android.intent.action.VIEW&quot; /&gt;
153
154                &lt;category android:name=&quot;android.intent.category.DEFAULT&quot; /&gt;
155                &lt;category android:name=&quot;android.intent.category.BROWSABLE&quot; /&gt;
156
157                &lt;data android:scheme=&quot;xmpp&quot; /&gt;
158            &lt;/intent-filter&gt;
159            &lt;intent-filter android:autoVerify=&quot;true&quot;&gt;
160                &lt;action android:name=&quot;android.intent.action.VIEW&quot; /&gt;
161
162                &lt;category android:name=&quot;android.intent.category.DEFAULT&quot; /&gt;
163                &lt;category android:name=&quot;android.intent.category.BROWSABLE&quot; /&gt;
164
165                &lt;data android:scheme=&quot;https&quot; /&gt;
166                &lt;data android:host=&quot;im.app.in&quot; /&gt;
167                &lt;data android:pathPrefix=&quot;/i/&quot; /&gt;
168                &lt;data android:pathPrefix=&quot;/j/&quot; /&gt;
169            &lt;/intent-filter&gt;
170            &lt;intent-filter&gt;
171                &lt;action android:name=&quot;android.intent.action.SENDTO&quot; /&gt;
172
173                &lt;category android:name=&quot;android.intent.category.DEFAULT&quot; /&gt;
174
175                &lt;data android:scheme=&quot;imto&quot; /&gt;
176                &lt;data android:host=&quot;jabber&quot; /&gt;
177            &lt;/intent-filter&gt;
178        &lt;/activity&gt;
179        &lt;activity
180            android:name=&quot;.ui.StartConversationActivity&quot;
181            android:label=&quot;@string/title_activity_start_conversation&quot;
182            android:launchMode=&quot;singleTop&quot;
183            android:exported=&quot;true&quot;&gt;
184            &lt;intent-filter&gt;
185                &lt;action android:name=&quot;android.intent.action.VIEW&quot; /&gt;
186            &lt;/intent-filter&gt;
187        &lt;/activity&gt;
188        &lt;activity
189            android:name=&quot;.ui.SettingsActivity&quot;
190            android:label=&quot;@string/title_activity_settings&quot;
191            android:exported=&quot;true&quot;&gt;
192            &lt;intent-filter&gt;
193                &lt;action android:name=&quot;android.intent.action.MAIN&quot; /&gt;
194
195                &lt;category android:name=&quot;android.intent.category.NOTIFICATION_PREFERENCES&quot; /&gt;
196            &lt;/intent-filter&gt;
197        &lt;/activity&gt;
198        &lt;activity
199            android:name=&quot;.ui.ChooseContactActivity&quot;
200            android:label=&quot;@string/title_activity_choose_contact&quot;
201            android:exported=&quot;true&quot; /&gt;
202        &lt;activity
203            android:name=&quot;.ui.BlocklistActivity&quot;
204            android:label=&quot;@string/title_activity_block_list&quot;
205            android:exported=&quot;true&quot;/&gt;
206        &lt;activity
207            android:name=&quot;.ui.ChangePasswordActivity&quot;
208            android:label=&quot;@string/change_password_on_server&quot;
209            android:exported=&quot;true&quot;/&gt;
210        &lt;activity
211            android:name=&quot;.ui.ChooseAccountForProfilePictureActivity&quot;
212            android:enabled=&quot;false&quot;
213            android:label=&quot;@string/choose_account&quot;
214            android:exported=&quot;true&quot;&gt;
215            &lt;intent-filter android:label=&quot;@string/set_profile_picture&quot;&gt;
216                &lt;action android:name=&quot;android.intent.action.ATTACH_DATA&quot; /&gt;
217
218                &lt;category android:name=&quot;android.intent.category.DEFAULT&quot; /&gt;
219
220                &lt;data android:mimeType=&quot;image/*&quot; /&gt;
221            &lt;/intent-filter&gt;
222        &lt;/activity&gt;
223        &lt;activity
224            android:name=&quot;.ui.ShareViaAccountActivity&quot;
225            android:label=&quot;@string/title_activity_share_via_account&quot;
226            android:launchMode=&quot;singleTop&quot;
227            android:exported=&quot;true&quot; /&gt;
228        &lt;activity
229            android:name=&quot;.ui.EditAccountActivity&quot;
230            android:launchMode=&quot;singleTop&quot;
231            android:exported=&quot;true&quot;
232            android:windowSoftInputMode=&quot;stateHidden|adjustResize&quot; /&gt;
233        &lt;activity
234            android:name=&quot;.ui.ConferenceDetailsActivity&quot;
235            android:label=&quot;@string/action_muc_details&quot;
236            android:exported=&quot;true&quot;
237            android:windowSoftInputMode=&quot;stateHidden&quot; /&gt;
238        &lt;activity
239            android:name=&quot;.ui.ContactDetailsActivity&quot;
240            android:exported=&quot;true&quot;
241            android:windowSoftInputMode=&quot;stateHidden&quot; /&gt;
242        &lt;activity
243            android:name=&quot;.ui.PublishProfilePictureActivity&quot;
244            android:label=&quot;@string/mgmt_account_publish_avatar&quot;
245            android:exported=&quot;true&quot;
246            android:windowSoftInputMode=&quot;stateHidden&quot; /&gt;
247        &lt;activity
248            android:name=&quot;.ui.PublishGroupChatProfilePictureActivity&quot;
249            android:exported=&quot;true&quot;
250            android:label=&quot;@string/group_chat_avatar&quot; /&gt;
251        &lt;activity
252            android:name=&quot;.ui.ShareWithActivity&quot;
253            android:label=&quot;@string/app_name&quot;
254            android:launchMode=&quot;singleTop&quot;
255            android:exported=&quot;true&quot;&gt;
256            &lt;intent-filter&gt;
257                &lt;action android:name=&quot;android.intent.action.SEND&quot; /&gt;
258                &lt;action android:name=&quot;android.intent.action.SEND_MULTIPLE&quot; /&gt;
259
260                &lt;category android:name=&quot;android.intent.category.DEFAULT&quot; /&gt;
261
262                &lt;data android:mimeType=&quot;text/plain&quot; /&gt;
263            &lt;/intent-filter&gt;
264            &lt;intent-filter&gt;
265                &lt;action android:name=&quot;android.intent.action.SEND&quot; /&gt;
266                &lt;action android:name=&quot;android.intent.action.SEND_MULTIPLE&quot; /&gt;
267
268                &lt;category android:name=&quot;android.intent.category.DEFAULT&quot; /&gt;
269
270                &lt;data android:mimeType=&quot;*/*&quot; /&gt;
271            &lt;/intent-filter&gt;
272
273            &lt;!-- the value here needs to be the full class name; independent of the configured applicationId --&gt;
274            &lt;meta-data
275                android:name=&quot;android.service.chooser.chooser_target_service&quot;
276                android:value=&quot;eu.siacs.conversations.services.ContactChooserTargetService&quot; /&gt;
277        &lt;/activity&gt;
278        &lt;activity
279            android:name=&quot;.ui.TrustKeysActivity&quot;
280            android:label=&quot;@string/trust_omemo_fingerprints&quot;
281            android:exported=&quot;true&quot;
282            android:windowSoftInputMode=&quot;stateAlwaysHidden&quot; /&gt;
283        &lt;activity
284            android:name=&quot;com.theartofdev.edmodo.cropper.CropImageActivity&quot;
285            android:exported=&quot;true&quot;
286            android:theme=&quot;@style/Base.Theme.AppCompat&quot; /&gt;
287        &lt;activity android:name=&quot;.ui.MemorizingActivity&quot;
288            android:exported=&quot;true&quot; /&gt;
289        &lt;activity
290            android:name=&quot;.ui.MediaBrowserActivity&quot;
291            android:exported=&quot;true&quot;
292            android:label=&quot;@string/media_browser&quot; /&gt;
293
294        &lt;service android:name=&quot;.services.ExportBackupService&quot; android:exported=&quot;true&quot;/&gt;
295        &lt;service android:name=&quot;.services.ImportBackupService&quot; android:exported=&quot;true&quot;/&gt;
296        &lt;service
297            android:name=&quot;.services.ContactChooserTargetService&quot;
298            android:permission=&quot;android.permission.BIND_CHOOSER_TARGET_SERVICE&quot;
299            android:exported=&quot;true&quot;&gt;
300            &lt;intent-filter&gt;
301                &lt;action android:name=&quot;android.service.chooser.ChooserTargetService&quot; /&gt;
302            &lt;/intent-filter&gt;
303        &lt;/service&gt;
304        &lt;service android:name=&quot;.services.CompulsoryUpdateService&quot; android:exported=&quot;true&quot;/&gt;
305
306        &lt;provider
307            android:name=&quot;androidx.core.content.FileProvider&quot;
308            android:authorities=&quot;${applicationId}.files&quot;
309            android:exported=&quot;false&quot;
310            android:grantUriPermissions=&quot;true&quot;&gt;
311            &lt;meta-data
312                android:name=&quot;android.support.FILE_PROVIDER_PATHS&quot;
313                android:resource=&quot;@xml/file_paths&quot; /&gt;
314        &lt;/provider&gt;
315        &lt;provider
316            android:name=&quot;.services.BarcodeProvider&quot;
317            android:authorities=&quot;${applicationId}.barcodes&quot;
318            android:exported=&quot;false&quot;
319            android:grantUriPermissions=&quot;true&quot; /&gt;
320
321        &lt;activity
322            android:name=&quot;.ui.ShortcutActivity&quot;
323            android:label=&quot;@string/contact&quot;
324            android:exported=&quot;true&quot;&gt;
325            &lt;intent-filter&gt;
326                &lt;action android:name=&quot;android.intent.action.CREATE_SHORTCUT&quot; /&gt;
327            &lt;/intent-filter&gt;
328        &lt;/activity&gt;
329        &lt;activity
330            android:name=&quot;.ui.MucUsersActivity&quot;
331            android:exported=&quot;true&quot;
332            android:label=&quot;@string/group_chat_members&quot; /&gt;
333        &lt;activity
334            android:name=&quot;.ui.ChannelDiscoveryActivity&quot;
335            android:exported=&quot;true&quot;
336            android:label=&quot;@string/discover_channels&quot; /&gt;
337        &lt;activity
338            android:name=&quot;.ui.RtpSessionActivity&quot;
339            android:autoRemoveFromRecents=&quot;true&quot;
340            android:exported=&quot;true&quot;
341            android:launchMode=&quot;singleInstance&quot;
342            android:supportsPictureInPicture=&quot;true&quot; /&gt;
343    &lt;/application&gt;
344
345&lt;/manifest&gt;
346

My second manifest file:

1&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
2&lt;manifest xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;
3    xmlns:tools=&quot;http://schemas.android.com/tools&quot;
4    package=&quot;eu.siacs.conversations&quot;&gt;
5
6    &lt;uses-sdk tools:overrideLibrary=&quot;net.ypresto.androidtranscoder&quot; /&gt;
7
8    &lt;uses-permission android:name=&quot;android.permission.WRITE_EXTERNAL_STORAGE&quot; /&gt;
9    &lt;uses-permission android:name=&quot;android.permission.READ_EXTERNAL_STORAGE&quot; /&gt;
10    &lt;uses-permission android:name=&quot;android.permission.READ_CONTACTS&quot; /&gt;
11    &lt;uses-permission android:name=&quot;android.permission.READ_PROFILE&quot; /&gt;
12    &lt;uses-permission
13        android:name=&quot;android.permission.READ_PHONE_STATE&quot;
14        android:maxSdkVersion=&quot;22&quot; /&gt;
15    &lt;uses-permission android:name=&quot;android.permission.INTERNET&quot; /&gt;
16    &lt;uses-permission android:name=&quot;android.permission.ACCESS_NETWORK_STATE&quot; /&gt;
17    &lt;uses-permission android:name=&quot;android.permission.WAKE_LOCK&quot; /&gt;
18    &lt;uses-permission android:name=&quot;android.permission.RECEIVE_BOOT_COMPLETED&quot; /&gt;
19    &lt;uses-permission android:name=&quot;android.permission.VIBRATE&quot; /&gt;
20    &lt;uses-permission android:name=&quot;android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS&quot; /&gt;
21    &lt;uses-permission android:name=&quot;android.permission.ACCESS_COARSE_LOCATION&quot; /&gt;
22    &lt;uses-permission android:name=&quot;android.permission.ACCESS_FINE_LOCATION&quot; /&gt;
23    &lt;uses-permission android:name=&quot;android.permission.ACCESS_WIFI_STATE&quot; /&gt;
24    &lt;uses-permission android:name=&quot;android.permission.FOREGROUND_SERVICE&quot; /&gt;
25    &lt;uses-permission android:name=&quot;android.permission.REQUEST_INSTALL_PACKAGES&quot; /&gt;
26
27    &lt;uses-feature
28        android:name=&quot;android.hardware.location&quot;
29        android:required=&quot;false&quot; /&gt;
30    &lt;uses-feature
31        android:name=&quot;android.hardware.location.gps&quot;
32        android:required=&quot;false&quot; /&gt;
33    &lt;uses-feature
34        android:name=&quot;android.hardware.location.network&quot;
35        android:required=&quot;false&quot; /&gt;
36
37    &lt;uses-permission android:name=&quot;android.permission.CAMERA&quot; /&gt;
38    &lt;uses-permission android:name=&quot;android.permission.RECORD_AUDIO&quot; /&gt;
39    &lt;uses-permission android:name=&quot;android.permission.BLUETOOTH&quot; /&gt;
40    &lt;uses-permission android:name=&quot;android.permission.MODIFY_AUDIO_SETTINGS&quot; /&gt;
41    &lt;uses-permission android:name=&quot;android.permission.USE_FULL_SCREEN_INTENT&quot; /&gt;
42    &lt;uses-permission android:name=&quot;android.permission.SYSTEM_ALERT_WINDOW&quot; /&gt;
43
44    &lt;uses-feature
45        android:name=&quot;android.hardware.camera&quot;
46        android:required=&quot;false&quot; /&gt;
47    &lt;uses-feature
48        android:name=&quot;android.hardware.camera.autofocus&quot;
49        android:required=&quot;false&quot; /&gt;
50    &lt;uses-feature
51        android:name=&quot;android.hardware.microphone&quot;
52        android:required=&quot;false&quot; /&gt;
53
54    &lt;application
55        android:name=&quot;.Application&quot;
56        android:allowBackup=&quot;false&quot;
57        android:allowClearUserData=&quot;true&quot;
58        android:appCategory=&quot;social&quot;
59        android:hardwareAccelerated=&quot;true&quot;
60        android:icon=&quot;@mipmap/ic_app_launch&quot;
61        android:label=&quot;@string/app_name&quot;
62        android:largeHeap=&quot;true&quot;
63        android:networkSecurityConfig=&quot;@xml/network_security_configuration&quot;
64        android:requestLegacyExternalStorage=&quot;true&quot;
65        android:roundIcon=&quot;@mipmap/ic_app_launch_round&quot;
66        android:theme=&quot;@style/ConversationsTheme&quot;
67        android:usesCleartextTraffic=&quot;true&quot;
68        android:windowSoftInputMode=&quot;adjustPan|adjustResize&quot;
69        tools:replace=&quot;android:label&quot;
70        tools:targetApi=&quot;q&quot;&gt;
71        &lt;activity
72            android:name=&quot;.ui.search.GroupSearchActivity&quot;
73            android:exported=&quot;true&quot; /&gt;
74        &lt;activity
75            android:name=&quot;.ui.profileUpdating.FavouritesActivity&quot;
76            android:exported=&quot;true&quot; /&gt;
77        &lt;activity
78            android:name=&quot;.ui.profileUpdating.NameActivity&quot;
79            android:exported=&quot;true&quot; /&gt;
80        &lt;activity
81            android:name=&quot;.ui.CompulsoryUpdateActivity&quot;
82            android:exported=&quot;true&quot; /&gt;
83        &lt;activity android:name=&quot;.ui.payments.doPayment.DoPaymentActivity&quot;
84            android:exported=&quot;true&quot; /&gt;
85        &lt;activity android:name=&quot;.ui.individualList.IndividualListActivity&quot;
86            android:exported=&quot;true&quot; /&gt;
87        &lt;activity android:name=&quot;.ui.payments.setPayment.SetPaymentActivity&quot;
88            android:exported=&quot;true&quot; /&gt;
89        &lt;activity android:name=&quot;.ui.login.otpActivity.OTPActivity&quot;
90            android:exported=&quot;true&quot; /&gt;
91        &lt;activity android:name=&quot;.ui.login.loginActivity.LoginActivity&quot;
92            android:exported=&quot;true&quot; /&gt;
93
94        &lt;service android:name=&quot;.services.XmppConnectionService&quot; android:exported=&quot;true&quot; /&gt;
95
96        &lt;receiver android:name=&quot;.services.EventReceiver&quot;
97            android:exported=&quot;true&quot;&gt;
98            &lt;intent-filter&gt;
99                &lt;action android:name=&quot;android.intent.action.BOOT_COMPLETED&quot; /&gt;
100                &lt;action android:name=&quot;android.net.conn.CONNECTIVITY_CHANGE&quot; /&gt;
101                &lt;action android:name=&quot;android.intent.action.ACTION_SHUTDOWN&quot; /&gt;
102                &lt;action android:name=&quot;android.media.RINGER_MODE_CHANGED&quot; /&gt;
103            &lt;/intent-filter&gt;
104        &lt;/receiver&gt;
105
106        &lt;activity
107            android:name=&quot;.ui.ShareLocationActivity&quot;
108            android:label=&quot;@string/title_activity_share_location&quot;
109            android:exported=&quot;true&quot;/&gt;
110        &lt;activity
111            android:name=&quot;.ui.SearchActivity&quot;
112            android:label=&quot;@string/search_messages&quot;
113            android:exported=&quot;true&quot; /&gt;
114        &lt;activity
115            android:name=&quot;.ui.RecordingActivity&quot;
116            android:configChanges=&quot;orientation|screenSize&quot;
117            android:theme=&quot;@style/ConversationsTheme.Dialog&quot;
118            android:exported=&quot;true&quot; /&gt;
119        &lt;activity
120            android:name=&quot;.ui.ShowLocationActivity&quot;
121            android:label=&quot;@string/title_activity_show_location&quot;
122            android:exported=&quot;true&quot; /&gt;
123        &lt;activity
124            android:name=&quot;.ui.SplashActivity&quot;
125            android:theme=&quot;@style/SplashTheme&quot;
126            android:exported=&quot;true&quot;&gt;
127            &lt;intent-filter&gt;
128                &lt;action android:name=&quot;android.intent.action.MAIN&quot; /&gt;
129
130                &lt;category android:name=&quot;android.intent.category.LAUNCHER&quot; /&gt;
131            &lt;/intent-filter&gt;
132        &lt;/activity&gt;
133        &lt;activity
134            android:name=&quot;.ui.ConversationsActivity&quot;
135            android:label=&quot;@string/app_name&quot;
136            android:launchMode=&quot;singleTask&quot;
137            android:minWidth=&quot;300dp&quot;
138            android:minHeight=&quot;300dp&quot;
139            android:exported=&quot;true&quot;
140            android:windowSoftInputMode=&quot;stateHidden&quot; /&gt;
141        &lt;activity
142            android:name=&quot;.ui.ScanActivity&quot;
143            android:screenOrientation=&quot;portrait&quot;
144            android:exported=&quot;true&quot;
145            android:theme=&quot;@style/ConversationsTheme.FullScreen&quot;
146            android:windowSoftInputMode=&quot;stateAlwaysHidden&quot; /&gt;
147        &lt;activity
148            android:name=&quot;.ui.UriHandlerActivity&quot;
149            android:label=&quot;@string/app_name&quot;
150            android:exported=&quot;true&quot;&gt;
151            &lt;intent-filter&gt;
152                &lt;action android:name=&quot;android.intent.action.VIEW&quot; /&gt;
153
154                &lt;category android:name=&quot;android.intent.category.DEFAULT&quot; /&gt;
155                &lt;category android:name=&quot;android.intent.category.BROWSABLE&quot; /&gt;
156
157                &lt;data android:scheme=&quot;xmpp&quot; /&gt;
158            &lt;/intent-filter&gt;
159            &lt;intent-filter android:autoVerify=&quot;true&quot;&gt;
160                &lt;action android:name=&quot;android.intent.action.VIEW&quot; /&gt;
161
162                &lt;category android:name=&quot;android.intent.category.DEFAULT&quot; /&gt;
163                &lt;category android:name=&quot;android.intent.category.BROWSABLE&quot; /&gt;
164
165                &lt;data android:scheme=&quot;https&quot; /&gt;
166                &lt;data android:host=&quot;im.app.in&quot; /&gt;
167                &lt;data android:pathPrefix=&quot;/i/&quot; /&gt;
168                &lt;data android:pathPrefix=&quot;/j/&quot; /&gt;
169            &lt;/intent-filter&gt;
170            &lt;intent-filter&gt;
171                &lt;action android:name=&quot;android.intent.action.SENDTO&quot; /&gt;
172
173                &lt;category android:name=&quot;android.intent.category.DEFAULT&quot; /&gt;
174
175                &lt;data android:scheme=&quot;imto&quot; /&gt;
176                &lt;data android:host=&quot;jabber&quot; /&gt;
177            &lt;/intent-filter&gt;
178        &lt;/activity&gt;
179        &lt;activity
180            android:name=&quot;.ui.StartConversationActivity&quot;
181            android:label=&quot;@string/title_activity_start_conversation&quot;
182            android:launchMode=&quot;singleTop&quot;
183            android:exported=&quot;true&quot;&gt;
184            &lt;intent-filter&gt;
185                &lt;action android:name=&quot;android.intent.action.VIEW&quot; /&gt;
186            &lt;/intent-filter&gt;
187        &lt;/activity&gt;
188        &lt;activity
189            android:name=&quot;.ui.SettingsActivity&quot;
190            android:label=&quot;@string/title_activity_settings&quot;
191            android:exported=&quot;true&quot;&gt;
192            &lt;intent-filter&gt;
193                &lt;action android:name=&quot;android.intent.action.MAIN&quot; /&gt;
194
195                &lt;category android:name=&quot;android.intent.category.NOTIFICATION_PREFERENCES&quot; /&gt;
196            &lt;/intent-filter&gt;
197        &lt;/activity&gt;
198        &lt;activity
199            android:name=&quot;.ui.ChooseContactActivity&quot;
200            android:label=&quot;@string/title_activity_choose_contact&quot;
201            android:exported=&quot;true&quot; /&gt;
202        &lt;activity
203            android:name=&quot;.ui.BlocklistActivity&quot;
204            android:label=&quot;@string/title_activity_block_list&quot;
205            android:exported=&quot;true&quot;/&gt;
206        &lt;activity
207            android:name=&quot;.ui.ChangePasswordActivity&quot;
208            android:label=&quot;@string/change_password_on_server&quot;
209            android:exported=&quot;true&quot;/&gt;
210        &lt;activity
211            android:name=&quot;.ui.ChooseAccountForProfilePictureActivity&quot;
212            android:enabled=&quot;false&quot;
213            android:label=&quot;@string/choose_account&quot;
214            android:exported=&quot;true&quot;&gt;
215            &lt;intent-filter android:label=&quot;@string/set_profile_picture&quot;&gt;
216                &lt;action android:name=&quot;android.intent.action.ATTACH_DATA&quot; /&gt;
217
218                &lt;category android:name=&quot;android.intent.category.DEFAULT&quot; /&gt;
219
220                &lt;data android:mimeType=&quot;image/*&quot; /&gt;
221            &lt;/intent-filter&gt;
222        &lt;/activity&gt;
223        &lt;activity
224            android:name=&quot;.ui.ShareViaAccountActivity&quot;
225            android:label=&quot;@string/title_activity_share_via_account&quot;
226            android:launchMode=&quot;singleTop&quot;
227            android:exported=&quot;true&quot; /&gt;
228        &lt;activity
229            android:name=&quot;.ui.EditAccountActivity&quot;
230            android:launchMode=&quot;singleTop&quot;
231            android:exported=&quot;true&quot;
232            android:windowSoftInputMode=&quot;stateHidden|adjustResize&quot; /&gt;
233        &lt;activity
234            android:name=&quot;.ui.ConferenceDetailsActivity&quot;
235            android:label=&quot;@string/action_muc_details&quot;
236            android:exported=&quot;true&quot;
237            android:windowSoftInputMode=&quot;stateHidden&quot; /&gt;
238        &lt;activity
239            android:name=&quot;.ui.ContactDetailsActivity&quot;
240            android:exported=&quot;true&quot;
241            android:windowSoftInputMode=&quot;stateHidden&quot; /&gt;
242        &lt;activity
243            android:name=&quot;.ui.PublishProfilePictureActivity&quot;
244            android:label=&quot;@string/mgmt_account_publish_avatar&quot;
245            android:exported=&quot;true&quot;
246            android:windowSoftInputMode=&quot;stateHidden&quot; /&gt;
247        &lt;activity
248            android:name=&quot;.ui.PublishGroupChatProfilePictureActivity&quot;
249            android:exported=&quot;true&quot;
250            android:label=&quot;@string/group_chat_avatar&quot; /&gt;
251        &lt;activity
252            android:name=&quot;.ui.ShareWithActivity&quot;
253            android:label=&quot;@string/app_name&quot;
254            android:launchMode=&quot;singleTop&quot;
255            android:exported=&quot;true&quot;&gt;
256            &lt;intent-filter&gt;
257                &lt;action android:name=&quot;android.intent.action.SEND&quot; /&gt;
258                &lt;action android:name=&quot;android.intent.action.SEND_MULTIPLE&quot; /&gt;
259
260                &lt;category android:name=&quot;android.intent.category.DEFAULT&quot; /&gt;
261
262                &lt;data android:mimeType=&quot;text/plain&quot; /&gt;
263            &lt;/intent-filter&gt;
264            &lt;intent-filter&gt;
265                &lt;action android:name=&quot;android.intent.action.SEND&quot; /&gt;
266                &lt;action android:name=&quot;android.intent.action.SEND_MULTIPLE&quot; /&gt;
267
268                &lt;category android:name=&quot;android.intent.category.DEFAULT&quot; /&gt;
269
270                &lt;data android:mimeType=&quot;*/*&quot; /&gt;
271            &lt;/intent-filter&gt;
272
273            &lt;!-- the value here needs to be the full class name; independent of the configured applicationId --&gt;
274            &lt;meta-data
275                android:name=&quot;android.service.chooser.chooser_target_service&quot;
276                android:value=&quot;eu.siacs.conversations.services.ContactChooserTargetService&quot; /&gt;
277        &lt;/activity&gt;
278        &lt;activity
279            android:name=&quot;.ui.TrustKeysActivity&quot;
280            android:label=&quot;@string/trust_omemo_fingerprints&quot;
281            android:exported=&quot;true&quot;
282            android:windowSoftInputMode=&quot;stateAlwaysHidden&quot; /&gt;
283        &lt;activity
284            android:name=&quot;com.theartofdev.edmodo.cropper.CropImageActivity&quot;
285            android:exported=&quot;true&quot;
286            android:theme=&quot;@style/Base.Theme.AppCompat&quot; /&gt;
287        &lt;activity android:name=&quot;.ui.MemorizingActivity&quot;
288            android:exported=&quot;true&quot; /&gt;
289        &lt;activity
290            android:name=&quot;.ui.MediaBrowserActivity&quot;
291            android:exported=&quot;true&quot;
292            android:label=&quot;@string/media_browser&quot; /&gt;
293
294        &lt;service android:name=&quot;.services.ExportBackupService&quot; android:exported=&quot;true&quot;/&gt;
295        &lt;service android:name=&quot;.services.ImportBackupService&quot; android:exported=&quot;true&quot;/&gt;
296        &lt;service
297            android:name=&quot;.services.ContactChooserTargetService&quot;
298            android:permission=&quot;android.permission.BIND_CHOOSER_TARGET_SERVICE&quot;
299            android:exported=&quot;true&quot;&gt;
300            &lt;intent-filter&gt;
301                &lt;action android:name=&quot;android.service.chooser.ChooserTargetService&quot; /&gt;
302            &lt;/intent-filter&gt;
303        &lt;/service&gt;
304        &lt;service android:name=&quot;.services.CompulsoryUpdateService&quot; android:exported=&quot;true&quot;/&gt;
305
306        &lt;provider
307            android:name=&quot;androidx.core.content.FileProvider&quot;
308            android:authorities=&quot;${applicationId}.files&quot;
309            android:exported=&quot;false&quot;
310            android:grantUriPermissions=&quot;true&quot;&gt;
311            &lt;meta-data
312                android:name=&quot;android.support.FILE_PROVIDER_PATHS&quot;
313                android:resource=&quot;@xml/file_paths&quot; /&gt;
314        &lt;/provider&gt;
315        &lt;provider
316            android:name=&quot;.services.BarcodeProvider&quot;
317            android:authorities=&quot;${applicationId}.barcodes&quot;
318            android:exported=&quot;false&quot;
319            android:grantUriPermissions=&quot;true&quot; /&gt;
320
321        &lt;activity
322            android:name=&quot;.ui.ShortcutActivity&quot;
323            android:label=&quot;@string/contact&quot;
324            android:exported=&quot;true&quot;&gt;
325            &lt;intent-filter&gt;
326                &lt;action android:name=&quot;android.intent.action.CREATE_SHORTCUT&quot; /&gt;
327            &lt;/intent-filter&gt;
328        &lt;/activity&gt;
329        &lt;activity
330            android:name=&quot;.ui.MucUsersActivity&quot;
331            android:exported=&quot;true&quot;
332            android:label=&quot;@string/group_chat_members&quot; /&gt;
333        &lt;activity
334            android:name=&quot;.ui.ChannelDiscoveryActivity&quot;
335            android:exported=&quot;true&quot;
336            android:label=&quot;@string/discover_channels&quot; /&gt;
337        &lt;activity
338            android:name=&quot;.ui.RtpSessionActivity&quot;
339            android:autoRemoveFromRecents=&quot;true&quot;
340            android:exported=&quot;true&quot;
341            android:launchMode=&quot;singleInstance&quot;
342            android:supportsPictureInPicture=&quot;true&quot; /&gt;
343    &lt;/application&gt;
344
345&lt;/manifest&gt;
346&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
347&lt;manifest xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;
348    xmlns:tools=&quot;http://schemas.android.com/tools&quot;
349    package=&quot;eu.siacs.conversations&quot;&gt;
350
351    &lt;application tools:ignore=&quot;GoogleAppIndexingWarning&quot;&gt;
352        &lt;activity
353            android:name=&quot;.ui.ManageAccountActivity&quot;
354            android:label=&quot;@string/title_activity_manage_accounts&quot;
355            android:launchMode=&quot;singleTask&quot;
356            android:exported=&quot;true&quot;/&gt;
357        &lt;activity
358            android:name=&quot;.ui.MagicCreateActivity&quot;
359            android:label=&quot;@string/create_new_account&quot;
360            android:launchMode=&quot;singleTask&quot;
361            android:exported=&quot;true&quot;/&gt;
362        &lt;activity
363            android:name=&quot;.ui.EasyOnboardingInviteActivity&quot;
364            android:label=&quot;@string/invite_to_app&quot;
365            android:launchMode=&quot;singleTask&quot; /&gt;
366        &lt;activity
367            android:name=&quot;.ui.ImportBackupActivity&quot;
368            android:label=&quot;@string/restore_backup&quot;
369            android:launchMode=&quot;singleTask&quot;
370            android:exported=&quot;true&quot;&gt;
371            &lt;intent-filter&gt;
372                &lt;action android:name=&quot;android.intent.action.VIEW&quot; /&gt;
373                &lt;category android:name=&quot;android.intent.category.DEFAULT&quot; /&gt;
374
375                &lt;data android:mimeType=&quot;application/vnd.conversations.backup&quot; /&gt;
376                &lt;data android:scheme=&quot;content&quot; /&gt;
377            &lt;/intent-filter&gt;
378            &lt;intent-filter&gt;
379                &lt;action android:name=&quot;android.intent.action.VIEW&quot; /&gt;
380                &lt;category android:name=&quot;android.intent.category.DEFAULT&quot; /&gt;
381
382                &lt;data android:mimeType=&quot;application/vnd.conversations.backup&quot; /&gt;
383                &lt;data android:scheme=&quot;file&quot; /&gt;
384            &lt;/intent-filter&gt;
385            &lt;intent-filter&gt;
386                &lt;action android:name=&quot;android.intent.action.VIEW&quot; /&gt;
387
388                &lt;category android:name=&quot;android.intent.category.DEFAULT&quot; /&gt;
389                &lt;category android:name=&quot;android.intent.category.BROWSABLE&quot; /&gt;
390
391                &lt;data android:scheme=&quot;content&quot; /&gt;
392                &lt;data android:host=&quot;*&quot; /&gt;
393                &lt;data android:mimeType=&quot;*/*&quot; /&gt;
394                &lt;data android:pathPattern=&quot;.*\\.ceb&quot; /&gt;
395                &lt;data android:pathPattern=&quot;.*\\..*\\.ceb&quot; /&gt;
396                &lt;data android:pathPattern=&quot;.*\\..*\\..*\\.ceb&quot; /&gt;
397                &lt;data android:pathPattern=&quot;.*\\..*\\..*\\..*\\.ceb&quot; /&gt;
398                &lt;data android:pathPattern=&quot;.*\\..*\\..*\\..*\\..*\\.ceb&quot; /&gt;
399                &lt;data android:pathPattern=&quot;.*\\..*\\..*\\..*\\..*\\..*\\.ceb&quot; /&gt;
400                &lt;data android:pathPattern=&quot;.*\\..*\\..*\\..*\\..*\\..*\\..*\\.ceb&quot; /&gt;
401            &lt;/intent-filter&gt;
402            &lt;intent-filter&gt;
403                &lt;action android:name=&quot;android.intent.action.VIEW&quot; /&gt;
404
405                &lt;category android:name=&quot;android.intent.category.DEFAULT&quot; /&gt;
406                &lt;category android:name=&quot;android.intent.category.BROWSABLE&quot; /&gt;
407
408                &lt;data android:scheme=&quot;file&quot; /&gt;
409                &lt;data android:host=&quot;*&quot; /&gt;
410                &lt;data android:mimeType=&quot;*/*&quot; /&gt;
411                &lt;data android:pathPattern=&quot;.*\\.ceb&quot; /&gt;
412                &lt;data android:pathPattern=&quot;.*\\..*\\.ceb&quot; /&gt;
413                &lt;data android:pathPattern=&quot;.*\\..*\\..*\\.ceb&quot; /&gt;
414                &lt;data android:pathPattern=&quot;.*\\..*\\..*\\..*\\.ceb&quot; /&gt;
415                &lt;data android:pathPattern=&quot;.*\\..*\\..*\\..*\\..*\\.ceb&quot; /&gt;
416                &lt;data android:pathPattern=&quot;.*\\..*\\..*\\..*\\..*\\..*\\.ceb&quot; /&gt;
417                &lt;data android:pathPattern=&quot;.*\\..*\\..*\\..*\\..*\\..*\\..*\\.ceb&quot; /&gt;
418            &lt;/intent-filter&gt;
419        &lt;/activity&gt;
420    &lt;/application&gt;
421&lt;/manifest&gt;
422
423

My gradle file:

1&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
2&lt;manifest xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;
3    xmlns:tools=&quot;http://schemas.android.com/tools&quot;
4    package=&quot;eu.siacs.conversations&quot;&gt;
5
6    &lt;uses-sdk tools:overrideLibrary=&quot;net.ypresto.androidtranscoder&quot; /&gt;
7
8    &lt;uses-permission android:name=&quot;android.permission.WRITE_EXTERNAL_STORAGE&quot; /&gt;
9    &lt;uses-permission android:name=&quot;android.permission.READ_EXTERNAL_STORAGE&quot; /&gt;
10    &lt;uses-permission android:name=&quot;android.permission.READ_CONTACTS&quot; /&gt;
11    &lt;uses-permission android:name=&quot;android.permission.READ_PROFILE&quot; /&gt;
12    &lt;uses-permission
13        android:name=&quot;android.permission.READ_PHONE_STATE&quot;
14        android:maxSdkVersion=&quot;22&quot; /&gt;
15    &lt;uses-permission android:name=&quot;android.permission.INTERNET&quot; /&gt;
16    &lt;uses-permission android:name=&quot;android.permission.ACCESS_NETWORK_STATE&quot; /&gt;
17    &lt;uses-permission android:name=&quot;android.permission.WAKE_LOCK&quot; /&gt;
18    &lt;uses-permission android:name=&quot;android.permission.RECEIVE_BOOT_COMPLETED&quot; /&gt;
19    &lt;uses-permission android:name=&quot;android.permission.VIBRATE&quot; /&gt;
20    &lt;uses-permission android:name=&quot;android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS&quot; /&gt;
21    &lt;uses-permission android:name=&quot;android.permission.ACCESS_COARSE_LOCATION&quot; /&gt;
22    &lt;uses-permission android:name=&quot;android.permission.ACCESS_FINE_LOCATION&quot; /&gt;
23    &lt;uses-permission android:name=&quot;android.permission.ACCESS_WIFI_STATE&quot; /&gt;
24    &lt;uses-permission android:name=&quot;android.permission.FOREGROUND_SERVICE&quot; /&gt;
25    &lt;uses-permission android:name=&quot;android.permission.REQUEST_INSTALL_PACKAGES&quot; /&gt;
26
27    &lt;uses-feature
28        android:name=&quot;android.hardware.location&quot;
29        android:required=&quot;false&quot; /&gt;
30    &lt;uses-feature
31        android:name=&quot;android.hardware.location.gps&quot;
32        android:required=&quot;false&quot; /&gt;
33    &lt;uses-feature
34        android:name=&quot;android.hardware.location.network&quot;
35        android:required=&quot;false&quot; /&gt;
36
37    &lt;uses-permission android:name=&quot;android.permission.CAMERA&quot; /&gt;
38    &lt;uses-permission android:name=&quot;android.permission.RECORD_AUDIO&quot; /&gt;
39    &lt;uses-permission android:name=&quot;android.permission.BLUETOOTH&quot; /&gt;
40    &lt;uses-permission android:name=&quot;android.permission.MODIFY_AUDIO_SETTINGS&quot; /&gt;
41    &lt;uses-permission android:name=&quot;android.permission.USE_FULL_SCREEN_INTENT&quot; /&gt;
42    &lt;uses-permission android:name=&quot;android.permission.SYSTEM_ALERT_WINDOW&quot; /&gt;
43
44    &lt;uses-feature
45        android:name=&quot;android.hardware.camera&quot;
46        android:required=&quot;false&quot; /&gt;
47    &lt;uses-feature
48        android:name=&quot;android.hardware.camera.autofocus&quot;
49        android:required=&quot;false&quot; /&gt;
50    &lt;uses-feature
51        android:name=&quot;android.hardware.microphone&quot;
52        android:required=&quot;false&quot; /&gt;
53
54    &lt;application
55        android:name=&quot;.Application&quot;
56        android:allowBackup=&quot;false&quot;
57        android:allowClearUserData=&quot;true&quot;
58        android:appCategory=&quot;social&quot;
59        android:hardwareAccelerated=&quot;true&quot;
60        android:icon=&quot;@mipmap/ic_app_launch&quot;
61        android:label=&quot;@string/app_name&quot;
62        android:largeHeap=&quot;true&quot;
63        android:networkSecurityConfig=&quot;@xml/network_security_configuration&quot;
64        android:requestLegacyExternalStorage=&quot;true&quot;
65        android:roundIcon=&quot;@mipmap/ic_app_launch_round&quot;
66        android:theme=&quot;@style/ConversationsTheme&quot;
67        android:usesCleartextTraffic=&quot;true&quot;
68        android:windowSoftInputMode=&quot;adjustPan|adjustResize&quot;
69        tools:replace=&quot;android:label&quot;
70        tools:targetApi=&quot;q&quot;&gt;
71        &lt;activity
72            android:name=&quot;.ui.search.GroupSearchActivity&quot;
73            android:exported=&quot;true&quot; /&gt;
74        &lt;activity
75            android:name=&quot;.ui.profileUpdating.FavouritesActivity&quot;
76            android:exported=&quot;true&quot; /&gt;
77        &lt;activity
78            android:name=&quot;.ui.profileUpdating.NameActivity&quot;
79            android:exported=&quot;true&quot; /&gt;
80        &lt;activity
81            android:name=&quot;.ui.CompulsoryUpdateActivity&quot;
82            android:exported=&quot;true&quot; /&gt;
83        &lt;activity android:name=&quot;.ui.payments.doPayment.DoPaymentActivity&quot;
84            android:exported=&quot;true&quot; /&gt;
85        &lt;activity android:name=&quot;.ui.individualList.IndividualListActivity&quot;
86            android:exported=&quot;true&quot; /&gt;
87        &lt;activity android:name=&quot;.ui.payments.setPayment.SetPaymentActivity&quot;
88            android:exported=&quot;true&quot; /&gt;
89        &lt;activity android:name=&quot;.ui.login.otpActivity.OTPActivity&quot;
90            android:exported=&quot;true&quot; /&gt;
91        &lt;activity android:name=&quot;.ui.login.loginActivity.LoginActivity&quot;
92            android:exported=&quot;true&quot; /&gt;
93
94        &lt;service android:name=&quot;.services.XmppConnectionService&quot; android:exported=&quot;true&quot; /&gt;
95
96        &lt;receiver android:name=&quot;.services.EventReceiver&quot;
97            android:exported=&quot;true&quot;&gt;
98            &lt;intent-filter&gt;
99                &lt;action android:name=&quot;android.intent.action.BOOT_COMPLETED&quot; /&gt;
100                &lt;action android:name=&quot;android.net.conn.CONNECTIVITY_CHANGE&quot; /&gt;
101                &lt;action android:name=&quot;android.intent.action.ACTION_SHUTDOWN&quot; /&gt;
102                &lt;action android:name=&quot;android.media.RINGER_MODE_CHANGED&quot; /&gt;
103            &lt;/intent-filter&gt;
104        &lt;/receiver&gt;
105
106        &lt;activity
107            android:name=&quot;.ui.ShareLocationActivity&quot;
108            android:label=&quot;@string/title_activity_share_location&quot;
109            android:exported=&quot;true&quot;/&gt;
110        &lt;activity
111            android:name=&quot;.ui.SearchActivity&quot;
112            android:label=&quot;@string/search_messages&quot;
113            android:exported=&quot;true&quot; /&gt;
114        &lt;activity
115            android:name=&quot;.ui.RecordingActivity&quot;
116            android:configChanges=&quot;orientation|screenSize&quot;
117            android:theme=&quot;@style/ConversationsTheme.Dialog&quot;
118            android:exported=&quot;true&quot; /&gt;
119        &lt;activity
120            android:name=&quot;.ui.ShowLocationActivity&quot;
121            android:label=&quot;@string/title_activity_show_location&quot;
122            android:exported=&quot;true&quot; /&gt;
123        &lt;activity
124            android:name=&quot;.ui.SplashActivity&quot;
125            android:theme=&quot;@style/SplashTheme&quot;
126            android:exported=&quot;true&quot;&gt;
127            &lt;intent-filter&gt;
128                &lt;action android:name=&quot;android.intent.action.MAIN&quot; /&gt;
129
130                &lt;category android:name=&quot;android.intent.category.LAUNCHER&quot; /&gt;
131            &lt;/intent-filter&gt;
132        &lt;/activity&gt;
133        &lt;activity
134            android:name=&quot;.ui.ConversationsActivity&quot;
135            android:label=&quot;@string/app_name&quot;
136            android:launchMode=&quot;singleTask&quot;
137            android:minWidth=&quot;300dp&quot;
138            android:minHeight=&quot;300dp&quot;
139            android:exported=&quot;true&quot;
140            android:windowSoftInputMode=&quot;stateHidden&quot; /&gt;
141        &lt;activity
142            android:name=&quot;.ui.ScanActivity&quot;
143            android:screenOrientation=&quot;portrait&quot;
144            android:exported=&quot;true&quot;
145            android:theme=&quot;@style/ConversationsTheme.FullScreen&quot;
146            android:windowSoftInputMode=&quot;stateAlwaysHidden&quot; /&gt;
147        &lt;activity
148            android:name=&quot;.ui.UriHandlerActivity&quot;
149            android:label=&quot;@string/app_name&quot;
150            android:exported=&quot;true&quot;&gt;
151            &lt;intent-filter&gt;
152                &lt;action android:name=&quot;android.intent.action.VIEW&quot; /&gt;
153
154                &lt;category android:name=&quot;android.intent.category.DEFAULT&quot; /&gt;
155                &lt;category android:name=&quot;android.intent.category.BROWSABLE&quot; /&gt;
156
157                &lt;data android:scheme=&quot;xmpp&quot; /&gt;
158            &lt;/intent-filter&gt;
159            &lt;intent-filter android:autoVerify=&quot;true&quot;&gt;
160                &lt;action android:name=&quot;android.intent.action.VIEW&quot; /&gt;
161
162                &lt;category android:name=&quot;android.intent.category.DEFAULT&quot; /&gt;
163                &lt;category android:name=&quot;android.intent.category.BROWSABLE&quot; /&gt;
164
165                &lt;data android:scheme=&quot;https&quot; /&gt;
166                &lt;data android:host=&quot;im.app.in&quot; /&gt;
167                &lt;data android:pathPrefix=&quot;/i/&quot; /&gt;
168                &lt;data android:pathPrefix=&quot;/j/&quot; /&gt;
169            &lt;/intent-filter&gt;
170            &lt;intent-filter&gt;
171                &lt;action android:name=&quot;android.intent.action.SENDTO&quot; /&gt;
172
173                &lt;category android:name=&quot;android.intent.category.DEFAULT&quot; /&gt;
174
175                &lt;data android:scheme=&quot;imto&quot; /&gt;
176                &lt;data android:host=&quot;jabber&quot; /&gt;
177            &lt;/intent-filter&gt;
178        &lt;/activity&gt;
179        &lt;activity
180            android:name=&quot;.ui.StartConversationActivity&quot;
181            android:label=&quot;@string/title_activity_start_conversation&quot;
182            android:launchMode=&quot;singleTop&quot;
183            android:exported=&quot;true&quot;&gt;
184            &lt;intent-filter&gt;
185                &lt;action android:name=&quot;android.intent.action.VIEW&quot; /&gt;
186            &lt;/intent-filter&gt;
187        &lt;/activity&gt;
188        &lt;activity
189            android:name=&quot;.ui.SettingsActivity&quot;
190            android:label=&quot;@string/title_activity_settings&quot;
191            android:exported=&quot;true&quot;&gt;
192            &lt;intent-filter&gt;
193                &lt;action android:name=&quot;android.intent.action.MAIN&quot; /&gt;
194
195                &lt;category android:name=&quot;android.intent.category.NOTIFICATION_PREFERENCES&quot; /&gt;
196            &lt;/intent-filter&gt;
197        &lt;/activity&gt;
198        &lt;activity
199            android:name=&quot;.ui.ChooseContactActivity&quot;
200            android:label=&quot;@string/title_activity_choose_contact&quot;
201            android:exported=&quot;true&quot; /&gt;
202        &lt;activity
203            android:name=&quot;.ui.BlocklistActivity&quot;
204            android:label=&quot;@string/title_activity_block_list&quot;
205            android:exported=&quot;true&quot;/&gt;
206        &lt;activity
207            android:name=&quot;.ui.ChangePasswordActivity&quot;
208            android:label=&quot;@string/change_password_on_server&quot;
209            android:exported=&quot;true&quot;/&gt;
210        &lt;activity
211            android:name=&quot;.ui.ChooseAccountForProfilePictureActivity&quot;
212            android:enabled=&quot;false&quot;
213            android:label=&quot;@string/choose_account&quot;
214            android:exported=&quot;true&quot;&gt;
215            &lt;intent-filter android:label=&quot;@string/set_profile_picture&quot;&gt;
216                &lt;action android:name=&quot;android.intent.action.ATTACH_DATA&quot; /&gt;
217
218                &lt;category android:name=&quot;android.intent.category.DEFAULT&quot; /&gt;
219
220                &lt;data android:mimeType=&quot;image/*&quot; /&gt;
221            &lt;/intent-filter&gt;
222        &lt;/activity&gt;
223        &lt;activity
224            android:name=&quot;.ui.ShareViaAccountActivity&quot;
225            android:label=&quot;@string/title_activity_share_via_account&quot;
226            android:launchMode=&quot;singleTop&quot;
227            android:exported=&quot;true&quot; /&gt;
228        &lt;activity
229            android:name=&quot;.ui.EditAccountActivity&quot;
230            android:launchMode=&quot;singleTop&quot;
231            android:exported=&quot;true&quot;
232            android:windowSoftInputMode=&quot;stateHidden|adjustResize&quot; /&gt;
233        &lt;activity
234            android:name=&quot;.ui.ConferenceDetailsActivity&quot;
235            android:label=&quot;@string/action_muc_details&quot;
236            android:exported=&quot;true&quot;
237            android:windowSoftInputMode=&quot;stateHidden&quot; /&gt;
238        &lt;activity
239            android:name=&quot;.ui.ContactDetailsActivity&quot;
240            android:exported=&quot;true&quot;
241            android:windowSoftInputMode=&quot;stateHidden&quot; /&gt;
242        &lt;activity
243            android:name=&quot;.ui.PublishProfilePictureActivity&quot;
244            android:label=&quot;@string/mgmt_account_publish_avatar&quot;
245            android:exported=&quot;true&quot;
246            android:windowSoftInputMode=&quot;stateHidden&quot; /&gt;
247        &lt;activity
248            android:name=&quot;.ui.PublishGroupChatProfilePictureActivity&quot;
249            android:exported=&quot;true&quot;
250            android:label=&quot;@string/group_chat_avatar&quot; /&gt;
251        &lt;activity
252            android:name=&quot;.ui.ShareWithActivity&quot;
253            android:label=&quot;@string/app_name&quot;
254            android:launchMode=&quot;singleTop&quot;
255            android:exported=&quot;true&quot;&gt;
256            &lt;intent-filter&gt;
257                &lt;action android:name=&quot;android.intent.action.SEND&quot; /&gt;
258                &lt;action android:name=&quot;android.intent.action.SEND_MULTIPLE&quot; /&gt;
259
260                &lt;category android:name=&quot;android.intent.category.DEFAULT&quot; /&gt;
261
262                &lt;data android:mimeType=&quot;text/plain&quot; /&gt;
263            &lt;/intent-filter&gt;
264            &lt;intent-filter&gt;
265                &lt;action android:name=&quot;android.intent.action.SEND&quot; /&gt;
266                &lt;action android:name=&quot;android.intent.action.SEND_MULTIPLE&quot; /&gt;
267
268                &lt;category android:name=&quot;android.intent.category.DEFAULT&quot; /&gt;
269
270                &lt;data android:mimeType=&quot;*/*&quot; /&gt;
271            &lt;/intent-filter&gt;
272
273            &lt;!-- the value here needs to be the full class name; independent of the configured applicationId --&gt;
274            &lt;meta-data
275                android:name=&quot;android.service.chooser.chooser_target_service&quot;
276                android:value=&quot;eu.siacs.conversations.services.ContactChooserTargetService&quot; /&gt;
277        &lt;/activity&gt;
278        &lt;activity
279            android:name=&quot;.ui.TrustKeysActivity&quot;
280            android:label=&quot;@string/trust_omemo_fingerprints&quot;
281            android:exported=&quot;true&quot;
282            android:windowSoftInputMode=&quot;stateAlwaysHidden&quot; /&gt;
283        &lt;activity
284            android:name=&quot;com.theartofdev.edmodo.cropper.CropImageActivity&quot;
285            android:exported=&quot;true&quot;
286            android:theme=&quot;@style/Base.Theme.AppCompat&quot; /&gt;
287        &lt;activity android:name=&quot;.ui.MemorizingActivity&quot;
288            android:exported=&quot;true&quot; /&gt;
289        &lt;activity
290            android:name=&quot;.ui.MediaBrowserActivity&quot;
291            android:exported=&quot;true&quot;
292            android:label=&quot;@string/media_browser&quot; /&gt;
293
294        &lt;service android:name=&quot;.services.ExportBackupService&quot; android:exported=&quot;true&quot;/&gt;
295        &lt;service android:name=&quot;.services.ImportBackupService&quot; android:exported=&quot;true&quot;/&gt;
296        &lt;service
297            android:name=&quot;.services.ContactChooserTargetService&quot;
298            android:permission=&quot;android.permission.BIND_CHOOSER_TARGET_SERVICE&quot;
299            android:exported=&quot;true&quot;&gt;
300            &lt;intent-filter&gt;
301                &lt;action android:name=&quot;android.service.chooser.ChooserTargetService&quot; /&gt;
302            &lt;/intent-filter&gt;
303        &lt;/service&gt;
304        &lt;service android:name=&quot;.services.CompulsoryUpdateService&quot; android:exported=&quot;true&quot;/&gt;
305
306        &lt;provider
307            android:name=&quot;androidx.core.content.FileProvider&quot;
308            android:authorities=&quot;${applicationId}.files&quot;
309            android:exported=&quot;false&quot;
310            android:grantUriPermissions=&quot;true&quot;&gt;
311            &lt;meta-data
312                android:name=&quot;android.support.FILE_PROVIDER_PATHS&quot;
313                android:resource=&quot;@xml/file_paths&quot; /&gt;
314        &lt;/provider&gt;
315        &lt;provider
316            android:name=&quot;.services.BarcodeProvider&quot;
317            android:authorities=&quot;${applicationId}.barcodes&quot;
318            android:exported=&quot;false&quot;
319            android:grantUriPermissions=&quot;true&quot; /&gt;
320
321        &lt;activity
322            android:name=&quot;.ui.ShortcutActivity&quot;
323            android:label=&quot;@string/contact&quot;
324            android:exported=&quot;true&quot;&gt;
325            &lt;intent-filter&gt;
326                &lt;action android:name=&quot;android.intent.action.CREATE_SHORTCUT&quot; /&gt;
327            &lt;/intent-filter&gt;
328        &lt;/activity&gt;
329        &lt;activity
330            android:name=&quot;.ui.MucUsersActivity&quot;
331            android:exported=&quot;true&quot;
332            android:label=&quot;@string/group_chat_members&quot; /&gt;
333        &lt;activity
334            android:name=&quot;.ui.ChannelDiscoveryActivity&quot;
335            android:exported=&quot;true&quot;
336            android:label=&quot;@string/discover_channels&quot; /&gt;
337        &lt;activity
338            android:name=&quot;.ui.RtpSessionActivity&quot;
339            android:autoRemoveFromRecents=&quot;true&quot;
340            android:exported=&quot;true&quot;
341            android:launchMode=&quot;singleInstance&quot;
342            android:supportsPictureInPicture=&quot;true&quot; /&gt;
343    &lt;/application&gt;
344
345&lt;/manifest&gt;
346&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
347&lt;manifest xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;
348    xmlns:tools=&quot;http://schemas.android.com/tools&quot;
349    package=&quot;eu.siacs.conversations&quot;&gt;
350
351    &lt;application tools:ignore=&quot;GoogleAppIndexingWarning&quot;&gt;
352        &lt;activity
353            android:name=&quot;.ui.ManageAccountActivity&quot;
354            android:label=&quot;@string/title_activity_manage_accounts&quot;
355            android:launchMode=&quot;singleTask&quot;
356            android:exported=&quot;true&quot;/&gt;
357        &lt;activity
358            android:name=&quot;.ui.MagicCreateActivity&quot;
359            android:label=&quot;@string/create_new_account&quot;
360            android:launchMode=&quot;singleTask&quot;
361            android:exported=&quot;true&quot;/&gt;
362        &lt;activity
363            android:name=&quot;.ui.EasyOnboardingInviteActivity&quot;
364            android:label=&quot;@string/invite_to_app&quot;
365            android:launchMode=&quot;singleTask&quot; /&gt;
366        &lt;activity
367            android:name=&quot;.ui.ImportBackupActivity&quot;
368            android:label=&quot;@string/restore_backup&quot;
369            android:launchMode=&quot;singleTask&quot;
370            android:exported=&quot;true&quot;&gt;
371            &lt;intent-filter&gt;
372                &lt;action android:name=&quot;android.intent.action.VIEW&quot; /&gt;
373                &lt;category android:name=&quot;android.intent.category.DEFAULT&quot; /&gt;
374
375                &lt;data android:mimeType=&quot;application/vnd.conversations.backup&quot; /&gt;
376                &lt;data android:scheme=&quot;content&quot; /&gt;
377            &lt;/intent-filter&gt;
378            &lt;intent-filter&gt;
379                &lt;action android:name=&quot;android.intent.action.VIEW&quot; /&gt;
380                &lt;category android:name=&quot;android.intent.category.DEFAULT&quot; /&gt;
381
382                &lt;data android:mimeType=&quot;application/vnd.conversations.backup&quot; /&gt;
383                &lt;data android:scheme=&quot;file&quot; /&gt;
384            &lt;/intent-filter&gt;
385            &lt;intent-filter&gt;
386                &lt;action android:name=&quot;android.intent.action.VIEW&quot; /&gt;
387
388                &lt;category android:name=&quot;android.intent.category.DEFAULT&quot; /&gt;
389                &lt;category android:name=&quot;android.intent.category.BROWSABLE&quot; /&gt;
390
391                &lt;data android:scheme=&quot;content&quot; /&gt;
392                &lt;data android:host=&quot;*&quot; /&gt;
393                &lt;data android:mimeType=&quot;*/*&quot; /&gt;
394                &lt;data android:pathPattern=&quot;.*\\.ceb&quot; /&gt;
395                &lt;data android:pathPattern=&quot;.*\\..*\\.ceb&quot; /&gt;
396                &lt;data android:pathPattern=&quot;.*\\..*\\..*\\.ceb&quot; /&gt;
397                &lt;data android:pathPattern=&quot;.*\\..*\\..*\\..*\\.ceb&quot; /&gt;
398                &lt;data android:pathPattern=&quot;.*\\..*\\..*\\..*\\..*\\.ceb&quot; /&gt;
399                &lt;data android:pathPattern=&quot;.*\\..*\\..*\\..*\\..*\\..*\\.ceb&quot; /&gt;
400                &lt;data android:pathPattern=&quot;.*\\..*\\..*\\..*\\..*\\..*\\..*\\.ceb&quot; /&gt;
401            &lt;/intent-filter&gt;
402            &lt;intent-filter&gt;
403                &lt;action android:name=&quot;android.intent.action.VIEW&quot; /&gt;
404
405                &lt;category android:name=&quot;android.intent.category.DEFAULT&quot; /&gt;
406                &lt;category android:name=&quot;android.intent.category.BROWSABLE&quot; /&gt;
407
408                &lt;data android:scheme=&quot;file&quot; /&gt;
409                &lt;data android:host=&quot;*&quot; /&gt;
410                &lt;data android:mimeType=&quot;*/*&quot; /&gt;
411                &lt;data android:pathPattern=&quot;.*\\.ceb&quot; /&gt;
412                &lt;data android:pathPattern=&quot;.*\\..*\\.ceb&quot; /&gt;
413                &lt;data android:pathPattern=&quot;.*\\..*\\..*\\.ceb&quot; /&gt;
414                &lt;data android:pathPattern=&quot;.*\\..*\\..*\\..*\\.ceb&quot; /&gt;
415                &lt;data android:pathPattern=&quot;.*\\..*\\..*\\..*\\..*\\.ceb&quot; /&gt;
416                &lt;data android:pathPattern=&quot;.*\\..*\\..*\\..*\\..*\\..*\\.ceb&quot; /&gt;
417                &lt;data android:pathPattern=&quot;.*\\..*\\..*\\..*\\..*\\..*\\..*\\.ceb&quot; /&gt;
418            &lt;/intent-filter&gt;
419        &lt;/activity&gt;
420    &lt;/application&gt;
421&lt;/manifest&gt;
422
423import com.android.build.OutputFile
424
425// Top-level build file where you can add configuration options common to all
426// sub-projects/modules.
427buildscript {
428    ext.kotlin_version = &quot;1.5.21&quot;
429    repositories {
430        google()
431        mavenCentral()
432        maven { url 'https://jitpack.io' }
433        gradlePluginPortal()
434    }
435    dependencies {
436        classpath 'com.android.tools.build:gradle:4.2.2'
437        classpath 'com.google.gms:google-services:4.3.8'
438        classpath &quot;org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version&quot;
439    }
440}
441
442apply plugin: 'com.android.application'
443apply plugin: 'kotlin-android'
444apply plugin: 'kotlin-kapt'
445apply plugin: 'com.google.gms.google-services'
446
447repositories {
448    google()
449    mavenCentral()
450    jcenter()
451    maven { url 'https://jitpack.io' }
452}
453
454configurations {
455    conversationsFreeCompatImplementation
456}
457
458dependencies {
459    implementation 'androidx.viewpager:viewpager:1.0.0'
460    implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
461
462    implementation &quot;org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version&quot;
463
464    implementation 'org.sufficientlysecure:openpgp-api:10.0'
465    implementation 'com.theartofdev.edmodo:android-image-cropper:2.8.0'
466    implementation 'androidx.appcompat:appcompat:1.3.1'
467    implementation 'androidx.exifinterface:exifinterface:1.3.2'
468    implementation 'androidx.cardview:cardview:1.0.0'
469    implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.1.0'
470    implementation 'androidx.emoji:emoji:1.1.0'
471    implementation 'com.google.android.material:material:1.4.0'
472    conversationsFreeCompatImplementation 'androidx.emoji:emoji-bundled:1.1.0'
473    implementation 'org.bouncycastle:bcmail-jdk15on:1.64'
474    //zxing stopped supporting Java 7 so we have to stick with 3.3.3
475    //https://github.com/zxing/zxing/issues/1170
476    implementation 'com.google.zxing:core:3.4.1'
477    implementation 'de.measite.minidns:minidns-hla:0.2.4'
478    implementation 'me.leolin:ShortcutBadger:1.1.22@aar'
479    implementation 'org.whispersystems:signal-protocol-java:2.8.1'
480    implementation 'com.makeramen:roundedimageview:2.3.0'
481    implementation &quot;com.wefika:flowlayout:0.4.1&quot;
482    implementation 'net.ypresto.androidtranscoder:android-transcoder:0.3.0'
483    implementation 'org.jxmpp:jxmpp-jid:1.0.1'
484    implementation 'org.osmdroid:osmdroid-android:6.1.10'
485    implementation 'org.hsluv:hsluv:0.2'
486    implementation 'org.conscrypt:conscrypt-android:2.5.2'
487    implementation 'me.drakeet.support:toastcompat:1.1.0'
488    implementation &quot;com.leinardi.android:speed-dial:3.2.0&quot;
489
490    implementation &quot;com.squareup.retrofit2:retrofit:2.9.0&quot;
491    implementation &quot;com.squareup.retrofit2:converter-gson:2.9.0&quot;
492    implementation &quot;com.squareup.okhttp3:okhttp:5.0.0-alpha.2&quot;
493    implementation 'com.squareup.okhttp3:logging-interceptor:5.0.0-alpha.2'
494
495    implementation 'com.google.guava:guava:30.1.1-android'
496    implementation 'org.webrtc:google-webrtc:1.0.32006'
497
498    // Lifecycle Helper
499    implementation &quot;androidx.activity:activity-ktx:1.3.0-rc02&quot;
500    implementation &quot;androidx.fragment:fragment-ktx:1.3.6&quot;
501
502    //Navigation
503    implementation 'androidx.navigation:navigation-fragment-ktx:2.3.5'
504    implementation 'androidx.navigation:navigation-ui-ktx:2.3.5'
505
506    //CardView
507    implementation &quot;androidx.cardview:cardview:1.0.0&quot;
508
509    //Country Code Picker
510    implementation 'com.hbb20:ccp:2.5.3'
511
512    //Firebase
513    implementation 'com.google.firebase:firebase-bom:28.3.0'
514    implementation 'com.google.firebase:firebase-auth-ktx:21.0.1'
515    implementation 'androidx.browser:browser:1.3.0'
516
517    //OTP view
518    implementation 'com.github.mukeshsolanki:android-otpview-pinview:2.1.2'
519
520    //Retrofit
521    implementation 'com.squareup.retrofit2:retrofit:2.9.0'
522    implementation 'com.squareup.retrofit2:converter-gson:2.9.0'
523
524    //Gson
525    implementation 'com.google.code.gson:gson:2.8.7'
526
527    //Multidex
528    implementation 'androidx.multidex:multidex:2.0.1'
529
530    //Round Image
531    implementation 'de.hdodenhof:circleimageview:3.1.0'
532
533    // Button with image and text
534    implementation 'com.github.Omega-R:OmegaCenterIconButton:0.0.4@aar'
535
536    //Razor pay
537    implementation 'com.razorpay:checkout:1.6.10'
538
539    //Mixpanel Tracking
540    implementation 'com.mixpanel.android:mixpanel-android:5.9.1'
541
542    //Loading screen
543    implementation 'com.wang.avi:library:2.1.3'
544
545    //Loading
546    implementation 'com.wang.avi:library:2.1.3'
547
548    //Form
549    implementation 'com.quickbirdstudios:surveykit:1.1.0'
550}
551
552ext {
553    travisBuild = System.getenv(&quot;TRAVIS&quot;) == &quot;true&quot;
554    preDexEnabled = System.getProperty(&quot;pre-dex&quot;, &quot;true&quot;)
555    abiCodes = ['armeabi-v7a': 1, 'x86': 2, 'x86_64': 3, 'arm64-v8a': 4]
556}
557
558android {
559    compileSdkVersion 31
560
561    defaultConfig {
562        minSdkVersion 24
563        targetSdkVersion 31
564        versionCode 44
565        versionName &quot;2.0.4&quot;
566        multiDexEnabled = true
567        archivesBaseName += &quot;-$versionName&quot;
568        applicationId &quot;com.app.app&quot;
569        resValue &quot;string&quot;, &quot;applicationId&quot;, applicationId
570        def appName = &quot;app&quot;
571        resValue &quot;string&quot;, &quot;app_name&quot;, appName
572        buildConfigField &quot;String&quot;, &quot;APP_NAME&quot;, &quot;\&quot;$appName\&quot;&quot;
573    }
574
575    splits {
576        abi {
577            universalApk true
578            enable true
579        }
580    }
581
582    configurations {
583        compile.exclude group: 'org.jetbrains' , module:'annotations'
584    }
585
586    dataBinding {
587        enabled true
588    }
589
590    dexOptions {
591        // Skip pre-dexing when running on Travis CI or when disabled via -Dpre-dex=false.
592        preDexLibraries = preDexEnabled &amp;&amp; !travisBuild
593        jumboMode true
594    }
595
596    compileOptions {
597        sourceCompatibility JavaVersion.VERSION_1_8
598        targetCompatibility JavaVersion.VERSION_1_8
599    }
600
601    flavorDimensions(&quot;mode&quot;, &quot;distribution&quot;, &quot;emoji&quot;)
602
603    productFlavors {
604
605        conversations {
606            dimension &quot;mode&quot;
607        }
608        free {
609            dimension &quot;distribution&quot;
610            versionNameSuffix &quot;+f&quot;
611        }
612        compat {
613            dimension &quot;emoji&quot;
614            versionNameSuffix &quot;c&quot;
615        }
616    }
617
618    sourceSets {
619        conversationsFreeCompat {
620            java {
621                srcDir 'src/freeCompat/java'
622                srcDir 'src/conversationsFree/java'
623            }
624        }
625    }
626
627    buildTypes {
628        release {
629            shrinkResources true
630            minifyEnabled true
631            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
632            versionNameSuffix &quot;r&quot;
633        }
634        debug {
635            shrinkResources true
636            minifyEnabled true
637            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
638            versionNameSuffix &quot;d&quot;
639        }
640    }
641
642
643    if (new File(&quot;signing.properties&quot;).exists()) {
644        Properties props = new Properties()
645        props.load(new FileInputStream(file(&quot;signing.properties&quot;)))
646
647        signingConfigs {
648            release {
649                storeFile file(props['keystore'])
650                storePassword props['keystore.password']
651                keyAlias props['keystore.alias']
652                keyPassword props['keystore.password']
653            }
654        }
655        buildTypes.release.signingConfig = signingConfigs.release
656    }
657
658    lintOptions {
659        disable 'MissingTranslation', 'InvalidPackage','AppCompatResource'
660    }
661
662    subprojects {
663
664        afterEvaluate {
665            if (getPlugins().hasPlugin('android') ||
666                    getPlugins().hasPlugin('android-library')) {
667
668                configure(android.lintOptions) {
669                    disable 'AndroidGradlePluginVersion', 'MissingTranslation'
670                }
671            }
672
673        }
674    }
675
676    packagingOptions {
677        exclude 'META-INF/BCKEY.DSA'
678        exclude 'META-INF/BCKEY.SF'
679    }
680
681    android.applicationVariants.all { variant -&gt;
682        variant.outputs.each { output -&gt;
683            def baseAbiVersionCode = project.ext.abiCodes.get(output.getFilter(OutputFile.ABI))
684            if (baseAbiVersionCode != null) {
685                output.versionCodeOverride = (100 * variant.versionCode) + baseAbiVersionCode
686            }
687        }
688
689    }
690}
691

ANSWER

Answered 2021-Aug-04 at 09:18

I'm not sure what you're using to code, but in order to set it in Android Studio, open the manifest of your project and under the "activity" section, put android:exported="true"(or false if that is what you prefer). I have attached an example.

Source https://stackoverflow.com/questions/68554294

QUESTION

App Engine Python 2.7 - ImportError: cannot import name apiproxy

Asked 2022-Feb-08 at 08:52

With the upgrade to Google Cloud SDK 360.0.0-0 i started seeing the following error when running the dev_appserver.py command for my Python 2.7 App Engine project.

1  File &quot;/home/..................py&quot;, line 6, in &lt;module&gt;
2    from google.appengine.ext import ndb
3  File &quot;/usr/lib/google-cloud-sdk/platform/google_appengine/python27/sdk/google/appengine/ext/ndb/__init__.py&quot;, line 22, in &lt;module&gt;
4    from tasklets import *
5  File &quot;/usr/lib/google-cloud-sdk/platform/google_appengine/python27/sdk/google/appengine/ext/ndb/tasklets.py&quot;, line 85, in &lt;module&gt;
6    from .google_imports import apiproxy_stub_map
7  File &quot;/usr/lib/google-cloud-sdk/platform/google_appengine/python27/sdk/google/appengine/ext/ndb/google_imports.py&quot;, line 44, in &lt;module&gt;
8    from google.appengine.runtime import apiproxy as callback
9ImportError: cannot import name apiproxy
10

gcloud version

1  File &quot;/home/..................py&quot;, line 6, in &lt;module&gt;
2    from google.appengine.ext import ndb
3  File &quot;/usr/lib/google-cloud-sdk/platform/google_appengine/python27/sdk/google/appengine/ext/ndb/__init__.py&quot;, line 22, in &lt;module&gt;
4    from tasklets import *
5  File &quot;/usr/lib/google-cloud-sdk/platform/google_appengine/python27/sdk/google/appengine/ext/ndb/tasklets.py&quot;, line 85, in &lt;module&gt;
6    from .google_imports import apiproxy_stub_map
7  File &quot;/usr/lib/google-cloud-sdk/platform/google_appengine/python27/sdk/google/appengine/ext/ndb/google_imports.py&quot;, line 44, in &lt;module&gt;
8    from google.appengine.runtime import apiproxy as callback
9ImportError: cannot import name apiproxy
10Google Cloud SDK 360.0.0
11alpha 2021.10.04
12app-engine-python 1.9.95
13app-engine-python-extras 1.9.95
14beta 2021.10.04
15bq 2.0.71
16cloud-build-local 0.5.2
17cloud-datastore-emulator 2.1.0
18core 2021.10.04
19gsutil 5.3
20

ANSWER

Answered 2022-Feb-08 at 08:52
EDIT

This issue seems to have been resolved with Google Cloud SDK version 371


On my debian based system i fixed it by downgrading the app-engine-python component to the previous version

1  File &quot;/home/..................py&quot;, line 6, in &lt;module&gt;
2    from google.appengine.ext import ndb
3  File &quot;/usr/lib/google-cloud-sdk/platform/google_appengine/python27/sdk/google/appengine/ext/ndb/__init__.py&quot;, line 22, in &lt;module&gt;
4    from tasklets import *
5  File &quot;/usr/lib/google-cloud-sdk/platform/google_appengine/python27/sdk/google/appengine/ext/ndb/tasklets.py&quot;, line 85, in &lt;module&gt;
6    from .google_imports import apiproxy_stub_map
7  File &quot;/usr/lib/google-cloud-sdk/platform/google_appengine/python27/sdk/google/appengine/ext/ndb/google_imports.py&quot;, line 44, in &lt;module&gt;
8    from google.appengine.runtime import apiproxy as callback
9ImportError: cannot import name apiproxy
10Google Cloud SDK 360.0.0
11alpha 2021.10.04
12app-engine-python 1.9.95
13app-engine-python-extras 1.9.95
14beta 2021.10.04
15bq 2.0.71
16cloud-build-local 0.5.2
17cloud-datastore-emulator 2.1.0
18core 2021.10.04
19gsutil 5.3
20sudo apt-get install google-cloud-sdk-app-engine-python=359.0.0-0
21sudo apt-get install google-cloud-sdk-app-engine-python-extras=359.0.0-0
22

gcloud version (after downgrade)

1  File &quot;/home/..................py&quot;, line 6, in &lt;module&gt;
2    from google.appengine.ext import ndb
3  File &quot;/usr/lib/google-cloud-sdk/platform/google_appengine/python27/sdk/google/appengine/ext/ndb/__init__.py&quot;, line 22, in &lt;module&gt;
4    from tasklets import *
5  File &quot;/usr/lib/google-cloud-sdk/platform/google_appengine/python27/sdk/google/appengine/ext/ndb/tasklets.py&quot;, line 85, in &lt;module&gt;
6    from .google_imports import apiproxy_stub_map
7  File &quot;/usr/lib/google-cloud-sdk/platform/google_appengine/python27/sdk/google/appengine/ext/ndb/google_imports.py&quot;, line 44, in &lt;module&gt;
8    from google.appengine.runtime import apiproxy as callback
9ImportError: cannot import name apiproxy
10Google Cloud SDK 360.0.0
11alpha 2021.10.04
12app-engine-python 1.9.95
13app-engine-python-extras 1.9.95
14beta 2021.10.04
15bq 2.0.71
16cloud-build-local 0.5.2
17cloud-datastore-emulator 2.1.0
18core 2021.10.04
19gsutil 5.3
20sudo apt-get install google-cloud-sdk-app-engine-python=359.0.0-0
21sudo apt-get install google-cloud-sdk-app-engine-python-extras=359.0.0-0
22Google Cloud SDK 360.0.0
23alpha 2021.10.04
24app-engine-python 1.9.94
25app-engine-python-extras 1.9.95
26beta 2021.10.04
27bq 2.0.71
28cloud-build-local 0.5.2
29cloud-datastore-emulator 2.1.0
30core 2021.10.04
31gsutil 5.3
32

I created an issue for this bug: https://issuetracker.google.com/issues/202171426

Source https://stackoverflow.com/questions/69465376

QUESTION

Log4j vulnerability - Is Log4j 1.2.17 vulnerable (was unable to find any JNDI code in source)?

Asked 2022-Feb-01 at 15:47

With regard to the Log4j JNDI remote code execution vulnerability that has been identified CVE-2021-44228 - (also see references) - I wondered if Log4j-v1.2 is also impacted, but the closest I got from source code review is the JMS-Appender.

The question is, while the posts on the Internet indicate that Log4j 1.2 is also vulnerable, I am not able to find the relevant source code for it.

Am I missing something that others have identified?

Log4j 1.2 appears to have a vulnerability in the socket-server class, but my understanding is that it needs to be enabled in the first place for it to be applicable and hence is not a passive threat unlike the JNDI-lookup vulnerability which the one identified appears to be.

Is my understanding - that Log4j v1.2 - is not vulnerable to the jndi-remote-code execution bug correct?

References

This blog post from Cloudflare also indicates the same point as from AKX....that it was introduced from Log4j 2!

Update #1 - A fork of the (now-retired) apache-log4j-1.2.x with patch fixes for few vulnerabilities identified in the older library is now available (from the original log4j author). The site is https://reload4j.qos.ch/. As of 21-Jan-2022 version 1.2.18.2 has been released. Vulnerabilities addressed to date include those pertaining to JMSAppender, SocketServer and Chainsaw vulnerabilities. Note that I am simply relaying this information. Have not verified the fixes from my end. Please refer the link for additional details.

ANSWER

Answered 2022-Jan-01 at 18:43

The JNDI feature was added into Log4j 2.0-beta9.

Log4j 1.x thus does not have the vulnerable code.

Source https://stackoverflow.com/questions/70310980

QUESTION

My project doesn't compile with optimization parameters after upgrading from angular 11 to angular 12

Asked 2022-Jan-31 at 19:50

I just upgraded an environment with nrwl from angular version 11 to 12 with two angular applications and several libraries. After update when I try to compile using optimization settings:

angular.json

1{
2 ....
3 &quot;optimization&quot;: {
4    &quot;scripts&quot;: true,
5    &quot;styles&quot;: {
6       &quot;minify&quot;: true,
7       &quot;inlineCritical&quot;: false
8     },
9     &quot;fonts&quot;: true
10  },
11}
12

It gives me the following error (sass and scss component files):

1{
2 ....
3 &quot;optimization&quot;: {
4    &quot;scripts&quot;: true,
5    &quot;styles&quot;: {
6       &quot;minify&quot;: true,
7       &quot;inlineCritical&quot;: false
8     },
9     &quot;fonts&quot;: true
10  },
11}
12/home/jose/WORK/Rental/REAL/APPS/angular-nx-ws/libs/ui-share-components/src/lib/top-panel/top-panel/top-panel.component.sass - Error: /home/jose/WORK/Rental/REAL/APPS/angular-nx-ws/libs/ui-share-components/src/lib/top-panel/top-panel/top-panel.component.sass from Css Minimizer
13Error: Transform failed with 1 error:
14error: Invalid version: &quot;15.2-15.3&quot;
15    at failureErrorWithLog (/home/jose/WORK/Rental/REAL/APPS/angular-nx-ws/node_modules/@angular-devkit/build-angular/node_modules/esbuild/lib/main.js:1493:15)
16    at /home/jose/WORK/Rental/REAL/APPS/angular-nx-ws/node_modules/@angular-devkit/build-angular/node_modules/esbuild/lib/main.js:1282:29
17    at /home/jose/WORK/Rental/REAL/APPS/angular-nx-ws/node_modules/@angular-devkit/build-angular/node_modules/esbuild/lib/main.js:629:9
18    at handleIncomingPacket (/home/jose/WORK/Rental/REAL/APPS/angular-nx-ws/node_modules/@angular-devkit/build-angular/node_modules/esbuild/lib/main.js:726:9)
19    at Socket.readFromStdout (/home/jose/WORK/Rental/REAL/APPS/angular-nx-ws/node_modules/@angular-devkit/build-angular/node_modules/esbuild/lib/main.js:596:7)
20    at Socket.emit (events.js:315:20)
21    at addChunk (_stream_readable.js:309:12)
22    at readableAddChunk (_stream_readable.js:284:9)
23    at Socket.Readable.push (_stream_readable.js:223:10)
24    at Pipe.onStreamRead (internal/stream_base_commons.js:188:23)
25

Disabling styles.minify and fonts compiles without problems:

1{
2 ....
3 &quot;optimization&quot;: {
4    &quot;scripts&quot;: true,
5    &quot;styles&quot;: {
6       &quot;minify&quot;: true,
7       &quot;inlineCritical&quot;: false
8     },
9     &quot;fonts&quot;: true
10  },
11}
12/home/jose/WORK/Rental/REAL/APPS/angular-nx-ws/libs/ui-share-components/src/lib/top-panel/top-panel/top-panel.component.sass - Error: /home/jose/WORK/Rental/REAL/APPS/angular-nx-ws/libs/ui-share-components/src/lib/top-panel/top-panel/top-panel.component.sass from Css Minimizer
13Error: Transform failed with 1 error:
14error: Invalid version: &quot;15.2-15.3&quot;
15    at failureErrorWithLog (/home/jose/WORK/Rental/REAL/APPS/angular-nx-ws/node_modules/@angular-devkit/build-angular/node_modules/esbuild/lib/main.js:1493:15)
16    at /home/jose/WORK/Rental/REAL/APPS/angular-nx-ws/node_modules/@angular-devkit/build-angular/node_modules/esbuild/lib/main.js:1282:29
17    at /home/jose/WORK/Rental/REAL/APPS/angular-nx-ws/node_modules/@angular-devkit/build-angular/node_modules/esbuild/lib/main.js:629:9
18    at handleIncomingPacket (/home/jose/WORK/Rental/REAL/APPS/angular-nx-ws/node_modules/@angular-devkit/build-angular/node_modules/esbuild/lib/main.js:726:9)
19    at Socket.readFromStdout (/home/jose/WORK/Rental/REAL/APPS/angular-nx-ws/node_modules/@angular-devkit/build-angular/node_modules/esbuild/lib/main.js:596:7)
20    at Socket.emit (events.js:315:20)
21    at addChunk (_stream_readable.js:309:12)
22    at readableAddChunk (_stream_readable.js:284:9)
23    at Socket.Readable.push (_stream_readable.js:223:10)
24    at Pipe.onStreamRead (internal/stream_base_commons.js:188:23)
25&quot;optimization&quot;: {
26    &quot;scripts&quot;: true,
27    &quot;styles&quot;: {
28       &quot;minify&quot;: false,
29       &quot;inlineCritical&quot;: false
30     },
31     &quot;fonts&quot;: false
32  },
33}
34

ANSWER

Answered 2022-Jan-31 at 19:50

Reason of the issue

It is expected browserslist to return an entry for each version ("safari 15.2", "safari 15.3") instead of a range ("safari 15.2-15.3"). So, this is just a bug in the parsing logic of Safari browser versions which needs to be corrected and will be done soon in fixed versions of Angular 12/Angular 13. Link to details is here.

IMPORTANT UPDATE:

This is fixed in v12.2.16 and v13.2.1, please update if you are experiencing this issue. Users on v11 shouldn't be affected. Link to details is here. If you can not/do not want to update for any reason, then one of the workarounds below can be used.

Workarounds:

Modify .browserslistrc

Add to .browserslistrc such lines:

1{
2 ....
3 &quot;optimization&quot;: {
4    &quot;scripts&quot;: true,
5    &quot;styles&quot;: {
6       &quot;minify&quot;: true,
7       &quot;inlineCritical&quot;: false
8     },
9     &quot;fonts&quot;: true
10  },
11}
12/home/jose/WORK/Rental/REAL/APPS/angular-nx-ws/libs/ui-share-components/src/lib/top-panel/top-panel/top-panel.component.sass - Error: /home/jose/WORK/Rental/REAL/APPS/angular-nx-ws/libs/ui-share-components/src/lib/top-panel/top-panel/top-panel.component.sass from Css Minimizer
13Error: Transform failed with 1 error:
14error: Invalid version: &quot;15.2-15.3&quot;
15    at failureErrorWithLog (/home/jose/WORK/Rental/REAL/APPS/angular-nx-ws/node_modules/@angular-devkit/build-angular/node_modules/esbuild/lib/main.js:1493:15)
16    at /home/jose/WORK/Rental/REAL/APPS/angular-nx-ws/node_modules/@angular-devkit/build-angular/node_modules/esbuild/lib/main.js:1282:29
17    at /home/jose/WORK/Rental/REAL/APPS/angular-nx-ws/node_modules/@angular-devkit/build-angular/node_modules/esbuild/lib/main.js:629:9
18    at handleIncomingPacket (/home/jose/WORK/Rental/REAL/APPS/angular-nx-ws/node_modules/@angular-devkit/build-angular/node_modules/esbuild/lib/main.js:726:9)
19    at Socket.readFromStdout (/home/jose/WORK/Rental/REAL/APPS/angular-nx-ws/node_modules/@angular-devkit/build-angular/node_modules/esbuild/lib/main.js:596:7)
20    at Socket.emit (events.js:315:20)
21    at addChunk (_stream_readable.js:309:12)
22    at readableAddChunk (_stream_readable.js:284:9)
23    at Socket.Readable.push (_stream_readable.js:223:10)
24    at Pipe.onStreamRead (internal/stream_base_commons.js:188:23)
25&quot;optimization&quot;: {
26    &quot;scripts&quot;: true,
27    &quot;styles&quot;: {
28       &quot;minify&quot;: false,
29       &quot;inlineCritical&quot;: false
30     },
31     &quot;fonts&quot;: false
32  },
33}
34not ios_saf 15.2-15.3 # temporary solution to avoid build issues https://github.com/nrwl/nx/issues/8768
35not safari 15.2-15.3  # temporary solution to avoid build issues https://github.com/nrwl/nx/issues/8768
36

It has to come AFTER any mentions of ios_saf or safari. Otherwise, it doesn't work. Link to workaround is here.

Erase content of .browserslistrc

Erasing content of .browserslistrc helps to fix builds. Link to workaround is here.

Delete .browserslistrc

Deletion of .browserslistrc helps to fix builds. Link to workaround is here.

Install caniuse-lite

Add caniuse-lite package:

1{
2 ....
3 &quot;optimization&quot;: {
4    &quot;scripts&quot;: true,
5    &quot;styles&quot;: {
6       &quot;minify&quot;: true,
7       &quot;inlineCritical&quot;: false
8     },
9     &quot;fonts&quot;: true
10  },
11}
12/home/jose/WORK/Rental/REAL/APPS/angular-nx-ws/libs/ui-share-components/src/lib/top-panel/top-panel/top-panel.component.sass - Error: /home/jose/WORK/Rental/REAL/APPS/angular-nx-ws/libs/ui-share-components/src/lib/top-panel/top-panel/top-panel.component.sass from Css Minimizer
13Error: Transform failed with 1 error:
14error: Invalid version: &quot;15.2-15.3&quot;
15    at failureErrorWithLog (/home/jose/WORK/Rental/REAL/APPS/angular-nx-ws/node_modules/@angular-devkit/build-angular/node_modules/esbuild/lib/main.js:1493:15)
16    at /home/jose/WORK/Rental/REAL/APPS/angular-nx-ws/node_modules/@angular-devkit/build-angular/node_modules/esbuild/lib/main.js:1282:29
17    at /home/jose/WORK/Rental/REAL/APPS/angular-nx-ws/node_modules/@angular-devkit/build-angular/node_modules/esbuild/lib/main.js:629:9
18    at handleIncomingPacket (/home/jose/WORK/Rental/REAL/APPS/angular-nx-ws/node_modules/@angular-devkit/build-angular/node_modules/esbuild/lib/main.js:726:9)
19    at Socket.readFromStdout (/home/jose/WORK/Rental/REAL/APPS/angular-nx-ws/node_modules/@angular-devkit/build-angular/node_modules/esbuild/lib/main.js:596:7)
20    at Socket.emit (events.js:315:20)
21    at addChunk (_stream_readable.js:309:12)
22    at readableAddChunk (_stream_readable.js:284:9)
23    at Socket.Readable.push (_stream_readable.js:223:10)
24    at Pipe.onStreamRead (internal/stream_base_commons.js:188:23)
25&quot;optimization&quot;: {
26    &quot;scripts&quot;: true,
27    &quot;styles&quot;: {
28       &quot;minify&quot;: false,
29       &quot;inlineCritical&quot;: false
30     },
31     &quot;fonts&quot;: false
32  },
33}
34not ios_saf 15.2-15.3 # temporary solution to avoid build issues https://github.com/nrwl/nx/issues/8768
35not safari 15.2-15.3  # temporary solution to avoid build issues https://github.com/nrwl/nx/issues/8768
36npm install caniuse-lite@1.0.30001303 --save-dev --save-exact
37

Link to workaround is here.

Source https://stackoverflow.com/questions/70910612

QUESTION

How to set max-height of dropdown selection area?

Asked 2022-Jan-21 at 05:26

In vuejs2 app having select input with rather big options list it breaks design of my page on extra small devices. Searching in net I found “size” property, but that not what I I need : I want to have dropdown selection, which is the default. Are there some other decision, maybe with CSS to set max-height of dropdown selection area.

Modeified PART # 1: I made testing demo page at http://photographers.my-demo-apps.tk/sel_test it has 2 select inputs with custom design and events as in this example link How to Set Height for the Drop Down of Select box and following workaround at js fiddle:

1select{
2    color: red;
3}
1select{
2    color: red;
3}&lt;select onfocus='this.size=10;' onblur='this.size=1;' onchange='this.size=1; this.blur();'&gt;
4  &lt;option&gt;1&lt;/option&gt;
5  &lt;option&gt;2&lt;/option&gt;
6  &lt;option&gt;3&lt;/option&gt;
7  &lt;option&gt;4&lt;/option&gt;
8  &lt;option&gt;5&lt;/option&gt;
9  &lt;option&gt;6&lt;/option&gt;
10  &lt;option&gt;7&lt;/option&gt;
11  &lt;option&gt;8&lt;/option&gt;
12  &lt;option&gt;9&lt;/option&gt;
13  &lt;option&gt;10&lt;/option&gt;
14  &lt;option&gt;11&lt;/option&gt;
15  &lt;option&gt;12&lt;/option&gt;
16  &lt;option&gt;13&lt;/option&gt;
17  &lt;option&gt;14&lt;/option&gt;
18  &lt;option&gt;15&lt;/option&gt;
19  &lt;option&gt;16&lt;/option&gt;
20  &lt;option&gt;17&lt;/option&gt;
21  &lt;option&gt;18&lt;/option&gt;
22  &lt;option&gt;19&lt;/option&gt;
23  &lt;option&gt;20&lt;/option&gt;
24  &lt;option&gt;21&lt;/option&gt;
25&lt;/select&gt;
26&lt;div&gt;Popular Tags:&lt;/div&gt;

are applied to the second select input and it does not look/work properly. I suppose it conflicts somehow with current desing. Can it be fixed somehow?

as that is vuejs2 page I know that there are some select components at https://github.com/vuejs/awesome-vue#select and I used some of them, like vue-select but I need to keep custom design so I try to use original select input...

Modified PART # 2 : I added 2 classes definitions :

1select{
2    color: red;
3}&lt;select onfocus='this.size=10;' onblur='this.size=1;' onchange='this.size=1; this.blur();'&gt;
4  &lt;option&gt;1&lt;/option&gt;
5  &lt;option&gt;2&lt;/option&gt;
6  &lt;option&gt;3&lt;/option&gt;
7  &lt;option&gt;4&lt;/option&gt;
8  &lt;option&gt;5&lt;/option&gt;
9  &lt;option&gt;6&lt;/option&gt;
10  &lt;option&gt;7&lt;/option&gt;
11  &lt;option&gt;8&lt;/option&gt;
12  &lt;option&gt;9&lt;/option&gt;
13  &lt;option&gt;10&lt;/option&gt;
14  &lt;option&gt;11&lt;/option&gt;
15  &lt;option&gt;12&lt;/option&gt;
16  &lt;option&gt;13&lt;/option&gt;
17  &lt;option&gt;14&lt;/option&gt;
18  &lt;option&gt;15&lt;/option&gt;
19  &lt;option&gt;16&lt;/option&gt;
20  &lt;option&gt;17&lt;/option&gt;
21  &lt;option&gt;18&lt;/option&gt;
22  &lt;option&gt;19&lt;/option&gt;
23  &lt;option&gt;20&lt;/option&gt;
24  &lt;option&gt;21&lt;/option&gt;
25&lt;/select&gt;
26&lt;div&gt;Popular Tags:&lt;/div&gt;.select-wrapper {
27    height: 50px !important;
28    overflow-y: visible !important;
29    background-color: yellow !important;
30}
31
32.select {
33    width: 100% !important;
34    /* make it min-height*/
35    min-height: 50px !important;
36    border-radius: 25px !important;
37    border-color: #555 !important;
38    padding: 10px  !important;
39    border:2px dotted red !important;
40}
41

Also I set background-color and border to these classes to be sure that these classes are applied and !important to all properties. But it did not help. Could you please to take a look!

Thank you!

ANSWER

Answered 2022-Jan-15 at 16:00

Unfortunately, you cannot chant the height of a dropdown list (while using <select>). It is confirmed here.

you can build it yourself using divs & v-for (assuming you get the list from an outsource) and then you can style it as you wish.

apologies for barring bad news.

Source https://stackoverflow.com/questions/70722984

Community Discussions contain sources that include Stack Exchange Network

Tutorials and Learning Resources in Apps

Tutorials and Learning Resources are not available at this moment for Apps

Share this Page

share link

Get latest updates on Apps