Android Open Source - SmartTools File Sync Helper






From Project

Back to project page SmartTools.

License

The source code is released under:

GNU General Public License

If you think the Android project SmartTools listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package com.nj.simba.utils;
/* ww  w.j  av a2  s.co m*/
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;

import com.android.ddmlib.AdbCommandRejectedException;
import com.android.ddmlib.FileListingService;
import com.android.ddmlib.IDevice;
import com.android.ddmlib.SyncException;
import com.android.ddmlib.SyncService;
import com.android.ddmlib.TimeoutException;
import com.android.ddmlib.FileListingService.FileEntry;
import com.android.ddmlib.SyncService.ISyncProgressMonitor;
import com.nj.simba.ctrls.MyProgessBar;
import com.nj.simba.utils.SyncProgressHelper.SyncRunnable;

public class FileSyncHelper implements SyncRunnable {
    IDevice mCurDevice;
    FileEntry[] mRemoteFiles;
    SyncService mSyncSvr;
    String mRemoteFullPath;
    String mLocalName;
    int mFileSize;

    public FileSyncHelper(IDevice device, FileEntry remoteFile) {
        mCurDevice = device;
        mRemoteFiles = new FileEntry[] { remoteFile };
    }

    public FileSyncHelper(IDevice device, ArrayList<FileEntry> remoteFiles) {
        mCurDevice = device;
        mRemoteFiles = remoteFiles.toArray(new FileEntry[remoteFiles.size()]);
    }

    public FileSyncHelper(IDevice device, String remoteFullPath, String localName, int size) {
        mCurDevice = device;
        mRemoteFullPath = remoteFullPath;
        mLocalName = localName;
        mFileSize = size;
    }
    
    public long getCurFileSize() {
        return mFileSize;
    }

    public void syncOut() {
        try {
            SyncProgressHelper.run(this, "Pulling file(s) from the device");
        } catch (SyncException e) { // maybe canceled
            e.printStackTrace();
            System.out.println("SyncException");
        } catch (Exception e) {
            e.printStackTrace();
            System.out.println("Exception");
        }
    }

    @Override
    public void run(ISyncProgressMonitor monitor) throws SyncException,
            TimeoutException, IOException {

        
        try {
            mSyncSvr = mCurDevice.getSyncService();

            if ( mRemoteFullPath != null ) {
                System.out.println("-->run:" + mRemoteFullPath);
                System.out.println("-->run:" + mLocalName);
                System.out.println("-->run:" + mFileSize);
                
                SyncProgressMonitor syncMonitor = (SyncProgressMonitor) monitor;
                MyProgessBar bar = (MyProgessBar) syncMonitor.getProgressMonitor();
                bar.setMaximum(mFileSize);
                mSyncSvr.pullFile(mRemoteFullPath, new File(mLocalName).getAbsolutePath(), monitor);
                return;
            }
            
            String filePullName = null;
            FileEntry singleEntry = null;

            if (mRemoteFiles.length == 1) {
                singleEntry = mRemoteFiles[0];
                if (singleEntry.getType() == FileListingService.TYPE_FILE) {
                    filePullName = singleEntry.getName();
                }
            }

            if (filePullName != null) {

                mSyncSvr.pullFile(singleEntry,
                        new File(filePullName).getAbsolutePath(), monitor);

            } else {
                mSyncSvr.pull(mRemoteFiles, new File("./").getAbsolutePath(),
                        monitor);
            }

        } catch (AdbCommandRejectedException e) {
            e.printStackTrace();
        }

    }

    @Override
    public void close() {
        if (mSyncSvr != null) {
            mSyncSvr.close();
        }
    }
}




Java Source Code List

com.nj.simba.BatteryReceiver.java
com.nj.simba.DaemonController.java
com.nj.simba.DeviceInfo.java
com.nj.simba.DviceInfoCollector.java
com.nj.simba.IDeviceInfo.java
com.nj.simba.PackageReceiver.java
com.nj.simba.SdcardStatuChangeReceiver.java
com.nj.simba.SmartToolService.java
com.nj.simba.app.MainFrame.java
com.nj.simba.app.SmartToolsApp.java
com.nj.simba.app.ToolbarPanel.java
com.nj.simba.base.IDeviceListener.java
com.nj.simba.base.IDeviceReqListener.java
com.nj.simba.connect.DeviceCmdWorker.java
com.nj.simba.connect.DeviceConnectWorker.java
com.nj.simba.connect.DeviceMessage.java
com.nj.simba.connect.DeviceMsgChannel.java
com.nj.simba.ctrls.FilerListRender.java
com.nj.simba.ctrls.ImageBtn.java
com.nj.simba.ctrls.LeftPanel.java
com.nj.simba.ctrls.MetroCoolBtn.java
com.nj.simba.ctrls.MyProgessBar.java
com.nj.simba.ctrls.SubPanel.java
com.nj.simba.ctrls.TabPanel.java
com.nj.simba.ctrls.ThemeButton.java
com.nj.simba.ctrls.ThemeLabel.java
com.nj.simba.ctrls.ToolbarBtn.java
com.nj.simba.cts.CtsResultReset.java
com.nj.simba.page.appmgr.AppTableRender.java
com.nj.simba.page.appmgr.DeviceAppTableModel.java
com.nj.simba.page.appmgr.PageAppMgr.java
com.nj.simba.page.device.DeviceListRender.java
com.nj.simba.page.device.DevicePanel.java
com.nj.simba.page.device.PageMyDevice.java
com.nj.simba.page.filer.FileTableRender.java
com.nj.simba.page.filer.PageFiler.java
com.nj.simba.page.logcat.ILogCatBufferChangeListener.java
com.nj.simba.page.logcat.LogCatMessageList.java
com.nj.simba.page.logcat.LogCatMessageParser.java
com.nj.simba.page.logcat.LogCatMessage.java
com.nj.simba.page.logcat.LogCatPidToNameMapper.java
com.nj.simba.page.logcat.LogCatReceiverFactory.java
com.nj.simba.page.logcat.LogCatReceiver.java
com.nj.simba.page.logcat.PageLogcat.java
com.nj.simba.utils.Config.java
com.nj.simba.utils.FileSyncHelper.java
com.nj.simba.utils.I2CTest.java
com.nj.simba.utils.IProgressMonitor.java
com.nj.simba.utils.SyncProgressHelper.java
com.nj.simba.utils.SyncProgressMonitor.java
com.nj.simba.utils.Utils.java