LightBlog

lundi 4 octobre 2021

Android Development Basics: How to add View Binding to an Android Gradle project

Most Android developers are probably familiar with the classic findViewById() method. Pass it an ID of one of the Views in your XML layout and it’ll return a reference to the inflated version of that View. That’s all assuming you passed the right ID though, and that the View actually exists. findViewById() has no checks built in to prevent you from trying to retrieve a View you can’t retrieve. Enter View Binding.

Instead of using findViewById() on each View you want, View Binding automatically generates a binding class for each layout XML. Each View with an ID is automatically added to the class, so you can reference them directly.

Adding View Binding to an Android Gradle project is super simple.

Gradle Setup

View Binding is enabled at the module level in Gradle. If you have multiple modules, you’ll need to enable it individually for each one.

In the android block in your module-level build.gradle, add the option to enable View Binding.

android {
    ...

    buildFeatures {
        viewBinding true
    }
}

There may be a warning about illegal access, but that’s a lint bug and can be safely ignored.

Sync the project and View Binding will be enabled. It’s that easy.

Using View Binding

There are a few ways to use View Binding, but before any of that happens, let’s talk about how the binding classes are generated.

Class Name Syntax

Say you have a layout XML named some_layout.xml. Its corresponding binding class will be named SomeLayoutBinding. That pattern holds for all files.

Each word (separated by underscores in the file name) will be capitalized, and the underscores will be removed. “Binding” then gets added to the end.

Instantiating with Existing View

If you’ve already inflated the layout file and you have a reference to the root of the layout, you can tell the View binding class to use the existing layout.

Kotlin:

val binding = SomeLayoutBinding.bind(someLayoutRoot /* should be a View instance */)

Java:

SomeLayoutBinding binding = SomeLayoutBinding.bind(someLayoutRoot /* should be a View instance */);

For example, if you wanted to use the binding class in a Fragment, it would look something like this.

Kotlin:

class SomeFragment : Fragment(R.layout.some_layout) {
    //Lazy initialization means bind() won't be called until "binding" is referenced.
    private val binding by lazy { SomeLayoutBinding.bind(view) }

    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
        super.onViewCreated(view, savedInstanceState)
        
        //Once this method is called, you can start using the binding.
    }
}

Java:

public class SomeFragment extends Fragment {
    private SomeLayoutBinding binding = null;

    public SomeFragment() {
        super(R.layout.some_layout);
    }

    @Override
    public void onViewCreated(View view, Bundle savedInstanceState) {
        super.onViewCreated(view, savedInstanceState);
   
        //Initialize the binding.
        binding = SomeLayoutBinding.bind(view);
    }
}

Instantiating with New View

The binding class can also take care of inflating the layout for you.

Kotlin:

val binding = SomeLayoutBinding.inflate(layoutInflater /* should be a LayoutInflater instance */)

Java:

SomeLayoutBinding binding = SomeLayoutBinding.inflate(layoutInflater /* should be a LayoutInflater instance */);

This method is useful in both Fragments and Activities.

An example Fragment would look something like the following.

Kotlin:

class SomeFragment : Fragment() {
    private val binding by lazy { SomeLayoutBinding.inflate(LayoutInflater.from(requireContext())) }

    override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?) {
        //The "root" of the binding class is the root of its layout.
        return binding.root
    }
}

Java:

public class SomeFragment extends Fragment {
    private SomeLayoutBinding binding = null;

    @Override
    public void onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        //Initialize the binding.
        binding = SomeLayoutBinding.inflate(inflater);
        //The "getRoot()" method of the binding class returns the root of the layout.
        return binding.getRoot();
    }
}

An example Activity would look something like the following.

Kotlin:

class SomeActivity : AppCompatActivity() {
    private val binding by lazy { SomeLayoutBinding.inflate(layoutInflater) }

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)

        //This is equivalent to calling "setContentView(R.layout.some_layout)" but allows use of the binding class.
        setContentView(binding.root)
    }
}

Java:

