V1.0.0(1)

This commit is contained in:
zhouzhijia 2024-07-26 18:57:01 +08:00
commit 39cb6c645d
109 changed files with 6937 additions and 0 deletions

18
.gitignore vendored Normal file
View File

@ -0,0 +1,18 @@
*.iml
.gradle
/local.properties
/.idea/caches
/.idea/libraries
/.idea/modules.xml
/.idea/workspace.xml
/.idea/navEditor.xml
/.idea/assetWizardSettings.xml
.DS_Store
/build
/captures
.externalNativeBuild
.cxx
local.properties
.idea/
app/release/originalityprank_v1.0.0(1)_07_19_18_18-release.apk
app/release/originalityprank_v1.0.0(1)_07_22_09_44-release.aab

1
app/.gitignore vendored Normal file
View File

@ -0,0 +1 @@
/build

63
app/build.gradle.kts Normal file
View File

@ -0,0 +1,63 @@
import java.util.Date
import java.text.SimpleDateFormat
plugins {
id("com.android.application")
id("org.jetbrains.kotlin.android")
id ("kotlin-kapt")
}
val timestamp = SimpleDateFormat("MM_dd_HH_mm").format(Date())
android {
namespace = "com.fun.originalityprank"
compileSdk = 34
defaultConfig {
applicationId = "com.fun.originalityprank"
minSdk = 23
targetSdk = 34
versionCode = 1
versionName = "1.0.0"
setProperty("archivesBaseName", "originalityprank_v" + versionName + "(${versionCode})_$timestamp")
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
isShrinkResources =true
isMinifyEnabled = true
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),
"proguard-rules.pro"
)
}
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
}
buildFeatures{
viewBinding = true
}
}
dependencies {
implementation("androidx.appcompat:appcompat:1.7.0")
implementation("com.google.android.material:material:1.12.0")
implementation("androidx.constraintlayout:constraintlayout:2.1.4")
testImplementation("junit:junit:4.13.2")
androidTestImplementation("androidx.test.ext:junit:1.2.1")
androidTestImplementation("androidx.test.espresso:espresso-core:3.6.1")
implementation("com.github.bumptech.glide:glide:4.16.0")
val room_version = "2.6.1"
implementation("androidx.room:room-runtime:$room_version")
annotationProcessor("androidx.room:room-compiler:$room_version")
kapt("androidx.room:room-compiler:$room_version")
implementation("androidx.room:room-ktx:$room_version")
implementation("androidx.room:room-rxjava2:$room_version")
implementation("androidx.room:room-rxjava3:$room_version")
implementation("androidx.room:room-guava:$room_version")
testImplementation("androidx.room:room-testing:$room_version")
implementation("androidx.room:room-paging:$room_version")
}

BIN
app/originalityprank.jks Normal file

Binary file not shown.

Binary file not shown.

32
app/proguard-rules.pro vendored Normal file
View File

@ -0,0 +1,32 @@
# Add project specific ProGuard rules here.
# You can control the set of applied configuration files using the
# proguardFiles setting in build.gradle.
#
# For more details, see
# http://developer.android.com/guide/developing/tools/proguard.html
# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
# public *;
#}
# Uncomment this to preserve the line number information for
# debugging stack traces.
#-keepattributes SourceFile,LineNumberTable
# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile
-keepclassmembers class com.fun.originalityprank.PrankSkin{
public static final java.lang.String DB_Name;
public static final int DB_Version;
}
-keepclassmembers class *{
@androidx.room.Query <methods>;
}
-keep class com.fun.originalityprank.data.MydataBase { *; }
-keep class com.fun.originalityprank.data.LikeDAO { *; }
-keep class com.fun.originalityprank.data.AllData { *; }

View File

@ -0,0 +1,20 @@
{
"version": 3,
"artifactType": {
"type": "APK",
"kind": "Directory"
},
"applicationId": "com.fun.originalityprank.test",
"variantName": "release",
"elements": [
{
"type": "SINGLE",
"filters": [],
"attributes": [],
"versionCode": 1,
"versionName": "1.0.0",
"outputFile": "originalityprank_v1.0.0(1)_07_19_18_18-release.apk"
}
],
"elementType": "File"
}

View File

@ -0,0 +1,26 @@
package com.fun.originalityprank;
import android.content.Context;
import androidx.test.platform.app.InstrumentationRegistry;
import androidx.test.ext.junit.runners.AndroidJUnit4;
import org.junit.Test;
import org.junit.runner.RunWith;
import static org.junit.Assert.*;
/**
* Instrumented test, which will execute on an Android device.
*
* @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
*/
@RunWith(AndroidJUnit4.class)
public class ExampleInstrumentedTest {
@Test
public void useAppContext() {
// Context of the app under test.
Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext();
assertEquals("com.fun.originalityprank", appContext.getPackageName());
}
}

View File

@ -0,0 +1,39 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
<uses-permission android:name="android.permission.INTERNET" />
<application
android:name=".PrankSkin"
android:allowBackup="true"
android:dataExtractionRules="@xml/data_extraction_rules"
android:fullBackupContent="@xml/backup_rules"
android:icon="@mipmap/logo"
android:label="@string/app_name"
android:roundIcon="@mipmap/logo"
android:supportsRtl="true"
android:theme="@style/AppTheme"
tools:targetApi="31">
<activity
android:name=".activity.SplashActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".activity.PrewViewActivity"
android:exported="false" />
<activity
android:name=".activity.ListActivity"
android:exported="false" />
<activity
android:name=".activity.MainActivity"
android:exported="true">
</activity>
</application>
</manifest>

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,61 @@
package com.fun.originalityprank;
import android.app.Application;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.util.Log;
import androidx.localbroadcastmanager.content.LocalBroadcastManager;
import com.fun.originalityprank.data.AllData;
import com.fun.originalityprank.data.MydataBase;
import com.fun.originalityprank.tool.Mytools;
import java.util.ArrayList;
import java.util.List;
public class PrankSkin extends Application {
public static final String DB_Name = "prank_database";
public static final String Table_Name = "prank_table";
public static final int DB_Version = 1;
private static Context context;
private List<AllData> allData = new ArrayList<>();
private SharedPreferences sp;
private static boolean isinsert;
private SharedPreferences.Editor editor;
public static final String AD_BROADCAST = "ON_SUCCESS";
private static final String PREFS_NAME = "MyPrefs";
private static final String KEY_IS_INSERTED = "isinserted";
@Override
public void onCreate() {
super.onCreate();
context = getApplicationContext();
allData = Mytools.parseJsonToList("prank.json");
sp = getSharedPreferences(PREFS_NAME, MODE_PRIVATE);
isinsert = sp.getBoolean(KEY_IS_INSERTED, false);
if (!isinsert) {
Mytools.runIO(new Runnable() {
@Override
public void run() {
MydataBase.getInstance().likeDAO().insertAll(allData);
editor = sp.edit();
editor.putBoolean(KEY_IS_INSERTED, true);
editor.commit();
}
});
}
}
public static Context getContext() {
return context;
}
}

View File

@ -0,0 +1,93 @@
package com.fun.originalityprank.activity;
import androidx.activity.EdgeToEdge;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.graphics.Insets;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;
import androidx.recyclerview.widget.GridLayoutManager;
import android.content.Intent;
import android.graphics.Typeface;
import android.os.Bundle;
import android.view.View;
import com.fun.originalityprank.R;
import com.fun.originalityprank.adapter.ListAdapter;
import com.fun.originalityprank.adapter.ThumAdapter;
import com.fun.originalityprank.data.AllData;
import com.fun.originalityprank.data.MydataBase;
import com.fun.originalityprank.databinding.ActivityListBinding;
import com.fun.originalityprank.tool.Mytools;
import com.fun.originalityprank.tool.StaticValue;
import java.util.ArrayList;
import java.util.List;
public class ListActivity extends AppCompatActivity {
ActivityListBinding binding;
private List<AllData> allData = new ArrayList<>();
private ListAdapter thumAdapter;
private int color;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
binding = ActivityListBinding.inflate(getLayoutInflater());
setContentView(binding.getRoot());
EdgeToEdge.enable(this);
ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.activity_list), (v, insets) -> {
Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars());
v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom);
return insets;
});
initData();
initEvent();
}
private void initEvent() {
binding.back.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
}
private void initData() {
Intent intent = getIntent();
color = intent.getIntExtra(StaticValue.KEY_Color, 0);
String name = intent.getStringExtra(StaticValue.KEY_CategoryName);
binding.prewListTitle.setText(name);
Mytools.runIO(new Runnable() {
@Override
public void run() {
allData = MydataBase.getInstance().likeDAO().getlist(name);
if (!allData.isEmpty()) {
runOnUiThread(new Runnable() {
@Override
public void run() {
initView(allData);
}
});
}
}
});
}
private void initView(List<AllData> allData) {
thumAdapter = new ListAdapter(this, allData,color);
binding.prewListRv.setAdapter(thumAdapter);
binding.prewListRv.setLayoutManager(new GridLayoutManager(this, 2));
}
}

View File

@ -0,0 +1,102 @@
package com.fun.originalityprank.activity;
import androidx.activity.EdgeToEdge;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.graphics.Insets;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;
import androidx.localbroadcastmanager.content.LocalBroadcastManager;
import androidx.viewpager.widget.ViewPager;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Bundle;
import android.util.Log;
import com.fun.originalityprank.PrankSkin;
import com.fun.originalityprank.R;
import com.fun.originalityprank.adapter.PagerAdapter;
import com.fun.originalityprank.databinding.ActivityMainBinding;
import com.google.android.material.tabs.TabLayout;
public class MainActivity extends AppCompatActivity {
ActivityMainBinding binding;
private BroadcastReceiver receiver;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
binding = ActivityMainBinding.inflate(getLayoutInflater());
setContentView(binding.getRoot());
EdgeToEdge.enable(this);
ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.activity_main), (v, insets) -> {
Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars());
v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom);
return insets;
});
LocalBroadcastManager.getInstance(this).registerReceiver(new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(PrankSkin.AD_BROADCAST)) {
Log.e("zzj", "dawlkdawldkhalwkdhalwjdhawl");
} else {
Log.e("zzj", " 111 ");
}
}
}, new IntentFilter(PrankSkin.AD_BROADCAST));
initView();
setTab(0);
}
private void initView() {
PagerAdapter pagerAdapter = new PagerAdapter(getSupportFragmentManager());
binding.mainPager.setAdapter(pagerAdapter);
binding.mainTab.setupWithViewPager(binding.mainPager);
binding.mainPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
setTab(position);
LocalBroadcastManager.getInstance(MainActivity.this).sendBroadcast(new Intent(PrankSkin.AD_BROADCAST));
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
}
private void setTab(int position) {
for (int i = 0; i < binding.mainTab.getTabCount(); i++) {
final TabLayout.Tab tab = binding.mainTab.getTabAt(i);
if (tab != null) {
switch (i) {
case 0:
tab.setIcon(position == 0 ? R.drawable.main_check : R.drawable.main_uncheck);
break;
case 1:
tab.setIcon(position == 1 ? R.drawable.like_check : R.drawable.like_uncheck);
break;
default:
break;
}
}
}
}
}

View File

