app/src/main/java/com/auto/lyric/MainActivity.java | ●●●●● patch | view | raw | blame | history | |
app/src/main/java/com/auto/lyric/data/ActiveResult.java | ●●●●● patch | view | raw | blame | history | |
app/src/main/java/com/auto/lyric/data/UserInfo.java | ●●●●● patch | view | raw | blame | history | |
app/src/main/java/com/auto/lyric/retrofit/api/CollectApiCenter.java | ●●●●● patch | view | raw | blame | history | |
app/src/main/java/com/auto/lyric/vm/MainViewModel.java | ●●●●● patch | view | raw | blame | history |
app/src/main/java/com/auto/lyric/MainActivity.java
@@ -17,6 +17,7 @@ import com.auto.lyric.data.ActiveResult; import com.auto.lyric.data.LyricServer; import com.auto.lyric.data.TextBean; import com.auto.lyric.data.UserInfo; import com.auto.lyric.databinding.ActivityMainBinding; import com.auto.lyric.retrofit.observable.LoadingHttpObserver; import com.auto.lyric.service.AutoInputService; @@ -39,41 +40,24 @@ public void initViews() { Intent floatService = new Intent(getApplicationContext(), FloatingWindowService.class); String key = getStringProjectPrefrence("activeKey"); ActiveResult result = new Gson().fromJson(key,ActiveResult.class); UserInfo result = new Gson().fromJson(key,UserInfo.class); try { if(TextUtils.isEmpty(key) || TextUtils.isEmpty(result.validDate)|| new Date().getTime() > dateFormat.parse(result.validDate).getTime()){ AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle("软件尚未激活或已过期"); EditText editText = new EditText(this); editText.setHint("请输入激活码"); ViewGroup.MarginLayoutParams params = new ViewGroup.MarginLayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT); params.setMargins(DeviceUtil.convertDpToPixel(30,this),DeviceUtil.convertDpToPixel(20,this),DeviceUtil.convertDpToPixel(30,this),0); editText.setLayoutParams(params); LinearLayout lin = new LinearLayout(this); lin.addView(editText); builder.setView(lin); builder.setCancelable(false); AlertDialog dialg = builder.create(); dialg.setButton(AlertDialog.BUTTON_NEGATIVE,"激活", (dialog, which) -> { viewModel.checkActive(editText.getText().toString().trim(),new LoadingHttpObserver<ActiveResult>(this) { if(TextUtils.isEmpty(key) || TextUtils.isEmpty(result.keyDateValid)|| new Date().getTime() > dateFormat.parse(result.keyDateValid).getTime()){ activeDialog(); }else{ @Override public void onError(ActiveResult error) { super.onError(error); dialg.show(); } viewModel.checkActive(result.userId,result.activeKey,new LoadingHttpObserver<ActiveResult>(this) { @Override public void onComplete(ActiveResult result) { @Override public void onError(ActiveResult error) { super.onError(error); } } }); @Override public void onComplete(ActiveResult result) { } }); dialg.setButton(AlertDialog.BUTTON_POSITIVE,"退出程序",(dialog,which) ->{ System.exit(0); }); dialg.show(); } } catch (ParseException e) { e.printStackTrace(); @@ -170,4 +154,38 @@ } private void activeDialog(){ AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle("软件尚未激活或已过期"); EditText editText = new EditText(this); editText.setHint("请输入激活码"); ViewGroup.MarginLayoutParams params = new ViewGroup.MarginLayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT); params.setMargins(DeviceUtil.convertDpToPixel(30,this),DeviceUtil.convertDpToPixel(20,this),DeviceUtil.convertDpToPixel(30,this),0); editText.setLayoutParams(params); LinearLayout lin = new LinearLayout(this); lin.addView(editText); builder.setView(lin); builder.setCancelable(false); AlertDialog dialg = builder.create(); dialg.setButton(AlertDialog.BUTTON_NEGATIVE,"激活", (dialog, which) -> { viewModel.register(editText.getText().toString().trim(),new LoadingHttpObserver<ActiveResult>(this) { @Override public void onError(ActiveResult error) { super.onError(error); dialg.show(); } @Override public void onComplete(ActiveResult result) { putStringProjectPrefrence("activeKey",new Gson().toJson(result.userInfo)); } }); }); dialg.setButton(AlertDialog.BUTTON_POSITIVE,"退出程序",(dialog,which) ->{ System.exit(0); }); dialg.show(); } } app/src/main/java/com/auto/lyric/data/ActiveResult.java
@@ -1,9 +1,9 @@ package com.auto.lyric.data; /** * 用户注册信息 * Created by Runt (qingingrunt2010@qq.com) on 2022/5/29. */ public class ActiveResult extends BaseApiResult{ public String userID,userClassName,validDate,permission; public int userClass; public UserInfo userInfo; } app/src/main/java/com/auto/lyric/data/UserInfo.java
New file @@ -0,0 +1,16 @@ package com.auto.lyric.data; /** * Created by Runt (qingingrunt2010@qq.com) on 2022/5/29. */ public class UserInfo { public String userId; public String phoneID; public String userDateAdded; public String activeKey; public String keyDateValid; public String className; public String permission; } app/src/main/java/com/auto/lyric/retrofit/api/CollectApiCenter.java
@@ -28,7 +28,7 @@ */ @FormUrlEncoded @POST("index.php?route=lrc/favorites/getLrc") Observable<CollectListResult> getLrcDetail(@Field("lrc_id") int lrc_id); Observable<CollectListResult> getLrcDetailFromCollect(@Field("lrc_id") int lrc_id); /** * 删除歌词 @@ -36,7 +36,7 @@ */ @FormUrlEncoded @POST("index.php?route=lrc/favorites/delLrc") Observable<CollectListResult> removeLrc(@Field("lrc_id") int lrc_id); Observable<CollectListResult> removeLrcFromCollect(@Field("lrc_id") int lrc_id); /** * 添加歌词歌词 @@ -44,7 +44,7 @@ */ @FormUrlEncoded @POST("index.php?route=lrc/favorites/delLrc") Observable<CollectListResult> addLrc(@Field("lrc_title") String lrc_title,@Field("lrc_text") String lrc_text); Observable<CollectListResult> addLrcToCollect(@Field("lrc_title") String lrc_title,@Field("lrc_text") String lrc_text); /** * 激活软件 @@ -58,8 +58,8 @@ */ @FormUrlEncoded @POST("index.php?route=lrc/login_check") Observable<ActiveResult> loginCheck(@Field("activeKey") String activeKey, @Field("ip") String ip, @Field("random") String random, @Field("timeStamp") long time, @Field("userId") int userId, @Field("sign") String sign); Observable<ActiveResult> loginCheck(@Field("activeKey") String activeKey, @Field("ip") String ip,@Field("phoneID") String phoneID, @Field("random") String random, @Field("timeStamp") long time, @Field("userID") String userId, @Field("sign") String sign); /** * 激活软件 app/src/main/java/com/auto/lyric/vm/MainViewModel.java
@@ -25,15 +25,14 @@ apiCenter = RetrofitUtils.getInstance().getRetrofit(CollectApiCenter.class); } public void checkActive(String activeKey,LoadingHttpObserver<ActiveResult> observer){ public void checkActive(String userId,String activeKey,LoadingHttpObserver<ActiveResult> observer){ String ip = NetWorkUtils.getNetIp(); String random = UUID.randomUUID().toString(); long time = new Date().getTime()/1000; int userId = 0; String deviceId = DeviceIdUtils.getAndroidId(activity); String sign = String.format("%s%s%s%s%s%s",activeKey,ip,deviceId ,random,time,userId); Observable<ActiveResult> observable = apiCenter.register(activeKey, ip,deviceId, random, time, userId, SHA1UTIL.MD5(SHA1UTIL.getSHA(sign))); Observable<ActiveResult> observable = apiCenter.loginCheck(activeKey, ip,deviceId, random, time, userId, SHA1UTIL.MD5(SHA1UTIL.getSHA(sign))); httpObserverOn(observable,observer); }