public class SomeActivity extends AppCompatActivity {
    private SomeLayoutBinding binding = null;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        //Instantiate the binding.
        binding = SomeLayoutBinding.inflate(getLayoutInflater());
        //This is equivalent to calling "setContentView(R.layout.some_layout)" but allows use of the binding class.
        setContentView(binding.getRoot());
    }
}

Referencing Views

Now that the View binding class is set up and ready to use, it’s time to actually use it.

Let’s say the contents of the some_layout.xml are something like the following:

<LinearLayout
    android:id="@+id/root_view"
    ...>
    <FrameLayout
        android:id="@+id/some_frame_layout"
        ...
        />
    <ImageView
        android:id="@+id/some_imageview"
        ...
        />
    <LinearLayout
        android:id="@+id/inner_linear"
        ...>
        <ImageView
            android:id="@+id/inner_imageview"
            ...
            />
    </LinearLayout>
</LinearLayout>

There are a lot of IDs there to reference in code. But as long as you have the binding class instantiated, referencing will be easy.

In Kotlin, Views are referenced by variables matching their IDs, with some changes. Underscores are removed and the resulting string is camel-cased. For example, to reference some_frame_layout from code, you’d use binding.someFrameLayout. The someFrameLayout variable will be an instance of FrameLayout.

val someFrameLayout: FrameLayout = binding.someFrameLayout

In Java, Views are referenced by getter methods matching their IDs, with a similar format to Kotlin. For example, to reference some_frame_layout, you’d use binding.getSomeFrameLayout(). The method will return an instance of FrameLayout.

FrameLayout someFrameLayout = binding.getSomeFrameLayout();

The View references are also flattened in the binding. Referencing inner_imageview is the same as referencing some_frame_layout.

Conclusion

As I’m sure you can see, View Binding in Android is both easy to implement and easy to use. In many cases, it’s easier to use than findViewById().

For more details on implementing View Binding, along with some examples, check out Google’s official documentation.

The post Android Development Basics: How to add View Binding to an Android Gradle project appeared first on xda-developers.



from xda-developers https://ift.tt/3uCf6zy
via IFTTT

You can preorder the Apple Watch Series 7 this Friday, available starting October 15

Apple revealed the Apple Watch Series 7 back in mid-September, during its California Streaming event. It was announced along with the iPhone 13 lineup, new iPad models, and iOS 15 public availability. The new Apple Watch, available in 41 and 45mm size options, supports an on-screen keyboard, new watches faces, and more. Apple has finally shared preorder and availability dates in a Press Release.

As Apple mentions, starting this Friday, October 8th, at 5 a.m. PDT, customers in Australia, Canada, China, France, Germany, India, Japan, Mexico, Russia, South Korea, the UAE, the UK, the US, and more than 50 other countries and regions will be able to preorder the latest Apple Watch from the online store and other resellers. The Series 7 will be available in physical Apple Stores starting the following Friday, October 15th. If you wish to get your hands on this smartwatch, make sure to visit the website as soon as the pre-order page goes live. This is because sometimes new popular products go out of stock soon after they are made available.

The Apple Watch Series 7 was rumored to have flat edges, but that turned out to be inaccurate. Apart from the bigger displays and exclusive software features, the Series 7 isn’t much of a significant upgrade when compared to its predecessor. So if you’re a Series 6 owner, you might want to hold back from upgrading this year. Next year’s model(s) will likely include bigger changes.

However, if you’re on a Series 3 or an older model, the Apple Watch Series 7 is going to be a major upgrade to your smartwatch. It’s worth mentioning that the Apple Watch Series 3 supports the latest watchOS 8. So you’re still relatively up to date, from some aspects.

    Apple Watch Series 7
    The Apple Watch Series 7 features bigger 41 and 45mm displays and more.

Will you be upgrading to the Apple Watch Series 7, or will you hold back and wait for the Series 8? Let us know in the comments section below.

The post You can preorder the Apple Watch Series 7 this Friday, available starting October 15 appeared first on xda-developers.



