Skip to content

Commit c65896c

Browse files
authored
Merge pull request #165 from chenenyu/dev
release 1.7.6
2 parents b7c95f0 + 49ddba3 commit c65896c

File tree

18 files changed

+123
-117
lines changed

18 files changed

+123
-117
lines changed

Sample/app/build.gradle

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,10 @@ android {
1212
versionName "1.0"
1313
}
1414

15+
buildFeatures {
16+
viewBinding true
17+
}
18+
1519
buildTypes {
1620
debug {
1721
// 测试混淆
@@ -28,7 +32,7 @@ android {
2832

2933
dependencies {
3034
implementation fileTree(include: ['*.jar'], dir: 'libs')
31-
implementation "androidx.appcompat:appcompat:1.2.0"
35+
implementation "androidx.appcompat:appcompat:1.3.0"
3236
implementation project(':module1')
3337
implementation project(':module2')
3438
testImplementation 'junit:junit:4.12'

Sample/app/src/main/java/com/chenenyu/router/app/MainActivity.java

Lines changed: 27 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -6,43 +6,26 @@
66
import android.text.Editable;
77
import android.text.TextWatcher;
88
import android.view.View;
9-
import android.widget.Button;
10-
import android.widget.EditText;
119
import android.widget.Toast;
1210

1311
import androidx.appcompat.app.AppCompatActivity;
1412

1513
import com.chenenyu.router.RouteCallback;
1614
import com.chenenyu.router.RouteStatus;
1715
import com.chenenyu.router.Router;
18-
import com.chenenyu.router.template.RouteTable;
19-
20-
import java.util.Map;
16+
import com.chenenyu.router.app.databinding.ActivityMainBinding;
2117

2218
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
19+
private ActivityMainBinding binding;
2320
private String uri;
24-
private Button btn0, btn1, btn2, btn3, btn4, btn5, btn6, btn7, btn8, btn9, btn10, btn11;
2521

2622
@Override
2723
protected void onCreate(Bundle savedInstanceState) {
2824
super.onCreate(savedInstanceState);
29-
setContentView(R.layout.activity_main);
30-
31-
EditText editRoute = findViewById(R.id.edit_route);
32-
btn0 = findViewById(R.id.btn0);
33-
btn1 = findViewById(R.id.btn1);
34-
btn2 = findViewById(R.id.btn2);
35-
btn3 = findViewById(R.id.btn3);
36-
btn4 = findViewById(R.id.btn4);
37-
btn5 = findViewById(R.id.btn5);
38-
btn6 = findViewById(R.id.btn6);
39-
btn7 = findViewById(R.id.btn7);
40-
btn8 = findViewById(R.id.btn8);
41-
btn9 = findViewById(R.id.btn9);
42-
btn10 = findViewById(R.id.btn10);
43-
btn11 = findViewById(R.id.btn11);
25+
binding = ActivityMainBinding.inflate(getLayoutInflater());
26+
setContentView(binding.getRoot());
4427

45-
editRoute.addTextChangedListener(new TextWatcher() {
28+
binding.editRoute.addTextChangedListener(new TextWatcher() {
4629
@Override
4730
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
4831
}
@@ -54,19 +37,14 @@ public void onTextChanged(CharSequence s, int start, int before, int count) {
5437
@Override
5538
public void afterTextChanged(Editable s) {
5639
uri = s.toString();
57-
btn0.setText(getString(R.string.go_to, s));
40+
binding.btn0.setText(getString(R.string.go_to, s));
5841
}
5942
});
6043

6144
Router.addGlobalInterceptor(new GlobalInterceptor());
6245

6346
// 动态添加路由
64-
Router.handleRouteTable(new RouteTable() {
65-
@Override
66-
public void handle(Map<String, Class<?>> map) {
67-
map.put("dynamic", DynamicActivity.class);
68-
}
69-
});
47+
Router.handleRouteTable(map -> map.put("dynamic", DynamicActivity.class));
7048

7149
// Router.handleInterceptorTable(new InterceptorTable() {
7250
// @Override
@@ -85,41 +63,39 @@ public void handle(Map<String, Class<?>> map) {
8563

8664
@Override
8765
public void onClick(View v) {
88-
if (v == btn0) {
89-
Router.build(uri).callback(new RouteCallback() { // 添加结果回调
90-
@Override
91-
public void callback(RouteStatus status, Uri uri, String message) {
92-
if (status == RouteStatus.SUCCEED) {
93-
Toast.makeText(MainActivity.this, "succeed: " + uri.toString(), Toast.LENGTH_SHORT).show();
94-
} else {
95-
Toast.makeText(MainActivity.this, "error: " + uri + ", " + message, Toast.LENGTH_SHORT).show();
96-
}
66+
if (v == binding.btn0) {
67+
// 添加结果回调
68+
Router.build(uri).callback((RouteCallback) (status, uri, message) -> {
69+
if (status == RouteStatus.SUCCEED) {
70+
Toast.makeText(MainActivity.this, "succeed: " + uri.toString(), Toast.LENGTH_SHORT).show();
71+
} else {
72+
Toast.makeText(MainActivity.this, "error: " + uri + ", " + message, Toast.LENGTH_SHORT).show();
9773
}
9874
}).go(this);
99-
} else if (v == btn1) {
100-
Router.build(btn1.getText().toString()).go(this);
101-
} else if (v == btn2) {
75+
} else if (v == binding.btn1) {
76+
Router.build(binding.btn1.getText().toString()).go(this);
77+
} else if (v == binding.btn2) {
10278
Router.build("dynamic").go(this);
103-
} else if (v == btn3) {
79+
} else if (v == binding.btn3) {
10480
// Bundle bundle = new Bundle();
10581
// bundle.putString("extra", "Bundle from MainActivity.");
10682
// Router.build("result").requestCode(0).with(bundle).go(this);
10783
Router.build("result").requestCode(0).with("extra", "Bundle from MainActivity.").go(this);
108-
} else if (v == btn4) {
84+
} else if (v == binding.btn4) {
10985
startActivity(new Intent(this, WebActivity.class));
110-
} else if (v == btn5) {
86+
} else if (v == binding.btn5) {
11187
Router.build(Uri.parse("router://implicit?id=9527&status=success")).go(this);
112-
} else if (v == btn6) {
113-
Router.build(btn6.getText().toString()).go(this);
114-
} else if (v == btn7) {
88+
} else if (v == binding.btn6) {
89+
Router.build(binding.btn6.getText().toString()).go(this);
90+
} else if (v == binding.btn7) {
11591
Router.build("module1").go(this);
116-
} else if (v == btn8) {
92+
} else if (v == binding.btn8) {
11793
Router.build("module2").go(this);
118-
} else if (v == btn9) {
94+
} else if (v == binding.btn9) {
11995
Router.build("intercepted").go(this);
120-
} else if (v == btn10) {
96+
} else if (v == binding.btn10) {
12197
Router.build("intercepted").skipInterceptors().go(this);
122-
} else if (v == btn11) {
98+
} else if (v == binding.btn11) {
12399
Router.build("test").addInterceptors("AInterceptor").go(this);
124100
}
125101
}

Sample/app/src/main/java/com/chenenyu/router/app/TestActivity.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
package com.chenenyu.router.app;
22

33
import android.os.Bundle;
4-
import android.widget.TextView;
54

65
import androidx.appcompat.app.AppCompatActivity;
76

87
import com.chenenyu.router.Router;
98
import com.chenenyu.router.annotation.InjectParam;
109
import com.chenenyu.router.annotation.Route;
10+
import com.chenenyu.router.app.databinding.ActivityTestBinding;
1111

1212
@Route({"test", "http://example.com/user", "router://filter/test"})
1313
public class TestActivity extends AppCompatActivity {
@@ -25,17 +25,19 @@ public class TestActivity extends AppCompatActivity {
2525
@InjectParam
2626
Model test4;
2727

28+
private ActivityTestBinding binding;
29+
2830
@Override
2931
protected void onCreate(Bundle savedInstanceState) {
3032
super.onCreate(savedInstanceState);
31-
setContentView(R.layout.activity_test);
33+
binding = ActivityTestBinding.inflate(getLayoutInflater());
34+
setContentView(binding.getRoot());
3235

3336
Router.injectParams(this);
3437

3538
Bundle mExtras = getIntent().getExtras();
3639
id = mExtras.getString("id", id);
3740

38-
TextView text = findViewById(R.id.text_test);
3941
Bundle bundle = getIntent().getExtras();
4042
if (bundle != null && !bundle.isEmpty()) {
4143
StringBuilder sb = new StringBuilder();
@@ -44,7 +46,7 @@ protected void onCreate(Bundle savedInstanceState) {
4446
.append("\n")
4547
.append("status:")
4648
.append(sts);
47-
text.setText(sb.toString());
49+
binding.textTest.setText(sb.toString());
4850
}
4951
}
5052
}

Sample/module1/build.gradle

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
apply plugin: 'com.android.library'
22
apply plugin: 'kotlin-android'
3-
apply plugin: 'kotlin-android-extensions'
43
apply plugin: 'com.chenenyu.router'
54

65
android {
@@ -13,6 +12,10 @@ android {
1312
versionName "1.0"
1413
}
1514

15+
buildFeatures {
16+
viewBinding true
17+
}
18+
1619
buildTypes {
1720
release {
1821
minifyEnabled false
@@ -32,6 +35,6 @@ android {
3235

3336
dependencies {
3437
implementation fileTree(include: ['*.jar'], dir: 'libs')
35-
implementation "androidx.appcompat:appcompat:1.1.0"
38+
implementation "androidx.appcompat:appcompat:1.3.0"
3639
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
3740
}
Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,20 @@
11
package com.chenenyu.router.module;
22

3-
43
import android.os.Bundle;
54
import android.util.Log;
65
import android.view.LayoutInflater;
76
import android.view.View;
87
import android.view.ViewGroup;
98

9+
import androidx.annotation.NonNull;
1010
import androidx.annotation.Nullable;
1111
import androidx.fragment.app.Fragment;
1212

1313
import com.chenenyu.router.Router;
1414
import com.chenenyu.router.annotation.InjectParam;
1515
import com.chenenyu.router.annotation.Route;
16-
import com.chenenyu.router.module1.R;
16+
import com.chenenyu.router.module1.databinding.FragmentModule1Binding;
1717

18-
import org.jetbrains.annotations.NotNull;
1918

2019
/**
2120
* A simple {@link Fragment} subclass.
@@ -28,29 +27,34 @@ public class Module1Fragment extends Fragment {
2827
@InjectParam(key = "test22")
2928
char[] test2;
3029

30+
private FragmentModule1Binding binding;
31+
3132
public Module1Fragment() {
3233
// Required empty public constructor
3334
}
3435

3536
@Override
36-
public View onCreateView(LayoutInflater inflater, ViewGroup container,
37+
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container,
3738
Bundle savedInstanceState) {
38-
// Inflate the layout for this fragment
39-
return inflater.inflate(R.layout.fragment_module1, container, false);
39+
binding = FragmentModule1Binding.inflate(inflater, container, false);
40+
return binding.getRoot();
4041
}
4142

4243
@Override
43-
public void onViewCreated(@NotNull View view, @Nullable Bundle savedInstanceState) {
44-
getView().findViewById(R.id.btn_go).setOnClickListener(new View.OnClickListener() {
45-
@Override
46-
public void onClick(View v) {
47-
Router.build("module1").go(Module1Fragment.this);
48-
getActivity().finish();
49-
}
44+
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
45+
binding.btnGo.setOnClickListener(v -> {
46+
Router.build("module1").go(Module1Fragment.this);
47+
requireActivity().finish();
5048
});
5149

5250
Router.injectParams(Module1Fragment.this);
5351

5452
Log.d(Module1Fragment.class.getSimpleName(), "test1=" + test1);
5553
}
54+
55+
@Override
56+
public void onDestroyView() {
57+
super.onDestroyView();
58+
binding = null;
59+
}
5660
}

Sample/module1/src/main/kotlin/com/chenenyu/router/module/Module1Activity.kt

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,17 +5,18 @@ import androidx.appcompat.app.AppCompatActivity
55
import androidx.fragment.app.Fragment
66
import com.chenenyu.router.Router
77
import com.chenenyu.router.annotation.Route
8-
import com.chenenyu.router.module1.R
8+
import com.chenenyu.router.module1.databinding.ActivityModule1Binding
99

1010
@Route("module1", "router://filter/module1")
1111
class Module1Activity : AppCompatActivity() {
1212

13+
private lateinit var binding: ActivityModule1Binding
14+
1315
override fun onCreate(savedInstanceState: Bundle?) {
1416
super.onCreate(savedInstanceState)
15-
16-
setContentView(R.layout.activity_module1)
17-
17+
binding = ActivityModule1Binding.inflate(layoutInflater)
18+
setContentView(binding.root)
1819
val fragment = Router.build("fragment2").getFragment(this) as Fragment
19-
supportFragmentManager.beginTransaction().add(R.id.activity_module1, fragment).commit()
20+
supportFragmentManager.beginTransaction().add(binding.activityModule1.id, fragment).commit()
2021
}
2122
}

Sample/module1/src/main/res/layout/fragment_module1.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
xmlns:tools="http://schemas.android.com/tools"
33
android:layout_width="match_parent"
44
android:layout_height="match_parent"
5-
tools:context="com.chenenyu.router.module.Module1Activity">
5+
tools:context="com.chenenyu.router.module.Module1Fragment">
66

77
<TextView
88
android:layout_width="wrap_content"

Sample/module2/build.gradle

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
apply plugin: 'com.android.library'
22
apply plugin: 'kotlin-android'
3-
apply plugin: 'kotlin-android-extensions'
43
apply plugin: 'com.chenenyu.router'
54

65
android {
@@ -13,6 +12,10 @@ android {
1312
versionName "1.0"
1413
}
1514

15+
buildFeatures {
16+
viewBinding true
17+
}
18+
1619
buildTypes {
1720
release {
1821
minifyEnabled false
@@ -32,6 +35,6 @@ android {
3235

3336
dependencies {
3437
implementation fileTree(include: ['*.jar'], dir: 'libs')
35-
implementation "androidx.appcompat:appcompat:1.1.0"
38+
implementation "androidx.appcompat:appcompat:1.3.0"
3639
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
3740
}

Sample/module2/src/main/java/com/chenenyu/router/module/Module2Activity.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,19 +7,21 @@
77

88
import com.chenenyu.router.Router;
99
import com.chenenyu.router.annotation.Route;
10-
import com.chenenyu.router.module2.R;
10+
import com.chenenyu.router.module2.databinding.ActivityModule2Binding;
1111

1212
@Route("module2")
1313
public class Module2Activity extends AppCompatActivity {
14+
private ActivityModule2Binding binding;
1415

1516
@Override
1617
protected void onCreate(Bundle savedInstanceState) {
1718
super.onCreate(savedInstanceState);
18-
setContentView(R.layout.activity_module2);
19+
binding = ActivityModule2Binding.inflate(getLayoutInflater());
20+
setContentView(binding.getRoot());
1921

2022
Fragment fragment = Router.build("fragment1").getFragment(this);
2123
if (fragment != null) {
22-
getSupportFragmentManager().beginTransaction().add(R.id.activity_module2, fragment).commit();
24+
getSupportFragmentManager().beginTransaction().add(binding.activityModule2.getId(), fragment).commit();
2325
}
2426
}
2527
}

0 commit comments

Comments
 (0)