diff --git a/.gitignore b/.gitignore index c6cbe56..a1c63d7 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,5 @@ .DS_Store /build /captures +rxjavaapp.jks +grad* \ No newline at end of file diff --git a/LICENSE.txt b/LICENSE.txt new file mode 100644 index 0000000..8dada3e --- /dev/null +++ b/LICENSE.txt @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright {yyyy} {name of copyright owner} + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/README.md b/README.md index d113db6..ed39dfd 100644 --- a/README.md +++ b/README.md @@ -1,27 +1,37 @@ -###请记住: 实践是检验真理的唯一标准,有所尝试才能有所收获。 -一个用于学习RxJava操作符的app +### 学习RxJava操作符的APP + 全新升级,更漂亮,更耐看,已加入RxJava2.x介绍 自行编译 -下载地址: fir.im
-http://fir.im/bpdu +### 展示: + + + -或者直接在 Release里面下载
-https://github.com/jiang111/RxJavaApp/releases/tag/1.3 +### 下载地址 +>* 自行编译 +### 说明: +>* Logo来源于网络 +>* app中用到的数据来自: https://github.com/mcxiaoke/RxDocs +>* 介绍的操作符并不是全部操作符,大都是我们常用的,想要看全部操作符,请移步:http://reactivex.io/RxJava/javadoc/overview-summary.html +>* 线程调度的一些说明可能不准确,如发现错误,欢迎提issue,我会及时更正过来 -时间仓促,如果各位看官发现有错误的话请提到issue +### 捐赠 +如果您觉得对您有帮助,欢迎请作者一杯咖啡