from xda-developers https://ift.tt/3ow9l5r
via IFTTT

These are the Best Screen Protectors for the iPhone 13 Mini right now: Zagg, ESR, and more!

The iPhone 13 Mini is Apple’s latest small iPhone, and it packs a bunch of new and exciting features. One of the phone’s highlights is its 5.4 inch Super Retina XDR display with a 2340 x 1080 pixels resolution. In addition, the screen comes with HDR support, a wide color gamut, an oleophobic coating, and a peak brightness of 800 nits in SDR content and 1,200 nits in HDR content.

Apple has also included a ceramic shield to protect the screen against scratches and other minor accidents. The company claims it’s tougher than any other smartphone glass found in the market. But if you believe that’s not enough to withstand everyday mishaps, you can slap on a screen protector to safeguard it further. Fortunately, there are hundreds of iPhone 13 Mini screen guards on the market, and we have picked the best ones for you.

Best iPhone 13 Mini Screen Protectors

    Totallee Screen Protector

    Tempered Glass

    Totallee's tempered glass protector is super thin at 0.02 inches and covers the entire iPhone 13 Mini screen. It also works well with cases and protects the screen from scratches and other mishaps.
    Supershieldz Clear Shield

    PET film

    The Supershieldz screen protector is made from a PET film if you don't like the tempered glass protectors. It's crystal clear and scratch-resistant. In addition, you'll get six protectors in a pack.
    Skinomi Matte Screen Protector

    TPU film

    There are people who neither like tempered glass nor PET film. If you are one of those people, this Skinomi Matte Screen Protector is perfect for you. It's made from TPU film and comes with a matte finish.
    ESR Armorite

    Super strong

    The ESR Armorite is a tough tempered glass protector for your iPhone 13 Mini. It can resist up to 110 lbs of force. The screen protector is also easy to install with the provided kit.
    Belkin Screen Protector

    Anti-microbial coating

    Belkin is a trusted name for mobile accessories, and the company has released an excellent screen protector for the iPhone 13 Mini. It's super thin and comes with an anti-microbial coating to resist bacteria growth.
    ZAGG InvisibleShield Glass Elite

    For privacy

    If you don't like people sitting around you snooping on your iPhone, the ZAGG InvisibleShield Glass Elite Privacy Screen Protector is a good option. It has a filter to provide full-screen privacy.
    ZAGG InvisibleShield Glass Elite VisionGuard

    Protect your eyes

    The InvisibleShield Glass Elite VisionGuard is another excellent screen protector from ZAGG. It includes a layer to filter the high-energy visible (HEV) blue light to reduce eye strain.
    Spigen Tempered Glass

    Easy to apply

    The Spigen Tempered Glass protector comes with an auto-alignment kit that makes the installation super easy. It's also rated for 9H hardness and has an oleophobic coating.
    Skinomi Screen Protector

    Self-healing

    Apart from its matte screen protector, Skinomi also offers a regular TPU film that comes with self-healing technology. As a result, it can automatically remove minor scratches and scuff marks over time.

These are the best screen protectors for the iPhone 13 Mini. You can pick from tempered glass, PET film, or TPU screen protectors to safeguard the iPhone screen. If you prefer tempered glass protectors, the Spigen screen protector is an excellent option. However, if you want a PET film screen protector, Supershieldz Clear Shield is one of the better ones. Finally, for those of you who like TPU films, Skinomi has a couple of suitable protectors.

Which screen protectors are you planning to get for your iPhone 13 Mini? Let us know in the comments section. We have also selected the best cases for the phone if you want more protection.

    Apple iPhone 13 Mini
    The iPhone 13 Mini is Apple's latest small iPhone with better cameras, a bigger battery, and a smaller notch.

The post These are the Best Screen Protectors for the iPhone 13 Mini right now: Zagg, ESR, and more! appeared first on xda-developers.



from xda-developers https://ift.tt/3oxGUEu
via IFTTT

Firefox is adding password autofill support on Android

