Skip to content
Open
Show file tree
Hide file tree
Changes from 43 commits
Commits
Show all changes
66 commits
Select commit Hold shift + click to select a range
2120f80
fix: styling
amitojsingh Aug 12, 2025
a742c44
Add Baloo Paaji fonts to asset manifests and update styles across com…
amitojsingh Aug 14, 2025
15c0cbd
Update font assets and styles; integrate react-native-linear-gradient
amitojsingh Aug 20, 2025
c86eb0a
Add anvaad-js dependency and update styles and constants
amitojsingh Aug 20, 2025
a79d1a1
Fix BaniList component to handle null rows and update color constant …
amitojsingh Aug 20, 2025
d34e4a7
Enhance BaniList component to handle undefined item cases
amitojsingh Aug 20, 2025
6e0bcce
Update dependencies and refactor styles for improved theming support …
amitojsingh Aug 22, 2025
d47da37
Integrate SafeAreaProvider in App component and optimize header styles
amitojsingh Sep 1, 2025
6afc570
Merge branch 'dev' into 290-feature-redesigning-sundar-gutka-readers-…
amitojsingh Sep 5, 2025
7129d81
Refactor convertToUnicode utility function parameter for clarity
amitojsingh Sep 5, 2025
7af17fb
Refactor styles across multiple components to utilize theme-based spa…
amitojsingh Sep 25, 2025
b9d3fd6
Remove unused theme prop validation from BaniHeader component to stre…
amitojsingh Sep 25, 2025
004cbe3
Merge branch 'dev' into improve-themes
amitojsingh Sep 25, 2025
890a850
Enhance theming support by adding new aliases for settings and theme …
amitojsingh Sep 30, 2025
c5368c5
Enhance convertToUnicode function with error handling and input valid…
amitojsingh Sep 30, 2025
ac978a6
Merge pull request #291 from KhalisFoundation/290-feature-redesigning…
amitojsingh Sep 30, 2025
cd8a6f1
Merge branch 'dev' into improve-themes
amitojsingh Sep 30, 2025
25c8984
merge
amitojsingh Sep 30, 2025
3b36397
Add fontFace parameter to createDiv function for customizable typography
amitojsingh Sep 30, 2025
7030372
Update font assets and manifest files
amitojsingh Oct 1, 2025
061c575
Merge pull request #289 from KhalisFoundation/improve-themes
amitojsingh Oct 6, 2025
f84cc1d
🎧 Add Audio – Major Feature Release (#252)
amitojsingh Oct 28, 2025
b7034bb
Refactor Header component and styles for improved layout and responsi…
amitojsingh Oct 28, 2025
8f8cd89
Fix: App stuck on start screen with large text size (#302)
amitojsingh Oct 30, 2025
9a26f6d
Enhance BottomNavigation styles for improved layout (#307)
amitojsingh Oct 30, 2025
b0faad3
Minor ui fixes for Sundar Gutka audio design (#306)
amitojsingh Oct 31, 2025
2328bc7
Reminders Permission Check fix. (#309)
amitojsingh Nov 4, 2025
4b3b409
Bug Fixes (#310)
amitojsingh Nov 4, 2025
2008889
Refactor components and enhance BottomNavigation integration (#311)
amitojsingh Nov 10, 2025
2d3fe95
Refactor AudioTrackDialog for improved localization and user experien…
amitojsingh Nov 10, 2025
9784f46
Save Audio Progress and seek to bookmark position (#313)
amitojsingh Nov 14, 2025
a63a557
Minor Optimization of code. (#323)
amitojsingh Nov 15, 2025
aa1ca65
Add test suite for bottom navigation (#319)
amitojsingh Nov 15, 2025
d288279
fix settings header (#321)
amitojsingh Nov 15, 2025
d7e827c
Enhance audio management in ReaderScreen and AudioPlayer components (…
amitojsingh Nov 15, 2025
73d8dc1
Add a message when sync is not available (#335)
amitojsingh Nov 19, 2025
a52ee7a
Enhance AudioPlayer styles and AudioSettingsModal functionality (#334)
amitojsingh Nov 19, 2025
a3ff167
Refactor ReaderScreen to utilize useBackHandler and enhance WebView f…
amitojsingh Nov 21, 2025
762e101
Multiple fixes for audio functionality (#336)
amitojsingh Nov 24, 2025
a13622c
fix: bugs by uttamdeep kaur (#337)
amitojsingh Nov 27, 2025
1d67756
Updated the safeAreaView for bottom navigation (#340)
amitojsingh Nov 27, 2025
6ef3fa6
fix: overlapping for auto scroll bar (#343)
amitojsingh Nov 27, 2025
21a6c7f
Improved bookmarks (#345)
amitojsingh Nov 27, 2025
09cd68e
switching artists (#341)
amitojsingh Dec 9, 2025
05c0e89
Added Fallback for audio url (#346)
amitojsingh Dec 9, 2025
e7544fc
Refactor header components to simplify back navigation handling (#352)
amitojsingh Dec 9, 2025
a97355a
Refactor ReaderScreen styles and improve auto-scroll functionality (#…
amitojsingh Dec 9, 2025
62ecb09
Fix dev conflicts (#354)
amitojsingh Dec 10, 2025
331208e
Add Negative Flow for initialization. (#347)
amitojsingh Dec 13, 2025
55617a0
Minor Pre launch fixes (#355)
amitojsingh Dec 17, 2025
082a002
Remove deprecated MCP configuration file and update issue template li…
amitojsingh Dec 18, 2025
d7f367f
Enhance auto-scroll functionality in gutkaScript.js (#364)
amitojsingh Dec 20, 2025
b85fc73
Improved the analytics and log events. (#350)
amitojsingh Dec 22, 2025
83934d8
Refactor audio settings in audio.jsx component (#365)
amitojsingh Dec 22, 2025
ddc240e
Reader Position Not Preserved on Theme / Font Size Change (#360)
amitojsingh Dec 24, 2025
6c2171b
Fixed issue #353
arshmeets Dec 31, 2025
d2d2ede
Pulled out the data from item and used afterwards
arshmeets Jan 1, 2026
270d683
Fix for Issue #303
arshmeets Jan 1, 2026
164cd9d
Refactor analytics tracking in app.js and HomeScreen components (#366)
amitojsingh Jan 2, 2026
e498596
Updated “Reached End” experience (#368)
amitojsingh Jan 2, 2026
4ea5128
Added Documentation (#369)
amitojsingh Jan 2, 2026
76e516b
Finished small progress bar at the bottom
arshmeets Jan 15, 2026
eeca945
Merge branch 'dev' into scroll-bar-not-visible-in-dark-mode-fix
arshmeets Feb 9, 2026
d6af170
made requested changes in PR review
arshmeets Feb 9, 2026
7eda2b4
Switch to the right currentElementIdRef
arshmeets Feb 9, 2026
b20bad8
Merge pull request #371 from arshmeets/scroll-bar-not-visible-in-dark…
arshmeets Feb 9, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions .cursor/mcp.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"mcpServers": {
"RadonAi": {

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we be adding cursor mcp files in Github?

"url": "http://127.0.0.1:63483/mcp",
"type": "http",
"headers": {
"nonce": "0ecdb875-01e6-4b5d-ad01-217b0715323a"
}
}
}
}
83 changes: 82 additions & 1 deletion .eslintrc.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
"extends": ["airbnb", "prettier", "plugin:prettier/recommended", "eslint-config-prettier"],
"parser": "@babel/eslint-parser",
"rules": {
"react-native/no-unused-styles": 2,
"curly": "warn",
"import/no-unresolved": "off",
"global-require": 0,
Expand All @@ -25,7 +26,87 @@
"trailingComma": "es5",
"printWidth": 100
}
],
"import/order": [
"error",
{
"groups": ["builtin", "external", "internal", "parent", "sibling", "index"],
"pathGroups": [
{
"pattern": "react*",
"group": "external",
"position": "before"
},
{
"pattern": "@common/**",
"group": "internal",
"position": "before"
},
{
"pattern": "@**",
"group": "internal",
"position": "before"
}
],
"pathGroupsExcludedImportTypes": ["builtin"],
"newlines-between": "never",
"alphabetize": {
"order": "asc",
"caseInsensitive": true
}
}
]
},
"plugins": ["prettier"]
"overrides": [
{
"files": ["**/*.test.js", "**/*.test.jsx", "**/__mocks__/**", "**/test-utils/**"],
"env": {
"jest": true
},
"rules": {
"react/jsx-filename-extension": "off",
"import/prefer-default-export": "off",
"react/prop-types": "off",
"no-unused-vars": ["error", { "argsIgnorePattern": "^_" }],
"react/react-in-jsx-scope": "off",
"react/jsx-no-useless-fragment": "off",
"no-nested-ternary": "off"
}
},
{
"files": ["**/*.test.jsx"],
"rules": {
"import/order": [
"error",
{
"groups": ["builtin", "external", "internal", "parent", "sibling", "index"],
"pathGroups": [
{
"pattern": "react*",
"group": "external",
"position": "before"
},
{
"pattern": "@common/**",
"group": "internal",
"position": "before"
},
{
"pattern": "@**",
"group": "internal",
"position": "before"
}
],
"pathGroupsExcludedImportTypes": ["builtin"],
"newlines-between": "always",
"alphabetize": {
"order": "asc",
"caseInsensitive": true
}
}
]
}
}
],
"plugins": ["prettier", "react-native"]
}
36 changes: 36 additions & 0 deletions .github/workflows/pr-tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
name: PR CI

on:
pull_request:
types: [opened, synchronize, reopened, ready_for_review]
branches: [master, dev]

concurrency:
group: pr-ci-${{ github.ref }}
cancel-in-progress: true

jobs:
lint-and-test:
if: github.event.pull_request.draft == false
runs-on: ubuntu-latest

steps:
- name: Check out code
uses: actions/checkout@v4

- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: "20"
cache: "yarn"

- name: Install dependencies
run: yarn install --frozen-lockfile

# Lint step
- name: Run ESLint
run: yarn lint

# Unit tests (Jest example)
- name: Run tests
run: yarn test --ci --watchAll=false --reporters=default
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ local.properties
*.keystore
!debug.keystore
.kotlin/
android/node

# node.js
#
Expand Down
22 changes: 21 additions & 1 deletion .vscode/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,5 +6,25 @@
"prettier.semi": true,
"javascript.format.semicolons": "insert",
"prettier.printWidth": 100,
"cSpell.words": ["Pressable"]
"cSpell.words": ["Pressable"],
"react-native-ide.jsxRuntime": "automatic",
"react-native-ide.reactVersion": "19.0.0",
"react-native-ide.reactNativeVersion": "0.78.0",
"typescript.preferences.includePackageJsonAutoImports": "on",
"javascript.preferences.includePackageJsonAutoImports": "on",
"react-native-ide.enableTypeScript": true,
"react-native-ide.enableJavaScript": true,
"react-native-ide.enableJSX": true,
"react-native-ide.moduleResolution": "node",
"react-native-ide.allowSyntheticDefaultImports": true,
"react-native-ide.esModuleInterop": true,
"react-native-ide.enableRenderer": false,
"react-native-ide.enableFabric": false,
"react-native-ide.enableNewArchitecture": false,
"react-native-ide.compatibilityMode": true,
"react-native-ide.moduleMapping": {
"__RNIDE_lib__/JSXRuntime/react-native-78-79/react-jsx-dev-runtime.development.js": "react/jsx-dev-runtime",
"__RNIDE_lib__/rn-renderer/react-native-78-79/ReactFabric-dev.js": "react-native/Libraries/Renderer/implementations/ReactFabric-dev.js"
},
"java.configuration.updateBuildConfiguration": "interactive"
}
7 changes: 7 additions & 0 deletions __mocks__/@react-native/js-polyfills/error-guard.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
// Mock for @react-native/js-polyfills/error-guard
// This avoids parsing Flow type syntax in Jest

module.exports = {
setGlobalErrorHandler: jest.fn(),
getGlobalErrorHandler: jest.fn(() => null),
};
3 changes: 0 additions & 3 deletions __tests__/App-test.js

This file was deleted.

4 changes: 2 additions & 2 deletions android/app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -86,8 +86,8 @@ android {
applicationId = "com.WahegurooNetwork.SundarGutka"
minSdkVersion = rootProject.ext.minSdkVersion
targetSdkVersion = rootProject.ext.targetSdkVersion
versionCode = 162
versionName = "5.8.2"
versionCode = 170
versionName = "5.9"
ndk {
abiFilters "arm64-v8a", "armeabi-v7a", "x86", "x86_64"
}
Expand Down
Binary file removed android/app/release/app-release.apk
Binary file not shown.
11 changes: 10 additions & 1 deletion android/app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,13 @@
xmlns:tools="http://schemas.android.com/tools">

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_MEDIA_PLAYBACK" />

<application android:name=".MainApplication" android:label="@string/app_name" android:icon="@mipmap/ic_launcher_foreground"
android:roundIcon="@mipmap/ic_launcher_round" android:allowBackup="false" android:theme="@style/AppTheme" android:supportsRtl="true">
android:roundIcon="@mipmap/ic_launcher_round" android:allowBackup="false" android:theme="@style/AppTheme" android:supportsRtl="true"
android:networkSecurityConfig="@xml/network_security_config">
<activity android:name=".MainActivity" android:exported="true" android:label="@string/app_name"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode"
android:launchMode="singleTask" android:windowSoftInputMode="adjustResize">
Expand All @@ -16,5 +20,10 @@
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>

<service android:name="com.doublesymmetry.trackplayer.service.MusicService"
android:foregroundServiceType="mediaPlayback"
android:exported="true"
tools:replace="android:exported" />
</application>
</manifest>
Binary file not shown.
Binary file not shown.
13 changes: 13 additions & 0 deletions android/app/src/main/res/xml/network_security_config.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<domain-config cleartextTrafficPermitted="true">
<domain includeSubdomains="false">localhost</domain>
<domain includeSubdomains="false">127.0.0.1</domain>
<domain includeSubdomains="false">10.0.2.2</domain>
<domain includeSubdomains="false">192.168.1.1</domain>
<domain includeSubdomains="true">192.168.0.0</domain>
<domain includeSubdomains="true">172.16.0.0</domain>
<domain includeSubdomains="true">10.0.0.0</domain>
</domain-config>
</network-security-config>

2 changes: 1 addition & 1 deletion android/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ buildscript {
}

dependencies {
classpath('com.android.tools.build:gradle:8.6.2')
classpath('com.android.tools.build:gradle:8.8.2')
classpath("com.facebook.react:react-native-gradle-plugin")
classpath("org.jetbrains.kotlin:kotlin-gradle-plugin")
classpath("de.undercouch:gradle-download-task:5.0.1")
Expand Down
2 changes: 1 addition & 1 deletion android/gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ reactNativeArchitectures=armeabi-v7a,arm64-v8a,x86,x86_64
# your application. You should enable this flag either if you want
# to write custom TurboModules/Fabric components OR use libraries that
# are providing them.
newArchEnabled=true
newArchEnabled=false

# Use this property to enable or disable the Hermes JS engine.
# If set to false, you will be using JSC instead.
Expand Down
8 changes: 8 additions & 0 deletions android/link-assets-manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,14 @@
"path": "assets/fonts/Arial.ttf",
"sha1": "49f0ee6148e6b674a60450d86faaddbb97d798f3"
},
{
"path": "assets/fonts/BalooPaaji2-Regular.ttf",
"sha1": "cf9d69a8c9fb66b439f85d052b87aed39baeb944"
},
{
"path": "assets/fonts/BalooPaaji2-SemiBold.ttf",
"sha1": "3d1005035934b7575ca07f5e2739a8513a2b0cbc"
},
{
"path": "assets/fonts/GurbaniAkharHeavyTrue.ttf",
"sha1": "5896164bba1b0f17705c040ff1e5c6ebfa636bc5"
Expand Down
50 changes: 34 additions & 16 deletions app.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
import React, { useEffect } from "react";
import { Provider } from "react-redux";
import { PersistGate } from "redux-persist/integration/react";
import ErrorBoundary from "react-native-error-boundary";
import notifee, { EventType } from "@notifee/react-native";
import { SafeAreaProvider } from "react-native-safe-area-context";
import SplashScreen from "react-native-splash-screen";
import Toast from "react-native-toast-message";
import { Provider } from "react-redux";
import notifee, { EventType } from "@notifee/react-native";
import { PersistGate } from "redux-persist/integration/react";
import {
createStore,
logError,
Expand All @@ -13,8 +15,10 @@ import {
navigateTo,
initializePerformanceMonitoring,
} from "@common";
import Navigation from "./src/navigation";
import ThemeProvider from "./src/common/context/ThemeProvider";
import { allowTracking } from "./src/common/firebase/analytics";
import { TrackPlayerSetup } from "./src/common/TrackPlayerUtils";
import Navigation from "./src/navigation";

const { store, persistor } = createStore();
const App = () => {
Expand All @@ -24,28 +28,42 @@ const App = () => {
}, []); // The empty array causes this effect to only run on mount

useEffect(() => {
initializePerformanceMonitoring();
allowTracking();
initializeCrashlytics();
(async () => {
await initializePerformanceMonitoring();
await allowTracking();
await initializeCrashlytics();
await TrackPlayerSetup();
})();
}, []);

useEffect(() => {
return notifee.onForegroundEvent(({ type, detail }) => {
const unsubscribe = notifee.onForegroundEvent(async ({ type, detail }) => {
resetBadgeCount();
if (type === EventType.PRESS) {
navigateTo(detail);
try {
await navigateTo(detail);
} catch (error) {
logError(error);
}
}
});

return unsubscribe;
}, []);

return (
<ErrorBoundary onError={logError} FallbackComponent={FallBack}>
<Provider store={store}>
<PersistGate loading={null} persistor={persistor}>
<Navigation />
</PersistGate>
</Provider>
</ErrorBoundary>
<Provider store={store}>
<PersistGate loading={null} persistor={persistor}>
<ThemeProvider>
<ErrorBoundary onError={logError} FallbackComponent={FallBack}>
<SafeAreaProvider>
<Navigation />
<Toast />
</SafeAreaProvider>
</ErrorBoundary>
</ThemeProvider>
</PersistGate>
</Provider>
);
};

Expand Down
Binary file added assets/fonts/BalooPaaji2-Regular.ttf
Binary file not shown.
Binary file added assets/fonts/BalooPaaji2-SemiBold.ttf
Binary file not shown.
3 changes: 3 additions & 0 deletions babel.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,9 @@ module.exports = {
alias: {
"@common": "./src/common",
"@database": "./src/database/db",
"@service": "./src/services",
"@settings": "./src/Settings",
"@theme": "./src/theme",
},
},
],
Expand Down
Loading