diff --git a/app/src/main/java/com/gh/common/util/GameViewUtils.java b/app/src/main/java/com/gh/common/util/GameViewUtils.java index be9ab49b9e..850a5536a9 100644 --- a/app/src/main/java/com/gh/common/util/GameViewUtils.java +++ b/app/src/main/java/com/gh/common/util/GameViewUtils.java @@ -99,23 +99,21 @@ public class GameViewUtils { try { long today = format.parse(format.format(new Date())).getTime(); long day = Long.parseLong(testTime + "000"); - Calendar calendar = Calendar.getInstance(TimeZone - .getTimeZone("Asia/Shanghai")); - calendar.setTimeInMillis(day); - int hour = calendar.get(Calendar.HOUR_OF_DAY); + SimpleDateFormat timeFormat = new SimpleDateFormat("HH:mm", Locale.CHINA); + String time = timeFormat.format(day); + if (day >= today && day < today + 86400 * 1000) { - testDate = "今天" + hour + "点"; + testDate = "今天 " + time; } else if (day >= today + 86400 * 1000 && day < today + 86400 * 1000 * 2) { - testDate = "明天" + hour + "点"; + testDate = "明天 " + time; } else if (day >= today + 86400 * 1000 * 2 && day < today + 86400 * 1000 * 3) { - testDate = "后天" + hour + "点"; + testDate = "后天 " + time; } else if (day >= today - 86400 * 1000 && day < today) { - testDate = "昨天" + hour + "点"; + testDate = "昨天 " + time; } else { - format = new SimpleDateFormat("MM-dd", Locale.CHINA); - testDate = format.format(day) + " " + hour + "点"; + testDate = new SimpleDateFormat("MM-dd HH:mm", Locale.CHINA).format(day); } return testDate; } catch (ParseException e) { diff --git a/app/src/main/java/com/gh/common/util/LoginDeviceUtils.java b/app/src/main/java/com/gh/common/util/LoginDeviceUtils.java new file mode 100644 index 0000000000..773df0589a --- /dev/null +++ b/app/src/main/java/com/gh/common/util/LoginDeviceUtils.java @@ -0,0 +1,117 @@ +package com.gh.common.util; + +import android.content.Context; +import android.net.ConnectivityManager; +import android.net.NetworkInfo; +import android.net.wifi.WifiManager; +import android.os.Build; +import android.provider.Settings; +import android.telephony.TelephonyManager; + +import com.gh.gamecenter.kuaichuan.WifiMgr; +import com.lightgame.utils.Util_System_Phone_State; + +import org.json.JSONException; +import org.json.JSONObject; + +import java.net.Inet4Address; +import java.net.InetAddress; +import java.net.NetworkInterface; +import java.net.SocketException; +import java.util.Enumeration; + +import static android.os.Build.MANUFACTURER; +import static android.os.Build.MODEL; + +/** + * Created by khy on 2/08/17. + */ + +public class LoginDeviceUtils { + + public static JSONObject getDevice(Context context) throws JSONException { + JSONObject object = new JSONObject(); + object.put("os", "Android"); + object.put("imei", Util_System_Phone_State.getDeviceId(context)); + object.put("mac", ((WifiManager) context.getSystemService(Context.WIFI_SERVICE)).getConnectionInfo().getMacAddress()); + object.put("model", MODEL); + object.put("manufacturer", MANUFACTURER); + object.put("android_id", Settings.Secure.getString(context.getContentResolver(), Settings.Secure.ANDROID_ID)); + object.put("android_sdk", Build.VERSION.SDK_INT); + object.put("android_version", android.os.Build.VERSION.RELEASE); + object.put("ip", getIPAddress(context)); + object.put("network", getNetwork(context)); + return object; + } + + private static String getIPAddress(Context context) { + NetworkInfo info = ((ConnectivityManager) context + .getSystemService(Context.CONNECTIVITY_SERVICE)).getActiveNetworkInfo(); + if (info != null && info.isConnected()) { + if (info.getType() == ConnectivityManager.TYPE_MOBILE) {//当前使用2G/3G/4G网络 + try { + for (Enumeration en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements(); ) { + NetworkInterface intf = en.nextElement(); + for (Enumeration enumIpAddr = intf.getInetAddresses(); enumIpAddr.hasMoreElements(); ) { + InetAddress inetAddress = enumIpAddr.nextElement(); + if (!inetAddress.isLoopbackAddress() && inetAddress instanceof Inet4Address) { + return inetAddress.getHostAddress(); + } + } + } + } catch (SocketException e) { + e.printStackTrace(); + } + + } else if (info.getType() == ConnectivityManager.TYPE_WIFI) {//当前使用无线网络 + return WifiMgr.getInstance(context).getCurrentIpAddress(); + } + } else { + //当前无网络连接,请在设置中打开网络 + } + return null; + } + + private static String getNetwork(Context context) { + NetworkInfo info = ((ConnectivityManager) context + .getSystemService(Context.CONNECTIVITY_SERVICE)).getActiveNetworkInfo(); + if (info != null && info.isConnected()) { + int typeMobile = info.getType(); + if (typeMobile == ConnectivityManager.TYPE_WIFI) { + return "WIFI"; + } else if (typeMobile == ConnectivityManager.TYPE_MOBILE) { + String status; + switch (typeMobile) { + case TelephonyManager.NETWORK_TYPE_GPRS: + case TelephonyManager.NETWORK_TYPE_EDGE: + case TelephonyManager.NETWORK_TYPE_CDMA: + case TelephonyManager.NETWORK_TYPE_1xRTT: + case TelephonyManager.NETWORK_TYPE_IDEN: + status = "2G"; + break; + case TelephonyManager.NETWORK_TYPE_UMTS: + case TelephonyManager.NETWORK_TYPE_EVDO_0: + case TelephonyManager.NETWORK_TYPE_EVDO_A: + case TelephonyManager.NETWORK_TYPE_HSDPA: + case TelephonyManager.NETWORK_TYPE_HSUPA: + case TelephonyManager.NETWORK_TYPE_HSPA: + case TelephonyManager.NETWORK_TYPE_EVDO_B: + case TelephonyManager.NETWORK_TYPE_EHRPD: + case TelephonyManager.NETWORK_TYPE_HSPAP: + status = "3G"; + break; + case TelephonyManager.NETWORK_TYPE_LTE: + status = "4G"; + break; + default: + status = "未知"; + break; + } + return status; + } + } + + return null; + } + +} diff --git a/app/src/main/java/com/gh/common/util/LoginUtils.java b/app/src/main/java/com/gh/common/util/LoginUtils.java index 6068cd6734..3c84b8061d 100644 --- a/app/src/main/java/com/gh/common/util/LoginUtils.java +++ b/app/src/main/java/com/gh/common/util/LoginUtils.java @@ -88,6 +88,13 @@ public class LoginUtils { // 登录前,做好body判断 public static void login(final Context context, final JSONObject content, final LoginTag loginTag, final onLoginCallBackListener listener) { + try { + JSONObject device = LoginDeviceUtils.getDevice(context.getApplicationContext()); + content.put("device", device); + } catch (JSONException e) { + e.printStackTrace(); + } + RequestBody body = RequestBody.create(MediaType.parse("application/json"), content.toString()); Observable observable; @@ -203,7 +210,8 @@ public class LoginUtils { .logout(loginToken.getAccessToken().getValue()) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new Response(){}); + .subscribe(new Response() { + }); } // 清除本地用户相关信息 @@ -216,7 +224,7 @@ public class LoginUtils { GetLoginDataUtils.getInstance(context).QQLogout(); } - + // 检查本地是否有缓存token,有则马上登录 public static void checkLogin(Context context, onLoginCallBackListener listener) { LoginResponseEntity loginToken = getLoginToken(context); diff --git a/app/src/main/java/com/gh/common/view/Concern_LinearLayout.java b/app/src/main/java/com/gh/common/view/Concern_LinearLayout.java index 6d46c41fd6..f4d70ca5ad 100644 --- a/app/src/main/java/com/gh/common/view/Concern_LinearLayout.java +++ b/app/src/main/java/com/gh/common/view/Concern_LinearLayout.java @@ -30,7 +30,7 @@ public class Concern_LinearLayout extends LinearLayout { concern_rv_recommend.setLayoutParams(lparams); invalidate(); if (concern_rv_recommend.getHeight() < height) { - postDelayed(show, 10); + postDelayed(show, 5); } else { concern_iv_delete.setImageResource(R.drawable.concern_down); } @@ -49,7 +49,7 @@ public class Concern_LinearLayout extends LinearLayout { concern_rv_recommend.setLayoutParams(lparams); invalidate(); if (concern_rv_recommend.getHeight() > 0) { - postDelayed(hide, 10); + postDelayed(hide, 5); } else { concern_rv_recommend.setVisibility(View.GONE); concern_iv_delete.setImageResource(R.drawable.concern_up); @@ -60,7 +60,7 @@ public class Concern_LinearLayout extends LinearLayout { public Concern_LinearLayout(Context context, AttributeSet attrs) { super(context, attrs); height = DisplayUtils.dip2px(context, 150); - distance = DisplayUtils.dip2px(context, 6); + distance = DisplayUtils.dip2px(context, 8); } @Override diff --git a/app/src/main/java/com/gh/gamecenter/LoginActivity.java b/app/src/main/java/com/gh/gamecenter/LoginActivity.java index 335ad267fd..ba2d53e1f4 100644 --- a/app/src/main/java/com/gh/gamecenter/LoginActivity.java +++ b/app/src/main/java/com/gh/gamecenter/LoginActivity.java @@ -206,14 +206,15 @@ public class LoginActivity extends BaseActivity implements GetLoginDataUtils.OnL private void loginByMobile() { String code = mLoginPassEt.getText().toString().trim(); String phoneNum = mLoginPhoneEt.getText().toString().trim(); - if (TextUtils.isEmpty(mServiceId)) { - toast("验证码错误,请重新获取"); + + if (TextUtils.isEmpty(phoneNum)) { + toast("手机号码不能为空"); return; } else if (TextUtils.isEmpty(code)) { toast("验证码不能为空"); return; - } else if (TextUtils.isEmpty(phoneNum)) { - toast("手机号码不能为空"); + } else if (TextUtils.isEmpty(mServiceId)) { + toast("验证码错误,请重新获取"); return; } diff --git a/app/src/main/java/com/gh/gamecenter/collection/ArticleAdapter.java b/app/src/main/java/com/gh/gamecenter/collection/ArticleAdapter.java index 43a8b7f8ef..5e98dfed6b 100644 --- a/app/src/main/java/com/gh/gamecenter/collection/ArticleAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/collection/ArticleAdapter.java @@ -256,7 +256,9 @@ public class ArticleAdapter extends BaseRecyclerAdapter { NewsDetailActivity.startNewsDetailByCollection(mContext, newsEntity, "(收藏:文章)"); } }); - ImageUtils.Companion.display(viewHolder.thumb, newsEntity.getThumbnail().getUrl().get(0)); + if (newsEntity.getThumbnail() != null && newsEntity.getThumbnail().getUrl() != null) { + ImageUtils.Companion.display(viewHolder.thumb, newsEntity.getThumbnail().getUrl().get(0)); + } viewHolder.title.setText(newsEntity.getTitle()); int views = newsEntity.getViews(); if (views == 0) { diff --git a/app/src/main/java/com/gh/gamecenter/collection/ArticleFragment.java b/app/src/main/java/com/gh/gamecenter/collection/ArticleFragment.java index f5ebd158c1..705c999e76 100644 --- a/app/src/main/java/com/gh/gamecenter/collection/ArticleFragment.java +++ b/app/src/main/java/com/gh/gamecenter/collection/ArticleFragment.java @@ -13,6 +13,7 @@ import com.gh.common.view.VerticalItemDecoration; import com.gh.gamecenter.R; import butterknife.BindView; +import butterknife.OnClick; /** * Created by khy on 18/07/17. @@ -59,6 +60,14 @@ public class ArticleFragment extends BaseFragment implements SwipeRefreshLayout. mAdapter.addList(0); } + @OnClick(R.id.reuse_no_connection) + public void reconnection() { // 重新连接 + mRecyclerView.setVisibility(View.VISIBLE); + mNoConn.setVisibility(View.GONE); + view.postDelayed(runnable, 1000); + } + + @Override public void loadDone() { // 数据加载成功回调 mRefreshLayout.setRefreshing(false); diff --git a/app/src/main/java/com/gh/gamecenter/collection/ToolsFragment.java b/app/src/main/java/com/gh/gamecenter/collection/ToolsFragment.java index 6273e17b0f..0f6890bf76 100644 --- a/app/src/main/java/com/gh/gamecenter/collection/ToolsFragment.java +++ b/app/src/main/java/com/gh/gamecenter/collection/ToolsFragment.java @@ -13,6 +13,7 @@ import com.gh.common.view.VerticalItemDecoration; import com.gh.gamecenter.R; import butterknife.BindView; +import butterknife.OnClick; /** * Created by khy on 18/07/17. @@ -59,6 +60,13 @@ public class ToolsFragment extends BaseFragment implements SwipeRefreshLayout.On mAdapter.addList(0); } + @OnClick(R.id.reuse_no_connection) + public void reconnection() { // 重新连接 + mRecyclerView.setVisibility(View.VISIBLE); + mNoConn.setVisibility(View.GONE); + view.postDelayed(runnable, 1000); + } + @Override public void loadDone() { // 数据加载成功回调 diff --git a/app/src/main/java/com/gh/gamecenter/db/CollectionDao.java b/app/src/main/java/com/gh/gamecenter/db/CollectionDao.java index da8b541708..ed79af7b9d 100644 --- a/app/src/main/java/com/gh/gamecenter/db/CollectionDao.java +++ b/app/src/main/java/com/gh/gamecenter/db/CollectionDao.java @@ -4,7 +4,6 @@ import android.content.Context; import com.gh.gamecenter.db.info.CollectionInfo; import com.j256.ormlite.dao.Dao; -import com.lightgame.utils.Utils; import java.sql.SQLException; import java.util.List; @@ -48,9 +47,6 @@ public class CollectionDao { public boolean isExist(String id) { try { List collectionInfos = dao.queryForAll(); - for (CollectionInfo collectionInfo : collectionInfos) { - Utils.log(collectionInfo.getCollectionId() + "===" + id); - } if (dao.queryForId(id) != null) return true; } catch (SQLException e) { e.printStackTrace(); @@ -58,4 +54,12 @@ public class CollectionDao { return false; } + + public void clean() { + try { + dao.deleteBuilder().delete(); + } catch (SQLException e) { + e.printStackTrace(); + } + } } diff --git a/app/src/main/java/com/gh/gamecenter/db/LibaoDao.java b/app/src/main/java/com/gh/gamecenter/db/LibaoDao.java index c721604f0b..502ba83b40 100644 --- a/app/src/main/java/com/gh/gamecenter/db/LibaoDao.java +++ b/app/src/main/java/com/gh/gamecenter/db/LibaoDao.java @@ -180,6 +180,14 @@ public class LibaoDao { return false; } + public void clean() { + try { + dao.deleteBuilder().delete(); + } catch (SQLException e) { + e.printStackTrace(); + } + } + /** * 最后礼包领取/淘号的时间 */ diff --git a/app/src/main/java/com/gh/gamecenter/db/VoteDao.java b/app/src/main/java/com/gh/gamecenter/db/VoteDao.java index baf8896ce7..eef91c5ff5 100644 --- a/app/src/main/java/com/gh/gamecenter/db/VoteDao.java +++ b/app/src/main/java/com/gh/gamecenter/db/VoteDao.java @@ -50,4 +50,12 @@ public class VoteDao { return false; } + public void clean() { + try { + dao.deleteBuilder().delete(); + } catch (SQLException e) { + e.printStackTrace(); + } + } + } diff --git a/app/src/main/java/com/gh/gamecenter/news/News2FragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/news/News2FragmentAdapter.java index 715f83ffde..efcc9d0bee 100644 --- a/app/src/main/java/com/gh/gamecenter/news/News2FragmentAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/news/News2FragmentAdapter.java @@ -687,10 +687,12 @@ public class News2FragmentAdapter extends BaseRecyclerAdapter { intent.putExtra(EntranceUtils.KEY_ENTRANCE, "(资讯:关注[2-4])"); fragment.startActivityForResult(intent, 0x125); } else { - Intent intent = new Intent(mContext, NewsDetailActivity.class); - intent.putExtra("newsId", concernEntity.getId()); - intent.putExtra(EntranceUtils.KEY_ENTRANCE, "(资讯:关注[2-4])"); +// Intent intent = new Intent(mContext, NewsDetailActivity.class); +// intent.putExtra("newsId", concernEntity.getId()); +// intent.putExtra(EntranceUtils.KEY_ENTRANCE, "(资讯:关注[2-4])"); + Intent intent = NewsDetailActivity.getIntentById(mContext, concernEntity.getId(), "(资讯:关注[2-4])"); fragment.startActivityForResult(intent, 0x125); + } } diff --git a/app/src/main/java/com/gh/gamecenter/newsdetail/NewsDetailContentViewHolder.java b/app/src/main/java/com/gh/gamecenter/newsdetail/NewsDetailContentViewHolder.java index 715dfe5a17..98830a4d50 100644 --- a/app/src/main/java/com/gh/gamecenter/newsdetail/NewsDetailContentViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/newsdetail/NewsDetailContentViewHolder.java @@ -19,11 +19,11 @@ public class NewsDetailContentViewHolder extends RecyclerView.ViewHolder { public NewsDetailContentViewHolder(View itemView) { super(itemView); - itemView.requestFocus(); newsdetail_item_tv_title = (TextView) itemView.findViewById(R.id.newsdetail_item_tv_title); newsdetail_item_tv_time = (TextView) itemView.findViewById(R.id.newsdetail_item_tv_time); newsdetail_item_tv_author = (TextView) itemView.findViewById(R.id.newsdetail_item_tv_author); newsdetail_item_wv_content = (WebView) itemView.findViewById(R.id.newsdetail_item_wv_content); + itemView.requestFocus(); } } diff --git a/app/src/main/java/com/gh/gamecenter/personal/PersonalFragment.java b/app/src/main/java/com/gh/gamecenter/personal/PersonalFragment.java index 77d2cf7259..fa4739496d 100644 --- a/app/src/main/java/com/gh/gamecenter/personal/PersonalFragment.java +++ b/app/src/main/java/com/gh/gamecenter/personal/PersonalFragment.java @@ -14,6 +14,7 @@ import com.gh.base.AppController; import com.gh.base.fragment.BaseFragment; import com.gh.common.util.DataCollectionUtils; import com.gh.common.util.DataUtils; +import com.gh.common.util.DialogUtils; import com.gh.common.util.GetLoginDataUtils; import com.gh.common.util.LoginUtils; import com.gh.common.util.PackageUtils; @@ -26,6 +27,7 @@ import com.gh.gamecenter.R; import com.gh.gamecenter.SettingActivity; import com.gh.gamecenter.ShareGhActivity; import com.gh.gamecenter.SuggestSelectActivity; +import com.gh.gamecenter.SuggestionActivity; import com.gh.gamecenter.UserInfoActivity; import com.gh.gamecenter.entity.AppEntity; import com.gh.gamecenter.entity.UserInfoEntity; @@ -172,6 +174,14 @@ public class PersonalFragment extends BaseFragment implements GetLoginDataUtils. case R.id.personal_login_wechat: if (mUserInfoEntity != null) { toast("签到"); + + DialogUtils.showWarningDialog(getContext(), "签到", "签到暂未开放,如有建议请反馈给我们,万分感谢!" + , "关闭", "反馈", new DialogUtils.ConfirmListener() { + @Override + public void onConfirm() { + SuggestionActivity.startSuggestionActivity(getContext(), 2, null, "签到功能的建议:"); + } + }, null); } else { GetLoginDataUtils.getInstance(getActivity()).WCLogin(this); } diff --git a/app/src/main/res/layout/fragment_personal.xml b/app/src/main/res/layout/fragment_personal.xml index 5f2a595142..c0324d8beb 100644 --- a/app/src/main/res/layout/fragment_personal.xml +++ b/app/src/main/res/layout/fragment_personal.xml @@ -19,7 +19,7 @@ android:id = "@+id/me_ll_info" android:layout_width = "match_parent" android:layout_height = "wrap_content" - android:background="@android:color/white"> + android:background = "@android:color/white" > + android:background = "@android:color/white" + android:paddingBottom = "15dp" + android:paddingTop = "55dp" > + android:visibility = "gone" /> + android:visibility = "gone" /> + android:textSize = "12sp" + android:visibility = "gone" />