Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
48 changes: 14 additions & 34 deletions activityrouter/build.gradle
Original file line number Diff line number Diff line change
@@ -1,39 +1,13 @@
apply plugin: 'com.android.library'

sourceCompatibility = 1.7
targetCompatibility = 1.7

ext {
bintrayRepo = 'maven'
bintrayName = 'activity-router'

publishedGroupId = 'com.github.mzule.activityrouter'
libraryName = 'ActivityRouter'
artifact = 'activityrouter'

libraryDescription = 'Router activities'

siteUrl = 'https://github.com/mzule/ActivityRouter/'
gitUrl = 'https://github.com/mzule/ActivityRouter.git'

libraryVersion = '1.2.2'

developerId = 'mzule'
developerName = 'Cao Dongping'
developerEmail = 'mzule4j@gmail.com'

licenseName = 'The Apache Software License, Version 2.0'
licenseUrl = 'http://www.apache.org/licenses/LICENSE-2.0.txt'
allLicenses = ["Apache-2.0"]
}
apply plugin: 'com.novoda.bintray-release'

android {
compileSdkVersion 23
buildToolsVersion "23.0.2"
compileSdkVersion 26
buildToolsVersion "26.0.2"

defaultConfig {
minSdkVersion 7
targetSdkVersion 23
minSdkVersion 15
targetSdkVersion 26
versionCode 1
versionName "1.0"
}
Expand All @@ -47,9 +21,15 @@ android {

dependencies {
provided project(':stub')
compile 'com.github.mzule.activityrouter:annotation:1.1.5'
compile 'com.qunhe.android:annotation:1.0.1'
}

apply from: 'https://raw.githubusercontent.com/nuuneoi/JCenter/master/installv1.gradle'
apply from: 'https://raw.githubusercontent.com/nuuneoi/JCenter/master/bintrayv1.gradle'
publish {
userOrg = 'qunhe'
groupId = 'com.qunhe.android'
artifactId = 'activityrouter'
publishVersion = '1.0.2'
desc = 'This is the libs package of ActivityRouter'
website = 'https://github.com/CPPAlien/ActivityRouter'
}

Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
package com.github.mzule.activityrouter.router;

import java.util.Set;

import android.app.Activity;
import android.net.Uri;
import android.os.Bundle;

import java.util.Set;

/**
* Created by CaoDongping on 4/6/16.
*/
Expand Down Expand Up @@ -83,7 +83,13 @@ public Bundle parseExtras(Uri uri) {
Bundle bundle = new Bundle();
// path segments // ignore scheme
Path p = formatPath.next();

Path y = Path.create(uri).next();
// parseExtras means jump uri and target uri is matched, jump uri may longer than target
// we should match from last
for (int i = 0; i < y.length() - p.length(); i++) {
y = y.next();
}
while (p != null) {
if (p.isArgument()) {
put(bundle, p.argument(), y.value());
Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,15 @@
package com.github.mzule.activityrouter.router;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

/**
* Created by CaoDongping on 4/6/16.
Expand Down Expand Up @@ -43,38 +44,70 @@ public int compare(Mapping lhs, Mapping rhs) {
}

public static boolean open(Context context, String url) {
return open(context, Uri.parse(url));
return open(context, Uri.parse(url), null, getGlobalCallback(context));
}

public static boolean open(Context context, String url, Bundle bundle) {
return open(context, Uri.parse(url), bundle, getGlobalCallback(context));
}

public static boolean open(Context context, String url, RouterCallback callback) {
return open(context, Uri.parse(url), callback);
return open(context, Uri.parse(url), null, callback);
}

public static boolean open(Context context, String url, Bundle bundle, RouterCallback callback) {
return open(context, Uri.parse(url), bundle, callback);
}

public static boolean open(Context context, Uri uri) {
return open(context, uri, getGlobalCallback(context));
return open(context, uri, null, getGlobalCallback(context));
}

public static boolean open(Context context, Uri uri, Bundle bundle) {
return open(context, uri, bundle, getGlobalCallback(context));
}

public static boolean open(Context context, Uri uri, RouterCallback callback) {
return open(context, uri, -1, callback);
return open(context, uri, null, callback);
}

public static boolean open(Context context, Uri uri, Bundle bundle, RouterCallback callback) {
return open(context, uri, bundle, -1, callback);
}

public static boolean openForResult(Activity activity, String url, int requestCode) {
return openForResult(activity, Uri.parse(url), requestCode);
public static boolean openForResult(Context context, String url, int requestCode) {
return openForResult(context, Uri.parse(url), null, requestCode, getGlobalCallback(context));
}

public static boolean openForResult(Activity activity, String url, int requestCode, RouterCallback callback) {
return openForResult(activity, Uri.parse(url), requestCode, callback);
public static boolean openForResult(Context context, String url, Bundle bundle, int requestCode) {
return openForResult(context, Uri.parse(url), bundle, requestCode, getGlobalCallback(context));
}

public static boolean openForResult(Activity activity, Uri uri, int requestCode) {
return openForResult(activity, uri, requestCode, getGlobalCallback(activity));
public static boolean openForResult(Context context, String url, int requestCode, RouterCallback callback) {
return openForResult(context, Uri.parse(url), null, requestCode, callback);
}

public static boolean openForResult(Activity activity, Uri uri, int requestCode, RouterCallback callback) {
return open(activity, uri, requestCode, callback);
public static boolean openForResult(Context context, String url, Bundle bundle, int requestCode, RouterCallback callback) {
return openForResult(context, Uri.parse(url), bundle, requestCode, callback);
}

private static boolean open(Context context, Uri uri, int requestCode, RouterCallback callback) {
public static boolean openForResult(Context context, Uri uri, int requestCode) {
return openForResult(context, uri, null, requestCode, getGlobalCallback(context));
}

public static boolean openForResult(Context context, Uri uri, Bundle bundle, int requestCode) {
return openForResult(context, uri, bundle, requestCode, getGlobalCallback(context));
}

public static boolean openForResult(Context context, Uri uri, int requestCode, RouterCallback callback) {
return openForResult(context, uri, null, requestCode, callback);
}

public static boolean openForResult(Context context, Uri uri, Bundle bundle, int requestCode, RouterCallback callback) {
return open(context, uri, bundle, requestCode, callback);
}

private static boolean open(Context context, Uri uri, Bundle bundle, int requestCode, RouterCallback callback) {
boolean success = false;
if (callback != null) {
if (callback.beforeOpen(context, uri)) {
Expand All @@ -83,7 +116,7 @@ private static boolean open(Context context, Uri uri, int requestCode, RouterCal
}

try {
success = doOpen(context, uri, requestCode);
success = doOpen(context, uri, bundle, requestCode);
} catch (Throwable e) {
e.printStackTrace();
if (callback != null) {
Expand Down Expand Up @@ -119,7 +152,7 @@ public static Intent resolve(Context context, Uri uri) {
return null;
}

private static boolean doOpen(Context context, Uri uri, int requestCode) {
private static boolean doOpen(Context context, Uri uri, Bundle bundle, int requestCode) {
initIfNeed();
Path path = Path.create(uri);
for (Mapping mapping : mappings) {
Expand All @@ -131,6 +164,9 @@ private static boolean doOpen(Context context, Uri uri, int requestCode) {
Intent intent = new Intent(context, mapping.getActivity());
intent.putExtras(mapping.parseExtras(uri));
intent.putExtra(KEY_RAW_URL, uri.toString());
if (bundle != null) {
intent.putExtras(bundle);
}
if (!(context instanceof Activity)) {
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
}
Expand Down
39 changes: 11 additions & 28 deletions annotation/build.gradle
Original file line number Diff line number Diff line change
@@ -1,35 +1,18 @@
apply plugin: 'java'
apply plugin: 'com.novoda.bintray-release'

sourceCompatibility = 1.7
targetCompatibility = 1.7

ext {
bintrayRepo = 'maven'
bintrayName = 'activity-router-annotation'

publishedGroupId = 'com.github.mzule.activityrouter'
libraryName = 'Annotation'
artifact = 'annotation'

libraryDescription = 'Router activities'

siteUrl = 'https://github.com/mzule/ActivityRouter/'
gitUrl = 'https://github.com/mzule/ActivityRouter.git'

libraryVersion = '1.1.5'

developerId = 'mzule'
developerName = 'Cao Dongping'
developerEmail = 'mzule4j@gmail.com'

licenseName = 'The Apache Software License, Version 2.0'
licenseUrl = 'http://www.apache.org/licenses/LICENSE-2.0.txt'
allLicenses = ["Apache-2.0"]
}
targetCompatibility = '1.7'
sourceCompatibility = '1.7'

dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
}

apply from: 'https://raw.githubusercontent.com/nuuneoi/JCenter/master/installv1.gradle'
apply from: 'https://raw.githubusercontent.com/nuuneoi/JCenter/master/bintrayv1.gradle'
publish {
userOrg = 'qunhe'
groupId = 'com.qunhe.android'
artifactId = 'annotation'
publishVersion = '1.0.1'
desc = 'This is the libs package of ActivityRouter'
website = 'https://github.com/CPPAlien/ActivityRouter'
}
11 changes: 4 additions & 7 deletions app/build.gradle
Original file line number Diff line number Diff line change
@@ -1,16 +1,13 @@
apply plugin: 'com.android.application'

sourceCompatibility = 1.7
targetCompatibility = 1.7

android {
compileSdkVersion 23
buildToolsVersion "23.0.2"
compileSdkVersion 26
buildToolsVersion "26.0.2"

defaultConfig {
applicationId "com.github.mzule.activityrouter"
minSdkVersion 15
targetSdkVersion 23
targetSdkVersion 26
versionCode 1
versionName "1.0"
}
Expand All @@ -29,7 +26,7 @@ android {
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.2.1'
compile 'com.android.support:appcompat-v7:26.1.0'
compile project(':app_module')
annotationProcessor project(':compiler')
}
1 change: 1 addition & 0 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@
android:scheme="mzule" />
</intent-filter>
</activity>
<activity android:name=".PojoActivity"/>
</application>

</manifest>
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
package com.github.mzule.activityrouter;

import com.github.mzule.activityrouter.router.Routers;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
Expand All @@ -11,6 +9,8 @@
import android.widget.TextView;
import android.widget.Toast;

import com.github.mzule.activityrouter.router.Routers;

/**
* Created by CaoDongping on 4/7/16.
*/
Expand All @@ -35,11 +35,22 @@ public void onClick(View v) {
*/
// app内打开页面可以使用Routers.open(Context, Uri)
// Routers.open(LaunchActivity.this, Uri.parse(((TextView) view).getText().toString()), ((RouterCallbackProvider) getApplication()).provideRouterCallback());
Routers.openForResult(LaunchActivity.this, ((TextView) view).getText().toString(), Constant.REQUEST_CODE_DEMO);
Routers.openForResult(LaunchActivity.this,
((TextView) view).getText().toString(),
Constant.REQUEST_CODE_DEMO);
}
});
}
}
final TextView pojoText = (TextView)findViewById(R.id.pojo);
pojoText.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(final View view) {
Bundle bundle = new Bundle();
bundle.putParcelable("POJO", new PojoData("CPPAlien", 5));
Routers.open(LaunchActivity.this, pojoText.getText().toString(), bundle);
}
});
}

@Override
Expand Down
Loading