Skip to content

Commit 4acd7cb

Browse files
committed
add some operators
1 parent 65fd202 commit 4acd7cb

File tree

5 files changed

+113
-158
lines changed

5 files changed

+113
-158
lines changed

app/src/main/AndroidManifest.xml

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
33
package="com.jiang.android.rxjavaapp">
44

5-
65
<uses-permission android:name="android.permission.INTERNET" />
76
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
87
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
@@ -16,20 +15,19 @@
1615
android:screenOrientation="portrait"
1716
android:supportsRtl="true"
1817
android:theme="@style/AppTheme">
19-
<activity
20-
android:name=".actiity.MainActivity"></activity>
21-
<activity
22-
android:name=".actiity.splashActivity"
23-
android:theme="@style/FullscreenTheme">
18+
<activity android:name=".actiity.MainActivity" />
19+
20+
<activity android:name=".base.BaseWebActivity" />
21+
<activity android:name=".actiity.PhotoPagerActivity" />
22+
23+
24+
<activity android:name=".actiity.LauncherActivity">
2425
<intent-filter>
2526
<action android:name="android.intent.action.MAIN" />
27+
2628
<category android:name="android.intent.category.LAUNCHER" />
2729
</intent-filter>
2830
</activity>
29-
30-
<activity android:name=".base.BaseWebActivity" />
31-
<activity android:name=".actiity.PhotoPagerActivity" />
32-
<service android:name=".InitDataService" />
3331
</application>
3432

3533
</manifest>
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
package com.jiang.android.rxjavaapp.actiity;
2+
3+
import android.content.Intent;
4+
import android.os.Bundle;
5+
import android.support.design.widget.Snackbar;
6+
import android.support.v7.app.AppCompatActivity;
7+
import android.widget.ImageView;
8+
9+
import com.jiang.android.rxjavaapp.R;
10+
import com.jiang.android.rxjavaapp.common.CommonString;
11+
import com.jiang.android.rxjavaapp.common.SPKey;
12+
import com.jiang.android.rxjavaapp.utils.DataUtils;
13+
import com.jiang.android.rxjavaapp.utils.SharePrefUtil;
14+
import com.nostra13.universalimageloader.core.ImageLoader;
15+
16+
public class LauncherActivity extends AppCompatActivity {
17+
18+
19+
ImageView mSplash;
20+
21+
@Override
22+
protected void onCreate(Bundle savedInstanceState) {
23+
super.onCreate(savedInstanceState);
24+
setContentView(R.layout.activity_splash);
25+
mSplash = (ImageView) findViewById(R.id.splash_index);
26+
ImageLoader.getInstance().displayImage(CommonString.SPLASH_INDEX_URL, mSplash);
27+
startAct();
28+
29+
}
30+
31+
private void startAct() {
32+
if (SharePrefUtil.getBoolean(this, SPKey.FIRST_ENTER, true)) {
33+
DataUtils.fillData(new DataUtils.callBack() {
34+
@Override
35+
public void onSuccess() {
36+
SharePrefUtil.saveBoolean(LauncherActivity.this, SPKey.FIRST_ENTER, false);
37+
startActivity(new Intent(LauncherActivity.this, MainActivity.class));
38+
LauncherActivity.this.finish();
39+
40+
}
41+
42+
@Override
43+
public void onFail(Throwable e) {
44+
Snackbar.make(mSplash, e.getMessage(), Snackbar.LENGTH_LONG).show();
45+
46+
}
47+
});
48+
49+
} else {
50+
startActivity(new Intent(LauncherActivity.this, MainActivity.class));
51+
LauncherActivity.this.finish();
52+
}
53+
}
54+
}

app/src/main/java/com/jiang/android/rxjavaapp/actiity/splashActivity.java

Lines changed: 0 additions & 87 deletions
This file was deleted.

app/src/main/java/com/jiang/android/rxjavaapp/InitDataService.java renamed to app/src/main/java/com/jiang/android/rxjavaapp/utils/DataUtils.java