@ -0,0 +1,324 @@
package com.fun.originalityprank.activity;
import androidx.activity.EdgeToEdge;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.graphics.Insets;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;
import androidx.localbroadcastmanager.content.LocalBroadcastManager;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.graphics.Bitmap;
import android.graphics.drawable.Drawable;
import android.media.AudioAttributes;
import android.media.AudioManager;
import android.media.MediaPlayer;
import android.net.Uri;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.SeekBar;
import com.bumptech.glide.Glide;
import com.bumptech.glide.request.target.CustomTarget;
import com.bumptech.glide.request.transition.Transition;
import com.fun.originalityprank.PrankSkin;
import com.fun.originalityprank.R;
import com.fun.originalityprank.data.AllData;
import com.fun.originalityprank.data.MydataBase;
import com.fun.originalityprank.databinding.ActivityPrewViewBinding;
import com.fun.originalityprank.tool.Mytools;
import com.fun.originalityprank.tool.SeekBarBroadCast;
import com.fun.originalityprank.tool.StaticValue;
import java.io.IOException;
import java.util.List;
public class PrewViewActivity extends AppCompatActivity {
ActivityPrewViewBinding binding;
private AllData data = new AllData();
private String title, name;
private boolean islike = false;
private boolean isloop = false;
private boolean isplayer = false;
private MediaPlayer mediaPlayer;
private AudioManager audioManager;
private SeekBarBroadCast seekBarBroadCast;
private IntentFilter filter = new IntentFilter();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
binding = ActivityPrewViewBinding.inflate(getLayoutInflater());
setContentView(binding.getRoot());
EdgeToEdge.enable(this);
ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.activity_prew), (v, insets) -> {
Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars());
v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom);
return insets;
});
hidemenu();
initData();
initEvent();
audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
binding.seekbar.setMax(audioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC));
binding.seekbar.setProgress(audioManager.getStreamVolume(AudioManager.STREAM_MUSIC));
if (audioManager.getStreamVolume(AudioManager.STREAM_MUSIC) == 0) {
binding.volumeleft.setBackgroundResource(R.drawable.icon_volume_null);
} else {
binding.volumeleft.setBackgroundResource(R.drawable.icon_volume_left);
}
seekBarBroadCast = new SeekBarBroadCast(audioManager, binding.seekbar);
filter.addAction("android.media.VOLUME_CHANGED_ACTION");
registerReceiver(seekBarBroadCast, filter);
}
private void initEvent() {
binding.preBack.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
binding.preLoop.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
checkloop();
}
});
binding.preLike.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
checkLike();
}
});
binding.prePlay.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
try {
playprank();
} catch (IOException e) {
throw new RuntimeException(e);
}
}
});
binding.volumeright.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int a = binding.seekbar.getProgress();
binding.seekbar.setProgress(a + 10);
}
});
binding.volumeleft.setOnClickListener(v -> binding.seekbar.setProgress(0));
binding.seekbar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, progress, 0);
if (audioManager.getStreamVolume(AudioManager.STREAM_MUSIC) == 0) {
binding.volumeleft.setBackgroundResource(R.drawable.icon_volume_null);
} else {
binding.volumeleft.setBackgroundResource(R.drawable.icon_volume_left);
}
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
}
});
}
private void playprank() throws IOException {
if (!isplayer) {
starprank();
} else {
stopprank();
}
}
private void stopprank() {
isplayer = false;
binding.prePlay.setBackgroundResource(R.drawable.icon_play);
if (mediaPlayer != null) {
mediaPlayer.release();
mediaPlayer = null;
}
}
private void starprank() throws IOException {
isplayer = true;
binding.prePlay.setBackgroundResource(R.drawable.icon_pause);
mediaPlayer = new MediaPlayer();
mediaPlayer.setAudioAttributes(
new AudioAttributes.Builder()
.setContentType(AudioAttributes.CONTENT_TYPE_MUSIC)
.setUsage(AudioAttributes.USAGE_MEDIA)
.build());
mediaPlayer.setDataSource(getApplicationContext(), Uri.parse(data.getMp3Url()));
mediaPlayer.setOnPreparedListener(mp -> {
if (isloop) {
mediaPlayer.setLooping(true);
}
mediaPlayer.start();
});
mediaPlayer.setOnCompletionListener(mp -> {
if (isloop) {
binding.prePlay.setBackgroundResource(R.drawable.icon_pause);
} else {
binding.prePlay.setBackgroundResource(R.drawable.icon_play);
isplayer = true;
}
});
mediaPlayer.prepareAsync();
}
private void checkLike() {
if (!islike) {
islike = true;
data.setLike(true);
binding.preImageLike.setBackgroundResource(R.drawable.icon_pre_like);
Mytools.runIO(new Runnable() {
@Override
public void run() {
MydataBase.getInstance().likeDAO().update(data);
}
});
} else {
islike = false;
data.setLike(false);
binding.preImageLike.setBackgroundResource(R.drawable.icon_pre_unlike);
Mytools.runIO(new Runnable() {
@Override
public void run() {
MydataBase.getInstance().likeDAO().update(data);
}
});
}
}
private void checkloop() {
if (!isloop) {
isloop = true;
binding.preImageLoop.setBackgroundResource(R.drawable.icon_loop);
if (mediaPlayer != null) {
mediaPlayer.setLooping(true);
}
} else {
isloop = false;
binding.preImageLoop.setBackgroundResource(R.drawable.icon_unloop);
if (mediaPlayer != null) {
mediaPlayer.setLooping(false);
}
}
}
private void initData() {
Intent intent = getIntent();
title = intent.getStringExtra(StaticValue.KEY_TITLE);
name = intent.getStringExtra(StaticValue.KEY_CategoryName);
binding.preTitle.setText(name);
binding.preText.setText(title);
Mytools.runIO(new Runnable() {
@Override
public void run() {
List<AllData> allData = MydataBase.getInstance().likeDAO().getliketitle(title);
if (!allData.isEmpty()) {
data = allData.get(0);
islike = data.getLike();
if (islike) {
binding.preImageLike.setBackgroundResource(R.drawable.icon_pre_like);
} else {
binding.preImageLike.setBackgroundResource(R.drawable.icon_pre_unlike);
}
Glide.with(PrewViewActivity.this)
.asBitmap()
.load(data.getPreUrl())
.placeholder(R.mipmap.logo)
.into(new CustomTarget<Bitmap>() {
@Override
public void onResourceReady(@NonNull Bitmap resource, @Nullable Transition<? super Bitmap> transition) {
binding.preImage.setImageBitmap(resource);
showmenu();
}
@Override
public void onLoadCleared(@Nullable Drawable placeholder) {
}
});
}
}
});
}
private void hidemenu() {
binding.preText.setVisibility(View.GONE);
binding.preLoop.setVisibility(View.GONE);
binding.preLike.setVisibility(View.GONE);
binding.volumeleft.setVisibility(View.GONE);
binding.volumeright.setVisibility(View.GONE);
binding.seekbar.setVisibility(View.GONE);
binding.prePlay.setVisibility(View.GONE);
binding.prePg.setVisibility(View.VISIBLE);
binding.preImageFrame.setVisibility(View.GONE);
}
private void showmenu() {
binding.preText.setVisibility(View.VISIBLE);
binding.preLoop.setVisibility(View.VISIBLE);
binding.preLike.setVisibility(View.VISIBLE);
binding.volumeleft.setVisibility(View.VISIBLE);
binding.volumeright.setVisibility(View.VISIBLE);
binding.seekbar.setVisibility(View.VISIBLE);
binding.prePlay.setVisibility(View.VISIBLE);
binding.prePg.setVisibility(View.GONE);
binding.preImageFrame.setVisibility(View.VISIBLE);
}
@Override
protected void onStop() {
super.onStop();
unregisterReceiver(seekBarBroadCast);
if (mediaPlayer != null) {
mediaPlayer.release();
isplayer = false;
binding.prePlay.setBackgroundResource(R.drawable.icon_play);
}
}
}

View File

@ -0,0 +1,57 @@
package com.fun.originalityprank.activity;
import androidx.activity.EdgeToEdge;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.graphics.Insets;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;
import android.content.Intent;
import android.os.Bundle;
import android.os.CountDownTimer;
import com.fun.originalityprank.R;
import com.fun.originalityprank.databinding.ActivitySplashBinding;
public class SplashActivity extends AppCompatActivity {
ActivitySplashBinding binding;
private CountDownTimer countDownTimer;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
binding = ActivitySplashBinding.inflate(getLayoutInflater());
setContentView(binding.getRoot());
EdgeToEdge.enable(this);
ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.activity_splash), (v, insets) -> {
Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars());
v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom);
return insets;
});
countDownTimer = new CountDownTimer(1000, 100) {
@Override
public void onTick(long millisUntilFinished) {
}
@Override
public void onFinish() {
startView();
}
};
countDownTimer.start();
}
private void startView() {
Intent intent = new Intent(SplashActivity.this, MainActivity.class);
startActivity(intent);
finish();
}
}

View File

@ -0,0 +1,143 @@
package com.fun.originalityprank.adapter;
import android.app.Activity;
import android.content.Intent;
import android.graphics.drawable.Drawable;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.constraintlayout.widget.ConstraintLayout;
import androidx.core.content.ContextCompat;
import androidx.recyclerview.widget.RecyclerView;
import com.bumptech.glide.Glide;
import com.fun.originalityprank.R;
import com.fun.originalityprank.activity.PrewViewActivity;
import com.fun.originalityprank.data.AllData;
import com.fun.originalityprank.databinding.LikeListBinding;
import com.fun.originalityprank.tool.StaticValue;
import java.util.List;
public class LikeAdapter extends RecyclerView.Adapter<LikeAdapter.LikeVH> {
private final LayoutInflater minflater;
private List<AllData> mlist;
private int currentIndex = 0;
private int listIndex = 0;
public LikeAdapter(Activity activity, List<AllData> list) {
minflater = LayoutInflater.from(activity);
mlist = list;
}
@NonNull
@Override
public LikeVH onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
LikeListBinding binding = LikeListBinding.inflate(minflater, parent, false);
return new LikeVH(binding);
}
@Override
public void onBindViewHolder(@NonNull LikeVH holder, int position) {
AllData likeData = mlist.get(position);
Glide.with(minflater.getContext())
.load(likeData.getPreUrl())
.placeholder(R.mipmap.logo)
.into(holder.getImage());
holder.getText().setText(likeData.getTitle());
if (position == getItemCount() - 1) {
holder.getView().setVisibility(View.VISIBLE);
} else {
holder.getView().setVisibility(View.GONE);
}
Drawable[] likelistcons = {
ContextCompat.getDrawable(minflater.getContext(), R.mipmap.like_list_1),
ContextCompat.getDrawable(minflater.getContext(), R.mipmap.like_list_2),
ContextCompat.getDrawable(minflater.getContext(), R.mipmap.like_list_3),
};
Drawable likelist = listbg(likelistcons);
holder.getLikelistcons().setBackground(likelist);
holder.getLikecons().setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(minflater.getContext(), PrewViewActivity.class);
intent.putExtra(StaticValue.KEY_TITLE, likeData.getTitle());
minflater.getContext().startActivity(intent);
}
});
}
private Drawable listbg(Drawable[] colors) {
if (listIndex >= colors.length) {
listIndex = 0;
}
Drawable nextColor = colors[listIndex];
listIndex++;
return nextColor;
}
private Drawable Randomcolor(Drawable[] colors) {
if (currentIndex >= colors.length) {
currentIndex = 0;
}
Drawable nextColor = colors[currentIndex];
currentIndex++;
return nextColor;
}
@Override
public int getItemCount() {
return mlist.size();
}
public class LikeVH extends RecyclerView.ViewHolder {
private ConstraintLayout likecons;
private TextView text;
private ImageView image;
private ImageView likelistcons;
private View view;
public LikeVH(@NonNull LikeListBinding binding) {
super(binding.getRoot());
likelistcons = binding.likeListImageBg;
text = binding.likeText;
likecons = binding.cons;
image = binding.likeImage;
view = binding.likeView;
}
public TextView getText() {
return text;
}
public View getView() {
return view;
}
public ImageView getImage() {
return image;
}
public ConstraintLayout getLikecons() {
return likecons;
}
public ImageView getLikelistcons() {
return likelistcons;
}
}
}

View File

@ -0,0 +1,103 @@
package com.fun.originalityprank.adapter;
import android.app.Activity;
import android.content.Intent;
import android.graphics.PorterDuff;
import android.graphics.drawable.Drawable;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.constraintlayout.widget.ConstraintLayout;
import androidx.core.content.ContextCompat;
import androidx.recyclerview.widget.RecyclerView;
import com.bumptech.glide.Glide;
import com.fun.originalityprank.R;
import com.fun.originalityprank.activity.PrewViewActivity;
import com.fun.originalityprank.data.AllData;
import com.fun.originalityprank.databinding.ListRvItemBinding;
import com.fun.originalityprank.tool.StaticValue;
import java.util.List;
public class ListAdapter extends RecyclerView.Adapter<ListAdapter.PreVH> {
private List<AllData> otherdataList;
private final LayoutInflater mInflater;
private int mcolor;
public ListAdapter(Activity activity, List<AllData> list,int color) {
mInflater = LayoutInflater.from(activity);
otherdataList = list;
mcolor = color;
}
@NonNull
@Override
public PreVH onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
ListRvItemBinding binding = ListRvItemBinding.inflate(mInflater, parent, false);
return new PreVH(binding);
}
@Override
public void onBindViewHolder(@NonNull PreVH holder, int position) {
AllData otherdata = otherdataList.get(position);
Glide.with(mInflater.getContext())
.load(otherdata.getPreUrl())
.placeholder(R.mipmap.logo)
.into(holder.getImageViewThumb());
holder.getTextView().setText(otherdata.getTitle());
Drawable backgroundDrawable = ContextCompat.getDrawable(mInflater.getContext(), R.drawable.listactivty_list_bg);
if (backgroundDrawable != null) {
backgroundDrawable.setColorFilter(mcolor, PorterDuff.Mode.SRC_ATOP);
holder.getConstraintLayout().setBackground(backgroundDrawable);
}
holder.getConstraintLayout().setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(mInflater.getContext(), PrewViewActivity.class);
intent.putExtra(StaticValue.KEY_TITLE, otherdata.getTitle());
intent.putExtra(StaticValue.KEY_CategoryName,otherdata.getCategoryname());
mInflater.getContext().startActivity(intent);
}
});
}
@Override
public int getItemCount() {
return otherdataList.size();
}
public class PreVH extends RecyclerView.ViewHolder {
private ImageView imageViewThumb;
private ConstraintLayout constraintLayout;
private TextView textView;
public TextView getTextView() {
return textView;
}
public PreVH(@NonNull ListRvItemBinding binding) {
super(binding.getRoot());
imageViewThumb = binding.listItemImage;
constraintLayout = binding.listactivtyCons;
textView = binding.listItemText;
}
public ConstraintLayout getConstraintLayout() {
return constraintLayout;
}
public ImageView getImageViewThumb() {
return imageViewThumb;
}
}
}

View File

@ -0,0 +1,33 @@
package com.fun.originalityprank.adapter;
import androidx.annotation.NonNull;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentPagerAdapter;
import com.fun.originalityprank.fragment.LikeFragment;
import com.fun.originalityprank.fragment.MainFragment;
import java.util.ArrayList;
import java.util.List;
public class PagerAdapter extends FragmentPagerAdapter {
private List<Fragment> fragmentList = new ArrayList<>();
public PagerAdapter(@NonNull FragmentManager fm) {
super(fm);
fragmentList.add(new MainFragment());
fragmentList.add(new LikeFragment());
}
@NonNull
@Override
public Fragment getItem(int position) {
return fragmentList.get(position);
}
@Override
public int getCount() {
return fragmentList.size();
}
}

View File

@ -0,0 +1,178 @@
package com.fun.originalityprank.adapter;
import android.app.Activity;
import android.content.Intent;
import android.graphics.PorterDuff;
import android.graphics.drawable.Drawable;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.constraintlayout.widget.ConstraintLayout;
import androidx.core.content.ContextCompat;
import androidx.recyclerview.widget.RecyclerView;
import com.bumptech.glide.Glide;
import com.fun.originalityprank.R;
import com.fun.originalityprank.activity.ListActivity;
import com.fun.originalityprank.data.AllData;
import com.fun.originalityprank.databinding.MainRvItemBinding;
import com.fun.originalityprank.tool.StaticValue;
import java.util.List;
public class ThumAdapter extends RecyclerView.Adapter<ThumAdapter.ThumVH> {
private List<AllData> myDataList;
private final LayoutInflater mInflater;
private int currentIndex = 0;
private int currentgradient = 0;
public ThumAdapter(Activity activity, List<AllData> list) {
myDataList = list;
mInflater = LayoutInflater.from(activity);
}
@NonNull
@Override
public ThumVH onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
MainRvItemBinding binding = MainRvItemBinding.inflate(mInflater, parent, false);
return new ThumVH(binding);
}
@Override
public void onBindViewHolder(@NonNull ThumVH holder, int position) {
AllData myData = myDataList.get(position);
if (position == getItemCount() - 1) {
holder.getView().setVisibility(View.VISIBLE);
Log.e("zzj", "String.valueOf(position)11111111111111");
} else if (position == getItemCount()-2){
holder.getView().setVisibility(View.VISIBLE);
Log.e("zzj", "String.valueOf(position)222222222222222");
}else {
holder.getView().setVisibility(View.GONE);
}
Glide.with(mInflater.getContext())
.load(myData.getCategoryUrl())
.placeholder(R.mipmap.logo)
.into(holder.getImageViewThumb());
holder.getTextView().setText(myData.getCategoryname());
int[] randomcolor = {
ContextCompat.getColor(mInflater.getContext(), R.color.color_1),
ContextCompat.getColor(mInflater.getContext(), R.color.color_2),
ContextCompat.getColor(mInflater.getContext(), R.color.color_3),
ContextCompat.getColor(mInflater.getContext(), R.color.color_4),
ContextCompat.getColor(mInflater.getContext(), R.color.color_5),
ContextCompat.getColor(mInflater.getContext(), R.color.color_6),
ContextCompat.getColor(mInflater.getContext(), R.color.color_7),
ContextCompat.getColor(mInflater.getContext(), R.color.color_8),
ContextCompat.getColor(mInflater.getContext(), R.color.color_9),
};
int[] rmcolor = {
ContextCompat.getColor(mInflater.getContext(), R.color.gradient_1),
ContextCompat.getColor(mInflater.getContext(), R.color.gradient_2),
ContextCompat.getColor(mInflater.getContext(), R.color.gradient_3),
ContextCompat.getColor(mInflater.getContext(), R.color.gradient_4),
ContextCompat.getColor(mInflater.getContext(), R.color.gradient_5),
ContextCompat.getColor(mInflater.getContext(), R.color.gradient_6),
ContextCompat.getColor(mInflater.getContext(), R.color.gradient_7),
ContextCompat.getColor(mInflater.getContext(), R.color.gradient_8),
ContextCompat.getColor(mInflater.getContext(), R.color.gradient_9),
};
int gradientcolor = Randomgradientcolor(rmcolor);
int randomColor = Randomcolor(randomcolor);
Drawable backgroundDrawable1 = ContextCompat.getDrawable(mInflater.getContext(), R.drawable.mainlist_background);
if (backgroundDrawable1 != null) {
backgroundDrawable1.setColorFilter(randomColor, PorterDuff.Mode.SRC_ATOP);
holder.getMainlistcons().setBackground(backgroundDrawable1);
}
Drawable backgroundDrawable = ContextCompat.getDrawable(mInflater.getContext(), R.drawable.mainlist_image_bg);
if (backgroundDrawable != null) {
backgroundDrawable.setColorFilter(gradientcolor, PorterDuff.Mode.SRC_ATOP);
holder.getMainlistimage().setBackground(backgroundDrawable);
}
holder.getConstraintLayout().setOnClickListener(v -> {
Intent intent = new Intent(mInflater.getContext(), ListActivity.class);
intent.putExtra(StaticValue.KEY_CategoryName, myData.getCategoryname());
intent.putExtra(StaticValue.KEY_Color, randomColor);
mInflater.getContext().startActivity(intent);
});
}
private int Randomgradientcolor(int[] colors) {
if (currentgradient >= colors.length) {
currentgradient = 0;
}
int nextColor = colors[currentgradient];
currentgradient++;
return nextColor;
}
private int Randomcolor(int[] colors) {
if (currentIndex >= colors.length) {
currentIndex = 0;
}
int nextColor = colors[currentIndex];
currentIndex++;
return nextColor;
}
@Override
public int getItemCount() {
return myDataList.size();
}
public class ThumVH extends RecyclerView.ViewHolder {
private ImageView imageViewThumb;
private ConstraintLayout constraintLayout, mainlistcons, mainlistimage;
public ConstraintLayout getMainlistcons() {
return mainlistcons;
}
private TextView textView;
private View view;
public ConstraintLayout getMainlistimage() {
return mainlistimage;
}
public ThumVH(@NonNull MainRvItemBinding binding) {
super(binding.getRoot());
imageViewThumb = binding.mainRvImage;
constraintLayout = binding.mainCons;
mainlistcons = binding.mainListCons;
textView = binding.mainRvText;
view = binding.view;
mainlistimage = binding.mainListImageBg;
}
public View getView() {
return view;
}
public ConstraintLayout getConstraintLayout() {
return constraintLayout;
}
public ImageView getImageViewThumb() {
return imageViewThumb;
}
public TextView getTextView() {
return textView;
}
}
}

View File

@ -0,0 +1,70 @@
package com.fun.originalityprank.data;
import androidx.room.Entity;
import androidx.room.PrimaryKey;
import com.fun.originalityprank.PrankSkin;
@Entity(tableName = PrankSkin.Table_Name)
public class AllData {
@PrimaryKey(autoGenerate = true)
public int id;
public String categoryname;
public String title;
public String mp3Url;
public String preUrl;
public Boolean islike ;
public String categoryUrl;
public String getCategoryUrl() {
return categoryUrl;
}
public void setCategoryUrl(String categoryUrl) {
this.categoryUrl = categoryUrl;
}
public String getCategoryname() {
return categoryname;
}
public void setCategoryname(String categoryname) {
this.categoryname = categoryname;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getMp3Url() {
return mp3Url;
}
public void setMp3Url(String mp3Url) {
this.mp3Url = mp3Url;
}
public String getPreUrl() {
return preUrl;
}
public void setPreUrl(String preUrl) {
this.preUrl = preUrl;
}
public Boolean getLike() {
return islike;
}
public void setLike(Boolean like) {
this.islike = like;
}
}

View File

@ -0,0 +1,31 @@
package com.fun.originalityprank.data;
import androidx.room.Dao;
import androidx.room.Insert;
import androidx.room.Query;
import androidx.room.Update;
import java.util.List;
@Dao
public interface LikeDAO {
@Query("SELECT * FROM prank_table")
List<AllData> getAll();
@Query("select * from prank_table where islike =:islike ")
List<AllData> getLikedata(boolean islike);
@Query("select * from prank_table where title =:title ")
List<AllData> getliketitle(String title);
@Query("select * from prank_table where categoryname =:name ")
List<AllData> getlist(String name);
@Insert
void insertAll(List<AllData> likeDataList);
@Query("DELETE FROM prank_table WHERE title = :title")
void deleteByTitle(String title);
@Update
void update(AllData likeData);
}

View File

@ -0,0 +1,29 @@
package com.fun.originalityprank.data;
import androidx.room.Database;
import androidx.room.Room;
import androidx.room.RoomDatabase;
import com.fun.originalityprank.PrankSkin;
@Database(entities = {AllData.class}, version = PrankSkin.DB_Version, exportSchema = false)
public abstract class MydataBase extends RoomDatabase {
public abstract LikeDAO likeDAO();
private static MydataBase INSTANCE;
public static MydataBase getInstance() {
if (INSTANCE == null) {
synchronized (MydataBase.class) {
if (INSTANCE == null) {
INSTANCE = Room.databaseBuilder(PrankSkin.getContext(), MydataBase.class, PrankSkin.DB_Name).build();
}
}
}
return INSTANCE;
}
}

View File

@ -0,0 +1,71 @@
package com.fun.originalityprank.fragment;
import android.graphics.Typeface;
import android.os.Bundle;
import androidx.fragment.app.Fragment;
import androidx.recyclerview.widget.LinearLayoutManager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.fun.originalityprank.R;
import com.fun.originalityprank.adapter.LikeAdapter;
import com.fun.originalityprank.data.AllData;
import com.fun.originalityprank.data.MydataBase;
import com.fun.originalityprank.databinding.FragmentLikeBinding;
import com.fun.originalityprank.databinding.ListRvItemBinding;
import com.fun.originalityprank.tool.Mytools;
import java.util.ArrayList;
import java.util.List;
public class LikeFragment extends Fragment {
FragmentLikeBinding binding;
private List<AllData> list = new ArrayList<>();
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
binding = FragmentLikeBinding.inflate(inflater,container,false);
initData();
binding.likeTitle.setTypeface(Typeface.createFromAsset(requireContext().getAssets(),"WendyOne-Regular.ttf"));
return binding.getRoot();
}
private void initData() {
Mytools.runIO(new Runnable() {
@Override
public void run() {
list = MydataBase.getInstance().likeDAO().getLikedata(true);
requireActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
if (list.isEmpty()) {
binding.likeHintText.setVisibility(View.VISIBLE);
binding.likeHintImage.setVisibility(View.VISIBLE);
binding.likeRv.setVisibility(View.GONE);
} else {
binding.likeRv.setVisibility(View.VISIBLE);
binding.likeHintText.setVisibility(View.GONE);
binding.likeHintImage.setVisibility(View.GONE);
binding.likeRv.setAdapter(new LikeAdapter(requireActivity(), list));
binding.likeRv.setLayoutManager(new LinearLayoutManager(requireContext()));
}
}
});
}
});
}
@Override
public void onResume() {
super.onResume();
initData();
}
}

View File

@ -0,0 +1,145 @@
package com.fun.originalityprank.fragment;
import android.app.Dialog;
import android.content.Intent;
import android.graphics.Typeface;
import android.graphics.drawable.ColorDrawable;
import android.net.Uri;
import android.os.Bundle;
import androidx.fragment.app.Fragment;
import androidx.recyclerview.widget.GridLayoutManager;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.Window;
import android.view.WindowManager;
import android.widget.TextView;
import com.fun.originalityprank.R;
import com.fun.originalityprank.adapter.ThumAdapter;
import com.fun.originalityprank.data.AllData;
import com.fun.originalityprank.data.MydataBase;
import com.fun.originalityprank.databinding.FragmentMainBinding;
import com.fun.originalityprank.tool.Mytools;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
public class MainFragment extends Fragment {
FragmentMainBinding binding;
private List<AllData> allData = new ArrayList<>();
private List<AllData> maindata = new ArrayList<>();
private ThumAdapter thumAdapter;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
binding = FragmentMainBinding.inflate(inflater, container, false);
initData();
initEvent();
binding.mainTitle.setTypeface(Typeface.createFromAsset(requireContext().getAssets(),"WendyOne-Regular.ttf"));
return binding.getRoot();
}
private void initEvent() {
binding.mainSetting.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
showDia();
}
});
}
private void showDia() {
final Dialog dialog = new Dialog(requireContext());
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); // before
dialog.setContentView(R.layout.dia_about);
dialog.setCancelable(true);
dialog.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
WindowManager.LayoutParams lp = new WindowManager.LayoutParams();
lp.copyFrom(dialog.getWindow().getAttributes());
lp.width = WindowManager.LayoutParams.WRAP_CONTENT;
lp.height = WindowManager.LayoutParams.WRAP_CONTENT;
dialog.findViewById(R.id.bt_close).setOnClickListener(v -> dialog.dismiss());
// dialog.findViewById(R.id.dia_left).setOnClickListener(new View.OnClickListener() {
// @Override
// public void onClick(View v) {
// Intent intent = new Intent(Intent.ACTION_VIEW);
// intent.setData(Uri.parse("https://www.baidu.com"));
// startActivity(intent);
// }
// });
dialog.findViewById(R.id.dia_right).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent share = new Intent(Intent.ACTION_SEND);
share.setType("text/plain");
share.putExtra(Intent.EXTRA_SUBJECT, R.string.app_name);
String text = getString(R.string.share_title);
text = text + "\n https://play.google.com/store/apps/details?id=" + "com.fun.originalityprank";
share.putExtra(Intent.EXTRA_TEXT, text);
startActivity(Intent.createChooser(share, "choose one"));
}
});
dialog.show();
dialog.getWindow().setAttributes(lp);
}
private void initView(List<AllData> list) {
thumAdapter = new ThumAdapter(requireActivity(), list);
binding.marinRv.setAdapter(thumAdapter);
binding.marinRv.setLayoutManager(new GridLayoutManager(requireContext(), 2));
}
private void initData() {
Mytools.runIO(new Runnable() {
@Override
public void run() {
allData = MydataBase.getInstance().likeDAO().getAll();
chekData(allData);
if (!chekData(allData).isEmpty()) {
maindata = chekData(allData);
requireActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
initView(maindata);
}
});
}
}
});
}
private static List<AllData> chekData(List<AllData> data) {
List<AllData> main = new ArrayList<>();
Set<String> name = new HashSet<>();
for (AllData mydata : data) {
if (!name.contains(mydata.getCategoryname())) {
main.add(mydata);
name.add(mydata.getCategoryname());
}
}
return main;
}
}

