MCPcopy Index your code
hub / github.com/ausboyue/IntentLife

github.com/ausboyue/IntentLife @v1.0.4

Chat with this repo
repository ↗ · DeepWiki ↗ · release v1.0.4 ↗ · + Follow
42 symbols 83 edges 11 files 17 documented · 40%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

IntentLife

English | 简体中文

License platform jitpack Latest RepoSize CoreSize

介绍

一个自动绑定Intent或Bundle携带的数据的android库。

从Gradle下载

在项目根目录下的build.gradle添加仓库地址:

    allprojects {
        repositories {
            ...
            maven { url 'https://jitpack.io' }
        }
    }

在需要使用框架的Module下的build.gradle添加依赖:

    dependencies {
          implementation 'com.github.ausboyue.IntentLife:intentlife:v1.0.4'
          annotationProcessor 'com.github.ausboyue.IntentLife:intentlife_compiler:v1.0.4'
    }

开始使用

ActivityA跳转ActivityB

  • ActivityA跳转代码可能如下:
        User user = new User();
        user.setUserId("9527");
        user.setName("Cheny");
        user.setJob("android developer");

        Intent intent = new Intent(activityA, ActivityB.class);
        intent.putExtra("key_user", user);
        startActivity(intent);
  • ActivityB使用代码如下:
public class ActivityB extends AppCompatActivity {
    @BindIntentKey("key_user")
    User mUser;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_secend);
        //  IntentLife inject
        IntentLife.bind(this);

        TextView tv_user_name = findViewById(R.id.tv_user_name);
        tv_user_name.setText(
                "Hello , I am " + mUser.getName()
                        + ".\nMy job is " + mUser.getJob() + ".");
    }
}

框架支持

数据类型

  • [x] 支持java八大基本数据类型及其数组和集合
  • [x] 支持实现java序列化Serializable接口的类
  • [x] 支持实现android序列化Parcelable接口的类及其数组和集合
  • [x] 支持android Bundle所支持的所有数据类型

界面场景

  • [x] 支持Activity间的跳转
  • [x] 支持加载Fragment
  • [x] 支持在任何需要使用数据的类中使用,如MVP设计中的Presenter类

使用注意

需要的绑定的属性不应有private修饰,否则无法正常绑定数据。

Bugs反馈

如果你在使用期间发现了bug,请联系。帮助我将它做得更好,谢谢。

关于作者

Cheny - @ausboyue on GitHub, @乘月网|www.icheny.cn

其它

请给我一些时间去完善文档哈^_^

Extension points exported contracts — how you extend this code

IBinder (Interface)
@author : www.icheny.cn @e-mail : ausboyue@gmail.com @time : 2019.07.25 @desc : This is super
intentlife/src/main/java/cn/icheny/intentlife/IBinder.java

Core symbols most depended-on inside this repo

createBinder
called by 5
intentlife/src/main/java/cn/icheny/intentlife/IntentLife.java
generateFile
called by 2
intentlife_compiler/src/main/java/cn/icheny/intentlife/BinderFactory.java
bind
called by 2
intentlife/src/main/java/cn/icheny/intentlife/IntentLife.java
getName
called by 2
sample/src/main/java/cn/icheny/intentlife/sample/User.java
getJob
called by 2
sample/src/main/java/cn/icheny/intentlife/sample/User.java
generate
called by 1
intentlife_compiler/src/main/java/cn/icheny/intentlife/JavaFileGenerator.java
produce
called by 1
intentlife_compiler/src/main/java/cn/icheny/intentlife/BinderFactory.java
produceBinder
called by 1
intentlife_compiler/src/main/java/cn/icheny/intentlife/BinderFactory.java

Shape

Method 32
Class 9
Interface 1

Languages

Java100%

Modules by API surface

sample/src/main/java/cn/icheny/intentlife/sample/User.java12 symbols
intentlife_compiler/src/main/java/cn/icheny/intentlife/IntentLifeProcessor.java8 symbols
intentlife_compiler/src/main/java/cn/icheny/intentlife/BinderFactory.java6 symbols
intentlife/src/main/java/cn/icheny/intentlife/IntentLife.java4 symbols
sample/src/main/java/cn/icheny/intentlife/sample/FragmentB.java3 symbols
sample/src/main/java/cn/icheny/intentlife/sample/ActivityA.java3 symbols
sample/src/main/java/cn/icheny/intentlife/sample/ActivityB.java2 symbols
intentlife_compiler/src/main/java/cn/icheny/intentlife/JavaFileGenerator.java2 symbols
intentlife_compiler/src/main/java/cn/icheny/intentlife/TargetField.java1 symbols
intentlife/src/main/java/cn/icheny/intentlife/IBinder.java1 symbols

For agents

$ claude mcp add IntentLife \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact