Skip to content

Commit

Permalink
Added EasterEgg ( ͡° ͜ʖ ͡°)
Browse files Browse the repository at this point in the history
  • Loading branch information
Javinator9889 committed Mar 10, 2018
1 parent 05d0dd2 commit b1e1f2f
Show file tree
Hide file tree
Showing 15 changed files with 230 additions and 68 deletions.
4 changes: 2 additions & 2 deletions app/build.gradle
Expand Up @@ -8,8 +8,8 @@ android {
applicationId "javinator9889.bitcoinpools"
minSdkVersion 21
targetSdkVersion 27
versionCode 64
versionName "1.18.1"
versionCode 66
versionName "1.18.2"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
Expand Down
Binary file added app/release/BitCoinPools-1.18.2.apk
Binary file not shown.
2 changes: 1 addition & 1 deletion app/release/output.json
@@ -1 +1 @@
[{"outputType":{"type":"APK"},"apkInfo":{"type":"MAIN","splits":[],"versionCode":64},"path":"app-release.apk","properties":{"packageId":"javinator9889.bitcoinpools","split":"","minSdkVersion":"21"}}]
[{"outputType":{"type":"APK"},"apkInfo":{"type":"MAIN","splits":[],"versionCode":66},"path":"app-release.apk","properties":{"packageId":"javinator9889.bitcoinpools","split":"","minSdkVersion":"21"}}]
1 change: 1 addition & 0 deletions app/src/main/AndroidManifest.xml
Expand Up @@ -44,6 +44,7 @@
android:screenOrientation="portrait" />
<activity android:name=".FragmentViews.DonationsActivity"
tools:ignore="InnerclassSeparator" />
<activity android:name=".EasterEgg" />

<service
android:name=".BackgroundJobs.JobSchedulerService"
Expand Down
103 changes: 103 additions & 0 deletions app/src/main/java/javinator9889/bitcoinpools/EasterEgg.java
@@ -0,0 +1,103 @@
package javinator9889.bitcoinpools;

import android.app.Activity;
import android.content.Context;
import android.content.res.Resources;
import android.media.MediaMetadataRetriever;
import android.net.Uri;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.widget.MediaController;
import android.widget.Toast;
import android.widget.VideoView;

/**
* Created by Javinator9889 on 10/03/2018.
* Easter Egg :D
*/

public class EasterEgg extends Activity {
private String[] positivePhrases;
private VideoView easterEggVideo;
private String[] negativePhrases;
private boolean isEasterEggCompleted = false;
private int actualStepCount = 0;

@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
System.out.println("Creating activity");
setContentView(R.layout.easter_egg);
easterEggVideo = findViewById(R.id.easteregg_video);
super.onCreate(savedInstanceState);
}

@Override
protected void onPostCreate(@Nullable Bundle savedInstanceState) {
System.out.println("Activity created");

String videoPath = "android.resource://" + getPackageName() + "/" + R.raw.easteregg;
Uri videoUri = Uri.parse(videoPath);
int videoMetadata[] = getVideoMeasurements(videoUri);
int widthMeasureSpec = videoMetadata[0];
int heightMeasureSpec = videoMetadata[1];
MediaController mediaController = new MediaController(this);
mediaController.setAnchorView(easterEggVideo);

easterEggVideo.setVideoURI(videoUri);
easterEggVideo.requestFocus();
easterEggVideo.setMediaController(mediaController);
easterEggVideo.measure(widthMeasureSpec, heightMeasureSpec);
easterEggVideo.start();
super.onPostCreate(savedInstanceState);
}

@NonNull
private int[] getVideoMeasurements(Uri videoUri) {
MediaMetadataRetriever metadataRetriever = new MediaMetadataRetriever();
metadataRetriever.setDataSource(this, videoUri);
return new int[] {
Integer.parseInt(metadataRetriever
.extractMetadata(MediaMetadataRetriever.METADATA_KEY_VIDEO_WIDTH)),
Integer.parseInt(metadataRetriever
.extractMetadata(MediaMetadataRetriever.METADATA_KEY_VIDEO_HEIGHT))
};
}

public EasterEgg() {
super();
}

private EasterEgg(Resources stringArrayResources) {
this.positivePhrases = stringArrayResources.getStringArray(R.array.positivePhrases);
//this.negativePhrases = stringArrayResources.getStringArray(R.array.negativePhrases);
}

public static EasterEgg newInstance(Resources applicationResources) {
return new EasterEgg(applicationResources);
}

public boolean addStep(Context context) {
++actualStepCount;
compareSteps(context);
return isEasterEggCompleted;
}

public void resetSteps() {
actualStepCount = 0;
}

private void compareSteps(Context context) {
int phraseNumber = (int) (Math.random() * 4);
Toast.makeText(context, positivePhrases[phraseNumber], Toast.LENGTH_SHORT).show();
if (actualStepCount >= 5) {
isEasterEggCompleted = true;
}
}

@Override
public void onBackPressed() {
super.onBackPressed();
overridePendingTransition(R.anim.activity_back_in, R.anim.activity_back_out);
}
}
Expand Up @@ -254,39 +254,34 @@ public void run() {
@Override
public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {
Calendar actualDate = Calendar.getInstance();
if (year <= 2010) {
this.year = 2010;
if ((month <= 6) && (dayOfMonth < 17)) {
this.month = 6;
this.writable_month = 7;
this.day = 17;
} else if ((month < 6) && (dayOfMonth > 17)) {
this.month = 6;
this.writable_month = 7;
this.day = 17;
} else {
this.day = dayOfMonth;
this.month = month;
this.writable_month = ++month;
this.year = year;
}
} else {
if (dayOfMonth >= actualDate.get(Calendar.DAY_OF_MONTH)) {
if (month >= actualDate.get(Calendar.MONTH)) {
if (year >= actualDate.get(Calendar.YEAR)) {
actualDate.add(Calendar.DAY_OF_MONTH, -2);
this.day = actualDate.get(Calendar.DAY_OF_MONTH);
this.month = actualDate.get(Calendar.MONTH);
actualDate.add(Calendar.DAY_OF_MONTH, -2);
Calendar dateSet = Calendar.getInstance();
Calendar dateLimit = Calendar.getInstance();
dateSet.set(year, month, dayOfMonth);
dateLimit.set(2010, 6, 17);
switch (dateSet.compareTo(dateLimit)) {
case 1:
switch (dateSet.compareTo(actualDate)) {
case -1:
this.month = month;
this.writable_month = ++month;
this.year = year;
this.day = dayOfMonth;
break;
default:
this.month = actualDate.get(Calendar.MONTH);
this.writable_month = actualDate.get(Calendar.MONTH) + 1;
this.year = actualDate.get(Calendar.YEAR);
}
this.day = actualDate.get(Calendar.DAY_OF_MONTH);
break;
}
} else {
this.day = dayOfMonth;
this.month = month;
this.writable_month = ++month;
this.year = year;
}
break;
default:
this.month = 6;
this.writable_month = 7;
this.year = 2010;
this.day = 17;
break;
}
this.date_set = true;
String buttonText = getString(R.string.since) + " " + parseDate();
Expand Down Expand Up @@ -328,8 +323,6 @@ public Dialog createDialog() {
this.month,
this.day);

calendar.add(Calendar.DATE, -1);

dialog.getDatePicker().setMaxDate(calendar.getTimeInMillis());
dialog.getDatePicker().setMinDate(limitDate.getTimeInMillis());

Expand Down Expand Up @@ -389,7 +382,6 @@ private void prepareCards() {
total_fees = cachedMap.get("total_fees_btc");
tx = cachedMap.get("n_tx");
miners_revenue = cachedMap.get("miners_revenue_usd");
System.out.println(cachedMap.toString());
}
DecimalFormat df = new DecimalFormat("#.##", new DecimalFormatSymbols(Locale.US));
cardsContents.add(new CardsContent(getString(R.string.market_price),
Expand Down Expand Up @@ -432,7 +424,6 @@ private HashMap<String, String> getCachedMap() {
try {
return cache.readCache();
} catch (IOException | ClassNotFoundException e) {
System.out.println("Error while reading cache. Full trace: " + e.getMessage());
e.printStackTrace();
return null;
}
Expand Down
20 changes: 19 additions & 1 deletion app/src/main/java/javinator9889/bitcoinpools/MainActivity.java
Expand Up @@ -2,7 +2,6 @@

import android.annotation.SuppressLint;
import android.content.Intent;
import android.content.IntentSender;
import android.content.SharedPreferences;
import android.net.Uri;
import android.os.Bundle;
Expand All @@ -16,15 +15,19 @@
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.ImageButton;
import android.widget.Toast;

import com.afollestad.materialdialogs.MaterialDialog;
import com.google.firebase.analytics.FirebaseAnalytics;
import com.google.firebase.perf.metrics.AddTrace;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;

import javinator9889.bitcoinpools.AppUpdaterManager.CheckUpdates;
import javinator9889.bitcoinpools.FragmentViews.DonationsActivity;
Expand All @@ -42,6 +45,7 @@ public class MainActivity extends AppCompatActivity {
private HashMap<String, Float> retrievedData;
private HashMap<String, Float> cardsData;
private HashMap<Date, Float> btcPrice;
private EasterEgg easterEgg;

@Override
@SuppressWarnings("unchecked")
Expand Down Expand Up @@ -108,6 +112,20 @@ protected void onCreate(Bundle savedInstanceState) {
viewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabLayout));
tabLayout.addOnTabSelectedListener(new TabLayout.ViewPagerOnTabSelectedListener(viewPager));

this.easterEgg = EasterEgg.newInstance(getResources());
MAINACTIVITY_TOOLBAR.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
if (easterEgg.addStep(MainActivity.this)) {
Intent easterEggIntent = new Intent(MainActivity.this, EasterEgg.class);
startActivity(easterEggIntent);
overridePendingTransition(R.anim.activity_in, R.anim.activity_out);
easterEgg.resetSteps();
}
return false;
}
});

Log.d(Constants.LOG.MATAG, Constants.LOG.CREATING_CHART);
Log.d(Constants.LOG.MATAG, Constants.LOG.LISTENING);
Bundle bundle = new Bundle();
Expand Down
2 changes: 1 addition & 1 deletion app/src/main/res/layout/activity_main.xml
Expand Up @@ -25,9 +25,9 @@
android:layout_height="?attr/actionBarSize"
android:layout_weight="1"
android:background="@color/colorPrimary"
app:titleTextAppearance="@style/Toolbar.TitleText"
app:layout_scrollFlags="scroll|enterAlways"
app:title=""
app:titleTextAppearance="@style/Toolbar.TitleText"
app:titleTextColor="#FAFAFAFA">

</android.support.v7.widget.Toolbar>
Expand Down
34 changes: 18 additions & 16 deletions app/src/main/res/layout/bitcoin_card.xml
Expand Up @@ -24,40 +24,42 @@

<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
android:layout_height="match_parent">

<TextView
android:id="@+id/balance"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_centerVertical="true"
android:layout_marginEnd="16dp"
android:layout_marginStart="16dp"
android:gravity="end"
android:text="balance" />

<TextView
android:id="@+id/title_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_toStartOf="@+id/balance"
android:drawablePadding="8dp"
android:paddingLeft="@dimen/album_title_padding"
android:paddingRight="@dimen/album_title_padding"
android:paddingTop="@dimen/album_title_padding"
android:text="title"
android:textAppearance="@style/TextAppearance.AppCompat.Headline" />

<TextView
android:id="@+id/balance"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_centerVertical="true"
android:layout_marginEnd="14dp"
android:gravity="end"
android:text="balance" />
</RelativeLayout>

<TextView
android:id="@+id/body_text"
android:layout_width="wrap_content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="10"
android:paddingLeft="@dimen/album_title_padding"
android:paddingRight="@dimen/album_title_padding"
android:paddingTop="@dimen/album_title_padding"
android:text=""
android:text="body text"
android:textAppearance="@style/TextAppearance.AppCompat.Display1" />

</LinearLayout>
Expand Down
6 changes: 4 additions & 2 deletions app/src/main/res/layout/bitcoindata.xml
Expand Up @@ -52,11 +52,13 @@
app:layout_constraintTop_toBottomOf="@+id/datebutton" />

<android.support.constraint.ConstraintLayout
android:layout_width="wrap_content"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginBottom="16dp"
android:layout_marginEnd="16dp"
android:layout_marginStart="16dp"
android:layout_marginTop="16dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/include">
Expand All @@ -68,7 +70,7 @@
android:alpha=".7"
android:drawablePadding="8dp"
android:drawableStart="@drawable/ic_info_outline_black_18dp"
android:text=""
android:text="@string/longclick"
android:textAlignment="center"
android:textStyle="italic"
app:layout_constraintBottom_toBottomOf="parent"
Expand Down
18 changes: 18 additions & 0 deletions app/src/main/res/layout/easter_egg.xml
@@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.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">

<VideoView
android:id="@+id/easteregg_video"
android:layout_width="0dp"
android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />

</android.support.constraint.ConstraintLayout>

0 comments on commit b1e1f2f

Please sign in to comment.