View File

@ -0,0 +1,36 @@
package com.fun.originalityprank.tool;
import android.annotation.SuppressLint;
import android.content.Context;
import android.graphics.Typeface;
import android.util.AttributeSet;
import android.widget.TextView;
import androidx.annotation.Nullable;
@SuppressLint("AppCompatCustomView")
public class MytextView extends TextView {
public MytextView(Context context) {
super(context);
initData();
}
public MytextView(Context context, @Nullable AttributeSet attrs) {
super(context, attrs);
initData();
}
public MytextView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
initData();
}
public MytextView(Context context, @Nullable AttributeSet attrs, int defStyleAttr, int defStyleRes) {
super(context, attrs, defStyleAttr, defStyleRes);
initData();
}
private void initData(){
setTypeface(Typeface.createFromAsset(getContext().getAssets(), "PaytoneOne-Regular.ttf"));
}
}

View File

@ -0,0 +1,81 @@
package com.fun.originalityprank.tool;
import android.content.res.AssetManager;
import com.fun.originalityprank.PrankSkin;
import com.fun.originalityprank.data.AllData;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.io.IOException;
import java.io.InputStream;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class Mytools {
private static ExecutorService executorService;
public static void runIO(Runnable task) {
getExecutorService().execute(task);
}
private static ExecutorService getExecutorService() {
if (executorService == null) {
executorService = Executors.newSingleThreadExecutor();
}
return executorService;
}
private static JSONArray loadJSONFromAsset(String filename) {
String json;
try {
AssetManager assetManager = PrankSkin.getContext().getAssets();
InputStream inputStream = assetManager.open(filename);
int size = inputStream.available();
byte[] buffer = new byte[size];
inputStream.read(buffer);
inputStream.close();
json = new String(buffer, StandardCharsets.UTF_8);
return new JSONArray(json);
} catch (IOException | JSONException e) {
e.printStackTrace();
return null;
}
}
public static List<AllData> parseJsonToList(String filename) {
List<AllData> dataList = new ArrayList<>();
try {
JSONArray jsonObject = loadJSONFromAsset(filename);
for (int a = 0; a < jsonObject.length(); a++) {
JSONObject list = jsonObject.getJSONObject(a);
String categoryName = list.getString("categoryName");
String categoryUrl = list.getString("categoryUrl");
JSONArray classArray = list.getJSONArray("list");
for (int i = 0; i < classArray.length(); i++) {
JSONObject item = classArray.getJSONObject(i);
AllData allData = new AllData();
allData.setCategoryname(categoryName);
allData.setCategoryUrl(categoryUrl);
allData.setLike(false);
allData.setTitle(item.getString("title"));
allData.setMp3Url(item.getString("mp3Url"));
allData.setPreUrl(item.getString("preUrl"));
dataList.add(allData);
}
}
} catch (JSONException e) {
e.printStackTrace();
}
return dataList;
}
}

View File

@ -0,0 +1,23 @@
package com.fun.originalityprank.tool;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.media.AudioManager;
import android.widget.SeekBar;
public class SeekBarBroadCast extends BroadcastReceiver {
private AudioManager myaudioManager;
private SeekBar myseekBar;
public SeekBarBroadCast(AudioManager audioManager, SeekBar seekBar){
myaudioManager = audioManager;
myseekBar = seekBar;
}
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals("android.media.VOLUME_CHANGED_ACTION")){
int currentVolume = myaudioManager.getStreamVolume(AudioManager.STREAM_MUSIC);
myseekBar.setProgress(currentVolume);
}
}
}

View File

@ -0,0 +1,11 @@
package com.fun.originalityprank.tool;
public class StaticValue {
public static String KEY_CategoryName = "key_CategoryName";
public static String KEY_TITLE = "key_title";
public static String KEY_Color = "key_color";
public static String KEY_MP3URL = "key_mp3url";
public static String KEY_PREURL = "KEY_preurl";
public static String KEY_LIKE = "KEY_like";
}

View File

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:topLeftRadius="27dp"
android:topRightRadius="27dp"
android:bottomRightRadius="27dp"
android:bottomLeftRadius="27dp"/>
<gradient
android:centerX="0.5"
android:centerY="0.5"
android:startColor="#3FE3ED"
android:endColor="#7E84FE"
android:angle="270"
android:type="linear"
/>
</shape>

View File

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:topLeftRadius="20dp"
android:topRightRadius="20dp"
android:bottomRightRadius="20dp"
android:bottomLeftRadius="20dp"/>
<gradient
android:centerX="0.5"
android:centerY="0.5"
android:startColor="#3FE3ED"
android:endColor="#7E84FE"
android:angle="270"
android:type="linear"
/>
</shape>

View File

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="@color/dia_menu_bg"/>
<corners android:topLeftRadius="12dp"
android:topRightRadius="12dp"
android:bottomRightRadius="12dp"
android:bottomLeftRadius="12dp"/>
</shape>

View File

@ -0,0 +1,170 @@
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="108dp"
android:height="108dp"
android:viewportWidth="108"
android:viewportHeight="108">
<path
android:fillColor="#3DDC84"
android:pathData="M0,0h108v108h-108z" />
<path
android:fillColor="#00000000"
android:pathData="M9,0L9,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M19,0L19,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M29,0L29,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M39,0L39,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M49,0L49,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M59,0L59,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M69,0L69,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M79,0L79,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M89,0L89,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M99,0L99,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,9L108,9"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,19L108,19"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,29L108,29"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,39L108,39"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,49L108,49"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,59L108,59"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,69L108,69"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,79L108,79"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,89L108,89"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,99L108,99"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M19,29L89,29"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M19,39L89,39"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M19,49L89,49"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M19,59L89,59"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M19,69L89,69"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M19,79L89,79"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M29,19L29,89"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M39,19L39,89"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M49,19L49,89"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M59,19L59,89"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M69,19L69,89"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M79,19L79,89"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
</vector>

View File

@ -0,0 +1,30 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:aapt="http://schemas.android.com/aapt"
android:width="108dp"
android:height="108dp"
android:viewportWidth="108"
android:viewportHeight="108">
<path android:pathData="M31,63.928c0,0 6.4,-11 12.1,-13.1c7.2,-2.6 26,-1.4 26,-1.4l38.1,38.1L107,108.928l-32,-1L31,63.928z">
<aapt:attr name="android:fillColor">
<gradient
android:endX="85.84757"
android:endY="92.4963"
android:startX="42.9492"
android:startY="49.59793"
android:type="linear">
<item
android:color="#44000000"
android:offset="0.0" />
<item
android:color="#00000000"
android:offset="1.0" />
</gradient>
</aapt:attr>
</path>
<path
android:fillColor="#FFFFFF"
android:fillType="nonZero"
android:pathData="M65.3,45.828l3.8,-6.6c0.2,-0.4 0.1,-0.9 -0.3,-1.1c-0.4,-0.2 -0.9,-0.1 -1.1,0.3l-3.9,6.7c-6.3,-2.8 -13.4,-2.8 -19.7,0l-3.9,-6.7c-0.2,-0.4 -0.7,-0.5 -1.1,-0.3C38.8,38.328 38.7,38.828 38.9,39.228l3.8,6.6C36.2,49.428 31.7,56.028 31,63.928h46C76.3,56.028 71.8,49.428 65.3,45.828zM43.4,57.328c-0.8,0 -1.5,-0.5 -1.8,-1.2c-0.3,-0.7 -0.1,-1.5 0.4,-2.1c0.5,-0.5 1.4,-0.7 2.1,-0.4c0.7,0.3 1.2,1 1.2,1.8C45.3,56.528 44.5,57.328 43.4,57.328L43.4,57.328zM64.6,57.328c-0.8,0 -1.5,-0.5 -1.8,-1.2s-0.1,-1.5 0.4,-2.1c0.5,-0.5 1.4,-0.7 2.1,-0.4c0.7,0.3 1.2,1 1.2,1.8C66.5,56.528 65.6,57.328 64.6,57.328L64.6,57.328z"
android:strokeWidth="1"
android:strokeColor="#00000000" />
</vector>

View File

@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="28dp"
android:height="22dp"
android:viewportWidth="28"
android:viewportHeight="22">
<path
android:pathData="M27.91,9.963C28.238,7.377 27.625,6.34 26.825,6.153C24.886,5.699 18.303,6.828 15.327,7.381C14.622,7.512 13.999,6.885 14.122,6.178C14.293,5.197 14.513,3.81 14.695,2.263C15.047,-0.74 12.724,-0.497 9.907,1.49C3.948,5.694 1.388,7.757 0.095,9.986C-0.843,11.603 5.35,17.688 9.576,20.228C13.803,22.768 14.701,22.184 14.936,20.914C15.089,20.086 14.575,17.372 14.198,15.582C14.041,14.837 14.73,14.176 15.466,14.368C17.015,14.772 19.532,15.403 22.424,16.027C27.237,17.066 27.463,16.337 27.698,15.529C27.933,14.721 27.581,12.55 27.91,9.963Z"
android:fillColor="#ffffff"/>
</vector>

View File

@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:pathData="M19.875,6.375C20.496,5.753 20.496,4.746 19.875,4.125C19.254,3.504 18.247,3.504 17.625,4.125L12,9.75L6.375,4.125C5.754,3.504 4.747,3.504 4.125,4.125C3.504,4.746 3.504,5.754 4.125,6.375L9.75,12L4.125,17.625C3.504,18.247 3.504,19.254 4.125,19.875C4.747,20.497 5.754,20.496 6.375,19.875L12,14.25L17.625,19.875C18.247,20.496 19.254,20.496 19.875,19.875C20.496,19.254 20.496,18.247 19.875,17.625L14.25,12L19.875,6.375Z"
android:fillColor="#ffffff"/>
</vector>

View File

@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:pathData="M8.473,17.059C7.132,17.058 5.846,16.524 4.897,15.575C3.948,14.627 3.415,13.341 3.413,11.999C3.415,10.658 3.948,9.372 4.897,8.423C5.846,7.475 7.132,6.941 8.473,6.939C8.526,6.939 8.58,6.934 8.632,6.924V8.291C8.632,8.579 8.96,8.746 9.192,8.574L12.3,6.287C12.344,6.254 12.38,6.212 12.405,6.162C12.429,6.113 12.442,6.059 12.442,6.004C12.442,5.949 12.429,5.894 12.405,5.845C12.38,5.796 12.344,5.753 12.3,5.72L9.192,3.431C9.14,3.393 9.078,3.37 9.013,3.364C8.948,3.359 8.883,3.372 8.825,3.401C8.767,3.431 8.718,3.476 8.684,3.531C8.65,3.587 8.632,3.65 8.632,3.715V5.077C8.579,5.068 8.526,5.063 8.472,5.063C7.546,5.062 6.629,5.249 5.777,5.611C4.954,5.961 4.206,6.466 3.574,7.099C2.597,8.073 1.934,9.316 1.669,10.669C1.404,12.022 1.549,13.423 2.086,14.693C2.438,15.518 2.936,16.259 3.574,16.896C4.216,17.542 4.98,18.054 5.821,18.403C6.661,18.753 7.563,18.933 8.473,18.933C8.722,18.933 8.96,18.834 9.136,18.659C9.312,18.483 9.411,18.244 9.411,17.996C9.411,17.747 9.312,17.509 9.136,17.333C8.96,17.157 8.722,17.058 8.473,17.058V17.059ZM21.989,9.303C21.639,8.481 21.134,7.733 20.501,7.101C19.859,6.456 19.095,5.944 18.255,5.594C17.414,5.245 16.513,5.065 15.602,5.064C15.354,5.064 15.115,5.163 14.939,5.339C14.763,5.515 14.665,5.753 14.665,6.002C14.665,6.25 14.763,6.489 14.939,6.665C15.115,6.841 15.354,6.939 15.602,6.939C16.944,6.941 18.23,7.475 19.178,8.423C20.127,9.372 20.66,10.658 20.662,11.999C20.66,13.341 20.127,14.627 19.178,15.575C18.23,16.524 16.944,17.058 15.602,17.059C15.509,17.059 15.415,17.074 15.326,17.102V15.677C15.326,15.612 15.308,15.549 15.274,15.493C15.24,15.438 15.191,15.393 15.133,15.363C15.075,15.334 15.01,15.321 14.946,15.326C14.881,15.332 14.819,15.355 14.766,15.393L11.658,17.681C11.614,17.714 11.578,17.757 11.554,17.806C11.529,17.855 11.516,17.91 11.516,17.965C11.516,18.02 11.529,18.074 11.554,18.123C11.578,18.173 11.614,18.215 11.658,18.248L14.763,20.533C14.995,20.704 15.323,20.538 15.323,20.25V18.891C15.41,18.919 15.503,18.933 15.6,18.933C16.526,18.934 17.443,18.747 18.295,18.384C19.118,18.035 19.866,17.529 20.498,16.896C21.475,15.923 22.139,14.681 22.405,13.327C22.671,11.974 22.526,10.573 21.989,9.302V9.303ZM12.019,15.483C12.142,15.483 12.264,15.458 12.377,15.41C12.491,15.363 12.594,15.293 12.681,15.206C12.767,15.119 12.836,15.015 12.882,14.901C12.929,14.787 12.953,14.665 12.952,14.542L12.923,9.524C12.922,9.277 12.823,9.039 12.647,8.865C12.471,8.69 12.234,8.592 11.986,8.591H11.981C11.858,8.592 11.736,8.617 11.623,8.664C11.509,8.712 11.406,8.781 11.319,8.869C11.233,8.956 11.164,9.06 11.118,9.174C11.071,9.288 11.047,9.41 11.048,9.533L11.077,14.551C11.078,14.799 11.178,15.036 11.353,15.211C11.529,15.386 11.766,15.484 12.014,15.484H12.019V15.483Z"
android:fillColor="#453FA2"/>
</vector>

