Commit bc6fd3065bac00702f84731d01b2640db5664770
1 parent
5b60b4a9
云盘上传下载功能ui展示
Showing
36 changed files
with
1462 additions
and
38 deletions
app/src/main/java/com/cnlive/updown/MainActivity.java
| @@ -4,7 +4,7 @@ import android.content.Intent; | @@ -4,7 +4,7 @@ import android.content.Intent; | ||
| 4 | import android.support.v7.app.AppCompatActivity; | 4 | import android.support.v7.app.AppCompatActivity; |
| 5 | import android.os.Bundle; | 5 | import android.os.Bundle; |
| 6 | 6 | ||
| 7 | -import com.cnlive.updownfile.xiaoRay.InitViewActivity; | 7 | +import com.cnlive.updownfile.xiaoRay.ui.InitViewActivity; |
| 8 | 8 | ||
| 9 | 9 | ||
| 10 | public class MainActivity extends AppCompatActivity { | 10 | public class MainActivity extends AppCompatActivity { |
updownfile/libs/mylib.jar
No preview for this file type
updownfile/src/main/AndroidManifest.xml
| @@ -8,8 +8,9 @@ | @@ -8,8 +8,9 @@ | ||
| 8 | <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> | 8 | <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> |
| 9 | 9 | ||
| 10 | <application> | 10 | <application> |
| 11 | - <activity android:name=".xiaoRay.DiretoryActivity" /> | ||
| 12 | - <activity android:name=".xiaoRay.InitViewActivity" /> | 11 | + <activity android:name=".xiaoRay.ui.TaskActivity"></activity> |
| 12 | + <activity android:name=".xiaoRay.ui.DiretoryActivity" /> | ||
| 13 | + <activity android:name=".xiaoRay.ui.InitViewActivity" /> | ||
| 13 | <activity android:name="com.cnlive.filespicker.ui.FilePickerActivity" /> | 14 | <activity android:name="com.cnlive.filespicker.ui.FilePickerActivity" /> |
| 14 | 15 | ||
| 15 | <service android:name="com.xiaoray.raysdk.service.TaskUploadService" /> | 16 | <service android:name="com.xiaoray.raysdk.service.TaskUploadService" /> |
updownfile/src/main/java/com/cnlive/updownfile/util/UploadUtil.java
| @@ -40,7 +40,7 @@ public class UploadUtil { | @@ -40,7 +40,7 @@ public class UploadUtil { | ||
| 40 | private static final String OBJECT_PIC_KEY = AppConfig.isDebug() ? TEST_OBJECT_PIC__KEY : RELEASE_OBJECT_PIC__KEY; | 40 | private static final String OBJECT_PIC_KEY = AppConfig.isDebug() ? TEST_OBJECT_PIC__KEY : RELEASE_OBJECT_PIC__KEY; |
| 41 | 41 | ||
| 42 | /** | 42 | /** |
| 43 | - * 七牛文件上传 | 43 | + * 七牛文件上传文件 |
| 44 | * @param context | 44 | * @param context |
| 45 | * @param file | 45 | * @param file |
| 46 | * @param objectKey | 46 | * @param objectKey |
| @@ -74,7 +74,7 @@ public class UploadUtil { | @@ -74,7 +74,7 @@ public class UploadUtil { | ||
| 74 | 74 | ||
| 75 | 75 | ||
| 76 | /** | 76 | /** |
| 77 | - * 上传多张图片 | 77 | + * 七牛上传多张图片 |
| 78 | * @param context | 78 | * @param context |
| 79 | * @param file | 79 | * @param file |
| 80 | * @param uploadToken | 80 | * @param uploadToken |
updownfile/src/main/java/com/cnlive/updownfile/xiaoRay/Constant.java
| @@ -15,13 +15,16 @@ public class Constant { | @@ -15,13 +15,16 @@ public class Constant { | ||
| 15 | public static final int IMAGE_MAX_SIZE = 20 * 1024 * 1024; | 15 | public static final int IMAGE_MAX_SIZE = 20 * 1024 * 1024; |
| 16 | //聊天页面文件最大28M | 16 | //聊天页面文件最大28M |
| 17 | public static final int FILE_MAX_SIZE = 28 * 1024 * 1024; | 17 | public static final int FILE_MAX_SIZE = 28 * 1024 * 1024; |
| 18 | + public static ProgressDialog waitingDialog; | ||
| 18 | 19 | ||
| 19 | public static void initXiaoRay(Context context, String mac, String u_id, String code, String term_id) { | 20 | public static void initXiaoRay(Context context, String mac, String u_id, String code, String term_id) { |
| 20 | - RayLib.init(context); | ||
| 21 | - ProgressDialog waitingDialog = new ProgressDialog(context); | ||
| 22 | - waitingDialog.setMessage("正在连接IP地址"); | ||
| 23 | - waitingDialog.setIndeterminate(true); | ||
| 24 | - waitingDialog.setCancelable(false); | 21 | + if(waitingDialog == null){ |
| 22 | + RayLib.init(context); | ||
| 23 | + waitingDialog = new ProgressDialog(context); | ||
| 24 | + waitingDialog.setMessage("正在连接IP地址"); | ||
| 25 | + waitingDialog.setIndeterminate(true); | ||
| 26 | + waitingDialog.setCancelable(false); | ||
| 27 | + } | ||
| 25 | waitingDialog.show(); | 28 | waitingDialog.show(); |
| 26 | RayLib.connectCloud(context, mac, u_id, code, | 29 | RayLib.connectCloud(context, mac, u_id, code, |
| 27 | term_id, new ConnectCloudListener() { | 30 | term_id, new ConnectCloudListener() { |
updownfile/src/main/java/com/cnlive/updownfile/xiaoRay/adapter/TaskDoingAdapter.java
0 → 100644
| 1 | +package com.cnlive.updownfile.xiaoRay.adapter; | ||
| 2 | + | ||
| 3 | +import android.support.annotation.Nullable; | ||
| 4 | +import android.text.TextUtils; | ||
| 5 | +import android.view.View; | ||
| 6 | +import android.widget.ImageView; | ||
| 7 | + | ||
| 8 | +import com.chad.library.adapter.base.BaseQuickAdapter; | ||
| 9 | +import com.chad.library.adapter.base.BaseViewHolder; | ||
| 10 | +import com.cnlive.updownfile.R; | ||
| 11 | +import com.cnlive.updownfile.xiaoRay.bean.TaskInfoItem; | ||
| 12 | +import com.cnlive.updownfile.xiaoRay.view.RayGlide; | ||
| 13 | +import com.xiaoray.raysdk.constant.FileType; | ||
| 14 | +import com.xiaoray.raysdk.constant.ProgressState; | ||
| 15 | +import com.xiaoray.raysdk.constant.TaskState; | ||
| 16 | +import com.xiaoray.raysdk.constant.TaskType; | ||
| 17 | +import com.xiaoray.raysdk.utils.RayPath; | ||
| 18 | +import com.xiaoray.raysdk.utils.RayUtil; | ||
| 19 | +import java.util.List; | ||
| 20 | + | ||
| 21 | +public class TaskDoingAdapter extends BaseQuickAdapter<TaskInfoItem, BaseViewHolder> { | ||
| 22 | + public static final int TYPE_LEVEL_0 = 0; | ||
| 23 | + public static final int TYPE_LEVEL_1 = 1; | ||
| 24 | + | ||
| 25 | + | ||
| 26 | + public TaskDoingAdapter(int layoutResId, @Nullable List<TaskInfoItem> data) { | ||
| 27 | + super(layoutResId, data); | ||
| 28 | + } | ||
| 29 | + | ||
| 30 | + @Override | ||
| 31 | + protected void convert(BaseViewHolder helper, TaskInfoItem lv1) { | ||
| 32 | + | ||
| 33 | + | ||
| 34 | + helper.setText(R.id.tv_name, lv1.getEtDoing().getFileName()); | ||
| 35 | + if (lv1.getProgress() > 0) { | ||
| 36 | + helper.setVisible(R.id.tv_progress_num, true); | ||
| 37 | + helper.setText(R.id.tv_progress_num, lv1.getProgress() + ""); | ||
| 38 | + } else { | ||
| 39 | + helper.setVisible(R.id.tv_progress_num, false); | ||
| 40 | + } | ||
| 41 | + | ||
| 42 | + | ||
| 43 | + if (lv1.getTaskType() == TaskType.UPLOAD) { | ||
| 44 | +// RayGlide.loadFromRes(mContext, | ||
| 45 | +// R.mipmap.icon_list_upload, (ImageView) helper.getView(R.id.iv_start)); | ||
| 46 | + } else { | ||
| 47 | +// RayGlide.loadFromRes(mContext, | ||
| 48 | +// R.mipmap.icon_list_download, (ImageView) helper.getView(R.id.iv_start)); | ||
| 49 | + } | ||
| 50 | + if (!TextUtils.isEmpty(((TaskInfoItem) lv1).getSpeed())) { | ||
| 51 | + helper.setText(R.id.tv_speed, ((TaskInfoItem) lv1).getSpeed()); | ||
| 52 | + } | ||
| 53 | + | ||
| 54 | + if (lv1.getEtDoing().getTaskState() == TaskState.EXECUTE_UPLOAD_RETURN_ONE) { | ||
| 55 | + helper.setText(R.id.tv_file_size, lv1.getEtDoing().getErrorInfo()); | ||
| 56 | + helper.setText(R.id.tv_speed, ""); | ||
| 57 | + helper.getView(R.id.tv_speed).setVisibility(View.GONE); | ||
| 58 | + } else if (lv1.getEtDoing().getTaskState() == TaskState.EXECUTE_FILE_NOT_EXIT) { | ||
| 59 | + helper.setText(R.id.tv_file_size, lv1.getEtDoing().getErrorInfo()); | ||
| 60 | + helper.setText(R.id.tv_speed, ""); | ||
| 61 | + helper.getView(R.id.tv_speed).setVisibility(View.GONE); | ||
| 62 | + } else { | ||
| 63 | + if (lv1.getProgress() > 0) { | ||
| 64 | + helper.setText(R.id.tv_file_size, RayUtil.getFormatSize(mContext, | ||
| 65 | + ((TaskInfoItem) lv1).getCurrentFileSize()) + "/" + RayUtil.getFormatSize(mContext, lv1.getTotalFileSize())); | ||
| 66 | + helper.getView(R.id.tv_speed).setVisibility(View.VISIBLE); | ||
| 67 | + } else if (lv1.getProgress() == 0) { | ||
| 68 | + helper.setText(R.id.tv_file_size, R.string.waiting); | ||
| 69 | + helper.setText(R.id.tv_speed, ""); | ||
| 70 | + helper.getView(R.id.tv_speed).setVisibility(View.VISIBLE); | ||
| 71 | + } else if (lv1.getProgress() == ProgressState.PROGRESS_PAUSE) { | ||
| 72 | + helper.setText(R.id.tv_file_size, R.string.pause); | ||
| 73 | + helper.setText(R.id.tv_speed, ""); | ||
| 74 | + helper.getView(R.id.tv_speed).setVisibility(View.VISIBLE); | ||
| 75 | + if (lv1.getTaskType() == TaskType.UPLOAD) { | ||
| 76 | + } else if (lv1.getTaskType() == TaskType.DOWNLOAD) { | ||
| 77 | + } | ||
| 78 | + } else if (lv1.getProgress() == ProgressState.PROGRESS_ERROR) { | ||
| 79 | + helper.setText(R.id.tv_file_size, lv1.getErrorInfo()); | ||
| 80 | + helper.setText(R.id.tv_speed, ""); | ||
| 81 | + helper.getView(R.id.tv_speed).setVisibility(View.GONE); | ||
| 82 | + } else if (lv1.getProgress() == ProgressState.PROGRESS_CHECK_MD5) { | ||
| 83 | + helper.setText(R.id.tv_file_size, R.string.upload_check_md5); | ||
| 84 | + helper.setText(R.id.tv_speed, ""); | ||
| 85 | + helper.getView(R.id.tv_speed).setVisibility(View.VISIBLE); | ||
| 86 | + } else { | ||
| 87 | + helper.setText(R.id.tv_file_size, R.string.no_known_condition_happen); | ||
| 88 | + helper.setText(R.id.tv_speed, ""); | ||
| 89 | + helper.getView(R.id.tv_speed).setVisibility(View.GONE); | ||
| 90 | + } | ||
| 91 | + } | ||
| 92 | + | ||
| 93 | + if (lv1.getEtDoing().getFileType() == FileType.TYPE_PHOTO) { | ||
| 94 | + if (lv1.getTaskType() == TaskType.UPLOAD) { | ||
| 95 | + RayGlide.loadLocalRound(mContext, lv1.getEtDoing().getLocalPath(), | ||
| 96 | + R.drawable.bg_photo, (ImageView) helper.getView(R.id.iv_file_type)); | ||
| 97 | + } else if (lv1.getTaskType() == TaskType.DOWNLOAD) { | ||
| 98 | + RayGlide.resRound(mContext, RayPath.downloadUrl(lv1.getEtDoing().getCloudPath()), | ||
| 99 | + R.drawable.bg_photo, (ImageView) helper.getView(R.id.iv_file_type)); | ||
| 100 | + } | ||
| 101 | + } else if (lv1.getEtDoing().getFileType() == FileType.TYPE_VIDEO) { | ||
| 102 | + if (lv1.getTaskType() == TaskType.UPLOAD) { | ||
| 103 | + RayGlide.loadLocalRound(mContext, lv1.getEtDoing().getLocalPath(), | ||
| 104 | + R.drawable.bg_video, (ImageView) helper.getView(R.id.iv_file_type)); | ||
| 105 | + } else if (lv1.getTaskType() == TaskType.DOWNLOAD) { | ||
| 106 | + RayGlide.resRound(mContext, RayPath.downloadUrl(lv1.getEtDoing().getCloudPath()), | ||
| 107 | + R.drawable.bg_video, (ImageView) helper.getView(R.id.iv_file_type)); | ||
| 108 | + } | ||
| 109 | + } else if (lv1.getEtDoing().getFileType() == FileType.TYPE_OTHER || lv1.getEtDoing().getFileType() == FileType.TYPE_DOCUMENT) { | ||
| 110 | + RayGlide.resRound(mContext, R.drawable.bg_doc, | ||
| 111 | + (ImageView) helper.getView(R.id.iv_file_type)); | ||
| 112 | + } else if (lv1.getEtDoing().getFileType() == FileType.TYPE_MUSIC) { | ||
| 113 | + RayGlide.resRound(mContext, R.drawable.bg_music, | ||
| 114 | + (ImageView) helper.getView(R.id.iv_file_type)); | ||
| 115 | + } else { | ||
| 116 | + RayGlide.resRound(mContext, R.drawable.bg_unknown, | ||
| 117 | + (ImageView) helper.getView(R.id.iv_file_type)); | ||
| 118 | + } | ||
| 119 | + | ||
| 120 | + | ||
| 121 | + } | ||
| 122 | + | ||
| 123 | + | ||
| 124 | +} |
updownfile/src/main/java/com/cnlive/updownfile/xiaoRay/adapter/TaskDoneItemAdapter.java
0 → 100644
| 1 | +package com.cnlive.updownfile.xiaoRay.adapter; | ||
| 2 | + | ||
| 3 | +import android.support.annotation.Nullable; | ||
| 4 | +import android.widget.ImageView; | ||
| 5 | + | ||
| 6 | +import com.chad.library.adapter.base.BaseQuickAdapter; | ||
| 7 | +import com.chad.library.adapter.base.BaseViewHolder; | ||
| 8 | +import com.cnlive.updownfile.R; | ||
| 9 | +import com.cnlive.updownfile.xiaoRay.view.RayGlide; | ||
| 10 | +import com.xiaoray.raysdk.constant.FileType; | ||
| 11 | +import com.xiaoray.raysdk.entity.green.TaskDone; | ||
| 12 | +import com.xiaoray.raysdk.utils.RayUtil; | ||
| 13 | + | ||
| 14 | +import java.util.List; | ||
| 15 | + | ||
| 16 | +public class TaskDoneItemAdapter extends BaseQuickAdapter<TaskDone, BaseViewHolder> { | ||
| 17 | + | ||
| 18 | + public TaskDoneItemAdapter(int layoutResId, @Nullable List<TaskDone> data) { | ||
| 19 | + super(layoutResId, data); | ||
| 20 | + } | ||
| 21 | + | ||
| 22 | + @Override | ||
| 23 | + protected void convert(BaseViewHolder helper, TaskDone item) { | ||
| 24 | + helper.setText(R.id.tv_name, item.getFileName()); | ||
| 25 | + helper.setText(R.id.tv_file_size, RayUtil.getFormatSize(mContext, item.getFileSize())); | ||
| 26 | + helper.setText(R.id.tv_time, RayUtil.formatPhotoDateSecond(item.getTaskDoneTime())); | ||
| 27 | + if (item.getFileType() == FileType.TYPE_PHOTO || item.getFileType() == FileType.TYPE_VIDEO) { | ||
| 28 | + RayGlide.loadLocalRound(mContext, item.getFileLocalPath(), R.drawable.ic_launcher, (ImageView) helper.getView(R.id.iv_file_type)); | ||
| 29 | + } else if (item.getFileType() == FileType.TYPE_OTHER || item.getFileType() == FileType.TYPE_DOCUMENT) { | ||
| 30 | + String prefix = RayUtil.getPrefixString(item.getFileLocalPath()); | ||
| 31 | + RayGlide.resRound(mContext, R.drawable.ic_launcher, (ImageView) helper.getView(R.id.iv_file_type)); | ||
| 32 | + } else if (item.getFileType() == FileType.TYPE_MUSIC) { | ||
| 33 | + RayGlide.resRound(mContext, R.drawable.ic_launcher, (ImageView) helper.getView(R.id.iv_file_type)); | ||
| 34 | + } | ||
| 35 | + } | ||
| 36 | +} |
updownfile/src/main/java/com/cnlive/updownfile/xiaoRay/bean/TaskInfoItem.java
0 → 100644
| 1 | +package com.cnlive.updownfile.xiaoRay.bean; | ||
| 2 | + | ||
| 3 | +import com.xiaoray.raysdk.entity.green.TaskDone; | ||
| 4 | +import com.xiaoray.raysdk.entity.green.TaskUndone; | ||
| 5 | + | ||
| 6 | +/** | ||
| 7 | + * @author zww | ||
| 8 | + * @date on 2018/6/12 | ||
| 9 | + * @function | ||
| 10 | + * @filename TaskInfoItem | ||
| 11 | + */ | ||
| 12 | +public class TaskInfoItem { | ||
| 13 | + | ||
| 14 | + private TaskUndone etDoing; | ||
| 15 | + private int progress; | ||
| 16 | + private String errorInfo; | ||
| 17 | + private TaskDone etDone; | ||
| 18 | + private int taskType; | ||
| 19 | + private long currentFileSize; | ||
| 20 | + private String speed; | ||
| 21 | + private long totalFileSize; | ||
| 22 | + | ||
| 23 | + /** | ||
| 24 | + * 正在进行中的 | ||
| 25 | + */ | ||
| 26 | + public TaskInfoItem(TaskUndone etDoing, int progress, String errorInfo, int taskType) { | ||
| 27 | + this.etDoing = etDoing; | ||
| 28 | + this.progress = progress; | ||
| 29 | + this.errorInfo = errorInfo; | ||
| 30 | + this.taskType = taskType; | ||
| 31 | + } | ||
| 32 | + | ||
| 33 | + public long getTotalFileSize() { | ||
| 34 | + return totalFileSize; | ||
| 35 | + } | ||
| 36 | + | ||
| 37 | + public void setTotalFileSize(long totalFileSize) { | ||
| 38 | + this.totalFileSize = totalFileSize; | ||
| 39 | + } | ||
| 40 | + | ||
| 41 | + public long getCurrentFileSize() { | ||
| 42 | + return currentFileSize; | ||
| 43 | + } | ||
| 44 | + | ||
| 45 | + public void setCurrentFileSize(long currentFileSize) { | ||
| 46 | + this.currentFileSize = currentFileSize; | ||
| 47 | + } | ||
| 48 | + | ||
| 49 | + public String getSpeed() { | ||
| 50 | + return speed; | ||
| 51 | + } | ||
| 52 | + | ||
| 53 | + public void setSpeed(String speed) { | ||
| 54 | + this.speed = speed; | ||
| 55 | + } | ||
| 56 | + | ||
| 57 | + /** | ||
| 58 | + * 完成的 | ||
| 59 | + */ | ||
| 60 | + public TaskInfoItem(TaskDone etDone) { | ||
| 61 | + this.etDone = etDone; | ||
| 62 | + } | ||
| 63 | + | ||
| 64 | + public TaskDone getEtDone() { | ||
| 65 | + return etDone; | ||
| 66 | + } | ||
| 67 | + | ||
| 68 | + public void setEtDone(TaskDone etDone) { | ||
| 69 | + this.etDone = etDone; | ||
| 70 | + } | ||
| 71 | + | ||
| 72 | + public TaskUndone getEtDoing() { | ||
| 73 | + return etDoing; | ||
| 74 | + } | ||
| 75 | + | ||
| 76 | + public void setEtDoing(TaskUndone etDoing) { | ||
| 77 | + this.etDoing = etDoing; | ||
| 78 | + } | ||
| 79 | + | ||
| 80 | + public String getErrorInfo() { | ||
| 81 | + return errorInfo; | ||
| 82 | + } | ||
| 83 | + | ||
| 84 | + public void setErrorInfo(String errorInfo) { | ||
| 85 | + this.errorInfo = errorInfo; | ||
| 86 | + } | ||
| 87 | + | ||
| 88 | + public int getProgress() { | ||
| 89 | + return progress; | ||
| 90 | + } | ||
| 91 | + | ||
| 92 | + public void setProgress(int progress) { | ||
| 93 | + this.progress = progress; | ||
| 94 | + } | ||
| 95 | + | ||
| 96 | + public int getTaskType() { | ||
| 97 | + return taskType; | ||
| 98 | + } | ||
| 99 | + | ||
| 100 | + public void setTaskType(int taskType) { | ||
| 101 | + this.taskType = taskType; | ||
| 102 | + } | ||
| 103 | + | ||
| 104 | +// @Override | ||
| 105 | +// public int getItemType() { | ||
| 106 | +// return TaskDoingAdapter.TYPE_LEVEL_1; | ||
| 107 | +// } | ||
| 108 | + | ||
| 109 | + @Override | ||
| 110 | + public String toString() { | ||
| 111 | + return "TaskInfoItem{" + | ||
| 112 | + "etDoing=" + etDoing + | ||
| 113 | + ", progress=" + progress + | ||
| 114 | + ", errorInfo='" + errorInfo + '\'' + | ||
| 115 | + ", etDone=" + etDone + | ||
| 116 | + ", taskType=" + taskType + | ||
| 117 | + ", currentFileSize=" + currentFileSize + | ||
| 118 | + ", speed='" + speed + '\'' + | ||
| 119 | + '}'; | ||
| 120 | + } | ||
| 121 | +} |
updownfile/src/main/java/com/cnlive/updownfile/xiaoRay/ui/BaseFragment.java
0 → 100644
| 1 | +package com.cnlive.updownfile.xiaoRay.ui; | ||
| 2 | + | ||
| 3 | +import android.app.Activity; | ||
| 4 | +import android.app.ProgressDialog; | ||
| 5 | +import android.os.Bundle; | ||
| 6 | +import android.support.v4.app.Fragment; | ||
| 7 | +import android.support.v4.app.FragmentActivity; | ||
| 8 | +import android.view.LayoutInflater; | ||
| 9 | +import android.view.View; | ||
| 10 | +import android.view.ViewGroup; | ||
| 11 | + | ||
| 12 | +import com.xiaoray.raysdk.utils.RayLog; | ||
| 13 | + | ||
| 14 | + | ||
| 15 | + | ||
| 16 | +public abstract class BaseFragment extends Fragment { | ||
| 17 | + /* 布局View */ | ||
| 18 | + public View mLayoutView = null; | ||
| 19 | + public String TAG = getClass().getSimpleName(); | ||
| 20 | + protected FragmentActivity mContext; | ||
| 21 | + | ||
| 22 | + @Override | ||
| 23 | + public void onCreate(Bundle savedInstanceState) { | ||
| 24 | + super.onCreate(savedInstanceState); | ||
| 25 | + RayLog.i("---------------------------------------------- " + TAG + " ---------------------------------------"); | ||
| 26 | + } | ||
| 27 | + | ||
| 28 | + @Override | ||
| 29 | + public View onCreateView(LayoutInflater inflater, ViewGroup container, | ||
| 30 | + Bundle savedInstanceState) { | ||
| 31 | + mLayoutView = inflater.inflate(getLayout(), container, false); | ||
| 32 | + return mLayoutView; | ||
| 33 | + } | ||
| 34 | + | ||
| 35 | + @Override | ||
| 36 | + public void onAttach(Activity context) { | ||
| 37 | + super.onAttach(context); | ||
| 38 | + mContext = (FragmentActivity) context; //保存Context引用 | ||
| 39 | + } | ||
| 40 | + | ||
| 41 | + @Override | ||
| 42 | + public void onDetach() { | ||
| 43 | + super.onDetach(); | ||
| 44 | + mContext = null; | ||
| 45 | + } | ||
| 46 | + | ||
| 47 | + @Override | ||
| 48 | + public void onActivityCreated(Bundle savedInstanceState) { | ||
| 49 | + super.onActivityCreated(savedInstanceState); | ||
| 50 | + isVisible = true; | ||
| 51 | + initView(); | ||
| 52 | + initData(); | ||
| 53 | + initListener(); | ||
| 54 | + } | ||
| 55 | + | ||
| 56 | + /** | ||
| 57 | + * @bref 绑定视图 | ||
| 58 | + */ | ||
| 59 | + protected abstract int getLayout(); | ||
| 60 | + | ||
| 61 | + /** | ||
| 62 | + * @bref 初始化View | ||
| 63 | + */ | ||
| 64 | + public abstract void initView(); | ||
| 65 | + | ||
| 66 | + | ||
| 67 | + /** | ||
| 68 | + * @bref 初始化其他工具 | ||
| 69 | + */ | ||
| 70 | + public abstract void initData(); | ||
| 71 | + | ||
| 72 | + | ||
| 73 | + /** | ||
| 74 | + * @bref 设置监听器 | ||
| 75 | + */ | ||
| 76 | + public abstract void initListener(); | ||
| 77 | + | ||
| 78 | + /** | ||
| 79 | + * @bref findViewById | ||
| 80 | + */ | ||
| 81 | + @SuppressWarnings("unchecked") | ||
| 82 | + public <T extends View> T findView(int id) { | ||
| 83 | + return (T) mLayoutView.findViewById(id); | ||
| 84 | + } | ||
| 85 | + | ||
| 86 | + private boolean isVisible; | ||
| 87 | + private ProgressDialog waitDialog; | ||
| 88 | + | ||
| 89 | + | ||
| 90 | + | ||
| 91 | + | ||
| 92 | + public void hideLoadingDialog() { | ||
| 93 | + if (isVisible && waitDialog != null) { | ||
| 94 | + try { | ||
| 95 | + waitDialog.dismiss(); | ||
| 96 | + waitDialog = null; | ||
| 97 | + } catch (Exception ex) { | ||
| 98 | + ex.printStackTrace(); | ||
| 99 | + } | ||
| 100 | + } | ||
| 101 | + } | ||
| 102 | + | ||
| 103 | +} |
updownfile/src/main/java/com/cnlive/updownfile/xiaoRay/DiretoryActivity.java renamed to updownfile/src/main/java/com/cnlive/updownfile/xiaoRay/ui/DiretoryActivity.java
| 1 | -package com.cnlive.updownfile.xiaoRay; | 1 | +package com.cnlive.updownfile.xiaoRay.ui; |
| 2 | 2 | ||
| 3 | import android.Manifest; | 3 | import android.Manifest; |
| 4 | import android.content.Context; | 4 | import android.content.Context; |
| 5 | import android.content.DialogInterface; | 5 | import android.content.DialogInterface; |
| 6 | import android.content.Intent; | 6 | import android.content.Intent; |
| 7 | -import android.graphics.Bitmap; | ||
| 8 | -import android.media.ThumbnailUtils; | ||
| 9 | import android.os.Environment; | 7 | import android.os.Environment; |
| 10 | -import android.provider.MediaStore; | ||
| 11 | import android.support.v4.app.ActivityCompat; | 8 | import android.support.v4.app.ActivityCompat; |
| 12 | import android.support.v7.app.AlertDialog; | 9 | import android.support.v7.app.AlertDialog; |
| 13 | import android.support.v7.app.AppCompatActivity; | 10 | import android.support.v7.app.AppCompatActivity; |
| @@ -15,7 +12,6 @@ import android.os.Bundle; | @@ -15,7 +12,6 @@ import android.os.Bundle; | ||
| 15 | import android.support.v7.widget.LinearLayoutManager; | 12 | import android.support.v7.widget.LinearLayoutManager; |
| 16 | import android.support.v7.widget.RecyclerView; | 13 | import android.support.v7.widget.RecyclerView; |
| 17 | import android.text.TextUtils; | 14 | import android.text.TextUtils; |
| 18 | -import android.view.Gravity; | ||
| 19 | import android.view.MenuInflater; | 15 | import android.view.MenuInflater; |
| 20 | import android.view.MenuItem; | 16 | import android.view.MenuItem; |
| 21 | import android.view.View; | 17 | import android.view.View; |
| @@ -34,7 +30,9 @@ import com.cnlive.media.picker.ImagePicker; | @@ -34,7 +30,9 @@ import com.cnlive.media.picker.ImagePicker; | ||
| 34 | import com.cnlive.media.picker.PickerConfig; | 30 | import com.cnlive.media.picker.PickerConfig; |
| 35 | import com.cnlive.media.picker.entity.Media; | 31 | import com.cnlive.media.picker.entity.Media; |
| 36 | import com.cnlive.updownfile.R; | 32 | import com.cnlive.updownfile.R; |
| 33 | +import com.cnlive.updownfile.util.DownloadUtil; | ||
| 37 | import com.cnlive.updownfile.util.UploadUtil; | 34 | import com.cnlive.updownfile.util.UploadUtil; |
| 35 | +import com.cnlive.updownfile.xiaoRay.Constant; | ||
| 38 | import com.cnlive.updownfile.xiaoRay.adapter.ShowDiretoryAdapter; | 36 | import com.cnlive.updownfile.xiaoRay.adapter.ShowDiretoryAdapter; |
| 39 | import com.cnlive.updownfile.xiaoRay.bean.DirectoryBean; | 37 | import com.cnlive.updownfile.xiaoRay.bean.DirectoryBean; |
| 40 | import com.cnlive.updownfile.xiaoRay.bean.DirectoryTypeBean; | 38 | import com.cnlive.updownfile.xiaoRay.bean.DirectoryTypeBean; |
| @@ -48,6 +46,9 @@ import com.lcodecore.tkrefreshlayout.TwinklingRefreshLayout; | @@ -48,6 +46,9 @@ import com.lcodecore.tkrefreshlayout.TwinklingRefreshLayout; | ||
| 48 | import com.xiaoray.raysdk.RayLib; | 46 | import com.xiaoray.raysdk.RayLib; |
| 49 | import com.xiaoray.raysdk.constant.FileType; | 47 | import com.xiaoray.raysdk.constant.FileType; |
| 50 | import com.xiaoray.raysdk.entity.bean.LocalCloudPath; | 48 | import com.xiaoray.raysdk.entity.bean.LocalCloudPath; |
| 49 | +import com.xiaoray.raysdk.entity.bus.BusTaskDoneAdd; | ||
| 50 | +import com.xiaoray.raysdk.entity.bus.BusTaskDoneDel; | ||
| 51 | +import com.xiaoray.raysdk.listener.RayDoneListener; | ||
| 51 | import com.xiaoray.raysdk.manager.RayConstant; | 52 | import com.xiaoray.raysdk.manager.RayConstant; |
| 52 | import com.xiaoray.raysdk.service.TaskDownloadService; | 53 | import com.xiaoray.raysdk.service.TaskDownloadService; |
| 53 | import com.xiaoray.raysdk.utils.OkHttpUtils.HttpResult; | 54 | import com.xiaoray.raysdk.utils.OkHttpUtils.HttpResult; |
| @@ -69,6 +70,7 @@ public class DiretoryActivity extends AppCompatActivity implements View.OnClickL | @@ -69,6 +70,7 @@ public class DiretoryActivity extends AppCompatActivity implements View.OnClickL | ||
| 69 | Button add_picture; | 70 | Button add_picture; |
| 70 | Button add_file; | 71 | Button add_file; |
| 71 | Button clear_recyfile; | 72 | Button clear_recyfile; |
| 73 | + Button check_updown; | ||
| 72 | 74 | ||
| 73 | RadioGroup file_type; | 75 | RadioGroup file_type; |
| 74 | RadioGroup file_time; | 76 | RadioGroup file_time; |
| @@ -122,12 +124,14 @@ public class DiretoryActivity extends AppCompatActivity implements View.OnClickL | @@ -122,12 +124,14 @@ public class DiretoryActivity extends AppCompatActivity implements View.OnClickL | ||
| 122 | file_updown = findViewById(R.id.file_updown); | 124 | file_updown = findViewById(R.id.file_updown); |
| 123 | sure = findViewById(R.id.sure); | 125 | sure = findViewById(R.id.sure); |
| 124 | choose = findViewById(R.id.choose); | 126 | choose = findViewById(R.id.choose); |
| 127 | + check_updown = findViewById(R.id.check_updown); | ||
| 125 | if ("recy".equals(type)) { | 128 | if ("recy".equals(type)) { |
| 126 | add_file.setVisibility(View.GONE); | 129 | add_file.setVisibility(View.GONE); |
| 127 | add_picture.setVisibility(View.GONE); | 130 | add_picture.setVisibility(View.GONE); |
| 128 | clear_recyfile.setVisibility(View.VISIBLE); | 131 | clear_recyfile.setVisibility(View.VISIBLE); |
| 129 | choose.setVisibility(View.GONE); | 132 | choose.setVisibility(View.GONE); |
| 130 | btnCreateNewFolder.setVisibility(View.GONE); | 133 | btnCreateNewFolder.setVisibility(View.GONE); |
| 134 | + check_updown.setVisibility(View.GONE); | ||
| 131 | } | 135 | } |
| 132 | refreshDataShow.setHeaderView(new RefreshHeaderView(this)); | 136 | refreshDataShow.setHeaderView(new RefreshHeaderView(this)); |
| 133 | showFilesAdapter = new ShowDiretoryAdapter(R.layout.item_directory, new ArrayList<FileBean>()); | 137 | showFilesAdapter = new ShowDiretoryAdapter(R.layout.item_directory, new ArrayList<FileBean>()); |
| @@ -152,6 +156,10 @@ public class DiretoryActivity extends AppCompatActivity implements View.OnClickL | @@ -152,6 +156,10 @@ public class DiretoryActivity extends AppCompatActivity implements View.OnClickL | ||
| 152 | @Override | 156 | @Override |
| 153 | public boolean onMenuItemClick(MenuItem item) { | 157 | public boolean onMenuItemClick(MenuItem item) { |
| 154 | if (item.getItemId() == R.id.delete) {//删除 | 158 | if (item.getItemId() == R.id.delete) {//删除 |
| 159 | + if("61445".equals(fileBean.getInode()) || "4098".equals(fileBean.getInode()) || "65556".equals(fileBean.getInode()) ||"937991".equals(fileBean.getInode()) ){ | ||
| 160 | + RayToast.showShort("该文件暂不支持删除"); | ||
| 161 | + return false; | ||
| 162 | + } | ||
| 155 | JSONArray jsonArray = new JSONArray(); | 163 | JSONArray jsonArray = new JSONArray(); |
| 156 | JSONArray jsonArray1 = new JSONArray(); | 164 | JSONArray jsonArray1 = new JSONArray(); |
| 157 | jsonArray1.put(fileBean.getInode()); | 165 | jsonArray1.put(fileBean.getInode()); |
| @@ -193,6 +201,10 @@ public class DiretoryActivity extends AppCompatActivity implements View.OnClickL | @@ -193,6 +201,10 @@ public class DiretoryActivity extends AppCompatActivity implements View.OnClickL | ||
| 193 | }); | 201 | }); |
| 194 | builder.create().show(); | 202 | builder.create().show(); |
| 195 | } else if (item.getItemId() == R.id.rename) {//重命名 | 203 | } else if (item.getItemId() == R.id.rename) {//重命名 |
| 204 | + if("61445".equals(fileBean.getInode()) || "4098".equals(fileBean.getInode()) || "65556".equals(fileBean.getInode()) ||"937991".equals(fileBean.getInode()) ){ | ||
| 205 | + RayToast.showShort("该文件暂不支持重命名"); | ||
| 206 | + return false; | ||
| 207 | + } | ||
| 196 | final EditText editText = new EditText(DiretoryActivity.this); | 208 | final EditText editText = new EditText(DiretoryActivity.this); |
| 197 | editText.setText(fileBean.getFname()); | 209 | editText.setText(fileBean.getFname()); |
| 198 | AlertDialog.Builder builder = new AlertDialog.Builder(DiretoryActivity.this) | 210 | AlertDialog.Builder builder = new AlertDialog.Builder(DiretoryActivity.this) |
| @@ -282,8 +294,7 @@ public class DiretoryActivity extends AppCompatActivity implements View.OnClickL | @@ -282,8 +294,7 @@ public class DiretoryActivity extends AppCompatActivity implements View.OnClickL | ||
| 282 | localCloudPath.setCloud(fileBean.getUrl()); | 294 | localCloudPath.setCloud(fileBean.getUrl()); |
| 283 | localCloudPath.setLocal(localPath); | 295 | localCloudPath.setLocal(localPath); |
| 284 | arrayLists.add(localCloudPath); | 296 | arrayLists.add(localCloudPath); |
| 285 | - RayLib.controlDownload(DiretoryActivity.this, TaskDownloadService | ||
| 286 | - .FROM_SELECT_DOWNLOAD, arrayLists); | 297 | + DownloadUtil.addDownload(DiretoryActivity.this, arrayLists); |
| 287 | } | 298 | } |
| 288 | return false; | 299 | return false; |
| 289 | } | 300 | } |
| @@ -295,6 +306,22 @@ public class DiretoryActivity extends AppCompatActivity implements View.OnClickL | @@ -295,6 +306,22 @@ public class DiretoryActivity extends AppCompatActivity implements View.OnClickL | ||
| 295 | rcyDataShow.setAdapter(showFilesAdapter); | 306 | rcyDataShow.setAdapter(showFilesAdapter); |
| 296 | refreshDataShow.setEnableLoadmore(false); | 307 | refreshDataShow.setEnableLoadmore(false); |
| 297 | refreshDataShow.startRefresh(); | 308 | refreshDataShow.startRefresh(); |
| 309 | + | ||
| 310 | + //上传完成通知刷新 | ||
| 311 | + RayLib.setDoneListener(new RayDoneListener() { | ||
| 312 | + @Override | ||
| 313 | + public void doneAdd(BusTaskDoneAdd busTaskDoneAdd) { | ||
| 314 | + //下载完成 | ||
| 315 | + loadingLocal.setVisibility(View.GONE); | ||
| 316 | + RayToast.showShort("下载完成"); | ||
| 317 | + getDiretorys(true, fileType == 0 ? true : false); | ||
| 318 | + } | ||
| 319 | + | ||
| 320 | + @Override | ||
| 321 | + public void doneDel(BusTaskDoneDel busTaskDoneDel) { | ||
| 322 | + | ||
| 323 | + } | ||
| 324 | + }); | ||
| 298 | } | 325 | } |
| 299 | 326 | ||
| 300 | private void initListener() { | 327 | private void initListener() { |
| @@ -320,7 +347,6 @@ public class DiretoryActivity extends AppCompatActivity implements View.OnClickL | @@ -320,7 +347,6 @@ public class DiretoryActivity extends AppCompatActivity implements View.OnClickL | ||
| 320 | intent.putExtra("path", showFilesAdapter.getData().get(position).getPath() + showFilesAdapter.getData().get(position).getFname() + File.separator); | 347 | intent.putExtra("path", showFilesAdapter.getData().get(position).getPath() + showFilesAdapter.getData().get(position).getFname() + File.separator); |
| 321 | startActivity(intent); | 348 | startActivity(intent); |
| 322 | } | 349 | } |
| 323 | - | ||
| 324 | } | 350 | } |
| 325 | }); | 351 | }); |
| 326 | btnCreateNewFolder.setOnClickListener(this); | 352 | btnCreateNewFolder.setOnClickListener(this); |
| @@ -329,6 +355,7 @@ public class DiretoryActivity extends AppCompatActivity implements View.OnClickL | @@ -329,6 +355,7 @@ public class DiretoryActivity extends AppCompatActivity implements View.OnClickL | ||
| 329 | add_file.setOnClickListener(this); | 355 | add_file.setOnClickListener(this); |
| 330 | clear_recyfile.setOnClickListener(this); | 356 | clear_recyfile.setOnClickListener(this); |
| 331 | sure.setOnClickListener(this); | 357 | sure.setOnClickListener(this); |
| 358 | + check_updown.setOnClickListener(this); | ||
| 332 | 359 | ||
| 333 | file_type.setOnCheckedChangeListener(this); | 360 | file_type.setOnCheckedChangeListener(this); |
| 334 | file_time.setOnCheckedChangeListener(this); | 361 | file_time.setOnCheckedChangeListener(this); |
| @@ -376,7 +403,7 @@ public class DiretoryActivity extends AppCompatActivity implements View.OnClickL | @@ -376,7 +403,7 @@ public class DiretoryActivity extends AppCompatActivity implements View.OnClickL | ||
| 376 | } | 403 | } |
| 377 | }); | 404 | }); |
| 378 | } else { | 405 | } else { |
| 379 | - if (hasType) {//全部加载 | 406 | + if (hasType) {//全部加载,另一个是回收站 |
| 380 | RayLib.getFilesByDirectory(0, folderPath, page = header ? 1 : page, 50, 1, 1, this, new HttpResult() { | 407 | RayLib.getFilesByDirectory(0, folderPath, page = header ? 1 : page, 50, 1, 1, this, new HttpResult() { |
| 381 | @Override | 408 | @Override |
| 382 | public void onError(int errorCode, String error) { | 409 | public void onError(int errorCode, String error) { |
| @@ -530,6 +557,8 @@ public class DiretoryActivity extends AppCompatActivity implements View.OnClickL | @@ -530,6 +557,8 @@ public class DiretoryActivity extends AppCompatActivity implements View.OnClickL | ||
| 530 | }); | 557 | }); |
| 531 | } else if (vid == R.id.sure) { | 558 | } else if (vid == R.id.sure) { |
| 532 | getDiretorys(true, fileType == 0 ? true : false); | 559 | getDiretorys(true, fileType == 0 ? true : false); |
| 560 | + }else if(vid == R.id.check_updown){//查看上传下载任务 | ||
| 561 | + TaskActivity.startTaskActivity(DiretoryActivity.this); | ||
| 533 | } | 562 | } |
| 534 | } | 563 | } |
| 535 | 564 | ||
| @@ -550,6 +579,7 @@ public class DiretoryActivity extends AppCompatActivity implements View.OnClickL | @@ -550,6 +579,7 @@ public class DiretoryActivity extends AppCompatActivity implements View.OnClickL | ||
| 550 | lists.add(localCloudPath); | 579 | lists.add(localCloudPath); |
| 551 | } | 580 | } |
| 552 | UploadUtil.xiaoRayUploadFile(this, lists); | 581 | UploadUtil.xiaoRayUploadFile(this, lists); |
| 582 | + loadingLocal.setVisibility(View.VISIBLE); | ||
| 553 | Toast.makeText(this, "正在开始上传", Toast.LENGTH_LONG).show(); | 583 | Toast.makeText(this, "正在开始上传", Toast.LENGTH_LONG).show(); |
| 554 | break; | 584 | break; |
| 555 | case 1009: | 585 | case 1009: |
updownfile/src/main/java/com/cnlive/updownfile/xiaoRay/InitViewActivity.java renamed to updownfile/src/main/java/com/cnlive/updownfile/xiaoRay/ui/InitViewActivity.java
| 1 | -package com.cnlive.updownfile.xiaoRay; | 1 | +package com.cnlive.updownfile.xiaoRay.ui; |
| 2 | 2 | ||
| 3 | import android.os.Environment; | 3 | import android.os.Environment; |
| 4 | import android.support.v7.app.AppCompatActivity; | 4 | import android.support.v7.app.AppCompatActivity; |
| @@ -7,6 +7,7 @@ import android.view.View; | @@ -7,6 +7,7 @@ import android.view.View; | ||
| 7 | import android.widget.TextView; | 7 | import android.widget.TextView; |
| 8 | import com.cnlive.updownfile.R; | 8 | import com.cnlive.updownfile.R; |
| 9 | import com.cnlive.updownfile.util.DownloadUtil; | 9 | import com.cnlive.updownfile.util.DownloadUtil; |
| 10 | +import com.cnlive.updownfile.xiaoRay.Constant; | ||
| 10 | import com.xiaoray.raysdk.RayLib; | 11 | import com.xiaoray.raysdk.RayLib; |
| 11 | import com.xiaoray.raysdk.entity.bean.LocalCloudPath; | 12 | import com.xiaoray.raysdk.entity.bean.LocalCloudPath; |
| 12 | import com.xiaoray.raysdk.utils.OkHttpUtils.HttpResult; | 13 | import com.xiaoray.raysdk.utils.OkHttpUtils.HttpResult; |
| @@ -20,6 +21,7 @@ public class InitViewActivity extends AppCompatActivity implements View.OnClickL | @@ -20,6 +21,7 @@ public class InitViewActivity extends AppCompatActivity implements View.OnClickL | ||
| 20 | private TextView show_data; | 21 | private TextView show_data; |
| 21 | private TextView enter_file; | 22 | private TextView enter_file; |
| 22 | private TextView recyclerFiles; | 23 | private TextView recyclerFiles; |
| 24 | + private TextView again; | ||
| 23 | 25 | ||
| 24 | @Override | 26 | @Override |
| 25 | protected void onCreate(Bundle savedInstanceState) { | 27 | protected void onCreate(Bundle savedInstanceState) { |
| @@ -33,11 +35,13 @@ public class InitViewActivity extends AppCompatActivity implements View.OnClickL | @@ -33,11 +35,13 @@ public class InitViewActivity extends AppCompatActivity implements View.OnClickL | ||
| 33 | show_data = findViewById(R.id.show_data); | 35 | show_data = findViewById(R.id.show_data); |
| 34 | enter_file = findViewById(R.id.enter_file); | 36 | enter_file = findViewById(R.id.enter_file); |
| 35 | recyclerFiles = findViewById(R.id.recyclerFiles); | 37 | recyclerFiles = findViewById(R.id.recyclerFiles); |
| 38 | + again = findViewById(R.id.again); | ||
| 36 | 39 | ||
| 37 | 40 | ||
| 38 | show_data.setOnClickListener(this); | 41 | show_data.setOnClickListener(this); |
| 39 | enter_file.setOnClickListener(this); | 42 | enter_file.setOnClickListener(this); |
| 40 | recyclerFiles.setOnClickListener(this); | 43 | recyclerFiles.setOnClickListener(this); |
| 44 | + again.setOnClickListener(this); | ||
| 41 | } | 45 | } |
| 42 | 46 | ||
| 43 | @Override | 47 | @Override |
| @@ -58,19 +62,8 @@ public class InitViewActivity extends AppCompatActivity implements View.OnClickL | @@ -58,19 +62,8 @@ public class InitViewActivity extends AppCompatActivity implements View.OnClickL | ||
| 58 | DiretoryActivity.startDiretoryActivity(InitViewActivity.this,"recy","/"); | 62 | DiretoryActivity.startDiretoryActivity(InitViewActivity.this,"recy","/"); |
| 59 | } | 63 | } |
| 60 | }); | 64 | }); |
| 65 | + }else if(i == R.id.again){ | ||
| 66 | + Constant.initXiaoRay(this, "a4:11:63:61:00:02", "8656", "625624", "3D6B5148-98D8-4642-9909-45AEBBEEC8E0"); | ||
| 61 | } | 67 | } |
| 62 | } | 68 | } |
| 63 | - | ||
| 64 | - /** | ||
| 65 | - * 文件下载 | ||
| 66 | - */ | ||
| 67 | - private void addDownload(String cloudPath) { | ||
| 68 | - ArrayList<LocalCloudPath> arrayLists = new ArrayList<>(); | ||
| 69 | - String localPath = Environment.getExternalStorageDirectory().toString(); | ||
| 70 | - LocalCloudPath localCloudPath = new LocalCloudPath(); | ||
| 71 | - localCloudPath.setCloud(cloudPath); | ||
| 72 | - localCloudPath.setLocal(localPath); | ||
| 73 | - arrayLists.add(localCloudPath); | ||
| 74 | - DownloadUtil.addDownload(InitViewActivity.this, arrayLists); | ||
| 75 | - } | ||
| 76 | } | 69 | } |
updownfile/src/main/java/com/cnlive/updownfile/xiaoRay/ui/TaskActivity.java
0 → 100644
| 1 | +package com.cnlive.updownfile.xiaoRay.ui; | ||
| 2 | + | ||
| 3 | +import android.content.Context; | ||
| 4 | +import android.content.Intent; | ||
| 5 | +import android.graphics.drawable.BitmapDrawable; | ||
| 6 | +import android.support.v4.app.FragmentTransaction; | ||
| 7 | +import android.support.v7.app.AppCompatActivity; | ||
| 8 | +import android.os.Bundle; | ||
| 9 | +import android.view.Gravity; | ||
| 10 | +import android.view.LayoutInflater; | ||
| 11 | +import android.view.View; | ||
| 12 | +import android.view.ViewGroup; | ||
| 13 | +import android.widget.ImageView; | ||
| 14 | +import android.widget.PopupWindow; | ||
| 15 | +import android.widget.RadioGroup; | ||
| 16 | +import android.widget.TextView; | ||
| 17 | + | ||
| 18 | +import com.cnlive.updownfile.R; | ||
| 19 | +import com.xiaoray.raysdk.RayLib; | ||
| 20 | +import com.xiaoray.raysdk.service.TaskDownloadService; | ||
| 21 | +import com.xiaoray.raysdk.service.TaskUploadService; | ||
| 22 | + | ||
| 23 | +public class TaskActivity extends AppCompatActivity { | ||
| 24 | + | ||
| 25 | + private RadioGroup radioGroup; | ||
| 26 | + private TaskDoingFragment doingFragment; | ||
| 27 | + private TaskDoneFragment doneFragment; | ||
| 28 | + private ImageView pop; | ||
| 29 | + | ||
| 30 | + public static void startTaskActivity(Context context){ | ||
| 31 | + Intent intent = new Intent(context,TaskActivity.class); | ||
| 32 | + context.startActivity(intent); | ||
| 33 | + } | ||
| 34 | + | ||
| 35 | + @Override | ||
| 36 | + protected void onCreate(Bundle savedInstanceState) { | ||
| 37 | + super.onCreate(savedInstanceState); | ||
| 38 | + setContentView(R.layout.activity_task); | ||
| 39 | + radioGroup = findViewById(R.id.module_task_tab); | ||
| 40 | + pop = findViewById(R.id.pop); | ||
| 41 | + doingFragment = new TaskDoingFragment(); | ||
| 42 | + doneFragment = new TaskDoneFragment(); | ||
| 43 | + | ||
| 44 | + radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { | ||
| 45 | + @Override | ||
| 46 | + public void onCheckedChanged(RadioGroup group, int checkedId) { | ||
| 47 | + FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction(); | ||
| 48 | + if ((group.getChildAt(0).getId()) == checkedId) { | ||
| 49 | + fragmentTransaction.hide(doneFragment); | ||
| 50 | + fragmentTransaction.show(doingFragment); | ||
| 51 | + } else { | ||
| 52 | + fragmentTransaction.hide(doingFragment); | ||
| 53 | + fragmentTransaction.show(doneFragment); | ||
| 54 | + } | ||
| 55 | + fragmentTransaction.commit(); | ||
| 56 | + } | ||
| 57 | + }); | ||
| 58 | + | ||
| 59 | + pop.setOnClickListener(new View.OnClickListener() { | ||
| 60 | + @Override | ||
| 61 | + public void onClick(View v) { | ||
| 62 | + showPopupWindow(); | ||
| 63 | + } | ||
| 64 | + }); | ||
| 65 | + FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction(); | ||
| 66 | + fragmentTransaction.add(R.id.fm_fragment, doingFragment); | ||
| 67 | + fragmentTransaction.add(R.id.fm_fragment, doneFragment); | ||
| 68 | + fragmentTransaction.commit(); | ||
| 69 | + | ||
| 70 | + radioGroup.check(radioGroup.getChildAt(0).getId()); | ||
| 71 | + fragmentTransaction.show(doingFragment); | ||
| 72 | + fragmentTransaction.hide(doneFragment); | ||
| 73 | + } | ||
| 74 | + | ||
| 75 | + private void showPopupWindow() { | ||
| 76 | + View contentView = LayoutInflater.from(getBaseContext()).inflate(R.layout.popupp_exercise, (ViewGroup) findViewById(R.id.exercise_ll), false); | ||
| 77 | + TextView delete = contentView.findViewById(R.id.all_delete); | ||
| 78 | + final TextView start = contentView.findViewById(R.id.all_start); | ||
| 79 | + TextView cancel = contentView.findViewById(R.id.cancel_popup); | ||
| 80 | + start.setVisibility(radioGroup.getCheckedRadioButtonId() == R.id.rb_doing ? View.VISIBLE : View.GONE); | ||
| 81 | + if (radioGroup.getCheckedRadioButtonId() == R.id.rb_doing) { | ||
| 82 | + delete.setText(R.string.all_delete); | ||
| 83 | + } else { | ||
| 84 | + delete.setText("清除完成的任务"); | ||
| 85 | + } | ||
| 86 | + if (TaskUploadService.isPauseState && TaskDownloadService.isAllPauseState) { | ||
| 87 | + start.setText(R.string.all_start); | ||
| 88 | + } else { | ||
| 89 | + start.setText(R.string.all_pause); | ||
| 90 | + } | ||
| 91 | + final PopupWindow popupWindow = new PopupWindow(contentView, ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT); | ||
| 92 | + start.setOnClickListener(new View.OnClickListener() { | ||
| 93 | + @Override | ||
| 94 | + public void onClick(View v) { | ||
| 95 | + if (TaskUploadService.isPauseState && TaskDownloadService.isAllPauseState) { | ||
| 96 | + RayLib.controlUpload(getBaseContext(), TaskUploadService.FROM_START_ALL, null); | ||
| 97 | + RayLib.controlDownload(getBaseContext(), TaskDownloadService.FROM_CLICK_START, null); | ||
| 98 | + } else { | ||
| 99 | + RayLib.controlUpload(getBaseContext(), TaskUploadService.FROM_PAUSE_ALL, null); | ||
| 100 | + RayLib.controlDownload(getBaseContext(), TaskDownloadService.FROM_CLICK_PAUSE, null); | ||
| 101 | + } | ||
| 102 | + popupWindow.dismiss(); | ||
| 103 | + } | ||
| 104 | + }); | ||
| 105 | + delete.setOnClickListener(new View.OnClickListener() { | ||
| 106 | + @Override | ||
| 107 | + public void onClick(View v) { | ||
| 108 | + if (radioGroup.getCheckedRadioButtonId() == R.id.rb_doing) { | ||
| 109 | + RayLib.controlUpload(getBaseContext(), TaskUploadService.FROM_DELETE_DOING, null); | ||
| 110 | + RayLib.controlDownload(getBaseContext(), TaskDownloadService.FROM_DELETE_DOING, null); | ||
| 111 | + } else { | ||
| 112 | + RayLib.controlUpload(getBaseContext(), TaskUploadService.FROM_DELETE_DONE, null); | ||
| 113 | + } | ||
| 114 | + popupWindow.dismiss(); | ||
| 115 | + } | ||
| 116 | + }); | ||
| 117 | + cancel.setOnClickListener(new View.OnClickListener() { | ||
| 118 | + @Override | ||
| 119 | + public void onClick(View v) { | ||
| 120 | + popupWindow.dismiss(); | ||
| 121 | + } | ||
| 122 | + }); | ||
| 123 | + popupWindow.setBackgroundDrawable(new BitmapDrawable()); | ||
| 124 | + popupWindow.setOutsideTouchable(true); | ||
| 125 | + popupWindow.showAtLocation(findViewById(R.id.exercise_ll), Gravity.BOTTOM, 0, 0); | ||
| 126 | + | ||
| 127 | + } | ||
| 128 | +} |
updownfile/src/main/java/com/cnlive/updownfile/xiaoRay/ui/TaskDoingFragment.java
0 → 100644
| 1 | +package com.cnlive.updownfile.xiaoRay.ui; | ||
| 2 | + | ||
| 3 | +import android.os.Handler; | ||
| 4 | +import android.support.v7.widget.LinearLayoutManager; | ||
| 5 | +import android.support.v7.widget.RecyclerView; | ||
| 6 | +import android.util.Log; | ||
| 7 | +import android.view.ViewGroup; | ||
| 8 | +import android.widget.LinearLayout; | ||
| 9 | + | ||
| 10 | +import com.cnlive.updownfile.R; | ||
| 11 | +import com.cnlive.updownfile.xiaoRay.adapter.TaskDoingAdapter; | ||
| 12 | +import com.cnlive.updownfile.xiaoRay.bean.TaskInfoItem; | ||
| 13 | +import com.cnlive.updownfile.xiaoRay.view.WrapLinearLayout; | ||
| 14 | +import com.xiaoray.raysdk.RayLib; | ||
| 15 | +import com.xiaoray.raysdk.constant.ProgressState; | ||
| 16 | +import com.xiaoray.raysdk.constant.TaskType; | ||
| 17 | +import com.xiaoray.raysdk.entity.bus.BusTaskDoingDeleteDone; | ||
| 18 | +import com.xiaoray.raysdk.entity.bus.TaskCheckMd5; | ||
| 19 | +import com.xiaoray.raysdk.entity.bus.TaskClickPause; | ||
| 20 | +import com.xiaoray.raysdk.entity.bus.TaskClickStart; | ||
| 21 | +import com.xiaoray.raysdk.entity.bus.TaskDeleteDoing; | ||
| 22 | +import com.xiaoray.raysdk.entity.bus.TaskErrorBus; | ||
| 23 | +import com.xiaoray.raysdk.entity.bus.TaskProgress; | ||
| 24 | +import com.xiaoray.raysdk.entity.green.TaskUndone; | ||
| 25 | +import com.xiaoray.raysdk.listener.RayProgressListener; | ||
| 26 | +import com.xiaoray.raysdk.utils.RayLog; | ||
| 27 | +import com.xiaoray.raysdk.utils.dataHelper.TaskDoingHelper; | ||
| 28 | + | ||
| 29 | +import org.greenrobot.eventbus.EventBus; | ||
| 30 | +import org.greenrobot.eventbus.Subscribe; | ||
| 31 | +import org.greenrobot.eventbus.ThreadMode; | ||
| 32 | + | ||
| 33 | +import java.util.ArrayList; | ||
| 34 | +import java.util.List; | ||
| 35 | + | ||
| 36 | +public class TaskDoingFragment extends BaseFragment { | ||
| 37 | + | ||
| 38 | + private RecyclerView taskRecyclerView; | ||
| 39 | + private TaskDoingAdapter taskDoingAdapter; | ||
| 40 | + private LinearLayout llRoot; | ||
| 41 | + | ||
| 42 | + @Override | ||
| 43 | + protected int getLayout() { | ||
| 44 | + return R.layout.fragment_task; | ||
| 45 | + } | ||
| 46 | + | ||
| 47 | + @Override | ||
| 48 | + public void initView() { | ||
| 49 | + taskRecyclerView = findView(R.id.task_recycler); | ||
| 50 | + llRoot = findView(R.id.ll_root); | ||
| 51 | + taskRecyclerView.setLayoutManager(new WrapLinearLayout(mContext, | ||
| 52 | + LinearLayoutManager.VERTICAL, false)); | ||
| 53 | + EventBus.getDefault().register(this); | ||
| 54 | + } | ||
| 55 | + | ||
| 56 | + @Override | ||
| 57 | + public void initData() { | ||
| 58 | + getUploading(); | ||
| 59 | + } | ||
| 60 | + | ||
| 61 | + private void getUploading() { | ||
| 62 | + TaskDoingHelper.deleteLocalPathValid(); | ||
| 63 | + TaskDoingHelper.deleteValidData(); | ||
| 64 | + List<TaskUndone> upload = TaskDoingHelper.selectDoingFile(TaskType.UPLOAD); | ||
| 65 | + List<TaskUndone> download = TaskDoingHelper.selectDoingFile(TaskType.DOWNLOAD); | ||
| 66 | + | ||
| 67 | + ArrayList<TaskInfoItem> adapterList = new ArrayList<>(); | ||
| 68 | + if (upload != null && upload.size() > 0) { | ||
| 69 | + for (int i = 0; i < upload.size(); i++) { | ||
| 70 | + TaskUndone et = upload.get(i); | ||
| 71 | + adapterList.add(new TaskInfoItem(et, 0, "", TaskType.UPLOAD)); | ||
| 72 | + } | ||
| 73 | + } | ||
| 74 | + if (download != null && download.size() > 0) { | ||
| 75 | + for (int i = 0; i < download.size(); i++) { | ||
| 76 | + TaskUndone et = download.get(i); | ||
| 77 | + adapterList.add(new TaskInfoItem(et, 0, "", TaskType.DOWNLOAD)); | ||
| 78 | + } | ||
| 79 | + } | ||
| 80 | + taskDoingAdapter = new TaskDoingAdapter(R.layout.item_task_info, adapterList); | ||
| 81 | + taskRecyclerView.setAdapter(taskDoingAdapter); | ||
| 82 | + taskDoingAdapter.notifyDataSetChanged(); | ||
| 83 | + showNoDataView(); | ||
| 84 | + RayLog.e("taskDoingAdapter :" + taskDoingAdapter.getData()); | ||
| 85 | + } | ||
| 86 | + | ||
| 87 | + | ||
| 88 | + @Override | ||
| 89 | + public void initListener() { | ||
| 90 | + | ||
| 91 | + | ||
| 92 | + /** | ||
| 93 | + * 里面的回调都是在子线程,需要发送到主线程, 没有采用Handler,用的是Eventbus | ||
| 94 | + */ | ||
| 95 | + RayLib.setProgressListener(new RayProgressListener() { | ||
| 96 | + @Override | ||
| 97 | + public void onProgressChange(TaskProgress event) { | ||
| 98 | + EventBus.getDefault().post(new TaskProgress(event.getId(), | ||
| 99 | + event.getCloudPath(), | ||
| 100 | + event.getTaskType(), event.getCurrentFileSize(), event.getSpeed(), | ||
| 101 | + event.getProgress(), event.getTotalFileSize())); | ||
| 102 | + } | ||
| 103 | + | ||
| 104 | + | ||
| 105 | + /** | ||
| 106 | + *检查md5 | ||
| 107 | + */ | ||
| 108 | + public void md5(TaskCheckMd5 event) { | ||
| 109 | + EventBus.getDefault().post(new TaskCheckMd5(event.getId(), | ||
| 110 | + event.getTaskType())); | ||
| 111 | + } | ||
| 112 | + | ||
| 113 | + /** | ||
| 114 | + * 删除完成的任务 | ||
| 115 | + */ | ||
| 116 | + public void done(BusTaskDoingDeleteDone event) { | ||
| 117 | + EventBus.getDefault().post(new BusTaskDoingDeleteDone(event.getId(), | ||
| 118 | + event.getCloudPath(), event.getTaskType())); | ||
| 119 | + } | ||
| 120 | + | ||
| 121 | + /** | ||
| 122 | + * 展示出错的任务 | ||
| 123 | + */ | ||
| 124 | + public void error(TaskErrorBus event) { | ||
| 125 | + EventBus.getDefault().post(new TaskErrorBus(event.getId(), | ||
| 126 | + event.getTaskType(), event.getFileName(), event.getFileSize(), | ||
| 127 | + event.getErrorInfo())); | ||
| 128 | + } | ||
| 129 | + | ||
| 130 | + /** | ||
| 131 | + * 点击开始 | ||
| 132 | + */ | ||
| 133 | + public void start(TaskClickStart event) { | ||
| 134 | + EventBus.getDefault().post(new TaskClickStart()); | ||
| 135 | + } | ||
| 136 | + | ||
| 137 | + /** | ||
| 138 | + * 点击暂停 | ||
| 139 | + */ | ||
| 140 | + public void pause(TaskClickPause event) { | ||
| 141 | + EventBus.getDefault().post(new TaskClickPause(event.isAll(), | ||
| 142 | + event.getFileId())); | ||
| 143 | + } | ||
| 144 | + | ||
| 145 | + /** | ||
| 146 | + * 删除所有的进行中的任务 | ||
| 147 | + */ | ||
| 148 | + public void delete(TaskDeleteDoing event) { | ||
| 149 | + EventBus.getDefault().post(new TaskDeleteDoing()); | ||
| 150 | + } | ||
| 151 | + }); | ||
| 152 | + startLog(); | ||
| 153 | + } | ||
| 154 | + | ||
| 155 | + Handler handler = new Handler(); | ||
| 156 | + private void startLog() { | ||
| 157 | + handler.postDelayed(new Runnable() { | ||
| 158 | + @Override | ||
| 159 | + public void run() { | ||
| 160 | + Log.e("打印获取任务", "进度信息:" + RayLib.getProgressInfo()); | ||
| 161 | + startLog(); | ||
| 162 | + } | ||
| 163 | + }, 1000); | ||
| 164 | + } | ||
| 165 | + | ||
| 166 | + | ||
| 167 | + private void showNoDataView() { | ||
| 168 | + if (taskDoingAdapter.getData().size() == 0) { | ||
| 169 | + taskDoingAdapter.getData().clear(); | ||
| 170 | + taskDoingAdapter.notifyDataSetChanged(); | ||
| 171 | + taskDoingAdapter.setEmptyView(R.layout.layout_no_data_text, | ||
| 172 | + (ViewGroup) taskRecyclerView.getParent()); | ||
| 173 | + } | ||
| 174 | + } | ||
| 175 | + | ||
| 176 | + @Override | ||
| 177 | + public void onDestroyView() { | ||
| 178 | + super.onDestroyView(); | ||
| 179 | + EventBus.getDefault().unregister(this); | ||
| 180 | + handler.removeCallbacksAndMessages(null); | ||
| 181 | + } | ||
| 182 | + | ||
| 183 | + /** | ||
| 184 | + * 更新进度条 | ||
| 185 | + */ | ||
| 186 | + @Subscribe(threadMode = ThreadMode.MAIN) | ||
| 187 | + public void doing(TaskProgress event) { | ||
| 188 | + for (int i = 0; i < taskDoingAdapter.getData().size(); i++) { | ||
| 189 | + if (((TaskInfoItem) taskDoingAdapter.getData().get(i)).getEtDoing().getId() == | ||
| 190 | + event.getId()) { | ||
| 191 | + TaskInfoItem taskInfoItem = ((TaskInfoItem) taskDoingAdapter.getData().get | ||
| 192 | + (i)); | ||
| 193 | + taskInfoItem.setProgress(event.getProgress()); | ||
| 194 | + taskInfoItem.setCurrentFileSize(event.getCurrentFileSize()); | ||
| 195 | + taskInfoItem.setTotalFileSize(event.getTotalFileSize()); | ||
| 196 | + taskInfoItem.setSpeed(event.getSpeed()); | ||
| 197 | + taskDoingAdapter.notifyItemChanged(i); | ||
| 198 | + } | ||
| 199 | + } | ||
| 200 | + } | ||
| 201 | + | ||
| 202 | + /** | ||
| 203 | + * *检查md5 | ||
| 204 | + */ | ||
| 205 | + @Subscribe(threadMode = ThreadMode.MAIN) | ||
| 206 | + public void md5(TaskCheckMd5 event) { | ||
| 207 | + for (int i = 0; i < taskDoingAdapter.getData().size(); i++) { | ||
| 208 | + if (((TaskInfoItem) taskDoingAdapter.getData().get(i)).getEtDoing().getId() == | ||
| 209 | + event.getId()) { | ||
| 210 | + TaskInfoItem taskInfoItem = ((TaskInfoItem) taskDoingAdapter.getData().get | ||
| 211 | + (i)); | ||
| 212 | + taskInfoItem.setProgress(ProgressState.PROGRESS_CHECK_MD5); | ||
| 213 | + taskDoingAdapter.notifyItemChanged(i); | ||
| 214 | + } | ||
| 215 | + } | ||
| 216 | + } | ||
| 217 | + | ||
| 218 | + /** | ||
| 219 | + * 上传或者下载完成的监听。 | ||
| 220 | + * | ||
| 221 | + * 删除完成的任务 | ||
| 222 | + */ | ||
| 223 | + @Subscribe(threadMode = ThreadMode.MAIN) | ||
| 224 | + public void done(BusTaskDoingDeleteDone event) { | ||
| 225 | + for (int i = 0; i < taskDoingAdapter.getData().size(); i++) { | ||
| 226 | + if (((TaskInfoItem) taskDoingAdapter.getData().get(i)).getEtDoing().getId() == | ||
| 227 | + event.getId()) { | ||
| 228 | + taskDoingAdapter.remove(i); | ||
| 229 | + break; | ||
| 230 | + } | ||
| 231 | + } | ||
| 232 | + showNoDataView(); | ||
| 233 | + } | ||
| 234 | + | ||
| 235 | + /** | ||
| 236 | + * 展示出错的任务 | ||
| 237 | + */ | ||
| 238 | + @Subscribe(threadMode = ThreadMode.MAIN) | ||
| 239 | + public void error(TaskErrorBus event) { | ||
| 240 | + for (int i = 0; i < taskDoingAdapter.getData().size(); i++) { | ||
| 241 | + if (((TaskInfoItem) taskDoingAdapter.getData().get(i)).getEtDoing().getId() == | ||
| 242 | + event.getId()) { | ||
| 243 | + ((TaskInfoItem) taskDoingAdapter.getData().get(i)).setProgress | ||
| 244 | + (ProgressState.PROGRESS_ERROR); | ||
| 245 | + ((TaskInfoItem) taskDoingAdapter.getData().get(i)).setErrorInfo(event | ||
| 246 | + .getErrorInfo()); | ||
| 247 | + taskDoingAdapter.notifyItemChanged(i); | ||
| 248 | + break; | ||
| 249 | + } | ||
| 250 | + } | ||
| 251 | + } | ||
| 252 | + | ||
| 253 | + /** | ||
| 254 | + * 点击开始 | ||
| 255 | + */ | ||
| 256 | + @Subscribe(threadMode = ThreadMode.MAIN) | ||
| 257 | + public void start(TaskClickStart event) { | ||
| 258 | + for (int i = 0; i < taskDoingAdapter.getData().size(); i++) { | ||
| 259 | + ((TaskInfoItem) taskDoingAdapter.getData().get(i)).setProgress(0); | ||
| 260 | + } | ||
| 261 | + taskDoingAdapter.notifyDataSetChanged(); | ||
| 262 | + } | ||
| 263 | + | ||
| 264 | + /** | ||
| 265 | + * 点击暂停 | ||
| 266 | + */ | ||
| 267 | + @Subscribe(threadMode = ThreadMode.MAIN) | ||
| 268 | + public void pause(TaskClickPause event) { | ||
| 269 | + if (event.isAll()) { | ||
| 270 | + for (int i = 0; i < taskDoingAdapter.getData().size(); i++) { | ||
| 271 | + ((TaskInfoItem) taskDoingAdapter.getData().get(i)).setProgress | ||
| 272 | + (ProgressState.PROGRESS_PAUSE); | ||
| 273 | + } | ||
| 274 | + taskDoingAdapter.notifyDataSetChanged(); | ||
| 275 | + } else { | ||
| 276 | + for (int i = 0; i < taskDoingAdapter.getData().size(); i++) { | ||
| 277 | + if (((TaskInfoItem) taskDoingAdapter.getData().get(i)).getEtDoing().getId() | ||
| 278 | + == event.getFileId()) { | ||
| 279 | + ((TaskInfoItem) taskDoingAdapter.getData().get(i)).setProgress | ||
| 280 | + (ProgressState.PROGRESS_PAUSE); | ||
| 281 | + taskDoingAdapter.notifyItemChanged(i); | ||
| 282 | + break; | ||
| 283 | + } | ||
| 284 | + } | ||
| 285 | + } | ||
| 286 | + | ||
| 287 | + } | ||
| 288 | + | ||
| 289 | + /** | ||
| 290 | + * 删除所有的进行中的任务 | ||
| 291 | + */ | ||
| 292 | + @Subscribe(threadMode = ThreadMode.MAIN) | ||
| 293 | + public void delete(TaskDeleteDoing event) { | ||
| 294 | + taskDoingAdapter.getData().clear(); | ||
| 295 | + taskDoingAdapter.notifyDataSetChanged(); | ||
| 296 | + taskDoingAdapter.setEmptyView(R.layout.layout_no_data_text, llRoot); | ||
| 297 | + } | ||
| 298 | +} |
updownfile/src/main/java/com/cnlive/updownfile/xiaoRay/ui/TaskDoneFragment.java
0 → 100644
| 1 | +package com.cnlive.updownfile.xiaoRay.ui; | ||
| 2 | + | ||
| 3 | +import android.support.v7.widget.LinearLayoutManager; | ||
| 4 | +import android.support.v7.widget.RecyclerView; | ||
| 5 | +import android.view.ViewGroup; | ||
| 6 | +import android.widget.LinearLayout; | ||
| 7 | + | ||
| 8 | +import com.cnlive.updownfile.R; | ||
| 9 | +import com.cnlive.updownfile.xiaoRay.adapter.TaskDoneItemAdapter; | ||
| 10 | +import com.xiaoray.raysdk.RayLib; | ||
| 11 | +import com.xiaoray.raysdk.entity.bus.BusTaskDoneAdd; | ||
| 12 | +import com.xiaoray.raysdk.entity.bus.BusTaskDoneDel; | ||
| 13 | +import com.xiaoray.raysdk.entity.green.TaskDone; | ||
| 14 | +import com.xiaoray.raysdk.listener.RayDoneListener; | ||
| 15 | +import com.xiaoray.raysdk.utils.dataHelper.TaskDoneHelper; | ||
| 16 | + | ||
| 17 | +import org.greenrobot.eventbus.EventBus; | ||
| 18 | +import org.greenrobot.eventbus.Subscribe; | ||
| 19 | +import org.greenrobot.eventbus.ThreadMode; | ||
| 20 | + | ||
| 21 | +import java.util.List; | ||
| 22 | + | ||
| 23 | +/** | ||
| 24 | + * 完成的任务 | ||
| 25 | + */ | ||
| 26 | +public class TaskDoneFragment extends BaseFragment { | ||
| 27 | + | ||
| 28 | + private RecyclerView taskRecyclerView; | ||
| 29 | + private TaskDoneItemAdapter taskItemAdapter; | ||
| 30 | + private LinearLayout llRoot; | ||
| 31 | + | ||
| 32 | + @Override | ||
| 33 | + protected int getLayout() { | ||
| 34 | + return R.layout.fragment_task; | ||
| 35 | + } | ||
| 36 | + | ||
| 37 | + @Override | ||
| 38 | + public void initView() { | ||
| 39 | + EventBus.getDefault().register(this); | ||
| 40 | + taskRecyclerView = findView(R.id.task_recycler); | ||
| 41 | + llRoot = findView(R.id.ll_root); | ||
| 42 | + } | ||
| 43 | + | ||
| 44 | + @Override | ||
| 45 | + public void initListener() { | ||
| 46 | + | ||
| 47 | + | ||
| 48 | + /** | ||
| 49 | + * 里面的回调都是在子线程,需要发送到主线程, 没有采用Handler,用的是Eventbus | ||
| 50 | + */ | ||
| 51 | + RayLib.setDoneListener(new RayDoneListener() { | ||
| 52 | + @Override | ||
| 53 | + public void doneAdd(BusTaskDoneAdd event) { | ||
| 54 | + EventBus.getDefault().post(new BusTaskDoneAdd(event.getTaskDone())); | ||
| 55 | + } | ||
| 56 | + | ||
| 57 | + @Override | ||
| 58 | + public void doneDel(BusTaskDoneDel busDeleteDone) { | ||
| 59 | + EventBus.getDefault().post(new BusTaskDoneDel()); | ||
| 60 | + } | ||
| 61 | + }); | ||
| 62 | + | ||
| 63 | + } | ||
| 64 | + | ||
| 65 | + @Override | ||
| 66 | + public void initData() { | ||
| 67 | + taskRecyclerView.setLayoutManager(new LinearLayoutManager(mContext)); | ||
| 68 | + List<TaskDone> youngUploading = TaskDoneHelper.selectDoneFile(); | ||
| 69 | + taskItemAdapter = new TaskDoneItemAdapter(R.layout.item_task_done_info, youngUploading); | ||
| 70 | + taskRecyclerView.setAdapter(taskItemAdapter); | ||
| 71 | + taskItemAdapter.expandAll(); | ||
| 72 | + showNoDataView(); | ||
| 73 | + } | ||
| 74 | + | ||
| 75 | + | ||
| 76 | + @Override | ||
| 77 | + public void onDestroyView() { | ||
| 78 | + super.onDestroyView(); | ||
| 79 | + EventBus.getDefault().unregister(this); | ||
| 80 | + } | ||
| 81 | + | ||
| 82 | + private void showNoDataView() { | ||
| 83 | + if (taskItemAdapter.getData().size() == 0) { | ||
| 84 | + taskItemAdapter.getData().clear(); | ||
| 85 | + taskItemAdapter.notifyDataSetChanged(); | ||
| 86 | + taskItemAdapter.setEmptyView(R.layout.layout_no_data_text, (ViewGroup) taskRecyclerView.getParent()); | ||
| 87 | + } | ||
| 88 | + } | ||
| 89 | + | ||
| 90 | + @Subscribe(threadMode = ThreadMode.MAIN) | ||
| 91 | + public void done(BusTaskDoneAdd event) { | ||
| 92 | + taskItemAdapter.addData(0, event.getTaskDone()); | ||
| 93 | + taskRecyclerView.smoothScrollToPosition(0); | ||
| 94 | + } | ||
| 95 | + | ||
| 96 | + | ||
| 97 | + @Subscribe(threadMode = ThreadMode.MAIN) | ||
| 98 | + public void pause(BusTaskDoneDel event) { | ||
| 99 | + taskItemAdapter.getData().clear(); | ||
| 100 | + taskItemAdapter.notifyDataSetChanged(); | ||
| 101 | + taskItemAdapter.setEmptyView(R.layout.layout_no_data_text, llRoot); | ||
| 102 | + } | ||
| 103 | +} |
updownfile/src/main/java/com/cnlive/updownfile/xiaoRay/view/GlideUrlNoToken.java
0 → 100644
| 1 | +package com.cnlive.updownfile.xiaoRay.view; | ||
| 2 | + | ||
| 3 | +import com.bumptech.glide.load.model.GlideUrl; | ||
| 4 | +import com.bumptech.glide.load.model.Headers; | ||
| 5 | +import com.xiaoray.raysdk.entity.bean.GlobalCacheBean; | ||
| 6 | + | ||
| 7 | +import java.net.URL; | ||
| 8 | + | ||
| 9 | +/** | ||
| 10 | + * Created by 24479 on 2018/3/20. | ||
| 11 | + */ | ||
| 12 | + | ||
| 13 | +public class GlideUrlNoToken extends GlideUrl { | ||
| 14 | + private long size; | ||
| 15 | + | ||
| 16 | + public GlideUrlNoToken(URL url) { | ||
| 17 | + super(url); | ||
| 18 | + } | ||
| 19 | + | ||
| 20 | + public GlideUrlNoToken(URL url, Headers headers) { | ||
| 21 | + super(url, headers); | ||
| 22 | + } | ||
| 23 | + | ||
| 24 | + public GlideUrlNoToken(String url) { | ||
| 25 | + super(url); | ||
| 26 | + } | ||
| 27 | + | ||
| 28 | + public GlideUrlNoToken(String url, long size) { | ||
| 29 | + super(url); | ||
| 30 | + this.size=size; | ||
| 31 | + } | ||
| 32 | + | ||
| 33 | + public GlideUrlNoToken(String url, Headers headers) { | ||
| 34 | + super(url, headers); | ||
| 35 | + } | ||
| 36 | + | ||
| 37 | + /** | ||
| 38 | + * http://192.168.88.36/v4/static/thumb/32/033_L2.jpg?token=8aa68cfd7c7442ff4ef6f740ee01e60b | ||
| 39 | + * 这是最新的模板 | ||
| 40 | + */ | ||
| 41 | + @Override | ||
| 42 | + public String getCacheKey() { | ||
| 43 | + String url = toStringUrl(); | ||
| 44 | + int startIndex = 0; | ||
| 45 | + int lastIndex = 0; | ||
| 46 | + if (url.contains("//")) { | ||
| 47 | + String url1 = url.substring(url.indexOf("//") + 2); | ||
| 48 | + if (url1.contains("/") && url1.contains("?token=")) { | ||
| 49 | + startIndex = url1.indexOf("/"); | ||
| 50 | + lastIndex = url1.lastIndexOf("?token="); | ||
| 51 | + url1 = url1.substring(startIndex, lastIndex); | ||
| 52 | + url1 = GlobalCacheBean.getCurrentCloudMac() + "/" + url1; | ||
| 53 | + return url1; | ||
| 54 | + } | ||
| 55 | + } | ||
| 56 | + return url; | ||
| 57 | + } | ||
| 58 | +} |
updownfile/src/main/java/com/cnlive/updownfile/xiaoRay/view/RayGlide.java
| @@ -61,4 +61,33 @@ public class RayGlide { | @@ -61,4 +61,33 @@ public class RayGlide { | ||
| 61 | public static void GlideClearMemory(Context mContext) { | 61 | public static void GlideClearMemory(Context mContext) { |
| 62 | Glide.get(mContext).clearMemory(); | 62 | Glide.get(mContext).clearMemory(); |
| 63 | } | 63 | } |
| 64 | + /** | ||
| 65 | + * 加载圆形图 本地路径 | ||
| 66 | + */ | ||
| 67 | + public static void loadLocalRound(Context mContext, String path, int defaultResId, ImageView mImageView) { | ||
| 68 | + Glide.with(mContext).load(path).apply(roundOptions(defaultResId)).into(mImageView); | ||
| 69 | + } | ||
| 70 | + | ||
| 71 | + private static RequestOptions roundOptions(int defaultResId) { | ||
| 72 | + return normalOptions(defaultResId); | ||
| 73 | + } | ||
| 74 | + | ||
| 75 | + /** | ||
| 76 | + * 加载圆角图 | ||
| 77 | + */ | ||
| 78 | + public static void resRound(Context mContext, int resId, ImageView mImageView) { | ||
| 79 | + Glide.with(mContext).load(resId).apply(roundOptions()).into(mImageView); | ||
| 80 | + } | ||
| 81 | + | ||
| 82 | + | ||
| 83 | + /** | ||
| 84 | + * 加载圆形图 网上路径 | ||
| 85 | + */ | ||
| 86 | + public static void resRound(Context mContext, String path, int defaultRedId , ImageView mImageView) { | ||
| 87 | + Glide.with(mContext).load(new GlideUrlNoToken(path)).apply(roundOptions(defaultRedId)).into(mImageView); | ||
| 88 | + } | ||
| 89 | + | ||
| 90 | + private static RequestOptions roundOptions() { | ||
| 91 | + return normalOptions(R.drawable.ic_launcher); | ||
| 92 | + } | ||
| 64 | } | 93 | } |
updownfile/src/main/java/com/cnlive/updownfile/xiaoRay/view/WrapLinearLayout.java
0 → 100644
| 1 | +package com.cnlive.updownfile.xiaoRay.view; | ||
| 2 | + | ||
| 3 | +import android.content.Context; | ||
| 4 | +import android.support.v7.widget.LinearLayoutManager; | ||
| 5 | +import android.support.v7.widget.RecyclerView; | ||
| 6 | +import android.util.AttributeSet; | ||
| 7 | + | ||
| 8 | + | ||
| 9 | +public class WrapLinearLayout extends LinearLayoutManager { | ||
| 10 | + public WrapLinearLayout(Context context) { | ||
| 11 | + super(context); | ||
| 12 | + } | ||
| 13 | + | ||
| 14 | + public WrapLinearLayout(Context context, int orientation, boolean reverseLayout) { | ||
| 15 | + super(context, orientation, reverseLayout); | ||
| 16 | + } | ||
| 17 | + | ||
| 18 | + public WrapLinearLayout(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { | ||
| 19 | + super(context, attrs, defStyleAttr, defStyleRes); | ||
| 20 | + } | ||
| 21 | + | ||
| 22 | + @Override | ||
| 23 | + public void onLayoutChildren(RecyclerView.Recycler recycler, RecyclerView.State state) { | ||
| 24 | + try { | ||
| 25 | + super.onLayoutChildren(recycler, state); | ||
| 26 | + } catch (Exception e) { | ||
| 27 | + e.printStackTrace(); | ||
| 28 | + } | ||
| 29 | + } | ||
| 30 | +} |
updownfile/src/main/res/drawable-hdpi/bg_doc.webp
0 → 100644
No preview for this file type
updownfile/src/main/res/drawable-hdpi/bg_music.webp
0 → 100644
No preview for this file type
updownfile/src/main/res/drawable-hdpi/bg_photo.webp
0 → 100644
No preview for this file type
updownfile/src/main/res/drawable-hdpi/bg_unknown.webp
0 → 100644
No preview for this file type
updownfile/src/main/res/drawable-hdpi/bg_video.webp
0 → 100644
No preview for this file type
updownfile/src/main/res/drawable-hdpi/ic_launcher.png
0 → 100644
2.98 KB
updownfile/src/main/res/drawable-hdpi/icon_vertical_more.webp
0 → 100644
No preview for this file type
updownfile/src/main/res/drawable/sel_button_underline.xml
0 → 100644
| 1 | +<?xml version="1.0" encoding="utf-8"?> | ||
| 2 | +<selector | ||
| 3 | + xmlns:android="http://schemas.android.com/apk/res/android" > | ||
| 4 | + | ||
| 5 | + <item android:state_checked="true"> | ||
| 6 | + <layer-list> | ||
| 7 | + | ||
| 8 | + <item android:top="38dp" android:left="15dp" android:right="15dp"> | ||
| 9 | + | ||
| 10 | + <shape android:shape="rectangle" > | ||
| 11 | + <solid android:color="@color/color_FF7733" /> | ||
| 12 | + </shape> | ||
| 13 | + </item> | ||
| 14 | + </layer-list> | ||
| 15 | + </item> | ||
| 16 | + | ||
| 17 | + <item android:drawable="@color/white"></item> | ||
| 18 | + | ||
| 19 | +</selector> | ||
| 0 | \ No newline at end of file | 20 | \ No newline at end of file |
updownfile/src/main/res/drawable/sel_text_color.xml
0 → 100644
| 1 | +<?xml version="1.0" encoding="utf-8"?> | ||
| 2 | +<selector xmlns:android="http://schemas.android.com/apk/res/android"> | ||
| 3 | + <item android:color="@color/color_FF7733" android:state_checked="true"></item> | ||
| 4 | + <item android:color="@color/color_666666" android:state_checked="false"></item> | ||
| 5 | +</selector> | ||
| 0 | \ No newline at end of file | 6 | \ No newline at end of file |
updownfile/src/main/res/layout/activity_diretory.xml
| @@ -5,7 +5,7 @@ | @@ -5,7 +5,7 @@ | ||
| 5 | android:layout_width="match_parent" | 5 | android:layout_width="match_parent" |
| 6 | android:layout_height="match_parent" | 6 | android:layout_height="match_parent" |
| 7 | android:orientation="vertical" | 7 | android:orientation="vertical" |
| 8 | - tools:context=".xiaoRay.DiretoryActivity"> | 8 | + tools:context=".xiaoRay.ui.DiretoryActivity"> |
| 9 | 9 | ||
| 10 | <LinearLayout | 10 | <LinearLayout |
| 11 | android:id="@+id/choose" | 11 | android:id="@+id/choose" |
| @@ -210,6 +210,15 @@ | @@ -210,6 +210,15 @@ | ||
| 210 | android:layout_gravity="right" | 210 | android:layout_gravity="right" |
| 211 | android:visibility="gone" | 211 | android:visibility="gone" |
| 212 | android:text="清空回收站" /> | 212 | android:text="清空回收站" /> |
| 213 | + <Button | ||
| 214 | + android:id="@+id/check_updown" | ||
| 215 | + android:layout_width="70dp" | ||
| 216 | + android:layout_height="70dp" | ||
| 217 | + android:background="@drawable/gr_bg_nor" | ||
| 218 | + android:padding="10dp" | ||
| 219 | + android:layout_marginTop="10dp" | ||
| 220 | + android:layout_gravity="right" | ||
| 221 | + android:text="上传下载任务" /> | ||
| 213 | </LinearLayout> | 222 | </LinearLayout> |
| 214 | 223 | ||
| 215 | 224 |
updownfile/src/main/res/layout/activity_init_view.xml
| @@ -6,7 +6,7 @@ | @@ -6,7 +6,7 @@ | ||
| 6 | android:layout_height="match_parent" | 6 | android:layout_height="match_parent" |
| 7 | android:orientation="vertical" | 7 | android:orientation="vertical" |
| 8 | android:padding="50dp" | 8 | android:padding="50dp" |
| 9 | - tools:context=".xiaoRay.InitViewActivity"> | 9 | + tools:context=".xiaoRay.ui.InitViewActivity"> |
| 10 | <TextView | 10 | <TextView |
| 11 | android:id="@+id/show_data" | 11 | android:id="@+id/show_data" |
| 12 | android:layout_width="match_parent" | 12 | android:layout_width="match_parent" |
| @@ -40,4 +40,15 @@ | @@ -40,4 +40,15 @@ | ||
| 40 | android:text="进入回收站" | 40 | android:text="进入回收站" |
| 41 | android:gravity="center" | 41 | android:gravity="center" |
| 42 | /> | 42 | /> |
| 43 | + | ||
| 44 | + <TextView | ||
| 45 | + android:id="@+id/again" | ||
| 46 | + android:layout_width="match_parent" | ||
| 47 | + android:layout_height="wrap_content" | ||
| 48 | + android:layout_marginTop="10dp" | ||
| 49 | + android:background="@drawable/anchor_barrage_bg_nor" | ||
| 50 | + android:padding="10dp" | ||
| 51 | + android:text="重新连接" | ||
| 52 | + android:gravity="center" | ||
| 53 | + /> | ||
| 43 | </LinearLayout> | 54 | </LinearLayout> |
| 44 | \ No newline at end of file | 55 | \ No newline at end of file |
updownfile/src/main/res/layout/activity_task.xml
0 → 100644
| 1 | +<?xml version="1.0" encoding="utf-8"?> | ||
| 2 | +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" | ||
| 3 | + xmlns:tools="http://schemas.android.com/tools" | ||
| 4 | + android:layout_width="match_parent" | ||
| 5 | + android:layout_height="match_parent" | ||
| 6 | + tools:context=".xiaoRay.ui.TaskActivity" | ||
| 7 | + android:id="@+id/exercise_ll" | ||
| 8 | + android:orientation="vertical"> | ||
| 9 | +<RelativeLayout | ||
| 10 | + android:layout_width="match_parent" | ||
| 11 | + android:layout_height="48dp"> | ||
| 12 | + <TextView | ||
| 13 | + android:layout_width="wrap_content" | ||
| 14 | + android:layout_height="wrap_content" | ||
| 15 | + android:text="任务列表" | ||
| 16 | + android:textSize="18sp" | ||
| 17 | + android:textColor="#000000" | ||
| 18 | + android:layout_centerInParent="true"/> | ||
| 19 | + <ImageView | ||
| 20 | + android:id="@+id/pop" | ||
| 21 | + android:layout_width="wrap_content" | ||
| 22 | + android:layout_height="wrap_content" | ||
| 23 | + android:src="@drawable/icon_vertical_more" | ||
| 24 | + android:layout_alignParentRight="true" | ||
| 25 | + android:layout_centerVertical="true" | ||
| 26 | + android:padding="10dp" | ||
| 27 | + /> | ||
| 28 | +</RelativeLayout> | ||
| 29 | + <RadioGroup | ||
| 30 | + android:id="@+id/module_task_tab" | ||
| 31 | + android:layout_width="match_parent" | ||
| 32 | + android:layout_height="@dimen/dp_40" | ||
| 33 | + android:background="@color/white" | ||
| 34 | + android:orientation="horizontal" | ||
| 35 | + android:paddingLeft="18dp" | ||
| 36 | + android:paddingRight="18dp"> | ||
| 37 | + | ||
| 38 | + <RadioButton | ||
| 39 | + android:layout_width="0dp" | ||
| 40 | + android:layout_height="match_parent" | ||
| 41 | + android:layout_weight="1" | ||
| 42 | + android:background="@drawable/sel_button_underline" | ||
| 43 | + android:button="@null" | ||
| 44 | + android:id="@+id/rb_doing" | ||
| 45 | + android:gravity="center" | ||
| 46 | + android:text="@string/module_task_doing" | ||
| 47 | + android:textColor="@drawable/sel_text_color" | ||
| 48 | + android:textSize="15dp" /> | ||
| 49 | + | ||
| 50 | + <RadioButton | ||
| 51 | + android:layout_width="0dp" | ||
| 52 | + android:layout_height="match_parent" | ||
| 53 | + android:layout_weight="1" | ||
| 54 | + android:background="@drawable/sel_button_underline" | ||
| 55 | + android:button="@null" | ||
| 56 | + android:gravity="center" | ||
| 57 | + android:text="@string/module_task_finished" | ||
| 58 | + android:textColor="@drawable/sel_text_color" | ||
| 59 | + android:textSize="15dp" /> | ||
| 60 | + </RadioGroup> | ||
| 61 | + <FrameLayout | ||
| 62 | + android:id="@+id/fm_fragment" | ||
| 63 | + android:layout_width="match_parent" | ||
| 64 | + android:layout_height="match_parent"/> | ||
| 65 | +</LinearLayout> | ||
| 0 | \ No newline at end of file | 66 | \ No newline at end of file |
updownfile/src/main/res/layout/fragment_task.xml
0 → 100644
| 1 | +<?xml version="1.0" encoding="utf-8"?> | ||
| 2 | +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" | ||
| 3 | + android:layout_width="match_parent" | ||
| 4 | + android:layout_height="match_parent" | ||
| 5 | + android:background="@color/color_F4F4F4" | ||
| 6 | + android:orientation="vertical" | ||
| 7 | + android:id="@+id/ll_root" | ||
| 8 | + > | ||
| 9 | + | ||
| 10 | + <android.support.v7.widget.RecyclerView | ||
| 11 | + android:id="@+id/task_recycler" | ||
| 12 | + android:layout_width="match_parent" | ||
| 13 | + android:layout_height="match_parent" | ||
| 14 | + /> | ||
| 15 | + | ||
| 16 | + | ||
| 17 | +</LinearLayout> | ||
| 0 | \ No newline at end of file | 18 | \ No newline at end of file |
updownfile/src/main/res/layout/item_task_done_info.xml
0 → 100644
| 1 | +<?xml version="1.0" encoding="utf-8"?> | ||
| 2 | +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" | ||
| 3 | + android:id="@+id/com_swipe_down" | ||
| 4 | + android:layout_width="match_parent" | ||
| 5 | + android:layout_height="wrap_content" | ||
| 6 | + android:background="@color/white" | ||
| 7 | + android:gravity="center_vertical" | ||
| 8 | + android:orientation="horizontal" | ||
| 9 | + android:padding="@dimen/dp_10"> | ||
| 10 | + | ||
| 11 | + <ImageView | ||
| 12 | + android:id="@+id/iv_file_type" | ||
| 13 | + android:layout_width="@dimen/dp_40" | ||
| 14 | + android:layout_height="@dimen/dp_40" | ||
| 15 | + android:layout_gravity="center_vertical" | ||
| 16 | + android:scaleType="centerCrop" /> | ||
| 17 | + | ||
| 18 | + <LinearLayout | ||
| 19 | + android:layout_width="0dp" | ||
| 20 | + android:layout_height="wrap_content" | ||
| 21 | + android:layout_gravity="center_vertical" | ||
| 22 | + android:layout_marginLeft="@dimen/dp_10" | ||
| 23 | + android:layout_weight="1" | ||
| 24 | + android:orientation="vertical"> | ||
| 25 | + | ||
| 26 | + <TextView | ||
| 27 | + android:id="@+id/tv_name" | ||
| 28 | + android:layout_width="match_parent" | ||
| 29 | + android:layout_height="match_parent" | ||
| 30 | + android:layout_gravity="left" | ||
| 31 | + android:ellipsize="middle" | ||
| 32 | + android:gravity="left" | ||
| 33 | + android:singleLine="true" | ||
| 34 | + android:text="" | ||
| 35 | + android:textColor="@color/color_333333" | ||
| 36 | + android:textSize="15sp" | ||
| 37 | + android:layout_marginRight="100dp" | ||
| 38 | + /> | ||
| 39 | + | ||
| 40 | + <LinearLayout | ||
| 41 | + android:layout_width="match_parent" | ||
| 42 | + android:layout_height="wrap_content" | ||
| 43 | + android:layout_marginTop="@dimen/dp_4" | ||
| 44 | + android:orientation="horizontal"> | ||
| 45 | + | ||
| 46 | + <TextView | ||
| 47 | + android:id="@+id/tv_time" | ||
| 48 | + android:layout_width="wrap_content" | ||
| 49 | + android:layout_height="match_parent" | ||
| 50 | + android:layout_gravity="left" | ||
| 51 | + android:layout_weight="1" | ||
| 52 | + android:gravity="left" | ||
| 53 | + android:singleLine="true" | ||
| 54 | + android:text="" | ||
| 55 | + android:textColor="@color/color_AAAAAA" | ||
| 56 | + android:textSize="@dimen/sp_12" /> | ||
| 57 | + | ||
| 58 | + <TextView | ||
| 59 | + android:id="@+id/tv_file_size" | ||
| 60 | + android:layout_width="wrap_content" | ||
| 61 | + android:layout_height="wrap_content" | ||
| 62 | + android:layout_marginLeft="@dimen/dp_4" | ||
| 63 | + android:layout_marginRight="@dimen/dp_10" | ||
| 64 | + android:ellipsize="middle" | ||
| 65 | + android:gravity="right|bottom" | ||
| 66 | + android:maxLength="10" | ||
| 67 | + android:singleLine="true" | ||
| 68 | + android:text="" | ||
| 69 | + android:textColor="@color/color_AAAAAA" | ||
| 70 | + android:textSize="@dimen/sp_12" /> | ||
| 71 | + | ||
| 72 | + </LinearLayout> | ||
| 73 | + | ||
| 74 | + | ||
| 75 | + </LinearLayout> | ||
| 76 | + | ||
| 77 | + | ||
| 78 | +</LinearLayout> |
updownfile/src/main/res/layout/item_task_info.xml
0 → 100644
| 1 | +<?xml version="1.0" encoding="utf-8"?> | ||
| 2 | +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" | ||
| 3 | + xmlns:app="http://schemas.android.com/apk/res-auto" | ||
| 4 | + android:id="@+id/com_swipe_down" | ||
| 5 | + android:layout_width="match_parent" | ||
| 6 | + android:layout_height="wrap_content" | ||
| 7 | + android:background="@color/white" | ||
| 8 | + android:gravity="center_vertical" | ||
| 9 | + android:minHeight="60dp" | ||
| 10 | + android:orientation="horizontal" | ||
| 11 | + android:paddingLeft="@dimen/dp_10"> | ||
| 12 | + | ||
| 13 | + <ImageView | ||
| 14 | + android:id="@+id/iv_file_type" | ||
| 15 | + android:layout_width="@dimen/dp_40" | ||
| 16 | + android:layout_height="@dimen/dp_40" | ||
| 17 | + android:layout_gravity="center_vertical" | ||
| 18 | + android:scaleType="centerCrop" /> | ||
| 19 | + | ||
| 20 | + <LinearLayout | ||
| 21 | + android:layout_width="wrap_content" | ||
| 22 | + android:layout_height="wrap_content" | ||
| 23 | + android:layout_gravity="center_vertical" | ||
| 24 | + android:layout_marginLeft="@dimen/dp_10" | ||
| 25 | + android:layout_weight="1" | ||
| 26 | + android:orientation="vertical"> | ||
| 27 | + | ||
| 28 | + <TextView | ||
| 29 | + android:id="@+id/tv_name" | ||
| 30 | + android:layout_width="wrap_content" | ||
| 31 | + android:layout_height="match_parent" | ||
| 32 | + android:layout_gravity="left" | ||
| 33 | + android:ellipsize="middle" | ||
| 34 | + android:gravity="left" | ||
| 35 | + android:singleLine="true" | ||
| 36 | + android:text="任务名称" | ||
| 37 | + android:textColor="@color/color_333333" | ||
| 38 | + android:textSize="15sp" /> | ||
| 39 | + | ||
| 40 | + <TextView | ||
| 41 | + android:id="@+id/tv_file_size" | ||
| 42 | + android:layout_width="wrap_content" | ||
| 43 | + android:layout_height="match_parent" | ||
| 44 | + android:layout_gravity="left|bottom" | ||
| 45 | + android:ellipsize="start" | ||
| 46 | + android:gravity="left" | ||
| 47 | + android:maxLines="6" | ||
| 48 | + android:text="filesize" | ||
| 49 | + android:textColor="@color/color_999999" | ||
| 50 | + android:textSize="@dimen/sp_12" /> | ||
| 51 | + | ||
| 52 | + </LinearLayout> | ||
| 53 | + | ||
| 54 | + <TextView | ||
| 55 | + android:id="@+id/tv_speed" | ||
| 56 | + android:layout_width="wrap_content" | ||
| 57 | + android:layout_height="wrap_content" | ||
| 58 | + android:layout_gravity="bottom" | ||
| 59 | + android:layout_marginRight="@dimen/dp_10" | ||
| 60 | + android:gravity="bottom|right" | ||
| 61 | + android:minWidth="70dp" | ||
| 62 | + android:singleLine="true" | ||
| 63 | + android:text="速度" | ||
| 64 | + android:textColor="@color/color_999999" | ||
| 65 | + android:textSize="@dimen/sp_12" /> | ||
| 66 | + | ||
| 67 | + <TextView | ||
| 68 | + android:id="@+id/tv_progress_num" | ||
| 69 | + android:layout_width="wrap_content" | ||
| 70 | + android:layout_height="wrap_content" | ||
| 71 | + android:layout_gravity="bottom" | ||
| 72 | + android:gravity="bottom|right" | ||
| 73 | + android:minWidth="@dimen/dp_40" | ||
| 74 | + android:singleLine="true" | ||
| 75 | + android:text="进度" | ||
| 76 | + android:textColor="@color/color_999999" | ||
| 77 | + android:textSize="@dimen/sp_12" /> | ||
| 78 | + | ||
| 79 | + <ImageView | ||
| 80 | + android:id="@+id/iv_start" | ||
| 81 | + android:layout_width="36dp" | ||
| 82 | + android:layout_height="36dp" | ||
| 83 | + android:layout_marginRight="@dimen/dp_10" | ||
| 84 | + android:visibility="visible" | ||
| 85 | + /> | ||
| 86 | +</LinearLayout> |
updownfile/src/main/res/layout/layout_no_data_text.xml
0 → 100644
| 1 | +<?xml version="1.0" encoding="utf-8"?> | ||
| 2 | +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" | ||
| 3 | + android:layout_width="match_parent" | ||
| 4 | + android:layout_height="match_parent" | ||
| 5 | + android:gravity="center" | ||
| 6 | + android:orientation="vertical"> | ||
| 7 | + <ImageView | ||
| 8 | + android:layout_width="100dp" | ||
| 9 | + android:layout_height="100dp" | ||
| 10 | + /> | ||
| 11 | + <TextView xmlns:android="http://schemas.android.com/apk/res/android" | ||
| 12 | + android:layout_width="wrap_content" | ||
| 13 | + android:layout_height="wrap_content" | ||
| 14 | + android:layout_gravity="center" | ||
| 15 | + android:layout_marginTop="12dp" | ||
| 16 | + android:gravity="center" | ||
| 17 | + android:text="没有任务" | ||
| 18 | + android:textColor="#999999" | ||
| 19 | + android:textSize="13sp" /> | ||
| 20 | +</LinearLayout> | ||
| 0 | \ No newline at end of file | 21 | \ No newline at end of file |
updownfile/src/main/res/layout/popupp_exercise.xml
0 → 100644
| 1 | +<?xml version="1.0" encoding="utf-8"?> | ||
| 2 | +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" | ||
| 3 | + android:layout_width="match_parent" | ||
| 4 | + android:layout_height="wrap_content" | ||
| 5 | + android:background="#D5D5D5" | ||
| 6 | + android:orientation="vertical"> | ||
| 7 | + | ||
| 8 | + <TextView | ||
| 9 | + android:id="@+id/all_start" | ||
| 10 | + android:layout_width="match_parent" | ||
| 11 | + android:layout_height="wrap_content" | ||
| 12 | + android:paddingBottom="12dp" | ||
| 13 | + android:paddingTop="12dp" | ||
| 14 | + android:text="全部暂停" | ||
| 15 | + android:gravity="center" | ||
| 16 | + android:background="#ffffff" | ||
| 17 | + android:textColor="@color/color_333333" | ||
| 18 | + android:layout_marginBottom="0.5dp" | ||
| 19 | + android:textSize="18sp" /> | ||
| 20 | + | ||
| 21 | + <TextView | ||
| 22 | + android:id="@+id/all_delete" | ||
| 23 | + android:layout_width="match_parent" | ||
| 24 | + android:layout_height="wrap_content" | ||
| 25 | + android:paddingBottom="12dp" | ||
| 26 | + android:paddingTop="12dp" | ||
| 27 | + android:text="全部删除" | ||
| 28 | + android:background="#ffffff" | ||
| 29 | + android:gravity="center" | ||
| 30 | + android:textColor="@color/color_333333" | ||
| 31 | + android:textSize="18sp" /> | ||
| 32 | + <View | ||
| 33 | + android:layout_width="match_parent" | ||
| 34 | + android:layout_height="5dp" | ||
| 35 | + /> | ||
| 36 | + <TextView | ||
| 37 | + android:id="@+id/cancel_popup" | ||
| 38 | + android:layout_width="match_parent" | ||
| 39 | + android:layout_height="wrap_content" | ||
| 40 | + android:paddingBottom="12dp" | ||
| 41 | + android:paddingTop="12dp" | ||
| 42 | + android:text="取消" | ||
| 43 | + android:background="#ffffff" | ||
| 44 | + android:gravity="center" | ||
| 45 | + android:textColor="@color/color_333333" | ||
| 46 | + android:textSize="18sp" /> | ||
| 47 | +</LinearLayout> | ||
| 0 | \ No newline at end of file | 48 | \ No newline at end of file |
updownfile/src/main/res/menu/main.xml
| @@ -14,6 +14,5 @@ | @@ -14,6 +14,5 @@ | ||
| 14 | <item android:id="@+id/move" | 14 | <item android:id="@+id/move" |
| 15 | android:title="移动到ll文件夹"/> | 15 | android:title="移动到ll文件夹"/> |
| 16 | <item android:id="@+id/menu_down" | 16 | <item android:id="@+id/menu_down" |
| 17 | - android:title="下载" | ||
| 18 | - android:visible="false"/> | ||
| 19 | -</menu> | ||
| 20 | \ No newline at end of file | 17 | \ No newline at end of file |
| 18 | + android:title="下载"/> | ||
| 19 | +</menu> |
updownfile/src/main/res/values/strings.xml
| @@ -5,4 +5,15 @@ | @@ -5,4 +5,15 @@ | ||
| 5 | <string name="pull_down_refresh">下拉刷新</string> | 5 | <string name="pull_down_refresh">下拉刷新</string> |
| 6 | <string name="release_refresh">释放刷新</string> | 6 | <string name="release_refresh">释放刷新</string> |
| 7 | <string name="is_refreshing">正在刷新</string> | 7 | <string name="is_refreshing">正在刷新</string> |
| 8 | + <string name="module_task_doing">进行中</string> | ||
| 9 | + <string name="module_task_finished">已完成</string> | ||
| 10 | + | ||
| 11 | + <string name="all_start">全部开始</string> | ||
| 12 | + <string name="all_pause">全部暂停</string> | ||
| 13 | + <string name="all_delete">全部删除</string> | ||
| 14 | + <string name="pause">暂停</string> | ||
| 15 | + <string name="waiting">正在等待</string> | ||
| 16 | + <string name="upload_check_md5">正在检验文件, 稍等</string> | ||
| 17 | + <string name="no_known_condition_happen">发生了其他的未知情况</string> | ||
| 18 | + | ||
| 8 | </resources> | 19 | </resources> |