Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 2 additions & 6 deletions .idea/misc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 2 additions & 0 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,8 @@ dependencies {
implementation 'com.squareup.picasso:picasso:2.71828'
implementation 'com.android.volley:volley:1.1.1'
implementation 'com.android.support:recyclerview-v7:28.0.0'
implementation 'com.jakewharton:butterknife:6.1.0'
annotationProcessor 'com.jakewharton:butterknife:6.1.0'
implementation 'com.github.ivbaranov:materialfavoritebutton:0.1.4'
implementation 'com.google.android.gms:play-services-ads:17.1.1'

Expand Down
32 changes: 27 additions & 5 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,6 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.readybrains.coindesk">

<uses-permission android:name="android.permission.INTERNET" />

<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
Expand All @@ -12,6 +10,23 @@
android:supportsRtl="true"
android:theme="@style/AppTheme"
android:usesCleartextTraffic="true">
<meta-data
android:name="com.google.android.gms.ads.APPLICATION_ID"
android:value="ca-app-pub-3940256099942544~3347511713"/>
<activity
android:name=".activities.MainActivity"
android:label="@string/app_name"
android:theme="@style/AppTheme.NoActionBar">

</activity>
<activity android:name=".activities.LoginActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>

<meta-data
android:name="com.google.android.gms.ads.APPLICATION_ID"
android:value="ca-app-pub-8388653056574690~8920667624" />
Expand All @@ -34,8 +49,13 @@
<activity
android:name=".activities.ChangelogActivity"
android:label="Changelog"
android:parentActivityName=".activities.MainActivity"
android:screenOrientation="portrait" />
android:parentActivityName=".activities.MainActivity" />
<activity android:name=".activities.SignUpActivity"></activity>
<activity android:name=".activities.SearchActivity">
<activity android:name=".activities.SignUpActivity"></activity>
<activity android:name=".activities.SearchActivity">


<activity
android:name=".activities.NewsWebView"
android:label="News"
Expand All @@ -51,6 +71,8 @@
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".activities.NewsWebView"></activity>
<activity android:name=".activities.NewsWebView"></activity>
<activity
android:name=".activities.DetailsActivity"
android:parentActivityName=".activities.MainActivity"
Expand All @@ -64,4 +86,4 @@
android:label="Search"/>
</application>

</manifest>
</manifest>
53 changes: 53 additions & 0 deletions app/src/main/java/AndroidManifest.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.readybrains.coindesk">

<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity
android:name=".activities.MainActivity"
android:label="@string/app_name"
android:theme="@style/AppTheme.NoActionBar">
</activity>

<activity android:name=".activities.LoginActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>

<activity
android:name=".activities.SettingsActivity"
android:label="Settings"
android:parentActivityName=".activities.MainActivity" />

<activity
android:name=".activities.AboutActivity"
android:label="About"
android:parentActivityName=".activities.MainActivity" />

<activity
android:name=".activities.CurrencyConverter"
android:label="Currency Converter"
android:parentActivityName=".activities.MainActivity" />

<activity
android:name=".activities.ChangelogActivity"
android:label="Changelog"
android:parentActivityName=".activities.MainActivity" />
<activity android:name=".activities.SignUpActivity"></activity>

<activity android:name=".activities.SearchActivity">
</activity>
<activity android:name=".activities.NewsWebView"></activity>

</application>

</manifest>
Original file line number Diff line number Diff line change
@@ -0,0 +1,153 @@
package com.readybrains.coindesk.activities;

import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.AdView;
import com.google.android.gms.ads.MobileAds;
import com.readybrains.coindesk.R;

import butterknife.ButterKnife;
import butterknife.InjectView;

public class LoginActivity extends AppCompatActivity {
private static final String TAG = "LoginActivity";
private static final int REQUEST_SIGNUP = 0;
private AdView mAdView;

@InjectView(R.id.input_email) EditText _emailText;
@InjectView(R.id.input_password) EditText _passwordText;

@InjectView(R.id.btn_login) Button _loginButton;
@InjectView(R.id.link_signup) TextView _signupLink;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.login);
MobileAds.initialize(this, "ca-app-pub-3940256099942544~3347511713.");
mAdView = findViewById(R.id.adView);
AdRequest adRequest = new AdRequest.Builder().build();
mAdView.loadAd(adRequest);
ButterKnife.inject(this);

_loginButton.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
login();
}
});

_signupLink.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
// Start the Signup activity
Intent intent = new Intent(getApplicationContext(), SignUpActivity.class);
startActivityForResult(intent, REQUEST_SIGNUP);
finish();
overridePendingTransition(R.anim.push_left_in, R.anim.push_left_out);
}
});
}

public void login() {
Log.d(TAG, "Login");

if (!validate()) {
onLoginFailed();
return;
}

_loginButton.setEnabled(false);

final ProgressDialog progressDialog = new ProgressDialog(LoginActivity.this,
R.style.AppTheme_Dark_Dialog);
progressDialog.setIndeterminate(true);
progressDialog.setMessage("Authenticating...");
progressDialog.show();


String email = _emailText.getText().toString();
String password = _passwordText.getText().toString();

// TODO: Implement your own authentication logic here.


new android.os.Handler().postDelayed(
new Runnable() {
public void run() {
// On complete call either onLoginSuccess or onLoginFailed
onLoginSuccess();
Intent i = new Intent(LoginActivity.this, MainActivity.class);
startActivity(i);
// onLoginFailed();
progressDialog.dismiss();
}
}, 3000);
}


@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == REQUEST_SIGNUP) {
if (resultCode == RESULT_OK) {

// TODO: Implement successful signup logic here
// By default we just finish the Activity and log them in automatically
this.finish();
}
}
}

@Override
public void onBackPressed() {
// Disable going back to the MainActivity
moveTaskToBack(true);
}

public void onLoginSuccess() {
_loginButton.setEnabled(true);
finish();
}

public void onLoginFailed() {
Toast.makeText(getBaseContext(), "Login failed", Toast.LENGTH_LONG).show();

_loginButton.setEnabled(true);
}

public boolean validate() {
boolean valid = true;

String email = _emailText.getText().toString();
String password = _passwordText.getText().toString();

if (email.isEmpty() || !android.util.Patterns.EMAIL_ADDRESS.matcher(email).matches()) {
_emailText.setError("enter a valid email address");
valid = false;
} else {
_emailText.setError(null);
}

if (password.isEmpty() || password.length() < 4 || password.length() > 10) {
_passwordText.setError("between 4 and 10 alphanumeric characters");
valid = false;
} else {
_passwordText.setError(null);
}

return valid;
}
}
Loading