View File

@ -0,0 +1,20 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="81dp"
android:height="80dp"
android:viewportWidth="81"
android:viewportHeight="80">
<path
android:pathData="M40.5,2L40.5,2A38,38 0,0 1,78.5 40L78.5,40A38,38 0,0 1,40.5 78L40.5,78A38,38 0,0 1,2.5 40L2.5,40A38,38 0,0 1,40.5 2z"
android:fillColor="#211E4C"/>
<path
android:pathData="M40.5,2L40.5,2A38,38 0,0 1,78.5 40L78.5,40A38,38 0,0 1,40.5 78L40.5,78A38,38 0,0 1,2.5 40L2.5,40A38,38 0,0 1,40.5 2z"
android:strokeWidth="4"
android:fillColor="#00000000"
android:strokeColor="#ADB2FF"/>
<path
android:pathData="M39.357,49.988L39.357,30.01C39.357,28.584 38.27,27.428 36.929,27.428L31.5,27.428C30.159,27.428 29.071,28.584 29.071,30.01L29.071,49.988C29.071,51.414 30.159,52.571 31.5,52.571L36.929,52.571C38.27,52.571 39.357,51.414 39.357,49.988Z"
android:fillColor="#ffffff"/>
<path
android:pathData="M51.929,49.988L51.929,30.01C51.929,28.584 50.841,27.428 49.5,27.428L44.071,27.428C42.73,27.428 41.643,28.584 41.643,30.01L41.643,49.988C41.643,51.414 42.73,52.571 44.071,52.571L49.5,52.571C50.841,52.571 51.929,51.414 51.929,49.988Z"
android:fillColor="#ffffff"/>
</vector>

View File

@ -0,0 +1,17 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="81dp"
android:height="80dp"
android:viewportWidth="81"
android:viewportHeight="80">
<path
android:pathData="M40.5,2L40.5,2A38,38 0,0 1,78.5 40L78.5,40A38,38 0,0 1,40.5 78L40.5,78A38,38 0,0 1,2.5 40L2.5,40A38,38 0,0 1,40.5 2z"
android:fillColor="#211E4C"/>
<path
android:pathData="M40.5,2L40.5,2A38,38 0,0 1,78.5 40L78.5,40A38,38 0,0 1,40.5 78L40.5,78A38,38 0,0 1,2.5 40L2.5,40A38,38 0,0 1,40.5 2z"
android:strokeWidth="4"
android:fillColor="#00000000"
android:strokeColor="#ADB2FF"/>
<path
android:pathData="M53.061,35.231L38.234,27.017C37.363,26.537 36.375,26.284 35.37,26.285C34.365,26.286 33.377,26.541 32.507,27.024C31.637,27.507 30.914,28.201 30.411,29.036C29.909,29.872 29.644,30.819 29.643,31.784V48.211C29.642,49.177 29.907,50.126 30.41,50.963C30.913,51.8 31.637,52.494 32.509,52.977C33.381,53.46 34.37,53.714 35.377,53.714C36.383,53.713 37.372,53.458 38.244,52.974L53.07,44.761C53.94,44.277 54.662,43.581 55.164,42.744C55.666,41.908 55.93,40.959 55.929,39.993C55.928,39.028 55.662,38.08 55.159,37.244C54.656,36.408 53.932,35.714 53.061,35.231Z"
android:fillColor="#ffffff"/>
</vector>

View File

@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:pathData="M16.21,3.75C14.578,3.75 12.951,4.455 11.903,5.624C10.856,4.455 9.423,3.75 7.79,3.75C4.735,3.75 2.25,6.117 2.25,9.026C2.25,13.761 6.788,16.73 9.791,18.695C10.548,19.19 11.029,19.488 11.517,19.875L11.903,20.25L12.29,19.875C12.778,19.488 13.453,19.19 14.209,18.694C17.212,16.73 21.75,13.76 21.75,9.026C21.75,6.117 19.265,3.75 16.21,3.75Z"
android:fillColor="#FF232B"/>
</vector>

View File

@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:pathData="M16.21,3.75C14.578,3.75 12.951,4.455 11.903,5.624C10.856,4.455 9.423,3.75 7.79,3.75C4.735,3.75 2.25,6.117 2.25,9.026C2.25,13.761 6.788,16.73 9.791,18.695C10.548,19.19 11.029,19.488 11.517,19.875L11.903,20.25L12.29,19.875C12.778,19.488 13.453,19.19 14.209,18.694C17.212,16.73 21.75,13.76 21.75,9.026C21.75,6.117 19.265,3.75 16.21,3.75Z"
android:fillColor="#DDDDDD"/>
</vector>

View File

@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="32dp"
android:height="32dp"
android:viewportWidth="32"
android:viewportHeight="32">
<path
android:pathData="M25.449,5.596C22.855,5.155 20.409,4.098 18.324,2.517L16.279,0.966C16.105,0.834 15.865,0.831 15.686,0.958L13.118,2.792C11.154,4.196 8.894,5.146 6.506,5.574L4.211,5.985C3.972,6.028 3.799,6.235 3.799,6.477V18.42C3.799,22.488 6.102,26.221 9.781,28.117L15.757,31.195C15.901,31.27 16.071,31.27 16.215,31.195L22.191,28.117C25.87,26.221 28.173,22.488 28.173,18.42V6.482C28.173,6.238 27.997,6.03 27.757,5.989L25.449,5.596ZM17.265,16.175V21.511C17.265,22.217 16.692,22.79 15.986,22.79C15.279,22.79 14.707,22.217 14.707,21.511V16.175C13.502,15.673 12.656,14.485 12.656,13.099C12.656,11.259 14.147,9.768 15.986,9.768C17.825,9.768 19.317,11.259 19.317,13.099C19.317,14.485 18.469,15.673 17.265,16.175Z"
android:fillColor="#ffffff"/>
</vector>

View File

@ -0,0 +1,12 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="32dp"
android:height="32dp"
android:viewportWidth="32"
android:viewportHeight="32">
<path
android:pathData="M9.089,7.871C9.414,7.22 9.224,6.787 9.089,6.651L11.121,5.026H11.528H13.153L14.373,5.838L15.186,6.245L15.998,6.651L17.624,5.838L19.657,4.619C19.928,4.755 20.551,5.026 20.876,5.026C21.282,5.026 22.095,5.838 22.502,5.838C22.827,5.838 23.179,6.38 23.315,6.651V7.871C23.315,8.277 23.315,9.497 23.721,9.903C24.046,10.228 23.857,11.122 23.721,11.529C24.399,11.8 25.835,12.391 26.16,12.587C26.485,12.784 26.295,12.776 26.16,12.748L27.786,13.561L28.192,14.374C28.328,14.78 28.598,15.756 28.598,16.406C28.598,17.056 28.057,18.032 27.786,18.438L26.973,18.845L24.534,20.471L23.315,24.129V25.755L20.469,27.38L18.031,26.161C17.381,25.836 16.947,25.484 16.812,25.348H15.592L13.153,26.974C12.747,26.838 11.853,26.567 11.528,26.567H11.121C10.579,26.432 9.414,26.08 9.089,25.755C8.764,25.429 8.682,25.619 8.682,25.755V24.942C8.818,24.671 9.089,23.966 9.089,23.316C9.089,22.503 9.089,22.909 8.682,22.097C8.276,21.284 8.276,21.69 7.87,21.284C7.463,20.877 6.65,20.064 5.431,19.251L4.211,18.438L3.805,17.626V14.78C3.805,14.455 4.347,13.561 4.618,13.155C5.16,12.884 6.325,12.26 6.65,11.935C6.975,11.61 7.599,11.258 7.87,11.122C8.141,10.309 8.764,8.521 9.089,7.871Z"
android:fillColor="#ffffff"/>
<path
android:pathData="M28.721,13.461C28.569,12.658 28.078,12.139 27.472,12.139C27.464,12.139 27.456,12.14 27.452,12.14H27.34C25.585,12.14 24.157,10.712 24.157,8.957C24.157,8.388 24.432,7.749 24.434,7.744C24.749,7.036 24.507,6.168 23.872,5.725L23.834,5.698L20.609,3.906L20.568,3.888C20.358,3.797 20.128,3.751 19.885,3.751C19.386,3.751 18.895,3.951 18.572,4.286C18.219,4.651 16.997,5.694 16.059,5.694C15.113,5.694 13.884,4.631 13.529,4.259C13.205,3.917 12.71,3.713 12.206,3.713C11.967,3.713 11.742,3.758 11.535,3.846L11.493,3.863L8.154,5.698L8.115,5.725C7.478,6.167 7.235,7.035 7.549,7.742C7.552,7.749 7.827,8.383 7.827,8.957C7.827,10.712 6.399,12.14 4.644,12.14H4.534C4.527,12.139 4.519,12.139 4.511,12.139C3.905,12.139 3.415,12.658 3.264,13.461C3.253,13.52 2.992,14.916 2.992,16.008C2.992,17.1 3.253,18.495 3.264,18.554C3.416,19.357 3.906,19.876 4.512,19.876C4.52,19.876 4.528,19.876 4.533,19.876H4.644C6.399,19.876 7.827,21.303 7.827,23.058C7.827,23.628 7.552,24.266 7.55,24.271C7.235,24.979 7.477,25.847 8.111,26.291L8.149,26.317L11.313,28.086L11.353,28.104C11.563,28.196 11.792,28.243 12.034,28.243C12.54,28.243 13.034,28.034 13.356,27.684C13.806,27.196 15.025,26.188 15.925,26.188C16.9,26.188 18.15,27.318 18.511,27.713C18.833,28.069 19.331,28.282 19.842,28.282H19.842C20.08,28.282 20.305,28.237 20.512,28.148L20.553,28.13L23.832,26.317L23.871,26.29C24.507,25.847 24.749,24.98 24.436,24.274C24.433,24.268 24.157,23.624 24.157,23.058C24.157,21.303 25.585,19.876 27.34,19.876L27.448,19.876C27.455,19.876 27.463,19.876 27.47,19.876C28.078,19.876 28.569,19.357 28.72,18.555C28.723,18.541 28.992,17.127 28.992,16.008C28.992,14.911 28.732,13.52 28.721,13.461ZM12.051,26.406L9.283,24.858C9.405,24.545 9.654,23.814 9.654,23.058C9.654,20.433 7.634,18.263 5.032,18.063C4.969,17.693 4.819,16.744 4.819,16.008C4.819,15.272 4.968,14.322 5.032,13.952C7.634,13.752 9.654,11.582 9.654,8.957C9.654,8.203 9.406,7.474 9.285,7.161L12.23,5.544L12.23,5.544C12.336,5.652 12.761,6.073 13.347,6.491C14.305,7.174 15.218,7.521 16.059,7.521C16.892,7.521 17.798,7.181 18.75,6.511C19.332,6.101 19.755,5.688 19.861,5.581L19.861,5.581L22.7,7.159C22.579,7.472 22.33,8.202 22.33,8.957C22.33,11.582 24.35,13.752 26.952,13.952C27.016,14.323 27.165,15.274 27.165,16.008C27.165,16.744 27.016,17.693 26.952,18.064C24.351,18.263 22.33,20.433 22.33,23.058C22.33,23.813 22.578,24.543 22.7,24.856L19.825,26.444C19.701,26.313 19.283,25.884 18.704,25.454C17.727,24.728 16.792,24.361 15.925,24.361C15.066,24.361 14.138,24.721 13.167,25.433C12.596,25.851 12.175,26.276 12.051,26.406ZM20.541,15.991C20.541,13.452 18.475,11.386 15.936,11.386C13.397,11.386 11.331,13.452 11.331,15.991C11.331,18.53 13.397,20.596 15.936,20.596C18.475,20.596 20.541,18.53 20.541,15.991ZM15.936,13.213C17.467,13.213 18.713,14.459 18.713,15.991C18.713,17.523 17.467,18.769 15.936,18.769C14.404,18.769 13.158,17.523 13.158,15.991C13.158,14.459 14.404,13.213 15.936,13.213Z"
android:fillColor="#0B879F"/>
</vector>

View File

