Git Product home page Git Product logo

Comments (4)

felipecsl avatar felipecsl commented on June 2, 2024

You could have different versions of the same activity, one for each one of your flavors, like you are doing with the AndroidManifest.xml file. Of course this would require delegating activity logic somewhere else in a common class to avoid duplication, but other than that, this approach should work fine.
DeepLinkDispatch's annotation processor is not aware of Android neither your app's flavor, so there's no way it could special-case that. Also I don't think it would make sense to do so, since this should be a concern of your application, not of the deep linking library you're using. Furthermore, currently the full URI is required for the @DeepLink annotation, so you can't omit the scheme

from deeplinkdispatch.

notsatyarth avatar notsatyarth commented on June 2, 2024

@felipecsl I seem to have a similar requirement. And the form of delegation you mention would not be feasible in my case.
I wanted your inputs on if this is possible? And what would have to be changed in the library for it. (I'd like to pick this up on a PR if you feel this is a valid feature and can be worked on).

from deeplinkdispatch.

felipecsl avatar felipecsl commented on June 2, 2024

You should be able to define your deep link constants in separate files per flavor, eg.:

src/flavor1/java/com/example/DeepLinks.java

public interface DeepLinks {
  String DEEP_LINK_1 = "ourscheme1://some/path";
}

src/flavor2/java/com/example/deep_links.java

public interface DeepLinks {
  String DEEP_LINK_1 = "ourscheme2://some/path";
}

src/main/java/com/example/SomeActivity.java

@DeepLink(DeepLinks.DEEP_LINK_1)
public class SomeActivity extends Activity {
}

Would this work for your case?

from deeplinkdispatch.

notsatyarth avatar notsatyarth commented on June 2, 2024

My use case is:

The app comprises of 3 modules and an app modules:
Each module has deeplinks configured:
The app has 3 flavours which are configured on the app level.
The modules are only available as aars(and hence cannot compile time configurations).
The App would have to propagate the deeplink scheme to different modules.
The Manifest changes can be handled because it would be from the app modules.
The modules do not differentiate between flavours.

Because of this setup, I would not be able to add different classes for flavours in my project :-(

from deeplinkdispatch.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.