From d3704e8f9feb94f2792c853700da3ee4480fb5b9 Mon Sep 17 00:00:00 2001 From: Aditya-Sood Date: Sun, 23 Jun 2019 20:44:09 +0530 Subject: [PATCH] Increment: Transferred files now saved in the user-preference 'Kiwix' folder Location obtained from the SharedPreferenceUtil --- .../di/components/ApplicationComponent.java | 3 +++ .../DeviceListFragment.java | 20 ++++++++++++++----- .../LocalFileTransferActivity.java | 11 +++++++++- 3 files changed, 28 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/org/kiwix/kiwixmobile/di/components/ApplicationComponent.java b/app/src/main/java/org/kiwix/kiwixmobile/di/components/ApplicationComponent.java index a85fed50c..cd34e550d 100644 --- a/app/src/main/java/org/kiwix/kiwixmobile/di/components/ApplicationComponent.java +++ b/app/src/main/java/org/kiwix/kiwixmobile/di/components/ApplicationComponent.java @@ -33,6 +33,7 @@ import org.kiwix.kiwixmobile.search.AutoCompleteAdapter; import org.kiwix.kiwixmobile.settings.KiwixSettingsActivity; import org.kiwix.kiwixmobile.zim_manager.fileselect_view.ZimFileSelectFragment; import org.kiwix.kiwixmobile.zim_manager.library_view.LibraryFragment; +import org.kiwix.kiwixmobile.zim_manager.local_file_transfer.LocalFileTransferActivity; @Singleton @Component(modules = { @@ -61,4 +62,6 @@ public interface ApplicationComponent { void inject(KiwixSettingsActivity.PrefsFragment prefsFragment); void inject(AutoCompleteAdapter autoCompleteAdapter); + + void inject(LocalFileTransferActivity localFileTransferActivity); } diff --git a/app/src/main/java/org/kiwix/kiwixmobile/zim_manager/local_file_transfer/DeviceListFragment.java b/app/src/main/java/org/kiwix/kiwixmobile/zim_manager/local_file_transfer/DeviceListFragment.java index 537eb952b..1c030c1f3 100644 --- a/app/src/main/java/org/kiwix/kiwixmobile/zim_manager/local_file_transfer/DeviceListFragment.java +++ b/app/src/main/java/org/kiwix/kiwixmobile/zim_manager/local_file_transfer/DeviceListFragment.java @@ -37,6 +37,7 @@ import androidx.fragment.app.ListFragment; import org.kiwix.kiwixmobile.BuildConfig; import org.kiwix.kiwixmobile.R; +import org.kiwix.kiwixmobile.utils.SharedPreferenceUtil; import java.io.BufferedReader; import java.io.File; @@ -63,6 +64,8 @@ public class DeviceListFragment extends ListFragment implements WifiP2pManager.P public static String TAG = "DeviceListFragment"; + private SharedPreferenceUtil sharedPreferenceUtil; + private View fragRootView = null; private List peerDevices = new ArrayList(); private WifiP2pDevice userDevice; @@ -205,7 +208,6 @@ public class DeviceListFragment extends ListFragment implements WifiP2pManager.P // TODO: Disable onclick listener (of list) for connecting to devices } - public void setClientAddress(InetAddress clientAddress) { if(clientAddress != null) selectedPeerDeviceInetAddress = clientAddress; @@ -244,6 +246,14 @@ public class DeviceListFragment extends ListFragment implements WifiP2pManager.P return (totalFilesSent == totalFiles); } + public void setSharedPreferenceUtil(SharedPreferenceUtil sharedPreferenceUtil) { + this.sharedPreferenceUtil = sharedPreferenceUtil; + } + + public String getZimStorageRootPath() { + return (sharedPreferenceUtil.getPrefStorage() + "/Kiwix/"); + } + private void startFileTransfer() { if(groupInfo.groupFormed && !fileSender) { new FileServerAsyncTask(getActivity(), this).execute(); @@ -594,6 +604,8 @@ public class DeviceListFragment extends ListFragment implements WifiP2pManager.P ServerSocket serverSocket = new ServerSocket(FILE_TRANSFER_PORT); Log.d(LocalFileTransferActivity.TAG, "Server: Socket opened at " + FILE_TRANSFER_PORT); + final String KIWIX_ROOT = deviceListFragment.getZimStorageRootPath(); + int totalFileCount = deviceListFragment.getTotalFiles(); for(int currentFile = 1; currentFile <= totalFileCount; currentFile++) { Socket client = serverSocket.accept(); @@ -602,10 +614,8 @@ public class DeviceListFragment extends ListFragment implements WifiP2pManager.P ArrayList fileNames = deviceListFragment.getFileNames(); String incomingFileName = fileNames.get(currentFile-1); - // File selector, file not exists, - //TODO: Change to appropriate file-path - // Save in the Kiwix app folder - final File clientNoteFileLocation = new File(Environment.getExternalStorageDirectory() + "/KiwixWifi/"+incomingFileName); + // TODO:? File selector, file not exists, + final File clientNoteFileLocation = new File(KIWIX_ROOT + incomingFileName); File dirs = new File(clientNoteFileLocation.getParent()); if(!dirs.exists()) { Log.d(LocalFileTransferActivity.TAG, "Parent creation result: "+dirs.mkdirs()); diff --git a/app/src/main/java/org/kiwix/kiwixmobile/zim_manager/local_file_transfer/LocalFileTransferActivity.java b/app/src/main/java/org/kiwix/kiwixmobile/zim_manager/local_file_transfer/LocalFileTransferActivity.java index b8f6d8d19..f9d8a991a 100644 --- a/app/src/main/java/org/kiwix/kiwixmobile/zim_manager/local_file_transfer/LocalFileTransferActivity.java +++ b/app/src/main/java/org/kiwix/kiwixmobile/zim_manager/local_file_transfer/LocalFileTransferActivity.java @@ -33,11 +33,15 @@ import androidx.fragment.app.DialogFragment; import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentTransaction; +import org.kiwix.kiwixmobile.KiwixApplication; import org.kiwix.kiwixmobile.R; +import org.kiwix.kiwixmobile.utils.SharedPreferenceUtil; import java.lang.reflect.Method; import java.util.ArrayList; +import javax.inject.Inject; + public class LocalFileTransferActivity extends AppCompatActivity implements WifiP2pManager.ChannelListener, DeviceListFragment.DeviceActionListener { /*TODO @@ -45,10 +49,13 @@ public class LocalFileTransferActivity extends AppCompatActivity implements Wifi * - Handle multiple selected files * */ - public static final String TAG = "LocalFileTransferActvty"; + public static final String TAG = "LocalFileTransferActvty"; // Not a typo, Tags have a length upper limit of 25 characters public static Uri filePath = null; // = Environment.getExternalStorageDirectory() + "/Kiwix/temp.txt";///psiram_en_all_2018-09.zim";//Notes/Granblue Fantasy Wiki/Main Page.txt"; private final int PERMISSION_REQUEST_CODE_COARSE_LOCATION = 1; + @Inject + SharedPreferenceUtil sharedPreferenceUtil; + private boolean isWifiP2pEnabled = false; private boolean retryChannel = false; @@ -66,6 +73,7 @@ public class LocalFileTransferActivity extends AppCompatActivity implements Wifi super.onCreate(savedInstanceState); setContentView(R.layout.activity_local_file_transfer); setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); // Protect AsyncTask from orientation changes + KiwixApplication.getApplicationComponent().inject(this); /*setContentView(R.layout.activity_local_file_transfer); @@ -176,6 +184,7 @@ public class LocalFileTransferActivity extends AppCompatActivity implements Wifi final DeviceListFragment deviceListFragment = (DeviceListFragment) getSupportFragmentManager().findFragmentById(R.id.fragment_device_list); deviceListFragment.onInitiateDiscovery(); + deviceListFragment.setSharedPreferenceUtil(sharedPreferenceUtil); manager.discoverPeers(channel, new WifiP2pManager.ActionListener() { @Override public void onSuccess() {