Lines changed: 42 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -26,84 +26,61 @@
2626
* # #
2727
*/
2828

29-
package com.jiang.android.rxjavaapp;
30-
31-
import android.app.IntentService;
32-
import android.content.Intent;
33-
import android.widget.Toast;
29+
package com.jiang.android.rxjavaapp.utils;
3430

3531
import com.jiang.android.rxjavaapp.common.CommonString;
3632
import com.jiang.android.rxjavaapp.common.OperatorsUrl;
37-
import com.jiang.android.rxjavaapp.common.SPKey;
3833
import com.jiang.android.rxjavaapp.database.alloperators;
3934
import com.jiang.android.rxjavaapp.database.helper.DbUtil;
4035
import com.jiang.android.rxjavaapp.database.operators;
41-
import com.jiang.android.rxjavaapp.utils.L;
42-
import com.jiang.android.rxjavaapp.utils.SharePrefUtil;
4336

4437
import java.util.ArrayList;
4538
import java.util.List;
4639

47-
import de.greenrobot.event.EventBus;
48-
import rx.Observable;
49-
import rx.Subscriber;
40+
import rx.Single;
41+
import rx.SingleSubscriber;
5042
import rx.android.schedulers.AndroidSchedulers;
5143
import rx.schedulers.Schedulers;
5244

