From 829da5210155c8793f050132ff816b21faf95cbc Mon Sep 17 00:00:00 2001 From: kehaoyuan Date: Mon, 26 Jun 2017 18:27:36 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E6=9B=B4=E6=8D=A2=E6=96=B0=E7=89=88Dialog,?= =?UTF-8?q?=E5=BE=AE=E5=8D=9A=E8=8E=B7=E5=8F=96=E7=94=A8=E6=88=B7=E4=BF=A1?= =?UTF-8?q?=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/gh/common/util/DialogUtils.java | 58 +++++++++++++ .../java/com/gh/common/util/LoginUtils.java | 46 +++++++++- .../java/com/gh/gamecenter/LoginActivity.java | 25 +++++- .../com/gh/gamecenter/SettingActivity.java | 80 ++++++++++++------ .../gh/gamecenter/SuggestSelectActivity.java | 2 +- .../com/gh/gamecenter/ViewImageActivity.java | 11 ++- .../gamecenter/personal/PersonalFragment.java | 20 ++++- .../personal_collection_icon.png | Bin 3676 -> 3301 bytes .../drawable-hdpi/personal_message_icon.png | Bin 3183 -> 2897 bytes .../res/drawable-hdpi/personal_sign_icon.png | Bin 2821 -> 2541 bytes .../main/res/drawable-hdpi/qq_login_icon.png | Bin 3901 -> 3501 bytes app/src/main/res/layout/activity_login.xml | 1 + .../main/res/layout/activity_viewimage.xml | 2 +- app/src/main/res/layout/dialog_font_size.xml | 66 +-------------- app/src/main/res/values/styles.xml | 4 + 15 files changed, 213 insertions(+), 102 deletions(-) diff --git a/app/src/main/java/com/gh/common/util/DialogUtils.java b/app/src/main/java/com/gh/common/util/DialogUtils.java index 867e1bff6c..0cf8cca95d 100644 --- a/app/src/main/java/com/gh/common/util/DialogUtils.java +++ b/app/src/main/java/com/gh/common/util/DialogUtils.java @@ -8,12 +8,15 @@ import android.content.pm.ApplicationInfo; import android.content.pm.PackageInfo; import android.graphics.Bitmap; import android.os.Handler; +import android.support.v4.content.ContextCompat; +import android.support.v7.app.AlertDialog; import android.text.Html; import android.text.Spanned; import android.view.Display; import android.view.View; import android.view.Window; import android.view.WindowManager; +import android.widget.Button; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView; @@ -325,6 +328,9 @@ public class DialogUtils { public static void showWarningDialog(Context context, String title, CharSequence msg, String cancel, String confirm, final ConfirmListener cmListener, final CancelListener clListener) { + showAlertDialog(context, title, msg, cancel, confirm, cmListener, clListener); + if (true) return; // TODO TEST + if (isShow) { return; } @@ -434,6 +440,58 @@ public class DialogUtils { disclaimerDialog.show(); } + /** + * Material Design 风格弹窗 + * + * @param context + * @param title 标题 + * @param message 内容 + * @param positive 确认按钮文本 + * @param negative 取消按钮文本 + * @param cmListener 确认按钮监听 + * @param clListener 取消按钮监听 + */ + + public static void showAlertDialog(Context context, String title, CharSequence message + , String positive, String negative, final ConfirmListener cmListener, final CancelListener clListener) { + + AlertDialog alertDialog = new AlertDialog.Builder(context, R.style.GhAlertDialog) + .setTitle(title) + .setMessage(message) + .setPositiveButton(positive, new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + if (clListener != null) { + clListener.onCancel(); + } + } + }) + .setNegativeButton(negative, new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + if (cmListener != null) { + cmListener.onConfirm(); + } + } + }) + .create(); + alertDialog.show(); + + TextView mesage = (TextView) alertDialog.findViewById(android.R.id.message); + Button positiveBtn = alertDialog.getButton(android.app.AlertDialog.BUTTON_POSITIVE); + Button negativeBtn = alertDialog.getButton(android.app.AlertDialog.BUTTON_NEGATIVE); + + positiveBtn.setTextSize(13); + positiveBtn.setTextColor(ContextCompat.getColor(context, R.color.theme)); + negativeBtn.setTextSize(13); + negativeBtn.setTextColor(ContextCompat.getColor(context, R.color.theme)); + if (mesage != null) { + mesage.setTextSize(13); + mesage.setTextColor(ContextCompat.getColor(context, R.color.title)); + } + + } + public interface ConfirmListener { void onConfirm(); } 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 4a15dd4d32..44cb9787d0 100644 --- a/app/src/main/java/com/gh/common/util/LoginUtils.java +++ b/app/src/main/java/com/gh/common/util/LoginUtils.java @@ -4,6 +4,7 @@ import android.app.Activity; import android.content.Context; import android.widget.Toast; +import com.gh.base.AppController; import com.gh.common.constant.Config; import com.sina.weibo.sdk.WbSdk; import com.sina.weibo.sdk.auth.AuthInfo; @@ -23,6 +24,10 @@ import com.tencent.tauth.UiError; import org.json.JSONException; import org.json.JSONObject; +import java.io.ByteArrayOutputStream; +import java.io.InputStream; +import java.net.HttpURLConnection; +import java.net.URL; import java.text.SimpleDateFormat; /** @@ -48,7 +53,7 @@ public class LoginUtils { private LoginUtils(Context context) { mTencent = Tencent.createInstance(Config.TENCENT_APPID, context); //初始化QQ分享 mIWXAPI = WXAPIFactory.createWXAPI(context, Config.WECHAT_APPID, true); //初始化微信分享 - WbSdk.install(context,new AuthInfo(context, Config.WEIBO_APPKEY, "http://www.sina.com", SCOPE)); + WbSdk.install(context, new AuthInfo(context, Config.WEIBO_APPKEY, "http://www.sina.com", SCOPE)); mSsoHandler = new SsoHandler((Activity) context); mContext = context; Utils.log(LoginUtils.class.getSimpleName(), "initLogin"); @@ -73,7 +78,7 @@ public class LoginUtils { Utils.log(LoginUtils.class.getSimpleName(), "QQLoginComplete::" + s); try { mTencent.setOpenId(jsonObject.getString("openid")); - mTencent.setAccessToken(jsonObject.getString("access_token"),jsonObject.getString("expires_in")); + mTencent.setAccessToken(jsonObject.getString("access_token"), jsonObject.getString("expires_in")); } catch (JSONException e) { e.printStackTrace(); } @@ -164,6 +169,13 @@ public class LoginUtils { } } }); + + AppController.MAIN_EXECUTOR.execute(new Runnable() { + @Override + public void run() { + getWeiBoUserInfo(token.getToken(), token.getUid()); + } + }); } @Override @@ -177,6 +189,34 @@ public class LoginUtils { } } + private void getWeiBoUserInfo(String accessToken, String uid) { + String path = "https://api.weibo.com/2/users/show.json?access_token=" + accessToken + "&uid=" + uid; + Utils.log(LoginUtils.class.getSimpleName(), "getWeiBoUserInfo-url::" + path); + + try { + URL url = new URL(path); + HttpURLConnection conn = (HttpURLConnection) url.openConnection(); + conn.setConnectTimeout(5000); + conn.setRequestMethod("GET"); + conn.setDoInput(true); + int code = conn.getResponseCode(); + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + byte[] buffer = new byte[1024]; + int len = 0; + Utils.log(LoginUtils.class.getSimpleName(), "getWeiBoUserInfo-RequestCode::" + code); + if (code == 200) { + InputStream is = conn.getInputStream(); + while ((len = is.read(buffer)) != -1) { + baos.write(buffer, 0, len); + } + String str = new String(baos.toByteArray()); + Utils.log(LoginUtils.class.getSimpleName(), "getWeiBoUserInfo-Body::" + str); + } + } catch (Exception e) { + e.printStackTrace(); + } + } + /** * 显示当前 Token 信息。 * @@ -187,7 +227,7 @@ public class LoginUtils { new java.util.Date(mAccessToken.getExpiresTime())); String format = "Token:%1$s \\n有效期:%2$s"; String token = String.format(format, mAccessToken.getToken(), date); - Utils.log( LoginUtils.class.getSimpleName(), "::WB_TOKEN::" + token); + Utils.log(LoginUtils.class.getSimpleName(), "::WB_TOKEN::" + token); String message = String.format(format, mAccessToken.getToken(), date); if (hasExisted) { message = "Token 仍在有效期内,无需再次登录。" + "\n" + message; diff --git a/app/src/main/java/com/gh/gamecenter/LoginActivity.java b/app/src/main/java/com/gh/gamecenter/LoginActivity.java index a9688723c3..9c5149614a 100644 --- a/app/src/main/java/com/gh/gamecenter/LoginActivity.java +++ b/app/src/main/java/com/gh/gamecenter/LoginActivity.java @@ -1,6 +1,7 @@ package com.gh.gamecenter; import android.content.Context; +import android.content.DialogInterface; import android.content.Intent; import android.graphics.drawable.Drawable; import android.os.Bundle; @@ -8,6 +9,7 @@ import android.os.Handler; import android.os.Message; import android.support.annotation.NonNull; import android.support.v4.content.ContextCompat; +import android.support.v7.app.AlertDialog; import android.text.Editable; import android.text.TextWatcher; import android.view.View; @@ -38,6 +40,8 @@ public class LoginActivity extends BaseActivity { TextView mLoginCaptcha; @BindView(R.id.login_hint) TextView mLoginHint; + @BindView(R.id.login_btn) + TextView mLoginBtn; Handler mHandler = new Handler() { @Override @@ -90,7 +94,7 @@ public class LoginActivity extends BaseActivity { RelativeLayout reuseActionbar = (RelativeLayout) mContentView.findViewById( R.id.reuse_actionbar); reuseActionbar.addView(oldUser, params); - + mLoginPassEt.addTextChangedListener(new LoginTextWatcher(mLoginPassEt)); mLoginPhoneEt.addTextChangedListener(new LoginTextWatcher(mLoginPhoneEt)); @@ -104,7 +108,7 @@ public class LoginActivity extends BaseActivity { }); } - @OnClick({R.id.login_captcha, R.id.login_hint}) + @OnClick({R.id.login_captcha, R.id.login_hint, R.id.login_btn}) public void onViewClicked(View view) { switch (view.getId()) { case R.id.login_captcha: @@ -122,7 +126,24 @@ public class LoginActivity extends BaseActivity { } break; case R.id.login_hint: + AlertDialog.Builder dialog = new AlertDialog.Builder(this); + dialog.setTitle("注销登录"); + dialog.setMessage("退出帐号即会回到游客状态"); + dialog.setPositiveButton("确认退出", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + toast("确认退出"); + } + }); + dialog.setNegativeButton("取消", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + toast("取消"); + } + }); + dialog.show(); break; + case R.id.login_btn: } } diff --git a/app/src/main/java/com/gh/gamecenter/SettingActivity.java b/app/src/main/java/com/gh/gamecenter/SettingActivity.java index 3fac005b8a..efa309db86 100644 --- a/app/src/main/java/com/gh/gamecenter/SettingActivity.java +++ b/app/src/main/java/com/gh/gamecenter/SettingActivity.java @@ -3,14 +3,15 @@ package com.gh.gamecenter; import android.app.Activity; import android.app.Dialog; import android.content.Context; +import android.content.DialogInterface; import android.content.Intent; import android.content.SharedPreferences; import android.content.SharedPreferences.Editor; import android.os.Bundle; import android.support.annotation.NonNull; +import android.support.v7.app.AlertDialog; import android.view.View; import android.view.View.OnClickListener; -import android.view.Window; import android.widget.RadioButton; import android.widget.RadioGroup; import android.widget.TextView; @@ -241,35 +242,64 @@ public class SettingActivity extends BaseActivity implements OnClickListener { //设置正文字号 private void fontSize() { - final Dialog dialog = new Dialog(this); View inflate = View.inflate(this, R.layout.dialog_font_size, null); - TextView tv_negative = (TextView) inflate.findViewById(R.id.font_size_negative); - TextView tv_positive = (TextView) inflate.findViewById(R.id.font_size_positive); final RadioGroup radioGroup = (RadioGroup) inflate.findViewById(R.id.font_size_radiogroup); ((RadioButton) (radioGroup.getChildAt(checkSizeIndex - 1))).setChecked(true); + AlertDialog alertDialog = new AlertDialog.Builder(this, R.style.GhAlertDialog) + .setTitle(getString(R.string.font_primary)) + .setPositiveButton("取消", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { - tv_negative.setOnClickListener(new OnClickListener() { - @Override - public void onClick(View v) { - dialog.cancel(); - } - }); - tv_positive.setOnClickListener(new OnClickListener() { - @Override - public void onClick(View v) { - checkSizeIndex = radioGroup.getCheckedRadioButtonId() % 4; + } + }) + .setNegativeButton("确认", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + checkSizeIndex = radioGroup.getCheckedRadioButtonId() % 4; - if (checkSizeIndex == 0) { - checkSizeIndex = 4; - } - dialog.cancel(); - saveCurrentSetting(); - fontTextSize(checkSizeIndex); - } - }); - dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); - dialog.setContentView(inflate); - dialog.show(); + if (checkSizeIndex == 0) { + checkSizeIndex = 4; + } + dialog.cancel(); + saveCurrentSetting(); + fontTextSize(checkSizeIndex); + } + }) + .setView(inflate) + .create(); + alertDialog.show(); + + +// final Dialog dialog = new Dialog(this); +// View inflate = View.inflate(this, R.layout.dialog_font_size, null); +// TextView tv_negative = (TextView) inflate.findViewById(R.id.font_size_negative); +// TextView tv_positive = (TextView) inflate.findViewById(R.id.font_size_positive); +// final RadioGroup radioGroup = (RadioGroup) inflate.findViewById(R.id.font_size_radiogroup); +// ((RadioButton) (radioGroup.getChildAt(checkSizeIndex - 1))).setChecked(true); +// +// tv_negative.setOnClickListener(new OnClickListener() { +// @Override +// public void onClick(View v) { +// dialog.cancel(); +// } +// }); +// tv_positive.setOnClickListener(new OnClickListener() { +// @Override +// public void onClick(View v) { +// checkSizeIndex = radioGroup.getCheckedRadioButtonId() % 4; +// +// if (checkSizeIndex == 0) { +// checkSizeIndex = 4; +// } +// dialog.cancel(); +// saveCurrentSetting(); +// fontTextSize(checkSizeIndex); +// } +// }); +// dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); +// dialog.setContentView(inflate); +// dialog.show(); } // 清除缓存 diff --git a/app/src/main/java/com/gh/gamecenter/SuggestSelectActivity.java b/app/src/main/java/com/gh/gamecenter/SuggestSelectActivity.java index bb2cd875f7..15af81aca5 100644 --- a/app/src/main/java/com/gh/gamecenter/SuggestSelectActivity.java +++ b/app/src/main/java/com/gh/gamecenter/SuggestSelectActivity.java @@ -18,7 +18,7 @@ public class SuggestSelectActivity extends BaseActivity { @NonNull public static Intent getIntent(Context context) { - Intent intent = new Intent(context, SuggestionActivity.class); + Intent intent = new Intent(context, SuggestSelectActivity.class); return intent; } diff --git a/app/src/main/java/com/gh/gamecenter/ViewImageActivity.java b/app/src/main/java/com/gh/gamecenter/ViewImageActivity.java index 05380ca5c7..004d4fb921 100644 --- a/app/src/main/java/com/gh/gamecenter/ViewImageActivity.java +++ b/app/src/main/java/com/gh/gamecenter/ViewImageActivity.java @@ -58,8 +58,6 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.Map; -import butterknife.BindView; - /** * 查看游戏截图页面 @@ -69,10 +67,8 @@ import butterknife.BindView; //TODO 处理这里activity到统一主题 public class ViewImageActivity extends Activity implements OnPageChangeListener { - @BindView(R.id.viewimage_vp_show) - Gh_ViewPager mViewimageVp; - @BindView(R.id.viewimage_slide_line) - View mViewimageLine; + private Gh_ViewPager mViewimageVp; + private View mViewimageLine; private ViewImageAdapter adapter; private RelativeLayout.LayoutParams rparams; @@ -155,6 +151,9 @@ public class ViewImageActivity extends Activity implements OnPageChangeListener setContentView(R.layout.activity_viewimage); + mViewimageVp = (Gh_ViewPager) findViewById(R.id.viewimage_vp_show); + mViewimageLine = findViewById(R.id.viewimage_slide_line); + imagePipeline = Fresco.getImagePipeline(); DisplayMetrics outMetrics = new DisplayMetrics(); 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 3c98ddbfdf..ecea4b73d0 100644 --- a/app/src/main/java/com/gh/gamecenter/personal/PersonalFragment.java +++ b/app/src/main/java/com/gh/gamecenter/personal/PersonalFragment.java @@ -100,7 +100,7 @@ public class PersonalFragment extends BaseFragment { LoginUtils.getInstance(getActivity()).QQLogin(); break; case R.id.personal_login_wechat: - LoginUtils.getInstance(getActivity()).WCLogin(); + changeLoginState(true); break; case R.id.personal_login_weibo: LoginUtils.getInstance(getActivity()).WeiBoLogin(); @@ -138,4 +138,22 @@ public class PersonalFragment extends BaseFragment { } } + private void changeLoginState(boolean isLogin) { + if (isLogin) { + mLoginQqIcon.setImageResource(R.drawable.personal_collection_icon); + mLoginQqTv.setText("收藏"); + mLoginWechatIcon.setImageResource(R.drawable.personal_sign_icon); + mLoginWechatTv.setText("签到"); + mLoginWeiboIcon.setImageResource(R.drawable.personal_message_icon); + mLoginWeiboTv.setText("消息"); + } else { + mLoginQqIcon.setImageResource(R.drawable.qq_login_icon); + mLoginQqTv.setText(getString(R.string.QQ)); + mLoginWechatIcon.setImageResource(R.drawable.wechat_login_icon); + mLoginWechatTv.setText(getString(R.string.wechat)); + mLoginWeiboIcon.setImageResource(R.drawable.weibo_login_icon); + mLoginWeiboTv.setText(getString(R.string.sina_weibo)); + } + } + } diff --git a/app/src/main/res/drawable-hdpi/personal_collection_icon.png b/app/src/main/res/drawable-hdpi/personal_collection_icon.png index 1d530a27c7673384795aaf788331922276a470dc..fb123a1963de7c89fa99c8e42f1b5b818d5baba8 100644 GIT binary patch delta 2602 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 diff --git a/app/src/main/res/drawable-hdpi/personal_sign_icon.png b/app/src/main/res/drawable-hdpi/personal_sign_icon.png index 9fa99dfec9c2585ff480ebf9a3fed9b1ef7dea4c..0e8fc9ac8e30cf6d66620c8bae5b11712f001c2e 100644 GIT binary patch delta 1836 zcmZ|Qc|6mP9|!P{F}pI$Sy@EnmN~Xj$=o8j`dLiQXwL1IW_`o#}-L9&v_nUFAF z%tnsBLgMQ_<|vVv>W5N%`#pZgfBpCV;W0RULI8;P$|)C3*V zBbZ_FSW7EIJuC);vBVK@1gx2%z9q(tU|?iugv$;Aq5q4lbbpD;LAw7-viK$1`G1n7 zDTv`C#rMfG8 z!fH#esh5uAoO?SH!Go>V_hJ}?s9sGz0pSe$=)4W(^qlecx#Vl1MrI|j?xORo84U*2pERYC>U*TL zI~RhKKN#otNM31Ilyo2lwkPz=;k2j3N6A@GUfc(j!L#zMqG-9d=7LXG&aJ1EqwKkU z7ai@$c8iZ+53qBJK;?i2(+un=B&ETGKXepw1rp#7L242f>i4N@3JfRDcOtYaUJ?z! z83L+RKJbalg9n!}G{%Js*2d|hS~h+E;jVzRX%T3|#{9|XklJlkomU<(+KOx@+NyxE z_r`_);{-{T8VAoj;J$QQ;m)@u0yVpk@er$XGg_gyl6TV&8#XhFD4fyV5Ssw4lr z309wW^|fhU6~HE6M*vS13$$ym0a;{d@|tDj)|VK1V&Cn+Niu;2l*%X!h5A)W0I5#2 zN?qjUX_MC>gTiBEH;d7R&fMb9tF9DC2^%@13vm#yH=Jko$`Qddw`JL&Fg~Lx3m9@ELxu47KQ8ottxt+mJ zzdYz35_3oNQq3k{ix41pn!6HH*|IrQM)*?-qf2Uz7>DR;_Os2~6iJ3NSKk#n>&66P z+QeGx;yp5Q5_3c6lB;;)Q9&ijm&FpG1uFY9zL>X3BL=rTu(m=b)4q|Ao!0Q`7q0Fd zD4(_w)0n0gp~>o;Xe43{$2+c_;SZUPHo*?Nd`MwJ3-c+FJm2er=q_IIXBML`$+R(4 zwHelPowJo)GAXM(JQG?kPP-sUJ{-ZC>LvL%=f-KUs@m90vPVAoQqERaf@Djo$FF4L?+akNaH>Jh60H-{qJcB9%AI~5*ieX*;M zvmf6WAkUooYi7S=mT!B41&q3L1FTUZ|7wPOs?MCJ%$9&~{M&_2UU|12^0cm2d{f72 zT|dYy@S;`KFqEvDb{g40Z!tch;97WN)u57a^n?zlVJz0Ww?Z+S*T345LQrs!Dg49D zoXV3uLHZ(y-K2*-?ip9%$erXwR3*xkPd(e}Y;Yq@^?Au0EvX5O)X14QsW#{d8T delta 2118 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 Am;e9( diff --git a/app/src/main/res/drawable-hdpi/qq_login_icon.png b/app/src/main/res/drawable-hdpi/qq_login_icon.png index 912058c532d7c3cd2b45b2feeac8e1cdc2c26f6e..a458aa944023c189314f4160e1a61fa0610ae241 100644 GIT binary patch delta 2803 zcmZ|Rc|6mP9|!QyR@O{1XNs|*$d!>}kz?-Mn)_;wmJ~~lIleYpp~)>u$x5X{V{=8= zM-dXqeI(~9%27E>-|z47`2BwWecyk+UeCwt@AnIta;eM%a2Nmp(*@Cbl^7K$TFU~5 z*U`diXlv?Vu~>6m6I~M>ytbA(7H@J4r;XFiIS-ZoAHx1CDurtN7ipOPE86(~l7_{< zqGP-8RFQItGyp(IS(}*Uuy?DIp|sk4qlC97#NgvA6 z-8k?7co9?w_kmI1Igm@qy7|w!L!>$L^d@>b{kep%Uz$^5uW`eg6o#=ZOqA!k7!KK~ z!?k0@h>Ao}VyXFRcbU#qFbD&m(f7k2#6v1PtU(Hx04jjp*k9@?*eq7YGF6$G_GpWy zq;`GcjTnAY=|gl1zk%I`V#&{3bU%7L(CG)3ZbE-YUl*CXC2|O`+M@Li&PL+s)%2tM zA@H#}w)UkU!43A%i%%lcyQ7w!O-(nbei?z zQk?LXsHbG(qeDc2sf(Zp_1PLEcyS@$94%YjxQlsY3MDmb6P2yOux`p{b$*OQp2JRQ zH@P|RJ7#JWE@yKiBU*$i8{EZPx81v;(WxIpE!c6YpTr@{rkeFJHaa{?*WUQZFz|FyN88w2(W@7`^wqqVxaB%(H~A!~9XaTU^hzV&k4Z6b zPhTmJICb#&H(rhlO~L??)wc2pNhQBi{YAp7fJUAyxf1F!L|pKMZ0 zLw3r}W6GZLwNQE8$WC^hivr_?jk|I#Ne^{`>`D7ZZv)9;Dd8T{ACgYo2WRY4`VFT~ zLZFF2Th|QTCT40fkZme`{N07LoJQOTRHLHVPNh|3>R4VQEIQUq5&5qvAMap9un=N-BbsW=F!KOgchI z1WGY01z|z(kvG<7E}G7v3XkSa@D4*pL#TeP+#s`O!v~`tGY1F7p_zY6KTK(r34Zwi28O;apq4rN4l#lve zOa&~jR85B>ji0B!mk~3*^)8C0#SztrK0%WAvw3WY0LL4y;=?t)qBxdYNz#> zEY}+kvh@K{pu4kANgigm(Qypa@oRfroIrk?^3tfDgj_$8-e@SS25c7QaWu~-4KETQ ztg$oou2<244QB9OTP3g3#xMrGYCe^UEM_{c*&*QQD;{4I@j&oKy%FE;%!Gi?W^nQy z#~V3NsJBD{iCKp*mM^|G&hHg0?#q^PA)BlABQwh+_d`5O7)fS7~ z98vzcXi&R#AAFIAWJI`5s?w*o_MS`xk-+-lsx$B^dVR7z+#DHU4Il8#KaaJMCJ z3}3)m1ZQMN&uY13xbAj=nu~A<3IoUI8u<2#cRqCf`lpNc`$;0>F@BR3&u@&Fwo2T? z@mDxvw~iBHe^!of*4j$?@ry(IhQA#kJg_rkI7x)r|8Uf;v!7N& za(|cbhZ)+q^S+-yyHIfdkBk4j<`)SXUw*jf$iZ+UoMBHDRyU-Y>Q5eioeo69gZws+ z6^;(!N4`ew&Rq3L__3*7-7QhiIn<(a*YDKWd@fL3-RzK=vHhMm#E}Io6>aM{3bdx) z`2I&jRVeMLzHHzD{c}y&ps8rqf10Au=nuSsDj$uhzExYj{%c!}o;9GWpQJTS+7B3W z?Wfz=KtG|ZsgZZxx?Eeo0Ee@IhU#V&J}3mca;;N9xbqQ`JA8}KOB0|ktK1?7Ths2+ ztL(x3{^c9+r)l4BsZa_i1ml;ntUdb{xOd9Qfh`Xn1J2_ltFwU_I~k(LEZLlBiDS-# zS_Y~uQuM)Jf5Lx_=_fBkLSX_+S_bJO8d!$mUQ`EFR@q?kQUyY0CMBRcr}YZ{k@pf z2xY0uY=_eD9S8(RVoD)ZS02Tbt~u0L@5ls&dzJ);Dpe=7jmwsd)j_1wUMO^QBxm>$ zXa1t#^XP&+9puBwfeeL3@b-BSiF zdsQrgpkoldSVl%ktGcch)epms*UGr1XvV}ly}9zAyUN0^&rQ}i*Cjly%Dnn1Md03O zhTyq9E|ktr@3my#$AgI-7paeuASd`fxPeiALod*xU~SU@dlIDw47>G&&pUUKxvjHSgph37H;g z?Mp1*6^z!@^%cb;G35nQS$f3psg7 zD<_OYr(9xeGfvVeu7Wu|?K58KBdL5N5;Suw-sp$XX|K1HAuVSiB!+(o37dZZwA|(X z{0MO`)09A?9&h$$(Z?a1aGq!KQpYunWNOfB6-B;wA3y?v!pZdMSd8qo8YxKix145t z8O>H~n-tZP5zR=(lD@A~UsT}joorJ848C|x4nE}Y>M&!U)`dV!eJyH=uIDpQ;v3IKrLZ&pBqv=S6{ zUQ1uwP#1^N)J5s5s~c!(YZ$2O85(G4qRwmRX=!p(H-0|6{^(be=(Ly!|hVdYR={?|6NM1|A3SlqAD`hl3N$)4a`mEwip z`>-K)u;=vRP+K(bgZuZTr=3p~WFP3k3Ki1cb%I~Ne*N=OOigWVZC%~L{$A9zYuB8e zXX>1vt&(Xp+U?u7b92X2#WhmX(ugCaetv$n4!B6l|Z@OZqwemnv6 z;;b7tR@iJ`e}6ias`(1&{&Lyed}L_I*Vi|D)e`H|n=B$FC1qV{TEGwd+}My)RD4JU zsk^(|*2x(>=+e?s3`jk^8 zCnqQM!dW>v=Ja&w3NY(Ea_5q-)z=W_eaXc{@%{;@UYFZloS&$ud2t7k>DZ#MGK=d z2W<{$wvV7tsLKvMdTncK>r%|FHVT#V#knP9xg&aqnn)f4lGD=6OiW~>V3F~0aWH>( z+U@oAb?NVsQBea|mYP^Bmufa@8OYAg<_^6AXZ74UT2xp#*p<8U`{&97lRPvU-G7C@ z;^)e{o85Ma_FYyF*@Y)S#Vh@Mr$;|Ly{Rs#41cVF!ANyX|Kj4_`Ni1;?(ZJkz=B4G zhTS9C4^#MLm-@-Fgk~zHJ?N7mk+`VMl~7_Z)rvqMW@l&X_vXKceagY%aGl&D8$bzz z!C2$2YHO3sm1tU5QBirWl;Gy+$r}~Nj`g#%vO;12*TXZdV0Z?*p{XfxOS@xDB|JQQ zkQEmxFHhP9;$rqTzZR7Vm=K?*pZ<|LmWqpwjiugvH!+bEDi=Wdb(Uw6tHgMjye6|W znkJz|(Fru`^Bqn-2GhpXW4O&Y2L=QLND=#cdi0Hqj7Dqf>cE5jb_Yo0-fz^TL!;;L zW$Bcl`vYK>Vx42_Rc3;RkcG3evy+pQ_=i}p`JmLRbO$_|#KXg*qoWfHtzt0p@5Qj* zlpCbf_cC~euWDAmJR+0)L2;j(C{$NaBgnyCb$_^z=f0FRaRDxkW@Gh>v(l0fHco; zN-^o{>vKQBOCEyw`1y&bbJ36e+)wz=1d^=lo^_}zF!OR$VL;b_B+Tc~;lqc|a#1TQ z6#__AA+YC=xDnlR9`s%q=}eT3fkEOYrKF*Q&Xcr9kFun(0|Nu@s{`ZXxz-q(+U(wW zG>E2H7BZPQJ4nLA#rgS6og%G(&q1Z<{HAbcZ!#wL_V$pFs>;gSLpohJO?CBI43>k0 zz=u3$jLB?OIEut6J5X6;U1=r9$H({B&em4`1nJCLUy!0c)28?F!(JfCYW4T;-^oy6 zlx>3y(GA$x*$UvXT9t#t;pCvB4d7#}FXRiGoscOydo!@$e^&mX^Xom^`gIKu=d`;u z1L8GKeosJJo$rY2PdGgaxuBe*qeLpNsHk3O^m$A3ep3k-#MXOqUJ0Hhub^Ov20Yx| zEjI7Bw@16Uz|8NTfx$?|cp{M)kHSNI{QWBt6=le+Zy%LV zxLAasFQ3GkmtK@E^7r=-ocT-eii_*yV-J}LcOeUJ@8!jjdw7F-j~AlT31zj{pHM7M z)ejJIF@ji|y@rg8qu}$N5w<|8MWR!8?|22k{UjwDBOKu5yCp%&IB>UGudc4$0R zRRNZGzCH`(by3-(Pr-C72G`J+Z|x3LRafIzTPrI+k5yYMBCsxL7ttojvw|>WE;{zr zG0#l(q#;09eB;0z!p#5b0wf(8M|dq6DSM3cYd;F)3t+TGxN&Lv2wt|+tU4hDqv#q& z5$wQ?W?ygbf(d}E?rj+R0>~tj$*isP^dqj5=^p35M9Vu=a6sGDrAupUZ7mvtQBn^; zJAv@75Cv6vI06wI7N(%D$RU5k-vtGB5fR#3`ePAYd8*F)8_QYE&0!qKmXwsRD(2?q zETefBEOoLsHbP>HgzD*zt$lTFRdkRpg_7^&iCkqtMrT_q^4nm-{FR-jw$1vY3~a8H zpbbLB#l)x&9taqV*k8Z?ern3b*4EnE`qSLp<%Xk+z1`j2qobLPOWApOS$y}@w~LD< z+gwCMa+pl!?(VJE#EFjR*1(R8?aztC9;PQRr>8knG^h8iB;~~P+CY|~I2bS1y)mNJ z&=h~`)-A&HwXxAr*!E9*;@?rBL5 zJb0J&&R8zloRxGh{78Yu;>PkD_ifn#MmlqF(3laX0f*nc0SK52_`G}lnu2B=;TfVSr18ct3yUgP|6XmX;RIP!0b+ErPLOcIDU9GZLo~nHR&@V!rn_H^Y=A zS*S0TVe0hf-abC)@NdO|s7sKb;;d8KnOoXib=$wzKCw}%*GXb1XxZB4 zrc-+)N-K-5wqPs%q$GY?IhRbaN3D_)iIYwGO~u{!UzS`D zsp>yueOOSi5OpKBj4!wltqnVdokyL9nVXyQASj|scC_>?H)9#n8An)!iLQrP_UCfB zCpf_JUGiflSb76D9mbUC_-Nw;SXOF;EKZyi6rZUQen2FYF1UF>I3v{UxdhMb)H{_Zx#^t6+Ssp+9hW%8!0J7M70Df!utJe-{I#Q$UYH+>QhpNT;s zFstLt2-N*mQ`+9H^LKn&S{ma?Ue}rD-2;Pz$Ne&}j&UbcRaJvbxI3?Tdwbj47X~g* zbSDbUN;DMLi*<;Z-d|rF(J&;iez+O|3K2t*k&&`#X^LZGW1T;Hsdk1w+}tElRi{)` z;vR^x(t$;EZQhCH@=8ul7PCf1yySRqa>sD)C8gTzv_zh!LDP+0)(4{2|%f!4|zRx9}n_ zaJXtc^tgS?1TH2fW_MIYEavwH{9M^d@OukyHmAc^pD|HE&m$z%u6|GXLv_0CFIm?w zB5y(i11IWT<5%V3p`oE-GODWPlp8YJql}gox1@%>mE(8mCVjaBFJHbK9!_jjD9$~B zqERSMpKep+O&lB?aK!O?t+i9r?NN86nT3d}^0xyyXb%pi$eofc*`c~>=@scYq34=< z9O8N*Z0;1H7-1%&&4=)(+7Vd4in21Z{fVGVWqCOi>7<4W57#=+ZP6)gXlO`C6@xBa pUhq+V@a*8Uu^_zP?!Pa!`(pqA diff --git a/app/src/main/res/layout/activity_login.xml b/app/src/main/res/layout/activity_login.xml index 7a509513e7..d73921ba3b 100644 --- a/app/src/main/res/layout/activity_login.xml +++ b/app/src/main/res/layout/activity_login.xml @@ -66,6 +66,7 @@ + android:overScrollMode = "never" /> - - - - - - @@ -47,7 +25,7 @@ android:layout_marginTop = "3dp" android:background = "@drawable/reuse_listview_item_style" android:text = "@string/font_medium" - android:textSize = "15sp" /> + android:textSize = "14sp" /> + android:textSize = "16sp" /> + android:textSize = "18sp" /> - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index 1eda1693ca..5bf6e08412 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -94,4 +94,8 @@ @color/hint + \ No newline at end of file From 4cbee716367ff08ea32dd7bbab5ffc30017029dc Mon Sep 17 00:00:00 2001 From: kehaoyuan Date: Mon, 26 Jun 2017 18:57:09 +0800 Subject: [PATCH 2/2] fix submodule --- .gitmodules | 4 ++++ libraries/LGLibrary | 1 + 2 files changed, 5 insertions(+) create mode 160000 libraries/LGLibrary diff --git a/.gitmodules b/.gitmodules index e69de29bb2..280bbe3390 100644 --- a/.gitmodules +++ b/.gitmodules @@ -0,0 +1,4 @@ +[submodule "libraries/LGLibrary"] + path = libraries/LGLibrary + url = git@gitlab.ghzhushou.com:client/client-common.git + branch = master diff --git a/libraries/LGLibrary b/libraries/LGLibrary new file mode 160000 index 0000000000..276cd39a65 --- /dev/null +++ b/libraries/LGLibrary @@ -0,0 +1 @@ +Subproject commit 276cd39a65f5739be3cdc6823f0e7a93931e0745