public void showProgressDialog(final int messageId) { try { final MainPanel panel = mFileSystemController.getActivePanel(); panel .getActivity() .runOnUiThread( new Runnable() { @Override public void run() { if (mProgressDialog != null && mProgressDialog.isShowing()) { dismissProgressDialog(); } mProgressDialog = new Dialog(panel.getActivity(), android.R.style.Theme_Translucent); mProgressDialog.requestWindowFeature(Window.FEATURE_NO_TITLE); mProgressDialog.setCancelable(false); mProgressDialog.setContentView(R.layout.dialog_progress); mProgressDialog.show(); } }); ((TextView) mProgressDialog.findViewById(R.id.progress_bar_text)).setText(messageId); } catch (Exception e) { e.printStackTrace(); } }
/** * Show dialog with available (authenticated) network (cloud) accounts for certain cloud type. * * @param networkType selected cloud type */ private void showSelectAccountDialog(final NetworkEnum networkType, final MainPanel panel) { if (panel == null || panel.getActivity() == null) { // very weired situation; try to avoid crash. return; } final Dialog dialog = new Dialog(panel.getActivity(), R.style.Action_Dialog); dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); View dialogView = View.inflate(App.sInstance.getApplicationContext(), R.layout.network_type_chooser, null); ((TextView) dialogView.findViewById(R.id.network_dialog_title)) .setText(App.sInstance.getString(R.string.action_select_account)); final ListView networks = (ListView) dialogView.findViewById(R.id.network_types); NetworkApi api = App.sInstance.getNetworkApi(networkType); final BaseAdapter adapter = new NetworkAccountChooserAdapter( api, new NetworkAccountChooserAdapter.OnDeleteItemListener() { @Override public void onAccountDelete(NetworkAccount account) { NetworkAccountDbAdapter.delete(account.getId()); ((NetworkAccountChooserAdapter) networks.getAdapter()).dataSetChanged(); } }); networks.setAdapter(adapter); dialogView .findViewById(R.id.cancel) .setOnClickListener( new View.OnClickListener() { @Override public void onClick(View view) { dialog.dismiss(); } }); networks.setOnItemClickListener( new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { openNetworkAccount((NetworkAccount) view.getTag(), null, panel); if (dialog.isShowing()) { dialog.dismiss(); } } }); dialog.setContentView(dialogView); dialog.show(); adjustDialogSize(dialog, panel); }
public void openAvailableCloudsList() { MainPanel panel = mFileSystemController.getActivePanel(); if (NetworkUtil.isNetworkAvailable()) { showNetworksDialog(); } else { if (panel != null && panel.getActivity() != null) { ToastNotification.makeText( panel.getActivity(), App.sInstance.getString(R.string.error_no_network), Toast.LENGTH_LONG) .show(); } } }
@Override public void handleMessage(Message msg) { super.handleMessage(msg); MainPanel panel = mFileSystemController.getActivePanel(); if (msg.what == FTP_CONNECTED) { mFileSystemController.openNetworkPanel(NetworkEnum.FTP); } else if (msg.what == SFTP_CONNECTED) { mFileSystemController.openNetworkPanel(NetworkEnum.SFTP); } else if (msg.what == SMB_CONNECTED) { mFileSystemController.openNetworkPanel(NetworkEnum.SMB); } else if (msg.what == YANDEX_DISK_CONNECTED) { mFileSystemController.openNetworkPanel(NetworkEnum.YandexDisk); } else if (msg.what == SMB_SCAN_NETWORK_REQUESTED) { final Dialog dialog = new NetworkScanDialog(panel.getActivity(), mInAppAuthHandler); dialog.show(); adjustDialogSize(dialog, panel); } else if (msg.what == SMB_SCAN_CANCELED) { startSmbAuthentication(panel); } else if (msg.what == SMB_IP_SELECTED) { startSmbAuthentication((String) msg.obj, panel); } else if (msg.what == GoogleDriveAuthWindow.MSG_HIDE_LOADING_DIALOG) { GoogleDriveApi.GoogleDriveAccount account = null; if (msg.arg1 == GoogleDriveAuthWindow.MSG_ARG_SUCCESS) { GoogleDriveApi api = App.sInstance.getGoogleDriveApi(); Pair<About, Token> data = (Pair<About, Token>) msg.obj; account = (GoogleDriveApi.GoogleDriveAccount) api.saveAccount(data.first, data.second); } else { ToastNotification.makeText( App.sInstance.getApplicationContext(), App.sInstance.getString(R.string.google_drive_get_token_error), Toast.LENGTH_LONG) .show(); } dismissProgressDialog(); if (account != null) { App.sInstance.getGoogleDriveApi().setup(account); mFileSystemController.openNetworkPanel(NetworkEnum.GoogleDrive); } } else if (msg.what == GoogleDriveAuthWindow.MSG_SHOW_LOADING_DIALOG) { showProgressDialog(R.string.loading); } else if (msg.what == MEDIA_FIRE_CONNECTED) { mFileSystemController.openNetworkPanel(NetworkEnum.MediaFire); } else if (msg.what == WEBDAV_CONNECTED) { mFileSystemController.openNetworkPanel(NetworkEnum.WebDav); } }
/** * Adjust dialog size. Actuall for old android version only (due to absence of Holo themes). * * @param dialog dialog whose size should be adjusted. * @param panel active panel * @param scaleFactor relative size scale factor (between 0 and 1) */ private void adjustDialogSize(Dialog dialog, MainPanel panel, float scaleFactor) { if (!SystemUtils.isHoneycombOrNever()) { DisplayMetrics metrics = new DisplayMetrics(); panel.getActivity().getWindowManager().getDefaultDisplay().getMetrics(metrics); WindowManager.LayoutParams params = new WindowManager.LayoutParams(); params.copyFrom(dialog.getWindow().getAttributes()); params.width = (int) (metrics.widthPixels * scaleFactor); params.height = (int) (metrics.heightPixels * scaleFactor); dialog.getWindow().setAttributes(params); } }
private void startYandexDiskAuthentication(MainPanel panel) { final Dialog dialog = new YandexDiskAuthDialog(panel.getActivity(), mInAppAuthHandler); dialog.show(); adjustDialogSize(dialog, panel); }
private void startSkyDriveAuthentication(MainPanel panel) { App.sInstance .getSkyDriveApi() .startAuthentication(panel.getActivity(), mOnSkyDriveLoginListener); }
private void startGoogleDriveAuthentication(MainPanel panel) { GoogleDriveAuthWindow popupWindow = new GoogleDriveAuthWindow(panel.getActivity(), mInAppAuthHandler); popupWindow.show(); }
private void startDropboxAuthentication(MainPanel panel) { App.sInstance.getDropboxApi().getSession().startAuthentication(panel.getActivity()); mNetworkAuthRequested = true; }
private void startSmbAuthentication(String selectedIp, MainPanel panel) { final Dialog dialog = new SmbAuthDialog(panel.getActivity(), mInAppAuthHandler, selectedIp); dialog.show(); adjustDialogSize(dialog, panel); }
/** Show dialog with available networks (clouds). */ private void showNetworksDialog() { final MainPanel panel = mFileSystemController.getActivePanel(); if (panel == null || panel.getActivity() == null) { // very weired situation; try to avoid crash. return; } final Dialog dialog = new Dialog(panel.getActivity(), R.style.Action_Dialog); dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); View dialogView = View.inflate(App.sInstance.getApplicationContext(), R.layout.network_type_chooser, null); final ListView networks = (ListView) dialogView.findViewById(R.id.network_types); final NetworkChooserAdapter adapter = new NetworkChooserAdapter(); networks.setAdapter(adapter); dialogView .findViewById(R.id.cancel) .setOnClickListener( new View.OnClickListener() { @Override public void onClick(View view) { dialog.dismiss(); } }); networks.setOnItemClickListener( new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { NetworkEnum network = (NetworkEnum) view.getTag(); switch (network) { case FTP: openFTP(panel); break; case SFTP: openSFTP(panel); break; case SMB: openSmb(panel); break; case Dropbox: openDropbox(panel); break; case SkyDrive: openSkyDrive(panel); break; case YandexDisk: openYandexDisk(panel); break; case GoogleDrive: openGoogleDrive(panel); break; case MediaFire: openMediaFire(panel); break; case WebDav: openWebDav(panel); break; } if (dialog.isShowing()) { dialog.dismiss(); } } }); dialog.setContentView(dialogView); dialog.show(); adjustDialogSize(dialog, panel); }