From 856923af7b0e8427560fe7ff4b9230a3ea905dbc Mon Sep 17 00:00:00 2001 From: genshen Date: Thu, 12 Oct 2017 22:44:31 +0800 Subject: [PATCH] :sparkles:finished development^Cf campus card consumption --- app/build.gradle | 2 +- app/proguard-rules.pro | 1 + .../fragments/CampusNetworkFragment.java | 12 ++- .../main/java/me/gensh/helloustb/About.java | 24 +++++- .../helloustb/CampusCardConsumption.java | 21 +++-- .../views/RecyclerViewWithEmptySupport.java | 4 + app/src/main/res/drawable-xxhdpi/play_1.png | Bin 0 -> 3577 bytes app/src/main/res/drawable-xxhdpi/play_2.png | Bin 0 -> 3506 bytes app/src/main/res/drawable-xxhdpi/play_3.png | Bin 0 -> 2954 bytes app/src/main/res/drawable-xxhdpi/play_4.png | Bin 0 -> 3979 bytes app/src/main/res/drawable-xxhdpi/play_5.png | Bin 0 -> 3561 bytes app/src/main/res/drawable-xxhdpi/play_6.png | Bin 0 -> 3565 bytes app/src/main/res/drawable-xxhdpi/play_7.png | Bin 0 -> 3733 bytes app/src/main/res/drawable-xxhdpi/play_8.png | Bin 0 -> 3245 bytes .../main/res/drawable/ic_nodata_common.xml | 81 ++++++++++++++++++ app/src/main/res/layout/content_about.xml | 19 ++-- app/src/main/res/layout/list_empty_view.xml | 26 ++++-- .../res/layout/recycle_view_campus_card.xml | 13 +-- app/src/main/res/values-zh/strings.xml | 11 +++ app/src/main/res/values/dimens.xml | 4 + app/src/main/res/values/strings.xml | 11 +++ .../me/gensh/helloustb/http/HttpClients.java | 2 + 22 files changed, 196 insertions(+), 35 deletions(-) create mode 100644 app/src/main/res/drawable-xxhdpi/play_1.png create mode 100644 app/src/main/res/drawable-xxhdpi/play_2.png create mode 100644 app/src/main/res/drawable-xxhdpi/play_3.png create mode 100644 app/src/main/res/drawable-xxhdpi/play_4.png create mode 100644 app/src/main/res/drawable-xxhdpi/play_5.png create mode 100644 app/src/main/res/drawable-xxhdpi/play_6.png create mode 100644 app/src/main/res/drawable-xxhdpi/play_7.png create mode 100644 app/src/main/res/drawable-xxhdpi/play_8.png create mode 100644 app/src/main/res/drawable/ic_nodata_common.xml diff --git a/app/build.gradle b/app/build.gradle index ea4889a..9f58f4e 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -12,7 +12,7 @@ android { targetSdkVersion 26 versionCode 112 versionName "2.1.0" - buildConfigField "String", "APP_BUILD_TIME", "\"Mon, 09 October. 2017 \"" // build time + buildConfigField "String", "APP_BUILD_TIME", "\"Fri, 13 October. 2017 \"" // build time testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" externalNativeBuild { cmake { diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro index 0977e9f..bff6596 100644 --- a/app/proguard-rules.pro +++ b/app/proguard-rules.pro @@ -58,6 +58,7 @@ public static java.lang.String TABLENAME; -dontwarn okhttp3.** -dontwarn okio.** -dontwarn javax.annotation.** + -keepnames class okhttp3.internal.publicsuffix.PublicSuffixDatabase #addtionally added to solve campus card consumption bug ### https://github.com/Yalantis/uCrop -dontwarn com.yalantis.ucrop** diff --git a/app/src/main/java/me/gensh/fragments/CampusNetworkFragment.java b/app/src/main/java/me/gensh/fragments/CampusNetworkFragment.java index df8c8c9..dbf0256 100644 --- a/app/src/main/java/me/gensh/fragments/CampusNetworkFragment.java +++ b/app/src/main/java/me/gensh/fragments/CampusNetworkFragment.java @@ -21,6 +21,7 @@ import java.io.RandomAccessFile; import java.text.DecimalFormat; import java.util.ArrayList; +import java.util.Arrays; import java.util.Calendar; import me.gensh.helloustb.R; @@ -143,8 +144,12 @@ private String[] getWeekAxis(Calendar calendar_now) { return new_week; } - private static float[] calcVariance(Calendar calendar_now, float today_flow) { + private float[] calcVariance(Calendar calendar_now, float today_flow) { float[] data = M(calendar_now, today_flow); + + System.out.println("<<<<<<<<<<<<<" + today_flow); + System.out.println(Arrays.toString(data)); + float[] variance = new float[DATA_LENGTH - 1]; int day_counter = calendar_now.get(Calendar.DAY_OF_MONTH) - 1; for (int i = DATA_LENGTH - 2; i >= 0; i--) { @@ -158,9 +163,10 @@ private static float[] calcVariance(Calendar calendar_now, float today_flow) { return variance; } - public static float[] M(Calendar calendar_now, float todayFlow) { + public float[] M(Calendar calendar_now, float todayFlow) { float[] flowData = new float[]{0, 0, 0, 0, 0, 0, 0, 0}; - File file = new File(FILE_PATH); + + File file = new File(getActivity().getFilesDir(), FILE_PATH); if (file.exists() && file.length() == 38) { try { RandomAccessFile random_f = new RandomAccessFile(file, "rw"); diff --git a/app/src/main/java/me/gensh/helloustb/About.java b/app/src/main/java/me/gensh/helloustb/About.java index 70783dc..c12c300 100644 --- a/app/src/main/java/me/gensh/helloustb/About.java +++ b/app/src/main/java/me/gensh/helloustb/About.java @@ -13,8 +13,11 @@ import android.support.v7.widget.Toolbar; import android.view.MenuItem; import android.view.View; +import android.widget.ImageView; import android.widget.Toast; +import java.util.Random; + import me.gensh.network.VersionCheckerTask; import me.gensh.service.ApkDownloadIntentService; import permissions.dispatcher.NeedsPermission; @@ -34,7 +37,6 @@ protected void onCreate(Bundle savedInstanceState) { setContentView(R.layout.activity_about); Toolbar toolbar = findViewById(R.id.toolbar); setSupportActionBar(toolbar); - getSupportActionBar().setDisplayShowHomeEnabled(true); setVersion(); } @@ -80,7 +82,7 @@ public void onAttemptToDownload(long packageSize, int newVersionCode, String new @NeedsPermission({Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE}) public void startDownload(long packageSize, int newVersionCode, String newVersionName) { Toast.makeText(this, R.string.update_downloading, Toast.LENGTH_SHORT).show(); - ApkDownloadIntentService.startActionDownloadApk(this, packageSize, newVersionCode,newVersionName); + ApkDownloadIntentService.startActionDownloadApk(this, packageSize, newVersionCode, newVersionName); } @OnShowRationale({Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE}) @@ -118,9 +120,27 @@ public void onRequestPermissionsResult(int requestCode, @NonNull String[] permis AboutPermissionsDispatcher.onRequestPermissionsResult(this, requestCode, grantResults); } + final static private short TURN = 4; + final static private short ICON_COUNT = 8; + final static private int[] icons = {R.drawable.play_1, R.drawable.play_2, R.drawable.play_3, + R.drawable.play_4, R.drawable.play_5, R.drawable.play_6, R.drawable.play_7, R.drawable.play_8}; + private short iconClickCounter = 0; + Random random = new Random(); + public void clickHandle(View view) { int id = view.getId(); switch (id) { + case R.id.about_header_container: + iconClickCounter++; + if (iconClickCounter == TURN) { + ImageView appIcon = findViewById(R.id.app_icon); + int index = random.nextInt(ICON_COUNT); //ic_launcher is also needed ? + appIcon.setImageResource(icons[index]); // 0 to ICON_COUNT-1 + iconClickCounter = 0; + } /*else { //1,2,3,TURN-1 + Snackbar.make(view, getString(R.string.about_play_snack, TURN - iconClickCounter), Snackbar.LENGTH_SHORT).show(); + }*/ + break; case R.id.check_update: checker = new VersionCheckerTask(getString(R.string.UpdateAddress), this, false); checker.execute(); diff --git a/app/src/main/java/me/gensh/helloustb/CampusCardConsumption.java b/app/src/main/java/me/gensh/helloustb/CampusCardConsumption.java index c7ed4be..9ba45f8 100644 --- a/app/src/main/java/me/gensh/helloustb/CampusCardConsumption.java +++ b/app/src/main/java/me/gensh/helloustb/CampusCardConsumption.java @@ -56,7 +56,6 @@ protected void onCreate(Bundle savedInstanceState) { mRecyclerView.setLayoutManager(new LinearLayoutManager(this)); mAdapter = new CampusCardAdapter(campusCardDataList); mRecyclerView.setAdapter(mAdapter); - mRecyclerView.setEmptyView(R.layout.list_empty_view, (ViewGroup) findViewById(R.id.recycle_view_container), true); fab.setOnClickListener(new View.OnClickListener() { @Override @@ -107,6 +106,11 @@ public void onOk(int what, @NonNull ArrayList data) { attemptHttpRequest(HttpClients.HTTP_GET, getString(R.string.campus_card_query_link), Tags.E, 0x102, Tags.GET.ID_E_CAMPUS_CARD, HttpClients.CHARSET_BTF8, null, false); } else if (what == 0x102) { dismissProgressDialog(); + /** todo bugs at:{@link HttpClients#newInstance }*/ +// if (campusCardDataList != null) { +// campusCardDataList.clear(); +// } + int size = data.size() / 4; for (int i = 0; i < size; i++) { if (data.get(4 * i).isEmpty() || data.get(4 * i + 1).isEmpty() || @@ -114,7 +118,6 @@ public void onOk(int what, @NonNull ArrayList data) { //filter empty content. continue; } - System.out.println(data.get(4 * i)); SparseArray stringSparseArray = new SparseArray<>(); stringSparseArray.put(CAMPUS_CARD_CONSUME_TAG_TIME, data.get(4 * i)); stringSparseArray.put(CAMPUS_CARD_CONSUME_TAG_PLACE, data.get(4 * i + 1)); @@ -122,6 +125,9 @@ public void onOk(int what, @NonNull ArrayList data) { stringSparseArray.put(CAMPUS_CARD_CONSUME_TAG_LEFT, data.get(4 * i + 3)); campusCardDataList.add(stringSparseArray); } + if (!mRecyclerView.hasEmptyView()) { + mRecyclerView.setEmptyView(R.layout.list_empty_view, (ViewGroup) findViewById(R.id.recycle_view_container), false); + } mAdapter.notifyDataSetChanged(); } } @@ -130,15 +136,20 @@ public void onOk(int what, @NonNull ArrayList data) { public void onPasswordError() { dismissProgressDialog(); Snackbar.make(fab, R.string.error_password, Snackbar.LENGTH_LONG).setAction("Action", null).show(); + if (!mRecyclerView.hasEmptyView()) { + mRecyclerView.setEmptyView(R.layout.list_empty_view, (ViewGroup) findViewById(R.id.recycle_view_container), false); + } } @Override public void onTimeoutError() { dismissProgressDialog(); Snackbar.make(fab, R.string.connection_timeout, Snackbar.LENGTH_LONG).setAction("Action", null).show(); + if (!mRecyclerView.hasEmptyView()) { + mRecyclerView.setEmptyView(R.layout.list_empty_view, (ViewGroup) findViewById(R.id.recycle_view_container), false); + } } - // private class CampusCardAdapter extends RecyclerViewWithEmptySupport.Adapter { List> data; @@ -156,9 +167,9 @@ public CampusCardAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int vie public void onBindViewHolder(CampusCardAdapter.ViewHolder holder, int position) { SparseArray item = data.get(position); holder.consumePlace.setText(item.get(CAMPUS_CARD_CONSUME_TAG_PLACE)); + holder.consumeMoney.setText(getString(R.string.campus_card_consum_moey, item.get(CAMPUS_CARD_CONSUME_TAG_MONEY))); + holder.consumeLeft.setText(getString(R.string.campus_card_consum_left, item.get(CAMPUS_CARD_CONSUME_TAG_LEFT))); holder.consumeTime.setText(item.get(CAMPUS_CARD_CONSUME_TAG_TIME)); - holder.consumeMoney.setText(item.get(CAMPUS_CARD_CONSUME_TAG_MONEY)); - holder.consumeLeft.setText(item.get(CAMPUS_CARD_CONSUME_TAG_LEFT)); holder.tagImage.setImageResource(StringUtils.getConsumptionTypeResourceByPlace(item.get(CAMPUS_CARD_CONSUME_TAG_PLACE))); } diff --git a/app/src/main/java/me/gensh/views/RecyclerViewWithEmptySupport.java b/app/src/main/java/me/gensh/views/RecyclerViewWithEmptySupport.java index 2abeee6..a75b1ba 100644 --- a/app/src/main/java/me/gensh/views/RecyclerViewWithEmptySupport.java +++ b/app/src/main/java/me/gensh/views/RecyclerViewWithEmptySupport.java @@ -89,4 +89,8 @@ public void setEmptyView(@LayoutRes int emptyViewLayout, ViewGroup parent, boole this.emptyView = view; checkIfEmpty(); } + + public boolean hasEmptyView() { + return emptyView != null; + } } diff --git a/app/src/main/res/drawable-xxhdpi/play_1.png b/app/src/main/res/drawable-xxhdpi/play_1.png new file mode 100644 index 0000000000000000000000000000000000000000..cfcde0f1bb39be80e19274ea4fbf8046d73abbce GIT binary patch literal 3577 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 OXUx{h!LrtZ5ceP4t7r89 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/play_2.png b/app/src/main/res/drawable-xxhdpi/play_2.png new file mode 100644 index 0000000000000000000000000000000000000000..809e4c12dfef38d0ddff6e5d2ee1264c54afbc48 GIT binary patch literal 3506 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 W@Og(7-m9{;-(zbG&Y}qA75Oh-iB)?5 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/play_5.png b/app/src/main/res/drawable-xxhdpi/play_5.png new file mode 100644 index 0000000000000000000000000000000000000000..0af3fde80919f9e4942a096668b95ce4076015f9 GIT binary patch literal 3561 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/play_6.png b/app/src/main/res/drawable-xxhdpi/play_6.png new file mode 100644 index 0000000000000000000000000000000000000000..437548eae62e15b50fa597d8ea3e1de6a149baca GIT binary patch literal 3565 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 BunYhI literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/play_8.png b/app/src/main/res/drawable-xxhdpi/play_8.png new file mode 100644 index 0000000000000000000000000000000000000000..29dface2f8eaa4977716794be652f44458eb6684 GIT binary patch literal 3245 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 + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/content_about.xml b/app/src/main/res/layout/content_about.xml index e7378e1..62ef03b 100644 --- a/app/src/main/res/layout/content_about.xml +++ b/app/src/main/res/layout/content_about.xml @@ -13,16 +13,17 @@ android:layout_height="match_parent" android:orientation="vertical"> - - + android:layout_height="wrap_content" + android:onClick="clickHandle" + android:clickable="true" + android:paddingTop="20dp" + android:paddingBottom="20dp"> - - - + - \ No newline at end of file + android:layout_centerInParent="true" + android:text="@string/empty_common_no_data"/> + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/recycle_view_campus_card.xml b/app/src/main/res/layout/recycle_view_campus_card.xml index 14e8263..46d9ada 100644 --- a/app/src/main/res/layout/recycle_view_campus_card.xml +++ b/app/src/main/res/layout/recycle_view_campus_card.xml @@ -24,22 +24,23 @@ android:layout_height="wrap_content" /> + android:layout_below="@+id/campus_card_consume_place" /> + android:layout_below="@+id/campus_card_consume_money" /> + + android:layout_below="@+id/campus_card_consume_left" /> diff --git a/app/src/main/res/values-zh/strings.xml b/app/src/main/res/values-zh/strings.xml index 83d8328..e7112c2 100644 --- a/app/src/main/res/values-zh/strings.xml +++ b/app/src/main/res/values-zh/strings.xml @@ -97,6 +97,9 @@ 0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ 请输入登录账号 + + 暂无相关数据… + 正在后台下载更新包,下载完成后将会通知您安装 @@ -143,6 +146,7 @@ 关于 + Closer:%d 检查更新 开源许可 file:///android_asset/open_source.html @@ -198,6 +202,7 @@ 启用备用域名 + 网络请求超时,试试启用备用域名?(右上角开启). 检索 请键入检索内容 检索 @@ -401,6 +406,12 @@ 点击登陆%s 登录校园网 + + + 消费:%s + 余额:%s + + 账号管理 消息中心 diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml index 4835bcc..0cb7885 100644 --- a/app/src/main/res/values/dimens.xml +++ b/app/src/main/res/values/dimens.xml @@ -39,6 +39,10 @@ 6dp + + 150dp + 180dp + 6dp 10dp diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 1c24382..043ef83 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -98,6 +98,9 @@ 0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ Please input account + + No data here… + 正在后台下载更新包,下载完成后将会通知您安装 @@ -144,6 +147,7 @@ 关于 + Closer:%d 检查更新 开源许可 file:///android_asset/open_source.html @@ -253,6 +257,7 @@ Use alternate domain + Network request time out,maybe using alternate domain(open it at upper right corner) can helps. 检索 请键入检索内容 检索 @@ -456,6 +461,12 @@ 点击登陆%s 登录校园网 + + + Cost:%s + Left:%s + + Accounts Manager Messages diff --git a/http-ustb/src/main/java/me/gensh/helloustb/http/HttpClients.java b/http-ustb/src/main/java/me/gensh/helloustb/http/HttpClients.java index 11d9022..0afb9b0 100644 --- a/http-ustb/src/main/java/me/gensh/helloustb/http/HttpClients.java +++ b/http-ustb/src/main/java/me/gensh/helloustb/http/HttpClients.java @@ -48,6 +48,8 @@ public synchronized static HttpClients newInstance(int timeoutCon, int timeoutRe @Override public synchronized void saveFromResponse(HttpUrl url, List cookies) { cookieStore.put(url.host(), cookies); + /** todo cookie manager: put method would clear previous Cookies, + * which will lead an empty data in http://e.ustb.edu.cn/index.portal?.pn=p378_p381.*/ } @Override