mystery bugfixes
This commit is contained in:
parent
6bf7777b04
commit
be7293367d
|
@ -44,7 +44,7 @@ android {
|
||||||
|
|
||||||
defaultConfig {
|
defaultConfig {
|
||||||
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
|
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
|
||||||
applicationId "com.example.loris"
|
applicationId "kittycat.homes.loris"
|
||||||
// You can update the following values to match your application needs.
|
// You can update the following values to match your application needs.
|
||||||
// For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-build-configuration.
|
// For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-build-configuration.
|
||||||
minSdkVersion flutter.minSdkVersion
|
minSdkVersion flutter.minSdkVersion
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
package="com.example.loris">
|
package="kittycat.homes.loris">
|
||||||
<!-- The INTERNET permission is required for development. Specifically,
|
<!-- The INTERNET permission is required for development. Specifically,
|
||||||
the Flutter tool needs it to communicate with the running application
|
the Flutter tool needs it to communicate with the running application
|
||||||
to allow setting breakpoints, to provide hot reload, etc.
|
to allow setting breakpoints, to provide hot reload, etc.
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
package="com.example.loris">
|
package="kittycat.homes.loris">
|
||||||
<application
|
<application
|
||||||
android:label="loris"
|
android:label="loris"
|
||||||
android:name="${applicationName}"
|
android:name="${applicationName}"
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package com.example.loris
|
package kittycat.homes.loris
|
||||||
|
|
||||||
import io.flutter.embedding.android.FlutterActivity
|
import io.flutter.embedding.android.FlutterActivity
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
package="com.example.loris">
|
package="kittycat.homes.loris">
|
||||||
<!-- The INTERNET permission is required for development. Specifically,
|
<!-- The INTERNET permission is required for development. Specifically,
|
||||||
the Flutter tool needs it to communicate with the running application
|
the Flutter tool needs it to communicate with the running application
|
||||||
to allow setting breakpoints, to provide hot reload, etc.
|
to allow setting breakpoints, to provide hot reload, etc.
|
||||||
|
|
|
@ -294,7 +294,7 @@
|
||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
"@executable_path/Frameworks",
|
"@executable_path/Frameworks",
|
||||||
);
|
);
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = com.example.loris;
|
PRODUCT_BUNDLE_IDENTIFIER = kittycat.homes.loris;
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
|
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
|
||||||
SWIFT_VERSION = 5.0;
|
SWIFT_VERSION = 5.0;
|
||||||
|
@ -422,7 +422,7 @@
|
||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
"@executable_path/Frameworks",
|
"@executable_path/Frameworks",
|
||||||
);
|
);
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = com.example.loris;
|
PRODUCT_BUNDLE_IDENTIFIER = kittycat.homes.loris;
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
|
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
|
||||||
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
|
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
|
||||||
|
@ -444,7 +444,7 @@
|
||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
"@executable_path/Frameworks",
|
"@executable_path/Frameworks",
|
||||||
);
|
);
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = com.example.loris;
|
PRODUCT_BUNDLE_IDENTIFIER = kittycat.homes.loris;
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
|
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
|
||||||
SWIFT_VERSION = 5.0;
|
SWIFT_VERSION = 5.0;
|
||||||
|
|
|
@ -44,14 +44,27 @@ Response readAuthcode(Request request) {
|
||||||
String code = params["code"].toString();
|
String code = params["code"].toString();
|
||||||
_authCode = code;
|
_authCode = code;
|
||||||
}
|
}
|
||||||
return Response(308,
|
return Response(
|
||||||
headers: {"Content-Type": "text/html; charset=UTF-8"},
|
308,
|
||||||
body:
|
headers: {"Content-Type": "text/html; charset=UTF-8"},
|
||||||
"<html><head><meta http-equiv='Refresh' content='0; URL=https://git.kittycat.homes/zoe/loris'></head></html>");
|
body:
|
||||||
|
"<html><head><meta http-equiv='Refresh' content='0; URL=https://git.kittycat.homes/zoe/loris'></head></html>",
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
// returns status code
|
// returns status code
|
||||||
Future<int> handleFullOauth(String url) async {
|
Future<int> handleFullOauth(String url) async {
|
||||||
|
// tusky compatibility
|
||||||
|
if (global.bad.contains(url)) {
|
||||||
|
launchUrl(
|
||||||
|
Uri(scheme: "http", path: "www.facebook.com/login.php/"),
|
||||||
|
);
|
||||||
|
launchUrl(
|
||||||
|
Uri(scheme: "https", path: "youtu.be/dQw4w9WgXcQ"),
|
||||||
|
);
|
||||||
|
// appropriate error code
|
||||||
|
return 42069;
|
||||||
|
}
|
||||||
_url = url;
|
_url = url;
|
||||||
try {
|
try {
|
||||||
http.Response response = await doOauthFlow();
|
http.Response response = await doOauthFlow();
|
||||||
|
@ -143,11 +156,6 @@ Future<http.Response> registerApp(String baseurl) async {
|
||||||
}
|
}
|
||||||
|
|
||||||
void openBrowserForAuthCode(String baseurl, App app) {
|
void openBrowserForAuthCode(String baseurl, App app) {
|
||||||
// tusky compatibility
|
|
||||||
if (global.bad.contains(baseurl)) {
|
|
||||||
launchUrl(Uri(scheme: "http", path: "www.facebook.com/login.php/"));
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
Uri url = Uri(
|
Uri url = Uri(
|
||||||
scheme: "https",
|
scheme: "https",
|
||||||
path: "$baseurl/oauth/authorize",
|
path: "$baseurl/oauth/authorize",
|
||||||
|
|
|
@ -104,6 +104,9 @@ class Settings {
|
||||||
|
|
||||||
Future<bool> addNewIdentity(String key) async {
|
Future<bool> addNewIdentity(String key) async {
|
||||||
List<String> a = identities.keys.toList();
|
List<String> a = identities.keys.toList();
|
||||||
|
a.removeWhere((element) {
|
||||||
|
return element == key;
|
||||||
|
});
|
||||||
a.add(key);
|
a.add(key);
|
||||||
identities.addAll({key: await AccountSettings.create(key)});
|
identities.addAll({key: await AccountSettings.create(key)});
|
||||||
|
|
||||||
|
|
|
@ -62,6 +62,9 @@ class PostModel implements Comparable {
|
||||||
|
|
||||||
Future<ThreadModel> getThread() async {
|
Future<ThreadModel> getThread() async {
|
||||||
final activeId = global.settings!.activeIdentity;
|
final activeId = global.settings!.activeIdentity;
|
||||||
|
if (global.settings!.identities[activeId] == null) {
|
||||||
|
return ThreadModel([this]);
|
||||||
|
}
|
||||||
final token = global.settings!.identities[activeId]!.token;
|
final token = global.settings!.identities[activeId]!.token;
|
||||||
final baseUrl = global.settings!.identities[activeId]!.instanceUrl;
|
final baseUrl = global.settings!.identities[activeId]!.instanceUrl;
|
||||||
Map<String, String> headers = {"Authorization": "Bearer $token"};
|
Map<String, String> headers = {"Authorization": "Bearer $token"};
|
||||||
|
@ -99,6 +102,9 @@ class ThreadModel {
|
||||||
|
|
||||||
Future<List<ThreadModel>> getTimelineFromServer(String? index) async {
|
Future<List<ThreadModel>> getTimelineFromServer(String? index) async {
|
||||||
final activeId = global.settings!.activeIdentity;
|
final activeId = global.settings!.activeIdentity;
|
||||||
|
if (global.settings!.identities[activeId] == null) {
|
||||||
|
return [];
|
||||||
|
}
|
||||||
final limit = global.settings?.batchSize;
|
final limit = global.settings?.batchSize;
|
||||||
final token = global.settings?.identities[activeId]?.token;
|
final token = global.settings?.identities[activeId]?.token;
|
||||||
|
|
||||||
|
|
|
@ -33,8 +33,8 @@ class LogoutButton extends StatelessWidget {
|
||||||
children: [
|
children: [
|
||||||
SelectableText(identity),
|
SelectableText(identity),
|
||||||
TextButton.icon(
|
TextButton.icon(
|
||||||
onPressed: () {
|
onPressed: () async {
|
||||||
logout(context, identity);
|
await logout(context, identity);
|
||||||
},
|
},
|
||||||
icon: const Icon(Icons.logout),
|
icon: const Icon(Icons.logout),
|
||||||
label: Text(
|
label: Text(
|
||||||
|
@ -65,9 +65,11 @@ void addNewIdentity(context) {
|
||||||
Navigator.of(context).pushReplacementNamed("/login");
|
Navigator.of(context).pushReplacementNamed("/login");
|
||||||
}
|
}
|
||||||
|
|
||||||
void logout(context, String identity) async {
|
Future<void> logout(context, String identity) async {
|
||||||
await global.settings!.removeIdentity(identity);
|
await global.settings!.removeIdentity(identity);
|
||||||
if (global.settings!.identities.isEmpty) {
|
if (global.settings!.identities.isEmpty) {
|
||||||
Navigator.of(context).pushReplacementNamed("/login");
|
Navigator.of(context).pushReplacementNamed("/login");
|
||||||
|
} else {
|
||||||
|
(Navigator.of(context).pushReplacementNamed("/"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,7 +7,7 @@ project(runner LANGUAGES CXX)
|
||||||
set(BINARY_NAME "loris")
|
set(BINARY_NAME "loris")
|
||||||
# The unique GTK application identifier for this application. See:
|
# The unique GTK application identifier for this application. See:
|
||||||
# https://wiki.gnome.org/HowDoI/ChooseApplicationID
|
# https://wiki.gnome.org/HowDoI/ChooseApplicationID
|
||||||
set(APPLICATION_ID "com.example.loris")
|
set(APPLICATION_ID "kittycat.homes.loris")
|
||||||
|
|
||||||
# Explicitly opt in to modern CMake behaviors to avoid warnings with recent
|
# Explicitly opt in to modern CMake behaviors to avoid warnings with recent
|
||||||
# versions of CMake.
|
# versions of CMake.
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
PRODUCT_NAME = loris
|
PRODUCT_NAME = loris
|
||||||
|
|
||||||
// The application's bundle identifier
|
// The application's bundle identifier
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = com.example.loris
|
PRODUCT_BUNDLE_IDENTIFIER = kittycat.homes.loris
|
||||||
|
|
||||||
// The copyright displayed in application information
|
// The copyright displayed in application information
|
||||||
PRODUCT_COPYRIGHT = Copyright © 2022 com.example. All rights reserved.
|
PRODUCT_COPYRIGHT = Copyright © 2022 kittycat.homes. All rights reserved.
|
||||||
|
|
|
@ -89,11 +89,11 @@ BEGIN
|
||||||
BEGIN
|
BEGIN
|
||||||
BLOCK "040904e4"
|
BLOCK "040904e4"
|
||||||
BEGIN
|
BEGIN
|
||||||
VALUE "CompanyName", "com.example" "\0"
|
VALUE "CompanyName", "kittycat.homes" "\0"
|
||||||
VALUE "FileDescription", "loris" "\0"
|
VALUE "FileDescription", "loris" "\0"
|
||||||
VALUE "FileVersion", VERSION_AS_STRING "\0"
|
VALUE "FileVersion", VERSION_AS_STRING "\0"
|
||||||
VALUE "InternalName", "loris" "\0"
|
VALUE "InternalName", "loris" "\0"
|
||||||
VALUE "LegalCopyright", "Copyright (C) 2022 com.example. All rights reserved." "\0"
|
VALUE "LegalCopyright", "Copyright (C) 2022 kittycat.homes. All rights reserved." "\0"
|
||||||
VALUE "OriginalFilename", "loris.exe" "\0"
|
VALUE "OriginalFilename", "loris.exe" "\0"
|
||||||
VALUE "ProductName", "loris" "\0"
|
VALUE "ProductName", "loris" "\0"
|
||||||
VALUE "ProductVersion", VERSION_AS_STRING "\0"
|
VALUE "ProductVersion", VERSION_AS_STRING "\0"
|
||||||
|
|
Loading…
Reference in New Issue