5345
/**
5446
* Created by jiang on 16/3/13.
5547
*/
56-
public class InitDataService extends IntentService {
57-
58-
public InitDataService() {
59-
super("InitDataService");
60-
}
61-
62-
long i = 1l;
63-
long parentId = 1l;
64-
65-
@Override
66-
protected void onHandleIntent(Intent intent) {
48+
public class DataUtils {
49+
static long i = 1l;
50+
static long parentId = 1l;
6751

68-
Observable.create(new Observable.OnSubscribe<Boolean>() {
52+
public static void fillData(final callBack call) {
53+
Single.create(new Single.OnSubscribe<Boolean>() {
6954
@Override
70-
public void call(Subscriber<? super Boolean> subscriber) {
71-
55+
public void call(SingleSubscriber<? super Boolean> singleSubscriber) {
7256
try {
7357
List<operators> lists = getOperatorsData();
7458
List<alloperators> alloperatorses = getAllOperators();
7559
DbUtil.getOperatorsService().save(lists);
7660
DbUtil.getAllOperatorsService().save(alloperatorses);
77-
subscriber.onNext(true);
78-
subscriber.onCompleted();
61+
singleSubscriber.onSuccess(true);
7962
} catch (Exception e) {
80-
subscriber.onError(e);
63+
singleSubscriber.onError(e);
8164
}
8265
}
83-
}).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Subscriber<Boolean>() {
84-
@Override
85-
public void onCompleted() {
86-
Toast.makeText(InitDataService.this, "数据库初始化成功", Toast.LENGTH_SHORT).show();
87-
SharePrefUtil.saveBoolean(InitDataService.this, SPKey.FIRST_ENTER, false);
88-
EventBus.getDefault().post(1);
89-
90-
}
91-
92-
@Override
93-
public void onError(Throwable e) {
94-
Toast.makeText(InitDataService.this, "保存数据失败,请退出重试,错误信息:" + e.getMessage(), Toast.LENGTH_SHORT).show();
95-
L.e(e.getMessage());
96-
}
66+
}).subscribeOn(Schedulers.io())
67+
.observeOn(AndroidSchedulers.mainThread())
68+
.subscribe(new SingleSubscriber<Boolean>() {
69+
@Override
70+
public void onSuccess(Boolean value) {
71+
call.onSuccess();
72+
}
73+
74+
@Override
75+
public void onError(Throwable error) {
76+
call.onFail(error);
77+
}
78+
});
9779

98-
@Override
99-
public void onNext(Boolean operatorss) {
100-
101-
}
102-
});
10380
}
10481

10582

106-
public List<operators> getOperatorsData() {
83+
public static List<operators> getOperatorsData() {
10784
List<operators> lists = new ArrayList<>();
10885
lists.add(new operators(1l, "RxJava介绍", 1l));
10986
lists.add(new operators(2l, "Creating", 2l));
@@ -122,7 +99,7 @@ public List<operators> getOperatorsData() {
12299
return lists;
123100
}
124101

125-
public List<alloperators> getAllOperators() {
102+
public static List<alloperators> getAllOperators() {
126103

127104
List<alloperators> alloperatorses = new ArrayList<>();
128105
getIntroduceList(alloperatorses);
@@ -137,7 +114,7 @@ public List<alloperators> getAllOperators() {
137114
}
138115

139116

140-
private void getStringList(List<alloperators> alloperatorses) {
117+
private static void getStringList(List<alloperators> alloperatorses) {
141118
alloperatorses.add(new alloperators(i++, "byLine()", "将一个字符串的Observable转换为一个行序列的Observable,这个Observable将原来的序列当做流处理,然后按换行符分割", CommonString.byLine, OperatorsUrl.byLine, parentId));
142119
alloperatorses.add(new alloperators(i++, "decode()", "将一个多字节的字符流转换为一个Observable,它按字符边界发射字节数组", CommonString.decode, OperatorsUrl.decode, parentId));
143120
alloperatorses.add(new alloperators(i++, "encode()", "对一个发射字符串的Observable执行变换操作,变换后的Observable发射一个在原始字符串中表示多字节字符边界的字节数组", CommonString.encode, OperatorsUrl.encode, parentId));
@@ -149,7 +126,7 @@ private void getStringList(List<alloperators> alloperatorses) {
149126
}
150127

151128

152-
private void getUtilityList(List<alloperators> alloperatorses) {
129+
private static void getUtilityList(List<alloperators> alloperatorses) {
153130
alloperatorses.add(new alloperators(i++, "Materialize()", "将Observable转换成一个通知列表convert an Observable into a list of Notifications", CommonString.Materialize, OperatorsUrl.Materialize, parentId));
154131
alloperatorses.add(new alloperators(i++, "Dematerialize()", "将上面的结果逆转回一个Observable", CommonString.Dematerialize, OperatorsUrl.Dematerialize, parentId));
155132
alloperatorses.add(new alloperators(i++, "Timestamp()", "给Observable发射的每个数据项添加一个时间戳", CommonString.Timestamp, OperatorsUrl.Timestamp, parentId));
@@ -173,7 +150,7 @@ private void getUtilityList(List<alloperators> alloperatorses) {
173150
}
174151

175152

176-
private void getErrorList(List<alloperators> alloperatorses) {
153+
private static void getErrorList(List<alloperators> alloperatorses) {
177154
alloperatorses.add(new alloperators(i++, "onErrorResumeNext()", "指示Observable在遇到错误时发射一个数据序列", CommonString.EMPTY, OperatorsUrl.ERROR, parentId));
178155
alloperatorses.add(new alloperators(i++, "onErrorReturn()", "指示Observable在遇到错误时发射一个特定的数据", CommonString.EMPTY, OperatorsUrl.ERROR, parentId));
179156
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));
@@ -183,7 +160,7 @@ private void getErrorList(List<alloperators> alloperatorses) {
183160
}
184161

185162

186-
private void getCombinList(List<alloperators> alloperatorses) {
163+
private static void getCombinList(List<alloperators> alloperatorses) {
187164
alloperatorses.add(new alloperators(i++, "startWith()", "在数据序列的开头增加一项数据", CommonString.STARTWITH, OperatorsUrl.STARTWITH, parentId));
188165
alloperatorses.add(new alloperators(i++, "merge()", "将多个Observable合并为一个", CommonString.MERGE, OperatorsUrl.MERGE, parentId));
189166
alloperatorses.add(new alloperators(i++, "mergeDelayError()", "合并多个Observables,让没有错误的Observable都完成后再发射错误通知", CommonString.MERGEDELAY, OperatorsUrl.MERGEDELAY, parentId));
@@ -195,7 +172,7 @@ private void getCombinList(List<alloperators> alloperatorses) {
195172
parentId++;
196173
}
197174

198-
private void getIntroduceList(List<alloperators> alloperatorses) {
175+
private static void getIntroduceList(List<alloperators> alloperatorses) {
199176
alloperatorses.add(new alloperators(i++, "ReactiveX", "什么是Rx,Rx的理念和优势", CommonString.SPLASH_INDEX_URL, OperatorsUrl.INTRODUCE, parentId));
200177
alloperatorses.add(new alloperators(i++, "Observables", "简要介绍Observable的观察者模型", CommonString.OBSERVABLES, OperatorsUrl.OBSERVABLES, parentId));
201178
alloperatorses.add(new alloperators(i++, "Single", "一种特殊的只发射单个值的Observable", CommonString.SPLASH_INDEX_URL, OperatorsUrl.SINGLE, parentId));
@@ -204,7 +181,7 @@ private void getIntroduceList(List<alloperators> alloperatorses) {
204181
parentId++;
205182
}
206183

207-
private void getCreatingList(List<alloperators> alloperatorses) {
184+
private static void getCreatingList(List<alloperators> alloperatorses) {
208185

209186
alloperatorses.add(new alloperators(i++, "just()", "将一个或多个对象转换成发射这个或这些对象的一个Observable", CommonString.JUST, OperatorsUrl.JUST, parentId));
210187
alloperatorses.add(new alloperators(i++, "from()", "将一个Iterable, 一个Future, 或者一个数组转换成一个Observable", CommonString.FROM, OperatorsUrl.FROM, parentId));
@@ -221,7 +198,7 @@ private void getCreatingList(List<alloperators> alloperatorses) {
221198
parentId++;
222199
}
223200

224-
private void getTransformList(List<alloperators> alloperatorses) {
201+
private static void getTransformList(List<alloperators> alloperatorses) {
225202
alloperatorses.add(new alloperators(i++, "map()", "对序列的每一项都应用一个函数来变换Observable发射的数据序列", CommonString.MAP, OperatorsUrl.MAP, parentId));
226203
alloperatorses.add(new alloperators(i++, "flatMap()", "将Observable发射的数据集合变换为Observables集合,然后将这些Observable发射的数据平坦化的放进一个单独的Observable", CommonString.FLATMAP, OperatorsUrl.FLATMAP, parentId));
227204
alloperatorses.add(new alloperators(i++, "concatMap()", "将Observable发射的数据集合变换为Observables集合,然后将这些Observable发射的数据平坦化的放进一个单独的Observable", CommonString.CONTACTMAP, OperatorsUrl.CONTACTMAP, parentId));
@@ -234,7 +211,7 @@ private void getTransformList(List<alloperators> alloperatorses) {
234211
parentId++;
235212
}
236213

237-
private void getFilterList(List<alloperators> alloperatorses) {
214+
private static void getFilterList(List<alloperators> alloperatorses) {
238215
alloperatorses.add(new alloperators(i++, "filter()", "过滤数据", CommonString.FILTER, OperatorsUrl.FILTER, parentId));
239216
alloperatorses.add(new alloperators(i++, "takeLast()", "只发射最后的N项数据", CommonString.TAKE_LAST, OperatorsUrl.TAKE_LAST, parentId));
240217
alloperatorses.add(new alloperators(i++, "last()", "只发射最后的一项数据", CommonString.LAST, OperatorsUrl.LAST, parentId));
@@ -257,4 +234,12 @@ private void getFilterList(List<alloperators> alloperatorses) {
257234
alloperatorses.add(new alloperators(i++, "ignoreElements()", "丢弃所有的正常数据,只发射错误或完成通知", CommonString.IGNORE_ELEMENT, OperatorsUrl.IGNORE_ELEMENT, parentId));
258235
parentId++;
259236
}
237+
238+
239+
public interface callBack {
240+
void onSuccess();
241+
242+
void onFail(Throwable e);
243+
244+
}
260245
}

0 commit comments

Comments
 (0)