Firefox is undoubtedly one of the best web browsers for Android. It offers a ton of handy features that make it a great alternative to Google Chrome. And its latest update adds another useful feature to the mix — password autofill support. The feature will roll out with Firefox 93 for Android, and it will give you quick access to passwords saved in the browser.

It’s quite normal to forget complex passwords for multiple different accounts. This leads to many internet users setting simple, easy-to-guess passwords on websites or, worse, using the same password on multiple websites. Firefox wants to prevent this by giving you an in-built password manager to store all your passwords and secure them with your biometrics. While this isn’t something new, Firefox is taking it a step ahead by letting you autofill passwords in other third-party apps as well.

While several browsers can store your passwords, you’re restricted to using those saved passwords within the browser itself. Firefox is removing that limitation with its latest update, which means it can act as your system-wide password manager. Whenever you’re asked to enter a password, you will be shown a drop-down menu where you can choose Firefox as the option, after which your saved password for that service will be auto-filled. There’s a new Autofill in other apps setting that you will need to enable from Settings > Logins and passwords to access this feature.

Firefox passwords

When you create an account on any website via your smartphone, Firefox will give you the option to store the password for that account on your device. You can then input this saved password when you want to log in the next time. It’s quite impressive that you can use the stored passwords to log into the corresponding apps without needing a dedicated password manager app.

Firefox password auto-fill

For example, if you’ve stored the password of your Instagram account on the browser, you will get an option to auto-fill that saved password when trying to sign in via the Instagram app on your phone. As mentioned earlier, your passwords will be protected by your biometrics. This is a good initiative by Firefox as users who do not wish to get a dedicated password manager can still store their passwords securely. The feature will start rolling out to users with Firefox 93 starting October 5.

Firefox Browser: fast, private & safe web browser (Free, Google Play) →

The post Firefox is adding password autofill support on Android appeared first on xda-developers.



from xda-developers https://ift.tt/3D7bhph
via IFTTT

These are the Best Samsung Galaxy Buds+ Cases in Fall 2021: Spigen, Elago, UAG, and more!

If you’ve been using your Samsung Galaxy Buds+ without a case for a while, you may have noticed a few scratches at the top, bottom, and on the sides, and maybe even on the earbuds themselves. We’ve created this list to show you the best Samsung Galaxy Buds+ cases and help you prevent any damage to your wireless earbuds against accidental drops and scuffs.

The Galaxy Buds+ are made out of plastic and they’re prone to scratch very easily, especially if you’re the type of person that likes to throw them in the bag or slip them in your pocket in the morning rush – I’m certainly that person, and as a result, my own personal Galaxy Buds have a few scratches on the side and on the top. The Galaxy Buds+ are still one of the best wireless earbuds on the market today that works best with Samsung devices, but luckily the company made it very easy and compatible to connect it to other great devices — not only the ones that run Android.