@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="25dp"
android:height="24dp"
android:viewportWidth="25"
android:viewportHeight="24">
<path
android:pathData="M12.331,8.286C12.057,8.276 11.829,8.054 11.829,7.779V5.006C11.829,4.6 11.371,4.363 11.04,4.598L2.333,10.765C2.052,10.965 2.052,11.382 2.333,11.581L11.04,17.749C11.371,17.983 11.829,17.747 11.829,17.341V14.61C11.829,14.334 12.053,14.11 12.329,14.112C15.744,14.135 18.937,14.462 21.732,18.333C22.034,18.751 22.728,18.553 22.684,18.04C22.355,14.184 20.651,8.582 12.331,8.286Z"
android:fillColor="#ffffff"/>
</vector>

View File

@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:pathData="M8.473,17.059C7.132,17.058 5.846,16.524 4.897,15.575C3.948,14.627 3.415,13.341 3.413,11.999C3.415,10.658 3.948,9.372 4.897,8.423C5.846,7.475 7.132,6.941 8.473,6.939C8.527,6.939 8.58,6.934 8.632,6.924V8.291C8.632,8.579 8.96,8.746 9.192,8.574L12.3,6.287C12.344,6.254 12.38,6.212 12.405,6.162C12.429,6.113 12.442,6.059 12.442,6.004C12.442,5.949 12.429,5.894 12.405,5.845C12.38,5.796 12.344,5.753 12.3,5.72L9.192,3.431C9.14,3.393 9.078,3.37 9.013,3.364C8.948,3.359 8.883,3.372 8.825,3.401C8.767,3.431 8.718,3.476 8.684,3.531C8.65,3.587 8.632,3.65 8.632,3.715V5.077C8.579,5.068 8.526,5.063 8.472,5.063C7.546,5.062 6.629,5.249 5.777,5.611C4.954,5.961 4.206,6.466 3.574,7.099C2.598,8.073 1.934,9.316 1.669,10.669C1.404,12.022 1.549,13.423 2.086,14.693C2.438,15.518 2.936,16.259 3.574,16.896C4.217,17.542 4.98,18.054 5.821,18.403C6.661,18.753 7.563,18.933 8.473,18.933C8.722,18.933 8.96,18.834 9.136,18.659C9.312,18.483 9.411,18.244 9.411,17.996C9.411,17.747 9.312,17.509 9.136,17.333C8.96,17.157 8.722,17.058 8.473,17.058V17.059ZM21.989,9.303C21.639,8.481 21.134,7.733 20.501,7.101C19.859,6.456 19.096,5.944 18.255,5.594C17.414,5.245 16.513,5.065 15.602,5.064C15.354,5.064 15.115,5.163 14.939,5.339C14.764,5.515 14.665,5.753 14.665,6.002C14.665,6.25 14.764,6.489 14.939,6.665C15.115,6.841 15.354,6.939 15.602,6.939C16.944,6.941 18.23,7.475 19.178,8.423C20.127,9.372 20.661,10.658 20.662,11.999C20.661,13.341 20.127,14.627 19.178,15.575C18.23,16.524 16.944,17.058 15.602,17.059C15.509,17.059 15.415,17.074 15.326,17.102V15.677C15.326,15.612 15.308,15.549 15.274,15.493C15.24,15.438 15.191,15.393 15.133,15.363C15.075,15.334 15.01,15.321 14.946,15.326C14.881,15.332 14.819,15.355 14.766,15.393L11.658,17.681C11.614,17.714 11.578,17.757 11.554,17.806C11.529,17.855 11.516,17.91 11.516,17.965C11.516,18.02 11.529,18.074 11.554,18.123C11.578,18.173 11.614,18.215 11.658,18.248L14.763,20.533C14.995,20.704 15.323,20.538 15.323,20.25V18.891C15.41,18.919 15.503,18.933 15.6,18.933C16.526,18.934 17.443,18.747 18.295,18.384C19.118,18.035 19.866,17.529 20.498,16.896C21.475,15.923 22.139,14.681 22.405,13.327C22.671,11.974 22.526,10.573 21.989,9.302V9.303ZM12.019,15.483C12.142,15.483 12.264,15.458 12.377,15.41C12.491,15.363 12.594,15.293 12.681,15.206C12.767,15.119 12.836,15.015 12.882,14.901C12.929,14.787 12.953,14.665 12.952,14.542L12.923,9.524C12.922,9.277 12.823,9.039 12.647,8.865C12.472,8.69 12.234,8.592 11.986,8.591H11.981C11.858,8.592 11.736,8.617 11.623,8.664C11.509,8.712 11.406,8.781 11.319,8.869C11.233,8.956 11.164,9.06 11.118,9.174C11.071,9.288 11.047,9.41 11.048,9.533L11.077,14.551C11.078,14.799 11.178,15.036 11.353,15.211C11.529,15.386 11.767,15.484 12.014,15.484H12.019V15.483Z"
android:fillColor="#DDDDDD"/>
</vector>

View File

@ -0,0 +1,21 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:pathData="M1.814,11.736C1.849,10.014 1.867,9.154 2.45,8.418C2.568,8.273 2.7,8.138 2.843,8.016C3.559,7.422 4.506,7.422 6.397,7.422C7.073,7.422 7.411,7.422 7.733,7.336C7.8,7.317 7.866,7.297 7.932,7.273C8.246,7.16 8.529,6.965 9.094,6.577C11.32,5.04 12.434,4.273 13.368,4.606C13.547,4.671 13.72,4.763 13.875,4.877C14.682,5.47 14.744,6.852 14.867,9.615C14.907,10.41 14.933,11.205 14.943,12.001C14.943,12.488 14.913,13.365 14.867,14.387C14.743,17.15 14.682,18.532 13.875,19.125C13.72,19.239 13.549,19.33 13.368,19.396C12.433,19.729 11.321,18.962 9.093,17.425C8.529,17.037 8.246,16.841 7.931,16.729C7.866,16.705 7.8,16.684 7.733,16.666C7.411,16.58 7.073,16.58 6.397,16.58C4.506,16.58 3.56,16.58 2.843,15.986C2.7,15.865 2.568,15.73 2.45,15.584C1.867,14.847 1.85,13.987 1.814,12.267C1.81,12.09 1.81,11.913 1.814,11.736Z"
android:fillColor="#ffffff"/>
<path
android:pathData="M17.208,12H23.094"
android:strokeWidth="1.13208"
android:fillColor="#00000000"
android:strokeColor="#ffffff"
android:strokeLineCap="round"/>
<path
android:pathData="M20.151,9.057L20.151,14.943"
android:strokeWidth="1.13208"
android:fillColor="#00000000"
android:strokeColor="#ffffff"
android:strokeLineCap="round"/>
</vector>

View File

@ -0,0 +1,15 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:pathData="M1.814,11.736C1.849,10.014 1.867,9.154 2.45,8.418C2.568,8.273 2.7,8.138 2.843,8.016C3.559,7.422 4.506,7.422 6.397,7.422C7.073,7.422 7.411,7.422 7.733,7.336C7.8,7.317 7.866,7.297 7.932,7.273C8.246,7.16 8.529,6.965 9.094,6.577C11.32,5.04 12.434,4.273 13.368,4.606C13.547,4.671 13.72,4.763 13.875,4.877C14.682,5.47 14.744,6.852 14.867,9.615C14.907,10.41 14.933,11.205 14.943,12.001C14.943,12.488 14.913,13.365 14.867,14.387C14.743,17.15 14.682,18.532 13.875,19.125C13.72,19.239 13.549,19.33 13.368,19.396C12.433,19.729 11.321,18.962 9.093,17.425C8.529,17.037 8.246,16.841 7.931,16.729C7.866,16.705 7.8,16.684 7.733,16.666C7.411,16.58 7.073,16.58 6.397,16.58C4.506,16.58 3.56,16.58 2.843,15.986C2.7,15.865 2.568,15.73 2.45,15.584C1.867,14.847 1.85,13.987 1.814,12.267C1.81,12.09 1.81,11.913 1.814,11.736Z"
android:fillColor="#ffffff"/>
<path
android:pathData="M17.208,12H23.094"
android:strokeWidth="1.13208"
android:fillColor="#00000000"
android:strokeColor="#ffffff"
android:strokeLineCap="round"/>
</vector>

View File

@ -0,0 +1,21 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:pathData="M1.814,11.736C1.849,10.014 1.867,9.154 2.45,8.418C2.568,8.273 2.7,8.138 2.843,8.016C3.559,7.422 4.506,7.422 6.397,7.422C7.073,7.422 7.411,7.422 7.733,7.336C7.8,7.317 7.866,7.297 7.932,7.273C8.246,7.16 8.529,6.965 9.094,6.577C11.32,5.04 12.434,4.273 13.368,4.606C13.547,4.671 13.72,4.763 13.875,4.877C14.682,5.47 14.744,6.852 14.867,9.615C14.907,10.41 14.933,11.205 14.943,12.001C14.943,12.488 14.913,13.365 14.867,14.387C14.743,17.15 14.682,18.532 13.875,19.125C13.72,19.239 13.549,19.33 13.368,19.396C12.433,19.729 11.321,18.962 9.093,17.425C8.529,17.037 8.246,16.841 7.931,16.729C7.866,16.705 7.8,16.684 7.733,16.666C7.411,16.58 7.073,16.58 6.397,16.58C4.506,16.58 3.56,16.58 2.843,15.986C2.7,15.865 2.568,15.73 2.45,15.584C1.867,14.847 1.85,13.987 1.814,12.267C1.81,12.09 1.81,11.913 1.814,11.736Z"
android:fillColor="#ffffff"/>
<path
android:pathData="M18.07,14.082L22.232,9.919"
android:strokeWidth="1.13208"
android:fillColor="#00000000"
android:strokeColor="#ffffff"
android:strokeLineCap="round"/>
<path
android:pathData="M18.07,9.918L22.232,14.081"
android:strokeWidth="1.13208"
android:fillColor="#00000000"
android:strokeColor="#ffffff"
android:strokeLineCap="round"/>
</vector>

View File

@ -0,0 +1,14 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="40dp"
android:height="40dp"
android:viewportWidth="40"
android:viewportHeight="40">
<path
android:pathData="M27.501,15.699C23.566,14.119 21.473,17.222 21.438,17.275C21.403,17.222 19.31,14.118 15.374,15.698C11.435,17.28 9.639,25.116 20.72,31.31C21.035,31.485 21.285,31.537 21.437,31.542H21.438C21.59,31.537 21.84,31.485 22.154,31.31C33.236,25.116 31.441,17.28 27.501,15.698V15.699Z"
android:fillColor="#ffffff"/>
<path
android:pathData="M28.701,11.019L28.609,10.983C25.985,9.974 24.044,10.469 22.751,11.179C22.091,11.542 21.587,11.97 21.246,12.31C21.076,12.48 20.949,12.626 20.865,12.728C20.823,12.779 20.792,12.819 20.772,12.845C20.762,12.858 20.755,12.868 20.751,12.874L20.744,12.883L19.988,13.958L19.247,12.871C19.248,12.872 19.248,12.872 19.247,12.87C19.213,12.824 18.529,11.882 17.249,11.179C15.957,10.468 14.015,9.973 11.392,10.982L28.701,11.019ZM28.701,11.019C31.122,12.003 32.984,14.863 32.398,18.569C31.805,22.319 28.654,27.072 20.627,31.37C20.312,31.538 20.093,31.58 20,31.588C19.907,31.58 19.687,31.538 19.373,31.37C11.346,27.072 8.195,22.319 7.602,18.569C7.009,14.816 8.926,11.931 11.391,10.982L28.701,11.019Z"
android:strokeWidth="1.82083"
android:fillColor="#00000000"
android:strokeColor="#16586C"/>
</vector>

View File

@ -0,0 +1,23 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:aapt="http://schemas.android.com/aapt"
android:width="351dp"
android:height="138dp"
android:viewportWidth="351"
android:viewportHeight="138">
<path
android:pathData="M24,2H165.88C177.71,2 188.92,7.23 196.52,16.28L213.79,36.86C220.26,44.56 229.79,49 239.84,49H327C339.15,49 349,58.85 349,71V114C349,126.15 339.15,136 327,136H24C11.85,136 2,126.15 2,114V24C2,11.85 11.85,2 24,2Z"
android:strokeWidth="4"
android:strokeColor="#7495FC">
<aapt:attr name="android:fillColor">
<gradient
android:startX="175.5"
android:startY="0"
android:endX="175.5"
android:endY="138"
android:type="linear">
<item android:offset="0" android:color="#FFB1F8FF"/>
<item android:offset="1" android:color="#FF8BB4FF"/>
</gradient>
</aapt:attr>
</path>
</vector>

View File

