You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

Settings.js 2.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. import {generateUsername} from '../util/UsernameGenerator';
  2. var email = '';
  3. var displayName = '';
  4. var userId;
  5. var language = null;
  6. var callStatsUserName;
  7. function supportsLocalStorage() {
  8. try {
  9. return 'localStorage' in window && window.localStorage !== null;
  10. } catch (e) {
  11. console.log("localstorage is not supported");
  12. return false;
  13. }
  14. }
  15. function generateUniqueId() {
  16. function _p8() {
  17. return (Math.random().toString(16) + "000000000").substr(2, 8);
  18. }
  19. return _p8() + _p8() + _p8() + _p8();
  20. }
  21. if (supportsLocalStorage()) {
  22. if (!window.localStorage.jitsiMeetId) {
  23. window.localStorage.jitsiMeetId = generateUniqueId();
  24. console.log("generated id", window.localStorage.jitsiMeetId);
  25. }
  26. if (!window.localStorage.callStatsUserName) {
  27. window.localStorage.callStatsUserName
  28. = generateUsername();
  29. console.log('generated callstats uid',
  30. window.localStorage.callStatsUserName);
  31. }
  32. userId = window.localStorage.jitsiMeetId || '';
  33. callStatsUserName = window.localStorage.callStatsUserName;
  34. email = window.localStorage.email || '';
  35. displayName = window.localStorage.displayname || '';
  36. language = window.localStorage.language;
  37. } else {
  38. console.log("local storage is not supported");
  39. userId = generateUniqueId();
  40. callStatsUserName = generateUsername();
  41. }
  42. export default {
  43. /**
  44. * Sets the local user display name and saves it to local storage
  45. *
  46. * @param newDisplayName the new display name for the local user
  47. * @returns {string} the display name we just set
  48. */
  49. setDisplayName: function (newDisplayName) {
  50. if (displayName === newDisplayName) {
  51. return displayName;
  52. }
  53. displayName = newDisplayName;
  54. window.localStorage.displayname = displayName;
  55. return displayName;
  56. },
  57. /**
  58. * Returns the currently used by the user
  59. * @returns {string} currently valid user display name.
  60. */
  61. getDisplayName: function () {
  62. return displayName;
  63. },
  64. /**
  65. * Returns fake username for callstats
  66. * @returns {string} fake username for callstats
  67. */
  68. getCallStatsUserName: function () {
  69. return callStatsUserName;
  70. },
  71. setEmail: function (newEmail) {
  72. email = newEmail;
  73. window.localStorage.email = newEmail;
  74. return email;
  75. },
  76. getEmail: function () {
  77. return email;
  78. },
  79. getSettings: function () {
  80. return {
  81. email: email,
  82. displayName: displayName,
  83. uid: userId,
  84. language: language
  85. };
  86. },
  87. getLanguage () {
  88. return language;
  89. },
  90. setLanguage: function (lang) {
  91. language = lang;
  92. window.localStorage.language = lang;
  93. }
  94. };