The following list includes silicone, rugged, slim, and clear cases. Some of the cases also have multiple color options available, in case that’s something you’re interested in. Note that these cases will work with both, the Galaxy Buds and the Galaxy Buds+, as the device and case dimensions are the same.

    Spigen Rugged Armor

    Enhanced protection

    A tough, rugged matte black case by Spigen helps protect it from accidental drops and provides one of the best protection for your Galaxy Buds+. It even comes with a carabiner so you can attach it to your bag and other everyday carry items.
    Halleast TPU Full Protective Carrying Case

    Slim and full protection

    Installation takes only a few minutes and it's available in 5 colors if you want more customisation options. The TPU sticks to the bottom and top of the charging case, offering full protection against drops and scratches.
    Araree Polycarbonate Clear Case

    Transparent protection

    It’s a clear case that doesn’t compromise the great looks of the Galaxy Buds+. It doesn’t require any adhesive as the sturdy shell will stay on to the case by itself.
    Elago Silicone Case

    Full body protection

    It seamlessly sticks to the top and bottom of the charging case, offering full body protection.
    Spigen Liquid Air

    Liquid Air

    A clear and lightweight case from one of the most trusted and loved brands – Spigen. It offers precise cutouts, wireless charging support and the protection you expect.
    Airspo Silicone Case

    Full body protection

    It’s available in a number of different colors, so if you want your Galaxy Buds+ in a different color, while also protecting it, this is a great, cheap case.
    Mofree Hard Case

    Beautiful protection

    There are many variants you can select from and each and every one of them look better than the others. It doesn’t need adhesive and it covers the full charging case for more protection.
    Spigen Silicone Fit

    Full body protection

    All-round coverage and minimal looks. It uses adhesive to stick to the outer shell and protect against scratches and drops.
    LiZHi Silicone Case

    Slim and colorful

    It has a slim fit and it's available in 9 color options. It also has a carabiner so you can hook it onto your bag.
    Fintie Transparent Hard Case

    Nice clear case

    If you want a transparent case for your Galaxy Buds+ while also giving it ample amounts of protection, here's a good case you can consider.
    Silicone Switch Case

    Attractive design

    If you have a Nintendo Switch or if you're a fan of its design, this case for the Galaxy Buds+ will surely appeal to you!
    UAG Rugged Case

    Impact resistant

    UAG cases are known to offer best-in-class protection. This case adds some bulk but offers a great deal of protection.

The round-up consists of a lot of options to help you protect your Samsung Galaxy Buds+. It includes normal silicone cases, rugged ones, slim and even colorful ones. Some of the cases can be applied directly, while others may require adhesive and other materials to stick to your Buds+ charging case.

While each and every product was carefully checked, some may have larger gaps than others, so it’s recommended to check out more of these products at once to see which suits you and your needs. Many of the cases also support or have a carabiner that you can use to attach the buds to your belt, bags, and other accessories.

The Spigen Rugged Armor and the UAG Protective Case should be your primary options if you want the best protection. The Airspo Silicone case and the Spigen Slim Fit are the ones you should consider if you’re looking for a thin case that provides a fair bit of protection without adding too much bulk.

    Samsung Galaxy Buds+
    The Samsung Galaxy Buds+ is still one of the best wireless earbuds on the market today. It offers one of the best sounding experiences and microphone quality at an affordable price tag. It’s also compatible with nearly all devices thanks to the app being available on most Android devices and even on the iPhone.

The post These are the Best Samsung Galaxy Buds+ Cases in Fall 2021: Spigen, Elago, UAG, and more! appeared first on xda-developers.



from xda-developers https://ift.tt/3z3yrf9
via IFTTT

Best Magisk Modules: Call Recorder, Font Manager, 1Controller, and more!

Magisk is undoubtedly one of the best tools for Android power users looking to unlock the full potential of their device. Developed by John Wu, a.k.a. XDA Senior Recognized Developer topjohnwu, Magisk offers a distinctive “systemless interface” that can be used for everything from rooting your device to adding unique features to it. The best part about using it is it allows users to tinker with system settings without actually making changes to the system files. By utilizing this overlay-based mechanism of Magisk, developers can create and distribute ready-to-use mods in a standardized manner. Such mods are classified as “Magisk Modules” among the Android aftermarket modding scene.

Many modules exist for Magisk, providing all sorts of modifications one can imagine. Be it removing some preinstalled OEM apps, pairing the PlayStation 5’s DualSense controller with your Android phone, or cloaking your device from SafetyNet, you can perform various kinds of complex system-level modding by installing the appropriate Magisk module for the task.

But what’s inside a Magisk module? How do you install a module using Magisk? Most importantly, what are the best Magisk modules out there?

Magisk logo

Navigate this article:


Internal structure of a Magisk module

Unlike many other file formats, there’s no unique extension defined for a Magisk module. It’s nothing but a specially crafted ZIP archive that holds the files and the metadata associated with the corresponding mod, as shown below.

Inside a Magisk module


How to install a Magisk module

Despite having the same file extension, keep in mind that a Magisk module is entirely different from a regular flashable ZIP file. As a result, you can’t boot into recovery mode and flash it like a custom ROM. Rather, you need to use the Magisk app or the magisk Android binary to do the job. Of course, you need to install Magisk on your phone before installing a module.