+![](https://raw.githubusercontent.com/jiang111/RxJavaApp/master/qrcode/wechat_alipay.png) -Logo来源于网络,如有所不适请见谅😄 -app中用到的数据来自:https://github.com/mcxiaoke/RxDocs +### License + Copyright 2016 NewTab + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at -![](https://raw.githubusercontent.com/jiang111/RxJavaApp/master/app/art/1.png) - -![](https://raw.githubusercontent.com/jiang111/RxJavaApp/master/app/art/2.png) - -![](https://raw.githubusercontent.com/jiang111/RxJavaApp/master/app/art/3.png) - -![](https://raw.githubusercontent.com/jiang111/RxJavaApp/master/app/art/4.png) - + http://www.apache.org/licenses/LICENSE-2.0 + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/app/art/1.png b/app/art/1.png index 99eb12c..975241d 100644 Binary files a/app/art/1.png and b/app/art/1.png differ diff --git a/app/art/2.png b/app/art/2.png index c21d09b..6e7ac84 100644 Binary files a/app/art/2.png and b/app/art/2.png differ diff --git a/app/art/3.png b/app/art/3.png index a0d465c..e245213 100644 Binary files a/app/art/3.png and b/app/art/3.png differ diff --git a/app/art/4.png b/app/art/4.png deleted file mode 100644 index a1a5402..0000000 Binary files a/app/art/4.png and /dev/null differ diff --git a/app/build.gradle b/app/build.gradle index b81f2d1..a38e3df 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -8,8 +8,8 @@ android { applicationId "com.jiang.android.rxjavaapp" minSdkVersion 15 targetSdkVersion 23 - versionCode 3 - versionName "1.3" + versionCode 9 + versionName "2.0" } buildTypes { release { @@ -22,7 +22,6 @@ android { dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) testCompile 'junit:junit:4.12' - testCompile 'junit:junit:4.12' compile 'com.android.support:appcompat-v7:23.2.1' compile 'com.android.support:design:23.2.1' compile 'com.nostra13.universalimageloader:universal-image-loader:1.9.5' @@ -35,5 +34,4 @@ dependencies { compile 'io.reactivex:rxjava:1.1.1' compile 'io.reactivex:rxandroid:1.1.0' - } diff --git a/app/libs/commons-codec-1.6.jar b/app/libs/commons-codec-1.6.jar new file mode 100644 index 0000000..ee1bc49 Binary files /dev/null and b/app/libs/commons-codec-1.6.jar differ diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro index 30d88c0..6357755 100644 --- a/app/proguard-rules.pro +++ b/app/proguard-rules.pro @@ -12,6 +12,6 @@ # If your project uses WebView with JS, uncomment the following # and specify the fully qualified class name to the JavaScript interface # class: -#-keepclassmembers class fqcn.of.javascript.interface.for.webview { -# public *; -#} +-keepclassmembers class fqcn.of.javascript.interface.for.webview { + public *; +} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 3775086..9173c99 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -15,10 +15,10 @@ android:screenOrientation="portrait" android:supportsRtl="true" android:theme="@style/AppTheme"> - + - - + + diff --git a/app/src/main/java/com/jiang/android/rxjavaapp/actiity/LauncherActivity.java b/app/src/main/java/com/jiang/android/rxjavaapp/activity/LauncherActivity.java similarity index 82% rename from app/src/main/java/com/jiang/android/rxjavaapp/actiity/LauncherActivity.java rename to app/src/main/java/com/jiang/android/rxjavaapp/activity/LauncherActivity.java index 31ba8b7..27dc2bd 100644 --- a/app/src/main/java/com/jiang/android/rxjavaapp/actiity/LauncherActivity.java +++ b/app/src/main/java/com/jiang/android/rxjavaapp/activity/LauncherActivity.java @@ -1,4 +1,4 @@ -package com.jiang.android.rxjavaapp.actiity; +package com.jiang.android.rxjavaapp.activity; import android.content.Intent; import android.os.Bundle; @@ -8,9 +8,8 @@ import com.jiang.android.rxjavaapp.R; import com.jiang.android.rxjavaapp.common.CommonString; -import com.jiang.android.rxjavaapp.common.SPKey; +import com.jiang.android.rxjavaapp.database.helper.DbUtil; import com.jiang.android.rxjavaapp.utils.DataUtils; -import com.jiang.android.rxjavaapp.utils.SharePrefUtil; import com.nostra13.universalimageloader.core.ImageLoader; public class LauncherActivity extends AppCompatActivity { @@ -29,11 +28,13 @@ protected void onCreate(Bundle savedInstanceState) { } private void startAct() { - if (SharePrefUtil.getBoolean(this, SPKey.FIRST_ENTER, true)) { + + + long count = DbUtil.getOperatorsService().count(); + if (count == 0) { DataUtils.fillData(new DataUtils.callBack() { @Override public void onSuccess() { - SharePrefUtil.saveBoolean(LauncherActivity.this, SPKey.FIRST_ENTER, false); startActivity(new Intent(LauncherActivity.this, MainActivity.class)); LauncherActivity.this.finish(); diff --git a/app/src/main/java/com/jiang/android/rxjavaapp/actiity/MainActivity.java b/app/src/main/java/com/jiang/android/rxjavaapp/activity/MainActivity.java similarity index 86% rename from app/src/main/java/com/jiang/android/rxjavaapp/actiity/MainActivity.java rename to app/src/main/java/com/jiang/android/rxjavaapp/activity/MainActivity.java index 7f62b9a..fa51b5c 100644 --- a/app/src/main/java/com/jiang/android/rxjavaapp/actiity/MainActivity.java +++ b/app/src/main/java/com/jiang/android/rxjavaapp/activity/MainActivity.java @@ -1,6 +1,7 @@ -package com.jiang.android.rxjavaapp.actiity; +package com.jiang.android.rxjavaapp.activity; import android.content.Intent; +import android.net.Uri; import android.os.Bundle; import android.support.design.widget.NavigationView; import android.support.v4.view.GravityCompat; @@ -9,12 +10,14 @@ import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.support.v7.widget.Toolbar; +import android.text.TextUtils; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView; +import android.widget.Toast; import com.jiang.android.rxjavaapp.R; import com.jiang.android.rxjavaapp.adapter.BaseAdapter; @@ -39,12 +42,14 @@ public class MainActivity extends BaseActivity implements View.OnClickListener { + private static final int REQUEST_STORAGE = 1010; private Toolbar toolbar; private LinearLayout mHeadView; RecyclerView mNavRecyclerView; BaseAdapter mAdapter; BaseAdapter mContentAdapter; + private int checkedPosition = 0; private List mList = new ArrayList<>(); private List mContentLists = new ArrayList<>(); @@ -62,6 +67,7 @@ protected void initViewsAndEvents() { initNavRecycerView(); mContentRecyclerView = (RecyclerView) findViewById(R.id.id_content); + } private void getAllOperatorById(final long parent_id) { @@ -94,7 +100,9 @@ private void initContentRecyclerView() { LinearLayoutManager manager = new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false); mContentRecyclerView.setLayoutManager(manager); mContentRecyclerView.setHasFixedSize(true); - getAllOperatorById(mList.get(0).getOuter_id()); + if (mList != null && mList.size() > 0) { + getAllOperatorById(mList.get(0).getOuter_id()); + } } @@ -107,6 +115,12 @@ protected void onBindView(BaseViewHolder holder, final int position) { ImageView iv = holder.getView(R.id.item_content_iv); TextView title = holder.getView(R.id.item_content_title); TextView desc = holder.getView(R.id.item_content_desc); + TextView thread = holder.getView(R.id.item_content_thread); + if (TextUtils.isEmpty(mContentLists.get(position).getThread())) { + thread.setText("默认线程"); + } else { + thread.setText(mContentLists.get(position).getThread()); + } title.setText(mContentLists.get(position).getName()); desc.setText(mContentLists.get(position).getDesc()); ImageLoader.getInstance().displayImage(mContentLists.get(position).getImg(), iv); @@ -142,6 +156,7 @@ public void onItemClick(int position) { }); mContentRecyclerView.setAdapter(mContentAdapter); } else { + mContentRecyclerView.getLayoutManager().scrollToPosition(0); mContentAdapter.notifyDataSetChanged(); } } @@ -190,6 +205,11 @@ public int getItemCount() { protected void onBindView(BaseViewHolder holder, int position) { TextView tv = holder.getView(R.id.item_nav_head_v); tv.setText(mList.get(position).getName()); + if (position == checkedPosition) { + tv.setBackgroundColor(getResources().getColor(R.color._eeeeee)); + } else { + tv.setBackgroundColor(getResources().getColor(R.color.white)); + } } @Override @@ -200,7 +220,8 @@ protected int getLayoutID(int position) { mAdapter.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(int position) { - + checkedPosition = position; + mAdapter.notifyDataSetChanged(); getAllOperatorById(mList.get(position).getOuter_id()); if (drawer.isDrawerOpen(GravityCompat.START)) { drawer.closeDrawer(GravityCompat.START); @@ -270,18 +291,33 @@ public boolean onOptionsItemSelected(MenuItem item) { case R.id.share: shareText(item.getActionView()); break; + case R.id.mark: + try { + Intent viewIntent = new Intent("android.intent.action.VIEW", + Uri.parse("market://details?id=" + getPackageName())); + startActivity(viewIntent); + } catch (Exception e) { + e.printStackTrace(); + toast("手机未安装应用市场"); + } } return super.onOptionsItemSelected(item); } + + private void toast(String str) { + Toast.makeText(this, str, Toast.LENGTH_SHORT).show(); + } + public void shareText(View view) { Intent shareIntent = new Intent(); shareIntent.setAction(Intent.ACTION_SEND); - shareIntent.putExtra(Intent.EXTRA_TEXT, "Hi,我正在学习RxJava,推荐你下载这个app一起学习吧 https://github.com/jiang111/RxJavaApp/releases"); + shareIntent.putExtra(Intent.EXTRA_TEXT, "Hi,我正在学习RxJava,推荐你下载这个app一起学习吧 到应用商店或者https://github.com/jiang111/RxJavaApp/releases即可下载"); shareIntent.setType("text/plain"); startActivity(Intent.createChooser(shareIntent, "分享到")); } + @Override public void onClick(View v) { switch (v.getId()) { @@ -312,4 +348,6 @@ public void showImgFullScreen(int pos) { readyGo(PhotoPagerActivity.class, bundle); } + + } diff --git a/app/src/main/java/com/jiang/android/rxjavaapp/actiity/PhotoPagerActivity.java b/app/src/main/java/com/jiang/android/rxjavaapp/activity/PhotoPagerActivity.java similarity index 97% rename from app/src/main/java/com/jiang/android/rxjavaapp/actiity/PhotoPagerActivity.java rename to app/src/main/java/com/jiang/android/rxjavaapp/activity/PhotoPagerActivity.java index b6927fb..58c8e25 100644 --- a/app/src/main/java/com/jiang/android/rxjavaapp/actiity/PhotoPagerActivity.java +++ b/app/src/main/java/com/jiang/android/rxjavaapp/activity/PhotoPagerActivity.java @@ -1,4 +1,4 @@ -package com.jiang.android.rxjavaapp.actiity; +package com.jiang.android.rxjavaapp.activity; import android.support.v4.view.PagerAdapter; import android.view.View; diff --git a/app/src/main/java/com/jiang/android/rxjavaapp/common/CommonString.java b/app/src/main/java/com/jiang/android/rxjavaapp/common/CommonString.java index 19fc805..30ef73e 100644 --- a/app/src/main/java/com/jiang/android/rxjavaapp/common/CommonString.java +++ b/app/src/main/java/com/jiang/android/rxjavaapp/common/CommonString.java @@ -32,160 +32,160 @@ * Created by jiang on 16/3/13. */ public class CommonString { - public static final String SPLASH_INDEX_URL = "http://s7.51cto.com/wyfs02/M01/71/AC/wKiom1XWiPSQ-3r1AABXHna6t3c411.jpg"; + public static final String SPLASH_INDEX_URL = "https://raw.githubusercontent.com/jiang111/jiang111.github.io/master/images/rxjava_app_launcher.png"; public static final String GITHUB_URL = "https://github.com/jiang111/RxJavaApp"; - public static final String OBSERVABLES = "https://github.com/mcxiaoke/RxDocs/raw/master/images/legend.png"; - public static final String SUBJECT = "https://github.com/mcxiaoke/RxDocs/raw/master/images/S.AsyncSubject.png"; - public static final String JUST = "https://github.com/mcxiaoke/RxDocs/raw/master/images/operators/just.png"; - public static final String FROM = "https://github.com/mcxiaoke/RxDocs/raw/master/images/operators/from.png"; - public static final String REPEAT = "https://github.com/mcxiaoke/RxDocs/raw/master/images/operators/repeat.c.png"; - public static final String REPEAT_WHEN = "https://github.com/mcxiaoke/RxDocs/raw/master/images/operators/repeatWhen.f.png"; - public static final String CREATE = "https://github.com/mcxiaoke/RxDocs/raw/master/images/operators/create.c.png"; - public static final String DEFER = "https://github.com/mcxiaoke/RxDocs/raw/master/images/operators/defer.c.png"; - public static final String RANGE = "https://github.com/mcxiaoke/RxDocs/raw/master/images/operators/range.png"; - public static final String INTERVAL = "https://github.com/mcxiaoke/RxDocs/raw/master/images/operators/interval.c.png"; - public static final String TIMER = "https://github.com/mcxiaoke/RxDocs/raw/master/images/operators/timer.p.png"; + public static final String OBSERVABLES = "https://github.com/jiang111/RxDocs/raw/master/images/legend.png"; + public static final String SUBJECT = "https://github.com/jiang111/RxDocs/raw/master/images/S.AsyncSubject.png"; + public static final String JUST = "https://github.com/jiang111/RxDocs/raw/master/images/operators/just.png"; + public static final String FROM = "https://github.com/jiang111/RxDocs/raw/master/images/operators/from.png"; + public static final String REPEAT = "https://github.com/jiang111/RxDocs/raw/master/images/operators/repeat.c.png"; + public static final String REPEAT_WHEN = "https://github.com/jiang111/RxDocs/raw/master/images/operators/repeatWhen.f.png"; + public static final String CREATE = "https://github.com/jiang111/RxDocs/raw/master/images/operators/create.c.png"; + public static final String DEFER = "https://github.com/jiang111/RxDocs/raw/master/images/operators/defer.c.png"; + public static final String RANGE = "https://github.com/jiang111/RxDocs/raw/master/images/operators/range.png"; + public static final String INTERVAL = "https://github.com/jiang111/RxDocs/raw/master/images/operators/interval.c.png"; + public static final String TIMER = "https://github.com/jiang111/RxDocs/raw/master/images/operators/timer.p.png"; public static final String EMPTY = SPLASH_INDEX_URL; // transd form - public static final String MAP = "https://github.com/mcxiaoke/RxDocs/raw/master/images/operators/map.png"; - public static final String FLATMAP = "https://github.com/mcxiaoke/RxDocs/raw/master/images/operators/flatMap.png"; - public static final String CONTACTMAP = "https://github.com/mcxiaoke/RxDocs/raw/master/images/operators/concatMap.png"; - public static final String SWITCHMAP = "https://github.com/mcxiaoke/RxDocs/raw/master/images/operators/switchMap.png"; - public static final String SCAN = "https://github.com/mcxiaoke/RxDocs/raw/master/images/operators/scan.c.png"; - public static final String GROUPBY = "https://github.com/mcxiaoke/RxDocs/raw/master/images/operators/groupBy.c.png"; - public static final String BUFFER = "https://github.com/mcxiaoke/RxDocs/raw/master/images/operators/buffer.png"; - public static final String WINDOW = "https://github.com/mcxiaoke/RxDocs/raw/master/images/operators/window.C.png"; - public static final String CAST = "https://github.com/mcxiaoke/RxDocs/raw/master/images/operators/cast.png"; + public static final String MAP = "https://github.com/jiang111/RxDocs/raw/master/images/operators/map.png"; + public static final String FLATMAP = "https://github.com/jiang111/RxDocs/raw/master/images/operators/flatMap.png"; + public static final String CONTACTMAP = "https://github.com/jiang111/RxDocs/raw/master/images/operators/concatMap.png"; + public static final String SWITCHMAP = "https://github.com/jiang111/RxDocs/raw/master/images/operators/switchMap.png"; + public static final String SCAN = "https://github.com/jiang111/RxDocs/raw/master/images/operators/scan.c.png"; + public static final String GROUPBY = "https://github.com/jiang111/RxDocs/raw/master/images/operators/groupBy.c.png"; + public static final String BUFFER = "https://github.com/jiang111/RxDocs/raw/master/images/operators/buffer.png"; + public static final String WINDOW = "https://github.com/jiang111/RxDocs/raw/master/images/operators/window.C.png"; + public static final String CAST = "https://github.com/jiang111/RxDocs/raw/master/images/operators/cast.png"; //filter - public static final String FILTER = "https://github.com/mcxiaoke/RxDocs/raw/master/images/operators/filter.c.png"; - public static final String TAKE_LAST = "https://github.com/mcxiaoke/RxDocs/raw/master/images/operators/takeLast.c.png"; - public static final String LAST = "https://github.com/mcxiaoke/RxDocs/raw/master/images/operators/last.c.png"; - public static final String LAST_OR_DEFAULT = "https://github.com/mcxiaoke/RxDocs/raw/master/images/operators/lastOrDefault.p.png"; - public static final String TAKE_LAST_BUFFER = "https://github.com/mcxiaoke/RxDocs/raw/master/images/operators/takeLastBuffer.png"; - public static final String SKIP = "https://github.com/mcxiaoke/RxDocs/raw/master/images/operators/skip.png"; - public static final String SKIP_LAST = "https://github.com/mcxiaoke/RxDocs/raw/master/images/operators/skipLast.c.png"; - public static final String TAKE = "https://github.com/mcxiaoke/RxDocs/raw/master/images/operators/take.c.png"; - public static final String FIRST = "https://github.com/mcxiaoke/RxDocs/raw/master/images/operators/first.c.png"; - public static final String FIRST_DEFAULT = "https://github.com/mcxiaoke/RxDocs/raw/master/images/operators/firstOrDefault.png"; - public static final String ELEMENT_AT = "https://github.com/mcxiaoke/RxDocs/raw/master/images/operators/elementAt.c.png"; - public static final String ELEMENT_DEFAULT = "https://github.com/mcxiaoke/RxDocs/raw/master/images/operators/elementAtOrDefault.png"; - public static final String SAMPLE = "https://github.com/mcxiaoke/RxDocs/raw/master/images/operators/sample.png"; - public static final String THROLFIRST = "https://github.com/mcxiaoke/RxDocs/raw/master/images/operators/throttleFirst.png"; - public static final String DEBOUND = "https://github.com/mcxiaoke/RxDocs/raw/master/images/operators/debounce.png"; - public static final String TIMEOUT = "https://github.com/mcxiaoke/RxDocs/raw/master/images/operators/timeout.c.png"; - public static final String DISTINCT = "https://github.com/mcxiaoke/RxDocs/raw/master/images/operators/distinct.png"; - public static final String UNTILCHANGED = "https://github.com/mcxiaoke/RxDocs/raw/master/images/operators/distinctUntilChanged.png"; - public static final String OF_TYPE = "https://github.com/mcxiaoke/RxDocs/raw/master/images/operators/filter.png"; - public static final String IGNORE_ELEMENT = "https://github.com/mcxiaoke/RxDocs/raw/master/images/operators/ignoreElements.c.png"; + public static final String FILTER = "https://github.com/jiang111/RxDocs/raw/master/images/operators/filter.c.png"; + public static final String TAKE_LAST = "https://github.com/jiang111/RxDocs/raw/master/images/operators/takeLast.c.png"; + public static final String LAST = "https://github.com/jiang111/RxDocs/raw/master/images/operators/last.c.png"; + public static final String LAST_OR_DEFAULT = "https://github.com/jiang111/RxDocs/raw/master/images/operators/lastOrDefault.p.png"; + public static final String TAKE_LAST_BUFFER = "https://github.com/jiang111/RxDocs/raw/master/images/operators/takeLastBuffer.png"; + public static final String SKIP = "https://github.com/jiang111/RxDocs/raw/master/images/operators/skip.png"; + public static final String SKIP_LAST = "https://github.com/jiang111/RxDocs/raw/master/images/operators/skipLast.c.png"; + public static final String TAKE = "https://github.com/jiang111/RxDocs/raw/master/images/operators/take.c.png"; + public static final String FIRST = "https://github.com/jiang111/RxDocs/raw/master/images/operators/first.c.png"; + public static final String FIRST_DEFAULT = "https://github.com/jiang111/RxDocs/raw/master/images/operators/firstOrDefault.png"; + public static final String ELEMENT_AT = "https://github.com/jiang111/RxDocs/raw/master/images/operators/elementAt.c.png"; + public static final String ELEMENT_DEFAULT = "https://github.com/jiang111/RxDocs/raw/master/images/operators/elementAtOrDefault.png"; + public static final String SAMPLE = "https://github.com/jiang111/RxDocs/raw/master/images/operators/sample.png"; + public static final String THROLFIRST = "https://github.com/jiang111/RxDocs/raw/master/images/operators/throttleFirst.png"; + public static final String DEBOUND = "https://github.com/jiang111/RxDocs/raw/master/images/operators/debounce.png"; + public static final String TIMEOUT = "https://github.com/jiang111/RxDocs/raw/master/images/operators/timeout.c.png"; + public static final String DISTINCT = "https://github.com/jiang111/RxDocs/raw/master/images/operators/distinct.png"; + public static final String UNTILCHANGED = "https://github.com/jiang111/RxDocs/raw/master/images/operators/distinctUntilChanged.png"; + public static final String OF_TYPE = "https://github.com/jiang111/RxDocs/raw/master/images/operators/filter.png"; + public static final String IGNORE_ELEMENT = "https://github.com/jiang111/RxDocs/raw/master/images/operators/ignoreElements.c.png"; //combin - public static final String STARTWITH = "https://github.com/mcxiaoke/RxDocs/raw/master/images/operators/startWith.png"; - public static final String MERGE = "https://github.com/mcxiaoke/RxDocs/raw/master/images/operators/merge.c.png"; - public static final String MERGEDELAY = "https://github.com/mcxiaoke/RxDocs/raw/master/images/operators/mergeDelayError.C.png"; - public static final String ZIP = "https://github.com/mcxiaoke/RxDocs/raw/master/images/operators/zip.c.png"; - public static final String AND = "https://github.com/mcxiaoke/RxDocs/raw/master/images/operators/and_then_when.C.png"; - public static final String COMBINLASTED = "https://github.com/mcxiaoke/RxDocs/raw/master/images/operators/combineLatest.c.png"; - public static final String JOIN = "https://github.com/mcxiaoke/RxDocs/raw/master/images/operators/join.c.png"; - public static final String SWITHONNEXT = "https://github.com/mcxiaoke/RxDocs/raw/master/images/operators/switch.c.png"; + public static final String STARTWITH = "https://github.com/jiang111/RxDocs/raw/master/images/operators/startWith.png"; + public static final String MERGE = "https://github.com/jiang111/RxDocs/raw/master/images/operators/merge.c.png"; + public static final String MERGEDELAY = "https://github.com/jiang111/RxDocs/raw/master/images/operators/mergeDelayError.C.png"; + public static final String ZIP = "https://github.com/jiang111/RxDocs/raw/master/images/operators/zip.c.png"; + public static final String AND = "https://github.com/jiang111/RxDocs/raw/master/images/operators/and_then_when.C.png"; + public static final String COMBINLASTED = "https://github.com/jiang111/RxDocs/raw/master/images/operators/combineLatest.c.png"; + public static final String JOIN = "https://github.com/jiang111/RxDocs/raw/master/images/operators/join.c.png"; + public static final String SWITHONNEXT = "https://github.com/jiang111/RxDocs/raw/master/images/operators/switch.c.png"; //error - public static final String RETRY = "https://github.com/mcxiaoke/RxDocs/raw/master/images/operators/retry.C.png"; - public static final String RETRYWHEN = "https://github.com/mcxiaoke/RxDocs/raw/master/images/operators/retryWhen.f.png"; + public static final String RETRY = "https://github.com/jiang111/RxDocs/raw/master/images/operators/retry.C.png"; + public static final String RETRYWHEN = "https://github.com/jiang111/RxDocs/raw/master/images/operators/retryWhen.f.png"; //utility - public static final String Materialize = "https://github.com/mcxiaoke/RxDocs/raw/master/images/operators/materialize.c.png"; - public static final String Dematerialize = "https://github.com/mcxiaoke/RxDocs/raw/master/images/operators/dematerialize.c.png"; - public static final String Timestamp = "https://github.com/mcxiaoke/RxDocs/raw/master/images/operators/timestamp.c.png"; - public static final String Serialize = "https://github.com/mcxiaoke/RxDocs/raw/master/images/operators/serialize.c.png"; - public static final String ObserveOn = "https://github.com/mcxiaoke/RxDocs/raw/master/images/operators/observeOn.c.png"; - public static final String SubscribeOn = "https://github.com/mcxiaoke/RxDocs/raw/master/images/operators/subscribeOn.c.png"; - public static final String doOnEach = "https://github.com/mcxiaoke/RxDocs/raw/master/images/operators/doOnEach.png"; - public static final String doOnSubscribe = "https://github.com/mcxiaoke/RxDocs/raw/master/images/operators/doOnSubscribe.png"; - public static final String doOnUnsubscribe = "https://github.com/mcxiaoke/RxDocs/raw/master/images/operators/doOnUnsubscribe.png"; - public static final String doOnCompleted = "https://github.com/mcxiaoke/RxDocs/raw/master/images/operators/doOnCompleted.png"; - public static final String doOnError = "https://github.com/mcxiaoke/RxDocs/raw/master/images/operators/doOnError.png"; - public static final String doOnTerminate = "https://github.com/mcxiaoke/RxDocs/raw/master/images/operators/doOnTerminate.png"; - - public static final String finallyDo = "https://github.com/mcxiaoke/RxDocs/raw/master/images/operators/finallyDo.png"; - public static final String Delay = "https://github.com/mcxiaoke/RxDocs/raw/master/images/operators/delay.c.png"; - public static final String delaySubscription = "https://github.com/mcxiaoke/RxDocs/raw/master/images/operators/delaySubscription.o.png"; - public static final String TimeInterval = "https://github.com/mcxiaoke/RxDocs/raw/master/images/operators/timeInterval.c.png"; - public static final String Using = "https://github.com/mcxiaoke/RxDocs/raw/master/images/operators/using.c.png"; - public static final String First = "https://github.com/mcxiaoke/RxDocs/raw/master/images/operators/first.c.png"; - public static final String To = "https://github.com/mcxiaoke/RxDocs/raw/master/images/operators/to.c.png"; + public static final String Materialize = "https://github.com/jiang111/RxDocs/raw/master/images/operators/materialize.c.png"; + public static final String Dematerialize = "https://github.com/jiang111/RxDocs/raw/master/images/operators/dematerialize.c.png"; + public static final String Timestamp = "https://github.com/jiang111/RxDocs/raw/master/images/operators/timestamp.c.png"; + public static final String Serialize = "https://github.com/jiang111/RxDocs/raw/master/images/operators/serialize.c.png"; + public static final String ObserveOn = "https://github.com/jiang111/RxDocs/raw/master/images/operators/observeOn.c.png"; + public static final String SubscribeOn = "https://github.com/jiang111/RxDocs/raw/master/images/operators/subscribeOn.c.png"; + public static final String doOnEach = "https://github.com/jiang111/RxDocs/raw/master/images/operators/doOnEach.png"; + public static final String doOnSubscribe = "https://github.com/jiang111/RxDocs/raw/master/images/operators/doOnSubscribe.png"; + public static final String doOnUnsubscribe = "https://github.com/jiang111/RxDocs/raw/master/images/operators/doOnUnsubscribe.png"; + public static final String doOnCompleted = "https://github.com/jiang111/RxDocs/raw/master/images/operators/doOnCompleted.png"; + public static final String doOnError = "https://github.com/jiang111/RxDocs/raw/master/images/operators/doOnError.png"; + public static final String doOnTerminate = "https://github.com/jiang111/RxDocs/raw/master/images/operators/doOnTerminate.png"; + + public static final String finallyDo = "https://github.com/jiang111/RxDocs/raw/master/images/operators/finallyDo.png"; + public static final String Delay = "https://github.com/jiang111/RxDocs/raw/master/images/operators/delay.c.png"; + public static final String delaySubscription = "https://github.com/jiang111/RxDocs/raw/master/images/operators/delaySubscription.o.png"; + public static final String TimeInterval = "https://github.com/jiang111/RxDocs/raw/master/images/operators/timeInterval.c.png"; + public static final String Using = "https://github.com/jiang111/RxDocs/raw/master/images/operators/using.c.png"; + public static final String First = "https://github.com/jiang111/RxDocs/raw/master/images/operators/first.c.png"; + public static final String To = "https://github.com/jiang111/RxDocs/raw/master/images/operators/to.c.png"; //string - public static final String byLine = "https://github.com/mcxiaoke/RxDocs/raw/master/images/operators/St.byLine.png"; - public static final String decode = "https://github.com/mcxiaoke/RxDocs/raw/master/images/operators/St.decode.png"; - public static final String encode = "https://github.com/mcxiaoke/RxDocs/raw/master/images/operators/St.encode.png"; - public static final String from_String = "https://github.com/mcxiaoke/RxDocs/raw/master/images/operators/St.from.png"; - public static final String join = "https://github.com/mcxiaoke/RxDocs/raw/master/images/operators/St.join.png"; - public static final String split = "https://github.com/mcxiaoke/RxDocs/raw/master/images/operators/St.split.png"; - public static final String stringConcat = "https://github.com/mcxiaoke/RxDocs/raw/master/images/operators/sum.f.png"; + public static final String byLine = "https://github.com/jiang111/RxDocs/raw/master/images/operators/St.byLine.png"; + public static final String decode = "https://github.com/jiang111/RxDocs/raw/master/images/operators/St.decode.png"; + public static final String encode = "https://github.com/jiang111/RxDocs/raw/master/images/operators/St.encode.png"; + public static final String from_String = "https://github.com/jiang111/RxDocs/raw/master/images/operators/St.from.png"; + public static final String join = "https://github.com/jiang111/RxDocs/raw/master/images/operators/St.join.png"; + public static final String split = "https://github.com/jiang111/RxDocs/raw/master/images/operators/St.split.png"; + public static final String stringConcat = "https://github.com/jiang111/RxDocs/raw/master/images/operators/sum.f.png"; //conditional - public static final String amb = "https://github.com/mcxiaoke/RxDocs/raw/master/images/operators/amb.c.png"; - public static final String defaultIfEmpty = "https://github.com/mcxiaoke/RxDocs/raw/master/images/operators/defaultIfEmpty.c.png"; + public static final String amb = "https://github.com/jiang111/RxDocs/raw/master/images/operators/amb.c.png"; + public static final String defaultIfEmpty = "https://github.com/jiang111/RxDocs/raw/master/images/operators/defaultIfEmpty.c.png"; public static final String doWhile = amb; public static final String ifThen = amb; - public static final String skipUntil = "https://github.com/mcxiaoke/RxDocs/raw/master/images/operators/skipUntil.c.png"; - public static final String skipWhile = "https://github.com/mcxiaoke/RxDocs/raw/master/images/operators/skipWhile.c.png"; + public static final String skipUntil = "https://github.com/jiang111/RxDocs/raw/master/images/operators/skipUntil.c.png"; + public static final String skipWhile = "https://github.com/jiang111/RxDocs/raw/master/images/operators/skipWhile.c.png"; public static final String switchCase = amb; - public static final String takeUntil = "https://github.com/mcxiaoke/RxDocs/raw/master/images/operators/takeUntil.png"; - public static final String takeWhile = "https://github.com/mcxiaoke/RxDocs/raw/master/images/operators/takeWhile.c.png"; + public static final String takeUntil = "https://github.com/jiang111/RxDocs/raw/master/images/operators/takeUntil.png"; + public static final String takeWhile = "https://github.com/jiang111/RxDocs/raw/master/images/operators/takeWhile.c.png"; public static final String whileDo = amb; //bool - public static final String all = "https://github.com/mcxiaoke/RxDocs/raw/master/images/operators/all.png"; - public static final String contains = "https://github.com/mcxiaoke/RxDocs/raw/master/images/operators/contains.png"; - public static final String exists = "https://github.com/mcxiaoke/RxDocs/raw/master/images/operators/exists.png"; - public static final String sequenceEqual = "https://github.com/mcxiaoke/RxDocs/raw/master/images/operators/sequenceEqual.png"; + public static final String all = "https://github.com/jiang111/RxDocs/raw/master/images/operators/all.png"; + public static final String contains = "https://github.com/jiang111/RxDocs/raw/master/images/operators/contains.png"; + public static final String exists = "https://github.com/jiang111/RxDocs/raw/master/images/operators/exists.png"; + public static final String sequenceEqual = "https://github.com/jiang111/RxDocs/raw/master/images/operators/sequenceEqual.png"; - public static final String MATH = "https://github.com/mcxiaoke/RxDocs/raw/master/images/operators/collect.png"; + public static final String MATH = "https://github.com/jiang111/RxDocs/raw/master/images/operators/collect.png"; // math other - public static final String concat = "https://github.com/mcxiaoke/RxDocs/raw/master/images/operators/concat.c.png"; - public static final String count = "https://github.com/mcxiaoke/RxDocs/raw/master/images/operators/count.c.png"; - public static final String reduce = "https://github.com/mcxiaoke/RxDocs/raw/master/images/operators/reduce.c.png"; - public static final String collect = "https://github.com/mcxiaoke/RxDocs/raw/master/images/operators/collect.png"; - public static final String toList = "https://github.com/mcxiaoke/RxDocs/raw/master/images/operators/toList.png"; - public static final String toSortedList = "https://github.com/mcxiaoke/RxDocs/raw/master/images/operators/toSortedList.png"; - public static final String toMap = "https://github.com/mcxiaoke/RxDocs/raw/master/images/operators/toMap.png"; - public static final String toMultiMap = "https://github.com/mcxiaoke/RxDocs/raw/master/images/operators/toMultiMap.png"; - - public static String start = "https://github.com/mcxiaoke/RxDocs/raw/master/images/operators/start.png"; - public static String toAsync = "https://github.com/mcxiaoke/RxDocs/raw/master/images/operators/toAsync.png"; - public static String startFuture = "https://github.com/mcxiaoke/RxDocs/raw/master/images/operators/startFuture.png"; - public static String deferFuture = "https://github.com/mcxiaoke/RxDocs/raw/master/images/operators/deferFuture.png"; - public static String forEachFuture = "https://github.com/mcxiaoke/RxDocs/raw/master/images/operators/forEachFuture.png"; + public static final String concat = "https://github.com/jiang111/RxDocs/raw/master/images/operators/concat.c.png"; + public static final String count = "https://github.com/jiang111/RxDocs/raw/master/images/operators/count.c.png"; + public static final String reduce = "https://github.com/jiang111/RxDocs/raw/master/images/operators/reduce.c.png"; + public static final String collect = "https://github.com/jiang111/RxDocs/raw/master/images/operators/collect.png"; + public static final String toList = "https://github.com/jiang111/RxDocs/raw/master/images/operators/toList.png"; + public static final String toSortedList = "https://github.com/jiang111/RxDocs/raw/master/images/operators/toSortedList.png"; + public static final String toMap = "https://github.com/jiang111/RxDocs/raw/master/images/operators/toMap.png"; + public static final String toMultiMap = "https://github.com/jiang111/RxDocs/raw/master/images/operators/toMultiMap.png"; + + public static String start = "https://github.com/jiang111/RxDocs/raw/master/images/operators/start.png"; + public static String toAsync = "https://github.com/jiang111/RxDocs/raw/master/images/operators/toAsync.png"; + public static String startFuture = "https://github.com/jiang111/RxDocs/raw/master/images/operators/startFuture.png"; + public static String deferFuture = "https://github.com/jiang111/RxDocs/raw/master/images/operators/deferFuture.png"; + public static String forEachFuture = "https://github.com/jiang111/RxDocs/raw/master/images/operators/forEachFuture.png"; public static String fromAction = start; public static String runAsync = start; - public static String fromRunnable = "https://github.com/mcxiaoke/RxDocs/raw/master/images/operators/fromRunnable.png"; - public static String fromCallable = "https://github.com/mcxiaoke/RxDocs/raw/master/images/operators/fromCallable.png"; + public static String fromRunnable = "https://github.com/jiang111/RxDocs/raw/master/images/operators/fromRunnable.png"; + public static String fromCallable = "https://github.com/jiang111/RxDocs/raw/master/images/operators/fromCallable.png"; //connect - public static String connect = "https://github.com/mcxiaoke/RxDocs/raw/master/images/operators/publishConnect.c.png"; - public static String publish = "https://github.com/mcxiaoke/RxDocs/raw/master/images/operators/publishConnect.c.png"; - public static String replay = "https://github.com/mcxiaoke/RxDocs/raw/master/images/operators/replay.c.png"; + public static String connect = "https://github.com/jiang111/RxDocs/raw/master/images/operators/publishConnect.c.png"; + public static String publish = "https://github.com/jiang111/RxDocs/raw/master/images/operators/publishConnect.c.png"; + public static String replay = "https://github.com/jiang111/RxDocs/raw/master/images/operators/replay.c.png"; public static String refCount = replay; //block public static String forEach=EMPTY; - public static String first="https://github.com/mcxiaoke/RxDocs/raw/master/images/operators/first.c.png"; - public static String firstOrDefault="https://github.com/mcxiaoke/RxDocs/raw/master/images/operators/firstOrDefault.png"; - public static String last="https://github.com/mcxiaoke/RxDocs/raw/master/images/operators/last.png"; - public static String lastOrDefault="https://github.com/mcxiaoke/RxDocs/raw/master/images/operators/lastOrDefault.png"; - public static String mostRecent="https://github.com/mcxiaoke/RxDocs/raw/master/images/operators/first.png"; - public static String next="https://github.com/mcxiaoke/RxDocs/raw/master/images/operators/takeLast.c.png"; - public static String single="https://github.com/mcxiaoke/RxDocs/raw/master/images/operators/single.p.png"; - public static String singleOrDefault="https://github.com/mcxiaoke/RxDocs/raw/master/images/operators/singleOrDefault.p.png"; - public static String toFuture="https://github.com/mcxiaoke/RxDocs/raw/master/images/operators/B.toFuture.png"; - public static String toIterable="https://github.com/mcxiaoke/RxDocs/raw/master/images/operators/B.getIterator.png"; - public static String getIterator="https://github.com/mcxiaoke/RxDocs/raw/master/images/operators/B.getIterator.png"; + public static String first="https://github.com/jiang111/RxDocs/raw/master/images/operators/first.c.png"; + public static String firstOrDefault="https://github.com/jiang111/RxDocs/raw/master/images/operators/firstOrDefault.png"; + public static String last="https://github.com/jiang111/RxDocs/raw/master/images/operators/last.png"; + public static String lastOrDefault="https://github.com/jiang111/RxDocs/raw/master/images/operators/lastOrDefault.png"; + public static String mostRecent="https://github.com/jiang111/RxDocs/raw/master/images/operators/first.png"; + public static String next="https://github.com/jiang111/RxDocs/raw/master/images/operators/takeLast.c.png"; + public static String single="https://github.com/jiang111/RxDocs/raw/master/images/operators/single.p.png"; + public static String singleOrDefault="https://github.com/jiang111/RxDocs/raw/master/images/operators/singleOrDefault.p.png"; + public static String toFuture="https://github.com/jiang111/RxDocs/raw/master/images/operators/B.toFuture.png"; + public static String toIterable="https://github.com/jiang111/RxDocs/raw/master/images/operators/B.getIterator.png"; + public static String getIterator="https://github.com/jiang111/RxDocs/raw/master/images/operators/B.getIterator.png"; } diff --git a/app/src/main/java/com/jiang/android/rxjavaapp/common/OperatorsUrl.java b/app/src/main/java/com/jiang/android/rxjavaapp/common/OperatorsUrl.java index 55c5701..95d5725 100644 --- a/app/src/main/java/com/jiang/android/rxjavaapp/common/OperatorsUrl.java +++ b/app/src/main/java/com/jiang/android/rxjavaapp/common/OperatorsUrl.java @@ -45,6 +45,7 @@ public class OperatorsUrl { public static final String REPEAT = "https://github.com/mcxiaoke/RxDocs/blob/master/operators/Repeat.md"; public static final String CREATE = "https://github.com/mcxiaoke/RxDocs/blob/master/operators/Create.md"; public static final String DEFER = "https://github.com/mcxiaoke/RxDocs/blob/master/operators/Defer.md"; + public static final String RANGE = "https://github.com/mcxiaoke/RxDocs/blob/master/operators/Range.md"; public static final String INTERVAL = "https://github.com/mcxiaoke/RxDocs/blob/master/operators/Interval.md"; public static final String TIMER = "https://github.com/mcxiaoke/RxDocs/blob/master/operators/Timer.md"; public static final String EMPTY = "https://github.com/mcxiaoke/RxDocs/blob/master/operators/Empty.md"; @@ -155,25 +156,31 @@ public class OperatorsUrl { public static final String OWN_OPERATE = "https://github.com/mcxiaoke/RxDocs/blob/master/topics/Implementing-Your-Own-Operators.md"; public static final String OWN_CHAJIAN = "https://github.com/mcxiaoke/RxDocs/blob/master/topics/Plugins.md"; public static final String ANDROID_MODULE = "https://github.com/mcxiaoke/RxDocs/blob/master/topics/The-RxJava-Android-Module.md"; - + public static final String ERROR_HANDLE = "https://github.com/mcxiaoke/RxDocs/blob/master/topics/Error-Handling.md"; public static String start = "https://github.com/mcxiaoke/RxDocs/blob/master/operators/Start.md#start"; //connect public static String connect = "https://github.com/mcxiaoke/RxDocs/blob/master/operators/Connect.md"; - public static String publish="https://github.com/mcxiaoke/RxDocs/blob/master/operators/Publish.md"; - public static String replay="https://github.com/mcxiaoke/RxDocs/blob/master/operators/Replay.md"; - public static String refCount="https://github.com/mcxiaoke/RxDocs/blob/master/operators/Refcount.md"; + public static String publish = "https://github.com/mcxiaoke/RxDocs/blob/master/operators/Publish.md"; + public static String replay = "https://github.com/mcxiaoke/RxDocs/blob/master/operators/Replay.md"; + public static String refCount = "https://github.com/mcxiaoke/RxDocs/blob/master/operators/Refcount.md"; //block - public static String forEach="https://github.com/mcxiaoke/RxDocs/blob/master/operators/Subscribe.md"; - public static String first="https://github.com/mcxiaoke/RxDocs/blob/master/operators/First.md"; - public static String firstOrDefault="https://github.com/mcxiaoke/RxDocs/blob/master/operators/First.md"; - public static String lastOrDefault="https://github.com/mcxiaoke/RxDocs/blob/master/operators/Last.md"; - public static String mostRecent="https://github.com/mcxiaoke/RxDocs/blob/master/operators/First.md"; - public static String next="https://github.com/mcxiaoke/RxDocs/blob/master/operators/TakeLast.md"; - public static String single="https://github.com/mcxiaoke/RxDocs/blob/master/operators/First.md"; - public static String singleOrDefault="https://github.com/mcxiaoke/RxDocs/blob/master/operators/First.md"; - public static String toFuture="https://github.com/mcxiaoke/RxDocs/blob/master/operators/To.md"; - public static String toIterable="https://github.com/mcxiaoke/RxDocs/blob/master/operators/To.md"; - public static String getIterator="https://github.com/mcxiaoke/RxDocs/blob/master/operators/To.md"; - public static String last="https://github.com/mcxiaoke/RxDocs/blob/master/operators/Last.md"; + public static String forEach = "https://github.com/mcxiaoke/RxDocs/blob/master/operators/Subscribe.md"; + public static String first = "https://github.com/mcxiaoke/RxDocs/blob/master/operators/First.md"; + public static String firstOrDefault = "https://github.com/mcxiaoke/RxDocs/blob/master/operators/First.md"; + public static String lastOrDefault = "https://github.com/mcxiaoke/RxDocs/blob/master/operators/Last.md"; + public static String mostRecent = "https://github.com/mcxiaoke/RxDocs/blob/master/operators/First.md"; + public static String next = "https://github.com/mcxiaoke/RxDocs/blob/master/operators/TakeLast.md"; + public static String single = "https://github.com/mcxiaoke/RxDocs/blob/master/operators/First.md"; + public static String singleOrDefault = "https://github.com/mcxiaoke/RxDocs/blob/master/operators/First.md"; + public static String toFuture = "https://github.com/mcxiaoke/RxDocs/blob/master/operators/To.md"; + public static String toIterable = "https://github.com/mcxiaoke/RxDocs/blob/master/operators/To.md"; + public static String getIterator = "https://github.com/mcxiaoke/RxDocs/blob/master/operators/To.md"; + public static String last = "https://github.com/mcxiaoke/RxDocs/blob/master/operators/Last.md"; + + //RxJava2.x + public static String R_2_INDEX = "https://github.com/mcxiaoke/RxDocs/blob/master/RxJava2/What-different-in-2.md"; + public static String R_2_FLOWABLE = "https://github.com/mcxiaoke/RxDocs/blob/master/RxJava2/Flow.md"; + public static String R_2_OTHER = "https://github.com/mcxiaoke/RxDocs/blob/master/RxJava2/other.md"; + } diff --git a/app/src/main/java/com/jiang/android/rxjavaapp/database/DaoMaster.java b/app/src/main/java/com/jiang/android/rxjavaapp/database/DaoMaster.java index 2911aac..af73750 100644 --- a/app/src/main/java/com/jiang/android/rxjavaapp/database/DaoMaster.java +++ b/app/src/main/java/com/jiang/android/rxjavaapp/database/DaoMaster.java @@ -15,7 +15,7 @@ * Master of DAO (schema version 1): knows all DAOs. */ public class DaoMaster extends AbstractDaoMaster { - public static final int SCHEMA_VERSION = 1; + public static final int SCHEMA_VERSION = 4; /** Creates underlying database table using DAOs. */ public static void createAllTables(SQLiteDatabase db, boolean ifNotExists) { diff --git a/app/src/main/java/com/jiang/android/rxjavaapp/database/DaoSession.java b/app/src/main/java/com/jiang/android/rxjavaapp/database/DaoSession.java index 43d7064..81f5cbe 100644 --- a/app/src/main/java/com/jiang/android/rxjavaapp/database/DaoSession.java +++ b/app/src/main/java/com/jiang/android/rxjavaapp/database/DaoSession.java @@ -18,40 +18,40 @@ */ public class DaoSession extends AbstractDaoSession { - private final DaoConfig alloperatorsDaoConfig; private final DaoConfig operatorsDaoConfig; + private final DaoConfig alloperatorsDaoConfig; - private final alloperatorsDao alloperatorsDao; private final operatorsDao operatorsDao; + private final alloperatorsDao alloperatorsDao; public DaoSession(SQLiteDatabase db, IdentityScopeType type, Map>, DaoConfig> daoConfigMap) { super(db); - alloperatorsDaoConfig = daoConfigMap.get(alloperatorsDao.class).clone(); - alloperatorsDaoConfig.initIdentityScope(type); - operatorsDaoConfig = daoConfigMap.get(operatorsDao.class).clone(); operatorsDaoConfig.initIdentityScope(type); - alloperatorsDao = new alloperatorsDao(alloperatorsDaoConfig, this); + alloperatorsDaoConfig = daoConfigMap.get(alloperatorsDao.class).clone(); + alloperatorsDaoConfig.initIdentityScope(type); + operatorsDao = new operatorsDao(operatorsDaoConfig, this); + alloperatorsDao = new alloperatorsDao(alloperatorsDaoConfig, this); - registerDao(alloperators.class, alloperatorsDao); registerDao(operators.class, operatorsDao); + registerDao(alloperators.class, alloperatorsDao); } public void clear() { - alloperatorsDaoConfig.getIdentityScope().clear(); operatorsDaoConfig.getIdentityScope().clear(); - } - - public alloperatorsDao getAlloperatorsDao() { - return alloperatorsDao; + alloperatorsDaoConfig.getIdentityScope().clear(); } public operatorsDao getOperatorsDao() { return operatorsDao; } + public alloperatorsDao getAlloperatorsDao() { + return alloperatorsDao; + } + } diff --git a/app/src/main/java/com/jiang/android/rxjavaapp/database/alloperators.java b/app/src/main/java/com/jiang/android/rxjavaapp/database/alloperators.java index 939b1da..c518da7 100644 --- a/app/src/main/java/com/jiang/android/rxjavaapp/database/alloperators.java +++ b/app/src/main/java/com/jiang/android/rxjavaapp/database/alloperators.java @@ -3,16 +3,21 @@ import de.greenrobot.dao.DaoException; // THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. Enable "keep" sections if you want to edit. - /** * Entity mapped to table "ALLOPERATORS". */ public class alloperators { private Long id; + /** Not-null value. */ private String name; + /** Not-null value. */ + private String thread; + /** Not-null value. */ private String desc; + /** Not-null value. */ private String img; + /** Not-null value. */ private String url; private Long operators_id; @@ -33,9 +38,10 @@ public alloperators(Long id) { this.id = id; } - public alloperators(Long id, String name, String desc, String img, String url, Long operators_id) { + public alloperators(Long id, String name, String thread, String desc, String img, String url, Long operators_id) { this.id = id; this.name = name; + this.thread = thread; this.desc = desc; this.img = img; this.url = url; @@ -56,34 +62,52 @@ public void setId(Long id) { this.id = id; } + /** Not-null value. */ public String getName() { return name; } + /** Not-null value; ensure this value is available before it is saved to the database. */ public void setName(String name) { this.name = name; } + /** Not-null value. */ + public String getThread() { + return thread; + } + + /** Not-null value; ensure this value is available before it is saved to the database. */ + public void setThread(String thread) { + this.thread = thread; + } + + /** Not-null value. */ public String getDesc() { return desc; } + /** Not-null value; ensure this value is available before it is saved to the database. */ public void setDesc(String desc) { this.desc = desc; } + /** Not-null value. */ public String getImg() { return img; } + /** Not-null value; ensure this value is available before it is saved to the database. */ public void setImg(String img) { this.img = img; } + /** Not-null value. */ public String getUrl() { return url; } + /** Not-null value; ensure this value is available before it is saved to the database. */ public void setUrl(String url) { this.url = url; } diff --git a/app/src/main/java/com/jiang/android/rxjavaapp/database/alloperatorsDao.java b/app/src/main/java/com/jiang/android/rxjavaapp/database/alloperatorsDao.java index 60c0f4c..7664bcb 100644 --- a/app/src/main/java/com/jiang/android/rxjavaapp/database/alloperatorsDao.java +++ b/app/src/main/java/com/jiang/android/rxjavaapp/database/alloperatorsDao.java @@ -11,10 +11,12 @@ import de.greenrobot.dao.Property; import de.greenrobot.dao.internal.DaoConfig; import de.greenrobot.dao.internal.SqlUtils; +import de.greenrobot.dao.query.Query; +import de.greenrobot.dao.query.QueryBuilder; -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** +// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. +/** * DAO for table "ALLOPERATORS". */ public class alloperatorsDao extends AbstractDao { @@ -28,14 +30,17 @@ public class alloperatorsDao extends AbstractDao { public static class Properties { public final static Property Id = new Property(0, Long.class, "id", true, "_id"); public final static Property Name = new Property(1, String.class, "name", false, "NAME"); - public final static Property Desc = new Property(2, String.class, "desc", false, "DESC"); - public final static Property Img = new Property(3, String.class, "img", false, "IMG"); - public final static Property Url = new Property(4, String.class, "url", false, "URL"); - public final static Property Operators_id = new Property(5, Long.class, "operators_id", false, "OPERATORS_ID"); + public final static Property Thread = new Property(2, String.class, "thread", false, "THREAD"); + public final static Property Desc = new Property(3, String.class, "desc", false, "DESC"); + public final static Property Img = new Property(4, String.class, "img", false, "IMG"); + public final static Property Url = new Property(5, String.class, "url", false, "URL"); + public final static Property Operators_id = new Property(6, Long.class, "operators_id", false, "OPERATORS_ID"); + public final static Property Outer_id = new Property(7, Long.class, "outer_id", false, "OUTER_ID"); }; private DaoSession daoSession; + private Query operators_AlloperatorsListQuery; public alloperatorsDao(DaoConfig config) { super(config); @@ -50,12 +55,14 @@ public alloperatorsDao(DaoConfig config, DaoSession daoSession) { public static void createTable(SQLiteDatabase db, boolean ifNotExists) { String constraint = ifNotExists? "IF NOT EXISTS ": ""; db.execSQL("CREATE TABLE " + constraint + "\"ALLOPERATORS\" (" + // - "\"_id\" INTEGER PRIMARY KEY AUTOINCREMENT ," + // 0: id - "\"NAME\" TEXT," + // 1: name - "\"DESC\" TEXT," + // 2: desc - "\"IMG\" TEXT," + // 3: img - "\"URL\" TEXT," + // 4: url - "\"OPERATORS_ID\" INTEGER);"); // 5: operators_id + "\"_id\" INTEGER PRIMARY KEY ," + // 0: id + "\"NAME\" TEXT NOT NULL ," + // 1: name + "\"THREAD\" TEXT NOT NULL ," + // 2: thread + "\"DESC\" TEXT NOT NULL ," + // 3: desc + "\"IMG\" TEXT NOT NULL ," + // 4: img + "\"URL\" TEXT NOT NULL ," + // 5: url + "\"OPERATORS_ID\" INTEGER," + // 6: operators_id + "\"OUTER_ID\" INTEGER);"); // 7: outer_id } /** Drops the underlying database table. */ @@ -73,30 +80,15 @@ protected void bindValues(SQLiteStatement stmt, alloperators entity) { if (id != null) { stmt.bindLong(1, id); } - - String name = entity.getName(); - if (name != null) { - stmt.bindString(2, name); - } - - String desc = entity.getDesc(); - if (desc != null) { - stmt.bindString(3, desc); - } - - String img = entity.getImg(); - if (img != null) { - stmt.bindString(4, img); - } - - String url = entity.getUrl(); - if (url != null) { - stmt.bindString(5, url); - } + stmt.bindString(2, entity.getName()); + stmt.bindString(3, entity.getThread()); + stmt.bindString(4, entity.getDesc()); + stmt.bindString(5, entity.getImg()); + stmt.bindString(6, entity.getUrl()); Long operators_id = entity.getOperators_id(); if (operators_id != null) { - stmt.bindLong(6, operators_id); + stmt.bindLong(7, operators_id); } } @@ -117,11 +109,12 @@ public Long readKey(Cursor cursor, int offset) { public alloperators readEntity(Cursor cursor, int offset) { alloperators entity = new alloperators( // cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0), // id - cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1), // name - cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2), // desc - cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3), // img - cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4), // url - cursor.isNull(offset + 5) ? null : cursor.getLong(offset + 5) // operators_id + cursor.getString(offset + 1), // name + cursor.getString(offset + 2), // thread + cursor.getString(offset + 3), // desc + cursor.getString(offset + 4), // img + cursor.getString(offset + 5), // url + cursor.isNull(offset + 6) ? null : cursor.getLong(offset + 6) // operators_id ); return entity; } @@ -130,11 +123,12 @@ public alloperators readEntity(Cursor cursor, int offset) { @Override public void readEntity(Cursor cursor, alloperators entity, int offset) { entity.setId(cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0)); - entity.setName(cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1)); - entity.setDesc(cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2)); - entity.setImg(cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3)); - entity.setUrl(cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4)); - entity.setOperators_id(cursor.isNull(offset + 5) ? null : cursor.getLong(offset + 5)); + entity.setName(cursor.getString(offset + 1)); + entity.setThread(cursor.getString(offset + 2)); + entity.setDesc(cursor.getString(offset + 3)); + entity.setImg(cursor.getString(offset + 4)); + entity.setUrl(cursor.getString(offset + 5)); + entity.setOperators_id(cursor.isNull(offset + 6) ? null : cursor.getLong(offset + 6)); } /** @inheritdoc */ @@ -160,6 +154,20 @@ protected boolean isEntityUpdateable() { return true; } + /** Internal query to resolve the "alloperatorsList" to-many relationship of operators. */ + public List _queryOperators_AlloperatorsList(Long outer_id) { + synchronized (this) { + if (operators_AlloperatorsListQuery == null) { + QueryBuilder queryBuilder = queryBuilder(); + queryBuilder.where(Properties.Outer_id.eq(null)); + operators_AlloperatorsListQuery = queryBuilder.build(); + } + } + Query query = operators_AlloperatorsListQuery.forCurrentThread(); + query.setParameter(0, outer_id); + return query.list(); + } + private String selectDeep; protected String getSelectDeep() { diff --git a/app/src/main/java/com/jiang/android/rxjavaapp/utils/DataUtils.java b/app/src/main/java/com/jiang/android/rxjavaapp/utils/DataUtils.java index 3e98c28..f977932 100644 --- a/app/src/main/java/com/jiang/android/rxjavaapp/utils/DataUtils.java +++ b/app/src/main/java/com/jiang/android/rxjavaapp/utils/DataUtils.java @@ -46,8 +46,13 @@ * Created by jiang on 16/3/13. */ public class DataUtils { + private static final String IMMEDIATE = "immediate"; static long i = 1l; - static long parentId = 1l; + static long parentId = 0l; + + static final String COMPUTATION = "computation"; + static final String DEFAULT = "默认线程"; + static final String TRAMPOLINE = "trampoline"; public static void fillData(final callBack call) { Single.create(new Single.OnSubscribe() { @@ -82,25 +87,27 @@ public void onError(Throwable error) { public static List getOperatorsData() { List lists = new ArrayList<>(); + lists.add(new operators(0l, "RxJava 2.x", 0l)); lists.add(new operators(1l, "RxJava 介绍", 1l)); - lists.add(new operators(2l, "Creating 创建操作", 2l)); - lists.add(new operators(3l, "Transforming 变换操作", 3l)); - lists.add(new operators(4l, "Filtering 过滤操作", 4l)); - lists.add(new operators(5l, "Combining 结合操作", 5l)); - lists.add(new operators(6l, "Error Handling 错误处理", 6l)); - lists.add(new operators(7l, "Utility 辅助操作", 7l)); - lists.add(new operators(8l, "Conditional 条件和布尔操作", 8l)); - lists.add(new operators(9l, "Mathematical 算术和聚合操作", 9l)); - lists.add(new operators(10l, "Async 异步操作", 10l)); - lists.add(new operators(11l, "Connect 连接操作", 11l)); - lists.add(new operators(12l, "Blocking 阻塞操作", 12l)); - lists.add(new operators(13l, "String 字符串操作", 13l)); + lists.add(new operators(2l, "创建操作", 2l)); + lists.add(new operators(3l, "变换操作", 3l)); + lists.add(new operators(4l, "过滤操作", 4l)); + lists.add(new operators(5l, "结合操作", 5l)); + lists.add(new operators(6l, "错误处理", 6l)); + lists.add(new operators(7l, "辅助操作", 7l)); + lists.add(new operators(8l, "条件和布尔操作", 8l)); + lists.add(new operators(9l, "算术和聚合操作", 9l)); + lists.add(new operators(10l, "异步操作", 10l)); + lists.add(new operators(11l, "连接操作", 11l)); + lists.add(new operators(12l, "阻塞操作", 12l)); + lists.add(new operators(13l, "字符串操作", 13l)); lists.add(new operators(14l, "其他的相关操作", 14l)); return lists; } public static List getAllOperators() { List alloperatorses = new ArrayList<>(); + getRxJava2List(alloperatorses); getIntroduceList(alloperatorses); getCreatingList(alloperatorses); getTransformList(alloperatorses); @@ -115,217 +122,222 @@ public static List getAllOperators() { getBlockList(alloperatorses); getStringList(alloperatorses); getOthersList(alloperatorses); + return alloperatorses; } + private static void getRxJava2List(List alloperatorses) { + alloperatorses.add(new alloperators(i++, "RxJava2.x有什么不同", " ", "RxJava2.x与RxJava1.x的区别", CommonString.SPLASH_INDEX_URL, OperatorsUrl.R_2_INDEX, parentId)); + alloperatorses.add(new alloperators(i++, "Flowable", " ", "Flowable操作符的使用", CommonString.SPLASH_INDEX_URL, OperatorsUrl.R_2_FLOWABLE, parentId)); + alloperatorses.add(new alloperators(i++, "其他相关类", " ", "Single Completable Subject/Processor", CommonString.SPLASH_INDEX_URL, OperatorsUrl.R_2_OTHER, parentId)); + parentId++; + } + + private static void getOthersList(List alloperatorses) { - alloperatorses.add(new alloperators(i++, "实现自己的操作符", "实现自己的操作符", CommonString.SPLASH_INDEX_URL, OperatorsUrl.OWN_OPERATE, parentId)); - alloperatorses.add(new alloperators(i++, "自定义插件", "自定义插件", CommonString.SPLASH_INDEX_URL, OperatorsUrl.OWN_CHAJIAN, parentId)); - alloperatorses.add(new alloperators(i++, "Android模块", "Android模块", CommonString.SPLASH_INDEX_URL, OperatorsUrl.ANDROID_MODULE, parentId)); - alloperatorses.add(new alloperators(i++, "错误处理", "错误处理", CommonString.SPLASH_INDEX_URL, OperatorsUrl.ERROR_HANDLE, parentId)); + alloperatorses.add(new alloperators(i++, "实现自己的操作符", " ", "实现自己的操作符", CommonString.SPLASH_INDEX_URL, OperatorsUrl.OWN_OPERATE, parentId)); + alloperatorses.add(new alloperators(i++, "自定义插件", " ", "自定义插件", CommonString.SPLASH_INDEX_URL, OperatorsUrl.OWN_CHAJIAN, parentId)); + alloperatorses.add(new alloperators(i++, "Android模块", " ", "Android模块", CommonString.SPLASH_INDEX_URL, OperatorsUrl.ANDROID_MODULE, parentId)); + alloperatorses.add(new alloperators(i++, "错误处理", " ", "错误处理", CommonString.SPLASH_INDEX_URL, OperatorsUrl.ERROR_HANDLE, parentId)); parentId++; } - /** - * string 操作符 - * - * @param alloperatorses - */ private static void getStringList(List alloperatorses) { - alloperatorses.add(new alloperators(i++, "byLine()", "将一个字符串的Observable转换为一个行序列的Observable,这个Observable将原来的序列当做流处理,然后按换行符分割", CommonString.byLine, OperatorsUrl.byLine, parentId)); - alloperatorses.add(new alloperators(i++, "decode()", "将一个多字节的字符流转换为一个Observable,它按字符边界发射字节数组", CommonString.decode, OperatorsUrl.decode, parentId)); - alloperatorses.add(new alloperators(i++, "encode()", "对一个发射字符串的Observable执行变换操作,变换后的Observable发射一个在原始字符串中表示多字节字符边界的字节数组", CommonString.encode, OperatorsUrl.encode, parentId)); - alloperatorses.add(new alloperators(i++, "from()", "将一个字符流或者Reader转换为一个发射字节数组或者字符串的Observable", CommonString.from_String, OperatorsUrl.from_String, parentId)); - alloperatorses.add(new alloperators(i++, "join()", "将一个发射字符串序列的Observable转换为一个发射单个字符串的Observable,后者用一个指定的字符串连接所有的字符串", CommonString.join, OperatorsUrl.join, parentId)); - alloperatorses.add(new alloperators(i++, "split()", "将一个发射字符串的Observable转换为另一个发射字符串的Observable,后者使用一个指定的正则表达式边界分割前者发射的所有字符串", CommonString.split, OperatorsUrl.split, parentId)); - alloperatorses.add(new alloperators(i++, "stringConcat()", "将一个发射字符串序列的Observable转换为一个发射单个字符串的Observable,后者连接前者发射的所有字符串", CommonString.stringConcat, OperatorsUrl.stringConcat, parentId)); + alloperatorses.add(new alloperators(i++, "byLine()", DEFAULT, "将一个字符串的Observable转换为一个行序列的Observable,这个Observable将原来的序列当做流处理,然后按换行符分割", CommonString.byLine, OperatorsUrl.byLine, parentId)); + alloperatorses.add(new alloperators(i++, "decode()", DEFAULT, "将一个多字节的字符流转换为一个Observable,它按字符边界发射字节数组", CommonString.decode, OperatorsUrl.decode, parentId)); + alloperatorses.add(new alloperators(i++, "encode()", DEFAULT, "对一个发射字符串的Observable执行变换操作,变换后的Observable发射一个在原始字符串中表示多字节字符边界的字节数组", CommonString.encode, OperatorsUrl.encode, parentId)); + alloperatorses.add(new alloperators(i++, "from()", DEFAULT, "将一个字符流或者Reader转换为一个发射字节数组或者字符串的Observable", CommonString.from_String, OperatorsUrl.from_String, parentId)); + alloperatorses.add(new alloperators(i++, "join()", DEFAULT, "将一个发射字符串序列的Observable转换为一个发射单个字符串的Observable,后者用一个指定的字符串连接所有的字符串", CommonString.join, OperatorsUrl.join, parentId)); + alloperatorses.add(new alloperators(i++, "split()", DEFAULT, "将一个发射字符串的Observable转换为另一个发射字符串的Observable,后者使用一个指定的正则表达式边界分割前者发射的所有字符串", CommonString.split, OperatorsUrl.split, parentId)); + alloperatorses.add(new alloperators(i++, "stringConcat()", DEFAULT, "将一个发射字符串序列的Observable转换为一个发射单个字符串的Observable,后者连接前者发射的所有字符串", CommonString.stringConcat, OperatorsUrl.stringConcat, parentId)); parentId++; } private static void getBlockList(List alloperatorses) { - alloperatorses.add(new alloperators(i++, "forEach()", "对Observable发射的每一项数据调用一个方法,会阻塞直到Observable完成", CommonString.forEach, OperatorsUrl.forEach, parentId)); - alloperatorses.add(new alloperators(i++, "first()", "阻塞直到Observable发射了一个数据,然后返回第一项数据", CommonString.first, OperatorsUrl.first, parentId)); - alloperatorses.add(new alloperators(i++, "firstOrDefault()", "阻塞直到Observable发射了一个数据或者终止,返回第一项数据,或者返回默认值", CommonString.firstOrDefault, OperatorsUrl.firstOrDefault, parentId)); - alloperatorses.add(new alloperators(i++, "last()", "阻塞直到Observable终止,然后返回最后一项数据", CommonString.last, OperatorsUrl.last, parentId)); - alloperatorses.add(new alloperators(i++, "lastOrDefault()", " 阻塞直到Observable终止,然后返回最后一项的数据,或者返回默认值", CommonString.lastOrDefault, OperatorsUrl.lastOrDefault, parentId)); - alloperatorses.add(new alloperators(i++, "mostRecent()", "返回一个总是返回Observable最近发射的数据的iterable", CommonString.mostRecent, OperatorsUrl.mostRecent, parentId)); - alloperatorses.add(new alloperators(i++, "next()", "返回一个Iterable,会阻塞直到Observable发射了另一个值,然后返回那个值", CommonString.next, OperatorsUrl.next, parentId)); - alloperatorses.add(new alloperators(i++, "single()", " 如果Observable终止时只发射了一个值,返回那个值,否则抛出异常", CommonString.single, OperatorsUrl.single, parentId)); - alloperatorses.add(new alloperators(i++, "singleOrDefault()", "如果Observable终止时只发射了一个值,返回那个值,否则否好默认值", CommonString.singleOrDefault, OperatorsUrl.singleOrDefault, parentId)); - alloperatorses.add(new alloperators(i++, "toFuture()", "将Observable转换为一个Future", CommonString.toFuture, OperatorsUrl.toFuture, parentId)); - alloperatorses.add(new alloperators(i++, "toIterable()", "将一个发射数据序列的Observable转换为一个Iterable", CommonString.toIterable, OperatorsUrl.toIterable, parentId)); - alloperatorses.add(new alloperators(i++, "getIterator()", " 将一个发射数据序列的Observable转换为一个Iterator", CommonString.getIterator, OperatorsUrl.getIterator, parentId)); + alloperatorses.add(new alloperators(i++, "forEach()", DEFAULT, "对Observable发射的每一项数据调用一个方法,会阻塞直到Observable完成", CommonString.forEach, OperatorsUrl.forEach, parentId)); + alloperatorses.add(new alloperators(i++, "first()", DEFAULT, "阻塞直到Observable发射了一个数据,然后返回第一项数据", CommonString.first, OperatorsUrl.first, parentId)); + alloperatorses.add(new alloperators(i++, "firstOrDefault()", DEFAULT, "阻塞直到Observable发射了一个数据或者终止,返回第一项数据,或者返回默认值", CommonString.firstOrDefault, OperatorsUrl.firstOrDefault, parentId)); + alloperatorses.add(new alloperators(i++, "last()", DEFAULT, "阻塞直到Observable终止,然后返回最后一项数据", CommonString.last, OperatorsUrl.last, parentId)); + alloperatorses.add(new alloperators(i++, "lastOrDefault()", DEFAULT, "阻塞直到Observable终止,然后返回最后一项的数据,或者返回默认值()", CommonString.lastOrDefault, OperatorsUrl.lastOrDefault, parentId)); + alloperatorses.add(new alloperators(i++, "mostRecent()", DEFAULT, "返回一个总是返回Observable最近发射的数据的iterable", CommonString.mostRecent, OperatorsUrl.mostRecent, parentId)); + alloperatorses.add(new alloperators(i++, "next()", DEFAULT, "返回一个Iterable,会阻塞直到Observable发射了另一个值,然后返回那个值", CommonString.next, OperatorsUrl.next, parentId)); + alloperatorses.add(new alloperators(i++, "single()", DEFAULT, " 如果Observable终止时只发射了一个值,返回那个值,否则抛出异常", CommonString.single, OperatorsUrl.single, parentId)); + alloperatorses.add(new alloperators(i++, "singleOrDefault()", DEFAULT, "如果Observable终止时只发射了一个值,返回那个值,否则否好默认值", CommonString.singleOrDefault, OperatorsUrl.singleOrDefault, parentId)); + alloperatorses.add(new alloperators(i++, "toFuture()", DEFAULT, "将Observable转换为一个Future", CommonString.toFuture, OperatorsUrl.toFuture, parentId)); + alloperatorses.add(new alloperators(i++, "toIterable()", DEFAULT, "将一个发射数据序列的Observable转换为一个Iterable", CommonString.toIterable, OperatorsUrl.toIterable, parentId)); + alloperatorses.add(new alloperators(i++, "getIterator()", DEFAULT, " 将一个发射数据序列的Observable转换为一个Iterator", CommonString.getIterator, OperatorsUrl.getIterator, parentId)); parentId++; } private static void getConnectList(List alloperatorses) { - alloperatorses.add(new alloperators(i++, "ConnectableObservable.connect()", "指示一个可连接的Observable开始发射数据", CommonString.connect, OperatorsUrl.connect, parentId)); - alloperatorses.add(new alloperators(i++, "ConnectableObservable.publish()", "将一个Observable转换为一个可连接的Observable", CommonString.publish, OperatorsUrl.publish, parentId)); - alloperatorses.add(new alloperators(i++, "ConnectableObservable.replay()", "确保所有的订阅者看到相同的数据序列,即使它们在Observable开始发射数据之后才订阅", CommonString.replay, OperatorsUrl.replay, parentId)); - alloperatorses.add(new alloperators(i++, "ConnectableObservable.refCount()", "让一个可连接的Observable表现得像一个普通的Observable", CommonString.refCount, OperatorsUrl.refCount, parentId)); + alloperatorses.add(new alloperators(i++, "connect()", DEFAULT, "指示一个可连接的Observable开始发射数据", CommonString.connect, OperatorsUrl.connect, parentId)); + alloperatorses.add(new alloperators(i++, "publish()", DEFAULT, "将一个Observable转换为一个可连接的Observable", CommonString.publish, OperatorsUrl.publish, parentId)); + alloperatorses.add(new alloperators(i++, "replay()", DEFAULT, "确保所有的订阅者看到相同的数据序列,即使它们在Observable开始发射数据之后才订阅", CommonString.replay, OperatorsUrl.replay, parentId)); + alloperatorses.add(new alloperators(i++, "refCount()", DEFAULT, "让一个可连接的Observable表现得像一个普通的Observable", CommonString.refCount, OperatorsUrl.refCount, parentId)); parentId++; } private static void getSayncList(List alloperatorses) { - alloperatorses.add(new alloperators(i++, "start()", "创建一个Observable,它发射一个函数的返回值", CommonString.start, OperatorsUrl.start, parentId)); - alloperatorses.add(new alloperators(i++, "toAsync() or asyncAction() or asyncFunc()", " 将一个函数或者Action转换为已Observable,它执行这个函数并发射函数的返回值", CommonString.toAsync, OperatorsUrl.start, parentId)); - alloperatorses.add(new alloperators(i++, "startFuture()", "将一个返回Future的函数转换为一个Observable,它发射Future的返回值", CommonString.startFuture, OperatorsUrl.start, parentId)); - alloperatorses.add(new alloperators(i++, "deferFuture()", "将一个返回Observable的Future转换为一个Observable,但是并不尝试获取这个Future返回的Observable,直到有订阅者订阅它", CommonString.deferFuture, OperatorsUrl.start, parentId)); - alloperatorses.add(new alloperators(i++, "forEachFuture()", "传递Subscriber方法给一个Subscriber,但是同时表现得像一个Future一样阻塞直到它完成", CommonString.forEachFuture, OperatorsUrl.start, parentId)); - alloperatorses.add(new alloperators(i++, "fromAction()", "将一个Action转换为Observable,当一个订阅者订阅时,它执行这个action并发射它的返回值", CommonString.fromAction, OperatorsUrl.start, parentId)); - alloperatorses.add(new alloperators(i++, "fromCallable()", "将一个Callable转换为Observable,当一个订阅者订阅时,它执行这个Callable并发射Callable的返回值,或者发射异常", CommonString.fromCallable, OperatorsUrl.start, parentId)); - alloperatorses.add(new alloperators(i++, "fromRunnable()", "convert a Runnable into an Observable that invokes the runable and emits its result when a Subscriber subscribes将一个Runnable转换为Observable,当一个订阅者订阅时,它执行这个Runnable并发射Runnable的返回值", CommonString.fromRunnable, OperatorsUrl.start, parentId)); - alloperatorses.add(new alloperators(i++, "runAsync()", "返回一个StoppableObservable,它发射某个Scheduler上指定的Action生成的多个actions", CommonString.runAsync, OperatorsUrl.start, parentId)); + alloperatorses.add(new alloperators(i++, "start()", DEFAULT, "创建一个Observable,它发射一个函数的返回值", CommonString.start, OperatorsUrl.start, parentId)); + alloperatorses.add(new alloperators(i++, "toAsync() or asyncAction() or asyncFunc()", DEFAULT, " 将一个函数或者Action转换为已Observable,它执行这个函数并发射函数的返回值", CommonString.toAsync, OperatorsUrl.start, parentId)); + alloperatorses.add(new alloperators(i++, "startFuture()", DEFAULT, "将一个返回Future的函数转换为一个Observable,它发射Future的返回值", CommonString.startFuture, OperatorsUrl.start, parentId)); + alloperatorses.add(new alloperators(i++, "deferFuture()", DEFAULT, "将一个返回Observable的Future转换为一个Observable,但是并不尝试获取这个Future返回的Observable,直到有订阅者订阅它", CommonString.deferFuture, OperatorsUrl.start, parentId)); + alloperatorses.add(new alloperators(i++, "forEachFuture()", DEFAULT, "传递Subscriber方法给一个Subscriber,但是同时表现得像一个Future一样阻塞直到它完成", CommonString.forEachFuture, OperatorsUrl.start, parentId)); + alloperatorses.add(new alloperators(i++, "fromAction()", DEFAULT, "将一个Action转换为Observable,当一个订阅者订阅时,它执行这个action并发射它的返回值", CommonString.fromAction, OperatorsUrl.start, parentId)); + alloperatorses.add(new alloperators(i++, "fromCallable()", DEFAULT, "将一个Callable转换为Observable,当一个订阅者订阅时,它执行这个Callable并发射Callable的返回值,或者发射异常", CommonString.fromCallable, OperatorsUrl.start, parentId)); + alloperatorses.add(new alloperators(i++, "fromRunnable()", DEFAULT, "convert a Runnable into an Observable that invokes the runable and emits its result when a Subscriber subscribes将一个Runnable转换为Observable,当一个订阅者订阅时,它执行这个Runnable并发射Runnable的返回值", CommonString.fromRunnable, OperatorsUrl.start, parentId)); + alloperatorses.add(new alloperators(i++, "runAsync()", DEFAULT, "返回一个StoppableObservable,它发射某个Scheduler上指定的Action生成的多个actions", CommonString.runAsync, OperatorsUrl.start, parentId)); parentId++; } private static void getMathList(List alloperatorses) { - alloperatorses.add(new alloperators(i++, "rxjava-math模块", "模块的操作符", CommonString.MATH, OperatorsUrl.MATH, parentId)); - alloperatorses.add(new alloperators(i++, "concat()", "顺序连接多个Observables", CommonString.concat, OperatorsUrl.concat, parentId)); - alloperatorses.add(new alloperators(i++, "count() and countLong()", "计算数据项的个数并发射结果", CommonString.count, OperatorsUrl.count, parentId)); - alloperatorses.add(new alloperators(i++, "reduce()", "对序列使用reduce()函数并发射对吼的结果", CommonString.reduce, OperatorsUrl.reduce, parentId)); - alloperatorses.add(new alloperators(i++, "collect()", "将原始Observable发射的数据放到一个单一的可变的数据结构中,然后返回一个发射这个数据结构的Observable", CommonString.collect, OperatorsUrl.collect, parentId)); - alloperatorses.add(new alloperators(i++, "toList()", "收集原始Observable发射的所有数据到一个列表,然后返回这个列表", CommonString.toList, OperatorsUrl.toList, parentId)); - alloperatorses.add(new alloperators(i++, "toSortedList()", "收集原始Observable发射的所有数据到一个有序列表,然后返回这个列表", CommonString.toSortedList, OperatorsUrl.toSortedList, parentId)); - alloperatorses.add(new alloperators(i++, "toMap()", "将序列数据转换为一个Map,Map的key是根据一个函数计算的", CommonString.toMap, OperatorsUrl.toMap, parentId)); - alloperatorses.add(new alloperators(i++, "toMultiMap()", "将序列数据转换为一个列表,同时也是一个Map,Map的key是根据一个函数计算的", CommonString.toMultiMap, OperatorsUrl.toMultiMap, parentId)); + alloperatorses.add(new alloperators(i++, "rxjava-math模块", " ", "模块的操作符", CommonString.MATH, OperatorsUrl.MATH, parentId)); + alloperatorses.add(new alloperators(i++, "concat()", DEFAULT, "顺序连接多个Observables", CommonString.concat, OperatorsUrl.concat, parentId)); + alloperatorses.add(new alloperators(i++, "count() and countLong()", DEFAULT, "计算数据项的个数并发射结果", CommonString.count, OperatorsUrl.count, parentId)); + alloperatorses.add(new alloperators(i++, "reduce()", DEFAULT, "对序列使用reduce()函数并发射对吼的结果", CommonString.reduce, OperatorsUrl.reduce, parentId)); + alloperatorses.add(new alloperators(i++, "collect()", DEFAULT, "将原始Observable发射的数据放到一个单一的可变的数据结构中,然后返回一个发射这个数据结构的Observable", CommonString.collect, OperatorsUrl.collect, parentId)); + alloperatorses.add(new alloperators(i++, "toList()", DEFAULT, "收集原始Observable发射的所有数据到一个列表,然后返回这个列表", CommonString.toList, OperatorsUrl.toList, parentId)); + alloperatorses.add(new alloperators(i++, "toSortedList()", DEFAULT, "收集原始Observable发射的所有数据到一个有序列表,然后返回这个列表", CommonString.toSortedList, OperatorsUrl.toSortedList, parentId)); + alloperatorses.add(new alloperators(i++, "toMap()", DEFAULT, "将序列数据转换为一个Map,Map的key是根据一个函数计算的", CommonString.toMap, OperatorsUrl.toMap, parentId)); + alloperatorses.add(new alloperators(i++, "toMultiMap()", DEFAULT, "将序列数据转换为一个列表,同时也是一个Map,Map的key是根据一个函数计算的", CommonString.toMultiMap, OperatorsUrl.toMultiMap, parentId)); parentId++; } private static void getConditionalList(List alloperatorses) { - alloperatorses.add(new alloperators(i++, "amb()", "给定多个Observable,只让第一个发射数据的Observable发射全部数据", CommonString.amb, OperatorsUrl.amb, parentId)); - alloperatorses.add(new alloperators(i++, "defaultIfEmpty()", "发射来自原始Observable的数据,如果原始Observable没有发射数据,就发射一个默认数据", CommonString.defaultIfEmpty, OperatorsUrl.amb, parentId)); - alloperatorses.add(new alloperators(i++, "doWhile()", "发射原始Observable的数据序列,然后重复发射这个序列直到不满足这个条件为止", CommonString.doWhile, OperatorsUrl.amb, parentId)); - alloperatorses.add(new alloperators(i++, "ifThen()", "只有当某个条件为真时才发射原始Observable的数据序列,否则发射一个空的或默认的序列", CommonString.ifThen, OperatorsUrl.amb, parentId)); - alloperatorses.add(new alloperators(i++, "skipUntil()", "丢弃原始Observable发射的数据,直到第二个Observable发射了一个数据,然后发射原始Observable的剩余数据", CommonString.skipUntil, OperatorsUrl.amb, parentId)); - alloperatorses.add(new alloperators(i++, "skipWhile()", "丢弃原始Observable发射的数据,直到一个特定的条件为假,然后发射原始Observable剩余的数据", CommonString.skipWhile, OperatorsUrl.amb, parentId)); - alloperatorses.add(new alloperators(i++, "switchCase()", "基于一个计算结果,发射一个指定Observable的数据序列", CommonString.switchCase, OperatorsUrl.amb, parentId)); - alloperatorses.add(new alloperators(i++, "takeUntil()", "发射来自原始Observable的数据,直到第二个Observable发射了一个数据或一个通知", CommonString.takeUntil, OperatorsUrl.amb, parentId)); - alloperatorses.add(new alloperators(i++, "takeWhile(),takeWhileWithIndex()", "射原始Observable的数据,直到一个特定的条件为真,然后跳过剩余的数据", CommonString.takeWhile, OperatorsUrl.amb, parentId)); - alloperatorses.add(new alloperators(i++, "whileDo()", "if a condition is true, emit the source Observable's sequence and then repeat the sequence as long as the condition remains true如果满足一个条件,发射原始Observable的数据,然后重复发射直到不满足这个条件为止", CommonString.takeWhile, CommonString.GITHUB_URL, parentId)); - - alloperatorses.add(new alloperators(i++, "all()", "判断是否所有的数据项都满足某个条件", CommonString.all, OperatorsUrl.BOOLEAN_ALL, parentId)); - alloperatorses.add(new alloperators(i++, "contains()", "判断Observable是否会发射一个指定的值", CommonString.contains, OperatorsUrl.BOOLEAN_ALL, parentId)); - alloperatorses.add(new alloperators(i++, "exists(),isEmpty()", "判断Observable是否发射了一个值", CommonString.exists, OperatorsUrl.BOOLEAN_ALL, parentId)); - alloperatorses.add(new alloperators(i++, "sequenceEqual()", " test the equality of the sequences emitted by two Observables判断两个Observables发射的序列是否相等", CommonString.sequenceEqual, OperatorsUrl.BOOLEAN_ALL, parentId)); + alloperatorses.add(new alloperators(i++, "amb()", DEFAULT, "给定多个Observable,只让第一个发射数据的Observable发射全部数据", CommonString.amb, OperatorsUrl.amb, parentId)); + alloperatorses.add(new alloperators(i++, "defaultIfEmpty()", DEFAULT, "发射来自原始Observable的数据,如果原始Observable没有发射数据,就发射一个默认数据", CommonString.defaultIfEmpty, OperatorsUrl.amb, parentId)); + alloperatorses.add(new alloperators(i++, "doWhile()", DEFAULT, "发射原始Observable的数据序列,然后重复发射这个序列直到不满足这个条件为止", CommonString.doWhile, OperatorsUrl.amb, parentId)); + alloperatorses.add(new alloperators(i++, "ifThen()", DEFAULT, "只有当某个条件为真时才发射原始Observable的数据序列,否则发射一个空的或默认的序列", CommonString.ifThen, OperatorsUrl.amb, parentId)); + alloperatorses.add(new alloperators(i++, "skipUntil()", DEFAULT, "丢弃原始Observable发射的数据,直到第二个Observable发射了一个数据,然后发射原始Observable的剩余数据", CommonString.skipUntil, OperatorsUrl.amb, parentId)); + alloperatorses.add(new alloperators(i++, "skipWhile()", DEFAULT, "丢弃原始Observable发射的数据,直到一个特定的条件为假,然后发射原始Observable剩余的数据", CommonString.skipWhile, OperatorsUrl.amb, parentId)); + alloperatorses.add(new alloperators(i++, "switchCase()", DEFAULT, "基于一个计算结果,发射一个指定Observable的数据序列", CommonString.switchCase, OperatorsUrl.amb, parentId)); + alloperatorses.add(new alloperators(i++, "takeUntil()", DEFAULT, "发射来自原始Observable的数据,直到第二个Observable发射了一个数据或一个通知", CommonString.takeUntil, OperatorsUrl.amb, parentId)); + alloperatorses.add(new alloperators(i++, "takeWhile(),takeWhileWithIndex()", DEFAULT, "射原始Observable的数据,直到一个特定的条件为真,然后跳过剩余的数据", CommonString.takeWhile, OperatorsUrl.amb, parentId)); + alloperatorses.add(new alloperators(i++, "whileDo()", DEFAULT, "if a condition is true, emit the source Observable's sequence and then repeat the sequence as long as the condition remains true如果满足一个条件,发射原始Observable的数据,然后重复发射直到不满足这个条件为止", CommonString.takeWhile, CommonString.GITHUB_URL, parentId)); + + alloperatorses.add(new alloperators(i++, "all()", DEFAULT, "判断是否所有的数据项都满足某个条件", CommonString.all, OperatorsUrl.BOOLEAN_ALL, parentId)); + alloperatorses.add(new alloperators(i++, "contains()", DEFAULT, "判断Observable是否会发射一个指定的值", CommonString.contains, OperatorsUrl.BOOLEAN_ALL, parentId)); + alloperatorses.add(new alloperators(i++, "exists(),isEmpty()", DEFAULT, "判断Observable是否发射了一个值", CommonString.exists, OperatorsUrl.BOOLEAN_ALL, parentId)); + alloperatorses.add(new alloperators(i++, "sequenceEqual()", DEFAULT, " test the equality of the sequences emitted by two Observables判断两个Observables发射的序列是否相等", CommonString.sequenceEqual, OperatorsUrl.BOOLEAN_ALL, parentId)); parentId++; } private static void getUtilityList(List alloperatorses) { - alloperatorses.add(new alloperators(i++, "Materialize()", "将Observable转换成一个通知列表convert an Observable into a list of Notifications", CommonString.Materialize, OperatorsUrl.Materialize, parentId)); - alloperatorses.add(new alloperators(i++, "Dematerialize()", "将上面的结果逆转回一个Observable", CommonString.Dematerialize, OperatorsUrl.Dematerialize, parentId)); - alloperatorses.add(new alloperators(i++, "Timestamp()", "给Observable发射的每个数据项添加一个时间戳", CommonString.Timestamp, OperatorsUrl.Timestamp, parentId)); - alloperatorses.add(new alloperators(i++, "Serialize()", "强制Observable按次序发射数据并且要求功能是完好的", CommonString.Serialize, OperatorsUrl.Serialize, parentId)); - alloperatorses.add(new alloperators(i++, "ObserveOn()", "指定观察者观察Observable的调度器", CommonString.ObserveOn, OperatorsUrl.ObserveOn, parentId)); - alloperatorses.add(new alloperators(i++, "SubscribeOn()", "指定Observable执行任务的调度器", CommonString.SubscribeOn, OperatorsUrl.SubscribeOn, parentId)); - alloperatorses.add(new alloperators(i++, "doOnEach()", "注册一个动作,对Observable发射的每个数据项使用", CommonString.doOnEach, OperatorsUrl.doOnEach, parentId)); - alloperatorses.add(new alloperators(i++, "doOnSubscribe()", "注册一个动作,在观察者订阅时使用", CommonString.doOnSubscribe, OperatorsUrl.doOnSubscribe, parentId)); - alloperatorses.add(new alloperators(i++, "doOnUnsubscribe()", "注册一个动作,在观察者取消订阅时使用", CommonString.doOnUnsubscribe, OperatorsUrl.doOnUnsubscribe, parentId)); - alloperatorses.add(new alloperators(i++, "doOnCompleted()", "注册一个动作,对正常完成的Observable使用", CommonString.doOnCompleted, OperatorsUrl.doOnCompleted, parentId)); - alloperatorses.add(new alloperators(i++, "doOnError()", "注册一个动作,对Observable发射的每个数据项使用", CommonString.doOnError, OperatorsUrl.doOnError, parentId)); - alloperatorses.add(new alloperators(i++, "doOnTerminate()", "注册一个动作,对完成的Observable使用,无论是否发生错误", CommonString.doOnTerminate, OperatorsUrl.doOnTerminate, parentId)); - alloperatorses.add(new alloperators(i++, "finallyDo()", "注册一个动作,在Observable完成时使用", CommonString.finallyDo, OperatorsUrl.finallyDo, parentId)); - alloperatorses.add(new alloperators(i++, "Delay()", "延时发射Observable的结果", CommonString.Delay, OperatorsUrl.Delay, parentId)); - alloperatorses.add(new alloperators(i++, "delaySubscription()", "延时处理订阅请求", CommonString.delaySubscription, OperatorsUrl.delaySubscription, parentId)); - alloperatorses.add(new alloperators(i++, "TimeInterval()", "定期发射数据", CommonString.TimeInterval, OperatorsUrl.TimeInterval, parentId)); - alloperatorses.add(new alloperators(i++, "Using()", " 创建一个只在Observable生命周期存在的资源", CommonString.Using, OperatorsUrl.Using, parentId)); - alloperatorses.add(new alloperators(i++, "single()", " 强制返回单个数据,否则抛出异常", CommonString.First, OperatorsUrl.First, parentId)); - alloperatorses.add(new alloperators(i++, "toFuture(), toIterable(), toList()", "将Observable转换为其它对象或数据结构", CommonString.To, OperatorsUrl.To, parentId)); + alloperatorses.add(new alloperators(i++, "Materialize()", DEFAULT, "将Observable转换成一个通知列表convert an Observable into a list of Notifications", CommonString.Materialize, OperatorsUrl.Materialize, parentId)); + alloperatorses.add(new alloperators(i++, "Dematerialize()", DEFAULT, "将上面的结果逆转回一个Observable", CommonString.Dematerialize, OperatorsUrl.Dematerialize, parentId)); + alloperatorses.add(new alloperators(i++, "Timestamp()", IMMEDIATE, "给Observable发射的每个数据项添加一个时间戳", CommonString.Timestamp, OperatorsUrl.Timestamp, parentId)); + alloperatorses.add(new alloperators(i++, "Serialize()", DEFAULT, "强制Observable按次序发射数据并且要求功能是完好的", CommonString.Serialize, OperatorsUrl.Serialize, parentId)); + alloperatorses.add(new alloperators(i++, "ObserveOn()", " ", "指定观察者观察Observable的调度器", CommonString.ObserveOn, OperatorsUrl.ObserveOn, parentId)); + alloperatorses.add(new alloperators(i++, "SubscribeOn()", " ", "指定Observable执行任务的调度器", CommonString.SubscribeOn, OperatorsUrl.SubscribeOn, parentId)); + alloperatorses.add(new alloperators(i++, "doOnEach()", DEFAULT, "注册一个动作,对Observable发射的每个数据项使用", CommonString.doOnEach, OperatorsUrl.doOnEach, parentId)); + alloperatorses.add(new alloperators(i++, "doOnSubscribe()", DEFAULT, "注册一个动作,在观察者订阅时使用", CommonString.doOnSubscribe, OperatorsUrl.doOnSubscribe, parentId)); + alloperatorses.add(new alloperators(i++, "doOnUnsubscribe()", DEFAULT, "注册一个动作,在观察者取消订阅时使用", CommonString.doOnUnsubscribe, OperatorsUrl.doOnUnsubscribe, parentId)); + alloperatorses.add(new alloperators(i++, "doOnCompleted()", DEFAULT, "注册一个动作,对正常完成的Observable使用", CommonString.doOnCompleted, OperatorsUrl.doOnCompleted, parentId)); + alloperatorses.add(new alloperators(i++, "doOnError()", DEFAULT, "注册一个动作,对Observable发射的每个数据项使用", CommonString.doOnError, OperatorsUrl.doOnError, parentId)); + alloperatorses.add(new alloperators(i++, "doOnTerminate()", DEFAULT, "注册一个动作,对完成的Observable使用,无论是否发生错误", CommonString.doOnTerminate, OperatorsUrl.doOnTerminate, parentId)); + alloperatorses.add(new alloperators(i++, "finallyDo()", DEFAULT, "注册一个动作,在Observable完成时使用", CommonString.finallyDo, OperatorsUrl.finallyDo, parentId)); + alloperatorses.add(new alloperators(i++, "Delay()", DEFAULT, "延时发射Observable的结果", CommonString.Delay, OperatorsUrl.Delay, parentId)); + alloperatorses.add(new alloperators(i++, "delaySubscription()", DEFAULT, "延时处理订阅请求", CommonString.delaySubscription, OperatorsUrl.delaySubscription, parentId)); + alloperatorses.add(new alloperators(i++, "TimeInterval()", DEFAULT, "定期发射数据", CommonString.TimeInterval, OperatorsUrl.TimeInterval, parentId)); + alloperatorses.add(new alloperators(i++, "Using()", DEFAULT, " 创建一个只在Observable生命周期存在的资源", CommonString.Using, OperatorsUrl.Using, parentId)); + alloperatorses.add(new alloperators(i++, "single()", DEFAULT, " 强制返回单个数据,否则抛出异常", CommonString.First, OperatorsUrl.First, parentId)); + alloperatorses.add(new alloperators(i++, "toFuture(), toIterable(), toList()", DEFAULT, "将Observable转换为其它对象或数据结构,只能用于BlockingObservable", CommonString.To, OperatorsUrl.To, parentId)); parentId++; } private static void getErrorList(List alloperatorses) { - alloperatorses.add(new alloperators(i++, "onErrorResumeNext()", "指示Observable在遇到错误时发射一个数据序列", CommonString.EMPTY, OperatorsUrl.ERROR, parentId)); - alloperatorses.add(new alloperators(i++, "onErrorReturn()", "指示Observable在遇到错误时发射一个特定的数据", CommonString.EMPTY, OperatorsUrl.ERROR, parentId)); - alloperatorses.add(new alloperators(i++, "onExceptionResumeNext()", "instructs an Observable to continue emitting items after it encounters an exception (but not another variety of throwable)指示Observable遇到错误时继续发射数据", CommonString.EMPTY, OperatorsUrl.ERROR, parentId)); - alloperatorses.add(new alloperators(i++, "retry()", "指示Observable遇到错误时重试", CommonString.RETRY, OperatorsUrl.RETRY, parentId)); - alloperatorses.add(new alloperators(i++, "retryWhen()", "指示Observable遇到错误时,将错误传递给另一个Observable来决定是否要重新给订阅这个Observable", CommonString.RETRYWHEN, OperatorsUrl.RETRY, parentId)); + alloperatorses.add(new alloperators(i++, "onErrorResumeNext()", DEFAULT, "指示Observable在遇到错误时发射一个数据序列", CommonString.EMPTY, OperatorsUrl.ERROR, parentId)); + alloperatorses.add(new alloperators(i++, "onErrorReturn()", DEFAULT, "指示Observable在遇到错误时发射一个特定的数据", CommonString.EMPTY, OperatorsUrl.ERROR, parentId)); + alloperatorses.add(new alloperators(i++, "onExceptionResumeNext()", DEFAULT, "instructs an Observable to continue emitting items after it encounters an exception (but not another variety of throwable)指示Observable遇到错误时继续发射数据", CommonString.EMPTY, OperatorsUrl.ERROR, parentId)); + alloperatorses.add(new alloperators(i++, "retry()", DEFAULT, "指示Observable遇到错误时重试", CommonString.RETRY, OperatorsUrl.RETRY, parentId)); + alloperatorses.add(new alloperators(i++, "retryWhen()", DEFAULT, "指示Observable遇到错误时,将错误传递给另一个Observable来决定是否要重新给订阅这个Observable", CommonString.RETRYWHEN, OperatorsUrl.RETRY, parentId)); parentId++; } private static void getCombinList(List alloperatorses) { - alloperatorses.add(new alloperators(i++, "startWith()", "在数据序列的开头增加一项数据", CommonString.STARTWITH, OperatorsUrl.STARTWITH, parentId)); - alloperatorses.add(new alloperators(i++, "merge()", "将多个Observable合并为一个", CommonString.MERGE, OperatorsUrl.MERGE, parentId)); - alloperatorses.add(new alloperators(i++, "mergeDelayError()", "合并多个Observables,让没有错误的Observable都完成后再发射错误通知", CommonString.MERGEDELAY, OperatorsUrl.MERGEDELAY, parentId)); - alloperatorses.add(new alloperators(i++, "zip()", "使用一个函数组合多个Observable发射的数据集合,然后再发射这个结果", CommonString.ZIP, OperatorsUrl.ZIP, parentId)); - alloperatorses.add(new alloperators(i++, "and(), then(), and when()", "(rxjava-joins)通过模式和计划组合多个Observables发射的数据集合", CommonString.AND, OperatorsUrl.AND, parentId)); - alloperatorses.add(new alloperators(i++, "combineLatest()", "当两个Observables中的任何一个发射了一个数据时,通过一个指定的函数组合每个Observable发射的最新数据(一共两个数据),然后发射这个函数的结果", CommonString.COMBINLASTED, OperatorsUrl.COMBINLASTED, parentId)); - alloperatorses.add(new alloperators(i++, "join() and groupJoin()", "无论何时,如果一个Observable发射了一个数据项,只要在另一个Observable发射的数据项定义的时间窗口内,就将两个Observable发射的数据合并发射", CommonString.JOIN, OperatorsUrl.JOIN, parentId)); - alloperatorses.add(new alloperators(i++, "switchOnNext()", "将一个发射Observables的Observable转换成另一个Observable,后者发射这些Observables最近发射的数据", CommonString.SWITHONNEXT, OperatorsUrl.SWITHONNEXT, parentId)); + alloperatorses.add(new alloperators(i++, "startWith()", DEFAULT, "在数据序列的开头增加一项数据", CommonString.STARTWITH, OperatorsUrl.STARTWITH, parentId)); + alloperatorses.add(new alloperators(i++, "merge()", DEFAULT, "将多个Observable合并为一个", CommonString.MERGE, OperatorsUrl.MERGE, parentId)); + alloperatorses.add(new alloperators(i++, "mergeDelayError()", DEFAULT, "合并多个Observables,让没有错误的Observable都完成后再发射错误通知", CommonString.MERGEDELAY, OperatorsUrl.MERGEDELAY, parentId)); + alloperatorses.add(new alloperators(i++, "zip()", DEFAULT, "使用一个函数组合多个Observable发射的数据集合,然后再发射这个结果", CommonString.ZIP, OperatorsUrl.ZIP, parentId)); + alloperatorses.add(new alloperators(i++, "and(), then(), and when()", DEFAULT, "(rxjava-joins)通过模式和计划组合多个Observables发射的数据集合", CommonString.AND, OperatorsUrl.AND, parentId)); + alloperatorses.add(new alloperators(i++, "combineLatest()", DEFAULT, "当两个Observables中的任何一个发射了一个数据时,通过一个指定的函数组合每个Observable发射的最新数据(一共两个数据),然后发射这个函数的结果", CommonString.COMBINLASTED, OperatorsUrl.COMBINLASTED, parentId)); + alloperatorses.add(new alloperators(i++, "join() and groupJoin()", DEFAULT, "无论何时,如果一个Observable发射了一个数据项,只要在另一个Observable发射的数据项定义的时间窗口内,就将两个Observable发射的数据合并发射", CommonString.JOIN, OperatorsUrl.JOIN, parentId)); + alloperatorses.add(new alloperators(i++, "switchOnNext()", DEFAULT, "将一个发射Observables的Observable转换成另一个Observable,后者发射这些Observables最近发射的数据", CommonString.SWITHONNEXT, OperatorsUrl.SWITHONNEXT, parentId)); parentId++; } + private static void getIntroduceList(List alloperatorses) { - alloperatorses.add(new alloperators(i++, "ReactiveX", "什么是Rx,Rx的理念和优势", CommonString.SPLASH_INDEX_URL, OperatorsUrl.INTRODUCE, parentId)); - alloperatorses.add(new alloperators(i++, "RxJava入门指南", "RxJava入门指南", CommonString.SPLASH_INDEX_URL, OperatorsUrl.GUIDE_OPEN, parentId)); - alloperatorses.add(new alloperators(i++, "RxJava使用示例", "RxJava使用示例", CommonString.SPLASH_INDEX_URL, OperatorsUrl.SAMPLE_FIRST, parentId)); - alloperatorses.add(new alloperators(i++, "Observables", "简要介绍Observable的观察者模型", CommonString.OBSERVABLES, OperatorsUrl.OBSERVABLES, parentId)); - alloperatorses.add(new alloperators(i++, "Single", "一种特殊的只发射单个值的Observable", CommonString.SPLASH_INDEX_URL, OperatorsUrl.SINGLE, parentId)); - alloperatorses.add(new alloperators(i++, "Subject", "Observable和Observer的复合体,也是二者的桥梁", CommonString.SUBJECT, OperatorsUrl.SUBJECT, parentId)); - alloperatorses.add(new alloperators(i++, "Scheduler", "介绍了各种异步任务调度和默认调度器", CommonString.SPLASH_INDEX_URL, OperatorsUrl.SCHEDULE, parentId)); + alloperatorses.add(new alloperators(i++, "ReactiveX", " ", "什么是Rx,Rx的理念和优势", CommonString.SPLASH_INDEX_URL, OperatorsUrl.INTRODUCE, parentId)); + alloperatorses.add(new alloperators(i++, "RxJava入门指南", " ", "RxJava入门指南", CommonString.SPLASH_INDEX_URL, OperatorsUrl.GUIDE_OPEN, parentId)); + alloperatorses.add(new alloperators(i++, "RxJava使用示例", " ", "RxJava使用示例", CommonString.SPLASH_INDEX_URL, OperatorsUrl.SAMPLE_FIRST, parentId)); + alloperatorses.add(new alloperators(i++, "Observables", " ", "简要介绍Observable的观察者模型", CommonString.OBSERVABLES, OperatorsUrl.OBSERVABLES, parentId)); + alloperatorses.add(new alloperators(i++, "Single", " ", "一种特殊的只发射单个值的Observable", CommonString.SPLASH_INDEX_URL, OperatorsUrl.SINGLE, parentId)); + alloperatorses.add(new alloperators(i++, "Subject", " ", "Observable和Observer的复合体,也是二者的桥梁", CommonString.SUBJECT, OperatorsUrl.SUBJECT, parentId)); + alloperatorses.add(new alloperators(i++, "Scheduler", " ", "介绍了各种异步任务调度和默认调度器", CommonString.SPLASH_INDEX_URL, OperatorsUrl.SCHEDULE, parentId)); parentId++; } private static void getCreatingList(List alloperatorses) { - alloperatorses.add(new alloperators(i++, "just()", "将一个或多个对象转换成发射这个或这些对象的一个Observable", CommonString.JUST, OperatorsUrl.JUST, parentId)); - alloperatorses.add(new alloperators(i++, "from()", "将一个Iterable, 一个Future, 或者一个数组转换成一个Observable", CommonString.FROM, OperatorsUrl.FROM, parentId)); - alloperatorses.add(new alloperators(i++, "repeat()", "创建一个重复发射指定数据或数据序列的Observable", CommonString.REPEAT, OperatorsUrl.REPEAT, parentId)); - alloperatorses.add(new alloperators(i++, "repeatWhen()", "创建一个重复发射指定数据或数据序列的Observable,它依赖于另一个Observable发射的数据", CommonString.REPEAT_WHEN, OperatorsUrl.REPEAT, parentId)); - alloperatorses.add(new alloperators(i++, "create()", "使用一个函数从头创建一个Observable", CommonString.CREATE, OperatorsUrl.CREATE, parentId)); - alloperatorses.add(new alloperators(i++, "defer()", "只有当订阅者订阅才创建Observable;为每个订阅创建一个新的Observable", CommonString.DEFER, OperatorsUrl.DEFER, parentId)); - alloperatorses.add(new alloperators(i++, "range()", "创建一个发射指定范围的整数序列的Observable", CommonString.RANGE, OperatorsUrl.DEFER, parentId)); - alloperatorses.add(new alloperators(i++, "interval()", "创建一个按照给定的时间间隔发射整数序列的Observable", CommonString.INTERVAL, OperatorsUrl.INTERVAL, parentId)); - alloperatorses.add(new alloperators(i++, "timer()", "创建一个按照给定的时间间隔发射整数序列的Observable", CommonString.TIMER, OperatorsUrl.TIMER, parentId)); - alloperatorses.add(new alloperators(i++, "empty()", "创建一个什么都不做直接通知完成的Observable", CommonString.EMPTY, OperatorsUrl.EMPTY, parentId)); - alloperatorses.add(new alloperators(i++, "error()", "创建一个什么都不做直接通知错误的Observable", CommonString.EMPTY, OperatorsUrl.EMPTY, parentId)); - alloperatorses.add(new alloperators(i++, "never()", "创建一个不发射任何数据的Observable", CommonString.EMPTY, OperatorsUrl.EMPTY, parentId)); + alloperatorses.add(new alloperators(i++, "just()", DEFAULT, "将一个或多个对象转换成发射这个或这些对象的一个Observable", CommonString.JUST, OperatorsUrl.JUST, parentId)); + alloperatorses.add(new alloperators(i++, "from()", DEFAULT, "将一个Iterable, 一个Future, 或者一个数组转换成一个Observable", CommonString.FROM, OperatorsUrl.FROM, parentId)); + alloperatorses.add(new alloperators(i++, "repeat()", TRAMPOLINE, "创建一个重复发射指定数据或数据序列的Observable", CommonString.REPEAT, OperatorsUrl.REPEAT, parentId)); + alloperatorses.add(new alloperators(i++, "repeatWhen()", TRAMPOLINE, "创建一个重复发射指定数据或数据序列的Observable,它依赖于另一个Observable发射的数据", CommonString.REPEAT_WHEN, OperatorsUrl.REPEAT, parentId)); + alloperatorses.add(new alloperators(i++, "create()", DEFAULT, "使用一个函数从头创建一个Observable", CommonString.CREATE, OperatorsUrl.CREATE, parentId)); + alloperatorses.add(new alloperators(i++, "defer()", DEFAULT, "只有当订阅者订阅才创建Observable;为每个订阅创建一个新的Observable", CommonString.DEFER, OperatorsUrl.DEFER, parentId)); + alloperatorses.add(new alloperators(i++, "range()", DEFAULT, "创建一个发射指定范围的整数序列的Observable", CommonString.RANGE, OperatorsUrl.RANGE, parentId)); + alloperatorses.add(new alloperators(i++, "interval()", COMPUTATION, "创建一个按照给定的时间间隔发射整数序列的Observable", CommonString.INTERVAL, OperatorsUrl.INTERVAL, parentId)); + alloperatorses.add(new alloperators(i++, "timer()", COMPUTATION, "创建一个按照给定的时间间隔发射整数序列的Observable", CommonString.TIMER, OperatorsUrl.TIMER, parentId)); + alloperatorses.add(new alloperators(i++, "empty()", DEFAULT, "创建一个什么都不做直接通知完成的Observable", CommonString.EMPTY, OperatorsUrl.EMPTY, parentId)); + alloperatorses.add(new alloperators(i++, "error()", DEFAULT, "创建一个什么都不做直接通知错误的Observable", CommonString.EMPTY, OperatorsUrl.EMPTY, parentId)); + alloperatorses.add(new alloperators(i++, "never()", DEFAULT, "创建一个不发射任何数据的Observable", CommonString.EMPTY, OperatorsUrl.EMPTY, parentId)); parentId++; } private static void getTransformList(List alloperatorses) { - alloperatorses.add(new alloperators(i++, "map()", "对序列的每一项都应用一个函数来变换Observable发射的数据序列", CommonString.MAP, OperatorsUrl.MAP, parentId)); - alloperatorses.add(new alloperators(i++, "flatMap()", "将Observable发射的数据集合变换为Observables集合,然后将这些Observable发射的数据平坦化的放进一个单独的Observable", CommonString.FLATMAP, OperatorsUrl.FLATMAP, parentId)); - alloperatorses.add(new alloperators(i++, "concatMap()", "将Observable发射的数据集合变换为Observables集合,然后将这些Observable发射的数据平坦化的放进一个单独的Observable", CommonString.CONTACTMAP, OperatorsUrl.CONTACTMAP, parentId)); - alloperatorses.add(new alloperators(i++, "switchMap()", "将Observable发射的数据集合变换为Observables集合,然后只发射这些Observables最近发射的数据", CommonString.SWITCHMAP, OperatorsUrl.SWITCHMAP, parentId)); - alloperatorses.add(new alloperators(i++, "scan()", "对Observable发射的每一项数据应用一个函数,然后按顺序依次发射每一个值", CommonString.SCAN, OperatorsUrl.SCAN, parentId)); - alloperatorses.add(new alloperators(i++, "groupBy()", "将Observable分拆为Observable集合,将原始Observable发射的数据按Key分组,每一个Observable发射一组不同的数据", CommonString.GROUPBY, OperatorsUrl.GROUPBY, parentId)); - alloperatorses.add(new alloperators(i++, "buffer()", "它定期从Observable收集数据到一个集合,然后把这些数据集合打包发射,而不是一次发射一个", CommonString.BUFFER, OperatorsUrl.BUFFER, parentId)); - alloperatorses.add(new alloperators(i++, "window()", "定期将来自Observable的数据分拆成一些Observable窗口,然后发射这些窗口,而不是每次发射一项", CommonString.WINDOW, OperatorsUrl.WINDOW, parentId)); - alloperatorses.add(new alloperators(i++, "cast()", "在发射之前强制将Observable发射的所有数据转换为指定类型", CommonString.CAST, OperatorsUrl.CAST, parentId)); + alloperatorses.add(new alloperators(i++, "map()", DEFAULT, "对序列的每一项都应用一个函数来变换Observable发射的数据序列", CommonString.MAP, OperatorsUrl.MAP, parentId)); + alloperatorses.add(new alloperators(i++, "flatMap()", DEFAULT, "将Observable发射的数据集合变换为Observables集合,然后将这些Observable发射的数据平坦化的放进一个单独的Observable", CommonString.FLATMAP, OperatorsUrl.FLATMAP, parentId)); + alloperatorses.add(new alloperators(i++, "concatMap()", DEFAULT, "将Observable发射的数据集合变换为Observables集合,然后将这些Observable发射的数据平坦化的放进一个单独的Observable", CommonString.CONTACTMAP, OperatorsUrl.CONTACTMAP, parentId)); + alloperatorses.add(new alloperators(i++, "switchMap()", DEFAULT, "将Observable发射的数据集合变换为Observables集合,然后只发射这些Observables最近发射的数据", CommonString.SWITCHMAP, OperatorsUrl.SWITCHMAP, parentId)); + alloperatorses.add(new alloperators(i++, "scan()", DEFAULT, "对Observable发射的每一项数据应用一个函数,然后按顺序依次发射每一个值", CommonString.SCAN, OperatorsUrl.SCAN, parentId)); + alloperatorses.add(new alloperators(i++, "groupBy()", DEFAULT, "将Observable分拆为Observable集合,将原始Observable发射的数据按Key分组,每一个Observable发射一组不同的数据", CommonString.GROUPBY, OperatorsUrl.GROUPBY, parentId)); + alloperatorses.add(new alloperators(i++, "buffer()", COMPUTATION, "它定期从Observable收集数据到一个集合,然后把这些数据集合打包发射,而不是一次发射一个", CommonString.BUFFER, OperatorsUrl.BUFFER, parentId)); + alloperatorses.add(new alloperators(i++, "window()", COMPUTATION, "定期将来自Observable的数据分拆成一些Observable窗口,然后发射这些窗口,而不是每次发射一项", CommonString.WINDOW, OperatorsUrl.WINDOW, parentId)); + alloperatorses.add(new alloperators(i++, "cast()", DEFAULT, "在发射之前强制将Observable发射的所有数据转换为指定类型", CommonString.CAST, OperatorsUrl.CAST, parentId)); parentId++; } private static void getFilterList(List alloperatorses) { - alloperatorses.add(new alloperators(i++, "filter()", "过滤数据", CommonString.FILTER, OperatorsUrl.FILTER, parentId)); - alloperatorses.add(new alloperators(i++, "takeLast()", "只发射最后的N项数据", CommonString.TAKE_LAST, OperatorsUrl.TAKE_LAST, parentId)); - alloperatorses.add(new alloperators(i++, "last()", "只发射最后的一项数据", CommonString.LAST, OperatorsUrl.LAST, parentId)); - alloperatorses.add(new alloperators(i++, "lastOrDefault()", "只发射最后的一项数据,如果Observable为空就发射默认值", CommonString.LAST_OR_DEFAULT, OperatorsUrl.LAST_OR_DEFAULT, parentId)); - alloperatorses.add(new alloperators(i++, "takeLastBuffer()", "将最后的N项数据当做单个数据发射", CommonString.TAKE_LAST_BUFFER, OperatorsUrl.TAKE_LAST_BUFFER, parentId)); - alloperatorses.add(new alloperators(i++, "skip()", "跳过开始的N项数据", CommonString.SKIP, OperatorsUrl.SKIP, parentId)); - alloperatorses.add(new alloperators(i++, "skipLast()", "跳过最后的N项数据", CommonString.SKIP_LAST, OperatorsUrl.SKIP_LAST, parentId)); - alloperatorses.add(new alloperators(i++, "take()", "只发射开始的N项数据", CommonString.TAKE, OperatorsUrl.TAKE, parentId)); - alloperatorses.add(new alloperators(i++, "first() and takeFirst()", "只发射第一项数据,或者满足某种条件的第一项数据", CommonString.FIRST, OperatorsUrl.FIRST, parentId)); - alloperatorses.add(new alloperators(i++, "firstOrDefault()", "只发射第一项数据,如果Observable为空就发射默认值", CommonString.FIRST_DEFAULT, OperatorsUrl.FIRST_DEFAULT, parentId)); - alloperatorses.add(new alloperators(i++, "elementAt()", "发射第N项数据", CommonString.ELEMENT_AT, OperatorsUrl.ELEMENT_AT, parentId)); - alloperatorses.add(new alloperators(i++, "elementAtOrDefault()", "发射第N项数据,如果Observable数据少于N项就发射默认值", CommonString.ELEMENT_DEFAULT, OperatorsUrl.ELEMENT_DEFAULT, parentId)); - alloperatorses.add(new alloperators(i++, "sample() or throttleLast()", "定期发射Observable最近的数据", CommonString.SAMPLE, OperatorsUrl.SAMPLE, parentId)); - alloperatorses.add(new alloperators(i++, "throttleFirst()", "定期发射Observable发射的第一项数据", CommonString.THROLFIRST, OperatorsUrl.THROLFIRST, parentId)); - alloperatorses.add(new alloperators(i++, "throttleWithTimeout() or debounce()", "只有当Observable在指定的时间后还没有发射数据时,才发射一个数据", CommonString.DEBOUND, OperatorsUrl.DEBOUND, parentId)); - alloperatorses.add(new alloperators(i++, "timeout()", "如果在一个指定的时间段后还没发射数据,就发射一个异常", CommonString.TIMEOUT, OperatorsUrl.TIMEOUT, parentId)); - alloperatorses.add(new alloperators(i++, "distinct()", "过滤掉重复数据", CommonString.DISTINCT, OperatorsUrl.DISTINCT, parentId)); - alloperatorses.add(new alloperators(i++, "distinctUntilChanged()", "过滤掉连续重复的数据", CommonString.UNTILCHANGED, OperatorsUrl.UNTILCHANGED, parentId)); - alloperatorses.add(new alloperators(i++, "ofType()", "只发射指定类型的数据", CommonString.OF_TYPE, OperatorsUrl.OF_TYPE, parentId)); - alloperatorses.add(new alloperators(i++, "ignoreElements()", "丢弃所有的正常数据,只发射错误或完成通知", CommonString.IGNORE_ELEMENT, OperatorsUrl.IGNORE_ELEMENT, parentId)); + alloperatorses.add(new alloperators(i++, "filter()", DEFAULT, "过滤数据", CommonString.FILTER, OperatorsUrl.FILTER, parentId)); + alloperatorses.add(new alloperators(i++, "takeLast()", DEFAULT, "只发射最后的N项数据", CommonString.TAKE_LAST, OperatorsUrl.TAKE_LAST, parentId)); + alloperatorses.add(new alloperators(i++, "last()", DEFAULT, "只发射最后的一项数据", CommonString.LAST, OperatorsUrl.LAST, parentId)); + alloperatorses.add(new alloperators(i++, "lastOrDefault()", DEFAULT, "只发射最后的一项数据,如果Observable为空就发射默认值", CommonString.LAST_OR_DEFAULT, OperatorsUrl.LAST_OR_DEFAULT, parentId)); + alloperatorses.add(new alloperators(i++, "takeLastBuffer()", DEFAULT, "将最后的N项数据当做单个数据发射", CommonString.TAKE_LAST_BUFFER, OperatorsUrl.TAKE_LAST_BUFFER, parentId)); + alloperatorses.add(new alloperators(i++, "skip()", DEFAULT, "跳过开始的N项数据", CommonString.SKIP, OperatorsUrl.SKIP, parentId)); + alloperatorses.add(new alloperators(i++, "skipLast()", DEFAULT, "跳过最后的N项数据", CommonString.SKIP_LAST, OperatorsUrl.SKIP_LAST, parentId)); + alloperatorses.add(new alloperators(i++, "take()", DEFAULT, "只发射开始的N项数据", CommonString.TAKE, OperatorsUrl.TAKE, parentId)); + alloperatorses.add(new alloperators(i++, "first() and takeFirst()", DEFAULT, "只发射第一项数据,或者满足某种条件的第一项数据", CommonString.FIRST, OperatorsUrl.FIRST, parentId)); + alloperatorses.add(new alloperators(i++, "firstOrDefault()", DEFAULT, "只发射第一项数据,如果Observable为空就发射默认值", CommonString.FIRST_DEFAULT, OperatorsUrl.FIRST_DEFAULT, parentId)); + alloperatorses.add(new alloperators(i++, "elementAt()", DEFAULT, "发射第N项数据", CommonString.ELEMENT_AT, OperatorsUrl.ELEMENT_AT, parentId)); + alloperatorses.add(new alloperators(i++, "elementAtOrDefault()", DEFAULT, "发射第N项数据,如果Observable数据少于N项就发射默认值", CommonString.ELEMENT_DEFAULT, OperatorsUrl.ELEMENT_DEFAULT, parentId)); + alloperatorses.add(new alloperators(i++, "sample() or throttleLast()", DEFAULT, "定期发射Observable最近的数据", CommonString.SAMPLE, OperatorsUrl.SAMPLE, parentId)); + alloperatorses.add(new alloperators(i++, "throttleFirst()", COMPUTATION, "定期发射Observable发射的第一项数据", CommonString.THROLFIRST, OperatorsUrl.THROLFIRST, parentId)); + alloperatorses.add(new alloperators(i++, "throttleWithTimeout() or debounce()", DEFAULT, "只有当Observable在指定的时间后还没有发射数据时,才发射一个数据", CommonString.DEBOUND, OperatorsUrl.DEBOUND, parentId)); + alloperatorses.add(new alloperators(i++, "timeout()", "immediate", "如果在一个指定的时间段后还没发射数据,就发射一个异常", CommonString.TIMEOUT, OperatorsUrl.TIMEOUT, parentId)); + alloperatorses.add(new alloperators(i++, "distinct()", DEFAULT, "过滤掉重复数据", CommonString.DISTINCT, OperatorsUrl.DISTINCT, parentId)); + alloperatorses.add(new alloperators(i++, "distinctUntilChanged()", DEFAULT, "过滤掉连续重复的数据", CommonString.UNTILCHANGED, OperatorsUrl.UNTILCHANGED, parentId)); + alloperatorses.add(new alloperators(i++, "ofType()", DEFAULT, "只发射指定类型的数据", CommonString.OF_TYPE, OperatorsUrl.OF_TYPE, parentId)); + alloperatorses.add(new alloperators(i++, "ignoreElements()", DEFAULT, "丢弃所有的正常数据,只发射错误或完成通知", CommonString.IGNORE_ELEMENT, OperatorsUrl.IGNORE_ELEMENT, parentId)); parentId++; } @@ -336,4 +348,5 @@ public interface callBack { void onFail(Throwable e); } + } diff --git a/app/src/main/java/com/jiang/android/rxjavaapp/utils/Utils.java b/app/src/main/java/com/jiang/android/rxjavaapp/utils/Utils.java index 090c38a..c857ed9 100644 --- a/app/src/main/java/com/jiang/android/rxjavaapp/utils/Utils.java +++ b/app/src/main/java/com/jiang/android/rxjavaapp/utils/Utils.java @@ -28,6 +28,7 @@ package com.jiang.android.rxjavaapp.utils; +import android.content.Context; import android.net.Uri; /** @@ -36,5 +37,16 @@ public class Utils { public static Uri getUri(String url) { return Uri.parse(url); + + } + + public static int Dp2Px(Context context, float dp) { + final float scale = context.getResources().getDisplayMetrics().density; + return (int) (dp * scale + 0.5f); + } + + public static int Px2Dp(Context context, float px) { + final float scale = context.getResources().getDisplayMetrics().density; + return (int) (px / scale + 0.5f); } } diff --git a/app/src/main/res/drawable-xhdpi/splash_large.jpg b/app/src/main/res/drawable-xhdpi/splash_large.jpg deleted file mode 100644 index 86fc37c..0000000 Binary files a/app/src/main/res/drawable-xhdpi/splash_large.jpg and /dev/null differ diff --git a/app/src/main/res/drawable/delector.xml b/app/src/main/res/drawable/delector.xml new file mode 100644 index 0000000..bbcefbe --- /dev/null +++ b/app/src/main/res/drawable/delector.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/dialog_topbar_bg.xml b/app/src/main/res/drawable/dialog_topbar_bg.xml new file mode 100644 index 0000000..77c3f62 --- /dev/null +++ b/app/src/main/res/drawable/dialog_topbar_bg.xml @@ -0,0 +1,11 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 0fbb7c1..3deb940 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -1,17 +1,17 @@ + xmlns:app="http://schemas.android.com/apk/res-auto" + xmlns:tools="http://schemas.android.com/tools" + android:id="@+id/drawer_layout" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:fitsSystemWindows="true" + tools:openDrawer="start"> + android:layout_height="match_parent"/> + tools:context=".activity.LauncherActivity"> diff --git a/app/src/main/res/layout/app_bar_main.xml b/app/src/main/res/layout/app_bar_main.xml index bc0c600..8d049a2 100644 --- a/app/src/main/res/layout/app_bar_main.xml +++ b/app/src/main/res/layout/app_bar_main.xml @@ -5,7 +5,7 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true" - tools:context=".actiity.MainActivity"> + tools:context=".activity.MainActivity"> + xmlns:app="http://schemas.android.com/apk/res-auto" + xmlns:tools="http://schemas.android.com/tools" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:background="@color/_eeeeee" + app:layout_behavior="@string/appbar_scrolling_view_behavior" + tools:context=".activity.MainActivity" + tools:showIn="@layout/app_bar_main"> + android:layout_height="match_parent" + > diff --git a/app/src/main/res/layout/item_index_content.xml b/app/src/main/res/layout/item_index_content.xml index 5f237fc..4fdfc44 100644 --- a/app/src/main/res/layout/item_index_content.xml +++ b/app/src/main/res/layout/item_index_content.xml @@ -1,38 +1,57 @@ + xmlns:fresco="http://schemas.android.com/apk/res-auto" + xmlns:tools="http://schemas.android.com/tools" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginBottom="5dp" + android:layout_marginTop="5dp" + android:background="@drawable/delector" + android:paddingBottom="10dp" + android:paddingLeft="15dp" + android:paddingRight="15dp" + android:paddingTop="10dp"> + + tools:src="@mipmap/ic_launcher"/> + + + tools:text="Combin"/> + tools:text="对序列的每一项都应用一个函数来变换发射的数据序列"/> \ No newline at end of file diff --git a/app/src/main/res/layout/item_nav_head.xml b/app/src/main/res/layout/item_nav_head.xml index b51df60..3ad2c67 100644 --- a/app/src/main/res/layout/item_nav_head.xml +++ b/app/src/main/res/layout/item_nav_head.xml @@ -1,13 +1,16 @@ + xmlns:tools="http://schemas.android.com/tools" + android:id="@+id/item_nav_head_v" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:background="@drawable/delector" + android:gravity="left" + android:paddingBottom="10dp" + android:paddingLeft="40dp" + android:paddingTop="10dp" + android:textSize="20sp" + tools:text="Combing"> \ No newline at end of file diff --git a/app/src/main/res/layout/nav_header_main.xml b/app/src/main/res/layout/nav_header_main.xml index eb611b4..ab317a6 100644 --- a/app/src/main/res/layout/nav_header_main.xml +++ b/app/src/main/res/layout/nav_header_main.xml @@ -11,28 +11,21 @@ android:layout_height="@dimen/nav_header_height" android:background="@drawable/side_nav_bar" android:orientation="vertical" + android:gravity="center|left" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" - android:paddingTop="@dimen/activity_vertical_margin" - android:theme="@style/ThemeOverlay.AppCompat.Dark"> + android:paddingTop="@dimen/activity_vertical_margin"> + android:src="@mipmap/ic_launcher" /> - - - + + + diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/app/src/main/res/mipmap-xhdpi/ic_launcher.png index 41501dc..20b0007 100644 Binary files a/app/src/main/res/mipmap-xhdpi/ic_launcher.png and b/app/src/main/res/mipmap-xhdpi/ic_launcher.png differ diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/app/src/main/res/mipmap-xxhdpi/ic_launcher.png index 5ce9cc5..2b254a5 100644 Binary files a/app/src/main/res/mipmap-xxhdpi/ic_launcher.png and b/app/src/main/res/mipmap-xxhdpi/ic_launcher.png differ diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png index 58fd727..f88538b 100644 Binary files a/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png and b/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png differ diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index 1e9624f..a0debe9 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -6,4 +6,6 @@ #66000000 #000000 + #EEEEEE + #FFFFFF diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 3e7bd45..8291edf 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -12,4 +12,6 @@ GitHub 关于 分享 + 更新 + 评分 diff --git a/build.gradle b/build.gradle index 9ba5972..c20bca1 100644 --- a/build.gradle +++ b/build.gradle @@ -5,7 +5,7 @@ buildscript { jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:2.0.0-beta6' + classpath 'com.android.tools.build:gradle:2.2.2' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files diff --git a/qrcode/a b/qrcode/a new file mode 100644 index 0000000..6a69f92 --- /dev/null +++ b/qrcode/a @@ -0,0 +1 @@ +f