Skip to content

Commit 09f4648

Browse files
committed
Fix problem cause by the end point of jwzx changed
- Change to the latest end point - Now you can set the end point of jwzx without rebuild the app
1 parent bbbd39c commit 09f4648

File tree

9 files changed

+311
-180
lines changed

9 files changed

+311
-180
lines changed

app/src/main/java/com/superbug/moi/cquptlife/config/API.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ public class API {
44

55
public static class URL {
66
// 内网外入后教务在线的查询学生信息接口
7-
public static final String END = "http://jwzx.cqupt.congm.in";
7+
public static final String END = "http://jwzx.host.congm.in:88";
88
public static final String searchStudent = "/jwzxtmp/data/json_StudentSearch.php";
99
public static final String searchTeacher = "/jwzxtmp/data/json_teacherSearch.php";
1010
// 废弃

app/src/main/java/com/superbug/moi/cquptlife/model/RequestManager.java

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
package com.superbug.moi.cquptlife.model;
22

3+
import com.superbug.moi.cquptlife.app.APP;
34
import com.superbug.moi.cquptlife.config.API;
45
import com.superbug.moi.cquptlife.model.bean.StudentWrapper;
56
import com.superbug.moi.cquptlife.model.bean.TeacherWrapper;
67
import com.superbug.moi.cquptlife.model.service.ApiService;
8+
import com.superbug.moi.cquptlife.util.SPUtils;
79

810
import java.util.List;
911

@@ -25,14 +27,7 @@ public enum RequestManager {
2527
private ApiService mApiService;
2628

2729
RequestManager() {
28-
Retrofit retrofit = new Retrofit.Builder()
29-
.baseUrl(API.URL.END)
30-
.client(new OkHttpClient())
31-
.addConverterFactory(GsonConverterFactory.create())
32-
.addCallAdapterFactory(RxJavaCallAdapterFactory.create())
33-
.build();
34-
35-
mApiService = retrofit.create(ApiService.class);
30+
buildRetrofit();
3631
}
3732

3833
public static RequestManager getInstance() {
@@ -58,4 +53,19 @@ public Subscription searchTeachers(Subscriber<List<TeacherWrapper.Teacher>> subs
5853
.map(TeacherWrapper::getRows);
5954
return emitObservable(observable, subscriber);
6055
}
56+
57+
private void buildRetrofit() {
58+
Retrofit retrofit = new Retrofit.Builder()
59+
.baseUrl((String) SPUtils.get(APP.getInstance(), "jwzxEnd", API.URL.END))
60+
.client(new OkHttpClient())
61+
.addConverterFactory(GsonConverterFactory.create())
62+
.addCallAdapterFactory(RxJavaCallAdapterFactory.create())
63+
.build();
64+
65+
mApiService = retrofit.create(ApiService.class);
66+
}
67+
68+
public void rebuildRetrofit() {
69+
buildRetrofit();
70+
}
6171
}

app/src/main/java/com/superbug/moi/cquptlife/ui/activity/LifeActivity.java

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,42 @@
11
package com.superbug.moi.cquptlife.ui.activity;
22

3+
import android.app.ProgressDialog;
4+
import android.content.Context;
35
import android.os.Bundle;
46
import android.support.design.widget.FloatingActionButton;
57
import android.support.v4.widget.SwipeRefreshLayout;
8+
import android.support.v7.app.AlertDialog;
9+
import android.support.v7.view.ContextThemeWrapper;
610
import android.support.v7.widget.CardView;
711
import android.support.v7.widget.LinearLayoutManager;
812
import android.support.v7.widget.RecyclerView;
913
import android.support.v7.widget.Toolbar;
1014
import android.util.Log;
1115
import android.view.KeyEvent;
16+
import android.view.LayoutInflater;
1217
import android.view.Menu;
1318
import android.view.MenuItem;
1419
import android.view.View;
1520
import android.widget.EditText;
1621
import android.widget.TextView;
22+
import android.widget.Toast;
1723

1824
import com.superbug.moi.cquptlife.R;
1925
import com.superbug.moi.cquptlife.app.BaseActivity;
26+
import com.superbug.moi.cquptlife.config.API;
27+
import com.superbug.moi.cquptlife.model.RequestManager;
2028
import com.superbug.moi.cquptlife.presenter.LifePresenter;
2129
import com.superbug.moi.cquptlife.ui.adapter.LifeAdapter;
2230
import com.superbug.moi.cquptlife.ui.vu.ILifeVu;
2331
import com.superbug.moi.cquptlife.util.Animations.SearchAnimation;
2432
import com.superbug.moi.cquptlife.util.KeyboardUtil;
33+
import com.superbug.moi.cquptlife.util.SPUtils;
2534
import com.superbug.moi.cquptlife.util.Utils;
2635

2736
import butterknife.Bind;
2837
import butterknife.ButterKnife;
2938
import butterknife.OnClick;
39+
import butterknife.OnLongClick;
3040

3141
public class LifeActivity extends BaseActivity implements ILifeVu, SwipeRefreshLayout.OnRefreshListener {
3242

@@ -136,6 +146,42 @@ void onFabClick() {
136146
}
137147
}
138148

149+
@OnLongClick(R.id.fab)
150+
boolean onFabLongClick() {
151+
Context dialogThemeContext = new ContextThemeWrapper(this, R.style.AppTheme_Dialog);
152+
AlertDialog.Builder builder = new AlertDialog.Builder(dialogThemeContext);
153+
LayoutInflater inflater = getLayoutInflater();
154+
View dialogView = inflater.inflate(R.layout.dialog_jwzx_end, null);
155+
EditText endEditText = (EditText) dialogView.findViewById(R.id.et_jwzx_end);
156+
ProgressDialog progress = new ProgressDialog(dialogThemeContext);
157+
progress.setMessage(getString(R.string.loading));
158+
Thread rebuildRetrofit = new Thread(() -> {
159+
RequestManager.getInstance().rebuildRetrofit();
160+
progress.dismiss();
161+
});
162+
String origEnd = (String) SPUtils.get(this, "jwzxEnd", API.URL.END);
163+
endEditText.setText(origEnd);
164+
builder.setView(dialogView)
165+
.setPositiveButton(R.string.go, (dialog, which) -> {
166+
progress.show();
167+
String end = endEditText.getText().toString();
168+
if (!end.matches("^https?://[.a-zA-Z0-9]+(:[0-9]+)?$")) {
169+
Toast.makeText(this, R.string.malformed_end, Toast.LENGTH_SHORT).show();
170+
return;
171+
}
172+
SPUtils.put(LifeActivity.this, "jwzxEnd", end);
173+
rebuildRetrofit.start();
174+
})
175+
.setNegativeButton(R.string.cancel, (dialog2, which) -> {})
176+
.setNeutralButton(R.string.reset_default, (dialog3, which) -> {
177+
progress.show();
178+
SPUtils.put(LifeActivity.this, "jwzxEnd", API.URL.END);
179+
rebuildRetrofit.start();
180+
})
181+
.create().show();
182+
return true;
183+
}
184+
139185
@Override
140186
public String getLifeInfo() {
141187
searchInfo = search.getText().toString();
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
3+
android:orientation="vertical"
4+
android:layout_width="match_parent"
5+
android:layout_height="match_parent"
6+
android:padding="15dp">
7+
8+
<TextView
9+
android:layout_width="match_parent"
10+
android:layout_height="wrap_content"
11+
android:textSize="23sp"
12+
android:textColor="#000000"
13+
android:text="@string/where_is_jwzx"/>
14+
15+
<EditText
16+
android:id="@+id/et_jwzx_end"
17+
android:layout_width="match_parent"
18+
android:layout_height="wrap_content"
19+
android:inputType="textNoSuggestions"
20+
android:textColor="#000000"
21+
android:textColorHint="#c2c2c2"
22+
android:hint="http://jwzx.cqupt.edu.cn"/>
23+
24+
</LinearLayout>

app/src/main/res/values-en/strings.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,4 +31,9 @@
3131
<string name="search_class_room">Search Class</string>
3232
<string name="search_teacher">Search Teacher</string>
3333
<string name="search_lesson">Search Lesson</string>
34+
<string name="cancel">Cancel</string>
35+
<string name="go">Let\'s Go</string>
36+
<string name="malformed_end">Malformed URL!</string>
37+
<string name="reset_default">Reset</string>
38+
<string name="where_is_jwzx">How can I go to jwzx?</string>
3439
</resources>

app/src/main/res/values/strings.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,4 +30,9 @@
3030
<string name="all">全部</string>
3131
<string name="student">学生</string>
3232
<string name="teacher">教师</string>
33+
<string name="where_is_jwzx">教务在线怎么走?</string>
34+
<string name="go">我们走</string>
35+
<string name="cancel">算了</string>
36+
<string name="malformed_end">这不是我想去的地方</string>
37+
<string name="reset_default">恢复默认</string>
3338
</resources>

app/src/main/res/values/styles.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,4 +24,9 @@
2424
<item name="fontPath">fonts/font_fangzheng_light.TTF</item>
2525
</style>
2626

27+
<style name="AppTheme.Dialog" parent="AppTheme">
28+
<item name="android:background">#FFFFFF</item>
29+
<item name="android:textColor">#000000</item>
30+
</style>
31+
2732
</resources>

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ buildscript {
66
mavenCentral()
77
}
88
dependencies {
9-
classpath 'com.android.tools.build:gradle:2.3.0'
9+
classpath 'com.android.tools.build:gradle:2.3.1'
1010
classpath 'me.tatarka:gradle-retrolambda:3.2.3'
1111
// NOTE: Do not place your application dependencies here; they belong
1212
// in the individual module build.gradle files

0 commit comments

Comments
 (0)