Install using the Magisk app

  • Download the module from its official source. If you’re downloading on a PC or a Mac, then connect your Android device to it and copy the downloaded ZIP file to the internal memory of the target device.
  • Open the Magisk app on your phone and switch to the Modules tab using the bottom navigation menu.

Magisk app Modules section

  • Tap on the button named Install from storage.
  • Browse and select the module ZIP you downloaded earlier.
  • Magisk will now install the module and prompt you to restart.

Magisk app module installation

  • After rebooting, open the Magisk app once again and take a look at the Modules tab. The module you flashed should be listed under the Installed section.

Magisk app module installed

Install using the “magisk” Android binary

  • Download the module from its official source. If you’re downloading on a PC or a Mac, then connect your Android device to it and copy the downloaded ZIP file to the internal memory of the target device.
  • Make sure you have the latest ADB and Fastboot binaries installed on your PC/Mac and your phone has USB debugging turned on.
  • Open a Terminal/Command Prompt/Shell window on your PC, check if the phone is detected by ADB, and then log into the ADB shell of the phone:
    adb shell
  • Instead of accessing the ADB shell, you can also use a terminal emulator app directly on the phone.
  • Request root privilege with the command mention below:
    su
  • Accept the Superuser access prompt on the Magisk app on your phone.
  • Execute the following command to install the downloaded module using the magisk Android binary:
    magisk --install-module full_path_of_the_module_ZIP

Magisk module installation using Android binary

  • Reboot the phone. After rebooting, check the Modules tab of the Magisk app. The module you flashed should be listed under the Installed section.

The official Magisk app does come with a built-in centralized module repository (can be found under Modules => Online), but topjohnwu has recently announced his plan to phase it out in order to broaden the scope of module discoverability.


Best Magisk modules

Since the curated centralized module repo is gradually being retired from the app, Magisk users will eventually need to manually download module ZIP files and install them on their own. This is where this article comes in, as it brings together some of the most popular Magisk modules in one index. Feel free to add your comments and suggestions in the comments section at the bottom of this article.

Note: In this article, we will only be covering a handful of Magisk modules that are actively being used by a large section of the Android modding community. This does not serve as an endorsement of those modules, nor are we suggesting that the work of others should be ignored. Please visit the XDA sub-forum for Magisk to see if there are alternate (and possibly more versatile) modules available.

0 – 9

1Controller

In case you have an Android device that doesn’t properly support one of the several popular game controllers, then the 1Controller Magisk module may fix that. The module introduces the keylayout files for several popular game controllers, including the PS5’s DualSense, DualShock 4, DualShock 3, Xbox 360, Xbox One|One S, Xbox Series X|S, and the Switch Pro controller.

1Controller: GitHub Repo || XDA Discussion Thread


A – E

Active Edge Mod for Pixel devices

Missing the Google Pixel 2’s Active Edge feature on new generation Pixel devices? Thanks to XDA Recognized Developer mikalovtch, you can now bring it back through the module named “Active Edge Mod for Pixel devices.”

Active Edge Mod for Pixel devices: GitHub Repo || XDA Discussion Thread

Advanced Charging Controller

Created by XDA Senior Member VR25, Advanced Charging Controller is a module intended for extending the battery life of your device through limiting charging current, temperature, and voltage.

Advanced Charging Controller: Download || GitHub Repo || XDA Discussion Thread

App Systemizer

Sometimes you want to install a third-party app inside the /system partition to get more functionalities out of it. App Systemizer by XDA Senior Member veez21 can be handy in such scenarios, as the module allows installation of third-party applications as system apps.

App Systemizer: GitHub Repo || XDA Discussion Thread

ARCore/Playground Patcher

A Magisk module by XDA Senior Member MarcAnt01 that enables ARCore (AKA Google Play Services for AR) support for devices that haven’t got official support and allows you to install apps with ARCore support via the Play Store.

