package com.usts.englishlearning.activity;
import androidx.annotation.NonNull;
import android.annotation.SuppressLint;
import android.app.AlertDialog;
import android.app.ProgressDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import com.loopj.android.http.AsyncHttpClient;
import com.loopj.android.http.AsyncHttpResponseHandler;
import com.loopj.android.http.RequestParams;
import com.usts.englishlearning.R;
import com.usts.englishlearning.config.ConfigData;
import com.usts.englishlearning.config.ConstantData;
import com.usts.englishlearning.config.ServerData;
import com.usts.englishlearning.database.FolderLinkWord;
import com.usts.englishlearning.database.Interpretation;
import com.usts.englishlearning.database.LearnTime;
import com.usts.englishlearning.database.MyDate;
import com.usts.englishlearning.database.Phrase;
import com.usts.englishlearning.database.Sentence;
import com.usts.englishlearning.database.User;
import com.usts.englishlearning.database.UserConfig;
import com.usts.englishlearning.database.Word;
import com.usts.englishlearning.database.WordFolder;
import com.usts.englishlearning.util.FileUtil;
import com.usts.englishlearning.util.TimeController;
import com.usts.englishlearning.util.ZipUtil;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import org.litepal.LitePal;
import java.io.File;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.List;
import java.util.Objects;
import cz.msebera.android.httpclient.Header;
import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.FormBody;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.RequestBody;
import okhttp3.Response;
public class SynchronyActivity extends BaseActivity {
private TextView textSyn, textRecover;
private ProgressDialog progressDialog;
private ImageView imgMore;
private String fileTypeName, filePath, zipPath;
private final int START_SYN_CLOUD = 0;
private final int FINISH_SYN_CLOUD = 1;
private final int FINISH_SYN_LOCAL = 2;
private final int START_RECOVER_CLOUD = 3;
private final int FAIL_RECOVER_CLOUD = 4;
private final int FINISH_RECOVER_LOCAL = 5;
private static final String TAG = "SynchronyActivity";
public static String TYPE_NAME = "TYPENAME";
public boolean canSave;
private String currentBookName;
private String downLoadPath;
private String[] currentBookLists;
@SuppressLint("HandlerLeak")
private Handler handler = new Handler() {
@Override
public void handleMessage(@NonNull final Message msg) {
switch (msg.what) {
case FAIL_RECOVER_CLOUD:
progressDialog.dismiss();
Toast.makeText(SynchronyActivity.this, "云端暂无数据,请备份再重试", Toast.LENGTH_SHORT).show();
break;
case FINISH_SYN_LOCAL:
progressDialog.dismiss();
Toast.makeText(SynchronyActivity.this, "备份完毕", Toast.LENGTH_SHORT).show();
break;
case FINISH_RECOVER_LOCAL:
progressDialog.dismiss();
Toast.makeText(SynchronyActivity.this, "恢复成功", Toast.LENGTH_SHORT).show();
break;
case FINISH_SYN_CLOUD:
progressDialog.dismiss();
Toast.makeText(SynchronyActivity.this, "云端备份完毕", Toast.LENGTH_SHORT).show();
break;
case START_RECOVER_CLOUD:
try {
ZipUtil.unzip(getFilesDir() + "/" + ConstantData.DIR_TOTAL + "/cloudFiles/" + ConfigData.getSinaNumLogged() + ".zip",
getFilesDir() + "/" + ConstantData.DIR_TOTAL + "/cloudFiles/" + ConfigData.getSinaNumLogged());
} catch (IOException e) {
e.printStackTrace();
}
currentBookLists = FileUtil.allFilesInOne(downLoadPath + "/books");
if (currentBookLists != null) {
if (currentBookLists.length != 0) {
progressDialog.dismiss();
final AlertDialog.Builder builder = new AlertDialog.Builder(SynchronyActivity.this);
builder.setTitle("请选择以下书单进行恢复")
.setItems(currentBookLists, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
final String currentName = currentBookLists[which];
dialog.dismiss();
AlertDialog.Builder timeBuilder = new AlertDialog.Builder(SynchronyActivity.this);
timeBuilder.setTitle("提示")
.setMessage("书单名称:" + currentBookLists[which] + "\n备份时间:" + FileUtil.readFileToString(downLoadPath + "/books/" + currentBookLists[which], "更新时间" + fileTypeName))
.setPositiveButton("确定恢复", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
showProgressDialog("数据已准备完毕,正在恢复中...");
//showProgressDialog("数据恢复中,请勿强行关闭软件");
new Thread(new Runnable() {
@Override
public void run() {
Log.d(TAG, currentName);
downLoadPath = getFilesDir() + "/" + ConstantData.DIR_TOTAL + "/cloudFiles/" + ConfigData.getSinaNumLogged();
recoverFromLocal(downLoadPath, currentName);
RequestBody formBody = new FormBody.Builder()
.add(ServerData.TYPE_NAME, ServerData.RECOVER_TYPE)
.add(ServerData.LOGIN_SINA_NUM, ConfigData.getSinaNumLogged() + "")
.build();
Request request = new Request.Builder()
.post(formBody)
.url(ServerData.SERVER_UPLOAD_RECORD_ADDRESS)
.build();
OkHttpClient okHttpClient = new OkHttpClient();
okHttpClient.newCall(request)
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
英语学习APP_个人期末课程设计_java实现源码.zip 该项目是一个基于java开发的服务器-客户端模式的安卓英语学习软件,主要功能点就是背单词,中英文翻译,OCR文字翻译。 主要针对计算机相关专业的正在做毕设的学生和需要项目实战的Java学习者。 也可作为课程设计、期末大作业。包含:项目源码、数据库脚本、项目说明等,该项目可以直接作为毕设使用
资源推荐
资源详情
资源评论
收起资源包目录
英语学习APP-个人期末课程设计-java实现源码.zip (379个子文件)
app-release.apk 24.31MB
gradlew.bat 2KB
.gitignore 208B
.gitignore 7B
build.gradle 2KB
build.gradle 740B
settings.gradle 53B
gradlew 5KB
gradle-wrapper.jar 53KB
SynchronyActivity.java 42KB
WordDetailActivity.java 25KB
ChartActivity.java 21KB
FragmentReview.java 18KB
WordController.java 17KB
LearnWordActivity.java 16KB
UpdateActivity.java 15KB
OCRActivity.java 12KB
FolderDetailActivity.java 12KB
FragmentMe.java 11KB
FragmentWord.java 11KB
ListActivity.java 11KB
DocumentsUtils.java 11KB
ChangePlanActivity.java 11KB
GameActivity.java 10KB
WelcomeActivity.java 10KB
LoginActivity.java 10KB
BaseActivity.java 10KB
PlanActivity.java 8KB
ZipUtil.java 8KB
FileUtil.java 8KB
ConfigData.java 8KB
LearnInNotifyActivity.java 8KB
NotifyLearnService.java 8KB
SpeedActivity.java 8KB
ConstantData.java 7KB
DaySentenceActivity.java 7KB
Word.java 6KB
MatchAdapter.java 6KB
LoadGameActivity.java 6KB
MeanChoiceAdapter.java 6KB
CalendarActivity.java 6KB
MediaHelper.java 5KB
JsonHelper.java 5KB
MainActivity.java 5KB
AlarmActivity.java 5KB
WordListAdapter.java 5KB
ChooseWordDBActivity.java 5KB
ShowActivity.java 5KB
SearchActivity.java 4KB
WordFolderAdapter.java 4KB
ShowWordAdapter.java 4KB
FinishActivity.java 4KB
WordFolderListAdapter.java 4KB
UpdateSentenceAdapter.java 4KB
TimeController.java 4KB
WordBookAdapter.java 4KB
LoadWordActivity.java 3KB
BaiduHelper.java 3KB
GameStatusActivity.java 3KB
Base64Util.java 3KB
SearchAdapter.java 3KB
AboutActivity.java 3KB
DetailSentenceAdapter.java 2KB
WordFolderActivity.java 2KB
NumberController.java 2KB
AlarmWorker.java 2KB
AddFolderActivity.java 2KB
ActivityCollector.java 2KB
MatchActivity.java 2KB
FixAppBarLayoutBehavior.java 2KB
MyDate.java 2KB
JsonImg.java 2KB
UserConfig.java 2KB
DetailPhraseAdapter.java 2KB
JsonContent.java 1KB
DailyData.java 1KB
ItemWordBook.java 1KB
User.java 1KB
NotifyReceiver.java 1KB
ItemWordList.java 1KB
MyPopWindow.java 1KB
PicCustomActivity.java 1KB
AlarmReceiver.java 1KB
ItemWordFolder.java 1KB
ItemSearch.java 1KB
ItemMatch.java 1010B
HttpHelper.java 997B
ItemWordMeanChoice.java 985B
SinaData.java 980B
Interpretation.java 948B
JsonTran.java 939B
ServerData.java 936B
ItemShow.java 936B
JsonTool.java 911B
JsonWord.java 881B
WordFolder.java 793B
MyApplication.java 787B
CustomVideoView.java 767B
Sentence.java 758B
GameWord.java 740B
共 379 条
- 1
- 2
- 3
- 4
资源评论
- asfhe42023-04-12资源是宝藏资源,实用也是真的实用,感谢大佬分享~
Make程序设计
- 粉丝: 5614
- 资源: 3567
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功