Skip to content

Commit

Permalink
(main) Add artists collection button
Browse files Browse the repository at this point in the history
  • Loading branch information
violet-dev committed Aug 2, 2020
1 parent e0ec45e commit 3c5b4f9
Show file tree
Hide file tree
Showing 8 changed files with 428 additions and 79 deletions.

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions assets/lottie/28446-floward-gift-box.json

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions assets/lottie/4629-hypno.json

Large diffs are not rendered by default.

195 changes: 195 additions & 0 deletions lib/component/hitomi/artists.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,195 @@
// This source code is a part of Project Violet.
// Copyright (C) 2020. violet-team. Licensed under the MIT License.

class Artists {
static Map<Map<String, dynamic>, dynamic> collection = {
//
// Masculine Artists
//
{'default': 'COMIC快楽天', 'ko': '코믹 쾌락천', 'ja': 'COMIC快楽天'}: [
'homunculus',
'hamao',
'tosh',
'napata',
'hisasi',
//
'konchiki',
'redrop',
'okara',
'minato fumi',
'sumiya',
'ishikawa shisuke',
'shono kotaro',
'azuma ran',
//
'misagi nagomu',
'inuburo',
'bosshi',
'e-musu aki',
'koume keito',
'itou eight',
'higenamuchi',
'namboku',
//
'azuma tesshin',
'bareisho',
'pon takahanada',
'onda chiro',
'hachiya makoto',
'naruko hanaharu',
'linda',
'miyabi tsuzuru',
'mg joe',
'nishi iori',
],
{'default': 'COMIC X-EROS', 'ko': '코믹 제로스'}: [
'distance',
'yonekura kengo',
'tsukino jyogi',
'fuetakishi',
'ishikei',
'oda non',
'takayaki',
'knuckle curve',
'hisakawa tinn',
'makinosaka shinichi',
'kuronomiki',
'akino sora',
'gomennasai',
'sasayuki',
'23',
'shindol',
'kurosaki rendou',
'hiyoshi hana',
'yarii shimeta',
'shinonome ryu',
'yoshida inuhito',
'hori hiroaki',
],
{'default': 'Pure Love', 'ko': '순애', 'ja': '純愛', 'zh': '爱'}: [
"ichimatsu",
"e-musu aki",
"fujimaru",
"hinasaki yo",
"suihei sen",
"momoko",
"kizuka kazuki",
"doumou",
"katsurai yoshiaki",
"hiten",
"emily",
"john k. pe-ta",
"botan mochito",
"meme50",
"tomohiro kai",
"sanjuurou",
"yamada yuuya",
"umakuchi_shouyu",
"azuma tesshin",
"meganei",
"goban",
"homunculus",
"kamizuki shiki",
"kotengu",
"key",
"ikuhana niro",
"thikiso takeda",
"kyockcho",
"hamao",
"mikuni_mizuki",
"otabe sakura",
"regdic",
"akagi_asahito",
"michiking",
"pyon-kti",
"kakao",
"hinahara_emi",
],
{'default': 'Loli', 'ko': '로리'}: [
'quzila',
'mochi',
'asanagi',
"tanabe kyou",
"tamagoro",
"azuma sawayoshi",
"kinnotama",
"mitsudoue",
"yone kinji",
'dancyo',
'kiya shii',
'henreader',
"misao.",
"ohisashiburi",
'kanyapyi',
'yukiu con',
'haguhagu',
'maki',
'hisasi',
'noise',
'kinku',
'okada kou',
'atage',
'miwa futaba',
'mamezou',
'ichihaya',
'tanaka decilitre',
'kannazuki motofumi',
'panbai',
'fuyuno mikan',
'gengorou',
'shouji ayumu',
'rico',
'shimanto shisakugata',
'yuizaki kazuya',
'tamano kedama',
"urajirou",
'shirane taito',
'usashiro mani',
'gomennasai',
'sekiya asami',
'inuboshi',
'higashiyama show',
],
{'default': 'Oneshota', 'ko': '오네쇼타'}: [
"morishima kon",
"tachibana omina",
],
{'default': 'Femdom'}: [
"hiroe rei",
"takei ooki",
"parabola",
"2t",
"akai mato",
"mame",
"oouso",
"shindou",
"hanabi",
],
{'default': 'Netorare', 'ko': '네토라레'}: [
"pija",
"taniguchi-san",
"fuuga",
"shimanto shisakugata",
"akitsuki itsuki",
"mizutani tooru",
],

//
// Effeminate
//
{'default': 'Shota'}: [],

//
// Gay
//
{'default': 'Gay'}: [
"tagame gengoroh",
],

//
// Minor
//
{'default': 'BDSM'}: [],
{'default': 'Insect'}: [],
};
}
131 changes: 131 additions & 0 deletions lib/pages/main/card/artist_collection_card.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,131 @@
// This source code is a part of Project Violet.
// Copyright (C) 2020. violet-team. Licensed under the MIT License.

import 'dart:ui';