ARCore/Playground Patcher: GitHub Repo || XDA Discussion Thread

Bluetooth Library Patcher

Rooted Samsung Galaxy owners often started losing Bluetooth pairings after reboot or airplane mode switch. Bluetooth Library Patcher by XDA Senior Member 3arthur6 aims to resolve this issue by patching the Bluetooth library of the stock Samsung ROM on the fly.

Bluetooth Library Patcher: GitHub Repo || XDA Discussion Thread

Busybox for Android NDK

Static busybox binary for all Android architectures (ARM/ARM64, x86/x86_64, MIPS/MIPS64) built with the NDK from XDA Senior Recognized Developer osm0sis.

Busybox for Android NDK: GitHub Repo || XDA Discussion Thread

Call Recorder – SKVALEX

A companion Magisk module for the powerful Call Recorder app by XDA Senior Member skvalex. The module allows the app to use advanced root features, such as recording both sides on newer Android builds and starting the recording when a call get actually answered.

Call Recorder – SKVALEX: GitHub Repo || XDA Discussion Thread

Debloater

Want to get rid of the enormous volume of pre-installed OEM apps? The Debloater module by XDA Senior Member veez21 is the perfect solution for your needs. Fire up a terminal window, call the debloat command, and voila!

Debloater: GitHub Repo || XDA Discussion Thread

Detach and Detach3

Using this module, you can “detach” app(s) from your Google Play Store automatic update process. It completely hides the update in the “My games and applications” section, so you won’t see your detached apps from your Play Store pending updates.

The original mod was created by XDA Senior Member hinxnz, who is now maintaining a separate fork named Detach3. On the other hand, the regular Detach module is maintained by XDA Senior Member Rom.

Detach: Download || GitHub Repo || XDA Discussion Thread

Energized Protection

Created by XDA Senior Member AdroitAdorKhan, this module gets a list of domains that serve ads, tracking scripts and malware from multiple reputable sources and creates a hosts file that prevents your system from connecting to them.

Energized Protection: GitHub Repo || XDA Discussion Thread


F – J

Font Manager

In case you’re looking for a way to change the default font of your Android device to give a mini UI makeover, or just want to replace the stock emoji set with a more versatile one, look no further. Opt for the Font Manager module by XDA Senior Member androidacy and customize everything related to fonts and emojis to your heart’s content.

Font Manager: Download || GitHub Repo || XDA Discussion Thread

Fullscreen/Immersive Gesture Tweaks for Android 10-12

Gesture lovers, rejoice! XDA Senior Member DanGLES3 has come up with this simple, but brilliant module that lets you tweak the gesture parameters as you like.

Fullscreen/Immersive Gesture Tweaks for Android 10-12: Download || GitHub Repo || XDA Discussion Thread

JamesDSP Audio Manager

Inspired from the Omnirom DSPManager, this module brings a reformed audio effect digital signal processing engine for Android with an enhanced internal audio engine.

JamesDSP Audio Manager: Download || GitHub Repo || XDA Discussion Thread


K – O

MagiskHide Props Config

Developed by XDA Senior Moderator and Dev Committee-Dev Relations member Didgeridoohan, MagiskHide Props Config is a fascinating module that helps you to change your device’s prop values without manually tinkering with the Magisk resetprop tool. You can seamlessly modify the device fingerprint, the model number, or whatever prop you want. It can be immensely useful to pass the SafetyNet CTS Profile check on custom and uncertified ROMs.

MagiskHide Props Config: Download || GitHub Repo || XDA Discussion Thread

For this particular module, the ZIP package is hybrid in nature. You can either install it using the Magisk app, or flash it through a custom recovery like TWRP. After installing the module and rebooting, run the command props in a terminal emulator app, and follow the instructions to set your desired options.

NanoDroid

NanoDroid by XDA Senior Member Setialpha is an installer for various open-source related things, most noticeably microG and F-Droid.

NanoDroid: Download || GitHub Repo || XDA Discussion Thread


P – T

