|
@@ -1,15 +1,19 @@
|
|
|
package com.usai.redant.raimage.UploadList;
|
|
package com.usai.redant.raimage.UploadList;
|
|
|
|
|
|
|
|
import android.content.BroadcastReceiver;
|
|
import android.content.BroadcastReceiver;
|
|
|
|
|
+import android.content.ComponentName;
|
|
|
import android.content.Context;
|
|
import android.content.Context;
|
|
|
import android.content.Intent;
|
|
import android.content.Intent;
|
|
|
import android.content.IntentFilter;
|
|
import android.content.IntentFilter;
|
|
|
|
|
+import android.content.ServiceConnection;
|
|
|
|
|
+import android.os.IBinder;
|
|
|
import android.support.annotation.NonNull;
|
|
import android.support.annotation.NonNull;
|
|
|
import android.support.annotation.Nullable;
|
|
import android.support.annotation.Nullable;
|
|
|
import android.support.v4.content.LocalBroadcastManager;
|
|
import android.support.v4.content.LocalBroadcastManager;
|
|
|
import android.support.v7.app.ActionBar;
|
|
import android.support.v7.app.ActionBar;
|
|
|
import android.support.v7.app.AppCompatActivity;
|
|
import android.support.v7.app.AppCompatActivity;
|
|
|
import android.os.Bundle;
|
|
import android.os.Bundle;
|
|
|
|
|
+import android.util.Log;
|
|
|
import android.view.LayoutInflater;
|
|
import android.view.LayoutInflater;
|
|
|
import android.view.MenuItem;
|
|
import android.view.MenuItem;
|
|
|
import android.view.View;
|
|
import android.view.View;
|
|
@@ -20,16 +24,45 @@ import android.widget.ProgressBar;
|
|
|
import android.widget.TextView;
|
|
import android.widget.TextView;
|
|
|
|
|
|
|
|
import com.usai.redant.raimage.R;
|
|
import com.usai.redant.raimage.R;
|
|
|
|
|
+import com.usai.redant.raimage.UploadService;
|
|
|
|
|
+import com.usai.util.RAUploadManager;
|
|
|
|
|
|
|
|
|
|
+import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
import java.util.List;
|
|
|
|
|
|
|
|
public class UploadListActivity extends AppCompatActivity {
|
|
public class UploadListActivity extends AppCompatActivity {
|
|
|
|
|
|
|
|
private ListView uploadList;
|
|
private ListView uploadList;
|
|
|
private uploadAdapter adapter;
|
|
private uploadAdapter adapter;
|
|
|
|
|
+ private ArrayList<Bundle> arr;
|
|
|
|
|
|
|
|
private LocalBroadcastManager broadcastManager;
|
|
private LocalBroadcastManager broadcastManager;
|
|
|
private UploadBroadcastReceiver broadcastReceiver;
|
|
private UploadBroadcastReceiver broadcastReceiver;
|
|
|
|
|
+
|
|
|
|
|
+ private RAUploadManager uploadManager;
|
|
|
|
|
+ private UploadService.MyBinder binder;
|
|
|
|
|
+ private UploadService uploadServiceservice;
|
|
|
|
|
+ private boolean serviceConnectionFlag = false; // 绑定服务标识
|
|
|
|
|
+ private ServiceConnection serviceConnection;
|
|
|
|
|
+ private RAUploadManager.UIUpdateListener uiUpdateListener = new RAUploadManager.UIUpdateListener() {
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public void onProgress(long index, double percentage) {
|
|
|
|
|
+
|
|
|
|
|
+ Log.d("Upload Progress", " " + percentage);
|
|
|
|
|
+// Object item = uploadList.getItemAtPosition((int) index);
|
|
|
|
|
+ int startShowIndex = uploadList.getFirstVisiblePosition();
|
|
|
|
|
+ int lastShowIndex = uploadList.getLastVisiblePosition();
|
|
|
|
|
+
|
|
|
|
|
+ if (index >= startShowIndex && index <= lastShowIndex) {
|
|
|
|
|
+ View cell = uploadList.getChildAt((int)index - startShowIndex);
|
|
|
|
|
+ uploadAdapter.ViewHolder holder= (uploadAdapter.ViewHolder)cell.getTag();
|
|
|
|
|
+ holder.progressBar.setProgress((int) (100 * percentage));
|
|
|
|
|
+ holder.progress_tv.setText(String.format("%.1f%%",percentage));
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+ };
|
|
|
|
|
+
|
|
|
@Override
|
|
@Override
|
|
|
protected void onCreate(Bundle savedInstanceState) {
|
|
protected void onCreate(Bundle savedInstanceState) {
|
|
|
super.onCreate(savedInstanceState);
|
|
super.onCreate(savedInstanceState);
|
|
@@ -50,7 +83,29 @@ public class UploadListActivity extends AppCompatActivity {
|
|
|
// 初始化视图
|
|
// 初始化视图
|
|
|
uploadList = (ListView)findViewById(R.id.upload_list);
|
|
uploadList = (ListView)findViewById(R.id.upload_list);
|
|
|
|
|
|
|
|
- uploadList.setAdapter(adapter);
|
|
|
|
|
|
|
+ serviceConnection = new ServiceConnection() {
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public void onServiceConnected(ComponentName name, IBinder service) {
|
|
|
|
|
+ serviceConnectionFlag = true;
|
|
|
|
|
+
|
|
|
|
|
+ binder = (UploadService.MyBinder)service;
|
|
|
|
|
+ uploadServiceservice = binder.getService();
|
|
|
|
|
+
|
|
|
|
|
+ uploadManager = uploadServiceservice.uploadManager;
|
|
|
|
|
+ uploadManager.uiUpdateListener = uiUpdateListener;
|
|
|
|
|
+ arr = uploadManager.arr_queue;
|
|
|
|
|
+
|
|
|
|
|
+ adapter = new uploadAdapter(UploadListActivity.this,R.layout.upload_list_cell,arr);
|
|
|
|
|
+ uploadList.setAdapter(adapter);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public void onServiceDisconnected(ComponentName name) {
|
|
|
|
|
+ serviceConnectionFlag = false;
|
|
|
|
|
+ }
|
|
|
|
|
+ };
|
|
|
|
|
+
|
|
|
|
|
+ bindService();
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
}
|
|
@@ -109,6 +164,7 @@ public class UploadListActivity extends AppCompatActivity {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ /** Broadcast */
|
|
|
private class UploadBroadcastReceiver extends BroadcastReceiver {
|
|
private class UploadBroadcastReceiver extends BroadcastReceiver {
|
|
|
@Override
|
|
@Override
|
|
|
public void onReceive(Context context, Intent intent) {
|
|
public void onReceive(Context context, Intent intent) {
|
|
@@ -123,4 +179,10 @@ public class UploadListActivity extends AppCompatActivity {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+ /** Service */
|
|
|
|
|
+ private void bindService() {
|
|
|
|
|
+ Intent intent = new Intent("com.usai.raimage.uploadservice");
|
|
|
|
|
+ bindService(intent, serviceConnection, Context.BIND_AUTO_CREATE);
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|