import 'package:division/division.dart';
import 'package:flutter/gestures.dart';
import 'package:flutter/material.dart';
import 'package:gradient_widgets/gradient_widgets.dart';
import 'package:lottie/lottie.dart';
import 'package:material_design_icons_flutter/material_design_icons_flutter.dart';
import 'package:pimp_my_button/pimp_my_button.dart';
import 'package:violet/pages/main/card/update_card.dart';

class ArtistCollectionCard extends StatefulWidget {
@override
_ArtistCollectionCarddState createState() => _ArtistCollectionCarddState();
}

class _ArtistCollectionCarddState extends State<ArtistCollectionCard>
with TickerProviderStateMixin {
bool pressed = false;

@override
void initState() {
super.initState();
}

@override
Widget build(BuildContext context) {
final double width = MediaQuery.of(context).size.width;
return SizedBox(
width: width - 16,
height: 75,
child: PimpedButton(
particle: MyRectangle2DemoParticle(),
pimpedWidgetBuilder: (context, controller) {
return Parent(
style: settingsItemStyle(pressed),
gesture: Gestures()
..isTap((isTapped) {
setState(() => pressed = isTapped);
if (isTapped) {
controller.forward(from: 0.0);
}
}),
child: Container(
height: 75,
decoration: BoxDecoration(
// color: Color(0xff00D99E),
borderRadius: BorderRadius.circular(8),
boxShadow: [
BoxShadow(
blurRadius: 8,
offset: Offset(0, 15),
color: Gradients.coldLinear.colors.first.withOpacity(.3),
spreadRadius: -9,
),
],
),
child: GradientCard(
gradient: Gradients.coldLinear,
child: Container(
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
SizedBox(
width: 50,
height: 50,
child: Transform.translate(
offset: Offset(-20, -20),
child: Transform.scale(
scale: 3.8,
child: Center(
child: Lottie.asset(
'assets/lottie/28446-floward-gift-box.json',
),
),
),
),
// Icon(
// MdiIcons.group,
// color: Colors.white,
// size: 30,
// ),
),
Padding(
padding: EdgeInsets.only(top: 4),
child: Text(
'Artists Collection!',
style: TextStyle(
fontFamily: "Calibre-Semibold",
fontSize: 18,
color: Colors.white),
),
),
]),
),
),
));
},
),
);
}

final settingsItemStyle = (pressed) => ParentStyle()
..elevation(pressed ? 0 : 10000, color: Colors.transparent)
..scale(pressed ? 0.95 : 1.0)
..alignmentContent.center()
// ..height(70)
// ..margin(vertical: 10)
// ..borderRadius(all: 15)
// ..background.hex('#ffffff')
..ripple(true)
..animate(150, Curves.easeOut);

final settingsItemIconStyle = (Color color) => ParentStyle()
..background.color(color)
..margin(left: 15)
..padding(all: 12)
..borderRadius(all: 30);

final TxtStyle itemTitleTextStyle = TxtStyle()
..bold()
..fontSize(16);

final TxtStyle itemDescriptionTextStyle = TxtStyle()
..textColor(Colors.black26)
..bold()
..fontSize(12);
}
64 changes: 0 additions & 64 deletions lib/pages/main/card/update_card.dart
Original file line number Diff line number Diff line change
Expand Up @@ -39,70 +39,6 @@ class _UpdateCardState extends State<UpdateCard> with TickerProviderStateMixin {
// upperBound: pi * 2,
);
super.initState();
updateCheckAndDownload();
}

ReceivePort _port = ReceivePort();

static void downloadCallback(
String id, DownloadTaskStatus status, int progress) {
final SendPort send =
IsolateNameServer.lookupPortByName('downloader_send_port');
send.send([id, status, progress]);
}

void updateCheckAndDownload() {
Future.delayed(Duration(milliseconds: 100)).then((value) async {
if (UpdateSyncManager.updateRequire) {
var bb = await Dialogs.yesnoDialog(
context,
'New update available! ' +
UpdateSyncManager.updateMessage +
' Would you update?');
if (bb == null || bb == false) return;
} else
return;

if (!await Permission.storage.isGranted) {
if (await Permission.storage.request() == PermissionStatus.denied) {
await Dialogs.okDialog(context,
'If you do not allow file permissions, you cannot continue :(');
return;
}
}
var ext = await getExternalStorageDirectory();
bool once = false;
IsolateNameServer.registerPortWithName(
_port.sendPort, 'downloader_send_port');
_port.listen((dynamic data) {
String id = data[0];
DownloadTaskStatus status = data[1];
int progress = data[2];
if (progress == 100 && !once) {
OpenFile.open(
'${ext.path}/${UpdateSyncManager.updateUrl.split('/').last}');
once = true;
}
setState(() {});
});

FlutterDownloader.registerCallback(downloadCallback);
final taskId = await FlutterDownloader.enqueue(
url: UpdateSyncManager.updateUrl,
savedDir: '${ext.path}',
showNotification:
true, // show download progress in status bar (for Android)
openFileFromNotification:
true, // click on notification to open downloaded file (for Android)
);
});
}

@override
void dispose() {
IsolateNameServer.removePortNameMapping('downloader_send_port');
// TODO: implement dispose
super.dispose();
}

@override
Expand Down
Loading

0 comments on commit 3c5b4f9

Please sign in to comment.