QuickSwitch

QuickSwitch is a Magisk module that enables Android Pie Recents Screen (Quickstep) in any supported launcher.

QuickSwitch: Download || GitHub Repo || XDA Discussion Thread

Riru and related modules

Riru is a powerful module that injects itself into the zygote in order to allow other modules to run their codes in apps or the system server.

Riru: Download || GitHub Repo

Many developers have coded additional modules that are dependent on Riru. For example, the Xposed Framework has got a new successor named EdXposed, which is a Riru-based Magisk module. Universal SafetyNet Fix by XDA Senior Member kdrag0n is another prime example of a Riru-based Magisk module.

TWRP A/B Retention Script

This one isn’t a typical Magisk module, but this special script from XDA Senior Recognized Developer osm0sis can help to keep TWRP installed in both slots when flashed from the Magisk app after an A/B OTA has been installed in the background.

TWRP A/B Retention Script: GitHub Repo || XDA Discussion Thread


U – Z

ViPER4Android FX

Apart from being a downloader and companion for the popular ViPER4Android software, this module also includes a profile converter and vdcs from the original ViPER4Android project.

ViPER4Android FX: Download || GitHub Repo || XDA Discussion Thread

Webview Switcher

Webview Switcher by XDA Senior Member androidacy allows users to replace the stock Android WebView with more privacy friendly as well as better performing WebView provider alternatives.

Webview Switcher: Download || GitHub Repo || XDA Discussion Thread


Started as a hobbyist project for topjohnwu, Magisk has now become a whole ecosystem on its own in the Android modding world. Once your device is up and running with Magisk, you can begin to add the modules you would like. The amazing tinkering opportunities the modules offer to end-users are truly fascinating. Now that you’ve got everything related to Magisk modules in front of you, let’s start tinkering with some of the best ones! Do check out some of our other curated lists, such as the Most Popular Custom ROMs and Most Popular Custom Kernels.

The post Best Magisk Modules: Call Recorder, Font Manager, 1Controller, and more! appeared first on xda-developers.



from xda-developers https://ift.tt/3A9pzUj
via IFTTT

If you have Sprint Complete, here’s how T-Mobile will migrate your device protection plan

T-Mobile is steadily absorbing all of Sprint’s former account features and plans, and this now includes Sprint customers with “Sprint Complete” insurance. Here’s how T-Mobile will migrate those customers’ device protection plans.

The company has shared updates to their Protection<360> service in a support document on their website. In addition to adding same-day repair to 500+ stores, T-Mobile will be migrating Sprint Complete customers to its Protection<360> device protection plan on November 1st.

Most existing Sprint Complete customers, as well as existing T-Mobile P<360> customers, will see no price increase. Sprint Complete customers that have the $19/mo coverage plan for the Samsung Galaxy Z Fold2 5G, Apple iPad Pro 11 3rd Gen, or Apple iPad Pro 12.9 5th Gen will, however, see a slight price increase to $25/mo. This is to align it with T-Mobile’s existing pricing tiers.

Sprint Complete was the former carrier’s in-house device protection offering, serviced by Asurion. T-Mobile’s P360 is serviced by Assurant, and T-Mobile will no longer be working with Asurion in any capacity.

T-Mobile’s Protection<360> has a large variety of perks like $29 screen repairs, same-day repairs for select devices, unlimited free screen protection replacements, and coverage for accidental damage, loss, and theft. Customers can make up to 5 total claims per 12 months.

Customers that have Sprint Complete and are taking advantage of the cloud storage offered via the “Complete Storage App” will need to migrate their data elsewhere before November 15th.

If a Sprint customer has the “Equipment Replacement Program” or the “Equipment Service & Repair Program Total Tech Expert” programs, those will be cancelled on November 1st. Those customers will need to sign up for P<360> with T-Mobile instead.

The post If you have Sprint Complete, here’s how T-Mobile will migrate your device protection plan appeared first on xda-developers.



from xda-developers https://ift.tt/3Afcr0c
via IFTTT