@ -0,0 +1,15 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="40dp"
android:height="40dp"
android:viewportWidth="40"
android:viewportHeight="40">
<path
android:pathData="M27.501,15.699C23.566,14.119 21.473,17.222 21.438,17.275C21.403,17.222 19.31,14.118 15.374,15.698C11.435,17.28 9.639,25.116 20.72,31.31C21.035,31.485 21.285,31.537 21.437,31.542H21.438C21.59,31.537 21.84,31.485 22.154,31.31C33.236,25.116 31.441,17.28 27.501,15.698V15.699Z"
android:fillColor="#97DBE9"
android:fillAlpha="0.5"/>
<path
android:pathData="M28.701,11.019L28.609,10.983C25.985,9.974 24.044,10.469 22.751,11.179C22.091,11.542 21.587,11.97 21.246,12.31C21.076,12.48 20.949,12.626 20.865,12.728C20.823,12.779 20.792,12.819 20.772,12.845C20.762,12.858 20.755,12.868 20.751,12.874L20.744,12.883L19.988,13.958L19.247,12.871C19.248,12.872 19.248,12.872 19.247,12.87C19.213,12.824 18.529,11.882 17.249,11.179C15.957,10.468 14.015,9.973 11.392,10.982L28.701,11.019ZM28.701,11.019C31.122,12.003 32.984,14.863 32.398,18.569C31.805,22.319 28.654,27.072 20.627,31.37C20.312,31.538 20.093,31.58 20,31.588C19.907,31.58 19.688,31.538 19.373,31.371C11.346,27.072 8.195,22.319 7.602,18.569C7.009,14.816 8.925,11.931 11.391,10.982L28.701,11.019Z"
android:strokeWidth="1.82083"
android:fillColor="#00000000"
android:strokeColor="#97DBE9"/>
</vector>

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners
android:bottomLeftRadius="32dp"
android:bottomRightRadius="32dp"
android:topLeftRadius="32dp"
android:topRightRadius="32dp" />
</shape>

View File

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="@color/main_bg" />
<corners
android:bottomLeftRadius="24dp"
android:bottomRightRadius="24dp"
android:topLeftRadius="24dp"
android:topRightRadius="24dp" />
</shape>

View File

@ -0,0 +1,30 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="40dp"
android:height="40dp"
android:viewportWidth="40"
android:viewportHeight="40">
<path
android:pathData="M8.142,17.08H13.203V25.819H8.142C7.719,25.819 7.377,25.446 7.377,24.985V17.914C7.377,17.453 7.722,17.08 8.142,17.08Z"
android:fillColor="#ffffff"/>
<path
android:pathData="M14.615,24.946H7.344C6.292,24.946 5.435,24.09 5.435,23.038V14.95C5.435,13.898 6.292,13.041 7.344,13.041H14.615V24.946ZM7.344,14.95V23.038H12.706V14.95H7.344Z"
android:fillColor="#16586C"/>
<path
android:pathData="M27.247,15.814H24.564V23.085H27.247C27.775,23.085 28.201,22.659 28.201,22.131V16.769C28.201,16.241 27.775,15.814 27.247,15.814Z"
android:fillColor="#ffffff"/>
<path
android:pathData="M27.247,24.039H23.61V14.86H27.247C28.299,14.86 29.156,15.717 29.156,16.768V22.131C29.156,23.183 28.303,24.039 27.247,24.039ZM25.522,22.131H27.251V16.768H25.522V22.131ZM31.839,18.54H33.657C34.158,18.54 34.565,18.947 34.565,19.448C34.565,19.948 34.158,20.355 33.657,20.355H31.839C31.338,20.355 30.931,19.948 30.931,19.448C30.931,18.947 31.338,18.54 31.839,18.54ZM32.414,23.206L33.986,24.114C34.42,24.364 34.569,24.919 34.318,25.353C34.068,25.788 33.513,25.936 33.078,25.686L31.506,24.778C31.072,24.528 30.923,23.973 31.174,23.539C31.424,23.104 31.979,22.956 32.414,23.206ZM31.506,14.117L33.078,13.209C33.513,12.959 34.068,13.108 34.318,13.542C34.569,13.976 34.42,14.531 33.986,14.782L32.414,15.689C31.979,15.939 31.424,15.791 31.174,15.357C30.923,14.922 31.072,14.367 31.506,14.117Z"
android:fillColor="#16586C"/>
<path
android:pathData="M13.203,17.189L20.817,13.283C21.19,13.093 21.654,13.229 21.851,13.589C21.911,13.694 21.942,13.815 21.942,13.936V28.966C21.942,29.374 21.6,29.704 21.177,29.704C21.039,29.704 20.902,29.667 20.783,29.598L13.203,25.209V17.189Z"
android:fillColor="#ffffff"/>
<path
android:pathData="M23.614,31.03C23.27,31.03 22.929,30.936 22.632,30.76L12.706,24.804V13.309L22.714,7.986C23.641,7.489 24.803,7.845 25.295,8.776C25.44,9.054 25.518,9.363 25.518,9.672V29.118C25.522,30.174 24.666,31.03 23.614,31.03ZM14.615,23.721L23.614,29.122V9.676L14.615,14.459V23.721Z"
android:fillColor="#16586C"/>
<path
android:pathData="M8.208,24.445H11.845V29.854C11.845,30.382 11.419,30.809 10.891,30.809H9.163C8.635,30.809 8.208,30.382 8.208,29.854V24.445Z"
android:fillColor="#ffffff"/>
<path
android:pathData="M10.891,31.762H9.163C8.111,31.762 7.254,30.906 7.254,29.854V23.49H12.8V29.854C12.8,30.906 11.943,31.762 10.891,31.762ZM9.163,25.399V29.854H10.891V25.399H9.163Z"
android:fillColor="#16586C"/>
</vector>

View File

@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="160dp"
android:height="81dp"
android:viewportWidth="160"
android:viewportHeight="81">
<path
android:pathData="M16.19,0H5.51C2.75,0 0.51,2.24 0.51,5V54C0.51,68.91 12.6,81 27.51,81H132.99C147.9,81 159.99,68.91 159.99,54V5C159.99,2.24 157.75,0 154.99,0H144.35C143.12,0 141.93,0.46 141.01,1.28L130.8,10.45C129.33,11.77 127.42,12.5 125.45,12.5H35.09C33.12,12.5 31.21,11.77 29.74,10.45L19.53,1.28C18.61,0.46 17.42,0 16.19,0Z"
android:fillColor="#ffffff"/>
</vector>

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="@color/main_bg"/>
<corners
android:topLeftRadius="20dp"
android:topRightRadius="20dp" />
</shape>

View File

@ -0,0 +1,34 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="40dp"
android:height="40dp"
android:viewportWidth="40"
android:viewportHeight="40">
<path
android:pathData="M8.142,17.08H13.203V24.848H8.142C7.719,24.848 7.377,24.517 7.377,24.106V17.822C7.377,17.411 7.722,17.08 8.142,17.08Z"
android:fillColor="#97DBE9"
android:fillAlpha="0.5"/>
<path
android:pathData="M14.615,24.946H7.344C6.292,24.946 5.435,24.09 5.435,23.038V14.95C5.435,13.898 6.292,13.041 7.344,13.041H14.615V24.946ZM7.344,14.95V23.038H12.706V14.95H7.344Z"
android:fillColor="#97DBE9"/>
<path
android:pathData="M27.247,15.814H24.564V23.085H27.247C27.775,23.085 28.201,22.659 28.201,22.131V16.769C28.201,16.241 27.775,15.814 27.247,15.814Z"
android:fillColor="#97DBE9"
android:fillAlpha="0.5"/>
<path
android:pathData="M27.247,24.039H23.61V14.86H27.247C28.299,14.86 29.156,15.717 29.156,16.768V22.131C29.156,23.183 28.303,24.039 27.247,24.039ZM25.522,22.131H27.251V16.768H25.522V22.131ZM31.839,18.54H33.657C34.158,18.54 34.565,18.947 34.565,19.448C34.565,19.948 34.158,20.355 33.657,20.355H31.839C31.338,20.355 30.931,19.948 30.931,19.448C30.931,18.947 31.338,18.54 31.839,18.54ZM32.414,23.206L33.986,24.114C34.42,24.364 34.569,24.919 34.318,25.353C34.068,25.788 33.513,25.936 33.078,25.686L31.506,24.778C31.072,24.528 30.923,23.973 31.174,23.539C31.424,23.104 31.979,22.956 32.414,23.206ZM31.506,14.117L33.078,13.209C33.513,12.959 34.068,13.108 34.318,13.542C34.569,13.976 34.42,14.531 33.986,14.782L32.414,15.689C31.979,15.939 31.424,15.791 31.174,15.357C30.923,14.922 31.072,14.367 31.506,14.117Z"
android:fillColor="#97DBE9"/>
<path
android:pathData="M13.203,17.189L20.817,13.283C21.19,13.093 21.654,13.229 21.851,13.589C21.91,13.694 21.942,13.815 21.942,13.936V28.966C21.942,29.374 21.6,29.704 21.177,29.704C21.039,29.704 20.902,29.667 20.783,29.598L13.203,25.209V17.189Z"
android:fillColor="#97DBE9"
android:fillAlpha="0.5"/>
<path
android:pathData="M23.614,31.03C23.27,31.03 22.929,30.936 22.632,30.76L12.706,24.804V13.309L22.714,7.986C23.641,7.489 24.803,7.845 25.295,8.776C25.44,9.054 25.518,9.363 25.518,9.672V29.118C25.522,30.174 24.666,31.03 23.614,31.03ZM14.615,23.721L23.614,29.122V9.676L14.615,14.459V23.721Z"
android:fillColor="#97DBE9"/>
<path
android:pathData="M8.208,24.445H11.846V29.854C11.846,30.382 11.419,30.809 10.891,30.809H9.163C8.635,30.809 8.208,30.382 8.208,29.854V24.445Z"
android:fillColor="#97DBE9"
android:fillAlpha="0.5"/>
<path
android:pathData="M10.891,31.762H9.163C8.111,31.762 7.254,30.906 7.254,29.854V23.49H12.8V29.854C12.8,30.906 11.943,31.762 10.891,31.762ZM9.163,25.399V29.854H10.891V25.399H9.163Z"
android:fillColor="#97DBE9"/>
</vector>

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<stroke
android:width="5dp" />
<solid android:color="@android:color/transparent" />
<corners
android:bottomLeftRadius="32dp"
android:bottomRightRadius="32dp"
android:topLeftRadius="32dp"
android:topRightRadius="32dp" />
</shape>

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners
android:bottomLeftRadius="32dp"
android:bottomRightRadius="32dp"
android:topLeftRadius="32dp"
android:topRightRadius="32dp" />
</shape>

View File

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="@color/white" />
<corners
android:bottomLeftRadius="8dp"
android:bottomRightRadius="8dp"
android:topLeftRadius="8dp"
android:topRightRadius="8dp" />
</shape>

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<solid android:color="@color/white" />
<size
android:width="12dp"
android:height="12dp" />
</shape>

View File

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@android:id/background">
<shape android:shape="rectangle">
<solid android:color="@color/black" />
<corners android:radius="10dp" />
</shape>
</item>
<item android:id="@android:id/progress">
<scale android:scaleWidth="100%">
<shape>
<solid android:color="@color/white" />
<corners android:radius="10dp" />
</shape>
</scale>
</item>
</layer-list>

View File

@ -0,0 +1,49 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/activity_list"
android:background="@mipmap/main_bg"
tools:context=".activity.ListActivity">
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/back"
android:layout_width="30dp"
android:layout_height="30dp"
android:layout_marginStart="20dp"
android:padding="4dp"
app:layout_constraintBottom_toBottomOf="@id/prew_list_title"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@id/prew_list_title">
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/icon_back" />
</androidx.constraintlayout.widget.ConstraintLayout>
<com.fun.originalityprank.tool.MytextView
android:id="@+id/prew_list_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:gravity="center"
android:textColor="@color/white"
android:textSize="26sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/prew_list_rv"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_marginTop="20dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toBottomOf="@id/prew_list_title" />
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -0,0 +1,29 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@mipmap/main_bg"
tools:context=".activity.MainActivity">
<androidx.viewpager.widget.ViewPager
android:id="@+id/main_pager"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/main_bg" />
<com.google.android.material.tabs.TabLayout
android:id="@+id/main_tab"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="24dp"
android:layout_marginEnd="24dp"
android:layout_marginBottom="40dp"
android:background="@drawable/butoon_tablayout"
app:layout_constraintBottom_toBottomOf="parent"
app:tabIndicatorHeight="0dp" />
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -0,0 +1,163 @@
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_prew"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@mipmap/main_bg"
tools:context=".activity.PrewViewActivity">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/pre_back"
android:layout_width="32dp"
android:layout_height="32dp"
android:layout_marginStart="20dp"
android:src="@drawable/icon_back"
app:layout_constraintBottom_toBottomOf="@id/pre_title"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@id/pre_title" />
<com.fun.originalityprank.tool.MytextView
android:id="@+id/pre_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:gravity="center"
android:textColor="@color/white"
android:textSize="26sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<FrameLayout
android:id="@+id/pre_image_frame"
android:layout_width="280dp"
android:layout_height="280dp"
android:layout_marginTop="30dp"
android:background="@mipmap/pre_image_bg"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/pre_title">
<ImageView
android:id="@+id/pre_image"
android:layout_width="150dp"
android:layout_height="150dp"
android:layout_gravity="center"
android:src="@mipmap/ic_launcher" />
</FrameLayout>
<ProgressBar
android:layout_marginTop="40dp"
android:id="@+id/pre_pg"
android:layout_width="100dp"
android:layout_height="100dp"
android:indeterminateTint="@color/white"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<com.fun.originalityprank.tool.MytextView
android:id="@+id/pre_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="32dp"
android:textColor="@color/white"
android:textSize="16sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/pre_image_frame" />
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/pre_loop"
android:layout_width="28dp"
android:layout_height="28dp"
android:layout_marginStart="40dp"
android:layout_marginTop="45dp"
android:background="@drawable/pre_menu_bg"
android:padding="4dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/pre_text">
<ImageView
android:id="@+id/pre_image_loop"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/icon_unloop" />
</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/pre_like"
android:layout_width="28dp"
android:layout_height="28dp"
android:layout_marginTop="45dp"
android:layout_marginEnd="40dp"
android:background="@drawable/pre_menu_bg"
android:padding="4dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/pre_text">
<ImageView
android:id="@+id/pre_image_like"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/icon_pre_unlike" />
</androidx.constraintlayout.widget.ConstraintLayout>
<SeekBar
android:id="@+id/seekbar"
android:layout_width="240dp"
android:layout_height="wrap_content"
android:layout_marginTop="45dp"
android:progressDrawable="@drawable/seekbar_style"
android:thumb="@drawable/seek_bar_thumb"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/pre_like" />
<ImageView
android:id="@+id/volumeleft"
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_marginEnd="32dp"
android:background="@drawable/icon_volume_left"
app:layout_constraintBottom_toBottomOf="@id/seekbar"
app:layout_constraintEnd_toStartOf="@id/seekbar"
app:layout_constraintTop_toTopOf="@id/seekbar" />
<ImageView
android:id="@+id/volumeright"
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_marginStart="32dp"
android:background="@drawable/icon_volume_add"
app:layout_constraintBottom_toBottomOf="@id/seekbar"
app:layout_constraintStart_toEndOf="@id/seekbar"
app:layout_constraintTop_toTopOf="@id/seekbar" />
<ImageView
android:id="@+id/pre_play"
android:layout_width="95dp"
android:layout_height="95dp"
android:layout_marginTop="50dp"
android:background="@drawable/icon_play"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/seekbar" />
<View
android:layout_width="match_parent"
android:layout_height="100dp"
app:layout_constraintTop_toBottomOf="@id/pre_play" />
</androidx.constraintlayout.widget.ConstraintLayout>
</ScrollView>

