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.6KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. var UsernameGenerator = require('../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. = UsernameGenerator.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 = UsernameGenerator.generateUsername();
  41. }
  42. var Settings = {
  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. displayName = newDisplayName;
  51. window.localStorage.displayname = displayName;
  52. return displayName;
  53. },
  54. /**
  55. * Returns the currently used by the user
  56. * @returns {string} currently valid user display name.
  57. */
  58. getDisplayName: function () {
  59. return displayName;
  60. },
  61. /**
  62. * Returns fake username for callstats
  63. * @returns {string} fake username for callstats
  64. */
  65. getCallStatsUserName: function () {
  66. return callStatsUserName;
  67. },
  68. setEmail: function (newEmail) {
  69. email = newEmail;
  70. window.localStorage.email = newEmail;
  71. return email;
  72. },
  73. getSettings: function () {
  74. return {
  75. email: email,
  76. displayName: displayName,
  77. uid: userId,
  78. language: language
  79. };
  80. },
  81. setLanguage: function (lang) {
  82. language = lang;
  83. window.localStorage.language = lang;
  84. }
  85. };
  86. module.exports = Settings;