mirror of
				https://github.com/ImranR98/Obtainium.git
				synced 2025-11-03 23:03:29 +01:00 
			
		
		
		
	Compare commits
	
		
			10 Commits
		
	
	
		
			v0.11.30-b
			...
			v0.11.32-b
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					dc52fb6181 | ||
| 
						 | 
					9e4ac397d8 | ||
| 
						 | 
					0ec944eae9 | ||
| 
						 | 
					ad250c30e4 | ||
| 
						 | 
					1090f15508 | ||
| 
						 | 
					666941350e | ||
| 
						 | 
					eeadbce8b0 | ||
| 
						 | 
					ce8aeff342 | ||
| 
						 | 
					0d8362a2ed | ||
| 
						 | 
					3b28143a4e | 
@@ -122,6 +122,7 @@
 | 
				
			|||||||
    "followSystem": "System folgen",
 | 
					    "followSystem": "System folgen",
 | 
				
			||||||
    "obtainium": "Obtainium",
 | 
					    "obtainium": "Obtainium",
 | 
				
			||||||
    "materialYou": "Material You",
 | 
					    "materialYou": "Material You",
 | 
				
			||||||
 | 
					    "useBlackTheme": "Use pure black dark theme",
 | 
				
			||||||
    "appSortBy": "App sortieren nach",
 | 
					    "appSortBy": "App sortieren nach",
 | 
				
			||||||
    "authorName": "Autor/Name",
 | 
					    "authorName": "Autor/Name",
 | 
				
			||||||
    "nameAuthor": "Name/Autor",
 | 
					    "nameAuthor": "Name/Autor",
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -122,6 +122,7 @@
 | 
				
			|||||||
    "followSystem": "Follow System",
 | 
					    "followSystem": "Follow System",
 | 
				
			||||||
    "obtainium": "Obtainium",
 | 
					    "obtainium": "Obtainium",
 | 
				
			||||||
    "materialYou": "Material You",
 | 
					    "materialYou": "Material You",
 | 
				
			||||||
 | 
					    "useBlackTheme": "Use pure black dark theme",
 | 
				
			||||||
    "appSortBy": "App Sort By",
 | 
					    "appSortBy": "App Sort By",
 | 
				
			||||||
    "authorName": "Author/Name",
 | 
					    "authorName": "Author/Name",
 | 
				
			||||||
    "nameAuthor": "Name/Author",
 | 
					    "nameAuthor": "Name/Author",
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -122,6 +122,7 @@
 | 
				
			|||||||
    "followSystem": "هماهنگ با سیستم",
 | 
					    "followSystem": "هماهنگ با سیستم",
 | 
				
			||||||
    "obtainium": "Obtainium",
 | 
					    "obtainium": "Obtainium",
 | 
				
			||||||
    "materialYou": "Material You",
 | 
					    "materialYou": "Material You",
 | 
				
			||||||
 | 
					    "useBlackTheme": "Use pure black dark theme",
 | 
				
			||||||
    "appSortBy": "مرتب سازی برنامه بر اساس",
 | 
					    "appSortBy": "مرتب سازی برنامه بر اساس",
 | 
				
			||||||
    "authorName": "سازنده/اسم",
 | 
					    "authorName": "سازنده/اسم",
 | 
				
			||||||
    "nameAuthor": "اسم/سازنده",
 | 
					    "nameAuthor": "اسم/سازنده",
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -122,6 +122,7 @@
 | 
				
			|||||||
    "followSystem": "Suivre le système",
 | 
					    "followSystem": "Suivre le système",
 | 
				
			||||||
    "obtainium": "Obtainium",
 | 
					    "obtainium": "Obtainium",
 | 
				
			||||||
    "materialYou": "Material You",
 | 
					    "materialYou": "Material You",
 | 
				
			||||||
 | 
					    "useBlackTheme": "Use pure black dark theme",
 | 
				
			||||||
    "appSortBy": "Applications triées par",
 | 
					    "appSortBy": "Applications triées par",
 | 
				
			||||||
    "authorName": "Auteur/Nom",
 | 
					    "authorName": "Auteur/Nom",
 | 
				
			||||||
    "nameAuthor": "Nom/Auteur",
 | 
					    "nameAuthor": "Nom/Auteur",
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -122,6 +122,7 @@
 | 
				
			|||||||
    "followSystem": "Rendszer szerint",
 | 
					    "followSystem": "Rendszer szerint",
 | 
				
			||||||
    "obtainium": "Obtainium",
 | 
					    "obtainium": "Obtainium",
 | 
				
			||||||
    "materialYou": "Material You",
 | 
					    "materialYou": "Material You",
 | 
				
			||||||
 | 
					    "useBlackTheme": "Use pure black dark theme",
 | 
				
			||||||
    "appSortBy": "App rendezés...",
 | 
					    "appSortBy": "App rendezés...",
 | 
				
			||||||
    "authorName": "Szerző/Név",
 | 
					    "authorName": "Szerző/Név",
 | 
				
			||||||
    "nameAuthor": "Név/Szerző",
 | 
					    "nameAuthor": "Név/Szerző",
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -122,6 +122,7 @@
 | 
				
			|||||||
    "followSystem": "Segui sistema",
 | 
					    "followSystem": "Segui sistema",
 | 
				
			||||||
    "obtainium": "Obtainium",
 | 
					    "obtainium": "Obtainium",
 | 
				
			||||||
    "materialYou": "Material You",
 | 
					    "materialYou": "Material You",
 | 
				
			||||||
 | 
					    "useBlackTheme": "Use pure black dark theme",
 | 
				
			||||||
    "appSortBy": "App ordinate per",
 | 
					    "appSortBy": "App ordinate per",
 | 
				
			||||||
    "authorName": "Autore/Nome",
 | 
					    "authorName": "Autore/Nome",
 | 
				
			||||||
    "nameAuthor": "Nome/Autore",
 | 
					    "nameAuthor": "Nome/Autore",
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -122,6 +122,7 @@
 | 
				
			|||||||
    "followSystem": "システムに従う",
 | 
					    "followSystem": "システムに従う",
 | 
				
			||||||
    "obtainium": "Obtainium",
 | 
					    "obtainium": "Obtainium",
 | 
				
			||||||
    "materialYou": "Material You",
 | 
					    "materialYou": "Material You",
 | 
				
			||||||
 | 
					    "useBlackTheme": "Use pure black dark theme",
 | 
				
			||||||
    "appSortBy": "アプリの並び方",
 | 
					    "appSortBy": "アプリの並び方",
 | 
				
			||||||
    "authorName": "作者名/アプリ名",
 | 
					    "authorName": "作者名/アプリ名",
 | 
				
			||||||
    "nameAuthor": "アプリ名/作者名",
 | 
					    "nameAuthor": "アプリ名/作者名",
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -123,6 +123,7 @@
 | 
				
			|||||||
    "followSystem": "跟随系统",
 | 
					    "followSystem": "跟随系统",
 | 
				
			||||||
    "obtainium": "Obtainium",
 | 
					    "obtainium": "Obtainium",
 | 
				
			||||||
    "materialYou": "Material You",
 | 
					    "materialYou": "Material You",
 | 
				
			||||||
 | 
					    "useBlackTheme": "Use pure black dark theme",
 | 
				
			||||||
    "appSortBy": "排列方式",
 | 
					    "appSortBy": "排列方式",
 | 
				
			||||||
    "authorName": "作者 / 名字",
 | 
					    "authorName": "作者 / 名字",
 | 
				
			||||||
    "nameAuthor": "名字 / 作者",
 | 
					    "nameAuthor": "名字 / 作者",
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -31,7 +31,8 @@ class SourceForge extends AppSource {
 | 
				
			|||||||
      getVersion(String url) {
 | 
					      getVersion(String url) {
 | 
				
			||||||
        try {
 | 
					        try {
 | 
				
			||||||
          var tokens = url.split('/');
 | 
					          var tokens = url.split('/');
 | 
				
			||||||
          return tokens[tokens.length - 3];
 | 
					          var fi = tokens.indexOf('files');
 | 
				
			||||||
 | 
					          return tokens[tokens[fi + 2] == 'download' ? fi - 1 : fi + 1];
 | 
				
			||||||
        } catch (e) {
 | 
					        } catch (e) {
 | 
				
			||||||
          return null;
 | 
					          return null;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -21,7 +21,7 @@ import 'package:easy_localization/src/easy_localization_controller.dart';
 | 
				
			|||||||
// ignore: implementation_imports
 | 
					// ignore: implementation_imports
 | 
				
			||||||
import 'package:easy_localization/src/localization.dart';
 | 
					import 'package:easy_localization/src/localization.dart';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const String currentVersion = '0.11.30';
 | 
					const String currentVersion = '0.11.32';
 | 
				
			||||||
const String currentReleaseTag =
 | 
					const String currentReleaseTag =
 | 
				
			||||||
    'v$currentVersion-beta'; // KEEP THIS IN SYNC WITH GITHUB RELEASES
 | 
					    'v$currentVersion-beta'; // KEEP THIS IN SYNC WITH GITHUB RELEASES
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -263,6 +263,14 @@ class _ObtainiumState extends State<Obtainium> {
 | 
				
			|||||||
        darkColorScheme = ColorScheme.fromSeed(
 | 
					        darkColorScheme = ColorScheme.fromSeed(
 | 
				
			||||||
            seedColor: defaultThemeColour, brightness: Brightness.dark);
 | 
					            seedColor: defaultThemeColour, brightness: Brightness.dark);
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      // set the background and surface colors to pure black in the amoled theme
 | 
				
			||||||
 | 
					      if (settingsProvider.useBlackTheme) {
 | 
				
			||||||
 | 
					        darkColorScheme = darkColorScheme
 | 
				
			||||||
 | 
					            .copyWith(background: Colors.black, surface: Colors.black)
 | 
				
			||||||
 | 
					            .harmonized();
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      return MaterialApp(
 | 
					      return MaterialApp(
 | 
				
			||||||
          title: 'Obtainium',
 | 
					          title: 'Obtainium',
 | 
				
			||||||
          localizationsDelegates: context.localizationDelegates,
 | 
					          localizationsDelegates: context.localizationDelegates,
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -224,6 +224,17 @@ class _SettingsPageState extends State<SettingsPage> {
 | 
				
			|||||||
                            ),
 | 
					                            ),
 | 
				
			||||||
                            themeDropdown,
 | 
					                            themeDropdown,
 | 
				
			||||||
                            height16,
 | 
					                            height16,
 | 
				
			||||||
 | 
					                            Row(
 | 
				
			||||||
 | 
					                              mainAxisAlignment: MainAxisAlignment.spaceBetween,
 | 
				
			||||||
 | 
					                              children: [
 | 
				
			||||||
 | 
					                                Text(tr('useBlackTheme')),
 | 
				
			||||||
 | 
					                                Switch(
 | 
				
			||||||
 | 
					                                    value: settingsProvider.useBlackTheme,
 | 
				
			||||||
 | 
					                                    onChanged: (value) {
 | 
				
			||||||
 | 
					                                      settingsProvider.useBlackTheme = value;
 | 
				
			||||||
 | 
					                                    })
 | 
				
			||||||
 | 
					                              ],
 | 
				
			||||||
 | 
					                            ),
 | 
				
			||||||
                            colourDropdown,
 | 
					                            colourDropdown,
 | 
				
			||||||
                            height16,
 | 
					                            height16,
 | 
				
			||||||
                            Row(
 | 
					                            Row(
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -64,6 +64,15 @@ class SettingsProvider with ChangeNotifier {
 | 
				
			|||||||
    notifyListeners();
 | 
					    notifyListeners();
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  bool get useBlackTheme {
 | 
				
			||||||
 | 
					    return prefs?.getBool('useBlackTheme') ?? false;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  set useBlackTheme(bool useBlackTheme) {
 | 
				
			||||||
 | 
					    prefs?.setBool('useBlackTheme', useBlackTheme);
 | 
				
			||||||
 | 
					    notifyListeners();
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  int get updateInterval {
 | 
					  int get updateInterval {
 | 
				
			||||||
    var min = prefs?.getInt('updateInterval') ?? 360;
 | 
					    var min = prefs?.getInt('updateInterval') ?? 360;
 | 
				
			||||||
    if (!updateIntervals.contains(min)) {
 | 
					    if (!updateIntervals.contains(min)) {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -266,10 +266,12 @@ Map<String, dynamic> getDefaultValuesFromFormItems(
 | 
				
			|||||||
      .reduce((value, element) => [...value, ...element]));
 | 
					      .reduce((value, element) => [...value, ...element]));
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
getApkUrlsFromUrls(List<String> urls) => urls
 | 
					List<MapEntry<String, String>> getApkUrlsFromUrls(List<String> urls) =>
 | 
				
			||||||
    .map((e) =>
 | 
					    urls.map((e) {
 | 
				
			||||||
        MapEntry(e.split('/').where((el) => el.trim().isNotEmpty).last, e))
 | 
					      var segments = e.split('/').where((el) => el.trim().isNotEmpty);
 | 
				
			||||||
    .toList();
 | 
					      var apkSegs = segments.where((s) => s.toLowerCase().endsWith('.apk'));
 | 
				
			||||||
 | 
					      return MapEntry(apkSegs.isNotEmpty ? apkSegs.last : segments.last, e);
 | 
				
			||||||
 | 
					    }).toList();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class AppSource {
 | 
					class AppSource {
 | 
				
			||||||
  String? host;
 | 
					  String? host;
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										16
									
								
								pubspec.lock
									
									
									
									
									
								
							
							
						
						
									
										16
									
								
								pubspec.lock
									
									
									
									
									
								
							@@ -181,10 +181,10 @@ packages:
 | 
				
			|||||||
    dependency: "direct main"
 | 
					    dependency: "direct main"
 | 
				
			||||||
    description:
 | 
					    description:
 | 
				
			||||||
      name: file_picker
 | 
					      name: file_picker
 | 
				
			||||||
      sha256: dd328189f2f4ccea042bb5b382d5e981691cc74b5a3429b9317bff2b19704489
 | 
					      sha256: dcde5ad1a0cebcf3715ea3f24d0db1888bf77027a26c77d7779e8ef63b8ade62
 | 
				
			||||||
      url: "https://pub.dev"
 | 
					      url: "https://pub.dev"
 | 
				
			||||||
    source: hosted
 | 
					    source: hosted
 | 
				
			||||||
    version: "5.2.8"
 | 
					    version: "5.2.9"
 | 
				
			||||||
  flutter:
 | 
					  flutter:
 | 
				
			||||||
    dependency: "direct main"
 | 
					    dependency: "direct main"
 | 
				
			||||||
    description: flutter
 | 
					    description: flutter
 | 
				
			||||||
@@ -561,10 +561,10 @@ packages:
 | 
				
			|||||||
    dependency: transitive
 | 
					    dependency: transitive
 | 
				
			||||||
    description:
 | 
					    description:
 | 
				
			||||||
      name: shared_preferences_android
 | 
					      name: shared_preferences_android
 | 
				
			||||||
      sha256: "8304d8a1f7d21a429f91dee552792249362b68a331ac5c3c1caf370f658873f6"
 | 
					      sha256: "1bc5d734b109c327b922b0891b41fc51483ccbd53c0d19952b7e230349a5d90b"
 | 
				
			||||||
      url: "https://pub.dev"
 | 
					      url: "https://pub.dev"
 | 
				
			||||||
    source: hosted
 | 
					    source: hosted
 | 
				
			||||||
    version: "2.1.0"
 | 
					    version: "2.1.1"
 | 
				
			||||||
  shared_preferences_foundation:
 | 
					  shared_preferences_foundation:
 | 
				
			||||||
    dependency: transitive
 | 
					    dependency: transitive
 | 
				
			||||||
    description:
 | 
					    description:
 | 
				
			||||||
@@ -790,10 +790,10 @@ packages:
 | 
				
			|||||||
    dependency: transitive
 | 
					    dependency: transitive
 | 
				
			||||||
    description:
 | 
					    description:
 | 
				
			||||||
      name: webview_flutter_android
 | 
					      name: webview_flutter_android
 | 
				
			||||||
      sha256: "5906c9aa8c88ed372b2ad3c88c942790b4fb16f73fdd1c0647b4d747d9cf5b3f"
 | 
					      sha256: bdd3ddbeaf341c75620e153d22b6f4f6c4a342fe4439ed3a10db74dd82e65d1c
 | 
				
			||||||
      url: "https://pub.dev"
 | 
					      url: "https://pub.dev"
 | 
				
			||||||
    source: hosted
 | 
					    source: hosted
 | 
				
			||||||
    version: "3.4.5"
 | 
					    version: "3.5.1"
 | 
				
			||||||
  webview_flutter_platform_interface:
 | 
					  webview_flutter_platform_interface:
 | 
				
			||||||
    dependency: transitive
 | 
					    dependency: transitive
 | 
				
			||||||
    description:
 | 
					    description:
 | 
				
			||||||
@@ -806,10 +806,10 @@ packages:
 | 
				
			|||||||
    dependency: transitive
 | 
					    dependency: transitive
 | 
				
			||||||
    description:
 | 
					    description:
 | 
				
			||||||
      name: webview_flutter_wkwebview
 | 
					      name: webview_flutter_wkwebview
 | 
				
			||||||
      sha256: "9a78d963cce191dd6a9df547301fc5c008bf3dae95a323ec281fff1284e0a037"
 | 
					      sha256: "2ef3f65fd49061c18e4d837a411308f2850417f2d0a7c11aad2c3857bee12c18"
 | 
				
			||||||
      url: "https://pub.dev"
 | 
					      url: "https://pub.dev"
 | 
				
			||||||
    source: hosted
 | 
					    source: hosted
 | 
				
			||||||
    version: "3.2.4"
 | 
					    version: "3.3.0"
 | 
				
			||||||
  win32:
 | 
					  win32:
 | 
				
			||||||
    dependency: transitive
 | 
					    dependency: transitive
 | 
				
			||||||
    description:
 | 
					    description:
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -17,7 +17,7 @@ publish_to: 'none' # Remove this line if you wish to publish to pub.dev
 | 
				
			|||||||
# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
 | 
					# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
 | 
				
			||||||
# In Windows, build-name is used as the major, minor, and patch parts
 | 
					# In Windows, build-name is used as the major, minor, and patch parts
 | 
				
			||||||
# of the product and file versions while build-number is used as the build suffix.
 | 
					# of the product and file versions while build-number is used as the build suffix.
 | 
				
			||||||
version: 0.11.30+152 # When changing this, update the tag in main() accordingly
 | 
					version: 0.11.32+154 # When changing this, update the tag in main() accordingly
 | 
				
			||||||
 | 
					
 | 
				
			||||||
environment:
 | 
					environment:
 | 
				
			||||||
  sdk: '>=2.18.2 <3.0.0'
 | 
					  sdk: '>=2.18.2 <3.0.0'
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user