View File

@ -0,0 +1,51 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_splash"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/dia_menu_bg"
tools:context=".activity.SplashActivity">
<androidx.cardview.widget.CardView
android:id="@+id/logo"
android:layout_width="70dp"
android:layout_height="70dp"
android:layout_marginBottom="30dp"
app:cardCornerRadius="15dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:src="@mipmap/logo" />
</androidx.cardview.widget.CardView>
<com.fun.originalityprank.tool.MytextView
android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:gravity="center_horizontal"
android:text="@string/app_name"
android:textColor="@color/white"
android:textSize="20sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/logo" />
<ProgressBar
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:indeterminateTint="@color/white"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/text" />
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -0,0 +1,112 @@
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="340dp"
android:layout_height="match_parent"
android:background="@drawable/dia_bg"
android:paddingTop="12dp"
android:paddingBottom="12dp">
<ImageView
android:id="@+id/bt_close"
android:layout_width="30dp"
android:layout_height="30dp"
android:layout_marginEnd="16dp"
android:src="@drawable/icon_cancel"
app:layout_constraintBottom_toBottomOf="@id/dia_title"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@+id/dia_title" />
<com.fun.originalityprank.tool.MytextView
android:id="@+id/dia_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="6dp"
android:text="@string/setting"
android:textColor="@color/white"
android:textSize="24sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<!-- <androidx.constraintlayout.widget.ConstraintLayout-->
<!-- android:id="@+id/dia_left"-->
<!-- android:layout_width="115dp"-->
<!-- android:background="@drawable/dia_menu_bg"-->
<!-- app:layout_constraintStart_toStartOf="parent"-->
<!-- app:layout_constraintTop_toBottomOf="@id/dia_title"-->
<!-- android:layout_marginTop="24dp"-->
<!-- android:layout_marginStart="24dp"-->
<!-- android:padding="12dp"-->
<!-- android:layout_height="wrap_content">-->
<!-- <ImageView-->
<!-- android:id="@+id/privacy"-->
<!-- android:layout_width="24dp"-->
<!-- android:layout_height="24dp"-->
<!-- android:src="@drawable/icon_privacy"-->
<!-- app:layout_constraintStart_toStartOf="parent"-->
<!-- app:layout_constraintEnd_toEndOf="parent"-->
<!-- app:layout_constraintTop_toTopOf="parent"/>-->
<!-- <TextView-->
<!-- android:layout_width="wrap_content"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:layout_marginTop="8dp"-->
<!-- android:text="@string/privacy"-->
<!-- android:textColor="@color/white"-->
<!-- android:textSize="12sp"-->
<!-- app:layout_constraintEnd_toEndOf="parent"-->
<!-- app:layout_constraintStart_toStartOf="parent"-->
<!-- app:layout_constraintTop_toBottomOf="@+id/privacy" />-->
<!-- </androidx.constraintlayout.widget.ConstraintLayout>-->
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/dia_right"
android:layout_width="115dp"
android:layout_height="wrap_content"
android:layout_marginTop="24dp"
android:background="@drawable/dia_menu_bg"
android:padding="12dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/dia_title">
<ImageView
android:id="@+id/share"
android:layout_width="24dp"
android:layout_height="24dp"
android:src="@drawable/icon_share"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:text="@string/share"
android:textColor="@color/white"
android:textSize="12sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/share" />
</androidx.constraintlayout.widget.ConstraintLayout>
<TextView
android:id="@+id/version"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="24dp"
android:text="@string/version"
android:textColor="@color/white"
android:textSize="12sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/dia_right" />
</androidx.constraintlayout.widget.ConstraintLayout>
</FrameLayout>

View File

@ -0,0 +1,55 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@mipmap/like_bg"
tools:context=".fragment.LikeFragment">
<TextView
android:id="@+id/like_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:gravity="center"
android:text="@string/like_title"
android:textColor="@color/white"
android:textSize="32sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/like_rv"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_marginTop="20dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toBottomOf="@id/like_title" />
<ImageView
android:id="@+id/like_hint_image"
android:layout_width="240dp"
android:layout_height="240dp"
android:layout_marginBottom="11dp"
android:background="@mipmap/like_hint_image"
app:layout_constraintBottom_toTopOf="@id/like_hint_text"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" />
<com.fun.originalityprank.tool.MytextView
android:id="@+id/like_hint_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="24dp"
android:layout_marginEnd="24dp"
android:gravity="center"
android:text="@string/like_hint"
android:textColor="@color/white"
android:textSize="20sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -0,0 +1,41 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@mipmap/main_bg"
tools:context=".fragment.MainFragment">
<TextView
android:id="@+id/main_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="24dp"
android:layout_marginTop="20dp"
android:text="@string/app_name"
android:textColor="@color/white"
android:textSize="26sp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<ImageView
android:id="@+id/main_setting"
android:layout_width="32dp"
android:layout_height="32dp"
android:layout_marginEnd="24dp"
android:src="@drawable/icon_setting"
app:layout_constraintBottom_toBottomOf="@id/main_title"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@id/main_title" />
<androidx.recyclerview.widget.RecyclerView
android:background="@drawable/main_rv_bg"
android:id="@+id/marin_rv"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_marginTop="30dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toBottomOf="@id/main_title" />
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -0,0 +1,58 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/like_cons"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="28dp"
android:layout_marginEnd="28dp">
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/cons"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="30dp"
android:background="@mipmap/like_list_bg"
app:layout_constraintTop_toTopOf="parent">
<ImageView
android:id="@+id/like_image"
android:layout_width="wrap_content"
android:layout_height="100dp"
android:layout_margin="10dp"
android:src="@drawable/ic_launcher_background"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<com.fun.originalityprank.tool.MytextView
android:id="@+id/like_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="20dp"
android:gravity="center"
android:textColor="@color/white"
android:textSize="18sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
<ImageView
android:id="@+id/like_list_image_bg"
android:layout_width="88dp"
android:layout_height="88dp"
android:layout_gravity="top|start"
android:layout_marginStart="20dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<View
android:id="@+id/like_view"
android:layout_width="match_parent"
android:layout_height="110dp"
app:layout_constraintTop_toBottomOf="@id/cons" />
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -0,0 +1,49 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="12dp">
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/listactivty_cons"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:padding="16dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent">
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/list_cons"
android:layout_width="105dp"
android:layout_height="105dp"
android:background="@drawable/listactivty_list_image_bg"
android:padding="3dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent">
<ImageView
android:id="@+id/list_item_image"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="8dp" />
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
<com.fun.originalityprank.tool.MytextView
android:id="@+id/list_item_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="6dp"
android:gravity="center"
android:textColor="@color/white"
android:textSize="16sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/listactivty_cons" />
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -0,0 +1,72 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/main_cons"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dp">
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/main_list_cons"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:padding="4dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/main_list_image_bg"
android:layout_width="match_parent"
android:layout_height="match_parent">
<FrameLayout
android:id="@+id/fragment_rv"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@mipmap/rv_image_bg"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<ImageView
android:id="@+id/main_rv_image"
android:layout_width="145dp"
android:layout_height="114dp"
android:layout_marginTop="12dp" />
</FrameLayout>
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="7dp"
android:layout_marginBottom="2dp"
app:layout_constraintTop_toBottomOf="@id/fragment_rv">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center|bottom"
android:src="@drawable/main_list_bg" />
<com.fun.originalityprank.tool.MytextView
android:id="@+id/main_rv_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginTop="6dp"
android:textColor="@color/mainrv_text_color"
android:textSize="16sp" />
</FrameLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
<View
android:id="@+id/view"
android:layout_width="match_parent"
android:layout_height="100dp"
app:layout_constraintTop_toBottomOf="@id/main_list_cons" />
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@drawable/ic_launcher_background" />
<foreground android:drawable="@drawable/ic_launcher_foreground" />
<monochrome android:drawable="@drawable/ic_launcher_foreground" />
</adaptive-icon>

View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@drawable/ic_launcher_background" />
<foreground android:drawable="@drawable/ic_launcher_foreground" />
<monochrome android:drawable="@drawable/ic_launcher_foreground" />
</adaptive-icon>

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 982 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 167 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 91 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 844 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 276 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

View File

@ -0,0 +1,7 @@
<resources xmlns:tools="http://schemas.android.com/tools">
<!-- Base application theme. -->
<style name="Base.Theme.OriginalityPrank" parent="Theme.Material3.DayNight.NoActionBar">
<!-- Customize your dark theme here. -->
<!-- <item name="colorPrimary">@color/my_dark_primary</item> -->
</style>
</resources>

View File

@ -0,0 +1,34 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="black">#FF000000</color>
<color name="white">#FFFFFFFF</color>
<color name="main_bg">#FEF4DB</color>
<color name="color_1">#FE5FBC</color>
<color name="color_2">#D290FF</color>
<color name="color_3">#F9E45A</color>
<color name="color_4">#BBE5FF</color>
<color name="color_5">#FFA24B</color>
<color name="color_6">#64EEE9</color>
<color name="color_7">#9CD801</color>
<color name="color_8">#FFBDBF</color>
<color name="color_9">#C6FFA3</color>
<color name="gradient_1">#80FE5FBC</color>
<color name="gradient_2">#80D290FF</color>
<color name="gradient_3">#80F9E45A</color>
<color name="gradient_4">#80BBE5FF</color>
<color name="gradient_5">#80FFA24B</color>
<color name="gradient_6">#8064EEE9</color>
<color name="gradient_7">#809CD801</color>
<color name="gradient_8">#80FFBDBF</color>
<color name="gradient_9">#80C6FFA3</color>
<color name="like_color_1_star">#E8C7FF</color>
<color name="like_color_1_end">#D290FF</color>
<color name="like_color_2_star">#CDFFFD</color>
<color name="like_color_2_end">#63EDE8</color>
<color name="like_color_3_star">#FFDFB9</color>
<color name="like_color_3_end">#FFA24B</color>
<color name="like_color_4_star">#FFBDE4</color>
<color name="like_color_4_end">#FD5FBC</color>
<color name="mainrv_text_color">#16586C</color>
<color name="dia_menu_bg">#4D6CDA</color>
</resources>

View File

@ -0,0 +1,12 @@
<resources>
<string name="app_name">Originality Prank</string>
<!-- TODO: Remove or change this placeholder text -->
<string name="hello_blank_fragment">Hello blank fragment</string>
<string name="setting">Settings</string>
<string name="privacy">Privacy</string>
<string name="share">Share</string>
<string name="version">VERSION NUMBER 1.0.0</string>
<string name="share_title">Here is a Originality Prank</string>
<string name="like_hint">No favorite sound for now</string>
<string name="like_title">Favorite</string>
</resources>

View File

@ -0,0 +1,15 @@
<resources xmlns:tools="http://schemas.android.com/tools">
<!-- Base application theme. -->
<style name="Base.Theme.OriginalityPrank" parent="Theme.Material3.DayNight.NoActionBar">
<!-- Customize your light theme here. -->
<!-- <item name="colorPrimary">@color/my_light_primary</item> -->
</style>
<style name="Theme.OriginalityPrank" parent="Base.Theme.OriginalityPrank" />
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<!-- Customize your theme here. -->
<item name="android:windowBackground">@android:color/white</item>
<item name="colorOnPrimary">@color/white</item>
<item name="android:statusBarColor" />
</style>
</resources>

View File

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?><!--
Sample backup rules file; uncomment and customize as necessary.
See https://developer.android.com/guide/topics/data/autobackup
for details.
Note: This file is ignored for devices older that API 31
See https://developer.android.com/about/versions/12/backup-restore
-->
<full-backup-content>
<!--
<include domain="sharedpref" path="."/>
<exclude domain="sharedpref" path="device.xml"/>
-->
</full-backup-content>

Some files were not shown because too many files have changed in this diff Show More