123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- import { NativeModules } from 'react-native';
-
- import { IReduxState } from '../app/types';
- // eslint-disable-next-line lines-around-comment
- // @ts-ignore
- import { setPictureInPictureEnabled } from '../mobile/picture-in-picture/functions';
-
- const { Dropbox } = NativeModules;
-
- /**
- * Action to authorize the Jitsi Recording app in dropbox.
- *
- * @param {any} _appKey - Used on web.
- * @param {any} _redirectURI - Used on web.
- * @returns {Promise<Object>} - The promise will be resolved with the dropbox
- * access token or rejected with an error.
- */
- export async function _authorizeDropbox(_appKey?: any, _redirectURI?: any): Promise<any> {
- setPictureInPictureEnabled(false);
-
- try {
- return await Dropbox.authorize();
- } finally {
- setPictureInPictureEnabled(true);
- }
- }
-
- /**
- * Gets a new access token based on the refresh token.
- *
- * @returns {Promise}
- */
- export function getNewAccessToken() {
- return _authorizeDropbox();
- }
-
- /**
- * Returns the display name for the current dropbox account.
- *
- * @param {string} token - The dropbox access token.
- * @param {any} _appKey - Used on web.
- * @returns {Promise<string>} - The promise will be resolved with the display
- * name or rejected with an error.
- */
- export function getDisplayName(token: string, _appKey?: any) {
- return Dropbox.getDisplayName(token);
- }
-
- /**
- * Returns information about the space usage for the current dropbox account.
- *
- * @param {string} token - The dropbox access token.
- * @param {any} _appKey - Used on web.
- * @returns {Promise<{ used: number, allocated: number}>} - The promise will be
- * resolved with the object with information about the space usage (the used
- * space and the allocated space) for the current dropbox account or rejected
- * with an error.
- */
- export function getSpaceUsage(token: string, _appKey?: any) {
- return Dropbox.getSpaceUsage(token);
- }
-
- /**
- * Returns <tt>true</tt> if the dropbox features is enabled and <tt>false</tt>
- * otherwise.
- *
- * @param {Object} state - The redux state.
- * @returns {boolean}
- */
- export function isEnabled(state: IReduxState) {
- const { dropbox = {} } = state['features/base/config'];
-
- // @ts-ignore
- return Boolean(Dropbox?.ENABLED && typeof dropbox.appKey === 'string');
- }
|